22360679774997896964091736687312762354406183596115257242708972454105209256378048994144144083787822749695081761507737835042532677244470738635863601215334527088667781731918791658112766453226398565805357613504175337850034233924140644420864325390972525926272288762995174024406816117759089094984923713907297288984820886415426898940991316935770197486788844250897541329561831769214999774248015304341150359576683325124988151781394080005624208552435422355561063063428202340933319829339597463522712013417496142026359047378855043896870611356600457571399565955669569175645782219525000605392312340050092867648755297220567662536660744858535052623306784946334222423176372770266324076801044433158257335058930981362263431986864719469899701808189524264459620345221411922329125981963258111041704958070481204034559949435068555518555725123886416550102624363125710244496187894246829034044747161154557232017376765904609185295756035779843980541553807790643936397230287560629994822138521773485924535151210463455550407072278724215347787529112121211843317893351910380080111181790045906188462496471042442483088801294068113146959532794478989989316915774607924618075006798771242048473805027736082915599139624489149435606834625290644083279446426808889897460463083535378750420613747576068834018790881925591179735744641902485378711461940901919136880351103976384360412810581103786989518520146970456420217638928908844463778263858937924400460288754053984601560617052236150903857754100421936849872542718503752155576933167230047782698666624462106784642724863852745782134100679856453052711241805959728494551954513101723097508714965294362829025400120477803241554644899887061779981900336065622438864096392877535172662959714382279563079561495230154442350165389172786409130419793971113562821393674576811749220675621088878188736716716276226233798771115395096829828906830182590814010038955097232615084528345878936073463961172366783665719826079214402891190089955842415224957129183232167411899757201394037881977280152887234186683454183828673002743153202296076286125247610286423469630201118026912202360158101276284305418617176185751406901015616290917639812672259655962823490678546241618579455844426596128589375648549748034901108135575141664746219518302355259568865694958163530361955745368322352650077224225828736687534047007422326614517397665174206726444762196180242203979835368298350246626803054676876744690018695720995858919831644025162091964618510574424827408722982041094371099223617528531530221210917629512088635695971690794625726032508975222970404341288082233215339011955156651407902217564616542129578780422313820785536769077266664313165931954620687206464509148727440824881281776534751686790735918624644268746419914997789399131294720145919996782576206394852625035942828640246225591037895563453828317823559839129625116003691013126590571971820018172436059551275785199832998928563860445871046933495186539033084280421827260363894454157802441745747234146972999963125109456227469597433139054978016288768106549675627564933834888459269829416314014705091414179545350938687645239093723066241906715847602921854702042023838043672135019461791505791549362845908678877098631067926076145833835169220292199011012960735860829447314407972014710152180463462500322640968716729635409696362198320488504654334438037866919275721757505740347871860602671802247420478342531809405269880566153375348727730265421256064634813863466896468712906370116270621709946670151993355742489811672735082657817248126491279071442504852234055605731208646988567460345114881167455653599206347872802657525540248735966228928738953410625449848209433400276495662573130129868683607800820356106790117544917331151045878316479416835459667456462305138521859918844800011212533573487158479449081696353039468725305378897771054405495574946719670734555228151834241026538689675059832999618720492356885351455535800383838140761044092246496478265220865438336902461204725578709086492353995150737808352730050957027649262931667276675204715579853459772643237167918072799636769165528982491961874086111119227594686522696609898993736217907139269656356257725072921684067893076388838914285333647436789836647418171497005331360797948813242107206128005216342253319908398737463218914457762184155764554407273368963065123456823538195853333104476937662274370598384326381040313726244564143119975293684710411857074351561531210073546261950382447947774449365161143194891480968597561470443196853353251561541240388608010851003166250060350681882343820385978076894500665976049002873593688338959190906091820627623243740913599573273234921191400068919402270503626920131310704069577623482998825496528304271135527880781420774176364676136067000760936003496164411821936884052892804375410680200636057633288306182787896312806385645570964829021006377650379940149724575884311791485640433314124376181156176100649353982594574420774147394812871334917840517313147957121719133068214071995664089267269297097899532777070209105459648458139969770739365609291949152530286871810187664248748666774103331429801181421134049775971608743630252200880762976081450488123285804495645430544822417013157767742498727021361273033348644465553551159479854075246382940946479102412141100798417688520741758168666852367682719415632965910742864392237900759542926001511195075914071045428986382643451128802566183610090017984374102423721386714630779187015806014734540466283306408468031074828853743081102329592228664604970880818813822912279746052079036563360689650508653477151801120864049074543858249729162666883397059878271495739791597287899604609423393431472456782403625462583317990551983844063674471365455877127466253095997182492655006012118513490995887017623859011370986518710637458283602272824374941505256213739660271521049438891186439107192209056606297678235386023931716686288497897971311685016682188590055439516670448858251472987615083422747848752028701365975698654259950245737639209967155031754356082139426393350695438958452730380326795425694781586722223828179966112067221219743435661108708071217905858163692828742785887562712096407789582514901541511502060048414532580036180845868498851812133228266457445396138029198902399095603279830282522505145656132866252331493877639021288433477436000220084369660516183308676749847282367777129370286300127463808590296293884862921790509414407481113382613844198160963890595022130092856210835510518190374263776718295319920826359204188306171710664775450760465455265954744286255936433432468842366403605762825494886337694436918785562870948199998144466406118525953222476655966633976507862524013007405768956573338808946158942095225117316750597247250199964646719431014467676664881630515563867285252608660531791634160090255774623187117549443451298940010327334515430784196819006549022430737460182439925904553182632741879372145426853852463095066087598663316221473928628434395886811278310242162162725253777139496136120233837883500544597483173983582906998924888388024395717202747321657381444730295427825374841933027575124118370865777668348584180312626656638715124417942753126195700312630996491289173084958587144565750121696290670270436345917586598234200649524441043892902107249010259768617426888790144885347029257235983664672919673927526544515138319447908766104173294948476302215854698967390479295853798739664983599900557900012091932262692672604989990296161065803580595036503175009801487037596702367206544554520343480907114331771115659458212391638703421109651586141820115271739803859443599033746235112628897129620044002850908110858546917674232041989589144164756087374378896112737836516048899926375668405498203067158214546725065781386694824760444402325255423861708970059083826400801999731133303551328190731239579563676090206071302026317891780574372217381178789427360296914003673299129440658866874859789285482510287181168696818390974030472280634782780723288039691010209824233958400240399921013989932806070172738580788201403890106403246974552646546489887926096178110850275944662950370414182050127371963359060963620147884906340047760951966864690082851686281272254421920456484675645618055953192155421698783034977463375542704478018234234701837201309240198049951705558508556331940766990116021252310667382187569319542105950044634614824355668837882369193172205960375574854891277339322554490076917210528302060817965155550894823066415281517633550299510760942325933554201175329231909935538541099247879714185101405481399562816862499307261437330674361211748448519633061410514766908315410858432599622983501722262353154634419123131295739094897854264121612709155892482906213396748422759633792764706660895576633867945745783620732816653971397650887703335172457986139286936979502968175807929520840722041204343478894052697526730878639045815476723347796235624849673115621006833890312725208600733148621695330975556025715584729083704489447234274845851168318627122573274334065614434310678529265146134612782170821773617148567717656120460668281710078194707745226902392585283199042557862270886292030546180510765420865193245348780749112722457227815663886714118007629740179732263079639171488466088394171339344458628546148276976557795117772159947740894040633366971388398193096059649863963531585365971125944602136555447032548156761486375565463642383939056010321758314425765267593646254512574000300036585951545998715818983928152688572315142708885579676608090940542038916008516404240468916126069006731629443709840735997994587070783936242663903307594907982229884889036606771768258080363563764275201331856988273550863490321081877422073743042328081164386894240896555192108338972907975665253909602783003807799186261340637323341327439280513857342777429326237838537136538399055291599543655751892192323443773621890930315773824482121962839453723851095757985263071894584565016108503381362802156359204377066152461112763263280384490900651531347851995303506160285432142861743772571967207493011426840934016686550846055409558662236733380646577061374775981427180148060981491977902729537521735688647649643786123514063912760646163943872713454839287745251741230866145927407625503034081201011518976544771269031278105315420852918952081113901919681777807524159913277603572371183188822345018462655954227606588753095018033033899301983214766787543166646049140389669480014087523734399696680326365201692523931256929823645137771504269275098050836166764276704449051745357875901075183120715890939701820451245091000603514209893966696709064767052157418443860916356461202474150656135673708261316927357773286697249873602039756559926134051908653027561201477278581712966174831523748379469169690028377953058682202744431728711983105422724664400705335571831978046289232664205303933181526412304876749523809906316593767253008418968021130917826125965543449961928391894468093022083964269537870803607651390991257207848852831973497196456012070772567833240250565321498661239316993039995883878645203447142146728507416606602286724997150727194084889295199799990171008270995511717186915318185306661450555083351686293387353561234070024007689749767646752068815503189556244376614180017477325472418332159810045397854064379952075901978118217182078593469122922140060916384254778519853922124233528728487670028204081726429983563059593630447596644854750731401710693995931082771810065367232044557695109412539687821770420604153720941360911369312098337299772123244590464781419618525860467591296435996326529165577775534904169274394212695784621335093871009523039556339805176368081585502180364896557410501195396750702861244890180440476487964625101168324641437663860138721292936419319001309858021943237305273443221483427236755334665595125370960249131536558063520789311078904628677513546069958315717718202332749691135169590542783721756508020846665971488549423793922097025280395008719818415324311799732147367524637671769016258590022933070965634289692811373049308181563094323925156893915052513891033120303832805843597709781874656062930384449518006193143098101072208755373754523831905689840929573794694741719682769026324238594402526848154738909196373005931846706902513690994908225963947175334145720323211240846127213226056299354689159547550111512933095051264529635423399571417424566308620913824652500699536230490434899479227349764409296103937750868393902386624090043210285876968950904764254028766191571162723935660462137016169175390411810658936676980942419832511273006800687934165786739673484600315023477030253824613234455282884321502583468374942863018648384982832193999734563164771851471964778969854983929230454454667749262427687252423275893412406526045011097916114616750092259846227259834613897881468517663896799854832790196887926811527056943512552438557304507921744026216097281306879233775090506852619793903523803954192638451741868433191194894350031507675348304456114130056136628671304983439946671680612830710151823194852873296569325627360434901181941178920548858526444443091890151609314241213727980861647387938641647498153512238034312261084962662343048513695692672754003040883583300233646515047232099149941278164488688902070243809763966055200353361970193049087801439819606998605372135104775937058438946478670474017330044281492910807444468696335149874628928185675801307839354802071172387236313367323372978479110992290565294578998832123160609173578292394345631090220011332108499938394820559748118655286990742905033538924139719576189390034946045682855143774388184241827598811886074100872967720086929045598660584780373184537974998422651312111568028467085211790211240738144057878631840880953671855272959920119280972152397831859638990175757205532691981080852754009180160655886944125965089051271295908598497639729227234262897154693990695115431098276847857880350806827994769233896258695848446921948603925504602765721444899276190767680305313563952901517709571031098469046956329206612587768401990160652028183660514877154134205045448733381197781709003114150846063333184944705784940517724958977509250553145457030222575654134690862048903046691308456862207935905659250038739787996694792352797619147083052029074592936294764368720104219894423883318298943341040758451041926729169693608289556060432945724799852809672701754749564900327640179048064506875985158025853128031107550818350340883925457007825339191332975448593532073460690733746809815828377389042943165581631446793824807997173878171034615960391109225702681782412216802442723414114086012113849371183293766954664171378282535885689608276936562651385829632021957254539373373474783423786292453826978916085557979921628941904952581003852062329841373548663732309393379320364532715757750121771248712535786559470926780836421754927607843248954405134539919278364937557691099435807703167840949663980625524487413247018503755086828021422467173181549624412752691803976845094545531058100879900504888078227316534162660116117641892062041652268273825514587398578605992346178568734063047717950797477787361488305274758848101289752834353722710468653973145794092613836034855594434777971888656970411451517667512764030109344130334850536378970334665609261529562658626520578645873209042042637962597532305248897497338778081235693983333083497016919594029235643169002983914421965017846903494902450865477363945172988917616754279737013196817091546330833834813410422389833257267546452750695133274004424065504877999547201214808540594440726955609659766971037905015894921103988068022154233945128852201018411968672507169413919437152523355326042349575668395128900367608205840648081765323468867818052704470101365716570886567923696185075226164023125373981599823416951117396430062014712648084397713916840136487985390756880640444474925629531846121109495387366115309935538094231925100494901561924967489981605122750183124471816202106898788354858855418289033333740083045708927615323070228311297570987202277494620765754662677678341929234965812631357613036552353159707004333199721492802534976824226019709987667421206392501340559504862023875467109707402338934971777672616066657547914331255068073454436141124512465274829766699857994051795459844807388350148685462838831486493358915717207978815019471272737763134431935270876133118787786876415196812243212863532884380535554759829115989006293741743253245304826718113985698801274548981764327048589604513266091710727267450352409814924812587792478124406084974537686475526346714841150799514874701681931558436176017884118132514556461538557731289112751602533456190505475965606015327395385632968930255494764479412347713501429338549644074976224512798815045525292998931692734803911994740567678623976964467107992995666633001693498250904591302481878192756819083380246935075056027816166172604530670477413854614396930929890995820226857430927339108687492430878377305217073394873306117712432882329613782567471558868306121895691454197407595384269241193907768765352165531836354725533983745560750843990834485667158212904122747376941709033164438631729075403662680363765450219984583522942372105835310284576224713243448338536124129769063523032854590717159675082475175220083095161119146024491855342379055466764671208674840264278560863410675892729285670398602915341298369541553791977084329594674353925188787729614978726640219778728705664898826513863487664701851657284255241894686575996877439658325007177273771488179218323953510604727229568037254365541778272079786615458612059343552051683606026695094881218643644532415411968495216527588277719720387041791964388377144764742854386069870903648022534209214619482536255814545287737136308945828965352277989018412819758529538514939762466928599053461647481144081228749740173409722519918035684995369168947364965589564950635267634962959914206240679269045348683024744464490925309265670712849325557292167974435825568617928327284447430564439972170120031649033895663785212033165498228554986700573100745538213621511565292668079843844520441718193568372002771930775453165248931519538813848108360888947694321580289948603611177867524752259383645846953690751911293684224539746327501249994236458297137920894505552018786868711667839033026597124729178629820372169936696067618186547252212410959194084259733976714712080869425679960249960441893370218698081575690020423536855269015827537521949380133151936608703853335312792184529769134042570148964236967220581537839298680460128350634696782951783334404613849069421525543958504999465715378077736028356062759896730217905444189318260901331331651707834938097374529980509353193319832909473026851951115479469701305687995476898102781165886026001673392291133949707558681576255443158297442143851773817855575746596596442914846654653197596551390179769061248044607297269544593411304825407177566056388014996115087803257157349106265439530521421528630622478305215443872428869219217951745386844734866322743714915521623550303613932420959117028026013940369001405258095898514167424035055875710991525478249117429666402034072368104327363603468285017961232126935266170100836917163325866818695839820737182610757896431730340236242022666001339155046557337103615651350567229898984149167467369162738281595519185053454793284695749322879963929616207341013201047653833011028926942223373485635463900512128590327591931895128997578292289385187325861872960963234811961642850868105042274266481622782715994324571620283820682092113858156499791242912008209138444283366178647332503523739254343890770999710296855034673848240536031985616640291660150896948466252877561695617011220860981999872869181039037498968739354551494671934176669921831489487150079720403279533222855307390534088231040038782968586920203025906234891775296614074335479230853118279816607515532604261981742543977413806586094024821172301279970599628351560860696160717640640402209521400951142033884682406821783128789565060632918746087511638937350506990646026055356470712023328262235599219958732408689913936709586150862265511728637946303034212886437849958655560252992952895093415633161481226251875054369481763223095963661563350209561858282790912926232116253810350790711383155116082134396246327681055511210454444752942376646644619917013794203743500956381306698971684651952451315168379705828943566703464520597157258588693011273386432525534763249191483586539778465444133327216398498197766293705988198277346889209934168488595648726046587782071193120347988440397738051449094280326601922429237441673021737637066812124403419903165414088467408436035339269826739199212864401065774698978627193206084876160913188948667135663345407459272735188433998759043341913847921153692824869508577243249029831558608095350669610606630661504308305277142105084418187545746433984398751015617745882205195207874415898926154763264325535551646309102342426721299288626899722602939663737222385973799315500756903890370944832441395226177261400142089927779771668206711100571916044022731708541111553112533786256952429907257661518583301413547013385070528939067211260220137717121861106628461292982315486240683653281756929797966687290713882890271913059989270638974647166730829982418372068139931573027874428125567277016955177439870011495819515115164235081070287104773327866323704741040993598250236535236016143529911132377288008633037180392313471054121370287288438427463220040997077662396372993863038098743843254620559766267551853755200535198604488811072628403832855482380274035083034080490598875903058472433339123846276587399847403879706345397874771982844258077969722169853494276518421360530110135372555624669146791997968938163671016019579767610061514532581735005661851517229127756731258996210714718583499292324627541560599309700510052862195586947467504875896650539930243700199411106171680061972249346086585953521639470698427379001699057329328167745657203341736709953024604233861611287374477282328729089791032037942196904498375675978193314039015668871810382455742551151546682830393147979966850197078989997628248773566892974765475234108461254095309463652926218458278671923738235954566358373557853285610899618388118712599682967133168977348336359467632853148021788171898260014404317743615650450913279724362796098061043283252948116667075008001480388964508559987421296983108103561196135522430954839955972743191040565500883251904274046399283118081684589074169010636467813914845636053484186918588634435332941105613510830538587035545025274799442089291041168315150092969890765470152980247673649008448125538458691988823499378695106526564685402993643396130910634510479600354410861425403719136873913979364321854876295504972253614365260661744090771731117537962244435090726008097949753799991661145296685518027771695300796386116005957980882864147595536831606391854175797240737370113485650618523227981036291817991277262275115943014523058826063489098480429592949201393406255728603803764065343259642422850473464180611152073902786954984544392505504838195853087165411723828765247233919310914124087242907382964518621134273752422404083643993400917261097294287063975306039266155538057135908648406349739084795779420493372651747020352096371785194773288362912465559891460190873482768263495361106887598027291065371649534986144440580035248409145798126657707981570219872619670755538736539824941056024755646482288539318278603278311159705341178825585259899887292738894024990447004349366435177695151069749262637032846359825420134227398028844084812814052674933212615819244897820025904590720807337257910893270847510968365704935122064941362496604985745050772489159715943918682108121741125741208859858386674996860585953513773722554994809089193352981537846773238035064663494099968316795511191090293302294501758400175320070976040070868322004061036707211005747630084604977644840389457868143417161113379588639114315146174223950274927914217242242974814455155206527296533019738414966455618707427032804178139735244281294027364796509021615063542372645736545526756705642434831040886680487140164128310874343269929128639040178529195205682861039659397647139023924209631132459459117884262508703042673177306584444858091241770148322155390552923771457325993478248205584069349180882310048544456310179569785161744624614971268256325131944603155711196005622736213271378547941936442338215031983926877465726525840301743426688133758781594829492861595866616174607139743863579876251577166123152396795128348725129524352661974834117611999930560293834457474303618823576041227654993088579318520999294364391659242934242416187928869600814089424832497753564631640021175713006475619858083510743611497828060048576878354069209797965894216554115578563494024249035250638183681861432592924562447360594664733224887173866235033933269536058925841704406912699358577934087861561358307569750170013217994810657568084417722186708796266425162464616722248881642302563302546499835061281591795774403783444146935879006593826253764838843160492113848574035643697937807618819492320650196995912202134766619816006206122124654656143820786771579760730645266257717517698671952939931180957069183595303816027945309162496190100574855924252857841219343185785719332550382369103274252396103385566128950700073478179627742392542301488527136524486860219926461637042256418972108106541388662731005756465002485339218381982665398874741468264215500410289252940476281244602517099042859860953695004517685818893048494241203454554586501176688730220905947694787188414525370477586217365806161931119118026912479108478570475862376805187001050696306844590669560710911955722017397063626612514782072784707478085671317226270256776904546734996839364510048737022987571054490435531191375524819810605251226881620736739087136170479104610525763019010501434354683110062775527823863344132380599848887026352283202968634525688567547663889379972612349966856480432386054285154115353708247431743266905538690398085471338709008075050927810157495565005081657038232363921223801331958591816153221442146505917746483611407886091718581984072902838950456715548620486967415298562828543419838025618837637028915071920175749610524242457993243255545969724040343754976738209260581133482335407769936635732642307023912090687972108040586446694323940578197089203410566196495635486859279197894227742061123487047653464130024758452470758739345050487725225645371609711353809302768298404350671831230648134735936519856275263616974288095423721739563940605534381602085411606783685157430083536477629498154635057590711011647754996835808018079312497670878662103365452832054334920627888043161037209594502014846562089693026425328014829761396840071033253369386653948138440528074701366344259798872475185299931045536045877962400745146831926851270831748243995197554715950284729350331992854728725221682034371053373595603485068008282637533083256968924310066388465260425623496170566825432083512685259579237271842946574774734538840726810519346827762366540672542782602821555457403251281533878855324566142342369248596545744604294053526707778233403438621008785651662107566104990780806351748587987078812111629502202857386529100159595404617956819282912382251437613729161051231926876064975623279834856407546737695871046976341577674019626467568534677083129232890034278076867190476407905579813913231660355370638764355225926789915984606595896466615114234291546709085880963613530503244634250491487666673548977567773905153428715518211142438827233231081623004225786100030992879512991916743390608001159647185189696262678844621483528698098518087928397799467991850084810558883690627014484053229080051267358046903672377345539458105977088002461887041969055718866676554441605133045569076522839884980101499478694109813879724810661472344166496050334474001134989185172646970485726334741789931205510914088714681425257447449220313143333897325731646779351498689487811371542256512465968818625257267824512945104466724015166162915122295164789499780888920687596503749940649998416285760231475746754439665855148793560382065823295141580781838035968994592781003657235892874421845406067573121350190221357393484176392688398895529778461064873980409325750923359437874984170658431485000122568960154856317487644863480251289533612834375115703564787827710227468978393447365920854732369664204112131873106212708157291621219748679549462815041568131214864980838432607781062560335540917778598020061088496887313403941049052898904778969212320596631422943209015927409947447149767780657530199599330615838303052153220210926936419005303616836966459253305513238625705892099714474880750633491495882842491658607965001288610315154538983492636821802022192500539980732899088108508428587736111942127293517319502909029987017167634059710121313089312560386427941121513687327793562475361545183484638396294011834089858500634137871997522082994394673270545791300380497231591175487938613798128427130342470564606878662592586032361889884989289246726876152815522056049471865111125320230116698106478163891420356353206162064362216824656019603385087225824725713791507074541703009818462777210136697013637471664895894199767761579718044972080429192227367774003222775870075580565459206010929769793643763265555914213575988219950437423074967042338085402679494740587098421786854572321822254975312955726361165138918699701369360972378538286210803817148002924272526830153024526565411931247002668643491459152650205919893211747723827872984165816504267663982526148927056327872021482581388056446008291221541393825052504490473423760133090845359745013756002524415255232936089610515633331931656357589259817688495764649978677097965502858982083961425572732067710486304320700668656144937640843397578251989857447111429050382625782558297667475293166722246940938283894453307756645187560347178863762401864143288832193271752883827130078242006389838009460639190999401916909878685586789094425854608183979488518431786509427887881059008300779074338026139840793837283904429206315508517538086677971238368284080181967247534935887103857236011525585942688387777580657485637738340449222582419266419499568985553591958540873449469064988227726529646242759079102145185053267063862245006359700947128624647264196320568856997162053753717745156287268828164352942041732013944124827251838534815660429778131820738032672877667457123981096844741719287869268292415644547457690648365496662371954001787098914588390051507831260606005739268978834082505404939225576300241156215943761436551671485158931914856864843958073387945286924808487307262145861542976077857606980060793671775920415978233971629907150015867294025106756852559124943290637607609856551853306236104144533773033117660188587334417665102950209529593695901715576664651936293209279940487339872220122626074499593662124396034455506853497107500228194852784404122360447576718955247837666303221992137103125250122341261584427003580255789669812219366403012938403195841171708868142115545367843569093323960211732329277718893213202152813655287411101641336175265940847169883996428898685490870315884064609534011030958861331198769215035509674255452252705002705249587351349042851329143122614728235638984631984687863477782664129489166029933366844947114101329328860731365815388120520196146300629902123845881734858137251062193145426819513757276266781927189908213780643268924305906080066644098293911192277248073701142181713483918280220732888461306294742811566910747989022973485803160986512260356361594866998562295366378639743909892206821192767922118055817814035248573753356968038453810253420321426574109711871052164904316579384377247997144863448294136896111117310817510022702252920029667413806250656252556570911259756391367276929913873156985279959871590320423887136237290181436500967560984225537150347452076798397037499932397477923449330013694393831776699279897755218331315964640270656998675753238090433553363131484314098355154217572291742416034909130098373020025640528774418003178487637689405628076788041287520890058881684074940621731324539325245107963560364910851637396078279462458234746076088976362072931107374273493819514360627577888656083151433422184093542125286313621679873775393327433601916784339373017394725144570596007913090164552966594076330570219713794795218543820168965342778550847104939748504083415124427350297661030699086432838362049646084387712407401212853396826240999135431286775054863110469872931231180657486995341104789408358592297396938465045142245153279403529732407565652172729983492060035967420090833996102291430275247192047957836181409030227194727530011789397234124230577278058071708841666934435693069070425163997992529348957807158905762115859677134678315453246764987526740398108260727522980537675159446766533042713652896945034622179445323506962401787434802180864612923899732230400067170590652848454442511229108729680779915054091221869468479066656857370786712628935248868131335885996739729942311385056079139351477081257653810116237557717006800907487169601358916781610671253083409700430686597397135366864115497920673427540063547415283203819913583079470332712728862973279580335543190743427539922121691504656247445950585772723306495974518050175031765208502079644450494726003100634594951125826300405515783387844740260499980136824697826058684567656904176127651660514198659228451542938116627635977916530572126470432696815261101168762853190972270196486211474733970800084786212463287348438988338322830653102673208589936385791496665175657326018169528480922297468238308858305755036542394050144353930310545359934333240382021825258095373908019246006281048735864414754764338698263134348159594334762065335773904310518121951275717645031372627423323354219033027465197325615183832918172604504897570776338291154567498681546799666474125339604413880190591722338865034832374122034154383025587606227649744125073803460624264911441013157788532208607550580624963712245380333726487511654979483917373041616478877593376349402166366989770750228358423811843797320989098910336745749350140557357170505466983942259943763861795374167258912482559538978511289156808891847561933312643612553293692042418448619235781632704452426035130419179240986520165094662888149217836420728808971864779448069051392818807536665103755793172204842565027728009003767437821742252708116432361539181565968638833199757941543961546205025004944104952951087576084634411395889963528579456021916992097939103530077605818959649881781239872701818737400495530455147736985300509175989961413901682003786267213898242816391218370479256430507384472667348149494101818733163171840267620824394569721836308623129298199608990159160539280963174183924267470345708683892949066717723057729861813455843885848749478523930566991491198224321004765680248041607997801791643634197015338269826554492948347491116078619738388962625426633028473852017843927517441498292246695902690590865411324832949982866676766143276398265067767037719676269624763062029405125321406853822534114879882211442480747259227140339318459993868913976501937788667735779662182059744350671614183131132590792869480746814174304644315695022635775546679420013312301250529549186627227280921744665259605761088636938264889760155503151251284266194714071166123422795221571014996512135156458429226942500738010304282419893405707888913419718693251901354078782548472076550682976028274382186760000398957881378634849580093148172001496724675821123237696586253244571308059593317529608641240101492568361208327667922527477390427241177395316776798769055389478990840060769793725397403624144718459249163300300742990308873958820487454066551346793421098998222334185357277408906595378252286001756420444433026069328123533564162987046834606701127649985715769844772439541619146233668025433324535258996724559970935998824503917057978366913113799816737338579780790715191186336747730076889533267619321911614740460575909644671725289024971400444439661571944401807827358166440226114506219491987562466130046147839735512108115914989100904235271124374588191409692252546868903849797236509181793027809477557517269690045548456807293923831832390788923944132376596243134100467560745233710516814742108781163799256813337909898672443316094614336554769699251338438021155254166337267660356363828493912368590396649798295779425921029693436185965117043340615911139780522867399481390794851056291901423591868007550470885728588485809097499624376644350684643158865429425729771469918378392141973334523946216564898064536600792524434289402142075069439380626774812975381333681283705385888107894143060653573500892020975180477000954730420070090278398849246599633246356301824220304490492887275358933707038463930836467213786231272491593662974817426355661680589611750493555064959018720082615147852257138836248295765936646713924283599752916534207226245731715723093077096594370572955521427383369238182310521205319571012962779325241039401126210208577104359508959101064029640762860760909505849186934300381364204344980891397403242041996141281124591059400379878577240942157887885093829270493799784598028619672146882886479466965689356309301951106279422013543047619236973026117603191731642591581715497090472998759123384654622418128004826136913834178976590161585498699405599095803534156120120348103111745958252555094313669346261165809445621113455027169566948547227819202899680903502486403328677963665603451512325314386527940157678799935212198121960653505385760644096555016856078158290077390264371492234212335590881814206371787170353172326401865010089963047210332717438471823183505724567827865348248893791180117158457079370225472095249731301963913708710744451667319152806016517535216065538217534962499062556996229751109415609318049522034615704483378343486467606771533110520990209329733594850368797314271302951473768994897839787448231806637674023991710247388477813625839776843007406966790339314033483454188564033399632776878191046055200713640339181755279766085512026470753911840131562790934523463800606643010668136934515083386463824286159084348159409751335776975318239064215662533066163491940909274360677226332137828102245429418424609008793402353758613368238601336594157060000361055303531774935655169396822926203327911992989393164217092099968937502029171915626529944707533398342464885803229731563959870543992934833775168498051907934826227841937643193586593486570565331294358213147993371154342357980237376665903512404567146449885360731516341248245149791284884263733220769253084364005132445797181572074438114064643003779857291934424608317307296214307107800036929121681298744828307789086397261153137528674878243698180710732421172702952395011240763376287044896398024965841198994685206551676078182508079831986189486120697332809705603526960262783533709620138859552706921396173826394431582175740682208873564283904643419750261217109287497004822680198597439571579972483204841857617226682326491000891923939210474618063292002607960188093485521181667814172720466278979866993341713796109371543474489199081380490138966489772896217224756300097047867287328944727075526613596750752437581382993702675880674575368492884018171471005462273416064091908952924193329759717617713981852647813642422330539939456745169563012975964796879313815038602286794446162306093855513414020442033594267987038929131423786174840770871247565610443118992799328062904645516115637713203890004004804576715164739628716925858005050615830309915667122393855877597054509052156429797671746013440166903215562200540397971588106424520181826262465185049467332079021784479967301661896800912778507992358122603612254592503744796835665440810031760646977387175632722971911043283167109737026583445447210212629754175940282038819362210273002338219173674416693616404506376392874124815551709579951292785844460477748648005765625476715523868847035777808406877022741994277867022435476334060633730266094181232836663397964006370611454370021018120059228545881709164656394752849101007054935465481377674821662535369869282784633198842113923897002001325905939254505032289110469670098778676354863510662492387996564173904652296066775065628105284632853984832282281603241256648025769256987106852471526133352594409731752365129244477922711707899216582877835436561688649745046026047333793068775603720072030034329909323217596101631104141025923029254141232024825873683421961255682741354460397593609861360044579181467845105296333279927187528227220310365259163412917455476010764579009281523001266991586710080743710608924232391887225621452692294702167953498669658477013719961407567605061600248417336350039980115912472176001695167565845180702188520118692400565026836304878311361068635429194576650185149523035665859558682068525510065653653302608948035350886174469744573153549796139012231949349975917115163767751111686663364207912013140470407038192600532752955903554614224125439033336926375158260007836959220875282998919919442532172002563716952055741222599039923785380901356243856735454872120449942702839904293147517912340700310564419937550984219588591572190233177171829226198855458878577223742834012618783710184324133812763272674245316963859413225820382401823592765688715587532646339164708172852201362518141940465733699872721550886292286729029327840020089879744182761058456596296048658305419897069987359968937473905166518919212399979569243074011619573688836296514346637460778503656257017765989420139855516146700460030064486988538387178448336097218086156889636558884212520779612210961468827970517482012203808746379880115380864859442098718281575414387042549889315548980210526763808549688194346623268345325104986303421723896372952826308546676446004210082426922965779684280787390231076609268718327166415899472064934306374358037672236694902748090032812840607921781692148019886886261539422130029284004802012686249080841577758078338603468000593342080721781494480507683623014598862991664044712981872816894665671327024467101653660247155756011829820219032802876632433778028152792356333522878459109158937440714793793936792262053744951259035174939653215730483008974608607992323292743605881741651097289099896681129926441820634183201789502237710612647095543943871769299771088539212578701049376002635725255999010675557662260864436788763940723385892469319493044495814680317454509542577851162149659885357741386851480955717314990344494873835559524178858345048736608935320108598490999102104972918191014654048562619777834772488460271608342914233736204138601686427572824176433050171276893640567085215924475620975861232192424180109227855532568254695524626567096434436828381148969036387950210897573639796881499309783819711894393920370351644593777508326669504481675757947154609581715489491122566564320431081165480682632307540612517366999611047808210681806747762219578531698650500563280792502752145126754029213833413306558560845528081558612648822206555139274858896898137363625451497750503185901544651161045790348814496688250199424808849000594448312077989111264483397049355295870917634229274498913929008932877946321969184106441105607008541742774073170906567972001940393363015117730040602044507008072309428861442407387963567479186401118676895619951041382810534653189062092928606907823434105612400276469517027447347882270326647026727882946224344379403578871180772675649164047617039570818767482779896501394312014116373943436097775437461113016439806531598334198275198943109777449809942097618246672319363017330906608179484183794526077595844983439186222936344699539412184677981956053001998331279362718312248233526210036213341214866005243198759027227617445526038027601693499594809065361617423397889965680328310083588675761243033424449276883667854872020245247977722863126328089755713954204551162708648432579333122153307505516224505993571760967568604498344587661511864032468085793184180519500350998465201196029996663856069531195090603758459667216401543261456501055130709115752958612030543031942811666237617440741733611250258461164221834472511697724769178285313615260286990814834303418903178575100339099822368171635645927651602189197908118714018882216812767221091796896008672289412440824210733555956206374241991037568297954693806140298816556328677289597562708385723937312054756670212602299043774495479976288516139544023070072134090899417466398350255349572451502534601966842571395028892880032934143947191544756576005688675329892565561384041185743558150883528669917133624604504736704791321996484153499208645574986362173740976172533849841714784667727522914513739011677194847616587001555470039301434635724888616606875885339026305059972354246079327157278708094247909651342421212897008690152510986497787781806577144708098283351847681191545358440444485266846753511157967263299673879350867295832827497996505745917239071880457853368514855112659945751277941443761355543711991881421805666319475790401757560800731218177973471560572251027207218662084919100828942754692999773708861354852509482798115280836851346147060541159056149971120271217933587485118765547354034176714447801729994608357932523271566445042115651529854747802797002612293633769867862539502820138052406749963573429211719635509485653993661828480791746250033666372592357944764403911100733826534315280985626502056628531916776916341293274168766758056866395437143306298009211294154552997317711311153657304580125877246624049408965995319056380026820643966116999977910372204860952371965795942904664428084859934109880764863041132555974817528831275797164582567455617961786846228395298378920651342182962160445224095131566855607400174628628392697334290544505407953841052454840685316208776899082900326783209184165621502449354694684386397927667282674678075505462999895940424497127170991784058806838835672797213719982542965419943812122950241265905211316861597503971721452179973659521747791201544387776801411555040281588679088020026607805520541383203648085106948773084471769871078376298558453327068910807477641014062239964042556579390192864923549007860276935916475833355332000542375345162397922059577394771409484593619729001808701367176704025807648309748561265407439062046263390287406366041594730642454026412459226066591232989240855072017228606991348686010984564513053681465327377740540669555435988806665715250956994355670795853474228999632667945234802944635665020177986400137430152171551507313131225677528403304982687070805638560502825538600674971635753187560321968732565571000587034080319208113516210060916783954722302786194574794040255304950290030206391063481888923814538526652327333014999208035675087738304994629515236725367816675010220300692468965613639678055488277832060896091603564236755787864184520654270381782385648922674819572428570642320011117668395177777806249763813581941866561983079792145623054059150707251962001065118255276561114613108693489313336712954943894456632463581334547236798644620415306754837543074529403971521541088259883807877085536626826497599363073409655063739257522919168449124087178540562508142716673106171879420540804572294761175064198140303350972074500564540593675909686063005794082920711869651625718810113641660278594864321497693503137201791077188039331841040557148974545917959150517418611187196632109942438833338583132021826445229257672887680490780120756051095559745809632455128603359569374068030535269505009090779314057169854038176340580378783383766559256930379298868128317125631337364671962104077041911723134127201066368451230372759630607512725116057763272885414482539069748166323688700888850177706603618512892321999218222790362886053697817931782817685513911155351963239126194669247460150209116401488656309375171774087567386833335542738532677303791418954622541875342773643624981099275023440176344133935160169950782503533168071149511960280202530616229744921431428270412425215295563246115733193581857594623675076743129846744626723010459713805774722321829658230304460824356832150201899353826679765406852383440808541631101310020102245095239839019278737153147489963450615899139646642587307766730750090661394848999997034177363803660828254528886392372104236116055985281844691901655600027249697296656576388256008431236019951591197370762889395332393012483638117970311978163822683207105350011816028129868893257420888356303188530349837244853532582771362154697136019663273786787953271107050132544749893116062867572196162494600569727128488687722410991661726151416012056508694118707734151670413781198938297900963861945813493808024721425638024344210238485185108850268732858947727195438853005825428379693037446768243879629242617085291983316682979369912072115520894469276462187429986204423695134694048850514133951511826889414601623360985777720269143111868847280508881959534926981522336812221304704666576972728794094826476977308316300394008374278314132935671398936277069834513697178824680615992939233013397563802699002135041685168836109685785273638295564756359355304551835055392491021526020935149710850102038773077998967699648422807662409559623060426942776745157221520285535234001410797009221673948123475332628506211649287105102997856106310854690036012826355114038402108205116941920117208035223900585074861591288532317023301394617782893146885018506257573036219185786540730178129824748123512382080117179504824681739559357452535720088025960438090095324980729790443702548781495141163051661941917396696430545760854335462775631610482827879245924921930456259591303781241968951034346628241542086640472033457815153364867438163168552284966698402881918978682748640080046305429368316142761275547297931751350182596708079991315085936739598269011134180337599990419401506087840450670637851785173775744711973984394340311999735581563454766663753905462144273672207551041768334280356481082365142184275642877002918874343903503097155404543429865245096576929033471003102329429697094605877582696086956781823280079670880980822644137210842134365067973211898771161136399499772316373369088893611226276422604367578833959478015021513749927972776513053001472339002405673171895873051706783121333099317530616389814276884079871173737745378352242723952218418781990073083223045077521683326489095464665890767248007435311288686278004310064748585795195804589948204016582163373571338894425793292114536997753506452930208631407133454856585609157409145041144965323498284492123942502899075258927726184827277559155795442707738010668625295030174837276756856502958145800352129293680229510661529084724693550257089787766670650473291046616355079178204274799721665869162137183040548915104497899471987160983817663985239353548208930164791638299004790383434007132821589763666201752416181713373147590147598234869145664609842219265609147820987206454299901571613225780557422299551075000422077181526450025264591365300029660139872956446551387104672747305173608685120502188447932547641542190372768030452273707944291968847894539870209727303663135831928000953592579968120559560753929313039102126582564969227711708289898340175635334867377844289663170742707623440485926023165495708331577438664276533019796519036575286383112229467779134420280744231642218264960936540477513374686677801565205986336107221131947735120654302550848902326198683770559007007384404739341145178794816129663518707157207666442168040297909328840792458228656518144658398712757065855823088008722684032114828420206764851554712051987416750912022728826487700751555107797351142597058759034271782617203271162321874522184996235703430551226303215197220855993617806799034244840735187722497240460190822669312721638772861947433822273958993887926691194525520108747707112573731434716919270247548492341031307132364377244495300682661436518766696147699703678853448614752188842627895323629467854547613938712285608453987471497219949605976440621752188481780250831609438339598166525067334562801312902759070342983876326712309107815691295406556152490074278267030628830938375644877245204248068322039854153335132166320558782653610507954635361371038032451813106229591901540155120289567655598669658306256228247772851188380196549405011632662666444218737972386995411753143153241852925981347720617111499385444754879968527348091562228128331271876309946671114503971764095762309069274035427802317236814281397748755850300250046713738936413158322179168244380371709905155199398168709513187421330820351157541082015381722434344746887458183783430719832063635187661448781735325973239864086581314025524332492425346476886347031185303050147510259478296168013390649557453165176564896684202024584026770651203575741808655632208437730535239516337257349797939282918121534647513675903887537266923976985684697532756633483134696403297365960684750573862170353792421086644666813749923498520974272260490550940742637268818631044014165478114034953686983838065912296390376559145569845115893484153015821793746673835655009225922657181674541815377264407662156729504664819297667640271674167935554088156589955337110994692164402014622515452336450929871163619240723188740286764836646298647798974318774810142410687681513817521754804515789563913220025538102314884970814924717468496630601940649426186173752955998088808779674449860109334756860812749277069604164060398585841193618358697876382561602502419870255316881891043095081091699159099561481116685032541977350429228755739181690208840787545681671846524694631380566989187644141834909530759505912490602514540084588127540899825977754125557207994196839207828735991492133493784519054373417784994767220562157637550881342011878814493882201983441776539764621265374326919245734112185538722731951754226237716361091116888165376412200195740611487972653071540761756369104683933171959917596006516442152743200086483969618280224268739318055500785176428303474960638567748980431103644989534940673949076000254136480481018869528814559594925007260607362543729311254036587298550229315847991504703187909762690069107201589751191941289142709071730036012086851865573958418314475442406989254549888497065765359621421663799399928418887332006151696096357995341753443562303679258082781678983664466795698375810047660158621926880647626962276599997862738769326230622813721269722878992293304944749432498357345658572948405478221208291412074425169214960157848268626721190453296289427177048394068948410557789789393327022647591957009006476809023880449896301823046786712548959047239841899961529541984216481797550579588590050714690223193425806874432348592023312116234791982903682729331092650206401606965888099125250276293041155287880773254653934778808196439300579896004250274785955453113210596402301280420067499282641866482616079874749089300068767222488949855349372436865657002300409533532801213523745515224523991952063623048692475461981628062968573488261442558145843032948017761152715143342533430748980556490493999295506840625770345302954428131098992280985150737589115718945703921870559235290130448861922938104859760573894714313791682316576331264752902248361559644865262257431161455912408998042081962115497108964495142863173793060753065774655594189393972928536732541331080755658223603272127181502102214214086955955652935451458197015911374629957425361106234332324945608050711319604034173261473783656189200854464453637010144996119932013659370733088558992813931903965752733030616183377433193537896252025354397092237478539498750483021351965698132175975712066262530596052103727382567905030331653042422515081418746799329827083097541943261041846873350482532784195417881937070194814955439699867168105737936550435539020552094940026783508660183989195859285367951296842304246440768254498702771733666305414393269068017030792456330846103196938804407754353750271023186848759025293795975418129391337335205078107815182795707203921161846756495570593266471709660757735274856794495903777265108084971105354658122356351900413421805463527968284857671677865302045674303410841162621228148815632423513441493388980588101492037929247660826661986486162700801520852289915041433505537460441733425126812497334123411800983073663778312326538835231752331445449005381912088442058586529410830815961970774592432356310927699701773125003428996551032644272664660100213616913963880080165937613103163631783550118892705391970358222901686543294263814716367570046600634361559121459717854770417991775015502418549473263573734123790356394247345898191731785309428890865712389170438197976499234192186926800722412719465466850219567351832347069911682896511416970926604960972687293699813879672673529136315863491125147804560961831604545211227452596633670543232957911146140027604747558949828741063142216287523557103926258811834118875067526587846934371429091708758921086278851913504776342713315567690601380214189079441604516401898203514718291508341533256156199467478918835846206015449386950698717213011006606633005143558651283090070048521649412114426199632520996247627891134105232350913063466624971521583264903752230554545777504160367929527222659769098653690141727373383839178037124738212197840485075813024588133471189522739341919027057935349616539522010097258779131646613867275857398022445408220070634221847973507498866429172959464079820126965139991290118359811129465674636268594271009765864359897661974407858221017113118451855086924414676751218917479886534169721976925463010259113083986689153104177205411734647243680569577177458589088956567594422073507127233355448422952377363544382148948782216270909190329791604336002528610291308521570808636517212993127664640293500338195660158989346375949158007588858395558904617966634861796082363550041084806965364207051598331062658343810881821059167875136053767743511734498837952073276716321136058729430046205498883887192023158030039930510089875300027680761114934616728349000993965410296938693048250176254792736026542483165879290685763551635966018690124495848695402573471711459174155819014745836309700923444907796682622364396118027199056297299305434277743689873879511122839418117008329342764780678835961117390583832097312860372975467128334700460241288783433092286392597407473664856609204680495587093125226746252078347546098266652427208961753076246742441464544317025776923991263229714458412623485526716030941449741378268826268663352379398509896390130395965741356040025786686535145591536087871542447216513499643550508339117356214804936324729680286640729670345338042721813561134769697321036312686003834921613630608190019328322103461822785200452907803864528557058920587609724861615445288429234936462370818849074969152712603979313533782593143055233904411514560684590535899948502459646779096067847808324444830575908284168540760107610116413144520062220906540137007732933294823244805852362723552982598403744449658801085155447930467204711641827133612422331881260230827316919576058625443288547716118505091370268213486799776289917166170435886185352550996497084898382985263166825033042077374100326830611487536533600401025316077482366468755661517222813756570850234004950245111306974463492997937480872891362002192307870556756597742997508163077481960848656570440010988855987650420590490972913745024144002322999468820270135109538601276468215505839580693271227323545960206986591191788221148124376480280044065123243954889535140799296955610813926666632223224525252501330485825973125380317035442580012640421104829256268207723772896516253116590556385213471440159145927587974409362057593398523424353755078036109722744816322831160387092265328131655423048199512644887548839498271938114771055604315011324181941963791472672817495543407878961726187569913287003558103709025886466803538634708579677159737080196454863777821104901373350346104897134394759752258651259321256026387447448621415366699117900334315714962167997848992274752307314111671861082927727694825386631749319858139458196662202618963485619535134441576277391290171958088621093294951759251444418255906384408796353963811689230126615549484607665783935003307748297409382520344955608476146567958669961672295587782954791874351760776479930293933593308192868486609591934920091763752572814082643758379418416841897064341544930877975616225326680577734451015631523488018710862764355026218043862089197894731278014617027344313539617823685450623618202440613930686620597301096855089060512444081712834715600661962254127358469916189583131257641964388602364876915738916028368682201040254828015690991908063839430079227308345374460505653093659651652481454726158220920513979457289217744810011005308895866081628895755565690761216968780420283440709217131789786011812750926716585462206851823031018219007956581061896363703724391684378940904413688080249204928270115897249830362288641206014237668789516094593206247321695209963821778159360089124567576757980994068125287187412521036479869105500116021560053100081135849542521798043490068225675060975208089802977759989709397933202927952860331482540045053119229601883566023734431890423912480549894580979199968304217452412436149218069048008221679519208636194477494398275079293502968772880158700626584255167831063379712913573556527447037303824052355210321778960723011158979106986527584112213629319240974102786192152242932330128520256189916610318075468327698216125877072376504997262089125561179549893042602772181406110833271940861369173512283508016175874775641250791206146357080966225599486197929956763533627380733981337456598189340310981417378093957014972686753504841600086272656150100187290797146372051727100801817023168450408261700625121222062526230801514242800808650408626446629257062187893780837284702855080210707867824015558154374738562353406391522096461201549633510581526995863483122833249725837660409732497420550018191722873664629935883028259410377926070143742163215238706541062637350557370576501830841420046913658643242355099987221689815135467205480045958525205472178712239912442156063775099313897619432046436647447331233336011603705963755400476715578281122480244280255763870298488469102908573761452830818738513943957868802021712832000833221879556391582814666275311194610031039125751689783584727874844969902235253690233335254536125762284105943977088343408002933651628263100974460714052089136211678650911509665721730944107900939858133416351901390397541545457402235540579336656031785192647429242159900308942301545985397380629274893818621440718112736947204864126887480984664424613714716473937746473088714891750149842715917786583582434933306372600975830640391227004085129144269688516774707482583798255030848630608885487118523158489156580271154459739445768397109393602370809629683368858167714551668367766957309725110269169693049414299248600617382663091432160371633374626767434546176783969555837409610602166963946854024485239896493176929717025131222986493653425423823059993511895139921019027034099945482137517713895595701555939821304150702295273888668120150248094270467693841018016011348409872757370027426286332860076674560694721871020959754366247844236139552884920303953740578847903756656950794076353908056874088700528868952255233846678469448692924615862257369041795289869873940268701936317139132538372989638886680987281346713535764691979623016416074826432394297948487264618374021120307166723501238496143684695196601351909464353450988786853148333860496278822442796854450057208881991554919550595730857318911082307442667226854249463100364316394908639055611097967909695639239971777598579177743395800584786403858476278008201238158757791805364270726870495021646450740604538096486266133638186794770494554538036243823127261869531992571427488364996562271571060298375072186234277117996262177389073657620463744260412461138146176228783343628355004959096396661907357014120450443897177664285104163033880887404620805362546207946337136642981463965832963124088209282567999779727870485994957856164597665277388509487313210809141532289908755914366050829485334086645968627524445871888102154504007880070644101789653090864196169158277494716927850834554862898103427095018221639939550337325815948945920273471119326384224342797377776326137881523192861517334601656110818090074707397109287909117090914800140227039174936580858838173869898950113661582345193779609861650176123303177418530871825620320006470566589667349612358739105178552176669376683239484752042750472441437920332179968398015254575993794280789730157119445238048127725368390264343794460006407686772472694970534219241616546339124581926403708444771575173583478062758864478885950231127654771225718969822273979138515595329188057335503175400433594661538139497581419260951386739136926687202245643774040154900994986747919785976505253294282450483394001479812212325264253446527212991473051521392122499430362237946190960737614163524400899997259503794260309196215206068686225569220090395506057768049533372577840503533915386124847226383578429269523293525244146653733167774616821728336051607682753626057639194290179521674066922311881105454986191613104466028398244202875286214102892876036401539881365491928790144117981294833859865639180443203834129318029788454329694807625946700549504174431758295312983145788402256611736288716473329664507971655418379563582280036332076342667422496497824749329875177842680865831769717458942045089956189006587107485064222959693888128412873881615161238512638763681758240730388503327647699694754607470443612585457217796560881539724367166366696168243138090637329579927503251210533066641957577018220907780795965023889230357783975088613705022223793598430960133454247849115746690922136709173668989044517293177599762036198153881741398184299662433207860419526539447932711101463182173733808536959855772652877675412813321849873493919100585270011430855527681452512859960013234094287117799558643218199625092208786791752749497657102989468459228421169604391441017544888017489658011755951329640540441205847308816313717823226289674341281969189437860615851749420548383353775490179906807034770224909525482325294259578385906567591833024835652011409604431331965150441365564991840830744492912990399222316220902683496073518887684285592109838900926574764961666116263486310787331562911159707208774475902450970730803419986162705474907467257066689847019812838147595676404338881966516439331139708108649462988739994987921196953073211497117002626700249576535026135813622883951754097315247414528653483161711514051775595191441352525216951664406659291161180748513478235358872091740207614434254725766222110514383289211188116659937763793816122637587729414892243120118895143516090777547497988720917308914664278065806416647950850057563503086303197103624115840980115768325467010322903029456790328206473728082432114338113656521699782127164382798251998543814955724427908993649272541759593675433547085358354078752450046723388686767250118619719439443949851501579028778031857896773404261327526967785443852244111705089574595645604636071220608870012420367594645006027603453773035778625972111924907636696491571915200532512107624558934367293369511816724318953089220305266790575196877469230449014332057971056919072609331134371665279884756893174996056968433587116224022237330292295298464124547477362791452001703480866055548188822440799300326800299070839908664613967623996644099377855462287357055809226904660503683336987360282230959673970136384737969114067862672456901459713077493559431035559755794154454952114962839564983806901371796683130805512711828038316005232371593012924991576007091287946637320342720444518027337588394293699203720269575199471339606946220596463627423530106879311077434367576796338143102679935974494511851993630983643643762501491133186676993741036403442132445403146195204995962308282695664166496044439342043874927766113372976572545739439923948407477188804858746050623483533948033492932929643226047016635372852669385685976488961052766246526345047904837827922851603383280399537725439289169785808789223493264419472219001696184199153582430515912782791032263721115545279834247784089278738278177372193272400873973722464605940106193069766190432484360737412378180795056308173403504781367043640192620874148922910969382751701911124983143004437116156650418546978885906121185086861061819878683326347970820959003148146355692537939905361759387460347464434433870160487518891677612203744846640804601255767486524718374860413754786483704874635407962308122550093099793013872133855162911175848642533219718422443149784771649741117668208609613199786995249156044301940940684681648903374704263467792725445277245199602139624420382087763393749516749508414193373356500537207808241648515832410924859381842796875557588143378926131637572048849137775218292956600243130877567765726163817906842860079406739674855007597587057313129588281158354753976520463889079498282918262530383656472633406905832044835186120800440628232680188306676119286397678759153544636230769399604934396796229697431792948951084475397649573863377100806952796231858390731189988102131806663565083054679121675004061781464432676837143985431123244576110677734787178252183112911990041387284348360235512158307223167337054963815828278090170380121837347692656184938129530943280680675744484993133933363590410308648050509318960901153470362582376245454642817383520808306397605959570266560694446983332206403483690435150648033794422249138790275183485321159736872623050920751326229668409557654222039953255011100922367185853393011718735061399768916911179560930881624438388312484031810225253409362112845449410983464847230838403522522677346779243721767942752908653180476225956423555336888905083835818788902965801613118112406394099516675976380092890195044836276622291063067227000875032028370143255878348879258425583194691314642690600873913957079527878557766624288135294673149384484050971710735923344156649430979916473802530460498620115559748077749300910783188534496597578255989300253103259949984320526630971080050786533786463474786366526894233510087987364733018972785634930040442293481360571629698391172864883840359212250263610616183254309812164858331038225589915636642056052688624114350750694893276743769016293095019154487274672608972689739605845639426271724973373968918184406422687673409313494608347257539077448370641727851226115630303713776424466607916315453177409841090123336551270005348213844911544208889060957330845217038388970906135674471695642470771104814841146295800823563474050639164216517392777957637444489717209886454665647577882269689858174069312211815651457880725512519679117148309122029834377506562716236546149701312465845643718905684592264934833162012947845652747475149921886884757577321718870462081695200732323143184484479224129413848747920678178829577857739210996655738027961556529867244990503141137973030337745166014131742675795045714602783538261158002189686516812188848242385658031843884957389219415026268404547638265537008592448154478477706491209779187965044824874421209610744768955953656953649149575596681292367044742731117045409857088806487895272809947941893232937746567752796367756184526320794708412663978257257210373128982016080966545246858857881202456012822099393823197743215110450789723147488351601193554983163549115895194284425225288024456382010909981389793999705148836133870773483404564212838575699197204693373868285547899960371553322641523716578834517510388199890154675069989985794792212062864881988202602351326598138341745325997702323392486803340127315074191367613300745338348984571456507778318788615457078303903913903981181067048068011955257787185788520530809208245253224748392275428590530091087660866056473983638236632143003250113692955241117414274315746519044777657294506536214453759446724726454410017335555460531676870242310581309634053113771420162651008743247279651194213265227975102388276864380782063583562848269325603443540735671229639369617327011680650009973621556824461946059048559993434414700407375468805658773260231391463655694707060272701406446151651926341636710867682167560942866987394294274459796492749830128706531872899911441868574819573146247236494018909668156735924252842608911746348093820073928465207787519269830835586756997831663446824821618426806710009039681255100564900191911098359995709299892261253212984454575411411630055106946091583968024142889801718267557394931778926662302994462642876160238458153159215975428245594638591919809382495556474298406329174028537776223940580194534234313742574772467284743978839814731921320457115325378877673694966635280678921504749885977716252943784347525336007979215943997062450665886587474484048220178758946210352237206562956377953991832234497840603717322036078156863185718111530298172192032040030651569222373343384503378842414208401699952890399909897306954267172181499576729985118312266660551828630602232550222510161625702100544533724730261194656317082746043639919395551196867860484467317611070026082889932831574968280987176678108208121622226527771130191516748664817250234666080493439989471184586641811729269871517457098414105840938467620601656108873435583869702684638836801335951830074035811496828095585418115796515066508019627008439457345569232951687838417065423049114787325266281318800636461148564745437144822723908685124538692573520140509399561392771247369104958398646884959339282295177897777422737859157892254317976131819537787396147792111419629074135426809709452178491066143310605490181078510098695264988155833733846652305797930350110878871140711140239541924790644693190300944883523707402217067199606076905240393489481270215979812846040709558218875744323788737009035220351039924078683105127922109597842341439572753047371357124785769190817244451777535208024709731463612010371692782322376650803020045072040742652785570715538913283610213242073748126518145565738649515447668086477221840836765556662804015741710402298507267792139868281889728863999511523842882873789016763196607700924362307733430555689980924449726834710450794546699534608777252229912636306935536603745387458909350583488784012144900301166155053794016463423570624950063723915112310583645023361820748976848585779021393494652425013261960272085881970459652868052575853563040871196338165138116473168340566793374080579602076877900919895192125822194797672473139113792139347528823529570866544500993285735081580118843725299978702704120969368882093828378395062003293842303593946754603895155393283463247977310979705922873237277265089869676601440693543536996258730133991400469950270344377927354825328641849778342600048184855256620771831545304342141140809246798907389401247443115077403057789493285517575745923871187929106605372893159032655073398793701644050409596644415338160454966144978520084768760601506229422503159578177484597130109939969137158574106841481069642720151727018936089107312749201203655936934323178028219676166456484640782744780261803743077995668029117100264620787824047573857313102787085509953857859205916599539031489113030858448426932924180900565804962040332088939595498512159703605894765834221332800768213803827853777254698877711111257046737178543126886735939127187864589805152943081801050822439304250171356649922055619365677990015925868530890365851877405330296927105286855222104134518804764293429325393702757944217639809827436583416424923597685904990709847166832931048948218028095348435294857147694065029494948705452446117192318293391935110587738798172737717646214367254454170690193491579125105782270622760744748675073912280964494134787759841914909715001163718861997088453199645283933253767101990582905814504588002828477778922304447353788876011015586754275428250500749316704520615893351110752702445048367940574881086447131342921570848846483674086271326795609730313886298518979006020958490356454859925736277259292961179087214048839893074485376013054533500742760417578603779268488168991634083880013712525260282483721026632031273961776038855077077847284140999714368769044142271267868882340667622884670152088453056997024685377448131388766357017488978438060730954331061801601381123234679532973750790622977296168986211551570184383344652390288997386651250386585861213362967604653846846757666461281176799590549526747297061151280830710088109373909354140262797272322603439551009848408746577605507954815497202366082016821638773998053324631583707364639314573445508381382567431106488575971603318407302189643770594878936238393326916921925791718893272759411255732027813934166474632397513300409021647534264241746365509455552157708837570919957061995862474964401194590558661969691643397391593144980793435574788475983752605741511325039419940531927236957697786795816286993874156225196302183956634140718374815504979352613950954991486881075339166629401327795109871992249287423246643373516146961085308406619280784540128253430890576057631671720899427541888374845485966505789083528777006528464524479722959658601775156780838550025781990488317574265390075100124504516834780639309097605320102568238641130443562903752210220003579886528743889972422163318971429336300433758824095246178468070974243670310200875139245562576390536594757272707584383879257097597083661344805377830569240700095391150275040195392469860644747138547217043469760038682301564908399585241734610567209474547809002933406235081106722804212526518493664421098374313721130447813362427830489872536325581668975675863407993613034162776948453730633580052841933179565823453651086852915163853120460351402339684040292567150880817576990984096961239885558633451229975432596289622315794917200414236309645057929272406645538140242356178705209370569721120274927950977880343593812283329045737348097276195734688654175545054249856671628591332740465578092991993744901804229691392396010461457804688916093135832193340772257602824875875403885732737800872852904049714613950001092869062140461096042099090303534134821759079428824092802902044131028494243997148119795948160557012913199629134901159929485889685955333980644197389190431722497246938541909941268612058084068829520630195634986271234975853668300963671510771865362315498496443999353074769921595329902139054885105472271221710591214726543456154500268559568827845126155661201692909961089097483730048053464724880349799273471523821987809733498524237895544522436922598905632179131445938230252878266030253505353597338827082219710869203903281317548338239334548543212294903494993167952943573858881861799143404086785249541139127775230658448060277861180540446476580789649887881170892564734207984046220689737949372307645449533814551181468395123113264861142782958404721764113610011048035473203749446890330719341366376206364547378205505766986973247574030872006651609177168643231390875526003983698372926252147775108803167070450203954044819480687976154240593085700448430452797371382668585677922195010047918444441494228346465531086140519611215885627698993271651947907542909030788206627945831890642071421784742024355080163031168196781083244607128344805009385426892360271530813167055341461516312876528218100390484161012996146587863828537228986824804892497791293086652541863319364089843233816702208947498886303951011667073535963573771146280175284955866343102877149050831738805474701259282923459134540965354811800409179224666789617144737761340907040216067681997249663351525666575511190091713496927697587713725748173386599220012657377974004235039984396029841013263073052428605801745980250744774172716756604087797845559636912762344402657682765123332877344604691260922314865531245765798603519450469115139463527488424598371871317308657334476458882443971823176422196654364995339475444357358999239364657740827401524996204173854738376673299137759100657431948206224236817470553292469459267481504217643137178271031058906745828577089560802522968185568895336343068774118323676503642622284720660659458224411863065141875205832263179459230342001017047051360073709617177619968215351307580636540475366906280905110986674538122114358822306928267834195457900338182812945446476584995891906550756018774895700964441250455955664187246876879996199664159207754540984960588799960257885333774662370690771827443587695930592686673296758999025731857359198302657528367895141098135690218853246936539236147503295156922720121104951200819213702001818471957325169577646651566645567551695239231347679579390051748073865331070576941968833268060362682233626571877271270384522289875183307511925832768097681717877984947036238421054458024508048797589102380024703179502658187515443214078173473696676790499762818983809397669291487013654503848710281246426708744857349988590625995966018603089453113776444427401437324411159164185855210772825647049155458480922237391337352389032302965304483866351138863861047048108168780296716765711519154269646679593891684070156635319921675077757417913201889118761415273600562009796570850543261242538727940938773630066477887583563367638634821951916772536330993247200760394964986403207748879959061537723698303432251882875974021086143121937602989500623486176735904481297654872897377018539513778537387952729031591115513741010335442957401801885988351464279039724020642715199111463828694166214343448931314462173526227221129712885782740730654119374370872241602660578327108130118640259838332942662051318097964764570362300439171978735634590180263014564513338601135704917948371317884489834775980562481590760851129682509454421443525532139295003185367886950452151644381015542812715673398485814604981214161566583559090049946504486739289490289070215324009080428593949064852665656386958997663763495420298854161304007238573169637983327550928760255806176652952400176820944972337920541407047764657921383404980167063088589505850128714069715683349772650402331042615988596456129933395033328272809277041061038772212789266971458286597402537144446375199926999111096354843721260050187237021781544954782754345217759371356564282110232066876256695017473064184536729072433738760297870108497468176005084212670171298162107458753044108134267435058688915060142400386422761853084179024506501528704840998180174453768914619512167548866000168932912297380451394672133660822049982455881406168699383575290822516671560054841383533291422004231228942530329416893241209151507310975726174683654848837292968573527298171796978874932365561315024141339040504866550568559687203589161030918823077369156916123398989566859080465123707335640476026242421825737274147991557125441929304889827460685547565088540151079030297703888815730360084636987387412098031798296216636091473140449345686275338942346285588684757257024028412971653682053763237950735609288297591246850555739762930044273094847806344727122229318074743613761964356129374775411429289431585031330264125016080888812283308362512344895199138916914104585061698680024588345477496637840251689095205287541544436272035880336815704825192821382708293991482268695061267102656278642213053636942774276040767096431460511849897446842255413045481138737964859156211319456323699637844454281131841940533537346565175173506787874772940343410664434598526126298037191740787622895032730809990686481107214294939205637343752676116114454110761014712037014138029488783894423266602573139022111576983163783534945992544483034419540739905984791451296216756845507077020903744320483707659013070587575699318913594175243822202619916419838598553877952230675396854689794309734541213948962119807690859803330977425726791351836108738816366024837595063379720282922410534630040197591235431166682301653511142732152745612890448550545577453783986154155232741316279779519216270985584216435662273713394285961842886480189415908959313740138899945529582653186899886847933464067880092410978967274592882672754315850318962307918969235596229205663310587906164330933017658425705095312375599809642281585558292087649173041936344737277450126596051934814067093807008158934492119510081478854076525497944826310932728821989014038729576402010451820705778817209960608151996080829055795158759954396811147627058353562741175905144919623432619975153788519051818444873532670491902767425538584340634813251253777079836257306997784629876673345639635335691617405673356902874190805408007658573601810505497090397370272426046408704550336773464317079937675731588409733041094292359266618351604269996797782163821388624302492300667655699935577698288338337219678703416464533368309356263460745233750822585721756754619996593606445351875591773842363535720436475933621467438146570353298969726327657262016478403798125563608445471515747895704659503539498268819942989023815918567941367592217059284112294675212017628631554789604531691790655622007306759059614477278989173233965320628588360105068096892632583065416484583905668456584080190635196996137635538639070905003162950125995296564546886616963878565423965285339010401305621743459154097149293405844849259075726208278947787398910059296041818368573532718837019847916050706266689689805630580371128992863936769551744674158538033374362256932759060529911144873701818217839659430872765494296091132241569334056788996637023439361587597664253947180244059924328815341664335178623792601994083046681702396128233297030664247944539371633610518112996942895663142288968618982575413492946371313701283018824719921873150575121474066540593025068874475102762675126321810722289599163045663916992253557687840748007705015519448105132538903070623234097054827831840279552935454830588118875882178331856455181389102406758531690507292415359836139372718604980470992627492714383580161898248319102040061652269724715596278867062755863211140080328297095590352554353655337396956194161683002226545560447082420285984898876001198271640342447448023582097567003949839346619589343481136024298086618785860298034579077205627023608176985499240635253161311066282590583152633774848904790038366009743720168020483151543929176469532578258289729425392526025231409521373203811082224630510954036042443890395688303655621613656427077909515394388046593235007603727606795316521402840783611783268034519813915756204695067658200991468415243654340814447188421393314384768872813766420589042594577230923738061715958799432591426968621291443419229858965627761726230773625128732961699120063543868793324932118826902102195454780893399567735859997319292790704977878533701156329695537067644834422853485758347706668684856077121975973416577070221328365623946000250189317414276082905410138182188199382984996966325219188637960419088335303286153972666538182875651263535170971601161709707307527125559652227378385868668361534364559449454416875817373332156346649811738538674110763618788433687432186047202921376028118896306161050178858523318879164345109014590732981731032507119876326370851813653789821256057130111466872070458055803508185549382717162343743536925534942294131841976022065810411963882482301962116002175931490773599749323947581692328712523528169147303309252278306346536476206854756221524872017523406330397024970122390515419718547918427295662746872206686157782161878718127610429374342787036065951133414008329861957191324230371595546220398796018712403172328728234603353131028053168987711011462330876270897947447390824563480849937732232308657179103640922541798566101820254248812653773917005862673767903755813986787527464760039234918745326178135128531277791785625295000722966351277043712751785467793210225418841053252357898353457513268647513553371882403555623482550764418439710164365295932650576452614424686788754493953863692836124162507074217775963401808653925679147429308755092542032892773604840030556825991232466680513424620544176753478499414201776681234776783577710660973278309377476273309219506343809292859684748483091289086554349791803377758774408236437165063318873307962503007367747171635041197269760032746874261309871416932168285461677610628712918596741947439839220085921218831509110681472180051319059896906627626181612354961491271689474944180717068897205092082784875934675934065174234339577525908036738246772834240907224814526756814735022759834180931344212020059934701555441569717248736442630260065596756904728455431896352350455038645050939924767491326608445729468568550782306838719695360471552835919645736265990367433304233147741499710201680454367049168871819650358246678797712763543130164530306337311724949431851678976586643391893360194499462641538062744638016066312401389882571380428584169250969403166380545970816663673895633880222184541802840032071474224738444997590618766412686517949508704285504906354821193724234846384219526640613655766506684736310672125450410434111206490365168547755184082387112331325988287314599811882800000685988148379052184848353542742302479108469587886051266180370953041882871031030190077155252509337855427509404208677642393764845957534349683506972954281842136300008880810703482935336167757293768951477670463216085758839485344740734791769344730884183082428793237567547421210282441630347277654211370303424948398917086516100058825638812626187879951271818023562105104887203353267716371386323888978387922975009499011321839081514184499076890542558997333294678752512363460513380236186879667507339123285716995941519600157890215078950748942790679259109466331195050911462434904691789916533050098939648521903208739435684051752425263935093888645364592643629616038577112574735424988697306384630458533991126164008742008298462178823225359079304601870768001241919533276789396415185805353002645022603217606469689513680250177047637212846118188698286137739140516648087159065245263452289540638714820573822967096378212178643658938568459696505669033036211078664527935417323114156810567924466199724202358004307686722823701216800138876470706583477909949431071963742267865920339178616432352723352019237864075155476690272749815890138297612781352912287881654912770752409218809662392386049716524980092367624426029849966374908603349763567500751960646758556438058754578455737416944361360635148982965214307431422626424673421216616306849524335707008609092489439429614103662751212631418696224404225014189114192699641562523059862258260875428499446603753851974402495800949128936889032897015431847501683601436204992729190693299217973901553678211017546694392914333180988926923678271512725843029463539430957427580300539511107652990608294564438159715751802534573594628047286565401817741415260238813186885624418497852173830339072064468593283562246831003617310335528261024362999991789387670528846193370006011309286212489503663046822693595431073991696811963695706780216616894818235438506088792154314776721231994043348702344662981057852959884849431048783037695471345350976656788608750094974832761179376734635403789858688914931243367829870481663120254807598628158983929742473754703834034731931621565861383292008130438227889173369815183046198358653169653708579748010538727321026494378252082301104020900745050657534355386910399388846277301309637518227755774440302453264878566418994795902340808581271004801975532753905079032967623053678901439680197861935237000187212957014953381052259137629359214772731358140980182342038214013956299971246985807397327467026807032119202106617290415744078814003509446462536631816178586038143539805967510441166055173845837079081544554731593315867457554965114013945113162676946895730345789392479153331365476449642496789926470905865385899055177844411400889117535776517523538615615895651809524555248317495228181153228044242994260224628688531488492812808567051434476973819517325536817869301783453042024276208317700252855219665711138736162504205167715803615020935583503391265764799620818755213461211358906445351576239916905229484688242838008324693195074422553808699550563160401650442092289743375551593020983889874749974779896209114174373196791262425636392091103751530042404348379075985790191444220558348152856149406144666558918091118260541037466044286162193482158843894372984982037167414874633736056989454593449138752850586598912369444634361960127681576846640539309178636943946672713079541591419689396552754440140114309143119958935186661231140487283479079599943991036754115465961424817487935203541689574712840097450062589450814024797855726258976986816543469300396243204096197840706338269773037123157849861749070464622910973691160652703681347181083087246423879836104150540489917062995281697958446621943685846082396992463400736042456792365574868038560675830104325873315829418106689896077504854696082377288513434203632716624579873337494236507095874880602757302660281421998345353713664253540467624162422092537237217019885392072747223223911605150049328252398155633950337032134910516334159604110491959001089498230634305022605108526690696671182341306527448124678273825417099517999617962615763795043881694858931435342911793389156508023166904059708460843699119473722880238383859368981034700193117100014116757585331141727217464969245027436726055566371015177240382348703378343114739644627566280235847456081457925751987184896476709933338121503351064193251662795818599246285524400527469929385825731941237269248365750619748770846816186040805057495981536881328733325767844206706427091112998079490290563775843846143218706148805783419424333046695688417357094323995446598912972771674608228459822621654855975450994636127708960034210889942559495862627007915759477956455219622962023812590956352156848264557535568653261339540789215523765453938977333247976444861740293589903386844179228730471895097030100718653146543969275285449019115241777253311118972848167187971397643135304533676165543672051705654919473746653405879636970698865829476688224730196099924599771818563304899522740271861434892962979584517164425822041746169264934370928777288269323020585568112921736302904796388267616425180781299427757421797427067361296076476454857976647118587421063831704990145029580633638265505004847006112362878321692080734728603096102427619148955831833088590005409868940398196568325960477684975929234703906585253102776318989334463226552329910823367961716642901287749072647163982375266869313104095118878573251048020107064363835471484148592673968474738328923484242961938386492660745071341932648711012261672363759229347565777037360790978516461034426351608645977569180136888681014811202003886174713368862928729147758614035600038121986317656577253962201948153201219784459861039345538648805791500090492418679136626820381893407102674177149875032275990183634977482830051304671553192571784782021814128311695630722179675944699309448863624982822392066566129665862440277821186632780719851388663028853587938454602566427971808784871824679357496836444789152583042865891467222163041755377792253511404907730106187656140145708645795965468435732427460828117974441865003906080321536565804015194877501901445287458291268894981987438073256729284871424364949164733295712439837276748224102113775211330438495316602962719446039673669911107402333740765053034789412635707741868815242463551391407315212940354305312964006214377691460713621145396597589295166060022882333914490808596316178545544644734351943465535259469145447651784650366570380675453328905467187780896036888571138200002412749552805546175088482211256546845659567938072190763871893088403133733411917362033403784617870139738700237411450462672807294234006508399629432864359084514505123851606168022211758278289241837827667854486917380736435577078736970496419254168906190771158532640190313037942757821892662596943520343591194268214810852344535634476882432815029632745162399344483869439006811338385617705363100588001797613026985170820266206603478341610151512165401350085882149474705528928592462481797243636450745286232053376251515542801441417984759669735451886949611375105757711840629082102181735590903450275493335056159507558377536870162259983370650890112065383719903602760587915488133961549607945409147507361125030042842954620735979415016488379517869297843643245138204789936850848774968768300594807964140602811668999163380832284069540526135160186421145361064539612912833320302848748168427438917641942750747832714456962912653074798251036086643981368619956123151360292727062363570745390166275527698799384226662122165994137644501885888525228073190685368654993313790656211842690899528005617420951368160110276033111637079992956478602430446436314687894235063700909632999817255461890647682993156182534287922753155897237661947362141255332340504085199207906934294441721856902575836992182485404697266667207171141977501635504568936880644027061881539751129977005416633100730637082766926674237572408537551383091597624469904964040360342440762504895995678912802573407730205383365669536359937778822264297658652832588086173406736576258459893826020985578879392592515368240365821307553738132431031071901433963254019844317891674783423108787852767133728852618129908929538519654364231381426403185555645718627662039066934317356079565645178957937595895054819711945278134652150878906810367290407392427852120037368594320577040730551804913692994271081243198509462501168540946818829110523043049116485832048039201853254501102136245432855734393030360293517208099047618088651117572766378443475868901398021368124466566251986191813389076557250242121946461692966169019657564898734985278384188301339674472588681317706087926925205749969205262498715983281339979763004611686433899031769644485105302542018789011377597662078647317948515126713220207799905477007465923933625841938879234742698347270867004732195977244674602343388080609706807592204373136878927510003678920779657500359822916359023787588067319580454394784489316600278140831966945836166399746484871634824867533601489384319987958343205857300089132394782394211497515241266430382596323608873678612043820134060213166947215024840818732690017610891121368492885607023362559339875036683244970820365729693182466148794445645080249815928350821443112732222750652704177537915512190690410933877070558447632495317133637513432767359531737779552083347191901800604746461231712953132260694621479839153836611527249566303829066400650681032494637105048854809184332135611710243814373548912593698014938926801152160459536828527109200844040457958717122782364201080904702527540316696590268712017180620810342679855018244024439907195520308374504977665958052810174398508188001764226965701527889305850807413134066528069433090322604808675375281650348498961553309425982761137182665219734414311759491492942692468065214800326493995827997888564425221477933591333994971031932042355877295046552810733033928337837845423474401028094664916687287504336700403848865725096905427539131781066007977595607879052289981703016933282474497077688583256072789072444400186816323050103092075020874959435473135834518294501908251158381379874013121106844074016473475144043349364583004358626059403499604307134278879154903075946276866254659951257126865893232695856057299576681987967751122744975036157930812037334187287264842784639119965245194136246164061684427400714896600481818869467689735729488381311026726842853460430024974943411632089586767839255749255399498767086317096268659690869412489154895342023396500754120471007215310545863372248829053706909947483711298112987860758564928910852526711917584298355698827847634813362277484529310250931370653502792235951388018719212111334360161998705129564915162536864497766594834821330565411410191881888889594181533359160842323220955496443822165614514366392039994088905084381562414051997012445764716386711540775970539394992853591786095501817994303809442090647071567930361304378494035368174917547077189229828266903258446681406128433406270152380135121401655628066349072255991360917097575618104854310859362360246519188618965716850252240057683211843815627991393282361842173712962586424124535827237816899973654691296354612783466853430006713819467939015008204922476336589326854676144843956075986896107487339574551951010508583651609194862323690703490936357082223406295745689480271894811766936479508444899172220744014160814932366943130656869959408053908997319324624957799090664300441379767175515174140889881348199380111319612189308577997178131452464660567375048519089261408070935759567290074069079709764862500227086327809463821829104831786095995114007555400662754576715864079938690767569557929097122605988155990263578704709515679986479236024737046080079975130631094327918031223587285723317437761776757242158722277322620981186469315702314835903517253880607849837182004686680058670861888263018874364600425760970099683560701214209608094689323837183839753134300411382479767757488101149502957732446942667096988363575543600089332438852813042785510507681182890638852358648303012923100270582051381105487423716362265437422250949198437485392316101660751113523231922032508666337557146783023433239929312484544938068422875061382303753035787326661417080920921113495975034332346625742645145444286942729643303480227387583005170573900011009852095974011951891747047628207639084550872273179618945323052791534118532911015820476915801529753109381910749066694595321821081009401614762567537706064595726512645417515376960521031409090418381140499297734812814380649326896724433827455452875688200671136072578789422547518702618286840156861379757913124025959194848449410658516703688213414802521002641364211530854217302731478073126503494366787582735803557156492759797223120645441442882465966486916027145067290163225233673472307556682653203652769311118366508416986822651289193802644608246652062930968030012240190848664019005676288666225391119406050931585231846289794836029920398485029256882223480931668518110934121716282231553173257858794628284886216053228472424007958541412244056677577540611332224876528680694525316912229886408522774347591976568029074456820443888547098459469118757202567161874881473362597880748626381649778690027153517747723538893753555225686305842135356840511849437333769106909466001259173468653294966130701571787685752979932513793125079398905064110894910195916397846746665923635051186476049055296930011654118394504698471145783024172977768676619969356523660476377141374892910735836208625349080018245034429455402822488441873207376835454419461056717480671792748710068918486826104190185231910151070565597984836824285353036431659053924139066413116102635813375672866098289706778774270340710605209143004669640313231243009534739428466761947557146050019805791870244753235392358069466475210091889583884986321270047795078745412365176509870328999893004543367331887389902359586916799663429987809085785780856840448599540050710060777454625559560555461539955439633164772875122448219138622465430086490439455185661001406634704086963764511349820728584564575241452525968901432510846843048475179479034508990976016337475379796696482342552431421796024649648830460425081139661274498660182952856811420691037108985124558613199888789533385733496895668420380767406892279424945454496026853831003314226347453141629504264458772793560341752613340189959959118747124113662700655283694023282820716048729624159601573209848022516425673311434906606100087180515190682429297707957367076465282392700059344768646841552860993111110099139125415268223274567732316246207227011284938538175001437828837331753346616324587404591657617616122336118368471400433443318227954408248002193023352492694054689835693545338818341649753957673479499118652213526703628005094424052138091865226742475709263020244977204727789305801564013656400136683029089364920510208021843648519893715924030996152512069229660717117624012872759055179337462085213511410896656322068945019551193752222808490304603105501943717911552397991145018575456840590908079716949966003248332751780034121346517527572479809764267243620583874284002565670767654484452331454674621605908200648817786539921593955852669444214445424129845221291540662154729224417553520229830137006293033370963368761968994833636885494622624802905346031501730846473745778864934800722002955199116296965796644757504350787369010288818069153193362529954174174758294046086806121937047782961159341875600560047467259105052046369755775166259114907280392278033139896447008690279708056849756316869840086601639455730041102073606213915768442867232726888545861660834150986054745171179523366717975423388739723059727337141914016032937830753116876616560827250838960848076914095110576998054076921020680669728126127280037998652874958723371401669805054361514669528083822844630828069360854864432178403832310379495844250742517320873220548934922057994597559340738729753401091405196429346737836755889604674633562446993122776325170587133633018176433765748982475162623190949838866991326901322325144900645558303129769379614751424138708216193933625775828659508281837346091790431892047897905919604445758480301037669159119422488748489519739529227665212886634100303943246034179094844465523137106103797572665572811167611649119987288193577705188566925023598531807667878083891700320209288049919593792321233227061535778328739555985364030297819313402980885314718126659636902538707050681789521078111738024544009654450565124614072664570631759658214966838074979727238103432452197502351923629078763752593603248999639159567763791050949012744976096074405430761497611661182343971164606868235412386436464949149430624329780833022266053207257098269134346231224545004688435456181948724468481455530618387278630668284295268330439513246760519359917538202027124409819902704243150097338459024701897929559414790953870382772596990731149381984070572121792506384037265909590137266881517538192801395518762627390185118742166597782650140832359713635204300740900293047222966329280505511421265120837650228021634188887803313349007656506961564323706288162589554923655185566420920069205435085559655101370339323955386019299330370349374846655476345357422995231136136660897973723146104750052450184684357841445302711691690804895019606855426695831330515462168460415566588147963638152983349997736202755347393155145016403395442347247811053795941511596565047447242327469695465345835171934529005874642427184676439135220078112155130293213544645603395045863161010112845847950824956144980558159357015627065484992404669111733622279201185345869398477679543748073681181375014319176579770321134411078160611404402153348045600006075216661030429222902209305619626635456062219303791130466080936288830691367137173541305392014839135471599465817537269432183797158839980984594129581133179682888326451722496521412614617626030036310867769763453189417195333301412513822798413279118158779175965818953040432383655591381509148039715435474070899286930354470690235682890347395618064406924330854984736847902726849058977202024807369183129918528518664210630073523340311124723541812755469554601630744600287226746296639842455983897054526778925854406134800921934747982373868596799735081055366260095584644226022795657254912118900673251736079935945914426589917791700831197897957258061890052499903420129964923981207932357885229477114937492083719996601431713297431244376621763530690177032607476632531312520158252902955804875230825916654087035156520759170482914297678501118465316462373110081566237640610492900419460763134448403532617802468022371921079596531198781988403975428453135659675784851296345859470357165050977824800611998003674479071014418906902559228128638634938464148643344301987328610866735079001143566095516302052021637826230025160397944414947902776068402585196661211826659777499741925996553610221586224701972953899929054976124326553900281053872456455848884728754768118562052119405739666759405745869046652573994981518023787705156501022212253652503319991930044941535229134064268610880010852509603057908989909200431781098406684893267186253513231580296886518204404637362574946889767661548351941645209730404316457036252354060389405283294385194718259135735089629054472619008947069033977049879542692292631998476799907774586781825099152318238779795933076357867578019107559835338062098775957135813387382013649748593236471914505496314791314758120057371780211031652331976693108922313638503054464103202336700116760755966126540316676603265282442743273284157090431533296169187334184149160558689415233526922932755904074439584103107920465291632301221329146854169463702568914451639594426293004304839702071944525817895792221629509489067190801318377370814169274676119781298025708074006735634248956812325202359961124952305990573561395926286377368694162337729364634729857804042207412823954999920473327108873589038764573960347669132681612834307539164231466464541376094430126300449507891201763748382625810899058743568653421710673713231222199755928982844831074734291468975643661045360096266737465748006938542169709152558225604634713199622257881338331701760747095042283594628249947287526578405304536059815176709323766590015288514568534401113849298256669556999255756438321157016581084012385622943185005925160064071201353683807179891712021248708367765639248642765152105740746054252107499571286025154872950310663133744835113656818006050227028719853985478218797962375373800912154624917110955652944256598727226829672425604141250568256728063062377443169834681093831516206619192178982450284507608388724324368493847614872880335017998094780598476747406926967590726132310357574415688278309966716761273796932146422896851488135203036589538876486724584631227911939564625708827504760359358365631304932426979867949201702612823617439629521100208226132900579074713445650325341542916868870781887481001461066753265381410709043193136537606309814569242602244750422895246342173210786184505068805204183520163289277060345946368387185600825301322195367155527216236840019483265929077448056378927271318657541620013556261041898511684789485871203551394318783176083411518874979655655204525072418881887820360562387086685840703455623412589309160027709489144313323440578662660381881426520639939130736233524777385496544324647604625029435452194732090588483296995891312840498977245015288653171214626210341809134582714528555495472094674591290773356960044957498730716785887017341451760735815134234872243585992393444064177499057849984003611373176882877459922500195715275073812867411882871555216099951119218674082853601728566938179566640649809460511445416360534627751893880502552555087243231340944729776323095890438353293018338103647468562146297720362142472383894572001168473978346361408365784309727639255764916836248735710646404219337850718081158783239006827633351654087477472768401774328804188148920134010091752666794246561856593530170451100791998599676110422035753708811923029864001276448846882732598069042098567404285774000863690986807735539047107453417178998752872754640328810450305883708480945226363955682910944874800053511517532918361122780357450147485887876615575552021695920734204036593709052509300110639180666433621558733408479112930849335887499994688968166215816146329636118800971313260608448942135458569706955361112909177538229409721104193860970198717376684932704487405110430828799549531833219526009068185883819309819373581236229217709448140055557733501286050089025828801766049064806700409387192805542503990319867474760856023070590948478791218688206947583805922741971777688094143680750262525719554442364895438617023168032625034890991222763455472735961580377161987229733570416930765602290761088408647802020506026275680353281619814604262698342062048728103126368153872583195858848108379419971296829785795744204408018541211804331358084753419673390890712010923031475050255456231317245528650609038935452185965708090637489752663759364148550363991055091638501141679535305254422111202424030301510007493070026267013195909822841717967262853310714980889269618268885632872399685031988853375512085103282318455130310656370094146810294418311966163523944829414523472028638414723261396867351340740037771918123505429547725986522301896747097322161226361075695133155477218969456692949619220227489211844435508582247569279533054698553621894333586989401679818121965317785740645905555320676380633527334808179929873319884325847141633781641285041336262743546604422788989878516767362706986762853243098356046364817873457651850396627609740068304877731436469347223112209312746713423887838713504284810042459208901640239715009405138477828170413615736171476279574501906281105024362080550755839453061788048584813386693171000819486182671411648566198822174663775232389234471335909115929932786364291524766223028872565052674159304564132691531040865638828935500288970875011962159868129454463991338619861431616113682069921589172598641418834246184012599341758548723218014569433553359901310874267046873891986561911809279628336971137506438143570683181077138302742211467388494673395870041685427468799555000525293586997296291822661833537250323697628711823249988335886156564759022829425898293631837617247909214116748655880282509908929282752551022206661787336920721552797475942639199284550368276673853124229524182376572421776151008430930264676932849262446337787269551372977800525896514317815847711364667129686428401257722966333199435631809179237213814014534186364809929817142915724646606303149523192273395884502096249308599891651029360170687019080465268416943212653109846092284954982526663333263754454627461100610812718389237688334741959290885497565014034078601134094582286470161190238800293511802528509895862756240539373047562469978886331468704510338776959464706850301329010775828026215574306080169617635009562047375926618383070749348337679375599740960302907106461168843505680503127241315583716463492364153121271839832810870494350580883899018417500933039097957772865948019607271453860112150759357393463378565294637960475210488883470694332286545324327651479953969483823236051985345474597804483871075174081803028840785700145637792509430088410011054023480223205544560236494143840055995765249249566350875553908305978923381274824927064467650067368230051917830339323377680744977860416119308021472858702609292658018512107257972496568016061097499359044450394983674556996032956167862551911729364403341392510238195277225807716468738273451451671260919822293554520180253492286708908089059871634909961879924386046597016978423358827367270048865598680281435786565662308448963545608429162159419060575130516321784720884111574696224210690642056357787271326431907259690032964196027799719696464673490930338727715273831237318468007249399300209836693497553086393104114878415531066262117116852567462540339525691750797283391219047905513320720215231973929752934541976199867662926537439063578881729863992096289286737591787712443445126538541392748096523033941916295971540276335866430972646935542230446980570839635200284691811781231863335962376490631295266900384402939502559364896907489500292185553199284719611723999330049069457147828615651159309854613741038494671273455994606140898241088546356229160488514943470540840566771085595853167359836139277280805551616055049038502981022514243261458308908487500027520893162977206309925953189405603726373834311952169777779249162130382395807745779760607277668634284601491838340587871269554898945362560861746737266381740401044578311746361097623245954677391886316942425682586313112021583178231809930304593991554917299761685924288914535453716182059885967454958734530304257869839116746425655056546464861303005260269644531914781645321020091071954037193875928880253646041591149940467993238270659566693487043343641461230107244375254468504108835434872356263420477281560265372710407419623833540580630127784804966918339233895467301663209891599423255404897617023069369699838457795117482271376202496928073245259076464288594431866724323133852696190219393477892361757192730464410988150393339608561798613474862925951676237412658360850962708720914584141783278599340231324577009202823555990577245368616418147694156762251908635853053584490531929067228524811697500576416602282503211951893050317385701010193364931304846474195167746259300320243376054687564040101260544125798710248313041682805590387458580782191352253118637565372381928330150569933025197440084360287903389332409300851961103032524281745507897009531468670060537027185088580326128055596795435084818155371188039305941940013475539161156388086687430158298184766376446072814182924241389034248166666684826408103239763173694326261521967462330305037556238191647435072944286262864803103953168739649047271483434563136121741393415282035127681327140129803472877639624071902924475098450488484456287421285458322445446725711729426195271802372075727069367787520175624670634329685429272814110195813360905587547280809574914441074699681085681098213051593650062153211256734337130081821441961899494311665500975172689060227268833519817470185763253979053553676784923265588056321255169276880288983392179851269144061700962380247867792958906619198324191521853549527672853045461449186031651442068914300886461595301755033930260397994569673127123026425221203803460816592274178106696211150639845235826912279487445842024848864226873758034540883542203954829538002173008943888780627045286835677540520381576285635556924334460818604647843553779632260471539228347742645646018312263657801627349527259436000125660408460208999821974192229812041773108084200538260792088829149353516224461228751611270064482415498033805220527831590477057617954205632365967669057860824127348132250868306715280894255438459274714491760772722980953631836252951835383981281236560598234174557687540799576112411227195349084142742669934999766366576049465598739487797500677087582587143437475671962290648655709880514672763836775506897052063070234454750879718846956001849588768326138358735836051416626173585773672312016100583527910917995680410558964559972508645079826708024962606908255151423127724882336543912628173457719541423080372738619628077597808039564291576355494301367190199101998965069913315751010367554924066052643237352104526987617130396552974344756918334150376090178729063529191855761678620313799829625379557840284633449577468125634990114743249475613830488770913665097185368310779840633018378795614269143241119749482706044563171674916738362853685562590154474646707556852843803318695155801012307323782922996095176878492805986950156951382481155175532179599463758321776119710000204842571289755370190371079064967468592523053318026982079002031846806528277678129569492802389707010812202738201203690432104555527951557847831870483729367597563807548877463984198500239721237924465126877818869016153192965583409840056844570942032956768421933906238677967424531160508132381288734760753149036789363764010085480456984504408851015902595709723984501143524500219166497357125498236010604679881041287803711654043561500204734695301921284382827378053808273958123762120670894482798620095092806330873482824389569158587397021381367744180504105369511516303983085633416771086057205279539008909437356485427767030642817020945346669429350969686266356305078542160836245718365724276419309151489512188838849889661341539348303801523772506811657523535348805190296372739457962885020768533946296884626850179960889611345695201458956889492516162491400857078442066721531977154119855853358026410063874494960322017722210937454622000127756769412525981180387120419851014083244826731245042357021984885964612222616719283457723413152064518366809153544603335831373954407791696203922315919856122544472799944090474928242058824276872794702818083599709406568939742573341564153379114759665809082963804674167180407238245154692866282067776907796415840756157287290977843506546250317396865566983228333181366971150201093714776520902267770882416996168358293782503064846154917787797133817354489269776222346377148659606970115905477412773240401502199248417317866062525517341965726057914032932361631067943178070443731177937091625877008769017229484129359415458767379714345040981771853463497035920311297717405951627282715891748462589938574768487676448350848112025606516184812171459543098112559511730000931639427300080943333147244694477703407734462927760041544351611221328332991618463326736214347490386740070711807518048903291350065126202916494906871873300215583881779854662887670240462965127425876007904838602476551656555937926476311048479114690651196816513093338636343383379284083156108623178461740857856022492502108814626995535811557558953029556323560298024445389588694159840706755620268354185548018756529708741254014520290971222962777971215684347376529413263111495507429517986374006141065767649966255957448406837898830196819810681967599276634856862959947109862081501443098892017352309454219006096373011715298276491979643139033107539597445054247914856342843697605428857761376944771339388419716992867165129360206002041839464237217169897896169813715993928325803773287057493048966134445767028462755864682624043787945394833282577476417420562662506282174921924014389077242591358930123688901431632350445801520523510653265045440901267586163948510651422865415866007766829959728091002191558404962144509242080049398516389666663637667494702586192552867529023909880297290970845142737817432304861860763873159029639595279835467476722967718486448813669213348138670729331210804449586269504193309698201202200205965499797276908007326273724766612838956412688079369447350493693764536575041612239382509503951084759494084745170545974926452689236582231321105356143620862729424517185771229196433068264278405407717803362495482007358782817830236839902225868148342630775460082904012871632903912632217711187998352960598732273279635061109830169574329445456209673540554087326150547547978502828332924740206926400733302577874820236644624153110380566242772472264436123003583250251592884303195021271305010046769019849024725861668282906174381221877544606629473642429280626619758116996849647130512889085158544011667763800744234117723951718793547246134475425271742559959241651895397789596214678677408695708212046241114551854077050776205538799649904719915750534260477260151712254835861901315904140703900870624911129631154484327749175658846978379995986703748495150594289383036920819126396719937840845115203433663515643715822630117241557676698958130539159056549144826056149009490993108828111580170111166285065413691411564495614901171642838728992187808176863891116849763656686337312341808918322565540099624816006862769449573647078674450696130374467055526368384593744244848172407370596994056500940653962725218241947823538705792417824570502334640478224205046926250638055021494717621088724366606311337727532251566553969040791932195782567013223980186279697935514065647421127650308120279410299513465777277703707889139804668637061736110165009456623243380564840244222975180169048129252094764284366974052686913554388351736222485126925829375778398572078395048600052173620672300288730749714217078005527608857127882095168953509203368593420904767839023665373388453007227014144868092289596919897655516935963723962780108754090608772213708711133366762858109498636835982386932125013367434837720398131657557843202535360526279530981384859363115996610645512412204396898779925341348733967032756568745299343283615822925745005955771092840271588169086676926565671880764454510064200184962227261709269198396363529189204269359947289023148323544323196847023911588951990158721126922070813965564151164274132140081982061890391978018825282987294321640551656295313670691037217152488069650739813540506089166169085421456324484698724454384724243325444246570671889639483758757058454998155903290267933730046904936759685270253061858115329962690693243764553898162707751178539915245215755371233564638440163146861698607908036714974237944715087690766440484257614080174066591832140497319702333700388529873626444301143794736976224344895865117832107840890428740114513332796861317690935986008939854636391397024666305651888444085925917109528923034793592547436260592347843591290567934772046920990450151617917132166317709789390794015065460184895180090814440569483258175695952384633784043048221797328989454882812274887102845656324542799588246311741436371813952148595685338669660023062769451191664806210235131189407976888642818618319602235278192014332422306831759710964618018086341666939926406621130537030280022004973799901706052490218074318776201607022556816772089613110567392285172292127900777539432367069608419713642273448667399844907624760422548808494097941214437211618363982659769747479547702462797107232795309802079479802635003256660834624195201370850973898323202532458279890909539311647510993593810440581217388886596105704063646481767807084738171699461578926881243614525249583623051554891243432601772583290825455960115473598015879441044612744138766889210169872436853343983496917727122788333291215715140753165621179412940813157656454116010833385557007084702045136316063806388172686161565583594554903654814832712824346530554719970542745807745225841341185988761894909220708586118797170344671498130303717845952902164962266891612070140329719235739414702778179418457248061243796406478030964328857863216322195490601958237862545065222232241867422990815713151601061880530310569009438971678377299427550029532335994690115514885987765531591925104060468518894356687063589123098565886323438768939426005984450319418698366349231335163384743495013091829020145109789622222894198131384727087037697964067228695429174884468254174297363332945004945146612427683488733213386597476351588422289128404804320371715858915800951385136149993777425848866286844354793628424344561977988467424352158005394951496492704300995201794008075241729385578938739177033078678427224003113654022199277885535963211487609940479072195771788449339584693871221768318663937906583055075801066581331601925141439388171790664724503763766281975630518529072629496417448090255752899091114871043593643425246337054627131728864579293048195734532638659622191466458687863354778924924131908190622447453389543370882937693618057684954261851772981193832661643439680697143307476780234342859484218527150369336460472893443452599223987429297297145483690753225706281285156188686767286938472208377520935119269526071007605770788239778251355111537980217988324116068259394300551296737984263253527469436154226527961955400986893501498759879335135619217318416578947232742071126836840556373799765845601202132477284592397263654224739000834964929479457452201952862404738818992489841399710757417638226507375838841022640983760496186296218130932796468232220442683952894617779283950985831912803366186543024695229191139076092044018076590100683266383200124149812540247155222919109135448202667485143584357441706949394117906714146136933845693511727020723389263170678252088337043722498361520419128122525498071542935427031656541704916818007622104786294118899447589819419688046905156481650920094157221681563522029397670844314182772528566183469399754740611926136899835507217858781506970644941873856957771301171426708525654108917936181311787586906387186379339380647697775362033622702087886704555679851455843730240693373665243395163768293637335763444330287118196476516531641314027440557856488843502746815029380357901428299659530049077120805317647597827997537419426354803492452332799432751007772644510721650568524840229933025477086211259583569066399559616412885991582845627843453786440561384059520980158412064078660718749582214119717640570617590791498666347425239551340739915406359872650787946127646062492142517763997872373319653971656069999793598180592867252521171589986848720407769271913872445682155885381280748211145622713207376135722525565135079309382557194121098319051758940342335222987896357143222748618378836479465502329968752417797250405129884256696493504717448839153100162003247899502287160308896803596031991330000093327200163761526319836454984081200655365305079867314463534295545011105531142598795249714522468379005804765069187933959757674015900850552238281153304392551585776373069046770992532474344810977388847376598604420314872809954713782359645059755692625275926552181915746163825772558710843351030491752545454090247314358190179724443003433731724665628103268503272076618077030887771297579363972753918224731275428726442287644372156419319429591955347588994804997092615950235036386665687091408373456162937621140661385328549768297021345707671140276387092760819089320901448612470971563059439208475277527230786009554125803538923534106991551105807839799459325801910593942233110703717424979465785658255935292051121656755786745321723945602059538145796387179948921039933605206282158823852587530058365663534765521509886427303471080834723644412062949785561832353970557192242534028422896971713739722961585477271093936180927557682178993252125271129949826882737737273457090210952544489052697276545132632046568927546534225149766760993685109392512689893275403218365642849457208588771800658922098164036508354220626349142930775458681269955411790557948931093396562472059142210234893885062006752253458423955785011525173518250657846657295749193320054085841390995636147728513950150760388217097024307806052623015187059068910666147216161682472606940262513666123848311532365972675376718028345106108044950495886456075154638380391039730126184957426391834516043573933724928457564822727322879813968789541808671439708452113594234487898134925313748821069357755659136315799477081679989446764726785414792231906145185691983747720107032227400813882897506263684532705215208905315002366851439290929484361390001089594148763911841959099809333903244489760843394743960819250694135878178629160947114969662827539651940894238486220972992707252373764280513911967411864919576679760431072931362661174670523858038884083568738530420548458717974855420364702401701527933392198078661975098594379807546407811804571237963189364700095082378563717885541777109823362507982111879136667814239627164103163367146564966192968562971943897670942118988152521902604595855027219611188471906694035876764494683594733762475611529012575270497387463660110605479615389293976512452182123125770055132057990693566741248316170402701035348705335503887570451975886494222152206202391173167013765478351592602056642911922740895520781913817143695236801412552119375855782163335052737673504195159873673622873189375754156208326238602556196586070787885543526890049809883978911603842926598789832386591700879869722295196118202071926296062786334612727029398386165636851020472420170061101819184192827670690400862464350201601825565467951744300741754747021571791903612923395905597141508479150598589975369367990011366821105046090777040663835734318547421845463486302642383747449157788401061611022858686281209444056091620266867137249778822567851747211620332464841787238970672266900579611537288737673714714097077522180680328598136179371050901702064727316750048102055786301764402181195051101349382167710909573803878095195612767936293826004620824923692751040502573675083474692590374179622665308592936137448337299871495211998801818018308206381163960642267833754390263707358058941812167909101384518327627378212061773091329013255185666201493689610254906720696129484308555206638428772042165880286999945264079547130939760172110945474034963679774258146054644020827010326155562691346340111442266770102387684431542860667016947926404239715880800019186095677938896126841936816045334291950613602558217059022048033141192767276708944112103848615587775504325495347823689115114820808019142894086409475170913699969155213660302941754213509021268337450285257304021128211290961473413189135649540576653636666938444730445637902554660068247698514861261699028024497594107429441232399965120827276393513614760332275746680958586585288303248360102653690027680768625164921243728825415366517522743601525993416550601893313063485780435106144630950514662214125559398242956844227147427050176039918474811206818776076205704418606607681374061648811860244964396852033636009276645784026863806792173775591071778413190665234905668382976168085228746789446452552953338675865960297238396482291428743715686840859801102454937201283881172452557242865167776547188560622775939174494893227157653898312004364517988946997528873760087841195799199808602147435294408210370637555068825336252995088184123027563263462476004304168209261514634179511321562771797125491055936329334871258723309278212750415034422455717702170402908858671754955736285268277866206371577390218577320732232610507135380523530998138394659615216068100286516696213776928093800402622358147819393338051067305276116885786872343736933833286096584236455483120291613900410750424792215387678924793572080139772673320217628959148629378294781634548118691986234201921253860075163949360665020101365271849691801274621212556453892883384354745783999801399937745076310500849936933084626472119733997136105841701999200997195097992844202549215761034412069783295638796509451348259539554450490196673867821966118970438030205465162982355513492192235993538935854301926815206536884337242967698442970568541692525824577926273633196055929317970487090098732578470178080496269985807582187563385330441395069513189864218623576622116716734429274278654032996775721822436665808513927061158375111275410603961431817189148939398779258349953824792523678139461892624370403241705182157586212485509986334487195550034381910735565876441343492116709886081419216966970354166656493055081064291114436043663094776346745125115843327885683157857271633428895071035500889644452033711889381678414621444703740756383334368859023455125788634716901813054519578336712095731534899429368809085676786899244480405890429026511180502802450615699019428842342259200300572434729895245912522003009053951694075313724106917308271570730052583676838848011985988530740265242444344912726357022438057395122513730077253739492413436413188851430712963270800884723248272802244220342557053081964159899795649801447413022011778329810708215795691490446515347736706222023554132050284720009748996215076620942972690197348253064444848294641377428149663681714413775149009496098359506366881372191956954844179532054946403313687306296730752095654239669782770826211277023322184747349012327120148055594491028591992394564672859197093623920881506162305315044151745564692785441134004488598015022174020325994379642919218399269753347934387539529771013568355114492643614260196299159273188672927624649250554321425576821970791208198941118185087365895164457866822755683761976092309870169413370785804870476296614308579937706835468372292020160432070970186904560496929285817948895088328605615530163010803553088147589072960976533327645493901948715324581871682137648618451135030736894181260877824794631450574085547429830490636940418830834510962185201098211451148012433090689618848699527661985452711033807978301317152772966646029255406788451159966492430249291732596841432292831355651761440063993423048174764361884361357295546934210313773500112321317706850475806330542848002748599281298613551077385018407925206528615181716926374789710643103219436345555817424932851382018574106430793103915893435439952270499385361928731370137864156000637155159298710450108451273269781064446132716970404371530250566039695011424228284696191965906011010168393325260626588260512313014078751695812616323346855657821366926710480121445711421393905090717962432439091721010427525161202000659420883983741805756229114772978514214300831004528946063149942352303667100433200786147698881241938502744206269884604209792993791289344187387565018663286710759681607188496745739696788748295479050410373663027916345465475226640433727742297628403505793656169675753877075850933395020072277380041222315173477733491535578731093155680628926890089362114090467067378277131090666540338727572200946415457754937634555237751138991812587162220494373185434907515874583805407915408086103212132244073194509559159578345955744259051134284554624467934685322936758289596191574044138148878665317993977952234215190476353458262985285205479454213966899699262797756964364491628927372748186907570224683350305868276913043265722285177572396185293953531445687251381312691357853818308471595488937080398542640679957319896230762012062866688549693290828543717233295244695656591006896422180150826736074506037631265966886342553071091094403011770947811553971236906713548406709106195551657104707212210788646776771356279341429286694664619669813444360315241841229265467895439479744665851335559037675251252399125217000303357569400913648294140965756605308854713058522387575605513914791149407967182991812827317277041527707156769781757788647806343666964646539162766254354056840220690895022856647082875143819349197238084763352865739569374004315396356186736521374561240971663411989524776816736344953458313788060141223032792550424626361790664633799307381522281966509024548881568214269710432692972004723601480603272230106411945525838408951292108542675415957732655882840089631992970165105884805724272502346290812542497788769932204294908879637325234628561811056504181032816614623174354021177646038925494881327334289930222285141217199325697480614374852245927931670525588409989867271853108033227446984030422790639973316897934520994561442549306038492005092188762972707714312670431745887764132552247068809716960893667862345525974713317134128975691149128406739970309812462928133859117105684269232522246522397580665052884459681533411616471842659208608145186173556564277949931632895939160446599493959410829582966080508647290209561224153389979075154868117576724225637798550857083324116630053579409536677744406175766379654849891674678569944685849010307118931241937139350911356240563581512870218785077607205520100569859823241607462502468506105516146431935304832721523449194645486882474103554458701665966475085872621046108817086985084408854375445447834491918899706493071402336150940288108248887218096039919966694984264898881483919892915322849711296838089117423325025104789335252015255803956344340912431883136275676019057734867535807262723634200407961882933973516833605500459357094503205335370595231805375476471883448839272525663009227853975492471707483476275370642313927709862652176088715719521959049751778001218733772833319376903142511771019676503919775473843963638802214913650765487888453887344385317891531523852661865358756609542437997793710346415196458888293702397310626423662157284430230943661117029280789286579994733491848340267306100178981258072646725623570015832097601819211938441812851644118515684960332512670473440108979931259002143738030184487366102484943173979510703420647749245366514123983391716914251539495716147265400075614415198123283022120117596274490721555473407891782991573169023248430278424487415141018990765034847270687898796912054635748182773485959197196611922166998682842842906194733144789789584480438471843841980756372464406718526595401758298181351705493387947016018483004978024716210906873290792744606057852260514238259053354013158353335388896426663614981050286299406422922821073512201474146210602539046701390533747441247729209846079939757007043391240133603651363217017825258465618098822152119097623689851002798177328896935185968711316210217781097903514838206444837931687186887764360935456360310850299863363483942308962733380926258539998650570785856427996848346373284583965305094489339846336247920682727998539283587594949555942109744704210117863233855410221938064694554990474690040192226041139571053688965835418232717884114098877542048808582249881167502664404999530845856718444343028381331120938406436843568717390805997946232712396987578211454079421880841741327761973308204068126127557488462730144938838608322359064436923738310857343605228467593680892602269294524598662453882778844437144540929754961144512460279313237724859088483754048344249862629259013095210782627857342438774018127439430779850727835857580459472237475802896138267001170660160605238075132631030320783171049022506995588302672252616377188163577101294726856496383104560067712401038743002006852648429447464373236430949118609519470063292828071572055112737203145876610136636143923321564762068588360130338392903697125353527443653693073722050295491547871898177374475174154312931911690629590426376001659361857916904002383305605561436319011561090726565461292293984723043996286120627627147901205110336790953360644960193168668957047153280108711301722147285449114331679353975085575940059371109772368285289813303607160092479990714906311101513303442577169469041046750767845987384813060295638381218377106954325257023858007501504869005002635200934765491401285137069839682668011656854325430650839160942639083309638824624021057767568995121537577704372722047336557871083267063685983424451989462896104754412865396706419888288107163403017705918472947385887952114190862625035563250441174435290230752401039053386148117138944837027924969310181600680194026988585927831141314278534942480630155635085856376239445225567733588483451712299198368957856733390069915144076970623251237090065802127628524084248475781044111882366836021027119197420385012347457129566458131031397288557965647254025100296244501319958666467964036479176311448689482311770610494312340710212553024591617691971621075834728503040987410852725496767754428276997877461731465468871010199020902397597674386526525119071906903807450600348681844302884939891910209000718310029697976452244637401534336618539116440810771797630929545357605215128685712616245704671855642747979847423096661639444928099242585563836534941430079367588960361085254216343454455545258035716601581085543273682776749693627094462771831430220659698824508758858220656780578689156894926480166185200632917744906502400630663966866159235770020518546414023171581776095133155941475991193807259103861499749689153291143736130372819388053633360931809806620994773465457690635765936403245944513143853577580114055667104264794207573127174549797691282122643982003486431711048505939775203176465409256260903588416846056908403595941363643702883771327100773475262567979701224101175447054462376283390786893192235499790036756954367094580832883325552486243473690578033026301404658337914472206364461670441678072128617451221724243701726649296856927978930754254814264430898694606024483247391456101762781674874754548316484927715572249085642956156834924187737329789053955945613138546667626129527019315370305377360106126037253212102187142527879305273630573419284392938876919056511322817618906083328551027723036678376570690676410003751890850982456752427763446876415280016740226258735238412996610207485139431175835167488025389099661586196284714633585574167442738846269361521869227427221879096575528199142181301010578185981629849337505771567863063639567160440348524809190928449348689498810046752820916460875370540765558570832838537560034939803557563168585975165763520090098431311859077858262438919640192166143617764983930228356293117870398083233550442443983564918464209934550963840792810593823077342349014291738496728038336114734131971170020925694318044965050064419226269391689041148594865609214064781561734853086899974182370756048142132095214669033889717258532684113675613075842489479254676316030527941283984464307338161940443344965444450502562388088010979615297439556347680159393813113874483579618802490487955533324387500087747786026820005303604601573505995800518822990355495239269377305332787749264530001450543423102059593042881201887734931024555101379211445335190165106168793602386356218447617293970379368717323128294772992015536322037428242592487550500969657748347747927785950700959917473971294462269123949216533853922095715183526551928632012476643678330225568428639737828664694501777755869353601498480263095217015410585133877390994887691989374985186825741271249326899733757807825230173264914840674563270149005275967319366103904042526082903246889843694642300792292604466504466169087352457127807218438037960772561656936337199322637824010884388295556409501175917904821691747097042894027138745150155806333707194373286539518595500375155157070492508061804712447910571308818823076301547383874507322148661282269566567550555755944435569457035675311262468185893671560534002050968494285456169300397769555190523028674489103760966879342878476235368703225332859991287797621592615449285198857820355921961646433722064999663494462144821363929788179769877618297606136537070568437226273097791667814697829647248993525817192246677788410297300820986686324199389070605688265647731437365018572541624699972142954328139461131058119291492931992501933140354998984387976262870302425928756176539882808719978365807446322919538242477729395717263728533735472296418787576323750247896719782704058786783653308924785016091132680951595093243103573402081544702959302624030619307506787786845709869506172599852473797060181722926564417857478693203800557990439725341108961766757410447946340276149284994527463575556314640534792731205879582323375277232030589888996630405759434547726702024417659633595842929686222501149887252904924931080173895889267571098707980237294065389165987839537836431413823139760629435410689829014966038478177129447932872725632879128774147537276355865370714343815315606658409522306532938166368936661897708520342167718967667388615010521765002801190712438971738745416181355103572807150553506811194158965275020950786410240759110624617431504260171213656716388057776410954051236597705201046132501209477648063177864234792417983880909721171707634548578437741372759958538120663175932505439548167695847303419390642367306388810573408020614707070396226788487674665647531838574359287453122542031211569929669826707195767245202723601589436749565029103835733087737713971189358476635944199906290628224952751907059252485228125561287022637009588994700999344590901142295044371193001927447646884469458597979833017194003899689941049070218230584601559872749862002623883598040740901236691113846079626613200084822706954605427686623904244198923612527365529547964057864325836247911712955021550614192194952358499665294255864241055770760986217187390601473284582172075267903182242368634943147183284183521773835013664868203498005396004999354316708049302279729458720312655496985264329984879361567309570216697975534331236132175646600967171779099941816106808709064436314823628034470617412233076163444264008484984948464053730556626141565193074312225825949622195470972504785539854960363559507364334175975185031634395592703884924125585856682982012344164044668130595365967784605719705658559653576524198663417859856970011171158179000237122744543258742288530394879559914252614916416167514833673744270439649802249461970266458460024317455809827714675116456944458132053221581397721567098956211515614634213903404713433097298026945497259178672829093313606878000937898128201179967566561162427512924993065086481653134979029401625155559452829604791042885601041242461210405429963210498846504394327676443123866211150651043790423795625863707696082366652404504219923812308890453623381631185919948953419125397468355902974771284641316265345443263495031221974843805450684138728320726955619023944430690778514043234185820163530923959968280727430093227669975823784167523191427831078119371467850052121954857809340644952127655410642184790951174319973199389499903822560775948759257676853874485911899805540527650747997461604674644920999605911441886375832386725273213047243095687118555169590235607861434084507680687234207016090080401778068598139988764599058660632185005852708180713689136978678162009303114868217332167046860104830144456766700560990292935768217220710120899714893735617104773181176032775075666547343061914074416072926191535254223488003272318209754036666629846319272412772495880241565273835971064851202660179673521763365292313805794093368921308543637114228036094649962121356170639879654643594265537742881999843733378686695077711582271985963448601363596839599219738161556185161621370377226025220747410385775005698198433184064064251115990848028831951332314315743566760302292410414405003492632765256787346055805061091594619578137336935702483115073750395760222578137809741922064080812195807781876728538040366639859137784969104707282798894194936584931725510311691087656440841155626849798348190774905943323249278077041245499644506218972913355122238575771711479558166101626565790375724519436889238777585825025360266187817478564515645425471050391261070751364688875029840892418539089735990372869969142319361622281829145757538277279768975770957187528615936802008004671927409805242629321188767605372841393075790519582639139335698989954095194764359698764042943414190591834820605670443133253858197884324371209628679748184895013317687863032818305069276864160740435575349662392214471955826378499713342591900590653386959897585073191343782324024147842761615226477409739434238597351246992232916497208279915859750093890268869544728808558629013458527718352989718901628213149419762712114044527676840459240311307031762713494302591759534095659568679441576906708801137040900267746081199691956957738664291801480865561602708903188133678162456475893698210584493280503128477269381990199430226900385682475171724802966337689915406353432616785379619776743403605752740828650157751497523771640335935576050410771243986683583799574426013274405641655833751393035245004787832328680069481817657482195707674527597536951122013988496729651463509647106992932738879064602680830249784320012825797254704000081734270873822433275600068769130963804598884020491546419080445501677473727840224377462131599076364435788933524609964226272988994412683218483215396232501209803377271829558683035192789959867972606108361939214730633533185842549544796498115785392863047143128502984373310393656616245897687269071907755556358206701441703268757104510454796828743920965181068462037395914060356352345168364832152783555383376739493814403765314996294546913220655179477172899782573022756961811038910860250986351372824703779148245622196202787746454639374637888093677912381693531836094434457809910603588542646729700930638062357479949385092541734367343141762488478479826647913089134772452054149569622498246054135970686431557523645233835893055752569677858567342053601132334229784418549091008419760090038045128475697190601156782927526179851711956021730356344479363874218147007128423885473597339059610573656249652993637977277774494295726424258028769389416682016163707131067080119311995093619734842280022815117692113816386833355592161688847356989612105244615664745514794770033499877695173629148251063653359056512517360494358691807720065362739850985084554056729212894087241045485546022639466708278812557113069888839276144380262371919546253874973498236277183892584792443830231638999518685161682948753615660317378607462935433712201943239432965619619079630089672545746941781728374188078210232823645163017637437723234088576102748931663852907644134490270138001762387554071130700961006659633997306039939736286726523562078999078971568999936722332963871840153978028661174077541937077274056695697325581224289102234338164313232013807318449118183391202396201079561698292110759431533580845840792715638694032178141433675902493863701176606912351073458342120205641169034769521987827255941398999369611550258383704060522235834105391056411066080635193546005229983821776576038750171773137798234359371645374549190349731539829736077224354703813197214815503490598604531659681888684269871501070947612329143396916847659831333526866426678818764820473758096301864816286229029882787008584269543984381121495809121529667325809028331252181113864217927168487235589338649145641595944959021796075640982806273228528943335202070434970874366836344430016141817245863972595599877744680248311463072061626500187773915446665385401582627521842171837297751928191627456754839296736740391256641354363421002666364280816212233293150469857626967600484037103640254976934821876921815282780489328984915712971408998484602305027305401505828012731012534860268075885545642203201639988864801470490031192432336612964160180662014566020081927026980534960134707329770020140769660281341646989999731301817753445242374531207044550548085259667187486465576378917292284525836752632659575592732628333275183970607772826224616061665226623115787514119014716228645118703599211837447119118003549875761538895621914013510614743910334541505682886425629781776928898086909965573443648816596920878492941544976807088967840162645600644712418961107350620795708054706692487606423754848529758668663959410263137115569741753721866421831077981365069331635553643415982400510132987709574679334132970373547180031019223698672056464186443487761045152289822832892102281108077759484437839636364622887263396471790546791262611988868739340472513226052323355952195109920711254751937720977374322573805576567429775590947164372746443366845090424550031279436907070942110710458937693074496893751078494445127752642359449811997051432290963474061457473737464244916786976317649973435163351727588463763452937028171364247319276894025612397901753045712808169506672695699456145246084384029202885080784950545776014845037041192510392157977783799317194236083597322831448915239651498071727620134698737173332602421424968260386936037379196959220141475208266514495097322917156337863439871185178325814800937936345573714694177702305854005741982536485069858080512214205650997386147198033011857258159022940831122500219493454793074628251074767443699015918024875184490478770280975020462084481805980274563339847790406622214121518876452099249833405555451239168668484779906098901360860854832626777423097239202937900217853865106948925359291474550564565283261568082659583591330023214643102691622653493542564995731264055425093648786772698232045722661083484276828901217830803315988031411644623282088601971282640810232416922793806820389319661733957644608813948835296824891399118524227173531123697546408743566383671552678544159092914124863446222010871391589753631331696406983901593231892649127187459006316303605077401135964513166893051079331497091328674018334090082278942750297085020290597376433203906018839966254091732294308566302456985988250806877752501528842686615718770780528629290707761466062061545182295429489651487184407012856971813067237788368977094812810740822919519971624648136319148089772423129449289529713509498009628283678953235642981787023506622759180956415339244571539933415007336107148275573414541127216811012837607701784556127562215623640922580381744767497559270393866519466286450912241332961186687926966656946091322796661179478921359531544768954982058547389885471800340841935116806351474093078826517475024166608284340657366288993619955864804520920181522202896265349600670343108214191566567339284951737401203633030307235788232234751625038853368339295201330986836466137037447354067155060064698448355525662630221216135468598953761948979727410672331449293125797680220839783460985923048733323649003962506417270139853029261308635870327723229532469868412589541261307478257473727296268249676808306246864213547690053910473751348727957043868233996044263189882102336003557094819420417846459606069852269649534896594758716850720328825994358229507997469882649556186027526979708448929491181766132006461594224669273199431991011702071436679788001428166004977489973888566622442452222699751351514587904056597166817427382496180999985967452849016411154670090922565376262286898486559770063601581299209757978574968267944004711185891910692298881499570415447455764310639642721485452968004937571621809540949786051616523243718815364623927023683853668718272363865203772731978062003766071013311075470006141898571782164734173788323239018318946959426046729576787791095694148766125125428586818712315487453740667429567244286760910856042912843776083707709296664003458401536846960717342300072263416800607131337263389377137841224799891499497958222736206631217245195702192810150382559451378195445999698096968493569960311482831087179519032873260945365803608364459454591235942615609895390072837479517233306272169338085071569291701599130746026594030055672288931598167636146517920962566495267976598057272631836849472072681546682848344170400027436451039294768072088369897115241351018169436809003322815624621797258441028159967852616345378638675055217511030746931618649587816414652758722209597396974115130229830319876464580788911026123955976708619216168556873170163644328589111439422351401489066485269229406627488921822540381376440662448181269133726715323361432049673106738452933572249840384073543454572069507194986523397133868185617205377937885146004776360696606445137558071418596129831163696683814620807187679980218874796851502900486488563580059214209856287404208302449069009203779915793695288498294698629082079122917138515424179811976987917743669912231952833537798957572178020966916026876305704503011406824416850116038015351375799348351372741350213959221055237339799247801639232963476944872130782556221364425219126787551835897871935101543093775270000923741755840273547184561637554747335428606760237898486677111225483489124011888114884734469014984145552160381186459317607491085509073912992039579222726677067437737837089284139847343388560682630133475098312264552532948175695829261685065869981981594447874188479701971380173530394784143595788357979504562209097938988909762848198867841419032611648206218027456822047241599985929836143128169264775692802071033132412968761937157255754440902469195094666780404100513961204744910698134592847251076131014433670987931649598982673491198601143734036800155701060997211847556924723329788263738146918300505062753335999364156472268726796861902813506076278401202436432387303098721381323180606011445112619931443720185944311660321544206799684404679990056572485788454095047701119349561357386595123684568989295488018456046892779822489775410104860717783338418727257210267422488498052751562984346226540703849217594602431011208057622106017454026734612682098253486215429836428793215369050116807478531071336866907428975207541384171996803497366246016978975917532812846060089162525231580377300515812743166424917343338508990381848319617133691519479631848635267346291163348660043774377149252840804416736593026345043786458609016673869575092132731435114698336336156724838674717281214321486445764903236333090191276697455019898551931284028096667751729105270172941445463091529805716007467269510568101475327860678114060521405902711781198953079504949321264778106351471564677046108714167708934025920402110616582890598709144893397768962338203900316149180724897635537059939147643938390442048991283431426516082236401650372427665757123283321695008331519032680273353133839058291461358033502611870285671418304067755200974427325077227170627876841625948370966099334911184394667017625061774048137951398821144284557151191499221951005172507001081082451262551115903843432568214640890635946678098515471125100707414403018922129850994836258627487578389906360843226316199174908359564594608303500052141751011929238654833072454690351328244136829469476953199801580014162215492402673862819288803162088487016199743505949494231782610012285639937439173322451959279363141177919835616935283805090123146705249977195000887449976887473610510201105015141446736339940411198362067013779801975373756860165470177048705103019028470197858207347974803439208944649707323892979463084055029439712529865527662309367183389782463944534269664438512627952815558146627544287908569863285311177561098310277692597984548994818284925499357728544063679787602796560341447998720388099198676843445429286864393498017282316319666325378866932380606738696778769238961510538469921095241138262333506387463121845828752112552062442425638888692667063863081464286612142424881649516425739478013087383446308403339997135038521207624348182287408137165509018764839800515022413424417525288437736842826349540196417816348731850354239117315265871887932391398669948458980183609359732974945104417948407034159394023844028488265637926957452297362614893183954128321704109879550026585896573143375647538607762637663981889377481319164733427811585453528095196100219576536633212865486023681379523810770873941947032989822951214236483289092684880170004475423613047384156261359159685671978052891029838905601835322177571641381441470412279525165588794849140361891257939072924722310279782863711842394563054239872801483283579127946357969230060984362278851570693921757953052083129354783296519931264214359504707426608113423718607320579237584876318604391542273712816829805518559522771743689945320901996895999063208569125922123059620343544945021317232562283124112902241856240219519748650234439701570043413485319531747439608497926674234491629553973568232857869124215653969061236203163357940123420693209225068559009640072189720937232507413548589034635786849254133549717653036324484366363024128269223414376262796934004631962323674071330048507368234183365525016964112101764899756392579550499557977516705594147921692751564869114426874777912995289949489930556981967957505457469192401537022985979748448029752423315221957597189521129035878643868015885482989391245836926654145742661653653150948198168018788149806336922452633007967802752137391604341015369150153860061948890226374422025047747705495501635619479936032983900074839500401999870425816863719260150486311194860502566798293973754602493905726039337991903822903312642459369969765770337921280681025044112169650700908312077367549870050876637139827227114646663922450827542018797643188134146864902330842354517494239394923830436234450662929713456999923232991272589497549349682421746989089940276867443642949911206991353509763933386246840955075339887136733803905468763644807483603131659288079342405894165453261679002887700100557368455959483741101760511210710612530196194644352509106094499234683589743082534353686205705305475625621679885028864162170162534528081888295178121439420009885367209261580448656594781730745589991823951349417758171009397869581662235636021993199643356397624906669944774643395189884918318215304191878029644669904713142939954488319455682119414352796470336555711725467697538407019606389444666831684550012742715131931989403945310446133234685734198858524281173276616667888505045065369826306833190085092031483717107019572853648004673702565755484698174439352474194456769162036316447428941879647156773447116788866890026023265936982599184855091479765629602748842882514673093447974040415633613587614701296537187590804517529883791726768456899061601281729310088087731456711319962351336150433959331613088177100159072420150661083832949553397160666887939294627314154988478216385782677265690742900639893306443994376170862786737063758036922456368689749896597547099696336137888880967506884128472452440046611831242812660532814429898432133792506690691223795046044139304039996740725830674054378695846816577430588094182235885183800065149551680794435763858475366886572866560858586614458379994158798999724982493907601319406956175878875988548410544190903303198220591888142814695677417038721400072974131324247838765450190184564991062971300343211209051358372462904605403444445245100170420195329236045317753138867652874445157774449264865951195861265964891690392069279100864704616736863346159523761444040854156579314746809403172596753817562644961467121791795959031282934823767803798626296667495095124181018107595674126220731403202307562013926400428745910955411408357646163969834005833326284609508784569593798370993295462188206326923652542142418054080049770004210623827973540069085166944598485840571099292472670027668850474102036616725859145656187420103030269866965620224853444418672295128373883292793134206089903460285303394139106702369379956418985447994655056794677090901846410244142432791225977079028750614216258530955574506108964918167498145688420072372553113917707246569681188667233198848411490391662229497328847628733128036245340788855988504490562662896464146068030003682909444797075737401933334850873621662589406145033209694019395792592781858930597867314114165922338527129806507723159374960278473437435032509619277225841671814539567212347060391360687911983193753774586779844582163234611985030250766717561456101650335043121888359308341010454216123101514344736650238412984882213349612211069343909882991989679393125237781916496337697109679101656218904970735878437431756681738775572534460988800449294505799583845411815291132896301783806815516258232828046751743494781333606993281795403094334718058852182916485621236231832517407756386793898966460075350692633764841403770556979216027323519901608383738243599252356495705139257543997316304860696653516713585235536097334230352276729643470418064936580669233054019835473965098395079705501719095766551743624736803217407842167466023489017746597747613722347231538616041184459727373110691520831788337681065206401796427206997891562454027851768219761731181250737586488071904805068567399143495656892425018629778249875001532096721710893358836804601440917623298403688943768657537505108722349060763696734466717343899738095335167955216037518768487310566075332197175865691137104686019485295196048085325401886061773588257905176121198800324670221553407339984313801270359653791935836963175373664601176556668548425018993585768421478952170408822698172469321946942066023347138350479087905547323710981029991058326918471239384236059125249929538299110121485587053075465275643990467637235393853575734202761932680239755202118045011168547852051783001884040711005879965886531898197913777081719972691831182194674819503095792091164077847718096348527341989117454107422138230387726637864463370627012334300547507040074192039250170654237915674963638787202065537451901431319182008863525020726508976557923633045395099314425090024242816046955410296477641328446209655211719507256907749686656350928010764718079628373199105267584081004316117793277494787157454385583485529736027108080658736656331322329383686814323622277507529848813197404822331358443355464448834397578007521958053200670008665173952692170866380711829691356534797353543671670821820998758524578829295766600128370328688432143758786561262471351967737724560175624827146439723183033359844688815601184906776715888170179308145517268262688046939672081267136447718657566433257949127455592855376774161702426068335392575791875105173687056382239638086585682965434181074985685895701707080749123340777167793740663984966591445850525367998218265377269694055383594139447825154040566571643139291792053647101924191878008184969200489705991887307371530808040938060156732223910304185410444318853298423246878075340989518887313181971440509874295321090039672860294947027414628867627851746092272539024569690417148363808353425070540313435953734197804781921615853644075872267660148989953411950023936842617697668235126201231522128422096695107421197738349332099653068105500304382799793493185295142295740356375974278483068273015095692651069085695221485300019148643169202477557613038643563698928986180874965259871352123080404721403948241112044415700914092739962334666291765524410116801076142042019187706510576907651654972063512937652025284595528490375954540665349327092874301209927402541439670701173520279073206101651569585986316916299357215836874870068051480240693023215381755756611366688755349983527233904844304069911215523304787279121688184272846558636768303937456676416004979080831329938363478843654660559901432293847533332566197304124424959936976259836541667166519965248393830731519285366144288691977320045551346424502082731432273981467678925908732719253612685103373799611443137758328951564071661570554277019151888678913980711483026524552641656057037893700723739354947594279897049416117578383557898607813345806170896325099841040474858588445197628537483667708580748263481396021692577606569592068020530499231112971054296521524721250903311483974730282210520216996624826809491251192946364476928567430006856109090110890026174899927018485743438416100785031957494796914229032931262842228405569578039552321910614213172110926533843767136201518987301652791383389876462959119566763954227971788138729596176556505221068974373447691526179313499365674510128442287533045357809582731126966706140434710207004029173375307446187203921035697119782811767312705113665650681580981141392971972282025330033881042397305526477555021627188944883154331150357382326957140711102263718271098232841780266991008836343860546982816514927301847111094880560235513523030666166386196154157474061043857832667546410750514477935630856492896482383510054482191491667965029414773876093323491898511686904527346569771276592725520689472285839104664370268062484560336012794265533711592159582441357558217353096996095657510294278903222748243858864679383236771170849804761781972582682988194631248294626832444027984992027520569376633607145233739551313313417114380796315494474943480643541920724502481313756150111162160905846698142640455612051260318637478180566568391417250775997455749367737620624806206689493533023122617507873733297187278427111282062714961215451481192613162782294513048475891055376905285221401507214101631736213416678009001839959214575563448946893441194217471993655539314099944236521626895777982093026094057122668072136889582857490648720618835613853849819773123183450778682892221854149379385504203919705760644984439253207271877073873650263233745483332548220115823603746857438695255801894603228150308255490809795975558072067577814553849747573704370510394237449478441331555070971669103854491180168144408992379466428169932949150638757252409276871526260759707877840626854057454814500331714808705143799343234919624642060872729167575635631474893915230784949648872645987524077960315741743012969564926071696420330819233106720208922848189390456253027827538433239962793242436889101656621106320674269053481698155400608633654285589730169486862241622864230239419725313086210967258263795538592740883961554983626775347790110581096552361154430838427269529672802082573490905753740470527765773725125870134293518139242298384612656217257677770099318526783835708915503938537400403771835470249897320750308289330478231746506321947720477804429701637512393022334367889816843365097144624724180425665430020200985635221104293120535208407813114141658286414737321376410205853641312633657632711880747327753584816339646518354360421286430939658041879487146977721923304764738395002006177567289339552090285320421083556074270022731882730391708090999522623647428101305605776635788074364085163698028247403459929487866556310390330250970217042534892467659703168800729618663022742138370166893761576973057245409172517876847615967811081269499634276311664531037931241795161515008264669308193723585859822581975598226371432251646407190939597300641635480632301559463279266124926214747528874399345785959611565719660410456162495454330978444779988226841521862357866346293004606877414529686386271512259915312321616903191269208815368077651107315456815548968719146480429300147212834322883842589047780681559572382236317947413871090338167636999687179415313474279340844676701501780190253326431047283618718390782044268702424596267026215983251816136168102571873352540677119734261365522995912309812972661637291459975938991534439110403187786640937515402947829497557538878878079250432471114406852847807759706039288388481976174448220724108730232510167954075293001598662251240797143599918993693013908337197614349614550903732991278819852732492708408261974360584679198357494555361672197995054487566841689972994026552482859955975901700293436567868774633633282879822269989868000910869802973699293653854163907638521995370237212650799935539451440644261486744456816463646682382657607450424334824407460229480200515486431751827298841153633787922108890321505745379059580946329539143538780182191244352657429299113955997982289281141914208033568783783858410521403850312033750969650817918341392676630973909395035729314372596092808415424186427350543698524393308171671318198206432729661273291898326099637367776928290166194033040779124858365721134264247394309529872404039763304859511222873355613061513788240671210059202685526849697899967798837864075672608987603844639796670926052480920095571930008480065244611074632113081095307171647360711157583045157269630098832285378179802730083239978222173684900596665476738790741385471555855843506486212572872141485694420561033546433713847526033887477750427008930654811601389422377926947735882991750091458225205097292645195216948131656624581972890542809604207242675087591877261413169796625291381162486089692685347423109084903196206464403570040193226009244635542387347663688660209092742372213768049021641747927363601853349755822612663249020419336136485721833942014796560924798259269715431896575432405469391238184064711667717571565276220967048012139650808774368439401993978650512321898321009275881899221335567813161096217836065174411467847503478125626413415485199321185314098512394918238365556529100692967617201226668266357309079315397265097908176517900524385708618371559887284750486766340651792023091236720003054732345804077959969917303042313934932626120954789834320816083956732741342790708905703455273873343691667749452945546694060769520415640742647492266040648609436619896718366140183140588015744004570475292703689955178560726212073403701273261397110840874709764449705270325510096565929465428135991792829947048763610767506382239647253011353156712062464758922131247723281592657393666632190509462164271848659336332656844519364947716365347908270853371645898453430720441306920882378108032867421437339544082466154963170836627609271609493540664750665214471628948972017587225853011501759356755590486352221397253229601790264243495263781917254730810378255971261236948833901778218712795713885362580981769354786005419188888523337010600251256556883115682269155209434726397658947589102136948544201545885256421779838315637083015366923822313660164301995368847053516013730703080895274546175016470083575961647737404577167520750840516987326304713909274931912658482127905485234099361415370298646933319144600550491929002719945878503069578518391929778581970621572691098980885883268012005483350245251716756573155927428852175990161792803490768466295218120741765447692579572164063845101034460876074989004998776843889539156530026392613865407962543086618754633387555491052783126178934961722704023850101413147426047648896005641625884055209235940539773184993759971392500917803182021749066555283516620808412782316254276717840441663965227025227768489668671010151371469668460204134487456076962819773699240647341087878441590302234484151894661023098456144254308312884050084219240958518948009683925167689368416200742934556278852754237676697925602765310138339237053095600434101092369201090035189005928192091261593328461535424930895957076636485658956591609769788072515358471225802299233921388328499935135917068000741527296293320127267559429828057123751762849059414371068448111992273661224711040527998501504023824734664675214511376502305200429124655028413896349153010408060797683661617367733626666267180705038773299685037625297713998867619093178511764257320162321777409434874055795224451122508585245612597833960281305698261837360752442663999614155755583501137411514309658476540654395388460893229924423310813508245186813642837712946168845171554086137418290561328250976995260744598369980607641704857659930089941462442641926530564182581928769636482590374897606062800891173705194111742251581196700808573319686976675301256707355386586386701502888109551759411233477814710963023721557678092958924375007583311240338676580791146392936130262302894168504225751477665895715064277486827329752514534953707575072275204187063330086393303319147770356410794155334997495683476221389580757892217060255449967570802245531347428183439175861769203277591632807481881162655366983828757931265999579033003142689434264453604252763066656032066337632208417756254677304372550692238003818439173502382569138557025401061388671980939427961319255914934395640988603999984270857113442526271876095695979161114664712602045384995487419066692679309767103600313085976631051254465119501365924968228624388957305630469002538489158048848784604047682100387787443834599444810550551342611652433786490435607652899898605788280753025646301696713707866984627408415473042034264223960315107876589020833304268260862803556423304656061451711997258448536265189351182737809029698162530777995546281034569813042598163793644371205735040141798839363117465358573301987428997902661996024909933823919173496221255910615931473425731481912790453867775043968933655619112062108309909910416631122652507887637847619250527173179790043446913375903797070021905421251244295993663956075820605997970536629981807949518594254480989848038803497328993104705744548199912542821593478552106462325853515715536156733545863550995189606573514475355648525327354115221826582491609086969642384178428228635281220894021130353525742594157226212865683413304121197462945336180218237536737676176516819358797704229589692746720009480773465583852437330724312636527266753782967517754005052488697256709559564029025761602697637940014120130295678325312955160726475392532117086299060250245607645426980955341288545284640433108555225397110936477574693775349393525294376908502648325488255725063944237976201912630125450295905088086641636789584007478203238673469815968911778953507324466798075442542826831907882122873306113725512865125757903229908775943265080676884027086499779263109108233289647651576374454119089243281948972243652994836764672137711014118413856518837429005094543415020406414085038325389467983881638198067366813786690171527756969211755908205491522550287755091277878014870799343839698924084593652928257906264370009034740933887862143766586900980311846572758372170201306712335127317378756680406714628521037931639228927868045768808118241630629218587158044166782619508029407033164799702291815990505563790116931066025134889809320759215604029817073719538925325846375416844619555528242452070554827150498378251250774607702919905740669587061400633175468267644476445856724055649070628920530369346851121235380149026573734510487743383318330732720425217174835302811705016611863145010083400056071380545749328548557741563249850173876168915924384968288798246011694870656302307411569026664003361851291973890479218512292386029339652027816065256733313737249728772368711403915684569001857304319140384693792143357867772367412026374725031706216440969124624099412876676103940149904917639351911007591399031570050325517331796735650676993939816931253638193367915289483788240206527792256583764319317912465596707176732609072359950216188416185695936993109653222125771197707193444863335144981696830124954263576467718864330867720052075318750571486575210047106833305847284471527984155569034814233611897091903621093977574951027832081647356700799339733514228428211938913462485034914440533116581061231869476196734005185358608429751927201751487610121718048549928516388348607458528790451979170928705156326794021015030432384490799255704358418368068367750390955253563505817377186765353807986659102578399287879710556209779940091700792652922379863004542642856359139735044188119469254212555089078908685759297679065424057553993005463225700428843841589254851865561715802175888320605472814129222721582785321776323740193373666234963531839518335984009004180027953419410535642280210756671280354845961967016894591083176170382611110112616278643470220806491560154582244366989298591935345394725633742752907369341585404495075908067851853751572677485389286819863289293111245705046360709177227531408135680138023992661522259102212118300949193214910315680083717638625898285157083866665931597767059269316741094979019451654403943966566285446876041685621395122631047564133311287430013712598824241854187930214915581445113986683794961203337231163709607714890294511575381308145256867388863186975302958451539568311856376489452096696651503783908806152830194678649871623259055667401958232786748784492127068852282436862499780202925497123071612383194378756734621396809987949628470225510402938760597837062769707602288180957282028504699941535674019093165350070734252037214128943200266192271838192866790474577057334195009578649894250640322177803734736244248766437399450179215568692684539291623433526760063772004904004128487950419872318203397918549850109109573097419871418079605179554410997823904234602017276224291024005115672328644994526292089982017126302167755724582392534485631994335215249890929192220879916712189199036007957698677237567273159165764314437045150844154090051485914157338235861357924963854425357017447624378768270993939132985427376711607647911541837643211195168117062472379047006438592004984667783530387958422440317646103326785336857269052863542431015323102035170562837789863689644025613683999154692181341904609717086089416564226351171843296099815122395708334622782988970817805504386694264571578988105084849479587707175651629046518572596764187557806149681371124225657002510030807009397467448153159319519918531618283528087422467805247841034862285537839272510370901047381682401577593820664561778892422387906112921652275946198707185505695689644532258274636389720240553130978140540517284457786171619758243842466970365640646672499079773100169420669992278952186643138862858679771087326737398573621969765440465936900814371502288160127550942262512125526729614638205911508278122591600427434752832707829763385547259089849153967565503575678535773120113440520769088443450924327817249916826757700875575649394902898065874859565521607357472713009945662780181581269958087774384450957179011550164005318849674336537783576123256403845392540032975243321783974760703068566568843419775205946035379867949798717000407111065869212928773386071015524393703207819281004819650229342221876812692014324098842545246077418331550791432334408054334769770832706472847792407993384585150517692816739178451184613564319536344777728080294650406613745732165244124640952118272795142612539736202858413756482863118919371901577453048378018760813902466058153569705431633948573046119625186413160609063831727283215971782639710917451639135460257733637808939522520797350610678390018814003437268708697797351031641496111612668938345846745016564393888331088486352953223599610842748592016751048340206012160435981535203116135730774035605222370895360508961640323435339527621820988712685217359803555673171088211963138036672566990466939576764766368320752793709569279515997135260645263840515619678459503325784570144661507290096531350702092356971855272476791371219974681016847721338056158697164368085227280907625297277282688118008515032280540292676129162640224448681253643192790226227500752961034733930247461399621578713974492064992584518448479930440309683799860029161265743047518943142687363675782774879648039635266433879103614754372935074604162700895397230036134760556127572197092796575894790368621204703789731121432499600515783536753686430147352554760162963944278110343550810917214984112289849778467358030635695170909543919021001665745631312529627615933100792988393219599393537812229327049613004595241285517977500691291448283402867331526241624519367129261464104858154760508647472803289401060807014076995895660701592530506533665130316235325917386311673565088234450210878364754321898373451108725188465736730286532520813374984995067424260148061346692909258623004923296594789358240098862042691787448462688972677364914466932219015142121010764038362050864468684797679884420249575558601914675406481259899915693589525915343749645009058912926235511245637926428642167702022710824806201867861296215536422272113216274482288606386466915924122519609641026547545735656595463418924283727846833696359665329113332622996939746027433758437680172765529405552355983746848113382661107019097627799033073581100815629608407655471930775434814819971669801506164758981206911806513002587122028490218971048429606628302240422449159825189525580008670270378743585293264905363097927212443031874986502882005364890944439349983661813689658237136179407236656650291929685426726320934188346595411391067238653310665675887473926169559694919064032248982669829931594816006895665788174612415779183283935078679263557483746485334333803022961467782852784023137533507135734638468172761583935670532919389222841133085910414347432207563085841254878366655856151868768033054432636001619298507013177877487725176452027617160671131704312449660771977835468894515945185812942641861188714432845778361465272618375489465547860006870533956523537877130590974401515228394320365057677708267514701244384149408902954378126621506054099943455878936685539342621686625604762202212932757461785894166888335010371459024567267650131781305597308912528764588453417099409763706320320579446953429350304268502820056075313270079803541501791745066523315170351327732274384408771351008809618180679905433883637814825160261781080132188870290034143394934995938766433250329206014067511830413247122667611311122996324348702608538136875459086649793871714172305026551595335542768266180439588122968491816269138806164118306157006221398962348449861060175535369039846932724438794008799549545935579510269073067669525393425445471193974814150660289312524943144875656932834710519149265447030818529187861747096393162530326192157261908997069186450870579564566590214571882908378133341734380173765084196253003606651229416809535512079538282916072742156777891286687199788111833384447524717339785576192225444621372231395968874634988675502467092665523124815111772369344061067409569145810738261334688039931616631006707102210748130714682136164806855894979804009316029209420406986117649833319136290941344633445023144919060672848896874116734340170222167945017641961336984610901951071237011936551953582936812475488949191743781910884792137359030609280013954872905867888014183428960707328690025553139014708653828406762869719250725283461157662637874106884979671332128010646048637135796034359370336427478470417624838403344668109152191241901320672731270422110561480342340249567331501836070450887499788686594443967017875645627529506834960271268164003789922268325978240691575842695668905237314399498286877490325946616243568982218502765440246497715577803644178166407368737613721962061422353738287444680382888826443939153446382398546683863823371196631923588182713623029510022128040001457317344076944287124955149360617262839102839335526649266112650003010128236983479260345951126660163745349880703013721273757062728436519245000301809279763470421156508934698609290259224991321736672680259801920905948382316624812509194416914863066438513065450303867449847882167090351814308292464628706514181007298659168357058348581276365057585117379274189662073694763421843164924664374523342922155491406841123117850388426639018276352940735292147031580714344162919901934766695299110903211875097152944550582316625781149874315080204518558458512372464988375168534668343466889751937659454155069424222560909581534591159103857475892955276372336027373981065585419019633737921910404093753203525663012534419063375617888782565993429204544067521015123628873185452330290900559883929591803943670783186918662672654531667456499034188874040858457833917828926566091688120145858355075575958495681114010116042280402872589975557194082408623590031922202243877746304743926457520347274886533220045776293823923749185150415825268658604302644537680761823771589310951454425620124109053277795766400715719276869881834173699592044233118496514693211504023938179255981034605000751191731618729912416922598090064110032703321543804555494117684814112649720205151582945271809806475838472277894285049976579795121625421932070325927795743542329967593446156349192667471142872171127918689896959655762479982537897932430633955308651657327909161666652089168877024728990548693792984190716794156801517637990740612234732715808676674587407182198612279999093103222389830458317219634860073555750059119158419059224899859448100211563110102871064238246760334835358164699827983350173682361550206505395309456712154994997445060853757504644884489786884026662435374347496207608020617250271981154990863674283835849907777110981989975908114540615533746677152626091707359923854497234833832722404253409899358903420529714471121229204497084739010645882232694253212556225105425156501889719133165822468370913985443868417207933378486417849024480213944831804184560101184976694492597310324907757044342095764616532653746359966569081410223310136376375946136980948726844990101955493404263803865871655419234738094311242019022442156312157534892691432396008179599352910096740845839353332010142784614723013184579157517814389380289178511883690281506189406499469373782489343815053535028478933606606133318673643431934885038622117332406218596117513766359951002582481896849275612903876227599826679459653909310808033293183983807990208644230293467690988126149245989965796192575486722552652479038471213109834690549816087407155132692365477391023642966999201859185613468878122905918254286890277146769040798085923168131435368031224447412211105241483620844532175848165602141797027533554666288691263380459414908336843675381763344883658040465483001240122648921787983414908606536594266314278870172998573630673685684438742485616482153238432948081899680340758385421778407549388252600525559453207594295259052340878242474334598962773043427907190168447987359524080512332105892523948061710095189619848684971889036058616131000867682898723290752373104156348234645297276640360094778578338510435509942431607814952174505561214379804134829057277160081911739917203147249534779017749343833699782953302866477797789249163691004884623586158001568668662234308745926814068784877538712341418013728933415579099863998991959159179395244237886970796998342491480353049771031550326547951970888228818211839212516564491507136573004580241956352331649878025461436736901327646651242422791837369017437739608717701954440134498793813711530136794697093690769069681615759288978601394600387928690824289815981061939394692316725374467762986190349238505708103593502723765485287773763187997588277632815258436752863478051842442065470741689243376308631696819630644536441483853510014329382227286976869510320641148460273433725123948102681007565608756232709837104213445768363232620754382692230291143896396906057620862448062482607735719318057469611738289688870199371117301804537990005217406180789630425216093984521230301359165474006635465433523210771892879405629257799993395447726321475043185238196129504098312082133507324506948922393670156891064486581274192394177086440179192112090547930889795097975627038193606170254076562174459657027886355785501903199411371081366785926570424361105123098441965216790062862305479853641549837421284360700869107591016488776428795769596426707340468830695896088311615382424528269656714136141129150825064437231808209890494254944307080559205222072436884891778804589627669553290974292813782807007768160004705332710697561177066136501307954400350733619177129358206311072143557037680977728400821691194183490365826052935097317002743592451661395143200870173580470117999505219847963881496882634262676424002537329032821393489993752364767431593023753422288023321284113050238248784043899459498139743872412906742322276806213155098412300797003038318064153276323761772169839327094327735911208442009674783208999977638484871493241985094813022050589743576692445417840496220140303877237604084079471864363238115121816265106127923437818513017340210564978296085211456675194974831849946843160886323556333098856914433054974159391523671934545807902583047856435168304220625618392725054260136824108593418147685855986953617852621078683884529190806020236760501586950029879255943660004530380685677647169008504470120802359128271978360462884287770076234502350556418593588741861736824883861435936584640573757260068620812310372962072906032913850708697470856966720669244443607787165032508848001196851769321274301922942764880209324038739878071091640147439453531100979712910739588896147876877407271399372429327787176518076648251816438884794802876951708407866040896204561194524211907360949629087393819121485207706041576213767639386016682303633202977436294353567658820879814556182431190193495481330911859311830140027089771743443103778359628705731457351000584019837407830841237320227692753357189433931750164837512686806482230651976745014773785728596516700933833932719465615476846923840815483565019726499586703287824182628609966448260405493012924607516163343558836123454067538634569523664601664500289705454887979665012525347195400072445818622782863684271575880524677062319553080472592977369561623256691642069816016898048008256265987448611174671696854072783501122475092402081690153261373296587550669620575361708614099611072036998241453999530710914733788789315357231578178415207707269572577085475289154011981288585388421344049120466357120217654449088051763719487287974769680078793294523464322163752858839585438329237391557937819311874610778307312042339909296801060709622207705681327314062507688074009599621393935216808922483615816784290621872555493738771753791761072787547648958305402932928045209241575761634420284443973683962083828846739299109530339680826161223645118387477075902996451948474231030971409167967559391034943149354337346583448187704734576415896050561846136140074709581498008651867058581450044261727212355166118484970935118370761296624952449914093130553333834124147447338867734077463866055301010432185280037421956871895834993348816799344077930047431168839205701738447982657129715172645368639260815472878501875877309415038197421312289666979683991022499336465476041061405938471696257777492939375625880605577020303467558466601292723720652310650207295434147379383866314135769597346799289004181114530664191448422706430447259381124381833994823303162606938514578925922425573659116526724428283463173434830599579807684895880286477361106504060863415381602155227314114945099165478214272027264083235143658205802256963216902760105998363450440563002093624225374811884702726521550919814213343715312375715693455309256015295791213652946171922287732525526797205379046116302975489063545726018442411288956988965946795508807809057121820922100316410577179433289058109045963582225595606239953594748797711604865065231672732312834639052729300612631916646104940287960142764342563439871162611399104235318985780953136032039819268299043406630992548906530621537014691119544542428125026263407549424429344396814056646128163778702309620182527346237735996173944302661556083462696940882603351595213840721079462512694692014311617602057081094643662959716715738425151112646342734984326936898498783828922316125847698083189672514197212956844256399012110183229987380332935390419697414886265748139291653292384969735652878557343082791189657710994061556170419330734780866992135262021201697547216004541369777124049429478416932384127415645568387203406772687869895713245431097310288839374581487838461926513754213826735970381896227092736937214159639724758021749593559123859654948708223356580505184473537559576812435384474883311501402615400104113581653165440199309969935473707739659927385079035850624916071018921516985201875173442098359434834322149875221858873198749454723564063428756602373386342088719565962215785344871884367612658642664017695583161547270699691498009409299429488568044393360442471285546337168223489175830939025618140006981963856656569523800671713568588574029965786600944659613572353743476313344175420850003403607875552409653922421004984152161491108404576389457004320848625113830356332006926037459454756754477398459016249833822511150084798628990113709550351648414218416675759131935834115564090095666956586866763251700013009076090826059387177031042948536240024207425456620067943796980167039649610353865397280210072704182603382392434684689362927711152962374004139178020619987853288773429957943554007449381356038342029203860103763075200516785413439590526749155997492541584738168047784357033952497529715071178945855113928788986194082692513588220348425836025803359780059124300870122257479768820490487307837767850965414912863821958733514448567508970382561275190937259297780428296711765740330831820894952139447450985131036468917866641405524701960426028580547911449862438030545873054794779693785801038675551514008572953579754354335445114421173815673684475239090753984230288827596555908403495338685001371361446653235646517463514586647050806091638120118080514233940647614428979783059196737505983537567490317023093534594170751388099779412949954930949732280785758148709602512851028956558172129673855074190015607982546051716171611629702263755335805482938788418491838525694931474378437911010551423788867949060779722183385365724964486514496907123007358592793207704928899574122890134888301623804317447570560213493438765969886577550874986761073694594210626627049631632919437394333231793125480338845075002050657372067739860447144065825774917429113562253502148283614069239403622721523132866448126377007744868613949468636683252345079440023659911658486081512239837363537009624107743025730165575578561706711121356498125669285482838100303101553296625761969960997848078170552699263353121725048699907799918887381341250542853692068468470708151226278466573811147345286344706230535084115362373682799557014422795671080758828392101674911683959854738236782605921065710271343145208151839502682982380151816070890265327045997228776715644747263246233212776756409769630745049427080849945800058788204774492016719527567512051990331769530207557665556029413342908337478585347285883445910742925339844221197831757942748777023244395018282870320234580040442155448900261002446028758901992808367973610365423551794875788908089012852095624346252219462144334002949540949372720843830828606247411456208237744184921570800592183399082624513199865101126572184325127467289755600778870355048989192396731606476722135475058959464359558681363222049880373665057101424285995025582472184228146036921045293069241655679936385340794570555826492147891153648140384635800802221169205748869621441529768672075028111307575336148017596751397728217265010439877680100993583803922248714347067766248592310028558388329752803161025543627339938152199571574697134541020792596320744285426591457591256182532927842096276811122951722283851970483948250471969811289580376115683112067593884148284976080218790775813191515505221555781500477019747200455076282010639538956274988930340479996402464505440110006818633113294902993895180711296975541287623004769566994371674152736207797508944662755517434848872178836628047790905271920378415486935317530105233948329905912273824962386561970523093773583630351271947774855964882860510852086834560576573440273962013291922692258628592307188205110159944408594942812885674020052967951493736101823001443143915864171459469533265675021789958892363107217655494439501764926802904914889650292413937433750644925059042552851397711842646277531932867619571933555486943978846844971391824154872066307821472887930817031874269186991129160061916545969648522499600959131480950433457047547156189637967102088292033449507217219673925793892439378869993055623623085332542455923343923838527638414757126576589860892096176828811639162910258517835177711091814903157009331760636488978508548968887916288804238459448166015550822006744537310567109393564431143968209038889595415297139741996089563726408791940169111701439922860432840731428267277567061287523256654550756456938012716309038574450872852557167765884833205448312277728126491174792643768865359992453525681884487345327585462225387406826327384427300779112721391983014181337927285606227899306788932292862743619560608108652367685767430688737988101724646529703279371165169078884923870682306429203657393849652168682537913145323043194964550861458885545508503728887595851402830028976600733642969721650680272650872998804393959130101108040463606349721433270478968760998637466197379225819825970868785656396866296125874796415359807750877451866239209962735524895541033346077504779653410048031582702847593036481773702673775770542294221883429069611301679800667068177617257911843660877881277973051103204706803215586228086824165950144777751261680563056552448680942976304486431225192893410580481478408290215410295438751275235953807785141905110543783150637189461636905028849746855468130600540184696166244777498114271826894081358991135363597811456297176179649769790821626596706151107858740309643162948456101684293814636282389733724012804104278982499695872713453029957476649840932462136002247858114362167570492433235703332860845066056450601091275728971335519085595860054585899175163211519598739867470900376390015322551984820284006607999758936182701058121737929010408450184473740806594464911935362214716682591733612601761488537058230384683795793931695176065778263985688618695964435183755687146406272740050189409664030413836981688614018406164967062160044125565011797695715202945163547523834878771952284217455910641538157248656999959920581012954966454709856796077374003650697956077428824574989513208393993728665809296512570565247820627843658765025095003633829590250944294083360320139107542936042674431280878477208023564976846420999793101033423016053061856153031287522292380399189819575689881244763977654464148077082147944511624982465957473081039624913673805762077572312306060864102703071395755309197886871626843300244901431631855160124390321496925204384607570431994269110240348085209156311161517978834038923249062778751655324168435237853392569999820794765871973456892840833435670783127391215327852656041275182563416734791708545961307143503822350978167879369109594900875462362919220906553233159903901091312107887173324283628017770162069188075646510644518797786839174357634186199200554185336764215134523236802605626488706635968841282363935798747414170239577349736653866026717528701251417339096094421106920488423507721361016360786510869392205514482528574548997874519773650610249316150156659420510149539751774135407525723268415606222887659683222078346156694676796583021425610955470383679652236823723975496585479183738794957212546027100480267935427264374905931974129884570165983825467007654405343554008459239831300667955455713275979306008695314638910442603552767193640182355313931147651472030514249074899661153760156632074123611504122872955121936346616131508959994913198250660323017186202503597152021336603714083828168599222169452086990103677508445129025744375360532579583637670826009027219768499287025652540418513426561440205105427502934680351451319377839277469878521993201997614702595347979622775049271230404606013433773091561954937033731922614193052941725581449067892957729108224141820365663145028091538596979071051090888479297970866140840147651704389436966893606301700826219945859654786700367315197676669002516725164953165275349823588017483556173928924412533491667947022482442569599861078900098895577007140189025982638989840955366396201657918535905108422662198964011502812475389298716570527682882859228570216951450925550457049585942846147065272534724050891465512754026443857756852818511059622447752552949703309986163253206631473855318901685085299141476006938359977556546589853898484232641965783556284723335354094380335033936425244658614808156731374700818498696367187890914546652270682059993529934523628818704875220494358611632862641418680455274791988615066509806444782330916062929929905217060883738852969563135951413256408309690946218004920104390960512533028200402727636778462251701978034898715487313047739714408227669812398851225692618511587635721798630170793062810628837721321147031990501960600605644727010336605297355501108990411558516857685954222341754531215162839707543864835478637180517005861067472262570117314386389641253857651712523557543152579623474675504742458129299121485835626859061664071352467766266220986521864504347097994296952249140512448763740923649665945966453487039611612751175115738403495737664986812997770530183542190956676303201572162171021809998939024380644252939410063785687073048650464388763979979979444734440779198207650824866045624152031055455625101898782343728332259678619511684183563860251747354847771858254679294337800061386751120113442974407254420020932160248703525621917378109592377444728770206470358842930750068053404881050950189406770888414937944034449172566929314774563877086846871271584724788839475061976376163719427933260721892693338128064818722685897071843357246714040009631395459176545920544491344765123317675382121449052565327056590476579036134525909593266858758083991278544801342591816181491767374309535059694167542569553582190119828090259810870253388623640763689644542328157513411365537929932475722019824810168179206848527517506536154948187293688127673029875793779843051890523119159063504458560008995872301469249990848230564883986832042317798310335609711036691720341516158796872736339217731959333741695292014872495733338792597226622397736424598281787863337969834713560789245089270777662759329783139748089734814132281909164775416203892773116397042073397213214837467612644173682899111128584436778340675901039237567055828302621491695787122703436331818254237791273750253383446927713232674783982496598936092978338320754161805352392156159383087652866361325328233377403577885896646541969820063566294856484034661794359786774045843498793723017389916361483542946343203301197281771507433353487860613948573934115718727900347374646706433311448804315807877022886100940005731093862659747903928786160681926271814775689331844339562078637190865270647830983656014419664571183548289836453582078538208666568006820456097189669689992464243410864628362093157667923904901545251671118966452407076511741690163311600776168009771935452240313766206782454972285214083958230295708917965620298955663465836426208185982335989205690121843441330213321644461616795837421643825763727225135031320947003815040095781175782865502555653191572723725754028497772928515958972725222613204432039919585487112377595161966153965962942263867744673235359509649619842692706736605233224595835524501300023204677996993953820847429992890086372100171847087546067508471556518949379209652782847336733831100686334156677602179348345319467321170137635848111642139834822471213036694180652361984314818482186657509365757120720611596144395211462054877431431945492189654372835391474085717399658829043279005858840093731594996419598634844457205870889372446515502058583385075970725390060859468577288185736606342083164007728605724558300570687227618603693878971082267391342062236579835110028690905630017394014267841820614764395428378861888886059746572923711232045668440319692470662069877339091345288567399917334109918498089762416774082898171574758504557473511052194716059879389236016981742274862684136986194587319880937256745266999524588820556084674290116660431760641095298266273759290247320413213295751889919749323665581216081914118390198635287798272436822171694817628112464900715057682070984456420950095434312805166236175341594916941697987573150292326384738458506484964164579628475891929730509278293944689517365032406955392304219011925786024291673778104483648339070365599319596985757328103502587093499529756240794871590891494611720792152413094937213017460464520865334469105646581089333513380870952386816694994753713357584471285051156161749453164691803868064901185902300967999117453194463344956676311684742051114277349335557041993338310854171258501489157565026916371945245577573066134348191054814565590134832319563832798897636618666738036163798180366874680239865328871543902640119105599741000751970419741465534018419132659164387541208234127766549392758970438156321467565043061395130312283431734423517788540470593604658936661944890083920012281568882006796878256904868802878441519278887387416095139537294916671406904925068000051689310065874599929667469438467754050864098707911669155586575355750672607620127732775614887602171707657699943588952042587756240239493538789722178445548463988776763752356666797349414473639805276347953048298725967591592747530092462446081391440013762244128152661961056791649682373050423298997687105760131000239975302033460583133993352730375435170402490123960644707221331248694286471470404443443317245112076043655736616238159330165527157954523826217564434969192422863611380093352868834962366124671599936524425442625792644671109467528968575167074381227158232430864008493490803915454094446097850307102039107058919615895348137521696211756754343366041763620408572729425750658159189621380722769255431115260532068373551847953091464890874875791836044612800306586656528468573059317467600788197210383415119249436854134177876381271369724608458583078232232668394643448839294695886584017809337996009640193184112908720501404588528069175332257527209563347466120315874363607447830432209212225983857535264637844372476162812193097265261135389636063859243699161966021779072899958030418384847115256161635578064275338464210216092382034743079608067006796685794543594055940650976671958663237669733937611020276563749535988973039909115343349441630830274779649624735158635164327010449125063141759767419308822405114665045625742193072339568284103307824928558533749394431734831215413081088984941892109409766577348302680147661892676532035931241980857224354427576947109007953640157504705426703672479613586057795057552634580898243624572023740609039142902220342685290954156763208090398061852110760183226132178819111906949216680154766751652139019116988901048676512252263908573138801283829818188013360001202136414574434257108565252808151030237420189975810082454909578715595490041807144696186757605531167149376322190165164045897160355950571913908895107824329553191285514267482474609492403915089514439451518063304821054234381753390295363753615822963434053037776345883375753775655520437097526334001254011032764114723135077645298475288469028683074644170322606235971178200782411844714969006965159926546213452958646464894427498164503412184604355612430278339849168616204071920637193071814488602965673367050286022641389242359002897220035638924605369975215452567862300841149643982446065313122896203027477296402853059372577691302512429491619433294843994829270232188819907562696903091199512314376852835877565516488233752776579223072663901968392902243818669062003092355460666212136210606485888140928402531859162482291788297830597426376705891336100013887538467235097966150696068497849431844421814014574941914539829561748848010895719013453254849915164333367041362509883929439376564233732555956481763481285625921367261939218957774533440894284165721311728455839237413670163886725766436118027945944400602613838136683441535445531807771731833004405361773137023643703120278070763777016315176100721655027988423820358212724386731093980900127327725608340679974121698906270661647984581187398945313171834984045077297877861234923011680212658340615363586763277220410338403134831586796494221998205918137330393720969732872690337232193623373920091103143452141180767713372308947868056757649676365507850550951799550219796170828639077452126399363503589086098389769673267850316356090315529216471214918637117289932247964274229851302815943810626941369780291528944617549699187758286051650105399463467709763290752988634171837831588327965564422842684910123576174403210436645489838989848945491273408693099552479416828291057141526730784548944736387558157145175369011168849775530453973917128235045048526971628069893191402113960551939332664537759941604986119839280540990607952934519850892618285582493472971539542937586538731258140961847931086755170053224437188328141120228854722832336834027377381486238186278997405119363150966194669950846189745660141533236529066072792749205577790401631948987071063151848355526467805344946046484884786882647146714803538889598461938237634687096350537799925472577036691094505184357518785511279806954862375092438202938429206273465323550661268962564366033967247283905255445871336494459874243396698495232733693839783853095427351398778640766049637480902114319273028399051791601336911249675790717531560846679984025061023984315364307204984667598298141995184360398015066410698405988164363183637893136380682835254147353966693353273126401069284613129705592115553102547164786953320424016606088392339911622846578131210842875849603247043680771714093822253191655025375042606411402982413255787218170687488514987068795246146218867494521594416566137806127561238810432736348360784036882394358612842552690144308293540582896035695089946664924839575419423695009879442836303395650655958713541293088994797460308645234602539741862261540442196219279794546819071307884407452758438773175568597279833051244371801741398438829344478978925757814095376698841106848765523865920550369668367454407253945986771557135726688738773827185822497509928746243093062759669994325506125275117118521119160330571483158750929125735374004954750549365114033609239742732757204042908040954002883317081590967288351539272721412700970507926231729439667395226071068365165257845397665253750318910988521684974833597523054884875419951132176165270952237784241382448697197447209577564695054296193125799673883257418238914311375683461326977618751000328427763126301895833901858304044356921127886807552353187051631419222493308710576263215714425034452787949221712791230650244030641751707394349382319603070185668644283687827735881762449463104845634833142740212269299152235336431789331776946916963769001686611037622332124740858066403557466449150536806916202641884069916842028542579799709009803890413857096673160248980842391325085252298756420271517038212935649323833774995276125428821082560504694098047169397799642701851747374616386648125873898545999607792200458635002222703141006777570779780992000880741301640182320014685915070043086434411596884571529912148286481337556477863814231490841153975898241658825899465414186045790340474003939964606794273380161844581530045626788811048478441719053677726972906267778319809592472375044906539358018782204513116021276917567080120493406513762404881403332686226723800689289442647395748775879498551513717942537870585444196288293738693947872342931202261557735989449158688358400787932943016424311242179001628321170259886062315638091448875987645320993103855231796194881216240907598878511260329146298387962983844907925712553181559757873378741092340674995188838126868010903742132849335027394231342428908066755534734395346416164039334473087353979276262888945914423589673150763088681444280641589004413930781715761108872824146866908715916413148203735883143706691562926151841356235127141820225307729461348599162836644181780517444162259105338489813063456908074253195116677954914899873468667458970177780019032414997500219175073686085165530392879643753028495442266559234727519866192590828584451458809529946918487303315958472650601361711675297121358123751666176458755131698400872294131354437314252797992769313339619407009402280901793625876928627839490493015042916217353135255830118239475525635371443039192211444856843065392106726204501972129382633800669766194026378651571573617470867242103741520982271833584371296490958344390224834298862853236052923654416738461673702915282996011305772430636985067878933348460954194424978126368087209081251481641234049938116551721926142629850904911739088658015781527506597922463189865462967575860891619458789595412647974029931273884937046592585545819849745637824823613176452961050562489003386709779412943702765151983076748020045852828245441271200726706912071964825154599704869191910767743433012936999266973446581089183976275727672493420284907272052540604648651234510961077567056715469387996531796358929863422527320160228793702989356560223103777937833264490874307557451868288060889108151147924113176168359179921575101361301024983016284337756640841260374084055370542739968473147955941052949436511891574393350888171256241061338754690866129763942305660621200115523133895811356465174377436821713441110704914690809127374791873725297779563107641313544137979263539961829119599145226320720533296000206291178287813770611696730316278416899142619477874231679055615677274734877158920984540969704867533895170236637729350987474003531626625492417195227419381377222256274783239994510554034969461350682025714483711965799103432193020528144744943515488606462710114539075413969814722411834857514004265072733681142932451974565811437344627833531230469653913528217009255580330272444581913816447144964554466031295668178628581350307334726470497012867828726169205512624126890501363751045186456678724832134571328256972501063070635830622365472929954321794233449747950575452205146575865225046072415434919278486589809110331900407504160894436613737257504483298266894204495437239417417952896066683155805104793979295758827431971184786214755251407181004974514955681340663847909159897762825546069319595323368217710089726257372023552024497134826611142875804140836423864033122604001551622049335184629522211628552942159887022258081581425385487220897428361248654256752891388648330921731544536234132074026654982644814620824428823574810926129562454366841766357290653755338019583443136195494998876557744808572812704674239550362813027609416725984037022782939154374917470866250609144945208249462086526050377809446532368969101784991569685197046757447727185085306576730960469839793939050061410777712472247775425418122743780772649658337519713554933746125080347491052308993732395947249343255546964398101074177564558449756873703130561746442497783371906778065139479183913739596501444728477518865276870307968811811234736200781753203440310506589429010961735497069109113739376861003345845042571575087643254751281202566184480747621233725751395773235559415954404102436863730685457750491193706465975170687986540041596270815349276922578451768931824897722916091542679230941862534246100079696310413119396267425826932426584248537970524680732194160488195237214970322345279325701206693548775301278572631828969944381174932114732299435530440041094159633209508383464183494521925174074957071664294887808166015517814248938628935022723065699050446481835625090800952517648873033920038960430356781001528684903814542848604114404666683476366920715228556056878811665936717684329274292209228153309112176339288715409242594699452871893221782689730984400065329704753797680446367434387723399263489487555780618002125530342027888275328160280443538877836323219168745420282284457885882629234872792441159938676813951982704506704386895779664337084338553986976606792225640090843305506329172564947786681920908112210155405455439528929278615318513804532803610107023990849640165757985834494379185269607160185885098593533018508881986034037061892076235147740863177157442441045150595845319411176480374084945374824292116058069459822311468608325904031080757964457031326178075458422723362456708966760077302737868788818885474105347522582195855819526864054901021840107270459484485672722339116166065357051912973130121324163991014431793787949344594746408686951530038045470345530755896848625319214100769968482747506407808580429951212387506874007068104108455538305066952419849398449526357304208724124540514773375997290485577707489603295072453009926027881612213699061138976465620911182668920323143738681957051395144769568798111042894252352304230754080195924748329721564859365247321816841564932602529212200350469982525306985285699966372848719242358665913444733150967851099770060331336481436167974633918335475714174047662921043003167164792717915652453681950107381849535232052337193017014202609959481268140912985270820838601183919802674289414551724736199068858385453573086860024297151880505240621775299168404038342738379499189224898591267349330098307383590742188009300478059022367304880402931630031483972015238639111147291174106710291411666175462909878326624506715222014328371621749097018325995440729024946566712617931276408349177776351915501550862112195432090076201237873592203243255385539758855521945904569240037507924388522782176647515086630222532555362116037276901933118443723719184404503362474125642750980957093289901071917244342552956062070908805555107801461279192973361348521764500057708550518082116160915926564627402590366401680870052674680762262168476290413367603399123875574120849126288382917385751403464410770707986050274137682767638683280286274917982111322406616798852257001695031140323574136166820018936452145920359333464749769428851612261885739744045975548718627506640372670955748212342859849552756308339251152113725995532883098319859342774678158853658165760063649812080089747036512006933260430358056954603831660522426351245933648729643389727393322661350591697665203150446456102355795689700746435536045097471392887838319201849593288453778288480902887304028270923142281602838495774852862928460935706948861997706735885864666171920989192641950724794866004315233673958135959734665618387734616578267525951905409060111332025182010923077517657492992502535155505854945880609065865671792805350947083068904583538335763503587967470008687396422026733357953420783923645968908411678796666829969373638637023615164596930487017866005959057148608549725757561066044335523175832074359608977356452926515050888236798413194140592387023175830193065678637079507426948572564663053970618181191179516292039618819178922298533258722316182391140832201750222543400258719714230375290593190838692341216922325209860046718280158000462467711098617881982869060526680916726437027219214938145459990960607831151910358822939735120011731811807686226010240948473696395288788892379579098941387684800661707058228501656160175724130115265680129476598560861394806966371675335839487974040686480903951063631720298128344592295482079030771212320588968869428408884610471835061071967524035380202213816596676061388582986989048925759336434969300597747592388813172790918045275488151649392275699113606675872652726428412361783757044981005422999482409915882417468588890103444115907661069108290459933371677496754413941409545820306146885210712490131952315384303029875524068591404849812298615905637438514464143562576849272517634901999913433375029032580002343989222063620550545547060461649089035477364912354057059013470899510343206902459327091234933634039899198674557311144182472732036443981026451956064889364246963007297281245103242494795937495465318489389974436521733854338295233139272151447882831186226473539641507862666183851266017939027317815763131799826874763944709620288335037448235444942386736040249738700088524330497602877622215420529008091154893041508824380693345940515034560922099025086356896581445801257388636416962806456854622607841786364232250356652864248775055246265380089776424875038385340605939124567583569745305669249523522889103883117973483699787603466977771447127832934057403266916229361321851020888545596859108101407313568411751055842962465642609278734535640660416337041891077668506511636532787350469729119626349171327001658987083685707206899642072170924242411087127625319276245912630938718656063632673048973574687694210847897351364968707967416100865450377358331415982900708604325871386850603065835739545069968649242356710037294473527566869989082689379651812531382515002909484057284893017059621265631873188613300467411590631037645940220243925017822387069277959293844672031763822575717419037792323876233154534099948690131614002715002032097442577256353230721193866880998856648090139339680539588843072290078985930481419116895416051645414980396734769661986627169744338906187313571415309077054013963546272861945600088887404470551610070293490900614710964747074451773577849479593657121828143092095791741971958874335407287332760277588061072745626300575835576371033658367735748853133818167399026490644018474180030853367856694677266395492537967292727134188588964274540222824604217698241231831575057459985699553377044188246047640952771386352868434195316027559789641396654282693849175211796341220299733416071060799620350845812357984943265979558775043187226844515928708778161943390713536000838893669803843993457789567137909227094660576969241544843407807247455899942701629806117848381379209012022717655674746046657316579671229388259704293520950351589920530843735649665024549192238291855147159859648431579878024665453524884879692717745623740274696701074544301822501081308805638738977855706400914948602959077053068868037328103284843853870429032886795819348448509004842861530407595641248373983912809170618614942439656792447009777013833737155001672830895412054804020291988429909782957820286053583293281088601452237733515999747572577142178311142865363260210961321410025632114560657741969091911112635974060838091959920195986766069913463171089407257004580485793607765830017860801615179671145536541911802645524999957158399202581535364570149355401888116413142084740733551379164026198327800223194009314710961697059476313601272151270609820068154762028460806690145257099738181446362655193801875710765165089696662384358034282758326362176562547058696974242269263600212288954539350804928718538754425351927154812937049370431466557662071091616949146859340440251672034550196041820185967472899425974327539000909728374536403263496614074238607038693902959297236076283841916194766663848557001455571172363932301016946724568097777118649397812142085543808727730536058951934734754401770600158954628172940767170593382953620895988586971706528020399002555220143656196923238957300880874793935584392128605656709484287298667483594310698519430551484238256336372256082658605026577116185636235276111726465121555134364532325265006429390666482381088901494621943360184813242524331717417714695022123533203524871607971724828974590582073247745046426258278152372264975875135695254504037192370382651923042760356347058014547172920205570929875676521372308579113379544168363550394613198992301194467127795329890709925538551694128736794403400570575315961048833192570103696421632920591116248996374352066680776120422172995797265790825118211357417947146908925746792717082131556288740862393143713029614765791391772679364101130649198557292627213500387963680371056711865195883765923789014354193602983265884515568671583858842003726831330366390399167963205616043222724984271844853823845971709855957464631272205056875294039119385895697410732952051079420602724775558446820301322567354963631196860133137869006874441711712214615443318439061568022927340808032862824972835956743298959555808658383901355901215170383459652127744347361406487193023424131014418732406848430740653104422515566965813329783156612873464916829993725809758512861271070174594853859404449489711600884092431834245699271071124193154171976171849027133321619395555106192382975956655387677724559747145147180539522837567181624266875566820406307819924825149275052222425002397959228162589463792687355397977020204633304122461606116353833725532113752462687489430293648256674099174696230067555376563213944523710869917146651009083488708478714709599716522972068866562386387952647614365310741241891011680654059912083723027635641649793732321144015614286371465219970131647836716805425919217079104299852601447445373932106165333790976125278989462715748140084218398028635775775305563876927876313395445153101871848406445041873094290643307468980689888129329046021491026564119747517810786792430975022596861013848139011332948545276449822599415312321501954645203158465669535280715270180400318347685072487863058299988727325265108069649923240982499099926081185490265438260383017536844135494602203009921104425462317133965202519225484121102260940995187529815039121355891516056317773840156287093319184413607062094042126479591833366418958631803599405775855612119143724997588187741594017401529489247044357662868823729580090022503799947460125944659910656797778554189918874253197604268352607049828756063584736488611837449505554986951132283455399662587963089613124756516460472813234918843164274212279761340171117601101205281833448470604704766302707926517437131197340054519410111994891725900292116660693524785869331062304995723723116825973628135884185617052963144311248575775126187005995913722875722861508697897785326952527440019934801704261418254482422961524100997748580075463346344703506723645984201060951789866264315596363006818702408089096259761345529800308281092419652620018199258025394903777842907238565106847549733661513285820040844163560446090156804508896766212722312437315517417641602577733315536895873189832039155069682286196449656317195723678549897969034401762179822600354357856882381534933402863212595953014023306167796364737991686298576907373346120420743430747095796614891097201920882881863238537739497111468730735192541278966458958584901075182452701139419781927536921068405259256461577248092052990644683346450419140000144588779285135445013168075536294089523138143733513934157243688497728876944833158542316078537771499409611333257241428757678128160059304534922904702935108959341403533177813299423584123332941209429881764938743955512369888944151613636166380673659216346340958635565282069767408713125135766301067338847263908409856843374313781824813713420601054444842648011699625809392450090210847164959838682102232341731701938315181601349741820250010542165880373857877296697591799990763126996978984427144104961264600527677072016072745174693783717917026167228221982957905573203401552323610384553546893106572922340458824747861320828844611498822391791712517861007033433839621738615713734471813185805959453702410634816838272837179544557854722465327215818752433458716727495448554359030262290062105216431885172971741013944456133902938012676850938204421535924745073763249721220053741431475882804704177006666600305227449386656365392045389282372530409011006323373735011196466704822275370636867255366139741571807790207528220872304305432547651442009000419735377482511802338935500681393746650467974333464791599353138008238137216210607225607297908030235862453107400818309161873654362351732426568624038380376615431731283037848134771458354648767867161879218395718034724360240758330276950620330556490328866639555087553658719044211041335669525428611962302248635592517571594648962180934494910633858045898521888028497131519065107105731894231228079894062505355792839322307798954860112562059953855362639940743148257091082571456469853045312667003843738468258621882820512315129503639768030949026390923385837147396340627005559562762224550088303972325240174331207874760810431620730079428009302070508118880968630018100121400572123020312123373973426293459658579781458903239044276100915827694794328430519441480538765964525415686653484338820467335176553801970030026133035646267415890363062789866322670703557804476624308805353060885717684275473843299493520650535953773326785039106881715334291960705796867637969432198060313383491237904837556663045822018464900460479145900742138986498226073852871042029436461821082248069314624759208657870425709353818079625761263141341782045293673926571279754118965682348199047569504733253069876207558862624011956810846997280180705286308939396711190455403432121469074083398430812354631574493992927976647353496208061848454419705842321458651610295300854745809669821170158070780281701997104349028255863534880356118953838402671575873612884142574310014900271350257147552782098148297226425836232311691313431592287061400312081925589913718879854563451698428029645417069814692029087018217559054990471397411946300477905715909349219329065331805043354428652497575917001359665410090462642270995023709882372631434928746290372542455384210061832612812647179257459758377382668416658937563538867387879233475904475047807857834492331031588465793153657942266844107485406013616298411611497492385222119765501826678874939227308325308539286431903460958200472756166877615269523833859231240707701392364634997038075913311253431890813148886496456445586768957268962458571232966529976801097883177123329383520334621092636426713549825198709024427898954657291608586699057944056009662045402502633915370099292222845012171613538301862597635072125129225013704752814398514333109946673602968619675559872775251259972306803260923270297866025634218907815865316250011093441577606550541695746126062258014037477134130023309263841944746238651967085996959105141620537392232281429554046375352120784579068140281494479793814354817334054933760000697004015020020313503181674174234597954688388822147935057759693573696066739690867291542961901537179167464959265292926431877737595360526185847108911770618390850730357033861814334427469004664018746103138989172330023000809882308134596204563614560502416117062942469178770079188308750867142966973040571533310157841682266530119612414513618644565529924705123825959167606837545206551092027436848446157537643546765489637046844639242236233688807198552226241271895771420199319486315806369426134265487074495434381241020262568428538446515698130812283280430303649151169870799648475283621889704431149850723174716637122183378800247755567627599426184160388382250301640837461807652714298908853126449575143259046526136865268906286163533073773530153605997078296013162695250054071677388906070457553927628911441536855383272657764895272386771369572333143512200027239374146119060045594348018879798145634420464115157678224891801927146236578012173485857634279597619666677459378775581424962825060305730296469669316921859792096215331099642539339625568133292947538932377632112451896618395309604819434402717509911382638007798701152430665531597274244354563658089107762561737068754207847299586404100793538721998731677826012071584501316643487680857109775756484233681150836863398451600719135439580566613480245625447816313254691553738518616778480483345438705791475439844120655777994902968116037130295534904344811142992307449337589421800743486206601747278300447171394709108180897935062881990975536103705434721778800855943199575514104567671061136260975589071131445397539905889476836535111301464141102040546996626799453038334858617059596873911418063993576246510629372419667859543399557811481647954196540800071639587633046203213696935482207407897584543720314027588871682091459135499571921456615372983955064375517790376869521027528877374328847891972883785603098981191824495501122609785779426125236678883033191544546191907035299980353692704343646826479779110387782701999339173951112280393404176602125148656509230022058560207012830215030666434408918947295597373953621854798873438448903355594237190231525606051143495216342290178238774546946872324411198244611707838587302202685833322318545929449294005820350178166316911795947219239199828083698380463970249919346282906908770025119112025179058993344854829698986624763588340323595710356706843358351109267902991484666023957626871948438131497622738067587872766090212593568319045623687842669496809794154748487834678278999352034951566184113177002949185538721146668233858166329773574785547827558932364467072371652565158726395090927099516076749915767103996742051004956950257090902091932314027016174726952376860646694921282883567251221937334891020835121055644455393829461313225912045489455407680064656861082529159896150621242135267009427812487833974697492060976818947347833042012663515800300263427600597591025283952805839215293851698902753409738148837898966979791736744966196534693092951906631513257174843663170182212558068606325277590459403573587708522834431441994473689481847627661480848288786344233724110608348662493016045004363598033580865331790062190239328138258974183213913647808312173066979477626357782414183224306104159671507107577054570983907362952270062782755243720083345468679477659833408054666818242396241576877710861558884153643501937421719728867522136479562325722260406616878854637421593708796041865388137447643945665514786692153316116441503954135552392039587023525326768226171608995299882157675127407053259139130815625825218605400199827098797871939179167132811771651041693868261568822706974519666251630090605344004752294435609855708913163114044013526055814223865307748775906498495236528972343091383588834235236974317109913917586155895985393707152382973854621204496955710096337525703691312434119291781897382168502697242150484432610141103288924066604342812109835134502331345251388395270349470245008586667705045940096463918368405972391875505671103374122775195718305250147760533094779415112188315689343994072988107443698422195270238097319351812174703576553114862567554350689267204423700387384282520071128371549685820403377936313030867094927047363063087312053096761341167171165061743258854953176360216658842732733705281211253171684841281787743952546163614453368613563372120850970013215748898822114486941110770818720627790327175020944907029990484739749249118101787371420798424639290873761099994779608121095220921345541970737921340562760178176826637262858084027859493370833256739312035405030592001394452375134110344598768863056564872196627906985060394209745165717377136758949744413689475031841695933495090224937175167599189704014316465306544427455041202157015050374124083783751721861844101353566349630089977382565555798150239011184693173479804880247049153542377545669845769610156214940723946576778835909545893034368228919855893616051607910054477833745090760812803515342520634945750251163720601053738198836517917083530939389158454355489298372139837322691421363258064879847427083213589501216086155190251592881499232274201361447277025168516065730237793808191353578169972883360575282566397537659451619048727306896438121990893514781856950533116661386144132447168897958429951039273311465793589159953891564108020757059286180500364887730044395163516830933007938232628669134565591222930946787494556586169831517549393011940894461254899626404484110562183071719903805677058779705026104940495654030192328273323669233412895217306417773764216881569675349362849360119513305351680685553728014112376296471579123352873378182014640195708079536531203324078097904764843062134464547075159548500896786566047513005946453667499427302939297524608188050705754077824882881781174405419967224148748839950388456522112166298445700349990284754501874687063111420610995886177389884778883083730171852876944574041114776464742011285313539666737364633612128594077075120229037185322702501889156182286928980130222212809425654101880092615500646229611319746528740185243989606680464097084295709283900202169611540971001361051347134068986421738880653367531379437311247759846532602411078409950253549456581424530771455382237484842797352634011751415847455189546455801783992973063414321260395060233061109603720999678205796167372783322508078840234740004531285720217327866002823301435258838691712592568959776031573921396584266765317186067395935059710426096965699281646343151604356232453563496592604688659789755960159267530283608360820718833148523278349946845613702190911240776626606122201073958420706606057204299089783909220655546722073885648053500102100900137252521119526186208695075340938568548665869378094468923984939342364113499177601119213365526175652021471864763264803802545805613118330216836149624632399269526548669747123666512246651028859623409680371675699811958351112221032592397634850539363605418601344837115899602359946138970535176524288703197747256096482280216248929701411856230514001544556390264298212214139945663260950084141627303767520527066103770052050695358544852948542080502026893420339843084555417168109217670154852688532216811722327506446262304598144849575856946195784503970205789868371004995590150341799992362711697470791599835981884500084087860957483996112051276998947035068573269223398850386667455205709525658554242903154319015242079778226840403848486595316270497744509073936200883304960140562205024803341401131614786543510541036112498838305223770214317851543185634617814348960251111918805486773199603836474186919055201413436071344405676917339113085742159412320795019641687571020463746085143463508950771467501875379976108825435096195916117687895202736860343213196569662298371199514022721932498108977319652281856167264216122721941321288283546993215102297327348843433747722623235680838320081522676155585272068077762667774253125059454877618516684510979931612473180458138964235132428770855012089916490652973560009220551676092499246508985114394428096206827070617135770800482009376051156255774977022739068109980441165964662476211745676829219336385787376643791925170724358570632524051908662165085728512149534069526866889695614376607886385711919929418878879151380153278436945842650207488314023743994692351475560941378969790168550515158964355785692128663747520536363636373708306506593933131863645355751311103229017323485971425262345380946173521291312233610955467356475457708163490368057222722926138298739981724642084725573317062159609108837886525416788909501503372848157189202621470420809731895983249761333976181543729942570600548272283403676688695995276936630760507107421137306437559248863898748423867115922042232478707528944534216163404599411000978659539691655524789345472911521814471623315335960707773578980090535095892907779076403400518570253790993419722967254181918247519203122581607771737072189144174753388222347147138294399432747518632215837084364357034967535715354586611786512316939802621937532903411759848682472641160315348357569274013351034510505871992148122744152932495158302664724287697081536988390217297861448830735102479822807407458204340588659340160869591712372456302587863345151387440377778036671842050452937694651015591445551853775756827359880911377431099130693505958666459617649681930420351189283299325249624016091504965188981844858192141721280069687870718097225195822735982555437081289775676376832104825641935618245250472305639603006716218656871001636371798274001412782421446905081545795961180003582053321167495844029482952838858261753450879605672252703453814803738694882165520360276257490131401802043017058799337109889908314938541343900815233575868526596217505653398389699853726042210987151116406979028273354756365527717195111089363408971735237462584708530447869364408405304524903672111667139649491996400522462210286776898053740198440895931698835590785655212300832064673591214642836659019705809434913586073306256519466594946984947702011321852901005227883501697133369877091128621501359764605411266777222776915548197721748310131793180826976319546448078566604140804757085823188530913733524058222399981672202250479864926485325203024478620573677630545043792404674283302355989231779077982786092113139668544414049427659316799548553301316991387404590305105821685544044370949276922010852196001356419642399787557816026217880164866662136227630042546425531557185171740388558498116585099810464403675089052902664882317153136762308709031421951568253965054939095548930627247381690747322035570127863478547956141734727216932439639238808729951362860628657353624967235204811463092672341420333350439073740794156348868019864251776996910632316781152603233716145920669653184646932763588916929013203506064358069503275124506503424723249603357790320994809733189206229061255235016051200841374688786546592074643510682233995404134744589078026130471539056045559150781290416982039083214457414058894604411624102930167239236750382248155902951636062032356110457936430701165095470246867208275257946155866297490462275147204238586731356695920637576735685047223641019487274055559343468205767248558236090349198343486813965155604462653749761851560803974051523779705549585476870482481534692956695475986603929071244499647024555072552153287486390076433156321990556854407437703740682680105320149946789383608900926177731406278242364420123349550632924310368622868380671192755282940694247241078044499718369175013303404807224630315411768423743306215520332973126716904172438815831034959158698529304228782123414416330582466272725299865472139879718224818583811546773335200341618084693380485740353153955554926785402432765655793008082028606620053838934909703401719293125920018061249733977494416206426213209579756999238970707910599712107771980647085213972137296590560538171779950927100511204520584326383189438234992112987945733342186197457852064603628156121006869985055940171787703079945445482498587628298623279085870817106058846767473128014675947001584651412798434157173373726363611186270260426750621616597877731375150659253735305636696969064631000943998858565894880374961299831363964449338033141261711463729958927093082690077440224636430751088510845764123110550809436065238755126116467609392080024534610484247415037845601286211294575354793131453531630956523334856581246939617119709817294017891331803381848196715421874203054689457296604753209397860416471759301127496117923050537793774576588983420061504177635025534261280208966902123272208332408239296760707316568797193323448873418213180353370949779153683743255049703326936002585762239491674343741292075545447674230252053670701197100898954668525295726440224161856560167215913445266390397598162303701396176927675471155909881533786247489130774461417117659941046444167644203696735077485092608639644811670468633569621895471366424354151966738459781777763142439446613798523079448259105070414389658921173407988519054154148104911613202047506539213108090972597446394821669665233063871317023814121385106776225485492684185283272691436666150456749603445853590439511527105213178074407389797066024672455807989784113454388546819939324358550665591203067021498359192493030575994595497907885508677891456080716668987958464817417866878990332021578097029773376286288320778144627808786671861549595442066472880488482561177165019978602545982520082479748031514814677533672863821248691917611867863051806590115862112769153060288622874726753113038031956639322122389166245241999854466928539915741467463514296893377773939125298226701873825694804864053851420411795139308609548191988366120410295003814448583212057418699026262834089640301355821839884142315769680743902863850451710748464047489381458878110412226809875955047373732124148823949198037170644179943421229864843705339289109164883350417989532593578875559287941374100000776028513780044857508302299494533667061592252360819965843101005505935532948830485865307572841804345338311391257189318118880547308610041926975132282875775672000948669497206715178265427023135848961660553727508178063946594067617009614583615706707456692207882816307749759128201333233480607734467309217133902663602475861961831992539720241672323723412293086079844099446490368085037149646893656322235854421883415559776506019526728280947762912464369715163877935512884297357065687331764682050396467726228970839528936036005025354508594759043009888194432441577722529918509438567949022241896742398988348610565912348780403923899637404389508003376383146608250114788452791303387015133082754134780339711633817602400135302939403072826087188194589757447166295327228075820909306127410254663536988508252334148690942641344820666574481382632631289477524719315623868536541879113084300673775754162626213032858434679949250077805448325921550646554317795376908013775663738380136640431166677261337813484166475462052562443339497279103724219125391096505325990852910736841086329655522870762016173078803991667481096328616107007537893356961716137047446224273604285208247204128516561393172222863038932975098478203102739492701312047593116038571608560616037854732688942034801650537780339864693494232998636234283277546049190648154686635280173888849695768904048700731754061544754743506385347649670384787848504626344930810532765678179843845096210600427228431980510421857417137317891855195788747660373413591377031691361309434871226194140160070029524501990489032533228882949910392061567136883374437140790099716446570589674725443007750013482134014651683714885626436045522960229981927763242359186770005430846178625439930226823332489383979184378526995913035517492244714670367892055687960273133690798739452263700163070717484127378282827912221370053326225346666875046407024267553019853639681011049267215036554023722687193586846871869450032400802853611342750618064021549300875825508578532998680435587832396419058683316183640857728634591487045043198537906538737995667013176978734660232567691473406757368265193904817620824198316911330088684331766391435200404782348929492685313017996923217801120624122581889733635405003503466035008285078690805157464959250336402548282174035054851941724902337316840149430028494650105019541515975698379173739809353285706621219165751962280155390068789559889822040459939639252449098473661213941584870723216142992333904321661405336438442946533593890790287158821194687536818583094669858288963862225344080834100389470702054598033933844657687452707453249086217156915262342249907770526008515951344185800864956887513091138555142879599685195774686761518500091232569746792821829887733607745579888249758051756282923145376287932266253492358602991944182528924925705134117310597182468317399146024669965981672470360263355139079595959222286654929753359754639895508646145281887008149754054360618105322441575212278290074334462282352223064515578008799226459932086484204156829118223919329833007656465908946283767781300002230220794870570244493807987893866297624750051965070134778355119811617075472801830698723365604607151341057357912325457406599406630205995020172441880258051192855533821859817977061426858740669937630508565505936973543394534955951291908542077920161457054107156075532421173341786426624463316169418569144916334645679487103939228803932660272393971208338382835748436701972553099548425017156739813993259420188389193881817555433550880566927982269629845228418207427930854052968775041570374054169183098861372238311090083652505756583856140235764271960196367177497363690041508315957232979700350846486602577771574626337130791964187057555044988300955101518869082618218914191524447887611460099584754316085628793945279856095955459001680993083643294007042729789730154482792358965619908530752463446133367973502021554826547969326302850572420229325298910231943676650323856761639715543960583209744696063386654858274000409379681910218413774636238653959795308045182788170194622464593727425615746044535757426653544663348464217487931141106893221546398938596303856973367287215531111637011375454453570685781110627509008216779428928339775623913592654021906576842328093887866579065963743322616933363538655596395337506429637180465295606632362413715801537774117767143033554507144758265920327436831913168167667696790161668140208303183594256326949242390067176435771561942461111517608695401863108054953660138091710401328904655250605486411159592266367110671551676688694397914654738702117121908818709402138602630628811608360252655835495703134790112153861900753529960378386781051993192733221777134747610778107108434521256695799563828246491513086674981729407825013048597308667885913367255709412923863533965516840505547400316966988157330443285669332087610666806528288086871970533403131518188746439194529436094473370953280805825121144120670826521388493774648255279259319095165617663435027193959821470556183426010013054559498637357251772465889452552668913251178426630284022941953361189612100374225679463227462727351346696482657136688283794816631819464543184432408393830011431323643599223882523240925897972478584686679663906892553315910626057861934120319945399629259913838386042112026859589627351538931429798206203773646700383957057577620967499643368153941034508471154862099636976656779262961838795427561719344707229847483289223552739063401035946313990370950392081714192116047670744206359490309834538980431725948662767887981842124094632027697449211494596531645647725672699778933638404483569762390841982769283016999966843121737142699150152254156029957348082553961878120210467702352538198487709503469343709081846661548747177006341752374324294562478411358736471189381019234118959924060334625815642039973909125162049867915775272333398059199751087591144330928069408029394418670598506991179767845667757696853815073994803813937806883627531591016178443113328558510791399212604485376749067453936827148157983171015293159068924172422664193470708925422442941035372784049643397903424404112515125517902439951892352190378000356370731288917850394829987965039684322228941168230865944476301998092002033261253431891073115942841989838875538480018748860652099024400289846267756551725665921008943595175295361015989478967747093843428116943967395728026409808582683951766824520718172336394726256459295119824890093447125966110982260390870899463142213937041664329187473630156015962621648059167440679133535776285825128733380971747078375380008963639411151985812815979665864272274988302994971930391405934415954590985157581167667085938678823115406533180387079461583155083343974264604691629837403994997657577794918901580007733937412901377704650851183243276249837009069321951519523514990973483156909084058065620508304216857848260380192534373229741724560232757922985743606148200777067647316417725929366040584571859733782084758862156608860211196384615018059278087688016123991086238357838987247175333297844145823223477628131314269216615454828509454382968680232811092723492956064889563916390680122215673920418631522650192814490156424256718433061576463848399885594654386311798861080758939030682760416863763843488750143159041736529521640286157811163338304492096488842432589528887035681456446620407292790574335544203775314334440942372993732519344675571873958867748143037512314329995638379014319233359705501803412696626370579399568524916663202102841243652526691618296585784553280517174710552160778824803726670767610080959754673237967187813822893321367855871776608527381384308967779149691944982309979004025304551609364130012914465155584507338574757476312188783816404944036714957437218745366963614796281531556510653087928305252670010951347364102498264667370572369946524350912934855536915793272266520077086711896560353273804859260726095955333356772596731167099803274416887476999718654492109769032375634945893091796641690858651672137630774392747829614564610564424304873842559717241256099371943485886670067328964326051279298234425339115738819969059191227295604181408625920241731640205853390793370159713817005238372507298966393429806361896107153059176829843387545774866375171465327535226081414391779356465419932157569448413855993843435737568078711558832529735899799701186284847904046868135990593215130448773964960581349056682830425412851071540094765514881739295609285103091962956483674367571272074530204699294090169040393299523808785011878728210148676452903844698663898270708069652388194912301113208530432266544355150833363424384081771491016035744443018041085503670327825204700099225296040718503930221897058792098060029217902393666455579146655542775533813915654811579690912577315895245150256147106158841909180087506053903006828713858522257818663022614713680107810101166283774467356492046666112251487101514366359123172692663172875122500329746921563367419072114592390277581318515155869507166185834177762481281777379710764881496981658296678216697582038847261039901158228912716128128202838867650691480761921354989384574804227783669779832424282970404134400464184183429815969799260632969152427796981451398916054510645247098269337538919672228555497244353320792073196825221042065215303597396434666583728013612082244910541835533785169640534867050292835995835262033867133105264523973658834587472730283912213999232432014004304323951836287067510570578450329900663503936678391468176273224306775317535095613776637677740553768425328955778979325374223935253933570450455442946862955183112684264791787661818757023087621433690463697387184243342276430115407764458847671558197307486358311224301664816457214038008908825509254978930780173787382334308117596400822865925638993953464219685599066311349902604319083599443977315813741074797913680898470903414465817776816062534505327655000729656821073574002450442153317429932645373389513943007028498481788096813346332279087030323720052288470621794544291431551575759640974944457592957696566389392686548888967974452105393539095218116878257118796770991211863512095580762424127172125153265652936818973592783437446595485025428275868687625027323555448937463488395819285293941367471767730540970891637138364220036246114963500912242744670508240628777751721847963709382258817433794062702505086948243965042277239014409354509347830282017528126585418958934956703220363084357447731693168607775941822461479817638486027955594708105207095529028898443817547234331130497466724369252831617998030290596728706883013354445754192850637098275677811137971599460170889066552471605081494323508154748331368190949169889527436522839442053637958983365567782927005768520094535762836656670452918612671218545538252830547800119143808570605919064216583927652123316374794534424326393018536205301931046570737223445439445938451680166060028787061279999385292079833370023420062840339912154919610813321397752957169778087284611319179120182966301141973259423517916580900184140236495147622613460159855143778879384535421038868984316194858074196153361533186035860158808042596158179429297683128948897909473676125678770339264088078746856132552248094555886544805780682550953855260749789795638999927176923096338447888949857805984090304146073094097947914798318206092468971857099662074708557564408024093742443732755720814968073888253582127607379393269091697356805834094464276754925083265007918158132230951744549735024634258431142769180203446639222423182051950200291859460971308268877066805948812643437748570246927308662886260711234199913806858311594356990359886400727169101853737390933618177733565974931731533127599992645251713824585713516597403125646792929810279930397317170765673964868458666789512184002142231104401667154059961384461630680402250851456381717656336891467365886111009141539302405390406343070774523776918975363664371002681858799779757893682989119033430776064238477687071120566360441228105524635425969990173142347949712389223562822247756982406143073528284599922400234013326671582294394870637107118917620913809804162667844146984695916426542349671219175455678941963732884671215745324258249382007741520316304945401147420702994241824039770752333923643957473560285194126645415170652617471609809859871622471388340325330465629408444695104977727466933795076055174963507676073050445452119870146394765151280647118260038559052804878828665518818805156570968245343787396081415488050421936046967173343602879240729988821169090602002307757092916299827638776374925017185274730223057192956745833267260149405816145023046241730374642604861348690656778319900406652612048481422841902751618597624237971530247613570914143509660893940190348195974455412494182110556488270401252556956052255568650470691164834927247842548292248175496379089578255291635316700336345922328416782013492072597705635225140141507155995960993551242164575793042390288764289006532364566951339906231281045289743554091970128043778108826385237549558058950928551699714249530048724555981395651403190543973993305026044773888482682997303948797547066134609877775115041694082041829018116759615290954012614544561888088258808536019839666879483819348973503367925578910942848959237918982267222369565577246901879296921222965095421153148206113089938307111945562972372057267211561816205466870340531934720796391040396164504787105462697928661034898950669532314825326141331508770975801475990571366102895569645786649326761922284601348719402158530771405547743215365890119233619905139570567194407235240438852938918198669943870172457414594624579629565738813215371975995570982259737377562667430418300066488411091066609331910628377901133564143082408091239892414573167644628985538039084696568526178926031971844030179447463014707059554539260213099666776502754536634762327783283892032049010900570953741339596185810570686090375479362118534136159913676938181342898015407456321494241659623026994194696457817064692969158630099829755100115173378029797526504793450360628052729188510112465867764291267598926623562101406562700890159290850535067890927146859662819904852375602596846059274811832230129256943882326960651531768638312874967664240352299784593934086404958799067865867560715358230115459905797178578334149610262076201689330023734391299027007456531543074644711618375987813783236521831695478999765670195993130203731436133532432916536230061112775824068565801931996705604263856120900640289917116589172970244181479825886446118988523715179992598456780499417514448699070887548088627810039953503453986537187993905561898244648004905211216764071450774013835800644500909320426060724969804955709490617721414508505672182465289158131513172360792662338067153029177502695349439904711905460572636636600693868023976046108525168682871926494284778942592928957302979871682506880655278098297193425518517010594268492608153983149514734601482066296387517984839808183072347781184728713247744083023330412949704603581112951122939957894086654515317057458350704313017193121560951270704788779184061128732655294103609771298809728869230194128354961961402195748862921956287927087773696329338861633487263999170465033254834571145052558335377332991694764502861435755665727264467425043445584966781803931638358548812432993370702836619749126296463307875758310665791060738705764036735957563147528386638031985515784631624896883809935784154598988053005125635520624678818042159895260949118714493787796779743339634853034996260303584150678332086973883545039075335362270813684360838897961375263018607507313259765261031792097362161492014332888968510626574318505002872007841137644702745857381759374127194841167431032332696729307988749035648366586995554370619719757203807086611791721744289634318568776518054916021013904813672826248784714252479912346552031500911502343159292574109497832568789388049325812102744646322863940126374431407156234431663282805496179784599451980051522215467770773188455620071797608645582651479865163583048483176744786946895694119882687953626331778723598450232283230212529823682934511562390258006048018204008471896774167151616477192003627418364348035694595279908443742460344257805724970975269443805589589591019471556549311256196490323086684806815330212974693549937957335820046500370451065539733966775269578285054831549028639493366875384275401099569787941306874376253868639680359025558021309574060042276382020547311301864718486563640217834312975493348491604626892801142280905030391175490310199598100148334048743018345450496297986906241257170193884558396385883982684325923322486748861166078539858498599511033508078946123201197674142350706377656525878113918870680107254667606371237026289961097851262102511952454195810206777590122180587849930091946964607428143712689008006815678371306080087170578120422309682394892771799485157836403701951021471344834505921087710056446679006425026136718018012666551734057999293555989012694565916279631514247714493683804518430599735364561272343016825161440363267766304428485492900171046265486575191963855495140552651591497293972402218405648457506069289409356516306551497834620461965337943429560387819654700195732435223828857254096473923258182421767926317026632271630827239560851115589487111418242545750792266313563162700827046427953430055818639794931506633596976732393511109103174867044349723546781283813339246012824850942631391001098205146901258382068387053287276006939166086119492339443358309304461713968404722469709555468972217337199694908335761484651452484294789234904607498345456504459153071526814124121856688920019645513128429051783417631015385299612031121070083975658345499240220707138692985047636343659362005761169652286214419253004971619312154516152646193170052959026463693992255738973257737389496299897112399284037742649636707353860580013544520241418673480805721791965177139573232646158894655583910636546984873960291301615453406690640319251200312278901403424753190754615342058841364846332644642677023694205036435070430588316336284210220399483711635371503257039993368046570799512135720845430087161557548976264613276377186904379698506314080932938913926348111454856039688224353535273024908551732075651406207397932355509669752509348002832548656916219943603968919796358452511412153377250704697248125510906073675739414245431618329753017937464928121638576854960149311237437197162371331111473805961258412535482750681224459889770523458748976261474460409952837342157419082282822443029365700569976984620561021447102519567293311435303828156582588388109969914463930679067853920204796225384966154300807627311187294709269775655395966995171429813065926832945872855611057596166569181686041003394648636976893466527595906057752645930483980817447457759899094043256057947173647892241240536534196429788201527958093216459899665116123210928050980661689971843151482989609998200189923825541538854019973833226893283064820052282745467955402398122105102355759135022223634255288633845321055778346665546668073394136969360148349504495785065970305445451284859879077941740711177425485506870474309188548308754308062764188306967784669935199559502926700216856318731305578901953409287284794224692994577698633170913334655314950710727234569484248871348602278607807249753997519984948625958921175132734330598614779556642398856473202027809959639234625137149237020712818212615329967473579812624858241410789470191906673055879406912732237956631415599262678425478140929070359053209408952231741608786207675371595947095409812070744836904402130675731664879095471775897536452326967083585786608100817581296726660770394830740295309067193623020702729989111195144356612466247168137062200702171944650104656848532830552848054234505166311158768784073524567618541925527967720837920539797305648243029990003359105833324858149758957947151200909420372853164579037269929820021823935545411299587989640560242108000515749992865842211072397620854458085877112236238436499198140648463013148330870961222541009010075145395600657553798013814696729051782263910068376999945189877341473623931712254704245539238812062951368095011242508367142025812753766333644571145571577794606317101695299536063710014852356805942627081152024045173713665459214543613540075750578571631024871616223255716758227323463325285468360578113039057981559217130551573199680894248032392614664115174390495559776768740968615865631198349517531487165204974237662726834048800247770134922803324227966976406424810306498367247803002893878127349958647676668384858138219200324435064753338047821663133450259534096003900608442284760538711662519067991375521596784941706212043955380625257479445200399952637907982960076444038175039090347827457806813631560177134698119727504609515246378428119707809703138627349468033585366009673604818146984699835001145471902825466641290451443319148602898300550166744380660006554202738900829310649840121785419505164089294162456848855301157494284803103019608635803884507275801080134195307746222889284965730322931941816692033915038561485505043893212340760606237575836735373455324561292039322791699198382687197957061322231764034078294715542322919345150146549700933786916808383651642632072882698218151756119793936168978554323994164667675225458375201374300041677531847664382485375091312342136074819166848639254258332408039610602000311734707540748343246670345157755206126133118147077249655231995523275947757092701034507958367506224194111890762325931412784187548614301605178295860775099811597555946869616923191209192561290288159458608442256111245233922740406830499050066824766856891979876200526139143851564619184371330962490972755918100296975696935122934385872332443230349224763434102135283008703172941744528616015674294694621166812624519822486825559459518774187857807923186809897361833500703017682001056919032444491499955571358806461989912900433456872490435971393142444571831813673677130300160058372177717837395597720164768539864431756595399319835623985629508346925225689626339288698597495662203375567628544406502397281731475595714321516457920691306504789637694565976275166507321149110137285576900927827630127916562767835299599660897282748509845281490117350773847909846777461767930653634827413863247884027594523112587159863340035738439296458549442116777519189066434893994980123187781576868671166085364297013043487761289951252522392972569500924382033742251674800359382079564965196667902364185889652801635190894630008681012196835350614462938404327592122833088006298629048972216851247467725416914644102582151749194922179175894812515124757327989978958684719323247015007317982349265394029660790436499945231701541912511457395137620516813809729580832955802417823133023487895814135491752647363270686639884035086371644539755810142737830888859796956440688130475833588094758143128591690874182433681724926414843279640865393892130653137153470119675926905900780975754245523817286503638298783924251931877844501780872256796858279406591518904370927063067353078394336639860971317560633450489061026459764658054467339816749533963985534728578294271979653216306549310373225364740180801802967849789933677711874011912024770103543843960000113740763206083834882433681602817276005844178827589347204585503335699696730722437752254625643936272520599807773745019307081394593922873011522969156699823983824510434898737915072767507431030624689821770823243709941049799071130977629908197425305162137763533835084612887125838166902304860697294510075604445274660195468156498368765171160856421783457623520171817106764541282009008071877954805227321678432507913889187444024362906134257210785609911005103013692260817556352405528761277170895755609008824697350950116203952128998544392564617053573689822818187840440899320080750920368159908898092395402775787643740233974513067813155795903486652806794226223287131291233353243296335597344370939972754179742114099327256304321933510007698624024892863267388948647166755103443349972421139762207400214616206466732883360043282809202494093380082806018661186482420919218754944257139601502794834538878169614219549005395222818942252127675990253745233069436411467013205329823440746012340849183413032055633477060368910795805869171020342808527003706628243553445087566810980632273440136669860652336341570858924468155002678944604365648424527262772365594720333302076773305493100800355340228752529742824139170427985278154150376455479653884264341630102518718540572894029980074533275953962411017177822020307116370190940391465638446966278401570229423290182717903293541609611315046576030179271146284253434202268834625708052096064026202370533050430292069242030402645014611216161493745091998220951510587225616143663611343240230283476759126004910670555787960910691242934799899724716465928501878959611577609948887874040332187446665919902061648388420855780578732398816870823173830362293979935305105474261819568346727577651388599776321717152259046009392443904532708767473406312694844603330919254870171502904293594041485614035848449925900677611875124795948345590677827964534996855225410628218144252549803007622735224709600312298450461808348253009548382491290564323160254156398760817324047715171262561555353442975907010450390718445838760259750051285137968520516828271141541392583317254287328979598170772649869473195762753175572599630273271825549237048240849525530319446785169970834278277714694128954227551779164437923673040153523950176896812287002567596094644313784122324753028614270844774099200939905332387893330344025283494158413572088165132594964834246248177126193599434009542733294815589122590114805866636870786466479855666433765389043346409212482836578184662177751077584365391030483677454600313096849027601979458435444702888326976657009745439165826442890875344848384645442815907108052141136340860182809174632136882381097544454301143822879104155394250946523635489353159586485468645098454785544414097492097308096154781699104250524630972223257284669058607407295436232510885202640504582141767514573451160548229026794034104558321124799549747759571286442447082289192700900407202616170564826332143123224482181930389433257583850295844224754673509770427880631295251335078964014767661613061916687863570722048916711514871382793284559716115719830084602057596954251635655145296741270875579093575538072141924673062028561475231277212492615260527372122849204695549725026182846696751272415384927065911320338101901087103644330350988912858530838071826441761794776087092150866702133579795596413465555036782089573946360616332441014223103369603371412837020478138861383969565492549289188543174739638923927455007635464106367901233279645101105711479619127661004859107965861906013192977753831223997959687095887061897229637221261514587816811087774036254915990202633469578670636982324991683093913915246529968024471349382915992891709539258998656416293773034292385438352238869631273431949454200275679466106021562555884759983484468926369461354127984614066237238913341739194340229595841463189949690513583217286760482175730937876571922242405930142019801859774512876848007798723911244051376458318361044826455007545574742460623463264440555798886782895475546470298440741118083748157750976013676580688771441845953570785699560171046842360822254753983890527577087664679410062142369236608180858963723923974518259067994837876629660549722465768206136601155246814500013327440205317824637971434321520426391488125859012883146547176431854753320504693517080637259982250345303094581839651328492082944174262615211493739514912688116518316548096881887254087647875733062249353055101170827219672709585257521000634114666919817185124694818458014983869479930246519628684618455878975699640004634623275862583918984686407291041180187204507660242576871911072634988582807219289159059083513139393474337441995484038636145780673246633186930732263989800657164888255966931500330522910138914732516459153981420071008613154902425656770296229007645020603522969223233097595893124833275942781033296806364727268189563701568141815910601211256045344054466632883225728811529180083425225840199448006617046464777878960669028003283275635518564297874774336249524695454174144511891318855922744285427588668643050260447916015098890708272912939536498480596733077262803941108670691656838210005992372272660956874564080591195052086468232017010543406687189318187148958915152497332887136407144774317556372707753098434361398508526235591386474213541286186531674377858693116690189463527693039733323315118539636682713928698643246654330743495211031191485401200118512565233155130965778631329216374443186553441287524461033123520607130620484885892163250351728134846784669533167860686513041197803778435418271515357471031203660254646150681073211532381435370922804314751314699641344943426068367774239554397268711046887506091301313440601063453752723163362271618626637789930799569862752763027249515438490587113872801238324538903774375076620237200007588613260697962626480250656624149357126281739290400826351945335148628037027231508419223556297713446868061002553386180193101911647857071862574687675633850140314529930272904941321394565907863927573576103434059067277049216922965698460519313730966315112949680383755857749555230994041672009336023260546053362396379957069297948625241850899054526511918810083238831334263833631396366052647490807436741324997184759602416559682128785523534635658141011606672578689972071116141515640695641620522299175381103041024750222570172996145982986018763337162416614770573076353228041950323758721139803132230679748394598701387279384396697840548544746879803430677417652503685658042374253071722832517911732358990613723456339639829345233121303225278778476348517233304289473586546390370603639569681149461109093867999651903513999988248276546196437737196970291925214803633781037233504653234504680203282926330391097818604446137800955077345122040420677529073232080725190599211433220264135433926599714886966582694533145529884737499447817419482228402150571665637775112881160729192382304555405890193758555978984724618264476800355899904809828197971264448463139846741180416377335064858730240120151529804305968233318242021197797592417909541656664580484318367957474904495118113128378951189877351231825988885241315952436980998661239169268923628498940796766002567170403304859935054477389771966223410259534109832436380966470997130003104461976929011652115168628557238381513365421092121204785442067691332530040477296697261136041470139875806825688386764062389458649276357547120990295579404882109855127390466517167899690664125806574577413557677109437518492608778288044584169247693922068678180146518030233046523978522688629068303864733606765403197236223993084494996992819054027741032809138558856418633874400776881280560392806199445567514150763483724825183383226943336170724117649786695275778888797949721341592686435706947737031691432228737451455001735242380197815931838141384924193595610085839636368246055841500080539353500423488024879652969436265691106236598260389958986378242624927859797143762862948317757467837812988494741124734334651658190362939953881958249507220446501174005950857551883729651996027076277725986321030464896186582667631808938147345273368815308223719874390652015202308134391744202930049305072456176403886226982970484948686644517751330001809298957568153660652004947504181727348633025304841799860365154257460270145130062954786923997327795226732931802531661071876353019147809739089859078415386466498521935230297777817075337719184584044070480311939151552075622717194058571702168273409151270694840571921046201198668527691013336472960463529335228194579647409796713855405365573519035696242099881110811550740146471121702045843607812569405700918077734255535459180623983690305718685439290137638546906506651772454010071965248912241554504450402943300501729894014543614618859944369064162940405809717484245838793525466995823829843470611471134578620505428973835786743067270214893072301168917868532880811168526565532793276837831526771079781067654245757894555573097347406609267516947309951993879707337660871470520018532999355739468624577769475879918220269525797419121369699873630220638178157704153316670192703235100027084702513135221886682888036971383535740313173187890269773299423150536206459382863552917426080618517031581915154539012610965436707024767615855048860258709264922194252406319177459211593637234011697970729886199554653252532539056353890605313117128099756872000489526276567520790853594792471274880727972973004577098495398095354482564387102265320446637811411297639455628336529356271831116930303238058523193212431756862491624891178676231699796797714351711696400713834320147036587406594808672067888925392431271790675270035481065209991151065295783634381898851444386053901579309758326640836429240898467625765751370769342403354191142983905966787709799542668685680933782517131328684800897554100645527788082066237364311176670437818551695312276959127249910527404736965444705826454597892854301301238631961118231714629766970260522361199449197601133410914025323366121536445519202009413657468813654548043698093547472131070286464974795282082853452188364146602675094304132823166138025402523538110574804809883198308203461195565304947708561416171854556134556159107972755683467997488842666262279349814463326616479923110991511835236027498596026875560373738257391057918603619326958860534629501644715220693555054275128124129823507379735248547334227964849774372418170288527431942047229581022225004785256101850366979511764394206043073895742213298137508020638840134474425372458851638367181639918242816224507228193901089033857135792817280402908995752968947706730235646254517974870162987035189154746045310439038366878750088304619649660582317495818061408578915231975063716320568009790045058988782043024674126263932317185746720326618503638748139909036133589590314977648639401261669276789016735247293002856641861824834276709516713829765293689083181417776560193447801169004057637261799294126067526925446396553052347875129347946347516945573731752511473765205421732129546631396308002328213160867421441512393545061958905084775194193355809923287192232712895107803415613939187946332316795917425739106784995213098941670413451172684546546252489595509537295761331905079750887106951813070670121834786855226661561559928824514656205936916086646635180521099362301076642756406789278830721874826664200556209203062456693412701380639532435693029792949633703067603340275000883672909113270273686943845838080132742906652550501765433108814710013088580582639525354051302169182326804209259050732325049751256584656385322139090099386144867883078869541793110114866611864713347695400419584596705051167189420047296654742525796703344326072016695939854368650757435651580874713369858970373353407443131189059916733635388339019263950218213735930618655436067781395608257877655572941101317030050544397175590426958618795711582512156784244897939629314460365277465723748840403832649813090717568914166220136264393549209171468790139662758727491962073519372288080644724239784284781640106427410357448372340897380956233708209553818068996309622765183174921895325114250269280421723371135124351197492218998138202871613209375445095424968383451996097124501060127273737706462803843528555897865910527848421378475900935161975169321331726287394391388279909336568655842700352160638645697192013162719892838115909031227541126342972255419224548201009092608233322880270823758916223151875657900484480817125868888688010438991385038456634007324245062119338042038350857134893194393684856937644420051742036115220779184158415254633854408245303622093340479660070285939006371042789854054078518325457784526644852764145059362814282681103630584281866187698228796445601934425168603694498654228338095609157235159251958193425490659390472738430637990650755182106815427468460339408538266442932623313593070317547017833919396678315765049557052617349004084948701078272333133343298587495065575894582769758634216676219289527641495556208191115594334920229221687179330012429527537094715115907568840216339822431969681232881905432577924650707307826397716398460182603667215531845443781203975345910380417938441654765963626262705228946334163667103641680004449759670976191751508907307623035115882414163971477928710475756241466957917667617303357583040022295343529180971792688683610714737099069860057847167541732256727578370066357485612095149801093980443347866314475809131424152458721320023968767816514888759025655728516401207571488976964415476462481965120150836353092282365209784030184268153821781466850936667387104919870115562904463739192191310256377225599002537930289557946681288892808904502115944426632445264414849068271455782055228635243005418295797623385931752687898014273242838108058008475076739285204383459187447254988466731311057833360536309395306764595420451885974295537048180117284841167030410918423002262857245363754148296891329660197945189611576798180046307808035754599032769931078976957311545752463005327990423829035562877459298000744084221317132669898837952951936588881299856354112255785401520650287458265366388991792577915914134421485365089318403987647238371465994012419336392906151715316899433378691040669545936893729918847940382891211826143692344133745410610243111070293890408047718964324560307892400905633176294923576549745411753466181854133359785273604991254868750609612412731863054427969432848662957868764945003591802851679275447787397991480878681778283974575171953070697445558054518304279570914743818853748229368142482351326922813615231882115454998271700560584090605011089770534735335707239604352219084171460055048696041159088192967183635224891460365669176877148060803659542757118014036419883397248852273687807917417749965820096061400096457693302929107242567121666470227088942137266107785807158834681735748533665757419320370740265264597356627797956763939467409563754026974277197184576733730506577743413497998773411987392332731950913523385915578458539160165109514111578550445591986811873809736586623353913226856762302139637037271041444682774814396771161704171097683687056379279178969501152724086918516801344270300892681151207322189667067805078805084936200149192560562581347392207428768243310302439351448252073334900980025765634255783695302930733447367797462346604002936991558071889705849464127765142716095955281677952986340649130013033480524053467237370559403212829803172806408009644973060134404158512610673570855116917010874501378336684964423762315355181906363704034668270677704664275213734373729940076064407395393561464277050819919334088780491938784983634797845938859410504572353009902041382645422648328594558285315510480157124953515102396832517981793251625782635931649903861604749822287399941275504034041525686897353881464692491273053662081771420182066592303754246699611761736165926271822183723608066717716608526688424425517262558940608609992460052248803321795481738427711826484134473254018589908914273891259872166150824890345399220808834490224581263525125419967114294787348545951357686340911114003986213214146088068589066177362449393193891546056257020903663063090950594728759557777248835405959648108605889869981655084320635886317985399463975519571467612781490982896004286160796184815637571808311607252234580416467331167103376927764887385525534033565790277637590485359840902827601714183883396867826759469194710605452559289913231121302176113781213539758000464256117850420534647234376408177812360098402484315748834829732061047411670037151914243744663977967706297673909514744245660789528766203093912022601879540008239166642136583151055427781617474342134179214165434735602690730411046479675157508690182237579853995149699505897791806317744464628944164877730870635859836537691536470853825379563612796241376519071267983599527761793085256540885238318435725718403222679172782804071114874165472340482990044568930126172993208856859608092613770374223505100639703021012318980220821183112163515374939792672543084757876936348089738322718619636706234096951738425010351857934967618018350381120821928435899364265558043166340322656990029488082501440337887358162481281346236974722152857158798926189599355168872803021811333260154007772076906311831676907433683311625987038640643057317697127521785250499469952503094417604129554474184271349427012419529297540951375451003129954163295457112513260040542129168356273062911805609229359537274232465729493245559393439844793995347292516169913851245888942457833092002866680372299630180145472291456109662334636902730378917194765451547650516062248758917333132769259747939817874967099150449604262949451164653313989424182058377543672776897312891211778972919481368757320376016483126166279481902012068140682206061294876814686239875918528592353893262933754140777288289475220491959244798331323287346220981091076552090469813514711924379546679593660668004311483298380810362584475845358924480756754136758034112473769843392865815843741664179797913771437968803781278322431225820211328425137745659253485207105875656933524597394959631038613865864993105551430429868504987246872167238418436667244892100273468527358121661306667412187572050700265255963965438685955625359896766092002309193631223022899062307520547677950654008587962873943766175348982959884548361187095147969185459355615032840974030918052911133550229584734337982185631599913769980047078874452191366518864373507595283208902528473291372948493112735057137351146629650891703671360977495621042869789383954863225505882315650241435035639957874354006608127894595518408070194811063270248488817955730004254275812421609112332014523432153980843384098162749201153828301222427022001325032235310044562970154518541241067719533425940676461012493758482443622803496193064841750587029453115128237324015946289878947900096880219982309095096114755071903896997325178142797966796398477519576576327477466379598167202893026883353310725039459444288983316582515735412102485607342380359191782231851896988811469066086745803945698559489436082134210443159015347126015337468591635581518070891646751522527809702627511780661323896864510405946283977041068976819399367562278356837376190041361458949721613694864152249853442165710913746755368872008645917532796586039633960801196382271264360474742190576228815009219620498723523369430966346661712558495422042980368758129853669536706951295862940566270819345613194651651451609888226244000287884363229452028864288840528997217835962845803122665078209036587865882881161748699244134759336456193575714639090384737659445592478065004250861713126069311517249343880679757019205867768476943204842824405433714277401817577090018536295753225363202338588382037165995552437875375865301058464560128123230158809166521765198952937770028716657863329544083210842925090122943264515443110690682790587644025588754051183602368811298360995311185308886314470239579150645500036302809811796201284666123092608694616007682295381481925810822307962498028163325832232518201317694199694542535612266066146025734709657527070836168466670227032123539794488789877373032774368437697956882012241120586989410796862440182439677065586377862607940556884967954113365198452001172414042721797643404725392415889174475199103843748945124834928056047660394059654436423659160373116470651729806233270486736010963403910617245957413081118706967241121367812908993338309410322189492824647591561663813057776665835883974751078502384919393582836408692608512988295986355581666883037057057357420242138449974154678636380963242610229099712726738907872285590522940150472299449688857639080284798947698624117319284848412258655831346007755074519697299870371021972016532881079456931164520433574627558195299814418451304250830357682376528803129904814782671298281861003531729373658151666238539970948868338780947720482322630611074752508539515391340424974771544947640246078206280929370128780988001182821256722102987079042688213118420633987149518269098250350464996260209009781110829940198009487321578213635834672187254706647755402113339889327412269789988283616257030785071542908812299501925296086328774770128170220402621979091834633368237754037893216922686365928763783814881859539469692444952548282330010590048720020915671942801753883478208035320658037168792858786934260914081543918710587499636819531626808041656109837956155072547107244982086756691881010704137206422630947998466208480497106545493968731177969507179297910092164803841162965809545889681664638893801341375885131159008722936570668473539001447724291981674014325669053097689671425459156617963609401699392509390161304370511234080135407008052232711916589684178309083433758456759340191086846811211381200912696604085393441332641396094117785942712301600403059906756602923623618654521706852134095642544922278027744146151615684189612827410512409485643715996538039290478811564335525292594991768964253674010012399178867618424308559906897750760635108566073415306730279587483697591267224352618470831644025552937201756257028265770857483174031895312827107981405966147932189978499000078029982309413357763873004352448542681175388320910703694584743784467297057605038502992095345548332082789668968173755685897809250146947066449455541849468073404965228659999923525050940353817000791175264879730505602809796958487158236886946881928227642220691206354087507317689455149794365752295487032006208019127477182685701805637871197803284534800942100629956972742946176441937818317138610706927945588943972187181591246747864168227767944028659709380081730751972632870501065436529289007091333544617559849874315011844354547387938798797991847170296343626874997396754461791223697510562859973642131694630294828162522307363829643719484994315996303710643613644977519697611179286055079687732814307118361373075481008427564197194546089313147376874084282080546702420755775395927479028414025078325478269050848200605367517934599286366051504276311129746552897897633405745418757353225673167900711511137557005729868737926378620941127953628640114286817479308442216456008815592568366290209730278453283751782408259249814608649814281277300249234500871693360714655622105254676084007483255365774805953212233821888919228448255189321301567805708492086098174665831436664287276840635409068742109782774396003960744866966311631420927039313187592214349889552400334418942380743615632826666370364610712227230332844188395785128369151479962726152620547757614267409548462381386450869177625479172007718807566343763209619309573513020372909584741829455006204945645926873761460569801648659202812702564281540204191139148713555813894241314709338862666262194712058919495000547012962123486583505648215592692214582714229024958229853659290128133069231774376679972230385204173812423217765334778653885685062279061546095736926693576294312996766543709927310991341145072690999970530608741469325463024529641774546011091015521623288753228170436492001464675029131742905157385015607339853276628764717057901878559114224795547602681584656365008779326711611332252707096380508897028132936288344429648229617695867493009302630603145330125332218200501785548311756169110278006855669790306957656462639665034297727087257089532553601692812539640129928564808472968616166288714800013923727800514989288489832164672123923168345559230229798523261044742210026839298964158610698909580389662280790953018535366499252258641937719424953359499635072999958793844433509542280523818528280352807021493861688196131916417498002116411644597877351093002501946235595701002705254742413733754522102455451626595930083141512818109209722302270970014632950321731381132323598891638439886495765630454716818598844829522907570486841721587277706743285352664964857876112108770063762028909431551943546388167386297283395335207876607628807789029546165231895101401849746358157675495500810110475630507327371508647603860000352813451192907748604188964204088505649987756240158582152227791570793018036384855762677068106143423293851450180342947803972061321903345286173018948569107912926069220916486749301733500620287499379968439747134475079814958261040564615400544793628302859370372336055742044036805389517173440585508632630185404794170963314208151746164699637028578394562116138669624454544637879757390398792496471660641074960518785823207344836426765169666863334510308061272477227033233729037111548412661816292950173134661683918130029124927304575486174209307881598498497618552027638483193183379140162106918171342087638628255821219635258350398856450030783904271834788999591809521814577851304967434318440166381918903994196047851577866762837059462376748690432873886051581458817189299489829317561165614533705146926909960466121668299335916254971930188030569475445787205458230676157510143307319546628919872089551002437599487775770194399677288463206728265922986858148959801438510222084521048141502352690073165322604569163101227233083364983196377790898309907986893646856664977521362139730094508007541410021977875953553375798585617219785684697957825727007957665502139561835930193288316739543629925367376543440862089496674987145141417775737422260600726082172287027189658630619030589465296125188643181765159425433218966387786048679173790975166352478940668792782799657403164981726737392016948506133704079546465094398293477819866964318619607733290357137211325999532980800771186457460085793157595220959141136350450814704496007947704890006205665644649407331224444898287940484778065737849296436718702761078170202783924632910671124994647233671159298399582717834089490459975165450123679116987270065131858020186736144311096289251026294740593034799045535174171294362540052348814444376365397112226192029632657362694333564527764679489818499488831004112612875766468918801473311778486302695364409418448828498328891827963370534388216486211691800298776776418215253231784229510189405360535694409316350790202088012286872026087570927405598948181927460317634939466995804903935105754807801925656235673612128683259756611311668577617776876395767852127913029405295034053862245035303016297319932862319515893431180313647507223936939626477821453503568467663122287449156029058236841424023348043907031200866807861723863232383109663055385293762127177966070951925672222908090393754327663128795482273410287162635957409867663464177040404919857542912398686775191297230420849500069669908372041417266191161333711422849517593140867024800555223079712732075194539360361897587553445593849662053711006306307634243846594270631623538652316669339229288222118737981947813152876832223832923642670352136974858826965755456859259069380566320194600622041271522981497233917897921479379744715636697324322909106719458712939465234663981875920129581510737810801259130489846837103466380165543138496949831089759326998377745357806996899608338944597613374549247469544814784381868379425904988757959790182208222679362385868151948770792882694315864678399851341999827936726814292523572184134968865517559543677128058772537488568919419739497476673097015072185497252293604329447994273193933543842783670153506381846292101084695277387907514622473589546627542154838111970039791745902574049965378738064221883500004179600366748854322456189481298133888925126127361295205632508674447038125017911316911351917291200723633089062763520035471540912087451026079297860202864753038924753903859442692280937319637901512940509840950791620463585214002241366704170442981258866729731152185566989745518027859612598864585618663206169564602925098790502100956408683901868110591585474974451587395079432125183666859800897639554549403028376098566666849203877072368296977273054280760804000383011520644853372437201727796924366324792896650923510460062182553613163423550542374042293856313045560051509016064529812501497324809288880187459487471657715000116925407601827126679436650318074597932017510518282923075499759632760778963796849522390294096157102232055539492528752502743119815394917129068417084399488138822711392902413326000567063752131450860814252734193023628433772002602760144881419919727876967656280172257292833335822562156825153507010842835757566724742207455900388755312918009074290749964431087206158247586268197381146177971185365190293050166703596995902475751558614003102005942523986103764491319019664037246308305966893241213461381688244849146274313085235681089168014932445896176399630263998878156877052648565906356134297558796529059238110985968221159596354816298299890769784426771272812120929602557089843152675729248659798127873796895117200259094495428671240782062473381601342694974919318416424600548012739439835431629569317126651829883919998523751263392032519850791384005050755451461203499106306239888145668843372559553485027957883014016993451761999646764413544275182858715757449657512674138637191728102673739225273583978374652915957567597781225276574187327268723322481346936452262068023843491286413838314156178315575015226010207562443415721785908478578586087113000382016045150854445982625051412683670309674289077921703415658684652699562264839151736593642374901234362228592284263439319347710862310638416850022102238809390778042141534799378456973226779308366860123327837134841008021354760370496499499717415747223447024786218630580958675852190589110900821244956037238733222379486142429404370861764981996454220739453562687003430394818765314645401696859055715807949431462703034654004670075224073289837819347913712378708478205256105290828471188167016952644191051342633268925572123309187940735211511450426408685165556532914523567005314809418759030885998737955508883874055656846763838994050263370828392921266762484510555756997487563434307495738455593129373441231561973394657009768652413849511660279062239753315645276452371378155008517870473385844801729579882634055569941423541034910408369960015098460759136789266985076906516041145818421862357986388387313825968485541492295970041165499000086425710402642142959075081304610214918004130204295652661948607400501023458776379684135701310471772110296616030351877367544983216057884511462687086382299695797685293630990178108618148025775551794367766333927314767729953552220979053622624538384334440332327661826440540041458965763846149209626000209559598411738202035707217994035755159001658323191244306750666999941103330214642030689685206815461902095112366879541904767541693401712126743097690918348667482589622294968352527479883106134830183914076040258495691169354774553038744177204653521696477546737710584081614844767499698886387712212511998114061693200911980823484769024452623779265030818604783608337033883072905171350010443078738715375380856193886339792156058339859728806926368537237541873534235241024447726479804517930532563612750003461671454654398355863997647720291004614783926597395102190105557257434661435037341633566488087153357794758723473306668786226635083711709223060123088889627074395455852190072444440268967315073605708339096389320622343969084317183658858174023953652109171873120050447431677565606654916007990207540851944274363931780503690102454033509382703172424367335573269109714048355526677100756740047809524756877299725450911522294007815092798311811378076268578466867858133515868492727122570275805343431108593603127920684733231678739175893576763867952219142240370846245033370224306569109002365766034097543897937643743735405177167389864442933944746994031481516707248865370964176822604634941008457400024097078298523404412023390740730055830582649137672513641464604916561918426801232592103906398441757605683286479063943144602223849535489880662266462203430004080238522673439510031215158262620841831868656306795341841302385427632018745629086350149562346509796441968884859907210577691831091847288832272720048710881923248164033625892012448844357899223930885611236869346973621393528123263966860799655412202054131046443085462231702174219739555531456581933802799217328325562210192971230806202108780041403582735900506617960320937456805098054007617014605459864546510801027954566519733714554604220757928002562282820553896367423570991250404769873446847963783655298790036289591269908026396819967769737583616740157526389098688083255440123285595116853777526609477903763811514437928588160861375272560396409722662812612984411161701921207735077083643937213697367057230911747522602309902582618367151094986240373580045127890649764708799190943330844969227277733626637625538189277073178946372430396353385811238740364166272888978197692266948501314468582660448016788907615041962860953698312890902391771391711605388132588692200717901645513782641163625237742250843317988279895188311284613435742277455925287603396462629851912685952155620270566137981478144664348289125772273948770728016081461122050408443645442894411697112435598781601944831720151650611229408972114058906924216123726673367050416290324067780934386789951036318716933424148677961803147143382809274979193729180832716414555811452020426147485256136139124642114676860942424312093508448064842160903959038602998227622296944665938915768204977900353849512374563885883778340997694849210345376818312469672195213729851756857426528637763935002317547637824161312870628224489072597966323011331405485234507842258448221906518250529810632862776118452066798363424887804271583185172271953046307939804143684971833114689005161409925956626552686883371881498283974597614289738929896712900716122944737548787329428360672029519449533482788958151660575152471155596549938334190126217457269880621742236237216706064384085169315931860171960907369109248611572684145120140590612847880430791218563996590086373311622191390241903206227345605920809281669183174780679356993317891990904075059948126362029575489982917563788844958789177736534954728566815517637186340889912052438288379350976183210530544036444068641881758749023182862629682946302600299242044762034388919046580718236963818985043505852503106928718592692436690323352266910473490735648390154453006777070977798601845632036373648881271804937648645756703072456158860712959844646004096198526762579608426756766895594278177708230753338178545863352762057677245310816940727271038222575230266267398501974624227113068252051290718513513015322240360124143864608037316095233259738900648798899021150508359200559642636653385554205040844482646589445223199507529766682995805103244640973969965752444211055962283915162812771754578770692613969927150701325342367898599627340872848764612318803414141498258914899655981317375970681792082633286864796106657188716707632306566390000483885005438971326375103023886616526551366169800835821760557251764369680277751277548869747013584004175003282791943820241875428410125477727883944576819131664943487412008521925455295288332938832344656505547149084083187576406392154011602398999009267006857264232041543758001646922503130239779489174893219695584390104856361023954315926562610158927763989861742905172703125157297491907108391382161830932229595143591855161787088444134376598096804774277659084827543840608850283536651718075829300884528262133981563015061495970248965362165964314143051186954203828479303703596339093803942118187516770514525435418139317940359312667229434601420326263404517343529291873542716328999815129590358307473339116117158023969112073471142017462949709468119563829080724036347545970854867084443937779061209580489766685267198800374186481883209742248912317551759865123236591954178833972439573858150720933626840141114535427029348223761253017860996412710914004341797620590047355458997086185681039844302507101139221597604369988648648114641096243593101403432791823885722909174327973670351507228536001656251871483356562686426293836971556634049665664369009367393019470663968181535497147460276727507269887502007467571582256721267813424143510220785716105976263702888018588641056505470671130148370679765609427640243422385754165196324486708290553015117958322526094497810058389289819217590399429885616633912205464746210863059609329375659560734086517875070651107638449417882370539894348940660239918210422580599089999468736441165935609339643137631387387002384800798608446630197961378734018317543764314707711598477374695830145177163901705468529054394069594444622384488266356121335421489424564246174189292657691256013466903749238132566960281776001802662276993817483736457399606601121755159269154552906180426427667703250866971829858862606904948878245375689083526936125281279362071203858606713227576182381114975407444271768063318810885206054569568209327037083407908854020358528664456356138265327730016716638100152559209301227380074393690459780385219834013856613998502080253298852817320224721022807710135830950788200022950919572952051352986163410043015542367459451515524558713858744035096540747845088722463315172221537003530534991274456492803710919406168253392765466307045614168923728098931441812177246502543403350749805967000123602788278307843109037578939995802880093445892038318790536224007590162236400421964187061139881225456174550619385737536178673733868779831650959943294376080898407887237813316534375006906390230885243572337861801820516882827454873250188396720551199119321041819255690215530292961646423690381473510947775442178284487519189979854805817324692353861679719512128495015940947240374324206485344917492574926209153618856124465638094753343953939403138879394476760010815893579917113889486989453389613710815037787172586063441085837812404996185347304573658915402977779336657294992721546829190993712590358052552088163712918554500077301685804984194071060056685613883569799141202799960552018886031996706506202429399520773125580005254504587538223906620985491933188181204102845742124531878725486538697014357573779426798560393482339159635589352757787320615538436855711350899668962863076603261173338957436866922419207128180968183824390876955766074736828494843903344895969026535442284847562286912613139789718882919574740804398006279861952596294779642875218948727828628197099771580189368775911280111341662293678514836991617001545941120571279057035780344192868644105386101653721175690623247911062493708214174528356961474567262803904724499479751616188324002394568104792672643260673487410217852145491224068340888124496913328072141811869972486001563355165514282759194692172115866254075676563860089857608360204992590121957469559710099243588193959932601816410890857937971938331590821777854693149150974137521889166882684633192337172571338084467756786277507547202099591007557724533952086928565654992669450125324424830994585938954754951680908701032287346299120374616953222428899072688869477321678578431200891036668709054838626409898013531836231646440300056340068761929948741406860328397165760690199463700881174105661390806878191243764956249316446283095614552512352272624794850378394466897138870714661085156548331216160917472875008302030800701288431059730896697905188995605246239240866574769909967196318125338322395748435696528272219959922260874008916283014067786539034815610342875860491073739851415319692651755440682559670750788812211543884639479527110822076619988155794486985749492850091792766564013590140874194095323327925482377754794984225203616063888909397293803191783838792987173004652270328868446707844102636461978768014312760724073780916467172171779383026752062722132241202919444947039891952054055178670415882780986613131527612225759333681338975222801312991286196185546616271174454765232534069667473836956955271709216680623452725495438247815387841292380933496414174743211425544242249138470425740583810045985003322182509740272155503895653759202984113094849075985718101796112518315440509000926165160270331384486603784174302021319599437640987159144374692566194486022741550421569468604923565978563074152054180568538420092442484744674758615687258770551952080936558677477567042392720408217924998227580445055457622579532669557924418367210381698255273040486369093905077900694980454148788401124093955872949502347018389891025314252888240279833002353174173686109479026384211749083836060924650123329803384135371862190226018294406112828032646069322966639605314786483179220275273034335208040603178302336455527111492834780198998535901831624167791416964006079863623663439188392670482464727098737637417997257588755117449376426674708321595228840724001723338542027180049853803044798344347651343762488783852317881329853614864151300323074707237894058188085472557638535418677941874023036490594163033379514936409182914507215333068236933434637817282649139710985125672341968256522897053165332967866256106305686210789651360756768598273794400796252008677263385876984153461741754597127060226116451047116564563900571159618256365473470341066820963357712462215768073965055304067324861209499683913890859770805509733526971128092193796208894001633052303364091558390481601327005842760947618808537555970002846762853753716304080575590169508801252401430676889585024368903142877388817442392781033104622090107288985448778593618827517303861767101935090020305433138003552675128554638277955885122583454801631497797253041711424366376063171642946492993604150082141483830951083772531220264404151734124745565362820578120772401170418083523673479440623961811910665614006681475592035872988109732125830874386876565204553103868743889301887850800259960966634254454091358366629055630269853796997467566748544447477504971328437398534230624056329951527005187145691834981412166156566691304483745949755687492170658833884242277456819802979548850663828634077334379070173602504074061535242074433230311169246552698231319785518963805068409338176888103225637020634247277762377829223148375999522186274068608964438932213324745470645184423900930759471991365455212126743392200362913841995679514182533247507131240505605010372744423555809309755670882582600831867964533446641242218428243368794366375068740794585597488929766807157092535755923260747638934916653038433456220104507861681767757491680906002940143405946885124063395640167653264290538808416951610758642618452819850525464119911601259017026657555687179690921244397558514682526116559877042136243828044894805065418789828194824269838775165871619328497222408141836978807723961194707268387693705727635719719138652328433534216164335462966791242115310217123345775699016537011281028468166124230770581418729961135376773879634216856155718775360428715939446278044647585951038202372645794645178122855374893989481216368503349078419410951341565522692909556669941994694001959880880764999418213241724749573610504895235411465827941730360003613097378867426386816909750112187487014079299457612946307797405955144988397899644514374054012034421119765956230412000071096997528845140794721163011514923319200848486929163126533771637773041459651802915694333239201122880913714968351405951347604546244822422445989658042109308704129076868688109114930863443086420445693520063664794624375784028376334971417423669074052055658496917269687593293684273932972916515242381425150718716539487505045906560623496441516073790222831670532278670325864895401811990352387480440271810167341265177064334715264096558417881844549771156786400361723215613944520316097691924023155813269885184072253594162568345566393070970658201140082260899511718459648526739928744006336895331002294362588836799165135234790826415694687286828999259864393720865943652323427932662200411336099752854769877109837000366670284187400023702061715977051115147781342863298448977900691518771706986161528320739007481801962108110519806915329544554668903358129435976489262747648897986827643462667679657427999838784973649583343888618720953159129546346713358975071443065280992022938350299407268706531704951663026097141068258717840330308453876448812566903661311844445120759555755825555538606563182879283358275028042169638142415711964635074170396953234786418439324023002541704546710229955780608812498466363718277851028994023607952061290264961228863527629149364871091358266811406939497730815663177370667540805651735007892649591364568957172471413651409476726748926539838940427984465565928744951803817094775205560226393511143412243731226209957131715393464879092688404478200747535055028115336013566901781669395862893366801565722591805435525733057325668878293082079524427779680473797076360045453794451750034576275857324839857391044004129542736153118086297577706267439474146980735154176559000553954153841968127413969931347345063960649038997681904085539702139515358672907149810310911443659188040061617103309981084850758485030711522448982135317872420370922582969333038421294579678773464649953903386031900603391741644869873647732572356652804150563444010432958135079960509309191473131911040956104701451270134244982332162344069484849861364578503005441100801537045786341451463823801517932929318330238834017795721314281830842624180297868329695540961750850122721767149390039289481870230268969234782715726810648968617182824795787926189817816380825285922005078553403254248595792638598183002906755949369645635953809489799690887989189905471273853891731558792963476970529338708543281058859103305768136584353302784712008960560577997370815455638651266365033642039938120578034319633782593321100974842899304997578073069586421567677650917470216492119822504029916311457270808142575465917911808937469748255096186343717325850451173634280390619202389678701085369835872464937167913257691755966661785495650780154909412618801744154245576697297413961248448672776468439357320486929545046796366886083542362211566001720100875075946592698620468428766967262921196966051734663590008057911914362984288738914221994239496642969800517183529440440226502289543645205092803488310075944276649120377690864343274383799456565843027613520685563064579379310631017632289133368561698388440757991043680117403011323719011402332992537559086317959789658882282837048383637083344376937518097582877964861774102358081813980445242670209811529045788976772783723377890706813152203482197701184767925558808197280021534483495301812236847555569030685228561979059799683573772880083510159607348067772214351920437087774121830462043305295411714694506652777324205885589572596617525110641661505191481156470622092435125440944576862481219078500661355360924439196525582535871818600175866599902371205408240571152688577333565907834601120165053521418377608606799760951245036318085481638011648286622635874635938539692157306023149635850112959673509524312996929207043503959520501802480562218489186005289670589517459067368370607944350161394899573284547622752122180737133647339672980967025744725173271446162071350421943292987875909023559248928558126784714556971824115759568917493782886798522508461053068740705059059617329312284375114484214847321411041360867842964113079358768437002653512499170193800937751174943064990048293135521345368981856742723865196547075329690541655286628327513390447813842654688416687565429943582343061998567330931111418753436630168757468863223393323908737888598661082020801809975153056144663578801415885463132590507765693769614688232398375780356570053514201421109919960303828555304491396788530748801791265344611418106125376622476822209637574423148271244867243222933501997327118667075622414174380436846283378391272395723457564532983243795606417500972677718351391455508206774383538134602675330452585063442972170444941838941828624567563204343838723307630159570095737975881213817514301511105718330963156578626580323590727701966129231111950748561125656156263221065475189207536416999308693162945397632778006262646006904688884935871700385224903778701563618066619475899722634039266334390088050139693819673714144050651419043755546051696825053667472301829605759030053540226566406337422835283775038912851651788358329474575623446075162792187549454250601882181930875896889814713109601895884141060819735620229000420304885634909267027916477173678287221936928703117372694513481842509330594738382508301073842568408092907879638472729090117762224065707115704750609982827510649476869923655595257563378355145975857429017667778181787000843963052770531460148334631566159359727845680223486384821163291198941716497245993122439314232941072669694306127751549784501939611721018138155328295079286084866604194796868324816791244174771994145852207637308179813080503469484231926295991761229933947719342496617432635422172937824824743263310540432515845261133238455845331150637271147253882111134163434820617622815316368001079253824974442678584305639698245245463065832436536852380695263502889076459578981195079277399029835984591902008809024796040903143749203764180586871505489614595449386267269990281763038915413185761819567580530980786191507118602405461420308074297117167647686665709610389361780995395690050877467110156365155803902613392455588036615494696820045403044191368504469764867664735576106654329492037412897846578565438620898357867770782330616651194318159732679838859621180658964755178675273692131277024160396516924191935115420399691923949743618142586997090409611695914482671521015992087319681005026748658675878175742448598748213195090316222603132332413224938094655921680830386236502852367445149108568182216157915095039156294038349405138124255182904402776430514135607615822183757860455765776883345436433512153708486242025305212435363496196585189401872653220404002678646197331639327513466744596114020337886601287536064626419455931188475441449218945411061413705076384382387638368682237087198617666612165131258553674275935993868242061660471566743000571270639680581786315741714095806709991141637681940399839431498789642548176703744858070117156000803947772311381302090297911460973535159587544086920912604515882333391939208856167086065165835519270354209453025779726749176323912476086739721996472465313045252415237591929538576966406599553256474153678571255844076793158125837811326423321218158485248864877342658396060733171003989995467391266391188666713797565063373684039544026466395633756891236367977758522630614720210263017592963085407367579635465382790470039764188046766946055083081988826115805859862191806681021088405085628137789897152486675434323394535588821354647122895465466601027757513249589622831548847068947054245580471839851361318957609295422685832407286294467455611089698333305499378363957304167899715646340248862777064173326463565531725969526082197809011624621610375388683292898573282788378617955745895953691632036092201729299301946055111409129609868526036517377893460349212339964861995318825367998766000650975889305305900845124937277080027313627719779117536566337647649728951920501572689044007257953864555575853586948328834582928046568108304021570128420670995641486537916535760153672019188668442558672185811928330087726533381892163002362430088534670521236916318725174124322054926444749685800592449992252015477848917213966202761175176982402089588567393381893376145892250376477791098036348429247117535511928299381784044829365867944574045530178165717612091661989443284987751096145125872143705284498772220101654905831662448890002022580434204297819339412178277145990015774760518909936692763926712671839863813685336545454576477085190677494914324748562381858232919782194273868611240211555759261581747202397971322353261057302933772565926442491556796228353633714159929873612595110308828595870596584536372579099518847040159825932010058930999814083321344149898491935561535145800453295436068768312330609034923323616579060163859652468310625095611175247992191524168596614469986233649988891781327480226623986176554222468837674779853055720665608267995703369788713734072829606201647307993074809396291285135163013219189526502579832139917872876280611794228416018469453747372869081947307805317978454757709481246097167189169802175631611056749878994158730640781600595716487501041834356291510792044022456824331682661679036701326806365623425444303704253600665592470389438497872592158625025302017252322530536401319818548743320018764169597130093651752857677248339838874167473941337952265693404379960293488144115813868082360717991191077291657427874870529868621672572396947474117916176981102908287524735005844744860809500041148078280980930108300495338688018821834026582919652883128976826474763203246788559200709916014576688352297957685469303229933048185828861358093988989307354578277007405730244877639468291570036054347318208190888378541712870373221243768369187680815073125443260042632706583442889512094709099098625961294147828282187926754293466200002491513229610823170492895787125692888785800219563449709187597208505795212770848579259053807121907420772880090595675996092452273452221837402172026311049274644540500426345481217781700357609171396258241950624063849827679035261749890022782045957118273618824785748026222498410697042518563670646792196695018126591964092697307014764260651297488664034219458052548442652903742509106786532954885339801663891131356432922829250335429748933816632807431294929283944743815875481835543506205017481705346951047520427458279618814377084813162144243796082926879014683519218860462617834158343477684305965504912216996495689588179414745793704068049318566928687156854612387885224161269903833952672019270720244429085784338545375213607031884626382591183199762946792803705113096833483365426363484512456295594367292724151818783214649830399348002095041879748165559279895203162850603994902114565237082742287976695398346023296566192680839191603949021109466716378217744420402915589451894906848129640377948201169020885476997768485686821524051792144781135913135548493729304555631435051176648201464572883872851906267397323413520440119801513204050672418734617337686144834200499293280689556602523125635258691223987380593324447744345112471035510148224560750058243099544290870345126685271572004307174346290899715090955487036458527937517096176038925339253836307509205589472785737022088222517693565448189769864850240433601156669201582742310845331792005329315944553805077434487306246586765936524511647962229519279832212082283212692997450565236865584737004768720032445888712065444643581038355867061316715630159212225089179466033711548282859064684367461594147750534171121219046516376009383481115924144722780958875387606005239438268007114151523914316108030150124716113492663860904345223038577447882592909896400148316796099759785817224841044762771233920167400235860076590498058073613961304461354038374122651033124834408378837156890197343538580470331342354637273052648869951655466298904960034762194758977411138525055976648565240017036314319794274637402536767227435103608987011900025373474987156859417426438830814138338722873083749316960946236469416280838568855570975612497123436121027975994232408823228516751592519439959009700878817024738485726381527825906336867109457709373645424878621453159108159697443344658980094721518163206525049024004627060520743693206959804855637451474175455729297888107781572576867693056691592865981743336702732401738189065472403743204171855401341070699255858149605621794038148154081853962685730159803124747686274764484217121921712926758729333047606069438191339091229974622681237638083421012849876628201870586267199377633250201996578700200790835338225396805455332451380423029751488329027510864188112271261653310295647621699256859218719471341523953003796016158051066459925173594060643606880640535587754993186748092058554486188285059817921582696504075502148115314600344281179429327367379883906363041825532394584557690902213666952803183402712834937243798125051273679705052106332496208339763083461169096729603314073162175597857177052900090432256523258849790263444083322049894471183769783248110426230901505786227029559541271133996146759919356016785548486720842015200367835490355235372518396642898565423842424606457146037934707098437907401521674017684127175318228973685749789899034238377010324845258360434890315614504682893823266066159160285613103036991064090971876752683790834011921167164193058280206273322941678349522351134272533928675360544497097816406048226617686554425674260203241801735596478113235027706394630397317138312546436455659793242485784413503002585429631155755435621524298789564374206978551448633818643639498587838829576642018277961366274921562907060959413300548901568612428379658380234529998799201227356878659484733446200585872547348263782491652434308567821302432118014148031220775771924009028887708039942555593066745184600120559486961560072893079084567246293394883999754014349310576868267513247069670145892909469184364728152862837456499476949945690750534618427792022400645380978354529667232502684985909617025064660467107488651993711470501617907202039970075645423421169270811675353897863234106224139826753551058028504516627159352760035900365987864189373755151325512444331458937286856930336923723419359040376600227524976384484626001688889194092851279994345130566718027482769989393586749461422788219312568999838889403652561925015799926773466307623580589295665476651110606837431371394497821329080971097098459368684560206619500855772656603919583123908176119229752919191843005312429827992494628430500435471869690936385904506669445685463532960007606136569645786831463865624402009215461276416864190454688493338243644685514763656441710565053172565905119589621546277662283250387926427355734758337564221909155820493213240154931110605870335866903395036956792442480020389480907915107448396281716789550550137205312354443451950470404317102768718656489396809335574183883984109746002096982380982095332575249450330637726826563407754273101884006817750822142446020069107284623828069781590599342012052162473134388482794465896605045978272816792987629321729519255938061701355190085580417255302848432574986566863470986072875747664112477790475002424627982279476739900922859422584226066940492882403983520250376160415996819875366948335279624348633560385655101190580914167896923088748772578369865676658330584784147917358219217886157631460682821008754557533080079568854129004664607930870038797790719713660529598979617433401054259923830172221561989948235390793257347495783651382019654684826944711819906884689492679931566213212064751169346709723360622282461755337482083990342839663112366386480231524005843306908752405600444221939706897879103035465783361496138729072630120285321841971749134085422064397758156174487018686993465140962231367950019571147239422582121837370821167816331741501213509555952737985197852087182983651798991648510592962474685757385042634942128850902686733144145283877012799058228479255506988217098782384337138759228320275662991070586831911693330225631682032721734952750829073716582079971049810530991068420908724348069105744811078627144609299286730953185943859267513403392917243928877135353998013661244778036740734733722301876729216838597594463959724019958606694361557275429039500058147755080390245080605647053987551512916662669632240669474035256039304283949916889400885223734728541929373736582564169694054303856845706816430940135911974741126716861782934774665659533518896787068627845942180392020460943063712275997246533288094842354412569681375756363629097447407117417682483391846961856726561370537134274237030001793598580631583887210801878049399894664110560824945546517943415908893367691646000323360074382966546371776833719009907460457372701968543787135576583611190329109094785378242321440244109001419648573970382673159867735445768252331538101519369676920587112948717039973392064701548862600399687667461518776703899391774394909860985656130371008869043282247504947169399213965862171082827224056759642402503189527402369498145551038627703884043348511209629491953450983337481823905473185095649462319306555494897113561225693354704373570960075723291488005023321368344189988948806649428204309958985299289985069319909233395820948406730957487786314948884797456547828286810453820445362864831799898161555744767379628625627880975851120661708057859814100228754586032644140037262518627395953338395074295814563500776024790303008999538068883322826797361458620108932266532200027917440671175126157627753281190863538396959720240107141728929092407103588792610261498040734964845678394415677279799958013802901427997434200190892365896214538436310798576995348519793477762290544801252108593838603924966694629190312986794123039469245941089555821728772649675335158480367130070936863374962331291189202880162146140738143701600495985122148454619842742117801769088493411936183586025761586779998418390219361114029648850025199472029578856565946758516937996699572325940483566197783679084040254670609707395540752143091532692670658386463196531314886108776699013438350746089705523563532051600185567697913032503600224388268804269387107711654925024383036177677033892657175554424489514463635648688904566024813243068703223423042522718263241831252928818039837817837467968153963086400160615835612513738803784711047121268047769449097953959959332250632984141727051678178179705163075506920403114949762291299734828407247178365863839505064769196250394959908558243407624620248376717363966324406281535093729778343627107484422467857467588476066047469390643908044700755404959276476125867930035189335483300753452827444124347669016857614212135370356880550895375282681299672963614899706114964772741057706933315391420669083831938457822524444403159848974885142170904520629110097752715581844938310461759096614507038319719216074194475794610249112446805210607757160354146301206749340103858266980945830273660193775086406853622882728500157342706189276427103540920238090754509355618913841884242173101524130544851073505434964124908008294202247983655362803038536920888283460207296542690716601529105188940029208276678954327595283807480982753735399257940186499130375791349559792731084454823718342229469814940289209531238108472780631973379898195160195121704869272500828894324184028373401379016259374319669582217780136959384496853585965450090587652670953960403062416975891872894259154465327726705477741795520453703078681682924290225853785974544596606217854590494873561972146659329725423533158892075596249595103035878661552383416317550641913483289901880507618880793585525080994865008366738554075068751390396090318564644035297383844830577513368517595754141232524616048758967208300226736732985427972570980137586119990494391938236708277705628403684316402455046878879786839004382536237135735832117241900600802848837694865203612890115479188409016620098373947283819322227845847240006424360066245555489835299390839486891685906871217925712644895327467647541772626021256451154792911684711862478539753838617415600398048030680801197067065843248862891522833590708499435380132695692317783638260532581475160091816267815819620627939577117972126063518497941961740766838212197210234033899328003739963467683694790725249984093123966541128078820844883343518968493839815703339014485336616369900445516426926273983958218377753337864262247658513888799675564511954337912828658175390591688637913142351438807500920251870731634832202556619666290142603718688198038316882497272766040079020052531754667956186963289579928142038024711263293032362772276223831199042394786249405099700330862971178818017369645751916218245360236823782860164066137223559446667101712827699884208634428734883466596252589460226472685425122685713851055178954209628510513824349756932017717719507828207444553036231146708329861890366931070892638591262949034773407927189127029389896406117853716155259316930117974321997530258058275998552023952466495757956259390498981619158062130704016168142411134624993236648003649746499077554973371594121735144442204760527966873993276773472234257089307727430532496077103358545425270193364605002345374129087299792494780426039468197708640044110289750906749036910652415124035927661165059004747380457432786218651659361715581291898104494392206476239138812259012256667022847172147669224129323909642074362475654495718955162079767887345710610900792799952993354130683025760609118691550431698896746373419891017310368742997507336111258501003484104148270059107586474293513065030265663229975999254837958345535103603193839203231387407458396060524468951454575273750516167580868306710772425152442881911517268882255462799711243757587035578087877984647084423481624661010876556730130040199097570596179297576292765379520851803159852849600621378678786183192459689397893083564793073909609025051532179502947830547534011331216911326681475740478223181510773065749287436089184198229216301815032565926557474068758241473882475030150711267022464541455189479085749904235494640081668284696027695368927400827467884038231281627697518119803313196785708029872673038034424392254998325721410982311783483978539449186653023608013462716121166271566726833652291388376606306921161928195298696512072673671191885912845047092998385886571382096788244449916690456400599126672937288424535277635781069027461338057890066555838940892227903141122795076641556176030089478734152964886204052953059605870267294305644215260667985710845212916706154135455714002982122777916718884764486645986278524580939877628752605028427613453046449675970649986083527828122999546928341167676866215610217131426324677141989294738565531121114201296610986070075264095658172810143850678440279766292760913186363973129788501688973383223670157462198483456198460602809965567566368436923141122689314514146696501660801101758988967696432506864446790132577675453624822999549179614524912077742866194470033790857417956169506550511708748058760296996277277316233953270211561888205352100454489031580930363499103934945482709684133220464089134303155574108442655718139510625680886056795994744671869536950690476379404005743765112371381336349595870255736787136575060600796707205107913107509504627886358414355962085994524559602648898872954661442830961668563429718143172816354663423932003886097049127293028112702037479899525464997668206562841528826586835355078792341866192415887181190237045244641747999394951249230332787475684599229081200759369848847569437925880001263143677056776876602344284575934629913384740210314999674928982964234018189089859486170497032999204449460710491252348718929196748920013653131246073823365771049430258536810568191040755268058988582613922981258521140212589203302093358599467981930926685327989923251592313043422589366528782113303031343104877702790678522846480392126927397353296604090658515067037916848904819204332293137726983736571521460389201703925852966554108111622153722744317380183198610946114782564422250273327728522626556219910273840241936581887637172593828806980666469319505579161316115217529625883606083416065371301464512582477926840856328279921896681281674753908816022487635252989116257615481896280885343542525069027466107501004243420839984893105449316897444081249875343968040083026658908042788834131877435953657062172519891375965047476450564488014733064804378294250559278833455432703191760174175204035837007553229259741317018999350722860661080000642953676788700088719017737426291036528197255289225215102361362952780519975211038541046194114400145992302460675323420939900167608021015140699253849258320112620771957676092878503099013430781098818575791291665376615790446453200705999970626681183782026049419147523740415581923334267210971013421281225321779289043201915145517061703524152871621390007586717085987610039356578706895123225209104902968760178834472818595996189713094938713182293515666045941661385841381853673980058559648049688614554609213273731611897354267165250677469043414348976385124237311769109711119104038279698205022984481201342261990807339841556269255546640200991423688501744865038304651681013384477346897211299664636869941930575205856706004918611214216501419213765510621080838605775542956479805225549162567855796402625553974665642015214065297061986905644158921919430366539323600295453943117802661778003215012333415010698407945015164966178524892365075841040945021069452352881214270032807375498893039975466215572065152275478305569575939557384232354323385219879729399129078558864376832990996920859869251911559341614343380784489152659282429232308419150642511770886776113766657737616700590759818116612632109138707312377507548522999114431670722448201809303464030680045275407192963415832293287868320641267489954636690257395541588341689485449681882193499276356629749606046033585405654720525092762607603385705058072233671359869696703131390704824192734571661290772068900110933932542977489575816429515469095741177978876371157075963783911469386408823282620922568591269137498766760363260239288533187435740062132735617436577065063246148921825410470368754862502506438777022483872947997191481163889665090074771354923777303241311495309244080339096733964127566519594580646288864381695887727555286208919923457446623723478310532490031020450734783829893936437336750889887425421183272131838328720032726366077636148813233526748157850282116800331843088842666339541347411228717242057928395263443311279189490908128104666274674910248009739199761334356583427180650204601897290621657839322850628387928934821989715956375529758971481637068271538972429689510596385262993502059582761898286483926046078138287528073366945935352502175707332720684470821258153984340437174549113606848325224962377727085763272558832829595383281569054216509670267071046928908510487494253809066282951207491724246974022912125952345788758323904190036439101737195953562979226101920706977234704171494337736981512459270279678048870688185831807456451814072616184297750324359661343772275987401652474594572274017658165314307012494962855032727340881285784960237794630045552946486241239504641694473188369046537872850708872177559952348351737321452855930852371604826622479092476663308237959692517047685238168169549840921372124956013035206202790105540298048989721865796732220389888520744064324580433431321111747769699216059043764388842337276080754346283210154763666774049342383041884338698366527893522258503259223776737060240202968657479077393212872470320515828913723663281366780939534300135213717032447191243057420214784445118614227914724066306408035395343748646870430788675611011861591191129137462071010734154287204128573021858291210887059494354304331229177845837899589800837299248609984356281634277534242487497832185891868883017097998794858771341939009927620446474623472313455005883608212286454365089407170930122353576079960627309477703881360720302464804959277748507187619160044899546298015904268827978456766541036415995378807990674400904763111641684370131555898487707518176985566716892965365558005126605499937039802523065498969064809512631187558735059280463956667107707701689647185653148281681771405862992301911999650896452491845913094668048522063819958290595626978713012557055120750667058387631415637439889811975377120635002155577611823490006395448645604083213975980539150648588642274306155837755253767756020006306299060805372339830609083059795151319253738112911485330651613266850133825896582906039214928018028868549223022204596739501038349016840553319266295001854067169806801833674732744199655538322461943521184997434337663286431030000331674620042200386326071787261775160578328015154984165087140993477951426185898468804792311402925370061300507218186084979070064763519217561754773787220462109914884682367162050244357759972855238402961183528095514530352390928467117801992293895142099758221916743222158617357003226762350386047100189979370625830059835231441474863800358926624820912278729040828675020410808875360614797106866904324300939415361869452962685241670581692794417064133237288626622726446823296257319210229173335385548975990481348002972645164797499703671782896493794292866319290011500939365774525868337895576090240308169863855236009368360859478954840578297574925774049791004163956472881855316061753097710411488011148934821927699975161712681000123004374773097337917774619907318764089127637053698513523325545045193475824993824331851991048447681829133283802276904497895370150755271800153596936063887001010055977625341993508988460761939705778544196621270769163854391352254702353226872411365427986953699089808131899992333305335280258422054253286215524105354764282102167153741680518369345126594268517578376021740614509817881127335044534004210805036738082137694154451951193918671613227455873114657722692408408644904159173710620868257413015634814066351317637711094987694725051903256497689677441389614379726581680553512661706189517070540374164493990740508143390242311210597939930003888254502979504766609294453456337012823232651917128210307634185829856447733508499514976700143726368618548875385641871264183226640990119462188009818814974217431398924301341639996337037401395094950673114324066672493464244321692477030901988915233249960116247818742549597115889874119631911073875009934574747028474459176227518854904582100686097166400796706757462422675482809369399306315809061373893840374676022973971126045258697407386901726722992710808996917962719423611948823338916052742732002797857296993209003478283884957931635206536829536637047551408493857142912426409094818339516873403602681072684862174187329409414411740483923601523016212824424463118383263505358792895497720774492977544606531272775979396459156677938256906888964076806316317768763592045786276532337084134168417064791137529621387408164889940705968269296743836235425159106373263764175841406966219455294271687147845033274725252092510180996194357007724286373445600233190894840181529458312763284118038732701069286652664896121707244929361451388094788340555470958354737702221805991425037859214903436707756671288144639256243790587673342100124494127760857587008058300989432071459527435749949042168367536330574157614639592376096126083206307034046321970356229342486269416860691363241260251716671539508906640157982397314918601031681752219242349886709585602967577614054445123948311098354768514334953794984646564543737033208074014563925110641567865959231970052590459512388434539401598332516940601933530562561171741440152627412614746096155786313125140606110097351397676490791859947587418172016556568183988783355496735271301304042911802270855021861935905558614753476838756663154569198181338012014062482755163823410375893811011502232218618831204602643964137181177305605551231989632683823462939239945512384111014492467386524139736820595271728858782206175999393363300906904696813100794187530363411984643685386156288605683127481663267113831642179060846161737618807669305247623482595862945968259371025395954701464773009746619670776138097981311653405185152160311536646954315432867831325482931338203518293807980550762351332820850925333489539246190684029724908432356113998134536231356044316736248225259856455641124626717246927206965994623264576851745802169795444897558377793865381256359469764763204171542829873507171067480683743409562033336019152497606527018905188619583567372580487314941935564280593619495665789136778133233223801187405200185359703485028577077262380934760934447340924063602885516819056656465211438631793141919050752713207645827665732065408954359443158993209784650459580261195204606420200299352921953023347928886612202040081424991670009030728953610783571210247532717468268661539924025320792476085744937471595468153753549646958178644743252070845669508968784520415202638962524575639115335069994513553759691938533226667421626616672749349805880023370554335836573044081589485549736321929390129177303543137385421356138655557354750215352396433939860350968446824454357823146315187224116768496580932003032834560926037971271132681603958122235718925879183903528054913178987304684785422829634244337084086141817402514560489964795661187787124380157313301313049698833793725988830236449717408475506399459962417666843411894481734438671368514704884048379007978239344821080025450754661411084478448587954247929331892259141063738292668600309271915884040494679118652249756658747458519071529370630475578545693512593688355237744567833147074405365709586010633568272115304745804296958048221819153161156612587892911666866298041566558952614961312516523117237599011276371579268160840386822697121862375070395596474471685110649503959930948813776149024703888534264935634517607772867752240825834004062325910189715788260163676012017173833036832013257350046119464032517103773382167617837182447603732087112316158249457240383348068668577802802058788222180730007922569504697210667528391128054123748141560543794521835335098964714407925498976055768557652448169982240141634194341475620715927040571614690997737705859487049549536546084901350512207692574031110077276032596423778845122922145394904642046321432767427669531413909060661320941451912037862873791697272918931276223835936798856559301188799868117910728195451408506617930461617702631390616271015458360382919350628262736417125791493845252478873010400358899829517681694522197869278470601117899687169122821989481993063555541234635786186340249607085810268569803115419417571389276475098899940177078285136310891192223044680580680278636458290351455923082385658245433585308488150727944900446148335470754725725276392989454136764699275222785630452917464026994373346909313803033545911260530078258137537512955463261862645731220679536199775074290184915571848062568781288523152183365995507215305136914374129334819008783700419550270904463262794784164612375372654223991420877286404203000008888615221837291145663383391583881832319162663441084762923348642243865651407307925079877393858521528233439980027138347880365441378179116961900493783143671126035963662856408878302881276390050829475537391023859602757892401807208092287304441856900572227844796350633428695574615446215359943413793020937899321407694062934423350749245414478254919376495971666142967571283774870274397157671188163649771777196090851391422343519316415006183033127402378956206088894976728354770456796412927960928754698986035883980984290083903880070445451765158952289734383440666076856935821434528930741286937074466076753697066814270653290120883253709292367788958846014799608293549302036101489930542182745390229250596188582401896989129478912529125977932981588736663488987635184024865855486117021662920165715266520029912888900682333998251734197634751119291155318302218745558906474380565662693050764219645411942330100190754733417018166126539609208932316993471257260176310574818654852317757842355047831679129701586858338814140824311049884489300912030222367164562229458428634768122079356576945416329566235307983856862814043743726412302651214954053513401318456131652466182830985435585714568258294752126615177603347576426004474486482569190129734167360463027670922948235506571435168634476227264063329379630799005615565329343628257313524126842387330301236993712059910210132606431754039934531036901291108397456805714523176211347421099116035986192878373553993802866196230736398760012890189310231308787557471465345091377081990839833750421017092455870076505391525923563268612725706771688653239599562304644951604587762663952882439739645962186938168358287423962699900498344355624022724736773949312896928020568549688597526976143320040163412792042576539419875337047987224759441000141968633026030858036140165696832914916415850627468768223822294639307044535181301049198527469011754182956321126634503089472283662522286302762711336045616357629847504715248811463336093536243233500656145765595501245124569163250640219953242546355295341350993410982776896186968774567393767410398488798572638278933528788692757384591219343568773284703045465965855791268384694422854403738519157405614817264781554136376135916496181626947904041081151690435080072806449149527953722247933660349072974132414306394556726881131262226971147653748247782243408756941913010487091754774268888218592482417853397659501793085798371609711137098480057879815021524607183124561197135902844825845811006601793682595179262609499498205267936540175181689422851543447458732757404154752616547445545068856730451960854011546379870160650417810902828952202768617822418623755375576162357163912285476143004083545151307452808610884726901235047178599764282782577176805740613508015600801893411425474172804302404726863058005822990915550043041320645785188801145824989600429772554975841642508719577316557847431252821029446603005075485636126888249758081754746775781059441548028330644820588296042282420191981718756484540082376293402113880133288069724219790003385935244861041791953990660594385773452909503050347884134017556056159559653200794193633738729241635410832427560686688771666302667415994830599913853830890196631572582920240485427388843797084133163977216793763686332924973110225880943225987351459231656803604451678444650549262636820018456923212306786932779701697070453779543104171032164561762923626381648475155631767566539638801766828210793912573764532165792287971306695983631285343903340349393590607814169797262395519440638982091430929030044745411320756842551248316809624644497295966574463330732884638378907717391204890120161248359655389791738537893902647776357429349580143750992521412307544381462396415198705871163465558360430016895313447528459181103280498558891692501534030734805788309205365882704087837587319636363400106439404625853005758309782467883833099913230707229245027989985494317380597549315022483996500201375272922888685348046341627199788718219051821834570985972247657865836376912586497241072871502619332418567887808024666952262071868606008007262733335571337928367816670067598786240240414463615193762144929715120837796164797358785789951397770758838355892014009544303639079871003206892158830565273852114866539165052448564684084604793124995986358457180685358393769463650432134622510385293297156482233907609304612819078532922588841466588837590722619365549629969822589651466510740310762886994943342933907096608528447195892499583446526199825693110381690234987877604915861399854505465658759244570349302979916192773957507754220567391805042044554637012981892707301802097251235021151755083829927535922689111511854952253222667367134673528429807465315896556588988966295373825364256320415391672781905128268412344948766799183504712125706219458410679567070262194832061107843998782984771580841439394118321998830768619801965364227606285345030792461716434718449124591279192655358627198545551606387468633856263535830291794773272203314602072074819509780745824690787229918754595600520469845843181605535635723286728500740706945047963455982847334171063208080984286375328678997286850790512128538519934150285999978399354907182981728049024946047640577678063040707666269720833216382812944078207215362220067069976621434607492243107995632544422330286852347283295477107510698660240013006272300257548494507014600721259365730179174018390067423652349781595340776024878400795317042256633940551558413079846118611624743992606175416558448752506021097418987018904038676187589433801937937141000650349153404963949603267744533533029414525725421082131937761661734822993781183703586877544308416491416460178362317801203102772415543580460232921530363858534944481662211255549992056129604628673685773712562265517809250533482154951772622520679389830409498532156789976215382263322874787771757508953064614390377026110071058794321869436222765843999335678823524520471543695257908972493043483163031571169558178820856155143074279724351054784218166461934232790461616679354659876607487381893048560564645088633140157013181445877137125794085979549692854311509066748015121978803676604418132564189185855724051092428136381233809096825298436752689973199498315278946243825299350535764454846071099599312964886117828128802612893110061380016801445390680836508193372486546215447846305148473589908825599361123390207128272470763210581895378441341034708880573978478914307437508908321290393311761934959933944846185883743744305861790125095324718589482231034450931808960731282408953068933247074062702854283195945637437872258864615225814872924878811370940224692812180945467842793330074739249026423333647993969057029745329096172198691546569794290124957574865872418610792995832471575421979545265363134889797007412491317267338014295335708186471020946010842998511119137289424690478585443762957504425532104462951530789233642260296585309738247424715810005971595597571613216486551331605122050749297676606314491907245685562609007909951674055733608540708608028658097113875740304047459417582488438222219045389048137096960163379996224548862620026536066855585803613551568851447082942305439182197998804626286323149753865692954646099442904375209777142323882008254287674554416968122909316430852728929172691822226924187535652936175598062198996610636113071248981013246022889235306010785172044490572878057127014248401346923180926348899750927690125072012010799789107600840992662475332244810244879704228681670140325925359412336474800636275384784828680751854406538611913878339468023717006805940779095438617589413201605851639230556790122462190882277552285790421015053032714233796485819027796757596719311638977530939012430330869645347695155739909789259155235194524055279250673308739103393343587880784571862255921860539900709288784927593836892019787324864764934005172685277387306382357033718298832882032920273988111500441218978210222356350625886701192037670633040739136443118354637656950407029568649533180411970350767771059711915723493610060459658205619537405489798402839387212125820818851768631787028031002769660935989963943984869238232779569294703487872670715200121782664516146810171297615011778827917500566907894760930449659325634216726016493893768891103121415193674946012767261047795822003448894448266433276003267717756015403066742317291962474578667195130084802174592578376372951415191343710690844525737783826832738404276433663078629757746451061634375267573633352305152165407596973126509693409082442773551403057537771380096140599408653492324114346884476544258223701614270836291550506377775510267551156369289877486656677100343351428811732673904061464612185893878243559426453286164872138538699772969647873160943399209868758568206931835039880273194297614249000615921382502965042294693401750309435737744463632239575851930877261925909809578739592212835575308740573508720127955066793461946462416183134957563096075004196471803354765572279972332165664861617567647942492505106339979781317575007129106754689328900041441514482207005375607662530474134806081669019599489779605405419740637507029035797828681467755363417206878922393112856856775114457430370473689853076233937725516191098711302353828888227850450974865714946873658218561161576039584429347640564746626748193727635440186870364493246210055387015604802173995794505995762513532494938778209460847167952611781588586752042355380962380563822183301827662914219648139110968499180611917704059554996346573567204877881372671572436333918918525250589413328860090927002707255125911497471937557094245639926012298436080907983498172434183649446623957316588750889989724373226751011595427590194627418737114220805461685646891964241540014880352009841506834033356002455056980391747245220324569824088940464206068113655190000654970286738713242809029625112716413546685505041719955872530670271861175783683784038021062521466760520236565388939268814370209604450656185931401351787374056831137606389200355343143101277235182836536880711219999072302994007019812029278787676525153427789834770472843649015225078908399289413735233661541527320504907008390845856293393557429230413048403217135358954783252640667062263732215240010348894197344249695261167435375104605232599147228126245478240819927084719067357704147948044911888714085180307589927805621650840527084055200811500271561115618071806435996821663881766818264358008978762451618949257868404943092942583340468467225437356440366551797101916391097566693504449257435063323491781569613230210360780686548493187654410046062637209334387681005104742921242823447259607640103117934241406339028472871694357266591890543626838171409886811272778889234905112915515875750226022917748161015595754421170267242093667195358351366155573666400190949791532740699712271767938694063937215914538075137890855469898151839016494162836629890440161914772052233621155825588978407958082165205458368432197149256128174448499966931338275867011969084631881760283790484804198305571334450833101947727107673522280182971806773204445799353512498683570994446675893056189970050941980520041834280571279471743460750628051401139965240263109477485490328288817836778172889046132159389848861248501227905834821173683138910475094034864515539671875800539484144510468876091276757275160184233691219996552462148986045334103118853063724646390729830971741331465589853874714307217529664084902923639313928177439409889072272765964122241979745972431769993733264427480221189216729196836664334143215696052794356487502079243648468346549636257332352792842932210102542381697467179977663098880120762519260320172418568756351778955902113286239858400911451235504665665704505108297514413060395798428986989138892630470527756673610815310897772245712766964224697524867930716512347525405719909274444894564174564848736483405060912432800114352244545348974074856403358405625786283413907130537379824404793977042360721210561411317178960816673902729224401008172035020468584124023139209348525319433536764735541600233762541675990814003356522184803399998991000169602057944253546891719538744888754022285361921410497985550913661142994139480786313826412962219314118687097085767023277365740259435860770975004935940518487368234180395116809017119392394135481756792096503682834174709554359890051950646957946897371676160056773945376726197880136284220762483973846094349334081197939618069619957139970540552372991340937870563606711366795297976876099821258490112197079002633546798154736386488302995586964731095656331268932742327388745016374461999454556990936716677630009226284124696935193943516362134982136140694817942832261734972432459316559869289631584186136891432983027455698827501254146019336213948437403920609961083384945783490596050653462265319551943941412987632838387892407389568258110601576083300761753934208281181478836318672785019670095493564961813229193363674215298844712033805720647598312718430468547380474117938791983180802245228331173428392362998736043826349509396939187584551399504065516651848779990268163844207267980909380066440690972745881733244021746672726355589119296437833497408616821926648542628638092838076846401067199565584043862318881684789765450352447663028111902472462991908725907374510086035161366718605332277846160247742179581625332225194743272635441033182161505507635674065933497319295249579412075301712641204655612341154319673165342822203059415774129837932905914402582814415477443063444290482265976674850015345553230799023164802245429854151348903127468820767599618334402814190753612744438372939829690733283091557960315884736612056419992832792529439473768653384209457948871912337043737781723526989230086487515455157785163088542187497189346486112760433855886018231942141089785166069791088781959901981291969728564159469869010584966357289477601283930166640759152595168539819619631739209590939355801479587961149323194020947388884176252504229660812242487781946941366243384979621390963957753134002638154115665525787458606709207698183185820890319339081929228133461546472852385717228332884388853638691650115105715028759651989814554823549726082839631286505797255958612844581889229196429327659973188941243544621718680155264736032914718509042182187136732416814874050000757232105098426356482707227733674530330877749172923933672168776866246257763327147315153265860326804428758510460476038886534412183142173250896454151113656954622607492738958580178844466552144547463918592804354794997106722622796575256065951977145344821525641472246426596128090089728262203834668603340016050453085304126711588302871259699264650972537609134743474790106078322366863059528006058987970916895597048330667823296821154801404163278492738721897026023310280615529703005604801891213070133878384572265092929376682001954233003176651032919221898691476769741057825361373763346018920627779783831691600441347050170095028441757074622604248460671071386734298387014378484312708002312448905317932027245164454200762388266097769787238128529775711228119822524012203772027236486282873520385936971976670019801857196029210902358283299038594083321388855327405451918383409629314396111314825825918628443812203287552827042363290383251654939257354736831039082517334380328750730429114353836495220431185811342964961140527730598269454609644787541347770997924186304589232314205691690048028565700349910436601082027517010681158621031891685491395922255431412153441590352521911357568194428922964101786184937493303679083231952528887503215592023407018162087183929983118444311640004915831026320561037494466461782741987411281909357310631505364264529120969486149640810385320884375861104175139967451758502773405441881219954543812457222132552670494879104224206884896240991812975533993624248162310519000283520090784867462625050464462199521704934064059979992134075342245689746083571437829705620357380637469978736405731473474677770740480371816877073060099728927051063370059976889784087017471273707342917340387373768547718477495537645722561732903271779145292853821088313815803259715740150967438451467754154386085980977039371409815678522193825038949627069227911280890754617998774031469307269963257751209821739069545093752801105469205576679461785344778474694029636631497503518672144640951339390966701696449322636732000589191545028631935299801223783833402579340336371099559960376666682477038903315362639768620389141649368034349543061681166076833858431485650133341322223135807286160407161331863244614664399720065236160113973164437103599402424485924558559263227893439618699135847615142240558631917612397984954968892639941288338861479809965280358511181548208228661312007296694470950200437826517740459528277236877261447842266008545468704799185944069282627364595864635996520047316692364843227450096811488418299000179540633582237616562343966205082305751444427087739043491567868189202731727186819401594102387413815351225332134704531901420794997908524065734157778634370850740957546353414905687298944398719214694095610075952504605373458744107241531818849176865136421186433745316398861332196520448636650695830148223619920350682408430900030701755352915849380636470217886568916869186274635893646645206987720805438103875713172971513928660506610607006232337218804011425172608465076794104335218111604545916167270223272019002320147451363382323725389251726440335822880247059749389558025697696978219920426197665155797938737891961171476138366689880653074136992253141010165561085335316494775326236587677728056632340269601464164613337706132951480992776221142072651584438919634545356522126893488381019100936287489340091166141550865039256902568125050976029145465731011816188455864892552692429507382481610495309560714561631677297039728979757291377064097339816193819739482296589520721040975992807115711695012845335158093609720394564381647378938712063104466609077345142253161193821394742590514406348033281208483662160650253514990998453840942520554870602269735665124857859762412790635030942341625840268453019414257885129474313889746471786312966498200138078915019756458353228942298255226209849229446574664795483740264932537089649668633119068615273077560845255597305399100601514554893308797537656931169807319560184700502669526327312207020267609316725349893698452210048493624734791621373307743748130455776648381309022630342738232548775678266090676998477334946831022395951187870061802769268445843747457873198438820647728812407552167679494171751183228245062943483964127599698491522539458624226414719553057849418425056683694917020104108408229847729654797895375657263539527381854745959493928454692788123744124447471073305448658769236869206563056271675889161724081392527009082796986400969154510295663496421207283651222787847070297437482828773766142628051285347935254598012898255903899405275838426634339984549780075219011040935571006691922425309939958975654035759692854956450949872791992592287831928753197514231506274302806222742761806111692153680763171079590544134386742038640564923115584037666882423162487874139384731072433363343061801314267586699934284750854035002839441226791271144664417145961437217262823332760138703316274629259639372233694895001555191539765941620613857757102890467396493126966451489120838008863732346451666585479915288806702273551438879832715220553138662254829012336008443121144658126577247814695335758991354177461138623221805606743557601978426863051838940868337627990274549302552168653868627854932342204070456277285768169908079583646812807720875371345258564180303064192366898554038940500819728199349618562858592689216594362400025164370135944398372486248654195770581923006096879242767787440887115729954504982475136020532716278329146385491411386361222066899626410854992320291039735978738284022347455515740352935092441478306068897847936437410899579682256856654949029852409192021498071928260465241053730904803011295279894036022106389240779065031771991232218744693899283642903558786259835628533061139358521412315542519968427529680290372164538466847072661883303884803396687633532815436619623693934636952614152551423551146119849391320114171690095982386993664327673189102976895565985412861379632026580091164693502875202003805630297901075310343359595761914418080630928540515479975886716782071193615988147815461739909068728787251516598438346218117927692367438430604656047075063112656987829585389363190209813533517313094061340405159575550437190557315317288694663180662604544070468383215851125958683697792090846380817655561413285624466899159766424299939578985613635978394815626632165735511886601884164948309670446520371766806996409729949874132386173732701631986977402562574312150126309093007193100520878163641235099240534717873294878307138281568851523998255023148837027403330582902594218404707444702102453182897257447385645984912046201265784559160528339048804548892759265636848176363877051445335635266155102091036584078783002976169866537684486948342655181194338903492719290470311173383406195978058096020538258329490821025641688663393689517046840275995173573278882706112210751239350865590017517371139059872400335268315354581772083677506599037736383859171355123020705977249622762991941911212809138025678263708423678841128933570363307375622362599537351493536481315601292836470006035167257579604822503522048976796173682838888632391499343000039751246189595149645295567943604457059942220590314404368910637388338587245519667624474428947582031407014039004359235937424850611336777373844752481896638592428406667528957632212934007229381593824779820333695533548335483632593072975931230560090059588277892147883242172462242489703758691681392600026864567617761324087912460859650780477558757337413236238217777772688055201951101655297533444413401871414657206180671083707567629262950997431837932423610953159789952327277514852271564273973596787116112932377757226703181722835585473039757089464813042028733353516325238108669294186932185379866659544559500584646632053085557736627078960791074869262761035901879905085147793949271034455242454875806059664726898150194092796972334348359589189504893537340576156981485629278343807928119823984197905540747785752999896053308860728217243229112330707749714066524075870308764841716554584361341263905057570567137550983065353191378862066286227483594091355038074031973526948759319815460393765465863076371239984303674428765045944172663379118076245696213801767754233897559861407742562065921891206043873845590751084036090580816752005056804712362061729477315707575880806822071312844904553600580164086258745498391253170707881210432577566886669452763404605873811030570832952261458502348934448168952119744163749216381261590369149946767462085586489359720400402520027972925839134491278521043966333875379672400425009424913903374218581091673401887401957230384428498861789326579343688034917736842480056584953523358812077152254081951080245056186490665454325821550398233673527202384823811902896008940461668574728090261102393606528936552557465785496348075796890844336486663296386813525383124672125837348068303845910227030130725124599279710091675638629288940837290160730338572786383582002462815898861571700032996859947542637288794882627178162061985720549589477623268601637119723004309076372368256849045090158627800129778769693652235882037492854827893072342635557999980751072794607148610666495509090778216635878086395420447534702060634896291065482874041999554064298049248348058362455820738145063150764390703748551007618803529525748632327718460505229842922116213258453415058150551207306214304437536747602778270340925321496371437122895824729068313869294019477065288713067282005589187972047673993628597815723505664596507563636698016342812060303017271474277888464080208067591341941200262591193608327717523160341654795161694407250775820499623764598877083486637168045410021608508375293036381465792302603188328694271074006295891904041319686607824121397122072458320091069378198290824690600684519716801115080089153521516848340982959450258992798064609119798726698288579072831820814632530398652710999394651886991029907375470229481224085186662750338221789523162279278631202347501701771233220717091922593534757938022888880175402165827752502061044070062828422041765657011005427423733634705718391978941172303309806123446699428650422194215867765338724635020842201799517566839029385097003406545191396057906922002111053426395946231252253819106776568086219899645857331097672822046893500219938718840238873903045305040229241942116235216537102426851513266157640851140952309855412134183692080577452302806709324041759114725341234035237237982585710608793557290851536036003168723790747710840667092160550596729778509426341995413331917238271645229782815619513188619224230929618540420100496304011159840486367933671538720281937242478271809495056044833351378677470847042686837214243011921966729889739929833893189706021168348774571553613628353770397248912339127836875834456095004344335695590354891392384503798266379758782251859226364597841162283697459516423202686492370887683487797316076013871403807951076902291464395996378992329119435200840369580094801870746799012783144469447942634985770919550376212879347602436545373518019313605890046196092159783816871972449005382506016328872193238594654718922866476739551381121731736228879708523612067384316668470419422822942440290228120766180034003351283364966663893405651852051566629168283404848709023749696217626669839274345062138371788352169071333625012780545406855041417882519059768814997494954597739522903534708735880211396722826031496076183290710585127161743329882652780255252428279825792072187916232885243684803659416376416494675551748746384307755099376574766933250433825784241513982138819385103590756348647415997352664019948168721917846038194897660523760698226708752603144696172851438584767111042933912583187494186099675483911386600195483825703646085730466749670113067559247860493381404108357425715827668305135675656190887977013213030351129665032915900008487215358954660683581168170052817258076956534335583195582001056786391042438006120089426692282254978306628444078612995162086230119027417042691802797845906515894170255346603031338217120944827516577098078330392041326683431397310329428477913380014196558495991877385279693970800834765176016997457945876047490754730466094398687187978484375350771907294586999717517037471343879753479570931334826891404050489039080179960053317929941344545540188195751250543606508111923328465191549437429954084334069538262085241937260885980164914559217226056338817554158383147030008138967242668582873368390012384009282369051995202266236178777822460499582945270418523774659634254390190159982456868201091148319964817369482646537008152913691943573798277459705557053202300932299656617051270089276392832143704595523653814991547011221176551290975745708212694700365801672716109765847899149601667043298361358201171494007703999563263943542862762688841794160713183160801335812544141526515924082511267632291193419123442129127777997397202240974799093862199474796429257385471289914528918154342060013760875457379230954421631646611829643056549547125997340785848560235896838344128992695839352113871607544547170758185445498908755344690076189000308170580233390687223748920287509698459787478290756327158555137288283418143638423662514811974927549964715434147995116986156099808737390109793616590253633593818414742350321412167778250363304451740076857913940612747471300445705778581461204776585313875402543513393815903624418465549201010051583439825878393715163608177641546776821378068782825461722103253255648481676337550906632788122282745676554726612290491024294877775526887137835195253805558155217664795526098829203728745511331759349067396369381523108082804385541442086696543809513512507232156999316499902580367048830572995910171618592772566240320574063979984853053579072084463024245202436231889085282443909959676474068271459713221329034958383681007377762355940383966528330730505118078975342319619418379779805229341224223694828876650043780354010450086170056758945653404645772417862010425176867007609282376834032181387664804621019669389772019414964631387277866910898637889589292693072203609264164956456875802717513435027069451159564380727049198741110434086827014315961715664959265987824059769289790740735289032158937500480781912197184359203146212114846713718209076829594570746177024198017627531647064443098193523313021298764188265483485784312259574313202500328734335143698196731552870631940479843480893894765827972597671652752339731243038510370455747272128248300558172068963519863019001247555616875231149817244444506557034561272199672523654806457510153818045311439516305802768472742142604871578397238325664496670333632942881301631461673158716641485331155517129064575916324528496087556931370232096251592433479259063393325201358328557649023291039847316452701675161777701411939725352456417632840520896233702254278465898959984778292202888045976315905531692642690485939338503554306183480946892066421139912256488767278037200066607862519143982081147408262031225652498118099331062722954915129810745201459576662879000890493622566835221001018773098221095346063311377202981362588941019275678390586544101493407570461493318779162521305687791093492859992831423257159091660872205632781261093157116322782528736537445756697255387598607597511019312496907642654591327529062675730324183644205988228286940464213682983728493265960899098581864444876298409930300198316380990960604514264963987238513194221320716985016072127589310228790871583023032297580972243993252473035374038082676931402573947325306143870699741452233325519277777883359464655557969073317613736918057835128503332297934203920098025348589896236515027001183933964697310060271825733386611823860081312521313568892342913426343740991613612307065550467900525684024451773207281852130146743954048113348173747915255754565711055376959845080478156826305527293745636117313286176677465328937253145942937371622558732347590291150324481881167475866211225942645590680865740534998814874396292936716221076458325890395176051658140237676781132974075779217118272732063999326580326721874122727802645187807379031463923111846214788269041616210101280146985007114739353853740885264121897418445889406020800518030126137660587625083583455542066357682135308232105450702404221893929164516898150972567733618010881298507428569251611935729735013478950266904150336338882004383599966523886006785644411945664329325372172266142450071321231472805741566467754441797826929759374024775982891428598729588120129875548070001467016620215711330934849665844173291035396133171013333601892253292418571636804830655746803505834995680489124083751183252307994336167609965733213253387150852338594082448057396525148199307789922538615954790202358516623075446520901831118287937782302886908017183919372571765627403940519443320003295961468704793289115359531180238660161842791105027316979166546363620413229354748169578991841935385620618345482714859523418797312165597050290350103400066060965688825095316127393899375777355415722064798782858132092860804505608743097864210240437959679910257139594984072551425015829650027376334581744427836010447610642836783945880835905412365810959832402253021075387531955628474468374692780625227486439226406118514820918299264747175849355311815640437293259592284656241212810134724424034540215097312649052894747931779739443727667045824221884612234018562221958268300306131867545688389140686250142229122170702490761350897788743238195113396765939048217833767996930549557080553049035484635100470827438751684524785757087844930254556622510836425125252616808673073821575226741141206334087904878139684547234483920113765405439843685145003702017878805930357661264583610923726594119462706576396198536806448722515344341063115823944626745682453706002497055491170767168577708786778699855814342209282634897112387485232910297095637094287843248197219414551128634414656439183173007030405154998496608581008018466999374863956476102570288182889301791313694156150388647292309443716425553496711005145403254226167897312003403479536536492056575771851919938067989468919672544178831644294970694714861067080554313338699006052045071102058534249585806255771689495705045046431245390112559277634067742676347589926257661360369430803584041380090513144913085879053969583128260432938940969347345057535394843653944296412990344644799188237392334273984699650963791157993892340007093201238844219797898748023687758709245188981000391123742807810306884124096743089312530740158605581071897947661151117827201511933098187019630898382747751061727152798715160611475294474319433226879590644777745726637898086486269734136456820336106718439817142633579697330966763405413295121976926930475478537337027418451612701742866775923171035822067986596332052778040099366612713722562220692260931766686082919579400463300829407651418291861328161204851223872045674967860787304955601278524262409256870467435928332834391118812234869256589906775340282149297405222212282611761623339775221235675749508444683124833474595049960830673321373114307423488279068807325446531940441208994507325220344440046172467741087209260134678444344366945810057779519380779953659889530504166620338516708199039869166744383932488557025239623164363466037688176325256858922405577494141478964251637972827205668838768085479802666800271905530053751965461782725777936468295061953310169245241443656119189407226267024759786596231569972127533183561436518211229563442200805119032050700241959501710073859276559885882677200238278278916302528812515173336456973582842939372946030724626758672024387204050892760987614108694319675113112212041550051962591870376563951685631642838001012327071274442806885060937163781574206526885385103880364805073287902870143795870034331084532307743263180369007715327417075765030995970990677982175463829127202995755648369342402918227851834378214243801677510392368546761904875780446267179987035956107427886336437435958570979092562952688054073514500401246928613295793221872556536466147772272261688957225503690856078991811303297268857514407726361413584505185293748965961447891044105637889291798043400732597053848940353563185862655212287382368633773051761149484523629903709687803244429683830325132796087910802530741628093622611844096543590901779017899104988461924444143560158520130893701399357139357763746287475831775785509361746084931273261782236120582445240363806859869799110428460349791188145070194137826380490764561681784044813227776223250143121256395656336882596271324861209345922314283579849152761057694152129569007064778063803118265389328680786460032446322684652002555163910458792159666394651591240996398176227527339067690193802658631797561058892920086009086322590851034119084949350503211154640518107215570364307817883445847336656398990817129810302314776860712829524625853953629251819068649491452039022529453006573909610111465709838647533080455650757003552920548886686100589291351555751014029645922719156533977224909108264288747176670308497725030049440009334618387884309553754698275146581990693733536938208218088488403880776279289504492824076743694162504418664012171618919770677322219521257602028217486975040258896176020911289555765864651126253126956260949913753876473530503872358114180790130158170991717297088998951873933944067299753346505963576594019448359170440818509967179082359883473958776068916241730474507620776956931261771824286465987523456783296124761919694961068437138838856776907042394063329518266796743307746810320873390329603114712238474453672246753680572235974918961328288088320978498245979942686432059320658744994066013556616118982232243692292665077174575917891159926186341689315863894264372864973836929631146075186124925595202359095520073447932643331427515085160396488547961781062353633439872760722966808834457978554760097056643185958568088215910561139654942654145446307718375359413448424870875491870590020689807336572979097765195314869917708156117632234648591413718469878550878583366465842615788808283737540199071918541638349126990490566053199135934573392956146930959447137747812271426070321386506299391304963143298608454857531382240557541056195187095196903198399928753960016597846544425992446203893721023435441664831456682710189289308454004216018303999984471001296821578291199633389988517759286099368130086254794420714700286919986613421338015751508895551524048499830736055916551111465618232928212456394552507985671565378344925368619133065588385101805260492385230672278209983426080157843777008650041184369537178091474114864369917423622357632811382945884121043734150496692884833541074221525192119805441952433873184935600448972942935210977646138076109558179322338638178464478681714501129228227754394879115150367085089005197953628620741157660970678533561787470436697870232160050069639075512872927254034801438611842588316731707933726151659026942662394451498597314808214912981197919412145254347670549942741930225524085292191478118957262377003058224415811020302676240693760637307669228570614669109461078660666155467244792490206303234299371968176886515597687053538586260455921450616216796940752871186404301133329466086318958587691629065129570366640788933454018497008241689570680148527228634197511623242191047086594012521724239077419514742205801958861264902896494172803255152534163635831917120925605578517430203739588941177104635284919980913658505636058058945395894735960700349312525187170601699202944322186744289304173167260562202375097065163327573442305026882855355810253690527524455124067884021557638248759887126354559509358039879800279517668478452111142377619234726662848135616848660909263155103844497719010489863769515168751743765404198051299499145836344827767940961399627065754129746002131948722355885524054536497483657808655373946281404308653577240841146481800021222003389432072546228243857102195429190705019898478208177433999783285565590622039439276779557507687186465720109332694877473098023845779932195769895230682404443397226933980610160065863293358233295950487526740128899041466215638568321131176430491626728136333448036391485733231980006630261434132176124951548984509840099819099845237867572190615637208367158271934836947846477180581605847474790248309976186940909154944755832012570908954174293206411145286652270523492326482735508756031545347065438308241296072955502857773256355775425909269848025212613825611217975076885029878339024828038993132621887253013651063516944796981275910936840049143617102781690594294292074877472258576368906419978785455201922344199026554490483528797486593114507909101325578433983513465658065084975603278769619863050388419785367964761531988072901076953828209095564683663075171626267544672992998626099002604047759829229063721107626809335798671566820751962302723519579239374024422728944574024124117209335877575031393209988935020125449360384199990481040923243315239749567116764336426117633775784514879133163927527536612166178911125331484090488734017808062184324822686035539931486875934413418002608308904463829463284497666212307964122244675324380243624394734757898690939671107491187015668968387975981505820458158445457520823574199626750583564078278013221200806552759992449491088031986051780416060248505755379879451620183293481681438086217589530085897096262465734205906531529546128719236113664988475049819882638229059135938454297100188119888907894440333862040645712881383473734264430825016709270634974386857040659660960886713548081296246595327665141162611520642669230091535749600635605473917283807182101774680910463234662606881147138836598616448847133434258730126094457803591593545999241016543802240092533718742198197248966444480061336185719852620738896519792773998763249055932377128584440322451117262134798697919351746941111044897815097114625545215782319623014381947216860422618753976704298361983719846086487025291741956840508388184348891351412072485041196521165792544855104643552737578761098606549745247196291592146452980879752833568732368949555751147591116343920956181220067497713695371851441788094372863175949804687296253778111744167059993503737041236236110680863047110804234795703761569730618494849563268184353820897114988225367652433718693858001449781052636362175014609483565843645203214593891596550402651475576692103175036085047088339899605773357521394047784211678720203945051378096474818050468301901535895652555667939071018771039110511761958770383544619264200288046539367691918853206697748322586226132346822544336051822983181412039677094750931349878625144494835282693584955180129254177757806069497711128399162441094102123170328653319111830159094655280088995292047854467356202860931923718109627573569935088038438183747879287166015882231525266073925714943310669205605085221077719536453582913473924097152196895167121135654034028283228641129896078076009434521444962785031681225129477382088075157657107352640550805899217600161821770502644836044471987209810902464880572385338367248440742867803896808146014235447380471864806924013897111092499294595620712110037723155059398446359718393302064237099531349622035527807065349638510488526642244612848057112064097406531543470878275722627191604821371633223338685618748491801608130058149728416340218684828867321568972562857914870488958256162809871719772393078848839935755399830115338865412806382514943696141621488163482326239621014497897565187245353698000913315437372138197474433642923374770401559781310464388727183841373900757340200788150712032662365671966948661782791403764613271841243718648606952085790434959695457158083722558595678746814681187955261014764040669363956335102894815590889337424458176148816000727395266028403137634525489918837679962529312830520094725431380768154051720773498707569160516936158044139107494506455834425855097425404465232214647141755816862207096257571563313908259187505375004917357571081853351414921604749056123285862946001581430321626778943647513619992528884976599128502300639250075019031964812910233009612604846468840082378445150607001532965115968849893776941505897838187596348872711478899373282360565812871244137860748899787162753254192326313123190293096905162361055977675960407020255956998360620508722663284881267844273675597644774447512438937780155261090365329861469891868832393289918254808238045613541891502137835883658973427410748477486947940100351387907910806107517412736006939406354054870414035458450203719009431363753505386555243793391152976672576373171388462838101365733880473333956208689810273264778457952968251264158688685312152725266195406111952472726558445330994779378852003249681143701234857805466014701845175247284845491417723977259257001556115957437299066717615627305317043866760901976965956186480911493562725107181772119891255871338162916728456059008969275865676100326040579475304027005248595124893694588171597339985369464750145031016085600387136525629371636693987837779677173848663461018574335183368796091606025932069789981443695109912847393610734514117474096665710510783281668222053301577971087492407427891908719912971379506187050370214416836764619983678369010321099999664127706014855236964832012868045820427353496065709956930313652601191469931377837652837683086289402325079569034565942660800759432816942165511471463515483916016539680750923388315907666129168537132154922656128549353055515252990476828718594024647272577453595179548951383088107037007333570857294166087900000281124050332421975139440025843843660053343863474608949598206198458420525807382107841789269606519325214837209189035806823515551770763490726061660792291581252634547861206601653072191416857337611977830395848412261344754093724166225270821958529326059014314918525836196771024261356488268206271373885350782254712585450498627955898666139985025307083856328996372102665769572482811963929598911829386595726370728128990248569511433047941608573238225001028971910745081166202594219106272294403437437585016991370834383771158432796431468878834119306742229511636918835253397171925556901102541838093113170774904734120731528200867065320307982099452690035207381894163140963166825663444439038497213220672350571304931114515286246289612373757315553725266107985884451479211916200555457383257171233257629522469919658929390079160594187257398676973805471869181099297295571827232947711279565865970294854257200356492419251393134180093037352215145964697223427180240107245258584760413835467371203664508506645041434494071699301106495925868468199275181269099987044819740824914388701612738314105768350424020363324095911101559321056297024549463565499905258428845845096092568546976684643403615505896977860686665459376937689600602937593876392361476735575234416685238610938965285525629807793936704780323679090127308185754056792455166595271323147249106888488185315011395845113728817728384902566006881738455687354680066784087907774651120959253083537225976263667695568924115041033532614202962011509351210561767595255561865891900968505368318458345944639333484237817475717769595039306355433933948140964987411521540194334918258119364817306128012345214940626613958648862325589921924865332125376793253573606973001160801527537800607246137849089148750487337055927181153168454707918604703744996316764661811775983660661466683742839222803407267904789871147557661073707525141158449076224970471739230496658436572926126627220596484538488418723406264453896979247569403727701822118808493208049968930802924721924851368931347880446970084854380699837003318732377021231188328313460551397431076806922208083460722858475693600798812487824337485881723864037957899509278494049777571033417209170762690787683667441376523021334219273021268143754201392847953966331689747298692884262833883642120627732286121522796691126814403177742884280538373225524486478219337402140549174028751275013713604594211642208767534947332066929360153065541974797403651423511046446391577027008631721664929970131777027951052428274395134961163591768984841878500102592517826124509824881304467996807316000864601596701769781961318478009337278885280991759070480921540254303410540945277285979821836285329990771509183323820206829994576462133343317299279206810862566362466980577735942677148439890148130917852840082808686428395397667432565403517110842692795510174338988034414562546172261900782998664009574723853786076253433356149677983645488414496063758782917158264104087894960457582063280257709037140183318731248399991803939559287461619900048549832573638674894085508377063070001203290675985567631683006515362424636801461468362972029949365370555340031774887704748029375725071343792688803435425623779835899274582201885856930659487502853991425659404255843225413795465313246741925166471345367728785748291188561250122620680718755146355866379670583519615276920066260915366668861906444002609402879788691866025145475055684765987953260707953909755273218504134909521055834368192331576350259579283417106288235256177875149394232458122646502698450172209182135338819112402334930086478481831172058278089365172587478668378705097476512871799578573767151342853302718616033899074053732763297829696716509278976875808820673009594085914480460868986413365560021772955289123887459747650783739677741727479121010365470392593608122288319549114461071567935303833865874876144201713394692637876856043010609436535329447651381134951385935545481931732049597142801019359033562219374232320995146322682995180182551477758512829881983597239493618930800244336670226015888397066912583868172893173545423241298358200157566608125215745197576581179893861504933093882914881684192982488469091695483768381330657926426878115232749743944377379471787469865425687792364636212275805589094159337848347784241573139076907583121668035578663108072164576631059995124681907194304488738141957339278575796348455987057558707720637319005404995868441654365988294072923665793963741138825683410411037601108156640606759763248457778485165383643395167638835435790702833934284294969602257811942746507173845799147520838176375271685603657896661416730345116482899093485090359814750466200482823394803189454473337635958625856718954893425750949368786887694887216555176750973498426081444210729540553679929441158620734850575218086941544860680481575715587952216559260089462467996123656119220608723177249218431754230687873192096302480661118957088482168864218827041683398642981292132053992959986138596193988756029305543907395350927241248175470858640433967142297889074079610923458205963882002224674358372455384252708959381858049558415602853893680527663185803511759594976569993174441538768534996705256489382250042216213449345305723423471421233108426987578532392321670214259560346859449280894619313346732451391229576102225369564372693817362609266984927818002469217110518775187162932511247341517373486890389699146187649396315954413746176340815432501637021196146237992319468679156994318815950660334823091708186451495726947668818194914543010415780603061946918888620896874847923999820084474070794034080782924839770198496806497086290908213047782694329241021590614810868738404498421857932430363982979233870028997384843962367738665173527248393456313607204685852674222294505440711144038665631865465867570081175824093938154908904907642471027687179070529149328604486546296978554250255779597385092652351031896306794262787306915254267598066161991208622861551285011746059199871903119579239687596397404029887477873238327563796894187439432401367462366442736577022427114479569593710605095901906305366497465811280354347869483782545189921076904615291223437685165493233474277823170510026535591256754018336114126299797744283123581874981304189174036601429863901832159654031370319450184823367329123569087386495794719686105946211792470578154446021665104539908615817458725973500571022451579373191011902436013117160003632222151806386935510727842618427829842758241744799005656642743449555446812554444190642976044789707428779988737346007590341217562608784471689422151089813983301482846514594931290747438024103507905273269100043152413101151552306780057304875864036633845992266629112706594292801441100886096772443130470117718444874432600005587267429762196450154882391471341013641511856936272762837454677826955186042313790241710657048062561554842591190938881722917501201942650045656603535242936450441026112408194719559467152555977183492183413706540583641407012696199671865765342426681797979403779279048424309631717564155499118149760735991996796620732909365075196999151306578174326975095938631452091257881034424958886080326017099636954707122194699862037948799334388020649866151369451915656340424900402026952929983909625773785901210947563740553357047870190035986100668921352582183205510899420542299995395756907907927360603290162764153503523848110879899694782496062693311396363834500150174171587621867810440670093146574249674783563707374487734043111319118981896214942046685961879900753848684103760356368105220325197264304383997090863640181191586474109202767820883195296182402247280086604119328074058532167475179316265202759948737132303133137901924135485048072331165521212612137575951150992230200664617869605201583190026570751573993631561323074308791586338068599429181797378919537129654290876828824967172040742527010162466991975974774529622116210505273397494343308798260481261406523997498956412366807233186817488968322070703590161333690075577534383096657875084560066623052777234907622114630465109251347278769027370832182023840023860565264691887270440190210855180967119599516159109679922149951451794262849040563685960745800393789178576048295162728065454716202213009241948708912529155678552751355912412106513718063393459116963375450806439089274690290191324350363320574605523072601218083819756590428169166216415673753708661257604684689168404569642051938349136852181695846708877528139805955621422061392502059832859700150626776770083183539809719543344304858526464330234676844058549680453253054340749000420178354934119824738612017182720856010436421316440553246512004622661847945177814506581004572630717831471380692543394094132513054940320236134443899925325231631152096294609153021884261028878972031789134435448984257557477063926469473201672240185643578854840459959618241227811645576987395477025481715265414023562911024018289256077277850181960963778458278998233344143083559377078649717459024005808354641937092303369986700750278867594996025613483503436960598074700261484854972363447865225114606831963515211715144931918599633287423522876986127419546089455333368881312283537572600304650546432134119608617421107995136450467662443623061721830319920998689768970722980499870893661882818591438338264085946790789009466485048854974024483620370791858256538578755329009178050313369387578363060221260295153318840955075624413748011551075129887894718321131127891533844108904178209843181442960019947642309480708888222150026408534157484989428314880405996165655253726977960651197568611774622688561617819842251334366291596240729056643775482548696712879984223297389741012700046438474116051745676696675997948974890506025089176347477162080191702389350600745295284052134616980231347986850195058336835520746528240603613738856692259573027738214891680159324215934598928242300127372483082925170372939912859532290808292382837272607425605993676682896419645628509868078837059020834086264259896058783400689876014362898783982951719062068407709512223582317267366682040850348300484673641105254104523664923828882151494009651324807266662869393301833205137430603344431258971874323092981018190920885002283407968340239199069206806579237604853857691717428882167605565017841128616900985493290786269239255661495103750115206361217888441026132964373176362635528133541698354055525942587713951007881425712165228457699512556193376078909461585634681944352933405109359609470850660375787336520195032744925139080880835113266236425421354096077857136947332364744286980526677178271249317619643090612873667889401321905535375258588245684376960614413734022368344912121303716320265960207215131593537575007803133453574334764955371776740336188136450197889994360826155707611591588055602251039539547558188896222474745194749365300931516236066859685484375383767755450595465151573670224476079534222690892936013126358947524451312117994752632159048388935465507906551758379153984813985778741286648366341782861785042303717483293189286577694729119482207225525103310367792909753735264903926667027780123663722790930693359032713715486144771805542731403703106783874817868065444058729293442461143360140414698815108368366155061270380442883876824225162134843802141638599706640055257260012715046632535521222585563074454806519606077742277943306464310820755663695032475181653740880884701315615223336616919499807717962493290026571147772400254297851079303001821505799763159408127546015617332564532524094913816236758746458300083079439648963947096583991598659335019892790342908733489704564020024626821426746795030451201602120502108885888434008111525257798637967668710800322746598283622628772357190398973914888022911132246164182118422601194373876985681740330280795297610984093122326840376567429332723987098536925141666028709875412041367188169867778895765850712630675597120836477232795016973409232259531411586100115264308044559558480383173605141307032484373551263488429108303491368665144187048495942128315464139345921978830773454879123186476738317117283245857453939439504691469436318199825170591601362737111499099233726409354874118128560359279060320856676237214965200264052023538347623085244995069570181117751374596885690834858861332272720690034361015770765867217206556251648001829697681534667416760369127160015893821924284747607577478189590922184439300710167843172224100213887107353463011201421279892769122368635053276660787329160258832569543803689542334954645916951321707790262557017974935898993924597569590140694846622011386714669096072639362539978540724324193143675039207108102125892428119804254167767854186624173011820786621871563569812000926427897873809422761175196732950559488840124193041612093949668335328757170948302177740763140023314386961233138305916733442121944616348410512576836759558036144067514310943566791035561039458301594140139145950420420429040966426178175418708853606934904076908286025301286311746338186323120113027914641893725118327790374248386305801531243455664933449045944494614568298112046681632689029474292650659254300536257923179379352554933093863088935443702030342829356043687822964690092790140447706042665768780659519401643262584740186712328208213812525957728756494111347531821873226265082907605743743993567289016634941398529541846402592164905635035761006557965504514097807446271067625535495841062029394575848891646488751114998324080242327722565075294291046322903527853493183668779381012699677481530053074012722806447265303042343068082907173532228860071823300730547814288096285103057749176319753646560215885212101248615733454720242170878220066509516660451226480667337241162557768821777697256794770913999045420207463218168898645416044982493350732988123758867202693495665473194756215761467411166013305698394119429648794421285395709834787979875444068258676227109485736614970768955433028632321070334512201829705930230475125280633612136147969999878507708199375267152649544383945019507066902536136377518973095165328960067737778953167564603977101605774842776576900264728839477185772534519706653676019247029609835948637781657518626319924059069393326338668256894188945338407582505822957693744050979771206745798867199775590672456053295827615468922046222691672450818818541308527636196564914698390677196805148785033330347280609030018359288901866695231168822399327527383254998417739121086120794982853672802032331285599353605484522618816753186998179542800266086076320853327387995194527553841903931991964764993847056951182528454664980926968211237030135270477366706889507277403143718634277791712822538910546115691782324513693091457984702322498379628148251324378748358921874994481247812470078885373606008352464051825282125462273956623755033591246706261173194827142067978006142822757664749845208177246899517913000919281575616823534274587464473068047845675339563547649360185356139809889890006400420967847980852140767666882473618786724132829772546562248786539556223307380811749691286753354322908355741638038523529048853812144759286407265281219228711430036526857775232447666359444635256796269077924359001769479463932160599783227028167580514986999339219107037540348170215448116136759353748004796146226512085342222973943553881944283493955679757796107035110340633345761405551984537375948456681143582056716482280011029663118149139045442338098406897106152506281341306756267942990197304786424446809674484434123112582481610679911079432870674080422696085057575826478844061824108360095966520507482625802401954448436296026979600019235395362162433163336048136777353442106077508771845717651750923759930779550351976351246540614768039158732385759731947908166723581145678153851114679390185396681258819065381202393047593603619589016783730279571720358864670957685436603993731117312883000071939499177387750822390070766211503432472234997813195921913706816981109544861589264068355629852498123939965211816687882181245645394375983155751367235513154735718101081256984720349569259436926606039527217831157672825315933215117851552577888704316699986133492658951606173106659987271405648368539505354594166975417938374009446740204699695206475628126385833835125090356083341150676304014279956152528525383349336331546442018202886698823654997887262769893548391813084194257948330700598035286758962840219822651853379593399506088818465796164219799196235410380065725091543606522107208660375136517144859043581447621288304648891706845817783037141249433691560929117542208685089955178635185135044958056491124550136351235952409429585423970264084447164248307994714948149021979278411552979541876226438286016334369767641363559318621280487587280726082515273667668607433534312753400752702810623979028577888071458970960024178775733943429517112465481345992571587924067099531676408319258053972719955824660053148716990945785189858024984976974238096011508979873202724114151774672721020101605952646966593257403066760141883588372664690794956111409035072945729685118743090038923625798479506801362431340159461999348475617373440789969767346461206919639857809999552556839994378187645618033766406253020461592439276041338974867483851897094669465182450759636996718959094906540865735421352041022465272529795256552163714663473681905070491042707321848981761688026953346939266546098122362594275584137864353913445170741977488306491107199074725456124636810480111497947558339703219259683276676372548413183081298627987228361046443706456294270777719277082208178419465898160724385722112762853712500992387747440214267892249431284238710987589711630382989874340310259155934728955494259594214803588096028326048567260029788235300841365771834052110935427869946713722248404005176335922023165175572381426873946421697153374890889367795063670903850856545889118484754072478298063310291670083561759989802168829759952177142746261609720060167340691962198207792838329126582904019769571715053265808663929295354891859282848456140991449560402962833957573817057219729571829071254660899998052528532370999387964437589664405286345774858907669372121948951980260429997120556865432239324585648295721232448062639835155422617915280897161195126490589245060435881223704810037117983489962329157907442762258139224333220364617516734914388207618866957889787626155435653974637294614674837579256280419433175134300838742010535919664653597748052721691073593979976249695742946929616317003124279986129862131749122072869472649450885934003922361702217222947909300663322772871774503211896895692450934371045310766821672069413563854525593896622731364520627067803255271376053446291374042944811373861926179261378365889550614614680018832411291491781910096548953676073045906248308157455484573634227682653740428888335995470787625035798561724029068532847891182158002583776159636717892194827775410819309464279323564772809191758317493673233993403259843958953577715556617706306192675730568874768224610358069791487572144158415117671896656436479052250036409072293285995886699820575678118244349445238610137966672358484604966091778197148874809210592745606259634204691371864187450612887735097373415379666813268135982012606565735744146805549121117141622673617979545337573223304016131120935601317048114422474161344221457807508763788666262675076630142264741784233356959365636716801654916123705576669122552880456205078116908622782649931634735741832908172553463464884370593479686886561055785243316245464448412374202791684812101231351117089507500293504001535320891699680998694681781259813936539704042398035015027128390569741171271101569214072057498286695039802963851269765544929575189964306799755654603960379238049307425928082984853341910807164338263444344019122161277603616348318013668426588865164439903382688282543060837590661066771237107170204530855929352022532766942502332391855276155123145130573434755013534165121371590161206697561778397298572398398227102841779848791936130766633732895549992371585465763185373099507443261847492317736526723840261131553396539718173499305073712656257261417407601708756279831275730161332398494620214917966808360896734924426978216037714822227529249437357974694191696088538066775578996958425306805867203671443940456154278564383852425558589610760132412238037264536168646818059278961233855247406114631999493697019852703613669797630099158149719370510056147805349164468600001137202898684910542210680266278269534344751079032986572886037715148219036673106139150485245659211560374397999334176809759242791368043167936576836762290434275012737261172905137119417038440633548393233051421367110417889579840825934047374794944900098316490773527578814792939577469680375600721303073259457733949244321611198155915718606726531052164456110669669586207465123504375036748196692719040539770355022948868700219310786973885269846415435301018185844833223835386535656952126380227659244723972062917125615898926148155114662106274717033635146407090729765370987688199525079197905796128886587683648235068762090450321953761616533374620230105582620933762036541622150282660038864709429151487918482419169365554358310317419747819304007583559580222563120768676845581380979929609827365857865398548778875317360956376447194455127065316157980671858960678108108829301791055468483704594003060734167269916929743404404396564155818476337217648855575307201123164931058264221252720193573309756135364968694665068270501409545876198957174312112617866869582568061857191637730098456987200495310439398327154795926301457564445763441737589274194136850734750719477214976993744417114993208030562753897777108717982901147000718710418139860506072393292246356965826727498928683418203501601502940814159559569389915058583090881476051746051767468865874397253546333168789127096731782931158607545555819087793999557943472414506041741508264784723331299217583399147023206202071192136863639390318362253339139035111122069329290872017289449541674111407504519217904729054519430137425488125532353297457022242966611319693229345004524045204386520377805698563841992871293235139643980909217967814110184159134930494546243155452814644981715735250249360655745317199022994345509723326348244270254778835925225284313976721119293614798017062976249039702855445586308640544447385168453675500095491847589525812818097903766682002543345323331946990452678834001926284005149271583876445057257716163585420348066941111344084894642225141146067856956180824583118493864281407408649028196989867794567422989842097306452678450354524803835704172863033513528057251660703990273263740076228114611941909663638930104931713653762112422644757144759518019250104684154866788558145269697753245208360954153638539597789328064522186730429977994052120380474508613159469802335685163765561581846599921639126057140989587402618247339582052367763774279351203444346567036524535023481079156161508223593320931600270469191167818121521392891363839483434623393556949456085081425627116033065388629472668476237098963683966460077856803856606073054645920230477925303318722116247578775648051542928075266800509345637506945527469062512540857421549825152884161598879091540620881262717067956194485712684773347432025248377378523649213249625764130855542221613398326026703910029471820941981672837573693421637176816499935225489734827539478078388787911805264409042604280178934237560562675414098150710101977762177485411203118392321416329644743451055248956694056473408139822486382319190667482096278990719618614527539395210226301574740421183048196928845871960968899282210405449590365993072073400171356968053505818297882031413397893241135968148107676920630462579444315411605157527959174374727280685235223288730500774530956853080975089735176962314060685324459540097535651948658889058850058838423449007165356843046700295298194163109939787645096669224219755355293549940821533135477502355721481381583043187861210412697708691219359702773754677529127747067575970937999258563466520578015388948894718013908980673519953955655910171445299347938796186081814221285449599331565904915132851424769833753970399452928365664969585395973094123553326618397089475676230995977721256299490257322135136998398401697723747112768622869627157708755832379314881633142474444112364749270876601776449534627708789766947246837385476239699215443108481769239392319349975765065866839569511476489368016177440970537608777145516305873062082885456678232124946398249956835853280991588547330007095146195571264880507451670979964596225833113550186148285312925433834904213133478068870519121752397452886691607911925956961532957564691086927510953296947601806765715317241465011336968654249062358559552264728639083749479872128418067425196658039502570624071858503621716614381229056149154041221258508909065761833093706814876447315701446609761876400087477901467072928027258889725919395910233201949953550201498251320233395487167253106763958262254451404215371227302841252190238466095232393257524789376581250592636136819196953579491149426717017503414665994262399396539900976357020971860549127610214031071206373089322802355953279701511921696569133921492228491233982429073659662037692735152900144402617913633474623325359109979740425838053110952762131888337577232756856399111402089458273180013498670642637502806535328398439456247278410247924536765815076631869199634291087782836861954909624911712851823685120990283389254632801224278260729521609521639394311210834674909706160621058655100281990865426718422857407408864946279611208277884932397996547968970346969211340897637334071561468742189724605037164494537727010213333876308794329958365171640157565476069355956714967213220944508897814922126434650138234020536204606488116487711655829365196557703651410858216119002562172632993221726987010939512220811430780978810993597056420684472722346326465257079225534871348401205452430548183032988987424841781493299567586438674190062719181700853589437905837855314833766611952248557282115001515034551507835974359975039978077533627265398548386013889859713149873860369331635478154031989232149891465956386766494995870562048310741610554722283195933561509346917908882424991787935817055395677451191417268274867651995991797698945128381414335411205108820402286345704852105226352710831457221508930841963356816910883499118394779570114477335810892169229621680831086989816440674377321661383753102746322081333132943830789581531968278495124012743224216431561051056327766037126382039743383944037563927832670815083541702835529589144167983441772464959129144446996538665585123289026752330583437863878886637328339937289687300980297774841915945944669051387397835950979888558197049148212827026420148603421488815143453796891235150846618137683341521808148578860049747614031890795009559776260903986068149422140479457989914699048186254578251919029403860681086069625286836668932574814711480527370541810097526291165259858577998527285991753212524862727166378999790971862916668787928830629447864688209943911627338583011104190632068239872751041604282256303127239007148080335613028179436280435938679410754498415763914958675283754626782058761057161379356541507656034047132447739745205851843064342025175350404893967590258237532155148697130410691729131591552399700715036939087380196057150443883250946099257183366170156751033260559851897591200530376915515655689051876549452956562176278414976466005878156557226908544321122975774125622177311502207287271197288041231217221885113687679694672585368869412037469494764304262590277609613831584837707252789765258490337317469139441544907131120591701859597949499918127151856465797181334316388621747660929418031940100574336408656966593518715251178386278560281770280072863295438722007234647411857065808838156523217245291956035017715493915739870602916097475094437634060962190667790519141755995643876730574263269432053946289073881834472341432652336573732390544742357082263612741104371879973124160598142785910121969507796438384743018843963345794318428283974169632755324174654170786153674710881910701101316510890589923756160132894312495931571814458298758727202669776609999026794155783663013540543763441898094164701288730358679999507203622399547649322322167530946831814630248985970101146489633502672328922032352287833093554410257098056826290222583323352700970277999958227698986158974717965337576005325971852700425441867274829785592707170666484791904403298489657767656023549867066222812509962835719231226450333175679527475462557226344390367844870707247301648477841012441947195686937355010022126812583985776163452016671032163465187318356451732240020425322267031346145974659327218245527525679662855864872805256611166891074343819869167935764329441277400115678996031845553769915134383031926106203648641421359410323235235012285931200551371016350297233933497082030731124840396433036652224270488977936390779204695237707145810623822536409190932243660540393839149103540699770028476273878136434317522247934744942845116257433339775704308584608217027006684754687329138831609902717366356716414516904681373104520432484577019306252359251874263672856480665146823991806778689586889965412154565221640059888598163887628528838150015518629605543649338075410109148181566497257540688987757072614133245463855950071878763186298600329083327734519543475825004618709204715820492156838786241510900356786439436670194028383356330571074735103809460188068783850426672520882880946336248612832592161297575028501341866462322219892023643387377191681892894092820165298768803437016932168767201435022786987839039687394164869157486847895169873490119506445508824672831510421556445523182792208392549280429392014758449447900601077273464338556783174153242252227196111895578983016513037464527948823252515365601574051393083616756494451368043497904351679966910885714633498459416987648842702986009419162618886652936255759317898423854291325666673276547825819361120066520348356088413148427145860022286694884290305044099259700097359829094498865793331145233411981583653769710764588972923447039226944021726489241648795924133309416530693069491755235717858272765743487210588316377137979486708147210313967737373364886833755926991375462492823545112889961187544765101143726380227183409859511043365807928597168053339154176394503686982224402868045728333725433486549725983781016838640210395259390712354673951706620409549406491413868896234759569676352357761953651452461279864942781477278347666890883029628342886635675916573761396747997071948162241138920163735077439569199507889017458132984954439788427900900050232162559312992939956939692232068530865821268774262853855191228378917587069887953041218558079183131054788090217772511250855534645553069560114981698510149657803359098937703012959718662008531811580028083325005967124187986274213412573581196814401731581231044999775250486759852398821671654410499439847404711061896326180907877156242185946576579872597412404023861425782464908735665883422647600314749959595838046938078183638695804801361104088036138938212791352113346007607779296570964845922208416800764896816291761748458292265651579948807708799246185972608295935255510115138573868877961373376317133349551024649917281392371139508231556077196815551219791302000307297237311924007262537001767056582771236236207760752069579431896456827512253936578004140830816907535868780447043237486323901961759851452506841095066198428420405437029166078231889697975300920894042682954852764867429213556151526555034613882536581577053597767670466105452513631911175212451449419760980732483363390094861535574590155301925836264812823995401106506538881046252568154489305443935546233210835671386857538372776166684231150652607164163235171324255489268154065477907624225247834095151265317566283127357675118786900430586212901171517324216246616724945757936482364459375111273214722478321358609963086668126155899217259074624810465534328407377457555308313626630593130480916335362393215296003567628923374046268174561374418486094411882683144947344257762910138707217577791989826081455180965868458253618790175953974089438761277806282238550337690380857587452685522366745085985306789392806242967789673691570388120673463795030084361232010519178411822390097486253286688930298688206405043490077583413750975926654403165508407664438472332206184756745244753987121161260373200254194778024057897721150512602665632996082855968541237242101173975508352497419186446546010862811535674678314149110255336798701631704244932988876922440856931117036488630159972228365324853915248938161515945172801085728520347869779332016666426340998391275614406522531803721118593390827955508253665349771275143506382555784993397319579196163201157292852624339437176084353960522824679608344790535706722397805004678544571980538810793319732738893610626410300881055026202251235944047011726947326410418498359331979226668058109882727019176931981388330966055633514952910029936390545610938080658263942526057614864907877422140343122925166205834508353328960938750631210285003112696819159093839812764126738784564335998941842923395906200878944776956426191822994299132999754890420479942032674503302307081720779538705061963098087219845884246090833779104338178749346368233616547195739305089325837042353044283306412484196646029087476777593377031408769042149245350961186875463280677060302584811846599993322973320991888677130866675818764304981595108905106109096771336756948030570498661738600974482542995324325077464013213396375500929128108398093160253744931479348717609255791460166637204236325379913451386175854508205806393781210148882450159446744408834867388145164974400245907510177000791135525508238100584961920962665499171516857994942583032106759554165609962642504274038416551236986937938176458362251898405296766052471056289361520348740327455209889534476847251661820893690515391117985870680196025598623211295336978346839085605403782011815789119953225513778717639114612594323378267110114468285836805307085214083833042661470376707840524527230793758760678691275707504646754776725606149142188096179705211597410932830629264686006697461433639104890122488821568597796200147197771556287929036127832995843480696773633326819893330638032501689614966894882535668112571915139564608377163234027096227742276328835498388685228505440488648318303741172921567007453700029454402440873771422754427435097533546889901762217218948025755518306731663752506924263733061554230893464608064140425603587130543535569902453019480338081650560382794975476257677108108975976620614399792167692065400617490299222279431847131368150193853753200223453618577644446616960474543022656477913490985762732644766358304588985901584428320367357050236374802290300890126819701684935845305420102318496066979297106181205425351867208895083192535150576576912761130524398164078391980979992945003839714831062411402145864585087423553637242435920323938718206107794787021255121345927966563619445079684183959660909039690846942867530724874993997990815168636938037293071796994461836241477712977847542626796793863465002679298370480209281303201557760715369899308181126838725644538426913357128497356973971838390112800632541582648915468653381391371706479095315295530821412554709886165181655853633651275504206244147585037082525525724688343862763695162197178588863893566135884788798114483740504181374355427705535940089636291693403765197939407547296340403475707713692196151354101796601296900102168787407777798959803343136345277286523943190623550292772463856588276011717036967694094166154621399840775843658058696665163707975974036708211040636317721663738914717364281556748086429503025418272813413404304686657413669628402792047163445682104534384802914177034901147917064218463642986102195492994171124267425119682221588373055429527173704762305717735458751486879346440889392947978460455401991716576873823437389392729238906711350941273381427769250033081949822141696188029677658747807343691778640317662531041373134341372981100244987671935887600669462731678364124094915947253633551721090090052923181930209098008096559707688718639943868140649854901473094796998396505894044355588226201863423056878577822869809267884198899592849049947906668998204043556932505249070921573415528220952665925677187900036079751285762041155267993068570721141247763983828034289424619759353019719892851408585190288740572490593638796247123321580232942863931712875501053026229071825385622102243244096060714766978962899175754028264326155688981327312282168696498980038198081519338180920105929815100239108681682087579903221246350806148489460962660024821622100205585267018108610645324499036194038507876474033255133721577212604471587862811506716855095608656448428463145055287409561926790214648055960777748172195512432898139614577910217475970981770017021315684136318053359700203674983626851367961313789577013068724154722680647070598337093384896819546023126895180663830955876170110217652231401749026419714063827624614719861206055914073562103452494215650259937132148717874956792258168991220003972504952994180068678336120324393837498297256629859381280208785133821019032873531913166689633801643925825688820316088999834719754186668055053617732336327191360673190538493260515762103265765785155997953270688707109290993206259222290288044494182266839968986784766735119031127588719394956246892807022113132941817107750154207883276506971356823528319624802647475757219071687994045708245198498636425105171035654794459788231348468183586522589761263154602601373142308685652038772365143406878842210415807429866837894986558344357181968815133359130686508394640599016289106914517522513198250824233857625153807892183539660355938512797092764897086440308688151858078525762734241368740904764534821959280128710847422537610701595295162196462352554655568066341998009780860399672457500190815791887173734489132282832420449315730293164370943659580523575392646863516107101421010739319525691637689201601187574735188393840726937682807151890019561259757415205657853199669302978178255804650110656869179755511576117700986101718378235670835427821978518551853372720112691644528088012156127145325993809822914876490878433002517055248037610151025388844523055874671646625189165708439600162673381707546438703210199832938824463562462524928721494782207707684427117850694584291562051731652313086124871242323641128142766353759784041085671325226094311350857019895739615680253450387698934991547228558933529347643252841530091789140858764729427328284310928235432756962906897723794438495772120361628803487642438459228132074761060001074125530542843963178354761796949858264688037056370073779663540062690153049786940177461056700792438531441570825720346592858773294433798644433977085128241923808195639760058912195511713648468527717553078463748305365691816664869579968702521993152814788572871160264121115775370248357257505828132308865515983224653159222992509308931671976177046921573247110715846442803066433693990562640317940172408459051960687779163568139829116748294844186570375089687606711790774751195385035551672397403678713402113558345995957827655435972049237466956778237215812138813158805005068108079366887783799712688937461227846154588242794974899058966293422638877119009760077020031475772836683754838289069706166023316630262237322975184511677214515903753227845467923404561541947966728444048822864347841021040337224686769401135186036934987410347465585816305978580341909160827525678264114142665881478896786695790622947003634896976562977223980684967531580222445461010472008930698396048238412874086654443166026153924712791414235455801574741271146088974120139517088708992158888562173275478867036891688502308957085503157891586014481011674980262020649504188195913333452764647355840200697406764103105128454100352719076412788491857384420079012953264775158502847468288437570549343142287991176772358887683939469423163251551631505314109741849411054102853743954392790010466961954343650568033158610308577309114387694606496480797147785734669241772850551459488793401345321581687328988326038329906445531358976111116985636125158113226484133693475113165838112941031096644162566001834130621390543537148291918567991985556482861742472600884454409569499874882447286248789588612276438289335152633050010099838985054031554668692051442985903754848498803126276788073076616081352936245347617040929564644448810824784173026681548903500605786851639631478805652262477880883073782163382950186563214738249399238704316126507375112004219305194379346323805795568678198399744736751674299815410580360355079724998772348341744283762666066407742580612312836186230593267391844534433499779101685992461809699207069101490551690768544670279925737676956973471262908054154627858002381521083507426441610547553071330294329430912903541312951793299489952624318138506896212716678336443735348702451302095577909172035030828389020552738333622463619787618965789869530580911290132359066248323942572993239422878113818073513278313456176144362317574510041832414351332444805964099496746904409028805466384572347192939150448448156789477452272432150464214819880353211425892919538891688302974298559446875395596635633086960574146518133437286322053055256112334713192996774301371404630719589330016772260847712975314503107293000306696811984001962672267032391789091177871902223416140393015033462280719584645901153845191046259318082465402333517912898549769022700080534319429026953466505648358663438692094205454686400992594110682530418412884859627389580370675971966355315542519612267329995587821585099950953970518256987197000018574709460975610923397784657517260342639379166607098004934023936727240574750908907006247027852069994706544406760952805354340561791487169342521855019107080012402755331543391554655900424769250639681976429525108556661857510858814353608240285078069398995528549387991705164428106259945700985972900317818111118010213480456406762078314538922827548942134246169668763231345537522031052301825183122102105958029591553745096957630456084884477029671066447551397570274111744584777145818758567868598833292288766793910557236770056313456219712862494676268874902179459622254133916240790969504769218415954840766352606369928609636693212995375803263312675610168298626563047196817542586298344472123821972399058086798205652840072669600413472154435658556962319498159121262648224650070431989165985424880780204514586038082138805472297993254697114779285135187649434374111966935919233625217761036175304069388597402311829816853604757690777901734793047988797792357853757853421935936967759968664847205233737096112525413397430211357687536608629515678887645946329051412599634602152764766929587637029864552683398645110330902775864153205145315246965819106881489848582057389851004134042515379544566459246807137553508475282913858317764864942000447143128089009667238727886417018485669280493542708229741698237385277092995551765549328350587782474799187911863407136268320685679270063091313592219831446331404890123055382988258142523667618899655710148944073295845886772185423736787750920517720026764958553964277238313172529168512790431997640187383529560070792721864857742589834480866862372790743599858074862131409757287006587676380410446438421237136130264141133939252441924213717039818772674363836623044982138736263050588882851799799857423990520180063590138779880766284797644606469159761398610379150494560123582861154103322593314012205099565798133731904966638186962468005419432626331525334949624052309167708797522580779462965009536304976025114038448371463978959760149660465661220977832116842362748190202452499774504620466580683151867362970801287024548276065362789507440121899768793918734157513057954820626132140142180375030228826876739254591724429580589731050872860494791785850589717745307591880342661643404165349133988446058683838762343070173882059147841253731187184722635084425469504726493721893042509606812694053478280285630851485271321898227398731880441630629359192300422558608735206485032934161100253490935973242402244995150670842879133172549490639561922213878080367646112474630405929586003210932468617154851248145673714467685198395589409182115031145365046365324058555872730827846007300729653992500933320469518646017277397376444102666556947192782785096357284831801948413482050959566328240514046049282665119134073342802600464896206862262777341436202829800929213121344311938606399931148764543027731820729027857658976775567540111979058882488909726767232440841949556023489571691359803119622431745652482990324457360795819533948378399934822320079856764668132649964776762055595758845042706841142126773311113769824081793100643474862360238535847118034738247755513385740308902332413204746135677299429078422229873722341448077006549314150448166312102934476234940826855556416016905706986905285998500297961207621609411911332922882442422404065202010131066313273912743719661819640460012546596146822368815996087219019380409576136242223172994749308689021297952782014898122480795255501596593464238764756408615598811572800580927975448907510371045703113863915495368621077290035676629689174704142135889033487082456806702581026349844534324324988421231353714094117430972148722726458970239514247532692746037044516753092764854522432485576797204626824390297423594142254790015586611187450052642598968648539060582253152540490303635275368415495571550302221466045172038494635163270410434514607412785209539498954378894565631606680694870447305946058116224579741294193738172264505574918067159385950446214419276705676854168684767528796347512437114840943635783695126264983397068162616605109760330142874202853897174563369069078184356640079914529321110447913264959296970177654612686253553013159987896622836069094062366532816710852621397009854050282043665031548278447576538779284256665814902771784526824191926761042150406014957584970238355112646377074025025910738256379267210112161791632544359552662202393842653476414838784791598351977229252193929183485134479399938979357001983971240935104484340861129058019798935855509706700330705877649638044228196540459032649545336127737147660106137642702287184633506830713493399804159097615320758223529556454694912443480715747965348058696362289842463942630700320770849204986392905106280898884834794324878189108945087754206570181147295683550250539418053717734036237499151511797591253307004102887929732339641919870348107872717640786828276737335013969612011261002166299686922693560788970080372026241564160653793869710333531697694638558564978801195141589019047884766001623582113945220862341447598199834971220206277930750865787393019407738179392314204209972898501980544419595183693682274839971064015286691568046410576673218996154415685891558029787979665229139356843689047274902184938939383398275773739619035155214158841560428822141472989199381838126443956550661522929990336790280955853797421813424533064305511506047417233648390603771313997761525002353198651366730843348425191275629684819083077231822886326261629647814467052391515870950047850028973312195663611365929959922535447892879381339028781444870560735373454554059588847390379447782150750129822534097331037119952498961585090779090881448929292003453865438687521502875323991854737795694614467385083357183083515014866165661017387735546309487965968981320408398668124253904933461277475838177466570393884341306093181069379159728516337431302651753154501685438561127514634158625501063577593499921113915272066986124703888539136757714851587929911575691529659957600443956010463121041506402799375881244239033370898049222303300559685808058387491843116599815259568592817320031221337871012892444778766094477155152029196837989283414133355582449241940825904135194810383023632530226376640258968638530358597708920680884460841621135118802305275501137352166142403440874115283471790210767555276904773664960389716535519708763672296854703120309492059146491868682024590372544127141343597814351637142029372166856734588166826516900027966929865982066024266113416177987417423819109345403677897427808127286171579092827266611979702000938846597834865420114711472727212544776832527237719637776721486811478325937843504785449727771701487133762485454439699356462059704128922763030704423239374804557188531720352023856886982930826578425868427463920557125412369860890266823641155654610332339259561476995304698717791094835693950995304278433169072932700883073890466993121517067164498988796401354050184747022114027871476631130093757832243175315442718381525673125324726051338648025863041534442010247695685006559569273007134008210651597774456197203077344885259335718383493356235891865258111767020556995322570781886404568094402751082869023149295360793358446517861840881799538982937943567185452287642478777019669806679794722487902969259079330887115856988757306049386854022437933560766722520267908669603491560128515922981480947443608586798968200152261223010545545525201540853420499886031460036921788036991434302653864665349304775755974752072586587299408625752753025431207248296440108508855539787232583762112652181638077592594710756575243434320521501271297726168130501026022592926922830642345785677164334484406762814909889203332671604189019913275525265084119556129313014391335532098348482205670242719861002086654329715199107443000060801835728579824802033350990179446442322282448258740389235896379166440008506417956067090296555247712177073426240498251930832153363847704897107031338768445266920212956775595848575416366688392624535329291428961036173791524457435735373505799985369821237869061058290488686092001755442377792558993824870121667630099093239335490431529683325149897634250088062030490197065293046070004075126320258213191366129982488061204433964635850230282565529751651540737912206686121005231773535271925349806209272728001986115354492177409380440684508586691036867567172982414646305936637224945357513996823816402058143845090946505536798552620237182757311654577506185964908092871475936493152147233201455021213567239375176060764258381363648307660774749996809440747804658528287480473463058990863680555936711172860113609295795489259924597398827280934438903238231757111427791662881861202463234500479827915872502784428802540584857984542290523131800460424271287875863060348804491315572685452959806160884681644922812897076088097205183779246174164832896881715980652803897377650596051955502839009410215526153498399419898881523901441004503356185435436125467234593442435309916360869220044845441825639300074996797633670451722504309889377470940588457829359960096824049127575764301863274688730955360350772959173119983662741585950927038585006747006766665802255970600090038086159936540176923807015210612736044215375154076445336452535234695025816722500254044579332165218043125110158935997123177773919134850535554516865517820676178011526198343321931562886022772283477705026412304389057858773846924586968563812035634417326092322361717966866379861872217106569978871974148788211522169379188246319666524789905612717562995959925994002162537750970460478388045109092489032391952293282364036270022295713020757641963822820476541969926904116277050973581929626429160389011938955746661777923212307504695045912374963971446544645968186994711278408103341396901722884304510018623517810027422529439538051273866451847142587685185173957200712142253319676834122561690864657266199352663676728235085880739948082641524618377369983310225343536268183505529148493007671247899444037844959239851314714472288712374785502940319316292344922484354526822231574694980715340033786875249467314949449510115312644175481283506789864713374803348839729929808391560808939007674723941071568451629276763086075210073343323788530785167196673259346811201450102871372908947811237853691529049114841269189073826773422005470961646172576326886933625623323435185873555642127870003934438985757984111310198252635848283647345959359435356582107547448852271808201725566025739457376339720710410312279640539185974245000861069045318821255360933955672069915182457172343138725999189253828011257300986282222638197452353966621898377667948304045325505496909097495354261020834856665068729850960094244630179786606828990756491033901042805908906775428216185525302638127339326739202083597618386723954012381431829758452567375590622662339937765462067810990251758583591676692673104363467243927939122950919497574440658166033892419764301236025459212167082413857428745972558563876186827960672956581578467147499102960936136260111189945257109387325891562809433947021016586292536051059526136231612302247265296864867412200493782895824035547393106418027690687301313824054748946735176108762405072342057663953513027969028834614976975317211794189094186784484389457100687854688287351060814645285512316200496676345314047779297556411259083559687588052680321887630505634071898410678838588957233403594704910681435119944596224115747262541463972628037870769810894709588316514130476006656055476071976397037806479276920915032537276810105948068168605116391986124712006453639616113088641098747173294272241997441922956683287954401524705033087099342305374777458780814407516259695364124412454080764024226006325647400991991161431045903882784998462907305699636177605572016612366850546604643815935854565479734026284195435868542399550654484541858476981198345513520941733975158800890904225991401345317356213397284646808373799692660170401055513729172890600858446138216451152870853376026931067801056051051006933348190010593660451809467777687770389213023393689829055477339211200052809510109519643978343414848271575594871349556479585234190355044704775709880848396264315464377161898196347902081726714203492186679479896468298111427361130784488109047379634851718220325162736640770871525897178635101433867936918917049304309636253658916110869424090335156458433131153064751053995898381558058144294005789182181362033709439201979326310408152954099732602325355408739515241877592448829911129416306735093034224905098997689677080074599087612942161333160201884669723857432586086331399093209283401713601007959221033085835746991711717636020033153703845561352511159789466964199136440197048606245470079142093311568047315651649590192061179285334103572589207947556443817554570081825755903284629844824553193443092633874884380537016741584635152762733508713695781171018525017590789657777478292079312965431252123024096395088562695781938915411548170615751834795781407811410767997466736316007865633839604718214796538637411435994932126556411715382604153742035179897128843552629487330084519865239775737291503243038604782509245430849785939830341086710858982831290534203347504410254882354006218700942075862783312199663970413341719389424752319956194488682095056711111821217210715724048707087823961070464924600265624010255998004502467734545335033437436588683422163440837384765574918765122436517552318029633509812207224813289403277187533789456947377850701969423199529439220431443289089146845239286791761535445320773646884865640237122102153606680027698008106521882548385840666074726387838788166080073136389313572012673265053559354454801282024074777050092435988164779275188595849680068132019835814839676681852710527839665721388543536978179223149413779220596363527642310993364447757305436718571061504274802016171805849182539215355012781425110229879591043036520940364338679910316592562285692749718008663571941856348448667610003344059271081479904755182813712882572953876616425278923078477722697881935979480526967791789571798099264848662647584949052092700177277119261529704746680777337338334235241669585961725631670284611800627925850682767915933686130015934112029688471761670651200229544276367387181274925214812844577519905878958307914456995962800768538109121397310759376009052519603682117566343150375271891376375970327171364049944498376412826111583321881603646130540006113987516846970361619358702517458530489324405686830315261649073280115196796671804561220714345785894207448225626646064826808344282729046277813014319273617177284234125776072077656367954147207977044521077859090032485526542616420347966208970877759189919157958228813340223069844273775448705120748034942246771314294543394928173905901566564382914778190152077175966342923499790629429626591775108983280776328411209496318145175348306494273819911780637560553329883882511644905672377004912419475592676547188987006921303402462732148004383035608515175769177405874295692899052866524238541921950417576634541148611131213913602116767722564577407832634488473228323756660227162877883872388391429186237464656395946052937424242460658711923018575024922713088135524224191171745680144086353641886680322422884021829362407564540628472018199280756195731122325666741449987557065716658231988847838069016148000413913706388062682527554188411855059406155002006083364255078048915830385504445214815832571519045248712526023700211710249001291663518493822449039523304209135325090635626353659955825564302548788628886376686389711740434425604376277226390091023074270141751923705052371015766125877815469500351816138902947732237039825697619574474221359743930937932348531897010756953419853920516726509213922522319973472691371286996400839899305673714727875903079560204225377861479854671056141906780838993230411380377705625386531420269272100259617271891910762747834960942073829502270022620068534234729966692184864195802273441203530242435832037328178517731019091471942471154861714409778674428708953123620703929885055905528374347627244225190846025541836331796102159342874009863737818390818270825852741461356564244790502416994064256389793557350122126338336665612053696132628250247545652739811599444803933443493691052957054610499713684075767724292927447797012184345356106063265131056799670095186594529875608133570273228268924764958586253848991828141132800789709065729874043166649851001417576049985563865380809000025753666348610865111399924955481715384362061262231787602136699057268221315320398887795412919905853072895854879462324223794133504803076701140361263077039935309053543091127221455873526307518386900916694604948613376911886287345479532617100216304681202352555311415297124376108393313700261474598246323376458513672918153504235408814504237221621487521831090090772762146376174890866768777832808209510651478987379819101774798107276351402763975669244598738433542014854314960290023194887629671250747847614662089054234841942405936860954720483296899120694249911662353398886773324390239734334994381545832302041817657587623757733365000359761238863353348817914793311211176680565490157164634924457859889450945387208487700069262839013614218714661449101585822537184855469969183686101643225091580160713332071898889409043011817196579764654228138966203058195683980209556048132746777849278539260842240505677421895536489894467394560470646845806985229003488680297918644729329497580011434574057108577686923796684272552345460767165221461661079213541335761108788652374060005461231395479979339146281920153625556534447987651115027500100810383637225868052197008641022795484570861055336094227063491917487645160053935117473730510501751141348045169268669528682917983222671569530844298054570407707340807396424779398480344574443951553016849608568201030164194025934460934891173412470481740568143425855533390395227685656012771693950922479558319250480209359465492473481370160866149297895975584679759387024012256864027458141683356241710711862099822523484577207388434138155650168392594992213373566528375797161568778474903479405391851073328603463217216958363544676770084018514495418459912571175425054258805469197368573246387925822846873515548038685935167400547741959422243178155069479315492207559529832874139497801725791141444107420004592537325995540298330658390839638747479971126029180136967313227273457756799426939712432943068615566453024783870346665325833844925954847483309070013592920049613969962942194938953668625083356031469536728235743583701015258985074573367006571983812536396320062668460600791010244204285134139822242987979261016557214312556010041985704592410991668044546707171421927739168534991764426341967278931891347692406377571957227579433949378989220424775369382320455442952132900868400913801691473876540563776398499830651334997372709931218795717099981405088584592355525148195589990772630179662322981729967806780397381989596842343732205675514126219532554000590754605608807117473202469308220813672184190323514965263716437622211669110152256907634369123702842581909693782754709692485931844967690186138548670214918672738113024240867752014234030828265220296202559249600509288254636141112103253029055037554343663834757208549897181602835420872332767921590133179184048039566272135172799560747526518921730249787018577742507198080271865816636694581602669075474369122787910045430886913613573556812472817874940611204428818213985809188494038841552095300421296754468003912209969824539440674090702684932180863399673368592305329268267837818434947022290471526821088272014902848745876416872139200392879531011203704999400518830039865401356947428876728918784410464077550333405972810380764034039277798798777396893124443912492064692909805456102017650254983725593115444677782043667206856709463130769607770602966486016135603882819298880409093139303469160603574198214883343982082206610284422159603305799132311499828040802053452096441037355702204393944834195745605856310901162600276305719791641510061258029982279861068622934461887105831180803470755409372529940978377489615655342073927705592378123272205509359770923671409225080224052433252365289516201043266372714885888506044049702667883411389767777071456586455014122403302239578319961180919360437103440103017203805581891053708916410730029140664688869477848955578897313910332630323308716261926872182098407123248977658235564051116291717955566094311696754931800152079076103361575217270396010433922702551053766287480979657699705149599956244772992618325063775521583524794707262560730474817391692858503307427521887036775772298872245674344339433215669590317338121644730255221701676059385178985376708956799498327067157335898192385196782309453922249855897948019267869940059527702044051050360167204680805225040155967308502875429165535646637490745212755113859400138710558620900474025437177581854264393772273552712896559850801623997783108973460077511034219626186903014077265971910564733095222281064107939189497096615797239361259063808325684319492557940108595277732661342822066046181699208640780894401817535526311678498773809894603630865597654639134267308938173889428056089409656752748120750422797897450709596578219779689675514626630633380361161108883371739929613111226674206050251112812814868265119042876042101141926307864112849339133891960245059891273155769855421208908093100050212891982129492422020260018651606614014418930311861020058401396433720567082940299885666683614328269202992253254407881472514915768752228919813738945155907560134987657398270720783531724470063164225922640134197495503843950439495827842961102789682248839073022800289448101910389348137251800073728167389979143913931238758864483111473754944931078820595330310770567490066965532351555579124566806577642505951370683159695160406809867149641518803927220375340050799375041791390366743256004261495817932608117461070626473061159370625379334301980264324353255592148013523649269920347305728613000828140264573415325593666366411998079584017778974543240945921023413548538778247028204252111512080503248017743561917037652042407729120004892469070880839032943885759355107130672574288221163156870101732434457738030970600671671908442693445345800128478066082873086364942138757377796458942062362668964591253964069324496639304621318796830831339927419696146584904612984571808318391384972966499495567445327350833206924600757275392416489226643649131727375682151921108528668891409198152390652699448422653039494989766166807200778510073632057210959437584046592945698312736753208930951760631369031242672318254397245778734395235952582164941587940924035545034763403174290425228180058629860502253732064388659737358859871334567684345927842360794560555232592759376521551502930128269039754662068668846722471226910450314074512902991215829915194398548892363273875933268466053784531981461596591188103713592395030238966523119295542078601950132061818993762347821102009622481138431685836385979986513176999868570992409814847018190652777498253598661595708552471697336465938546433740030943603990546197014658785872993146288682692797451314146570656573142697095145732196032599947125689686684905133237955266611009440586363125103583872750669848535297616280081993309524778797280930702427381221261627423932849546249616371024656853669168601623440919711304967320164557775376604870886077835096451728806191107856905560723232331795296330267071786501151402919191291142253451459146241981600433051200834874480797126686426634259478942994043201016201143708914346101884296492468386188898498183527231242846792583782911744792108940522383832898892948042880472362661477741695514194415538611495227100728511661427856263329829093569950464997989276200517442283683280727789243053290686722133239773086951635072647619414295081910981390124001299545975267650461686225853163021172158761276793297666685816700679606915362710913848610948960516451718715693611627566049114385581523705908499875453228391273425164464741566314043293106858396243044511681097455436058830344540635124699471675878867733947982638395915329183813294855477787617072766509749734975632735555626670093172400458723263254388020606252913517501233557060579130142262098760095011807722946472707394563455767307581745935839099275933277408270019934034765512777675051448466622876726584777165958754799350988459262896936541588287961578056826726964995421080302432192959558743781633682464172491083912481270592452950577129868378519268970690691389720650187595585930869513792518559471429194958060835980600423579505330434689341473522676152830002898738650059348373227321533950152512025040149287533326105050001662350696356075102673595444528123605675689968691403691232079017763407975317401630084464823799553523301834140051332946859366584706014397104651947211809164971531747101960591354726126511953025436079461787093972507309797135946959327283338440952122074785184968685438560887049877795735393512573994071061273752059424353300706996591561325602307243478979273322099283272268315269821641904404192312548580411183166957325092643167566878911376938854585916800725837723007135838243233163034640381439968692284817955629786604188172436707605077129061655710071241274424102873167574716040553866383636999096858975381607818624754871831778960284489291612595667067872843276881041338225329012319742825963176728040043049169898014824917482227796409926494613528960915801329187444386718194919404286857246143678243894988059845315061172077592376957177973480907472097051150136226498662456970972814722797264553422039724344430183938960880488437125287352773276712201379231929484123921074180115712042307009631243304502385145409634310274223170373601696381702793127013975052225174018816467966508282370001469633163194976998890285096944428519569802417486485135343444205158024519357586991452956311140128474905463173649523005069015190247066880697052547228987790688024446093172124299565861077943152949790421115646425578734150576363365339828455689460600740571193885849493002562887867601068238873212189666114120267683436852046397619174744200428944125985255855086673472314010585053149262500540174007379596967176990770421435210228841078029737983954143153355849211733562358596318746980626866329815632640105396470940938665197320742271257474246888774190247295988131885417134976500668282371405927954043016985115282421610005299884991562496425422845373422077667348076417090361175029599466835728691729307702166561815592659451479255410322286426594554754831460462685995616434670201856119335272061822215941730721487200546657396035850022135257292892400092056776988946087126943170110175199776283010969973256970184895142121567995211726409131034680571887997574915416656105252918756317057723780866904703939167736415602608476721234866336630283397047179950180782678449840876606237270951752756034307508475456292820926229420981056330094273935512276110850711412776454564618352031046708367472620366760166099700383559233486958979651018366602289885289035109936683328396451950038121033565358914686970241436356757049316887313148157354090620073749292971787000233067756220776683914555705479490168074688067018070662773711545084387367309774615012710607888045823719494698082702423712166196515805741264917854232401768557805949196525850413615735821580039011195191363812474568156511967353766908847602320980273380489471506167819447523452171865559045750064927411956419131109602325922496947600360600040222108419204279170489159812110994833726505913222841160973792244021528936399086349054109689102775622305006487014513208433267609091352515795393932798209672908847829931450647238302822612207169741155398443132872638988528014772358318551025851913183470054069893649444053483677310280714901083785459285683536847851358687236013590399530997345099238728726321635037493768123295375508032076997367467098146440455514135484383942841735948011406736372913193177180883141880290531886351444979742018453653441568417364656486217814113744494240169893188262764242288945738044441042586096185930218149918117794255788923915499980231930649408644223779232921595973214931669933546185353743841161037631667523077754602525919534856900576789134687400072550063156856186938428306898416466920602825271777381302903246795115503249650611845478619659743900994454784255755359161379737226916698760085210082637135531268802473486462196631022382024373085488914305394447126010980163781789953468673705454513558173772364011212628187078115882047672485961153946326771920268929844454556397124717000057322537677982422961261435270122583898345042701524340523471783810428467493460855633920904048811883439070108241720136113439378938047814633260558867823997042674240134028314951532428331541303168523296911747761285089043566830512519817510340369019489275693382019565169518516302679890268041788327692859400715324721497721111304417432833406089896479939042554065733378154294865377013349412922644821557835027298707781503564524159798236642582793403193567328657906909049418616460982597106014092698826726823446889948558943579602615930167442123739778479923918258886802890214631650516544147248469213183652980862958199314658887200788127308084716227890780597987944539759598281879784262685379718232391410187358716760005347782092049710645266119473384200278879125196389742351986699120914034612763438969058533488341733526814666810386397365773207497978274347427804885283096518474496758319976033168616033293014208991416666276482664132198464384635583098382558219381810538001902634131717922010622451366488610691744869408159914887787130981488605126076515392820773097552426517082145232019234809568688016986477230318227466261455721948668889350063238844486310975365996999589791395282011966653245626781200583113040062337434414771139892616643192597342034973341709156040519855059528364911989260524796941180134866037367897353268567357100856321570262699849932924254623746666385852151469551401730728442578417087240981494953616175018904948869687664584434742056023304235335424330651129061560174114176558440366575339402350079498080276307359655503845294824145095313857849487454707695842697117547753040886174706251284942911253362789838156510809536659128738535329975017073835265224144217279522899409942825058063104298371000839923152997646979248338784650677970023861568243828229095161371975032792502175250799671462106834350455848606572616345356279085303592528793978124282055763419483938276985655562104408302923148578882773939077344174307273979884911759051133112177277228386522244919766899774814369166495094496065095153092295361134112934630065602611472475224205856269822351539168757042497264584074287291412968424019977105344471453660187382903186082140232781308865680249004044364911523538001861764642857373250956588837544866132333655759215445900602889946292353862129760458014803413477412459851330269363217525827115568363188504178478418269573970813090346528753917921291624357955628156679869929262172130526831678721442943557399072024930462183859215235465545794676386441926083447788997569292568433453692986683822911230848750368279473139645964839707052744667928987857389449445878723699655318368371095886392623859963456445294284871705833187671506672062651493477456023905700928976082705180876800196100111622610750579612502542574570363333868360307518126507734148548148722687291880021693622145988846527066852137967325075680024504803076509941618908649455459346575617714768882939567223685502892882217301885234183978971316507808073962370339694328643891366242329738206720163145969999654615003876480251539474030026534759672476132914895842369768628470687352129692657107347949794356348242731916665383969887979145020927567703835723658730399778323710365096908952804515944395209537581300548102957684796531896588112499161094460190031779520163301877986343064792006205955784201979909160552811210567686623424470447582726714454343697832947444285063012922235099921667499432176423507332167464291692807172577407168626629266380625206957273429374670171457928261413414256680398350406177615125170370822492986102204155755269329082828026454567392142827633499011997323793121738490674496364319983558010730436236565010082641787498837893317718494810650440307998542446480421896704756363235000197724130859483406059919027903181370125115332573719620084255672345079185360814543883536775876095084046867137015728247408310637326566412113315258852942569098806068702904327191516354939370230863647875885445484672927230438224346757346520286824083935642835674333824431133006094249591177093373799326717037075637291786412684318248905370724749495324382891234491619523453224201418654900026562718735380044166652407040398955523788924999948837623097155886752847797085108848271856150589763868961212488161905605501033230005918048607149851006382431315014724119092819414900049069408293047832548340313369945642864486392096298686464381326702947703163396019956680817536822439473609877671314542951602937189719956864870461302711446245181562617873575219369724790479404422513577868378621436966469544222743285116560463085845124060582705194864808843044503553691692201850240229761493186667891505092055157921177747147854591157565500308116893463008853948373907294224043072364028963393081680696576116349908200448070586611496489760945547884346065706748700025302453969028116328440533750491699503949917539696808182613554761722513115630308681361968453417766034504112790325249881196525434015416077662245267944462073086770756022621517164174792877989836327601659626188849532691797126724017709424318235328791150975234578434374546632348451727053124106319053250931997542371598098782848184027774533103480702090576249426647141513062731653647942110964864003439172800606872788349555993449256015666970223114605575834142363808670427947321409008760709963814433329920181924939813341017108159875034811103144825967717056406537619619369343796620279534248511073780332250915954310587288938757069825226329845904603553393160089140432185847488425907228518801185310749908813540250883906828144397744670236883530875754141034127230413629140463282854013207247603005910824330638210979016436652399004108034097691160798539897709118589701915181508150314278491651316612769452403247652147426067935366492639414778480382733311358609668559762097214694436373816272977587954687232945099663094306180459831994911456564587983178499303294067955838816990290690445058383531026108615984345652334732932485914143090345777422837962810991679810576907480796298001223303162415301266122369192638820389275575316801233341693942278305739777561398496360590394621749404432732078372225497697735104878316542602218100280730387767093243455708109324912625094011507782602905128464032147565735363891756770628026337012961933056842128447857090554911209743184660111856983652936355052607346380963414389812565768617389085317987239969838329498109423967228158976234683153102961943066024018043608160672719820389701030055281657296189158340827022538167742712630397389110838924707056944394583066137097597354844666163039227413780883679348521356872421774444812416498996078769186289168519431332294902493378063981722365006409026461896312970316594500842415955388924046283069076518427244962270137409160732675387486204479968331099312339758095275043846811070181012378696686156734331517520648701955049357685598939441330411193725460924455120508618694073231974060222667211203272700605057332092524759577449865977497059523545541881769579362509105118396594025295328345264688090579334929435960700545386788268142008877413399723549188460092345373566128644113221964081882355345267187494549916988641181760980821310181137224680107379550611340011624483046186941636954256709799150544994199367601826101657326184291867858903220940372853148087765296491366207526964002079027575952717907339142401021017650121621767724906040174151386887677080867253471425381286318715172752955118027438583726818731917514579467507334871086763388096211792690117508467371027668514824176306252681099251226552574189097045768829868343468291098459092980578595801727550160435089665975459825889583929722302582112651825700664705118567395360290385025122641991367394265986117061268573267807028791797700015755627657642081795114035856658281536373775815018984837266274961252475430165823938475581070895353316942320717500572665947484533738771535701794756238785099542921807830884364044272493897187354829479334118244235773061107008688502085988637278031070722081578869748541708421378090055990130581233958417815080404425209414277231065274428167334492133700494100210938197806658220492343920328883924268726335665942734044585010621685180532041081870387283627628426818196298659797386421966833036365908878398159571583912166251078175284176277148941172872862905595649635321487533789342536511339329242543307648284084733613247513137402460717968099492705374688633166949646916030327894580725313972095640571919544241196673127960219807893185818269576427477412274648841868317249336505565312436184475428718659969371872141916563733963525732819250614620780345959130161674922570669425582571372862439110738759985742560949727682911792148553010346021829835440976461951955343381981875821508781451683112645937391199872907864201448954204796075381494058533500972701484993709550234760779600109635867246422832279282456956152411375973400778213935724019724531416989141478470617531484383397286640438290199981929909944418548159885428921735595671351866215865823032659888880433694184718981541311304372924567594761212220557430125477208398784856375404170459412739882320349366972402049512310286622125839210988676204431214472205845359796614034962299694349808097550879354449770690926902094432881974986433170042804171133475279650227229624405329184437858588692735265162898003190376509958834866291222023165423952011397863180289091501865299041982891469566233470438824554439859779628163549147726408751498987698902354046996547892858205608062762257678088439389576828315536932617320562571252997226165072412492871400123665399291358751415761666841695421936699014226533274548013641282311957963665707539817997079795097315281739586966040939983880378741025683699614389244772137702567793995040389116162680445710423144133938500789675904078979198087333248616109755965412249124444325205414220449974708754992594917862459126651864817955223216589461130693403331192382173067362661827492932781969089060314538079132031894443961184472082781253436223788973214299621831242631143193529888609356878768876230347485496204914389903534812821151270584727163616113996390181974625776582794919734527884493130450798286472181775142423212225784109368685239017440979566294785677504984593809499749884199570700811489283665058502210162942906253327697697305557522219085197894306731614065717469009722393475079068929643940383290319139970244960750661761442208396852447597155678361152408300125121181182865689818108357324843669724889614235762809131685688016505702387747883268691175718455729277284782606207121516236732025917174507787244340267095734344733261314036654039838504356308546520718153057750980372522212613309386950642055429630924829667053861973021244398231964407762965130431844219269035327580268032991016585013574812643483722477095127318924044939359351019377733471519508989814676959665726172361980787898162768355163222116402212097526113390418442815363362300528433105155339057206808460517162068065859595006440397840732802568175444129914262571861491742873284478102312806539359453484254072113981332437293301288397249975441560547242099742555767281777459473144116611134691735134326846383763489177330310876127784289658000016297156815548383852180351931061190570984204559617679984872456937462955258135720738938441695198082023742420295318241398210925558701933742739240767691494172606667270044468026158528891490224984985003927688347741087679815444694641950060463815241819878672087758476738367764281421887851900367463607005680938151735646083001501867257643479864880032132591493252946303660503999741212952743557968244071214523767680690808911474029295040795051200210921943889140478684762764674881779091867767023929677158482742213911124955374982912545804597718497594111927145745991956432107272806729516967559293818544939989468262219107796569558483018314551115306369566839536820771102853342368525464007058733801070615559449820283318142764312392045028258431070595383003423332677775528447517382718783961478612795473277246788763991526624631064183664877280815532489445940079911956612417047144455236913264168637498847338641008213122549767220408546498536452745873328104421292993183897878289009944957656847530594462156514557081011607615704102925565208718874415774679419736820124021318465653355579122541106876344849482506540259872207117920471673104091969056871984215164612661747551740764341654714158081382736131573178303576646270621568917407128315502697464193282847051535681474719858859927875500654794470103963734928957397035368641003905948625575417521243963355886096414243672701280617714912794826753035942587728503840978261801455831716332895967221815996060684036664380154040463317824517580060775584527051936268310772003684470783286587069088928747932411710119489811116929228743445841399592781433219117115559726510909157861692453864564288375425996120462235973417691333303944029949815743377851530693629940710019619631027354794607822761222016456792897783633058258409128677887978928178985577812764415195934523150835570742313033976858421836399086197095007912417581844566920309752875439553372867638882001119062497191107911423981971197106000502482757526716876650665387519168990527572224835051800290433941903375600270447257045543828561268309173621356691523892040261410024524560300138453232272036927766144278719011519374630316521820198027058458475505527740124026776530227090678105919357182838620463561140224103585958059498365800799681031965170357972346949174149124091940597344123354319946427327936185392459355431266559049783777039758400897732093724545293330979229528887055940720784911835678663436785585665268495119478503600495634228893352794539262766339046497708512057203672115825302033130886293405766328688430082338381061884136295645524780341023046395742395833841302965005239632253457814406604835701629204145889563936336575251183004463659404045162397191281731929280630301895890821975334356795965489334158051285393461047800796478123903735166113885504349112143277191982320270421852205967895329332113715204407605265862505349141945834563004234176304345500234594295312300886568021138721509709242085438038798116775322371881494122489885061080517842215712708104026643525777839541843345115793705782878413996684396554056291578667888651386291303433782040671626671748246529092002549086135320135839146551857878720808356656085366085016398637750635486691105684726054304168857304142343774071030492072260019165181671489468686941538705811533159756002745676197496182217811047289819444278024575820634991868589299327685064375787638982700916751302978865624950014581853623989340785106217898405852742248269314129140810455404417044880247283740279779143731650391702744139295074659637453819519253783498031014573033754719370085018322593732079607184953600691724015317418728781315481281918413550043749375926904070274058170627639899283018098356308142408616069367097238684854930065391792810170249451916810070545216945008178306783107948794685573717353820429567351899449352264958864178107204477083721455532900672411763288132833351213191362574470754486884758196540982030318191639139420269182027856562105005223133192310979947215839786515744997753540757961470869547759306904080402938112058728064856197991380124502918438141189818327312795001407615124309885887717303041589395947055120748874230981433787767657412497401279208337310862216861295170497780487062982705913343225416618060462103278197408062182922914263562947851545161707615553683316922876220477720929166747979299123484362289647878430967400089088161101721739583517138178824290375088313934485667729578073549925869700685715990512019834440757688103967359106904690343456118894347160906564807100129163551248268821666071473374921110078061304011504368923683904724387620523857048051928934730189177542949008392011596151513252473620909336735069954434485804162116834701386881494143690743664809077771917702801094127585105523520804759535099723920194677470538736235177080747962183312724207121959764312349545812464132944326508691094659803165216100265035282648340757646773880792309125080339275762403335756193316598966478993316963223495784290118384703609011609872895887550623160367221662869730386144306685382273257678636636304403121535152661861604845706689526533580544171419167192445359341071141110508770868075629749635923665396194714441987388079648423916909855072852429034337642632758261286238205288452710434121576727439099922790196743026956804573114908249927993023905895421251314556053768351688814923128929696446115037954272727008684944935404049245265954912446703516936987226754506596064612337178894599733880322797018467558438740253682552160954784558481886579122785256931785674892811103570589082038782959862295575480059030274494029821029654444511208184122165351422881741907119164265409676825321484561629295789269522437397852246910122743581458638746211582307256412640345223391600669012609083702850991107331675159893789258292119693273745314428968867245980570912957740105044514671198110814530725805635503529599855458886497012466636999793949611295572990023858844249514923835882510186403386554155916976925939425134085715883310057765834171649674593244932289919378712705091972102994987007630050886110330926064553763057537047687140527748658049981737148948978517095365925393073954643745337801339700158070400807929045213521211971314075843543976058210107329846293589742875920872378530405112070769199210573550785385198296227879062653307051696779568578273724981023823499838501444124877441732303847859715849209066420582493541061246577962490008529795883742407649710555760340034126920070282693433142478669636161986895031008149804697366649610245129374175779680622199445803155778248397532771796643366369907551409437263406506106289244417497810020190939294211378853085811718209936125000772440335334545330748799912020787336313840758902872693402430355896612684125564326521906902251890382768826531103754638795101244164886497588829906101643042761625609069970071080116802879483390144239473231762479962031088607719656246607358757542301148524172288348932896905961133120202340129907687309021992855722815768025992830559367340538913791035266227456777559759986711953172692174093426985567332050236566286469985097531374819930597729643969074306678027625960389986811125044854192851605390939186611635328440281078944935139831202026405281206431471194940944474920144914779082145076059527917038750078351715127353220456705672716530190529202862229284462350561949793338117338637822154996715110279552493149781459416908170758588004177210460964972536142399289516816316269730715986446969360876357892398868838234336490637369641526462044664897114603330567663854098504649673833948438135768322460852045891036160870004824136991493532357994562365093053342680124392467312848039993153230045866002318580909295326542119744552011359767769209853727544207271270232601924861153087326021409918898434082317451058467605338177153523593005460361544008207102539285534044869244879064016154529401029097312672633490635987839664579238907531258002877279555240780122227082022884669689973487575306490247133914134864600349873333669890270112275152030119292198656231346748013810867111026499980210189017163617759010848028052531227730702204407484864357538105310847018945721754259052798152974019238229380884133871252491435872950443735668942442825958853908361665509558815237994658214824912025414233469848835653931167109304789018863886641638718741157205940409211770900364699171150007788473659103701613967856988355395135400153562268640564603941176798688457838777796922904631910166117572803454075742740113371201990118805964032422130582784285490019363749633276556853657365746984091273351470090578148513631345240787736478349225266564571120857815274666865922487474376770118385794216430678743690655338310205843093185883875435815474585686900271262925334530839433881642042632144540247264639051393813324378041042143108143581039896127724712339395385591555882585473640914665532125888825637928198921676412396931993069636342026555536425575532548373395494495215385632075120610557947758322423385637624761909870911098911321304796472526601433298521893029434528470840419212302046831724796742853032599732308686617302205572942401582751637068772290880893234366032301027016320594867765976512395159957604634398533135027714882934987285023533684958055794810766354144185518632633788387169862680073123483303315346288086937804250181870716586845281727930428722987235348929788292107303856603967820720838337517536375569516621973605520196872356187426019877684343598846854929986013403874035193505620039116495742563547695239074665670702613705185743054587575858657001302531163156561007657759626217847544587177464529868347833239692433808736875434845692053427705854295016375877124841922987861846468267899858349762122434722633781530124386770188874871645899649665563792560991804194896360093490266573625380947031210295332594355546657938065190465176616890654286153536679728256531536171671951696926933485295527638037087345437396798155814827990983157891755055553468344140893656790311107921205939790750450021822007084642763383903861996895499229417232975350610507271067188407751834689147124995602388375684956452078449359286096175452358252202976783892963009645446918198414822880161119287212751817772002980669589040200068648114252107342051008654805278525761484561497916699868564520422236340114560379239475878821398734038217754445030466852796757168055999019943751133270115276459037772149422923273502087421869007998962134088176120265103263727602366986805935050380892566988371027488039295221292038892468848868063989711704407241330005025186239495326761997343015982275636554827082562487537563731601072390415982078169821857234464091572842052671418489350078090880956909904178001526845495031143440672299205470836895924021292782334966093268120142523512782418900250446604849074225714939052290700746872857439713037621389709244089724366168276812273485995813474702993708039162795822370999992529973256456958814867565174450537858681021218453507228422606797569000196907266938384820766382901494698658764116597777806950941521350986332594575612453017341407622775158579857053886266442680062356649358251666773575407395200620194220397907204810237528110812141622142536032835704202909467389509705245136003538613264489141697183153454066744683280323591136735184319838419767676816304640894149963682066329817667938409470832689158988206684535646702723659164978655863681870150130993821583660264326942133416618097798549669279049523170644474988080077352406987069403663613290720745288539538121901553575908848168251716437373325345279351222720099007177869735642374815538216358765416310423003392352606422867175228980466421142490320511964169722431865522568167982360090030563961959891802632061485711621900371179001903171850178180288477910101114985992981535851597500471840152128176919122003400577159701743455019639533630331942492996648947374645293312661347447814855625128206775970633823395160131261003869699323588678266197927748146595204771624195634807263727709808981505446924539755566215445211180791798227415353297222128131034652803080020522146897549416638304648943500128899557378159605616189356786439126747738173984582467858927832868671031757883008880364787510341806260244549975501390270457379852299222781921131347399118336435978482791988837992572418270144818155870421396473010157931378953690162181336580432250828278163375616567435277267173979171794534156899741106236047195631949864766369879640613930293450094127707113445462834357412397767399643424412136302178665831943224445539095118632683742700518962116885165735243681759288612284419075945338404742184799967845345898002615476499685019695186837110187809550983183317710852391507090407030384068382647862458219662099654101964465926524227782072753735955148563156390720261319950963842501425368810528639518751364704234285594814545335802517381862563420115164378526522788159205656011071261567769235852653237287831494924533700418167975293170315368422390593690067781753236464075205745610714955154068768144849607280457709217040758619509687978772142003253642405116267521571841277233432106581314043140181654566768996526142100517167813723240069903288647018677648569705267333823922174856925226115634714206328758218059604943233752957643013569812325270038451898096079720919270510591611165366920732543826407358685335133001687752428461398890074806636465842186657847947444839382388708656513443857120109084095892162192859560638494226269960562323670658515351926137943490141179070537110828535549096454813108411880968475806549651647424391762760904262865749064646267345141881712185347075406290716921864709869034922389184148356221540783532711337865722084940347753484439903917120126232790369622358689801943700248617341096391471469439246784928213726918017690168635034817462692805156499960334377876309669603392190856007838421151651510238978594681924270507330427911634094224660295916829943842342442659609411002590866983574267052422076964211205213677161346464569257059096090404238949137624477432539125642641106329042778691981003544621669904616595013695610274889403966159015843244879550743793073890739203181577989095843178166047550144139344100088138761680831742026711067853439307849409340170325726126574368492373054713280318063408866547358928614545692679305325947729993608791032057612525673974818048491820279321993365738795238541401943883863935046003147497723876731359331677576535530622590853662865665654100305726875158294266813420665899129039641635128517440819650460764824265683098408240119685117633650489766242406172921518335957149014521788625548334190192234260981403033111020724963666874454017276494979456338209253259403422934531700518510784212273263870597822489594417857688839613866297866349384187906013443003822110278766217988628887347254780348932516361990170453867201886633861110402983860473445473467137815770904301840924160833830364328783184828920931273753840079964372200279305826833043651339304543597446142500580375416002337145788658578353287193022090349154617870906005512075750797855599142519293644808970233182832506829909614334748035081759061426836752625998856876039945774256252136455955092434721583684657461690329449525305411439298100325899240003635782838733013641927226620567139707492638227268245709995602652654360274887514784122806733654721429523721285798855946850336605245965138817264379906322394555740796699886547569491976362245883531493818663745135573258696264690733384950966510226436565837890131346088667863981075706052161572675706742883242925349152962694231984923108730833962161549664044759642683720844430594368401037912434220756011416774127237626927621602663695787287054101182148092390441806598112856644061140722724074170630340013338008858573843382420845511844281586594949201465126700348700048351558977182998057989720021222838405715424744280534200999901375031396034583946739596236083847969774590095699193164322962534315580628881263803352992113163925352818583790846434675297655130256269603773262794666810793715838789215822935885068773361384697809719811070816527961839050643745114157806660352629682486294009988251456975578589257288491233291056977722612537373543736678566446441797446128562809532138530280994609805687405511687682558688562619360605118661416035885839452574931896378467732148734654659396231893672815385124481194175377112857689588944259279606477910639236879086632579716149982759780793771102797834883250384616531233584056362179652179193667574775199516392180456157255808287035743199475769707167771988325944322018392356782795913584417070529040627500357944380138060932383703530034746316138096110137059891191340547284462226292413080433849483837037020297894179514000292597680319709304165906743023639279931763987663444890416406143601771902833508768824895497160188961265103305531086136280340330448196874961859722045547888322714308356429402937566594138425329665407597731439337739551885889944459106956161616042847331668003521442264465022463000560308946489627990972985349756756263624370808486111702612189459548632357472827903093050374273446353463240309594682085131705664317016529972528461871947157632363458141004276605767151999118489406241410017119393293851679222552889376832626892304302710135961715563905722684542204902766939543486005244023632570739013682540327989272375031804331178590672692848192872008154630051585154225517498145148525253677316816208994273123425527218745070692409241600398841040836322252305228217148735058985284656509115954643593537458333995049540095826663135423607764147459465679106157051188124574583137554663118040702769188824127562416341081450493583313600030680434326452248234212626757737800862336042136361798900294840742362883079898745586314282238142321880759676589065364794846522773877310818256776854442031280803042764180160535803452268253265442795809358378816755973535609987746494049461375006830388615197772288948395546260229878341663026774469885990024785827981885278406002915823979805675916903978902328994267619597210455066921446740295499647820768514853996017148560389371280237401654798378413642840210002423193445705454717314026446706605710486059615345618310771095735819428867428296954305611114248621413679878641871706634554758233570068542321957658749749395289244602482777105259322671338532253509556128549410237247360176939964193416863509673962461222665466953390575880400255259209935828699722880436941480237419191011714341041423691164405907412422797190541271390979396327130403257751454279962507326387526779596413167462744467002980599371643186043422406037627780917178464427335728180293926732621711207731983014613120115305251651711577348019244017608743529919531537329444949874316654090548876083106544038256675009374109759666761959086953551496140220361718756267581455012557198165586871503223516879592823773321640627821094201464148336459597011696916694300513225758949920096694160374534701255581670250466591289929626950647327393638948830453773936481303739447619365472778112361558603450956643161078464041365877838425610583172986023187280436811823192200267694491529773113146344549484993745275262001852190376614442455410769993659695242758246151309458229635653105732571836732710381560914231916512128229411925019002376867716817198559867297926520129096060507491102548138718347598711647543660577644233225352315753447086064221491814242678315867559336297791741196341960770836234725746120477090717012356228362653607040969740203496029033975428882165605500538262970282133490992045461246254514401195204356096650935383493548997936905664436410984367671454096516691137568332381630694022710949617669411036448201675006033615838884810579470148003888126227288995887948490832241162183046825061862398314729032456136265868568701048816923540070131408530805264194460890146803524059011607267587360788128554380358110124760713327729114144698658289037224247862511670874925465659101053666789147475392388890941387383190375534966835312681685210076213512053919930989723720663889493565364124611718771994969934411118911177299826671459841932008361470880271196719258345662339353650513063555677118156460693205742896794792759843149630387083898068532926130400374733478287282713332866672922964748401544138879070420291063290381172879532002911084585338909063631483313316229911292386079971652195339076296222851311365667703830390695789944234160491152205955276500522275055714268877007768374820346344675817565606982010661773283950916773571857585351764737538676886882831350584550277613864096144499995857260052556411382817780505898180859358034549167534385643261093292866647820728548710815893057259909796169982324196360861228545755486454152080943363787200893676025301114155099296256103643520094017339498982635685117987981090638900141125643044074303850913879381469351955702649409684896385411382827332036508360150835016874935870931001754361080897662576178708538293339828247628775200812609770976553055797734274757276763494606330290129687480597395242453586580279675339347585943044427061453954443384594932031236607458832430132621350554141429575651112865888985075282686507652722415319566438789459618468603834119759642213627430930242526263177174194975490730762587840667653153290593282058114695647669078613383187277021140967796299500736612817775229297327996764847666123881870414999236752875258114609417632173536994025260133121872171189865499577613914984303416810956765332068503655934350366574730873723350604032076337752117319221226992663515182996511124499140438568045961890743306478817327952306462974166238054176819204699532009247927288049069578322687631232031912173200818400169543798691322322542635515186524122920754872454482756478907463643888441898457861581831804583107812782457539516969168117903413537993881463090069867470099737861609715348033544920196274177228478976110001829076471467756993632419009796267592181072138314812937191825955940590698443052516676003502159664831961562153144485617354737515632229318234810793285027397606261339929958158433801352364747167651556617130145126027530343143018306495516950956436449726861368172953164072028966816858988253936138216871631963812592971660397050876983254091741779687117212926611612918283540086178070605671770683201758913273722098614012707852731339225100577660815409322023656390933579591490977206219106591334722936384720473857909391180469769574678466040814199893148282417378352936463778117613691184047934366279967067303531766745013413169815072268691430192234645182437537406909230154507542471937625741090654853560248498232771995214733523857370502819789111564884810462201077130158289139431736375142110813754139856177356952736323516199749097684599032263988639047513019112049251097124362602317001982176848385891763431563286210342456088705089427526825653356129810965848313099953536437007393328492538233283559900585515624844952436058365668701605655852823706534027718226801254476247916346628540641103890350819194959137879407721664607056066370207421254253280015702125369621306095739937428227215678438365579540537239033814206366559933433725931447587616542866394286035713409302751995424397354703935855472007596453184450213382400768072438036102885057710711971859626051837478529178793047533381413027430648135297397782108536534286004563676564771711808331216174471136497736269134283323470989865021864553391080208660485728037877259719350356919676714891433131078149349079605646251050923543778522295510745629126758859715050398100648948007087267440156100768398304584224451149233301479489690273880894845422827284677859864020635990047434877561367229827858667134655521087267753893290186917864294151565370210918639281458142859842466316297922398423213933091137953030627114728114650748221390470044282431814917903636403542161824224415663157242738728492996142980159244406974025640610506576918199298855746453887982150387234262834550965267115719124210432279549463915347402524139244958421417466272830838105257137426005118650516852592336380260348745371295066413152650653231871577850203750501705230184577290694551688632825169953246932074031206841339557735361413797664983652481102906505000362395665942531196241281372392553444518241584463273060257857094722519441464152013167885909258590345562404138636061869588006474245264787949834639159881669841843635732314754966921142000061384316813236781937445833734302829115761283473352576332566701015064185884907646178393498104198534857646990069381429148065895023644371673735493347683523938369685100806092811330973324446233862687976139862681199550269478009934587656169382248194716460680254912406108039469438737613643413258857050026771684641207794173611558735065202971349618520838367447248866896406271459215124456166314211720225705840798917092832959680521525319113251137357046161375386511973072410058696113137526354967159778954116912586641582488319201084163503718793258816372474931064522947687032957090793707418036152502315682032163738476237170662947078844183760746502858563246115558267564960849413048059947335484372132751102666830227399821100362558273738685201840575196836428259825589922241604352340804887926759012870915879394626253966851564929912621650486818213023769611923148052297075766631707561927199288296020654503380453951886531824008801027697783168679952890988499880205159145504470830456206144124881405373476414401535978997236694120516115239529924645659410793965425325299363628493805534976490951019682321489753139853801920606525448325310233206090231667779678507217473959647892679874460238154065335609343823097470628816746356030248774841892811225745398398524343919082057279552075160862700924450992910529683149541704048611201610129962548413381129555110953005903320887149784821755821061435353067075208299647412754613620974582979256334386976326650561725571402871163155040983001822524773334544470914130891308816974329604030054233769674213986645300439262308477182654637897832759488200842941774914638577434746407003999264700753946867634776691713746850621738079842764880470585634803162796930263527595439901195259489005584344441634368577216800445821917185405257998357527891264461423672961430054834964484835079616852294837865385792098927876057571386814094427635722669502892609854970033825264967693410242474841062270021836830392933407265772894023128309471953050002051420282686635603808472702423333048245034458971784823479751449409315017238217572098300874513959464991439177071032569757074627496045423989502765638381177231670911145231440391293504850365697124398529884575526519298600323392642332902370779554313875041891123730012518319398823729098993669911087878425728313554999785807338434078044102809883646443620562862753436721278657515334292783709693327725736565658704863940689489994674059529931608666062182405289597948501699284752149274654561478387361731478195820134149149430723299611091374292039318962976494252980293618879693089527848295663540171793918919669133498073491310919223760043329179271963844488934258352041794849055843837425025773116915803368650490306170193765012666704753008207209413183970024027872145134585115014275551376807295436661640416756668591130065179421651892307620768728597011352199270664354777615674943400838844125879666222983715704880574151662472642709295373935706881830314762478329215042005563884776818211636610360512895288073891177987479129376097097571261306201123694319821329760300496692111763015908729743056462157170954886316613563649428031117461660853908007919711668556998945738612955721969712476369795328585613856259029793578426389281240751353293664427771671324664092629155131406446157949287953866977127367170452069862535854695186583558806475901880176231632072944125032111738014249948985414766752490467768595391590922514884452431084500602904887253129249375370986391247741078533908614672166306914624456857816169252460838434380779490085352928966893449959662651992504122895160304206143747716803139851343212410338565240626839539026064134771744736011399997824067163741498694687706540001311709006143233544221329462108264282680177542442551967813980971691009123871772057648605110498998451604369288131553411688265171530177940455547660959804531968000080455307940189585608229166965248289871706280655396934485426024157313410132068080383765880989514038855659859729626595322271418988717366470181781053785205738500341393790668066996638200174601406707665782625055243642292191062975087410424091423645411951009706986167708712503015560533742168087483523325203596969052944051100533913293615720158822538444182578540147831714662214285497867619273310897020618707522101674839939616548589432694378246945086034471505681468428630790531453573760225276961166162287642579095964161100068621278791697837922868027631494932458435393951871017938119916134711264282140785070582890896635743591505718303606626070101230786447543780366242465686433014508437024249197748126242627999770687633821187385061042430329161177027978773721468416244528515391372804950908265738198812246059735313526301187123389666727254570329049699153254322253448433688241029606265673939401156820946319796230043742813929161949433470957862877262451221450088865562540184838333410570865260152993744966567961589028524859224175746634985047097337435647934611494444216890772207556082417597373912040100592420021028516201898801893250580343463862463450648815050632258396943110636662510531340400552045973792854389788134408132255997161875338026091146713717457247027733375550442022175945065219888800980114186778782021106635754797968512456669606273833060582712752090951556311618887567203770220367087889472631871757495729780360167878011538173124022046764944419056051980507472421478056196008090451621856453502798837009984122694755091031698887308578497832529584150466121894341235449484472738890967237076416231461503840025243366827487910985564455992034658994002416510067919551347751817967695683157903060507604852291094506472543667179617517382741692411723942866647343635373926878816746345060381534187188841388972261989745546616872102647504846342715533427251649535902039215296169392082743197079131440538020951344937764478920647117631982365117017125996081594169968657633862379138795814738529924624224976703023052214193981214718121655253515502677138235858854002304731382647294896549642324997628903226851501180181889117513179154732841733539522933747997460957633574297110561358069367203044134307526060801524898102603825247686171533885820293250988634854172994326201697277477682485196882184213582592877280095040112651713344619990208594122102291845690208441469314021281687515237349176745629410305321735871331098220132579694200037559734397022019245471641798008836624071796021694056151283280342292706921773473517882656707942119243446358643106942549774061269653223045469841360613616229546023084067937672632373833742810886342011467637771275496366097425459457395787156977743542953132353802186109755610984592591683314879997320866134031767195364198582971356567768449550929730554005089855952010906962007646206150181165317109053057724848035907782830879815257040854807388510667107697208351322156848261342474007433589361165586490447272056302534857998254526008529115559400547680846075051793736748755969660938621310118902892104586253248469417579546173787466901992083058487200786941666962757812993769356124202262213114855515937606743569561737718231004834914103457166730410808377798704740794158391670829235280128658218534863462702682153184493854674332648609893263225330773958292479493506415221735570294146082267564511473960088583831323847329877176605464724024861128870273175190060938166529913790652514072007979497478601750813802732963959706588358795708003421474588213259248835517816812663090598027632119955022349070188364655426679759229117618281417472719318445279358716395312829219470106333388845896826147231461098744862027617205994148290794088517191989938423245357131886758370676627073547617665015605303718495191639740733435999369549631976816331367277205506624787708028154594617136302823834983262774250003208537546729799708670102783834043352995673992191832216892706051110762408360107626243373658820508443398289731777308512045607646115217257409216410616912787583280848091512231057651424882871154700852592151754307835805496354873969126705819800463720580187095136823483430957346021690700896491562517304353732133809453720576681532293426270763758855383141991521007347361249321540234313996683904000682103947938234794504047609833897549180416045360720943459273903067256888755960069309850304613083259351083216133614410466902499315948499405124315199638075056883680570343864428590650668856354836033511294107855919778645594480054220991228219191037432455196062155571670913877469501549580808467823761220488055189637738366784201773653804362002600191698846695540564363302533989727692032494010332754476672445377408563701748646166320396408288361709167703237517339356629768191952381360287301911934127786016332461850835793184712571350234309503181000161744946237255704111231117188081451983012662379966675996053783363080501975557858394834132341066160787527056652669169023828536522384947272770798140235299899928562316284113666763679464905140484263441945632238456625896297144271447615194420108191180961691401309675204614080440390833771849178261189005693883287496652583812941666089769871595115598488983379727793683599126367196854811721132480423321250226697326580590760413481009558317267558100873270405508494680692897152041867617823971117283526545852442712261586118211615379961983646329115110797471522603484727431031995134332420227232585244223710663399958368833770010732561801645587241739563105865587525759397898203820595928303458163671185271670268602853492837568030774845510220939497255811500496997840290144084833832135994048415307197212992065634425718508480585856590058318438946794438421669762192151358679549605192574965866953106293510603824321795169094489239713422982962461488924614144413668186446412519079710710393496310147142020467344070882676683461529477446623430275237416773054706149830189660047406110936061674392073760555103174795749072853124195435805647983416693286051654734477916721569362178065341503776819545526820337887111675840899731252107329995584035343698706133730745102121657892690118530070096417198607909462303164562844328663915242308647386399556226529858707913699884715407163386707313397808315827404646576502069712919462368214077795222942897066855600992532292554846350227114644556537854683965311842825876030407195349868313519185737951585218272805025214537973863048358203617063259165016433560535873241756579099114959570720296112022910290327576260930835848965440235057087863806808365826876855424499238443297709684934442741224080717449551189227294431190489361664269322127582906606734307146302160825629102251597556843281098893204606252370153707716952842669495955738036012056039466563762879095819162933403800277842596619251224563504387908113360756305996264600575909031626350056628359298267629554848709460998807931986867878047654410690117455775608767335364577758766715710690797259509100479969935831890752105245903573344455770200619634234195500637254681340185346476037162434682364302661610416531692716987410048020785443107795449645937006179020035005881539840527577624875469075004018659563586465610109417672525860075526961315416284814351177642225823410828020218191407640029989912754474906600562410103991772043963474588411084880574498101117348676697566967094105726314605203655460303664112652029738214555592380085863182650407463860110994807009276593249212234263074779067675002526515608288313758569792051943794515745623737835077379504433268261091950724829299413978253529277301644579270326988250419810704578537793586009202980273431689393490810695102570763507063699481435124249702326623561302764262420362389462619501918051251026901592214184459291157104421520285097850038617716641510661628137579162989720045689181895439985191666205470141106714558373856336827587451740206299337812162118217975621649776557077264466286037361726979970366930299734141107381391607170835424642115905079148133963125880599545535230787381490842404041568368709892417284089377875469159164039815679898706992984895070600562828174406001215007039123507560489428388782788596461537201486931166036254263735202247320788723370136936826638389868271311521189104602456804930656647124874244316858764043709884006699353655110255452568813221600400234654336259359409729666691588605166312829601029131513859004472747938716567793039228729245359849334688285131975201956377689621999104810993706270601341054344764256758523306835558342728178577298287303493077393830357050662092713966200563326211322017592601831899697905634185538142230347107053615729996391192380111878861912479057744948968291047880613891943196556071495458116919878756605191159757631418429695843789384808627178836790649850821043719961862160996313554736684632377755411532054674384977540747577842631024169729762690890672801767754737982409817099392419088689747608159700786917794503570060086509015259690361215812169736895022698320057212824766781790972720504064771137987219308954488810608674579562758698071839731861017832982680169729386405573979849676916317065048610010841002912372138096747888724131502230285350686816805327847517632311028562296759143596081755833118391567614949496183460124744275927206432932508113568623346357924550172301340775723861793665466835588630253333055438582124937999434189702886681566000811338355094038133717593532641777882898593414033290548985953213141219606060165970367110843402720786748528418535182041657519873390096257643237942518776795955650596196850362425269538653888437158258711069488713493300854659089379823173981079543329107453916689526849897871392757097039045227625809808080047916436719139063742467330582012717857728429420050947346424467392843147932010519669591523102652024522953077817281546508752972432042138980167951372954078929068097461132378222357441831120919981867338034642870242346844863643438948241356742103630990148417134280326063139617956204294191817348912407675011768483629055909215075878042287957628014933785703926119533523111162133160600837660310876894665548932893190355501355547947523628468843023933161239908966545677335529163089843253543944776601981378423248289685380836967729041684256732004199138652328010080522955087564025893203346233441694824275821617115514985982870785677177440820179798616049735974521652500178753175209390970935694111185551300792884580642880296850261383350997164836149529870802764658691315771222566138987589018847060492383743343054836509845340447264649793664957777310489898103694040058212936866233935982407983467696373139992688012304310914614120413924375564032943378465488034225544724623621318816208536731209100789010056855318215285376253771206000602381686032016405922351877811249097926691516013281807627529216395265886017721943315231288025603531910700408704584710396186774691658290610678892991861561193388386725930658849953267439677538551078109063658104356625998594146395980173863704003412872180686817992087024306830597350892225398838343279190668231436161483782994273274898910086924605830418327140738917769509890816941473682055792203473153478571514517525283273543125128600790214102546362428046276182391038548697870712998031391220847515664760290494174413407664889524505514891255762752525569651765243805107651119251029378486667489746728651606056560328522961694289838454881089633100523711274149816298150060085028847422859180026350085030970496265122545388278052424917138565266344675061928899421644408822070005809245648544333123345214956928279521576380676551371752844133377574139651156539209172655931916187129268492254382541960271466410925846068769040253190502119856108178093403286585409832280010627681731720596888746670008635494934625436354974782366594084652239193993933433879853630807591409536912041103890194759873686856654108223079902473579448195878494296145951123293763892330529220272346855747845290347879855284726072338167856658202184659398728874673155714010287910948614622195346716993832402052355269304920662360148931413803852163838970757597256449951533606015035668838324623906500897747409609390278548905844595105620216366361284324243732498466729387480354422690741013144770749945631658903957767814034491300510506803700741760452064557422122794233046336535328230995037364187203625693937722125361798382919051277203565875797668365380559587968452329099366493408696582687309268628739212903047019081051323204410744404865759589376079726754022303099809261915216777917256358246586048541219970820488206401739053495936804086903081845494120303423253926160750851839490242649492580337744378729304909237036633752844792760247933412514201586696246163962727782312529241163642693194077720264247935794345603751402978276011876916895607472036967635069876444135802059922307042128233285649613720344202361660381433533909852086843887572295610575062465988353010096960745132999002347342189570387385472076951071264437806718015217892178690721901470360243916606605275148530857014649712850321082716219129849012652765705518271052615007625589960069890820259310301260835646021002616625832595921703206319401344895659682451519942977359684753082311599454610353683639858187870008386549374273347669859349214551471412417051551380442843673665984381683776052644684757175811170605993092047455744801462237934102267023219115516882790571009761967674675360741141750069467004034206765972266765682189660463241944667459664397124344625451290194143922131966871401678517048860303388501330109590263269329671808304322368193108854434267587120484010957737669399142794051478971224626447752791785185720739037217573291203484008766714339477635768696590252673924798984566761167185585981280184077810176635971253097241649756878845836046820178484863022309462392475608009285465295616911572287587384818383411869295091339240709729009519313403021189775456299818184673483288528523565904916253552082000465398757522853605642500040773618950705638625555099744957634261386840299334966447191835536135181579120724071947929491987166792468016229807137106766102006825727073258097511348318208220593662070939892100808363938062942210347762585434302192640451547678426631732070534195128246130098571967726456535913467724021631822694994588387567446011860649957383520562650621889099916067931856804578790150554363772458701830523377486949754257772922596026291483628658012800241792266540411898642413807530799603426570116766836035351901178100728116113649404293820900473447688004072703119217027929313203691771088149940957701376948358382591948043479434007827411731109905378094530311236105311816596092534569570970510016338992083951436067847940024134127491007620039893200352313614013199910252523788651457236090973184883141828434826211369662060523280418434791218048025451470634539547398751685086182622470743383422408406121932212954588062367429514118566388912134650944723179475044356415980065256057837503451730043264891903691288551915208994647689301507858641853618540554140721887330565328826266873887617280501363053212422082597660961164685459365976645530168064846268296969132876639986126417564085305106498467569622299182835599058893501147381121479987680423808451548527410433779904027144347705504431411540650119789608015308921625239556444437245356270973086576623474582327200887780696834192344571967623903976308454825556743847360188351619969582775333157600042934252539892742529143039998106453375547834814932974194275717305312495513286645205980663895867030699074197797892864434956585188968228963684338882110009611499163944886181616010115253766870312082389068988476416338006459705870614650767678374977079325752423739943923194475700059230346653874402420870163381068934570453993996762144492683894582924342185448077050994222073514639322323801317176308120905723764503467770174824419434892858099264626484261680204207579746211874085134418424858807381030454582718129848456962409169957444354594974551021766684563582115459319414826420977880868805983635642147103057655213131932656781416152836016286444092079392382756641548881283342707229067315589571342594171308666728875930590668875014308096538933967198338958917769850086422822300541714235937700237847712746069161621506540054140901374933949901937189144106994547758030649004480753746620696870827378582098798942575075792892677711616884367669540090821632116884369180197646251399660446988809661144659497501713966425192155906513291474124098971011290172641582897258928489593534595544320243985650340325545563913316363210336126906425258185263861776187905243151684283276554208000534896058063804716297261677129468001329687080364477283066507610167784008308241441959893540455948552430775721996843503065039772019531001768195417681055172340888112713327447254801254125222356628363950483231054831228509928156447652810654551191190012072258023505955289562059644257716399199098276680596593572504527919631604170219652248955059729156962200714580659846215533969469010371446559472894442242509745092261994852169784390567157858877285465910668464193309884335677368561813843048756414369492211074285308926010411881029221593001864275793829490500441991013195125471826826331625918578148708217818393194833332995643588863936498886150987906554620544620159479627444415251726752060867190838327762343354279252705030161160264747150454366849996746150776682389572791495503409876102599698605664904734481568842919990061576324835571737479081274523826772931366533895771179614558580734655562786403411683032072961002471204548584990327831346190519949109923092189817787716331233535163022750367016406220235195163693104887133986807274256312006709967366859630182202888559204626059881761011449872974966339777263418856158485533830722000557913346953486968338533121592474217217260188052382134164492341066747733164720471693659367695449384135331035537931117262710955994776850775651920068709102904012758436786232040564646217331566480368986431656611397187089248609350296850510222162181195037973087631719077605748599104771492984359421949983188187534220012056640763427579699282606489681315568304585586554254863071628905378535825546078695618786391927156577469043713843930196231712579143426901664211975417185304172719537415028729115897159080323882960569492883352456050620230975818360038113338491712076569635033110331793015699402451766876478051062345240022783153923409914967339827367412413456547318360860992296310138029303930204716085775213457697156259046236688827260999836763888781834657598061367059985316533861839694039922050670566698827817598045635472253126637987358351008289792474779438724804809753483148001046220297167136091046219965759254975549409845892909462102571581662678097469935656006234007126627125447658459533951585682534848252898568173877545899785820302978182142707594549429979960638561483324001451819780444685189867350128933895232896138767105952572456526949722817046610825816670914517931864876404461605822323472273198761725288857832688772027649668083835896495412809169018979611453138133417125990420628159638441213564711183013278101249290502448337797961719158579825467420366725817062417966771422465824315920897299541697832590394724276962789198917662690094148955491023206736961205068524139257699223977858053482170698482611496339136719035420643427455382897362096448930290386568402160680415298077507498327846937307667423853046303047123118241384465698927018229831835180679086320304574729084906379694802968362186964476300382024520882578516018132546142363713495057411864371205627844918890318469093242540771316912696625923802475434388539157748969023329854817946652758441077027749341559982744951515419045119183448449376577112555413942384094269964292372723501542555700563251478542544649681604913494942190221094171578938829159354469928283091283555955656128568751662351462664472014156741410130663227680067824973839629329429035592374878387594923975710651253727779194396831932191674819656867200888420281036713374221411263333583531453295970101501875065491781349365546140309932528307494961999295620949272738761427252504015431051579667663726605746280337516247586359674585795842861830845208641929728246838921770014600308258901760426752956822460888227356345550993974963488894090184231451928524811005381228270670000806514620025651441877124852701212992800596767955276008482477557068137741184738062589727957969404927925597461426791455780176782177483224111342454421761667471008389589180292200084637117534145475400218355935109681630443017570813284746793695733407091434397241907119330590627870537383133389047979781468996881074717396991321366356351278721731201756751732857377488051049364870618672343387911538429660553413012609078475608679709329237611928424068643789292985684373663719661041038045871640204585851275510964524125553580232193779148306610206556597461413615844300759894341809831286215828656521196516676230662278595365092400634918756574395976612324539279130455724559450216449683695229864031559563050600256860698223616791073723339870017229514313316463010544350179809596924802026806927800652298904813421808293034224250789181420261234029401686554117779344938813086037521830264796243248309773762761403785962713130699190117901408820061366373635076706450952090385650531793235642730650654137331745786602274721010401971004577763258443535029440266976076714094983121913111697284956925330202958075648714073636677554893968127915897172428562058510312678094205193469045611630432816370206362533772908339044665139116207064495952537820747104935732210305708022211100956595324064541341858468979783902983202988290455649799778323969566097909477687687331509155213060520629597698081927976873752213267012186086974846922655737085787006945285093094944198845171680923798783587582567215300933142287496124278908165056347066658976477722776954951226748029137371089516546974803920574117473152987293007136927559089358793267006884517054536230302709701512948209475947623800517398470816030562742328849469851283647939863889746683742106942333850235837787605858873643269143530168534959524873717835323875280466318083662154660167248178187272430154744226203988571780975742277123889958304448007591646725657945909545792015812985119492512744509573843267249849520842820477820634935849829770608118908815271123134621154318048089547511381756475205996721392335238357078943471976073623689905618122474310881327519585980514273415481255453036613453885608548846148998472955418511575124625759903931168441363307628180491605089763065711750629241035448043929472811787819004598719684359524887070283452999478900558719551394680652612244771486978586920030704764298998039562626527882783988703734146819814411086583505206291868632265378296191310967619493953081264587654829336161612821251884316234717803872040368650944400355704379086905340816128194140249587206232785981302568550642279275662557791656813408980368430247883301918031811304377150349348448617240294264235054263798879969135420751325564298928965022827334456333696760519535800561196823818205211169985676955499948117739936938850596242746438540689057874317339475808503998331921916741599823914694806895769541878828346155859703056411430608943097298125314293872671644665801773422135273198594168406685414171973915682263000856030637707497815239131183339872478459297528923749127877832439986483210477155957364836740206444566252742512138569952073371043013092142066332419268937986249929965627309041184652369243817237175082959262373594306191955536826725899950512892543261962104494844028223763022179546411565219821358775952573543310061286007855743932893705237038687954464720262096071150568636516493862087520575816699831677667772390526742089082738573286867102546750427955332662685783635161973093226167429929693261447085207978156916908096889431918063946050536167336212922815395380062939539209149541052830339993837051563083822840034672161412227831076878418534482293852671206760450207292149565549924182299046699323433037334231991414548764528722773106740518492711250725160181126224898803129229144106439100263546110826912126213683372830086019944576089235695306672736659577861616447382859252734627207467201386235010502434449256700700166308569439877640274820519777558452568729877161441184969291910733847132448995888092133679215957376359954943769075811067790060965562879484312727818242192816846704132902955316870292055307633985240735056169292462450338811902266301234426681872856408964600733090391662093951667938610467119221130155496371754689587444173021002261294284595861621694508463868559949398136395273278504240320209536975407012462829101591272790618773998865531840281420831370543986715168478158606352925482984574095411251798547332570495491635703106783324610509807474699775669110226422015971205621032651797253345365409135827394930012309672660795235670317326595151115123569480319492697994941336883282046151662062630512144701373279694352854977794732140474604971831149254885776519945633953982399490923355075535959464571467140848847237330189858904656817083173801851044029375817545697460240145530432103120949226777129807210013135272510424446696554611693761609988967623716879675811570063815547110402657247199161508417083559931800065575417659976237418127969736184540352779691606847741661867896142592605306118641329315039448209166340585356632502787667554602946253272402501217321738879947142483604951319881787948839332078599279320437690587117606801615499606340681873151131822588607455981339743697631508227476063835245884250397016187859410945590356634789277090749046526042892239907601554919661080309534837653416654178012504289157861652883703295539865055177198233639000458586277187985509857185700038934322791193897415732261745519974952473451422368163617558875761388083019453949924472583333706186238694788311491230637812039436894236906830695908264616635433591170001174730140075276107614658461373716215094589599942561308127489280995349758418559246062882768808089272215391585739764403128897441224136307813198935519436872151229991466867731519988784681019641613652632961968813032179350132478067610320954455711272666508940790207391659984371764192648435115015950914650543858285911860711427425444468823997404300035313842292165794329828433458477129147402991412107434980532342483273049195041476813154273390898404075440216241551808089052176483999228148437573336202392465862562906732615069722305978665497478979074713138122205096268431717810344621454519508386413113017034387346471211950819301476646977905202410086474006512444005604270175884044632352003951319128190804250296186446964861005870827629534139243404379496763667677999545677177212246085980416582662454757596641430162704415470795820017920110538949408274498707154618816954861687531791126435630350168559664208086203489615605390437657545253070119082125709078565286772781865664313246006241190404779381506476450589307394718036568357857892376085197617704965263650523582662874982406911093798640377541121878425217495413055505866197634938843120407389351615049024150514893087660668977252965495009970183476812463879020392137281269320494498376814054596618661070755520477017919777998206823020165362701335462999380482791034894316367966202723380266895238331357709663538671762801195032970827377650288605368956202902365797389850109066147620136381319181006203403182436706130196032809684970967962758816714110690908672727640794671211459090328010787170874336306571988924205672599652398371486470809384266465552916188698464580455533165850081302155526523741588215277168323989538312732304454556128839269487901714297472440757743385263445736092765216648667868964819825465211112178285997324650912780891646176753147149943845676341531243847120841096757448227157284565078985791514910604577957131561524841530384346734731264117353410297916099439551986660690575273444148648698137545435615703802866247075525592290283643898682286398699025122768985390117187700749049061831979130814910767810489022125800082548018316982597471598342046097381833552218640804158287278799852577663268140628327961685145139018335439034979825806905081527392810457158718740638394090612166298134648171161992612788943381032474701746342616986666742130560266611286275070661913496506705983865232171716978922931005527259858989522734781193673112508748943736444599809242818841651146619235195473772047048523168451297593579993212056563342777382589791839623093632954303661283821515912794895335326258321879072460025651169571383252670641300537164177666165406239628221604092521972192610467195670758311965294902522223937686510130335069235395525532438525074542772258622577463243942559335046471077612371305110807438192225780960488066531542531807714279323520192828248621118417849859651895154780959098792882097904697106920954925090278782032972252640048954251984347305637309807973943992740887551016101445755234425947263614686784316209610811953080634000683457159754113136369798250639945291892302661271232510520746858750837498708643752293375541956373510098496456818647737645702299786265908880845969406979880752331456424635170785253161327660255209318609192708128319151448164241333394146971805772372442431180485363302870850369699892873105265692576258012674936670490137854510795542422994770161614668496135268472142122205290756353708336874385489115964815199276541296741968170894212027114275746802678204028605906636464037116174023683098646535411359282978253064414334551721301381308155444310776342565708588235606299042304096936646969621614008782564475925684780837074126818574484139749393987846481595341915088739629948085414652100371155485699015193033169701859278066526557483355363294196315368547489091460825304614118203838406924108567452192101082876258547707658622355042845066660331439412385141881476189504774936333743742856421876032621824235441276002344386917871635473821155701653574029588991715413792954568903736821391101219773976726117146010102663078161998310196874029192925164691416773666346360160170260753551154249546794310291988304501115467647394855688319401105734921261997573823590701915715402280125005711905347030506307276295341737509380982372562745016436046362431953896699866647377315929797885754242789429819061891522167060831083244154494220050971033737965409401352517943010118716487412394257628671904758727243018067878490587838302802326812082651378406659393247299867945238505340941388008327811557727863843931338044890294795070341975745561868861448311334377760353620222683133584782408021878831168492858497498193742988815209817886373387731115358969892080891410158861617970094842120715094037070493082529982099887429717547896698229317141060836333916523171478330734794158506126942820702519365311152062329888436803200813852255669416031785546935557195361942545393943393391736723770372729926322433765779923872535493841012716260514972748685872839493340610273679271064273722949399312708062721911149333175324981337924750808279971923079054034405410724438733521574556909058963298961041075929488877697804799434074896034177673814497625214601039356785910223142715443027745369177255234129444844883903380198068591648677107618603469484858980249008561120824692125393186227470549124142603078282979330026790303722894854155441356761305115113312775756222116722778046304568031183496820000599394564268234111745647333847325079430200949325813948694298148744620298910729081387595120936448820318390890379398236896912529700497747005399478152893610436593270640934912786644721338393526777865712579127213819429069300182295631132908078751492624521724089354627525123447937632616930323902934096723718987812651437910926898688100412943599371432264775091673600584161072261422558686629563392109577064952966316393452217288155716154142126231173044364810324284313995005413382838719069275638155280563825795527799747898700349258115263615641644488917077647101776316835128469195923453836688948260554872025600296800060106046931950810841427822787094310274239241890454922279700987083956348846051029313388476214993406124228426539825800138933186403964411825769433332737162674536951199841325327972716761590783224188094935794185191965710874234021834937557883872663875583451404478672355569311363456028472165146800070564876295411889901920883755296742473249767698023583511553742934399742322009688385692535219774214769242767408089770295003496738542921321315666018692964799303643549491380694271018185510148696555095973813878670942577115772536505368754195406733513491033629741194511602884183396522013648313091283494405096437607332774035385239879198211204572155902284894699539337190278997655283083629875374842621530027339515465887346950476492728936591178902051857548300915225306752626562093274627578676268875738375749659212596328039097879008176437624036746796230090908822080249571309028801299632129621143488992316500431642982066718774937354283984083013353472101583904882375075879083172834848875638741685994397713996856034834875828912682704367988295120259949441615713627015363622598978755618445356875199726032224112629944085366977105739465973260620255109097597669025098377297810135228096231340358096901030617098218424259942161052683821027187849528973971699116223282543739536398716653691042780381336837343097412639910623438468176748527756265168489528489363602750840124651168986479562402913946059235831553564247520979569502144752933336303071325120009158684627820769738098144463859710676573451029174661625609089525142643548576107187568398780060235700823717276902651231294068945533255618075661653887158872840870863585711541498447495788952955403050020685316872701665618233281852996175002364937300771103429842165992142156438812286593642194753356093774713725768096707854668902478572345030345529082217257743454978528678796328036900620611267914692952402876307819396667452382497567888814660368685824269892564440930012030327944350506055537489902006214866200330191221718427095983725455573508738412155449560266935418490230246281269199766919686846966952027351497744424340500949301289367601188451071071844650133751032598262528030810433112884902250265783390117839599331740888731134560675852757344978547149391466462881568720809920230376338992600489835293200135611832451999586093439967586029716227107418066937410773347967855995153037902659072632180353718090241963020726975997687789528974400795236529236355402096277725134684869950250663340788215690170424752251138351207832460503842061466164011091095141324947627057115116934312830808014165198763452652670363982224788814191461644764731682872038990024988688931802935013313440233605034531410086211718231341926168933829119110879243835619010908150867169938630139427947472135846345874473288534030115252006310563230656856350558345408618255287174996608871985129002410960612472704109343806578477147759982610935166877972455576288181952036292400631254855539288253150808079231057943861709903212431418068975318071187733649638917446049516948382928613957467879208999468530406004525226021755698056069733948627859763224035067351275861551076614476363202797846912383150273909853340486142195730061519877780417375174780073979371606927567038678385354125491743617079688678363231771519800483711424423912056053346204894858785637015628696969927786240458827000342215981250529175459412857478489456681557814751692420434419665646154382306434194803112147877490714572015332573279293345075463908350087039092307769014063515276944592110628483108105285309293088531491265772630785300481844977261860068164286941512994081844831233750542815078048934803276489979098153497758812383154516913008971257252918395801952008551771821753355382344590063794013752046596208543782277502755325305676867015890860485782554891796345138488706978302266141991691351061268786350941331266834406022429862428758356102491340217551371322969361302991311260691863788340102230724303565389096307581010849951196263837082267237017096566364537680765633715748438212325955895384576398116551660657249482877592010552378693110707200986568588104957266097587788604199836103646548051669830777961583586367537525112391316921454446714559775769141252145947250254908999291859081755624576802764499275936153267579220860068615376858722217786841606469108788252195223255969501872580277718517080424057520641326705830140995715085115518488956937386749346769739250324151164404564422585996565628283760938381952601930099190595525094244092754012656450371561354080872353434903222472903685399712049559714617703846937996536512873617610709232638487656739151418906368665497162022634692393413889131384267928612200806917151966911495661016511708980246071696154763347275597001702723157584659396183966780604601580137237784286522108654051789116814047951704101308181342179193010206952670736516557295130131315487012197114771074299020459905051533518246575451292450534465213240734820150969816148900288780946915808211840465923925888079340805987615366655922169036753465514226960242321846975214569018064227646350512156368077837260694206104175287542890774264290157953424548354714132450657492489588200831207316794106875775036316939381653567746216020750716220921607400469179061866996370941382220522842528211544700859305960275363505462626781560392298068393888988378838310722598211715138528420421650649063123975701840080222851661109394278560406217738724456925572507830222039940727685937013200226451041872104582153262758337061556419190461355553712216520300832849348590663489833328237454267632958190477907103957821603831713512312609023561439792236853291766855158714260504870390698714713173850485019753890507491747105165115833320060664091955275423291152132643657207205212198653246244656402881042450116125941428091972999834430994297794237979372106789404915339077087266432796281815597233697634554376087462190207497557718058993574366502434935122063824069959681367998067999495921965586487936106666201748670084792833564219868195793524233473957416736203026643234621848572322390873233808266060063972443342340963009410864727506268743968518288587898293463821653576285790324018154435785468810545586816259854308528030401149301464257304641651152133349822202175651205390991090390862372521978926104718735730046743694435454698807796247016204334047266275770210838054910271359954398445589787584476030974081701161195762875572596389524877646812420333395648151320173376535384624943797349305722266428806552588834331467837985343425205853348384588070361138906006229182152332867028332493376404047996031803688441981799955279573718378784366765594670879020167372352615491976991313845722584071500211440407529133052614808305952984342538200292897348774344839863787535832488438514054020523697006248846005491749065216431421038339070497950725289370303840566403399963574244596611135293855868220528701132420994921307208996682290960389696469889062433130113687141145710907070340277496486571819371734812871226188800581242325232906698825275154014793229926023480839478353707569306799689628831036355376191165884851113803154938063606831006068477670996377194416345095243952013576893180571287992009316886611185384588979858833537899385568915183911807170566326432589232106191029577518026512983498831610686373157731254905743962159461329388222001218247547067140020237152015456923930736135371154828428540183852721280905429327896429785178201054703372512317467562626859667189779819112521836962178738529141131950178832691147907231397286591726667237191430910685185958998968042820197258249423884335477661618727212664928217723272447854768355480891447610428318842863867419619668861145985622695350871802821357968487944806597824421509120690665674244313882003454932079483818422365142053769202603469174436810893858651899273210060704552183208071308034754401959813644440307522461857734540361200958155503915910987537085183795490229954129699532865270165250534715024246085820313482219835605324015758006243646066643188389298495303627005920470440563048687170547672661991388019237009516746301088339431865670476700126547684380617945458300287068386584589360875246252607956741734522909871583742836629672412412818457899587867212990169030692990740022616419575879341060967934587949285052098423267435544970446643724389746944585711114073202950880061760110133687609114914297216682046953272805658365003885050547442484187499590421561950189504492148095897522960288930515038117386375868952236259481707505925998689703417006872895139783213253539083983684168777295687264581462198881730758899149572177428699533015043737148622474749806489693580291511048245790440832648441733936687292195869535674972109531383937899913884953697592465108082962299987403323495071671718979146926357507418173977785615233929594462802021363507728772118023979141067069669840720947798043488583492864996016927674000193658296544963051813775440173278401863229227581566699978964066680482536877133374869551645850018878903884050984148399709653440568361307303762373855416279554295886021306609202963250056460615832936929525155096449103708952063294127754334062557402681904749882668680818000394931759836006102430650277919587231358173455808879147909009174671546533070900438533113681542595508476558599825373900277090911984053156426516383937391553564681305040601676140951141609806394120212118084988439643834191260159730743028689636249803472064554385857496596109352309274188439758637667097324800985059498553565844929372295428302195431675605288332258810918718938058616915953059968377528226862228192174212893160238850520021103433775944174786829597465176615354152644119853962044129805461037366144837022111184267701274153082128159858407678416743291324222750500511203308253224550549744520016210536768021189528011331723798805450504329432785441205315527813556582510806015401078719584704888568983718145120148303400790015845653387086766118329932500249294973390248838068778249250643884661741108915918175126962322048952450426295310623468092639021351774135804535729234646350252319660069541697673062958207150889965544782005480999447413665470430466830040038090802947019181434288045412974620750116055707038591837076935310219590033453942909538797698498064757131424261076493036601799299821640714846123205795391913331482680314903856067333967465440971793674614529544224608505942791463075359523484571125202395332603244486774645128011537243822122748431446110122983567878086552535498491921443517386903763245670623287883261236514691310360392021095255069909129678117367887737104006687933014348108460908024016764183010092274723265393737835307090175698568161946095441803081916259372158509844603831013812038566762207383186332744596802282496763999711859124778928319789875174518800196423074595559529567266934456221844372021056442958264569760223434029863344866851681942234824160637431272960618239893222717691368649661310108862140764707199861678706886585711512720375559405608207247594984134114489807945425113054786363261269250362309276115043157158869970950619300499186866849764578674050846741280954574391266532410042164931554124459409865620159775552337727181708859965866074916622799852928229244411064956278194282059086308309412137156756033568130858885161888719061324625555353170938925780374513938016961191075954943715535093427388366187423664782502511228110502002731718879698458325343056585268263755340950099362602970382491303015479133686008753589057827758830196481986310427489391484607053929923563106154897327009170902613073827580430893126092025235836828183557689139863061331194599969367373666474850623264966194186218955454852420268617418127217793419835010281353893904489732378569234454077999841593510660701568268656000089448863516090424811773649932314719641712381609809949138450437325187200792198649919793210322497063981342064125474454215294450342824632294298911249055205405989762794510046492103226024828412755246603020605452142588053546674067102666948721107856588309297873330824464783675108143343306309782707916767419782138799824570798546549820415222593599197522293623042801054899698907191920777133065916801971357042954669719663824227509208319216672549558627813586558100817265929297885417091958295697603920941016082976551047732868961916053498786813997907857940397177246944527193936918125427972248202655890586634142497079736876137698208046695488880692188600750770548610101939045975448095889076302459839235354979912388261130687807328845862093699570016484858587449900484163566354004841311242905741053409547623033616340904552067452558523188710686332924648088954489479558547471975083849399045222078351801913371439387247388724292581382733163444923260736265700584443806585330340882859675485441389928496058977817705622447822531690285578797736544136425650205111222862462448201615124407753104859114162466031608503271617430677011739792099364126928293017811519670188832324307147789612517180867219364278861927575262203573292380464503318047271172437608549652603466517529849398289280836572889570816711488867030823485032440970638207809356034756442011585887607072786201032258309619452534386154737699289913016383182238912432617829084818736032881613352287493148347509161077181018605099926841081149719928955402501197166174413537245868995865415094328087938449224242241611602520870705645619275216267225235494796617347964429157116935959079376409375461209695701416560127496456431291426074696885498554180769362043450430630973835335407854496891964034040474419365056468691256720135952512743029419164377960097387217599725003753996169617542120798797271969065996380584117976048308459745407125770130312317800994002613613474224011254720736466945202401302747692122880714062443804880625405761738771498619822195865544545119357228274552193721894149302923519798882688151372626881676528059953935788268194789251620245678794702457904400752940305940618795441129093934558718880249653761110212280688342706480339033838393088380816545194553890639412434832604432316575855687750848078701882621904009045340036595241406730725229414950544035315246555441376529736015860285353933204738575618707994970245183545819195883658047308048959122491056517621596231107447539239091684358573651810966246676005209355292428509962643882107037479135259867946425033757876824186839072247413949478977076214620762679860458081704784412400163950886693866246705155006122462208719629216639567380490760756636495088366584520747447616129989876241110906734220680684674222204050890186840315820931918557253701424935182011115713653610894506923121302320916114538008556481697561771755153416641971043774753658082491463330146095253672245125792448976921468251943997330599638214872017744601573017875682993446931956142257216390427263984347447906623062115116644087052682494075842076842749454014648506372960410994072566648224645955404426610162180386288373342815378081397719422244611546956449345966604632244884022162594286245112663823171603702129513164698527710534031417871212618564100518962508287581760861673168735580172836992443777524381989609026411619788943027699120987318944906012448676824845098683598213918461791325216306078988301524897370105669923551236052076428802891351004714801684170824127299973379993735356680024497591292537851858280093777952963320706972515204986350550986052689385875729051952398236713475026394122179950202796840377619562033269836540736378589796017139127212892084190370287413877357151864763504302205714437362811082351163560484860045629964723288231936527390146921819678276613686740025884188325763642352011619004014761048113655542968352357770259859425748853658998833967215696254389149058264803686025916542801622015841648530407685787214812989284056299785893049075485007450156398770393514219330608637403562083331513405470456535387485398139605424289831420449047484216958028227132302490668406395927840305871474945137991897799944997247987388425628307192062696127036879067449945108563261646410533568538231739268311769010098160595495014425384105315460776241358283104181045954659318460821832842588258462617642693778867411831308227612757762296588232565870841797316708529729047905295746551531487691586652648536835284520283215356386736132457904461652987983650688477348948920990013443280943299599504626576402777290967158006090900639626456633932128588687642232152614937445252428496268169525973308774797808388136907735374969224754922448779576719230854270333632357921025733817536232366284848088818034724800879875366335356315344052734521148182784112651396161974231033227722027657233110255705712065310102820692045926658307340461637002870307831545271267612013097092098511054933038172790828394276213641870368633483964122705848651792492614230029690716639247407581752909856719003500427839880708765682984676244527948754251966328579525443037690124234367425722185969868675637853771007994081287453067708907915337054739053528418718948441828461186364490276239383040748640614212555631725709150616741316218772537426384913277263648726343088200123355447981984936831149262408884376341833952698817387155490028999924784037246345976115359868089863831296834670109320738181800962268985182084238322228222198534453558578591250016075928248659642448784434696037987189952583532788765156079278860674922349619544809956411971932341103329650621496801874405718062236070693916039951216205306524236402137438491601258145155476922021941436050202843397759403099609043133456988640660510333017987172902209714106456326524121458070812869983292051223747852327689301851474143823505564354370542062512931146700031968734818302408500782769527770658633842410164608587463474545973655579864819260850585277943173636446054923095204810472400666681696942132565819068887383967473423353701084206292289952257442728594652885786533141052811978787588618481703047255822675609509321809186487172619991132498987842465912580949078811226994726598114137601665381810578359854194918293314512724981788637452850541359403320102287752317152530706663100232716334071797596465529862316484602493140215318682937410772038674906870219878225428134767961271633744200092821648783538971456659260484556380418980699150565246002712030295094075445205879527179833698936254261231555160818608043214774292377948789329065046275859646369885739831456063402426643694714761434890433090049499119095778253030862987482053674780515837821688368979194228961362716082198392919098096612975525326439807744719087842490733574041902769765609911662523044802642904813019301982441457528834295851926715353295446491862283828040976815559451617385354856378789373167166507052109627087390910997866340678637395707920439836760267661772152340002334374597222127052804420646894092442221781414441373695159062839343196296689898518820226112464026475973402828829669573579038536148816790018102872120942162989279381001141074127894013590724979834540434059189905406566217654940817152719835878632901495405613811369263614845082495607114232800676673839406935377505336183603897335218045654146528504696000969468912037783341512439800566371148519328431061041765406749237174528956849973761742630974225009305501912537619977488712397796733624293336795871574084925006980075055482016505663085721095193991995766506304158084197406676336756806065169384742772760453309983194999616045859171232993200727147645107477553016086494511178118205638536777882317853529202107794686651991413544479828243060887971097977858965106164491882257366033412421762366857779806166676953100158784704871114775196479865960335333006713703655110669671217314494429715145593543277079257008066748244939241348856226629304354048439595447759064110783921537788336930630741693860252049905600611206310580749983884333005695897280676133324281200525557661405753641684915114032147328264741649700039504633947682367610858778403439794966388216938406526108470281698589028273009541861174683668666004970560103841941060641835282012582718224417758057198658862936498635685611178951018240232973456735041500409331677378073186996338738891117254799869604980163627752671136223356201627592904793653988227313312519492384674804176574877363064546543111901985262338553190699706393702379865128545412599411779846707036923992861301654343712896129566166227118907029353291842531881109246752863642395707590496185340445273936879255398216938221038192863074260300154414556878157390271191420239632277290676377551744048847340076842538742683046702924031330181360848750391176188586110930481803051543023610994108503028159485085781926419620598704837265480560906113773784911657364075176663736880342238893315119134341178979985859884599469389589279169127789349284169297608929523916902623639423619611661320050734571373179898293238894433625212071872917189431419042941541108137659161750000557658611571506923822213625567677558569447912261833631243277905619023079739671232063533943606812427809192194701472698231368594509539659221513431483074096081845028910465073617738478671098732229874710871856807864718193108550626176651526176667048673832961916164140811330856814873964923021053021878512038386347908205280355083372556590414924754283823594174895473937409007287996369629112751754905605772857485633284720561145351114152273716041433015928827821874475637696717821792910551525363091270383542648182166103786454512242173580446969507649550965173649837347389482057420721569838640803902500956765761935375684153176479433929719742245550946105875153986168675953334837787196414537693741064026308549456818256142058739136466581573983726405197595757698223066491263937705138739113684735646322968233044831735821353693214828895986577845194943929062812853122791990857388374122874152297366237329629018099971856910487968696020367648934813873019549227657949393154344161764791820843533491489789553663257082589115836165291775767559655807444533035462715209470924561009432481597209017915255085712611286857352788638260786972026207158465809048822971281288849116853892338782659016900291920084588250515960619565284554350207945302885168164352453888750111715660292244294603427715726165979801007694384521716058447641142542001964663952597114305958124070238985620173969896088219692363884069460319392831460485870578739429460130998221493591500093295600265698419726309411892985721813996499316008947561561345799280076469623121962058327149320737799710709959397247196738617258988622811202939973668312929002268963250808511222774853239165976978555944625527676112998707848537056453922244455135642711439920338082404614844486072021217799474126155887249501009743812425804721720673642336514164651439229048797729552324277975845435489944606012853141663157391842445614986917802335399741652275838267079891308743308824684074068467110867052090919422486585142169084145047230969887085133059686589071251547601327913351867254563376814432556554245016494670108556033845863961278782472221827645608271241440762990689782785120957312213532044345191252008937477449976921022246707602001746605778592768127059488421300564801243478796192400251653520618741628455139591802789792720688239679996554974138536835163771054374963932551477526127044858389086431512758304833182301800196322216132107707599066096658670202102106048937033605235702477446908269541426355396917872685123784266326153086233949705388665737734925056874976004452312138068314193940825767167557507015912111425288499544471474933550327549343746845411789702493496277368267957177894631991013293172304668233729716065820444904793936956997197462404477296523137195695245618159543043386616607105719671974761195389567073549237940586944574493725136715253832739151691396238692578939270857149382259591234454476656578169860915988190401102836115192823396322799612489820254954094603608535957383532816592626001806761061134043982897846586071430044413816322959215304040930832224015264782639384116806809595381476281629431307953766172662189228055233741202712198692279998291208456840209993820995663947339333472790050251914524351675890724986464688315679576831417316288613835225105513472266934247842659559271208923055596528023417537759354129371031666665063719715510361391097848437594875600832685237281008429905995072459842630243227871369017787212967304597026292902987458222513062397494130298371869814762948977948538475830067893749267724011850255379397968862534274392893154430038215716588929985422693858849740587723365603474168651001033076493254400471516521970640481056239258395396406898653052672800865966034467439291119254337665568107820124536128129670504849600437691726972255167965769273073058583681298857111909977540811580532766841609907472854494048404970812314507963610168779849508916109166423615231627787095471652438939453764030804437453222351351936205234759976735303506669797354884002414127246445722764682767943191255409009065834756202261377741537293368462759127265085523051753942005327151198952857757152327293058919274135179509601005449385714425734852751814386656322091946441400283409508392780883407595962404330177827181504328398169684522079885465795208743836100194842274191524827279182182592264566368974087456307554449723875115086597403929066804384682035429799244479539776085795156231485322660371701295777769827057197002729019553506425308334250830299384552184396742423164875367431526782757530324867102835176165947150858094279088478260297751542946712770433503106627221918312045808702910401635195997776768590752254956662203549208800323303090803041801614643172483225086273896703721386597147903082324377768904925076338817479149499473540567100290937431972161307919188456193764976948269008604139178824751218635345640468741969874914641195135340454224652716954622846332308434609618874001217753778727200544662083694399907538944557959305032994057498494702017644999332050198430451067400038259037300273395116161636948079631440677582860425027851671538243750248309426673966648900965121566859254651511636342260573830410777554024001951770450725315764015477738650632807423973581880583036901992895574747278372566765247009099633787338843495508133793524985159642187620254476495494319242514350284629392914685820808773899065392321513455729172055657735086455839387147308260322510528261468751740107535324620839814523437450990389113367471832631618964648929225813302214186089002039540256711449995859224374364749703372896692065679652934434616452026357493532432254470557648860404584215514564250726952770056958967928452135277924089139770948893439380663789367747531160255799037468606116717004452896473999843879305539712537990651772337122042838769536656691498986626654947192312140405243467265813072941796951469918089345626475790297611133192113062943930346586836637031507297904600037166359230989526444450386849482300031594517309332120639659686782334641293554823745105845114882954704443816307651142359102443718056623974397477678390435294714089723414289747136783829933415368159873484659244877850584581399346645546212175942567113449581451861991623109205164920099958532619119587556795240242537547558782160544513299035445115612195884716906799398392585073371873609829127206091057885080060447209800296355355736420279754355335712613545222510441061550137478848270281359996415153267482704953857172926914498138522347115342810808022650881176357021194160852849817262249727851977250761440603863076390128785307385437669667530742784125261248115416184609455073941196900983653320714881104713766355573740923660827708616175977880673145660849027527905285165401783113800799491353086279768000327707998421724931151134392058017819668459936636301942037086218136503290157224226202845423042265591148887582854213362423357310656886646922695897640560041354010760546189859459729935322861104380906897519862907292816663701650524551570532010564434155989249841582766148312267347030521974115100300223186149836622612318792683770899034085994896033745905336807597149960809106838026079093442519890142543054186383801218036323341605991337870086669071867265175849227821145496780175871045975931175587464859819745236434063471275526184049900295197019523473304276301871162473242421502043228967113254796092139692452362732344162160432239279163593528782919784761840513768566970253225350210807594555264937508700361291003364765966255360911703195567080590465340450031072657439222524696106640527087331928173872933875212064389386048994137548850316677901865869984585213280822137280545410139464307911180359323971801290826651006463029878663823160889271158272921435486739970928412310526432212262288835634138949514886725256139947854137431920266268420201046429081730713120112507680155483830081131927418828197917121815791092816747474475870638328787954300685652843497174912730605954385612021830485406693353893211457729730873925449740486233968442993690872558327653104557208585854310076969653472319416571767903697963264984126845352388369674894545326214789900036936405095439774548496168506167830455692609137327305076474754414330560664520939012140429153084634175288457258323642402052165916850300852796742712473155325480827849311473020480001709306528166908854744577774638398247611342424357481207681914597099692294779064022467370363049048483277998394861730131272753349308092405661045415468461991266843930621665553257651283908525691941384985146483912525749772520226346305578362518625313475513443278439846636776278525759954506718724422783602789784984271510155310063542565196741061834125130222308863528717179739601590947516296735964337736217497841513804897753954461368009832355552723713861754917253756123476430385439581911649086526665906942567959120519405058177115509763532267307532412093554784359066695258908866268006648210532874773072440559234452840793264850699806499763665550968120081903742424034384757997349310840362161351546241189189605360402709778198450719961304434077042213249742877761989956228958529806087003561649500506735537818798370256429812275719141761139016944969317960418166489351708972222953465045526938399312791024005709037487045572607976427976013174532508943456227832061802222366525483205555281471925610989603011353639689714702595316110836573570455105282492281055145934653507575661016928893573129972293943970690627221497160561373871984558350399835772473311826997254196250573920551683144847281239118188688619714241718995105800640564315474187709241116367486121618188034558453636169170718049543891218399535823131040378369969333646535761226131617046676814775054017732651714260939639670506371457170690303692761968764490410030514028053905995927102995746132696298737798943032263052832641833611490000862522416799934744358133315436804403161175082327554544349023229005731302534108399618347183871994167381916351633337606836203928546475019345744482550055895873978345408995140067921351110072539534633445865350327204099025229956701146767822229296557868438158421673479250012741600140659901013828756941623548933653189236807561510129559385493555612744925569673765399883101079209662533214673248390108765457398678992524340805671758876629159669776567927636096510322203805489593042016285024103569168352333160259367592194547252351962253198937675020026168523926060083678723420959672588799600659818266261360023342634536628660977264415904455154796177435186226196074400834119493038515376234266355762267780681986708992212573142695938500177031959532404038797311739350272228054417308429599163717647306693027683355883515543215796046211274036839370317309293715398281186817976938157814733392395568145937822210913729847392623950859546373165236688680537404486176996723143423849099747008288136099512391026323369745253893801799260086944159438506314212739698981676126545742529180959392951043062367189180063524085275247417186018710615293739804878799437893934951691956919009289125766894240879152544718642634461906036132218836989177636148878948499032868845374453506506283312713281644640963741290681932271768145305860305737674636054500535831094730694643962137473647468817525742107236017017070531118822407669270148636667003285677249472995666428489727960465299482877391725711229324705137446980619455437673047678831337838471159668596977186096312774651313488632444439303943626767127968562909932745325944573236995848389974336758949974767412940145606061632781616674017434708760329370679188587432490401785153220160584772152749482155723385140820158408409220854420942021107232504657397130344085872085920939069387669953860112694669713034705402012568510733036345848510047327524948339448871743365240957700377309437670088688091912778081524088962685902499657236264476815459282271396916987919570199766753329295374712824207362318776297376779177396720505207867024168361134244696673392142680774512955174706368183877284850777526492055615074598893398454305796687110768240565530875971139390048426545239876382247797437432379633530280473656433164966022212679869957185877139339926369941903177840759494692080348523103454267073610504964412326079415323307088348249496289389958230327716889356594250029563707692910885159431696405727691559032132198125621564892458373251143752432194334659919036792306511458690085490546340590742766794041687946491481849742393327018052462865318474059997405992327229729489154935511140466710177995182174057797845320020648428130177570418239047345225747486411998073501276408252219176180632997701247201662819907709071680617361371290883362427442604407094510368833004205926129947001011911105307705360282891815401168810373948979293574460275667672844787477071501783790292683938154188665089281470477736888525755141314011504436204383077250233403728055266834242088093036940625633903135983919891430718119248137740382377567407291963693194723121111486756390134449594972471628304125800051785058059883447651809028486389132040619595419082469163473594638302932288242412732237961415836013471051122272797522458610164335753870230102586046937563613985313156067690170824554739180540397344451336901306295102595313240215494508094578833121464264562019958532800251199217081971793716794182635560357219152467618082841507414890751841053023571068418908106636619109631837671840712918251658407267701978338816803580828474446756138171840472162298225804625731851415478469612517666270754788388968973014523031351768951728092388648644811276974414363094309843280335798858036206219608656847213360182801082675309959508024611065192459568478597222923682505346301502099851867027428126835435676272485888281260744506682684239738786454173237524879390702433020037427591493713413058702126920093628349306066308472580527982894266500759988160725073845470995937349472563330878148888597021135348867653464476663255874520289991028377168592855976469431664469817908871366126756575209210535121436260737983901453957230466938858044543362209494278265522866005634584745808299785046932733276225251703716724256528391970821454048368061088791646702275822559068440384977378389658865184970572470898107094640452876141887337298879662483060459924371099805257588255160770047602216068308393939144378175440081075866803761970166276909539911985971993426571802958129929820509561357617288984293788953493793147882923844237696886506155824368642586743074077946251519740829446004098644238823643195145310441780308306993353167428041671703839966181295669312027601179440324662801424373645326278110017799313371633908569944299966252339252535435910768722904519348314605178861014756362350938753195380994359045140943105963966333246134235169630101495063235734429097727737229238846647239454428502938853028746783799607807794919944432538694891124386963813659890855221789769082564218502600132655647750056256730513703453896396132333292582210987661318113493739466640940243573841973460398615564671797538359018949124497301378059974958063365748709674620375530474057155879299759068841634139921601730272100665146446807516032690384388471962186134096533968415158500336974263576060102134843271639748583143459656659054985045281275136997282384549561921424415676167908970004897423151973039113880620187746981549117236739934924054959747872902847125691927641490651268953279415516380127858316225967269173952207955140230762488739139414050168949519035294769162831258934708784476586602965745625318813975999473949045006949548039434009632479729575537869095556409203767217556390717420018713243778550541298015714387057100540470044274950270604914358794652461238878067818026932839738470461000540823178688038942725593195123794697903374516939145436017942549133327074334472536888480287841827371666878569608986038994833771417248999856267829662389298371192093947101546347019577625745981329226769493728362595374667010211916511667873170611249219567338914584378261513287046561477137705128821916778009134797525371568444539989532131225792725196530303933295829424789416122331933045114102326845256332654659004952831380210454258936918311532350298531548224294808374895582917562269630589225889965321791379666850391152024450015652643423645573749478498660543220124144881064943260903349572637992502825658243229202343869802873587950837944091794371170717184340186413786186169484670317927455985858776075829514592503303858123259681721741778879994007893406285060369066403194421077728091929626612856150961505249020868624111907328982062370508614348398516358911271321636710528171247561352948319939652771756259948536800999865174454884021608842940319640656393250188178241506445824653616488850540475509606380593882413838476510581785210656024553148484331922662302013575298427740399231147419574410250374684150387319464817996161773471468180107129118275688527067710693868319817082427482099949026576654124963351667144004144934745344646170610499557006759410763377723431093308537311918405691255236223982517665407767372587047940886806649992709878601512900927960355120390959872229021887820284092980273088221402431213350430729221480180834777731703964156081657091682997706887781958542436108066214916274800422377669688027772209259124660042763201069195545518702123254402279969336384869705408741784499742468455695282244464388055622424722360893356442182075198496291199566159137490806662364186623907639402691193259878795551397452256048274190149427030606793260674574015854642383666361044501990572605603242495638799721154135073033854904427729840824088407750763927257352616793387880994234358999529713207156182103450201585594416744800052825064396659196381482027438701531414566194877565823214675591124654478590810445934081964860713507693883601023347290579486447256953440940980281685554581245496866174432340796514018419584181911607125988345144327278363022493362217034225793899230432223446218713286418518157336937498048550072012185804119652915424644736606373553892267683920703012095456129079423798238508211853090171215590165723132743219225255965017502994068198992519744979391328479074030433946497052071394860283096099565539384742454053512087524357131177517456655708219485632913321279236876589916253910002118959035825308222653610331805833455333250241360512905444473059752048750622331413774493333828159138532559569351341077194500208663562473122399539120571870262353140242590014518718403090791376998945839661934045215986465711287978284290094300667323645115478752498522496685179443787578174964206995081946148012638792590004982594979510784026980137308038561522826685643643085712017813142588675640857004099825816079796031034580286702722000006929940392409769134115382105530403343571314711334048745730258869633231795665895684385160919000720332021037482595749617787184752875019609277661505645934821143155614158126592235586762822369087670493941075619416873915765266758179223179780018438301154028150021968156735588900082500412589949226961680388684846417200292001122387296628953145585674636042656718639441198513106841963006742603520779809663978111689112466886063645198393407114554265061602722662894109129618439057473980424334211809734603160512741528097622864542732379272690202128066650572935779899087355217509721507661606903847056684668622551370226214777117061589373050185030207978689289117112728168231740177434468382208704310111302346422334452823590186327507680178207117718167037709722760200807253783214277256938948938138400436633251450123958036478260807374375778918627609896527491510277571895420609908685191920754818673728571333069550634758658172882535391483797639340239837159345112942435241871655854797867213506194668413634188231011527830018796723840851468287150860295410876681797776379266189226728392266220524418700137478185741486343974654956806058675416271589360945310652097048143890971441253557471268763901520934259989552172552105594755219119419929332611691155812568314709612675886285993456024366795732278732636985410440608727407980698374421408394888664937267418480252282255122860848301592064039870334944948337564284671091984085487811054565596233351929572686519340466094217768741946953145227467737464807432528415981672288660728219534188457209023846340732534267157200772251953468429282965396903482154225722260071296717212118786315382117154625454357696810588834765768620789607062343714203763362552154156738004016294892487943007511275611981388749279023345771351628690393134111653708987575055124231975787808229309477903165703818052389090818007344120936659915265348204885058810127358275840108896608295005285458692071267980941003790956869553280247051784511881969797043123115731415667606163780608003727607975347446459389862313463572266242195790120711685955638690855859645327356750353704931845100603588518968412056995442650066249439124906004391292470319058884432275502771032131147458729811217623154182819577654335793044095287772019700634445642602529521148737847012478521744714297505840344363618954732467826108655453807959547841857552844303814134670563174212606373938940859056694672093062098417604203148905835248845729972179529376894857987228839286832177613801764566653140367691655628908620632221594918397898094765790346169661312267327889820606199558447834433931988789791889145032324003420409943371792578734387913950144443432460237570951723715008784193920796543800953387405523062068800497706597340553927094237328556312171692913322839961616142392600308146989019483668724037715099596821395257427800532407263068568190172123789274884237752007545736870975870698130379156483548631316586520039692782688950590737888293383152355091754084201306622253452011548786144525661141113994236394296318576594601572757967513268535952863807069753124307322138636299124564286885321948623543191339337939272831840251455112791666142446340188132114423601721060764867500709767986876273942586317069021421762676513642591453155222799573116929579407116069611541813510122311303463681546167422195955789143595638539518458830879619178380436269935729358738086203935412457705898622232452423113664235716345136799955082004298261814549050571043837242084607770890597078475926670901716263143551549479941066484553242597106117918952029705546460323109272891444668077378616988912522651457186724100557813375642045596991266345412942935503319598351352175390283093870121662983490328121601001081276301697238109546890980368607126018266086208385108022765236004970879341877832752583891189718170110132733073251451913450041319172531396052373624309348291944503974938326128350365343629357101200795068926922773766619007731441376515448187006459711729663393908247230311785838031606547152705630183595793769081471736950559042692014022469505136170905097789816651375588898212030734319470716494475627520406059045126457749325494169659437380512502071246406911038245517812474962659318875606091973267340334209496880905208539102162221330850826404487527481620047352526551267669600022221919406545247751912584909399673764093161200830937242709318042220004232407389471299052737119755307173266288059423373934603718790536988530492180897597019502534440963274984711699235593802177213974185199770242104998449527462324763207862365206304726101306683845920879081499640907035793454825428850741818565757015643060702705682227079166830842774997314975089867040921581718211996013661135787225793406276759570952349213186195110592146915989956120017745450377716923757324148333686266469323452428208756910604072732768514580066555250701684989550494066220357987233423539642585722383537282952316687595333213084053002596884788537416016457152354498015098392112199502679639362236524889813136445088468120919371915377144270911422870304262270503136772264710154454016821358388169237843275090060801741978514431130089826782499882188339004785198807954160711409139552533214062106602730749083538767375615579383655181708709359878016311718241785977866313000258048848555359196846506037352383352243742056084081771777852390557051807847035431311704248844331661898879985640185319366613442082850409917051805888860781520895392919410160132001367513926341626015784431086086599269269964773776035389337428044359249401437381395158050523311510655876690448851638349821782247839511652991772097713505891491720290192162774296420228012534573888474267922099961714368503291625796668204427081723661299849347732933251130351106345776973345944052126831742536144604089537942133765331598869494080447051812416027715755310401737425499276709307395835442481780724945396802881738756273924925137019813240997526795280051323697579861167121470289946779543298265290990605437764435995090447478601277954957070290958408758034850531871219501683505410303741776598960455310036742712061121571728164446718340414716159707540982784628459205761182419713108984738931889450575026732759407175451888775619863148591368413073889589719881432086902827418209713003619514517569405904308812472327837777383462420458343237539265209966224407033732761370331453548663057219649544619367034511852417359183202333364633108841155256507697964787237206823851049636589802994858368764817945111671703424927487466932939915318389635320573068242171742088492649225669344436342484221714438397851280311594068055582766026842097138195942008444559407659166316039230066299114867993719848343234309347558065097461367112997357664702668775259715651492774315461014175342584437866140081478535263664870885651381659781463828420517503501369088070356344129817399315439637033055780745479992093397634312230148600233021840956257415977281399948975226294003656592171731650495688063405779973142088582512618036558472876759686779629365192533750278590331111671544164338253990617010509952453956578205147927759380734632235956505727177217212868701982715523197416757455313604114187672802609351162939591833696779473250036932941948164642098086512736461232505189946106280185695498587012148410418675540980266236454190851988185471423670746534916050030425408978594524981060878927646454813984231037689943645884630660460434569095909077747712368250377148512299399236585575537626197091691567519621105074641680699292869345785939939867597994405039161568026967416805159890602233546691060350576211164985858724337228130979421437568986790406708410616237725614247319428296503331412021972431284758650813570968739438907470267601112751167821383706443818021538228272874049077331994166722668842873800652986736358883284694963157071070699856818421545134187901098335754330292911298219732616412947192899406512711530284437255966970645129127865557706638669923119507068702299771406610059425108308062252531930652932143129911152545411864529209994529755773755571602677867255110466287007884936932482270175324532869396992009620371056020008761735734636876757034688672070379588790574949940362793450936691398614915657511357118977217593830652557260362932681964514825986886562474046945125741248967929293380760102168238544914716721879858909758322586843513954510116794512841559906193565933761796376483115949744433638000269818743888991764913023256478026172966139041635977364073875755997190617234778895755093191670254180554428332024847970149935564231925235450794411968255161453812216105077027559166387059815348235802192927669597457391367297556674375692876726319593620656598723132326148421516014190921167495820690299311295321502634071277784109394077403982905075583928673397583244120747982064544600930410625492685130582274720430053484695846780359855612830563726552116267022090494671172613093095598967756306551580192342075784611472281910442417507522120859177329036123523655271946331479661968585849915113660188241921869644244459611924396339675161117260175891181240223968110970670290980199127697488400271107821053337657688039357132144186646265591493753385385286003935992057702518682016313772771850297639199886778356686989938463572558432947754084618808967831840679392972231324498651478658711416896722054100875293344828154248309684760591381823475354061663550318410179704027775544570461661850041159521765657657948363271326916105417582522314297553101339106753251248897100768666890312947051398879662790703373020905846443449921571229801706666318567896933246688364834708393509461072471078198170310187659543426656593353205208025782872770598586108755621506919981580167773151835512060947143251287789481460338848038594596401392186954083433794582282669272049917540006822235793969255754140340896595715762816976997314309860256131475988860380218900690234756220352770758220093448750639746125971712375865334060985947294126924792971622228517259382135769153102235627706187203872120528961152293903696284215717161766804108295716705916073230913923832380072981926257922554138716744104451345113580418099713376451350437573844300610247713429040196028879142145190252534495704624154423448433983408596483965365478996932939262815839548133614147192235083035338039126501717633249348841901734535786519692630010111234410935474403175253630421970697751483808669924480147456664110951947004139144691916384977203776163471622602289833238703718984123645594299998849299930980125657694797033104509055769834302490231546049652390823930848399622158958812567766081982677113705631008057938775300902420463193702118008703007678217854159735595021831560164466430005016449195507082279410160236246145753892764791261231939184451943747746196470142133161465562382622787769127191709077731886477388257294003527288499833281310224655796080974989116035299888147687176479137101373456507101708137811157882424341443710077717449192278390861708059929524867679777888832173479083103656259799213905575376772294838443007637785687538227778976252104931760856206363188773653366314001461524384969683343126123778596061551804927319390549945332342970672587339075808113865604702424558816054549090201470589658710046387093932575958241230195808827433776606017161133190316518500852850550065554432510683647928158977223242646238958983290128274714981005988900763582977842134504556469133485225028890290831489724401776280669955872569586876145705069815934017165977273870807947416383410566479983877357412388605950775974266737939505089532302465737513081557790353062123648769494192900182844731903761637299998387327952513166593882259026535644263614197466574173431414432780718564112391842862331800162620086887919984070842435553441069631329197483723523210549350686522996086835354441260114344276641782413284316614034989373336303882230646524460286034430253325457457529124592021284906646993115932028558658932930928864878507126066426097558257162538576297025055117538968771662429507073126022293565480657298317295274235086317227607766825982258047793680338821570092195375687051225712070022600716847946927721884378776321360328747563051736211214444494658516337408321991798767590443167435969531031395305974782523916331776619138836633138507311914915354480500992716992446068045002089080866251733499565172280025827033649927533207205402862060838006825352340062412378890149265441707098733795817806456638309838723381150749733820368450638375724645653252505998349563302684496193246840760630040976606034834562645858589195083269884305837173385360583310973098310323452017883953629077508158172498618213792874682959230253530115884329467451168239324576078382637321186275452248093690360671712629460401428443926007897237298014861078376307856139329072582453301327626709762222491834016374034221179027069138104413691826614044503324424893104550329882537728722725175841804123327563150591587250619520432459442316403884992012530338254336955246322471958931163635048279728703434832056672218585835178298798728507429669472604397009942921223235067975409606394471099826224101637121232734102607293167497406242425069061580025183351635945646245729330186799248640575987900751954286867115378796811884622037163588280257914830608676743038203580502577894859075760208088390736554544357438301508893664002596747260062211289697667491846493733133548243728141155495535294937501869647111087021079176553647238631259048752141750212290483511809967646330815402777114919206573296916823602871880730258447923708981940135311176100987130548587006884108617936579035324068056292335110247741455456278858411355198644506719097410693457390452156892155071389286162288798856524213235804973516417861009922335189427668866344256908697616508999568754256782348253610823654657019018025551224500331944301081129766181575709807434112151334679361535670093173382307229195654726849658498662748403816767936068335208397899054284676373075203807111214879316894051206968321202042411020733385117780993219396845998804980143626899766691827243723065578639177572113056825824088145368585410785298350557625993440769144580882393022400636420083659498283323573888037293409882339212756447450699538105539740295546014845100757864333179538119223375807205666538817902740750296919009227293608634298746462561215423858189802403779082726070160020902008182281788162105583213121296527341642659671513339226225892130249060912597523899755694302771799063109255197854193071009081490334088157826210478538313569690509763237064050370828070330761042866668843431993700428862196808226044695829404701879937922341371823213897365537286043390874603777375178901854409842493968239921147497884034640452858580453492213043981623911004773623345790911077994961470812202947084990588864246429517599449934702914685726916992561774403851532105070770068998974631047972870921194762317954708490820670529369434144522114577193607976941178985163716916382625521314462788716115507780705460194792082723196799902541306622335876354000330777093788074668026731674748673469150712517211273747191148613636171356290458025584801908132772898482139820517744876358221128538191539164392407650510884673813226056384728715053769000285722170624309410003699944464261703625387757665934629016154833367944015837609897825996917056775618774889206720675859814711289860775408087902837262919458471561886205131506137582400445425084003460564652197673270375898609168019991907884506744612330840521382813742437172996810249632139017152047573165108949054306254649302866540701535467608390702101452711259637791997392775647262690902505012013363533712851177052745588009582728705321368303514051057619880357219268203472564831422461787098298882849956997602229611514260579901352706023104499973735873737009648728746172603493335652440491785358322334318314526990267299454273232469240524804478016566411701702806492780850150931339268663121377007168138478773897683702101373394713432262414616438991074231163649726771127374589528114061993443185734813538475852106847264508769167959958943222526962863906824817923329514361798525606057284107293929487695953131923685282850158631266117643733315612810810707140193472205280939274269735307278385900562233700530396953763692701366074820683747177034232108082298776115235061906547009667367323599020560342521295309008820849098900238414181455333604907600926400240045833465428776361815868675680394126122533795919404381546308466405849216690476802966433913304232778366304201897729889426723325590982436173478246902813026139066452884053452984698503831286952381337820267369800185083683188413086367488340439875248782462706983737414609568011399989604086783893356924291218636749418943645337012062780802685732018898341737291254933632732352257763737853552293382050742566783408950151820191626898459491684074175528703757567044884497194073490886524508764978774112573575097492294525115072010954960536189812243255561303303707085761244671875459570373338814025981959882860530456889799509805602523941136463407358251698666593566486665880128342486602667863641891210570450889815740502811286473739112798477450058033182715949423855498639747702577692778030247129723168577232317624926085586682973357944440215225387554709640362712290598041783758734774700213913749692587381176291409175059462953778503901053913491158316951470767254655991688899965771690506219757297977355143790257132423118390600758430113553546967505752160143922619374531162402349193278947556375162254238470933566653862267501657348729781739878815702353382165166455639924738325360144928748683158427243594643408786813384265092918707614541817016944135965131220579736047680337760334119014860859598251385272796919896756358967797277856698554418482849318757603918218940573802348644172867955982981974893946301788725613054655470148890648315292986671236578339655150217279688250742867178117024055679767614079052647145237953560478469329451400875448365937655872443291666026429326829462953496122349864306925443383328402365019869299355774781281478271328566947687224257926910843493559788040194302676446065026409809893467219266725362365638839528419497207609467687199362536615338140305480251783628612987983957943161323891268162341352733554565090434925418183999200565480003885699518867243508621657603158988354551696485246960041245434834663416422864811863293381722198858684367463486519200076560725787737180226861560396952823109406102324758777311625650489249198133050327933193102782315949533902560704999134585903891079605712366446493761447758620628655969059560889254513383190446105219580512624208049449378246496921594508383985580249743957904430250677449789435931813343299403263374074113575458309354294535299035515169111561332874117256958409936666797316751662504795844651267501843775535196464397090711957080648748515021724113257384491990108543076636713506578190877534963279525249898777269790823171889280221549038956977753292055029480724144053963950817827156226455990211515324783340733974786620672195086510269027516212534612523885522102738720368504000430637496157059597235501552366150925912964918095907096806336682846009127195225819346414145436962637761594473224928769590193824403226013805489338717366772326955308944444599646158393186228113281108067918516642920997938743236187642364136964967603263899258684259409481190638896760160876772892572722287181537386285460615830435532714422908198514631105869618317909839844281732339326638659288695891211819560235645785502117790682975276268815511851098348915174885229533814091941563018078534412403726127763348149664584873085502406083428863066163076067353224269696746741987350885087937522213458355789510659153845473183600266753242458293024953317141766125821318404561444458365514642813850696824256972022603576430839206448264828133160023793958093678118085118829339524606394322258047591168243448238148400896319392645741212331532113382968112661616554849524536342428101603875715379360074931480232748725089964108304165096094745814268825917505901755064044090426652966559543469313809195060006174421379902091807047165495161173484797683812741270533154286924959581767197282300039845778758538585832685483760388341884795713530381667096356970205041610228473743275066359198270421584220208959960630948314400741612565199665374994313565171562025500208296105954134566371229067791843263558109289791049680229235818629094823289351029579213078314489312063539688321686469431223836418588880747066152783116104163938897339219225474422338914141226745061278537251582117782400683412866073068819147752374525267028407537871221928286544380112220747579013191521833712903689034257228729124027393443490451559466430873069348921254005641616067175833773268102983381040338511379615470490248788983427735595468508007952887777747562001340941076029690345539087922540144535035869206693963170974370239534288750795651081748836280941134928712445382632847219113869644741697229022954999605673750841387410688898536585793583131851640186590505022064353176627014348503909404614805289638044432478444014768766709779529509630817491767590502704521302345402735034867523857449602748521156939235761410996986119917901600891644744887976123561998714098401966786639402243845401502242193633910836260494184208064671281927809332975625786230985083346402488527951724230574438107764899173772852844829371099411816909767999491695169571670215405360689507254667526440380312762284809177484298116632615186824351989987713686076881320812975136459222859538200028705003365075996579176768595224233454806944381452655841921602914901940468563519273051970398940872546267968409398867215610914285637170896630242819464251302685756018598500893190138007396691912211122276284476688498519719799465893561160207209893715522437488566993168585604640105246867087900403182318050518984146494709585550420108782645395725902938532015104056070326287897494521947499462852649904476578011703783575095892284022877683846559689722059792431932803852555462842935893387684036802628167989887716845057187427568017096629692832725662416299510929080699013133337466432663194310000461003513801139326274962275541374783395643510000485761988343878279714278516708285737736025558502032935619244150000982957107861144141895712888758050916470791184044403945458749426965092105684520953200352579338716260028815690675373200571585978700003928565617236816001242092562293310302666777377326919922670557265386824755358283055657912189648768318553847746772384805235216515121933561606111096747878547980260115635473896246665036107362805116261235857953723520484080935807193715520874052143925410142973369296009586897947572080180100884216582643889762937007929548180958751014271822558505993618024685608867951951328087956396414140612394201767685978690906354920047131753662819835702736913538728635533109676546596298056436259844904509404560410789329629730200760997504544953531267522918735824832196083790035759686378111115041132913795270874733881217113632467985245371812004842936950304026028730289371014766738117463329345074781807040081234261632517769479910065383019213083539564966063814057328589075398134328899007381954136885670726235047380154345546909008488188129012320846208793264180787952060491956407890721712156813616074221091097851962872912455322203417661971784904135774644865212070945572181783438676977853108431705941207766598776527879929963381602735244795977100479699881206623704744595091372043552403566487849204882145472711107659106092879263378688852077728201485946943953650070998046050579886757333264820350911357940626716821280072269275341275972927806880555326319010636777208755110969608316035055106262121871457912640902984208128131596098674495388337143746118245799384844886338238501749676706214300331883464116837586600965093018646172833795543640516367587975375468964644934618461124737591851516815776808478503480885085570558665349555223639804375088203549531462069948362498016723267559519783522862687515449958076611996303473641879019439895634016193085240269856307861599945951679176740748439555323975496161570202133879489117805383981227249248519725323996800139643856489147089686145452785858676204040619450240682188268414406533228458950215178771408044103514701883111529751506578435400123546263112236463251596241116228142190735531577216720839126467454571776302544196827869516782930217997725469985954863292750180373126093051242772936083784889344804635842851436021645127590870759049531029218688771415195530445807492657305260710994769794090735035004116394740366439158483500014939968760194392316537357805469506462172980796845643546989671740982238918170297116865102965978134930382627177094664805474078555912758038712606313666914127004364165019856861785707518500654483220994713681949503206193170199358137304179139095215163089958047561618717857705817441483072768831883458769483586366592882850714404952576741850492704897875205297935455211073652446449689305356779885980478480898079470471794431868594579433319919432435640886522181718086626425641246370477020205790056393573867818058313722341873442581193522347877641437358730739560730288247237243130686484474684633197613775062167284569336225468940673947728073999444594897665213829867975788044480000722900974960387550517233861678312955953504884238989918088088408229234389859748912093323155174580399191514324208428926987034154873551693763900894635063908656293407362936941790357458163742681456592772582945219716764343323085297181104965820149948425612038951444790968901870971131329240874751281688372175411023481299512105523745972838344206581969422720005027820892145172006062674229266515798403308431807086357651600299025161949947315465010370022349373211578780968607927363834496065117361650017581474834750144458260517999655334744744358479136330991725045311903308391931362453344488836586646383414286862716330531750269885172614826147534422676803385938316164172163715768517648517776616076375093895449262644203824365587120771715276740771670721463235142224082005575835754348528083130595269422899176323121391024716081286464045703134473392352768312830736296941853526066905562392317818027121025599101208855354107993171621589048331526072006720029479603882561024205061135746841080056071833850464465150098642988312638376821087274307051923245996510905306186938372990966186345747571423736916223220481780335436463859244795754927974217079648653428379417164719927342816265167180806918688563791177232542569962649666992905339425033474056049408348778223862620318731168053043743812794454408257760987193154478749053763566384526308326260318969510257675325122720415688070758094107584424795081528805170133235146525916984253641098823317929634438705290528251571399285329460181069908332020690213602491806157422384178464294077780937149010541103810197126264634669085943535123047418257608002006894918234498715555905181370907527773529782400312878434023929162216088628887237490754401147505324943753781103592513817021942110344997172675116314667041296805821115454329434673569837276477027334056819832978149293846852675439498760785233231263169672085733649579668442323260624524411049535015900446776816736428714463013372881110651127296117585345019290855430940602744513701890975550840695648066285893757379412834942483675764021019054845837670654504312675820139234185858579079620591017815394645238425860777483493146331377628267085035344629124760443948417274747759013011912028351534104728054546316777507475996417824732062547074529379475295988448437929192905815545144217913625624595380250904878266282419992010527031966675470989861916769344415768622597643442196997157232540176392186463961271690985370955448111867714589730281674917197113469389065646202098606720473931733052557027595389996931251044672833147298834255952578517441823884178770095852078773613933508082590470568388013128672335244292526614934958851368089283194731909495583493579007181084977382906678013050367933728014351137073858013921700946720765630071867558982882730693614249975723751444999009572589912063413986102963318317588252203235078701530722754203542491417122914682165750599218575600281424354084763098818776442363670994306199661628692518034280954990300946562935950242648093925749524159975972562705737678953800802847745816331095383020280650002625261366807077473487775363509262009551456722498174565866639826208582661836122464210993941428668797189461325983800818383414592632781951102035095286250450419890359676229019178442539085316212231722250609310622804073874528798003118890406238409372312659299724839996663589805836399579849718147935285254473939677820109100467026874733734028977953367574591405224506330363693903181759629205143368825455445693814522054209329163080536192633193205852297519535456222150963818222354338388841411823421442980047062191199927678079884975411476111935793725372382995756251538060344386598566609853663520001591383462778298953458800495575127596509421611064995186080798023800931365633544621257357891163028696639425328095905906090456170498638922936297191947501906055667029504501840205016367716825609960985454306075933629702225837412451783089187103745524710090212943530596502333707354584987913324738600601474320864505020467014810842817868751485426084149493521090799158212383403811566251537861107218398383462375582221712687245592580177921670576095993522693996618996282275335922635558481711595561026914548331960201897106389549006489668464669720860116527643521506346713721191884594853070968196455589587585529776205947018390913694947876884327367987016706960234555745562607966603732983581892147308264593851800120720884611090898734107116025061528293124699725907164884837676724611142499956058215991753438930151698377951181458264807591489598195827391057347534809153175273594024570238622663166869242247721869694498764505503487630610685620141591347952382257889595915227803580931141707124851612956478758760338116896057602397569284424722701823086741844714987797562221312349011024520140214957638743326036588594178124085423923724693253743099930944099451457029726735596680627211981585589992732733582328745190510797706325446796819693579077076423049321768144085149669642639276943831669845156192618212451517508972067448230238539407212938605388897594161695887082179387886386729672648568816657655130119082372510216912489140880944163001072585215421907315930832989776831885147638280533807000958680169944209784941479217127339604407988870831691810058079394314704688864290818859204706220892921494023861912880556661323611047994228398736673927214452153852663982893677166264815030916336415575720835405856314402444528966991699911838934626265527953017846684445929241615578386382767167207666736409725414865065554082660812843038804191854712261756418508713800296555759052085126692789665532010602177212806519556529961504836453230940117192600229984310017011277166875669639894322806036674621427213501932052268862034743647729575120962252759553036425386536357206621743776172857911303001717983860344203298447792384863741689701621641368930059230315354313385306011025241805267702151696834567532032290208623716608124666685924304900790642727742474530403973662326544004560481155180132744935417588331413430433900697252188874152045688889465158672850399498611185720343425279261152529516438902840900525283986909523736751096914246432475019449855741476239204619422238624517257258044492786707470863585621669930293442248951135550903605423535661932741447100837680024261060277997215941674417274267606975120821239266524775162295621195958562463160019118292892884334560145189889719623831341501553567312323451516147208985790321154909828758115265278776677353383752019173368174951807601068465021094857373851814659401704424028706294245154399075977289487805621118492774738257627541867333678769682606948416887591679196969494688913302026878971551130390996280317122489900034038129533827670541232699604648094594425697810593361505449805648272919413971069995432724481432265149006500791032672472526035758771617654087930556803441643693251508124858921048099367846242307356812927886713054029939300042968368510445235051811366040616559512488464376973442587290348195513115402407368331774735098253145488910293922993149433861529691521264251540521215324267054957672458871646974487687333412739722224571853521313103398922451011293077906162923179958112448975800094231073904484887995762075958395775808713060553592263149348478093638884549421356972214470498177374366551249449238503337650185012092472115245618034280276652580824852840815966567632215104735459748251809751740878264913012788297448302280008024259896236188125070167899931684405113677417154854147167565710747740556164425104481766980583853175923453388618301870814533783186929997148300837870519496832213130656960570851223737570214971341011729688905569604067146201172076393463549199988100883657496007168999378190558391489980133637237965779876958688506952302094614400613066481582651949737526898212496957908188108316032806774686607647968403100312498567515243988323889583303397560996817836429203893964783580947779847794612110589777674237310767861539077875782035465662286495024138472910211236938185230116341356993637045277662533686170653556619689516785875436345778719029077402526327712534783321101331466181571073548828709428768186132982366354766048246127410030349174858413939570024830609320589716270277723082563820543955996355248886558616845617753621651328359423624197643277208329375684676004278727410116332140133961689920948176954003713366789786491735252946291174696994490805290263640214714356378809466059409016027682394027275523481381464057801307461262111231209035695613614343556365381781691354259841851227292176619129658064364116009760165397408221099910601533935382244818375134758259642540144947528116876270220894293195807927189015383095054193906579215980342225875142889646032189341461688042152240672293971760720065482152090527259434886591675609878316506589819145740694370015161070689318025661668319927521157054866448885958880106208441916863670979711909741044988333374281148468656011601947688264955995757195111365849152249471165211373854478477504390667849538432941442348279160285334140543009385132884223820865910146068405967068668975395588689034355572453623453576991299779705630720265353452040722565366380812255391058855975993083492976063609038252990004851392211336474719810730636443944184609731261687548828978646153124456185481623226273125293663412088333113302246028242507639773693577043196249015901380131794456257999270140006286221044996923074089961469507617810858926383707154136282619432756956390827958524711883802886891840055590809084595557840933968363974793255141711432953574347005280731002381277742048707585897866174420898756425226973040171753065654843252027835661269296719027167789441380566665459854549526305840088468746298241773182131892763061408172007434436572262683671939110798448450296329823240335543609243656454766278861449113740530682523445788221842885621116351175637384393930503660226706325574140916663504691036981662484408328023031892773815124285527430554540580028663249381950230005710651723876978665864274163609666685630689159519014057352882502858401435018683401202259192884036336889995750211356924905164967950606703802245291604413564588172038597586243810681238502740761495332487929152426852158235529771425166223069293021493206442791774372198721788255521800019113122814057586191962949211243197327001787471256173441573704131893317767549418980835734845980852283573540591655280520463946655164634586378950821449827695587263181576822877163952219729416208145680240166532013060136382344506022939964103527608516642605326539309178271634178667863615450986113610652270263427628393121843607993531553703663370901362904254142291128023836686959299553149665937450570979533041148585906377742675125468152708702686674921229790162534516549002337857608190609449849938404072202247786472194247459636344182275087432503812870934855760324136696978003660168970709961506855598119895447015962302390954216412651916566487457174172478631797197881171135998019418205032128717127219091882534716411908259889410894806321042424135265409397029721416153625362432330019502355326040694626124969631710878476899996438132722992692990783560183390269645184190394586168169069799964795950356062971775629829341623512715895802415416479520181254711076227893914805691185436058575757505836311433152599742876948555063805930602995157781958437016533598301531359911144152063285004804599609083727759713741244563157346746163641347663997520511278392702238491699469650620745899306872418343758581868507969462972243278850828124453237495854068629994313658951330535149783801705467247840458837422590003634307326443012797030098551260973510117929809248547705379646705588702277750026257924390280973491711382348946353560759560639014443873226729241296474502915299197401207639081947848613613662547599007852054673010166063534072918099039487496760225176660566263291950086843966276173826923595301550683475187659793230933212396208780297692654340850135820392725918425931393746345274947489082015988456631979519901890850068816737106644422304109804247754626737911577883918020310944772494460532773491922937730844761398443718748953686983113192628580680404474251030582278041853637785507447156667558299651700018017080384049440231427383595977155814936368888703925269291787168505632539526690429368127779648771946112742523730859302386797252685130571137775619440800712311811068441684266694759847196600018753924567541548827772820466754063265575538824769657019899771963698078995537637619601334253334564707886340996601776046524761399165717374416013187477578044104208470866090611930034006516314962947240826677569971880426046429248763527897220154010216902322279738691059167864199659408946980464189578681312472555096410876222079762116627516598436350967461587490975441828122479557427593953639930765796814843254129037190144244310945192442888864937342602986689859611881822379417275365150768889845393157639025435733651714076136652245288761781254466087586262871465291772376535891062903968244295263657698428180651400084543119021240668657940883513913882955244796737452992531228452118826012442137569636287147986484231022278698119165424263615900487508093921780551492441359273450481583259797407834482747697184462760836496804101229347709321400363495275672329688894815276632340629951329014961502310405775714721585209643969690703557859534176090360285073733309175098753110896914305520694291334933695265423737886387290563852189113193298145457368921309999058684559468667281592587175840024969169898668143021693775632089616705257043799336213773044877833807064574215754599585207015896805480946981937886348470335506589935293628060858464523580168012129095608408628315889873803669381049913769999143014365221487879771478153954414867879936635029220641790093101298311466152321005430007785819234126150468271596525364033239209930016590824266846189933848417114598880178746449364365064213313160638233458152932457518446102839528770946094910501126853597204434021275477611936001249949976308582716072113060706774570333425217406715654917953973812746348237275811473324222882780134426755242712478875899049454019305533394564500512937381750581116563451931273184879969605499166915088371811634385934100484273169461485884834783465676378142545406942712940307191846652571820053056978399511231568515741579549463537659634046568532335370334413215903224285856698386987360470388092593387754076999348973901703229996280314304507223583699948284660183200486605462805434667822315473191229248966573738533590036858888328010951073652933798848643113618032054750152316404090764921660186526469423717710948218974882488830800843016736144002448123880470044123848789664457471526817019083545637559472369707742441074415837680807818642982362507043243835052573954553697377214711142871371696766031079613978297384627649831076201954937943013715426918075552192008158751374005310442849874379757427496763430664127412201368879787473347361192092629689042861627008837626091829689625919082823064822434449433862093829872097768073927015868994631097131935339839875496907237971891040185133379090053346913406538229309308307941297315893193310377552993679536503962832773192092576516395108764653738947749155993664701552537535499718003819870385889083217165933275892548397129496134316278339419303783673081454012689084409605795680439126849572031264822366820365672967574463587082212246945101408312651898811668089242814888662226936392910867118764399000067631852672442611883635085759699814374904168305989938276987561825900116528296552424129237029136218191480617003699289143283731683093170175010537429115371774489110423340630550635552671277126862404605415421820610884905926040830711804183506339677959370386281130881408301958594804006947728076961765842410041463594575378718994249425461121439990269048154103963972999876206132307567174121734091778934524873508579383681727074817545546119568677747023141990907072563625332171765415811831234421702749492263899094153789755077374315942567941297024445021638044967418264939140651927172574414026817527318770270972077370446809530036841532963058331571440102397440820798005301827515869537289885894292752091416389910813124827398747598392444380993481777983411111877569317420105996685226460368038661857281963692171477345344539224291837673714367281632220177706515493907444543447309835155675840416611528998963114453511969833325096277802784775232428317774971380503379361723879088817304402444100163269993874004677954662604512536953294003092331521653441337748071383994950764251313106380401116011096091820646990326433226460545239610225833994047866997337716825323621282341554597971512478104025929839462363996143140633605529796707869951884022368113506531616808830137779034582972238433535056797181089956556930323587867438776794803801224868055957804150682235485354101642861240966986935993649770357406611368207049996343824948423360414624572396698599129797185567163111779950599546531932357200244446907264691908293604575268866315912459440397531638111877037706865365835847926294385142014630719723798226982943905342973896499272750065502340103404134044834643030772073314590878326559720904206862588588491561040958932990457665025200372017916917941990889903008471418538061540052216178721434037580453380758470719063713904051430902664198597621839100536285475545471236671708363350850054497679983963525546034580023832889517605223903355301400706471702238977892336375509940505652480592412916980739337174178633095714484105380864575982070964511944238554823174302069461301752685072413901883055285559402671905855109073078894499219595484345968677312927990204382779598494131375870768529254631978213615035810222630017046079786042442874434583580794857114942924439373566459037805872840892282584370813724345365931969094124346580923607559145091657976419937350218683725495186321293371162066965779742286185528748494698698642807973877510696724943598664207993806676326004654522895219745008568678980458373395198653773692561633403568376731129903742043628724094451889495030050574210661650764144014107236646542626219275898160016792113047185349152096717810193373088232590434397744671293051736653862027540259582022524945849046395141753094401144755678472547152727395699147881587103451983518071555119805536029774188117286173276865432868224631633842476080451536079736820948970957054482146882449032276353208467914028810614846908418985745985203075634936327675605303292909156339311711966440414187240841136933375092079281535719102019093140215656234433225672721528768252568109738085738785428011529375364376960889052616601734893520848803030031600187121779061960029800567729305819085503121947032179477787091435735621856995728494470242685637570553555197596792780300399248534217807397239271927727313265606164729980748021224496450599090223936534985752077045500239431044353299177294337644020509825125832688603433338183344034168001612272845369725134361840592598075461551537342491123075398531629399972328533803999946652614687740512552790397940871030938078283273909073251345233368506712072689862438793124424463122653604752028184863835739433418662960367539129860269610250548888238779173860188367874172674162390874030237221107483240096193744093412771871947061115035454471835209838304755562967039356623125267369101724333210896397098308222789122970462130918446655300226789048022586825753689876700810934402389213847820973675941249897490464190363313469256101229772186317382198463266872516634393217955128256186045085754320160772705042951859295488553346314182992231840932757385283877173887592768253986065028458095628233742896219993600932913012402559879098028274567022643812389061430108230912422777896196307581927188813019127929436794365102017766509909252292247021041409681998162754363979897914513367198602904335987500923334314407447204162283297438860963821130973194706429297289993715831550218510278282818214820214980800442137025736834596267109592089582447178286093340252525734058164715906690606490356512269726550199008905394411303606078349868529862828202479932477492897273362794567918759763539781549112336647025957082328778185862389683789284965681836992398493586487663754946648768737588525194116485905297120662693483006053345399735483069980883170877563166912167233495049824111588527911429915919892485577906279003118894911230768614666399212537908494045048255181269807805359014548425720860233178707450733478543509878698262089737170863618263446235326993937658444480169327918285589804734120219961009722509823249717632916194350053977209569308478238405125132125869207811297992178207887272218986895217323070316303842609004730384366200398962958916575146262360516266801365094895389551467433036748877206993736502605425697333305468216767330450538929814093010724444115949003546471211571880348331715092475498711924061252167007856223759703061384864079909173840155236431706096852253798164343182649875412828875308404236934770836453070390732780465865785611921726529774430138543012643488555277572172323634043112575792049430582406490417377266506148427532354708034452775896227611235645418286328046474308322291622260463081134860166583651195444850301595833859082625041604484449185729600130468834426323096902107413880688221103549022125409795121926457738138569671443036998417469052154590261221042703527042088245383622338176546288156166062984625695450402567350558004909804272670420818974196404111481527051440999567994017213028664917930967075630628123058652169026061232078987335716168651863398579119197149302788321888606632049554237853888913903175035450276974258471683328666212727695914618271748741797625174846758301987102359569969409028415594439164396293767894420356544445953360177894148740451078834956841111155470910459520375056109257514103495124124413855626518113032069115898388204696476848155145735834152199682406003043158098685890395462464954279581776814884420016657807538143112374860306134903398601046371219597334196110400369949409604891860972055666674147583963428799990809883360109266365195779843179142665443913849846988878702374463538810139745326236695369971640504214589297997120211836501673568160403645374248532049727467297983161323855852623227515181478930382334381089127130083710930945779823998275606711054513829900145582028656407567414654823212556059994374792790304705696998349203518187086758401899310654770500950060252354219057885303075697586133170362553170589172621178142104951466464818658401849358179003192015718000374295475903950551948869707940897959961912269074165376280688759535092648828467443515695891863558862041045636242621488697209266753691201501522194781704968362235989581839438987754418827923403321491624879858636732956822309027390118885714153077801883940290542291209909539085434128220660322964354999056846071188114985548458394434355658245496311653832009815716469335428746107288556440796811133316489213401496142287478724876753202789364493321439191547457406575975820551140859846820307932568477865466392442236723932411489138962586922497523167929667453999279956325897949957904851589739411167964952329823635570619812277829323629690656490717233372587219023297848480285192245055561760824201994108816113783372845143294451386129239264642125067951768518120421402583815371389635542733592685769705692240340872971947956611850721557498232241097063549280917274208737195069858477457614820756525161617868129865470256099869799985146132412284427909859257264668545196897173167014746676749344454144878421991428336324877541215819290621494773366029605895566131829226073497841829011656757762425581779084913889805586013064326581914515314780347702526513531044863324680086343288704712075419565067077095137678827424505616501771583159103837639189836622530553816177349046358257895900912127118123074067283109357751280829933517192437024881632029397744369206220313670634574072449920231467335185975391661592720426475617177749289760261109168760868967811843898106214894166099336201236617965213526572883099655547751476937437869478105844670852249959611191309062487810095259578354952007626269642414502837545467485065190112711134523095264285960075597109325461047808913803258602521408527700603459184288085549533009522311498887358750979656963739499151792515675005980394078992128492933643474361890844832596626712082958310331312043543337231541897130888417929875895346300225796376223187897790666505175249441561548539277828229340677879540718100763587311210794576640105978986657787058678460035315410064085447379943830999956658119693252102521060638345960160227498891227162461689090997866413457249240415766535641191358054588196453063156776521443313506892743603692111525820610711158976781119930923785612056257719778871675689611457047737067119473411144960402729998108581613832548887853240833973095458286031290783346911581701593790318728433261361825792297274986240826006440079326958949764300819546025236314854199248616881541515386068236180466481552289014437846011391841251597332850567957254858384004106868145003150158296748589800300408270455265090876450282212589055085257694986778377298681646517771332405844189524264394846970825095620930120276789109947344756298642177000099878201785690457952476666022413865423727490469390636146796549909580962921320559680012010969555513548178748400557673651290379163065062893269183376475097859000050416995157253564639431212991607298182228168796396429520569287411063356375518549879780402944474186881111664556464601828746151025436493332360127623736628208509360273466178795635912300881124559210913772611250790334533083896689335102604204335581791873308830593573761899283775664895828400313331163187616744199738727767884995389255704705579985628118083102359801074215885974719290776933540583328117199079574452658594278330235810235781429137983645248417977620897556473036700602434081061122160724361677161658745541557212668368187088376248298288683037921100572403504153567093013429479416040371620642808904381954140595106374309575423823029123340020156734081304858349220623722569240497860319223675941610198373084488758118919009364943956834314844616884228409900732717679320023894227765899615781244866505016396559503015011147893855205749918348409030803731765267916629611263175634206324440270238945013472334799343056644181865012696405541364217580767569084990827608644373701267827353658628948758451120197051629145207247154459234509709747923991472944759469423948927004291342767825470514120270991747552964010216966050254556096860673948442936239319303641215036583322766163273597753521380043023936555922071884438290625370048419174225408112012579739963246788150948253146065084506090776681546350445559703143074860117587702905916401530564630947784981883912416761326158346341681775981647043864431367809989001218140713789327648968660086283804931788009039268544804885047501732573673657089253527594063107111182441476511657619213538809815368090021693996033676499552573451271004939908874755406477317154287356084615129194642137884797514144090490441120108626067974279844596176514003102458466618179365427713813689921593898299723977772533674117503524795827504902418236231878923707764195934881988035583246172221560848525875816490919964548116611882916452664705028493504451339211352555783022761296143983520895559015041110930880039187925299646732113546901958024296786147497570887173329951857937020822733941828817033496329703470519491118934790531023715109271167775931693893277256710238223502614535975026885621005604423871718198545110742840022989839597541600851233100332815492203003012744748938130696426039056288155873607618389384241360346334778008997797067233024005014122517839147439823815982396245613649253765321298455035886752490630661444860320187035148098682404634287994287674052643561041846536893040395015983448066962704418340781995394435941211260654344850644038570699767623685044598494124409084217529450678920278438950965139678730184471760183632121466940751110112119193071575586205870447635761971664323064879008280191009482485243101866151606928014196967473831263384962147569888114787561114668104971537427191670257893954850715892980511858492920347387925805626504020904692667106246065555656470809482094029993931323441576692902291584008399966863991382962987522938459515829841063021054357238905942997848440688465799128502973942971746255415862263604350612774541203443134279987092110020612923492551810612312188538263280344326092892355118580751856814736568084317550860364510698610305978494516656890044320763982494766278232501603012596411329335074438899065739478093606653959467604134787978469928537218403927314229968377848545066479644642403475328675531352386244762753505171114692865890980288799119644338753531993336979106894234845859496105310864707501471929283938661594271807359605539483666624858901146670384750031690136504882072666213301508435577320184580031684899827465763227956995967032614954760674466524405077601499632925220132589691287972320992691673379866223566505413297361844463148268756994443988985730717612053146174913623347143941062964570637352728919153233382531931246555127335297409706343602685735241915461775468739538914751335673855488341813405561929999891386466391319248084000366258826315897870001416888009491304686936845006559613997981193155641212592175934404793118678900768739419171549858549534368891885316700645117340010280907288398918259686701238180198714100804932367275249806887051016553623845359368809163213144411123250180463916050521014664420713126583837443737941778646158296914238007893025017561893582071036641678615604687469265472721089114725494535614951744182236131311705185046974742925273625038317543378188632898355090893517016299114113608454965088749066038597973546906278767230422328337387756237522087295816122278168253284873600355753923977626283181232152551546299706613189511115807295501185859948844714926289913883372891865530172999241953307980212057161396568954264983066414586726324690894525456802365987113200992877740851742472973802097748861702250099854604666870907161835897296554556444671625737372013143098347403655693430868860345520572868390729952688635081861953150211653818699484578275961783572072788563121532404325895370004563481954743360535799903238652673168251578806599209974963666415409154638397374874273912919068941059387920584410405576013483462085733569915705303847516648983564393119341855762260180938881512151213227683439408440776695492377495757951826775847713510366725717974175546641875524207737408428256434601687712023121887938040078617080941247995940929818589814186462269771908995254583642981679214380947306156217612010317041311470718288757727769070276212284861015766936504341337367031802619888898021646449272224524261711484487651509311616110643791748976203585986172758171953143744567633279645768138524474560328883004443884071634650784452589012173323390689477314106013112428543102936714855467996457345943522566647427984287205243155299599872266588747885427813059051493800916822463653279512748931302545032916957951990025009267843386656942923240600978927052609741098441403051403497035102004818818482758966475545336589713110095923381054414876342809857268527181492666076585523454222614448430607090463976110388071563621179309243521787649135092123804450126461701325247110285508798737213415289241897121766062050814464339865212279025365077220118347451642532260891317231601698425405347781576558766108885341539384186149103779290180507797901390754458018860225910587638866698721996985249080665377727122832567541650453063916509507740562371771576600887052290488002716846730182184037173514907007623510736462481219118963581102501279429745608152114447079071296545955556328129049064827597191155468350323033357334614795580196513836932513295235098232432863627047338476598674921955443197402871974304414737008147769710600508543856188955451956490558394409000157221063174037133548793870373369308124100575911510749190527416537688048354726074263164604713088103206288499028661155293002524711798168369442782505877721712235555426981559673123790189944888129439159783549907991204755030788616097218028975231762320726104223508401899601350150464610734585183801149835794509819649582344673258223192829481104198414796264120932539875907078620410177779580682337119482014210566811224169074146006005184296015334904831945050612743939301555762634901709596889552937930005056841724902202379909700176200604696658866753435093208569426984152796992084699598764500215641929227356504032695331250271229766499357233492648404179754627580497906673284769249010566880139754642286518012877424972715571248777330953425757795139855438814879647551042981857075545628298504995116556276244308141272522698557602923329759154851430944159075160104470050906505643212157016062994548509267056828022521758399682162085738577636742266420231403815521737408275969320150382137283062051216210533429120261635465700298299872127080469575905216629851710927572299329742360066898005414188058361249152937377003637037778709442625649062236298338617639305453433799713140719904923491408000548184909970316504870522094612911521504783585364578108047404740314485855131695853864568499370247620657498973331639543669442478273924861044411903321495933935299622052804216775630427501021621494484923170341320208472011115431179656237809554714748829169451318267475315740931306135490405605746151940298915777379324865940392014247194910390028565399201415838518244451757649840134053255914952121496357549905751620236356838923868950444465878404153728999210767221630771142583375539776856770924032439171128738329238486292118322764259218236706843513922998041626570691674239774640360273020642428920820406300681036796511866190490585268371268656062567416494033353353745793268841587674085594101606392429565294256152865277156051965807846896534439858671663652375557050663709209854115637288543699107713132652906676604621616021020654488775639861121084822555364273924535218875171010564984350459098040715869474950783737324541543294064225833400972207117995017729983011719342853816884227205632542189403877555145792685886948286538125067459083421489658587449093441740970251584362701905368008266368363680153285983897195682222665564229137721549841476181788387965404594009095417239635437648688951601473633011052849377275975091184581240985139704330483558617941805766885318489904309128090428029289399642263035542692678994170031645048656163748575101028289542122598621101011223604090869845135693318919958661034687186327806523001882736681686540291434279987039082735159557320727765582310090958963174903510926289561837507477820852752625795311979134663609705925162649874036554911094934798445171607030591715849581196078148928998717952893439058958033363194395229304478733303848572092139926061562035389463519368554301997149435278104374854201957633111250316674204028231747249642367988171149143480082365391303360727969816860269080433836255652921818883371538485915949024928262821585621930024204849429530167055713943379397308654727318409584320441338921899289734341642680763527683656433187410109361445992356501209573665893792343385533886791340168267251914572070982795758700163012331153511511369449577661063655233968563035537985736189050733675553025798326712166371585176033277393305771579454883996401677760539186598260087589924159975554982317246186613579539580703520381597430490077718816296636672322114588856183008456833315563564976040369856031359540744651296751314222087166382723919362254900172209630682772655221367145048308698385675459042492986397794162873110819603027549249009163377738965052271812494034671276355273382682683730737725803770047987110065798510973593143082933630524081823259719166348373516210989634184279214491155953339167834627615548876009022174320466496615906161511836334800944469769451268307655007996530209185041090131657125148158115265592629775392620721457489398854261774240430129877359923051687430411770411823621177342547189591154512624086255771343649980979779609564706095161009596535547116264166011136221325806722391420709550574544089910966022459158094976181118973811448056616180792213348520259204628343993276244899523566622815299490992440576070549296494097272263619461397317756477447665848159911207505468776817064905057025577377448954172606395294317153234937191329373079261667678412450565563112724869786172892067261134773483672903152595918194536490914372028271443632726790453291422043385768380303581507988647017643756664497291500844751635572956981668981815527385050557368467762193596597650134355033758694127999369004325336714686234920186620804068457780271224946989963681010050122571584477786397384360477088959129800630841687787497785866774852901161963870616369325280553124267264568879074587941169497033901751661873208870114791777613634184323125651824273292132400257909203280780485634493213401294150380234205147417592011337944490940441058903461149528850886097929031377325663132767349396274878804185560079130184725660716493858283255198135106551204217753747091490024186900869449165552917869878145448015233831755760707198496522238875527538136416824385910591719609507032239590558942795909008846499477635317104741316560664980876209629304923720971606130529159292286434898141839392405246078412058485164619623818731919367996561027234338244719948329236314903080028731977920103589934113036508673149967153148628275300467320440671412656418281987656896030257062139792618594878744863681900842664303839643644520283470877672866054555090407420997321815853029737365957305790106506917192349199656078183680679566329866469849689168454818845529024427068971234257544949517170930015392764224540393354460527641227736556515029215230754517037275866793421872692249408500955696380534235887403893071858473708226844037633091843504873029910370979568798241677625309311807197734888393818769602191260050292734781142418188809348866497930994947945815337056327543434526242767907080828724460167417944118035859860521346816531677714751627420533193268442139999564873989009560845660131878102529158468342827799526229011477897386474286572591804076458111344858330030313115748228284669460799924883516437412780318366696356271884234834256557701336998873214115490604219281512808335621550123700857719389288839746036457601453676833923834010485273451319705423243856511361732865697158613199299979477738137698173393922375776859259112434970352857506985869499024918951223652295528202085883190831812228597881356228679300274626810498608161885174040942826856394251451368324512514574893738486906660851397495035693703138177426880757537270800944738278563658787225430858816071735880566607922887537351934941478240739369447913591611110417566548943897432415594627627761307011395467991779865395335978312160123334676858804508689113471535524992934874949240441460066394604347804570765432659880447340978924496650445657192041631189337662296403685927550997108861921007729616819027722482207823450544341289585189437576532156416097681060726863727874039070064730400698897130983315274446852122291361227857267404940586092359058303193538621900104808023962446478632100748371537496335808032351309111742209032150159766644205391845550707161948426317907479239423565828969605236295125508241341093943439351620161955898352783646726347312798178548108383446456442525377712725160294860532287277891117151093230947572084231080729581374619359450334159565653823583946306553611838747045798554345518954615073014087125010701050387636903112980169054217398748208490911707191398502631605967680294025806884286917690212639566496254090787863309466872907568023266334469219974276208427365239285623072043501022551187583713139987060956949941963776781620508698449109978831898600695285288755454363788767508034767780072202177983631166208521968018104072238026184509445956797604065380259923678766282907831040871609943467730702545964445049682436051804669597712899394870226531263854914631537518690431327621400578273211980651723939585925646587965524621083024946161799670446323612423489742382446012513990761085873934004844702433687584594881390476646367098441668252906078311190986798658861468166578154890242406629090269143139072292465603602473860015369038319663807882183589553252117761105250431982533128592121373254479902651819004630513068766108506425139108227931865120550196333344108889069011356580230347444630625411336569069460672882045961985308587215670599828581357770917368876705407095988801882118431754778517705992861577369345550676094030782937813083408764146784282087518945268114920032269608776096052154361857763831669388545102653029405462465367302569373141847298082962304878185883940209413974854579637276763276310205534310894718857279397893509459795396313297860081578649604929191312919510624001521713847243527639453116632808087560053234875861536086205468097315488066532445252735028009617700680227796864580490360275327370734131756668562469332100155434968876224009637226515574171408590171236495495586440557853426704229168459502511219112572319827687765929849549257120976454972523389896693453923071555013485205254901043369002252123520745437416866068962837162935205616023086155161943076055047974046031648362601970005239667597987002482368537719044730628230188823183557117919060758419905225496007048274346475395308176463211778494276518928081939159045881888649396869666888908538404259882453056986272627341039808446436419812517095723182125530102858086010232109739626791050693657611782467946559207001308746602129248245145077804382615468344891829663157201480644115433896246134054925008866744792852788887927063738576572308178735942353980366130548313112658117587755028152321233257316385590677661020904152198849617415838451453940842081471906216733608895957174428690213342264805428818452494004044182837164254295234976556356258167124569117835666518004133307864344879602117990163031650777536245800006174736087787751988333905087830438960897350538788479551910430464532190427151903085348831619286273924364337441029675418745063088021245138454943382707332179969154212467454722847224217663997253027255022496431546227143833344148282241809222091082945676954929123706307590904832091812612001639068326518941996895049573184509108308384025990517494195430423498494984215404545225403691634492664224877757106361962681045335993399708381929972706244792097347944029453317499005048984215433385336597715298019656550997463037351033491460664849916157422326787885419344827328512911645925004780064844650971971222201399682980976185268702672046388256029808403274601020719365355085216085753392529737336472465000221696370908135982945866985081820474314323265726357481916728621616909978347783358451547773133774230482137340989716955019963877792643226309057275409787580280940982075836583985029855352415126179947984970155019031152904497826640422139639272128875617214114262782452095067548164475009939234715521511608034218567585046564759959467033340159052384134920625607936122916335755872621158201282831145176928571477862104645989734522281452338970497408913551350735781058819063765465565917469226607675496481251899980678859678407105087863937906822088850575313882169527865361635669648381918943884109891426799558055694358376823749123667446807433503786311835839895786784293426195744677226722459074876532430002830252738403272661464527128382447414851221248406891414550712720891790853191156327816245541068325282873651287192324462943641100385347044648806362700873701849433686112694326874283193377766815119149568070399886952188427330548232920110292944797693373337203406894547246827260284397551634797152870882128993508859673464144371608069762676895739688718195034396040821772030620929884926797699947758218400554231918593405957996552224436666933615746204114201797356243483493629544336461178436521383695810545532361695829442483029882881609238703639208589564532789018410099043221504698437272030410521424710403102865080829497407889266456345938262796698276401369171113704497225514005175337780516375810511442292157513451346212166219328005409253225822542285805142266265568082963275547539050329334794733377266165817010832642627227138962390662331625854209883961166133205458521847818314461397882877990428580882827237713545091166109601772290069030835060916460865790908358361634816308609809950193311021339678153730661439803496459840249539687847487250959341928438818764052584523388526185852418751045925155797581555834767463005019640977418721587559159739250735984025334653567453475042666270588576329941626388991990762280065595631265223482718845520571728211758152115532844758697603063704234034780543135087203393536550009905939578583508351876615120061671741463721556698353336673970833851324397243707204058077510939247716322073809744388351308959817723138171519820896327456306210893263423384273587037675711315539922548872678930918639118426233500652425884636882207189259515108624831329704348371068244002057098555856368958341525068144530956020653992759675200837552139387655407158060573506484911725363746814423679753998952201418982295938072522074524335632504015505418001244771995721646270984227943469669185675852075484689215819378087063246114861366339838572683443110805043587874476939910454739210104647296028307071096614111226170998928589126492199169757406003540753178074469429523401003290148641277065349580682052580411181548015372932800505751476194260293321034097680011512511094701746367112415125931297980999909206847165116644186046976272859785013522966337178381716849884981531483511786664927760066596320356417812311078173331628611477842117073917593886914522504484860172656032387802981445358283038762145414343354833570529772150501184412722531580867871807182170826795423337929356358577375804828924888394804874231818947290832683786296337458761742611721953519021416737978440622929340175759720367894273663566653104969646144417834029453820020045736419655162893769608181459294995231973848798958805208400071941469515214176933686464027858669728514092638573841226328322874207169228767129922382974651482717422961287900826032490754768434142541591159283796191937332390867406006661183420917177620117313494438563159143916392400417187776412073500807007236316144268059731681489163158015902016626454912762129295712192418716354757928908403715226862664462887231543223101807872427222534092170489841990732509285136461902797818989556296201412830804578769890265631751272028394519470147490060144978742019082927941705709982732214874221198859101255037058343838052358641289425191721042790173421236829167367737238714932198534835452490123600922924316659211636273291910454551710343000629405178680269206238596673166481035433567013757620603541530920847965579156407158663432890210761743980557525045865679412303647161012145996224572733197778260490018507529912992588662358726659516378191188752091830156523652425486912328059383568146229966869444999106177586177252423661056018327427181280609142919788916158235824633905765715124262278058409726979552726315469243465964297253293627974437655355135466764971279282673773824943979176569528120420951244697573403968596293553564212486690528603312393995639925506938147345901156580491816301652491823456256166745749735010146638554928529484388562396426147421867260911595692299298054207779445523740224638532078783996976374782822732799109127382589919048974483824811914250579096685354209207067319542691248575937762133516038973660079477771530522632434775936603995181543311662959329195756411464363276151841465501512961544830181366628089940515263866683111839802912685954268795488029724893575269202988823495773902028938171159078302895137969918527856688330262503222519641902277551999651020608014461752374931401107463895668819401516196357332013282689485900375720413650836136757991287420840333422250984215206633322860090367032359198424302014169394361427295013666930716474745522441326513730729326162521684644661435042415769056797319145613642533960830939588533650894984642829248135379535614410641884167680451193522315575017035393258545968291891062318276969691404740431492879075897440320165124008089046621913721069355708244156745928304535770219447710886628296594922995238100461374183938403706035073571783299769632960530098331842363804798312234821919851694944897697840042508084919047909080329092028456291244785362180165465625765807966312579456461570533425347378719540268046129013960739553728897550986891224101788212260400565331030253560679700841671405898961529950937245370201129032715668764076806467890696653994146505421161228380661232420991000320479711031994125252588741611767212266742829441827402997071406095416559985337378120071915423245164439919293034788553883311561568373806002969833932469069363818002902100456004499726147829990505810423154133953539698582011707033726215412771584789594050308220875815632977404533818226322762840704038920211759289887991416979122197961211937746034323454481863294503562913542592054591433765918127730939867448447673677367939942370459635884990178536578014195636750691670231884795072491863123686998780570126961611594592551601833559367095264501129664988555262761033963357777179932212575365183499243480073137199602769817251540039981049751014911375208253890875695926750151064078811542332298129597526838064986349359541206290670485217338128394711424067870913213720265584314491936592887015444779981805501115755669360639259753888088146420974698942413451628145163812158656451008785084754100151026027750642777801452936841543044203972408832892716131486398971224189288372945103653278490368596485989376328173031446086304006571591919548240040289667210516855165822241338412854923576846071678936358198471372628610119802102996307478871130109112209520643715960596877256211709964801358695359463980411702667734367902383521710765380207668074973960833983818377360176297176435148319533117056383968889184740843027531362940409788678088058813144118466915931201355461890678006630203452401512254092414847792822979845269926620881918443900598891016719237506892282275278774055386627652317833853752700677060306125038180421714267079333885812700541431076959660480765781001944314706509482442415412779408305739908517091351983046411699183321634576309378020348961504905505522638075516316595823959311777706362271887447026473515933748614842626378839456495716322270818950169105521256456344802074437961090050926240616922591163336069736643621729708959746818880446311220642487515822648869549773216613324767403314951046590389708865508703574451046861065693699765765900798324676818436449313483828325402328732205934131998106678497799530417940375381556770984616214185653683273379166920440779425724115178497369219308854193700938229275675055767577494547053255593601456084674219316765653823525452151153716540169027635079434282864842516585791665705679102690122537328568275076191686011336401012934170882668444342614123297307363169865364027984855673072732998978002609171888247669607631335104923015011018733901383485609455639619969608035920594935719395405121442722851094245839100053993893490617983162651245760151774878039564165033341755427509940407633345463875314293012549272995558343629620600224459169818655813876123278594038394514431245205015753655802418009065312498040492039659700483408100739747254660138780213331831070711180254640234090837467817783162762533070524685812848457125115471146764791688083748780898018648231211247783995342908777647093517278607044948824826009536594864021404670852856300343410213976222781340948726442455373475630618141348012005639028084140749041921180653876035919716474162185957083940576331197840985851296675135944850998011336508781337457881626189620937036582477057457469178878740982911645217224803492009015590962537859837935777030093891867085462634590018668522594561796884312595119371796239516084307706236495057540311214126367700921345946905124072764066789450865347116255770878984415018464429794602978445504013555974945835682465831708824096416371514039020104604292012401997948688318319954805601988898264676930666456701941263968226336827141788747774735338935309709232137129727546088608887346901645226229344022025550985408055092420915363567082098208063159448405134315586783890070196405391277120073243444554557160757806563247004123052144422932711060183749287738715050065736760823492050883479414665119701548281736002844465589103145758587546894873769653508133143528383310502279598209814845646061852895675857037898186465181727141345576508225581770103096105040549189757583565439928857451818181769328110494709204700487331763414358686338273617356399866013457622687647169518813496277290802737486882557403625064194883275484857933850058973716783448904527373013055586207652269121050416219590584748328952789931154961429026331676599118283877016437652793670088648659798986656632575068410508269869604225847201373662642491322889973452342599484007245230521109179980219728853999802882058613196243217339781446651566889545844110965694268859351022892689827167300551022609348276604742009460163993976461199293609235193128183074138369712666781040141922458512394216886002237164587782963476202300094830002951414378453390622289803653243837134316702654480513516213077381203654404257844929526756850788552600341257208915813464187191308617267029288319852303838709787197904621741081196829061355246548309805412804098488177585351659620458826910574766250938787957832751592919989083442330510184571222245940114763624344381895033489756719610379012411843954963828744399463608655033562265962914075172719892923155855040713622631115139515598090512598636652353328962477836272285902995529929049500401295050320489505994220401618963915839785390602547464452205772478032670597513856416344154420060219564589094433003190681651114059743890124829766978604250012177726281035816405666844993760230315820667615450283862001092713491287012917894646075949833574429866617077888302015158145356389512236064951205761843784410663877590247973359105655086890207331501500089291220699400070265700297558352553869725264223122169719260585772148394996956164791414711120484600448694912122433571978474904770631169523386449750401146268645409648145368880383726080426671592827003197298367345784515901638573290276448211403817974863888453376957702978894869185793079460234355545963806098569891887027645243059586057552371189510915053986389655921140538205839476694119700114149604944510245279325041967299057590992681364576830925828305667284648523916448181796297546326666589346019374716862127427479239930631892619386151554540845598346650674377240084015558731454437962810991470122921218009989418131034706382327119614434452804274728214896100602012593677757098021746326633904406318430770322136730936973682463917265531651915419927481828980960190127286166568428038314584981323343366281606915489897430963072747782332436518819009299024826653618675588709419023482751524066286996764574658784582673112765734363038198407798357265818353394958912127586057667430253955221861447893011994407157713389712097458186980718217241050759667926681054211544909053971339891287321964767271079908525408904543687875022848862886383743549020331757710135428557165955226260893468713201853012839327459612347814854307615688753388775555406424632220944659840289783833113205043646743088462078839330977746124607359381623828412172785884536610657344952048323850969850367104323553669775824629958308106923230481059235205510376848619064672621414337646541590097372647426797730470022553105668888420862036944170650151730656936695541548077590995565495449137856145189809422636395700466709281046105705136504148711728954736209104303257468472083863438532511439393013911127331700632974334954374118359673810278969493662064447479197816827867734428081064245761668490559282454897391296323773877763662928910319261088919254902586418242622626602812272282239862256986172868970016860620690451962893445924721497797588026035034779406620861636629897650316056794624799377332859288459695850096960944901839845132975660425507847606464741487964796108094933314783993242187917060342956989729354919917769911977907880861701662791210207938951227578491442740934068490394018005676692824001336362475114642847562548305255423653237479113027548676601160001867759836820036416914402832063959576603880791021580815133280913805541847018802245504574933488258493705791192912681383842745292661353889093364039072303526073277486931468551499368655180119600763055480279339454390678528831530275937474338954398159710120454978448034407126409432600617193246155368992676449579766596513488289810378623752752761582229517262627036934215744642813976481645582094598658488820749793379336134582140205577001763035539128275739519521363326838674673932635719435531899974531617891098126331049976105185243904732516945443537971605536511959905413420577470381441923965119014843503293059203371147006522030678072479550741027704307848051652250863080748437017529825914079416693810608738521394683934453261413786496982348094862768784684024346837877996121660886114332044853902895905814295946812196674155419038872042171043426207230446798450665676084429597121464632055311571046364391768370433206420716772147966841738638630158547587547253023376930136540335945986689056673140846080393317566134885867979840993010060757016543520046792514329492707438625299980579657931397752928845197974940832144029960164065842966340349443581301154133519946413518877361561514789121379241655151986715684025942968994745947931178377775349150014844836395167889585337888033657705555272456911823360334055811982457609274221936167817222029219895095163546089475452516890332005484264773867499140684393883562799831654079582157331789999443127500219931687953629443458365224988179854712134953948429778867772490884800780206115575770572469355260158388534586892742048977962770774799494787409279628359377375173302548837010374995176766735638235198209167152749055545644315223566009614944964530624351320037505426269246004470645952465710622521246547478644629569803436409792739382447303004131900313138271943399476513359314879702013954479863046688649433102327404814806418225830528858281447065875634655388773064164950145031552259550085429149977621334025932779196541053464773345098796479123228457270001792274631766552920897480507244867097742312505804472803323813941165254648755797443845641536174057425096771005950432332110021502292249858868794339390142704554939847061533407521648558083326596914705288035613142623610334457769756603014142592061574852497922658755502738939814357853232730864758944833906803439027562389980907545929852093140950688940156442351625747240378823210602758910732416236587784425393604393377470982907520571392650391071312963450019525457184171109548641007370305912620187723641072697099149526077982977876711941766396636210632439959674008093430743190950531756229897650861334456724412407873200419645473310463880548458815490801604948494164154677838820245671964250471770311333968996258868251184802475324742000910169745686724310006097143688796300822688960858388693297712854975438118507862090400059022131394916192776514920929451327620203684600639346830760181787511058713385931392372417200404548870732991577993996709005418745641280057558180949568182303919306458466761212071262859959651259196063608961821084662667245664436507913494600757775600768068123505285721110426657748840580034729804324290999839634319582820865417961319334872342169061276605202974374643027819017511208352361069601187939628317300171932541710436395177154911331129464986250106722737689370278425644835328009684846739330846059358652159561466754567715566123635579095406087172015523409915115706351725288943705488004423407175508605068979699531557151135671600424898728784437582401144598609230066288278807116645422072489551162165948495788173037437405291728450296758980288218516801082734469459790380090573396995607091122246941562503987965545309397689200525973609180469802465657320811070440659148868099763038968079266448611254723597305021947218610854809998230790633134437722460709385039915900925578495687307009221013473297370150286744440341544437242434145307613640210596071183499451422914968939529359153353004085909979354601915012852642077220957667375866952225129715404307413332356046605002428431676904115964437397347910247653682059526661546736417022327519049015758064867239813582362766497405004480123765854146865392706990247052487025047169811085376313084496871637034055554557156797675858562454429538906485123806819689483859511128576808229787005229888478522145051138704261623029111896538814805069292677392106817474237705389262228466442879852139348506501354373773464925757228965683191804200259469612717920226513556648634491009794761103932438215422283284823450468174802098247215678611128815583081087516260700333880770909425435127537514994296000650071685068165127985491464840432940288834001991474780524984992748123333362488026606111494028591720719335333008021163566849018997037520632889675249815703743500272404419506231594514956643649263814248898629170868539132222416770191794447555140077719348291300913154405755173937371209658178962832457781513309747453070574492967438858593359276508192163290804287964634235813586365630194342915587524314050348168640423446731316854644418712642200105401992331400043759317229302097269558696088460648288007943783969032967917023158324499890574160168209185307926054507587473181678303385234735082979815026692065437135352042461775212593850165317104500409667624192056619716988104313336403329333818793315504544379239849176288095616439248898339281944954884333088792806413997284263842023511263189903315446247061030248458257839096504603256711942400500306817594410045784284264020236391501026117721439104094590228890850510554749026560042618852116559932411378727377008495729073051902694595752027922413270962881476999885216372661747997413977053734309077115937602696611186858515228777049774799604757339530967490030180996961208089933404244204631823878051673263569883940833576754652594462604329091079841744067336760067868378821051949082458430592313510398293000817726632633480862870784135962644116866327256096187474043834085231802922347882816758035163139478710862070194910434636614577909012737681286033530483338623768932490957478120262964341143882003165193662048726184468363416534090553631513755809769279862878046358621682676039432291681360571078970274665286462424754918264835243527182109392450109230177123178572294120510502854893395483780494201139150336685584811076295230386337435712016312688772159124326850420051676984232138209013073713611566630641809498383626272088684045374890880676843963306627999938363557779669441314601075156247456688940907177992827613617937889869965802577153904906540988582369706006822822219070896421713070653923393349635475008497542755024537825258550059409115017870509933261683428069545122027943930142120857119518027603358896455259491009567490209165594535143005097201101938148588807244214351155457519073585854170642552614915159617265225290236804415722277375773790542174224947029141874733015890977896677335045046103038661116843608037195932167394187635248713893458577163134541383655394203457889027208282685471305163835565234740062359818110686559027426395780273208847363101064033749135976390971376734671954238831568313029650464055348469165109503053646352334587484697278887552902556009713580981408915720051134204828111396645120744817534613079527737921723616086282092156882747725424683088582326732560192440454049041119802592380012153292304252046141785449821371717140119995098591752318834093530131067114078722877152773251007429289956371666719419408387390797506528632021830908086604756509175544594220379062840223737208605611015578104415370350593917989302036091507214620647060256870165146210014962490856837385061709134819988671647648173394498443905059338441401905503469026212650239540149765417637262734660912203193503862809238588901201215977237803553159395381956711141927193361080347184068251126822567143539998575873596947031279865285546475760761358400672174603393522893001989183960768907883201290539324243304362832682914113317630185236768260367068268438489885492643725878486373945663234096197025407376956846235481116787383994616337958663731350075926675790882764456663161878642568503844389624132651682299372739335319505764807693847335362267523329692314423451774158995933980960440234151368559342629888268287248061750567610979101155546734310217695536211847903049019945838315089649094320391513225397624369088285101778308861269511542256750806824074471458833615795957506612973729103082857562678905654351791209151578561414302875963335461772525363584260973238048461924715546073669717059929591286053899783485798019059759087960300399492506765107707611831415672030666869699903191623504022716803125474340009120354807446335863000101490717925685423375864087780403309223152092496180173114556748293328451913141710828130640026618331654848347588342030906360789513073073060415507947800243353228826875053109240520270480972100723734582607990293779725950457426465325744218551336686624252821607054808384554816792210764696648299870949063356446164935290838060159993740740218311394648001872387087029363240691277244294689285248070589226990307514279746929382305577395451079529949761355067138566247045870810823294364031736473308238250856751368501940997270921067209449391410286338090733508045860061146295371326940907061599446968606309489692487641718872623326634647790526447372126688436641866421089157214762044859517456371613596543142383754413259296234351295456019524969202768323649583838861383301612300222388015905610455153837312912696876198713075266732091400343560979916906238150087046884013167818293980325181847055286161380030369790962614951860490406819838964235310001121269100760479593702020060504905048425578712330614808365506355745932028343757559707773588722356427022983908071024911509985373467140862481783541346854088759844755798983263986273793230357321510877848741111568885271416837402637463391192671839623238294245953198178799228138892725993762175664728330968902660113215207826766943904805197539617925719535519753794613815436862159314606514941359225685033721198876082806841830180949726880836213005075364332201306124908891473845749076230473030374837603460203664270972595745497269983248100212929144110688028158844981807799395928886051750735014372699876851790092378090453451493541528274851604319652236949593301397489919454457789783125513510559314629212967186858516965049016773060455279339757675429415400255133846892831300620558756833540533313319227598549936112605135852647504144664256738958709745835139869544051109031437629487081388150251834168849930639095121843515009682484206381048533169006615862240672112913065067192939619851993219023631822957953266201612569795697409885593188388274617317570935804938949366072997470364301763639859110260613296604989265162687147528954119620295759943616313317961055687731096229262790272199522915753111674992418649393969613294426555510348980183953160695068374779955579790387904485964885032330291065107031757928771609373692826546387174850841760144280711179711828176878732985775718848919672768370570861091779073985878094813040014089881015170904610712861644823805338040393415275318160493760240914100867280124197080994691938812263501393273766098158987930715030603652508643756782506501001306718803530173766344632274539450286884065940305619436936003342030892032817034624453864165696476843166753591127387620299012460345534935441173314514357322790914709069552693543788379535366550923948513531923180389053407722933918591639183244339433807244478342199124993983387006197805541655409504926840870313397374942754283579663302732244071593766624571229529260036889510442390356231496527449992343970122332798303737472589269723699205318561597402107531547682989833848866826742823787397489347945667978835204251090960500524273147446607533104042332975410615464628087959397783394161296320577993955476862186427217619125342745981054177555753283364238778071741075402005862254800974734156863259181507561345157607541981136969339960753078348465578829158891425919846088860271282199280372743585044343735728478368674627804548833859139532079013396107482248395343385020835314619184835427193394011445486281562965078663929055957373182559582083453763376600215177787133844095617545803116580343872168790350280948141532975019748212498380323403534615274522620312107665890070076721442513992490269896761357330042259122882126475226148774707112737869327752123932596311772134559434914066585123782718957540676236269812252707723130487166144990727982340299637049974979144265067387806953745251931606041655892228635969402545170473288196980128072877619850788447596497188467357886814003281900553479391541429042536487599230262247847942941955990405948505867083688274724206801761640937754735613381773240850721656556534380098088216991866413848124734613188878454798096306259334262426690345812657957744342661399703384163073670616404556454034526264114249365982578577052761399377885487496254818986943489692810615742722310553550279851391673994201446791867810213028193997316641639793915386254060833975302752587820287117337364175492800556346215059168661593074230829661749904013500189477386945391965483105660903465497873366484509764183159529259435132290235336174177342380082441474385179312085244686025243256123518262631052820497287076582472422280929166409787084233010707113705791459355027145719578551573941687314182174375578872712377462793855780125301632456950884237595483221684889243898457335877682843753139016035305858131308791026253343133794755461912258799775719868612402626885002370093984021672300471724259888248361831285875800541501587404500628089023970960502293111324799621641034287487933100949734572651922827796850467353068515467574589354498506711849948511132167051434353780851584841872473220749481488775687164477364526057626986063370976101781972455588642252244018507943152132169640773089767266870248832622205179420230677606698733245706968509836202271250857787375357128322348772600801058977401649111360407974926114591205626046496578462194384019146767159134915831383616903741125712717822789401532174194919498650245344533546938278255768158089190497988854387001622194942717232612027535979226583605951538391848998684110207435347988999983181031911606645478445769775641198476438163223518931044408123487968946594594586429331391140766680203877188052146191773639339568899665737671399326273912026564575116233076759141079763458241932233271513284347939043898498022983386022855106453958780667303973621057190635567992380708471683799024972606175370066582322906912547043749312995460680579384105727614050465540396072565404017694391609198295051619205817771498222188511783460460512677236674933372352500845951233827096805054569558205603649200836894049750333889787201936049862212244556580195107945085678904188511172570789580143500632303982568355692840844765583600582896389442335861034646091378450053931887759135778620308759246201461905543611568613806310298339674417913084206004999373436761467233760771102401371911552038341406042386248852463679800139635411101935534998803747822208208642851694178402355150442204377818675680537706132776318576913607544579895861963665057391722819485605032744002778141280604077325293648251726684499852831538331657283119523277636727089218965674823808857482605741608443471013862768310381187906060912086692349140566599865669145923695233874846166237923291013689741646865524015966003946064845447252706239779086954937842009717648384488732065469494630348730663670105542505361609197099818992314982371447014280859523908951394617717018327298917390947196599375922328981896306319207721433045474015118548053046583438205971831444972339918334881652403930006498917666738810957006762170877914940461717850938094548648090937436222219151121357240431495141390076799365178846846204134449686595966156297134316680039711202631051149080782759200056033015029577855567992728683928239148763761420254321330697348373830996909190174353896304832935664480546436792437962014121353729829154544536575375179631912570174769886049537437446172548214802894756104534184008875867260443169791534036376731348544046659377480423773467789792557717458681074086541754910008893795979237303140637999187555108904434937100263413449384834563025070555503259675325667169394625918455574625889794889410168633917386755328935647318793626137390036548713319125176863423228719188348147359311373529902769317267951981569747591769187456829062257537419818367319068489454867108213308015113646911205574463796458559928731675874912327998557650667292188548700060985518914927428551580901264929714152182138730075958275510034465601071519873904156216814368754056500206583897813617094469702854167650702221411158319044893246375482620724795177899337833566075652159936081002031130787009329310720370298586221011065383712258259523113775946920352735581466054987067948460706703455736197036422766924449114022915034475862699730952061532430144981024915198732245764522615054304996070847802910753071810966123914671487692039371753015486495255522133454483505408201157388161293998506010368020836046492058334842467526437513696825550720749860399640345613665732479727731586355983926809390888167182551545751449077763599386346050807534044075778496815344067095098799637807611493955501668107575681236313751460254825180242529050825815498945869489853340691187523198966480999908129494528562825743038059861576353331353020866332862724464337402839515414829811238158077391132048276585154744789078643431847353906211221865466227836161125077126939630756253662580032599822040193386262019604759348666309909745684837943199997006381808800352149111680290011150073852337901473778296134362967238440595671835438148878911203903829201165800471088614929511919680170611232450828142722473559306918186440297482920552713980359004352238250509675657045904584037923949037049847613657902693013549762096505835862192719958894529151260993480605600161454179380118773449129278428391678994900020826408687425887768614381039109549095693688619900834159159663924425430008535574635394710617855386415047046651648023921716134010961822011196443840579761994636921949083931448999833471945408240940757756870846468547216065461535527294623334106714368095942921586706776517256941493385445403050971744087841814157567962536088229496327022224286994677850485615697725620573893175089790803129309961352905628199977908604868934592561874669508935422814952685920205493327548075963996680938127348128969100164113061568554438454418720816100726513032193364455944069665369177658182688316249970475892708671205727864358524728130388750276391481507612205590874730784661766205676608306045990566173377237187843724135605541313787004862182343098168156615992639258362452317729837820428884848476535594072635771352769227915119715889946691328185768024212096832194120482535064157792807882708101874412252214339764410727342318070699059254236117484139668244125088242984134415759277635186837600531034912751668466877759294103025681618020431869621805982885401680159474669989293331675912295368247389950013368730841235166133042970452833806028455254669759765531662519637883278694730707638322792332867701344201272907731632497060503709713000466838561742613563644625587510671867665607132619978228515120820592011203133852936769454806974078041299466467348117602201494986504383191638300262899191924069618843656435650034044984453437255473088634620024774116716817032694756760425022351802419623310322782206838089658446090974607399691239745516087883177494658035609680003284071770703466484886171781979525803078744439131378232934360071305636401946878332526472969012873205570744938440428399195457692301541589507000057914392487210658170214949931182465305239557258756963524181489556659881733608046199528712899126499163240852646097361816721646839584683031320245481764158210720144479748960261363866830544286396251136900652248870145583870749289032364942482989732372084419451065640548417082196177102419183379593631084015337605647458205726059583845382344466099642230937412137669910330897553059373423273795387058254493085661146102471614297235164806925679672952425930949811124670046956639912179838875524334194618803659963971799612079667520905042759364432408315561055999181289651118859815166071942332130096668008192320452640119300105628897330002555350253052405215956344708390278730440406731064399295495949790097242451087736331157298047889738622427887293982714523322693674974279520694629527618693664988962326585085522087316738913970536542833163393624952231154631634315462825132162846488880259859471201644922176561802885124315346137075669716430492868718033391945584144215120138491615429791178320108700154501979988643458979241217161150340046097905580854181687840649814632651599369870663034935787689942276052689671145827756124940718567996767492447375850452065782212699493996895430551406304361345240711926525684337281451293873012652436158914587561871455655441488269554078447867019206485264325936640329879962970099642195307674696184697037826627068115558239244177181107356797637412474108464094475499293651170218152518817707001539454647101366148728333129786087677758641553894756973815477929415190143285711630294228056400816908164757910838985378443083921483752122626041905484881760607188944240766109908930437782716513167588347715544445902492521618419117484629457760989481083149007270007980661304658557347514648636507717260800041833005209943371067654425965953779131921844065076346452535844129083009051964182420794222937880725301748584530940792871675420412518497430311637500957574638102549857710700454522351458232095701656451138369402021778100976172065287949313544288107937281056350702206592667862283112564489553179596770500064059031835248375311135387090225768145253141407526756065586053843188576014410699879159580826284636219486070705288664942089015308698150768384418423279319536383908047501832733439113745204328860364995787923630675457947543891645289097825760543245742273955274562822590636875572422321074711785835099152712688584913754832068099978378215632517845664196068665852820279306148841043690032518250773537154231879992350582524012584777809796485469243453553478272361883303614234493815787308025870579594542516733955651671494654747837489775360640818650194954519538144625950222955433886067485830534745990867353963990174926808653165321417195301202716411056894781840996412371546571421355005355516053295419251326596019758034990326248797856971190494704956245728730082477042112737605643716054878351986718182130914193712210419702614299724994100589823958469358286392784753184311028679204836511356881006938385237264149708125989828955632831494891588307572989465050462533672399785547645786286858979044346803563444532856148704755266599939546996142960335452550320064264146711678925065027732506595771751889436910723780125776067016974949161251768983088928080625924358084683014690773993578598208242509520725679798605973968746267188069767332223311789947394734780765746011804509319704848775633904541814165312879581353174752004657539649891677274889333682784437987102308973220876274852562020181090346276569966196778741446716804632632208062608743985964288042961271324052895373915729726064585105470521542595244405050791696091573519008903992633263434326879416062996795846702882797747227117366752551090848347700737374743535474195587557979874430754400990891238900037072620073457531295137082927434051398426356465743126902436767171584563562015337401041700323049783128959708004280544612007073826721610823847924030369299771218085434527010893724607263204683594383454346037184472808412329080029563587496665180232835702556162146435033688227536351652290224630435072048612508378952306197420646628909100043837929986461491080339574680941728004414987651752984579219305012381733134977379994737309453682337553751825652543194738979531795743612984601457769125896532681629584748439206933358034675729540732707444959736580354429497235597353678361320239843770960217266117006554438879430451669830701707664095924086890411436474061805994257544683222691994759464947587697683367940097823907340656910126531819201364951612137266634328901041702546874617346840771005941053387886886184433082229722515173910325533241201837723471547687813419896750135887061105768592879164544805790352554041777285952330414416817402062341238285466006976723246232846057039944619860985632290121260030830129806046896981666234547202344094025191950041130698125377898885526780477153265136562116476864526307169263006172151990215784884423031099624484370536919002650465027459107643356336547787933565899581180189690896811922421481133110596085694937731801449792928230488184445424110436212991797465024803437807533014506968744740817705269163684376613714552028909433426160147102106261522298248105923540708118325307738112916445185922617127914135080931589787506741522489145799424582690909845678897656542525963259999829868960373199614407679794808583449380595612354433215095244534805910916241242270558837973090085119733941391154868035113468666507897325227191857167246339117268119821470439927850361357097456706110029239884570893157593228430130953386188326094075596280091061315272041586232788865849852570456841895739203673801931218188194754014135390997072628850193311841104258120160137213656074307024052840340633136168444081732850845605566636373697435284295125713555465965682757161874371683376903809533794773107896654981774183844522075904733123532191835484845688630914158572018928257109806069404443261334431156819770977201138944494413662025835729142144071951345170022217880154469167363687097415671030858880915116510844924651163571097854066467966251605755978570879379552542913634103161812334694699285471644746514077074354417465699077059942798159053225043067966024482912728101523942295229274277840709851611249118971056640483643397600884115063822603984716366269778941768839109532087638573858334188017955030519506567952350182730438256417386415538082322321879897536025154189323826197987302454178344990932409452659246992252116465202405213580359370935541276213643796398462592769178815594752981453915487390923728496877577336355411195271310141170744356889021266415533274654059905539262120104874771716223538545101188997992360805954389787457521270767990424374017490424937258421997715897187030552804926553169694826364609620187043265389547741145088095087481376727585081719388786127254634803460272057804461026662752315985258583414770197818075124526040486719832662674063964577736285274800832651594707229448642610414458441037634409105279494159018256950750721326051320527576126962636862896325528849661735956175906248410037691956157603045109905478480492162601088865360084857063805216594320344455280133203619818004697199531827171997090074664521705097958777210576355654839395916105463427715930478021267746378983927706254583061316727027483529555261236786174719996974278238497437616624554895358571277135957582351780941592972405481766533835925641507215587998648811175952112749842765691938006843207406553131618624702235607394174488078269246162714267228966395991329756969480746225848928476671429091846842993272004558851002237138233506433074868990716433287714834637160695779669837002506143631882675085723054021049582245734734479218103087742055183997063004020437422446324362063316808745537794629100428449181211429359466895853087823605058756740493037014588582624273020004820931469634807690833944700729360383623062792763629255682936967032768138394445304926248830637070530413166109028386912646411291774250621601606186683377468525675215837038771041879448782250008922576004517054556234685163157439140264292299165405233698596560619532338346215128182696328688868195068880946024539513545540651979962675331124398938583651993949549063592452120760514874579422709222353433669983519101322323800061842208040172837296828968283638550126478884874629323226394574610222853331745947667675742623382633141540148684226731926716979624320680582991434868258312321586151910172834295817105051441525234781836830692082875794354027109611322507039427096083001711390170055909091610953958417999659765765554813074544766945019403051285035880831144925988206209304222475508647959419559238780908913503748899751645780940065719475868167693399753749918159126810529375024469869219524732322443136148173535759191805432033105559576451954994704552499585562999148028951039258189026343535150444123243666440836249761585288152379549757986569562889327785131283226582054530322370137475308351479447996354829457322362258921658221202468048802091949186235374713910905493030064330340713936402481943122955922750983301218836909593167175790281316953210255905124222441547522180205926455292776989887452557925648770030680142419365361777608977748050062078770821490073853561013928767962198659267461758775724379107023293423113011207300790315054928919289602559604105799750513715626694920971666499609824567702764194877272917027556736538384384436701325264309494712997758292355077356221216137233053026217590111936557332628898956299480487029958393981819783219093597818953638856026480055531142471534363195380762057137461635037255157343195449690276482078307782968998759070183723478488782600766772380510425698673340678187413812420773058504810943639657186324187371591846866190024095096084903091991344855963186137212436123285805855843446870809298666484754651397518990357787934232601749972988765580813393619046957061883283302540634236576211736562607839547441284980161675819953094464097984020958198539329296568083844552977277968596432147489570356430173998825437910091537427597091419487022224324581010111644892037858679669220777546707485582451955407057840753413298746964790048834976189286891046407186635459131027920661831046403282726544555513529811076625043468706863547047637936144209069965748578045742128966199882388159740567859499689757004087321755258003404024182308575351210960835147235784568010265505107063737948575343545303940553000561662119184714300846577364725349532947824357121652048913391260499357853444210909865084060533962709092097178439513415633263042117616432907620673894275792207952935641877275894487822185987164765729315952085391431987464747243524756840226931782191559689477388705286823852979403349692745296001385905699286601469997977909928305222031632211503572312846253661891105187214358403049496405393917273958815188834823701311052740890647788309405588795858667602537691932361725089164422635560287886247360258063046107223703381154757160939866847041509427955592289967907404825743102276133070954817448064641936998765727415392089572586113869620419407109434244568152053190759744080916476750116377308167931321477210585423924267285315107814848071825674291997376628203614289935726254247991699234810150632731725813420817921038950623358557222489798152798503873377651219199997681263837093092163574136984977525814900683334818084533741312589969025253505850960890385011686186065773961247418664610277182051711694008069742577465039089138247469936773088103318384237921810046302335312166648148814554392356275589752623441865825931308640434745208227717860474535296361352075253508041164131652058517157575256400992960326059654709328673986051749671313670628891780139760780850310345669846864603728020552257934075893686695149205382466915951281099705041213552704592576053431768756812084011874116302089135160518042322088776176308917551553580524086702904389413204914218243714233443487017861094920947673155339259139050713032964827075266175954672394138566624180341440343668047789196244667729850864419654646838439185309787443962492275715204094763345000616182543699422886433135914207632128840366513607409183201760502236335133964874013361648489156858109495824412854062467190538978810047564142225236172503454847330326339352515472513124199936633322259947281594554535464691451202272494351588642499268047987640740479252515301271477384977930322411417857170835383873973282888492426971043121060377636460830792793490046927758537749610913874297466900654932030328080667562348816377252404414466182376518887533749941338493338102536009472148443214595782567767898600549513507205016947822858920325430658791330970145706182127023676944564323430446807760447009295282463073773850654311760893086577245791811109298591010486819036155506992953754749472880199621518437766522164451127159475317570747699712251998470968041648764334120152916974301984994877563471923223427621746610870720919092619783661359691509265956772776888553983416543800413692028850930719209047632633394765996776762555910790376022321001708052240957683722274749305154325558390518955404573921601671388315206062656032388378489525507136249083299965971371532645059338384061474708493527837254336649220272850230082988870205753959454810537540379113157321406630116842333344104676701284537013669626145447278214893407462140341412135171211402291761921618136803355092374597012581856214652355765981747186974573955967063194335457512733626261165861390482464488680864019808107507152046341481668326188108434270880444912622296317261662172275140070489630414630215757888030693209176452932916787346054329993942092845597905797133038949737944459460704664322991200736436816121821502992849191689664522968478064937154969440398282702525875323524019959216850864795110806386124132039263244605543906131149680643006489379152547182152753295851896779611948769059891523125122746117776991006788911854852052410702319504537567698107143823445111804549145181505981373399336354686814220529855668844635419965712553145321752879345846736211443156509866105463103593254777706063485056047359521508133077357600290735094256856396536390321283413211650260799697743911240538290269645488654353650914632847600709476431976656426328670154190337584434721047542595677152697714863038616892261417925638136316980137028368818788139926093938660097456418780425171293330297632267220717081179178911505318945038823290845677696008432346012416351015025602633385014817289272557700640049732813217891739395476131397581139682044227914085040543229979918652262656890629522874692764918335636881466864973189644875409489412552198501271062259662981036257735858945247080875386961085543956021031409491219698664845081245124898139187244014769787504943236420309139089707279233593466183026698481863292136721550761304060916305256360428681399546109533052947025589005163311593465199955440259275404149384233462173721901638721247693461260941758106702828418327441606784112906160428419461393679668633215712015594949273006392117793896833363242540197729829402575572976051618198789876250175713147655105488577589329543028508680162300687053799011588477619456099650502608448794982734408806890620995404657550380560835399465895951680094713988280377846975166593548490554670577984472411665584995303572403247723863805881143235005527967342455175067132362223755048794061836328646197597930046380552300650423024310889861421614667840267529192502759128772452558871760338807686916028227794408832377645789705257279770107171909623359060728601051030418776767596258776791207740750802283235206871366566669929913978207757248101671897550118328605184053777126268910417229974828459244207808312209146886207653564204512713175801470503221393314276760057390673997415401616800356158598238530844362647061212264618238311127798191354919724134507134156217844358524121657177274689209744505011917838156736805197051090701528076633151112051737206629911860421448176470163277756815993555297977821318801846483761271434475015364923904824772776720550149405902405561430553152932657522406584417347841454526199832694847163821355546221300173010938377389342996075406452526591756057941624716858058670072392283157401431434430253790346771862029262000015723727636929621313411698033696039510070910066804820811550864895678443010987489488231408815651701684298367854138688096558896350740925563672018917849606017643951318388846826230294992519563670715566224692709122186895713354746141850023222978431722015220353840785256296332894405168443977069616145743193997640181538475879943745817330250637218731781138065995822905381674305653953225281169772782518786673655322655639171878152172512926663871176148713819907160089030524816891508626074722101679717864065484674192203133840273880489075216807244422388341306039016607061998939648124053565548981345100068036332397938678813079977048483156987870513710101317829996347600470873236518607493607701421007694494186778954964223349105980174610681209225614056728999319502210489575496320929235163649035355023411458538340788220864033440350842305266993089078879319742079532397625798854100730056173206381622876109158833079664447022974071733508657600194903793166808262329081436589022143671831817969509513614325148543051224488508184402647850131516101331786289959225647328988487569035923470542069243125099722056892536980123199799044706282388955357139265867400233977781442977342999591964510901781730202712972951089376693491853273729951300826558074862646717220553699918913157880507409310370300725032511996758533635018663804239799164827996807305404826091201121834494952917885144614679397420852982936792485293401169828648314004539630113170514058546191208647422724210238020844501486594117263225766209872567604188152054107234179420650684327966160457069323364643472529601416895757311506234171389737243824460195547633489204150377455764792944139086609043382155245435588527396301770747077841610174468309370728312873433090420388043484119944429271819467526280988052592431926406565172971215110683369197901929104912616665520763015921261350134755131161490654892801167018273025259446274309735608056645549960833782456760254196882680435068274004364334530202848202296501976349418333141573051903435681161635496441130910515114363026606635138081306057662728664935924141623096720521895195655312117690494746001306894948819754181964156133292668240134774033685591443575284329768126780921044550236381893994818435365805081209376260556638117356320362277926063782372444867017386789495179796844963357080458839953876529487028118771123198179981934692433337722799812149832009629097451443546404646529380721188612576630841317158808019250833645538191340884238188647215488286036351284533251072653751266250553789728312293624726475445260333882803010406930564429584867110797266647668299235172505562633861966386095988444842274303172732599075804410647462622206022333589896740474357493842201695405489135477084030363482767455599488339039837573670913174839624230792123221413867289698301072886393271636838984021447314362485139403673984322619440692251144379876413892055362543365880751163740255762488323194431703508353146268518399396774874580976999349365554453320638552434023643555933624412959791027860470895937186577160915633800186305775680104250135763704329843694015137538563696726693851477480326787518439969893112746475876326793158803646442339673542505341568819724491839781164238584325586172921105597508542694382621692817127453630650486922312355537493885978289921877399200641369248039273457381984745365386906344253768445168291524852931475426911982093823796237053766930532481062621395584294565717105648843695790925941928879843053503419953093271968757463608335193316478767980918115949711746738209746141034076485854239726453677467309974072531040554650214589497818165571612223962710947366775597133598534720532049968088836524064651706343393685601124623654139397534534206675242366015573482414327700985743466623261738920750258423869887441848152937332356952172768737617233105065142876046954149095769668188503422023232553584643585008283257990908025811779264604742249495686413921735931017000879783217697108140094509305605768819096922067355918626407618976494643578807981158530761308742203586342725428048654463850947609159453574267939495099097248553548960160819374606528031951660595730832789557077759177571228210942723270419146967511369188290423196770290806820712493192854869934783389357241172237555656780476175100826815405968348870446006590951859585618774776813485656105674974889154401595468326735802428483313549718689342818676304791936582708926878806010629802155390547580231603919532486128996200403547538340695805773859555488750214358298219380664789787639691819313795615361693675922955184856739511791027022766718717413773907999322024892362934573292342746192715512319257243031039469918875277467080864021488652889156962123279267769879352352642617870568105131640686088202902198054576116231583523993140709331851062153317167963826548719345540500607072577481747355569712675412184477697063894331251446473318963960584965416798926026633234006272037305146707865451347603266347034000104024277819410156832749339576082533204320498294863328509315282468086062562861149774083858775143595408202978995891288441297189791599613666486908970884176871142181660661965387944847381455537141453260820556355903739594484670207389647394297256722585531760335728981934580657192324201301009778969850537227660158280627693707698084485429475087418002985319283113767888493406742150709892341294525619860739260245298514947063507310127062120790409298654961871812157396077538933254488265056641951956907512810339588190530469302286554326783382798038494086394288615089461596489827260817857295472005178952300475773851859815364398544808921520082512166460345560841436903907547144779948134796864218050666930656676684082636045207173785120709330736449672541992373750784379911110576192286513187123976096849857614731269686300387514783833790990225124313428178874344619734350167359433454976808550390465055415358807899435852654888192554188954257421658990153074084155721953717154995642016041556202651074193054943719551679512885365068947756298187164818834090200042541514336637819810634530480345675611818478945147302158674938474667553266796579888710991532635583158922221989120945258293001577148556962898880233108183275907068404799316146468006832262200397054647667964290032316294941295887851868277924020036219647745871905183914031870535124120312067879255667552438521318342022046320528814198781633906941353689557434846418390652486154184744597190496009233844200317906188255387049208273489228226859382854831420576664746646776173099649221621265355350559670144865011731322519098490389939589817585026509704233635884010200431837482643843629257847314599487102388648664829291838758578275692591192837879063647287595435804222460232918779802837664694249846568904687194180238951701310084816674033469218333953155124536473210810247838436591200749431731840493617582370876899233154680582066773685152624307194106219160770064202259515336181179831429015513404907054748324779333949636542600095121011828231666998317463053817560243773775364700471696250053896744691533764345384463985640713006668136357741004566722394719323654325853176637186266422245411306669036867243366152113524942317259809679598819693356225599373595557607154419298133083574356023020066872707000072947556936096194453838169404981293133684970547254761737910902415967988760097411684338295361830911773290261327043990500896200318518193519313874647173221674249600757636517021739362345898769447977513886483492840957370440225298985601730943958449203527988399602914126056897928548261072879428404856722661276951600303156813895250497683554306013484544439584218192427279865562303059442713232063731632748536623054061358642572068647907909652084758446160337817360701946906680609789828348160528149648858515433626970559358519217576195229434319098083556067316466824742254038119133587160061689903152223586313192783978146024731503954752357081984662475340785660482236173443169238666843364058992316061533616372350304674391520125601858744920518160313895858536456063519942353528328936120841793854874243294741192416329211602229285819485180573832900344826712065857884494273167263333157517548356222913293973332476218586065543415755901319454377476363197489475803389772713148554623797113342630327927533601513466643823258582540858933367195401975662666054624773878763902296272879117942365336584416669064055308615077451754022100259078228430894832625159898514957460327880796829461124979423799223183504832462693232036547418065082199517213921942102281061303422231642025533144598814314124447197590110636817931855994099642975455985590491852130596206001115805957856334591077717463050712846481589427368741470252531623387760271911525732904399628133512536469091596594535825435611810105008709959023420753134579819891461105034011494848674218718000197462748709225683664843779418144101912632330085754183335942678389276224667123081610490613127735071660020019727713139089337576639448142702368258785058632900932312286890645175386934875090140514111807391132137741743062710772530689696505810328479745534484440528783164048629138551135837806572657128564730540661087134707985419164008695224961824981877418754192530919332040855380986114988606176437938764899404180809780652417262855358735615957972543049211484528042080911438684086197833590130685407150459722380297468141653717461563421594975673884703060824340694115659110380682582286785294916733083402127867399073784438356901042171657445299813399151138427103481666528658965250887890604909158927007249871622063630556282154105082987124870526651546028177191664859620520349169204655672934121135195478400959625754739079931587145120215537224308959961185525447588751169308381291718694701092424795456013454414362077253130947824046816397942462149087255080567436460905832473494345252771008594821788786756199337494689313554531705450478678917739623617183570774998463960695364608867491722464212730062011727303771087232550409632693487216099923994576285911451736543730381552430617257657846472980735639281894136460936314921683843825879579930425724359498649178391801828837196121511014423427774990749421579904673930432206442520113682178541455900080237742739047377789477345806200110928478752540892820626566891745863902549748293465881297398294780299133120284041919939055970723359469400622814668360321082424897106372006498960168800958732550485827504707629090820083424055738163098356480553871371137747283009257956740575825034915713211221423985836087201950232506696014135861990561788874843782614378895672965252510816456080242080473565751434360764224718222769648101417806233266536698781306935754234248607884656242783275140325792713792981148300512188781289200526849359225154602294979728141838334860714028582543895144636227726368310006716541349387653999728597156848251598069525183564206170375667674062951589216250492884556115324041357337697166815855662722766914881909195270746486485357373333475516148814301473820966525853690713817046945497916471287057164857164116363981310293805850578053978116307139651555170667439318289996775295040378261070491021764551324812410712845445049878625598981977853859179633497506921653309517142699243565398871113089768479247158916537735928278662889743701546413341420300040002030417589257654913547154110617147520495584246643678285612848893403557424323146672788973594495146755303925838220596666236826404898194467442662705141763871891770748427988023938804199948423169235227123867500521816921429457068761691670461211701652994303812031997319940482866532221450262504023773764812902375068372999679058481450816063458439952185309633798839645624280432086619159809028791106024400948723157122400451481144930966026294548016002668925633697971692275745288349539973253359814320851218760700515307061519050460104668468932561878328557523244350633936215436301819342671004362710035565718961153687254871134400337249520827480122811798809682887069644961663014761840996060762789288452834371425208438711678466873746629624824674614966653082557747391348563912606048675535443534307272219825237709610100634206885447808950098688526285776252404115155652079390487769802639709846850142359608587872409585976408735085860428117062862564394039407329540791012422346004488351300610723073548334287087870720635256663578129409056359479507759549177452670205435602372753571644605506419605676259537860659127342118251975061616892811952564707881744613032274818131839186543487118229166374375367962538417443259941469229301384729930209106949164204610566588596529691128956487658386519387657262827666803054280822071021984454857159050568240700343270535563972794262217051103252027580264579726977523237574294791681545590554537903009413832977245210297422022017267297164894496187875331392560982517754323281285776692991336386124712360540693781939425515181607259840675169766682297705922735042665083060658612389473865892591747792290430791417079547314024397769020502347600963648879432694369175180564876339754219949224794415896815033611729264662451161295253162795396205310354300532967848107005761685308798294153449927475455375313616127752160047223482439908201951413380913899489256937622142423110017382356781008367657425131243496082988647118238955778795331152902763329617631158464647091677115688501215256004486716758859913591969788943955011660693133465757084998540181690430578012650518711132103064275746076829497871778102863083105063234706061902974589240286019082668997677644428581242317273140384033089592098519150021870879924207918020918290899491386778400476091179693104322956251536660373092091592940710716312102011289834874885606272657386802526918807095792545135779967586264890424371108844686724563296064020536887002583659593825453139541556497368655122118658138830768349266566040456038380221369597959383471579170465594500739603671917799405518223195368111643792981570307086778223574835678645491558005223216821690176818978685549694927493035635703051966860576494528711201693221359531372806673315537708741606991954735762860034482975977783191329893360480115715162055098157263408850615910422322332533533126702909276319203507751925608318060509967605650022551925146144141863317381178579007656879098199297672746690622968171286891809082084497454980668205286856227223497262578397377754304908689927036258387135805530911761257910119045622270161673392376589306168249303721361630557280090335997224900850978177648633034899159915442845975021983243337008412845479737267518327865207525009238376816356839241847536531728943836331502700523508008097978576783049373732516859543032063968326859452969467828407945840624659252304711108006377373324870532455652073562388257624956633886860884987906310015219348846189737242122686269668603873134950819389073827905396997459910443140143417828313103495748933331666701684431686799317099214676389962905865240158990487367583995023294851711075960102453398358826180310218670549505981013948312835287487369688617811724100127635949946246826203367738998629459239984384788996135892842238268444209274648314782058506830531833235538059987566954330902761014277801373536284645058379058709130277516332934202230153370941644475403261532610580512838306747824764666056013611446196788239973820334034147089616361859301355678149696613099883331655703356449777604767852938619594628116825591843856464549279328098938487098795118938320768589039815857295328848828997677683068893759532228401499423042935905755835298188446192594405389950877733987017462160726720825521029247235480435497709270649356698693493575126706479541133248792432762547458869960197059686777217248860800643090029039675932266063687575948851165397297043177011567159626811783387501384403213969736576917184759225771714230106894407922190831400037505800614978620442576727919131226619044034146615085954588613536196511913800641132182559156120840175145913190188852801349664295008476544318793207452304411887436531066241160950710021143575124404896165924798242179746156959180317229397929962786632201691462639337114327495933310708634506410558004990033575666068211079540458037667976508286249896890393339321407656028212412839496131161888950759123943937579087321747697140766154233974801116970577324745837461113534317697051202277614027915997059695346785979026770299986786800280775947597853392694726746182558264048250311333921672302834663712504936737144924568628413035012513261932239475074563381122009191415537013900788859623864714689571822844871341220745791241730360046579376398237749625580132914650398262260171188954212535373903838019154338208086684434513227503583337137379615066997243355867997686642911707244719200707957040672452715736411292365410062140526790519333055176929844201228223529714442388475514476636722884650164144149013414234735257889826559957591198691448232810275837537339871644296072202054029365032043304780620609226841851485194902535886149267537674795159440048074208703831518911941499848827138988608943609687735818319305971772320310614155572235127899361882849750627526481547649557154069012603000830205008173473000002931172289190357856358764173948581913423064740187506308306050095532010742342303050022322004057389668707728399669055221947252746912474002536589649795293833931883921944633964485423693179891723227729191706037995909447296162901671298556361263945787307087435144431970293963703113023013854563381599306637196454994952095903194292335854150131285200548435161571217753332915517756050555258799511512420138511563372714970453368443539649739416930634195103973798096055329401255715688842221605753300169745524906634761375227197294350284481512749558778999362242152131674966283031467386443123215923094833378011478079248440080961456382178886678564230537411108040935095279991776936847789416892428644572898568924544633226602797301989383398360535720939600996372746081793006644778242235002954488372625199148413242479971553229658003469350425800156248628944339602986311410013772417315319603320058419391049532637358561120807455943615612831551108452671101530195368935723250823741196405908649862411428320690897220135760786197096433913863463438233437205211181666880201629943521165963816515027757445382297800396609260588618194551401130025163278706352703270479869731492372060031396906975587188246976926523412688640620519365858809616717166022613390115124748421086240665771240130569715265287874547417326633434746204529511681672662027290533853297682470683457231333838258067406392007681828396036207788436344089847537551078711229642384601469590089990264859155847765573239597568046968377722255671240738064583797154354957867034309657069068898125858229456849357270427520631601421223393270246939038881884063487396313191355860912913841372788018477416618871001516499907120291861943437740897877533561633339503513597337320361527219472103534624504245225353556139645823976875735137875763560746940658284383148527546319559672864379032947272984667951093075220651531486804946873889864385915949861534834143374083078827182605697208951874260045459546544994486400236106095461054654210903879769894820585826877123003328228700919280099873405248304800545771689873152270448235802399310784637621454383546375378632357598629425629420735868810279274112607117770908116471349274834963500835436126423050070457823226241905158501443565897312071677815422131739337735772146644054782569662090757853606343389696324838921590761535968329927820715384009781679210432312800967718783856385750185851611099651751573251358813807889877958193182090019442613770142016044151470386108394454069272175901946667040001953454936409524092592478740861981101125658694125948110634001349719427042058099035602632951869149363608937281015902684559364642977100380741135011652405082409545283433521815811991390254043041583581417868196092302460603354669840039747992316224035861671129114427680085179918395345546796190773181955984192631659766369520340844850154822662948127387720521381428409528900384663554731283226255421098360741735698377042744917388963847771023524059654631942315917556970823022921735237388717276148528297196476449050121352929141592934651885248147815335639363641415066902453921471444707196614654781306301301332992520971762094002934833145457961630399224958883088871484552818212951631690725379144920525209645836012267690716027705164039959172811021636618263855151671747021659021223991981979475045798060005819489336607810334169370312751228260146674273225173849810926860219838942036463466874876121061893534274455745015987066656312313673733537972103447030792008769183829178993184435696847228947481410754336808976684780084340321119435034946602388319436457440832825984881022296341993826668721897174872470256246585679508465946704016459152476085423070163932715882349668168929815717216345675831532983305965990544741997077299038893917246051932868378948685708153391347820995233139312252551110709204241990511478381429332851888008361457922222078305067476367589407925714436422169651045839228223945194279358081826719331121921780105681199283435591413234405237333906235385620191626140762100250001803089048558091444660102677672772832398257316894628904959974043111364213762202734155534815818770768877696935054405507288812626586255998021755141807473644521162359867776108009496993976153057666791161878185639531948703644061842572331210847748965138006406905184194978771479989096204821491134140002331919364128570912857763457636808964805675423641651448076924828927646169236670818471993561601537894316651513745735549995473183356167501789159966698552100710966348668839899594452117442760545778609132122695989962367012888417428847110934160748550080726457538561125487011014834205405663507793514316080715142181292003527770361278306750545889464224103456923890652372572431367412971226972214376534547974169036734887344467379721146420508539835239188013229650149086475919019821275200294259879948460688280635142224518865673687512277842338971041562318285491744262213565385499365102372236961970793902498496317183838516703284224303365407480860475408316555078459041093453005279967249510047548589366415283949347148114070684753081720785280931966843020856498230241500452290730968555615526070209814294342571889887404728637269985733350391856401262299001210714296793661994580459938081815334814059188955339032688582129826150828835462007007785348307786000603708641434890593520233140847787779616660023793115252566030764516237195123404867046109320944178577693520533118524768432410590636630762288901877962330738559578497225560130794147498044202676380492082578837670240407708025957111974237622311244497218304811001153819028300415813331514898476756944323541914877640578543700201999046498827086275193134580148578394750673922685450379388697556136552105834601179715867887401447992106192282617618074740559674792249984793789157912084979858542186610280249806487338677341929878536146492107729904844449310134666808686020287628528562414937553957041935837019339624376530921026384875364195861239588611225956043813835140360513448911338454990249814643967000850430787726562105218735467448819046325579449727103781167568268037384839701594664468007386545148780216479635147484220058949192827702093502450152733861510290263332808604826882116244577126022422630437276870097799913473593611216322801571109434847900307963020262359347063341404817556295350650652411012319989787588737459141550500890958972109677725040091291057005469889749387536182747612626380297180379763014430070305547551678792079840349472603737627840502498092794205453281172305841955078597601341902833842841040590078947100245769562084185608314842817653768762171089133879376787088893914573284754638718120475187242016632547792116238980746610053507864131479830557181835611749529035325602786627719217418512738919487261437447702988664634227938593875908481621618156942566440728739871599798693385572817184775209659959505282301429715005504491209022410211736950609354246768308877975909055678761586482796482694999625726644069198406607908420111214838102365576925875359977589974575203475107145156887678108891623480743740457984373621428207999700350688109595578995919889748850100377642645760349458600818860973049074243638125103524861617631277899332879566835636621062846461729942134381865758136860364352909309998318073299760140964911567240444714554948831037912385443524319190188365421371195661279906342570589640886857672370394634100557054296861708641542227238831138473969344627930400347368663258569009013037456742739162635604929526896600285722924332830775790249256932812746418536814906358375300399216126545541854563228558602830294934862896077371244699685820131265413468958949223007681333051242318416211059421828025112753660227002554242680484679415106582477237362224608673064378695637803394642571067451061984228071977392543936795011367393880841820668073032928924862550666217601157271977002166039870693143381592627244225447282021703698080835863838424589964940238034096627784290619480969984252949586372209092823313101386976159627664650899630771039530747292182050224323124244966780238735348959855860269243871126372723741986761133971124643857829498409810015330818941268254253665748660336965897843572544220760012311653698024450889940028927222075855074839643101768433408008424691241445995068556299133516681248039459146507649369298862554844861678554036786156830968534317569274119870741423486281582489169527758577710006893419350778783232271851457540437430881336861131549298388699926418207840712668648230648720288926957022563057929736628538531028458994618257423927618533156819244018717147931650878932392484601903458979905863131180122949651823545451554705931776106324666840095670426831619673204015040460199159421485778041896532152760430242003997234776788916241702207882095216548788770704950718150821076359672141342942804674614899769721283566320034197155771867816650693768023673452631005187000108406219712957628983919047051779241625620910635298494798919527237826985840070077891920432706894526328545881191841733897128598124087428264566771361421914328051184053165505322045261199135762842999578081614311058668351236257017209040958184371872452543524585816076502350558557187089253840157918975979815282343671169916795361249511076236964472312964444427230496573974088952334782654250641942391163833110296416551225860331343318994370413632995988753156496551206409660294741915375797210269257638600784965847229941112968263210682440552714608896634728355658549970222713563532161452868867476397829967915414976112423299994256474432743111889700182226256856240331937009555669248870744549575495273402412157781090351212532920042374920449869651476137904571171156726410085182299335427722599020714204881227702202685987790190621465898111480355911996198878675745267255481172489467941771207552102911409254202373113061571802374488146656343870997952008106483036427803884596067799549977222111592812008577437254298032701885064408207170261706273086191548477394921431690451010343758252695793645334186129533235489835977284493293739944501486684487054217928060442918718655684935034877772395500680449016885937712131151901908658858545942731562176072192876420308951463292634055125638689809107838003842990189857702675085535673742833422721424068215823929988287122758097472635810760531346735057760632179241621961017606330768010469721693161142607534195224997328832784968657758238125170498299639227737385740588945314008843818015840069602776530902755018555575920342788742810619443860270547266491531895488839095938059981474345445650101879942634869441844463455317741873155800182579198433316107498770737710073249200769993823356089416677544114084968848231793097986505206743754606669009904197937483163594611412694855846265161803217479301588983171806639493322018189882917493858896211819690657414173572603600265780103420625783182782263968437606026525110024222086713725664958331282214072609184744761166057520454188558754486042108642112987401221412097185572169353443243071785028196430287842052803512326734341707732298628740279459460793911252624665915783130521129989693055429180676968996065257833107667834629098912371979372802135996398970358794795123762908889324059692162414149420432289714539277078832761450553652842381327081194589457186746187361903936254946661962422353597720970787265440950285573667816653701102181533303346204677625603503031520320072091315294538470670635022206911907757771485884398893865931552085826656207652144007296436595861665089648208595039519314749030050178895601877194848190733345332321155757910456745461146145864442993200979222454761150051227137697788659763109687767113891545029706848068159250621345804153623802765818527876372782469066662352997388597539519752996274906498486221532984901312089041709753487819000985758878361176371413218978808318784413862634132641791179810306266640289928831069565530260973859165713255581154106758450578575311902129727974895963208532536138663218738363169946746051274749820463462492810967609796778958534353468765738005598050529942179078381191006927788892026531650949600211823848845151191318588405774239287538550623107988899905164420545307236439202422880656726602664666660147500057128593186866921613948161117398938459174250201127372813574459396609826661486957394486084038787967427240203195711388181015047241816313900252408742096589817331176303368440020870432172843969907559815854275628768729265811923615434413397489794660832126924541027873092148858993432237454077762347889464394525843904077735303652801188252172520652293668545312785291856043318109218074002632711048588943260278753147693460443553219286382117069498626947384498921089889453067146592172941581318021718508846199735634386381210362573577436833273205720283042329608647417675105184670365402549654886967479359295100901623193867169256458555306252265991734536416422455512492284651013838860790413290690575069640901280370768504619119326972114159008369084000908876435970619261726788928292213334687600961505089205538637499855957371035914979758035418609522869925947169865246375310454576777199622662898850620634333827678121756218722078255314250335324472699473738826631074534558484634698134960921822781061828060298372902728374399357795519353929228486860913791353318177024869403345036876360782860534962712451372156194022935300464708118629176848234745012410766273446911928796233893064579603992858387490960267605042617610733356478948727983450107714038797663889181988714229464242603838836259302511905417189423962633865965419520918381475186643605775940309692527076159370162959400218817040912986887013022305028182054024188667551103093443073357283257406619172200106474364462150921182119054068723642735071961081544375861548984504325110890556641508421513615490923829779884276797928827766206893199005612908468780152127416268566110186605166179516771858487435716046005145030385949030133726494123710777090878513363034842842835446299106472542404235863046004330799118770821547082704820572300506530717038423631682182776412171775334714838736723520132334785436946662977209435290304718141161788977333375497465978328697341610904698837564010940500956847906564433906303324305222327835109253143224980116354355315957468479252924820603587419234768575052591090255862943682963838284575103156825266052273216399597347637279668276204904370561490689707835069784922000334093269226436816331437121840228213892094380965433094859111979587793952032087660861401781136896602110752158254434725282534499979314924872081634086238259396501232973847395478136626352789636272005757941498363347389452804210692742801081338759162124094556677465293013063408566102957316587402476124358788676932114825705187524410251785835080208176279522416279222398732377546597915785940187494367915623863425733727222718982829826765869535565856084068841261505821802517087348283328125931503709376331601054798517583528485837312737844905661634079467898268937871605341379613848760888565531204242320031482555815804699606020991135658181941308116235939863484230573532755425912038213788594022108623382321541750766009013190068608804131125241499033121770232345876346703764470026981552675016298806815849632538561854257384708257175642677819982475301203525351275565626171223761137618205501320652685713988982446521401653772237543032660381301660758240883627090803524567508839409260492109404011370606781027959424576771293941945937195329792786514583308562938267960082151521762204668528440628136037871530103428359451420699049866619866670036750252147023721055534575990941266717336283387988551166318177507567933257747695631361021398155541514595832103457227073078994843164624824371691332319951805599851587114405011271124535470456941631604303985824829846281316887697304837707284648364960769625870358564650379070525121642569564390436475428170964819040308188141317855512496197696944434379501868644066470585885148193767629602212828040511290078673152322844817556048860506702846668632634293539481452654439763741944252491526260818429023162578591918057591228654295371642066944266248531944104101985557855667792791227650417121718258517566319637659236636498142011018037317743283925184515661376818090066539062985687821488830472953530846863857227646520730734407654502592421393888612272008102896527565511188812669833322816594224533294800735643065360861110249545761374114696494981628971092871878225248186989699784441559016275806740066337285976055143730919477291293685599765299160726453982847750567505491652123955569917824950157315926140747527493423526002294334913872527214504858493738268064148344949747658748652283662666401855750937875484038611219057702826038606892623409953100031175639783676172173734558768112148738402445504274739659869896350695022114977535736741191635231367856365387538254803678370473085782802065742638447292681651276624793251405886126056704520981201714019858925549470605121661288669165989987903685756748531934838512708191755629569899223624354728375427815341112625393703851652114751803353755986628274809966651114670393055591438612834775359686278482645466607033013097481432258792929201929062301292326592563880848925573291811654575824280262085842194224852083317928516314600175852763350207806676573364678732112068617564754490710606967417593498948350863526835483460126010092397523316033044470386412298663113593849840342087404542839938686228191480148965454268276130674304742988253711405467772699895668084678324910101859542741543738065661072509189735139938779997850055080386619610281682635134206387972044817822166793916684138327795041626942254134190280494236084322234308941586416016527105031371655346063040185815560330680501858073556469553955805336437135988480693436434827455574847551710934505979968397168134923066251558425726177842253582494201642795416252714315162696607535850369668904197233519601652544537998737926573503544100044516929403262004101150784262571708738258401926491096076790206150061493980012793564493860184455157085934954183820962648545328461801202442711932302902073694596375768764007579636518599508085854128999535899208843615357980644911698038112352667918707013548935469444741899690836813632120424016804672700292243289086612366528596892950240205081632216758210026733551935754567616055732273621300154929625632017535111762113999253641586151103399271910636321184156539254715992951955143435403898095686955843833052941969753598782384217486020926115211473047070950019134750241996220604914733519996497020221599680358064005647263717044158350036874932473635003436544864331756994430024459349128275716792246954666755586447870905196888661906174134609442170147472042349846111894893775620721450133690807891444400126685723107780059440145684110487020332640999934625199659652666104106696395482717260949981414169579849094103050534554339930604421559606585583024129368140429628766992019980369657341915266097056446366304149813143910210417066296063886677244774335002879233219608786868294973092926033383355881722272887906048483300568946185685183138234638671279057529696513059822609056308104669319867459482881490404561092251556917462063582082665389929704546341619688128518338480616364481291189588967602709651232758644936774630343645219322545878327666680507029756815753843400625608977057353797232329973517282968538555411663718468824080599015282525505971391073597745425584036483494491598682865443284467967690706279494764776233293028200910471670709630097078804479011550802027202224015412220691762717189890776776021592078751857777949206400839577286718627999886787636375871291765065624442402266468074341711043173266769744585076559610476599562783832460182591723138293133860969621232686877590803964182702440334307972675146358217752771213059125933093271057716978448539472715645414634124233128232181172554724728492203396917799200396822234741133766128446037254961321314162097926780768964261462527773062564576281048858438393300985915250511996254428286346617498647558467624630319646346555092119755219700684748047986736301243172895169383919620592973270479361648642175683391972468221409913985016680009900373046203994152189286652589830444889151718651095155574912684848851483245458390502511606492057977905014789884898259032134154622117122256562452928871659390994780697763671921845812408959630266038454047324312766553090887907603888222025664875424479661736154838014030692673448335838011822823174091593464721058183060050693129909689910411138514131781050071026700637185319104140634123065385061453381583795497291939513367302636038032992873688800425294484660518141816715411981946008627652510113030503759846416882582959512715226584202745234992803661359725284567726973551968510598136614058666497573750299516497478193437850280926458489869116209688909970952510160776454493683558959737711949091227652085752856774534345095158155198331786939532565511696131125699657740571542182696697764782213955700063351244553794614590944173744898682054333308500087662651591836551713073792738687503984160999062539467316223277509668296841467220155551113057141147799539065240066651297061006731603060478154266249190848808618011802736546866656225655683325808152393615559395503288778604767670330717586096952474852909916407555669248555309081020312856356001604938672931124963198404488108034763712379813742202449877104137826222023646964862862199197721887461634998396737383533041667964172110339976299673214427778721321281919497870134039896025187799152442581591443628964666795989657504947552257482531367377052007752468632141145640206771612353493746466289751402835856680454167125282905043158689580507303573391695601588813652619524518692706240155254873768426174938763427551976405121748149329922214294508978204215699827268907474368763287948703384448040451198960272765138018430790000988891732839797512956384556167323129965248066073772891025175120738461123989517651499174126414485064695174507896694841333025500215887213310337182202315647619078570996849546969733701219384774851759134432564292954363749218787558416784682819155857036397755938888563549594738506894267174073654380451973196507081583668464462572476748742850033095445073331070855936423358945833917498034242651692503895493896863772581146917331526626300466581955632306979064802308418489430767228291907385337027075723559764018610570076031815009267950135197720409745742123146049276232614930881507385846904484571864171981242908191004607490811444565067916055535584484530652315048092408125303326272604845683980245914933350039547119939065588800903229625714661507329844632682631973698912355681182302556867318707858494025421785460949913699856760129459775898797505245385805673053316412335666388749512762776041855916463156896054909598189732394170139408875611745627882301168979845149748761677506573794263159423337769301988144758494549477964911669315527621943998254799833197297097720800071521656064412138751434541322555081238249805002152708538366727544323418914242672950658798295662811165542215960500028446135222663121830897690175709238588812717592274690631842911545049690307497798907726859445107304708778129815401860464430578029017397218571367634573692166849222036892561952986130816361676560909529182575995265861088192980259241435611311334051515523972861847671877484275592954482253419640251362560458132770409583366053754342598262804984856294825340729913145381865478045771852896250162715377584970348420608080235852226746923365016084895656091618223584728192835680348473493478516521479186178306824092005472900797424453157834843269145470049173591934571527389792917640740396575719216961221385378057957579100191605032272571036344811643749528849880334791649324730735795005954350858753363514800566526645343193977538224753875374837139003134639442822856093369510075393872967640516084937126689560794800879044796326431875258094719863985554561012586550934587056168843760050720049561054733433502305501747683128805280044777977795014305815356995382668459397386192938939686447224488450475762165211166238315918616507762690996416221590668634519221645545420198130955446058766298674564692467773369339786212210602487615417292368695722804053518239930030289139681146768766755400942872738417842059587147744748065342828858615493422888247566194005031251747410112397590996956788633788053946942657657317912777679658621590014370002014111733472733189841534161459939051582744129021976754767347170733039135569635430360724934511924228111457927310372791365752580698983079032497200935644949554631567360840020748906373206980918221002829646444403145629274106724657444396001504815457280515975381784630926850667950991447861276831656443726640083926820465015854443771209413181849188263321508753404844579682311983583813981178985807328671076953856937411298646887675421532677325085700934327567461770477601377986024680493355940646316187909799723517696409176811868579590186674777874223126806633128219340290893390319000045039588405825991949803770588366667894278905327578818297916945408901434816931480790956426954624133024853808973226045865566984617988880441419759169078210524228917451452879039642959931475547671459048298729519974254269501570273207275544840977632986234292621031945811833518902889194745436560087713137493358785681112139433652892919728673308637506167185707812769133325180987498244260741248576826900287994866246794066800997759648158802819074011989681053661279815006916326650028756762154022434059110370160415072463813919696041113158040816704826214176746182627244142995834378284608986149216198831990307250273990687022104986421624236477317984480601883833213559066224889348443266662684301607920672046363329359538250628334390538876855206281804771427318947901179071094066268675239136240577632600559180727014301895187914064585651202696243564083907675617737592056971635564477899788090322598142074116184248796449905518230326347893951509219823148638603160766660975749513196190583296415990765613439293328801760347174594131202383835989236848068373336205000767958651759374679614933914709061213707742061530178233893793263746819665344337879457721454596679526530365205005811717020420791680534491109611573182433340050090486384101474052004643963444685614967318786578397363425723979263241393086265775089644060518102997262755510527369998020184276107548399369234194038863729802598906311771162915329509476123737014032528693796661557320130578528091356274163174566593793300352672990902895186147255765423654050659206113777547854387232572099609848052096532744457262676262494766481553178129641177831272734614226032324106050457146861280737645931290914915569520677147913331938764816788757345066618670499668482641604253572812484915146620157428199410572662413391485288428353731934817356487371063178556916098234730821888691577340546562477634248048859119259391590251994843864221042395586981664229711588720972516493772233949675523101655396051862529357144640152860990587300010536338849981578361924670394269348092909230468065967600003657531919823857526682989298823561142154814099227510962218863333155820930319604103231967856907016664938154578033448198216590485692866144840641368493969556040194146208757668360010779028013515872208975990159346331789089819686283154276570654574567514132344912804039256371816443139666962498915490277110818451631000545044878791018950278408234574846144742627870523214446147007408358085534831888962932782612585963058882512020709436595701197453001663195174198088591622621169157447126616697725671281618439208768111070709997563850334277371096784739072484874800025478282501004256349040629539343623828494583287372410636223904025804573496351205153343396302818188360975735264448462189138252526002951573841490923942203988241901593316472946372788292263242493355499262891516232273576694686755449533799995618035753854306185180332740729733684681288135129459993231880443009567412727616967968653038843931200027557437100156839120839216477723624229347644868634986106418710052439168021538131212574673004155224874545820690259605832667545807458233726910047631094068583288296839129705725361076630389432874004085409830456342144834465957440196004276863206890229393654172197460793553084221477099395659026669083805418220670405323840153742842937579014635719183604353368676321432566292020452187229697838668837554253172611610613171552557527282709915016919049559210558530007389566195269974311567286970803839149038898957267523868624171580645379968843076329345986423817533012987695965103173873521409636419492457088650980922641612550172592638975559171286303948196340840898835259475450671782049023159829842704462862469172092396001973942973724423034409760181474149184894593814103539531550520686988642315517221788401698058977258813670434122636120616961020822998665122519875812164670797973301242385581756810127474494980794433040120226964933030159466766260979451829680207961656289112318706977458211592935365257653810319991153188265311813508555739224929827435474965139431031921317544335059264002405834456814446923197623286364840859136874953807810936276046806373902925424854506228377380130139207833203927885840335683903448188851915951432567280726908609564745087233495577494366898888110974093371174236395710201000746846134242451996252173364807288635720541071467685972796232709010183103349185494606016483875081359780256998729255628050260772829355647648518372326354584719253966856978143466171259885621368203614808058284815435498343203340428891357907462167226558211355396737597792253182525516335902789909534581634275526029025772628689025353245122788246760810902983901695355129009401712250674116011073836230696604953086441802595528279348666283654554209454161851097935451759824630212434907934876458171713709600182874748243609963324689903097275877405861930786485798358905318050070330755528546748245711227632578408622922971624194498905231623713150537097554792992506007359914168685772893422593364754976800276760937966347733816848337609738313116128222676553347839967770963172475881953139731193886324145968172267770166050237191234712469081418517452439594241311612805902801533930980443478530812674639545987833328267912257706605809787763658716654301333110745016010729644447962686951680582633207436184230511226798582029659750125323262462024425015816510617847674020365180629536520548527923135196726433528952409745737477815060303977416197713219544064031092254151584231937848376816388314375054126512669730401819002617568142981245307581330113635504431370172113644879732018149681801421844927170400072863355698848324216416695515933912857258197986478811414196605685857082673334669327357764320575684011286071788454783696803588971324994845889502973190977743520966713624994441243882268504277922876474994727114233132193379999259775814171973388379715929844154433757167734990576143187587273962001356078541327625133003913499810135793544866651610165204144015328680693304778326310260184697610544827378001032718674014431968065615596828924360394312029102034876933470536647621604787586252176760810432462211815657340306478028199342796632774050610197805478151288021834354268043004438843402084338838917183870300895789500509701347903330073805821216380236815813442601824829232335215237076588256124666565179865956087356458529513139121381315542721900105926958158483947044566656508411701738573816140876076962231704765094315547654966974616192328015836278466388586068345021552858067171026408971697455681612260883996915807831904018235405858025342407214496411908194255789519965616557097846120924944145133520114458579651167556209385894033127606359564294561662752459345455627459619194182039778153523961572709031861212435747826142022700363180483492383111112694914963331666719297337051251706146441098073247624851401287414797683522095126246917535539060063044555465846404229506689966547631078183124289531890237355773650432901120484930998918572499915078086923518666404862559319682427001280538145353885046818411142956009264457416623622872007083535313728594722308061193298243964922774359034736927983861152222669301270714830630857132971701277479441331123496200961231455713603842776041498198652156561482668074909533857086343631849023881800382304112372779182153081882828709564179633146278795203802784276214744369525445778022027290754755856298577794727476288925650418525447218044538186449505497119492348563738299238586403585239389479725115246460547674173257151019450773631087782718281324479088697605804818858757066247173252336401946680140912953399458386032214134442048435100684984059276179035953939258100112179214530275589833833170072366445754475887512244421059514575030773280330517284421254639648030784642160727276687305888135874536945628189302240641898709951480909666374293845696253353556781423363668316901273176296650668401843164895324527929540959372732773299907031096358854613703192324661935549274309925359961420574010953384354146085579159354344105675226564300596708375879564820456842021482539718044623361489425367806555181481276616626184042461857013304356751658926068265428120028614259878867248322405068920972752497210954988290151331844779811823867326438530235964174886787432708562197130408094024092549839801687583508344709656651229035517663303636261443054673717988750319375801927229544023513970301142399115978151216947260487017585836042145530475836495533462171402060828404922262831238311503821055708999919405934956017774230139884956463899441865206775629230435024524507093315887605556581885929005763939922842748019280383497709968525239449969874477641734082812415505166312223962751131906108743594230915629956515061979933248324488783996657262705658369611227046468078383712122804243830137410398820889659937356036444168178472919284742717423675274252671831108792025734380196636737471626751386393671675627386926914763807334014587551621864289466148034231201905429183048600508232001055219064709525582466296394178259278683978710218786743895527773770659394979404622524879828461194977486402539297323813169084100921198944680131468383333500827701574993676049032456823875426747097081341315018965185596006651433813575730866351196436295406523798866950523833745584730420650169599070686514730612440802657029334266751991605133697263529821875838348918423587501564839771316754244340341111341788818977226549650828397586259993724034436288910547842976627898401497617026580100499718463722441318500284669865605707997665942871691973707025075340728666992963939638967783765720749272942310650924888442498131953004544137855814154203298129675752774926293464971698773341170366562131026903623405459716731043509774830407603183114792838744747475729128622154379932177931422079351366342502936024003666252385529632702379770007285917596845219682752717590625265030728694613484108686581918837955389232510213265300049331792576685220747418291723530808856348438046744206915219479556429788559799771859802059569623602794166296096575139072892049970693551132659743698994918257497571158348647702362775551839077606076427811238064988405004491056550519913249051087484241730364548141801593583874613558108716664725169391829787445480964828425874855936770731576027099791440886751209024576621252079828126101446711285996033477281300028372196620104664119417689714799824008669278087303684120554513022844212873393299776864390688900152581108486371613029720936519002268005501222876839585071475782109091304030935729686282258185399249925577610303297457950368783981406233682409718117498499278066196508953471948152209611225446020700357590058245269522392451428438462444007969787037258789387157170312246701180073965415528250156454387430335571913286397999768319176156770342781889867655987333988530399702141090197093776785632732116708594363613379154078988180888960060340823744697729707961547426016303981157860905734045942878072061782385065551813602583127996923594706380109363720212393335675920371281868313868681139335882060170662038493649999553131008968712981823375253519988645598166606776675064537582273610542116454378810642230863524462786835089691333388193731286236121168914283009811255537721762099768941126818250442078572134064452809568885428575687275636106884931331745421262882931553667610821435791375281149187561090420227587429365671503291177672096892973582141647853299535815908318074989778482038512391908668481767782515157982358218236168268386590534864872147027881977156593801839704492076552486438873626838773178553805531089060328293436841361095051727557683052186158266731034646043990132560768499134834850400906329394406799484438270632472192232520458274332172320788901639177564830073597247021724919340674265834947021793307710729072397549394619280062233404132168570380515339416316180893274346978577572842199922468168233828639719105043541879296734958924031269077002412391247665880739254360358086776375662220372823933237496258750842686536894449875990824060640023834127964652840495506687335748623129633745823084373780201517483353251895412724515896578948851639629596274095130366561114716439166150645839165523341149216182742226096654481094134543262098576496759029903042773409336490165158618342208359988834657980487142272150160502284252164148859574207757238656943999410332811979502910514920201051510606137580139069352807219631755634419971116871512314866363040687410229704450244210900452776563807941890331284094637809942374409162485732162796890085715681545307784570230155211139653982443021479058498219064537433870848972701105839149171461200782304660697709124757989169608304023977381310854631975928389736974492142736829238709062845155496158934862829305834058408530974899584540918442565899255054527941403391448574520639512311817789576956467159571234377365813867178290608234575105262720632899299147790859617580831697933655746308603836182704783216759008975647227736746848491389255460813118810182727015378499232881586340056962521493006689880687106278368025372468661428187354734526107682015377993161905412986123244722134246521456248257826034024554512546199286487802136378624678849844833845541001933208833606953352103988366160288428637840591663607389654962169540568319713660618111097174287184479427835255825927461259384038594634621195839695730031957319855835772252798721192299033754055017921631076147967224421038338787991608926995336314246901623622922529385638179242604268492235930441152607668181913089854458417559749694932346910020565007318277100546620757115193525729749002202909194815212971420049869498213541162784346443046960696676320283651473353819460578267375367792984902543453256929147442623601250363384126640258762824459079909015057233853833734213740789788251387787000780091703892910379436905609458360137663303297302181293526166348848236859774496050901622389312149530990464791142376914248111556441889112116145943134681399660691597784860285711796349066137245638740409278284172083961963343854786744937406420790381241104631837222320994014220896510195583390333257009101790832358181356004623487553715816155368163476150678587720028338414725229004418971416742245037584443409187719458341897755913180031168484917264742501917068681351114191937760854700184219455977750500351260747587963291585877557624945795485100295810917823201480449144404287923354329369098571718624991577410568117369560541417889999537287519662818117330743986572727259836665573701703353278343184230737172765182569765707918024929344946053670439817467615251060780704300581799823721130412381912569512805314148638284742135332431980495357626691949185309745288035718991366625634196999982223402107232362483715665728217498588315388008163067061962097135432589129964499623457434246681740795440902313691986466730764235435774839055213226593404245782323824032087865138919404295670723401803203641119369624455726980389091002134381374575480401438773286658299581398412500703081176574344189478901631197536021815856197239456130714706609018280086275007136361968332134433951338359164164023988746437119991902576416307678086640373908280397001772145702457916650681706491928461285417467371271686603243324515462844077507480466548559260752684991299534552189276442783304315364558073143103047014356295766637164871369673536709039257137586653115420707474894319773820858545507610281111049789012161251160757892641378677212713815014375101693931733536653601371479378755713669947999866700272732744827894977761902212817046754954963144395529005071581545730599679814698950835382955145312832423247547232275019258752008464370228897638955506584118387001278343366618095086449979915965367317028642838093221302361469282759254584638616985970042323699207056963238004162291542645728770129055648681758660077499967827270781767901876549688020734274390361644618189370848662633518695239716366808195854481269224819599931078372540552637201188483151108741154268161719753098291092264606710755050387633515582975685050298682265230848318830886463776379184680914504257037496132231148147839278206848057044008219374830142873999849346348409411552696731044905253105106134166046479517625736557766811301366252366450175738852230642691515695576315316874804375883673476860219699120945985788853336089689110257623318534009175782082648022996786845938802287504595938462562194189702085708740398688004202173978558318579254085057603676080064380521162639039858467607121113500046735000017344764482539178721535819418064369526885206643063277866275585142696145443311909205362972632072968817903920976225278693338570469909695970601082971079250881800953260520086664400098045023836157606030067982990381702793469578085755623990957168013676946794213885339479601131261467566385178266717009599674881667413754518218002172107332176930804619091684358196555654243153274802778354642175071162570827322504957984440629068025086731368188407447183662650603777571277566058915810157053218892782231480826986135474382315975756914305902113174016515951739601469370527848142266635565938500030563761590690153944055600075282906477007828014719476067007426368233146137191739291863009182056867375784381902833105109996905153690940021733508415271081231953431429259641957714153854449046306421987862864386429708055872364006078133724119389429574828814439209895593055141577722819816766547096101507377990382180507174316758499795482274694900873778956472090979890171588358034712493250472746941806458119163690625899892070486804666439400584966948363883141936085345129227086148007672458932077254898514785120801836790912722844626764901162949692221060628605621251789203928629333637400676063778954098296912192887722282268918343890019637385864150919903376155179002845355396848491965829112301202440355293654005518865184965412258470978652463604505448177514504105682512660894875709091574124408129503957602367260810360324964101158452865011288163786827319891621203188782523949926276811884657308362874786269632603882116795276288281037121609123206637755931342617210671516218938871345730134572873249472231668704148434480906509290239967822020917294278940089839215207308597997260564236662413273571457431797439349961777214970954456515422175229337194600674998622681093999956887036921482012120690857622939312149732341774697832175875494984374821453671845787460717513472693844759612955559145298704620883124514142986270150290631454687671831187868350644754874160641301324728322658499937549412136156316045024651038641490910853065466776033652319038880515060123706892119560552954126665470462421281077711350359177265925266102663321621555403100453248891629136506345675475136782081936871500655769059827444244463277080277289035337724774250382439956484867052602980237009047952382816309881281330147413796660657562565464812232736236649503160776256671227916853423790911787494424669469424831982914983223344787694517571985612065166494053715358935922017057668350052852527433231285493513648031897107713754486081852011737367335115004560368033923991780207912227408051668919839826821713182910771147982143489081284183180114023800140463041818203454960305399119282390590597081806442253360491627856489089253999011099879228018849664172503421169429742799651211102312817625116523512130429893814341796628201764960148505212547476721281262461656645459638565368891875031299759947349206688901456067457815590124672027966323540797674040048231160160331627285176143300176197421556232598915803913762500850424811646741394230833771221487791896778294983942341553590784268149730694162506725346824778664020782474472918545713752718140552697609214330402287840372696969870755393508902844558861222507872947567731632219466141475284658344826679309417164294039464675141862187518718064300323323039820868471334877604557288729356953298064078162104598820839558603835392996471077291229205304688304202174342984422228037891527800149201367747476012503603207452625891435764353950662204014344359144234272609059773890186659612842132787257365319997089168281804468899844679317741408039470169312330082441425932821489952356390073221014708446605412513466778826031720350697115387308516244787005537600645761129943143862922413976483268729129501733194669341317138849230978453422308922925375269468641402250172685547040976818923261450015006903403551074876669649531038468917715784688516012059127135439241134835593987836629052065783683944885700001506126881486171789481786878847561525906639632960832360162463242429785454957124457886820738706416175306120071590946182380095738974994544868794248964532744820285035555019193233679987390004618724129901591406181753345968789519082326550754480742172259011183197422163643508180822093144387338065045887063675883293861291211203149503170086110119656335173361040363267148846968685791393881301564283929145153023522456636298061503496484523426374061714820622064247711132206532012988836396052817386821637867925637449524984317410624509734970860171655191271713063168589860051458961803177119233427680743545773403590951751718481282230079311222110578309059334832133662039453247015223360476210620430545885294985929610969989763492341483475957592594023058036263937474708479464799621282711448387159002551428224316255845861637869370478718452386779794018962798074334592092425311681942439368170919568484881112721794666444198408690959952469690822239219984855871545527957980223121109905437274388401379340347524302619447188869657388179658821530324183250013421712081863356891434656544797777703887127832888652864547145686271821504311497402527435772576950908470296966985025406849256929396977417033645908089268433541248135202471636201792464434085015630944804302130933839527381504289102161117299245943175382286015578414350175732230752383725034086230942608310370800579007269912775241961368367343663902611996677651345050538019766057817849816069758616919962800049579253933207188071953821646925213706422334243564375219730680841968376328723968702657282735048150152235696499416564514379651715625041669342113283617292825781028034826739434062585160115345507430746753607787614529919963962578462908221974743404147091803969997040549070407581030151834864829938243778112682136128946336255090200167116091614602707782172567852368160516922334420971998076959849919101825190902755359777460004446158816932422137644490210886390942869330763772011110923234808218339940769825065030019398837193456570509367692262758475711714419047363535730984547240169474366451579294162149823237385213621255832285024267467070846304501230395630463048911666594552587200807049692773635627244571724973651581521085034964921420705847391051858275154996742767550638703772844756479826535874181378256111565808873438135296558953930630543648871150455123010334503610972508352937932119512068189247697554716120568588112173880736708226280768884932328946523899209688096291277912803975976485337236278229221700346302671796762567335375046229972621066780459984413339091446743556422665787440716284544672754476446137206625494651997801788337184472200591217008405819406820202935477407291755553994714301826841271623457762975839512434486395904427257760136974085036468058988636672034563369531087241228500092865950531741336843113140742285456877024494130279899205026089664022257586927440757760572195284408401678797879891751369435196742772142850277420278312179719306292626359319145494862055516173155840682586705573717287049718242493641506408482947292894544285274855943041319045721416175231814287720451446909635822192849557295484737632345192695897146243822065461500058043364929005137582232631983053677906501695117944317328835556630137624248860240704406211438414360808697942313213050062921959663371390249008926575977186607814168607488037155598807969364807059581988699979171008203969114278015937728448856030118416885402864212264685858422642763112841271425916167877361188313071808428362849566816260788354247477272976034285692750548758747703517382315202524435846103463356437629992723763813688688688768975257400172753683809933727379239489625387148003771941591429364245235944528352686084771570011733835052295780467053727899396618843577991623042925505868256252928461642213180376422805505462918049702612426049069527844093677647983620495348721760817947122642894447831132038360282150483995420466309827380688286283384950982249603879278033297047588206950301665039996078710711388691804388921033759126246619247238658482416333888222568120252368031600521870551264347716866290491093802095770765428940492383394011450991813019102673355259089322070590414797437662628212924004752749360838181610579403773368158184714779579421350800895291634208043230383205819946822998670378106796790287154488333738717630600114418941911355040735712590488727320231787927048573867297298836414343150194516492587703670018518983624036048223075721323001112187057105927918739428527957536028756503076924321511362331431591152962575905175071410638141177431772130053004508724142908801894986556195548502234450892990957208581053335922504725087061020573197610443502005108057459464020917198720545656819942977569083075906832662456116801690965720579906559994780804253487407647625074918449304972411805735037314060691715060728889652476435382767588646279647110793151327362535672533570042746919195740459043547653123187912379409855829966047550514845735236431797253782610962426502097698124828843245098396472518822422084052125201851282448724532530492059791120920447070454517711058799341009218002813304615622735028568742652706485961610200632391576615379502777460277075469554247922459358136115094098339116663485506689684185496217294596937020918697438762312332218834568920132246319382792605467164171358674488031481567909796084071877447186686972687940437223479025187026816698941250713959006568370345099491609790156739778060316286824875792323229039950971632498347071826274806199428153634560872333164383284579302045792675878121980561442275509935237444417381740791574469179853731122657142460571975080649492881762535786092759000191256263554013588407085330399302557256888778367009040858059944695484242202216788318603095154865947608915499677980575143548011958588171542800373506333841638491580710549639946512563368605278885000894529811306689800952706709088804182048091017049992136001717703234228608089393264265191985468898286351278123829120416785734774521648560193325436092043506533165705829511806169964919478811212030357332789606667402116371676630379335049066893486179496153605420810272347861481676085756566109004764886267125296418006374932358351118050260063516691701294499229473600410881206665014137221602809547428901588870539973404077430582765093319640399122663344690076427772090592364209955149122966693519789905309779141728102004150553860960494706534372774380222320333959263683508567489930365363743301321353773892724185822492447782472070157676812512117300703538027546020287838259064108420655139281345532166651471452761442697122922728974040393393174969380690121595074952901469726257031840827300234193591781617957975211458124985790762033664229754677448376070102121444175907751828152211904791618932394552622123265803707810604725710491297013327475603376175252235513780660661212896448449672932752047109486658701478715787141579506771927094066685755113324975470029092299019710987073037218053764030789011765111947735583745033016728751581193069785683668965816616422736722347499633848440867135793443230815682713412645263021953071354925647182268649972849348562138840496250519670798010301436137798991371780364776320970116354295852954624937344421441051916707454484584496502661166614199479525324013877355391766628091040422463164112545815002441625264215607184752015047630126064283734772250353167793525913232197745271421676021174033077648118570155569006279764072713102391562009607176347704231364764551892039963609114156471911722488987162473910504686599423096016188811078213192586729340176865289694455140224006815001015313889905654143704695246245963422201548682063217865062525941232715608377631174772894393489191475367755287179603772532212808045566584365799601703695050787083804255643815920878478305410013088477302107180145539936187718864132369964517663133060478759749931391076318130111964366892027843486900072520319914089904341258963676403235195393992793726315037693142513527869089319768785093970753302022448467322256139512738370177978801749854948337415614207250241290282999646352953310168803741089957565284491640231856610350007135461029762082769776919619141244567953151185628384211643614993150640815771722810412000260552982174118282874048684827901536585697263485966725963161501816869869290052801197447534356615229295793875302005519202338459222725617875601993103091039871525193798795000245408912939695481382511775081824233344404023234017567677924201374382176962468944848391022053238933735694728645968781875502587939633548812142871219921328875654868384788461063415821950549719070090428251515243657523098637497691612286883200663051972582518789767612552760422879244846712022355856060713782890194479899230116230678385655046029721450312592053077095067132260994120479229639382692706360546345609700249692147297713493637594606508706080622211457979590327444665463249166925327165821797130052295785830650023342261402512811151760433160163016662394946211328165180436596663985244275900475940291055735928233597617943090414749877749329768554953110977860595227155014416833408714121033997930989891395359030223895992894912031013830830385688403763505238724120065598504485794277256600758138437953985379372162481962001149667888280464791755939744928202596099873888515947217176778704387050109246891428303598725864747579740907533670201126335069491291871745851173626843422098064636891442957875404962761597993621135407417873918286399521231231638406861393656814346415114510010483986132806590373458428217157463608929734729148958576884124595882846113570217615503715332539589538844789458375127170662956032557856950829346613938846259724538757509820416756521549054769154345225606995926139728123918267577939095847695191342458691500921129434992613990856537851428892426282403648811911858812467814146250213528389089737520370212485139212046947757676656686207525575969162192104161957095757452779469805142346849484464514511735426315572851827243208477324848276734439956000521421639970690164144253349620863724945867697934752357569967514210962084735902967958309831065938428463997271054474926400419662478706783707502566206413010165141130405857144504979137178207262564076413293987720727349230317405839958252659007877118961090489567283438584451394761999228074462881640767010515724665581156345722133712206168586946958319931135718097208511646712834914450570384157257088661134432466868898343001563959793033118928466871180012787283390501928697327467311867315990465960210496069391987988956297356097192280626961540602569768951737625358189382796215751504964388707874186326700168079119691158087216257273146162438965569874502838050189422966209044685103761445048727659944918176111961827850155926789700198017791462809237571452216673859632124518754609796888175119125676260907119156527508538645785954896535288988696042353580555015475920816472787024727275758410614811635450094917023053978951846761582463131578802438230627659807771220294409899007997244255334944122641070836349564271101099378685800633131060004647064699972422412011733555161684341370262323445721957460541933116199232129301459356707183679411915305809612726892509043845980056811587021584559801668015431850383549418080298124152488052461880585762687567098637721773040092510334349584076018249656751263208067541390950615454712720766071764819702613762631219618819628030244193228725936804784609539174586355321841412963539314186624128279458909360024802835575717402270930895619038791030767222102449660636907497760787655778743449633592863275822000287685927348877941305480389868559286816827173513588375142625735861417461946508712692004822896678418593838318348654884739323978864148868428463439905043451759452431256770074077164467870738997743213805502565420077317114703223303422583975428629179007769584158054784065080751232549687283468453082686384009673207355258451163882904674399273176887473409177102180519909184085717536260876558709702750055960762132665563934746561185037685514952787251893301332432602523166358474712646531369179868515399800542501120667877393643475545257938451320377156621752929251718365495529683295016109014099683827919508910840768961133809827173941677830946375415951067575864335733932423530509116903457513024217437061313077319352222541347949153070227883240364078460843432754757986615303318550266474440136371183225218565860480913354216163571100950089305433896269066709993422382425834070761642187916670017001456644236525157987226593080552953377459937410102057228037329067616180882874218964477363224192573427158148211711513860888515806522840015408721185429261865956813823090738914768105616099384669498725286979633203611883712585905929728109014038849671629303557242059812308961015068757385981892236628590269435640750023997655188273046178657849415774425327490769412692184038260961263075103339340359477016531841160382373062861242253729648121867811576327433182743055276139621589855767569890810513950974672045656917243206873378710530411680225322432152178266562321176794098021845673101399158424546630979669959246410666829449767091219403451275493274230165032117523775309677678340725186309436584646060435028698592080978293993241976548771884561865801389762889366115346486051847393925287099216460969968170932627986042214660145437897526951673848627286529538051091276821668868974468270002477961412999193033825748588510720501395442447866180878708772345312320687246147365151759943186816346419374945142103684285614116223072863286571642310795163322029212102181255951532824783151586298517858726701804602746319907398503200747566457770418436747766886900459002376238145219353745957206632518826374153040700342746285567253667219529202923497866708147626739725408340492845691759061052124407534073810832695492520447330901926257534281314535173067762921826988015038100252583112740589699965150195920584358657319200170275339147241543820387180684468514446130100822582694756737860654154600655873813041971386700172951483319991079606547851368252970705720729743369805482925105299972452606548375676740466187122176134291658689024083554611536109335638885730387025832052134367412681821354822913246909652447796090614940588802762646976917508944462345053626872542943798948252962669908072036415473004304835947849045410012289404189200210255592669683036283068973024039782691393346386112943283723498958150644585425251360685899481382960921554575778554027766802366461922910174037198511408900112936965199062758134653694820725143029580916073678230802317096001436963115442375370615992672915988764115617036783725024874490324017108384929274467171350863032975213287940102934091423742828766712128801907495151130911658750659620353150710001286127239718238228138356510199182254707650208648152997014328856359403899528553239645814839322707146674706045355025200688016792967487867984630892626434766657270663405961181316821158196333131169705197610363816792903576287601638273457844514345931193700293763475897745574180163779698712677851388846872924225190035670337498093627687574963804959235645177512710513517437018087419980714859550436906613863519367904555885676490500159588997728233614459392424016284444979104076693663301472629386688868075824748586030889628161126635081943009707103205788754269833614590307931353564033923080541799972303355677351638754057870092276162141491738320361730940796681411891582518813578523105012242035264270392035816828796352615702802341303848793878134205167179321348372401256002902186843183269179745467317512242789381792687043834571114451473669612590383357675184238634682473354637706110410396231650950870879248203495084859269645222205496484068427892598704904299177457616081002447033426327338910733478340589709394979948509492316549579481792148433534413466561964667745774092693346645289692867652610021562418739827455172755901017426148088833350476960762664611382049659563988762521274292576439945441710092085501124602965678117897475358580892866271587140156449918423759966551832086161403261435481208279209568064764855413328617628350686568695942887212037182390181952543302526812151727526788385372855300801785161226876416674534689613399362188890857212962281656583589276063403214849254240215363596594877370233622636328787908858427765957005365568781513644743229181919971537948236132858941475232940915960324017267818673925958557733141452541067331674139018099110607112229482574230411541735765455379487109888469602827697524463617227979529828625003417890616335596144707430769675281542672769819467199183073306798366648336183116456421294201230237884561765104452789604037482354638821461328144778304227299575480823822193967114605700960689584171577145109177739073956259536454428072563251785733160647084654622288987903681614836427770715223538700026255116727505751557018876952275148792217739875255901301735680124566283772397395053110459661045687152891330522975107475346614903087488198121303107758722047740031567979847231865980412549039889284985842204276312458368672586491072045579318960588639618174600384286816386386141876585700962509137272994870067953396876511857370874875798656095311868159190283510919934875419985508388912399739359363521133340757495536434146977186442639892945813693361466518521456958930826587758541763163485547510766951949884168772911324219682935281330082883700474799079290988164418693735658843178044907970907781068936048333282880931364096145769824449478912919761383677715127380715744372774423490573632438192665100043806950760099919400041132817238983159975981337386396740696119255191783734578925079935777113845629092411969862855288475034216847906143582561934655680938905702974023287626878325194463263780242405442457920262902664023684080375624306035388948742121109952934655460443818060408011546870923322804835542054299049880154023340796552294819504815902668441951371481877401523361549934042607560683099155169680932891342332847739351575068306498246897692122433983970079440413873234950017011849376912566805384848538080014557363512220424596292852403959668748066846374833815136265253686133309466604029251976251366408335270423254871041139592032684758470840712413725463813010718563514986214639924414139621927529989792561624770141467327855977205240338672249215104102485975728952682875844369373191239400538662823521487432111041195181489322360644590480452416282135150411188072348292469871986661281574174180782352413426767681780314577059901587314231144887569429084251873628850155491663727074817088974713704013046268955888437567908402704745592114443214191805906778862718248523596505437163740810356931747324457808717643093892696277138951727318884961601011440760423839395126791992025435493096591071613315968002739445151978799067972341570540209300335227280584978390206262802081176353037165569199685715647177785950890934941914579778349397583901672840708322499620423397199693524452768755297397153377781246542896735379906506700108740582519220858320309072764295323777255671419546953783752387488039164158906329437877769285662723478871125485049579092573377562181314085282266127010389521601734928558529274940096388423517413290419079799326548899513936200348381917818523373497042657237200146487949271693069290955132908299056784950399271369071745633364894358426891175264094682970555643954671978104067127179444398796087178444482243753187648071008216578643054772966655755956316950361695782207500782812706314577636323038171010750389021019811255981709283037016849806386292285914586050989130809911834813495586902059945119768310570236997701004277451793829460599646206403180955848251102145232516736785119166664060076025353614444358458179887203654727302286587182267220119120241089930302742121207328646792647472073177983100783744291070903644938031016388682358324003365258398158075433909073933392556640067038736101914069996710278385547124385347977462202066907670089060085066143727849173147637499175062967040232981209512908714513852985641310181314817059186192453821096953796510867213531411123197519172010030409464272738301897697898759842368596018425407680881073183752808068915940777932224092513687545118640547527956860890463935078381556256716498064638482521013127600299882059844338542471708765616870075253090156640028573224375174717081178525895307828876508351336674300493288970708004183530050773787660979880045438455188104830155287385811210807179964293380646870415618179918702951194413871216755925144708629532693573232246945230355714263139218099061212456418678483382565426037351793068660843909541864254907381516692611446346858598752850526625852365133725278058804923624831578244088404592783075264035471241436542640257378388924577606566429413055308031712689956978738919705256279348567096693411597945372490396800418584716663880740745678428613945129760109267206006420081059694475304672760730704305523481008411999715039679622004441774093207398949046260714435008805005863301921461985849082038919322486256478050395260285436509597131052470719160811557995298704776216123661496758538414465614943632047496973853588169066876183901283109175623385405897065528638476363660789273709844302758125792461483462455532034606707855218585949422384359000624441006879745185869428855438927341358198886078209681246966842806195579114113084523556341604384068939794697587545585883217402238545922438582247863272666401850835060713387520309250195537756421790903782883391582725023461498848421246736882989006757981727375784039570842381423015874515978080646917645200450857204581848976544979381768699268650241712962988437288043363256848072019340102190295366782666394987801084381950861842487233267557011870551459744198677404996468313689057479618143944701056856717771891764801492120884052220816272739376565291451916999837751102216573863844152018490118681416773026978041187670443524873964071596794388528386323595594479435279378964494348917472865175782821690395951886542731614236177308714475002450949634840670450354066038819975275000923678268193054370737897888046806005685501177797527071883695147202560698499425482724225073360968785056189748576982540554824358587992269784204479247059217833355037319227757088765806477791059259636461700485895183200581413783078785397743446315128647362572536445963894873628191502329898131108169352999962948696286361347228867364802991817592055521903807291063065292550132173938672342282356453239334410627850845901852793005403617746569526598280984129968841036599897917661969368086277157031736914769059442356387818249493215812289083329673489902065192525494875129415796417026837252989673918107016465812666246723252870564645731798979962953185693752212363812006333663953243353562927717573436316997508419564204602175240197827999122790901789611315633816514697440028653200044415973185002124924493828582491267577456907321009039095253945811699540137988564522091484670401068049117275285823553588098980784843418572725408996231778448026902238184519404762499110014480952090101975219628136757061254146653180008092036240507024828861645259532652039169491747225591661873760388830271416848744245747348815489414893919567530056688410812670580979728493903745758103955279611184673929202987390606076356736889556926418338861303854911671729055248204691490665919388283855045894318853864878209967786227411767975805313449441355021318749261607021201825339006944637380866052487772928508378656649308971686513986434347207501643564644342153111911727826301057645156969561346174610253464286863262756136721325336357720274383725305625702635345403001276278824649606915593804489749966562382722088006157408958028729654234093290189245028775381477873459874187415441925285432903759727596799128915465694270344908711271318845445691171630156170463357217548593295141931875164903606716043298269017963560059382676930170369752955760804241356008227964673477555690461331665693527099627601960822280676595325895590427653026592425743800044007285455120696123206269212959153115729056692184154860656269686009516917869693121653946271579760568429007100788936793165754480167912548842673491866280036334227545916509715148246001002135226110096302370024659680181099668198012087601194248740866581626124965440345724419213621308953533616685372252087949720907455151388222492586349342840670160608461073954327243780451763389211310407876581611671250780329582634848907791947792746864174141787358802135842846597524302885159813067118874210092870233307882022983329091991782847461304241479992268980959451912138552942211188201217092088923606021250663402416076326280606946801196988000471378089470429509828200998479067199797019595349993095404691566158349853263680541938895952367382856613110730657243613253523191873838814000934542647906322296636806310450531390906135534021231214558208729223440063198186898222475612050404084216520111190972783251130431773098306099019151730780754495276487750775393254511120195324113008376355182261628514994551363476782181480321522743424813310955502779027062265716651115113780077536440283234592917951952093162609482674093963276530129144961207260350279794599554062593440851956030632678625294352686588536235482265503234410083815094625857114099458059105928181607288714526182928180283868952676387300525693782175857547851746533478963559847564523981384517393037455488981511685981452843358796371345582465779967519849238255301156227316715903253242132763791806020582041185251036671950781647386312750671873863224161718120847355062742278303779520807112009013074869623355846646700434206512311522090264784638191178340415167159600480655793340918957052350118433236329243140477264440213002409138496532850867510717170862853443642835774897063225611124838689182896957190089462965333836728666996813515681978296932705368146240668398234141656955423842675126026066890850576699411111280189380202387630039513887636905106764326192951047759215591042133603456475889631917082292913702032568567637101323172811811447352754730513009583110468428464581327140094022310008219789834039183875963714916210246527688456827718797934454127123493248740202031330777247175377981663220974980078493543979362762904546801564899352518135673597198345442147230514406047179084026218630194577836293418708515194212608712877647349273260359860153691058581621766346849453772874064042406453680890313114188857882421054755527617092821741770990489406907461197611561018644534478954340852457563058807583534358787497337233292753913545502672268421574467299313375050023274845094928679834334346469927868494553125904945365284113070291069763423938742216515176882675791733324202032759176814853449339957858601520813053745521062782173718389675139447181593268093698890798571764386242594492407653674143686359077324947613137557025213705758757299507022174960455175036832134892849113989263877509043832528278486391304574810024335630557001548865312450029102765569563709442118844383412063127059708706356619351942906136195950831978706351793277726643077367867224825342515716222468054101329508859917885701317677096321744359529294165581037827690651323756339372355579530027223506318513060413446095741716807860519968582862167443766414983378806858208582504194991439309656212096306223031089561262022641907957001043858565640155508060394955265336590652974205792955118290256231904645117315985186187288957481892263209676635342564553326828510457720149047659155676928959133545798571227885082683514560245608912207572849539374461828107263392978672242643015903751497087381494756210084823992258195006192148460773017460985966332703495973607676494745660737194141349667522065309286219739911736998639377389458026007481467589064412366038107864869960470994269430888348075890108616622357655276851332579570263107852250993169900337873559531271225506302697725269749088174263067062690155132567437716461204043040537714636944896601505288887247318202833575922344513229496953532398548550086651519079069948987686016434750870521899203820419945355477842218309596160059905858039057904147050990490621401015678722755454793781223098869284120668415755821485997156519027590644667552334417826992607047177095777902181821688056664269913157168339447362137773187921106801698711136370410691261911867404533336248684534016651006902483509941028123254929483660642463587770847521301551044632427376394377027037060615946818740535039889198058954964510602644359904652259934040200458678071551134978400265067397731492175785831194022592690928377324901848106695816341641978040819249259402834344390751187506226977259037789641494273277268123416345267818883668498404427833832425290692776698043857000625993146728190403743591581416466948669010804966138104602803468408573290800133241363867488232147341001774380513418854552333757061661266976312054498722704784944636288214415501180418491388916376823729271161954458284201413486629277053019693774454326966359577347069276897914764876805416430209307830928889211075582990763278876192311326754230896000467754030369241207383518526020655710165625916292026487875698009890896948121833116231566826450422892313931044361847987777788816000752738258973657164115384150367277727350002157860715769078374410985000491089512511394425401537811577763439856857690146682024163070218036934289611453512238360262300939072432264302527037657011254840151207687283564849360326807871875262508994826989798035974781952596497408371804400868443488155555394253674240460241102758886399350686218419094062564269793374689233203611258464509744002342735616966512843221035907743707846362860828666825312683381094795118015825560521118620911474119735726731604874787202800362873912951141432869132480432063828689092162984195773452332713256419965935692483278847289326484838015020956973676921261604110792772173862779616750332314983001451723268207831705295733968021195633488887709361492338196399203784172504124916059946002287969257489443291463894321903985215347978001353023299366761133449411251881090029419736309881901874274037319669322511569972063768030298736149165644311839285147476582946553800359484650618119594630721063025793606390392941772283196881725097201316325967442295623116152877561194724565582753167720481757781775149037482954262636569312924572503159677173231431602974264661139188793369820440921310612314617202454501337568853104766533066651511665207321524037507558277803649919880517714559241325496082912892965156831345484466911180397306259167002862779507172789131196922458521301979622689776510525724448707869112935397356088794588474856287453775497487946632293171717176496326658415903916583247785534744490521908500242834190064937625594430678194221385687897237198341670152379633729019774003474483509399213216453298680255776020609130694596860016021638476269239082919785434331476758110901853898079264736880810843550677502237443002663361724009973267329128375021716293023702153100881277131311764484676452135715271694883316055255472615312842964122209796146588024125490384016243078655057777389019006094174037695688738038323403523139426751973760265184079079576239992625228233322818634235491639084165723115041321095680527750832736339608453322191264861764983840361779054647082959696598522221622549556837007391902981845435511110397361505220066597362553636986359592667922803786644262015870243224039366218564332603182133969247006327358254946738055521976665006328485231671679823002003612073350219929442217448613244032119282667029117862113051111465100574862543875342741150140451304630279255462830661620675090655243066683028915434959358384697432343815926890833423323315279326232422392208140823428645778714757690608594553167630628460584170301824498528196244237543453918353824238685564979470190622493147570157463279601462712695942222504681730213304057332251941333311193662860392286549075458378999192771421026613235141914771365067576220235164020311051405123846412624976098640336928927303929516549454095635794194661061477489403010980175972572895316333310220954103286933495397405055071324832143803531627692340388591440747330799451250481764270049942883017947950743609464965521463155320718301973449412727050421665792277489682503597835583155722177347118521095532987149831420789579571358239017617327394487391522607425642765580071442445922675458542400403199164429981765831952812057908338917440805996373270725256853061981948844606124177485352540635929603668982932398837077598334842907364336277873146180283711403241235399626506463807965059815613618686562004981872097366460052501356480464236928000963511319243971994200301497169544376106506539275412866819343036902304710228524509147916853492258279798764337101477976712980154589774438976705284296399237192501248304434595224251794472165542105494520752903154875784891391991347187867942019089364206007755255536991675547235754226644739567092764277771689115800804715275520474275159790492501152514880143166693746960491933020992896991489177160096554661679502315771479869936013852637968952126611702381543360672861855360603366801505071559371393713156155285470932291204724950115764539253563979445820890968040834606524145058172981465539934818923042302230308473871162968016561407713872111442350040596288087075825653502188980980222783136983737314286502734285053518745584526707466288729213223021627888273896387970645981786917054088463057646755966183759529380229860246200934376097051482928295949555082853371544190067384830432023943924562257354854127273984786816256687786584506344600937585529198901101357241430216097276881367679270312982100823323304486449175305875242676030400222476920969228085591725779479778248561323401223672216054932710879476272742195674064824111720865292654787292818148197162706345482679494068772916544651058202047827730483358963160624516630398618660945610164363043290969969484725219252877936527490615386984109438216478406151301688461345046178745171854468404223430950707388021736852206531083768457854680630588454505075784306388234774232676436926111955496877030939887273837292835315008493382688172545076677875115468814347153035981466731477649563043639564200322519932089809549914307437812837312996662446548190085204201443602086967095791242541730516428980608198967476632574312080350920973939426373808813260017728936979800943211396402773680273624786690055041454321164877635803106456833246757836958675232230567695816107366546289737750388488506429852952675908867781729010589287395873125532512169340598136244782149697820257630149494897621744290067431977776602917706676916998158801236708027830814522826955863825628854407751564754262250761470568456381627794669851961583605986749952063433482683870946570131765727153031102219326073103437080275111907187696913931752007607290731932963959465020707486968637154653739560856620420925886940673274899077533709174113966454723714158398253089108985688878328762057567014681455459769495166635765222055536508346353427371857731547939778551211998185897773004370036805277545392914336731290185413121127781942011858249848852156230730787523262230619880533694976301837660306725190301283539111708148384846214857264583988224467676121298571211509534660352613896346678096183258634950752971059955420199375897626192171990975025824770596003385370919267012784414073751051034817060367671649240764340413475169844254220625156780948339493762771853776658268470425212973340985221825026118276595850304648180137514244657778803914772184476228405373312909544811725752196946465309481412501591569191082360736565355646247630997498623087485614606705527141437325821133463568958153162077185776663604570604721839813421290732124760016776015060299699785243434774558288811952276116061475622328375181648358422036947316337366156233425605001354330957274908134772826012310917878035415811183212818548291032285177763512056106842805067176015372825578418607651480680425583395185125440419622153129621662806788992226606483170122122698938049380540121227093189504902739113138476496816476632972388849509711751924331620001951641950016932975683831814657543353633820934410288560174874814414164735009845293656646535009731893286238425580303663584825646034252222672144102605932611550500047873674481457841643797429130150685725564602087047353234455323037429784744833146809011296797500798069169336928463517592117685690708354583313086743128414791102938383456290456342335696363795485691198223440925941292045985126461664423314266228540638188994757137971340782587044576945033630291162877048916992215753440458617381147811739748986818844541483222148778685934450682607119531229833341064116595452519917119144774560397374310131089202091309060983173357101670502872997730984039164971403750684000462602644411407528513248499704620169592689966565494890761663600214606531391483561113179474872522883042860213369081376976479811209672783228185701044614180923996248667936283418012971856107730600604580575299913085044163481389876904608258912302651251250398812577166860464476863651658253004297812051412058327374674496385490883110048347344331356410040375537309722263555689305296732552873329802360608839838272146429993460223477246042595979606542318465279656922382530881232332781848710308023671685343997028677089473481025460400807127648899056199775862670625753819877370244131698666602966224147037023118271500896790473022164949756406361232177549966813348040675118975732447103174215649420781265251923427109399654154029063385639588453404845453745303494234213681965861508399495337812341231406795807234076644671223212332704172253167955423486677403285923394852353862828479653627398125951128359323006526394468118712969942725591887411206037002449112635200428801037025828597132446958198018573978749124068410645925483371360067046399757371764947931101539058003467890420900119023195771183655821738005298444244481802656668180766597165762140260203597242330836553558532950725689199224695707373603761621307736634106875508260696053528232164129434355369681906307155475950870042354056659943708467558817138512534763859697117484292324287922655885167167875942852998117092020971539746212878050604264485848924908293365517556163268202550522707556127336136305834428060662606199838637250675709413976374618853312337971273491019900264513965077909626593281803188210192874033329842210500575597628779643932007231127790495246366674057973979351579150225864078723753834365920208816437953631765775077376830683997841532333378304124245887795039007400147923038225466218878138249455224904671571421635787295069663984865654971858492881270784159726803900333886530425090674038501978425602118914578623799889676667238210968445016505497284256686441220806333906809100120863753201941274293997960836238885577578034317477817791918372896598876892346135943766507802437367955684629706277468085837944813405402256418420045941038287965112679721991376727709189425298874152931897506381663849118630970508781564497917186750882385439603566057150452586733993446157706433492654907165592574962317877174038291980883230609074203551478472474232120740256589865394565198843264201290847785578028615570078262998677357861180391733900575743774733333526135542378793646721933780853736417888506246571212319760318113102060886753153835990891248099474214393310280345850628715846690797734308080813025954587790936933221648168506035386341009513092628165581176365612212428238501458546053537332540205061994533562370469026065121816335532027373863111121122917230823335870958937897398212592680764917959540622738988347756715683850865119150876235789429875520314852217757039071989030475887108865605289827552990627667410654222399155005329697179704797187689024778564153712874639784668545780812699553960104930786226164533607467737006142350667054154944180528239528506636946053756606573376341608799490783869422868206548712254200044848454463725587277335661162933155576986968176988056646317484868743624692664574307229031603579867917363040941246214033342053896031252542033875579778933479792093768740395352602069143366759140413701153250137626787257329081520527202336247786965817282349769788185214942533559247638796500621074657481615887952215017586664070965365104922534886833007656508616500053111134167572394653211940117058443673180690962039093940711513715507051435779005901574915275916657563557417455627219712318165996757255771165442786902201531828304992918676545267861572156811459748882060705355657376448972896847904651139600188586518208781011940086316232758787106630073212003108823226251470295977911524831935040986247482574393798523923280584554820248604575841364234986522594964550147262659449587357596482991797274922541782127878737638432522372615287217949734475549098589792760573762860873300040343380738998926355593879153741301154467244791085159637121891041094987450051704350034746069704722194724336940181844299750146917128870026125635551462861375120499782349896535319866773116215634098363715129352842059029803097962563781353009074311872850848135845011762101278290339976123369234914611287168097652715085941759106016960396795537328927025963894386864244429285527884511590657709955962132078580344773074711017048810690875353360358063073467239344993561272300060315405010302771695923339083001439030297461066723925314039260994710106483826440689324364231459162176231216091238058630147469798503764862223257235777796325397627915503615109137025370042080373084930742516685008376911293794675339233298881384075392298600924139838045022094157775264387117724829027875915432319348096066878084311635736648089321244894081099647666796242021811003700010503706633503501178230336705198592101170186918864201156744889361650052119480793504107828899434480459504717924339281849647107756135362853776923252049260627974083215898571678986225245939160265381108571171815776553157189083349313264425650813532112264165396414155898004885664104174126297804222243816328588592927587312645310448161227081699770783065109140449779115666142146445209398820572483758470922129943240897611669256397738748937560814699762227902394722169446250644619054926990243975387666018992340204692144825655761650846276299546363407311080120695533505651763075066182194509658069263880314109498514913372570787900674198470572418148659613781916601260841706263146536554621716585262653562460685546815023698952836856375762360073744629429415795885012295913557853612321865908664376736886144641327233906099745516108011503488009123395506216307577164728573192456240645212204967117481863035244067685428564703937918846213830265018563685198126831949814945748935215026143984142492115330176981504075618064854146767192662199106994829855483421950351039433276876625728032647222233529807072064868533546327821830553532771109317443574388133382664334826618386169645924524644455970304429623236151977613414286729814992879019544389985560336563603635259901416158132996624338890915984196652205718288284443111901417788596266703854930606946715334210541464113028622421629783953640651399099560322203741578447703941573820537759265806775889319882674652798442916690854718382122127850813851352029632985731444626932122305935125853612767454364494476073532316646238686863630882285644607096094439962749011111460442720132951918484076377942155623504973889998784499134631542920608494696883268087896931353921576023290850744407130606753298760432724501100481810281267235739717700357727738709256613001817799134589781197544550152857519134652960581330540490494377351039680443327333626612692935077826951056812157190708715160680802088205086776405938686694601575255873420426565791338293189703986428756583396604482613829625079906813604801279364090276191049762352973013935689981591216598794515509746984670850445992192137136486318999789006574710868787712749353626918856114955123132973401016698081114225534957407236904032325078180938692556137901072069877184612607934678818085299478214339596322714361389538936320799746897170306089359852443396047942413314081770122760611415345326086769539798399322979819143926750294162145116509024538860689263835334887741648721677650036132454018544936172112479844374896271989044769918242551300249464651180357504664363025499786692982661058171223685410525100997420564345306411595521203221059887068841138412265079157940133993067527987044742274404414170881311736388029695311399959091197696781889134863957036322868983203613673133637863107627978601061893824590711130093054391485202046482357055509867098263724323190397821046240572916071444728767711573366282490454950125291949758063371379027147143391329388577674074662009283055917973346463188651450143758997869094493701033303763331802938890797742147745914119979854820348307836765286011727269425405509175790717176286343842442526359324727023664319658719102895563310027720542842362556449738867162916826533578188453954815413997553469820973672155952114262814691231234949189161566322828425452185520716715698016619626050881809678420734271816640644351533126030433621712864671690505747514603133226115579125827553303573649153804993109927574307729990324803159014785200512953899885089085371303735717408048877467793232280597755990251238536550892504389604768077247890898492772300737468261299343661504925278047846130386195284605286817510529121845658950296830577962426724346197795931756651448379029612316213021052745206275723619922029155140338998368966782578211053722898827464527886625940667147765416286936543428524797100725072615751503765269333138571955326093044726877605891612751218939322641819432227041222501253389584008036249973178741722108673926546072372835165404259332092721265122965677483997650426889598905975023413828724050070561918848803718106583304883224324653945010989507888830988839759013204420267111111112338978254910773804111531695371030274342534621280860768869723222523626865653170920413275913451305660399721185224868455429349102734803654704913932350300727281865829025546472248442124457679348082601237642174397993657699131455496694920933565236293016107727779192947575982391053181522351979160617904634370804418400780581352767124416880549147260017655835608076390264810372092633747657308005539173364190678785617095233892061106142867974585790677515277902693777036783862257141174217847382223104168320416678436314181560340789149801326990217218657994868013875407849813165949591854846965145917705045173202721607760884200897947535075773132644320241173847583125524186283738162526363282022964362060646282049943186664077178922585324120387798122623961923258966401590129915647411685463043403453762582738329501815306336926249869922971414998023630569802475491200969565266692706933260981635024695503136963559202248943378182127729855556899424008863413609517912808742301952385962314816403629585648520365867064432806963251742923511822560014721014015857738002209109353309223756478316632684263416011167712196615230209930651483236537087672926193414502932503322862811843453728382983558630613230836932602400012433276798398903206288549916048882579542784984151464412049221920268877625770083954191781256631289504010184248761349780388953282700483575583062625372153592048220869888017409175216903072522610829096669973023733390399725220911655190755077844817229756720216743293074751478610981683162620745008417210847706604981700846180821283192781571461296460961042181090744262781247258239899476190496298291226652492498269124191078163584753142844853819500169740672577267534123545230503227329103317643724619572835507648292269519421937361774086714078935911820742435943278442859902879524995491698570549953857537270234331100469166342275108136567534481469974988271225069058106290867467456714633248620747644118539415600433741675718125187494758366212720529028104192089074307460847529486502842408466928840472512851014148634994113071991631936656612795397462599909983106692708092328193086200934113511626850672102640663350187184219145858209979488517166055340017425570131615921766973634123487037024406196325868514469008330682678378562358427316134798440288519441796404698028306291131599927157690716303985154222041625888674645295648331346372731256293828619966311791515032901709689017823759476133588027916509033133691016218897081148745485603589717462767513685950595949108236553229835656798462479944272807871015016878032720506934556665220633414448022709279404370011503098322472659980236675225062965537392500996572579980675623371118945629592553440019790941483136467320323462493565242650311223927828358516936691903099953617333477069334430719049384102811713195952036145606422010036721610293651870460174412010543677365607205925882775682104629322710507187897271537382406730805290402817298766522248263840415829983792179452364683932048019947099998166651400271429800459561945029060300924207255533285838831967491909571091997402056658769816300482083354140948148911514252181228954056417600609736053435953342909558088481332392276124906684617684784637243924080038594997402348220272087661499122213615729104365393255975287816397042077165627157989432650710869110920891243253000767125440337162095643283195083850121886195593596598710462703418964443113414863842492212299927037715641011323418087477634842161746149649880112649594299953791365165020771457218159075249229731500631744158480428670730053962063885994819884310233086170072962965783647216021875733521719909866566908092340950215211575487685033898266596380571314772093682877281683148806619834900465298198407091114832266004429734875472250417970933858933671591266408385264340830856497957437944720886226804966265059859917434375024514346679892309670320803278653436437488700411918238149276475251614199728635836792513704480762052918855987993200373938579303602745904611175025816737937152655934063028571980075981610703528841792164517715562233468013242219544254054734612046343526812248969113284688044701067408837936017185946905864862143534816799377035714254373105278448662095571409054717539923948646547562249045950090278522626298948177009369948244424968553189275327683285931767875507776997961189067706406460026382648711496449838606667802103408444293462918260200903992506907246825958041746360609542375140378771356866732169935380552029261189020762619259034657717991872706592959017882580109341631115523544922590320187580025111355808072628498722192709798914620208630198209941913309520820507852099784992669662021994180145724463319353085451715327499772793823940316714369073468764070822775025770067424981124219816758638285063978195396529381403997138173403296669756822665852226658847049313933484907268437195710568609367674500122011132482532965484397440781982925039844948744520900748690097780282925605695594579341154180106528558633115605071339734542328469873637205020411074886293563631293700680759822255974358058969817605240711739874809328356083764079933837882211203229022483839322839721617578804731028110708987835911761314105325175704946104285416476068588118261347067716401429040039850263681233184294527999535924315847180678572619213539232964231879149343093035353627050164051856114583777781641187372301396636243349852411008686312174405089261674653401799121976882876780933091173223902915067287090681321360504339047984677235133129280654935816814286917090121031307120175361307946840142363406292919612459174040491984129871492194918174584974191358251687888125629472630928557386074498339940518558357575797920112973395536276055316402517376509968696476542442948029677935377765365600677972939943501244877765531646477280567232258377971211560599685660681696260377044233588054211732870918808334093735768199804119317512049057221214266367780832816441480102820808204561470092616394193294020058458065024444539651323966455169047224288215128268490548750141537499667300339717063055906952162025537611786960792228291840220662251807054744321147870684030359203553328529367149868923475904232104132661927941949509588880692847494329895934537596775555166899146897643093833300172719382544136553704085410492349559302206719634253275904929409027938487283789317691118376205328484555047677477071370523410509414307918749085228509982834164870768953892406184987482936670428526953126605159469137484629648168643557105269281305425710749916513631260102245827970867854485743106374604478646692769705849673545549685678606171535204354832600153898915189215422941078322046778452898135202355994722216815736382140897317522795239665757294136314674380887886809744004571587784829903121876202693280563681645104737372207605846244567071696745202530605354350615974035569279587987677432390877531070471269472062942836533221583923607421134328776438195243724648126206921390838069530592321744339783976168286597468728941296652596910913108519626422178276140753436183632417145334385995855270983092854866065556971701094701663126173683020075208044512902153668763540880579301549122838096906416579651905339757265878501573322120014730410639126953176911087735403702798302566378611504170986068449909610738987713646593918836256676178570150344835449905386484758708793809153461481982709232745383218123609447175940772493607900396859624816079986274179565094839515552681539362665919871048606355241118407909901348971581072570871755664889035206389181179166638560974458524196905316028570613451940140738207144361487748557237502990568931686198587479797348609350070012055552622077181576204453943516937500068721371836116651871906492850229531735193717939505190315125881256033839896886704481085939234915909926490952025072253462857231239574627230994437521837942789894076446814558973478200939231715386324711501707486544591187266183055528157722293164176958872321379237505498905946995334208418274064062756404711756606396194961729645947531740811650460099682357486453254254681932260963343003178060294919759634732521108651415717498145488039158412384284134147865225706024320370140149306808511173476786377089098332610760127675324259891947088666810579362435135303149584308290032862145992658126951419681897863143907730464490899293121965186508911626584693245590961658857683143071733017565923676573949650634558393269731383596279399939603715460795792333849701964058785304600847711979490985640405081533553527827927039674133227729558177779446551504529899792549922216885489399029765950405482534084463363445756737056307538226997658723610299575518662302518032739954721652348352944759059556407357857112041922072892480510084680354375617150113937315285505539358617107412721628476359324426161988023374966021729260015812224036832195900187338599829532347443732018394870301580738094184833325041564074853859526403365533822157316574406289391646554954172580725611996822227718888856164355440619800385142237271264551477820264776816890879329754695058596676561859974932079895173662115548685907496557837206107713841794939631699125302257787879089593799441378218297353406531430067221581425370900984535564677549184834878872622169040414505420828785711643909004315272999880679192696617800925288834883566510104400948725768360179505532262288388956860766286335568482042557035834264091428835636390740027815715134400663297794769923708998850095892711575077619901653406174430258502671659848600462323567982858682459766309522770509700594409681576357310151484697907870145768593019357361960626695822906629090445236683725626467836529966024235317279671387230428651209575398148830558528337870531525703502468784337647529224698398168751741691344814590246535086661584501989863315513370753605541791028459011502483116682240537352566165088675743328181159307936985866322990504024896464544520855602104250754098068720857615741536590110185831128955499798693634572902377338266763214680212174237568460813583567623480210005150460141649348733642564542944095038996759951226249580994927658321959430517768682866922098785339597623684179520411022081544080808310811182087193217969645080585455097344250701276423977654718752440927053719164532494271403110252671361648286246583073577313261369136401530055010534328681195244385853427883831398138476223406653514173560428722738438653349110007740507082427661052204703343374413485193045771807551617643620749913520598866387207560000111056195942229159800184522714620709348588257511055790284139999259959610908742862674901441516892487248619396978350695936985580012205022425125031780865559039134431825466063217947332042912584535976813991414907101596597920549159006623157687926670911037303957777363473794796428031683350389940144575535981589018316000660661092569685677139617411206374251193664191442558588672364712037505388077203145028864799140301779049750167204026632057656192716861588624101545745971239986165019426307284820458920083385224630850758209046402178860323968615862914913017680157571067510720641862331432420370821497053437131197141700675119577205724781761167824656377415852298790892183777400719001705877586989386803554570292584224530443162123963437803022715085908269052820798535067951478874919568168329245295308474665043881422039557131362681405588087505154709078639124743831158169941442013456369740931109976869950685989636052959060756317186761390914430397737276157282738139956781870759622030864376543592625119588075168118843309159690970529773931055925808298066888580275933581851281876712852945848595049886961226870458428496129989691931570091968047488127234664850103788928420516893002060609573171100689932788982303752905635944234063337401032041253971137454122274712019612982404728519004264540770394983626153775596347002125782037437852122078217496677554542222299016403185193796203328776639872342313041979295209545244465982957101356185593725898448720105868139572442626998747032538524969168150463684223912868621437264229948755506355455760287291606412234066200345441534661824471093238629408867833466787067177936903002749313332845963233937367696349158749420889386371608509511962917341939993683019624717369540798643805260114904049470418744652828411489037118365128823197789535111631004080927548903078052932679168999825798081784636879835863579388690085296476752978539532464070157002690126488158380695883186403353161138583020147276677258210628410508992992113986187177652781938401351926551851270213270458434343480103412826271142152916552895475460041341055215311902148929964257203765516574717371261337788881083694443803442701515252821186113823117514236121830354099172313718910805094121438312863295818817817133660128340876249808897855140338490457339182084316038249960271313004938462446254192929691627056753313178325663079056177204971195019803092661141167138084908366253902301225145115492179321593920606620820554956634140078916773798878631777984664830626485595467638478005971823677887105650951167899430262953536379560852130405602522117127908831101453902008174739053847890676188868029086206349478321010498688390682449919113499424671419395570268241870826025472207174060649223821877501550849726711371307112054576593241967470653631938467465761070811149599228290339795529906735189427902721979385956543786674570266131912506522953264398083339771744329939330486480290288746321101651268824386215433665291034333889005423126309898721471914673482514240264251816514395586210074182878617803373460304830012439497043157098347489336669012932683863192423521632834355207330420872192457655557311002722280397414000479721273477270418838962058276880423505487433068363667599258882990939706987667323482125100908667680969340636333619124090377033319319289737408265399201089035198262257425062037109671065850948595674575661477469482171793840030748390606180771678668278638034412145606516353629927316013168012140134954905159417097545771767833615161462222042103494536838762912632676206389998453916594495384115949494492181274886561273680281871217083321631179036896254731902780405593493742094085899099341971256133690931212194951426315864801943114491779561778002384290919420640767922151156899465782745472120857396406503206044902853579750226473355304001839092605610861141291642986867660305901648307745397092831593564304330517122237562043972205350791729517909688042044152592003286867471141149933896333386546611562445933344251564138992013768591311142272506497370372956797306235030038249819865222025869252687941414290177152171850698563266158648992800157873478130976346893911574909362445924444752279540310085296947078686194299282559767741754449367340641312771279510988159379492447314821828738913418641156960079086293133349753086374284813354222564076293149890955279736456613596224138577638733735098866917463181065808974904813148374310351518339867574833012538356982078495437416240949687301916686476262316207807140204044264446013948009223768871018653472470339175619753687479920231669189418755069518649192737009818748394340268955272329642209641708714716846624469594333278618288963630105841771837157687121914049925392315772288051274223786992501661401520522152575912488705993193575968070482898517330114934173746691563905375644038939413479671343526930879005741920532632640981774809068550109919552215208240385582325677146870396849156423464354060504822653244830169032181920461489230634198723950848195368063364588468008772617950466526619039185248887905097275794700633238240616286258383464406444549829823116904247321761227682400900402238799041954284628647591384803231223472923164560057777325820314090810334713175744709690007287923526437351762543953667258466893761025544944717570627930369506557305465179634119568780445175651895087893417101287603135351643214882705456177401931636543421582018407026462243253460891819396494867787600467858522818117655975407793329030959392025063714464726047899883647016022610128104398739788725356344155285334904897996550626297968500540871066588982868831597696558588040451575616263073856817463457312471685658381428806541871200701153070606173732694833798935128859627932096629932587551435439657671860807464204280811823176859455585462568713070475813583530239409013543962640527472444020843534117084847818707384153890368562344956119060385173550627361512675816640290118190259638100786675255463641935088996446604477375208940546123829660378084217166999069646900369016125321685318162004936334243229109598583867487078667090210507172490382956971426193755488478444743009887019063539293232579962609804034016761809395161129086226115855578394990760159506376874585395887007384473476369961702857746637498984023484218927892487098312053712363257523737480812655793443065845070318042555133865680128301323880545779979829691880921267340863440723777158349103055458609976090043395459735314355142041398092189360037912105830158060451552194212170881147051093192243269785231363344349391937583514938454836452609283708830475330919109439624248994547936825753313725338848038864538259899637257294058481966839509154376790525241319233510172507783215952282726753365536577784655609540923590357982001077547620390353294617871370757792867440111936504334882483960711142932424419560167817368435952457132352447701705910470358950374264533839674737687964231274812702371394382719174199777860683581820919987691904392610672179003915745074437750759650415767198856187082903682963462406766916937471004436349977505070619511028817660705395101062872306689074263382288349426513984243411253657124186653187767364582333699511483539600237412974172767501546603508136937270396811410045488368630142820102013362580045902079712812815081862099910411136687093504985393641169968505630966639877141955493485874667049272624264211393052575750058857768535828459390039921742220481045639400151461143786813509114804375028173757670449479297113696535116536269933412426539524753728591310626856080387513166937835511974797370468782417615027868018437268676500650853732412032641789631667257668382487816170274293154747220992193094948058189580232542955870950165659945814954390156639689141958180871246573923307424883218061173143219225493931453634311582252423102632882479123669803668986843550023352888414122045666934644916578619988644881062696830705411410485648336132231902493968221650531066018419723072344748273892582668848984777611557998090681885374085229565519510551755222951032837727452106235298138781476357714369232520188642836395936352242618047120697032964372459775159106723321339226048978769683294291514164740516794240852627774895840738585782100580791322623675121977486017377346869644865933305563743341982849348387574430095056409094460159655138781531588926751917562437884069318981312194736880013008081018056982449204765361724973643783427576663356325578450387716736539765527217495804960163126426146864254655638593509075122405925117546606847093728138700268326854431424581342796724231580105299301343763862014026312849475058629943096337708637141299960361183229610828695905832190294335330340904730763560556950888845296679690188835540650594566308117349406534773072293770343113677588949653984762317189457186999311627510457192737951800115210687796654874315662348305041712423463073397565595883792047578750103721224951180942314343097318154985041937849791165709667213164013102857613902058070975885594615466496876251317383022205767257424097748679038031212560205846185227334141390913066224800136573372978005126195656117708912727666982877847107910675374135454304181537219899837075172546239890464093395455458451567860235153862439835773290866549482021298976207385164626665051171114424336476997979423485386590431757921559787908744229488303817288644482332261948022400309550401324440904223481047235753069687717300790535699201919656512301463687673265115773820032217546787234984043612210133946400875382383455774461397582522041443042143730873283424530744279431794327408761205294462257373422848058020558063360945915904651613804068912073426188550553641163098657562971888656738745047878733848912767691720880704875049315326469385549038604702758727126555662679108368877957737229211443110356194135493644711599318319243385735766786059485269307495014230881505947164223739266783762569355723758381516589497272250173310518676383070528107477956141531220799804884921646072473155283153058452982273104181606273538227779722290275065979496293933821234791724121864921272381952964727439136301380908376674068076167083465895735337542440876541248772697474323035049452021687633032365008485799962280170748337673122850821518573085556115230431319484364512500348310183060750345320067321331699519465436412303297145989858159484930997780792749685227990085207803868855651600089726697673435527912214189293729914347933874436796074770522998858328833835706463609252481820272088967372461367572976565421614723353760333543042609247043743941182365027046172132412588315009037208171826728612345547681780141119835761407083628839458527337363844445976763822078078505950526770313120078314794327312476672837086135749080848070795742191686816347636630575782321758031716506664659288486908543937183523539959132155141110006060160522751611894209090143911892880206179953222028872900752706212765111695715444820659670387788423994450328099883120373013600025968822516985544826439728664413422051661730843637876695430336650174999377057947777673295255941315144341911688718618178972994622059340063259453690038708126500825618174925739445692908307814469652719305174856690792618781654769728912632205104431378155050565967860884791969162482331776617285320276023960997009572381450689749440615512292092881036050764437145372393760607277759153674171612385923565135421649634822295226892365282407481365356138103482155141810510589547150179998957331255982258759889239636842742011460084296183677084863284329643324499790718376586149371734364942924356881515477586530830784852260888695846778162339296260071343804723605131407510326285326120135591230951420556636860670761127706758372879046255554738089766502284710954467617386930325796760719807666927173193038007777756742923063393621001687718516152534660219504089669443701524538402174858487784644723009800280388997190802961907142180483832802639689179943822805086526134691972766370045385728620934937972518275503139195611397131259091635071637683752300340535558065670844650617676765297545236351546507323292681132420714213010077114135886875815175487765097315759813117585099339020233821040534846467724285429074236092783860597110444113345517275976498879156886325653651473666088778854311781398022164702351941147586575978405307842301754365318790876501779305157646676339800982171095666869684145210495534602609555789056038738217669317523072559388666316431984009020334503562645889722488732637586595396990373716235174245076625300501260068351624960243175411295548460460408962875102922341117760690566579988562575139647510927407615373581931147324116721311505161480549909026549199830397136685919316093524205532190075221821685804363865404349285330629553636463490444208519117536214069471571672847714512242708229393138767454640082387617229178085083831939580677688007313499992447955981795677039802067027303272381050383304126215971054936926077435726237854742599332589037237129041512629815148564321141687602636312145430086654082970068927691154119323237029201339223445592027048430053018091767748761142090714619175110456931336371161727368039483077021506842394253700573000236150431680189339986856196928033905138955169177203927670232838418801207966281151887043759995104746309253081243555407203775566813760302891901835879357670303393378928822498515443856495650480918346464709468287622791858479995358134530605105283797638762646581413634557530769524273577371709084560987247427907042468871556787882142043736824495468505212867729697742492260685979664677539109035604878981525038535755488750923977913993643352841302324942009408500461836808150562528537840928223901334432653122559475049021433590690643080710959817852473590877196320826186077392640441809393643990576558438491955512792419452434832649015982300068032787569575872625664134858038212150241357383197160983765335111382501733287956414954011144113387079139079190088640128880842697716721262559468817975575005471122228130587713678623137195309337572108939440354843735422645977775189179718437810314119375708883200573432951325275526999632355312378033610418477250125049341139313451017024833133440890520258118615323098580957097663656903023239890831391383969702342249000263707571447456983728480366060506399238774465090552469472202526068658981802952601962731263103937282448940897523014004520547351480653812277027303337614306409707051736449251385982059825519089065852733977052342919337035071211177390369929446055830134675815504487043893617229195960368791818095642015718821014161886376836792664746106853387329198431392048597551357294947726738427138928517367154505530752718460089053505600206148269401164859072532318674298605383918109789119594080297420418512364491037316008982463323099280105822283570476376656902070985252968208040345436119116614487709378315902260638072033923153098513721863063291585594693410641271177976940505517311305044776142865204299237781602225880321121081056272113428479305190381254031460809312583571940145196651427292233071371936752002393259795135097804373234591910918191822469642426547061511093355509653416588299596572565634587556974893328688714339865066943931981164427677503809439693202143682747151592629463333507260327175922302267407892822470674565039291594295632408514540786230534437816039198623134029234480451191833866876192611665149261779194307126088118915833440219522569874596047723266536448052801914535687859827721264624418090074147135668265839670375992960783215203607790086392735435773658985025148442251987453537797880050371817629648317924721607193584035616786809983769546672094997591693480466078901262675225320169559900697556421051888954892763971008739014816760600053624739250312354601967315665416304985921697186912153004134023460449429134349277264629158500805127712083800572845992592776175258173862756793860197781663482599770568012037699461480979723925193554707712077830282481583687799155741140200633307711829614538309011012989581687932128817232178770406683322975663384639289549800294342221238432720681371826841900239250981664131663331024155541993952735120302110123137305622001241907526595318779748948528458834264505742696871025039012610852624590885076754899447179547817293094706581268474608537987943788338876233150392315585311528201135466449353629934363824110868526841516985761266928024695763892794008428113044863222314572180436454329139115589381088817598964762516347795255578949923927541053920052678119967777984618036560842225689904398578056247123349000824696975300289342051117244252273906398078060414242165900346948636646066867841559775343040402763441625668547436642314825493021699255222974768889732555441054089051394101009250849838281905864153038869909283974136028196327363878283831601368261474866173476271877828225285709328052980509488769190168520854999326633534480395900279198928720366235751393686708679199362867173418748225201964546879968389642992507031461550043833340187407484008719698041702291014336033212772050798173271581707527449543282005564826075828260127671564942922636867947279772874346361826837333893436327261308007815671926381211482383547103701117305394954124683865214380332752630804855332385068005763116794359687207731845636147899304882651611975614335649906675297219475845027233300449230148373142794130552105662128544090670762330317069636624132675691656839248003038466059621049283713310633093109731996678126156024008889745812494595872014352692232125333173406226474523530512363587413707532722253037168963044540965242251924393371122327808943701858573252610384822436348414643447839909277515667885062560924683389526769026037641073962915966978100960195233221188023450721544238024082924117278715016229132790067435720347356063203763815085651130589897126433898490988326558085422858563955575929657293677008142291876573462361379246632070179527642080532826836424153895653184315122521732274858074826138840706554069232655737215820961754220923415470333515990050080275430456534525215471352667928777431845038313350528344160290132162921473220055322208905936939213730597403694611767475612489342199060103205134714622870384825702616753149996113679174218556511529634106349369615125216393065836311051083363008154231633187494848574399505257267321363267814370477462138465228536562478548503165098707732331092877918670187006265892037035864830988581477760047081112384772848603003117730490219841753374874894883616535789991991829431186667505088626631696312532568136186784244672600701901869331650609541499588806086096407043872871267847111131660621796180580470971139791699295138757912866915713537655796242705620666394111813961883721743861621278310117791416268977168467471570012240623243359943589570051083697398531039790282480469889597029771148645165769966594727303202397802660398583630312058862554561272250445617572102490910674599007396810827608816182151921589570394276157262110135087043969567591623370809387717348762350430221295193121483391962844629264884274421812047429876489539224265490909210033649383274145959050083630472718465931188300688179341870385044880696343575783922345998422102539018478113400996351623190357971744749849416067157739588213741907166365540454298155138912059027956281270604504596913315004259148051247907214183893218011237185612186129356076153490380700153617457957116528870857931326806114752472616342524639934903074530172940627598322863763360989799932215954857857229834873651992803356244979803262272887992590923983110600335137952884567280529172321692796371890106667825387665635090908704740305716978308926666542154035616802782829737451653437109865904542079100909201311535093407726643775658485008381854131480582371056555771577099709918843983415837305567787696300060310685259746754374693600426754167643724959207526299078511050199353620943808027572777541959727252726028388339491100121296587490744429806717756834697279930946342584122192958693842833583505999542165191984393286164241490439354254344055640591637397027930671194583106267340957703575311720562916706513542799232394573616766642486921499290721796975705344880963541534718680012449502216472258153468320519979882664497072475146613341239286944211969034259348315153809344704492171172280873264239051882052649170416162335529934302976700894547359343293007871776644076520113299240197783237213676649475873271613904845815131993079332669976404377658610496099087670257666924641555849055677537325070810471907483744809259062688806934473978085978043886671276902249855668819437038346426676163485321302372164250433486012421955526824357332018972840029420031922655952825061917007550168015211474817217958462988476054337667278164531686386654789988644403164618407677291422109232189407486437928291439354730461417218613858202292167181172794448518898150711836642150576052608195740816133171807988573781348959345730010676002093218588043258430225892544094362561370782152765531115199309925620706058650540358252470581134044630350187026649414429613448686319551306464300618881512990576343608871415001263461439284383657285784776636538215751956093832307700375039109364237736056939705257491178284410263034843023052611262329628285945850027341630621174161984852337953280366927004914235967226759435505311728714504028460319445280098980759778077333623720790258575071674622689827396212345188449678702184041837626431927206117410276272804337478688256290274596703064134344207792042087704696598424890269774418875924688165044996481030615979823530732953591008668073380661494430866590611252956239077699380042920603168565215846260000916920120878969415482918511326705918999857031649614099734734743270522433433587380659275877591819791212634170139789774995125043802096610128044860558946797746011782936104425175770410145757790941350524105872840402518324209421035299129894750438260582989761826121644980277989810477060798204813721641473862832011588688074406845146300569285345457841317191601110536541455398420947423206400754061808883891310769047635483042427877458408753931309476045296707597483955013603094162855450047268147293767059588686767754130895646118280070701016629121331090358892235994210093206256827140384699332654832613702396997368677771818423992756084623593401459553783010939392617357579654429755796260526401845371271084375197941949717766494126988809576336856860632843373100253392992234254469460214524369386495662721307205094937725555765933336011731647839478429239736106926273428955496968194607824253486908134224817472929997561333126051721971087068291742279424686825890344042754502837203169944002493592118124580679459642771459187240506607278528280951134656626139699710841444791821309230794081947422252769858184405348226222849623783098977835850392545261994745733404735432385332059872164507068376613789448282822213445677377159124456616427774472117125231910006900466640360978107725046281838550208250332228806836305619123726680227565073685882598511229032284733831610298636855844999832173559041692809655089085183731709591207676895608420791476270081930423199646255589590543635378498885734624753220543289339777764798911745809466664769671448144151263636798082660736777098802383453174115679090995085142670366615076891855851252174340063727261588098234049638422782427391476731083449194668756506782593881950429704546800995408895791247309196517883205416763690891434244105864704378913575680287256723586324249050634562901610218106232687022136889983559584508284725749984673201729073699552201622199451308179604350145689829010639626865423474647133632179651628256687043119657661013935648357742872997903926352308762006787441509574308620850417347697488149836332216549246600992563343933660676549261152182966418941664923787819603441271843599919075803447137958413527727687356228490965798536425592303164958657628501616388137396492504727747737007733624196944199745563994375841759174568177860971775450532367632415840978208873489525165068107036625665353680124042024250154593428479459605192080507569530203034986417412955083772772587783428386735558334833408164343125261500416749122855777433593732456773017947119482357716573794411628384765553485477186613143272632303865883081135417066303962887882688958622028373393402722919178428629438085954060806949555903643575595609929936398286362854705725936102838856873594218917725670442071557978310853822882690682311429151219819533030540478503316209371946542319571205503899128992467325958365211312412620670055808742932995310329886549213736759534033858640420062511376470677962654376918889177292196406039742776274034241195403498979807784751513865356338918936162608028606727746549226475617037271002692074834850134148587356201721928503928382494894159319382545347036392091632301494421055338680228723864875328836213561947135134395840235280318783942462758066582286818111667610880500342398766547291745526133749796651983337398992049774150284852503062466534231413339701562641006843001131804871100340334058221114783598897988425526342466501080342156002504076618101500602314721680664636953871717564676803948967309292208008379639552437272412357905821224404986138524249548401945743813161843078172470162245922720354797311602179331894301849290785319663254177081663325687334357415607635717851319319928067982849483129964977893063669110165647131491468894716270941412964042245206151585460572444485069345885484747273950808599467629873263436051591262666507007489019916482493774627537913799702252166682130681518607764927066754355067652366382192289939304020163505144166093767503706202264215479643792371983609841509871226741938739700060329713624476475213507848353681022475704383362518303684999903523012029537131095036529846394662479578649314198301752179856944448741269542837013110766027401659336432645234773118068310243881831425478266281656184304590394220053630517999405120995879599319383356156715845514918332494425274534998988788408883110104421281513522448890866663210591889202060057902607800818384178107156597620235930297631543227490439773666317578622614920678633143824648466670116862772743147303286929034518349320889237595411359183750701995145963556025945126471861411157945722238651028123280972713957971642474110652400810480565495986610948338852111335199030785840036168064514198444305535106321658044714606907636507245104152657365924355939831721345108137603649977109969753617586570475423839610517217220900550129610377582207113274909158178811761762214387308557947194456277304136617369415909644924195154851130792418869509603880154641961320591952252791463444407426866113865867919486555403618993194907178299366187955460772679862759756227057471728917046947280544789645311895899090252761707388827772286924255899045647241597914788302825782137757008677872454408897766418728216993464434790289108728876887174746739372680305987352287818785614763724409955988983053994839575536371194077012126412642114914582059346023322416695564185431108704394722820788903608818379033821043530967498159294894186914242147147968474943969394264962122302357855847905484410367583636378887387481495670175790944502851919318106328277464714603635483905477300491784141997922839854320507999461841438459861273790841707827742685306051593618483595966337047546878370424092249986356726323627112094709776485128855283801447763249206618259754674511819525417264025200083953819979681683248743797451128045818673271366290453028735660434560192070906353319208873046360120738948546835363604518028242578765580759597525233301721032046308144566471337305318526649648159242057690371863402644809264697788845442929484649349504120383629213971284537497898595172513340025808535197889145861534019275244171408863779605016475678051705823374926459309052565436432667133340718065150975961051509469925027567284587095209818505251919158176844181020114354154978438052619733203916567092966748230302546143647826690232291610694871564404146018321393669011229369172593553107900877205139753315428971983761131211835923410477666013001945656276214793748654045555782482278272576164464856661596349852650786000770595056366094234024857199507180834890903182365832247220677191187301383002141910135207739903339287702635950319281108411148329631465355199207363529631610246562369860745422205477872468910685982656278716158773533419454274513372023870712188501097156707321486964613403317482842199084198103613423587715180504247956997058544334207833780809112731336738878144068208689523416882498454946217184041287773182152941256953830203784181068971866290440018379595652087926488712219792048915695507611749142743006327368683623450956540321832799383192607912421228110702184659405348701221711202839659826649010253598558797723511888176355547424724989630574517807551978070125556906270676767377826831386027784641938933129706899147013077745966365864984774094816061103557436127141563453672837175582873284869987700357321678028261526034166352139653785737602141518146381647294428232391211244951217282979162714345239152264692775753538362702238718826489096900699096098647991957476110873794627069571752995469497663906523337751610901282676665591395079778705802790196679094180518467760850849979932774827755444314748264708171684395912494592336971366205688258559709142615328217587907420913571634492849541790793068186689292093683320408436046904154276510632803053314575169724878561228249066625817064605693126403797838901504495636261963570653646506998266014534984520046598770381662345583887559033145233318037917222411728585390177351319049359071555492195508419912183861198204071156380127496633306966358659463642362564466564189846880372382259262083593421583057680555654787843424922499176638887880773096814888749946585493839714292189569197229119261686319316852633788178952866285459425917044456937850945517143266021573342584567964537036572054102423061182136933460302262036071483532032751562339035663555638595228708556701887332439286742662553479192911391096346961219652351772881948253516066135519055458273714039817639503970169951913306392779715526830182218542917647603669843735591066749394934384695425125834295220129203811308788292536198154958053679329754912809102781450973519383010942760534263689877079429505211864363464529675996210460505561095455807587951075824971512677014906248362424302841357317398404714749969164740360973240869825862987477360456562159784564445005715253003784576673707727706522280671863910577981651535044220115473327030137850325944095678787548851991468861874224310818048429798714319448700742833482030017591569940956463321509365227535334289945689901819506707230068806476392937638297316057279774763292691779710742173567022787865917587852177005035162054420242263987243275710181407810586466717874134087990436391068398409391706245344067590899523203999074760632265337173222850096808843279603178115333585057142001819005797290563740570501363473358636437562195266223658066431848150466732835715003906204758197422408987467566141753235878685904157866023012741080190877900901299275790328875204339684419509034042711364025460863554352075678778663626469170944158527063855650699275819261642017741076432111506985571238123778332604129152459775522443958227493756106573791097804071164289958317780268798859254822265576723774833835551751167622315500355569592982744634636986475377642030167816608180913102841265513384930060236111840312630715356204274529278869682631499597139714189529084719247758197589435514646713249290427047375617609540838264220571568994863789307673770589035132738585640139958463136213151258586501752431329777912390348280195459630096910762586290184690390372192103308669778520707870165111490050367455429185966037280734180302156072139085041466201437882277010603914782407951603573192401701077354605869318986118040938034785144869051698736271573872355727265878549417923112099840027753167346657660707218179522771553783547737702466662848105000945354408677500645909154968888520663531621651615530145318995298698096022454426070689637724993425827344991767689532761486770585576837622963671122649172441039764398402640421781807760718352922245702358462260041849112291929315502460743384293834974665142058216258351270841357576331587798526160145479773908704894781590952282324393985970609508835839328159817105546588988290155713443302357518639783600538599901648272664508817402297419852642442373845790340027593040502619975242630464661192503819678936699405116624574048189564758055689629885280164323761975243255832903670097741403624806792755675264060723207204495172035681569899438501073836077932151075055178074024533680852541804600401342089974594684645721689784112043309367727069565345862715645753517633762249750860339493344826499032050761708914454893970463543620602534334373385528929896607355238660187769620855476989680027914794857377841068197456662872176312259797420955199382648214086991629475569481821410708143218667855595824350699589369284173939216400794464596069048822569202850241214740781673711057307888300157852605371318487799012997956364994987682974642838159788675066012894775732239852115177616684224818679521745406565400518386643713250910392294349681567560225786960705825975931565346797128729458990781810326090157375328400033166335325443546051768349855982906076191932394510560541534770807933700982408382305852216107530054355032527765917467649768874469821638510306584405796269396372558071676047164136386433910273976977729967454973176245713925055409973405870335981024820354362768227427248607044887613572260651644148535480209708678792307489540324191595371097944286945802947061552486635869500700440350471149938060125140692918596540711075948471272473471210301245421132637925886371408018423547138119719080391711971415846814161629938137626424226476352965672221952292132747652808281451359596493907550617323549208762660637639384564616939438589874017667754399340459334739920504589948507329981491426456435451680251350918083540918157654878679435369895367765254720525802888892790470226013306284940391273261410036969571942571684087066058617321037604636720788061220454065884253437657510911694981932329715718799005736049366533593901676877956177704857799357656205002424645001314886273558646974247112802494899146136328125959979650462511336004540146921371965536383303524903794586312793447355023521930031945232539135017955785256629458274842795187649672575916017870653170483134824986733276745495233531107528916191118165577693759943294237148846090411487305214001950444633963099263423148548284038699195405287924914477454381863733939593974531161846698062373487273569014418776037736725189091527990151504425955022226785292539612982214974316259205920622858120648107757549487202261671779856910223398153039665168467912947898792391400630982737077450299275337094138477138325043147417020403861281635670736666292407787802544762141738898312065562910896320962728249385526633709571797238659549734500258640718341176612818622975372529138021491084886732746116774655440542883063473012461261030442828511932287437164994857297411224471859724333183179910763325151392342975279889499092938923650931074832379762288673015569615369140378956229988317624031367424124857931279525625782371151856709696039879621797787362140585041820126190165652860629593473108975499119908164159808760293800040659451863403360413808432092630053383121966904650387925594242399276216139726631096310175098632634410941838578947269713617229094288507428205949236737804093627939320981231827371740773459690874573421834032730178715642583364176985067958747521475771206828105433545929076977634207434788281594111672327354464029357687754471277274409332186046130645643178675621597109033253715023884955217075275682750234342050138273307588812913598394317033772363548007963111750745793724923650520790135469406676200812369164746242135396271946082292783677154135358982431163243257054098952162771239810777838331523323341738691486428754725563380537711747594053582195558763745667900766873294922512813601721193650872282046196116629409489468781049981172704392266627753529770473362901647645966003725419653789394487284665408583666664481036529719720398409606561283235645727218069500141979849110680790902648031035862342709651495095524778659301049960180151130443843833013593858313517250099963400603667515152006768424285597386386405094443158284551775982146129535345619345932941309576189673519260993858735624593978358624419228382542969643986980977446059877150900280588656953256185732274647791111163661857882426315904725988673986761348420582159257584394246763928429010414446050599415361112359353917277865339671685885958314786946489337446089456593952579068946499767129467030547351460221716133299700640721309548253998524470226911714958709531427601545123513969823074400031493587260071217160381907061327973981438900339321702711647449267468013413622629297152999378185914727668508598584328896441443932891077401915016375716501554616620729374831477099829491652532504712430815108126918076166403865368305317379012516291364916352898205844192048964068146794311032042065015621875850532269680661221464923116857893803815019430550492289402751322836588004204489965619080729068686394865995104450596768791777085752998660558540221008428485544595499420443537465670854964729321892668575573385947296340354089178650041852952337426846854296724194937154900702726901203090585630917467408796428445819359205320845284491782416089077374183191145370812778815733880192151782555662473688950841655497184135374826327086367171509897401135330676098625359905516035160355091647393850790909022736361891459440616144233371908477131776577029991811694261187998025049966231091903536050791238130469307581971699873289590847515185464613071756339348736341705809527750456359594296262120374908597250059583551357544330402826379023510322580670110671698690846508450874000707684407575746161872602639897613392499619970468682503644586198704086875584850324218958862769976140322190296312608693069910810071006887500819043035251975875270305231421775932377473978762761090310887243923446108227484636321171265890868686922538668893769214772002643983236412833842773193619652610276176909541366076609855974552678461309391176828346450112438063427467382914906840363606205655110024244135084018062679663818159742870819237423667440504552840340100565476787616719859896337697680301894301861706053803326128201909030359958815547793864107771156998127231484170981892593788997213703092957248310545661690078031215711735927735407149908398234323772300430723042192820547187210854155783908504490610887067858318428652534201467069254292053689410205437112004027510346658433417156047769721073722499339384519040651946586694347185839228005536243589993131297415884088860387947580885333375451441257974696878447028456924670267288487458974106926408668622223270703686443680936087149209844196811801646331425817667140233919908906409416271000832410728466134302824031278538612829056502858113092462415346719156431875745764651573738948709938402072692454382121351371585570539827461489566910228379957266139888615456210221518844728356279812187626271229106094080913964261664683346059965617153167862433358644347436043887684103540212690059423689732648342739843323367673547994062292935675153188875173501393649044360751188105530329245944318038408764437525955305152052190902225733863335392602029644394665858809176111154614093699983049007040192481083053147416898178129123500955795670189338399169415895394931567225014356849420095877976237629246383405394674202945006962083497874587506539272170450259892225876899906269776320051608676659681390330212856433380988543745223059619625113680784476122062324314591550879859966535193258397343592468560607681130858641384086662191548558399973247886503566972282569132723434540527610444922214156821333634428338057699854906038955863203218012345410304418882136075658371480896726392128249878825705285082074138914798460083403152028319488729899082458573092587601967728097225413022804071215754844931745774508057939098892508301271344002334395879132181368007076343896241426416197597506674227906582494105453606574944110790244934242545387419213197427059872488244512949240056134367405104668828770521400136518984837973300815087394680346613793160652733847735929224462610408665390283503687872238736980856777718094863383326567571577224099422323345482756844453184807222502080581009790687411172137530103750162916842887623556874451054356246940516462903172069940966600341483342045594760146609406502171087452020901275691526615654017922393044861665570941518621235120252405030943462555394182332391514011448680398494004941968495452732996158592278674564050360643091748975179926668049806136032069597910592907386550705973137233677957638073736099885110166861593792803318512396514960620463338400723473798934502548040860272768902174866763636843847021833808219327917881493881620080762993531205931590127607726167707435144223020333760748027269156372234270240637714563165699331762411140910767880372178502048789049054073246548442728623225208738534467961395494323151702649485805164267658098411428739012287805445283458491469017560906980578492685728295765895431840083048424725523056709988200491594105167300920419765326431745686808754207404179995953044533760760294054833095428703719227722073077521313701144337283051259966020903860140588779116133220459438280359774936335351527951778710038336072946386907864342804326956205329718147434190518741648175985163012919330796540041198558686509478548899996438744192628798725050768599616435972870430760861518322209900172228565119251939607544525363421347449557089701083646016742474944316515819049518674071795466344344145886425377117405576159272051458791228919277961480791571911878301148526919153894664678144168515233648180898556647582553958264411786882944410277889472390587133415317910133234547592111415547469516281338390100935924029059213933282574931351382743819111264032805534791093498001507395332168332043795983320331367301091942951926501909225842557666556493225871884720759658828168787754298311464315578200573435172264009516716398163182585958699797862062686001937819456587589670189395557941329554359459526898262179143534393332843978351282295516463232334575695162107186127183741568445546608451192532834223799946038155501056770207511766308276599335425546675057366435728916173801986818665892024876998657751646814369570984261137773313900014899961459207930064639742250558319266185288880947704542347958516920714019851605601157204044468927806026898943311205130305557900278064394884134313870603450875598986543121603909271447941560967329824465363728104594080449959384985940832157263440003368991017967544609975589391135559659575063962089610779839360869065599859265260373191814087918347690508326966515119932638834381172847159947263028273665918701365316858108821093030028243679755234272787976264991878015442994257585711008882564436651118434282256776204128126583771161177335923294977840758261405412091491658787033720764986783601919607175088061252242750070372984745859993458478691271898782232004626976212531076364383246172596584808305370680015805719418118720079924115275464467878132068137362044389001827991103134589318149345017721600182936859523819335562175104951887307255873365561849527907033791478404364313042276184713837424265343779205282236879786291156658979339224003391977108645016178504947102034597904200789392198751203601275661542151518279960979959126690580741534003948526628360592026309861916922657610855195429267674339250218834884865321436134504020176793903307383474312140604368286975308759061130860657233403714114518641523517266430171753187957987125042587099735465583985742374247992546137314609734921825834780601090740906423478783072332203465907936588357955055777743465259734903916325399124402503157612870049438575593053182070095947481646898569848429973896305003553584164810889728958000597258444523813290900487194718155030281091437210004475065621815675391825513283174629931114272546290550289849198863651975259095270026890503998291048738991917617406534153406367555003490865280163432980135832993489598419406425659440500451838715438846716617747527183270024693639315001866206231946490819377164122780974652574219197181321914352045182986628146415469063897476009736444551951533049457108730085361198453498517960859216883952419371082345987761869518563619692862337704721702697433131569053890115232391155479954935552129265025306859042170278331668160150895467556296224823280021851475412766909848994592334117028371118380733896657515386562212954371812725239436028266023958643666336510936554725513268182042193685251457983168769110934099788473545984498589851222490152740021334387088589849025877396348534663332438745970172159113587278301146208756504486281311227819650687815112363683786691003165196710697156027951823742681762356749659715434136214338623043022366875501164240148369435664663298899409055217984428689368806660584181555235050141655262286815406727725666992552303807856975102708744202390701762574766542798924973870615242334821024335097713177097382824856859997542987338788143592316543162742687730269223511543107852540521859733464608885417325510137510597709021200007625530078215291008056642467087314115020125088270014334514989871206698937937049346280921685359342805821619164369373924228581297837872285976059602459521936106373936518112528846270076616775840871915958675871608815983404125686371509611492824169844230444164139358148424727309321363509422761831082813291307116411632965517883143396515079865893079946994355806760771534284099031921547972730696892287318955831802244683080771092525663699572190546309484445586022228123843056750150080579459391510962118592126271616644842302611605798817915676811664646947793050224998222473937384949221384722432752737201414943255418300949158366346047095162863704745715358183855326208433579719272135270776612341727611387172918822819035224464383843592722809604507370086076450761417218366235946096804600287606220799933850700590927152148820136327581764752932299670311347754810125500828059310576178289978355194654736951674185220787810831584824767281287566703689792143540695261846840089671218008421503595070403747688740133486318677898485174744991917954812876151900741163775739876129535230094233435707407344734694324557150375883132486153130887666514650929559536396613105498655604603812156671869422534672789249882889648011661074942997538495611715296458612612195455458130799839983331407163887229111412283009019304561122893036992369271250968985477008672240603474725434186824799645504704174979770983502258588500276923922323056061479087878273891749939264464008686482402875891237431000001060209884359419181247829162657675709104625805716635804080256221942650190065105247703080442057507168143887348687335900854072783244069723565069582611561957561812742768470072945901170145267221359629750401147713290202007054527326593575370729104077291708159730870886488614134419386244621341158239771805850749202366545438286931565052593515856031078706438296033658950870076321355508190660038035664690288405616511115499485702486417984758829247745947753241723612322622662053878901925863338571047175650526551658082577957989695305446158919078670733234794336638725990200072859263998653513376954656386931472592671128681592689276447104418424970121844256560168036578094811418857486604956568654263301435203606721226014815774196186644712828428086236489999663549125960512727317291425286604835519469493769410233483415539978471607892957143146760395840528726676954505964454990328765730714585445579045212359230642361871454046516958900270981197350322737856929037595106047310471878853755692406128985570311320628634759615837718754321771012702943380629266295766953461374921357555170939089007605656696772394696006710975696686050741761484867329949130383358881006852951030928552460636986231168990777738085639342592038036232416565313199056611392422477931451626899332459804939386974325580301417894046074874962383652733125892669919992759509926515037779509529444793344640176536258900332795372587682824958407510896023406593245646459597006190004624485143188395535286145562349058027380258200723749811991759087545426047609559608120091593120958788166758889098172228690654162351544844016840087976346282524236243187574413617220305679868920108187463486315090125199768705040363114750810983076513047015056273906808478720955602464868901814209194951185702175655040867370243529850039696890654087634450572644147859707780296636840824495664464351358790207727156324499715036522956736286215693254758463881936107976894554660363902962251382804495298741822389591771209144219171976029851414619926282903304254507772232671556705735917974666435451125057236558444802443337315412632603334244971261112324253650915055274528510917314747274859867160239104836146650955024799158008783971283998616375837563178294512647295515752676344506424068371277006692381561710223861771285574376023502663708943022217115110495069350586290757030155323790050203440521788769049374855314469354658998670663282812805958808702558994282735926904159751688977302079800641876536460235535603072202658919812774310553748364149070254591522737343907230521172443690918275922134318974608147963694112552206892251082143791003172342195842908965056534338448821075629057533521182173915496252458230893187353478037124332307630686963298919787003162477939401233399619692624194952258535046511896012776825998397747970226886715702628526290197891797837395849995448243511447257769028038015430971203528411519034217324242766219266448014267016706892882825120554267560102861445803858201005196101964663133404602620409341319033801016769824960754805100331573644732551144440356350360264326240797432320434642280568160754263970931064397410591653108721071774039105864219563360996504605792662591551116938248498276464847644083712113272007647701862055352678739414709787285809950487668719202575382423861089289621847386083694337992873025877530495628895569357261458311615099851972171995691180292137178205755496862629339507312538031857084761465593164493846820533101477118590257922747822954767920535867563011409215529047371131463312683363860015681371070564314609029736194843057027726733562174369146269514956355106939317854921774799575456852690692190027898520540904975074831328086718418494408654027847682319786112743938816950269592948123747028569853134742659718579910250977539762452704347459114862159729964542876409677419206419649536367344363987374703988092237015971279230103348774347745724681383915193901752705140938886236469498398252570250112318040678293564887470001291126883549584007359780178987878740803647148619629013177343379366517523667527893373140741691503297571347761798559596379089356509048975563743096439886286733525337534021469183909910509782367363053824251047750948058610888722979731614075724337062472434821451270746047688289302883913538980184557052076093931218605852691083753945820894590576874171793538763164186811475582632613052468147899340431218480547993999653491362647920963291932253447289754238026700067106295681355837310792813985132554148251498285685503854370066103171750300495161772580363186840835192398119217166424304550583840417360188162245968054556724777402573313301625449336280765822998623061418351506891627601468001942702781567710334345390366749602664436374333712543738846182380990648174998196048631875206252667080835051594179143215750186558702748015370551986438968431208543589528899050835227529303412206987521767505689253064940548968705967338327720793445849449528110847075797690237394431843030326431139596433986099111377776432119507526674147345085057419070916379887154586360208051287775025647586540072447415336893216657293155177004781716941642682842018252809534319689630356372961731550219677376158935531645617614945523262614878428318231195495754665747276968081737672253704426008372159130769477050461161257590182122198378949377900499752191865959637601078977986092230019998665414641449988971622861156966868287406023674382956966789813596195665746922316496726433166554548477440576608646490916617429572140876438004997006077195685683153771354198611026644820040836321754449993324416310734473015023922093396879839880988320315688817438375476739080466807188706845574519702107129626694862460772292664928761905341704493853809163353835139088931112699912991455981371027685966188577735833253897095570483395496643112727462408424706069699978853095928246574038267669975024988540025474554331241131244519237953682038778744605919920961305736683981495455603007621008237439893117920093568369876884845466294992855775804610577361499825318513078576543487979179666461465375074982721403447585498207260114898204524580522467852643540898653630173544809981931681940167918969405873745024764404751780801946312511188856084094591588526045656282148168851562099214652414735677454262115847254603542215290082029125746177364894865045429238515063864408021449066192899572875774290295498248611381303716346304118594543030697016901926455886054321514747411569563161240170651880773554485394373620034568954864428292808794152884748674101110232216170222750913287622507072135396174831349565813555081541595848633955220877766107404793637783678642150458066271398469759900085919354959009322857349250220836708909724925782884837055488592654795598095119444789112455097971911053118021972424813895885940764792930459091550899654577056999036418658570969668202747293958345203314208044934686688747910221663726070287847376109484821129594157422217246992168414728398935582450172692934387562546987579160523808983713174836183296089718913254188619159493028230771891251109298633789450063684441844759749105882622755560064391758640262235434680862617346739225624802223522968059297815475771300899475290246282812467671395501341083710486259190645801301178486641999883216927783864356570298559898456069456954194362277821478990545117718201130062120478703853568723991628576473012929904200769990431741815136239839346097854959306761805870998610788210724663688313578916605575862192112105788541409105107768657423353685403881258055468839876570252571444664871016792560240868705051024435435975327233979993211481493431426721803136105769196861982210870718029881695614878288654933852831806655971047204199497675548899986990081670477678681347116267392165100867545273532809142601555801878383770393564480434409052430599628658779007315546349491097166551905845793633836792675394270857373711779407224679809066219541128306344529711829558512114219792251612091820025292420146243902036547685444450434502599120064046192316333019795738153318417436298319146479848636709749415792666445118519974536159068725417965959205330189640810166958318042969823425599905032850537256887881171881962484511396229742670644205743916108031987888514985067716668186139444376351380677517066552377122630875358254386055733626138121693069322616623775363834482449035246460152528570445953897709497057762345021789984520150922164999088685006086842913673656435515325450063064192044748261858971883563258788913885986256395221224625731337847063884228925275517045846132131636040504337105492541622177167382454914539260461043730367594832280393254812843296636324365147048861580666441516278784596198901911029866673811963585606392972841522766710930968163969093441414170886861774897695939539002647398571929082361833414769640628691738493799049274319416150628827683154330257658823897829164540456711829676821583116586867463039238543670862689503321012711083631159517016460979017309624155365549891832626886759605398265769414920643168535483872416905567321162485724879283563167339954619143575189360587002342431301944409310249092193328096763467623223820539363672175291548883613328524477498858699819988305103892367450874687119439857445866665695446437526684732968773439539439645764901677655860975238915285972324388798818230506335106785192224665326254419883987046762155623385152290315200323633741213147726901418843556487749504161373965005933418395060857765839850295033732556576000132571603970409722283691600079833445203774681467208324799893553120373896105570203102604791922928424850438306402044413650646283997973595546498454224639596294957709906185063054196475753611034869905890821637745853117855620232938687458835960495386654419425908023822665123955439329030624898543887123506419968253607434230488637024922048002569138736003699443726691752325039827980648893373911595546170598099210649017808796422353355613935885111086185449374098807573539667686740123522346293573632889348617984909624629741232907291686927956920075798095233949216829203386259223440815703232934416945864674532327951111485771334164595692112711996815391411108266650212396945903998792206305969179185441644379297230724155425904131025065318136625602963124201537139565811362470958827653701985432720362931497113066523333184535632363283203265704182716611564594624755485959227954846118786860123225091028805420828972084342821203199611961031482475997302247735524638999657181266516108696400232530914750228028593637720445358113675581709255315497774590658809564577104975933105000121962353826466309375726956740966004571399285941831753835202625312165750781933615986209519156832806470989101872257485839365392080471210024881040313641174778684019947329588226713619584756141513533229320752000594234703296091434693858827860749049721505171728302758865632873618158646133138518181286102125839817612563683815683450715944736010299597712773122469593546579027568690840339321761785087793871611591088241639516773853937205817314044639607061288978602423932968780851320431007889797142586884887658153676744970451545366143423271831200601028904164571435707045195652349332709385760455516921028518523698584392410292465606138870545170397866650817325773021007918907095294853514385980583164278579751892333502714074020329576071887582704658932704052006310272532364590564665680817380711063307502558751053535291893604952257059946871343378138088698699679540952824819581075245004439055004499534508516382223176920883087368938179970285123559918268344984761411506769917466128345541327646123188823020909826733376883443890027322126602284847701158063901225129553574826175453223966929626366635269207602607493863023852578453048764961046032295759505132058822869107015535675385952481884264051108471845271125084538209141973229944318607257119652162849533530902770862440370695664637150430376238687894376658549660393117311382698444753972127938175953021290903646479420220158817862116877615735747819324232149755526400063491788784875957272734450169295990492080241129209498579220735921412416479155171225060461399655289564036740842550060213573776403333162431970838324530658734024454915454746930182895707431547553992775519458138710651884130903288659483103046610518268948763800587483740551861591456467957021160309448569136329096113419189659493849605756459387065791106297802357330468592255453617611277210778297876353641321937167900167961389680034989819322545567777470160253421901885106836043792874803558754640892861001586752021823739301870828410955807347909951846047911466742331990813433999534032203937735275240163343049357917888719356500736527275821242054971532221231321133289230411002050519373539376691883316656600866810339410470012099479819032132738832572298224549873292356989793335205009949323734162549508342128112338447042819113049303917713523915847715571727687066633419495409149790170619349512772800437764456870535014534069515362213000823455295295314984189215513787701928053639045559677921049387365386896088520719298189855620964336371639214975017387755488128308672122604809527721767505263612660630039538581482225385517864002233404424577773862563220852152618184862111564608058540989843736396146146109416195100566238942456776034286528407478043990182666335328575502844356282206425466320814811894382657069047502729234865469990391397135181264954520079934554487192892368059210180588746339309317635270270380531149119806105967392270372100832950795602829892832015589829128218849191444519144753840308920600091014262872944459729047157992236322248814793741942798664030214428716073206999550893783911333029343957193750559124593976313579794453399050212833440871593532503611188748175554718627724231262448943511350895980630483126231973892910182450436650670553682618151344777871717762737051277644459659225970388881692060019867207813024739921662964670840339863505344185521238005199262597733664750608595684184673774600124564676587484043576912525256052938886538714721127595693300216758546040022110518440298550930070660639885249888255642406289886116983784889184803326008827856176960595022323925416111394793045555381719564189857326262629206066001658297029736886108263990151792124325476846967733839385642541365700266934073688493744398247703685315049888005139016137417716154329824570545149022079880343245782692931083567769904612942686651820339977460796952008376424734276511934052819265335469362821676342894721502161305661767718637936233279366620382002192376033325678117086745801313038054874007880091390594667534043986296145407030567742380709258331993156769482375369990661859275765358402542805065183581960460632102474200469013339673214885774567467105474668158426330922020844356618311809547814607062259304251904920200975489651416071517525044555437864831556024038357081256646096848390073137656294325040307342584565553860316113115001253555384681633737251431789649402887331024406422972144469079620052488958641330650482969413474413375516401672409032558870066292710913326950482035738281446248017003776574903136019427519946198076201411830782739679157635963661150388289779898901617716159631494191045161025117097217173233261308691688921230784770772561474652728165328725199074280961480424208558333077972551060272796777434058782926063691508909639492256294287512953584347436168080200360063712448638336789045186226011309226993661576511507317976240584391501814973839571533119883849907453638650846877534161875272917197031136640071679026490356052563808538213646995864527864802723709339573772319713629237114956372471034602498076916601546615712540531160272702814280392194052074872011895724748598813490113336066454653579898606855738564566010883141464361487895559977745468651991299274734580353471050028222372661282589860922116139955084492438317540696747156597079597810120685198644781194825056088999306119882146244194542556672741632053448325864184764855241645870033803989957659198497713983299317140117492091004887660283471155564038492327916900764284399167223255343975692026209795203493674883234715295543341535380306504594564648828934048323729618651984370129345313941556685616637472849905807739481571108888260528716984107396515764849957152568634521346835622798538452650197076545645584866615266459493026886451107379565712370732116698166019715101901268764140709158766802175594070046483750569198847431872827038674025484623532133444359757661301843048917928184158394222461077708957918446281836231473957139229833480290718257745416404258947449208664414847154326553434379317981632728448826132057861244435453097445999656706640772501210929388563919920797950590482654159642507866536244614537779157311076625878824685487791237011437416975312879696559364678422606908704965759966613787396442841298281038836761019992942547719980377839657479446934484145715140883957159809164268591006857117860687220160456463747574459658122280476628192376280086233955941154173669064115821697409074940628199162042909268422321447008665078494298356838403649500145987059264574674965131836468772127995176847878323784777333998814596765644339064873055361385258810724698241678982881045222440964923886011270634779536982405880515547771895473237182656767519920413419239246123703937395377099646870155461186893141828829613007730913089870398066142014447954675198105374667814315635058200621725062650545891674182089227088001728111040858591468570352181553642145515270210494497423604008230264599969631990752710678137626398319961909565177876853419346598735632529940939426608028727762142312091567728555019948757495054650206781879348279295531149452031530614006539521480458541552243971627075944509531214370510438362813044785045824462861654316235904227547230764408198458070803962389320275376712868221996507823686919295318896355252121199980952527146741399482269027254936914295535716583147265588177406333138007263634448302080802760465972476560718929018165062997926561434849313723383452305271453707066236696740201651019569061693431616732740625511551728850508422925336595735403156769733246994456067584278069702655686093975508611666446707009589496773463749586424819901826174928084301071786260466062725331827622977456976804539354738561579434447776364006146941226226485886728190296158642430589414846783471029294355140474920464834009776658326123328507951695119533512902603447287912307953057444998251426573975319740616074945639411395466315777034457420931342252339159527559879724958309326684999306171732836030652968458612187235082408774313037219766501935662059572391254159093063619338039472704936734146048622410385305937661726376287840300794195079734263984260812545442529645614716196294989219937515464667497050782998438564463986300457414634660319395749295752143783798909918361832440465409892395417536020053476871701328421564531620361273276971199546313498562591271220003877408343469671774012320586572596674724771696968576141160072260330511163329740586413256580813561119633905154069257835525146075315762204442670841596696090653550200767586341832738195138828345907915171869942015069985674831338171963428970135036312959413144555778516735905487161847946525562441419732128263255562111376663492186065569356429560710987202122549453125015564593769537286123439469608603113956202593102868085884535611687735092593488108903941212726233096005250073088009244221646223270847730192787781911604015654364059764462013857391768741972708848024432889258458966507240581920367149987353185340643536305678639081339598511281403285440617371151780679667358743742697787989753374503234592082439757864840786080289012552606836920539519514881368110801731305233903739546877953967818757360549583820599905886450327382118805646801380527695021121060250414272615569766783785552106144909269762907558592077977285887218247273767773918742577024326065543056893523129576705935803901094654535628794604792155881520170356019180446160951710133476379869636719861644819664208107535571681192315935340055809409983502053660615963631548943749018462304425354814904213521613660938434346401873128147838929083723977380787225227077094698115371744417875992535815478698591718973096907078720705274295013999968138129750339954383605966181753413641690385743388012532610094982881872249972153590666661693146075651194500418815925559236753069545412858530629256831277188478036768993340623569528542920130196848105363934040936592326525384318272191378871347759987207050511073149361449535839871783668298446795290511706910668271840003487635604427317581011746107056535088896646727641364662833916641956290564607973354383703846588000019528507240672277230845030871746842446555953553276188605579901573708164657469685008577877655854186013474455308056619943360371625453100184049088973694749520859891384207446463298484387887661085023160971653761057540392148819193665114000704251816590049820088376827918861784762179581269007985304858377308744970635033940138533682637596197187443343315682654346679281676237647073956335288510973912875037195478343158594028097354899324625715850958867383673882895625466238529634345963491417380710215819183784426215859329926094310120939105770677342192542107908906887617019111701194114008864224584250951451605845736332145902350076945869411881473520904311795710762146596471535603103497113506888666361202981804519965957784520717842295359449641925879652958570510820494110234000891915104216412747189478670200562775315663236207832177679617975737644812956642662191354752054750022220347899686103842074540798097621373510113203906337779193640536861518645131397004960810191395580102612242954807923592547746304003394016814681225285075532221323485195181823481438676208151175497245659734821225117364770450542739696924262919992551042558462806203990637985182688568387950948852539827091077267782654640113936122887737094431645347723507797517224367831629032648703133525316424243517233145357370440742708469534193043225836252444127061235122346430801053224948885974759700214187292463521130532513674397807973784592122511312339730584546815560544174411426586688830008328520346742683548032096656155275718274722691291723317530629920719142538101629601412977873707047157785469108388873531537326474133681186310186344654777825292462582296263904919410725690126246136748285091634763602317517319077461349590890313341727700345587349278495631147171756330515347703643375571744222363050716251123017295885115854129406032007197831271799875621134852718234149484951746915486512130817529508353854552898701785401159333948489400430814112273369393010927511717039941561913973216639433854036698082780339734927800220596825473308926131846314395864805882078569743367722634400217234637351374052397694473554621252975946572768054699453671217731607257115086260272758448981571300086935883521826122179608344045140521025620917740740484308361677750460013353315198478271893404018037455382132357381813017890217392224796727167658946654243884375409721709836785720202739482733323188401551831213171857199606797028041406528772455881147300243213570750904673280063491707305494325446270471803434244187378904816538573967358806196786983086599957413684093877614908549260472634783677097725555997993770593449669024810785785857041638873693501229756774864894185429493027755912179999494796094568859510939600012426399462789376935390425061949169546912862441534217149978661624884647486720996051083852785633243171056966857094141547141405449986007170102376330425580941700397779673935234336224839033999841503705211970660588390380406181349171177869171703766592178870697914928212644321622559158228266216004635368474870288994391408886608259981020305621577009785198721408664339710158543017572682853149123866048606270967261212090745179291504680948618292408332440569313520874915508688544373372463346390200616415295264798956063855589519187647248996894988544882270083398891063526799815013720104940891469904518133610015404356427535882443920180862002152149967424213329744433063610327881192199627942373057684146124443689326295264602592710053282718723393678494815505650423920167908783610048132284261690768140094042278753630697225241896323869579466770259766816815084826470528075907941165412673562969109658838852726229582582869207866413527708813785366331763630685574261349723507625867648588258789160505724954287822234906356602228683703646176764560495397229358377670169860887728942564294370470273206401889298075026645426757135303800896956245330582158068437781677690926513101425394854837827313117501140913187204979158703888254890218005848388527099166880668696557302439192601672967876323086907015698967547340284091678175361297544296246011496416868437564737487246146789648069468885831674900768263276291459584797301010986604227634646265465251595343962153477760547784384096604074097391545140491454195587052312659409574855237351513852541351302069104849440191663089487990427032268968487522636372278536751508059265649849706167356755664741910106599433781875442143076498846665447147191776739719695178877568129855098928228023165679789853170073168999052350265981132101219756180094815650579950991266222783303750071983364832677501023586710048149781755238382796938612180866431827774654105580492281823629620026452289996768690779244446448685774250114965644474171940887673214241447861982233581316702001706912265625968221647449819697535512311233264817975002924527111032271267230255573785994242907160590904716293094768930192879711811492803037356378856989978317984936017346956736173255325291625922747685799701050214824691872599971818296353251303617748666273398809144532758391736324791647303409983108328953171713086810654383048933707887489447307372402284150775531311671902197260430082140370163774814372166644448475998999439526798545789399490279346543137881962889591370271809103683763446663381954069673672856076065237954529637617669867798149704431460425114822281453336902014687738859335797002482450483873663887988490573906172673317099208053447559127946539534243317347775651387543524682390760358650984063940872619001620432263179193594576739868177470630699443652203644971229203728883155881776505588338944294273981811462668402541824337549718170917577739796341191392622438834301270958375671647315198704614850614423246325451552097452167446808842067650370397579765545573129474657410717295698322725069495377990270264956758209084392706792725093162614570054418683571829068891392155039220928938073135389562608496944116061446477548318174450736245142232784543257514567850534103739704488483536216264973323228874284930659039745551796117960319098895259084602271379367252014310056753590226067783294752969511271812273978924018953057889046166748754415039698005695955343744639951322559315739674387517016228746974076422204618011715214443473930882331135186303418019515140055178361072763714384480228107460192135368728217063417537927403750423318852665750510691459977618173547830535659489140914444891885847643445052625761470355644109572200844899787645722691960794145171279812677234212594620484301023534460786745432663035433485317849075260557268241110543949299172517204888187460805863931687279563867301028015864753332321854729720992100833931603403615148176866751051857207047213767555042465250724103952016881760664701243284473110174293403127602442956633093924150983295178691298561899088188289037897653236595158617088984208965646351009164422551546296919535636758819639161403928634733506242030572760848540723296289382154311647270136022974350867856517221182965101896358767095458697035658521225754221067697530764678135143710545890252954017480282264631030763600212422808566052063334882488848653932727892409277457191151584493151820429945752965083139081320238528325710642667853663175735952778610033125730621237518265385953174418935003346060953162880908435290016149965949717829798018207211883817992602722334523395393477988211048329649190413800123796485990834209031851473063133219355197781270942222467874150985184175279064608006298252147733838903138625863251493617193192693693405252782331900690631179325237806479842833625690474729041619781126400788966797933474174239123113818311346591160353305309597469943658625949454897393779676406895978209806007315445603818135530977631703997335571818019839517628028487785366989110610370193182986708162773055130447968752450121557302052920039830657022925820445780267434882322057022320093739648066290327369667524131176332652835330666257858178460707558382426630375423878620768618702613898138536244795330523218930350871581747796643671604718162603895819551934074941115891415331194326192218272644465100034093162869683319198995174583167064013786510451569846248083964499113301190049092227520052823766315389770742332147504304366058880092715717001204247835776837678521750281977720124696326764529297680246401131678374214711040278681647347124156961336396028275747246532523115766549495588252695015335376738892335954555279964273130566929825649713581158505007128582004058747203802181553839595188178905476392866907256821020814136013778008466879944748380011760293887214582397595256584048366868553101050126918395711135863986545960411025143035406784207092992783185984767402316370547335300729204514420422850594124783339110384956963344063182525468307397721586147146871136136997940423853271569759592497661300241934119667370591677498792537350309045075152012588081570470648811950355509698607488616400693658750618696436945147917718578702273903513209678336824499133004187882930110783939974238259562686352444973778778833292124622343066302020335051907919952252315943957358516353533157167169874383386475219922758313113300466421683639896943148388507005996991736275453218134984538777457476509192342022208900651165616119227996271058184316292280937885541720765076429871740326064686589932111283622366336506018270805143995420043956850359561876852397130791956729231225318508227620216826635830806558001274180628555150866719164364467160205153390029931111269446540019840606567242791377855873042803410310280590777836837297193236152787795923022712771567657824237068080456632365956125248497513675020227433207892331209919099808535989112769646615401540701648169696835418283207653284509061071000224497103179674043213774527002599691041634495602777708042981113207552304648447516771260424450673434639757930607276750215382158287425072760900784964561128183448999763291494562387881164027490204804224327398932825694769624578730342538371400731407349945138967142348798064787717965389040666148613528073580697754785747218126483488949796645610931629771495646862742661636606914115075780812947473354725366335849449526399482071406118483078785540184854639345321285557602243741299073305518323249144476909034396663773989536913008953124674139885229002309311268573843036165356078271929114335323095626396739817122487812429671419795283170729540424557548257238220397767960758774650747877310360922440632120902613825978064448761765274480057879726991268080556331338896752964848834930765477961202579619335634689016933645985612397981844542354452600770518070552626155146494432805890141127254317406837965833707064717427658756800109409229660426679768948390819193522835732568806205137247477488953696728349010067257217514158398358730846209315667146990281725029687753884225137947494566644157198732932735409098777317939203196773389462171374193737492216436006397312919966097244912216332012951232194250067503853666724496130411644020251694205440676607772835389165939507044356715947834862642854356749573830257036025057965207217503305418353890336754695626462975030585790612931746202140755962743173485259222596451399093132848366374793053258389322025318567174856104320351810516134311420405078928501167320924615213570861295288606900290238476509402719836487902840243099022675052220389044302078430474194956582449132096599386323824694992484277423675976043225192004011156285681063907337528731993593138765139268342164489706691466003589849439928981468337943253159405102027032197014111346417290524332206036022671836492017592675443855599377854271453397789032818751726935388694893669615149729230851974739972476460021621522884298860156345622559588896290536295053044095690137923373158932791191847352591040318891492737478563065452926142168709995814275933321923021799815235047558242389775175412137238282864670223505901981211686753229268461940828104295641204947269925099306890162260705755378785898868865176890726687592594341560224812820942532934329248556479282091020348657739317820020869741803835280911130046654399539210733464849790713876819819384789173534315920289612200261351601315554411584700463188846022891793622266934391614663161730311165087516137552492170144529941789094389655122640459823777961743544498946152719213514739270132208958160677776993119656022628389288052241378988651918475325807473737194221191632866657335429803131040998685500526508548990981567985179772907410240853775882821804480721007164692958396534100555217413545468064494822039710796134826768230823835592780917186633965214685411554682299520749176493059452565940278319622253497904288947625429733545370239960628499074222928081772614624548084921688907747650472787819556770541946619150024201015520855486084882789802569391485350700778791708223778376170580320667057354062638411735809311921670510241535658041944451815351256750644241177117016351203481796911211179223487814776263360458463656961839622016108038942438441852611986269913298910629736815716642325732810309967898485316682926029495257669720027002345380432632163291105294984158305904872584011610276532769651464851624504894613016480310090859571287424425324382863504515286479278431567205639026717634295043469929591214688490837892511956071845249734691733035121005698556690245410494117521330580844109287611515770902407463166934749990918037811760703925358036934149033866089754119171428851288928829852244368427757669206593096610587586443472954208632267427726363956244672346970235377938764512748207265512936278915624272010495855132153261222237429143584750098785221485412135276474625871998843178138582736105683479630266788521857858616571429171871162108921999053259060201337257127778310939446545386302245865826455418710133786856373844135935671148970738854232962828000889884549399381248601419390123332547454495372791543712188567323376165740313600936113732493959566248438595601177293402040310403190970754385595769212849121624977501693521932543357725093035264033752226900228345515001672559360406984770298976293365539540201518059880391418656421694793206900348167614633368567272581630167341980585253344833247133627463184145328567177014659008832423867291825836427173694002051487062436763926350739723979376673562040638112314905453219578714935345040480207831596497484880086244758669234232250060804708682795610506242051310712956649987012379929974575207196837660188217806414989242334693150159715240985564178293519559926399674562514794506363343721500219782001377602256811125246103892331042232415607101562112194542743727649267559739092785998019401363430059378052587504568578731040239764849099527028999487531571912157457458901627190307048469227108800910349473989039285813905484402741887685882292950136469974422399117266490108675408522469639950399031338248598137207375057454972600843032184499781241008573740536700137941981168925818986205538368015512988027160475537141365711831246451088374409408628358854482621011272784500534385740430580425591480288609782826582607527384699146951053692916661592241673718336967207590478712914929835330997451299187405795148217738410636624083491566967163065430472558871623107995378822632555587270020982347711128448667071592937848822226109086825985024973331194547823840837422121662848434882111571749709541187641521792326703508362589722862242613204565032509468712770656506502479906237349203360570112990260760796445202623743194950463905252545616008148940876390118992022056932835065920599762064997900329268809186544289344648724807357700378359475309488669623999447415720649502167369283745918871540705272761193763511403863359821563653401202201643153911933053619503571128463421449793099515091236259637426614612434611147971174302584358838640434305451391009238403681674411458258993190656675337633316271069241476823375706081919467375331609870233310412197080614113118768778593607947767794452417600255159524407153451497147774769668200421561390937925013725533939735009747718099032859005396913792103163340102849469860979679044328790239931038142655151796962483435911863277917418104852140172481455116667661469909134177565299273596079182686972214285270325819993319602536413772920099107294739239284294821109408420399244628128154735817024769928507326966808723938894719874268671679997867794119201066301290450070030852029725589620279825731747960052140437982471578469875053017146040190612003393311041114089893750814374413872969187168870151602306271596785923630675820088154841551943823760121191146163117226876461104107140749920676731150080024399624584578671936161966279652960953789262646256753950992815907362742508918140758766446473105174629685386521514959692855205311500624194098733662052847959924269600223527483425168863440011197937829631396895028650519811847536422779172575203641859963652048166100720865285109889070932263396573530808254444303446841106545931351538117265172400259549357734555718013341614901559093340094143554264879960814681554613621015112740373937359144462128822917477647374365548460443411981950708537733574089273312283490735355567053314723649909227131396290527483104138859416790211322671693902208532391508768852174409849647101425550477318193098887911402825459348005766399161125539944820606489505341066937602403513263881528834824519023779078083720575688556866499428463444708329613882647529068699147600816849919670045750755304215839017624926222098296581642311790379405039320551556791723217894537016772299371683349728619609723027580613168760379533879088262866612656521507826326326698203179058430257604858705494097906746298171513433960359867871144096113252789363281383822785758567990028812517307945973206409258668641673478732811919907746712031673992010346430013769086683736199595943644614425981193480032439625178614153227411062384060725392277850353535374788609855550164276095918391742103541794580965242550161817684835975379693703246160398570492884102889321065750274519491563355710465655608296055780556125704965627181917258464668878509965155339041288892171771916803597971473909292511592863407306095119130155870049745225604576457663672422309582550038933452313999356824537009919353000094045863921241335328164891151006086977106404039083179890016997823909439155434405529620726949754775733900598048291653286288804299118056734508081899743518032183393968859293685954216599988776938423651111760425798102781710141470062219764538626068490300783999340059458495475980627464290605999067853525504174287522514238282453190691086244332114382946050872946681819458373350309346099542680916169488136505274048846324258617981298435165125006947936270892628325653217706008438975242182908152323151308664440146464177396554492494926695076967348204454855677977250111171034698534393663040486854231925408337690003131491284269882551017925863906800428947340439719876671007219438878745692887512030032270206694934325645711028211967367108229286592506270083640602790067536053845758786695806350783781651266451234377116267055847216363914371633649995378731618582251524078066064100633133108008049908297761793917407541987493372885410828055085766504730384636918107065583367631200559897813442640214229057967605930479599345480144049490388491269482368095806681638220191001588394836291337578745462988297320250355434793128284138632964414322570168280577280301561528519977109686319986801358841764968779510502717287504647659187053657571982811116873059622488020385327004499503277101428090784122850127743449027114102907360613173640867482391075564578463377680699202364735445629497740976942191132035072956342339173516959837941716455954041650892066186188036377358676399599522514585835129926895219590910525806385838203103196388890501238959236599752962810630942686922581045131391724844532939155000479778008857850655519940784542597571510697445607799920549126502531491455664638674941203809577212670841911031460812650720982478359996763959571166005874280260318362637220305572437272280861653504797393650940938570293214742763099121856750205145665721621566111723983621061704085380087773022897042788639476698339841047683386887853505120232453010042151205111554401379394148120009765281025573535885894406092202889458990247122438475007438485013783955213701662590027774789299480700797144022981381718363777341706022144305475279343896403568399552100145955446224744055201596494614033745865881535030144755949644948501145129796448564004514133738511809045503213503753876088955202983589001575161137666169201837827445854258285363733344213678487343157228847413811540290829137710808967736559546088159985529558575535936248159827336765271968534044932739147624063758601969222431480894900377096733392312603796486254232545144275834102989313627114413772100994308620880800595116402285841487094299883597910845141364226754594951459618292029436970650531247663314298067850749906110386066525065456170482577172242624775367293470231815047333947055083215687528282677822970728076658494561615550045561035447417001316455440031599428428137423129773698668831276168685355937729247970742409587857997393956414122003411102010622887431860730180086884154349646524133825265073045694621129762617583455618878585290922653818793782214447997062296833488745885432073006589651318845701092071474203637933244145480350995103702099799843126497386670251404282957053410905452628368616370585654289013632618617953614632463443073333353948366025728520667299551417901720634145749351233630139405129739495418616517366943558725640201415389770439588137253301067543772945430494824164219152263467647687940193652734741064381025195374272920679749186823695247235643715301854243387776001350971606872500801381037667463946487172923008247158430420305207666095492001232311870767301756180408696961297354107666954847321052942175036478410413234610291268828696971932724108549823470936957257546300577208251736145777604781351283926356841172904116640226048649965009067581657071213300536979205080891495210317577441203673145113229039533582497525762273990879962736734133638146331014472332097195589920220738912522825969679478086599503660935727424344579091854089815925620064874389188419696279353328919033393615642408105620374280878750896905827952102468944657769759964584366243356408801394819591526499856251922009263976516107643995575555790666736843119835809224323532499298510795472209195993016976755296804408327885453463881224974499400843732382138387631341770017472340035269041166411044269504528803488957126990505947160135321373709564708529932807202600956569758071188693326276123997702465694403123949221533120927468699707011917878934127151773960132124800179530230725460060071500658155972899703393047807354472140994657254214964445260137304508748005027794256962259505382680039725353697518953652996646254118245926679534093067873794620491011123648815510860203282856150604241712770367244342072766683271832503380438347213592941518371470287781822802723031331546756148214713497457104398530764469023136588479580821664981000473961918834242688654724282826568771703244692824788529078502144738230727150235750785846802412224870886502987089774868614125543134567470351298470504419132744546721438195614739928810108169462245143297170700637214223584760573098680091008051942942098766256990957820680105636428757378431205626767445599621562677740958570159773540194914210376731189215235016847444132999325622862983683230404522487322796494069005706918850738333333998893906404994064678585314171888825591966485230125306855781850858587241068683080288206939387521212804147621327172938869146376591728454181218035983449237065253645100577239300319171561702851521472623971421431544525673587177594353898970597294130874535545362728303359199822147950040232421244776892356520199924683256310389464417941140918309418077684711418907814639622576748698864051027958397602013380233957211362694734406152467736829321152855798517060590016786355646132748711477699927675754441311542286508532740862827680917965667524828112166301625814467813225325863845437188369324554338214849030998221583631516684449920269436732495686973676665202471848105022210162311810399013057783842545179434510544979307819226469402700345442462277035509135874782378582169573748393053942252180669088607459835159148221923923700003752616954428391359681532594477463116076927374876352786116260533892844543946611434777538591666161979470007498144342834909035923815551799304498808679752945178496395447669764826927334180826392093902881861259940072887234509079571575037619379633239966400157273909493422024292194724366285246122262082957087572000579982066555883947549424981354504740494473288878796129241890359237129182937415805156042247086323481916465929056795451953586579782519919331332479039168839161911586420467027243339022921207923163723380143394733662256252015115778002773610094271071370335216413086974630546477834883535179252720317809370483841862090203527998703665575484968624141783991534701248677714423430945854247092654240465412267155823609662295897840995531834531448593209765981655656393969905690827463859487468806788057195073181635635312637241102483999650758435548501767500891973726291494361654899371062480035310931972202119785208898252284849563058159563403558438351338462057666021362132070126551126841865278962816794048748600930505484136876315705238580098501644767220045821566421057140332460838336081756098739924709669216277959555686720936592325980275207330040918659360292888991743272252599400484134748184786946393777527639512789088248550914618376796973442270232814623070968246044106198256127885287632937662001090055028988651015549225958139132020520908895451737571679919153742515961754551270568040075412289612347812165571677740188166930806676953863511979363800491716345271397647519432002601404533969798786595466994091582667652764648060665505840245049876530777743856274101197528095311183585645112538602876921797218509690770509861438305693227277586069546837927301445238524859016345026994752923013411014810174942445260398926890418411319226506254708939851464827458687397326459288667028410892463063994585695577967976070880307129213255250083424123359751142158189819933593321578317760689187295234983240717110045031520568346407100602927751644989335065224814732989826582464544885666045853425915992929022790839190441053249148833766740722768714010143093643956711505628625943456922078079466242710121469287324240257316855933957260431794832925850479445672901342702613063394184840776392450743168869008238730073962460929980896947548401396314485512405270414044117724486998018055100702863665513746110649736540072850650692869964645488101840249369590670946847212359443371553455692664536241753320007535163921214527815956086356371668118945777168659894433796012810467534893097001662321225531862033402340796870707049403010539761198074891156328763271536094969072734486521328353291105232759355016150390087000772813245149043811357579956977658380322841517997492776566599328379736999591297710158346823258642658328269981143658423892573705619588582700812423868452682321073718484126581058403372332765747855730063950087769909948040178808303767373105516153580537508771212518080255418464348371344987960817387285140630495886521548623529702878669695572453760186992480101559363775956066251460117174996952338508883440486841522868707821784603420315473334327422871423011564562250873697791664107338216537834666576685567087279664213820336442150211501327473711520873157420057337377365429405204372809747968302174330353352996609978335606451685603876931447674352734964702122831125784567049423815375260587149207351085639992096004723236904514857319961244346858356629430869967470327641108168386018564362757266911973848481165740627142028915734566216184617586314071777866427939726190344779613924572622273945716194847296694221857834661847249269228306683075034955568901966300813414473802008566388209954623120233603464475801819244817357985446113466628989042739901471250461328881393024862832740789403963338639856852196835373049593116814685450668576868317152881126348163502465715751861332101282919985337962957077610347014360588960591701564078490159100120803076607525986152385955183690572142418761487169119786783136717461868165490511984523259496317910036116259715632260965047944374793559097814303624639611530053745119499934843232600088940128802862510241659631771673921307282997843576933990453550373210683132257983035918494523907923957519859236975219936321141648459212223043779052803074091972478424182245987461487556146920672504922248700393353060699935923652728851112447089392523988578486597439126333391836359740539572785822985454694518652266288143420122994215618513916161041486086725245080442129508066800042765247461743251630636682243910772546447110400544229045139614778374825728083499752187297268226838917390983627039861456315018293917067802569704459252282778765229073706532681600453518336931460595659862659388045374378475618231918470568659917971972902827596235246398362794741153912105620973268121986672901400864244651383283693014703481852689208779098457255458796676885169865753244386565815331416296054314389236441059277473923866396460016367268302633643073785130018293052482930593228416708519341184742490754960722699592092612842929457163430069017510881268773299339900444810370315938145190938333648438554070690068311924909034009481568537917733534223695639618664250717669575551438960833419696960684320596914578775119792376387287981041371609406853850587138659142582886702695189873208071435892664722717378573179349857926371523619071062404423864858612145465170014664634724693918944133755408634795576038846628736283891973949548018063645761447574135274155114324797954759623000942914985357407411394332623003506368339460138079369312118913604956694525335560126862861072947627754101874140920494368797413820025300276015007125268262034050703530793905983626317725504573672974322148837614624195621158086250128330153763547057332836891786878180891936769621306690797663363512923909473267092082938173117044038880150587525771361056380791528942426441955927833837288969311177002975261835977182419961896587278062419785976036740189185552192539085314876539947371682461950619786663036867891398950148036976334039707087730421942714410042244531394226872865933293564386631490835443438785700332167572221704993115462186914813805125356192236703137148499636348824050650157749656293464765964889681490509808433131257316590513070066032378134957046965888750220853682792484841394718184155078310954579589270807559257702331897164840150059947364005036546495915042629751360981219012328975788651571116963405738088736880850412367243213870020245478137611409303231410350009802139262686863866481040672108609968891993091702539197796096005178443959450384023144077668059622889310852309091419306937995274704700998153431295669474431382826704202314095618740276185999594776015929726243255106297322545679711132080666991967100334506065809682822708480448524875873476960355368609396050204845291140070657456723950940994236463255378956959506413990799300937397920993315544407308031733770451870032101317825120746911777651103990978235411389469803649517736002352697750105713137754899860467905769605844642414495291826189944025925506434228196235037587510767207822458588923694051268273725036953184424949601074418059550348951948876527927542712349912548331151263344436894023518865190232994694522273876378123367078361753820007317706284669325597585339891225350122343796402388113793351885035561901300990359234038819361494936298887020854494858828742869275489176470987061174996494119263896863674566123648142802267725238344498886595226553903605574905219474928075571418545396546086449636296197470179101687908036279402692823075938733249523934382280192597790352832865265451145264401980873076264319114661930856420992141912266030282794247552355646694216285037048481597746502256285612204806602471685226288365216702492889545691533779404279040222208217700362746677789208376255323669285561497714414452780746895615770047873039873305766110935723171926038329827615271991229951095101325758846983706501291997174845515016827983761559649170501566866832091061522147916098500829663901558462287225887332127170984950795843932439830541430927251882257063101538368743393308746713185094782906412791751039829097853941171079254922642859843988998723459064326873841719970876487004744027894860791639155337499108068270569576031895639658623131274402195250516259638588939558929515003437089824372966712532862495477000095415574829077807793957485338990321533563969633704311417606852177645208937863350265011474465704336918900385792819756217878169205672500739866636480388940413315172627813765401691484390122316459087158497456668427822328944368874319946519604035306248112462954156043050082682744656841085415769477745606324387027308730652022163741973191093445036166070522544799816052665822143433516290261512300586556088709299263082079118279304239188213882836775668474527329435364078360604929276228598513366864882130583483799805085397537258283622801328910058471061052174628294791815871162579151657870781669997853197043650312529027513815933771814024320869775496679277610401260252892568184173541119663425781201597746052936289318940362115174565962957297388146641016611010879263080897061736108452528910238551878811179672680124156006296613431947888065655757102785951158948648530781425377198424423217895223535638527426984074704352949581000619952563016771687969982193628600729911437821729019377803877526619819112414671031482603382635006164378192107323630947800691850128979409336779499316335056330805695470813056958435090435802416466239320554439474779772242624794734121966919965627140641943815330576337615376309173400602567714321018452668985426446644611623197996631774352533655841515710913140278552790726015285500303375721384233047977924874867248386511508988988478957891944415128921373862247153409040857169168182015551915455913567455518331312333595018311314674780013401480208144593365372063076766497741798102309416551917581636127422552565142457206861798455880503163987154179157106130581284051206588317421043320378756634593369351220834452961082535129777054906879947701230548931077320428602547092828751616598441315704918416734734992422669301556141987386711842608917728663786641347185404813277813019373398705398850624282331047191734127300978535679741032126391578283450175958802127667097093043937532481331683027031799340912028514975292196157443831178302393498226405924005035605366939681676889658046416540407828320769546468143400269816803527760110295743469894858450960056305325375728100326201225148021182177615072908966903660266440634966819400179560130314678619683340095274972697595643314907507261724732907360590336984019488351083503288745624724777241345064718719794130915547784003079780947802424243060941444791882162450373296326339602717796801490943467101324550036370953008571489412116480976612957081602720776298189439171102684259722180347856869967789566722584595727014220656080710428837239616183947679975418840873825126231961926028525902028414319899600128211648724670877299616097478061859099742001426252137542031942142554222741423756770421436156259295109698872228669267816542828420960233280771282325174648584209370423660018938459331952624390840727942481725632729258231041338802570505121730324858532596684325315638471484372860167888511483249939406880921036256477017073547681162546771088343189117384946693167994741601539834815378399546089133037574521114048538020812070632614094976292314173316844484242354903531234567123316535012425896350898953768705041838333395726463984826095608968260972494656472593570575103705699439071469878592795560658558582823767312850950037400088800863695874772642683021500999032857919168502770409779617984146061372434372451191432027958395229252313714859302868948580913432362690428068929897726255472342027348822865630869103354311783988847040064621636360516128467875188643160594798381676368888941060656177098544530198731627013303280535336431206649139341395505125925678749799005822527479979334494392396918158654203148499770135357259367082836385167828110936629583934726321907637471739622090077375091194420145943451534040522937073389827905331777270890184083315780639316027860090892282180792670111939349481656639218219878003722886511708514429704184460096064779978963857215295054910638874982921452459847565874447095303260231398237852763634714064577111863489557160708987760591194397502882684706640802827763025497107518468740481293737405412968438011557959565749417403658926575332208140597782244925336023146807736130660729709821611917343316599683342177832051317898366409165000653511157117221264560550966645360637463000350170789254839814819551933787654849604817761122788349290213333206145457450622680287834310366910250295578175203050823146224888356385788039786898636301597710370319621085789391676955838082957967261882483832159545979784620533924774369728564001951411671871333148845535839856942858212484227579810502200628038089457072027254835398645787422496414048925513965296654347202235211731131026776214827425489034053274372061048104353621279398264875037274253775449414487794168730475385643317657398702171574220501530897112480736834340391670344827025807709109194462692282217048369529551853542624770805765832126727685054068733034378456013528808259614250273914844837727506430460062930716695184853442576137273070149206260140931939028279721851182844025955434548530729931306038838223023358797045681295827584618507075479106813232866539328200502957191656468278825445509532971736560965115775240365013304278775362538238933922496208350983430635109689789524936588816253307521618241522717438302665044327292671832814924949789399436944400020462690864126348254387812121868261127509759525804486387633640725727161131596110742034838376395019453780021269533307640546194667375862269118127827339909406957294714220315668482726140538636996540437819764989764340900967808350789761976790935886504805142093658541157110906620628123832246545535511719938627721223063042629172276278910370755584149864792100257330193269098114653271296107198655701053176847546282686012831415857019521685768108080201668609876648749270635016929159205619129807829120030477540045342265366171863887454267478406158626373346621593612902701651284715858097549712753262935197219973094582113732867622983205461227242239071428708942188475916550774752001223986537894119478551010427267985012810948845536443922134979078376353840454023290875123813490616324501827569281507632514363909104541246121437081667665653608761627091498898388735973302125953770463227016091454254248882743964715753329607213915637509711799090857100089909037974077537653027010099266052990351011837585345614358824139568664998888998404266476153132791192053542554341384237826535064348748575353226220940940111935091249927987837510826964715898480125336144082581922529536588044397532744067911992233624848474585159739948752465534901479639954235572082075459676647568638329474724102699471348891354607628791069400764849531605875680340341976489023896231289264656447472751169529215522173767649289529792326638418610635593234398284713067572978584034216613095909596485129028128957492091465635722238755409882517673956799557948202789650413531773271995000479418119337767827105527092248246962272433587309092411425739391640728195670536743594110521825833573564180978278582639201009169271698396958317551322929049593778493816573663404715947191258964168507124092385312912094811976947579257578706710208587104439518107252336780449347613788882476333903329985493357667193872137186493692262574608411139798307459378791300551557891473827388158853427763080083900807882699682681512599861120312662394468907260526295164486105933409701485863265123398944417564170924441023965399587466112429313738919167918569181373329281811299362767128086926502311732161573133108569862352716516727904986564932152813655217675904924821109186437473146379939525646344290950083645839086742077923155381476352686477958596919456550974806964151420860661833368588925268955058408649312850059602915767102321198752535461804004494461917696847811666746675811377384075707163973880398472991741605956408100578022762749286089520075304456856576939263858971055035897931687634657086798550714766437046075511138269574627638796314057827882130229861422404846201383848162762882720730364612382727185651378198936144152947624063734064498809115564257837540826610458134251131148366414123142860817946067541958071875715154000090561771963131900300550588207458742724894054232864969253318835310798610819543456319502332226721733259548429311545568654574273730841702091261948108937983852170085410913458686221030510109597788552394191795695761899612149846034051044441606200370628181529354222569916582217100369990515402061450181679216998577953489397327177123083800959806580592955818879227074474733915859494854310540074145474431908206485268661964281952626233878001917911502767330031281655484902315418032204877848020930484262043724924329097873624346115415589500677032157397912006675471655973922872643170596221851205653394266050839363911217864662870883394679861477511988105651911937939985493196555612766992136897215993204796736520303742175756192786203152133312777537176590319028370112344055691504512763113959605195022471403629232197017639215992496526860224902213016287484428431258425289848963653244845130948251105524363760094958026238477640943729251433253719706760419215912062587867853361540148531980749211962407470032974671886311193770774656821040260835880645634133793602890642954942702167065316288099056737874772775308739603863151860382079363499224753760064790393530423779298147256538668407330425051846019005701687138890264758718214340884754036243176645778969254198529979505732417288421573901485279894615102575548109366406134881943489187313438242140220949499920262549267032194860365470441246323316245443339777629388525119047841521205684165677415101343287257534399794985242180264225529522326955009519269327548687045257637532538123881427941523987700624284930360906035967761279848662880526985011008935617398418403549869395249854102318709314724635153898567158574458978994572294371206994949519953595009679089122137036033653795408606305341452039804006296855792080161166057018506517221568525576981075897315728449038885806699904118095482998985745893519753901301592650880031816706407452147821303652022207612253432587385163336369136018543124959293386562205498769388897506047049615334962414832966909190342151096993026449041013087607221720035020612274610403252275464352547645203916124636389519115546061895429380303697655280315489473306118259895911984303026639409657709252752780316188233464299619084057161515893711404037990101849585495346309384456684523667760904423138406977914088578897953463496238594433937668843871588367774540750583859704450436525164183411234339653986517444238495857597121313618281608073067232689118714522625782019310838051552548824386235546436291746183630530993812779028530419627418296935379421653644124433025971145941533417519598337268544133010081676190886273442332277503430035667336602813011515109805120562521729438479585683867783061774038149463950692005857684728652979191167645705135736195422984743936400668403785575806019798881414258441453244349275580535459778635773891935408433217825220382187077251689291080973196239857058142588602159018266463954009450257879032728887054595081689363977056727723431521597579325409073384285559291781574412679228116844648714932477043518947142510821564498224123600102230207413842537399012721151952032608883572522200661947202455958540403220127119833623093260522121018782681204302829824853692350736003085340375631915469742513936191998065835352204549025480079879468527942614711354307238104119090971820026935481964833174822834732171427015228172411365440910756937696217606671933083427983093068706561663796153145852903067650381630454996325246349539611169447640070511308217644309941481438682188468485822979911635656395423529338531343500412672205658391844965867599316332992324489431313103339758206575653415468916130664155516516867291078042314101630124995021058318220833735515722706872709271616668528178196529488985463036853460768321887602722999067909535716119419034013446100551513717093514497117798155799164018376679494550336064651197186430433788818471557689163099509402473469138980655784127567331222134015974932726504396159097855879607295120334128863727521772899765476300432632115401472250720631887894351069705383011569459836008873744741430513055943890522987173058581377268318487094976487029927653357012850387623207205839287840030532698311613982151724474285035158465488052486048658128618919606321751774604672567992491769182868877297897307580878774693416309773984346890112142520720116560419023454901430009491469277117812561174613690108754593448632309902041745870789250306615530028612470090193799662796242199549754407678933270952883521620153739588111596603918184581748769278921739623688527717284657779497728759096007119980027959993766197332970427467916091169753179596632902261130943436827770073259539467996734602315720687381730888732371836449944003898592971760706283436755389466839520757553810288851937578939131793279609084389031603754214054080767466180165752540541517499971903568080403901854403286438033487753175352783712044005831074192231179340993224933535959969582150906926619587872514554440147405767369304248598497088036732631500369872837281467563140329997023626409089354546673733414362662585453768273261025122659022850365997395551502822454913551456582038267498754867124505310006099995075451932886711402155109615196054480054076196666279621578637161272476411049470632059400990709219052314537852839460632460298841986864685299917207939123308174160140013763127811644367345396086299205519831493360953000741067744563236888571197468399115827888896203672875222807545525075989931789408989347850707518716077598572908217223258334903190688005780555158368477418931220228087014459380810523670991014557502788193119293323824645356445669081803901705995417640239611652170336156899963518987026602357989670315857644628721502032395696491335550030881683213651795242918153037835702971862869921608534022748410456620496882518454300702619364812143842087092288267041313700793072121285247487918665112901847507874682910960782606447315290128285661630798784806197166134831848990127443059021935764106016360227510842373319283193549092650644734247876140849490435763905064170672511985764092313260072343058016032662119300517023335410684574484113817645670653045838963190055132058588045197306887571235940882053097730083465905838450448339233603794550098040440005058726148395168829569196029405883908273357546825066446196241717751468738115240216373858659197629858658040021005500014055291926754490899161664334828557822046859854814556207607698360767964523350801409637489851703403129143533186263303052408182851961155668968378873632946724133206867697460373933382513223351958869930559207750896747936500402395674876730902607338599326994710647334919015717689491360519644325525047979795990301958742700939861320765560875816860455433691664680783033836128755348067141374156611804696186088113556088607980679267436087890900318855253374603164670041965683611883148245286594882601191317677572447236758450945975297570698525754787388853177275906417683212501619659909924710650468585905345065054493285839788118313940440528465919890681489161314960713698023659361767915673961925820809630438054235137611026287192285132079922526024463488295688104871999023175697251364432986557136857639542771529336566123364265536849700609894630519228019632525371069138942883897807652905764230467427318731922655046682149460553437431380681604499520512684671956404470441685936968897141010017890716815599711814722180279788226556141750017028660454821726633593475632589990785885653666564339081263253704085193040337267517990245035852011908752006805181858940547780744088671196530786455866506430380750386238501767771908037403917018584652586540232393944758008082165724657606293219843075053292259689211796897121034726886374029999804816974915478051485802948125369491275470032465443463409837670901376973538878284350365087033149545637703227902597932553354217469513913589379295997343778678278441870947923276711000594235346347678101897707193033830609419408904962857694146312731485066130911800915170157937278299564569370104832684056592597046385993927037575673670273025545177848520058999045479465579340930476586250250412478678744880104645654208705525518493123831280683292043740073686143575142085207004313347537222391123994249379426374272661052475911745680274059759556855563010196471883101176385927496429623625318917008617299019864866913055863966204970188687935578294566441769954466161712427910558458359312121591213568315755747947340091682482235050448310134811694232142088783158170630142568511913080884989808122962721750181869398349166890809681810570235158601646363093385321664364246835378572656164169654369510289890804242432854993343456140380120080804491479805467570748246610731268139139860670005527380321786066615595953852196762769815981794592645126158695508383995655680474632202582791699601886048262526944253360140582180858340280978726658989419073567648207385193469920780421318240548515617144166220847006139655538322549011455228932588489273237033194803500926734916480918960383666923479673713114299615731034050141103686064949489334961098890881821989492384253700735486029291019886763622412483529491150316799101967298508098875677680098685304634494526761848244644767912966275445006899679986253235783889151636641189902843129641729519349339013111497396432089382855143091060662819476429310565614219118634961743121686783937032437543679321575097455797481277856085131827027428834767328456944525432313509049509779678453121162997357785030423130143186729377674767435040118762856893766084327545423299184130285101592202930297311953838759246052790265196715390803616432626686931430247051526401839277075501421931981921125575643666633255430355661807100695093106895594934298361980246436192781016948331188484056842935405699172417437236081901588636591593401992007926329543011023800575753662270162472909607867527515443375455457957548573116026722481778946624819273667810946957670489825312090762971578119348586818038550189966911559815692591361583222016320765785995923259477980458200062780012094165834664546948615509975687546196763376150446762974440808384715455681778732162947312903451329018757889126061451725376437844205354390366421144779994321773922314371523932273734533189235217588891569204878891950393424158231114761705094900414470111148413512623853102203699284855553309698091184646920709671111446812904201483851934219754452473271457958939208905838888101462990517606312730151140408518441232939351258082289553395983924006002574350393099236509782955037847679040823601526835338667020295320803340481664454103899295445127090305814420468865398899558087173386660735109383575188358941612410498285245776482547725374544281218350436205938913371973662434986607501474062843719644208595745239986077919007873475732052843230824285554018872106852346715005173142445828395088505753841748161358980217499952517074601204119912738773274751493884469692285548176854995997083004077321365219044769991084624135369220150367909858940653089320296649329031778039754498938860657056210323576625721900166868708783887986143310010197620879470481761685449380135578221279051626128065487463085570848262534062882136049208910879037079422886199095225353364876472473552612776254763703720217769055968377743023896133460100937687949245453142724509203155648796611365221151489489830630287778259215547372603680064878952606133098191092431213332321279743943440499105748698682605654494306228526043695757565130658411204201318364490773124870705969135536800908400585676820358297968106549515545117258228010365433053931343239143906480234967311535909408112340593297554302250567180653189777190524831161104579545967351206360912352519817356134087156944684654216468902029222965222115754652716715159230601845681597431853216032623466164051127151272729517713178875315749467745055431728605169312064599516599662681005155001469213099549529017342755370786132420315681403895029625394363466248013699350069059670373541425692662124991256162624034160103964219511023024489365240003198616276809155385697639052667876168819096182611869870108525561052797631042261569469138655193672375803626074898504178642787056847551918666771432965570219806692991604340914910888406735687499188174635187420708767127240290735286673923253013143446405555660844862933112186319273140289729716985294232011810121501582881805457075340493675334142939877486106902102097027507026346046115800674220328195561332605315463134714864234037411770821195831378389801240677619350124368021910936353851538816033435154044377281499167687466361309964517889388614902156721530966047071692601060837033957924094055821688354197614385508561804361401823970294032193612809661806683840617778486491809122940739753960258836059247839086241759722687689338290018856802151805537172045035049342581654954714429662881750853589802904640457569030798673780666669965541560623448355432826997820063161664557171823550173716204281098794921465008026348712541475854889052568111510947895299457228770653578077365315658386363153080584748903446547405625512679354449525369356612911034278249459510459392020019171800164420833325110229988558123248192827875287510401603237507860978937869157277609157486764440136324243852792917975835060002481226966943600767993483831562237757236620415651978606587567921280309594797737913660242548280670387856807487709714487972145290360851368714705584677691879659435602646106448367014724838321076844406451413438584080645178328294395306367363107637965917822880735444292500972397718621394388013912783475585723885524017863342487619389500333386412501967269930087994831192521721687491214513223049930069943226537042765027945045123731810401886593990031880229680593659174936779712263104571724559549744586141555263985087103432156536769822190904829569453095371167084226730987570128309533916345238398350616836074223163466956169830838701100400314475960581246613873132359625680656523133471166184757447130598182380109572770486612583907193879623354281114775538684869140440161865293021928382704877662749930005221590576484532304315699555220337334859127280418553756146820149830905309386609841943158461666053693832164539827646176094919781462137958563580515258383864144347417641394803475127723651093806575759091937615463952876867461959233387168764475884578475679610564305024990989521432537207831028148236431152811320095126977870202003813990139052747423034648834173555520174931791430436954257202001230815034067597031573797301148987655582182066405299940887384226687520984870326476901151809673722321641047711588567193059673695628587279913252883242578984474693990351492086976656574607390253298622572702605705492512154528224854580857342292503537358018152558815767328204672776536295676754246579262182605140180308537599452663363870775618911468389839450743865898636699585041942475426934935161626603890207322867308864710499318441705112105758981934789380631860099344196303372188315784822526278903297126700954484529737058268812589870905078589939204346309932519172562330052209405346603566490683381459612403214785354772012800295916513056883601718730849800204755519997496571311766683864754740217660002884242589482287186574955722452473454453466491436245317476104499135007385043190547464990592749800432443895845280473299017109594594250401766828458239953940481058359297314266557837349928621231448083695736675293374029991020021652558355989704393583829048992074115931098837603762691066413868659045097559060420307235429969778207171469969340701690175159960652530312655427948589162220237907728879383305909092245289806237844231991347046717539773136897474898929362490511700223652043428365780512005125565279534366720363431756539576042177502977647034679184741748730147388493333751122261945669164028536352109928195390697466881839153508464020064302798258646539448717190681932211937344819812940612128729183670975423915147994589415730063169474554612178370132247424072692376018156332509059917022547235573293366777637872271578261775687978329993678945594934382748753788062263220562635581166466775749774756027586854088564204360129616779657383856863431288230949915471714625945808093811264737604118312573336700027212763549215290747817243006298069969683348501024634999135479576634118865275989350854379359931869834246198472082511892269509356670738321382815013286051727648653110514493966464619888366127634150662520989262341601927589134982964289846288150671135604614753258579956999870364116702758488451216784144099691513551607166053900540535313444251308064570708823697918181273255617938242988114004477314450376205763308220456475860449295357732274574153578633833536884673279736744904328109103107254083217099852846529868786894070399456940709182099247789661354304086342198248981734073144772572848821202984441785919276581172769475208219564292415365996072455091196333456745086360333943296470954567580938036389855342785192733000294023101965216275377407661705346082711897415534175587826221814007248753150692756772055042487757879839362730621680034445704909361200310914600884716284548709239092516521072065504083910370030081427789694462732276579276028563749543249223460105774048910439961925572371553969481715792597849115358656157908089578113080629204447187672210999669095836722409844863331737532810498121343131027359848243452767701790107729252743141593875839634551433562490429635069022946442908215917343465361329408848007517882635948273235788395184835443986645647838337362699538673421399537842644842658700669397908678493626343418897402609744358889287608019269848587729521243907063152962509397069054878767971119904167635771674996760298985035229497312020415470567098343419749957553291923831881999005126978439570360285149200165909932254652378286751006838295472656625281001600707611830582674689079451103466430289828032173228986128123336595300690601456057786338742770192102662761256128027897942496554273855248514901849604974498874107147626841178153396472570509464920107335139850552047511165954400390356833466219710776917027202228151523543357063508793950149932890970429684724776505165611262775911364554626268085332145636595087583296585856210317317476037767361960829024573287434961548091998908990372044995182619014720405481956497797163115844329599065215965307264882050806530850101964277110705211279398107825504378482670184910346578039340233161763446179652928123046899178767663577461709787888739569817384952116010090134099968197954571355918918200675800540173805477035931135106836102948020840727949738825524841878620428713169821059661504524089316479878761302927840430821138382381931107739593204752513486245879623462477728798384247134078208368313599800246345119924365623702000022620921790699982290855968551215476805379192162641305018831897229148182880935193851497367584958726447972156174868414389276980495161213466785827179530305160440016798310502525786029249771951498775916450181988745364100839873511224629596412017261467129533213316139172330263348685902123930239486961069765851246206693568491252146876989747705873065953863555767022907710605985726265552541689580349386833862195368213915032757965826084659453821747312025786172489791497570138393938294730736293189350027691501471412440243308919507949220497894518326634929840327567895614377387934657337344290382845974886374511651983459616305964692431848239034841016250527836878809300114672586609950220206125938790166362318077689297675333058074951534060484237762536783052038743656943656693121371861684422136463356082651971161650566638755271746094397750910363094238978433279892557343240747561265934533965967594116193072979049519820628857976417435239486626444505272172540421783395723991671215359339148483373856662277778230159163667036362812816798102953328097060059922556651534011764490873565744157777707061665622525259016465630631568215928214340835204378117602947546220445132947007257213491118067551085020663655374160138817458562595708509374295510436341013232678489112021168672170912010673882660183781264944838802525136463502058686402031260405278116025651888037628610483017495917812106556314991037593187209089601130465822539876817620904822877140478731658362410951552726526586147323431531283826945949302220554875258679212382836213043090589579536553445871552174766823448421250273638869252411677929456449262648105082234157727652698615829180056599663376381706346066537591512174565568872356896836374138031871977463642598775240643142538159134792008899134499776076637964625598803182456150129825384268964744746922234136102744429757977850437109495373637264440157549212675990999248299718541522018601251163439730295949949924513816162459396981605846976624119733244775555556445875437677748036234623423844958169404511177755760387761552716835815900661648647190377543752992228244757245535132147149477082890090357338986588759650874815138603549965049980994902559278680907283706657874888963057682621319956123925148905798470326227332774162543457474727153122462700032129251103294710846175491894405695107471287642213886248783541255271380850734126856455250541664656106070922601241926812081761624102728300924486361031279576900962829687681699199503300272623762420352787736101169305574278218946916438671670655366405582395380098918647716957942611585252843726837713569430154806152198191151150981041655409042483322975690223033721412944299737089312770804207981975905128868411556718661161867637101141553645098671555430384338196303072556148726943861614196699505472758745476639659511824591324616049746921095753443031964485887014071440224480586169765161994251190705633054301617291019129472932669467259108079576718503075026093784530548825915630773260704295528345349543085904460273594078736370567713265082958675877588523507782608645491255057880955825497279948690000464481383241897422205402880587055797901002655260517777086450922883639125981301244439728956770974965139285454390151275695416778727014282059402191124872647490086446284238708675327164598817750056297417379019585666139648590365828054814030078725652737704807607816577114074697348110156543800211737500999321851416834524602575793888069649396477279476778481465496855119550455738411323284812545076318934208550138627658811636190668035808680579525004825485649327971930762336954044026147678132522420534852805565220839815374076616622072640308774803987678973865765563080295495823566565929092979987803644101148191803587081745730683823364135215180763750712536861168429777447182567590092286130626047261235451501347181251289307915577161898402367442867339621198703615579425495459488577421137819685221835469740346252312978331095869836054677576856671718026634696931026739036063071740197736485981186052093887105860486103473057612671363823815724401645966753317554900986935690514046647304076210615634363672262243135746024103940055019465035129542360092381144814673126162279757209999913855145425046879193952669000959240518599598703960961613012086145685624875403853749823869718654914350285255699410991231831202953296287404031128211158195995589941214742852594374521439120919333929644444706231401448006895787226146332565074996351627351836714359630590211841670869406226843757917648253821440716117212400547637099595826179510496121317993636980456956985445753624850576966172141525917630006686137307261518752700737098648153619957306777954893744437151986972579456015730216196128359096301284586905663695521734141140871866269665218523790610661653511601770650992804640395652364430981915121667931855789910171127399281740674467774519675808391267567041726893751711840718405143909089075373097451983655256393863785079562636818484632798064303009313126227880613261703750916212519839239983752841218167826530266423216785908791807811473258647647977094608177305319630954684356380787669856195644171666947699802676667781859396427318111247638821014890647666153862368299082806626251333073819371308971619042770313200307000167179212852586565864814057599761654719218754475783589660101710261804990787099292227671030838454562637397115680270534450929110797633553162028816052056651536966447325707953246776612513491305807894344739462165553261953530257200608154169479276502042688470314101827352841618738233713030776260218044044262809034756698085980579186565646623494885877367342877876078228663541222281288150090059736885143839646305021338026581192018379832319587033152481501932744451362486313219090955358382310889431338204748873836175548020718010869854861715299317096110503699552216770104733649152879257317061076819346780746119987023833654284343248751833641845622879577213404116056519648616694670229443344278721050807880952186560887268909329813450969239803357980996279763860104218753580037358968241510996901336781357835793608940573367718089221812127416222052315636649778135083590642897056905145087563135571294490080985946456973153764719679291610037775767056643603810262667099640143806550230305944675928357390853180166846706388672897562840774889223334438087820530293129641252018102769331727026589948512175868921820171908441826083830106324859241659801365963102270035623004573471690421699687532185668982020624189332632715768477240189259203486060335358054604957120287105437628132888949405636079007836304216470677399773407827695073182599831005843319173710392719229076788759784466565664604242775160114316624549173810395347065675107721004242969546512945501158541717978506701826996572540847440628934158164228992492832117931490756095982299908820624150314700506638993069022619573363348585043468076311570376867845163655989686810586389896653520875182100922715328585277542035766489618648000148222325445237464710147430531225127772036006014317634903893622777403572846038025855671669067948575198148305296929227613436842605169003688220436917819483839712155481685724529015520309858186480533261865995463642731412910470091070726211460337850731621159263679416454017547073923911875803856062663502860722460892467806498054554256026140106711760194895946793478416332578994073414397778812060518777570880004973960124990382348817383021746841563215142075628523856323245766707024619369538440142096464928842912029640670120058074212314049191520403563575327300739891392843541621086067839992427704780782379318496556984828719452701381022848328771630251782385581150287509383285349263463129640484955900337724723362067781250629891497408207676370343986915511167290510256065734260345427139365332428527482985170700104251455836536924687093171248389149686224331508807635459431666338751035642806403002437441609307650717995406548413153163778707105417543125902240502400935798986143087832075971837735110797235925396741178554094745711777710108538063711881710849681787477952773703003272441172537539433126545917229181906760015083683969020608331988075657858216269498161681405380248761361005441772842178247154008726698915842808622513315248061546507394709575464736311919680699113017543974423620429130726685284678917584642228926067409479735632507720355665388151494642450748806185065557631153368111146207315410353420445321141199787394175793192239702964529229058747556478255167370683426282530698183406676225952156978497689848005670598034011870380685472942812382640493326510599589807109302875727927200027556353286092359175899925530427343710214361637088459476495787695667615320359515946088017248422830333659882240776685128557237282565476226442346322372334117370899743777970671195128428683399021249749880831955497525545878061942577410018866543959027096970064804516510569117791967985304742728185164425868696439698069545232127629350172310285959827947431066827629828269286809651969416583810879318983952831637765972526831570418380189408847546375247609907149148103781901146331179862153939726496797519409579436523765653488844649161029176999788580682861811427027287487016297336485203879148603267558642347255160553877290313036629386256471458377761600380821914035068720897643567496829266012748768454596645749143909797336230784814716556014463467995780359340217954103055652348787309565169572169133343603886248360864192518490009668663311483351347703098526403409361490139474206632336710362676911732018055943711285914299766304621468319769771997182734752975703567745780138940025368919998171362384552266847381522617945901986298655086262999972748289365984480531082745927171615308163799980022775862100782677994468970417104982928174461687800852756299138112151808435914327492262272231131111013627920220918222247402117786252332902700807293174824030879934100717295919172094634429264708367426963661744896683463035055406434616585817124575490397395916972364893838426813448513839841117887145168343846580014168073001678988717152048367888341238253288172630648525018833432429555747822274993010265315533130474806133824363590837762559706074499266921226947617516517251727222385394774158367734529149947697231830954028361514244340176233099239963842667382900282062599448894882065431286219450783987680701850041530672278261800208048463383100527032014594900594920260500024010486622429011194832639028936144962253048256142241098144562175464488184740886250714453523022196944789685097782850169743192081204123643196489619447850451341590415360246889421908626916713116645246221834778001263341093702603840649921340077284815393563224636409665421838110968185510585854597060852365081872657341164597650644519315067058768236218124135838562026636242564462214544311863812837897451882040140225270348764159784689280530596959649887700123032309077977586946016741938085157868404249198480291120579589087504961734910994083178989908119613672807309546139302314593779537940795150361764244205404553817823838342356662098110329310145286275885586832827157806261565324964739200543529312220507159201343427053407125246259857166587398023810171802426579187334840623462580894674537666297724104717411898894988611641290290993883809377407392871987773860694165634059489728732214499830912721284766210375237545971118836435971989972770317522544544032680455944208053653863291801583372344568917014145536261830070993483408174224730046494966965061012778813136736868512939327031176650647074392806588497765549536247245641540542747029160470925875359290848367552212397227499700958998891474279503819554442194161760304313416188320774995075456737672454512604522812194765412000610979300012766804893871902982091385838004641584212706556825470686794708417744792115420182129354653258495047080693495532539069794418969968248923478961708329964927338613935104872380372310193175287816505421598928490394555708939851882739174954482003572385256457833260134263347395667289862615895100830320856392446239920279627941362153137271534686490468836214058963033280708759434172645680566713429231845340035542444932411480024612169204122640171151094653211696711397101896885925737095771908581641041895801482343634402005428758104276316119266504508290246361406598864418570946243619278212308835003680785186621300685111730943750480957367160091861132708449446283192948556683935736016885838168482735416113983953137342199930711540047610146937023166188565570889012679344881918502122869858412578801206336857776834480993121132197638716757705965819160636678019813815072152104334618395272759430745856826864046112128344819483883886651834946152913998483398674367193712814105059777766593498450704126817175278640505067722337883780451092156308820961679870807044854204168765698729444328608810076892752020105144855132172929897490212332491660414043225761017714106399237742471913903644834897430252463772674233750118254172271084873970582283393469618301561369802790235867342949584569952618105599825428307443134668592966404363285574237466819532021088120806098475939239406234864031576856457090252372653366102156633247072743267917599497114633847018513241734988439146865715151926798296328223348875492852787532821133405478898216010385286089294044684484173045568859174580997757868608085214623717667092070041942420178112125265902141716989841871671719123599300919253670650146438967045610663209604417443888943038020417701386415491758126977277505039454636965716090610781987787946178606717356148993057172830622112390273916504205410209720749129464246985741271901541966010753333643663188957445403205111133768020926860540301283058868766165052852123494352824483350257453803112168022381507728078107217774325336418446227079494578137075027542513994214834451173382343274195199259250322954125079330312096919385998365872689832900702826460086753994652254687257998191498006321677868562720934025498183350659906862437410415459948401421594889406304941714796611690158245210362831380714361733404018237061368056344159819478432201738645829700422166217355302968119736973061226557120120468390629687511230635777165001499786728738379627582329898097721654155866220868182444082563793997454729920417145045710509682613014712036723638244540751277069382386140784030367286906956466854955138595129998095549475429636999907388484682847590247093110378181777296082208464537717678973070707806147916459090651355673517242262261087645730790514881772964068206576917517416681922474034602631219873423875603583083262432601072127324785895282829505486166159542737982016693300233084754461050908027345664378225237014256102932059034759802563636798883771336905878218066497698093291738787109558169028242170968520073403412175333010932384858289348583364483184765490541241728817267571465455357044551954329532114222740724431196097080495667841231325127415433206309453011828648461656745959777174827017393229739286743050734826092539998320118534865008390229627278698897851653506066517078169595528011299005211085021099749403378233238704727010238946984760072735987003350565808086643115621498450471292676843899266534879434297755762919443021924889008771019991054656305430847168971522127255081488511499778427854851137100703400891031859587136559672370579776462609275051666325295118698629712764673978592004255365992937705100534977525600319885233128459849205250252040267224632467022909395205788071537394721867442662660009816888289924688835109188177193156970316548665311813068401781785906490810048512804720036929880391588539821275943445813677271383901321274494193519776037506317950403493992299724777411993422808026688573238449961554038415554135996923843455925656288337807305496123801877509301245834633995542276591486197866127942657015191615768207710401490201742318372564279517045291488381029826227444976163823749355027945291293627708245232585808178854651558568520846164913367156816163611008439768921875616778397527184741268575736055056477648619522469260622393566481791316705829959420177214224101014817758443359996273749696512214788683387404235830526627775658528876043495856573248000811256459191384695165114916130373332188574983126650962582921001999912878167893667145171196035072208343685247319955538478958115793219641507940502371932135542277415009288580812045116153512565415341735466605101444979912496772317336538566810916814124229301584923455235347773110338333947658444151841756333340179314831377624147950888897254869035222272795106898066801299096386600455605456869199457388995509442840694789047037573676087975334526832905327405773963571004719023662803203546319916384320039262944832812065249042877942717961964043606268063234552699920600865216759209733391769674115882278494717076669326300969957342607937431355234144623614095410880988461342875654758577502534362480210481896233294897480200600525068461173065445592521125586964214243794758839791719701309317595930327986036855769869597089801974229773928022407397165576014960269722071323844884904443763635132243450490254183467421463891324758766795334300592056554270882485969171655970709418978180123121067357240400065077065222905509778807035505297094178865559917741839471379340862097115783126191333785143221524873729796367896153482035300325246244000032875402179761325241647226182429303840781464338719056450359433601847195921980856903231757613621811909630572471408738682895324844055606848544500515774165352475065282570802002800346928885576627916390428480666427232896241920468799058770927840426575077361507795990271959203791698012978682970626142095274804721581442366312620616166231322089247475743490312929241699669183950994695954642892004661412265945284024382626641098271715737684698487165208126638662228619909854486828812559152347117533347858764580232092464750892767835711684455467015337475117991415352002838160690257394637339780617838870896593761910119861862982855666406592189861383515835993977344826786107304278936625507126037580377915416112598865168248147172621351756784158365155534814656016020755320508865755748169128075830049226518068210774656879110943295232053837339713136043577348267633419492082723159545587297185247638489596248246675289796613493104631269261351719661930211143935855529946821841793595000602399031149196925961993231070177779670588025444572929472326766804417197727026848147665726443355489076541702795067261658743312270615043184082979490196285998097332011610181760037868287765320360797819766034257495833353554429254077890193656629916806573216268329330354226404338096926145930754012315041604534595077578852056131536552605902842045940143020983954479763390054095552668830846863662760364064304552626252475754900380387857196204773921186479656048814001284549891625582526856549684328463714860164284286629472290105693880185220123269613264773450060435043194766864898963409507855463087573450101453053954523400409799357065676790288625321509168478956305328265545879953078679417549302729289766782876875405682783865847242632344718335971958033000354947422697144297515727062833086605834898445858274288600764021123610376378847110433353982149438985970019066629978544390079538803385438932744769835470549968268957191623472758663895467305754301770023674078166060527262126382927481679097190835030820211097710573266572460348640102653361825088146131225172164362656600314097719306064787008890524008949181361395727369637047979208585391933820625162732010471196107539001871141208684701232925545685439237573926539644193974086163557941886939731012314342437998333226117766338684908087260597331167214895222265947654753682586094824201952370951268214588880802145732361585640448504210561881586587526421747983000467585060549032594290133906602775362623106550906277473596713095147398102639848421787653077863705131343499062765901900438145795466682751071367539581995632626655507137577120921214236678885271015153407013685316009851533641537455513840334355430164189592591981231945088738651546242615938184220357954948625035131268311560947075473116220130338185036978489599282746242999694660023295348383072625652088866369301463569878308083589342534903977676602308209272271894767490105619909581709996087564739990650209163554210255886411746239916446232648804956358620524127466100631924677375272739559524336446031863253509338331847556616043676793766982534025765070514315095264205981666809612065843997334300750630609962051163650525162123584432072639351576883041675383293223490452865845028609373972693346164445609136205998504897962793654508627438686575520173676296661605201790883998940251739146526781630703473395900874477100918448998430745882706797454201665498737709655334859050020136496348996156841322251875302027600723551282328754893460981289085781202365653169970802039864746454350557247572113865870585726656723532794671697060172179161832359691902083547820605105967727180519553679561278360769830326650246795830207174850028251484295602401518465975855218683708957286344127660944882971654426160927275048728506655328465271276926734180176545613090991359554335895117749546928852809236837928510052349000437235312940542511260279010890774420501490590681094914369095996629493205828784253335731806915220667138960104314662168022466473127771206807621207760508694259890451033849980009446115259348983566160371067494458935817565226523561816403563597315710350604432138754182600859600938353467887129279510931224983179082101192468249264147077767488275998672762125010718885504756579366318576884344464704077475690814771451771762745915610640831398458434061919511339889682390637920940370806422571694007708596006316888030070927847373575185790984887143198977494472860551388024719394665206334006383545969906076364629257028330851835729451586686611761881011175312821486051236670878762256931678876165361907927320816381080030804677076668766326890525151637535540272053342832094718415247981257269407261860447054176013995745305245772556956526392595764033964697256306330044513893445224961434181729407536616995586737127336698741459528270007234764353884164824954942645019097638855075269629271958373832086382534965588884437267211860333161595549895775252617843288972542125449997307704972056211546736374349744767573094149044143290437007046821976686235952579894848982646513468627608251015341730266119554716159208212448297915082786010580106174864101082459961362357873737317054107013188474443697617019421249160283531948308524019116225902208297993006274633919327030432236118527457878195318926584440389022574216561025895975821763818709231946878376813208302191802666714427245390873837334952031117224410362435383143025588668807387979770168407347811755397311601013605502401942011167006768673187570925057020834563485019363825731363378547618247273950890139591739611158227585611420690130383128095473743071122554577613205241261943846301930385485940634610395209801251321834208719302952823276163783740476658230464290057068460365030735207418987683175145833082061682566460949426879741293273821464500607664207422809424844981481243534578190593358533938441656122874653787073009440767033470320889519807149757866748619525580851032822386795670238592349010995192899729756541199665043434711605356421947389667265442597093911736092851480851882529190270570058782850154209999221700664244678265015464883624126756819444794266107650229670247997490014022622605477276479307106899497615624891825256638934796278845213373131280964883272324432795984090225029236034419272219097319138976003892832268883186147028804460581509354036975909374729528860841037404232626207176225378009561266189670282139824983535733463497264768593151086711065557339566269338902526409784612398997433791607640441806386272660322037253749917969470211282102009991332073239080554052412326158036228534086178218023452959908258539710625170422376524598900527539087191122170290798268172362165124542481893897662973712137214937228080810835285242995459182020015392713923001887108811812949061381328710362742748727796695465646250976809109518899762539950379830301050308471134593930296552263630376566869052466662633081987561933027959606416398873377925506562609313732198857071526886718350738372597304606015534760317964665799667761293126003476032482815642924547876848411543886072788154752562687090265113167826110286275561050773595397309579266521166197240988684143594524121810648519928443190188493823572213961595066221718526053421023477212520411273604214095550402384474707367635161456178459174264503275958790238971869745476667059382564107255415705653575980598628886751048093677574656678802983051434752616350320271795726506914505898439480978980611394739912462640242892868053240878503876307619779502864331563873240449740456251829432583712069195033539785854076440215058094430362326758872114664040884620601935312253335504717352670562856211397455951547572643481455178944417646798294796431107412345301079084010841309323616950323640490200658716977268802902933557576043117130521241812459774656456461096459978081244110093733160565364872153576120999588942281691472840568305301803136429713928467058532572632742402081812244439553306267622681644185878490236070791900449110069220695899388634691681337419557997156298480860580433994477734375419364748396250302356608008955538459558161654148438063865892140807343504468630871132721693544123593944538606831642176230416638569886818385828897437569442545417872986099412554408236111988783943554658785150679828157475430870706186563831267418414327416469427556478364914578170211068912899840966089818443300351648175493743191994792268402586930524618636084526386748796308233369430797386044311614670941271500268103635764816558628355079228309758310010668294185293370328175657218780395649352056370152938357987930575861306627939935131886256101536901554781672538028895809456589794687891173479600516023775627257827419913450887972754857733731002200349693881106052797992287179838552810178075766247817289738984792536777976119344571564824670342844753599857594716369411352611031385484307452528523101665563340681205063107840920605304726830980238086571827294498626733135402029469767759211163912925133406319898834503632541467771695530045219145750089427232483947592059603952656613733283527423589488543832764665544492347670345463196633016717300102097077708645089161424282553813648049699721803597038413788705744784098353364451737741498149305255907819976860629091341839824080020000314969785704119816368455571729933708296567153565421052528715942001387777903996566697228717514689111950184154008389176790472328985585520551217652554583594276771292247259324624664041909759582572335888222336103836471501604821406210207722339303658178573474789340486770964891872385970022587836684432878347878776802095138467587642758998887881132808725995386737171700704788134561440362480555268575353308718255354753796840355378983071317756440341478122928286357455681995586808681875487180613520022293282572161422698026165229723607654403434716970154731325326252270067566396578250501006132800627782512352012858972204279496607531420432810998679394974357764843366274031220865263575676864849870343779150637181702561506028028246176539993745151463505491786397020445317001652721803648640346046749693004070516653582602003079898791251743358777360650991294644444408579049410513184503550624414046705938401157988700958640550128126059321009232690712538714615034006703690750090355588363642219487469449136548025980369949809677191311729315023791373100209279298732644223353143474280100599119618853529032968391976596443214003163365022614050964951580373339822044223707781497554947180147745504249394319443611967027693683521043522304447722859586924445784769449529465315304667083300936447450702101336039503128144917162071731563028403717840372409498231840710677344729795997110029942717059829953247009548896392413992697211002777041184307567627072536470810918652924936870869848314288650239840825489977672995049790286512542496660328197141963048320701104673797323385719600233357671767473333313746869670153639529745893878389978261958122116316931410693016813347645142349726507463434955947126972590228764996345270218312227384273023745951188850809553153135386638307503517806385938589683786201982087560586980308525476949286722457732491210252668635900804828089319379975216462996756605237348859435416150860678980806466087639000047788080674299891302666308906981048510117981480983820221450392262221128554600966667288596856318569236950800891954423212178225666600098604587069126131388511767862572577549505589063520246494410012243506521099835690832467545543314326579151296895347796573777464531521404521866701691613322030834415609553981219125534837799569108678342897034506520920364909329469408390762900153620733021088150412903580146618815777384190378745395688858631946385886377111321104450612255497340834341941270706208324856887908327419767874023056745264890786047317658490435542340296133492683890387837687692249231908844832368374305761447560138524261568556860014080237364686786113546957004457011518783026643233028906161392027775891216348613562710291035884305205697486244592696367451419494792738092759440162134118990519812283467026179558689662134467244079037634952240796404206741995635076867057935370755117153989119224910694661768807968526147812134001544109230248200127388081398152152475237126535273733109494248974444635436285943199303503617891284321644566238399495455317323708976504395256706442007027877174065537686043070170602716022578146517900946842289992440465916944996282133480194618233256860256628546652576743681561486098891542884446700701645510949462162830361373528248334336951255848642349672524312998538107059973593653920860681631107547841686073645708630537290862743446102177000614608514988047169272585084776128336104206935425849139629032196229296121335080199364968094866744550822447360863408970646526800009897310918367333646820086208598135613149334575786564169426847124810010898832354312826397016762818189289555887304944168838534491476652335552563945483130610110627346394499678333722143982525705131005693621161264141025088178091946403806903801112170157007453281459032758785980918235995083096925998606527420318217534998155371315001497662932430188582137747046816406376960385672585414783479870839526632126398931141462844851616765193945145445787227260853806311449579671148494755928140563649333327609748315969347586492945182059348738384080889341628886472832643386957723097017341377465770670198631507866454506573383651127242600085242554182703715666374325529477902702637125380262010517522769412842358425598899267157828412797260013692931230807747564514110140777143341032239204824733424855723942941164930995942425356293700860130723189890995672183717898580444129391322062801572648504301292348587673688660567144058137284535899060538564448727927999078794774666545069006888245990645367440119808038028413080250363007697891155886912755370253454699642376651826179371689799876077826922118966974745017700796633401873917609875916737036859403384632272281751561448876077657155960715419245483429448073965158535364872435752947565709962223581314624892518876609017931196679787666741623857144939286170118617755935477855428683359610262304988588312253248230019277738366116121257758029528591226024936342038008305070511733926527733169751159309394054995713660522208149861709591399526198563363798312754335696542033649712935244618929348518380344287970885631870522894432920666991926370709601922870374583199536741699991445719836222535309835721450086582875276595340260441496063493440391136337712192911736500847425586291411548020471497121256941893841312626338016123971597347947342170888975816480402439151729924905887639466842873105468692919115745896714007066860676307100230460910096209610672355890885518404335469300201196942624488709236231434631736788971227045413572862328112413392691732948642007629725106622162874940277903778225423050761672344032158403672737636207133452092087608700024633095213413251940380867055447044772489793585740892333253791514962927519582716851697009796193708701724594554663873488536172010517861834983455847987503793845808050484115941352557524044451013047500775371983909383751867657053685074883921240602873380612306896410603159099610656565869772182259899602430731416090178464324567627836470893633647390420111454427809646380547669128770395322662884737773440703463472882194524896146319483761594461079485899773718585998059532272760027194124408253342339445674029158922086771235564701497682910520122709666327072021789888516208321307621921295524280246849110333058568413945126091802755817569167484912176944878532390270760694116943543293395135899438225228617780488662850362448310570743943132459704596146049208717734365951248360579982616768166371837828836737402461901972717707317440513366158314635203784952192712851358585795508410660627156026192832877750868880496800253222012892714843203819769492212452297081196325768612811201344013389767342112028032951828569561472035777846902069436617616671349919460099639884644435532609018752650300533512308305720235535402676198952321297077622258917934997557248591670882811681122570624622973875399974286140924968181524720790925758629108405952310719483052763761656054515847764895304326118287761170147589432417868334575833389363400690679251640760894051612966430293829698903812793445506734919855952427116009667417210844821641348592714140271229252703395983631600685819694260825764993615660020883716083124904301115692106970455762742925372445346726573174653982342983939371614963989458371226155427671299805051665860549729681724454336707198951020422372059809759213995797992303130320657284233178875912510881841645296788164149578381773923982230787643060146726787776570063832993536175568299407520604183642858012797722127862077014914253120256302419075263647788428662831325107584250509443523088547643422349922406880955231274976009640722817248784996317178037563628885536914289977104621324840181231784961830851886841391340985207717551138676569243897174365153956176528633625405072846250521650687158015262063954118686833045743261940915636458400289304458738318768867821238438171907440601582992021106216010988066980721134359155648149187030463408574462342844850311609498335227423315651664667732257856232467997488993664980344117937724615932912103682343979418555291057020518996417255705337426788512329637421825601092582127227332535917537885005071665798586531837653832023442337504604757773299559115356867099310262712463927275347800085705965059137358930078332278222334391117756708496587075099482674461049762254272291799871928588527129553283717952817897918152397109552882891200324496886736944551400850902081213180136492389734578167420767454652496513640665621477810356350019343046742212735851038078654150402395219367245277508600951130511287105344121003809256133184773840290805581611746022513418080689141937418664029306466869933012656621521177315951752201413376968374318645140172248201065212936882178338970410924295355280435922086068563594435187184074715755969799288233818299845548200862059238862095145777850060081061602955709128820406891169822047321496182421260716385542876393091569130790028266285613937529907624490783795281176682902935342041479929015113427894012944925567991568019242120168207323759822364195559326631221365463592407606502727027016089707319614006207962163469526901014434031229200186687114996426679946032491727952937522145880344537462152235452844942164945301815032175392445706874146566339106635551130905014384102424355948354929834879324774709629434570580483414899515566069859426874662550798616910170205393572157036971376866595762944651681797818235687441790418456510007873095295630694166928253559799268024970441221739115056106873632146796926761168946061340382539158376293846985515543816001154596899241033934642040179000632555502824519969497251041115826002670746115883886155025863691501255866781489029508978899088339796872487792838077030650737653637159854353106777033210801236966818285645113841985703651242204077433285223804702242978664077218243378534149617002546844975742600555895206038855126171839071067646873269438815253618056575806568044956905693831505469201035488343004455424355547943911219158087634488282556392444902353241938790688759724980188217204998552345554163053448474429550830027079120063928737964176056882935339973241644218086286564119265511582564138040838296494065925180184434823739823729614440645849243720926782976054424895098583542914644978055116307830902567075762353042862688857241561122532167577978849136635552269133157496493340983863376773305709392541536934571772925691387675083154156629280430767214145876759357713584033811243219440466429576548009538338996735952002720136932783256848532050150618384947624804688582153601904025320377624999709939801545371330415759474525370571766260238684005815610162244067441344167959561825380732994793892563526434055774969021506025134360964559569043607144233099228898842481094520348548301887871132679332019928770719617437617550599606089380023247348340009194004912897431352470767353133211254158223828304217430766403384059876375931164674669595294437074336073696353909170847885207238357184376754338392438336692064603141320031068555502031123687045316464389760709217055648386610539398603884134909951358898012053304744615049996194479259342946667496650986348932334805311681925750696565517370106012539324198299319876554042279261778797254346330983692935714603504447473373341193386358869352782608483225677049527603673933482591979145427863881913170561740965963047776259749648691807033980087813955551296945505610442430364824201251203449510301854591933190894607961927226106025434463273476774995608702429670058215241248058514514009057588443143443824061200469584764307531713535928714680713626049480407014599448777404269912415737856057496990950131203523831711000186570066704249667040678325296473519393903619324704874124698737342189752934339659462905493295266796766112948044668347233917432626829256992134792687131663284391794004273855626314690274053011296175482742164309571224837243343907667780599729026260036657712732618921722424559052973100902249634874066830562512283544711799680798066657555774378718289060237983578309983806125042263374474545606031250713704173611561841659846696420325194689042874311772835433714295628032076001889917651310612582023583165125366465290511631870685026750767046600940247630925381244783676028516143057195573994457038707894237428054100505389160669784274961354199259523223506002981033373590641422457382820997802497889666397543606503332831913290993618715756998112672394422985869911003472785615848546472114012263973073364002885390938258433253536877055281771635172960362219978414730702266477688567415023547445336365287911043955120405823255844131642927202014697581686491913777866958800330536581943016532054724488257482259448172964951511880514467829603970989016280661575898268850197007749594933311016659508712944360715081584571655661623760520102816553449251659404201812586991552526882225285409084236290098503690522506736962951891668113174113229127937181688603426257661774259843911401960037529850768494549934101447066617527841345436551777829082700968597521163347930970084116126090925443876906048679403971624471977851242748976186943387596374738949024287999657159364266704619654201953488411629977100189040573199937147483187163574028522584546555737089626913501636466988534182803655999837618569214029195602180995198131616293187773328544491444042871092876714195959289488791980146814246436944111735445518509819821716044133219091972062687383857226998303232865646291685696373639548792586912362729444046002567146993036227948604317898356328393434046435293122021620598959201840481048984602476976443189142570793018328491246827859242944088946288437942415772631028398950982884529661016886316461100110879067681602975057223366987230191185759763891967048407126609681016260530521539184804890060623845304697039042061157204649429376946032190482563792366710694240456278370389403357864268651003105403782768364199938862836683119243906974670184776987972240713489073437853614469182126355136954553683426567737801907757478478926935441340510899989957794561362217052117077188212452354549469701294426267301641243355968849467516540155311134956687437230698867575263868698701825583812903529485732723273639157030754076478073748936071728982647456676791969342886594211936786011130159318678472839125063975110327146070894391553978191325612419072811834040162908847828332659962747827694878946341622262666228195713787930459137171216809257085625745857670368211735612692298527315757515175483003146819498546582897411693626356670900981407896790738978249086621893362875677178656794029073119186687299040367871545359582999173249146949033247547561388610229090254718643986176087931788020695791071086928164560629141615217864445632316211857710601507597837934469650480100863206934755963086933507205500532294123138606224085396182546898234044420110227583697411428961612128842070437034322918998051803737197777152927317354715000434312650887923622802583071108858851298605861970292316690755085631355289089209323107232485342083241333918616233926333457470625194248907046606379334986447786650149121194378902031719340894429479686831024910387644293577934950197581019015569409101243371467612959936962803137790522582994443823103997892770862567527524637995718453109693792274141867891598703784395973956709234413318383428253300425973782798253667305964279558782554767318638039266921083607383049997868526017420950970897950635211211352283716587835093070173685081477105984121026603157075814777147994245209662003282659193548236882059524311744164577562998442405790634421033918358309313664313558686879445497648427689910851565097906382503310268255527248887708732342544293476265843803467004269723515831995943354953321853536057531923037016835823835546693296991389386035311942222347508400048964862437469849302334966089534353271287204638399953928312633697888569079628873996482298137620749200658425437922514219407735234744650013261736423319060490245125338145125754429299762406700699616387540296304670554601592497866633684997749604395439902211062062533580296749838388516724418471934661790582106024358864820228513341929189277701962524607357674226653317650565169093016451042280683528572142824556640897622193054605869175583917103513699772427613104482442680909678147238012491995353389466081191318714758443641115098063884897845448647207634433694393362322778119551393297624150746233208423747950907162357853637454730715916430414434382359227997450847000266423398193810992352437104240188408876773579413834543105600150663226992635226558147182444333076049557751335974296985290308432536809347966667518424577478845615787229507092601939262107280228137950194282412310788336467682516747006987018508498175214585661552403232233513856816580017122532708786038090425308108757747550903076667075981284662243018484109256940732415341643395978737120131605620660030380047140971504959101415344025959989645891932863238580152409101618076910406525574951533937353189755663312974310625726318255798084243624935434789671416996627780223084001578075680109445141714355335005459917741043305547825581891637725361041860643408055086309752868093482119470225163623951948043774624039074779600514341956636673026130132237763979490151386371108631911566677441548229879621106945381881790307796717376033367612750219411643977697203786871385079682121728494973862507645166065114438321279747465969085828778057334652150092034096260247597229538240677819837448163846157981022927394440109373661831151607429992810139280929465708393764881345015770026945577314220222112877178102928555213819399506421851092196901147432768893496857838415118579294131556117118910799506093928272447500282234396282669085819718320986261515214201814027574311251364295271432702788570405527568893943353381193181212565034949594046059177370535331378795060054796511590727039860539576357506430208442875077773078708849772318549387167319054817613959284945425197826283319125648456354509245178367161209961472093615846141168195599159788956009219946344577176813203248634766670371511703418185202530923782865500698900349069459609630184766405361683013362665157859860595624410101316483581154828353187801263529808405128526858456853532523470274252636418200203821440631710363823322606957377251849268416138153208444293087534310678847551747184724672260327654276832527848028595325492589553250059636019325837720470723830279400642454529058073186020549111102292308272685789775652581916007279219664260973216029110981252261621544705313510558040285854426485966843638753538308947981216885862418065298624956254963352069043288973654286333028580122016372223032794619104786433794856005721690439785161701138882039885321252188227154391022958754863332192674812291865300862830249683735418309911633592987879859632283793761831425011325453789861922328422814251262385087991400735548617768029427687658774604563285834746127806679096272914960348817608507570782125678726650378303168476873101647857655462135520438154926415446932578073870302092097647875481964686826174439945765675052081816963102109753734371257168111284064266748610789303032006776836817142162283427137467871807422514166436443178205487633861483957423891617904897642212184622121088961584301812672205682521746030801711618991182987920425051859833664632648380489074767458393282806069196657729840786217957793328544060530027089089263513877996518690494357147886320923964100186352181974754836812098828304572369301325063257398984281654348118843654778550615536375977626241928157969177032874221033848553348799506935630737650160066502396756978987019901029450536813076039096581814331289644963504883781310748474715932572013711055043326557968618856536087192144982928856196138832058769506368890187724415850014079560913125959574046656070193802634326331615441816259460613621789167545868032563272488507733685326910753079357352741140307924953593464812828220853151641198616537840216232370472850832231573564191566556787293603707920612602711854886118596807289856100031803738056153523291309818125128318225796542165431180500685774869916313993393406775026001058539776540259034610022053049281598533851331040023909243837122799898400128647638051965840400877184212678600738720838452638155979282522775390070767039257413325465649458505399678836185141182246986831287880884606163214182465026039092722180798295117231731516838350569723323015140092071682179962661946623260756498734334033558505722092567525398450187697074505303246767443336304359495329637882056947836811462355817490780475604064802738462438624042727011788219210205369773537089771252838072196884906754305519884792231924162379177273194464227711981896340927030043354503142632698568899630173916122045736913922697567659586668981110327706964896064851402687562980830395457964593810322049380020472804889027686954767887792805690018531428287069480953796721977980452392931194577526365770766772001807615727947404634030757927907670408967994086276811089803829012250682118298423882017934227591549618157042002094954868545492736546818006064698399771237596472222956870312485520236164847250106233004082808254041761310057798162029880394593736716280184059687952963422076733900687461000854749810742735762408723950147555556779994370349888128197575400967363391390480015661903368102705122881792743917781465056607461514417391872018895308677799262803900548067478899366832929940988390081346396673428201392128725824827249344294209741232477633183896952588350923063856068755318929058738403221864412153890626128240661756464896066517980132212052855766266439194188594404990457441579703416560147248602160134520490295757860267763921948236782671860468299361180766581410695862405831309025561833048028280743084370066227526723570906089929098037828712100215949152069112003913150922467711845484962766667218002068772869400606901754889369605261668411035970769274716695761626033043268720323699135235128118940327031590849306430049763375290481025428497300454175146821340976986013791045284460807204664826601787245283755497528999435245936775427749376257585471929611601218565866524187641355521931965857741900265270176742538912697518184989288582310256790256380046987235735102926646598512583164400202610496251028294996638883819634593170246001359268479746604444185984091276390143529355888112026442365297222732275619309528841213159762670840521647440897776581445918837303088883748571777336686835684731690228103587189507359382947887139989481077397834036517069958380918375812389313103744746965136437562939747469221613707049179709908709863945181577354630650007859400288180959384548534856253328850447194192372915287891623862668111624034072784416956745443628145339538185318624318178379205186071182667695483128247948938384480207660208781394908103516955513389960271767152865007165516857407195914845215662169240697842892449229704889115428402008235703390380762932281346934428198864701754093671655340689942291049235370645067599302397895429409496363462656448510352626331014978003995391727320172172057510045316488095483369705950290456935528128227878332128076226703555896312774034127992906095083764420213261162415044290989949999959991444218225355927975480521872227408212945579236546026838124786621740505810338605139073451668406449125895980651516628854105681867371329697158932583321717705439236899518775460197257906433674352287396730199269772914652524003219921519348059677781921223063067298109961573557217564164091279044758717175062793110019943637423424277498145403224140360812700985522993859346026716809551257689868009277527089317016435402829896004293504001689808881757668468449159062425785781502275906810837565068317920908191287921002811759239820894401353527087860439689091721667883807837597798681590082756753084429546015882798964503124498755906443016131390083633066708549233344553170463927829591794775034894001280763616269732224391603109382671897977337594555020742560736180012408668251027968319178443732432492462819517013879890234343809617783460005254049656380280521107150703342052223889156183737348947161861776405695157862740505886707594436208986226852614826500042378515098795186486954663486090450000805991085622846718329173364885261912015063624664773383289328466220625955140891248522337728490477267844428078301597144034496354322675227392121816905837996400215833325394224428260910462975303106956145213981717546967066004373885058019877836440977671640325873315933777973871755802130692595346463341403494117287969427062451389449117367181000301884313516108015787880273753955764465451582882149874327573232032115697621451021424963210627213524984502827015543233580718088028382859268616625844309698903418284013130901535500571390927520607095879378674146923153780081899432612980656671390179845025827705709587786329887839788153623178377710326349286343876054503587294915311353474895172460549712920927708310986327304882400727936446870033166341346229535448291138724937242091698475190453157945397053484051111902196287795926933178021605788607785367644925110853213559646476498118351616349508202795889979926524046335189082113353843747586470926194122487618287239204139006876535065130259447343676970373795902116711565908235704993480709654690147583250943066460250082485270238595719703036815760965511007208512510301761506763843266167744282569425499014838432060593337651487619368094515284824168795488167064992542181221512005892483298596819169308842406423712593534564089920894401441228102352396076090412263182647259835989417756183106284456515100095573511537974250681676177771707945517876351900041626516993926195091021312014071222371768596337045487990995312939379758872221599034629968793710459624096193277114959026742328755124679641254743517750868855058622593088039625135376656122128139710503894693199276404258695814865953385454610858878355836272812876550502733822010011082388912433588410751523824093482590992220480875968211115932581594470167891722699500394429817373611771374336817789168243516564132923561904277174573374955337915843592516832127830590467970974087389659098185048866436042555222975148578615460947984117146046595695369566511518287259137537326484420929857499200729092822491098119706366060588048471260741930154939124157841627484671564577166689677212013853080249825430753572441960971987486592891755380072085066233296713296835993860869863262372955787280785205659859069318654332057303927841904804990805353714258937671145689468659228856814428705988893271536850529916348537451278767303294959902359117743684148545066540617522183454150547144291269389579961380213058406349406796596974440574025106027699740445006903968152048700777752253127359141409147456396088025135773723818551005459589953918768266971236375410932061628091789427807630195890867357819115807264682832510073270829274108837314526174258948480155952740784555644456443353723920076569666825213581143982295963497086318521195378367905519559390294887836034708416409206222372469861849150855091918371971586751079168084106591350058612917143961492406787863113388935091094941257958224031786805516046915488851628334435068481635700391545780135513623852013200172933794950995642753214395942057859947147314831859653362111035778131993865829949021401833496065798942058746758524447506134174515722888434510200425716763389983895031693252544989956583601173685723557662506303630217788991319931528245760888366555586596497399319948857998649944824282780464872172777369274828975645457729210886926905015899143644959676910935507994635528052863663629014146317159559732036957605386470841831852431909150753149609566425569994962431292131293837140450970428885821497187118622888874995884585445259400950688544754980946996664464457759428339554980980160465249610174319639529253002506961306137147449074027811047857934770685671655977185815384282401842258032006528168004664388557627191130648893420350714720567929409259977439234652547764998261342968902870596747730393253548136008711949918639617522659776022190918800345589796199796289322974966115504730234274921817873397140947403138649045482284308075529787357898617863707906286950722383098163616134171586838820777119070632378531033677719349070654522174923981239621322963148717898130257967312893956864157181921033382495881518780942088249061250407369500275077977626692883604808971133401935587820003276517518748744314726505660572771897676059660772422540171421994901691707752436426485149769253544209992857929904935852656437781013291373255796552912746783140293634743722179383634430063423807602905070145377936147031264148674393921281414462789714123218815622389645189287840885804565881637376950471744168270099274426874377266782288101225519333288612730542622381312773522296843720428370648813565996575488369600250838805745668222188679620370580161475083368504659955066473680132093457875157585298272367762284792318188158543653077464076332711292898850569291576488104207785541650567262605171514844735710305233752900697949901007779253222290575929681079802690108413085379764854836439726057317312667132991174659079228294987301087402290983252981025652002725438534937532816828500132727923316961823353506119168029648379380014113190544123844239406048646065781796989736579249390325985575139073751189679839640719667349268932605565825321430402099897846936613361027663403303310854708327829867284715967850239850094339364710284444046280339288951830988563086237116796803706063466101499266520884520624951396457204657457536126896134432028631560264381349171721046817722189678696367020352827763075578871826274975528203487493880612832007128473870423941420904982774943137535763750748314878632509981023537115031397469408736395682678832701222159686137116860896901465200879913373865816367728725603493369365441612886409104535036168273794476150186495376564581061310585680054254333782635842441485366196823256118083517187773342288597359863375549427746734341626076302900971620129812070473868775268433835312857834720674054819018550274661901666554515527488826429310914493759592897693232347256647820253544171084703698506852364907981343137873509067894563835345858701310288212119134642967883216285502863824784094211051909299051592492614483826712542866932975762611170486264159248803753413294510978904661871628130987523611484194873020947536079159735294776279109015286540997706645371446978462717047263772616864307870222952583071997199831310892355503648248562983570377934474701789346456068661479338697257862288229359601113198022695097993577660856641998271219958973710905139705270726655710408482971791697616274044685844629655120411023742564591212720548748339434502206001761822771325894352407259827005227284233543420768614278686655418223090112142847488141583923622333632312423877092035515537622629316995720916968423930300106568961688735378272169479627615420147387607711512219241731843695119040683281125639678009405340340972966098095371339011140205439556327407345881859458874463510808433785344718688807081550055355198850918927695794081020672127286233138072660984354334793695542451591957781955159325892216198102516816099991680119467193358625984479113930765891430810819822274027949437592518872487336352835411260469812642516773183555491540058908041832950516313725236092004624950339697583089106591505969800625815876875491437721082111617360237056925350373131338615013677426962564035318524890160995305922227905798935150487227537210629016440653368686776019383117513447835425040102220422275140651174855312898867166949079292371256880671757861469879844111596284014188276231329149842613598659864525146788846907727020419158502972604057121272971863890058352663266501231902814542078964651445877612592221717012211079251756078226499475664912681988726217393170155453123525068923045925363019843438551177347645411635927194900315382002854577346438120488767201309532656450405799498026717127122594520973902303495320347140891141426509515646468102128216669606197407347863001740351469583056852884898370896095949509475713965526958839058820779789958501270087593168730436912681147063222460978339759173974568673572016337669137985383941499277587857751197388813373921589476928657746850991179631292202637684308933333964933889278558974943673020327445352793825878662393297593984432659448089867052712566275652208025356377113434869574611440979107810017973439825048075868334364870847072600632818649266470589468910119056514910929500483037173331750965468453919687562388746198664391928519841326922258827867086594212885352429446186990278245639693857314312518844265397327937377190890944972816467699155739328604595565290436494336846188894917201648572098538283177683162181523081551181639354424713868981742515547423061830561029212117368285496144780929985124635793739771864522639978620437795270171770284522302993943524584120198869155620383529565247504778865846821882220380005528965375537783476688414845109255990865575178418002920690257635670194612990535855328478895227411202350038364811575972948008526308639464275748115717186484455442522501461441038574811265195187695391847024209800977556260051752209474612313649796492061272892353071270393207174491202271075335526726687900504495550050304147328187089934275082682812242316521854058367597541252659144109886252250235549302755965316024581908254932175559805252647527936812646990090439522966242739783022025338035233534226879012114636352074041976558957669774933383258044466373054549007515570392092744707893687641672861241162450203221206863868030021026824216732254885231852721792350871441936810244149367709233927392047685443660583025725915291862224382109644121719129282043257469232623383469972566407896859617512976911103235274009259057480423456925590400452889012808296751337402248507866573799725927520852023341746352237481522648866140865571464320136714209741542381458970241562300343895822505445382584393829022148389442089637314897481982571877775792329221766731879118393916937064102614915621338050982406168559498954117040515108984203075545186697533063083116937726287444856351895368252991735076485954986205069816419304020344327999509750885999177988802439605603738901798294376958149869511216639116054690906271176008821439574912138991859805055825613605192124938154438706359732149474967322851847080901468771605850078542857909957805340344180438113069354107208265786349094352832801540828495466137522738480811817420833572991981041390874871175625435438236585447292007347315240956569172320634442249828362979343160344455106347856521112664389364398564820877589168627684897182238922563434885335211201303490521380286772029595552017525417768183208807445456371224459019295534806225452573732022073644899770106966788645440689313088883161526290189497225381596578376016082086902411496980873425235254803668313365865457210616433155038398606010252467185607019718957558541844591489463296677760115631672396547335452357303392908828664173716682556615272596000085237545157249707340444064602769228497664108195647466587794006322642886870008812623422472871698319390795818686359403615684149211820122779313241109426170374382386886545567168026278237063892593282928114596132958358121100452048884313249265042070158678214537847017725754490625765497701605301589807770643589328006773858405614471430587233228231326554357429414778137419385758587291706121972144512057808027783203302066049055919795538155319070934504140975608981957770552589512734591998971383765699856834455431392334321447362815177983615178310792416624190849199479014971889151541244517676965641273459864315998256484244943356368509843356718831532808421721987194557407572899988866993077696677874182454758105509285171363812383394252045761236561063050975717767715798925728177950409849333701717195974171722884393963390740195602235473164280008755590101107880630280565700150486318644085161468104288921193871479984131697960572196825357943378675314317450613320583423310714212835598810612445324001420218071743874231720793324701530530688532121656593722235572664677504626189556899386579797310798797989851935464714706769432791762606149232994129376713477768641966566352826900948085630860566941552249536665966034368002433922336147601329370755765414394701460945986557838036669299493223063095135253572997547743507659877311983588561038614696817374270279046833339855114605510116087926232132086861294703391413622837769460027304337636101525558753225678183583397547727683311978093877582404173949639106510150108433259903981142031504210663179849789149106736397935577870925928771644676849382423078743889619697493062181223039385643571565980495970974433668132893192398898823902535158891097550896041127640918493129085945453627378345988828222024745198265086089546720475523972435029242334267984167021365775954097156210786072758738069884117871139595424418481603618093747099403881474985256340937843635521926400955954961866260312731907698167336295226359259069323446715407263470593734749706134467641176744568920812828081175640817006608758249639865634345085548180344518891683106384500084511508955023172297907617783714252118043425265800242640252942951822477728959791644187259084944861637865180494045958977615013390667486740551170794564059850724050244301740948210035166517211447932558626934008804825077401356374293403738406224035216996057177393165984997495722701784029741545562466061866161558516104066703748670140762208436808588923518210358835448547236814114156283190871409144965198946488734298821383172189133718492810544106183931716065349134014208012482997071035570457121398743618217307073317370520651837452468685045306998986557398286969946418316866997796736612851709579395048805751154940302876898082823803523179053016368729417562484758959533960820073453526180769124433610273552658916359010495723306686419422457276690082778460852517892736537264093847216446402666463632207337279301080617589918131772848043005366910436787473700934674350769383099882452390473243703673676025824670243736660686624795213515219604244501592420851591337916688183220962985708612596744693081872307466054003348832991545550985679669624087459052328956784334800850463877947141279365485005397539067824773403017279500640426164772991536837197394405447197877208683524209530889981682221674938869273689309996840018099955324308423403408872161737156834875737135036613411820048915448001643015035810083085115546216011097462467694872521984413994930833160693122851068085689322709388131501096800498909598705639153100989500320162213175742991681495335895962661992315750317506154490830770845436994667171146658539821219843537946801567098608282248533343933569092937477499826248629823328266451425125170153786399521508940567627743915357744093286135657391571531955217012825509983543336385341545024533137367644238959516009653844373316419655431071405608078587695275600143477763782455453930997162235764173211508358662577818747599370054901417487528608788614565181875319273361881091157684512708348605338642025901320756854435920611154594467231202797705604915744267521006940016315680777223528415104834088045075132813337968920955418006849149516858475452353142734094345971577840755147244035535133585869250933600937475674844372128802566606484207724969063460400361555465823130261912308930349611772509311833388047157555779363369862719392666179718294402725323782260689148524688018039873798446982380632864766200863090300017729743912921083906179856375274832455902976398841978539787954846926710687631973016956781589892650041532357113956265875332614820529783969373892184432584930214552101931499556272512190060230159448038108178236144258838620119312501756137479950358574020181673227176670810862073346814597220859062103512600867898864499916254830874083670206778005366086690586293345256306589034615555746595224178365030238543354611299406929292706344644100947567056344691264922676299702401663102185450813974113248036430096186340757863036049902425526119182184036463662695813497321055816319243761378803708853459078124081669454490870979988320177667578359343025361253399245823249899048065672053265455396762757700315601875606513771073830864354689558852373511861947624325826676710316008665935473551204618168741677979586877840537840098703412767559782335239817863731761002572943016659177236886947286763747771275941313477618012761344353068069277679087247378546388859490095475823168278439073160269273145435518022995121808870064927139663945023919559371492341817710751525843930592858080731008113947654857975285797639812552810049884931854772391329197372396541657563070809690595040134580872792293580874490204545073272523522318810071206053562415993141657603017711512583090997714358024677237942504006286305646895324934219054179627048055155510677847890315143065755273238174308950979116075248894633510648986193974108069028679281876456689550766054739824622800244415497024689323239739872600015396508933778356579515015506307588863640999214090598512879146374730667425578590995226681338098976593429231923049180612434817637402530458508507006248841865524044386383258911612682809776264109428749285590068946104180028062210074754140342391315130334870996938671612138848430167478234054225915231756237796681068195383936588019740371440091638704228886101930257968032238505768340823740354874529972242311393276108940818079614440922739135007475824931696561710686680077527915981426854612364180100993133841654601394802487304314721564110182058421001150032880379125426079679102990154217174211401459399477347305158314182078124455005158276946079750597901240654729830236244473532525973033600472598641481818515745317554542449019368495901099188815417361931991884855089308292463543284383546011734770380046470361317889826973386259504797483573544859274601199184944582480514832056223985789598375115481504213165884912958194961415179446718265643370773067689131908035702333773697483643128527875696213926336008090134918251354373589686981016449538478761488065143450030352907000753968808665766585104135468543248955346303421592851117744219375141263169691987469369626880006792171163735456941900624544809773898257885336465257888830851601926207914269304425605447573575988005874709935090474264142447471203767653826863282419581749472472480492727058398755007001165390997134342491730784784730305607004924529920782630350100482003467986180739595661653949279355957573867716609322701300894676720851567178125363442627417367082474309723550112872838812898255235312455216357479898229872832477224766817960514893370296993896217738086582688917945738377003197880983677510580066643836824423577978528595570664171084077053776780791145193229330165821286341292831782009671814758167677239018209623478935296134077724756695691542672463384967521393969249068587142192565913700217619028470549400496155075838985086228050178023560057503562124325874572254775131648124386072851698514956753981115740462845414823158537857036622427150578709513753310651981090417765846629923289089336562018882181879246124166343420738252841582584012207226876355611052970935651140384841781661426678791159443895079265314503639407226822058663149955252923050310163391791783862669339722991359092317239878341504417416483236564110330724999676582287577108441786671462852686388515462326186964726399995025228991591659225668066821945131377221036527373344870475278910921006610003261897278650914411231049784718044044365865718113552736071176583604475428103397017818481131336278952428486023830527716454427322875664710090089086697489377970986139390669175709892174415984794826243535167269035245798526625450747712057119808800322277020739064771235109210338153228643099893546315199376334237786176519321980604746020856614244168538188192643969610775328975362510566013927992602985430986541237019465889137603279641616170221858431266948910475682620498776585373856457317438430701675279270849429799426385471562370502298482213346888085465413679955717568233115860198822759045452207158483811119427781331167214271050727404195769901431846311333636722742321489745472078488061875187861082465167670830131882652714414130951404230454533174445797755821290870243678685177837699142797902509836290694446392132337639465488682517957680879383491550818688709726613912404663169747703535470263631039422998982177442152962752380746526144700584679985755919358878807434366799838472625825259192739357879378649067748243433516397949479961850377264981360216367244312174763121687904383936667967854018517832458346139403120040176321325296351938146527108422590510840559749100274971511055631762481587562302557327473932099247535559630004433090833394823040370187393350742751137044959397950867920327795823576614647437843584266947622228663309923340542020383598461184701355261086400919109202658387744029835565797937957644397585310211735764494781074824001201944581854908423161369320189826595802959098810268179868426092208536104878754436026931264688539024570041541698954598891140915057362090808314735030626806084237594269801411486251754935312148230939394711794092654178357693189304586983616125812533344767829616529340439364862256870671095174963188149258649263649874401489792971642244638644420732435845656660601925943766251343777048012446328781730583598541113934161610320970101924789920719272878817901938468195434882017450761631061068971599324419162256912026368122586993608793168183947930852525421759279043411246124920531562503136168812235701438737957957793354651243825795318765360679122708645158342176552636549912209472943361610645687148106611624760786504269545715249011168076126774892241022042040724330767290857508422056054972679667671632149957138377960222673543970123326882701284178695204516100874306312062426256931554902363662536206166653482653310418032660712310919591886354704723431536317501393922787047413236861744826609663223969220464111009882542208931981877102371414842549404401548480896337773662111162312309633917007699252308845866302443419549610735092084008163237604099015264188313313816519818545343870943424720805480729995723909193043786594505491677517443382598470295640926307439498569934662448929513137411121118604457795581735204525725965183757647106251803028535291540247685651184364813576079963307974617426696717465131677009910942867019994063329938734525403748479215408226440246896354250981125987123055844889900446622943347133211859718035960144054916301506759972917154536691428046639657305128483363442653193719489171833554724191555412695460282643723558668653603227504110246574365873939600543090184505426748718596289857764905396688241725097079723620992463771116295038615646400035149971850185120552659570732268259988660970471113065309432452201380700606220765231367002951551310959463815535804430688223944348998209359054263395832736897381360388667284154963404665327541864971400110888799390674563488205013127010426956192015993420716875392103075490086365984318334034904709324924568121652142217198154354408124145745560268355033115197629231436844746493177268186497731958446336746425798989397839414840377514892479833897669909179962411288896241508927862412769355957303860767853417667926366706612015891217360407375645299277667963515147271836530815608825235364731751662716501962039396668367820519481836205446134518560084295154501102754467324279147862132645049462701645255833967153528928604416490596055798770713384868518281798826272369734135355926512685234405561190579260033704766339905055877699204803214725112113236837354610259329759222247833754645278982825630233024228941113549433588759615896919738826274145202754182910420247742742388566036579617712412637475192754194495370472281239944852283294447922819912484653766992782709039338508333405882308949805727216174125489900278429241359970081208703018242910046161189995212076507116760429110567255510476543667931080128548495137792464734935522542490068806038603480368424799338041951508675690494054661649004738788998785839075481916018907166254572506254512733313927657924931599209324767762311961415933681920168667639819291908427445973043113319234711057159088807536305116894178781390022769022502398291235854577758616927851521253271547887491298139176985927158023743554545109544032540597973742942361273272811231213345056204763534610489674042591743053275486197675012350625919598488347382651846013766322605143591780947004296277548574727030465847649906003735468288904836228938825626446412212461198204276420030066262470196507145508231506913615357350163349950391502121126216077208876810692555363242560578142117092690314988421375283907891558966451050446306273166890722303016057579143040445409056144325712848620997430301117344224972178227761458639775995572575490058318249182673896052688158662173908810937206667860652320033531782508691558504430757404403347835678103767193858317956654168677243406698248746878149956487028265092920332597012477725465269034426726057566509175400802033036455701091912068080053511274930878173724398046132726218735657573485614316633757931829440017764974405768562981593671749779932855582436101892870577874091359783861105245820899429942374156622802955205721893490179219761737148192886794945672963378608894328095977065321928238597829399236208398397672449973028020465830062189686582119776486349383913412805119030475654448442851892301548386090617806125669450585115226779119715917173681086345352423110560794015474171772617290611352977475744194030790380922960482239243825360672768877185191610912470183258001760755601578205161772564418610391972218613652771046078613192160194986304996632872018892481225365537359792262806392405497235364015900704280528976886597680511402824922994187882149165123406470829706333259878442302989935216356948039497026804982243060879501246451638984871811441893445432914494965410030027798941543432816142022404451978418621800266977254152701394476457108128137526648752792620460196291737712924920032583449796699244101466376041219120796541175179591958444484773176485644869401224705149604992135912741195534678987744011386463514960587062262173008425681778712992467174945975285719301820128995402350767905386129920561882936557901686106999045292385893079200201419421246727067686452666600678665663593214648610076284049098099253580296095028987840213446117468312012608420752267486304892743004884885938402051226898429114155256167734555908177930223260183758198671446525498387760677136109854158145348989765952185464697252033303242904355784923520671115758199113816523759942887188217417195979792388963351099852917995636786787361640988837792584448567939969373783400197679786545830963021858159767718650928052822722202867121393588359197112236053740217895967869215028813966979128025283550443401730079698128855807366312805044185671472246895248693567650115739963288415202999758563210696439674371596020412304503429638929259206405299123334210111041781487189679372178747836962453339402524188749554345832150151269138428180062845475383955054278990954136309041028601068178179097991611074065449467636333491052586606617732802600999453914656857676333821294905721538594206300427463188209628349111750049553363402983335308649595650064573554011455935800204495220719087682369636388463414320460167962716844853107673230729117133161164354011807337499231218595257645952221692388110530541319138951619758248425406630514905929466707647864588707867122611343405195146440968684697970279321874504481704150503676920197403447181745193759559870413473130105386514024857624498648481235880730104415511097559443290425239810894857544035573200522171061207095967166693858904761944563073797124712297508192456281795210220106942017845095064297783041694801301116774021607009902191038143787790661640927972644889525032527635061489197300234623409153545823577347904221156803561675345920755834302874391623172439206654959280715019891334150339830544045569646420519640052647316139369022417048313899725091871419129446647369859948597762109124213997395752583853396508734602094461434002810876338249108739533047807949506025814947787913567831837506740324462985525957560996102080236627097330358054170669883802085401913719327453446122127877854608153834264011928550711136509414729373212801435877469466761407526594332232230138028321157536569839285739812583918134149096909781369099834670710499330401785044512234268385275033323009947600023061569665376233593620933540664905256043626689894680204930547340666752801425306090602616387431670537254800777668779735778428400754917443985626018092310674310252135577446002861836886881493622222869252394328690432942211341807818517925118684055799987501924462217253122247359616915610953464659614275352655828081006115883129406519743366384022331398504416693618860056488628733160431889880056566256807732298084270711965401598750326390906117495633940518390940089622358546578885854146877558605555138164790532930247635483254760991348296699011238340405969775474069450228299469044823492338543839279193194124342664896117245234459029165229748682519404435190499944893703331481447222028659128752901294126346469630636588160243849648070424846208965707138469780957220665954470907092049721828953489759687530945719341400597713051496502498386170183366690254040997313076920119235837642878347171348377558065331322938223106524369725182493068743950123583591192407079589193170929690834430186180863222350147362371503211994947165680615212067046277541483235301270127003595307687878703426114785250128945416503827593495069638984727214313098474016363631920122302301489407069329845687074592903460858796912946573428021671318449104051378204695532101459827547266666939837054735020714701632971899365779055985544581729627569801391262655175926492096931651643562943545856546240279370248761051362027297692007816292410450916455959377362499419495624303091772503042273418854182760674759296510135102114116770064884718190676110830506380653713856522057015265267717446379307781946964083539417721778293723631111343325773476614703060788974330229179870744487115404193094319982770671943650661996334716906253363032409217609770203626684343360553758229803472081970135108152512295635650574480331082520669033465163380272515924167976967027124290357180024326759050527916695063774469731726032595447911336670800769587426918566125290418801288930391133232288924458896627482769483341147268839821527808747489728080438523695459216835837131650653972248261256037085303836618983069730509420127303120557321352551526782828819765395275108696607793769608573619213431774973401026082946953937889655362715291001943017948376961460135532080187023690532911233989515705515539643656157516012225252886044044233786990410031194755271321586914136955560428915546114606062656252739287566699167295411030642784080305980082415475645117935833200844397236240326957382015480100116982406371988831325374972348846642711315564256981759967595192068818149528091871148988680962071477232103504782867602869038429349915401410335582137112256965402748955649699092779512625716385706835995573039908988295266628964995631736983748197000020466095055712459198529898521943269711486528213347296550106425343048452258512210106533501045789141349157230405143322870815600353923403559168122836925850725304088804302930650768532628327041916076826512748007451352207179691595377060792152250586058961847828387306811666034244055316430660791677288819622418558913239010756030837855122271298398023541813357633491536565890357466095101815385616403393517746014895065127642872397554598808382075463737685019865842463692443750688114631274028388374623905092890249085386089858006790931223638420495515229848664516559989733077396107090651836788405139564855255812737049373567915155774317036411608466671885391279017029924416011119767457747935618380829822116055055367418512809720815225793318315530259171894628705995745174630749369816487185540064653957717518046171553506634548517455599660722654187086123694042640926588470296566437659044002107644475016635254634931045518496983302734118573007050031508479838592949454122301011933175588840185107061636238554392121751039244026087999513558131453323773475988829172983797749786408650865249652120601800395323766488957999451912889305011608162570043006513031964781527945282157608455875764361805834135670862528157256183318605747710271418132841798271562308496179389499460538091790562922280476456566581379236952751443900558428501051086686567958842254852383841165404376309629753374450767138622035293462475676506686846393170339631359122768780792915745041163841555717038512114461434001688189106039235615979511779232670013757040015917001186038656822293853416581205227940191096364779658890595233218322522669343264033027916193413209603319991758065160478112533126000768662569730967157573026179059357008423341419355300101862639886739365238706477366361377350446812360613431467054502146683936967441878739058335685185628569063521903188636327232171934208610544859688627773052578594320257368184006063267075766746717265900165706584232374734062866299618784833999008773745422420921123545833962251364107743260614627501350837842478014698701730916878832786820113952762665705267016182690107016798945382776033654676855221972741547488047099133402186213225613564559377244199032347076961514851041456198162831725540981359476691339758450876883243096646676167661458899865786198973807054021767739949678046299092820832190837260172539487378202496255891246953095887753875600923468630681462485147889716822223249073829191627987667114455129776390210051637480991617652044297682691318931378498508050006719258220614587744520352329242305174508895506485513922490218240410477765228601895567077333202269318339473797839231706619202024262378472989108923840815939003151426298235215789024310388249508944599276741865296121232985062191763596095561378682439254859366281337567830721852339634594345939174147254648786205478935478360851228528261272508948667599102084005792333014612144921400477172210712221969168656233628049527836704849258344148373318347331138881236017291013036224450856540459647411144417766324978448911188421223350684236364929665651949514081001880239933934231079781839847507780760769959199801419434928546677572273486241964854327066881917412522199956868336171834048202480784423352105969076960122844959792060985533607025891278485662416582018362757253077223852552475606252160588695117347288384785849893397280876491273721352466351344308486676640208952603786563931025415387878274342999205752826070802526684728920170228229576174683528455360946800445976699564414653188365883857378955341215407391113444471317273400352723513272640961064993881943560119821245756910571445115644809413118047660542834565818792891315832386192854397324877294375054029858878124686469562212563696660649697735112041508694532406399757945080034137270118310211420719132023241989720654488091392616211465814846839622853834746616220110621398501129452010218386865235334654892580558980701107778411193931038941082026425091453675932501920617141103626254110676608546898550011537885151297250164465109735870727343229343026861387584446973431460583066868329563911301284338509474563133607264430487527410756493113128929410358886221050471083030968644737280719669696608814873930303020744755401289260573772899039063231543158752724846452301264398781348327015980648853089535650669268429620121503719265378025173021207662029658531872519176881597783677703695773030287776108285626768614835168094649155951061551792196299986246038130431694235917509706132358482064232334114369454516241555258952570655802382515412830008323172906348206132262739551032908092925504249251351790462821735325210117053931676698691317777876091960220498031721859043457308626930475799345034031026188075086384669597079795050684315649692689816438148520569664076371293825077171675016676184446925531226977777713072256294782344030627932651667956386088864444994122884413956457206871384929690516340116067221628630117223352172391279222478371685610914438206221634140888016574914049136803526051100595522119059209043191753981811153299358497165941691277341402214324604661260049406862923585474545562741622292672954581280197619375619161275190883292758129262535414749451461955234723373025415200882332597829646798142079728387433803172211776638616283804044851505298928613381800490144088559217091325964316911552009126152210380653476948180013888364340501023568455034272196005677922277407690075124277523189482315005061805684393137899785648348959254992734570037699295262405756815755893241897428056489102294617862912738847006338078633832250021228367493622852626746955068896263866271415981020159086540786956733458863287926652929305228479018805090553652573260157852058363617868506758852151618970060147315945477433581013180346390408099179165329285791220747757217599616825183539889372763715815706105665932547373428039292771177883246577098953355191935315733954447849701100772863548639158600482002008274422941075558293461116382643228006107981918688913829339730696140747242238091845527961971584207929549610527115204517625297181250239546264695831405115695072564634027587816763875389347331456795662397276605666145878278258094990138959530621302520214290119021122459676060529285008015844000694809400700926879383159192531242346609784208227279513469114420137816906456377272166835304079471408565173629980067708406870283250950017552674452548929246093608224551214829705670794703162167626992813415203874959855384442142390633773391268549683989810714253592168187291300877096897623703092714415108679139492307063739780409827662798351805965500015307477810539570243546599141837519169078242741206953455212554778817280704804176311012923251819775353041998882089986000121275933662870252902015049637747673473111753402945721887942215993240098899555707769917525895717215123377775788757031113919011221973001064896345724461938501572227439529855873515157846612786076898610096949905686666154809175377858690036449756340083997099018930570334790426730966598838373331104185599230588638739737774161849625523682517856901425253718120172670360622010325803927746269268281091735177735275972235595113859960777708166921392896732333596712949991757736421656663261620376264580097199596738900731302402403698490260375001465642935951287226692647523190261796379193761773289714515672818529730518792625632189899607293880052061338217967209728884885045339933967407830824185684205592459378683619622395438134647640690158922594719181399018512230968247981070196498287831057513309605271550718993101221916060950816543042955817127115201931948524966217481973246949505269914811426219738534001101162722484336928115400823539489345085544391061554486720072086562063325027362006958978255062686235138887307450882344701129716352735607297313348330134398750816396991243573494996276353277891277280186996487988406799830479803979121328545111331868782602336542691489069804528495180478271621098828227164277215721179708524822147444649805679707350070326184466753492397790197735024746449432609452381318894735316371681234626545951669523625860052683389521782153982065607326491734880334823272111633575967384909909551638655854004958879242156778019114017172047367302275298805201160837722987623567275092848610216443358568882262358929701382641814703511771076890301506668274494253339437089989236662990059737629019722082854147960581664938636721642131848680986309898677277232804551220662603043190577373759403742501064736100533708949865020932586006689980523348356610797765094462228824546478399283687099470655624835901758034134791498560937268068990677731687381235163401201905878847813987250725281810067729362238470624249759479493898871737782029170033959569697064386956811524510523324616679006565918637848891224111722066046646386702322734343368817791845740015705800298910134643134073163759011826447122406539529948817368257881389367175241950240731290301803317212770433146813526202176960071166497571135947022562933813001092137871478638104119517922746620849255897669478626015963568506108683211263309602661673214431976268795455520784596204015078587399661749538858006314032276981718910061938197682105852666096144960182939592476356785204549796568571364655990758656646588183794303024563900816118789621222306735479549437625136749626645145395358208906720773987804186336722482752683422086835589668143884631060154616792667948198731194043602756137946897858495207927662935778653725128450960233230104890500397699872600475910447280526461289151198214054722879337953352360037906454383549606152689436560365749176986513832997000561636230740362340494367874890888155120658014194372421110409610914931326198027538390225737199895089351427306994568078840242915229236936239153869015124465502111193380010100704035958911812832226949593029966978410246572376182224409358127223190400270664269169313700180058135162455477058419054177678195045387427973948497520442819596141664170359918814968195871865105130997575773300950828053541778452479510512130550156510273611976272680327381530117348752831359539456336783032555340534175183020309873353495940664082552899679893777236977025822277455050476561585574231784237149617488269298409131316129878256984696780525140962342657592566820057606671680163912596920762306469213378124986507653008364802904251539274393212483806083731227787807733871244508212697892028230605079538443278173633159625045102299171772433669725829901318590909705646502433385368112834971009781572428072421290793897704055721152037036071799322043380065711964956740559368175980213382829073362665479136671502401262650018566795334042454499859030998860116655544971668503769163495008149783131925091513337642910139976654845110277197135743904399744837814584438935519586164365632165601850554306271562887153972732023839359297961343731014253058707473473286674955002039433594540921843193141008293129254296602893651457697097896159720621330505798020915447088815109275644177049251420628109257118922786150259403732041399895498926876788973715534390743718045435675973598163556869721373548323557504365391631965180195330042011326251344761653133440069095156650225312963462006889073682328574852031690222907774235932849146880331206093504043682107886681693559176452510524012520188841119327415427460758844544663966654409259946654706341666846093303125767262615497281703593483133893487424554939775811356928982619834276319025235132236568834164714046822004129934132077358978191407928111997161912401741730617376546574394880054025682248017357717697751615691858871722924015873673721104561925639642217173446376214347059464990943122381785923485918654495132337438706661511390550168094168019755410803780580482289626518126282786920182971235520883742061234335819103395635769960019118383053085345281856807188986966937606261234579841092744427217095840379233389679655836295587033958016805948892857632062391501461219125565578784342957495896267738904740882360501070046557751782112112106673412412234349255225516451476434656157875132523358745808379726807915879686920703985981892421073469478135113684186870357282220216773528099375651267108896522488017628814923575097918634594236379055912563459353538291639742311300877285125497855399874237832469577482957505027660026890645940600894865846606359690350925751824322120604563538936825041620904191201691050851781892839508807520539915544815618513492377612250116907616555340879070315079438104402362933639185238966796955955494886862481132345084557047204547927690247242587467249264664302508673714405833665617805290840323945094890133910678583815697052702951185526058972757500585166547126988143895456523347322109664328473656121372223316458751785150302766572119289149421251329857520620393148903368202696180038906863673422592799990496440642925391670088460486946576021038495631758358815823204701747870755980633368989842467384899255186225413544654149580774930688676698911059499216632043288238489995552310511144342904498105688810427697636909744018762700251228335981267361672617115351627402674711823844180237052975416181343511122747163077131573064982493693070168226199158949534697383253370608268541229761207163726414170642915285153188600528922694599783114316501769565324317336866907950359649599913334173451519112251622986115313742603992776560161005016429226224320819179422491290487695333589625473024046186849267813422713030761414760166669243113987231808853602142389461175768940833166647616900896611198295208744430259638032556432622467394219775075304694155408320681618161599657159063935037808260399183681150664500685443968979323431944708296280032629080277674553682680723755953756113948108365417848019430036721524526368278031677751502865448982420221174475879063347889108628924685500472756984577938661180431623187080949655157105096887916562336146885324517465536509283671224905861594293624423525358578472486146342948600654598102398621105669202905234243669273591489710045097202921097800880579943326056226715662341239800460728283983177878690908067501188200997527366443762157232462364077013635947716798842216348656069545135691448743241454913488527554142092624970594181774056983505744706423687748733032278791496596279663696208221605881065901617535229009590455581372030142073058220329244220368522148171786742730048366920117299973250297207346564407367305426121519643039180566927702634433278384281521007179706151685335527497930479836408632053627765818326659477070423420742807503879306480948287457210106077227266529392120522491047749714559904361120575921546563528205898307575132759086969355008579211800766057272387394597922555963259347361088078340536392340496764738520012855245049876818305296231127295297355194038913103848125631762903274977548736907225361083559753350391872992237425804544511929797257239202603039274211771431095971353342113902771881246718399323275039626977303831998801427284441858202453943482552139068980551736312217078139275468731622936125056934562775213240167527453325684700776263163840359016615320572039876890991660925661706329569174826285324831116266149161675182641781145329878303958247275738414019156992510425289875766935871221311611045386769088196679081509418529639076393123670537353868495441013322708186820521351852749021074374665192551397372674468431428238349663568929366306206931154605442377856356677169524447479587647751904256627593312680176708421920967647155715245010366044656888008304371449058568400075581797444706732977723359233839235422749428995369860502167084136420203192396527677164010917076926264242481641362798278802773530317039924379900493538752430075690238155995083702632448588107079420345752399660287188257415504206995714429853404244706443209665471724763254029822219133815231904498388587916331897292718149228533450592177713375831602259558905629293682626849965138762072228732836433932138952461938208708488263496658772396962440853383893119364669476755548388806004302501124322006407671557887601343917047905207367152086660022319884466091861985303096777716023809030352425207553608861349307729513785238738194242511844743213869246651201360201048177844396471994268485809009324402592980232033033148483010301859308177134262394145089710705053806890657875016128838581702145048768500216847420202477117557610138057384994421157864136481629352840962631255185142863846880061732847662951678403181523808510643894686928890582370119978169537969246928869007513782742749322931638889281714427082376084243486210112311942215974887867649205594651592948388705662505919530147435202564210873933024909766329862818338909578978962462580730953670590121769213224619568845903759934588123782341305329793447102023832355659896514556161307597694327816644920683774001136854575714824069168965975529599867638791680544078610753861839617777546387569296316276695573395261881823343120312389238470264923896302951385275651298278201786897653945925258731043236103527004307634922543082538712001889353952586242369341655319655350312111557523398568354902102410997610959029934578308605993538243976204526389319612760932215818627057159153497247431283825788041852501278405690975312633404447089352421633380682334946737930978339608199417645151369284561297091416636309634500547584539347345569825431131727280449681092126337615879612838200225859795572852694458669595030019839039835133454047996047559002374906284282822429847139558612569120628223314610611518655285881741929585429947945426339639460100381281755520403864667002808444129710498480739270041821997905175497865785257862721381432833447269073186018808230545455916088336611717886776567127523502033247566849620582700321376995656147132951884043659475487025039415520267744575748306452689178264804245395500641627005004782191607332860882327632850231419121197917731565057074919582805763063655717691069363099970700214480264533764810432884133786823577164988437834753098901699676639718474100895999244729195267566205753316322012398268194097474003952060551094113564092522064314753621052751231933141742659036313143053811035049325547686889672977994743218307695216806847244308175446762116738244037654138800708910213916838113852648067292664958704778840670045881777308382359553570949678783865064047508772618217314288121527260141647046077375116631296462730810244208305358424382412809585315289484211944015770767579739181574272516718505118875066698533295839769044875236703483041246922602260567302672478540863969836340052880415889109621652436541193616782914161439757456798495233122144623991965879130734179784848860295391310108226588545197584741647673144241637887673901896746092238171893996498920014481598633826893385257589824753599308373724050914010402501418364843084549473420275862322628835269692096576690198042380085173929349314679109432584124156277970146038521874246777658836492579764511937625157551309558467621330193578078272715912086684856094054308801637655727182143215076884804551751343417301018850154421827959183912329903162949803075374813542329863539934919233308270253993182300723685983927996989385581082544392779660047022852587988462423052792471603363730902119057526018738919942756083809705633198590058465930795866469120587553873703695624688282125165766983065426374813789373881845301417138507092267757612334745342774208719892760013096007604924362312032396350013722178464213759203068009234469721630942868195440558561582262851680805249636282915355190630033776771223291687178328015936323821661745305383414241700272381274400012405086649137554933726249569408274022064051456654644321957758605667379717239560440542402842410425570139319235845282946865160639835052401931280951200007083541805258853604489780745476253602597707078043002879064942804207211351534143149840995082691544673068898089994957946589480768143486675183419756157443992701202546205003965835544360324708505380424383452386584239617851074154762566633623673496707025232185878441312695939705890727870944719850765405588882974700825810006174973473794888068666365112328666567655058684257726466334754677079785323945185126583660569650991650721516015001659486184428981012456281080144761466826879595332664820339075016723738452874951056715170022632098829336412467818145559222912151794286875993477756218869926415165576160672682961066500074613051750576982606930233891607462266844408537368988037357776435726647264987325811034162621439886474542230325365959845211401115304593784039208397198258962042398523920986828171716610752968164968792242408557195107655206321466689980393959925385485547924351730293634238208498465691238336881742635171772593115609672633693572204729640547898139429080027659049113376657056105906694864240214620865008530364411966682738122919672161943729447637867543666670669684407212144290281697049709767256579227532268962760687701940623003426171425378397392625969702436290502148033252955959106868039450556813132083878328641378041844244151317884442161538609265939366525048080459598955126746458071405786958737489965088235984321679587927596111748090383192155318191840973671379545405430408989450618285290091758454144120696715052953451228041064270127925769820475573269982898400216282541810763299628537086957679566497900708546001670249251061381326480995048191075206188659205768927584459836759254297581587474776125874652995731922859845596582559232050577211418281923308986864517093879275670549063626330063227390355882674734988907792554611322624466086037604390389934362625311553480952841358977673655917587422780825108298291555845897900090766200577301403626434177747288669856014484524167456391430011913839319803039077973670008129403510580512993394116460396691646028996975435103524461541757009314121367133433839620246620775336619817333541369377660639703277332835588292230596541406906952824201159131245716335826950868955446898939004039901031605743873228391872375241146788937212010158334967268808874132753505983564289804539809576052776674454711685442359933336351114244468414097582034276764699387080493608976032010386288936743507768270895757440245652577987995739954666150064864849971003524296449117836165898981077825111958596749319333582992759251753934905950073373244673112592336019299316159026150394072361305342879045919193871675774503398685956287381390847069580369391650392391338310100340798285571133848005352644912386197917256214192016335549906129994219055083971788229382781300608393212856197282028986412224069131093327107668115190197600260961037733362895341588336753331121054346371463065174625911865203250792725984187946816219910587752658015679606766305112176245795155298863498655903939571123035362885060414037787631127167866769917221492149580267435276205045807615320775888276159299850209942246642395332725855801928982280153444361885521365298182055361756540503934895824820622392881889370619352358314144651472034531410103428266866776085983010672960337217779308190819602977472745828562640509183593985050767354881967892877445215896275697766428187724892090445697070886021213777115953145519296106828931667085352112538920197908700860516656300329120736517173162410590087685845514289499708424430833245354099151352309435160451389851147063644065534140729525605828930084500241777498591411252342645234174093539283427573029405794358841063959796665630541721710432408835640662900926213796427551691377727937112809831538249760140488703489243246052409176268936799782935169316132351800621850121055155539209902849003862210967642551562405084556647392303217817196276552901659604354544168550163426971405923726765305046874518660117166103708075705312126243799594407600421215399823968314833930897460805744212496622378627766325831391551086324310717926728988677925151674246304089340514423008362006772900709455621156725343600106432320311418561114650126945058119920145572540983854125215995672640212357742185318122692971312782321031284426915453913969489768411411041910524113934888137468960152172555848286663630550984504255094039505427735216179837328553564578041392749146686624795575997842104412337144524029458108865234984198880070220801470453689377033997485886679005282429453740903970355911975014296138104053408415147250382816698378316771754193638792537165678285031505136926807589299127149042920069074784639431337619773643528781961829706829406783036368415939706003081852475559648514576232276179263132104951574877364028615538816051904685519225466642165415058490538507326997314823674566940871229263593542113666926229859764316063458446760051754649871712721808040297341502986881177086154724610426509850118182133922438829207684802140771153167992770734888591547840656653207158341292234317421845401269393410441431927253385772892122289214375896746146018456388089509109658973761257950777895185624576247196355150055790034015547577468994839381101683505674491111805957304117928119086881370773006957398551516417767772472299906086043391076225772546874992529115937864162315142341746565655706895610980343623224934198901094686834930450016644010644220004676087207882215204105248033064717127963222905994857669948544273981246795199639783854619686084607726691727520679044569963472984520667474618436898341807362067475164598720147521804035378323178111426560833595899451405148850170008285788253268747990673674700578396289110487318724982882476804355074979084347177308063282898878255268641601440316076347705214282628438162314552321395896570792657185532313016801319845191936406165930464414186578661628252463190453314960685114106903302802136910128960000514781893172525683600385646019624700911305334359662917180502772236611276808964160419692553578426250775000717054806221099868892616327737497043498687768209537292316980126517263396813070798161156908116520853156697929351092855413132434366104128338926435099129950231602597523411007101610044085631717786773250353500229368073090619182578900424579620349466076237628366156926582830398344246699290589172144367567470701696243517613950179021275339838996044491578798060936303165396814815262122643542629747372957611699637388506342935728010687182573438014356322601526658929940535201372419230790030442465287062117977864253734266671572882392633773149002370442879880793752998984679965324334484092136913423735264876813600011387023822167303941670939670212562931629131253365375367140497713890888848404332548963851456255378850593834418948685798265052007585698507487811363123023787405105130109570549201116774424621082569685141235183101656640402016408669010970321989839276240443963554622386805958382800734220198177174963529445420550533526396699831213285190462671812680406161519169072017537837892285565136856321323712837994459071828320256081157333520654209266872609841442276453343624169284726820405961138817774374823640533056778757021893342896602413824425348820705051570071664496134421050814307911015455003346608309191325730120052736115107204840547563957980207332737285326911969815047971557507861491945341122715960772256230134223303109013628722578945516029234918279268398038515960323886454783025282862706601769927471953465108867109061277296627977429444752936406444130122306366413440320535703823368318909611221648017658029489296620535240172865240887282279331935376438747352435557674988055752774784500676307069523146528568836831668289263290984723985030746161157861015989473970891906165595855293813429449589734586400028607201072828008792743821995799518014100500183897664296583327977831827951221455763996400808567954890018305987316434082442105293547012929431734574815174531844873631769139697155710409356657015082615922790401450626160198067925464453874483921825515326360339624982296754131310692289030391645924300496011539847327230799990479948858635271925050851711500299019122852112329921933641035004851812981858449087506422339891600481588250276886867394167141394187813851492941931158059365785709365427752586901047118548602531771079121138090807529648832275650217000454527837965316017024875376163463048443733911328630387094981692858581127692284883978250980659111462103221160862307165818487861919916666401416080020757417362332813299173459780232612681530586924173298508109984497304246270526905024820898703537229406925494783138234185277825728978462814297034528680693367441239057644873256889169154416268377853108100445142947892832877258355401315610896948323685961627259988645051836013004396743320636870083336404965843658141992587352402719013406166801547137736589686225513109549189162049582298903935525780100089052819273207972807698010639236730048356861735964900123704215033279457122010878968440911817898115374000255239424228738266081060389206191689529098691186217720007510830788456806443291416091568290791879491427817485071571189147835442045055961379044044086010455931339836289987209115781424434075980413822726362674279411237102014761818134079213584180396213328624613225938719445413510724183882890180778274964799831147355269892679237226503945049943768318381521176087365809667505146822022188842598122159441754152679839319038365515074197582828360268123651554439426935585487269265235315991260977212376887040835053725014650458799218355930003095934674082980597080181625874366609754942682287807708222517136102401050610957442166116341017903751032615882332039292455662901684887857865470231472620238938932419497865634139785888870711296649492893109679444656049777841474065868455190235747259898009163540355423672385417271500276258648332855919087729632875852266082963213854533717979777543288420613301244410532921341794515868736137066405038951280844258514653277953054546195003297556650940592414432523115956825949340110858192232792040872930853794929713652749055356953225698076102568003675147979049935526618309771274941181848613706354257173686470801983178169637167260108767628794168857842371076071237825372238344339157510768573725465413128226923587314411871943655407443338866715773313199513779457358641629507576635357076863251879603898049440830960929636615834606485597685665208174441750000129888172527289937515069290717839526464426434318770576680729863681446551135683922764368759973308522798171625782569108220555118756412394374717992076961651131120462605072073653139127003022249827174790379454583141777792243155211521616315240452208242052184755523627882693971315876677421511542279895204363300884553412530568646812674570394320981496414355922592241502403477168818923501147250525519943856230394267465107266242880238782228670495557378323814702245906484765889046605194028433507162476675602852386927430330869023383700835322589531634797851083090422402214634549965285091197715461751140192127147807435405435047703467085877328300433244966282393986947501058746202944044531248812991097640265595238644619069790226512850775502811680782124618442841046214415559055868453192050664724508815133097519807682682565334102912167781412417489829173884990682718600866474637497812454443813396340524498187130085932783156225155116433520953057360621821313603737367054517518738276493513047172706995044710084877862639229464322045086737340335054662033372853792365164179944602996186318209283972745412911332834061766868648462348076583844142700127667191474362204716643710605406480502441318270052491448542705152734998354729310910288504558566967282370160461618146914280204347961715707473896159581521919607356617114249015686049688146270981019821232146241977245446635042263808587346088345787009856264198497427784924975295646008527058986827680021034572428412255042554759726648114840546125377945846234433113630725728481006509751147597426678747968294956104197436240312346569787522392567407831312056154200391043421154429524690838805870994152640772159368333221707764546703042688414978722327587819351598973492128972883119062713880317626489136669395918244243635140577921222259748745261205999730468268023291213140881719616673654668985947696254545761026294881094950929860323090639591097055153320961196128848043969825362035531299266241991232798143865279422878339469608509705961217618185238990255564628082167146319744372791709680530205084053288403346341069245292577619005788257314398212354204897257367698900477823881129701806718873946162414820798235323320544269767266136138352612489298119429062524079396841297852073869497263360385459864636668522401225750702771156995006216297353403874718560382740641972420104317136102906073790948048476774744374790691576782379102342958694503963083162567412931987995754341834385523513397304384757293754626244908379404755827472278318639146953480452808536038719904603058072342222221774335366261406333613297542350877882164419378034374263261025265487242486025230475337611643607361106643462168677281380062724628775772339958431529733771533733380773301041376643037619098422126010984961711617513930125669228489204791179167522122770963718521082123456031913192843134966820177055102072069785161384835511262365749844982225802516162118137839211584019922797511827463287998873525375825088128605833434814485546082079315856759358830312763450599911171613018817874101317151758856011016103257993131421109507833471687743311262846990718829413438425150676207746477064554555983421938479537392350469086948607935099239221281459352032763579545113786558709659600774170362951215775270087573610037966294869857131899014589544549546918573812445783322733111493287421032029707409842103738407401409105928624359868963042394584053654178374702670804498277567625308362745648297527585841566336668197110334967036885564259250811736118940416022565266514390336227025982186565761890645704500602224364296449922486688555827126499609296606739467232868974233292694214066079958328940031321392112645416952843301571280305388885758622198147379247260447798802318565561260883230991517898263086167392402567194957528661745235120743698575536694994477694912087686654408101066172758867009155157909671098546536418125149163741922685026017379768120011465512143437429963580297433929129457394885867746962622758239492966308349423094895818008950456305629524683807263097925360379590722598547451960468332070795959658617133453286796708485965562354583857489628444668823358313067454954947936237391566989084519951808695104533162270654818889182386047526922252022348894132692800491474962979922318078148368025708775113081480148073307986882034061311555611172389533605320891392211876336768403251310725603685782959953799146873148988927977533094956835634072729272119951192400247086657190309769880939958893481490897879180523069603681083095623167315967576135029857464778800320374722384461820245209991922648911901235351687930956734501185264620867779843867993352294222259386779136871897046324770996427117937388434616493440346837579102896663210268329880914262811544152565329355558247682075160430638962607828576478612371397995022362145344147381252918881639151679018552301759038674416086622124777143962305506148534320885167565715337552336458158836834601633732831767498746566743835653412321751951905290200156834823101814119422564295405878929294279037696403628677575689186069656981358758415580226866401318919752533741389604599023037419734119757832643802649141179243812353174715874263839477705406822415454932413910581667517204107071530781668972704345013141726075560265056897499378331423171806673856383161375853714803707228852049043153351808177893254787926336771344315946728311390725486200931819366463879893013572889513376285177907406495806442285252361468289903564298930984727967293919122472568965131593022265668431090236257647714047116125807254484106864834379121058291290580129567381156077175194408169738623035182139962530554100339722801762040481001044574575490758761441434032559335998414981564976611287324446470136742901327941608554528347294262383898234954776548340949560306163849313250816733970779692998686033845096216609310703704091825289351359016393145696834157672271401746547117961569248543392587342585060897516015081569923571677480529494277876832885962722584323305573055857319463398298831116332434467182652394531982673065240530691802872142563186015000066311005067528732553792287608689433347205214176324543655660405987559895771408558625325947110849562139147469421811049425725174937906120817448360646725132988622726839498916012180303933383042223390730402198636732426532652135236092874273790371694835950634370756134869468347784570150783912591125923767874871061684907829774263098832599980802786667285774296469099835978305368228429973394735149785536841223630997192350136443241277123318808837095276510646430171432641958465909124444623911427894574287800643353679275545243198892600720602871753207529213422205999091650982665939233716034351188048844999966712441089959505492422485651467536525446060437718952748340227928113029429636129005420506129410900654719355745406383098556871110243039837862674209801141346668747008787558980980853473878422438135663147782692619237753194720919602064168786166826383601212495069850628543893922084377844965485957115459486802221740261390181545973342362426426080238516742364506117639225464733970320340996250347065934947054067011844353966245901198873487777272874529538233856312059513652222471433417992979651223294314989124373701349949060185299472630848119011747569489231212321907708338001016898030238488406917647968418365050168497387779240948276197755739943086500785818728192001222245113077282886395145252285477674846880026491241813747829867946520906340188685854862032716374050597806610733502765818268137873354073383351206626042544022648462132374568250910292423160446890795788688253160465028413945632908170270453841780416945946938932825660746878439025637997591232216815366756369183816443815771594669747886882000101324261809951810432065065921185178190421861691624969004185188105880978543929468413874461308341558659148986522597336684810660386375381976319475240289725832154190687833238568675512833703460461474987510571303264550488470344296408177526567507133835941877760436583708002235342124082899622635101287973116921501315624726244153542949879131895441848740222872599562874204356123477988239893233825132946898171849122149348599996258694284963058802580405757592891478381682763890168407466299748194635372057439214629969110302129592145723664121073357333493683187614527572624026465676109098223353557825072612890591715214803341574662582739359781310495516772033989889455336149426701596567750107205441701922547767967422194404462255040800217988305151618259862483571794527379322178501988735597789764130029259874580833491496663045756710064030233908386210578071687038368569069752956067099656245834773519167422494926688535852140581016568728024496134347262704448656919293989500375917747205419862731457362021458337253087990692386989128663854543709380940904900553462345123651791894561526761057575207804090412876011770886581647806822873715936988626972950429129341656972018137289266966584089388154126551277324035877571138809306075457843177899292422352718774828628675579810274308984783650842494494665396557757146722923396387752023738952090891419621456027862962987126003131591861524487034225800379790540320285519152256871647229923876953382845676660225667003168544508375770911849342985281546381111546132200190421351090754917785497406561507020906714891502826716194780195166561465315229482695565062992902079730218241977213656201347631357610169776471759836234702025809337547797877354374991127513886269841928877404038197850469108684107713063063094412234642517077515117395606971472266244382908385638804048696936040243484099307080739520927495147343903982756334832397344964655335923650883170915659031251256148236507506430751993927534705800053804322028018876418556649412240819273228374838026650577635722742305162396607423536140011647965800737739811781599274829821570663679130063227317777100691527366993560784438537569282026487125998004793002418426943196847669410139865722250708242911359340490768059307801477251398692102573589637986266188824797204309345729627874590574327942487358573270991039549443920268412294451399196481132491268673277141084088054565193320498030249340680201997737481946257630677305080757772274531393285272525401149869257388041894424032135865710084459578615409302559403408287208137519620890703240756795722112762588316282442149715972370955722800769714363358301992358237733160580204658960619624442708595653456228909264014130045103130587610878967151926646676683349689333564079849046313808624175202751681202807294620461109463558632232633276038364603238412641493475706189562989535336475473106342971586243405785064246221591734334815425672469655876043593974295985294202865153130553303915302384006265138086864308781912785010743776686089976866653154609191579065981675958976041843798989996419328321860624881914072353031196796788216962844111459100979502704283001399461091603511790604255775753685103883869928840132269827740093610826262196632789445452423886980164900446890922669719739480910105951863321561371776311674037126158942668209933373265287542277590254672184976274256555625859374812921167251961032852120811861241082427350202615382658953659715753506321475817626651789316992526237918510659776543765929039554613836356323184443431366428080743083741251814159789769178636654315733050341489065071004063407866938062679457422842343120282118710949756690548244981797455524036443481324439182420636482470432225448614418684172598244835477891391265456917504947011059565109517191057061207545279004747348727861877026723785099222965958173520557234316517007316743543803028204663268536388204025437636954294499411957821386722725367258246500226333387857154575954992867500671703489616660414914536977283466790095675023392446191864113231198070892455538021776676113172475057770262827226537382127166786191312942107185207505201239887891424823958400758685107551127684876491627372023389016766291862084549450947098003779481489649794324306615054999829118368490800707816944401134261305072205255231313808421111222559454877851387103090588034788095160051678569069976857213031025964025416265173732676901019500376496528191170676269973929210403409277759491976204505553717517483303818900415552427260927085812109079677882280843224929741740170324635410419603743794438373347364465870805312259965648764479844691138240321036096870958235862278537270386302521200725826429028045695770749721687139901622268502883996943166771327901957752815252360488171087133881444544525663791760160801079178543274071120995503934108883409159763977169738745601747843622611421094742863814240154780294298026359981628149200924434195949118579643253550718386354543610516487593816562960564520422284936322594791871658040862375923197419643638573233303550994751524367154121707274990059944298986517651754331381922616813388704650495204747286523033439688611445734756486398300912059722824594280675635169704162732561025198637747136713628218276516814344648702477853580799382292904728624806106632409316852099950737605904759249987436244078656272745504666895517674481053370340352996136588636259464295511075106875390849972109634849812143828670506734530981399366387792498974645667181030520915344777039245802697303091902869088427444482206405217851012689380409422753739803648701737926960499709673211548597601042679750292463904803832390722699572144851643934324939668012023376407188122993557454121923260795011987657863725907530565560625131750863582351512071735139065223354607611583522519576446319997757577345402896201555925645806964869005753252757600375825133897854504783369908424081105105265550899400268742455287661791664945968001847793586986377838108121712487705942683501517343655863118416161090758296062501961365580202411337949204385021431632475474574829178765203586485375580689193006193817946493158237174222645178309806623971848088426782509963647957932669520194234474595185907189050708260022723739072374394844877553768125165823762196572789854562610157234224216316956447135450791608169987823261105121434032320684866866388629763877058002369317498784929576079716122464198937169689262519216172013898082648196040582388495047981732956141866510685691357867626066083470087843361157719265160964394634137851277646453514067897208904762675990036312912005832692415133794503532420728657117315994817045944674080552367272536494299385235185359109748826013522711151783499432735339065521053527251780215823468787189795029220090586869649918764436970376807042674068880222125923834201411703898872038928036130632645343719586036333892917618021210661572315289108337158985457845501393061807120978326289925778247716597061244039069682618405023035205322597814919895540374693916116819738156634495532036152726946962929543831476100749148172501852604196308817088518183977606464343181023740370023396858143497421491997365793070820853195757636955828566826394847775630413465724077226581570609914657111669454876629929095477687012283543893826741938499057695334493323062924581820970413179727388766208178310558343763385328748040842677147780713364895284286364671481310689379776733402800619657159171447878239844417038838704405806164533406772499293034569464179867164609215770191911428185744765909963965114469232266949040505297352121759123670454115654821330157938863233874576548699246694536021521955134216466906544429116911866570390274216941111189566005536357525572825332256688459441914100113425801707475877450756185952673451032910739516385669824643092998717248808738820832839534144709403458753346792441948601081450332037999033829432523639001504250481241241958452572040839880896542138837026043941379864655260610387032900145503511929187887911474747384819192737426064151143032999741977096824020852150484187427732463552244818644205855460463399230785116251808489709240244317718725279159809745660407306452215119678188555172647575552211070564418883386270028904659606267537542922537970071111419980295134308869945099385997954276092672606788101477580404113208969088632324285820144922441220641401714765529279209904967242366113953882363576035432616350260527419962729284863502443425886736306566020206507466393033028970250825713306376006845005831319931955350371038304488737063093743731838648470590852499667965850495770156182058251663415493996187572214241207566795166624787028878507684436077272166551817052470725550086047533892881636883088142454887087704492992748169725773092363657358457753505354466754919605629621381450531976763521991782861817008979410721320001607816714763852949883096730470090663853137644025733428143844726379103935070605873875150071055381434071436826478981434534022617884619155502716632192161051862578644205974915409258148103445803562580213481576594538806239129094325046438435472649517628659589474456866050931491450183117705418978189976205684700582487891354376141065104473919733910520939499024592985898586250388091331303818606995342181447739581929106888734685235237794723435133653330237160348983416186986920538459945084126687898924804612595464754727013730661886706453680254795390421525605214564666123532102075734203183176954208444091863762188729860223548994977936360063866463357913559570098822696241676467089084047275118047593795813362224838721854705374933152807377584246975022632615122340414482223200663237127989076632920219685041272829760187072617001921965144552518418371142914900827301563735526972608552409568768107078584973657993662746291236938592427627734852666329533378370071473010872543903015872407319274494508232941055538919581136874209976869579835072773705608660806076018378690573667680172733890761956859481069437895051788736682985835283456459476842641662447666931281736883884592008986539654640488815692668239956908771152367353047269266066916655320149974864060065413893186988240005258414615936470098498227209783065550641761418337922756262660800929019786510374197836898554497098383747896203637383301851846772298478274480124685805329543370876784736324889785484395363138809937196252325871044858527761712712053154266156124600942687727848853831574828375938076139023589972640617777401441703600057213751459737424398368371393334105699955541729470487060802621239006915647145427368838807353839551912936027550889359299173584080769306319637758233108644684168273182454424409925809814074525091755213155960481708660217085434971579754855004725419874297310435618941490578711908825443983138851037146723199741793686408151478068141000870715496502505143741180361369899462793233518140644996681690273085824030985434092596518792713730841892470263799759993312440830960635096388567512716759091705516254572459405822377790531263115186152735713362161938902035774352340831834408521063007080442607791437783639191722968261701205882206118645637056699786692354295147609656715274960407471652023913615133808376001116328822697033686453211451717403571043033754646951764710857832986494567517105426721069029782880655562206312313633135061785998628884907468280884637798994849680370582735536139806524335258075885189098551136781926730683321205704103863387719797761650638025764698331651124661318689396178609515243262936927719317682165299757702626049583078774091627570364512569165680025889983667590728650522155576934364568045512538809345889260455360979488334113278925249838516603806501042868458918529328595687253259495321671661454754268912035175153824295195168936985407869314331756872647465934264980281608107740248381453642475512860395937917455410511483602307264484385016932568810843724492339975152487699807610725291934648825353926966353165549929721034251885056476017675270023927588727550483546679749564172430438664722144733542671705177362841828023772399973350983065252052524482432160742864355330182534363463155496343163946626064148900976209289332564106512910955117899725701173556625941412745226726595135472621301858216021599855401634427840277390388911194971151894952103015184015405730810450284918380027259330031097934971060096825460161311035109979536526158662351573696577428014019841886522422904552041946802945031148157751459081266751786525974560605038307093599703441268087502212519317872985698131497462320928236976680186248665726453009744210257837562825727929359665858138544740590107653740139229860887471457604481893939990112449731211882452606116693708609680173798670603120797774376985353745926533937280597520788841137068936335562275763867914600998215619313833531413192448939943536065362641141129335179488605008336572612023841430261973253113160702154119811313853943992030618216196105920583884338330102177112158396799468171720429311100336365209335900721998329090774824902954889122317716816793483733220154513517618264172955559472111878204141253450253153527938091110001919682815067966779575910493984352536761100935207786920552118905606990789260001092074731275077678146039915327705364706121882577111717277065212339688058127831288913214715713683426635866472225453818548090966657155231981912421569888265902331975315082412581261065636963693984082510567818211813054092945125165338538672239963686862370142644269739420301719756280439625740481467359696023279030833652244926384762277528081790709133158942985472838577735234994615646243887969659679386238464990024808796145709266082056580421560918829810224717251463844402761564769838610409679421906543927300859163178041345256917069993853709330067779041389874059087346834174525129968298459703467640495617176346497573490952105837137370284794765654847265229147862358540065159749443205038784464198439559562083563550634489892946846644262742366696983509540334775299999133496083007233097636570726257910222558803568729428686254858467366576786888530121267798838363788667402304605218095757727697485756511981845072098307514118143010253063825824810177031106329784698170465054402010869480806276145136219074553039188360023983342564499560234553433420785366242673638777591574594873806531987156446502521351610369741670022241468749680753188106289210840046769635129094534766755355705349000061870698591382487811605415936187005713375240248832208687837868047411506875058394095363736331672365510824517878350870367428688541067876189201348975680398134700323535525421378744965656022626246110908609159808111662544336237518925660361145341780623735815776329733732402493870862120120002360701527908322818050067043560917026518547654987959565313983270314921097894784401976942863280891050899436945513140702057285111839567250031173678241633140770859300854145544383270107904658952094700004470675274390886680865694219537103670748546594704459131513754956536664337594194543303922897747071365853613940942902851589147657181379007045331252842882205538655342487852735393923263846983129853617761116817386129877077597394701148786450052304841205336079580803908454179448772143001362470869215960961149543748230580280882265703829147113720165126701512188538672301099914410187436442264697734130806007870626470346416676844574374613493339292048787352860550553737686958812995375853879795623751446143413534300918860369520355518260925544137983186135254233800833610692373875879166465142628580863389217086269186213411492461702745901970798603050443099167858597000150032438345911170232909127728027899323177398906631555160337375777178904442754706976108074733047780262282720897195058748216607191699079816416041025937865391481850982941646183148888311290408419305695825674763655615134741934698064064491066420737240539181193352579655810588727918669540718979171058000631648652703239656459079728687079116886885645442443437301522326658360165108697320454592295556828094454668917179130193479650146497499123027504294662184360657833402852018497226571055584208154884124404012247950071635401857849434257206330142191878350430233629037623635127504767248805273581878489990870477230309769364726141008043930294572660250212866970197373700156792521532954828319565680232493538985569889480131937752388936061886525053580107820241311383017367076671119052757183199256844889326853300633582463349045588034188389134243681743510374541118900301585789159809727510974914301203634706557650457699735580707500994411476485839678278316949360344980540144400234401963420195875818070763535390025087082350248963324658360557723367664756139270285641829344682136626305414315058821050542660157027913815489023493510981526489099337824481573549057493782893572585261707951497246446763048054686919149021004656051500978787966467848979513847605894485441869618619533244386428938165077094115117412024643727255267191001232365091562248476938365668619593043618411041410156687652283520500106895033533077750601536839479037447235825632120847612761083843227711812094051720626800011905654700174437395779243185018955358304823502207108032782518595136518728203949949898538366114041036363423169455245595339979052260040662684050384281447753869397622273388376778034344060411909622482403432469584969455345339207321902697418725818858570918127365011952511898979500328256969033079400519376349995419509259115944588185635620290400839022800901189427988148100810971766357483104142965976590011921579831304755572024577144549810395032178262100129611812670966356607063895678768653585475325229959543504921039155403060608502598686300517122791376085044400554529026417141827027871957858264588971983525856849419100654497117789695954482542491597192160698952129627333868910225918874273943826073800398196806570251063572620600674131365076123330846333112483139103992947536502519076965306462878607823829881311105056569556368257842424231703478223943975475921283968077963508075584148668024976001765697666308676162375953648791892984503985689570329856504655095109145949965497768232989752712132847084026821531925879131371067755387676084544880802717413376986501912855799152593400875949021078211430821962969752271225193746591319103648442954109697227120870921896965713544882306123660983196426813747664951160232515639587866765364202553626376178601768513606876443648310753349475771782425140334325503107838649399075208031915728913641222343554813601786870642083351628985601590240510861523945072593382376324274754011604331971463299477414681205295286818310721749747730533850908945809410201518628625523454331108940595892202017070694285930081038165846529095082964385266601033558396328033563244541923322970236482880549580382829165983689413555287862355557253203365215103412614525962301232021717848952443220397062102793214050471818748515352916985038279361520961073369818184168579568695158648716087153575286585925646267297145551147760769013485990524065399463534435151061104023046065579053972378439005955484484458693680913180427170236845089909902678965215224016268476607366249768667005714141757215479192872558902159587771286612319951258322896762913290970349825418492266502070039569576145702613915345599686993653174503108962966150739836674384871741215052432616464913035259041490648340447773480866515157745648896091096655450264317483427054249975394389047288178062104754764372465354308630564593065857665171094814383233059795936295166845869302920264139966516646056369095815840571875216040996891201966650992953853136655763112890856137012411067417885471607530092816138757863011230186213771568430517909999588428671043665005939415824692669642159564142592880657744152182087162175539379956365976343801399734496553052636672538747748713947014379644895328618765981053322074002551793764239805788410630217355833843046818655575324559182382223095389797351372292975491466635281186398578374313494030819561762042313662041165956021146545486198509609715692370926945340522566671421608353436258442022897585050235884575589034915618054493399962271599495388430404456704825287099513383493901821065814689277297919432737337515667221462457094161241592259046758956300661851182255525133220485228947179077756662733809998884987476180803744624528534227504263888218973281102124287246331803338375488133766074455423800848853112520443826318397480873617466415582135877806169721415429958004182571144074841346253118306345531066756830012030177084090154161513463860011462493215181409313989769206813004120132631093316794207016152659549582839882778799060133233050651024610060772363344503899811839562566249345249517787652877729746248913228144834975794396290309071866474727580094966811153718986674851398330740920753617355636490904456071342375597129888142981961835913641065825698252554584887416087255498229931210990296008716838084183173268532255766726381665347542049503719516206868737735581768950183820651239058754240118857210494240644992764795651095221613723159525823939807433799373692658626546710985187571442795042081740535093759299839051732294019890771730439573873136162322841105721413013131086230220685009456209863918283797543542511521477262288337552609186539549116768792575234982248318180376696384380612147770906516139361082802320736720679662817539429052572755489463402347633635825431980278605293709900347511723516637437402319908653039620494911327745687582096077882670684430382340259307959932938468556800362347867094927249814531820885562133144818947159398545831984239695209520123721516755563762218621613939651474259899600331442613836665972484998542071148416729173407001623026844182524655862169516781955496539112309490711292349742538644780733198047615711748229547380923892996092641077224786026553726836105331216532667173506605975468911485529435621049622318095104511075363479389488445744285867592123246959752880928880805331181415133095594416585614201535795661967118689392597561435720478605114881168913916796097865150254602349458813283480451117360925014536379265229616864015582511675964960826469868507557543765774620968064268496320178072716008981785661385240851984752429948121412971053478951293175413497017308203011296267651816149921042004697682750043567202490405508726867556813190653503232738744538032447876559643177193579545705615091340004333378363743136939252356002059394610942175704681153501327263765715174336080888826651274843804283679869663581793996926913038735296807761930815831064353766885524611695105500007987002181266905987357062762052757412486930466476225117070843455559837638185438554511994854484252126589014094547630927737780745133208154375103386445342860024923943777925749364095994730579277591690079714095333213783010162644633521681074320819438496940754484600688167406898892701910994181689082375523648378861218167221344491573904374936050181052759080977350531300202692250187857032082731986882046349267587843007792512701877155142781234882474738797084506370645662815059348778590524098706451228869898080608815624849231546110798973402333871743199596119969384620790731699927954799661211591954683870495543432120272428736479845079247191962674821966838438067186959364615135081358338484653429204443093059917205441087076139090854916597727856622418713276191070570102511295696804151217181769693125765056151243102434670610775587442183532241528412586997110825839866248246669400157173576593858002996995777873970896931857538983474975959399731968202918472823348049113884435448613068634237328597647975082950960260835211266839629028779223477355701413115773907375052636710095793409633111863626750239004734820348216766259672560519346257108612378608373856193756323959807478682373927452787413083633433742865811514339169514507915907899571596632270008304410807347455398745193395917089947167942540204067146353329082945551469635060579387390595505171824325242464005358999405508130645359432111892862653519058918894640290638019193533080248612385614700496048271058348376110821270307298371277302114089846193098121933766384595174961213577504473158608029761617218981620445605340697800900652091965570368530633878669777074500131807527072231958651520158499594762396070924121704413219715665246036431277776022386463796972227577393563637114404509708004037800101717857753675412193660800494484540024628156127741562465615426555155544316876428759280247028172278325369506802580244798147361865755844124543159270000303890951606206226117425966459352453109348263490888944701249712200227169271052715383417706064985235492088367260615527358496118845576350833397605494011587623748482310036451433077782654150245374634096432844206785465104784743679941454518274859604020694699239626970244222085454897741027774432311442338151593477187330631958709670183796096781128643427369129111370883591804564150324393862126182289224654027825521263034474317172266006071627965744892780229585627028845264631195402601011824550101878440230819041053852701932099047642964050161515976908748251454606964008125236792286662529506293352999002189612331543457887271090491399601622466944379382056103368642763380958379238094728297234836266215533769948424116602765249174013431012699755651324827962424566512271288622041789478167612455766385990846164105806875953331071784440030504533094705017414333827501569853757300026779777498032302456032169696201363955573695568135952733785962492832717361531522904112420651779999741297709278521562188417347293687797524834567178068521216669301357761822095219119861447314280815053016580406154468945395804216350789318640090899113771775836725316893445155226725509887008831924243434346019083603179911369920812028732085148399529839512929392177351766663576140123138425557736355351861215171478114585287982740920293695046266940450716616693231384371596255555484052512878797845376486129193702436625665491980734987604528433918623647069162979738907115242918958139396622939626751807293263555262722018362632271566939017108407394306136589652450807279945450864904570038813425524319575849324227485776254103137134110381322595357713515744971473396267488720477440829727703792058402632855348434556325800084120301594786790487657009376295620046608899030181893902954829012353755937261265152373742179787620484241158601391633449088998834048985675954300768609859086033351003854308147774763031601088130239380205386550496908729579706157592629665132239606758485298522725640826779220912784199198448199679675116847587847653568201547696174386450509491885117567827960952712979749219938992536579297066566865683100008492348987327143703740507873156201497972709795536077252954202258599158262531870735606187621186793437906636774439129480133274398956601029722081745529012031557348788303335507804151587911601790821188018805214802168332601247178231474582278239506949151874648188533250996123518466012171112184535494452216928384480652818425115846629854395682933290781902588521111447643080936526721827969592635122359356943817452511168899717678577215523465849559416824708033534011953735342294185572587902535010045072817202232387596782548330618584595213029370439065690653558532999756011697840820921578265694299165623813866144060206768780461900675694621315748810808534543342708748686818582915331588113882460474907342217200857553423725098297599683118027228343611750007251772680474412173733181147820555055625546872740512535456353510912656588970941669575242708787698054207951508032105259174041719656531879114494594785563406611097513753845140742905090771377206130609290042520240336965380465351255025342525121814503675101567774499271858631743134028727466287680740117075650045099952340237839104517318479289790910724805547930052855476120489405848005692530813226868352244958981742266814839393343552465051925929266451069941741801545822588381718560359954930024180312268762730434733323380134320637037700121109956511298687321029732633239866111991998074607735539852854551407759430349407888410748236436299410571980838465823674455123547373803601981250166999408228370763194105493012166839414075718496771358939858719886998047643576613456550445924664031708165995238568746903617340281025137463305091163341291437938160724245404191070926020429298856753847222887550880622217408683316414991171595061332161787353074910470589016573158064976230416217897471161397740699381400553026007917489879674910324850702966119162431699849629710037759159064709040318909009031460256038719030063127598493215203792685303251673666885386004871918239214846060132103546567104198287814188292332877478123859476584128344854339261466936560827892594194565897360624308563776839111821419154062227004964171348469256496592485573220891242450885891979456192885316875933552967372887830878057683707293787067036118008832375707784576216825103155760452339819882349519194310140372252381023251786384116156533608932271469380345884243022161433534685170066468051649256122383694911191395039973061520862855954591754093384285426293218702142932177547416409244932004635489924378327111615490824313103422923575632908891794727712028314543765896939295058401171057189575969554754318671515784674132047677110474069369781873054995660014522930146508080909323033233992867137641383115520754144738667029697288694797827043935001338956584518058259831887720909479331518027803292737807644170609708604457990159477163559596283566121370386566263424177708923338632162836277876913663787833610009577350578180420198955545814727366429940369373933624152655162191996143145635700434697514250701543184649604177351158254464729993665114214764091577340746075468284866080229488649752074447014800089802238274028937698310237780615127390138709915385739925272485691212480887514471047506088579769721981697958038265728936023684199515836581872609324102919844221226247320747895267910766392882036728267378138544691432141652708048998157449575131305042088773786910168228699167920311141601700696578307225641424777056067215681294474556344606331662616004835742779122899760847295706492865983093896745609448923636353323962349200725669843837795562140904766395211132726957219652607104066370419460615393668743717049050991089824169748443287449416377773074114140317616460247733035165260250927681034369448915574997161320139379995053438687610810356718446747034660072618274487546940326708742105651881695290846711912290236311246728781629061914094058753895284797651034829595533956213543605484361979337981522600462211115812283859168615435133497015646090451413269859589904460666181515766235106607095034520627130602156257349456155163593305281392916115473862495994786915755854989632469194111563361125162299372245387906735706591888712909852887438017518266809608499972855800089124010059572223075819257867246662832431069831989181841582596478415317644932746524674943275094102505855825478796499574769467423642757199642781801741364055583826064749069454544985436641626630903816923736969398974460585459217341748799299506251165771553585585718204238165579424478201915993211136873226673423399818343165661797770345007791515954973755078937450644118561172573178600728846025946713863619236102252018009062733126371021912647376883576734232204033410127543234881767286246230436654618574073776461041576145928297548619522455689436652361122269608182391879876085368321457242969180973654143663268518056492992391605488105941458846236726872014289439759497542658455910937840230414916858371031805076883637562083123114149828296470825745461660424881131457535286714322386408894263821422112563595648833344931116806244867180615646828750443335449263477337928423406464236214023973155186747714176418489596172573723683319178382803875719061933798946893086511723392000872799198032395530995080182821485310413185442770039117346795084249133215259911060952589179423183240368654669758918205785923474599869160462517116265934449842592110216609330940667802978032248942818391701250382201243581287182464260673471252099276960425154542331082166213504613608810832224231675486433115914328427687011194205070852454596938959034967335441540404372902183683562421896462814165300152518403000191374687004993593050217157189128571004061918169003658460358949797163388272422621373736426665078689403330339707755121761395657874137488944673982580694394415782589554942895294292581995590282938767675833078232327230312810141658330231321936041503790321983283243170312773684879899561395848558462722964158237181615903874359014454460154296674891870358677682222567381749938940094133226503804959095109703407829624946687744627803784827621837993756340838792933215879247279459585541055145312412651706110857538654163470937282512182311066607650280829872648819016251392466820451906260522404873887265769313683434246530797066958802492836270222441310015728177188969539091254160020773032354853878999642742146908433130318077784597549671838992866520027861085128238967374014066097819315623332634883964811805489871324442748570417027706928417888337717997798456138255604678477728228107390515318254902689172294470995214158933637712170591708583600105661461061138732897657762594595995596282982816297335835737021341449215866250815677879184643022412009805494345875692864389816361883470331366588254516154649442025546860879401911857775197433323974846538175220333676064895472024092154501038388618902602996984567881543919054107238606993606744855318703819374160334309700180889985332675354585488227836593731292628547486413652840314423018782635281579500406874906737414003036510409127560891209115794797030255656044170843467995082764559478953120756917371316574952135054023782043942205686559454583599698228425769750819299265543447937931328602792660742563776612974525476832994729703957661882323812020605964762520707683749864464127231835757436564099345875820267239940349184489380160629640192397162867275425280191661928124241183852936979200677029764033338125157930771942502278999355353977194272844835659363917458456350879911872345028901957790768526175475976908742925414439999558210071376098690089159499060550445650853229114856184075557702487339650590015839939617523541810193397861086274358615733231883697218250052034615075811501423516083890621996084798115916033433805377794474731574343318869186145403321633754034161545963842630317617340749181545293487519241423924351866359357659179961857025770848413929890074414161324352233250825598602027038843196009981345928292796454622137219723442352069576067159377127900598660313801735719773323683765948574133304045026628925470841543616058052579854961392785420769472095638246370604700240592469879174913675740089124206187659185224922035628905052976714676661574872258779879515937975691299030821615662497369901400043629698555126914739313808249377777668898724899923003463985770378880642927692375653317030864240698241713893039095909171489013478556803239689951798874538422570363300987234604114110964454860232040196474294123136783198245491560570601231525166616162122379027511313755252593835347227257882916981082237128292687029289573379328741047502911827199755934109462699946452053932025618959506763721030019288847576025647666481820983550022938204342340749757180872072258548409799288429048413394324100139586644858484664671789183399155774932385104510670788081013191274837513756546607524801685274947917222123165155845321197379156686885994040909611795229723921419330403551318884497213480217603176408207258256009284557530781283446585504117617286556643650134645908547651129418018417885761402317279159100165213364316327835339012857050248795053873750311967990209821002894599219866307375430152696263173440993359795736587860446913470747622479866279852592210635368277460178183732905110772674393789084042184042719338576044411313606722780780256704916850683249214470303271937326921364817916142449090212799560094085393068902915338450421002555609608713037214606588115584953215885016003525083180102878658258930042652032127467718093258686548969854389051602345965377024151310408118368978089173510639385855194635102475229176711871635803145260587189776702341259948328796229736835594997576767759210875183926225468716449432571808677935181030098452309367199788824293612587382586071405342624875537695640323737115650971537786337365750395613556672298575367596672466533116665775918576974121791694015360666395779650021053179375431904022068971396820684884283302984950243423671177634598691795825564399636999479154267340453360756729232024618246979985005402510100011288815941912495431397419694273985156529657078112358066248307392920623057933749837592737911415213256323405980450479351909645629389236529161391751642497788676616138276684254543195767682137447997301885737426757211460222010036111937753481437560742215474510154184785546962961732311820572986054002550814353628588723339575673699167859594952844097406636002442727659491019188398144814370689526098752138772066514140783059572853283238515123090652059399169905015392981002006875664888584134409568341148530324612727537418720444420909383655217714077881164802536583218778863098734252003108685961928915623248341167648575224811538851221230346466655777245237476041196354291599129503788556787276322182783209227862807221070185572629550759942487992916740494024385448749053677301113799036610213985133365038888653730885606357868437659015854508177171236488010509919574126896067130035293943977559460673050423219987059660091458825074883591882513111040234898233183428707643950474659831829801176431398299730558055951861231997839501883039387067313385092797961877010189677464611130428580327802886094933877293876250148647198080161806913032724322798470139434338223273107388505239494481640276172522303309031298519762037502102201805759297481396447334117166220930083284988226163407264631094306502300998272300796079857919340984631331218801823421910053362562141460006825159123667955123678998209544382544407550279831324683160642861981562631662125710857925604832687438683093438004640566488460448458378459597249120440694076260967247357328685454488480695096673776080076867350498520618662106682728262035269025387166005514923392897897461423259991612167842216316802019984852631084794653120049823477749424616750280918350801108268809417892067237279224534958063490528282623988648288714202426072512554222370505759512708564827473993087232749808565041365388429709196645658793897992898635854761168379282349875247598589981643306893849832846529456105020017265260324355597377559905603907428803436633995691204614522212399596071693217838546202041248288611104458953188188371695606842331746008680742105894849242379853306046087488475095218187699778515783459161382037754123563080459266150772069907851195699499121299862139302446869768378481712252852784482593543718267700341348970333961916651591512743135389739914060115367416926014298134749707473180231211039348571363024409389786891934625038399151142220291069469070290941529108812782647543375451717703784417375915079895211378981262058349871841627646685068752415246029926920427436934914961750941984533511196022312511509696846891104881265422940211378379637540144655046137446030387391502634430347580228663751880226384711813953758730028904144004758823833774213059799176594855055920385389530701245068565443986286937459563619840498003543635015749428973225008712904564404303891909555932462939166557544890261449862329335438894499184028008522601153397988033676850576926707658918160916955541918859178712444448510925574370389538958245760884268155536474446117199348088931787776517916607806981860194791063321234088000622835263235631378262035907270437358935551540964796387717350867839527129986561327413026151597915422579640657355262104441948811202373498068272613092541445611325464731084133561264559996307525409069315409105991804111756055816512060333955929827666617282015725558596281736151473572087618736582159443651508836337877038660619107480686132545445180135947111423676583448074772356715955993197346389181727661766847790828825337682638554899024103222012375600026939898110927257381137895606292211358655029995507988576426434363083551866168408577966903389243175374915733430996284598530858516038971615703779292318582146389295689386749677558617570945657198891999331164558448609299733624853742365261647708832285216727480479786619362700094550701060699637489598363564990916149106964867671773879899249211037514136230993662231563228604731114149913902734382481345515328897329987497462232064022170732298674899948789818648008655651981124840126601264425167869914647129087416881219597284966321315856060738315534552125511385619969760950632621883030210027429299204945048811260046897573113475556981947861379592947825235152890789313728329828002767780038842158608893994544109425551257833096251979437579539075237360843074676976061550033152766403819405210427024479836899649151094114103802673217897003197506984230935275187512395937055789220812521581714278768481245768530719278887875416380218716113152441763809588569556654821816455776786137671118817554958003997747819264713681584130100548476487484772487777441517022741503266670539955563425044155908787751569857380476451415761816757110593835383933882552093184415334318284192550602742042008953823578186917078026083385739295028496298017956046910236905868467343211713781384966644515291194745772035980797850082357193829445847691307546288864632221968705133193832248200290485520183155802532008597773676810603789918290795976576072122915722258803136481164424335285948174143479678934388985116435362756953759437104561746102926372762133978143408099054783325352455838612724460554490049646062884028186517449919883128042380361729784051826676478407738017810799094512147678527517727578874137920005498648104996995246268494894087592954282218093677479819492726177616851503396744299945603346919204932693353017984532879488596956973100314668693047915418138283603893257111008948972779448457501766188971440024066019155075897317198437037021784154088161132510488186809272566676596850070655137994391554193618261345683880995912846341838602833550828972745313405101246180837524928424615918365454883243495317861477517364233941197361493796997939725506439522461136405889730432312989976253665561058823644432375128039811054709736378564141567773502483279306889414888136199304548915010493250331657201617909798588255973434235378554950956876600482158223782646463580901973260272749980013545808196967276994214505484828037229507559821014325932714696518791358325816816565824142449198661025134086388115034719285330992278721027443985918153208320858610497897364488907313496083504370309337034665823762377990545295886631665127116050956947099225241851131889446683263897517400260864807332061574620148401287420669350975180896625800764392436106717496029822727812168278233708420649288533017454319501955264943433395263450694535871702611694222983349989775275672263766151622609332826801196933280476973192560459374761967024591391022049377835161726992349619305947386907920107497154299887966825343041887296414909980241514106352650709018310016888888908930610400633368764446517418926178117579485674874803258584585031499154999382301727143085415886933207572473778751543708550917141002929860132891205893548540256298237434960889264251111042813988038725451687707648663607828884312336597109057321019715182782881160855042719890336600127059107591791338137640263633347032306762977773567179985533067925213068764520842311273347099285791881460543038004583283543854444996689289806583137693959082884723560439418088589979754623848945891823018653859740188008483939061859567822107463263464990621825178607245604473325182495365468758234195874214194456030784010186303812499017540143436471413134786677148946403523288744234452739842541589316807626881083769990796578587564624878758606029312848319163979155910258552035657527254768423197949662931990333209034903360663950478099196370481650195127788384592817567404677666413686186493984234207244791944495651837805477652492037362615434630689458957655244631139955094634150415059535591109223583115736111978984367874943856552733437604585088497997662274718314498010765505527088482430645340067218559614565168049727779964053416135552360463134105871373638389105547624841793418365515915896996455431210164058982186632317357839656004764106854221667267300500223117649643260397613366963531183765324652942695803238100483425961123187013393852861384271652363686736074689180156868579963362990074259875710485018921069636740458283446120801930744025036430644584930745776825601923878512704605428959239691302045479742130916670798071826694447248518042387424335274348121041696983273000394328514050895697058820008713995295847492387088536773286714563795219884259383051954999322313363373771769476905473426418846197527460388793337926093927521084083698494600767607043675580359688499234213016272837406621970164717940699252371258690689808221999811342605119444457183637227683050156416914679439041000447379622191472109533224220671560206689248860128900127497229961453185236602892633795574318954740824220494431748349209206215214701781327165722481999366906538141952174772059820130687561871170980218407172973067955386959101807523160983994271483903286600597662665068716361955474863558063276637395074563756940369074826660393044651593517882350146187200055964286218583545516920800204137544498245117002226431464133178497408074869341178317324723552673855650407192654785183891723878974758922527516854340038435642015545126830330839032767567742567259896420267888302502624094925036305055917215684227994621451197460773839129338718152442080025634166001087222452993149893430558322702487342451985591397210271655877775782949967070353232230187051560705475672544201002083925541846110322459113583885432822639397773948622092604219204895976203540436198202682083369554033883388409747422711493976619967360429407063125249546435817344045136874853982579559046991828335786091486669741590819361389364072998784483653544508347653210663566723666922567199326528310636880897979296005736100094875399943797051171322005735832215054080956772179195794429773805128588428377786117998539733233511369744096980640264799824649708527112774412440199111500396781948482419837319836623801662830366576168871769099492339633485260987997113529612978948285721747934910968495948479755034404801364108961114560902899946542247620252348307033198734313770069554560299457010627332026444026149952321026888869662680066624922763169545040235645810183570444606175286106201707632580072785013487018880993065943997272448793471824724230449079318198651706876507411368650573520051354183560153842763547879806823055682051417832585561917712957483229119312533523654929427703476710087741668551391744448985953191688744355417342400732833694524250804767277037058444273312990031002179962868647114675352328455061747824019086818590812153906006134918183374600771679429902669610923360192514855848564705521314062796434790877036247497051144368637546032993718467131044091404950346086207088645901664467972085811618086790395315404927166730520203839722882404143680574346291264664113502223580560724709212849977705988716254704049205636137739102368487447090512899186218561334221082165258457173064152100246574711732638799364353662461356229738906976638686458847353676302943382715116723779586834396994799514333157950274349854240588772450903136280296361665603074029284353452782457418504485973598857712208730666355052730176387814927019194001635944517075066889728993686642112618440680115771307110513623863678825607297629263389922550012214103089721134291855024706186074785839026403198884461900575463137354277528778550304908449666772020634121574578293655561654306086075839609425939706150419326216821250032707231806294161967862556267059673657337558308428083098014975257111787510891961077402588792965011446099271529766390798891853165187401141326468673040431414791138751571262373593075101351625719965779616975177596000251714643146942085475196626481067648727238639891840939378806140354767838181599325629139529414310898176550132052482006916597034471879408144179172582194453044539608306152174936170186006397664747092218741793339376312988739020869675832679152564007584448529523069326773957661438244136843301699162726213092216353525087496163552613072540717389219593787921804047534865828206554414942813684769420723834203522311185511072798329434788738196589424226563249557841921523584315799892839536832773217274477625460111251196484790170889039142296557721309257399102628772466029592013944090268472357241745293352296732269716269662527340899539505970764079730262466198293719077645726447038802208761134708275314185146404947497337869810900915492691807386553541566973386355992875719649736933830147865697672542747378139213792889909141271843836543631673757922001630293989852098417157352109428347376162588359825859251738343003196708474371759609878128112235668756930360623642841187070659844351979476205410717524095874507145702835107872197269062548297935239392398591072399458690010469917397638001999813667404970593800788517570293114426425025112620060755296382208031995662315781148783567897460033868649553439794568247095935366050998388939254940337742996725746067906292255233792587716713429841904352148818161086437789031461044833995026245278228022972996039320245101229667906144576321501967178744922264093979877946651604226375356572754087758261224391970560352302952610353656595035006152430628716112334875529918100602613529318897145656129155252989703861597226415098754772371174954230900697786863280560178866110916662485446791382718324251142600967816982088290522643671804395156218248051455984527536181524254429028301029788793221848610089332214516296401406423142775899804572504391627972671522981281287424414078124552087587681155047286108943665860900302891835929991478534965222812550543540897447145456420243801689372616492186908167833816465071954936608574535195474628595212277460613700933613463450749867607183750580221416734685087552311069257927578973655583492124744834162256306283794561226096204400581193083421529961068891953009968856553879203243788758093255621113607303234473963918830265102308695679717628421843513320888396710823781349299617582796962781621809884641395688279779136387304726237018021086204787966137995356985260608129052837972749988814999277691317846886439738570107945002487931966338280233252835360500684081759978492269240633350030121877254268380536882681396949124112625669978793499865304341440325126107909303341182135079668473500056001131779396003429513291359748245337801893520472360044535471778455944297986794705134098609494596299510971282145694967984426914404330190474881386329616104874909126752865531046463732204940286795973991035927459799544787818444221752734294798790474143764404201471405672643001095833583780684790619350520181970549181026423262206760188467371258012728326053585081224382844715823551436852120786363873041473836457798529945093895780328396350506874028273477074303824728529950388855169494569614550378213952327545831190822499594766596545564113090711336022717354615161244962167934128091819904194950395777129891661227490348133440449110800881034555680937061272623189216570013595711808354509725735843996431907374478211420285289167019022813720045526854487372028217100936031869548579894909316301140554294460690660800387773931973647615736582783892822668850231540180450690520503654453005451008313010593212161836814591905545918390800744720801634150467232369196159213318136872674025489468969154658818026903530385890929360872512224000245221386066071249447818591846572560573675170404191064192739364961920089975660567593055965771357789391614228713876898718125161653527375124271036119002448278045955779849725713984584663882657339776049583703253123198022243678427419597141214284986652521397836086182483410729288160117808788969691029988492513845839852404810694729442475015059450566935008780230249989929229512314205686947965474749135830132677095547994108115975174162613826722475532789519198758184815319353889664659726484075037802774198500446651310171998760190966747799464546884652184282746462504087775263307231776914150784707149470658725187582411964392361619580058785959445196883356853059971001266720996729109863351517404609457578842705250407061229260541607719350644568302029573219930840993076958987722010640944117112453549834750381428596941112230960292895378662889420893662999044294789431374134284535582203434994781583021072127615412463064808141285363755078520017854201389656329997933666200488791146832794715805468067402998622404960071447236274943029858729463392198528295214212299300419102040215099863868743380560082006629666124544322719742679954245922753896170137100033327373650751783165148541920152925203451216560577264311139177109541646419038560249219571235799277513126092855832686564001175265839082495819665505066662688390631436812179285985147229099738849777969318698629213432123248413712598381958999708711500530089097105961578416368578475110014637280783369333798810675751845624209628396118100934772858470016334316013665008598511109215700402503548141088176204460868199178228025420886227668108387302849851334702735504206399373598824428567991549451083819968848901610415990355831406676863140866678743444771959919952928738228863975405882143259324503534414424476968637412789964274681325694103520119913184056219592409989254070738121142394722165168764623135162147218958768173602865718338815628746609706334145207244700738338167778088994975386124188578585477396006011874010593446727829594378254215926906914182485410141932941832101111217793891665219275483680476714751061897061703194068731965977058724496854928221627340797618043035784572323335606828896906735241211151887806722263439303868272276722093991630612075780794332668258120509341486330119904697944061032352970402433335171367521439044284076653815504914831854672227198621056396790260594171398141225456612391707646107528791903452834981134914998949989177439542054762337569693989676592404743215367723624805883073291055047048469046818602911507008484194147717133845744391818548666636260823526838317067883202067765985052712821103056141362444360212799166510955853617502830779397778272204090127999241891209216111278774398422352963569247323821270509290938991249829901204097024229691098919021320321079951708137931948330224685513987041553500418707802431196114862352448928713823781676799385589566809476100770326579177128034769508846002231008320093039811380399719306565106313252785491319890308660040716578920643546722516590243676630839676184186286594984733975705576592280616923019597728176291799702619692024695332460057311165676975173775174702487460601139166024893806066414210811006785175863316421324979696382141585794033034187280001607103082145889920586927755061963977185571548446582390378935592155309330548692246678147023779063520728498245555176659522474128632105064762257565464885027609743753986916106165537701235798637825624669602338633970085181585497492669801999621770853243883052156301004843396276330310308971344320202216788248871211890061507353296206230399599698772090229910190181604444944067775159991324170822159970662847214746188702215986298713178298802517091656918889179028480452874243084609354302065547433741281570457867389321258110427837597724748145944942954021412421337730393972192375689180053020833978705378778810134353229133618159489975778369036770036918804237937142752011915127350589413843973922924170531037624025433101378479075493095653263534929485292471736882438680523989500915006538204432095514289805232291388471558744006975761326914029806172037319022034180539011820897630514860903151430230101022790177477998771979610189768134520560674569951992477794070470298723335620300474709673765385520364351591922513250441121895805613898389993491999509683828450349041555397862984357457956180784028329241452669073459435284717354761890396874825292788990038717769871490453677086305626652149944867537779852973769486246120855614417947895898990081884491676895483544992694009993229696519972333411803874854601591117530237379504160101731695481146450805864289466803641794120824594320294168556284970423016406173326502723781100582385116562189517605111187361143285107870732677924388811330668195578613060527518507023483157839069740887699332032040259539147467026340906690570011999891200433654783773649275475491327855329644289968025613755021510529210119316786224410310262471148022437508720234370185701631926515023739254346008534521102319163881166644986808740282453736360743162219170701500394650832232495454763995190074128040542034870369583685626933974126576206294049744910797968219206946787282993170320666001049576580707196086795202559386634626120998392964908796789748434282649648651221417969703792348035640660890360819759096743548834332206304274506063835877509162247058408106320622205384660864857164861032999039864747836394059512719475832496139132427617045373578143519820396298335832030288672131721538046290285812595226133513456368110271119357312722217116739791361638144987980781590786476410936067662539161976851014807865151058930345562912123393198671775000054320698289587105988977940514182972593870021147937056244477121049121262954222345792240203772239063954153693697041154675166209327545556794340214434461360782401943383079047552676674380620420792049243412337655053685261050357834751526916995025943943417519108293497863733396393686353210700682123390935544555418731620490600412293344095891096920540136763857509919085124543581113802457630303903313886165929316412872462766969422906033548625737456776187726614876209345942551260939625830239048548091819953479117754669086643927574799632858496497705698639680116153242018053671900361483707647083968085101614843193055644499509279757724497206217793155153058959487294907731307987922971131602628223000127241459411431021933182060607854029092198291364698636251525517690235929775023329882845688329085283812361627422837344298967253981350028270170928900868826272695124302337506302840967086645285434401514242920268512360627408241796202010088430702753251730115961394085788578089153693967734479519003129255140167532188982008446560985162468698418399100676263079855304774583085178190149579773403838150837209665747114271473176602095978938781467444294799507598641180422015312287881742140134907264457842158529531267618761805345792383942203925285966950927974932031909452201093274054916238399769578867227486262285168705844702806386551037860113979495334139789278779845478866071922266268295475008382832325101516824888452012247373134339576061582335761298399232875777984819919039332203926655942283291473947102545310336325422364073034396805529537066348683855949964533819610657190946246827563565471415197858813976818763510303353440972781303410757732210905215663690423517262773230701318979037166603044908928892467814286822559268398829465091059695098882346345544980856952263396515367136285190040643748682797276017326426611090688596319124121462920725161480100957096642761387704027673392236167256168775506812321104654968212273228426795292554569455902125113969509214385985626516108539941106544997962167302528211705657819380651795894978390747693129786881709600263196656718339615923184522207913650750412348454443706249566822321114433490627993094542202281200287657452447629311379172207927008242504701127182499087449443256903570863771899094546107384746248298711963570093153141381160427700043055335777951257188762297504743638516704469710064015483508235008057744800088700591601946329922489499851927591889281509023006159510528787583925733912198417046291501076497798678076145648851576612383861479219336741803655304984524008131469720166004765102461218849070872838231287385096858577727142359874104380041289149326058569089722943864639652367985058571827291077441933450846370985870769809265494131990970399518690856557891221521724229511118704880575699643634232904818088154460212675359344141304732099556093023896093874675627940325368263640855620694813862351668889927733644911579789403484660703894957623454441376236769423147583867668376208028448131407749949075524555861762575775683523143435308606895643422018550496073654776261686658627122566235103057041671893910332772588776822826874283752484961953110470564798543628657610984868761146242229512945459293726344186256827057465695920064854229963869288960694815861924730007320764616101352859479131742005667702371669112439050117231089306605238749770681421185148855116556003640204589950447283507692461858759652791579406315820678418658819421180720013193083811671685017761507977666518012080611134151753548900604302965949552865590551541537561442228372718363547855558142927524162086644026035232381552809938330998207622219913534006988225604277737843411051403752935584845797945370992604680896455973803579464668436751973626913580298993992082558853388425655779714189937482066671380839220327006370313160878127689922745984778408083880356062167496605391999386735524106501358715948532413017627337133742008099267089629184511664844824806837548952412843922007840976327140635062258376269919179749722175050988437564777740042238036957958166601902359718195539156852416844008293920211900288069274666708773539377739157911565136579147520056778253196549891021505986896937339940862805825462330941377235636758647264315748500787935882221704205082911870701755456668970463917290838414361337364903811681599521613015599041663967502287331779287951520969312006493757081474083440231181735369379380957556605180581326123041729243716542724776123368969982939316958257813674209485354659160626888644178466694600776782692962612715284735814898307757085427405005531091048893606603355604784563083239619410646557164879849735054367542796831522036746286141056501132968585382164613526894391844793846166165458832147130552567545242894820495606224910308185746511517825750003193879665892494142791575361011573560232610460443901318947315373916671166454416205664271606122451638987819304730287884023187774597366398940577306062349241673772226521625688722575457872243046882567616465647642916936065375523578767994902334560357332531750768708404676917498751847450182613902708647140440683235920900192021662146948592854106999491076498561640957544252422552011202644051304451743426328676631519931155472881392574845401422570117178357264464912592247557902981169305330705007707413263550388019375534358646816446358666249103787196443412721615124449876335151862016425353551245079869175403303708377665369299130809111452332252956100748298481961103590536952540708749939661133374797293362620904924880916602403700319416390946463579187060550647695609855908901467159469594036946197133213747176730255608131329940668054024648796744068850560256322383075431839735254065054850951511850033614403575470638512269035588531722443967784581239105030425939268219971224465083070869295830822129679637721257922764243607635987729036247671047497212297453540344729433872494327128198582635515892507364536647188792043953578172041574787347870699561351329837535410372334189949126803759409773642854021525904942890202417786889934116887093490884483354094309570764586551458516072103245520649135868454570919292590343574099746330100829135184070911541514634665826438123089831982936962622429349305636011839202872201557518348369375965931944007521661864568721386441622421796845483871008643917318302548143297298280692734098131730255204601931360568020600508295345120507419902954441142644664988174755820516017748659124758492157757561387000486199086851303149713101634333948128941727265477444155005688689839207239340058523942407816998149547532128601379302138070404869100025626596654214557900477752319535802599533209818146480488457255665671723404099185690611377799875129843919269048918221908511564511954091909298726861080793626229196487104924452420599853791129398982739219323003904427908245469934592117673451632597763235946946834160812722887092701062044107230861435803147127358609475274503261223425510334024570108310401098302411379320335465930857134900616887761118247048638492339297591140149616331999444389002616128876583403938800447028832423583301771565132230951966504502430129004606990615760923784607814228120878058034562321418270513226020512476564642847679588353844195816021163592810314681624926350362688652450059425957053967336601559987242989394124537074354586725744007857992714031029437439287287854872437603722592918191265818587143577294074772521996009189106845265466185623481150083513836442470932775002846851612493566322494688464477059725764324313126525396675425379282137626651701030209843167346284647729382223874003118440625443623645682204396704892242527562062609895273145695736070736148819489419646819762694787238632121017709891499560281308604005636468533867336343838194983277273378371690195527484013482999717237803557753021367671570243068962522011233308077656415922502358278653505269762875225322121660982273296717298223489921939889147668297736765406625811264758344314845345599549999259559371064191573923283729539354277722625944046370345008635602254664062026323977343547135045200351702044084635900346944080279920780128961250989348758297059847059542433011772236390751074028801079336458092116783022989168267594060173918117821476816516065526399686417428466593312534965718749436263989256789612331785766750427092416400266879218514302573877731210213885982560103746858633862044487204788951934465733041128775336439178409091939644091955852474114260407838298942680574679929939031448854509605371599853499234006056388032850926533454225759372931448636182945457031343458949602195156454746947641003340837136063068682864826026285800207288637378465872271506082867341417838322745189577831128485920885907482009934371565602308975520130641031211789676871481533426246844286358222619098939467880096081124945367572699512686665310768507439292394050973185738717993913984406012601569599399399658718075435161821881046932277117997762252542529380982338390764861641235482018751968534532549453675639301021314911462695127125052178985740747578761576869298496983609703371114684708375121542495083869820000810037004738173013503708900879634483499989870660585028874125923917312428640376862916956483645256840391144041881886596488728320146304306743200094234317365517908585623718429281046909708594095362759189096874682229588810324130688991129816260043716511748424697936318401876610435967656781756992617773750279302672502222345865348531781520075190049733526785757577594844679447266057837745325168308949580021928491880870956779390632640755627429843372377957197503985373109452992667743006651814814019905962707331202850469860453452671255978636062039600165374507467537229077882185414076072240351631236193776536597412960115393838631142100219572084092915848277926194768373059203786579990528257223447496237034072562826737657617678840953230237614467464984849329313823051740350514623045480886076415476041876315193844500991509888834446236684923009461306475291122655701880322666115102242003757951351403305851712076548618281923881940454683187699417597416540810135420225849622481431580162006780765671542019376973306066897956932271962497913452918321720238861701985582367567190295517960572138125427632863962414342081735732882617756809052782918876454935049694609347263111185294797370507040909722636383253331119965074334812845645678319568696058989298010936244179481533318594888390286461535985402776414823820282119475956009133451725652181930618548182279106608539178919712523311442661716611602512537975360607055125399229386899358450962578181827327942223589484982959377253511395123287942530549071951384468492393614764560423961416151051875396870913102520177844569142258371631156205202366388555408354180675383363263996056350682490877794442210358927262852755762293543382271123661369982393271126729553004936528131942437257394650920076285584808254944103366524559763744540519731042132380323640499985341240786401560966334144601056973923093430429879154788985736942685861169424772512934360282426153415419474323469618603472394786207098683974743343008929325026796473904540538827718729736619103838424108601102092432179037388555425211611340653516533911601358002390305976092122705747198056350999274276102540688843867267594313451751659067473425864929475948005182157496297776880977772939866950576165698625967965294750889238555677464271814953407749445072032904077652342996212941907471312812540150214997028198835314363907791372336388187966592530088683974409000791060034498543940815396185528567659176978318819937467350177245793626485657753566980619359536971165987582870782265059839284834720049809007344034379566087902481281765208690916894168091751970264300576998720126356582851502867953161031430347232341715575789710221531683364085139326297275944343497193488670949342905488430509618168506021068149234329971282612639414193531034807562374577576781532981233381318856783335602623239615576343186816192258662581515553306037053850227094527017809985674763765315034264191051169208732354217156928015916680400973858702060703387468035318150217648229027748096889381979262661863559598497945130574061942018041486871624653955615902534162661019481993865695955966930207049702279197542470318893540217779325909972620273638161431336626207219368051895290517590984951193633445677439875650519172281971870598336603825931183771933643622421464559558065748701657740471293064168378586460549008819029378473619174346880078955922783636698731660341775729561352963200300226507521320454940262124136355942148447752219326683591462955887295562458346997688898518222806960092776837869055209952913983297762200484401333060019594271022279553223417044843063326313969404023674561818001069748143752724924113931344279207252666499568404079056819999906462377646373188630442745656119035591566762884045757641246917381144359169835224288832782028567897776971040164638167048245285231119245106561189981019606104460382968884649314582468899162194933946905659986084039299457769771308522972719817852430713073442938566457249487562912968701851278111659970384637463067918727962015313127661846803068960377734937015101887565398593352952965474923286373478463340180218066999309898488671925750553201560187412995129906632324036576313306481732872634287742914862803359735524494451133402454687623763259538250088112589698811136245719536785227626194489369159368656477178116727286884663438456840283378595513437987190233032312957183797972017281621317846413366928585129414463898051879266416609635630548159807940578295177953345810660858639686425169374997223944360550546750721651336141309732522143599336531483292147439416130146585626805403165125569573760853399737821346561330992069369634832201142196201255017436751815415700668337432641752715178544715500789007711056186995045606197391511808791575594933521774452140476921655615983146604343300531041373848400749498300020034983758638077325029168487308468008352067959129036018148600247576827183351604104337089426439844486621374222586790080356349345643869226039822612346011420777734045893275066842867559226413889915268159717500104562117317120285949689800845049672399631635771336169886589143175698451575586857269176290104061681866132192696511679146670928290500460051597570890830936687844091499313251405715372508132381649427640278648127237306091637911923164339867282071754941260040230646689682519521294597692525133428148466646231003672789018624471329834465246712409176277686118345293232379230297206167113865790234733900392914268552653907382245828121263236402460398690447476623820718547374964042981713870377586900234285321176579956069483410696080487415833974237195832607915519975393740315551810209822932507275336371062819528690458438883860926620904111709419000757785264586127498432380371366221571123473581232166920030616236081478795975839250934872555837048213926269657849640392292390417932221687117096486662882570320974551859005940935006795814756290898449991428798379910573620499312452350660131363281560360152939173111818863908700942531286282975537616401376895240952195281739114682995375068571080554636992563279028692291226777333826722987948441473963908769342254132062942945084853291596008638723369290494853163296989344437809478452943496657877267966615205727429019178162216753220969375972916761680899632727738646525268384388007265222566802790355878317324312053608470859431452428311264630523912312378317254232857537288383471765626066024025790052274895477736465968960616784783411595515613179356369908989886036658660179387796237797727156252201506046989229333869675211692306420834537635100224612369899685730554865709981710890808575569212395435395115669604756503463995039633026649108193886150956022760194149852203106610023117902192799194341597684923732934982114687289423692854960399170310875528019162831385733207684025455385588026977602444033302308191260414667822659989153160976426550298878826125574529767611963589208359115237041376991722203572208092886729651813650715027636444248009172918355010022729704766761777988408977126794710156865674917330177085881592800029168217305765300809478932924338293171351337187592253147512297144827210886230174082319390006205641200920638694037609589455458876146414798887998177242887726304956785871270735705174886591663581063066746034511073697816868286458993321919059827801205035032814588120341941003214012555229772465258348666676983984478385800583297883994908643553025248138640418739154675303990717706103242629427611985360041109972335979817195884960949562570724326764081629229019428899797069476031601975425345533135151580894897845232406019331489401897130410450182609628568605645213284711511444838779518143741116227881703460514998782421992659328654264717669388689165095013193512353693664472196766862180676598564390849956125146680101420468992515602401540084678871309375421067789295009197239103301664509085676590640996552658772731548607399426295409656649728214898740172413915391924739242409824730190025728386342531074471307484203997040313114383604697261544659163905769043333539747767198363947036765358933578292465939980778620782263449465102635180348557888335266269964929872423345201740584901016655291033260610119610777165603294664726152063849024565086782503762698149495286935560073072188914747721859858091217017478386017880520846465605987037944275938542039151676470013470949452161711238459026853875134190635452363642871914375315940380407787881419629476218560321548656239203782324656539811193373797655372660491107062748688438484203774121701663466546870607728643983578271446989877921762002186760728057112544115168551061666346411330342271925378387009913782903584815197613225686187518046842523212378744106030224494942688901359679477193777508260892625803946291442572973663493620006045741956759125533103451142822072604910187877346757841341037744880755955170912652398325312968299459677349899491509352226070430527479054528443368794125908309742105098331566932227921263199265496022286635459249979918662839659616009359043696816397526987226579150220640871121242616268322923308238735643684652844272041605593086359124805305897559158203451122143473343086275951944902205937782280262899586774008676138021898397760980490757314719955031250760980437535914891769753792061628574183056987270592890394712207853369705084854129930822754090897764577457982171442663104232847353017882805385946301392459614223024059920022897982240297427925522947104943229955667356538752197608885034476510145925378935042899357092292295542841279879540020192813532285219266513727102922164146992577082108233587810446107690868298998118355244813393801477212479850393460956565773478958581313144176259977857430328522005543907062062047444686559258065488090269667249776516448171381612511916467901348771496868992219237411353579473714018488738846931856384781287803319925188588254446949479253773498626151567201134924782184970374181203851402443224666749263744304786350048989466152747628120883523213038590779777402477788886242292676499923198515768740687065995761877728338828642267240952013928650274487761699459035191700955100337774598655135219056711691446951645900599193700159812023888348163297481127897179958330383600638960236705692059314895545043739848938429998131449352988785025444039770910595096061700714539952974727133667446683820858413959061857680218390428551303068332675336566317644213279379563162543022869396528832129460411196136839972716953378072703906733875148059043185665699950640227486066135778333631086763077611838472794736342288845150781752856625773353089836172665643683168488859826478518565751988158437344326691356364988423205019539895054718688099699587100001213761745576238541417827385034713867653798734755274770851302670820029835252922413326728824150239073773660184852205788731364246343843979279356335271250790670746405472955240396077566759282379391508357871281622573040926388725963889833021832238095914626499320846063417116932926438639457079291238445137867182371386536392667029530389191846692577682439794291693921371628852985500371757959207050896613627127861926829814604985099399267669080638310941341222186869925657439769267020961869768818285450162692194639869465530822155310187619718989301951519417541234659610973139925765833508936176638630336444022689726341925692729650856142040485966347517347326796336822733354940756869907437953141177107676515222488470115182836473777651205930766445494338698004346747524390118372011315677177677870678129616196012921737761044740556461636021091042236772758785504437242842342212359945761571562134643104265241127737383439911415921153709614794261926640284184109126419486712279578583101828315124925037305346813832565459555290785682276034832832587170783871305734657591819450235911301772030743303504447051468121445400326540653353432250824238150461996399744826693498856004928174512561971489085599742804201700109297827375014157491807386286883470447428510756804501105202480676525089915285402909254442139826396805852866069567012124023968039662884731247619837785636215392565579373450873276549660217271492094282145561757034054915700943003092745799663379015740735449046697156675372447911219506674929245384113421636650928094184658470327472694321904844349062199339986019674509840270400235190975159160745875131799178370846145630075883187880060144793195981355833369650464839230540153219314970947443217829547781374773452265632942127428771832685020181403680992432080095185299179590960460307201170247620249378848461428871548774227972973401124566435877639706929246304694339466205576585960232419526987104133949298604195466115278128057739846556801486778773207416239257079135613130117700018819762572109583093486200891319446334640422424783451976084290360065586704863074527824382509433489345574783846170181273161050323909516420571101709104749338659907940785125842814253595768057609903706935083958050194658534640207537172312563072544466998895275673862441865737453408311856897907719435106366904716500640063480996360721529553788707643516162148169964528067104402260424268574097810698533044711058913379620698471311331299117398167070189912001507348148005796845162988072208208634250429234794068836944878282630042844541485615102924635377604818268859357435573002614857685583929437126173293096261085320404334667473845794366898550508705271294651653569894168575551676514422281878096378933506713705604196089437134561083005092848772279236052028282693810660963829188802876716300426190986825033039072673312771827166269380722278323908830378715372196958413644463244676357357072547856337466132594180188258195504726360319113595976378315609717377224342331306993781387897854314152273388744443481326928730961139909612265700615106413252622366756234408615924165854058469276450370681448357661109509027500845226092950590135748517258609909666863853539693115222529314994050120130374632721039189106416787639601999746685869605958537247398775876108960852472822729467129204200439342803568613699610189922054668678167646048940246255064437213382522329882511881678594770706188813439284688203767930189480020802868398600581554295874022786874845148728636662812172500144445128594794085226483574872146021139374990737331933858312682087375968616957642147320726271381533013541735302105961480766717199907863556775564484350405275871146032098631551568225744942520813183559297280238451762063420900377558743503320712894030694867414395689298213752469649735306573454102406582798394204873313088441715432503369138876567184981850459184839356934002920300052231298625653488339896931668583041588120814553302011719548240980896679198382059652491443930676990946286853289628052171730448512537979886067824941752706151511372808758938365440363778385863024972786471363217154343687911321332073172966330368539133332864963461758648005749980968274539958483245847625008747750949882808606551994516149906193957001105727948247074224702594072187255226991117172384445619667902210481946241498115564815910148414763083818250979078214549061664025886739748794049906769522813159323517456853307600259310387445789652959555816171999333985884668550628833053696794881042701555739700694286308584919934713335096305797377232931610553904650708334350774151675366621877847586268445057620712723795944130999906127003765350839026896391985475798404232900974350157699151781008697204141824096965765037304375357023988865494395266468808172632145433327924353827464851141368715859257237218041578266915850508152317428151462573939356723617654597897744690534325601487790938650282000988407768628843368652024528902584923482456591514266510059294684185172857592841056570570373886659550977997946590696457382042960159128636574654619263186309266626711372685684533834306722709685602141516971942208603294737469820227025110468174445429675039057268432120017907090929261061636328187760484604784617156264417386076407374519048606289816764987436219664376975477036259604809922375808344577025391143775953020058244699697618044104479614395538302298281435190177814716431202457907394306705336016750641889585451403746817022104893355887617138964975208516000244031108792692770062460023611266980950318994544266848759681029600299421017469957762137033367021559754487818985070948225436859629536729525757172461427859175065493169029280972537508881765598977430520555837433213392661247504933684207291680025833897025607331849744071266607534222419573632328843363093240133752293972695765165756441513135144399677640383682467693029518621875520863439935115417994822553840926271615322655870658875447947209118468138614091360671211811733293089014174393476580307883476188446647072239207769877832832527791934084071908258595542469532126525373520099576641627194873527035665509211122513292217959323319312484946398232948303904835861895848152417748239292831693685382029613977658899594604721894148221538913338858934584966200079805923333937697001536580799158846715209019392137947873198191150398877498395116515516769382200425200873874154527548585967355379561435576686623326824733917464418756190313260608891129430346696674164272410023938296300344145230868909862139461026963410466702408967360153943890226260409635817275824827500217280517584712972458402729810261227079898915430886760683142666450248142848630020944426864154089205130688986044233012251212322880805290349782255878476724552381500599592478678830318890338569281274736348464341812060498109029429575171778681891791614566190367259944074960129162706460793866358634814445714219527992448443068982162712915274127478062323625692137571945166811225626726391145215701294211702547356622111862851582051028207145860190864168067244614474794532662802657852194720720683168992623239425978675754043043536551146207614261827735700608807813291872453116585132239923022143121431996141830518788913870514322050051241379515781104773461399285557449917879814921878405175064377863130399532154312299975923872626644912321105898974997441613877169830352455192763167982275900465028996986055129495190166661401274604170277291613415191794797347368852682033704659780745705208738444977266637030177349126992971204921614566908803460064624771106922718042423732570043749774900274087236040338094057694276530243884502534034864571114997424805135277851507410201455348850399554046028669379635769245414724747532867777911531315377107521387551508901215004155402307471604896191483613395998443422869181719552907352575347755328570249659911543590998822392341944313702723154920127393515789508888250547859597501726080332356923032089187226646904378315615913604650550611552152612222809122820646784352298229511543038418339043775408581744024388531612220667379118118594819841867944356126719323355732923477656597829224029515550070409829261596741319754305297607695761259623161045169168827792203887959818439581227501828186692164644238094110687622978448377838546373375506881189192959964138373421116155688129750197731702194113375336576807133785474341226281493724533444411582864376304448787225075116358722748210846586759021010529630991262739780947515463847508123790328460281352253571334166629429365066108267698644370582736805844703086750855373149295700212135085290629758246212503734345237904156360512045542838469125722081353227503954569827359814731519318695360245607902565242174696341104310725822500676574181242682512868966731502753369195704478411293352385377009703819278003776018037947561436680162296332205017929212812542885528779954938188835165079140174708509697429303600791054517387443671832264332834429439304036328472281245219131156128540770318633247582703836125429241200871410280336240186110720109917440838350867826129521714720587393422643052319224110756174611289699081645943665321105651413129072776112335339614000044856904821530701400475484695346275845248260287947504732532494453711592560242662371414328274206504491343264596850820606718647000419642355921431989920469405592085613902911261300016159677080122911852085201840490730613520918231078560322208320236354553225938744012773088360233179027182841058614557036933851128588053591597355320867327711990937136347315514196645623081533301922085861803016174124715142594158284140956858418125873247800945551404904071224473115577554757648027889747913225927570060628721659955880621045231643755563095318546285758253677514732497717289317622290702983537759476751260806989054321276232253712905520703483659044339849654336582781825392297245948618359395776448472042040023943450526035194774233675455806315677219781784603229989412798608772232543513808670832954399521786477392849805097379147928545617253676513346941960643628043600476024629048203638479056838244008862564504605370626961073290292116610309792104612693694316481870394315716282229068482887177606387879421463455499349517660568497585371320295746329390684892716584448293692990088851692104224768739207880832584034544390967766449612425745578874874019792030216877305127303588217856517652672827152826493386318425407777648003879095057126066977785604260003796390972814254528500443543426353871891699597011752539462576162174283102038543353731369765903914989778434887303635026560763934617432178992488596563082601591669969311616394472363910486831732214369241876805735938624396136079526302665117319155938939096788540662879513863093224148957674894769827490949465411151312452320699774055671357458286941829183370827272620479085392349388269839827393980581912969113393809384931753123515016254789808247100829851466490187591132025567631097584394303612948033722366235203324833217805132271086430264890312582480237782969238331207505102257371310037193770157798904939843202138254324448950981250760303378996903914469451561499490884410202139176352352395939006131781309958418626784638094240204082066984755223484720506632653726788552020631485672454599518532545915995808039320283824087893309159609880975627318476337294653694173749182943600299217135711496163187225543741510392377334189669489560536919601922666584645133033213423723128617151064285434675568681950647862558038740926091872962103479425913098188045001250386837064333840393322020391685476197046292373334010119046697535997326057444242188406487009299958366361057334266583316211718283511254523717218634270949916278782564837536579707613587084131798116929722372564731277269376499261531737923244006750727827198915997061656428708122023465696002235060501623974888908066494630321314677323630108246235519378962277349979279115379569697648402519746343374829549463061624653622220912719326528220587553198048785341228064564347027719073141899222874776322628484932067426091985912786464227011190187870019910274374263629312034986322148870462927550617465352827368357340447089280749478418447160983199183569866420717584312803622187912107245406822184452975173751405827387567746802464506523479043086313026035468826375755350918610339200666178549718667107733800405425258251517841171562796209428656414492905385145643611057194919441683267266940217625659152963557835982754428039763638216581812834611724880003729646247080464536583416598429692589824444976071738898653878459159540280839733626802719221456745188003677609953159226935243641934430256671730418838654880538822071456233783909482112468872989945573822437148789373754265466467555090770646805505054768121278465036376597808116506482169015143738834682155020331746791778446892136013407428148070472776648120190707829932971459577458344945683437024647819273392002071434914024729043599818454636236275672376237413933492746958569589149245553378457920915110138740886508010190927391081674269930833166664795547308365661139112227436292667778384362517234285059340905730302446382516118698824181268250661947145936613836450815858049532911500616360829951607194015633924668592709491520032509343623349068333239942591669616350750561869306279736937403896769174763308456609054459770096037461299375489278846769193880629892278846301248193588284701296022529545855109360889498565552897126030476009966848261559599967699922621733272103074274936133923156573836378300076218901987467137857782381835577918622677206933652029667446448489933453876343203932496753159506347692378292022967880370351840438607233519266021267587227621630384219358786036921194081011559086747210726429575039043475761851874335832668687768237928346538993817499272424944318375640016709052832308958070521532582166825492379561747549955633001063916950492682548267141825892007439840743571745491096241616859465041553222491952385363202391329000066612998883072517346429758783826871207203916320917597464882198466298571602059745616984859340981044813122463545409066274999880152539566867548671577724404628913982016836816597978137361214570550093665677149599978108988014198479945148357845577262812466137483679571890670336803460491982517298424077191883578182369490647554804610703097464485259211603258133372711884083119601515948606213683148014739592963107932200331384751623327477002411455906675857947311364475917081348661549347813615516553174942963623731301839389649488942885565185614759101347831726766909208685518726644956480098957580192567201188024255240042392599787462329356509288035095611514257001711715552358524772404861472626328728850393888915241772767900634243831626770548064818770499201974213901028541306038883397487028055361400975948607435951811401350807850245891000783923838810960717574235192577167726453874086217114810339441681180231783628949941142348017885403478883361894733570411461892654811576208165947078836528803158497776134074651848830701315990015385758221553247073502896850118637095863730908981078936712244256252460830517786684904180763179127677910365982913453756034263507726189722161318232140414639452972813754713711639052386482738083597607879624123774107860582304912757222984632574737761720519549808942686339605147193049148648590081900796425127103291719900771273065293656107056940215276658137853897426325641330437262534853855175516723362409132914445924274365360225380439910171985540635829882819857679750332061495426285635811006881001673741718292857670447060775449551607491412198758123694868172120407808261402823549041701224854814010904711767800583462496792487173819442819316971999079461739402641789468242956226964243158941730175193738756835022413661721364072110145858780474164362058428802321266629459864651521846168897985116662457263388372826195470750487946468147291141222171800483857002304185661299831610151787928634984921462859045654697557887923917045277866839385496183795685558020265233353154344477130382789690903040387810981571807759963816054997368808410384677083722490460613086946425125978790492475694079219671430233522020104764845697220679312078888893371718194819014836123756213072217649249815170165873473170107195884965926085289678867309761347829120454885337112704184024360708436696878311978197687615373330711799576901694419134685031748133678351103207867308800725607131331901660791082030978698113226297689789273431418638344187235479638280311124166962284170402148765013265519092197849753201806783500292416752793032344301333448837978680003288668305838959832402084772304482521308348747120650098254235462773035318609938792311470319480619847564177909293486098694092333563760862605156510749470356422538333157598695158038809590157174912136078426270544082419837623833515894209639687105391083484249462751493865447429202967162295923951949078160515832313290308882500124784952031980439997245448533825955877968176116167374706057366395962813916902531851777890097650987254223764208984910651622273994226830326738497779506780769166471461743627571386623736309521998017466047555474230049955140165386341458313986201787861412690707404499924800957979274168543750821355303039949298078723464068462900779054357260554832332599951622421268823526607952075980256684566427110858255852037641361650091284815528246458271432962054921258306196716859377085696021105719474954782831490424717448558725900541591940123184974843554635987163995058324726523116284537402269245060019325570413579924980936927876008504068575411717747393406102156691767273142376701877059654119181741754800061760328003905248774019852956389879621953125377314028125715691146067721613719540296617046411036084650765533821109880762966206542510467831312881414711865706215055738596426651006553927806642240882592603912426869670440980938747995875697159194687584066294737931502964536000884427077155109286444153985267214670997303892963529996419884592009432211709405750479719918911443741064590176393465927747705058692189937957271277562511990826622633119453812702146890326819268490899744564444640735832034193599066742809536578490273941711321616099796722802244312904907774875267401092130353800375323956226641869413334160962573282839754118383916419384304813177067361684059481802310634704016087857118231689432408374147716334125028619122149026266055948468381151027451763766838402611991704467098280635617607584344688503593528861060760340347377229200517114633358250425217271100978910224921855414766662217657067656390490227804345536424278545471236561697354734210203831151597514110711599111870231078499190306184008589631700391361999407644992145580117191028694802783745473793354642826843820462524599131648337489477056918922460243014288344205700934166749675951248160352238996602673571489681965434078104944521296229244979383375725616202349717687202553907096148404242283192943287345197291485690847826328346883781643056980346889451600325308339425929681890330223228789237109478337138303123292546596718669624722091773736298872834198868097252926913367150634778008421286069150266835363687930220285426191016324756947511413112969414241287445323040680432910057255913122161197930292658483609057786169324509183967956152806989265301275578998777387926810637779928268550384767637349655677825386213208771642770720956100060638881865174406642448381747026048407402257168204378815134685550505681175173625423757631309991250382094294059374978700596037378824811540684492664860951340685088410901142787690806715615085885976985920490518474512299528082991618079860152498232540174539337568131131886992583917212009234025675475470780160778117053880647818163242913328534097161998709064612478331864397925231848544637400542998883501316214738065412641647758593918904033853913471968203508648861852696619737627950126451914841548161362559648514942154978523816255991803052424070298045848893520416763976214799747789358431956381859601501967656775262125792456312951982494682492828209069926231999660436558146203163627245814300532202373795709276953246888300956602157621325939030572482260485409225882672305155957574654402386779855949224153603025675002545031089366777984951031229998231913847115626036705258890584796534818096804104959429163119321722324549389584607945474786624331622558412762022308173142367053586295573806584033197040340453287551207761657830368733955583194523880375769250055349067689990212476494010296791264200958307029592727291029956253878861544008860489470117230473985997038442308363381674763049751703238300113252064849355079764525133749229665713615627927451865443042275409365878586702747192148809999418249947419992893925937532977935213269824716987134982909306211006209477334442690220071557838190647730661770978210295135983883625363029968689595675248626960066312084334905751403266995532184868546424740298862583904459363298359206317629118566463471398878181653050667503593600016033105557065572336286715335909970537206466069035585458939475862597672021403385407853503795193613301912959508054457224823853190099380643217956057648351051291460052454074849527501794769265757171896435190237366243594706766638577901370974126983891002080800117042440638243386055184014407810424105387752956741219067100162425099412564523435559669747170611074889866188515513820792533813924625701749630953771510191591348821580445471985668667236707636873745420823770376965345248108035462999431838376937314402485858328996541013341145825607614961860048338220528377615672234507937999241322474542977380787654002456135447855891645653072079423289190583746008031705328446676498242469115205650940110052321437292304533891347005901572806380565599511668572943342068414593307378638583140887324352568446336241583703393564763474360873504596540847157238362068281026889945522221611873681809583151020693668287792257378738891337856803204107221891681791933746951324013456584481211971525206762111016022876141505318736071650692835117490071778605383454577929031323393294166640424149823963650357271841890518294978105628249166808418129450701257187568873136702641640286944875868278367336102022047175606166329856057954683589905125619667116972250077173568472915048322973838196313367238141023662086191862362317554371641218453142208362110301042078408590078006043710687598653703623803687292719302122820436035758812774441523637590000285276645326995395129851866043371410307552409563513767157007116339315299027003066076968698207858061019010331517628136430418060446346295462200642766372775525191749310200783195835907859150137540549525213811785056980015089577489803163978258919237936153296309456920030798711123539277381576689936784261004614894985520840123337339590858035064126979892499260006151709477047793064455186635516262974604301735879708320490360853440406272432475830575245079793906348452900109097961493773511007985111832533801759930062863088568772385120599709433805064234852831885689075514038660204023977337947571716567145068656338374701369447263298244374756218912349084648106334316017674791109864819217172525612730184422457202822819766951708311529334280914779236142688293838373265120266445855817013155988959422864390941201987379015284494731327897735886392749536265314208987506438559122017112453781681140827182307813228336975923824270275901740852156502936005642167815267749602092393581051500361249781722976746552033206376633317112373550523074681840895656028641673716760692842998508664627324343221582582347101540603496806345850315342917895298816062690151495347865388759382136278901887984710661075791918066361693330148405208738493064746288198263181571271145875169698529602295793213340516564633428980711340384081799465715021431631016227322055015697887589826966959142695831772962807083052622390963174643792921284790292741431852717734868137136059842701127797219294302460705175772868534202574015907448504964996819812781410407597443457336712207280516360999687522192938988287233759303542708386855343651846721071679335561430189918477723273931336918401650764823240686333361091245656880787685986890441205177264846570035306471219969625971549513507431791742911899905358092194585650430251567940677011478263996015211899040495745112010112966800270502335793467514435377308735712981821531316328169106179998755184429952611482915665463733383235609821938524588906922727597311424001834635214126228881499696241824798613998816545826404656923985186531613120623720159496453980485149512168415027582105035896306673611832613748285021326244528007341630562924439288817286698840999308112734161444054803455945220351891331735458162064451855007264671850200369521108642212990226345012687065163338852598245467741219696713309675724799096475705399294118787251405549089608141912419702217822873009026437563030409939151171751407259522348294853167886804723975723660391190199982141002313837395586725525625112341983999600457656426321138531733874930524139831695989657261292713307794860727536584936233141790731347406508025228343231371610595579111987303735360977926063466477600190492628870446620995580211463617619849730152546503266976107383785184321271344258274551176874284849523225494293192513336412804149112339086250878185660885954867410065897010079483767469368079567528736079360101722643262600814643609749808416018344601377711806593498414597459797600073298036836037476740948041854272850523657556618427804578122866145992844719741606357563786047058816438657244432363771884427622551341145088821035466564386272361475116253148959208602987517207540890719397053007754577879934018704590860410459189524100475049432869157892558691991062570191502428429044069200107826247619531612908766048282771516552663753671186846383519726294499808933300335778719985324613253218629048962670793769341800637198514825660518827007357199163630850332654080083184147522405427502460897448660762994295832866803375326275537773084465366413826086804368039665457167310784334340791508059778398092999643435823499710455752002685464112611899188553606681755163026300235815553260386429203878406305166740277070017744848520998978246769140126277110525142936731964880030888412576648882414317276754720694230454386715656325793331970417753651795108839875540973916498203967400616717311209323629508310997635388945186701457111813571389255684134808845108309643573862333836767221542450864962285958769412774071190611291178882220201696468425147489902810994669344551574924324206732991977421596866935147732674473084723800231832099074481814378085480494573549040712149883683681971984976657579496314700881950439773648725670117023185165515828095314100957364747119164766655206467182500397297656509757525313332864619998554549273408859986204976096257416658496429536696584361769538546643197832198986774756064462816327658750893830648795094719291765779132153957702116229114352533591286490952683608953823477469051821960142384836619521962188038618457535909537006304379365799232417895082431705535605920774622546657375701545382324029768753970266796717547307136941008587803048269410969962117259166718366643561405998033270169849296756168848861736390444423844923488495092507599469580866311241224343018144097501329152735689813266839990551132349485593192008346454776553876085143791178642498193289102784332576787380392178801067440719430473045075205143483051347450084325430290637148576865156978747903219617895785092545757350573272421014458381299509710195668709003155987654712972772416400241660421107814509948294538012888337678960896525865311141914479871163365884608778964600703499656493663527195053344246975347028446292643469066499830946664928273781338070409675859312431555206146416229314447510853984794756813072119115075052095523324033069923128809535235373811381522350124688917997817097956444210435331930755197336166425130021693351554078337442744633728342920859535593924506693363180927162405411628790998555548064459799533006212653839745284053935178160066615503766699664678816981207342566024024071818187446560988724864995577373411716099932043485118201636940884954752893460926136846301732746159366013361106116546414726293557738093830252477110786572388274716628386307771277020186719816778018620549216813438254188795675161999848144753284795424874618085260974758167467870269339774295233462358986797046247571388982480804759475206893937473838775822940521335302215738404490004603687676921321343468716768659181744144296316055116007616021546046795231279385964609696471435414239740638741613224841600878795267000680259726469394368795270508336007473352768903791557423137006095710949347689399521951258129870758747735220912531118482537957976059729507924277991760636467799911826578120929403110849430972266984698788440125511606698145695032103755809424873570151825234678730065918261119988354508641639132423676109811024575479600404028899214647177599401220407812609110334983781650438606074519143349292887963096476599606836524576829065706366752084584516134406571858500578769416773507512771563204750423549920182372013815928744192425023631173270480250130627449681173487567370020822694936416810011965497489078187490122384575246831115487727883036862859806601372187099663745579764673213499869697448046440812173820378400773913785165214652728913775060591769848767109138067142405615395392866429175729507249934297715569108372648746368609036463959699462779743868102527947945132151999117134856192229686216869171311790853564075487302486906481685895303924826616358711073825822525466830492313110197002365904347155572794656127223554333352035588541681223995145040825435041991384309547260699957513004706667141557825883928834965314397486644902126890926806295027932764139737947006129719484395563376730723641539674096792427517591086823831474541648018772645538430698047276033238993005516281106045951326511402182458330728211069570713580142376250336556672430800677829776780254321547205278718601420813534511926450164064230991214369800965580951025839991258524945611676220644569744961496172907596665208754089736376469066544384510620850659619039707672983653381489474459632520993425460533906215511310647599111704797718439611569132629883012503014934841367441706577351434748787554290434175332964580626069637058397123073988480856281724196463352815514852868272742953434547439025076005952680767692857425780432188340284694541029868151191802010615927228102924281610424271523271175749617316240980089276101752755591067514657300799771971204908602123209768388760998196846156489112275303020018942603486751233218898363675161393075229589105047697340696582098549118722540362718877443021183820173598266453542181799104590146172300836167363606415578809389842550776975120957591816679510257798579272738928762885200896838338825830832902654243126837839927677905405068722758214732144091671042654511055846915909111826854582958071920605569630458193256069343986906461472309066954564260569832400874377327716562588397291551182449420742160301270569896449240692891262588136733824021337417145547657411604417206284122393986221229013818691638612532905922032183815572817055894712163068882820349474300239167184823754295753439263979110143066276918114250762325295504427476416130631700171970699556118177831427643349436540184888731583482302949324228206466982982079295004616267405380169656172068607164685931347406845512011044087786660937100016024393140533077061294946231757662432416859284958769359460500328844031606929312976083310437335730822004399334780489344172251633752726355150959345017406840807063471357495313554030411919875449174538620907217195020738083767822389923893246184646308352458449625784144270817298437114117276275827492858217049146763561607843572819714509977496112762951019563892364817349136687973491635395752910166725064164056905515838771708614880042433736497154435898180330225316514788140798829475750369345051162100190866702809067362171697006412819694813289220979713651229342802557456867152545065755855322660406990740590594382063113822967309760388737164538992533447299316635961254907517580210772707185116638790680268569715246563083998328136544167497721304183708344789507568633726808839563920497388270559313434146531632702895188806633518041608919880813604340055348467277071002392575644418029404694597529502894478289845967735353728070028330544501251763680172675281854700374838775429315349169943229003861683519167455724413510159795787958665818693971788279251096109454876586073854966887674950946925214190208356097821969393287608212433883632271157317564767316708899611149815426611761169253179317760728651389265242535229029479830998982459993065742793408871768162656596775175016394097007311288462480853619152073334193540153588330442228323489002193914531543371067735662549652363084884979263514196369224404977538875763778633757111434970879039109523372177880993460170200654732776937751990411605819070003941185747157032233815305309659222541333898201297790182305646152015416888100417720163037062567465206939773219191898627053438904947945513129258202572620439723604202921855971714356313687606571082307046057015045247636608686232754747728645404585320552890144081381794117594414588761887454252348786562861150387545500369227120756412364671545511976823500629343379035271890117527119050029025430643058916400266002632315894393213586266030088484263405960882748838482482132521168075381369057101236586916416820110958646038833004769677610252072065707590009340737479647541063710101169722184434964036427470310482459681125338691522150109664757500323423265735958026934101615817204150699914388838958968371418606677040488938640834269099069267279541077990240284516753347768049700294415189595158681514131264689436963861732702313017525035000855909122216487898869240766730609299192048066746673588414840969878699173201157557470705405558502526640869120714299328542916522075407937690285535576573840591535451704317001006526708424619588331731707248683104653561717854741331712581948948883288047696147895571596184224627869008163641684301636875955227140395177787307685160130049448194017638047972798942815090985867880956545296715754987238019656091192490161306433776470586293121644068253900629036829640161576637126042461567419348190564345104493263681079625810721512631197851263251820901465428073653188199981822747345030519296107891909724640115392316492023616950233061172741302652208328388873842635621664295696924950918502499816564291258017987490612282081638256601896878136224414185425110207017112468316220263450457301622091434995740222661444847457535340316950312328916565264738923261570440063193115966195720257103777501858681207678539443306607519262519520653186679445425176711464726609593127863911932520216042320481768205781050416908266160147547785944200461828971096781107777499426500311531010955729550175894464263527411420797091527795635200696776338003585033228615771197629587122345384798098850859105475087827248323006366843877379132668817301474320159612541894068522041240067328621805604030200097910728305353619011016185477882498059996434981266641093481521408467492508531094437751431045663779124303479362206940389274469634264002479667285151577225004457557669604457224371123828790683667510836445629879832236256887353689648341975647844983252215414816076025801814194854889308309826585476986515068222097862589784003908608801939718558712028686804108541094122863534524907973194833259454304736542935618799442606286780194610001833761485757774336746911648479303454711305952639078646021892680065117083994562929023370859013224133460885512872277658755768741142072085815687213746700958966802063512156030365661023305653343320155768410767147938911036162167469949086964815749108534498641188827437537425985282756704124067844541678257268947147714294107618118817023782724793311603265561625056412953999599117759391932579465436490841822724858427124568771150854657061077688718949570004119621305841241980506115089454995108882902497457289991465128407262295440325926360811505673026582538142817760030958685055094212753290994674049355471773905953706878347607916492995074510943073595669550548466302443284087282415554249629906936109675700592426259522998318521674697462716298617501825978357495745169722631325265776893771577063924895381448788127676877873265297501911402400598320076232177122734572044145969804147235338287536230014323634073615654847770237248280633838768980967209684046494929342330949289264157081693021112403947832810555060633472352517093675965097379167727987774748300487692276740160315260139048138604521559014288182916528361775277881392671022507618661427894596132099752859460956393073134297564469946011662789437833775823909606826973160116350947013432870201108097535061888425313154745122239881868865955639351062553965209431534060398986148791706338281382490963140282248376596884941335039660275411778233761694129375622482674953655620002546546914895000496512170302683204634974417656703727672364257796796116569426898662672922703593667687572152767540500248887850109778533383119592593370455938156180504236092661554254539213689851928592877576556649971719164001293059530639058189698754851031268695644659879285320619646381882248076822340975485300886139293756716331529811361975033126997259893429384574616365128145509398486704595654952253525975070318351925972941414672383126668450832919972137437997856719827436181355911982940018680785020874732062884076542598251038627881001131262617296030730343293229514262037783599736628080871562671840835852526223337569257736191640007269634546901715647847205158362463715554288806940992297517975163876684101960749200519072622199238334715589720668799643676050206244322014869946379742575042608695213050922002267287466463457422422057622103791585913893694319489281702847170092110838130356882054540951659082915120644628261570947650044646294971467284321738962549159985885680302328921550031961885588517404797629258884472882488435217882272190409667854481814935941037143069145705363522593591863001881667217600720659158951974145478068811495634485694371809597607456337652435452517838141222654562996919662113537965486809529389360099837039872978020528346084132430625064491337977774648823253562253919964488579310007829360304332661648675530503325995978371023737921714422741428511080475432986889713241972775419167577511189991912309016941876034810600837130578586303050930915831816072712815843600699222410585333871530334685470992364243757696673749964594993043358062404253566276768441639400824539921378131130462132480038475576438618509195662861521405327051028527022957513569089139599587439483584046276688190032192774006803399314643201202098427536758879263202855022115948815303991010598409355918324587909190135956089949077742569336663267167541718487157021341049150050307760106933726970592258484984374959825080672583453476332817663372940746775082723044328880018613203761517172302865810385664091566461014728342962376792669893781497801073093818940126316798592988705952105804902325800070041810456815552299006363039012125621161298747947967547611160022482931850954667527085308898685566043748412317932651613404446849998538505888244588163846832579028733562107729053098581541952780259563386914136638938470091843359190501928134863722343901975965342135770187175615673578888249221473120201402363426535695339395264174033670421934699277474428093351296749814742419781973229588852309922158233795070437721933990313399581405148098489622233416084243236256248970212639936893102273535853424748736238924327829998819918196835079296005594814588899906856443892959696433650163892261634506217474985191510971759946897768741387612395596484200779636106548639613268799623669094221264268271784638968181590543340296108771026983927459151446200379375717812027335350239053979115707944679660077405681474957101188752915637920949579860062117353302349927886087749096283079061395022780054439890408598377922353585636791445875645612891127181298334187668816487062594764065348700166622784893866417180229790217775971882382761852422766773719419728576863206799306920654503813298578708795032786076106390093747630626946156505190357322058667452864481789544302306628764376419370684425105328536459122171109363439685146396388988890286573418824450731917321252133525516304067847516075167407976517776987172517279457652811334820261117569334224678039633602896347652608535170729034258651250692808967236007282920055018638405336608285096336389126472950729171461300847879047596045724142669879949635821832222310500777644937996970567485865861300584235719408791550949033764449873358803857979031050416291028127541805777126241073930666695760574476044222366465326061142050686741412843343030863425408662499096101112113671607748907974597470879698177905859632087601459691745562772356315473429770845800603128130710080607882611711717491188076906597008890195058316838788955523194065626733050298577893844338464961459650067143683927539382143401387208515179288342465630296783767142739666225585043205026988765945290454718309729308080646996036711620277123118421663221694421553575245195904194417575849907410078187673925720626800871817580622217685053043447575451520029825457240820201458423312976791141965895981076869504822092516424547755179526064210158051308719230017689216119727409292188928702845465161178167073125060776900920238731563786881194746219958584437096781635342641908931691479309143527221938990062996846548035988874514581376734227756761287886637345541170668154758216090577255125238466396031080154515474363071936392442069051308551429679007015761208809170598773970732850004071279812133932181087711696880390543840425790206949135997915279321360940946283542339112735186992148418314607983160601501623329420530605521108864383590097060478442810889650683753971790633139396156470213851568227588608754418805993694326888227394485895035619746332682942295378027708731312855850535088906011486749280902931952823145370164810754058834312586250741428514963775454075440551300000791651042460140517702110322880205598578285856596833561073245805495995729094638417900287149085298568436110478172373805234205146990066328026215638854773364249408399763104602788231816404535543307059435020090927798746014785733293117275906678375736208747842231052521576209290098055756297896634674864983270544734569541202022786557504913109296211149367751827514950549372107112211984898334408074539046395284429937913194634553085114549235996364219709891853096386233659739676841077346689257836474987305619453221999735053990515447979735051914612451781609130106331525855327088699292432131054729747446112095676887313447645026269621443400520418961720056615530045106108379134057066026008674215729554743758079142315381468936320366633576413881150452511739256591368643099179986841588793527520347572519992388368597610863824888859059354007901949697624819419841033186071074621139636141746918086662143839192134143508185367319052284780360564193201333756405294030459982087220137075308034798286421950152221306219466678582512059549293517643296968429652897585230972725092945356892915851673061190382295330297520995632081647282809223637891825740552979060216304851394755360071043374598877269387980892985970968436011460218566101997502810345697178214607483477412762664121236464501929031856026902087787228400749958892331868098759390096531442200918995218939372763995025931938505802687563636093290832298591255740209961913712357590662073837135769239220763581143620545875041189628742243129283730429864722658459169245493453456657012812636007218821994298453824731930993790102281558598501679704539422540101987043175615346508992456867300726906435976873837027525058754335005832406142963509243055321387392156918441826876831060669101243443828171128447103772501631256880811367474015222075585250014677743043729454273429657041964919841684269398711462566483892400993538579507223263007347202002541202799688027674594125983432377935628974641685688578334797660836161700433456607531184395272741834742015824726486589731130255762931149243229993599544612087073006133025467304080635166423571790661804648591245196259187001264293332668852259401747482205853060713999078241545096709329571953737611909820653248476789148667477602392678481842656810825972103444235819530526112188413411449746715924054485938673136063474833615423316030637016176320956647924860878167896836863820616083542776922826762355757791854635191194648731806216500702764881253014703429881182494557133356466115713340713188153924108973056777756420567454728414587627372624090253866906559861255491767337452461933269244791921754652543255095856261331751738163622698053860605263266651990640325489978317370895420420423786820901590862211573542440779497360071974724810261595631940764929498464191092568317561616675704466660333925378889861220285359876927807513747054893485184271880952694590353059821826105827390437511376386642224076996263797684937295743117006520213042098699788547891929417634565903175269151430901591989599808352634105935179446608930022648045114883984566497149682099225760903050550860776487328228802059064570657374321354319261318487330961574198320354721016286447365060705811086932735743386961513388973388440511481626177173365604920572231412298162538911089904801528044953021276609348638769556889178961038547839155003075990587006539269927126222191273876266941648844429840658140621315914442975932367778229332719519968077250318033959468668200588854679930556502666249960464355907878165822413902018038941637745444993524980112692278614574592761269562815651242074221512116418644659025390893193596510228335796646647291648642321345443917644415386801459006842413411053152772280678132535617677398823046215405641726514610882894597938299544979197714098958819218874244947698334488425363482789882791626083155149009874952905339013940653549812929276409314298084359963831944421863409321030472193483644957729126760901389547603696744543294903974501135594800710445504362705305054048366004549335504508223303050137217049527813954948790148511974108624085559448588480080102389840447073303529069232885256368181687335081809518542463300240793771680343368646515202849950352108441694833175202634276237241767867481053260322909002009937412643407348544382888538790809776244917919049906377731787101388886668560741383114465965140980877628510229604220374277618206778567588250842368188127541444858379545114741298824930665105264441951322998119217814157924693422280838603866930051634383244195637047054587510068654716935950019070972575219343894568189096826910582484844771753139387469655874670746335692094512709197547572519691533515926573627270042745569131142560713119982443714408256080518472739503305614920438118270584848938423483390139285093880314034647222097747929990378868300727811971508891611838849527610512546774479619242564816321527843710910646159448973058448950044848912338958096126487348527753684145228636757412237922208615469592239433555125268040308967582428749566361759774044232294851943935015782690875228210489312740168158632511339350382353031974677243372494244946993864817534853576797440824336683541178523991913598126689210875011101404423089692492260126470212326817292338634290721141436895524023577930191236312924207789036369370456001889350544413089871459493162015955462463300116772136485249576654793753675613874828479876220447165233818302207305182127116551966524098506253119924364980027564982869426312923651307222140123300918451137410641745482278122322928164326079491515255396170554587792996651608336658153446294497946014651382567962937146393508088227042711016499617256810399644952701257154499713448456605870693035386263964411668463979473657282184814390654559357386838507144228033229532971893249476415970420919299927029691792385532033407769889111424192650256108314663328468163847728185183880140634299387102733251357421597432453364113598376379583359161534451015964770613162165738864987764510748785811218389065960890644177005875470282932382622732446895296131440118481117871122549680585412124460852247921654461997949564816310247893828843832837032366421903025877707353918379031009483984929656539120520329317839334173819590472217035444368901252969244434558558767650143993303422203163433899421074107164739356211305426534375867781650192756868305669546529751512483689435384308711542886642201860657556298967393192093088437149134471068105973833449381636978398322324761235894515878604937495154767760231177702812451713437241196637482486229176711658517636482911037983795521054200041930238413559222012384672220790172265255981588618371575086049282595341656217214850829173328097116315298667410550451150261519253460382146933964363044797244216599009171363145345671717754809839353752472280735944552106769957516280096540908482958663684228558533200678220434288305856801018975700212746125260729963260297944381620937932689211133826960363506726990229445883540689688870067538864594927746612244075826460888308147414736582102423117732064604242754208961194818389280869760875415578072111904940491151805648417276617916003513314577120604249254532219486850740963229379387794928239056853992244050212522093011793133647442761959467420703212892610457314147194809138971830473943352443874901719448199862718372671809224361589461958132194280690290952981542338237461014298490696285614111704812601967296590587679693007439100872876076506070825650540797795693024478955358507213426097226913734583703978997130698958893115765551681029128034604296056206222467514370806139520768043075698324278559356413337742774958432873187836679330906961110721757715024536960440111138754601048380961775797845730219656344562567976861785321691012150475514831886129711110576647579138862126098456444817499501287545607066785264901107763366682046927991097662276214203927617427294763750161866171998873689072054544008961925084125201041029143510496420956287600025225394617248889154446178308488332462254559703942645665349559166048368061516575899805611014831512933830031399842189828674523016571680782127320921549631723210572232084066809818540218899707979394636269093404397566619413691174560367010270964717029917345458457971474479234936160367203598561580762528395270284883840542458723970989009072373817559094299250011717509275204811277193178087754413030531504246257431077770822657450946772752034618029945649987586464642883707555634331784379144480675555738260610495584225626824366254189281360565013344738952494047548652524490899559416928193922165620722951304219692803784287595199051583296475620183629821139188099070289346574919484301086200141597776210451873176457671160989864022658790777988820807780632694716429619713239337221733927446328190707693879574126550560648974856482620789071591257998184250841805305047990281781831515332259350388320771638505118114619618983018555824598232237461880079406836220557557139091161946159187801214297195955693719562026134059616372981837092171442073756398070483967098856626241300925330612901197424735799186878143796768561977782156711207058556467404668785749039379910158973116098129346444107822788290172865790124600258939217207678376345362906584813842232624572785926261926348827827758881687124214946346035324747086900380390070147336644685819213642080260677479579947489958075809090356746621371143371475512404933971635567053726542237438349435752703791305206640226932575199690582298362698478316018369334315082383744154549170210913574008905470395117103052218118742586646625344913948824278072611128028713783165805687436331138022425422904177183184623790760285697665749759105814809572678314592189944462679867302405988524564804196188305556330105190374098049046745330216218368683973901811701557184138635022608095003325307767604209258212174999730341544687816424043803485203745869879462912654712159354373878179058376715355900854676015157369513162226394449543956638224881445287496157642727528248278497721670810297835282848712841811262544951256510410499957020406195283370472238599112095440941255749043196769407468094709388753088599570400327067901012654369998061609284183930159643832687529581039868321013881563250113833555935870677267965947597544270734673755345802389956481177612360746778086805405318652735473031359634497001682570234295493474389260479156674312560050180460124253191418721653052914950157024038761225820007171996205842176733148322881840239932800768725813661252475574096651125608751260612292175658088439190856433987211867078111363702490346203885690590703754285170982891902329095785590561575899403617027058950325476763371572210896494203835972966976220824595092819916440316787947144905621911701719529706462958963291731100701230848730079181615515857247537158849779407084426522206895576921517622670307380748642854247600243058919377440990639529952635934650637812334746903487001144463868334818760486437883008904928134228573014606356119954882503274843664078359891574684542598963696259242776993760148393870598343887472173078135458674003145816404496097948180792712776931499965712394203383488751688855286994144701208348815304512731875277402851658360752044536237644578518759336422524904393133603706212682019150639453155268620283571667885078451780501190191160167962532174781492044435599400483196453595906150012396222736913220877369148943440897805359611251612575906870100997417073474071742814010763464958766972846939457164562621317976165749443284958933044489823422294660590367518988731816244710937240911506247735476463061145189145875514912416928421786379106093200474456492890243157096315765883694615688508550226722163193358337486863075744099739136092664186182975989828215840437083636027158739057029998220459688632400930535910231829093521109661032647729798896309347811612758355962084959947034007847871607959627349402826255551657936629133029096704672555104952021041752765016868008917753267141849039466233187680568960710285640158218026498615432296715688973203521149964921856835596356256507065363069061328774444009004233196551461595950273175686100856190516814728746958143693432991493271076240636668872374499983427095162067522856238706836542900771167700929994170769568361427632929510125926155528927449450843690401259503406850262884383817281971142487599597607491930803387947922583840612101191037705653948679132560801085870909283264973192473805402644046984258897009022832020483511820656750661333857023578598306448824149861200129307588778482148296269131105162257740726117252604103830159173830667116803901498675358471459330826160627488453346066667317859423256064924309652693050078574607625618646735841683958175136313347958706038705076033174787002666053459039645116330795388926718896853366398312512212372522235960320632765919442101608968296216369470006498412811281891492292411223177086076135619396691117918147475642901303139258465178011508762608435461198781778177559653083524703830279951864803926662172005235502524053936432401700567561496362646344869654104125594804672130994649429113528730854563834713926029119261198027081539617908273362461468246255645541857115956634435424673800296190772850682663576361830185423729541315945650773644509853311903318423173012065858218921551665946076497396650901767924096749984090732663293133863240835536691648821885517524176654563467345155978103724303731944564767569375875585265374383242802455644070015242368613563686088195569300900444165562628011066924605584347160199859877080443475022701187383562328779062513649239194485294516291500421044457797260933316468874749327827542122162646465142982499660322969045738802480417043939824592330319414064381312082823999233527374125400565295157547415479515785347618459503427152420075988284165556527957009974031402723078386996796311845937230119900547681192022509271953317929241268126557997542730834096697713067328763983516395663674295732397036497069340323300395528962013694981761183187985581088618793767707735426625538632844141859897775044538261347283343486044459924230971510953784244057842843203028705373893749732964214417849941130110917233096496789460660121007629365052414694376960507604619291650407171263919098052388429417087562930000358927364385021760107882289101908565549375389999710624387785042662038710483486864445550567645080817044064111705092797666248256919536910486748805779766787915595998151363223168074373910035073083637077223110851799130521662648699121903819999890874207922595786402908727161827033298167030815816698709044479188235726091920555654526648123734122225861186020850246982131784694699653379583898695520425589817723164889496082929315150957379847400187595896728866203555918512817080216320897000590936349203238995365243726202831990478574751426459287120330161118341735156603749478949886751040686696639116155787753169970177082738783553048973150981596272096499058475215801163090621263109245843643056234121650881656684398742235312451628485761790840426822026755339609408488063054101067597036858405281450632506047774813584063189891491415077329240349686606244164428644148211472753767306921769881676278032357173227380298663354657013524248081835191506385793097449349252501695982094592803651525579820055371806727568524298933224344131582904123624927823554552471845217618613482697035503347751809942725882678962625876355631179942554366213868571629371867725840577866663864843596860892396832968008850733395733934474540216175214740030078213460235867194970393351596403677997338419401182796189502103797740419920377384632996005446199633622840516329107045466544503268314676963728493213569358883719652577010138543592541635166862541178022397265800175856716380985449981783607642786558204809721399222049978516414052843576898249414963834874209221590347759820188890519569178610941299684747269128332915279574399120127533682081960318028265278754362776201091311274511927794808229314782618039288994321628013897880117940301156763144590527986410703812826795092794139639002630447750154067479715105388769546590781583382303973098411223271660408345083716249104743621063145878840262659975906177270339364271577270136578358999309173221347691256770796189159958536977937063896635830487346797884467642233424273647275136334363708249387646293927834327328905108403188757650993114215731245515452127637384291612758345510541944626546880801325945778918195550546599768376873396856159391723976148498513494906737047931835869161935699445192228690253503832930612454788817562723167951520052033002280742462450820822089632829529660239261654536262213918316183267153685416330359372917347693647558937206524224842558655262135475313330463481523698093429452317846315831979256085407623394600529349682239576580067256300404068887416876455017716102194782420514220894736360507759572361022302842231351419608270658649657510211730339031169766814225846635745993645771435580157594796293639101188247977366525520981392593054194418068438110808655427728392705368789758836015133306759720850057527109070708949802210611868026639262672391000120053446391994821293273825003769021586875319687298904531317340607681937761402655096841779334988337679862354986821017850276246889789987881784239305541050039274127672033081907388771488383722299205296340147737811085107549621487890083175464210118330334420954624961981852136647684384262847014738809377216487268784802766845339711752084252938773997877501519968928391045602268759677351634581244721072000712336595709005381985735123081877158185216890197995705821479730554069541795554294529935354323791134483899788696217331791210203022344014252386370052350614939614731481447802915467168549439101776540169674026743509621422026115195101551926412872496489990082003150499736997703530430753842521885299334253243623544754894942893414610649438577242357114523241262138747630219161736546628138913049407482236899396421063956334226104603159301365387588769768340688970547814145026798337266351696834923452010073783064323087162284720226447858417730953014220780916038053692584901105628972410038773480095729431624849553496763029750351483189248576231886722317629823373318179738675959670380998401073751669740075003713197362883854997821781076841089520369632339234781957617231622916988801131166598479920291178382090452655459376146228753603039627246007623539041279264157372947007374229231305662598035246602329102059824406108741421963916488634309947323422411299439895795284809777479510550852944863303297351368541625670810860199112231381159087255770211903323334337034965619228117034197628630668513446980209136846602638710351003540564774607785663579678616444505532184995065169367697026026499255451508046443305809593107979387071567850372159977308673518237627855297375626808600878987423911042611104135900044852079440831223955023456186839678300661023657254528609906612712264494719210586440491579781152942825750796425355965377948936951266536964589828951426740838639599232399002892916723591263267437016808527643980728232551616692350324734929582164334481194736257959384331235283438509173077723447415530238544590845750960363095105888256180186876517049574003676447283642034131301102837394405742831607325667753936881583358019554460705467422436852080289278266442807957517643343416502452427973567329074985625424797622820225162456960411212517453682480607898997133464164912367795605381500075875739082585910440645370964056742128907440371638501932453015596367624616299901667863415889343767497686972970666105201990314660691947814938106947065809530149035673585761312087389257238466910767461499977157576623215762713528903019674232165577324936881466953124867142346838278663463636364765335105254104232504880862966148500163111361102630102368702399399894313874188292859188618264177042976801865814460226749192829600960001358468159801607323652736657640229987741155603627169677549243558299523658544344834040148680313039384056714614993927764501902698672389981080107592154516737169575192483510204560176102914810791848192920309977018028535602068869506525169539227253191587221883345225835635926466415474735762615651114990582847027950262074177126489898735910730737694445544903200606260691082607305551970594239322114332664865899144953952641889614540100014759734789285395360592497462805119599061067385294992149509196618982980219194026165806384311999605277005020274497080049982771476206091160143239089525608308956240209469736507582033005630304856113877137999833948694678301466952557591559439719654177616002824034963080868335973420497564238739770022511365667001570129716195218443542984160907673128860714890948420233675111977497926985759927873381037812992888091868080589712101904308367012125573306669824059267561482791099736956424353267464981432864821502037004240745953456188253259870692548731881113999320768499820378741382795842140756544296277386656505534492617364275735085059146587388143578913352405568456495067095820900843281852249954521355277832932260330346592013006198435614533331824902091166873091779153074216669054117830951096795809573057127532855567970571584980567347673805031955437005426005783738676667026450882314298440151184666274336695251155468512484861037632502807073645315597658907060588539597422447224642806927468993390283526917002589928982028439825212806338760948946896361074036861241943978398571111509868146249799927214911796524470718572899650109851229831595486899253559984723383265143016841435165458174329893788312405827332922718714659472552075208171096300147878213838886358389262130461502849209864918567108119553793508050434972837713572298292659149556378869609507429749243612814068889722319122851648805758301147136693721589496787625524922049913411269024982027150651908719007536045718912550042972546035091537325501358723326642181707749321321645821627185450977867229218314504508831152207798773124933028342332163975311314590107930740145757667601221788209899976730057641469369367812675711445986787129789491967024485018117070347444691807902985919698766311840183113618686905825130486407206912504528613442694656720573831381785182935214058130551569122084141435762509850006998427464669510646065293625341068269192567910847638854518011002912843138032363961226946128882150089956040196898355782924839994134311400092142782639921975348501077308474005130060171715125777929604092457626333700357956296322688798529998368687985751517347586399185691159526567506048321735790433052628995492070154947450368036610687592848505699066871061304635392808084864787314777178640889474154984534323025546877886670636702320961360319778063927955735877949295102923362631731009386588213758090576328906046867515787147089743119783241118142513961086936312396053798269699881718408940639395838105945913368887723256047358504637474045743741651613101938184660303981155237831385710001694303955598143033740035994081795440400399659549460180546351435612544077219520676423547958756121197569894440536322904334718891402933352958328881333572624029115521404828878996981468758379435299210751097165099485431756635164362635668463367962552199330369242292069113815625496341077473916082488347797155516006832542805431192306218502965632616364451559065978229607069740647745581900080020035228070701075433350882721529638792057374965182642437520425785239952545933457973862117004703452850424577194446096089695782605659497619834739598862967115636589178318197692355310293040244616876580091063478517217112723913666993928632551642373124601898045123473396233485396781395861530431437034787241505610432533951006826730555514763069170946252478608705446847925387989216843734194993500769585182055902763576733709302303913699741968644351746891077944153782893011958705757430873002537262227073932374833329615358349263436451886665755025136165694498052377664409378461378123971282631205838722557573410609610241408050576534735408208797580212919380572035880158845888902885772861027879254654073324242342259647910085199233195728426210359350843133669711912144686003551757103778182048948808334951645374547637118276651083920956623032002901228995191314856644821484885901195946597927505200590136431740230438824801379877991776109200639587116155520885584701625542643106704982975889242820799159875898205601745822973661692663074251872560702385837932892899801020232967395863871701553022063407032608054212987838931705032346527449627621730987130129727438453530143317261956671658119435000657986310199850266781826015036647283515524391991005544752696040592163067688844469725240991156106202675583805195018511730902167312736535466008603566296102011320737793611084060738657145733066382070804323032198555778050424787987796867034083466688104448112187666981498803709554134473611294870008485066906954991136534903191075296267447391607551649278841912949976078437125961174124349151544950754230379337994943397113560190107808322012521481121997787499950114315489383389993518685769993310740102033832570947193824673547181699543156761608816056901276863779504643233665947370063780524531953269743985126747220281053001637989821308534357294709207168096564736479751788960362590028126443194165782608077083364433859112160078677433704838998191694543755387441677795192790933465218288270304814006243874049147939246651657359427600612145076918782228048239660738607516715613472365637861400935338729789188075290431358635410537497323014647509417502129604422546471158594048381615320010572834103798419988149888597263756513079408097628010694538626065670366762492250027301163320630095324741641657921485920606781759452147664539467426703551012465891362085724581792507613979596489840410789253767747544660699461103939195715587373381608604587470510325099819805367409338891824173683191277119422078290173986556920093202280151940418699159850778342722761310169811699037756171464235106991891977761668316075665443563168214023422343619375144414326206155250721915274800659242558779053043149560549687413493510016669036976153610646112651325848741713150697872654879162996876697397804705264830249327674884029892246115491349831186154666299448886475707864566415832615187527263395799013977656561332101168809114534076094328815236458814401613009705124258663358640791236292907666562014590713768711998975205924145018140228166077345654608711340761184314570094304627462923923321056595357288331136551971486001797390043508220107003246244951474775398855817305809696647496894556356846239459097329548196909065136147598125308862473698100199192583504061551182050572618025553845136734567687065747116978269671026783522120420113535473680629320550055649031158861025522445357206753496531083504174986450088138075340236835502186223683642708582918637940655354254336855434144958261924372806790896844488173948875640713866807382382314947707238916783928963547984750023933882545971819338594803921389874995327438707800233038264899447431799805476673268901273364332930041098012008285485065498987598206960185140078310440442926279234653400268944778573033436063579803209598233915482542223448685828604415976291093302711766834408627137289102256742023319368957265088777700466211544531015805063532409179881782147151692581495588662038366068171208164881353538563139186081272050711331723497049561930955011712589571536374211144232717483893276045441369753204738265301834602155854946903197920279848535684087479093605816907574095192289557010943398381889412968771123420602982047952929718641273970563201680675886472964474650638476692466634624069962214015468522521779562737267412984576689794678322397923060203658448123678609172093890019340532063999688914996170365774719405345769317722469678865254222072916683852308135672685429580673686101994630542910415788760383629413135646489625142056962724022330029989963491956493029699308211581819119846223316615784681298143792936169984439075296711227222020615799421085215936962624366672348239996253610811250353268718664411734343083466282900246863451238539402296235043518329602749917668759097950884925465758901807462774517763379611730873880366324520775512696953017608509146770808190818709730564144619219194678350389461862024310164997164722441884885735157325992813437141750841607883727822478379856747999982077825255232261831603781742758925807756487554567672971797843954237150405125883572501635682366253750754790188235041423633569712035776717652786462876578018014290439322621718680734161019922276123313119571191099217976711035281642487384710356614848511885293743909301705955921297723231548559584074566768934734882265335185993936651940477355228245960587325824186617726775993651253254201916426484266651476775098668436018464975833632271305085415174132748419768866219184762509555465312742136831032458611091586413073560566584014082183392856140571017849515857968808693572067067938969418657768880017636584232572641534646685794406722585415823406517498508492326796243148485012360819320727040105213590324054076893973910740615027725747669511180594031887723561868255332880666425942725335307007862408076870565080798897466829651697019141740991034526181594823215591789294424396730890425195507334613570971107873591647125022981589852422219855124864879739491811390244064686344834539418112900231764970185136807764097658172494041595824071111622933881460999765012942084221986346865910249916676540252427339525992293652337717694075770311209156210847343542676064968165292318849189261782236333057628093216790640727947867354300374458042736004943611215726077976345635109692421711963947133872348857489990322355761343766502766141149259299264803619050438428120656503582250308574501696033862002821422551989638678168283226343676049110036903461793262354482100396148805449399853352355309544198500015106374793442117218869466602060345083596968934690146161946712907809386948642136353856679629707712121896154293627283079666810402325039633968157173272888000354789987983230599145496888508680414902965147928685453914619686052539480958369321983273447329359800687922755583730032479072561069705944613034094403770956518838771665273584194256816834008393377885909469666996519630563544923704802667978152834167822769800379541107663630239194533402435273229281862882638182042246877377136281173219487425358050939755582037283779805510360985002501204355459179271507816575691511526552425365169425028346830106117715878567116111025694026049988578326641590534038173299899609095286741680373623104290214850443771811803978731582421418208450360695580389431076448435394895175595942208465294552595007430079343226261305422844315699097334140809701354828715892493309088384560778000230967303468396892297761252191380592413087678862878609520222697641851580752078242162436491045971257020496575552989308328609108910701841681324453851630492700387983192256827677755454474144639840838693741117730326265480035715958695022779019098492851982905306658405696941746415146697614406373023275833112100400249400643103138849574043456967089616084956171960940589162080537879105208378192659614311797677978958427600241701755526135869678603925577342330736223665674667967431471719286125721595410130998758164608651803250072586059437200033151308329073641004835343539997341659647665537824820008555763788308724613858989424336450898849239751941506116891093862346411601676640854814350874710484441945688543441635259833475825330603622621901213111184672025955857199830801520513129980707269150892606614364117603098961176612112037794570235136171603581014985418362596852458168216788487454147295307150983882618252921979786073034511426074029794630457434024338718001011804513637799160290612133260694800725400385074851516657619035010888103384063955527067139990128481411650721393963629888946180050796911257458311727266081623492538188260441754590342633675791096293514847315640917541821851534119350300301098937069775336500976087526569411025681969408979819050746303846477233498030623348985356251835684237263306358902600938650968784853602412414889283354065800111440845877768415186321270452468613299836133881109165564886290266557737493449517920221902533433167039927377131394782152404180748845564693809948462837814485117066949042664805688978973451610410279671083459607502276532128419770494294881012930902588488109285454721691173242733714601622758756429712840279929405113223553862850304289886447872105559395210171964814362795518481400592211742717119085838740071102873702194562909240869806814923438127097934068293320435032912489909414985067482702204999108940083448065868120749309853936087082084956331113369546541520747393601019691322564186690248362766747336528267229838643582580285266744585268306743339223174834843196292322461157810444242910124743534601433293762437934383075187251601882257690155925562651543690652141418008297447272315826535980110005316177117070711082282046259646528466493011100838495513800174528890703310989389600135274845427871510005971612141790566823761459776165902352008275690369824967307329665081695047560530905152457458137609209019063251382269825641663819875597295155376902762646609163447750193981182926559743820042640414059745775259200727433327798224126258027136113814773082427662282597817097927056890465800899390872936272012513793263077553569317874958538939812240376359416404567441567854216745925832959343697011042120911077917966418551014037032441436409591940858298578889899954837337476764260891783156179301627498084534721875759274530075215664439181439256273942803624219448398067003836525048068694331612092379653019237838139087819157579095349025521109429107667801184116200663610062071927421739130041282741339588431422066671192788125028516515569750020262025650026236025354688335549704301715220026594624601242967176527567353912658770450499073980006459328396680938001770131011508906967255999933033657318389719421963972459501239342307497597851307976101611764188721876615866127782955403578753613962511526259715246112640424616193390763307224961251129462258063380928563714715566100128803185726480141897852326957809349090925076771656627659453149096917781199800501651321865492888835840093766034289150685953082145471083127499626745369212460244217709842856549065215278668333716472519819879206117340046777198945542606114591959970174445536250518730651151714394185029107034458317328055441191203762360225326612981410922919567166898964038716636449891850909404756432618473133306161339190170158036473231550252789370692525277268566600828435481078005318798172409518733383906943896124555195690057942553902359196699585055967601098819416060131901272069712006289571451694100508535185466404630908467080555373438849054254752079886585783029498330396805512931675846683466685275677183430255513216107170309913588357511877023177265091053289338090581297954759213112737344137995638004858257849770501676253157552129899782148594876688647768306831581520480239425712708346525936289062826335146027503493481988803098164671468468160038124996198192928516561154820807700109711169370962193531680246416646838033534600877258389381099731950164825103000279029055271112386117855723390480557788049774794267703701587198189117546830021205521412796737363260545313626979153882051044612105963697832568538336361632131925019035556095148625477244489318405231868151330159301123158458940339733492658993703106436666112990642300640645498814291849497291863565338198594884068496035424505558784542682694799461030464258045127243439607161103274581259619399039104433792893053630306802416933130643614971281006869910530850780837690601214283568285516939958745674577898185626405430053141797574590511694302561868620050455800137707937300563190137384783090461541713099441590387104951069380404621071174001531396121836559966279560386751009330164572761316376287112402028426890253956980747844167584559308398951147212922812461297375234824117556557045046067666113311793779657810417080455197081737281037448229919544709844405038253516062111468626677009401927203222345523399033796814267247220216041968287310943204949118658369464027598461634548797681509451129818512248126841131887745884581275851952356186013374776190896041436583787542798486694104698385361966416273463044807557042648076898889916124495776249981661970650520131939557042273262794926765817181241660380200720559912852407023841696011119807385908467264927264196492067235061146984128507816611406975577237358220154022761680660897755084552035632321799010080618128378935462274771708528204617313244134295466088758613447225367573892726787145950601223244701410754286903411028379040354837561935003868001462135153274574247729503373401002174562322861356107771375172767804748321223759337849197676341979771324686159612219504260034133969811831359131902986637018784042351746417248764617096809058773124060610007950797196262085853253667567983338563952251635281924903259276605608211922091467730045050232705200451203255463699657614990005577329370242546658894669428938534570149784800512649383058917999547638562477594299617380396914832772588776339340068601277852070988787719237945000412837903473399734384633385719479964593546682968217559549810745698345483954585357461519507678505160505502842052603409730403004012199724319128905869615789243876716269766926481694183845098946416396273163040380002036834127214957852407012411020008937370063860113163080916753223627619309581117114912713104744254222680212877650844125812217358004632613265394648477383502641915062685508812809174388514049586485721804616154674562295337862262593491944586768776497279165266602033411834145624840961567247532275817446961035988046457132929205277536750823479355349653133870504797925183645950145784409754412285313611168040158925289299908976830332260847443815505244891901228460359471823437776151652784946163236032715818827597142555564052728915252640946621626620529475266683334089048198679419299898852358130432085813306521660151221611932569737150430768835685641968270265807783220184927745513915638082943703910148305217457388050870867591062242159754585956857269166440167336363692383545426211728185157413428274893524959656307419527642874659111472328325544589416654181414501438784909585287340936433278783032830003986371507398948778067837186495606507788635109101344932768525172378010758913028867456128263500497275421012960563113356821806126363896133156519042490899946787253775649867574983621158364480895980373138019909192985527539217683362998032875292250686354967517493458137576620965501162743104082781502301801822275802652473650528384061498808078128724051411758133558810903188541613464954001300484361110772771948669303845098647248348629875049247258927382587014226897863814104988045169519825637379106137479569963213838535879662424038942731468806723910771346271717619008416517221123124515283087452336897296107092457634127367950302295313635713602814727392485884315135227938768763902608641250593363085688848797277422184306720603837820363207660525233326184734808494443388639126105328423808299932981121538000072053237601311143491704713557778692229089859432003583000118540810356911708809268890892769668568477905665899169425378918974556358580712818079651998213638893591600692339958532803207180251190473898977388701571049441419447278602900553558723610273566382199979999597198594177384143841470739967483986674860720271090047689627248804306573242718344675226322819611477463350625374512191674531640921609425814527960461029575775348106865857160043670908238760461953530836969823607323379670087342233630830997318549686374053020282747272180938159586669681429276281310668857776214175354330268585680643689700156109056761528016892779595209913944818038766520499766015348947991242821435914341898657212910704567223182443086850345637235673674151757460129007440024384098824773787300311980821642116968778053855117877339185036816446462589394969174416127835680248719291485414661179824796548131878906254568060704556526891678773185667031846204144010682608220821011583735445914291706213083730430428700046678211213059538189944249853716235377022535848607046326240457434454946207294660428093287391925025701045871299119064468920931456741267675917100829064510906585894462048695351235598955092525447513689945397899277736096092995444621737562210163697181398408280035944502426105748058085396812453862253233615462655027774994420725018150050959946001427736086255421207006366948052425695958845617924693176850784949980334038099072592428494642970808624602477821192416750091615605746661651180492605497663383351637140748005796501118972386994636564486258565855477903430853886967840575913357927213728551811322983658931560329197401210554234990924540509638404678609517294102370778684977499209415854696427395308603646825696384373650897832614448200509918944886814359737962662719100248920361300080607317637043793542634719987938278407948582637999694459765560523354492898010751374074615234410758198290734891699730352556836126994729315216832004776857547542363130368436580147486233180902940678023756824676138756825166413792166787836306103942353109828112565193881885866078500755174335171152558879000254492534394580840249846513263565666205552369380720815659983610971666451257982438976433489376613062595740482131648696239490487084694000320478273669724127260825783664202107443112662132354942853422109362640256107455473680964106715201270012679270619100719032044871206678079657845120909144618363739385295023785704174937127529416015454709304484920399962918883456973675205441607706761649408083916294309445569612384952930976017065254470540421910027247039475554854749754949859619312846456907705831802281332683493937986292429075083278354662485882676696282473570342618767690201306843642927285224829101303430912843890333238376128935950434243041598440589760768841288279467078228527936626021233964084547437182764544695161253499776960415684567257596355149416453132497181143195664912159797725270362133642241949016817126698284713542439459343430549510543652166891938317031995241345741328258074095556985981550709218247082081703954009076707768814408715439055842552583612863881029820196689618997935615497799798267411656170455546178276432150273858130366124310667817041789181196186491691235149511076660793254916451351950566560829322093325703394745913108931828265624438023493320085520627752694143928705025116271506119343136751243465969887073763242178195151518601870416466383407682546508506890134250564781287371164545027057830625663193525752993415709762404836774108287990594602771331020537403386124407985504969824724299473934606210446788460367618103961149948373305678447800330045466756543452097360373422766298047771589398644738049253948109785939466636370924453139418768440688700484656544803611285458342358377985453976924217218590678193639906837054387930389782130809457113197401539691238748548005149446364572003187881940044707682135641199462549263766601797429109033184004553941506152988590933110689151727955481571414238028618302171449968852363273336221056766017666076569651161159830376612452994390061804737292676292471901395888118401903616164395360151002817359289291634650080055334563575667592399579007389918311137819186122446305855883010347359124014115851984833423315043053406977044764608323983963773466271009477111385431869522158559422683998702761891535430756535699642625767938776928722005795770046399514617547471447773813607320376845970847851922625093499020335852878332822140497858296090967163106321344538839128711323578297573750126024475911262235204219958742021951407900208547167507289178491434778935541398335232986123557931325304501547475022767606966637793613144500973637832761282873662641699391081994141243308048500505064474065511664381881867344516494870927432706930229270074530408625598932635398396838424361251909890715825310105267151362929872161134407340393037108611637682190329303932387182217570323553044682828722211603676131428243265931306704492541609581052928916604176828716539564035001697522051943330797090300052865574727442424406549052109281633396796343222522437850379368967003382598275565074844599650181917015295840607700908547400591345362688277597430910893448241102307643478797529605699168834049703678831837396635353720921865981524442049968583054664939194886738213772867576524281104925836499949127752988586781788504292189533826660763187606913236362231776361010031757656221051378379380650087456510320937601316296197692234662131775981971744210322207754504656443811233466554725786875642088367936864490259819493185877143542650006774295086023532287109814992016726450256731450258472317359774724949069503680391495116176287932682121575600391946449698450032579957520615470101373242890935884043141258595960436698441918995693122890220925096491675470547237290404011290802389584672962390509697848863601376748461442201564818173979236309903429367469988383731234397966773695543631112759581501201318554514497846520722236493491235976026307211979723776080644368078099964061528318041676916230762547037926980705806422490216667770962606582058684606732576435496608789413708009586094119064654665306065080205264270691506680596089488581214414237564974873131561081610820918306443222982235463142592988824654246937181496932328340106053025645152630214927285770633529099076880543359740585469248904005409104419750579685991695289227865951134602707073422389121106105407727462695681108137252586076920988539638764890748817608976040943825050451032880933891104908240514268930172251231266058693857753565618119928169751927776570595424276751858354265211573412801075590724360162872745693804729688086729646811819371289918790955929673821809578414445172864734906624184292642245215266118427626144989232273975506511775630713287508842737023908786030295591155002913538426080463804754151484145103451530536732502947034247981966908695334910785161725263367606621076818044661839086144565564482523776354266417277580405438585633880489807811712917263130894677082880214987297877121964654800327606265730548107448514068185013122952191513301691363602157978793142873145496528994863752658642102033416772579547420059272616333258871776127264853770160030008163681641406642591029875819006584497900344997778848037466214860068352839008039736937233978567240588225101807832397558666955853867007343976674801024637111782910351844915128127394374607192521805169858759124296584872650991684803294845121774023430328622412605207522842151438328182125842189180114659106853169566285207957218043305701846592742021356529577780340449293606651178492457054196694251321249643551469459626739215013962093875808068477437762621650665938895042295176195699743172435281154132908876765106175882529041614152987244572630340159005003322755695802116672955097753565397266791833544213115598132659686311751684362314830134689056492342324835896980016728900401183479185248590361428818860954746481190324780490413702613970298821310807392830870117175412789693049440077075363986520279402745345373946000311423910750159191056112886771737630742951557395362658326832195735541210681240102204139953884420727010902563759437163915643028234783566434684204833983412899537151634281723438601805701650033439573116428299708900232011850934813619753039004620441259936077554499764917788735190563646375008774063877201597221633374600677882870644853832997231313900994909780056577461632674423763485312282886201596959435581996208022682161675400388711922370244285829238527644434380267947793884463167937597262628774259620240509334862931774597078080529576120211862957980781435857995394914579665885330497350529458523965687334560476025513964404872633447293653527786776329385974222519088519963740612393444336419699970132917049883425122924591179211085230591856513620827167953368046724833983944966568836837286364548529542156045835113265520221699473085998353564492291171619642525708034950699506531257535711820538987096130507573070005063240325795955611892126403850174542053881974247775512387645616712244113957465873602954362221876743552980447978364212159176324832301525864005689556714615369916546251200338114229320802781186300457341884979334329834597083262565220324140969306857862994083503723954575975609959546981039648432797991152110964832527049408236820323224940937722449793703619730126596942126689591807197111676988683986121784601135642339295209782108068912453592130992785795937755200014019969923067788531342569874367579011835121826043375038989850324767410384375573616079595766228956253455829086399652146833487973856753584284089163275647547077389233529162545779891954021749153541435623423728972693538189638307523596893184609048229211548400125074645381758307706376542638550062858819347384284483038219401507817582111685375082086303242679425589343145548689454591757727959038564327222355090322325187065707256495615343734090745951924525787447874380869341860480712722737601236533752226540013403162600611029843316620320589556297065800696422270733032621326505031165540533571386543613175078594110679449227627414503339807700469006003923327725443026819439629038263883291003293552444843266977358725013332682747867355883480648791759251009804449988743395836576259810867862456017116136374861550535754647214665174815826617687905577966088756979213541817328003087995864474057624667851784526196545499832764504364878893724691683948235664499552192497536204104706771149964240170036899431422632553461963266757772773230065778397205217132946484841882511394067495357644720762089519144728632287790101272377890253232429316770169554478869506950836803530348567241237005139904545841470335311036864440398883234019656716651965852830682494604139117313847621930463627824185973552547902703815145373131303282503782452926023339015932081602929047994980801444922946092007070453078301761489357060079865601305362865379354913347969773578662434835889702447281917476895801903814805910168005469898342274754354551504338240223521130509768176950359858446736271872446310224178913299750895247371439035958064380216118455469438311054370598501649888033447253206970487176754078391097893376678558395453488044156591851096661996186937110614199824548466628272454251157630974742391016993779005460276813737231057937387764252933882956501840657807867328404258682921210501572100966724492872742707810302041220829425249914828857953976868133164661339006946723150378453649969798685080761234510616505190439988771952115642924283176106057167827068965583703015858976272772240985171387711132318728564757154217910709924612782135910596995394803029353363800547063022453195026888810580546259317109379484611658700520703120724843472216559776781655043700626183481385216916480457402461888885756412693769387455237082127999659424664062139852349763600823998653430624988777021464212788966590143956860327847048860505140985030945141625066636336936035496775075661172476660778369883096844500933735120461194784876368012735996139985974791247705457721555444178160758646686129310620338577420600301962969524456430829352062040067169975192706235444992000701939978874107417867092503452705525800761744698292483353651929850925456829051697068531008080574527690041610939525001812846401831160618731809805018659159427001827427720912056312244617953054214822406503888273167790144652736904519430764822230422320936095485509961972341126159829379387127823973593124700075887977752636891020413696344309046833523655214787148899301545024153629101685169369692020549625333469007599647876274166746689831770744384292390619773516816397402190051317685655132999936906575709413874454645634682943488124143805445242989850068665772147918392076829323364566192298100174411015640852758540712082152069850131856232390442027217091030267764036723580834481624717729098851860750862461441341196955039684185818544790554101760662524306063294664167720505665581200792471570562938020095713202312886418287896996049922350458844681904295944339847544030592854921460424981194191601869939168894215825671118406994499645548854768789502704031524988092258857789456083675995833477563298777340166500801339636944322633757485721124745477276982922364173090840416623128544982873439131889805854020438706621765944722953385862641751097583516163687872176282019790486294846985015375749536716623366057874133417541850072871237110060611058921815996189036486133187012241619382594101206051514252041645795427140497993337260095146212583737333770953731732731132685143935112635126016164071378709165236083645666822908509538518553393686642791751023996611269269267450476113250435524098103687414070493391095903373047771288893117193964360673246939347423530395324164677163564630051162647295455137413950237399745328473889205269026555592551212996882455886466849957906676089065082120001954051698342600255744372474530507023459472346463544180455046071177282854530268924877347762594141705153565196728116686487491614374633014477704275598821015733634608243768935869389208120794941526171302503051067092015741753934488731859873039372681973547508042918092423381190753164573780397275919293546549913598228788161924913074585983630877789934328698356453627509319414022633442959754783038279502241613609663389439311418717333681920555065869725557615499334975908259693516519511494869456484545564420435554029941135893547674185653998499976688291265959117283020262887685855033565908277520863025777498351870662676890522094920088774661026500703766903385902669682020791009503559420557035844284423776650224119098301287251939423152073852769106368504339338186748317852851958499196344824009692874102648338989133970015169037520812316634335964098199920743072787546659561630169205152471213977941328335477252293053389001666390476589254126298256335709994608271194691372362104314223483716320785728552108021224545366817326487591199920213846093109755645463671643679211152566107197685950804490709844192246596557797701967182671452144113524848223040496231933625510819849806299798872590752657757076657518418717283483862057799415795343021489747208998735694041230809889746051788350816571208265331864573765076555366675064231988636721007973549144187953616705972519442737941864985318227383527941358260617915385144275129527064474404820620933217117570649819808756631057027626833711263259242065685725626615138638859801844152532666389118954316267585516187355384777252118396529619116640784098092672119454406637215066400186775669324849216883975041299544266753841377835848163194122440770829948751906158731855551781575573914894996438426465415033576540023786045035071993383014894880578922150301865517837842714040725544793137590501089855950629973669154196373362619506082168880914528430620887803759479167572901822998593405653586952323194203022267131521352520773411318403783477057559936710350499205350829815605974410495367755939618284315615024852688538000552338593410806937114371368865027193898092297299726894487963690123323633100581198686709481430837025166974789503313141308733523493585789694612585795938386055658483274101312291084936605449133965658904099655821966790223166532777944851923639040866510878102972436592066978449719012946496629721850403859576231700890147039601153578430535831187767290636914997985868302264600867937486157931697211831804034853716309849119091006785767371592508895408413685474119199078044408614611297227398931718148361207246845053963771897298767963810518972897017752187247733371711718352827858124459004608703078970958506393990128963076450802459477416260480476728194070455100377512085160808555418195862232711201459446421790442854197180743385633928597406458664216215125990589152968765164036884061199339288560270811282086097724206889746057977501007638311286414877232025341157404002558628874112745344397987232250781134655390866829824579004433954929689407272327730498018907563741554447993044194369978448601592843343316272177638406152233257010666153295443455543886339420971929426313977836967487511798071757929734114610579325288445917753243292180882612882728599301006259857320115417274641414729591582065884261856832694718685072740018670448681076582131632999330227855171253338562285978986751429718256713238237506925485764263504496587831444793159305248787825658380572482809786387943135128260909906614361180671698916731263391289700921002963026532150860360408969868125652115230358469528065922260595033143984168538684023992615015011756520059642089347440388815319527458095180624970308411537728923349779546168066077889032995461912259767147583635244068641640704984533185820888585985251461806026291936017369718507427272618141175450517170347734013167407574067898045597454987662114737995166616878989345965823442285499959224571935347040334162982347320264200956072460339855025056770366903674180273056413235180064135232564693782101708564724615193134566307874069211062677965535336417496994691523315552781614846400627548304617543085431027717511446348517005660923700306413777045124248745825050685181869840398966680278058049242620509545073055423081238170990261938480524911005031724420179593857629106407849531232594992162216301570412412473729038647231843010889293789175855542618538876266188485945672032989824497387715435333021646559454007706724400072129912545749911670645294860343035188761425604432945880546259811654867906276375076350996812389432543166039853962665866122105106927263926147096044500466841339736594319654879903402176027366833140760703098563500663873776031919644134206476624017768592744961368396387842147090383317492783859824920697172632801472366688598093742001835075899855833258599075106831196565042923047969265665066388860472095161544756067192867596669981328622020394511862028135125972886038976577318256418399240620526040373505048334179633406600072567540077242127697472326488624708133600985394922157451557076754755004434583497864338451580498440276794930191268174346979301214300261890028851943797119877529264444039741804840591986813220864657984954307728233221232486012174819569488486868923623808841659834584774014220565526671958120523608856013718093167855142053413854643095900094723571821916628759340523689740838876928056326864984994572835136115820366681293057863572866673254024042782365323003616272672657184495597798275719946451689912567907543257064177742421592266355832995807879417081883945173872019171363809268993338570295984179646078010970953882948072810380755676716668208843339583786226585528357010836406093097729169453725589881094714306210390653795868771463103081010490964267182972521396877478686866487081576634416153294762830290393041280536485769197553851702066979202995725780065779098473080293208627435600849894520616485929413982570751228233821090379339000807706435820711476619446592418018797868737036801727482982476762245141955956584474048226249448125846879884291609681946153934671841324687781735024038640176311817929878378541067276501580489966688624758570313234722564796626700326423998121823313515049748813699104274387137981253179760888527559966734328064656632321164469940201525227034911281901056572022378972405993967429162976406527631896406066726270193222595415395231070288360707993432895863260895308992395943393649943925808034046360289119135901597673376445681133100881035337423481303981747127374776545188332896422915787178969625462227187476613176948781148397188287238210021291791434555491345916924630605827241566721048192125744614092401949800450685348002018743086189055976270978675830224131446068299049673877117577851561454672659199527889523085963610308828525265746309766714080469705233983710033411163032544376538384176822452308814063990840215641379749507565585762716033331013262148486449202291599869337620734288720022145100155018049689484609086110077709509384363246100765849081330732189975305114099382905874993162496451600642609396068927487068852386819939622305643251515728041460415125689238165727531657728332560392217886523544668177939110823659068349128138148081408070845289193529713390037955909911091372863585033270562209809472019012566726440689541201172301189196107055086921106564659612035792891644191982633566112965278935309374753259767634500194541901578579628463215978316917065727481269350287457531331028475078538618412382584928111843036808629737125832353304102073080289432440440349769156646713212642409026761579615166808693389864971793631395504270275924659013397404941620295025934304412984715543387408133144860466733447275785758421015723572183124196320107322662350300574797356671859231641302307051103380518188699794593704671824679331849541754924489007815451620786120781513085174951724175417123993695649137706893397100164495641881063799862335888449546669046422543275254776012218840674770753173603308012779176078253114025364260010204101312770175315707298664064770327290056551168032310653350566915647864341024938825335188930691787161617342397690079207826941019330166640918280618466551692881692079380669759662152061396012157049805286657320370731232521356516732440933174138399956354645669376466936994952096545421109140630112433852201725086196472078747072236754411298349342716902962883729526003534089847676702292262730110273979992863608452551354000119149450180724605892930908236476438545446940441669192196010764599562478673178418226333216717237025970702917710116916895046379327684968548807784357981818663427108646877692781509025512764035350684955635863274690825730665862471201041305495593333624892815327436915655227573296904564372053084611657752135524042431723712737035346959494241341194121409728128234438083093956769301706064565166736828416428044506557920379608006609567365985085781661891859465451010841048200387398091504035756059217554608143585379546061796310166254796504808478724613478494255859182433967921031382833108522788583865242801032023523559680957675402244758122995012869262774540119247917379539275695063860228751363751054393454453526543122962306769258875984868928221807961558354132524895869240185392415705197791348723746002562986242229617229275048184092666142790715547236040918876803395308084964062896885861788502190272351281761541981988167586483151072197882463424220253780071108783687591578503395411503534941692988231454039181228742151261021502623184436743765744277028056587805068992610494573592069297529811516186282654589061864137138490100599703084475082963314763096602876149179959801640283076064367876163222427052504560440471398128605735984092432240713832330909291074447118599117657638028075638705756069919384800887204045034328887527669067304092444924056119671791270220562216374106297176244443303035293410519000529219402330109057745991334949986326113766869924146194937666310448919011518011276102289317373014489427632413011205949593385076171435907238740230226465865804775835661411661242553941835472011050342254719166922791379252648941516810369815471403166240641525027990791695716145183058246266245722245533328477968820630315619213934041981542306106595591862102913037323128240652706563952687144393811433302335841865120596698665118071030229738390251820308563278309781937658334649798729665419537159562790428457166951207166858995749981316509421432319982933496410961982444393293380125856468425472083722476654326513871836930563782890349537442620108770467270985263949259342185925896711971888867480325723114007839410466723611320771608366225991692396638798927456468248505343414001543614031130585592461794761983984297035253015316006702130515928330814869782326248637565279092295433009082838084275252801964723978919356760613071771724327870376840422488449159302895984595308681796160550008740585201774743956672082429977181560366202156539574838177122837285960893862589615247727597927739858499159904821964855378205315606982772549196743656823154674892443890575489815683599724234754470058785758782636428560091801039693726181446101690937181731812826481333980144206547572368120033237672879627114315760895509648952668612329399214866805358284365470166186999653251778103318545153463955017447192626380412108782058305023709821884013686041846343260111495594464517957091070369336692565216535241376093227234434091445489011518034313207920180687124192997337750913073146870215171065500505476866020620917940807704742457622802623862613042426513124262218535779606745220261182713331524280926064371975225060442151258386622075676265656334939956824332756367286653552459227890054204246159134588264103850849507318327767008846774145283167092237240591210474196053902250920197888840677567139376674670443003596959092441572927887067881454654497047051622355360375157615858067388947571836253969192083790099849487950962473472546986095309520245806198996352944873226610254461323851128308476738989904888602271558010552429621042525120729979035467638270669280883679283492921339886023993579849186222890937431378621047327061947296961229990282917369211717028652975777864277780503160364555568158301737238965461624601892458485310274203092368567630662584008881996093707515056937256464968330672118333614937317579865077503220032374565347813725741897258919555779725564461272976733898765037119952182511010566797764633189917366473364633848464412860415325621524502761327219309423601548614473647334158940829525753401268451798881731254651281381979866254474002681330139076532647600510779005282936375150020737503480589394486899595927118721117364034599007638980632223223270311320603829673763212594434800658498566664306973155473211543029845245622080591227220730962968731300520778182317612179656388778343400908922916708102422657787835674248552546882261650087707386164317426434836464656254859256732660807796877812782714989346828000127809675029923494713094441325129883669880450316800094993819743155346971333349775184360865037758704490667061490745602565920056883063529489368201141941442602691991662050928349293375717246549792056343431512536803351551175995310182654280484272062736131827672462348418742001199340352713456522481384238864058014296909071654468812981998015272074162897694232027036672417144610781038315140311408781901461030088843128604051561692886041031095540224188762823868436481489031423400704517641933888011824346645222013918402688440737901079289851530942570058983736661010586959007313518249258227735008114908725278310679962880028388597340421095929872897859664420328360737330222453457488057440871887420185888761158741476104563172143969035639409346790190084391579588814737351261852441565891461900059582798240103823774164990408998180230868752114744926791509025705953379231856348781112484159890078449727307583468546860185609785795198389295353837024457377287253090006711795430195952057840941889564742469064369558863550602021072873046782084510315230946233328905799157533152831376485388003146373072202717712113232830231247893723248200750394561311136474581523011457925526093366541552728986580312573431078622191217400208656469223558262539790281485164365129223193611661869345626851408728924305184530790170760549258942117133477369706720704087310055988802930025435691844372887188839426440393011002030604573409975408446121715372720435005397255093212619529840375220613591576337196111157374598351732447811271960616573471265030079586360569624670123313286076449923214292852089587999443122367151592910880455930716441798103464739901432426978052606406362632233788082372344594049627114393149452586720659258784030527291797564762225338366860114863563894943814468533170106789073967535166561929089095225247136992807094153774290430766763807507795488408576357321453116859364676826007690929591692801134124075650081562193368103903752801761490969061918344973889306017118162390249260910608589275013238166677695619001209561562942550839013457889410871223258642749183295581206205654323407998731079024575420913827625860832197600246272507704990115663410771082039405594514633942753568445236069560749228103166599776804702685251594377125239035217616474555668520068280157539262769022188542236384339624333769710611126940097923522876347442763642666258088701183138716038604646641362380691193767343148479329743137458449914469515080116572196247393495155266028909919429536175524467532059974022612198763322168287799543338478161822832418239963272104434887510455525167878744058990522832267374728441506952956424123365550499599432543516865662721220022031277207095232234657089031038907793324876886594182503653676288394087029684471565788326859183265147843850177975923682548501734020266067644263603721854286739887396813671293054691762909051979691361065828000884831929747676838255966652291079321171356834428689308653305884705698605190830485631929931212304864087282751692033573016958968897919695496531309063679940434321874807996929327368372742567527903868236452413041874073505129656877611286605663729837182391355440915420078481408972292090606930311095284970190615760017415030602203129724179760943317682326274434024813146401528998928768043097813345366693477577173431365573421544418742482877268517766953160532702715899231837781226346950149843626313395722421568354614152126171372316371742414837647323380935748384784653221424358078841408596371708494696041014181039502145839815458403873764211448261940491994744497153753296216895978782464624659974745323928113044236454803904723528422869197348108509201571922021034643801765900826471572847121184833590732563461013937518571338819309353015966328444109194065077845779257253605586449328704747971757507937241783787230792909997892355502348015613329123325973095361592519316213559209282520299543705732936055635457466885996990057207161806941622206172186943726235701802257305994187497807099873221802764349163134934741587036374138201206615276036837573833470147712899924625471479869230413181096256529516375104824367582077103427914370754673038787362722899773955609465536182944688343443870566241405168181772319146184073767827883368285400161569483454665157746762421378562230517045689995194971686184147300290372292393326954522413882423007415812592322076030328175080186196481110538191673836971607995146225333095497563298553691099246506091920215782637033734963119156820162696729073536788706663911658358833808510538241130938452226864948432699951463568346808945539782858048218357401963918842016283197758618684982135355359500594346655953326109446686928961059468379867191913106082740600488137213073681452925521765437156595568651426908058621444232047994486839172326424051228454398836603704312745712925774578687995047237430683172500683165214022001731300429929826766923121362026116450066769555024997457341498889056754743194999300288086838242723485083266040941674331988127139998331780995551494375615985850463469778349502830881439160009679929911861037441172435619110001193283383892987943733050063919016538583216586065400941462909319752617329447323019445999154925154400702621923216179370444853801085389757557907001475355998619006352383036751541233651588582278000124005105376458553253586693451561258581645205064015322375023059530601380271755349837074026266264135082099903207380008752973249064211377508592030212886499942848463158693528002557648989211726973475088640015490867439348614356633945594547009925205866501471118591907664806992786598240923351174660004506561937650437913233672550008614756113541394321115723213295781067270586834345756925006027415575130221019282163122522109038150924556852926399411114592211656710390497454625759860432872501507414113056827934804947482164727564228459015270828735115656923324724330423467197921454956577268708159465174695506060420717045810854372499941953966838746124342853022968611405502370186444383895769851451015541629675395366113614945193404371871851934119692901698354967850494707081448063288789455546362867047350902434761339528211601877435847547569484233711884500751021126905452283454286336738252112770264988531042401619227572283568229939225956206232760916920939685970800929405138916754351434802761063033857599733482145695954029699971498751891654015173442137704860761835044286277948980067432577133440252691298267490254618539502146387653861645043714617687715485500065985028971684234519230050504925022674387993832449473741657770396219305158475101171030979719281777157854351844115638935832674334424918059230600611615506188571474591464963662313341860526371215758059587244658832440731236592422223117156279837462898609182461718259114380319789484581815792009182557569633349273067483919672794385421267701976448979649693234281629815118909452266110516631109619235739412354981528995226267679694051975830747750055120920892998147902415651486284036051568527136326530509481113445665909860991404848305947199593008419080260972265687040041136246904100278817447082082386019357731736773176172344327733792099521464666911096519088413198192237547139593010714947613979948217729822966109958792657429659364648827308674260642591705461867364522865545061003491186976112429677803482525637570581337321076434734954812816427252686919587745038228670580069051174495398053145351529371019522222820907763614358982348772726658486528420810478623598417660772085725764765565445845385214538255444277733698341992076938387579272906393314129979729907287897908276919637145580280656103001550746632796796632282046713859953922857500181216615471599955577665066086216200989070037227598746215353943524078338976219818505303822556125455302382026795321259358331811129502333592734805020136162102995276993388372001721320255893915542945291214083263896382601665454255223150056149518855406073840976435513050953112790944066120754866638588750262048317897018388357467809328493732675671531296425019121207249873442354131462238543678394605521651814706892723056912578499954161282955008979422325984828588065915879238719935048666536815068228060669045965619738083055463492109064639956015975482984936012410582987065775911846929128847195877955944375131757136012864440175959489245056284742237129958440180948271233761527973410079730082968519070455844107519468992352152104221424664289937396156047188598195861546543249555184111923898294572769727007292566054150215613552712692985284782582418286843853660591203016357698892596472186251106532025506629672499987397814840221008474280807694638119917391209841875016169079827186878561831340529169439833141703035144999541711386833999010422403888066321737903762280409653663506741897494046489186268999076676207821951653504978719733229162237336835786144708885181306454679164617814663295729271602336606484397346824657257394970892615782093733863116125611453199888197557969391116767863485730659129788350266843364555676846010621085045733942852446027506435528482250601173425128867185361786282446455593613327882258071358471038453831050128837036768302001185313722050025310502434939142089055804080552022464145690848668399147925457948950433935380851889962934869030575602312063632769985872585766079282421527528315016065522674753205137422993586039984307540765967937389766690491440433290761731138068867962748222582265835608174745023537110899514215558034785780041975559593963759300100101540157890424169133245521420812830611743429064159165664323953058484530067893909022434023836831194335569173295147896928928483013734190204012116155103286550248139354154010187074587279557201771951522467545401832268671846782458490694097455035755527446079543238623522376071096361413963223483058454844052358260391034678139926744507770434530861836143562566277956227525865521806099030649543766049449419575010708995861405853847275823089413574253868032638394590108707605019283455244796110676051267442677747094141244184334259546770349237141105418106500779051087281972992327573720875035035996134988863714005319252635205187799899374500499518465273251357714128790510808314243611822057716161388587604930880566685220556937478616071241887814862932163329648685681689089410447349761928103609154335945129935857212411425955640164874673655115900035449405440409728363305087945855390736009452258094343140477261678234557555159238452139864553757854068670314473009944976896204060918084168117021307233938287645896733871405990207317756780746342177554529042289942387517043888301535228855756071136169499467999525431532797173617140687747380122941131909105522029723025254024081286646725770320085687188616695118236471575853731303116428121183079088839910635390946614713418613363263961923572154144764962293222006196637117648666807062097980109863902088323970321538872582453776786343691998359139306980355758919254404019923074422735098342861332035521244707991007671772842658581427106122656527172839617669131734142747378033547739738625463762701109774827021028409615803946430360678853681083483671020038849089836050052358115574907733845843964633941342415786875477198033903889192494643134662502569702642641923334427742824731992903544194567617196265906358735674928770549802274276713859763599054163138080414870850014670802862765367628246198309654281440633662033579555755112292817496550216030734882795450645603172500362849610382454730558414977529448240129992168039714137692971445491461010259207831256719656121285576393803237345412737125541562412455203667773520104210122206074054810088362510999926643060123781584169442169432601953622773071664970405759418261131124540582264380370252400655110019180348266313601049396608780440924534741452174749623327044048970332460163413054926271112228118022165638431022598988093435931370851460685901524945305950145057117964686178667753148674887747282724862885912984552513094282947199988809176363339079370934248909854062055317343880168681591618026242499455532598636923249561444880363569904255637729914516502215299478857229411168135954768262483740520587962635199536440639900049291476697922047186926043484412878213238534671750826235047742383183685094629187280480848463792005457925630395433289971944189343410757477299246499787631144903084982297730165290801685077121074457303562595540229353675499993992073853376772000724600963855378936801347799148643010710624803254193174217556258335456251455771982481789277779028718955090662264482275540062721720004495688107475921550870601661952558778629966480883929819913349174667816468293078271632798028071897342133022949503820293457265761812065613587406007806970453161367311381637569791225519254494475913613314313437287497397425834329770195000028472902215025301240538507451571824862643164013137522201833333577075437674140834279193025123151409116694513178330567293272452375382476921962332579143575322500681833247803125518477968977778241667928522800714646177298601518039037323810086466919159583223242785589778169249728232686420030454665552661449173799689820739793246339168909738673691235729536523659731089907463107967826837965450887781414657698317460771516846079329283847548940179484398772875060585071962973948620351488225345579624061392562466604284559838993522715154573070940429665951722602046403600579763665888497480269042425883624913526902952788046897002082024745144163285765647146184441414141207689111903336338150347877554794913663681015989880808747264398618994483783037738404002383279432644172580296004616136607859188802159608613021877521294753149415562256457957301907186644464891192397687499886697096808576046137483250341719413149732588521138705125115951966654132644823860590727495691897582417488240658643486898254741443907697131150402295268910883330816569939910017356034356916762271130863491881608358652358879964062650171718534587265408973479176611170965805253070953362196903712942436501911410818128386745720209478086427704053754975368713144390706509827945225144158441105393912313638036170776402235095869820643361169760795033675174509088544922790794810326438620021512882545224716819117068001543808897001621204895246213058707721527881963700930015068017005222452746276491338981871536926654287367306220867033266788316729303524843353480065369132260986494388995481085544882775660194108626435875385156407228240984886861458482603165353830929020835717547988312238614667719714947080415942987581123032860330406500689290770474747851974291083825054583045785452415601681035241532957039499780718576045693745608438942342415488941388697539475244952634342873114294185696246033249098904037236055976990377529770593543017640767424870646021617502381860922714550095451860479901299709362718422650235021764094583396472048142082200616166815737232316941918569260631056403166172011826335618490714455462387099719637463940921078528168863604492426759275550432769953471500881787785941518220086269976734738274396808513710874991569431154904201484861281237422887419431226936887624112251277080096033761778050414051475711122287937406615859049993144985752245159699136093574389037198329736138261047625700312000786112933114144061642258235494085345618842659220375646479793793649704058234541162374307137809473256371150535514214222305097665722591918567500535374309419321177800501721069718373712006067430370416027444577334458984628740436418000009031220274310138985809419407094504034898120402805729224459083764460215593254593275022216024204332094189429201350009348463637375141168140387656089652849864417652506067087828166100107208555021479277351712013754634865736548108734993496406909874269403580641764115176853681621467505290129496146706179053710566735548395931645450019110362894537246010722479119915666651546598108768626653635961333100475552430129800760493395280391989346691588828567790635545306187903986820816574904654148578775973426498061093345040561552794884175622050232740333901283787740644614357680468169197118035499665120877740935181801905769491615156837638539898276238841765461023606429805432448625482389908864840568866982881748912725322412960085931894549269777047150783831978316529422071753336039193323010678491934102278387752190406783195539923274257156089135915345864042400957054828309810107993404720225290093631020718616074497300305941251675699563683199891092012918556798316976653434392681814215755733386955342679436634003088746822156145135520980046099728036647698313017669378438997982006965739700474823313781130669030878931259441040896320592249622359978584435859106372177207275092261096760209815114228706439529492162494867844053655525496531491636965567385731206854656047020495917915212987934160646788247977058945017420009466803341738882883144539224725618705817238821353961081276512380544804823904632849880107257196829762179366253419269478656862929056125946885004773504408814971865040316918822162779548592782194672833779830246494004489733925912677325168521389668567614638680341653080790359872735048460757409983501322071358148376769016860276575476808966556356353968945197930368916905923008645238810765714903802688911215898290583072473326900814544589600792503541286361321453944856832753703954021593585010424374234086158387540585258359539970023879440777400150015642785143576147999795274019831769208283644569180961762071355948840756609526793905291996439226172085634505427914477881334281190371878496357468308951028304681364027386411793389740755989703767133033113919407732858617607158408757768725294415900075566911262486867306869135860818978344121791137729214273835911764182449360973120311168347224030941312299200716128397988127839007156116784336760624852388402913488290012129386496487264336101513206993884017735738475922683974807711562690891320293002214220705762690704796831218014202898298239124899033788394860698694157948989527578227394103381190954343582611044646580763778773978499295649926866306040516101769292746136427727018248687722617843390144608142288907444907911063069660605725118812382242696258580470186105187298855348409613263430465398204496170100125098544758409475763683913897470630683747454165868087409327110263311377247210507858757440212788207846188954199752807790759178854050294425583686671804089185863606587139040076464119794543452463671896564689129061850084298350378764416288502181319767380655521359318632391756596349715900456104098908827876978923993525930910952451254105357990933735328722867622194523681788334006092921141387252563507726203433785681521719321459344852534191407969685193442372981292834169890603400073573650773855654705918959110807765849402253652680231460537546191845367852224734533302510639782085738406342706956530878896455938801484255504711474027054115382818505478396964219243714253888521128295208488733347211046324219064224999588331599557071080419456571144566770268625635854345675268969994719379190070793388450483208516621792752239785469600492591366605107996386196260470747599728116902310891112732688478508094062096803784732850456139294074960119384051619148516225692757907010715893448950393068077912974586453285373162416048572301894690609038401484837000452090962136652899587160242220466327277308115305966343206717803018179554539765536131881748335272737213995878998826780109005301450881612812708618876726177912673409911683721242794540243912917570123613215608508773181500962641033081060039089161444977936801568995894196492723564159629557311629834941156558420859213498309774821042827595605232553458142098413763725656267322091285023589523904070324332247134016617282000609205136397231203098706310108151350429299895830666435180109259927458930624065813293976740415521489669357378324208379650863312946885062245617998740098434366546988354488448686991085922234636569213972680525782267826901991372855271706811412415204138497019987725650897290585542867014265495473860530426576628279048470713643071985885473154033366379100566871191241156185945850047864376628350497718723380676120559209239852773512691839666588185900416873051304520559444629963501472295325967482729408399013786968989637865239918214342159841984711182938169974983784217295124823544728294753831845379700099061445476373415359384499061444077503655639849501734558963368916723450786475095976596250178535979852914956703420447104943016012854975193969712930180933850652147431412477088876408316945955738745991560713879148207913124590027159052080994485386069996351385864570507928923012643558938358118608076478763952575705909481750593570842257357985914810623689226729859321265615405279178670681044636536131769963036330971700504673845779566344031975623738505826480093024900093307620874668953816418467343870048598787136999509624320060285969314135605624703353337218831059171826829964716254147634185754356554528110984160273125452546988415045783386337422723666921950554459153654494575889147060098230812248357284425272365536961407885945809359042047184117379617993091102208736329305935251773313552334501003588024087926273806454352907374196448393438547955313160308194892886217955962852355250470310397772136661064146423263867761333648626305709788720945017537469414114870598182834187679119479566371617359571150827540454512163820965196018120767103068804297740600904481299712918265756345504020268345551020219196172651097073817149811618741616780155572861497759420473488072352063335958864120495155902910671382914106380097773475474426638766468319578851796591987828003237364384705037477968540243869199159970607856167613386252004707589491995184768552839046130075992893912698176763935098295798082193233758423367666388016852273786091986722451710556193308183957944995995613573453759977360719732458231339970050985232492475430105510366933212978174990222414018067907220875849702588565853650448226676480821575446396459948351489725091107260420026984136084534644746400313841864928414880206467127167795652029635730230112792963886462691856970103479978139955570533273684104168683746476638711576809154005645113138010590300603516418117572404414264090397992591373829542882171220521922243228209313155079366906909756513267870197943706852671695685556858510787668458654864141166995711078424989318931742906947571345682924734779921814086357888395590663977559619008732329187100207760106427437523006235108538418628750490240785843183007083234880796054299382824324275882738962869474641119509620811885771612720807856332141056085015083667661347961452864443343966461334920108242868625110331159516086206893405320190630131926273278295745338920565168668286868917715964532635973972863759593073992628096486893731704526678578042113668448435233618819011607801722585285050615389508122478809783278925406133036484804057560354469077656982543985138404904098487980265093495314447059381357230028077407010270842647916709354196342613572510144286102563475362029342259338901639367411291767374067854970679672769188355723270110684815409904079027328380151185315302279215451644504958581375983294094873952859483812123167402444955911107063484684079224931599912565999269957737289886191224204795238413359051261997900350068166128689652199673180694193178766212650881551415465871324210750178086676099040817570721444675361862801507211679944398829441688766268432252486160583020464900815460920257362793496369808538917438722256040643371705456635025179220262734334330956031650275434694737598988135858489260901689053769101800503850358578847580686405451479386344656345965752225686749238481416457317535541668214507503570369815229184523245310015204061783077759561865735064248923576266943535990320989338917578254760358945356990532386114012447954733893712352037166623616349888158558798982890352298088291246103519165016543947872164568358738362382160600239225408703899375938927042004895703140848649300314093050310032784982425975191767228475193333784642977380346299026374898964424118833753054481941014001323698368676327379309557110052534597820278627145218444617799945713952142117618649449913361448647001749894508498815578664817837448645479590906954337060938139047612385832271891214290140290615049376236512557228124786148842623664430166657426559689929489192645550631512261873334665294492652113865491781593827680093314335371918724444305325865588745084423586797387137172133821695390734571612647812466103273624748818369589846074553118040622317407277351357500741795099376739563303841281535544958884468831208549631398196140186200370271207488463838738032897809952180431276101335154122710999214978815227917927936788833272331999572070892106372240989968038298928555801423308659339895203521314505546830364310014802084743109513268171998032091354499684833023545204426632190593913049815538564647365910166674699291310046397251288747322366198777272502158845700587599689890147789824234138239622718739925910683850686390517162886853313152817722846487260161320185884831095087603986392673940532359670363495805405533419541541703834145073948471114191673552407250831598144661524986125306073305076330206120578623570559009305800770524325852532896709384624305031360576512738372543483558341501897410408180584682670183258620832777962426049715594346087639614720888740537977536658912043833765725157037607472396171705763614334758209679760519955692174556612530031233561132738140309901482248664603677646686965147187454198722399981000741475052088308800163418790481711447486604506478588177083689576650414614527957759365330467657202209223164940458649458935949565889901265564980965801907406434674034551674163759455775079414364497587847574988357136345789193850369156715051228304224950868182783321443450416985284029194432288144844966558137952398267189623694012308723303710908811162002209843329214473483044298215798252412452117450708951441721042263730152071381448854806622655584550620723630258333339128811760176872590356307258663126185904873958326773239474035418135069899864620920810969940918866129805576733649761384653753380003541286591650057898318622610518724830588184504224634301576241627386882760211919929523424995124551937077081732958971285305147186619905155873783354635765806615747466504264510062389060459435205750145283638569742551829047998186353600364949607538105423815889637534398976600439832576785322161635155137447654279214512470609807045185781386474967195682371257293055364628019598694570558662193903892784903654097529607678006827681437597897312299844934998743738427457653803972883634390701319863295192166644698365581142850741126759375493711130773310772259696984484396917074136580526664772350113478485425979938104887244541555876921415111800683599739254846520707147071429295910269809196931718370377463938832442160155605277060650722102248465592661364646075060475480892060474805096720835980434323563438829476632197122509742491235361773598167879376346068194997151058987233524637091935459244377520327556965963614390773749146422260593302821678038933346688077902910762949893015384237018815883068135097727966101893491130852263572924456989701543208212111429710622764932401145015423346482678645893399017943862643683300696386888259536989146122128658947865115840743080996640340437960666772900035212000893441542303469118882194390120377587391531010547559123757632134445923795509975455065987444810763129995379192984971648482384691867420795971470638305621483808972235637946233189221810880686816630336792873032105550306930484081906353736540767213204360414919824811830843719154960204748130532871908641277164600911767103408278843257866208363893165739325062859009805027807669177760658496064421855182448913880953858266247508229891384945786966381640102393390897316103888767250957031494415562133100583053846719414499521559098032277051994498303558212737280606870893057536631185236755458676963404697411798048554722990144684982309099144573019695579629315165166326271031091593567661703257617777707002412891703918930914224087900499696658441750917111335692569210072593202907583844230302455241495264123564573516491090786042147322781940325726490341345470536653027940408439614927244129970602789511507732122035482180264725545877911469879241955747440292672232950400717705166024935257276612258664887686997264959696827434234960145662717166307375324744892244560812752437910506252300869207550452670822662335333231084159246631667582274633284071237188489803160423842183032108800759136119652857405956051848925051914652327868060545899032716192550779469457431778525801096306523555215166161806050629481815355036789360466143790051694079786539867542408663201163309906156439571886110773637993622769009625478917711904579216348264309735269386188920515099534986529690102672867369207410749371995263813674338182258269076296830557318265994416879936253937002423811884166278815270869687446433312938774025706464221064582231644749466696014024072509366105407823267226090137065538221534418003992998454357230919315234360594759845741169968046753973498824532211656794955434197849911723772877419143117493798574614516321060115343602347770711235253782036026775907432173716898153724415132809605453832863184307281969251831671767982172632399595735458880696072396855518041670799900746713580515130934079962585927546993076331629624662216808480202374986726620541050242563019946186992347241978487289791283832846683295413877430203552929436539017965770171105151577323643406660792989222589062919204220739888701037695869342951612716065081724957221804664813093116423229297358582333954128079707811874193486648555851614089598198189354805905554756969582136915306557324033422058468548584937785387162106436080308108551278557825913043898897058211367606985139716084042383916763026512254998336140862385597967439375456160153039295556099123781416366296069721965177298635720115445659287075295807015940681800330416668823199390940544030353058566749986655468445487026736404989125967338109447800897506537562664680782853444976885468382571447899982586795002339465901772587863935327756199097036502565513648278536780374470639059762126021439918267013705386618623268865448663070262407358569625445264837389187774287739295399423952574835205267259950249924251856685018891605631336133838829193337459007153684649123407061681523392079908536714490985423575538632808249846703185360512907889042881233012869025775766166658448477382597638600415036750026279454365102218071450518743394931669459655702027375482425823385637689780736688186966178512007571616337291020566592724943678649756666115562413019716959735708212888456295908435779507697237978980511517899171378013089076962454795555431782805154045284175802458458912175081971747969912547375877054781540068600014709097466576398550313901733400826757247379333758891539233757365547885099319577707332495164367215476175865510266794187805430454005332433961000922089496957883227807325217820366907223881689114012824143402883972217668906068115806247129204498554785170211300426238382791795237848186562986428487056025058734712990034075623530466887442439642268406351228909104385779201937321378276455874486665379576540366136771996417641709201365094132925978599752707919170713031202607789554268570166747454821253125013142017676972631569671580345454028002994995664057071726081272656289098312952244641144697786745967162662348063679404737386172104995594548475559365661427339825635667527857018298168097500181594441810296307298307539812635443465707246110129689835088377291254464691276567879600046905022000557651569090149165621717967614435226356635195502459510640776182497154625896270400148673436889467464041080018495105415450512064377999262426374081935252236874697982648059807968688333744428701998247587740408859145671812195221987421516767965001592504387113558534595373392758214834512784378946845623099486072529881584022109835284212036334401776157474875783611614544727800381340243654438381983906305497490357899915275513131261229295886411537407754789603347340552598068638733283545977016092827729946222772921613745018399556685960550497697468680892587452024980208637837375337781571408953445960116012289637823962672047370825075570942368011667428766308017173064570577325044095181990945048171825848833940055407138585734815726465153967198725231944365872184711891857966300208216041965169053767408292397368151005194802125400491249982177154470345256114105782649451975272656640226523300331635816919492451693010863786151716917626882350697014844422421897524041429983054338436508802538544327823937636218008497577294756838686621868622876952404354864437378402440090432838686763514413338624580976553710262211708979703317121946931537199658320832543683825025737746029181479162114963744775732447047378502986842274171952485843940425784784050936227197691637757295993455010057160431813207619433093819263651514920723603389570622176256740684914595902469435153030147769259255784408020288602929180907706293585291398758276096794999806954509783318809063480195290177273252979410639111383307540755622557094540875618214643109315486560387537947261639372782889237168642189559069558136074647388012120777222998927588527246675153541946634829901506294778150930781737222721633181932738423969609525826045849097496441044634312410815812842839405623447599609408248792215586194786175094738351642881908828287541936982119263801684035610026116549665850779708363911741633027361856707078509534218178111426631512882981155318762886169505423844861857272341428350781943166431517407946687031062866919107678052567138678788872284320174720222229653184882155702898742328964352881557179948527603031962869377780842206050099264891903511755519008357921612725330372980115433438739807844705426478143254974203139519680619527931592185515622225608058879852166915456597726766034239436257093708860406005236663800983872292636141727818802085595987068919899554872914222241915229292410583168018078353714131791502254084719920851762720001279846069833105460888968402617400704248719967385711770717925119152087052575703328725048188422100815773090582876613089567283298226435341483138008633991707262394161005029463161348260930757740164453455446320332438723793998656117038882710486541149072339087742432288841685304014596530381089067909864076005787006973731840557998981719199816014593733578265325174352016619974795733761080218774445246000090445514932694844457039623957490975593765344274063539525275261045955003458633488498472735852087562262127164080250702170202599376659433974415108467321417434078785044205936269464598728319554845222371723441454055936262311555144024570620895449161578733122981812051912203994971363664920821545934309810630397306522439011906753516740315776033959612464791029028774557662525454026278411637018981729598107188743217623380855699420819620510253539249495467946092688458328892850594154701701512308686439341569687091660484900426306351872632581680406362628344431017943102088690894900162021776874019794389226125842360788366597611121835546075499810207720016854824331243072464900295202162209850750263953689523956315017848106023407738566656208450996360665593006523682505530298703830215691804120253976833403268612946272381882715196828660245115068760816359073861418876476795742803344908427385894102569177353325268011635838910962309791072375749248389177511177891045415229702774954007675314913599955306291083634853899904966603989634232455624201183908770770956980392645109090109722848805829773053015755837385600542969295144316634762748162354749850402145125030718027702709377739578237972720883748056419271356496927011445614689883297883268158194940337100689136706039760978871829056976292669663991557144346500421260411714255755226558380336274234879713550902642715471804219981411590614431920536674073723340773689128829674945047640236058559224822182830675996442393253674643691614978711478284338935199043136849146546872502807927836710831800978562443982964117973552011156684683048805782749325638934801682530230934188183675182963201987447284337114781175391255659750697633027836352991563595460290416667758139561383248566459991184830754440546410662612343679606653047394057200665652352186943640705112776464049909059618201602091865042300059663571602694262653424976617722552141780081435633895299313366369945999235876225626374383572947324943298999290531655181589186318373889768838918006046951463376812903676348554138651491760740260133279542361002662659538174393454436373310015952230750255064858603381226297539306435921510205601219459406024886040306778193563512769805881473864778185159352030766372784314464017302483242170568475180137486322418391457649634868268744337668925355732983449191569400991421524975741790838089641799174403478177829987577221080438050381613561855753668937689486085312285582090418282272884734688754054717057620862115367712128671079308864148290314737286861031258707649621426530801110749470034071562259113588008308537659816959601275522550010978458419048180931139520421631945098959862224394798417717699375526928125450143676547319741043489045303459232645562713484419098958179118967849868116365961672878478706344062232723444619001768176357517162100926117580996756186799638606767297544492617225327426297293246266042973801746074225940746358226803919355599377660898495317629336657762280097067644580143817661543812234112227711883653808796235933646017679026829667385789786477808010446911426685300450348164586968929576684809934732998745807447438902668302515673486594415891887693722161388325948804589307917479264576281481451764805872763696052940829884641254217736193830101645530712157920658629545556164502934490904261386156711787748299102356413350959452830137538100258989720361620784146799320286192783717828568358833674222705265953823318148186155371936360124707426765004802396946009867782679683558855176032545288707878545460083287468839010320006202268589893648547434822573364218453136887670329661403167186194265492592485494889792550923985838279330403176647884006319917428595328287525778580372828453388840282891428862458434921601812838181487275069507936598712183812550674856034644395776731477575017013450756335546564560167534157270532595088398883285312363071343424710151213135729557626781063839808454651566815073436536093304623098799113677675953092355785342898106541876720963887149673920045368616006751628569706419594487113254680945606069246309420313053657708747319017335968686565315008197743782407474570771045556130869656728730849051667254303634803488592315141496165243570082797157282574413019930401152968762586539164140909069516036282883311715075341718695924963657468547130550233121609093419645016142533856722028131110153972279469567365558884078905729280600683140163251720735778931228687901027897574835359679794386914013614675419966488500893853281406455591936806320145398516999684307494251064947926484088474617465189481421903576726759177103622480447626520474488012234548007396761543331264514109155736725320096872227090713380716611137814778543046852521725889567295626383384620545231426438041098264508197251462902348549945151804966425840310492077930292760174194706254251742805909917809522669239855649674373346950089994195418346535260386857571768503065754680396891697089730217691143175741629333726143084096045981591413994479007839027738833921128883330895337013378109713472594663512364078285325684853660563967050076413891144211548843686861234606553309283233419393185534705174146920176100790032566268137736447213926340479244425632940598213027198549117806055496226939480411197968617470424370923014215852988845735669223515820758377131709761402802469806250660155867489741365063679022987911368832496820303230682900501419349224505303903975215712680619510722522035633027637524963086128718693644440481412361366492185075020047203721657595693777495130545637563891926768673713272353015375095973178164970115753683573048895017323081273822003116025870725024862503244540471885562815616290947171226229250870749608653570969332759650262184383922431350751453170694229760170699117552940046254314481387367681457474580801262064823084580232452303719196768108090238215220930830071950897546542746656144528846032912835575378400030090311570237176573700727815294324698838195570263572719576975406485887837626247277079266792186524870386524474447928106302205983360002215003439658232435769970406579475006555894773480604308687083315942157873154948918473823257343027352789110772212019619763130421170103742922329812452531182245213820753501233645129910469386810879569229551443490935699330868907309983295818656669566028351449731273001597549749719512621343424096614561746850256287274775927389542305045382154610995807619348866814522866061431024637547358353639091153602814839006618872619848699785708856649070418097164546471640453615201837947387381227222122589464650088630091132361443171928350364001556410878144285637952091021330309785956827148578800053864270590854907651060208587357142086267723980243821997977701067903955551076011794722768131748383537040927591161833101793545630689573390277657224611659079204990773457134334560633163460298820819803350181230823742352483374276618797171757178899887026729027100735447238422575626425854541398700690116319792302689514069241495781014412944214138870151860511735109193390533440726986726516505534208417827139710406835540602683112338781604115766399745032878027133804390008996254312432851286873320531485079088219368493651940250209650611744540655175309286557901688180803898047921281522500896918789228966508812940684678336346715785214898667915655403428198269063215823988848278741034904108848207263911833111394449904311751441124445284126334817502250890403264716452098409217590128741677829824341857630920220256530252346261281172097534574004258653663748158170185101359961223598242319899425800936727228705173729078569202864579641651859764972922405070305541017182283026080661221126013637834018941083082268732741835911969585300894372507233093993153344320901963287442745564249548527900451302400509460766457737463856517743483692067791711026806338569798628891344396132871495159909452473206085293166859808381851378229167135049001179774545431032102208980728482691990993081615325016285937409993849720219503993811391886299952031197118908068758503015752210338031965918797881318676471819870662335047453924430081469853018471963074717022989957122210738004263651761558036864717129188895293331410898290661458981627837999696475271565038636396602884695065292399977853969095943076742930170588376586820591215354392359768106428246763144907665160677324399768868446434948695605643664845024214203754461630939842792530348130304216846193332969176663708630673515235454244138806706086972357785093716491244025380489555983602948775534300956782125091391571073566008660041219992288753444888173896679986263901983784359575099479937700226914626209986060811444594061273300217447950726201118346265358097499311157570909105967688192045095871166725037116735856617198820363266536541605950644148599241204757035889606432499944758287673132777932220318564938517506175181559332467262504604426986946385986573665124218167232931866914015452963092299366488762019801142516665695862693706184222886482317719607170157624796137839747216921910058157704066110421167192525961637681528294762827889759774299597018467151502277608390082919591654859227013213220558788341441356739190232464272338479764539210230895596518284062814579174423158458180110515328044723020831026763657373064718418367980813592669496221184463507914920857325764886592465294576721585445468421706842979501986320651565636100995381306625497019414446869760708606063221058714238792885000748819799245720751147324194341240054222345265210932355771401248233745436060457709286877082174811426352219859880346982203658825951738075716887743640226159210993096923555650425096197460242415502664402567739461163036523971501481454939986119681708169473326615201526438121594925143374684437705498445287767323475412779972260799502424614156885076128272983671281424529377016083614666570453290759887919246669446205880120794045597524735159865094810076053697579357683259034005067695922432017418379445989876531619349177444934604090024556990147817450568638552935235989214198224507380821914488167847520917172390262884312796151315291429877228285469178182447609636623321887644536499681464073341159093159161977674911297666128404076481144089658805186240507032441359750931875350079818251264438827293234456166101794323876784745632102630646997177955455433165479145022766089403429153745642571630045409049996034313199239869027829411952965176170875475794217312033026499931448688580913523209862609831610768405958567096928435596252144935527641671443736986633731617882122558540203562521679200512459355390859926013718939081681249512434194117172674742494917293079963185373588205565162049241836540849769737459903053607635415685416153944789842687658851847350961651022216384186656034684006533226678848693162076249455081560070109946302128559946291730646914368737116532184750970695334460979716915866985601216484127289043025178355487186011833404278148508373108132352316539074674252009731252156588859727993085705318911599360471692366718184246852161726305777828533668766889640788779504108284464340752546830990428931003744053105956612534855548439330792332045798680701452825562941994438961560808009075987395005015218479474767039834382957868137928401766293126675055690644271349301601186671486348971227773064802503954628762781095710092729833299308315362247361447170772649711861894070827115161944974599210125117081647438861321633358436849198226722044508025405648953383445116496286827492437207507147595739604304037962515324933043767804199809340091627326257760435255516000022271317371740955720541101638933771585011753072654083144917987278301444686219592629525688320549488377627603420814523794143257930941433483729571941742292582542038141127468617045502874465807742268161847493510096589729545563061792300762833041334282899310185061074834512753782536491277149800798655726575845835725255253003577367211697360827605805177527567192074756656595904008799248220106899423838422265494224389194396704514928999101499803763759461701820739438567853225660047737503101889157137613014319430128653556289360401122791367215213529759028052010624736577493388466595074800792553859111525738491524889176419757223166684359118603640668273627011031398493692781267602635053578676285290188356097225194778428126711460230702038337372461732489084204196536576251071539544257283520282447304049786267437958877527568030667028890078079714717091236588019924976012920955405692957796406014921610811136166915384788747787670649563511516304882007384313657694304612346031472971372754612296827914346118471152486278475241595296606660091873996976843223008000369480838474031595987149196852997889021204901273835196908963507546234232918820776294729975487371885226490469822986730547470105948236164005070497867829940430226195650092754871223512041927150951925388746229696434664201140828549369141584193147667955662350754101146602061705527585154595158889361175138434337626042923144752615375512331902721668964301414690340939494255265427095133333881639224628160834309646782524454624407543871646422717447042101167158469146651214421569360650416350096203514684107705966593887105723423945959919748952101269645357015324374662101050027197728595487368067548278874808067417204171973031208063544923598701648952314003347791481648589548183123467259731113099825801209124502685179843428537840549324814671272980786635652054093931309984368034927142474799186757388007586907446956827672130155887922728329121678038727906636369752710512217355876192377325431059671753388758694565265513592617319132980092940244144010453773011765750065283087276865466944529616924514584686809570779971534605582138603602108319118682879845494266885133687190808239115828499972078879305054239881817178330569506974597059560742861969806809989770912515087837960495039665484830022327705957475914971520111834396105766676245128875240951268207849064565318109336073717217933420569099975018693517722276381530423826568241131996500344403765230751749313922653160930157105768519738941683361268613115176826066394811473770401995775166978029785681067488483023054991062774404005314604421256062599008246589102736458305934284681026797798489769350619640440628005094375180023106990194626677908560309107200241711646911344257118186111095572273208112156520930457310991094883449939530289213429860084542252183772423732674974171884399957806427814397482984832805444363534948431276632585506626947644078216904616860783357168882080265291219246486887736398933535233937571213223350686478848205150879995609367901151073470400088633452319339010070622470778124213123016891535234046322150180164659179789632889532128324152836558717801160500789932404877649386899621999087059871104338647861791913201817537705323158188914520386874797668863451791482828051833584405857490224940781428251987997666832690637183235409506029665163692176439285840762338420290430060850270177023390257121435425863553331782895913774478810577913916073787801832368909470622496240035846949925393989871740100204946930604374968908271357176205803693747648211070459633377941858894737505665222480567487809681277062462035096847180553544636090420045909221942225426538506548389611888724935437531913030224298805800883423662118414123904064943869093704794685426805945124378085180090950123044909666695824130040708124640801025480566189479754180549301561296104195075934201956669458788743625426044667368492116569949394805590652926189416368393549110808821876810655665807172898319252286597196530434041800627928487432968208392142703226320413225877748858918140780846742848188588608248221991623262331165615898300037179159186222533776762708029818496059602667144044911800408780553648562787168703403473930902255435186005468622556961687353383182349429656419696373265305271570287806844935204018237518373420846184301872361252786886937647940990205146697177998762070822291847966059940847874076210714022194110113461182310852920059905548492050277102486503708060128724678818956500003510756933621163555753170183017927118997786740475906676009199958320922903731608541561442261018327859781314593967969282150603079020993130866128002466012773852736126750130548566774085765680362160154633963585292917951852887220576017183778541875580772406056311039057444371820531186907976924265892884129600358627127693270755433639012890594265749089286542107775865993007261093997838889616879401222460226081450856474225969856286460393639689158937729837439806343826814408078106987476867483875275274680528076279549373154832315519638399047881895937896402241972300074689861714374443506655094089537347809461592345503758749893117561491985472312154685182387507665809506928256576783458939415150948638319732615759796088969981550895687902113513498938459637392902667704538743261621204842897775140283829694463724812177934791480632456989820474496051904828629801868482910424767004201756424858283287963587698419961224850175733150275486947326505087895594609724989911809794823259012935971853342231543134078588917238492371684034334291162131684907274512210513519346414727122628293886053726087589848675323993171682085782341606482610994037379504632805542011935870444448037178653334716086494849232252912054496225787296888956787746874477743882785606909322354850052178815261217290612980200815156945142650254099273845750442510781792119294709020879181406242704154900873485869672768265385277962630917767617392839062022457770677067121946636177073325696117780573188134931669612580014756702088001641445749547098502553199610509254340358493621695438221037912340876494233181134496077207839884796644401049222607548658039264167048011494562210599035971034256141459926252786968629561662047350969884972545707233107116318124743356578142860336505101942363240127456920792450666019712706580182508095174468803539526406241314463173221701123133320754841062890752133622784981702195323484856986129556349714412303869322233009571753795875715384814647593685641100737260115956362473654285072142824850070012361777157683666915013760086788796332909306133202862612887874757563117862954490599317672244290727348981238141203969143933368561827543665439331828773221856970797526958549643311626683435213841041226151783937682768476188487543006901751748017989504411370980548731610408407934682895810683383237106638968124467795359237500066671200689956211922669047168037884340240782180422606205981057799298786616195323552955454976145679801630876702489711645885476198967133258071744214896083125022474253745444872648880721792923510660527024074941607610391708795083955567721792770899773368472169279113075803797509494955645057041047277859297678901363297212078268701547952551385213262868368532143575316183375336204522240629195144314699683679996924905002163803100433697799719545511174796701666402962065826205576431228581679341019905795612603624815257119946032681197844515635277252571611605736454631623476382770092476924153052564821455428511149794433115371763753062887630589479714116368267428651710854878818578170593546845452746137862661251804449183638046780285083186375367767634209362423722499448314414317480283275067771929877292424943356418403558015373859409582092629036158902680095750839082987396184156271336815800790055029239252536464353602690541318869904991645444567289045038472663383850867701901477731344801496826106394586615175728555588481188241768624509337579079335506485105627293060485449952125700520704934970186770544565074972550567289585166147124028087859172900195167727297619455225726459711010947945851121957298343058229032782705305572380187528061497365903971965922116556989980773495312600489910270827602628186167183908722047605158368708557976903367868249762247608738544312206674156331216612553859526628212344412295276691927441937328524483935721196417950295870118640474242735600736636452477916291199159027767012387651055787288528571245268353437060311606214971700888694614882819362472090902260685838115776016932431233437994816537376739964335666843656616233626572320391275984686371485108969491503686180470977695473611107402278801280940279682047607364167319627515770707927015321992229013984678448792262603762042479264688223704653982892308186339755243524726443117376992313554774592944583910751026497076007927520292009066090827206613351797033412739897608254233836170091393303932420452214415637146984971924315812021830265172555547932538554498220177158309516070553872942845002470096668197645429270786820540791691847264329973768054273618530150716334635587400096366098537505369238330096469136957454573587840977722491669035740833599082748115342719077092663921265254124728295877019565748597382819292355463358226882968621508314548140099534096885330365672205399198422844259635395963357700904365503109809560431530391015708671119207665169921111241822825770728279433581983135206139164934476341647109355479976898616834713408249074802952719740021863242817561444032240547074483361899900007525991693504906320794929584329180909450188236279012258496541234526721346926050582250189589900929405990210092743284931590711241392923990465940772804900995785749845260244585070898524207130416141342917272062257784657213914984149485222036345865973974016540991250436523442746509556451909790647891419882470803827705493549151126137915579101452150434120284820770371180579772652520544111806150104945157075926158869475850333348256800913428498537342439928649425018710254052543149043125462637199208607394558507816317044866871260846546650712307138437490616454342998820736183709361434354842676489935756048033155602606950115816719704218063926872420614475669483877845299918858928251967045982074534552455423100676975424154157410509117684393374962939180831529552963275853768486893631275598180817962979435920830872133123333766529940542556116748458069038903215199431927783436407331987475564759177251355582990718988817757450622642733295117366951363136579444190206823241213278680221911696081729644557040508421347605068565184783549051245935511376668817576599965950517656165678394136786739494971689181163896652637651874896000713135850573369198861464282006442116266047595265171283453453668385805108712897142689360291208838366073957674586077798726610116505764259778731309482235824963466644742746176761112250262726673895261633603061487683189346032295202123409481401988321241822634765949394519964427011967697312778510509243780779094220826571862100767498315692231160531484152355802797375060762147149565946472676317985195845871915161022522273729148380785755141491622192582906694756192007832253571401871705368310143889128157476558320820574063913293992972067247608036495979909630737018857291824792006153923599074941664401041836938202592885964700710542879651680086893934941360033974420015021785758908559977543094456659966193136406512658889157271262802932160193807335287885168923235550303265512136838602521444675721981189264640435019790360372461257259996547679903679910823109263320315089441815268882465505806172995256426918638829951170846172567006380848170423884394298725793713574003033803993428440024887866874307618340373601607790987715597354201730110446629283800285018532478295076973664363688748656553412827172156019197422974568784972962078423451802160184507062757078176096394027122111743710559773155812216662266402856045274211549622405279326351259539850200009035295156696522102659597549083423717549604607541525709858807743889932617759596222904542490027805745130937904116788206025126166355785949758888809174239080409742025392976789780036371395389173164240458367518187628890672952371170659596247734359439956811015440942451215007140638092702961298376548225943024377072027557584504582481285728188571262252209076569509681436621052984567176101582186171647336564575223693716329593511353621740139926395757422449058464047807899256272239734140211138185021498730149863889553319956935129210606992490164431541809705276049109624604126517903448074564497471874680033707636648845741272907905688377097971132142647754733576486225043759687869688163137807566462330570581892235491781937602042528188772740038739959110682924622099890578645199808421954868534303084429011251210081754752740954638805782793551216456812178516719408091212536973048481131171109263466239998893266353195750732098490962070979066835040620952093677987003478967202646112896611239962588049333765120845540109563369521996101161140985650945423897281016540274855458693394503194645086496227009502077498467123925034115310809297472034394889117677948975509265581999835070361577713942003160676380903559212437466959511618915543386927826623930475028278120385202591252806412789726115290889877717085662094640646461725272123689107674833827800645232165833808709911935068527848763218995209599198820655158053522075913353606514847154596230039343179709142623071108937317429350283854906754545157983594131126155990725213073068437121967800837924934339800484150545208956739665934186425548234132640471465019209537081877553734247396416066797742772098391692936909387480811284521919411678821802879214796314770301445732296976790178765644771197341952295363297055041936701463900677684005842550213556600592825806741975416499409258601364223748851098673325001522091229836864583697338716982790431556562719399492499134133183038105961304606873610629503548439169077387225029678722785963844390091396214604065118400655513941269559847503228262286102914692177752746347333867472561505583981685166012290318085689639123503379991894018654450100640652274572615080446885673701384738088301468945802483344053153692449652325406171643220836672029024738442450329775692472752845951779608448972487190533803244997748090531309358558418526721807763413680233781864170449765042111261800060759621149987255472645237574853391397404708468653041655709466917579059991579045795280835587598314248303191413842687800223096807713641426778346148175961237632928071458452847043912715776741966636669299524378902477506260978221449522676907082080712869631187412622721223439288422869567627537754940734852218577714564737332458452932045988133394530679170600458726009885345580268775330607955291470526885696943949980422783550454529031364895362640609579804483729715411205607704871294524796175085452654585733601736476258403948681752221144637195870942285557197802608131890198005991341606889048814704438265430610701411532591429238967041521761730381666852160528106496401582183985278608789577145882186306911969341140581158648081718938113585541718705424355281809957897087135211800354483135306885844500371230270135980223262509084672282546760682000936707881130857209055220811970162090404913155901546100092456244304477865122987264196010381813045662671565895084259184940341805009096491045548287699886673634367468747433055021999471249925164299167287128980455749467793074269258938824976304975332239498497269335681292817344462018810509245480302015251130793676958823908225888479157880340465896396143151557609940217587480588720780665244225327956445997508508186813583041378558260463129206779250479096698686152309166821824071885598673204834279968490344417434869980996243732776091431321352154945324862857308917883602644570457599124460907093555963805016511976440270882635381067108392235969640805074983690156604981099974289075824797724700965174022818206265174995598901675445069585882672440008189384802852933133077904304688914880404692724300358565391009894988938215550330992904837375965507335827967373864909975199280817663089955218654218109941401984876997876060858902157841604229917150147394209215156450868547650467243337771584054173857165946719174619625430842580911647302622885109567451985322119065707146725352506673985744978041720853757138765716672367905753157281411594743176164806987645444879412005486757967588427032293339555679970064782145085809214943896115351398726902746673567859880560200944115236972085105177833905711099970357006732569287450667283304903394799177745468071956801887831492553383875761180387225868540934279868636021917304816761397594671874227539284604516091821828678092699150046972089466242678547315445550981571425475462094375382257305122304130544824411059686855209735993103257664656359408325237255889354462168224043704067744502738495446755555342392872443546088763374864566699576740112980227518281270992633033424256776626651842480117865504364356509889267605439034609796114415257331299714843086521239909061315678308791284548078283328187063564044645950982224495679989414158726918924235439342583303368501723384345715161104877026167283032327938881569805868727179626568828378202049816302033975273384353515849752928875635187736149089176767580893668034271550811077596743204972367238352927670507863391180376627774688667489801134622350770918616747880212295026458072798487557273833757214015061200509470811434726979575279583064564712553464077576793199471893887274409760452567497725503756198316996060209461424887139020548031310214665843937387289630097021141356846746365890456710307741711639063762894184423487736375164397285514317586257282149780218993036067490586552313182313926702778817288161712400756944484608991143586918566259873064968899268562490855280437834240768758109946545466958476429552231937840624353673366370411556679554725704135738566531143943383658463836614451703744745023621871136035718576773176641222151967612675584115607050447615052087498322647856884100497118321034221513921865170737750042116568184678216420790941759786346579406935190106031004430297746683785292787631407630581741145254165498477025890281530782740292520583337252553011535826707783202222038015225107859184980388961693717171985671710539454696633014519547260121790890140952371399129415847307518277250277350642748969767195019145913388289168398743844395363107566085180391913455922722269836664392453656213830746687727352269433171209308085703892994280127898178893722048928093353772738912307090544144444853881947276806809051429538124794871149586214673061613821706856924910599782496896227878715700829636472480113945232676084079599413229037241235365701738448928589959814525834035720021324682899974992273112970626797330570603956428187788230147157772903038056929612011656291134488635666419908608180241826163459515969449282835334173880689618057973229139758940006578807148722914634811629857165853576710654553455190510352982481579972280517074255544822120626049910852091356681788039668559721127494035055835440530930232780513841828570776180154863238309627246511027104071848559956327712852785767388288867285286214134348711775507588402886479398880972056897714243505072550008155290781117899855200999715068978065292003768195857763523909243167458064994477720822164161552191683384385769051244250448917965798894073972714323306252761317509367267629533826714633026753467206342150575420070204691940281353391417363854003115147737055618061412740876155785710155936293214828688226299193224658527396825706582795297067531383822910193897580745579403195874787976056370144202382725241090894311407089059971569281282289963563348394149117521360652570255282779331474224152890072257747523526937634634245558119049189780477450154482656896371146594850044317606119285807689024976963051422517181228612194247121439415261592054224298655597100261035281911033986015036399511541892823700033237576159234946359433869391118324216024270015417796499433474287856970341640352225461140179140408082273988844326245634498069028275143978944260520556720492015327387750801445827254440014323869284373765417809371887510824585347749498377593822419201296452949803236989788290856921714362415024650534884987012626231753186604681234369395044203483280762411479270075065625378660538216080467398704554769817312808157159635166400074464645987007110730861386557809445542854576213496793996469344725646835309182152637852206934872749599381257258999456047504308847736000760729344576629829842825793316686457683512186815529181259859532955190310555321091685953577567615745607186507170397938320261587974449575374815743020813432992067681043315250933084899687818640386291828070225604848787022961672394555682885208108807367719340704268928843271405183337517957493433176921565753011558498227193920559497753295123231243790578676167953555504316604173162045098117875508255292920288519521149768799539701650501707382165880821177773061507937761745320610079866674074161459619953766591105104380014506225174329638910657595930087758330610705285311129080944564171060617590307961225039546213270394265328398753453994501757396782294719710739079814216288704953823480428173094987079485893731892210409389068233064687234142836575166925082627545379386603120594924735826216937584248719486783864092765915291779009096040320865636044584805709839032088197131865153976420791859851477179315110754425735735757011861028619914283166990852418481617999105720782723799215884185520549044878676415563749746560527101076239760126298530935071610870346004064708357042393765172422699576716865329340756251398755782585394531290948555223212624653542966750635383053758750975081924185185010123654411969389680272987357080474090294909119042479388923018583912249009675486067863809585133986463500694226388257405184906554505254758512765977564437098314954508603609537014682354479438566069232359545395573716148945111281296081846068394691115601101937035842882337517651238922467432898263120311484758106042261882135942940606151495082871786859856358133779076913567998676658674589921976052146339412117966639740617586733109713666032287068189255943172709908404345926534219245701643024116323249415257532351337593040011021178478133949930206064716429321077151973348678730323187095464038494593577483614556020636939364353701466608410005418930156066503149450745790026290701457607804904967514473705218549702593375908333143268654958830872159545029369765635350065246959902047855765421213316554094056070520176782142965864906376213441069343982406360409059103095363013303777354822344570475248870712199146692870629127340350789706893372248937262693488212428727531268298008533191346193321653805436370064910117252907096805891979679161795743332200975694498185075042513632333958755459552207352135496510262931085023243471640210269863432681985990835737546160616335852122885026841999953494537703526098869714499131692733825101713227516127814426120755859132255418290037759155704714420266501196760943656694133629412932622908356382887552736788532965169841186294244038065850175846018685691383605600982727625707972278425852698175142181605010721320075323729456991319764168995005814919551113692109623660208038828828407269124564102125242650224773153860767107606241563498752411006345610024792313861052728244806888169357087853942270441144594721136441119596022621005238968468256518479212326017647605262005629750196827369444131832827153208736341191091205527327443443338171581392705400741790474329580775215263674635574374542266592609843914078862386382071847337250308794130013238600108401930999311421867097212424731339599704712140965923784753967473704897521637652398525958544448783488128608409231248507567166986542503937912378867362378451609985332124278964763565435121878879351046149013824270330940805704080204323279646886777677130385793126858988854075774821759210975283845207490277037099070501960420003868224430987472278471220636003463320830565374766465026277724652639867365535205470621737912850216257071085835369678252102053777880414245528013262243610551500205636203773370551064074111040199573194306704576794587172519442177426853927479732369430734988155095007788717961229218119349340622181910404834556038139666398776953911965338799303206434694240854153928999275134547507841235300498074529780073562959922806553693031653878371903524409203767306971209744259213097232198019330739209089662838645750689455095195431350257448480136363454803764232817351165103077436804655472819380582556239515297968379841636509396572312310185612046311994940367876716959225461774934601116822090614345456853672866098272159029531196321495011360195275350641505482282299398601526301259340213177919012690695853422017652501729813355978385872689513071413257573047672483651583920442947608488104977013312464376219056134511464973420211824970556085711433192371685452157223474808661843583611541726284273322128417971827559576593196254009484131463079877613615431152308559165084940503523759823819248870651403403753478091004364658281223881889077424255464265894749381670486974801156897710543787143908389288894582178225673770906106099231356674456929643689375177506743096833866712250045966137773258210168654198102240595898180238528721726070195781195247943548342410048957349567460683782511761700019587200821393061074975259960720987171618002828055039097150468545566830440856729978223687319956127997703247152115172921488922080980930018178034788670591314546564678857877713528412841547016991972493455468032243788596150131106786706911815982570046542171475741166574762561989849854462596945939937140233636191808084462086048544148374668908056216316865589325791251948677843351588122191483453646828923408186911215551870435301813010948592599536859085449144553882195502110702529598314053941942497300860350530467029450648046854605097814281797901997172155417398723064671710944387433379442624413907797157537110524441615685962318393325360050473227959578486276738692294580034490289549442324283440400117120655654614641739912130080046987726146996602342704034777302747501295959858799077488977250669718591122442840655503990469804765502925704322442323194050540696829472219987307224887584534392250484065429292648614999767680429535281772528387084618651574565499064265490012917205123980946060874882130711241549917272898584582795870380396692087822258604955128130982753662007479848604810392291047801354220209655668341623170968443764083820077275510844654764110074396410615780800478275322915338007482087554806555840258481944937703867790555139508521452685329429762444498342916005961206721937466086988165763798024285431242006675892556514690866555637385067570771754390777510335250067131636027736529914921514438064260492414114671070089025335779710684162830857534691387843641877928821269129417772256449708721655372549450236838259760320871594771127156697080984058775321634270130207652588000343874109294807245968013403848522772144203452952289799701110954592760541329327792455818557546806718897078857959430438955420728924481618028469212754624299997402304881361451875619330121417821595430943397988552378866677394280013625544328493015952396606858654383221633881217728677136025486687765886193883169248846831789032801296467880404309685283938701162556312147816387848585265904376174554688289510875403409536411428108295303222549922142368076718979748785964079574712361669383089173074544346477531432774365403350618280753846112422337801839293897761193512256673961781530342760603703355750945920804117138574868101142479346653030355261290997957111089917317871591346677510451863754913280840622146056088913610510295316134554282296685157498126617207575741310617423207548930926629403789912341390104926445462172698593234666192356352513670110612626370837297433989377223643024035006282454165651120973279328864379362922722051425336521038072250780943981843638402609188769417882110817252084086318938429162201545581780830411616297864019769577334725494141129804099578604455701544539655071993257188638194661599658974238139923524818993602960375325092150679589237492998777964191384108384501986361353319612399480868658589050880520246004959435283395202735001384230720496196888509504584081197182590575904842791779727911470738810438287893809068704088371373270132613108537339732337442748685932701259504906118544207868086683952008746674219972439853808840501773518070524409536844102698620027951516611880487277671009653214138646093507364666653615590941893753025494542867413660856124353896580305959964243721864962072956984523503165423952022410860784711717283316087998466108715181024749837215939215879017790309746176909534032896768309401755082438269139353168281458142899921719189449657177434026056089904290604922722725754728249016334043396071329732322622535643995602694605411043454063900490596385933692017736991938807124913954915584084434957059139357334937563729355525975294153093588857087030536283388573080537058597631085206477677604278982377867696556203536344007326334632784696183814664821628213733930968131950335173198254427419932344517073501182789421790539527142157016122854805119860695372506513543752521899572797205072329232403869148422181364254424606220103263794556394039553411101800253631941353493423761311846098725777167176334707404276895255620737183691399602332375698595451464343686002009173128409427596881077651444708510426538483216245502902138849235435637897724583282851802074811740484091975654827991777663259727524069837379098631397057897177005897415366442420338427961855377434854772257669715760858855662410565590054355793308707779700054629803228230149447862909397217538207079893588596368288402618744933586937978525936868723669754502852408434431410382346529038066543388426723812470293324487628418012263790573911512214032903931284424464491520374958318419509016115387892174819266228688444703911479735618224748974327804931610413648252180598604213294046449097792138920056356672907022818939146097575174503225130193795217324035371271943856613153654851377936346270559698862393954249947261725193764924482580333566202170306619200474187759015554887871314409267224739782983171288052364769412920144334022078965725754064582722270992432757090530137678565333740167513476695746005688410762359677818027586464074526433453412457179057491424789175106620769325717047898235057997301402382902422174464482536027399955918129560225297584182477535006799564215778094546740137584706737603597061789936775945712339825031502607153283835465681697769158066996247082094691915243560206682026767021120246529259759087423412647113980429690070298505370075930435201297173382254862871437361602256009741364304801431189689138941457940821849246385050799602805975569648379821409563474068347546640994214705573806604106263243591169149195892830370423581837324115267526496546540234568226660391830314038525875657356225913761489176588437208411477442516853425310487615898378425969249915372826693642398765518182606940101715216150715600381198753044951043700479606389090313224969787676621025843203087211354451154263380120776795533947191012149213259171423897912538433987634617965674076303065219228547950905222542287182953914769914556695201169670525933920100554628354934628270419914671857588614890600384460914682794871432248618887453327873991775711617570113367391813491988875191679525006512750949747033387455078613416773006454330696335798297618053585004447907897427698190236287529200312152212896760186567439020701995789700002294317702534104815810413954791368561121047355988918662480926471704312189449663732543191639854923220193499004374598117699833529334464480227636141257873925883522946131598889850332576104243722532387021472511208926991818941361076591846319148875471003149460017453015120190390961227947241103513690940740004792359000061577095926469291908885662071205507189641856402560398010504159473581670208892136873018211737865077863176661399484333438752804432519708340832737699448762663541217579438368738369658953299746545968458525752137883135275362649860439156358376308535924118528485426307034118419887026254285232949706558375359295881422357769309276593914622018022386002367347790843224067939026764174663475098354100894698183745143210489580801969200111303514253610785149929337800915130198743872897542859909286951620220909059578318700061370656516686883245245262634990089666267855919881905457412442785204310474200127430658049135438391609859811607322271963205554711109618577565066210593975935438025595137467840813064022013508539357827018138659725113836503143470911367778090442957318138723155036032540990329673649338506723519263472541203397594759719527536589030839118009822588941819467513185932989646382017621159705338071971597301913122819848441321850540143339084954823697788506131006509052250547480681065716572065156990263527614920962439775702835256457568249578430501564435419772576007532692029896658884602527919223904653269944372314842841844055598490705366396246649115097994110605789482927089924978140600120280879643446172926078405813255303538366222012123900753869978142709961686548518477337978425238723931727779420922288133943928150141710432379733690506879501943754511675380545081956423338071389007129084558289757404289223807271827744985448085859499083000672468613334353525641008327079178981034802608516387401386153111286391030965708690414470156613779096679922695685458129118074665250999580093173805433500572409438353446103547280133669751794435751540367563940655206805264216384525580046279398215165772869286285473128112160362693337802101574524011494336916042231944356764948983294207220473321007998235671319465819052333242346598354855253946565159741186478217245240863274873734106994810776703832323059587606583417513721706270871515585363432531110429139240065561007552199051508164947622413443552290575338430490330031845836484011247639548771487652490255080122001926782234570392879171429631938293452632861958927070160625570161150546779664020146580338113155948389116379377104761531763263579142350834858047733665331521587051829961006526334265541065168930353865412598960317955353482435747043902315175889033742249743885962298543473420514753841458903953987953458931252086516625405260854585060326494760656419416681685512294317894409935477840515098231612044444509435201421023106998060032651164959223550964656419786326980552615187027780601280600812299434599893152812290888541759726210763247716076432096999425388659931079441496388190178784996853845081151708064612954823776807344757861528717998534090037323777895403853772391817533616789738924859549310347257516051786901093511331943685386711159695949539172842323603685176004736957650104767185097797853989130996053733968865298805884114596189014691876210849113593294327450699380045931148590148628862086644348621371593496643055015418988962727900283659841944114784251022206492946851677919672359305055072746770767855768895653450712350156867013326875827551385323689271340027765726445425805727887447643345542685608477715230655153932966404415428759775801455209995379102825102224258598724816365861990470989612461518344024575846870271780837626443675624660948632428594293446007787935104068643135403755942491813090382651701505676575417624051067224780694149687217528257570056818320097128234661194409782078565029863299420071132634407388869315725389536573578078061825957164326067577256917814880989549528192911604842816310110295666179464655594866644399015669985641947764022990320467420542864225296781578686068156327246550509067565592904966775595592465408846239865479734002537749739663434337860119504090235763825655056839188751844270760003310614217271667909878218677582478542067192253469747930726239363335993841595453175072320422542116172412174876631413134757483001158720580406532708656719679442242692848879255970196659704230027834565924896054978982402128963837611078720230021984126124605271035718827777421926784280706043899027584423041958577317827597256275810077007299611385884508634731316685420716928946136954442578020494116448934124046284135118476056467457970113880886052671904057641890474159044609018759931509170399225558879902665953673088393358441663075430325361828473157131598707061042533794561318999864878591730713419076948866707552783033089902167476885049567304630306846492478274686340461526326704594889135327502945601135921486516200443373366049325374780684728369977117442295519307611133132402072243356349801904113953837020888701654583637044172744531464118342145021449870500878037862011558366257105342811002433343770956350935250781277876371306474226696881733834269261848689187626626970530598111782185159696272995080051951326740872587005260501591776803128660036268858985128367373952264444568380214355880292437256396738729822546201570958258070106060128501452524580374397583641992828316261127301889674448115854403202178570616807707750692031611641045918653326718557749308624234936399223910358298989687656864595681207573251515595105809742694352724064300061192669938542568250749271227222446149407996772449747857325774916070823554023547873115188676366097600160965534375222026751415633614581668254645966211609135696643822185747902088902155926141177735051181839010420817874664664746815397943411758925167936171025300754579033702296887662739732562525746935556017951023045620555378649183748959545673304878923841298086018701577686610441718652541284945093888983839817620801552331107404541810818044452193248438531830021284294271006314430861552850715587402751098893183268480153177306273177816810158299824197695925150022801825213224619398073504286816269953724911391995643228685534035158542010484523225554089832515408819247167699112597722727967889705007307473402302378419264462176284455100530562374891721537573405059139599952075617425082604781845789652284026245192460801273981324097948713376198575058092288186451923718092038271753894054786889319669891276359054843649802623518792515456864007598422513360604465339877669251689629323253183650764921862962246326582693852029916966285549402243048896650946184096423148982358468388915380946053351487455944134399751672793434390488798526245455362514853294537480109330522867270097802352087278688847234640913049821974845735434412508186941505449187162048631750182430388181732075247887569947646829778015879529944064437664134759613117213172365305549354801061378124078090616884864809490207028379065173214314014521988449179248934796830739597821734738087686584295657199993366103244268306987048210170009299750613414856984960480468527549985117214441450315924106630274365717813391481388094653801834286878684169595513025017971983701613936045649656351032651050985718738644936720970771636395944302928709237742703257112123471465914981556116843671546643625038111312572172417775834699037327593973909998900519844948300095864473851930824266042108692723725704467004725334880373298863305555254230840088287328751568415101694942505923882668649592185696216359300147176073815648215444812609388639580138912302379424600416727304060594226672861397037856515449179129128136231628318454109645167296851006269926258052266784209453329757164769042615400852136957648600432656506721640735573414471757067293466512757132093434535066151135435001190344431561652490493411659424283125433070152199704383642053543514995059761411601309770954829480212867630442907875591901477639673505179606847162730812974037436234358256760681198368235643854306004046296863606216786766199109397613714578144974277043297042606997220663660373257160525029069518427774454869708993694422262428781923967032836829128533293133674793312408995913967162940243053423527278610791614225672262727568245038915115953525730127126689025808055812298836154463722461603574207231408831955341232991700434850880234211247332861016094925908155805025024709390052586577125732021464334991155201178389612654821018602488545927404424588549380616923504354512283934642967789864095061907358788191751573159872007816982543522178175920711507051341813265466859238132792931854681187269785220307160951473053981954738109646085211440063854513140790173904996711125868656202390703336665965639088242315388737528888829658494748887805204598000997996777791663520660040994533499674252885769780425199542998838095550575627859437631705267118303166445276374436457378321932283483957226387705185845280944765923792245835731955389565747734644287482398809442132698759351128399690692445953320932551717771105101927548645075338772621598341252669774128112125532109288018268711977931399081932248557997584744562856349622779381514347943675911212838554245072232328362984528198812983793389793171463157696732169680877911298561371084841052196686704572045999018635535284621037190622818971671169019990753383552116064660367136243545010582349396919598090638307894820647672334064311682419793182351730122672308630043965556902590141504664672164944462841581639116396187596596590089286991156373009037905497662989902611630288966275568208585671349016443016035384289225777860402793457479161657760793264221951124508383152137125326373351641338240985827323820878987902371690708554689972838239523970662046731808835196468445905875745561844550478535037868096174630848594147799098767163872721932506892297887660641412595826964633778961502745598597515191358374118171303835434614733011053517088784708799126695926146744673209457697316606366951056267673638150713678281290919748823242153136029913359817442972401254901594624655266891408469759969369610685216276134124858890837685748550255441831415026281506320492611958696364688184515067370306051989689801163466979681225744541598093990502571938282883018413167318447519288978629216507482499047407226669151256891537394333075933398911179398638600607192617585965342746496485919609889102397047571040560026811092442232793923285550661592283116823392126062024645414994183086068088752401039389629653343405248102567836904039483843306257386583132095821584085266151962387359439975983814496952857358020244242053629289033568929068201780155124062660917328449249104133017517586273120305316331879305165496966364414329140247661354938222120760702681596040269151725945603608305776809969614675172841239162075339043204412623068773126291995658202572507857348151576277058681706237809709824788133888351322885099161604862542310013434150537020148736683937016561220335796502710179980798374967088754596958363745174084539310082145094506361556342786845005589465882306553350566126628396726303117824113911522090757646637167829041887693463836948971601087951644544175575173547395293022886742166328183306729878850369438189065828632088874578159233904748823599826478729251997018189882394644252780887117309453735487612752003908930087172801500538110472481123537215645025833137813165034718825199422605219763110525192828549384780448711949371122732455014515341595941544638197566167841744627881941370163197034742369266704844219454195696557410328148100897420121009706917772673695693454762624237185797979533571907781036023847232881102958576978108351477403517556288121280024747816479959833004951723760351234443916822063941085577838491531543870786879918011580599787897283369747244411872785849758485452806700440611393858158726603368470912358891902029136810089844588603498143288158201131088018675958923883521783091033358036641782008899242908527749071201732647740786219326658761712974034239774742309835436373480274614517975862166895677129303441352508110738809890004978704707521134310011499763071905930556485865001339354805383761022289354921397810992340475970724953498361454541569877058537725306522622360059298506336950997449229913046578210060379284277958594556112711279702934891760103107522630376901319988573095810108074661372920017615516338718517926215455293118842510817389778242049907339613665471012443449447244189788915824908402294148980325469529473118622929287972687301211760765192418880590879556458093026321239801613196145850427614449694606018249778458363684422273776182962133425698326477110245038749794002383240063761098693408858408663888315702040758885680755666472394203745777501284371987654799178393536100585970722596617652048710421700586367193301369924834456872550633074379957378866343060336105212464052158152583607125670423206263503181364471039700065888672406924672575843608942705470335781419720565672925970929117631728195292676284634406541470287835383617095582860969748928712276231403186325586779628529515202530577133147262886936761940717212711840317028953524584006364146898644936066372667419538188013604315603876307927366168310073299090052815797027495230951709129885567272812657324503038426551984236518746637839692640673580576014717908131979005357779579175414227648308195332296446557941650836865493443881326630047111127813211909823511663325967830444551894180822553159469575450349317632063039670698173269140685697801986915859032494924628274019954784809225093954664100371035788411756691689155134201825089899141695714258977425215831161254911192371121021219247067148559970585021092385596208922356533627094110665821559037956134598869751651126030402115720844200279445745706256888870875622091390516172295593073823074535836793548722423434538825335258729078598883107001625734408630911778115788423834157140858529524834399387396801198166991306735821337933609380934473892032357524100598636520425770744817924206280462116104824703380065156427169818657620492836208684384617228976833174297771557655708914784224517800471538303856369927146729736079227541895205771060700662513650302826106815417187060116807905574962901121881947631019870129851262888241111599026340564206576179658700928988632374589451559883865845584604472297534179721994054170997085500564270375791286190566962367535958715342590367174829117869100400592595889351000958109435401461504067247033050600284344900211024362084962761240523264529983169805407862964365788442162823833366391194930295159799053346797160369317593655920383481898041096322140292562850137866815532250152274135207291377807800636553509408560420433213039350434763233488314907771060027071586778423271388162355066453649809930084539158512656612312640256168702904717528960576123209905918234903035036323208931028171646091776816701218198065885959758967509819571715285166175604400760198484784748820761131216582096804167282262390571692417192167388892292485717551116401661231546170556488931012477858659398112309511653817156259336103914650714949384722137491546975407205723830203513621015898281048590492668493984864081624619661507022122711991309943461031349246745293160783106792513254533910535697587666774029518845810345328272695574281118359687183259925085975092099674612415904651967105866216053870773009323682014954466007931181019222704878208904527376091257422011163580285694726137155585438153832615513230601440556374501987837326914533235135270316420567607366419447466470409618379958225117192537505324174821621869576950389017542102278427987331191923906593320772142576834645596577158347199957472941393325195500630557742157473161354670205742891379949884523730204225188669085719326195142514811766445057608311162557554267865228127969097071333908730079157911525003036665777924087064344886124844318830903390206279629531357477620088563536612849809296778643415348184847632924070734720527095209182091584065330883213592224731055633158455884800899106992970161295500415864357214353816704952025546457428202981813846315890014857153926986810969499702935036496476140307987907801295287629864427646407352811732171346899343302608281727537465106802474054560042492878709798582663161570197373125987786501114656677643222020396593435899283975000680104515032795452119018267187546251321430030722325453629005409576125127658326153236549827418972588366231219404060974211725895065044339003310540652156744366225556725700255119240664092805346901069746369282252818077959519459635890624360593599890205413664846771129008320486007077356004553602285475080509377299422865238848561538815510639460681271962559544348958910153925490573705477816209247482547498711446398312957860061909374659391509236353814258467971229580756713176613548120902311788024732940696275660122980915071813838610239427139154983118507368566797736625195605540153691387521497134506387710498181514679617226095676694814463330155930215706612359168566140434063338935326318534370926020465670808357006864998765711534731679295484962483666901237684940868157777134413190477014342825617328483202622918780668070012508270278905700852375627698243080652423994474278107410435632480180773611391427137865089058329628300180683028324336961641543527827051626331384885437518832101035434956112506490813505283398265332871321271638132364838043600946459084429282825990762575368699419292688953347522161084447110415896685424139465149640239028518419494851898653561294869371690903015756709992681168192238275297726531490222569758713321144893600555692532559603542657415169855523356475174959654526333536814663945693491227163513053407366231995329422797409123205594091450358478057135645218655647992748232603321894663894443404474913579172044610470509863911350213667760323588746855497062671747871343028571976680268239613121163337573514303541854192381815279304999033386534476475611228673261492137816829972181312699506909237747381089969970079308030883807319390169035167498958350698720849206593094892256119828902094306591027375048389052640246696274987716712356788267477822299624421749780777418951907208658795971252368936858722779590730225006793736524772542421874704405241859223631263668736785787733359079408337567984176876121662732278398886073435022018327992109692089552402145567557189324171083973202589551517007860234636392719749395504825899637243775334125034011219956243196833607902944840303549570494061593057042434549056685156190754432371017880531804448446412440862528134218877088548983108381652891422629470663744780452972629771058554592487609245331049257330249515817162086406720118994139033454078428877098416068795036863736490599168717298233919806150355077057344586152818146014821701249106655500173251003437591110099055714987006845297792594948595160913162932872328129184718827186618459297714324000370610386485529561152318775744643932735944481363874751126722696305641051887843667974692517539585031625836658623364412330069823824463805650873934909600745111431587317502989393882428595180446030608274185218139176813020851977569326138822728180256036463230132464824593783770873774845043143639160536881378169322505806243675039889353712120824694946625372735637775811065024100485333532852618822665808853888214719937860848398278082392030382576785571160850713143980669446445360433877976451076044460861342273349273507684170284211177642396914687580850560495800975618133826785953847155345230593282411777311936456140085618957264044011140634572688260066668301116638242718060524087548018867012444245200080207112557581212996436834087975603838506552502342665519591189740818935504822491667039409504134615703936030071227234224172967245104753578180754599231277153904789320177307464721667969879111491821946968780180554880315007095934446051716393759591006727746125985726592162916684928878577784288684633240516412569097313486948671764174774248985453076717266010958806156479373186824432827961110825115213556947520626440883921952660515250546222849165269700566774605453815815458609252760454803169754726162538922243938791635893875626369674608894472038195430775260058317347983562325694170990630038462825288433313595651751393643486480567254944952305064235601563061986474450132447164105051915857020485235184967013783353890455877898713921520880341289451301276019764043381271799697065728897189558444461315436802228798156230865291968161877308325599304815294211139397106089311052353298161279924587598157606774693173221108090501956873195248314273402008113706251896542284505623640975565175449668128688938358542894550281820171960590123524044543892595869305930535591425939457782170052052186840914866593486756648814037526874366395847025538326191572183877644742477290235314871851533260565660515346715883003401680896337397059482274497729080222197105853958658816551716561443290279052412364639699650855688027807725239864920686915733044263720918176884492599793242636807992611698660882137445667035202002723491897998948732561429423051641057201185627202417563218794180159190312407499610037136608725354511526784597223281142809583455864398514100169491974014055415445539289993749548268648852175571628731998816841665695103244076773323524657920639053875668811210681625301661943629630688915105167392146003596296684983613400488589294999958413128147757265010274366699674865474716084759625759428441288468414240574615559316958889804484129093255625044015455542116630411795751055550310267291865028934641146798164299741333489129717028788687591647090021273717804410033683879371922736958688955788625637481973008650232588029325567494421708408605425062908727451321436048549826889440138266293447884741231693201937770200481553120015452743928485967717979154746878967618653913638030602932879116707020946623415685815119252023420015207723969883945465510614187967346991337026873284395391322084477975230270921159988240886060489633341886406370560901558537222074309918646365253818877236462103283041750477279152420739058624568067056241556763243650124893064770225726168605172576221814223058906131156433984721791755661888783822969821755697434398506948998619860961063376584933462883248436342724355021841371160379923876423451526174239381734419601344058408435864109444313015683027903313142303140903987970599184755483985152290245055781279556567362175292743657454326823887011911306055107500335982754566404183440811504581026295117653142815891190430321077950286966591044545703144485272168580743567795909003413512842417626783355892265890162049148153256522004874029343284816813147095152355227696061529222648715882018293659805692568051691834577641750575168347968381841759367675006296741753446405797662769483030432399088969600985042151022913110561154218891391496833452308376771672791655477841170173535792343769527959633019773960687868765493626545396017496269023496208957776502516600501816188005213087083899389408553790663337158846573992754094330639011590064299477542468398380305137894412442587230306599342305426260547560071138211557193835957499859617018539582135691196077225191612690788716922760709697721948404835832503075195608401380017399310140595215365428787481702618233555269024819422720141577364242297862009367077346418435667653664952143714462428679299102308017079851912034252855728743757976247807308685669798699149672321621781647262834003546296030401924626655025172820657554619117109811936368371368254077550730893020452609849696347033457932380759642306917261181185765363738830272028779751154259543589259121665091079677626727596274257324607157092060593113195553214593730636658062116871582149337844472910221480775715025388628083741492030459537924574169363948668458195516051432030761849535907654453417657296853490106416271845374082216368975419626104786047079679665037780527384026580083937643482073120556457091970593426020153445518884993668570675411589642862968902174097641692272469655378384805170089251654264488211418304409547257320137830268268852244994696239352677213057916036704663343704241421998945039385732775596616173928353303472193572664889291148515252940814453167486852621489196176142526233374008900345597853337204082432724956260744848059316703530621755048621181631758564914833107710666614583384654396186307872976805908405970487345147397199251068860570444870903993892616107092436120675472918551456180473024663817082338837078077832105161512400351121507142522470286921724542713179815199781141447445760775874650913437945086710963226174241755668196963056373700075773130419270829215453092424032992606818928567043317805295239633558196858202454981689795993711138882565406878353864827833216616100061512415961983157631071762654123754617556557402631664097647245763090838757298162456301953102623599685987719183510175323958751374842258670649859904329287793657629451212722590780126220263118670303017279539752448306818257713085456030627561263748225467920244444334798015644440784829587777792962019507799516525980110467190405836332673456623207344821155316076638449062937252740326333771674166641043658495551004220890103791137792051384064019890184877499664284551552651021091496723823647536557357229269441243896850699693162402009095936319319597030454385950864975843981490991248881807993734420133457679144599406180780053112560850715963299756338858825110746579436953784330296972159954167724270531772229836676047927393805700101241487138820040065155455416271005277723289360944728220188201170119508773193170990077572823595238455454585437224490067905739102076214938633730425882091229836300394333742973368627216203037462333113954007727937514248181496459967758244827570491975681212955426278484369490813885682507516376038162203899993674805403718261046104872489670164391713432319187513129417593504918053463376549697542418086229076269999515974487618877255169776582645555618234800863666781118725009686407762808024246397172476571449160747926458490185319051264421386404357402796007816646330621984793478950025633244975655565178840521162388423129054783603795073430105278792630990640988881819730438364523976141329893296878910926228866311215890039080004142144123775137698348437320893087904099370905377109977630438449169753774222027699023374230656087457299295842351183767933390982781495761340661493136858867878072036939982216774096754786730746616887527435891585767734457820287457911792945681006775207569608887202412563703837759899779830125745052250924139124658465114417015473165581035170685951261965328309911386325347270837174629908496676108143251284062952266451863491017207049010690439002550491372342925578619787328695753007668969341662022714830086666032655964580917134534657481364732522786352364908879514501369284892717352503861503548478557695169287221788386052459083255628074998472606403547542672900154830712081658695562070286445849513674809364519676368464912354152465367448307981322315072042398016854514649576916921389578010570155281433126930665000944897734743085972693481067732925117481746990466562907562457753894926543145546192798255266856809298639204558129614342594540588729482701247199003390072036836551544500947009574453701300814126542483191683260020685496753383106862587627657927184540833113773460569038646630211808479516449444225223370039476777506285007190644048380602266121446021073028451305911791173525650640423099960615453700173703675476663730169869797317298132106305881648387089149051790327485476939609008109171287857908657339278802772086168516981647646616071240882367993208263856038144150187841922211302877531682381630650732115052451025202665875360094349203828064739542639495228888519362617856228916183087836694481132087021295682319439468995562117330417742156272953618275603618070097009301477767002296256304467268518694107088960335280454837719446471656478453625865161504115404306932446749789498731312631226393251290020554059547378385494076606711663439605086424068730752542131489541670003628844866405151098700783337260253971026256997918237471335926885265005605732552087937854083362311900941971814503863642365901997353674371952271306201130061378060849467419491145994983258149492959693653926292994581405146052097804700178821061149656841737934980736329848327860745053578244309177294194931960346482245618210518470482590454873057366593922687205776543421026395802859210316269170101293318065337154778490979491808104529164971602534807399349337434230385623225716469195539634857897480747804773812714346014226127295845985430162269156982247186440344865250565097936702265697118368221077869757608331946603028505934056157323236555124924693107281390024995542927029064051017368373916681757696351704764081368791264232966406336797611790142949420097907147098464297725229721131066538476922584756966358373456460235598658456455518960244197124606334116338659323583629758023700832840094124898839150054925561307169143893647304900264086712882396078817643390213922248020711322332204832022802865644237802030109214731208697547114737688740513892985505329847214775252272589715607010503191135507312702212035931933682782260166984965003411215364401562650891425188210739506569556620047851225854688302741815850988483615327131393955454366954611456129351449855033581456351165433119463536608312458304593425314189045470523279200676610208494593052158105737660501966873938107248851028415897635465251250923608333563722943235909474066637268465238176704229317857053475157246518138279115510015003082181873594292911314023417942410107370147668169884379171467337285367341229914327349014386748999330507806811795792034574744850996776035331084962484949538812722997019424824458146871396798421136875947747175268651618217918766766871536287540706257098922484405601334017697320704733068573859010580958439301098206727632921446472564617590881704970579648887030221511494995451659347924031824880646895165477798222932917736529872781132638042665773905902689944465205081714484287540936894294405519668598083681328872186831346964578561537737188631358735957078905122051234105678620355671477869815128554646232961647019421366401973095920984287526456051443564320552875588133666402421601802781124899533906751859942695481380500082888779446397025215626015349375408234608709647409085271679629669496985058117809253588959589290810890120685005295599280901891678211751727348303333930348362977532439775000133445920646758324388681544841385986096634058661281404899746511690650758207938112497025955446047524272322899235741723094103842968455355924179459828748477672967432337260054276905065039710264345468600084038876624381702146962298598454636483360579650728361249732079245972685259420478445465041155677922243745117819760118456144419891445862472165093032731780810260080388360733834565557558596364106194761393662672193100450640497706421851743603679809099503172549084286252292470664477873780638860785280304544566798539519934451722739576325329144059709982689256232555224571422264381251203996982206212836550681727266999990980101536270057183647014423147489755978929829191919085329687447396980583335056930486942128696583156262916866401874632851893313805474745940626608711370443340238488486534443591373223507559854078012494208881549332964464644577863882059176712859174455176866157352272197546034192182603441104685309423662243195646524648783610565770912501213758875620069847368693499073200267671915390269835909811164053257673805283793631325988017746886684025765891363958200947965189865661076117408146112909550098252799681708939873132434497301907604056747780114268798854037653014516631460860473264148512903449835581596092559257778210115219758855272957033973404133016017846279983671062615803714176175272844904026778865183594352998535397164612922635231852110954267970769969209936387529024048822509629247658707092649156524226335969269210289216267598321564495453155152926444261277759887671823904017352389717613395726987840351792416286093476750773631304567758755225506575627086527735458625825342617630775770867610297133586879381559392068286058920818371020511829195011358904946716223481647569374736919176211067302807456538695469036313981465448985009542356806011687983574960424509769387063858465241432310237915800307349960181313642662899436007956062617282208983770776098526431380714326572889549255486089535083915540264375839135773490869258263288328105645113204409841158334233378942809190396018977614515038156285828979035845528002566203119865869463289168695854424348453048114066448214720939773741770411760991888496721676599193576513490882715946704759053702913062933794805433676599165521336706401336854274238532439504035359514821971515929616071075563679549958645929744585703599425602066802290491599024704216004447922522900944553294758793933786970718547973105952639823156768587704930179717901521994155297220422828788858972296627220372647308494767978057855789828654230766312187030165344203529278442940989026681070279992896493926812748838689232579772133056791181273986605898560398536450531069263652432395261587609254364658988273233788664148744260489998541472525218608718862655817481713896589315612087508759644258987752433898825813279238734176019026811323007802407430199380058037278843123971801049935224177857502588169165529142365367253865344802584914677504750716647561422662210594984376685027579060720693623520932974526663397659002367684767176085214764312060554411346193710447151328334857367804517821315883209491964471307946360484167006910264139214371800841358073784247494860299719559285460536488075452540089677506686156505615495822288471773254934330317459405950443460971360591416323265951046109200280484765153410588623350792483725149815886014526496234393093128389938499283122794868314640697518468350677366261038355893243664582951448304915188187974486921942667646035411924705448213264134415475366669641328173395535011718388437200696944960029324038411149540335683763955024346761736055628105820124023674907136593648896327842590528660935656901021062246644206562410853926378767568277057885325352832235904147418816709063766836630467686558157419985537227548022712486020574053645914570194170829928236052894968930995629879207845962439371910157920341965812991863128613577540244792831754463426078184297682715596238759926225660587844738775748264800076629480077438679712085754725241926266001992340028159837743587469516524071815115553327715257728967847205503994772398064960866516454129280652725173142980189405239246445880940847494428943780345080397954717393959006431006844475014390897278776436561269191044449259482093936289119636961690421294022545565015780118568980312305791566073223998925328075846233720092547024847885148413253276517945441534027333599851428594970013561572531157815337026720748377934812223277997612525808294228888130541561018838845882706631337061385857093977451388474870383409112545678304283990905921482521775583422013266481028044935287084442152858334843486171332754823992557676995612849014183388150320359286567871712397602450367365060703970646351620243645979960778760804051303137460180243505014632460510138146468131436154575535832962840719322806401915411648846844137572721265992657532985829768552743985342186271388444498036989890868702327852917988083416633282276416117394819227661960619260603483846472446690236227954650412827027295807667324484967380358993682285995416002213863919358717644360001581128747983373624230803004237429842785612793176716617125231094627805543738676030776915163823508384307297214470907822875130009027133873018516276516868823429216169765726533626174472493971008099690734965428963821822619550012584898868035804805054917984359936294294773483205593023300621074808581123162473980329289684018335044727681705474830883204045853505212220962711858410218682479459856705960316971479673824271317923168852222757470760078202347254210033176928781571628609038998909301049176546491230716609588846275308419707081513459152053691311764876406858917530772176777400216095029290294564073551107866872106457938434921855333680447030601133172614632793553936343224928474545175669092310954893392213231172490904136666639903785084963912543086583708234594188352956269712870578751205218674562250001205127935190617877013364983280417186275482274224868338552352919959286989762596329211509720287847686343294740697666578370760038053844907028458425632292957256635722628343422215147587662049231126483293470486560259051649910289436010530157021611569508388324027184337367744053535618362004202124821621586246221447296053757103296796268603074241610943447855932225792502072612859596259918874466856872856050721158609018807929437675491510907772669809309560015420909087972929785968654559136117737485062485012431748063754655517963468945621545577144632562219763971544146649205834110014585600311101908480598352601642309855545371711811890965933802970432071095788958145339732209267591330976715658309752588299279762311242048297905010113717825502697571695818655606478108799787044528096477913592023800082739904119655834992638096810371203946736109979183336456194868756398458319722551389923145845620171794676935061027408665279009713805389213103432369326923804190884741052374954365050836208062404772271313906051562230268484093550609095042781898972249412161490160048120968605736304103227842980782815844287283211854724196688799431226905246309760245774612931017770345644458245985234233916556421334672765947616884921597380898675910723490166835728893066477284724698587188917324977789547446469207984371702984434531167849923936163227133549216456461856575575811926743812195709568469750926199355948377690455171322961689507045045562218475477242899165761209141736619543445692254374520691179894837639273329776900410063837666787683642982387089407735678345937026982436510953084721824072381379465399660381606611218951862867095948523974202985170489533849234344315186597843021419041138547733171331405787988336239868894940805004908481635058791403579269752540255449337716630380859624310183220920135799380517204697661302895162482073615164169376263995567087541078988574436222552098952836293642548903965417316140122297606414237229855631272549594058860270697678399573159836835317984685143778682740440326511931659037752950496702712918460144466056184762822932549529555054442049684850252797617199470339419367303924521853476934024403107152067624018860556904657838760268345703452446249405399516907632247880670442681077536843915422606891810505125614937701600338743036118158861830954967473312918297695941109073944342731619692476490164006520484496369207623770107462744441959508989881586275273873334483553564061952112039842168456558275679935671710382683708174107756876150395477404577230500589228472713407553418604116439347414600309538841922878270141255130897690362311931614651845831714697827175578428726489785484481319640924212573102712390707498077060726346187063398849924641956315239904304755993344245251880242651959327313963889788498483697901133106985336819415756276276901832831929039291907020608812162811879184680745319365969269866320871350520170479359773109734421078613229587102909956009495739673103559140359089543946714058513450955338693204889281596254155146139952092334025517851484491177270247133236707443922377971543879231531379788086705488618230753613857826061769511972632983121206691060150546132171458808619526897714406396788083306307452090624005696907672261614371442701118092815291742997522659781198948911763088932571741011140317538774174049000996322993983406866408360281095162111621450093374063031573275651226964375517045616509233947286237752490651747165464208974882846543454948646182306997809387748534458715929828523916852460746970014991441195718537080812163365828025870513774244935323028511870891905741833018452249657774021475548227361671093730275734489794366765897961051713278046427893495480761105131402896293783854146133467143013894972523283843323456561224368129240212122037032580161155593297917329898991177375889037628876233900051774081291405831262958141334588146314311623234921026473192909931907629465676698986477457384453032459308635308139177896391147092419343811229293947122299772487098520829700978510489299579271822931916593466053857555419482720730498794543343669172424246484909533184987243430371139014594457074524617203505966348256339590574480914551394735869621581398525850892480502763702513527059880538499450641025596423442353927580730137333510263272759430210684010917057950674281288619670322435517253738688416844144968884994178414951204935257464327088838391794382191720162650105280821847486356064248548194480687136707712940350152399724135145094017275883464786394594372385966004856958427903234829873154983671006551759140837277661261455628668735582723157907517577713849090777041906471372226924779490931633529997164586400672822517392225803339215597106460402497969965067146508971433798681482147589640715555396331400562608400603760640868875960703290899964326074368393999626636277275523026148926408679669097610763807095543657415141292618719516045700156530652412037202199915779544874539535120745279473264421737378785047745676031114083252809434645010975669066351554126593759067443514018124099468526938140401585316562139879055072039768091165402105023938853366623329064102061509476134490941454716388548114635629039136359072590513311101473475682393351401817000166303883156974936425624397524376145640830768113262518030620573111220356293092506527834801730532742883627845539048804543166171774217585764513246480111983971279872246798142035010523268272202082232891103546471505920856397341795823520141790291743662645685871052654988648243393206820482013773690587070440207507065980511302478742203018822211916267132655228350207587180361022826163249648894071816219057445937202217237701631758267180059089114550871042187952283800936695002942766650341337547400053341917754359300585764896860211187774353274238661651585723006502966891578265166945634324445712179577034167757319039236300694600873867300933486712244466282504188767872134830378191749288362281101962334930995460422295543796794502591238203696449767275058303422664474165725233502377791197471132414815131882030010577246350643480717575380757208148111157066477183429311932643872804404440188194908636863067356934244169655647786255843568471677485693551333054919440326226093214566058790283568058680397480903187319083630000721869350984005088830696878976901722720701249086478631793386262752815940334524842521822835685059936084612398650094462675065059377710998861305417180670417654738602760671835454381495715353090339508571212839591488335655793212711122211441811307285212312004304846820047178422944434736405161352569720905209822893924139321540416046002799270190927201902023074637988737612769888901195280330254347847284721768277084071717381391338786443727562548161398398273550335957885650389068058358768754035303167828799771071036805583303413458417448180874619583392159998726912389418904683496995357494695545890283495628719912954741924569237460453689787737114629774308202376758094359304910518492864845157158333909452676969910806722328668860296069286430867524444037746286041978451447092743351113955378743496744937289189017240985554003921207396921292873980795208679013344817491312784638085527385293685682917869140765522540940447439574401389510411573210366191902499302320358209125587684820963485977222079478790440685749065275009200269881219961109741266555506165701575176439723850561890774442879636781617703978891829932209837158417465912410661258692420219134349512706521627201317837887129746497083125918404297807662679157972483931707566932257364107667450737669261720883610143916352235602261642600068817598504437377170047221596220717973809929818789249186487193842397162061703992259387283533412511221765832906536789736115576158772536613296223530270297080066523303922421733609920536023474628226062687478583990907379706369010862874206923914978382442849772646900758209905896264063542658617001892406429797816452438296829656663576172042017089681857589897896004751432947748819058308182025226559113508297620911031937738812206611202986291324857750912980853428043249891994622741300535877705532745770079524691285573111805489877569538854043957765452858241018902926392560146915886549195158659835572629359211220944522431347731791165229829663936224759461900787385737286846597356187881467136348384495659725446355347607640033604370314609402799621140143349079135724040290499543832530291612961911037983502207281576209583797680042955683957276819575828053081720026961176749671268481972507878586896866713111527750044891981266205872867135397468097903661709500762207386756207906507919426253803937003516082767013443165052794984469383856973600720475873101560437987144750634019088773544168150701515427145961142894494909181680679686112077231811706981259298802939658256833743935777669832687121211886220831572845750268147153492146780378449753819766682586085960277593576445741930118361731030614310418947061233647600260032661816682443277154299286919140966066615119852613284731320302059040476706023148782725445929612386292441615965875470765444386264200273276887206042780257447460347297847619714521083105838027335028023633124839796735422343548290554716054400370764946798155657001317680807111275681226849360052282141370292997984217440849468644998907108334613861606601497555687844291813623545653011602922135132151755114888096918166471975830844545987417756342005834104679713488878442695059135436711457570375590778582748401447159810290104759176107113018482986562892655880811449747533370682436642127261973188440384836699117233073118148507226259507498337200005567775537180204114789896665592708996730136507528906002443128759124710821549458187654005406754927460845886096941109158912199611587822180728476252145389381486072269497470682064351159772353191778813821795463243190809988928275906014076166509883220252823828882274371986298272756002742144061103525187535558074304829536002995543724646664587783002622730350461289517497920345557022238660030142007691693080258374302823383646676867705306185917602404721570786278878332588937055343390085253166660757711850496798229421339555565702397012292593250549571347909593258517591821936157397887129160864768292521272277307883499525041377894320792737238537106322563433767228245460002173718388694367086778395517391997206557626413596784108443028893747620568706539634248383738424696666466344826577974730018219776894091256976271483758722522921834963383708305004888100225396418259253830894516526760662489130688553284578815451808328300640829898806868675533180588884741550127571143207393516273525859521937519198939320286128810633813473935818452682607621105784433474179745762835966369635548542908617825531541161340714542452775606426846905280263553853225255906370052388282986441508058020964698911172602051357528330413827311961121078389644989324910838933244827154846717481716244992249089918990562758183932114731644581492731974816112244809795492763180046699409255161704107831151147923452069841042405189653172372864948325989707538758302967097693305491616728966629903229052076254776065984392748957551609307843415836210810258011327139034865913849520737139923006522194595321774266975303944938245189825402842452775373398516045499862083569132733547053754326969271207996904461876254221694555842619918716556617658577212073865762171835543215575802688364775119373390412368297823938918089314311541643368063413499360094432032496323126224393248714471300585458637438684813324248978227899877011271168002826721125125321118909361204446929494996273048369833155726261750045561992944004224196428228010468318564267213236131993786360542855312295561262342956616688281634537001099752234293374214853204538959986331115914224261543211048503557730080908755232208240047300053493466476544776162687042703117391191022050208635532426762555050763669116741682854904257451647234626142141051174871371922022004235534783874699613893952509532047982620015998199141651417535995505795384294864730674276731667961143100385951588547720661262938127498891891295434813642377158795218403649441921702843869814854991622930447494306850965001524216906373359589245367715994543353449527725042830787226215567686514159259887210153367854674775181298874017211849535320259962395631170417152101291089648585551957005189343208670624774680540885200271809523288679395198308438999186468003026683327694122496309840027764588795581311681900275940865625085193334932290811328207472752990171140989779948027576643736276215424025673740946000518886597211991058221503425874429541323645008148594692821858217671092457335947015687622256512088683357440551995456122042051958543231737394507291735632102963521949708152629533045113509029476401853679094017021339750503916937573552291905797355422849543334050371077370730426498309458755491682761583818742413275188219057725532828680249194045121570276052239180892776940725622937108619218661460346136414412256932852661980708714891720233432814406966533756334844742183733637620694819303111826180343204239662340124452728411007027367992256445717960000326349550388007232693726417676303812065014200262933978670559485170277158223190510220525843158968130302171387571061829064126366799172709938493963467440647181584188328799029737598181383568583262318802730896637691111718614801506728461590303976836329779835182346321697819139961436622205911604075453567146033019196956354150250551288294142586325354760019097046148541340594263265527487860530005750935013151405667033546387467019651644117570010423478172580365187875003589804269020725363361316346368855313674328470035664978629537526076608212059219603387535138877269858828237511615672663629783454284118207725566242336998657303248597376035411174083123369564267938641983878630148358707630129117153740479219773839616842501829980718149697155204068362927966005333750546798817525775595138279713853491783601505238417858437998014789674965989858306551116862693177463442517764009909229672064083234170739165442555310387565983936919588607143649994865280081690463478592947510721391968749911185594260332617786426642011524427831597716430475241867105205804331900577397241239753524873495631122091610834402273694774907335941274199994154417637867047389356589960029859744331088280748944053255377317261400946955784251129625298731855044053221818702748823168262928871901907529605552964609359804385420916402008765996754647888309049069307133563993375386627816423126238306494966112627940909040260089391839694403963780049663862690636298401247177392118930033763280720996364453183055625931148530096390292325045974833894091217345538931774082096169849765966898765832460574567978523926502887767576063469119134928988011402103190085163948326960510124288295026085353080321022246223478420449863453735069339794687102392062516240701588940875988190732412731322796455390101428222851177865852625651286588372783591827902331379953031809674254259275985455628142512926590846987998367965165349276295677987970793552385285771765088094144843104338149729589491508300278174186991367689697642582022604851911530536324277026298175305033761710703445439710145332249652058802254437096243275586589977535413558064852163999734770349719463893387977465923459469929913732408792250584612079751377589502992413371035869548609990290217160491398818140695225706489911576752793711416807674332790474082515771169897552009952033404172042648564580012331174092767843570547311543187183566372096446717422176935238780242749473502492886658126928681110001740280594395445937222614760032898527901148096533060832411052625350504025355307997862296202913603366924396390271418755995968820553373818885156755413102554924231361695741018291311493404364545313372390528375282940251177504587032552647150166930244853250021193863859978188672973440384246336502842111975257205905915213503168705145166275462688880291490046913896369279620679006536730437714025296306603257780744095581416579134803566050938910177545252612270018769053247183766489209075820328600930788650572787137554838596993255963987478110938430587270706582767174947710503126067411488158499893464263435859232052707333743181980914531429027565761531248717854847569256390263444904463930728445741996844275863179150412166353292783357942136483649878869987365284967099869453676146152606986816595364792520489865338744257706029662761274679780080425390487251910681661937954142361078248538278602153716452364012830043827802448997914224727831814747833234066757759254116700466207337351536083221778122946046872207989524673604732981394494813324774766463689093692134179591405530578068129603474031414619346436572897159835119438307810930629352398875799948600739734321161474887294373940195427970694509437916768830422411182071785257618478206734468363024645592346284855110083296701453961229696609943819231519786297706604751560166281301402278849595212532581263565262298995301957262061222682529216757216461603248568534694778512510199996003903764619430875614599931504933370102974321372415440814288799693423303296725577040190123048429317973721428690683979663772199623511585525456085439220603419445053830587698172875656684273279453586405612958820076679363986406088309520142492525199209613035189233502517754472839719343303886208412995641549818417747404907569089395585276794074873362890235273820660771209729292979830640229293556704062782695111003455405792464975469980349095840948624388863460531992638856429426982210631441260707621153809364364091844637756665567252552800584449610610445663769948729647960416226165971471718332214319359709452733839511661142922221732076543950678367183484891823488395507513290323655401958947742092008876770406039900912943919147543093491422076391247186351346523701697362469021321122542386599597854702382339142001324865631076624186864138433412139906271791361503526075612080129837005907471915126687313056413641043341604256295797510522746172395982639537971442333443573294062142550278222739339178537783162479081856322263637247519706185388501240362835228250868400774149463995537151068085753530209055780360606942403610918831540203198465458290524284165804942346046110277260602650850355123099536424479270956907849570346250853907167489379631682435272721364483946842152902871640049990576088787050865753179243520086441708620080627329867716358593296559774487143547123476037683268653330654165698704069823877289315277672911067513213947534663952764395481982495601688325610819991452914155732073358960717745134880514274211481709584014618341849730768636008054888243439519388541468307117967402464575793218195889684308060744889410787950176411647278953323022638987265373742215226321030409806995492430198581186079057560489690855928734399712027470250192165953261164130232000016353612090375280924758201204724788703472040759875567669227967304799648888323515659037786501305219284930369528691658045791875956029028799361903727319510412599787612268330491487086418094152430186339507027927127730720428067287146779894822223580860447405987103459636753559564123940157691152007197051939034240465665055710727419050753530129723392925120506791256668267992808300046690423389632108122472197981445367136081514743982693859471314641636568389900455575870276085490119771550004973457847679595851257947088037970670561343920049443412647305999492691587210614790035018893530831353270540307894754379301344415454864606662199125449940632687833596091549061595560326900967938187963402047534472333679714435964960890607405251741241475865899890754348753186249816517240541984277088078207307527967950009257023136489337247136201377799173191708552107541503265491795637267515823824662855785088325354241952168201208092208597236638469390145903121686334637095637590338562846319128619470624054120254218531581058060494507151278830816693621073895105225552282367178742025866870521516500042562468185186799172123608486866869464932497592293001698909904827744485878273334250065190004989065229989289035414593755296001392495216235473868422379192236355458749942577600489987677253458732943832406065398988456424991713134375252788237082853605467742300757636842550243991085401945793148535198651126883458407256290754523502344648518370812692124888914734283773950166609984648148111328456019339833008804175820662166343299338401693756016700177099462845472757364068254173676117849614379228685396979711286820905198597457232204629063760847774207381499485869135521695469274444785290110735129519373655812204022992264970477042918453278139160829673677669661920775937252649965043108339019255094110102656935015395113476088136926424430138659364571562149696851487120988839659688268043637971793717917968504527803608094147150266749425964093087684154164533038148255835431916102778825306445409503314359390906731487324855559744939856392698141673071464511137790679610517308415668395309556417033312149166703142999223852212669372499448387443090231031467522391567851468655268911370297383917004066807970774114936796978239139782827784394405136864574699753968186961386015255356015185773942407289767285212666840530263093602919861165185572785393592924454045679300724042642093595356324957634213407674869340676158148597784397770121392862486000484719512493694577364711637381574949292864768439179402732279746861155526283404389361971669908897084879940687411889429425805291963925217287509018555003504722466625720900088949202390336050735213285388498402419707565577829294148609123232397007063472041288409666379252329719794609043115794086889940100247813364523675438221978890517944258345721595614563665675859197580393936316622304595075841863749946915728971740067078670716487054142508778830365562288220916892360607263934151675012659545230598861439246413799224654050728324071250035380996788736775056685607738562023203298073285347595337027007061525316373673530422867408919668197965294105591259547980471453386827478308039847554181532124271814567900946284777719159322901103409490596742588030098615967163940610015974473426030882827783745286846232225462510879299394862521136039611535217412154685619396207275924651184845408398040355566863474414486693196695551396064955048909056051705303282715400121648726083278654073416371866393201272737663937693452047999114804264420081875124092034378950051673323312716102494430436703281844001837675736590183042140895945534222755860255699399329345503587412906886271251236879103500586136850501578318785114473271231628585298755569978614493661150734502640632089011819144166851870861062758330585594044255833093159118336680635697119479352954585365087763065660755570356359628496292957786232579196467690025849001729319415794847553424387218659081712073371840780883197605413743521781011463430303388687647985076163265750785423672545458019580569629316021090919631174285097099731801980885077904088663724122248954340578316015273102496084808607190377480025750696941740436136628601849558725436904417574232539229411809701507820046041465921970945766576147651554431219386826563352555589443933175866881470420913969547429742298046237538839908846144952612730612928854873799530196154115475147939227851483789595870888802875357765584466091713847037796483845739873665258541092215355861226927441786314058568979801857170407965272420186282059114935759240534171035863229511088894879052084537649044809591836072080353011170015378781222389409018604891403407380795722415026867514241765994989950437465457946621645079965393000161445872076125679533120725162074320960523812612374599063193220783258964579008972470976003152339340492205623374095948400290491193318922649603426465047407217482049448815360288004025233651076461190180016620285491993324236334078528011757830568435691320297960432249083009712217020719942791827760774993019862212912064536814970458118186608091953272579373775091082173329905930287274169172800919145415673906182819786941316598799344210120219303580467143581476772019907245743660349975265518871895748248098681064518618898200911126604955650679368156323822796796588786448898493931721873583352221015060831902633947174614473799562099099050769447090855603169567239841958898811931780315642610215674449755489828133753250971110186032393838664874819423970396090150790562896367835174416852248030407626243893563434025446072943608864427592867400186372887758867949524563672826669825422981563749810153196880925188648063642075460792745605870851330926326497360613130381338175641386852893833384464934877830543968479861295924851756526665263722740785806544580254022138830358469627220890181281000814595884795297666379334966261482265306103864596536909395835964667727036774623127715477668804480847146344776208692144529388654294993142197473313233551408948226990318411539234436679025776315603154928450847353441316640873125040983339304629998096784991981015035895031153235398765817067386423979801903337447431821049191475525450235732896787505138491007620548412651103803545376333518594517336956208371509092278812265251824156982867538704463882156931560135725417544611744910093547264542029210962160174541394463456064111563339719729469716427662579737346734964149260165179516919118424663851397345635815653562262889298379052879382233060991719904110069251201455191282018629654519146813921604649732226103897868258413715126425592810332161314914747635951606546592009422931477637324565146872696729061565302217847256824308517899794727048325147073686327977933811573239587973637258779636218589293543568628430196827526435446395750901220151737116708144364674728237330803327186157652924387148098060873230181686122929152171016801266364935085735804907323363812317478616911114746164184400618763608435479006651234782376022729913180464490139339092909510057132214519834003635810482780236502756817172482897485337817342841689608777337391677546868501297256167892794993573119794296124406971133928753846305000267969870419852210979134382466511339040288510534687197762843696258828295610598981227390462572073713227182132875393167312746350103440154433705515621243184935391897993727166959546298280847776099837645128544391996265597107334134109768712229268604966546270401708837437959333771443623894074719788020380682983327663349450761111657646213838849240322267718667772661484078897035967364197073190314277672014081897084385313889477812971464308875152393194644216728342127328676768155789219902032535531227315265021938399707904346405956119067902173711976616209025615851608191190258800904035979586850125188159707460210586422601809368200479509351896119891311395180882359324108592844684690148420951546375013703618963789291699925919338664427010193450547550630944664569190212360691448027904307769742317375114807099542379636489620428599649835595610918287631030177268982716113914176264802362745029622082463778272891807145998465399423837019626306358304487510503131235756376569020170739196632281045022128582272734302475454400700590387186302781547906194854515008162432038359658487201130000030149309026113271488033020966705759900175288504515928257739337484458125956794091940946882295999534942697268437567598072326215203595373357865706555967296963494928871164160312403589237793258473305508503936047461770548652610571576929713704740386554103699582656044170502350850456052396752179672355182796866357325781255558182472386387143715022309291531301800401296511420440520030555951670426306513266327945039335427963090119967695087320446188644990869510076380591926675997916543384698268332594631635466709472889517845897029598065438991249079555352503647112653276934396959404115238946347149797006461053888271734448835359037544739458824814774058355878621176170549708231378349547434078887347441232346330255809315128457573884051330038764725399985941018937347956374412137329260654286876148865136501882336431176344726392323850472408954056391188237700844435951608286004356840317022337485978287687268743878106757470609958666750214187911685225724634839766002111098634211317837129037861799833974999567157317496477943919128890815291702562586458827283363118380570468536289244538159924417533519763707358415658414746741387749890857820677583022199792657228024091002270431867660667999509759338609588924663659115688260458372780231043790649254812178139310449641160482212308154209203183919466853011619216686225015071195042208808718007324995900485274717513716452605682843346716859263658797355693704994635880376781490243159925739745499429418404069727078204672488248658773226041001826599982104479875985421917150175800820583696061748576368637527880699018717108223796898479987172753340306945010856080285440043852067225364709235610660217480890936207773243053689450916962976857035581231997983331634502307312784003871187934143830351990142993718450538861854967487203903765834764903866145568357498077642508812368411971376884860922124043929440191975611452358260043306786227688038097511752243021327515705432205604675660107182433812607841821485797162474570490952775572861511763839700623940575641650485779321362163970029837059611435168549426734646019920616511591733677164336127712943418286107772933932331241187283955058402200315385818214497642522832132878641885736299363557544270865656900752775562464341859905497694861046082507673565286363045861831655942665433600996472492634811216991222058080387134046465971866509072913181056049690660927773149612406167675815208802442752144991526566836209694066980200732740632100390355979063191591016307333281167264554986732359720729003448643163910750638731835774972037479304284930732984909551127592142522537601336028933809361146713702774484673455730751126381700586470370547061003459087059840541330086397771353666016487142772046377987190825923234774824969697802202851488974641927269594601940525230405409355910439752171100982648850213078955478634804102539723944149951675650304792155289473705852195633299725569106576301564185119999271786461358047913444842488590867882676144725340850601414090564568528007126726634130631759795812945550634417102514912286643673468528577133209254767941319692680308836561743904529284633272021057392861160914261706954731687188440273936526620651996051836535690972847796816530126576625641747530398261503920224790525423712441977272520448133279195302068181351389542094673917513969311340567835215277760724989352680386063405846895755313576943596127366216794741483400700822252313224384250670319479933313256902786246808608569407411805200402460896510884527925540702188846500743139808548977397707736003166157001276764206458173226784819249371548347098842710173705127002766577370942440004091946594023195087116232364685947523424435996870831153556969369883049306373156350209097318635329517004342868614548140689019872197888121082802543838762657002911860226170491385685846251844518625790284086011055345210866965856154840743708114211221677747589579696345274270002473210945302820553821547683750130300035276531063486085679333230173879899957862906113955650375113225996591436231321926967625047268808438443276449183463035670002803567062071715643297232560170667118954929100555948026742741805131366486682783251060530154794846764514864331361813296917832491803022049608161951728026313610156239502594683326674391818934999253791475338599213578654420806332915361044555073418207155160824159608771799001572187762273918339600016343184788309338826146125333777315748649776914062579810464295995719536620355223381078491897053796263946748808454586606898337990708852418132718084120269076113327962357101494732896034746624125728525841389659024998001359110663189411029553542060624228502742742061703549677677933056075859701432135394024740968017390964455702125761618408413590181236918680968390829921636624846267553223943905191754709226714849723328787453672091089450309577497768625251142276440692332924473957718862830793268727691741958017182043361849415456027229205602553732968096929061976765942090825150241910371693189537039080510665460609451262796422471390936457313574509578556198227148279114856030986888614058205760066177621389932697265188087511893569222148829284935298689743889205643628621716517423608852336228239151974513150634033246712799226793728646780257909383417836308006845866879318930295709561977726636389475439306867922904638340094961628017310957003228987320287910296050086132664368284307126880640763970353227400281175745707190856480251525030293934720737772105961855503301389293296464424172400356177114214118256486656175620036919194537956010559080153196949900955173221205194328353293769792695549396218329314135822200066641378427846867541265679159080018858207369093879801883442094177380704111349515375945538235879970780062940713391490934098109344248915111361736983752175994990068803445720908017032125107981186991761113245492827269189644012679435127308035396550373383053142924544928148756345317896318988933326956638631988524396953744333122497099456232526390293654846384272966441550572506485740404965257409327607515320508319095220192914785191929677394084962817753345919526694118446396537282690292981709270056051668420598273133042221337200939901290595604457418732588723083235467949751597383545269841625616157136966054050817323384534746066593970697951521124166926890506312031099206215901317190669164772882576999306676167068843897967492798360207017044182751825298995709111888953866697022102489805669783443917897827808722676203820945404999051775744019761654868010943412594192035199697151391654884257959280770085458710824717289326480428632355858621098704463265355588135898613923138512813672403790327939900326619480418120446524545892726562906721590262890917275229461657256030636873685058899649960492692560727473780279665999986648664222273837627443380302445038325021187756627298419846837980858623247364483245172241566240039418693781764041555322698001545616068580068874870555477298695257315807711189644229947969975451298830359232224756330365307591669934331852437290099310411917905330964757224323158894765179410517828127811513364383016076421560298560315281404781873783821845319326862828337062544802360160864858881455685264117502565137502804634759792838601094582929971912420684390680344720346792963644051684043660725396680183845230082672168653470128261168181269096824227919283427536397846608591993950398484885746661055445060586093674826643556589479533396617308856024838322214455526113512774966222182285011417223953362090505307719205814487157769200745280250941901330901934866917170915145373935034195299587467515513891651787193506522723806564413728297375769693197477333081888314837673641148488764273221222086577378772333353716495349413352752240949688628948863154481559727374080432870884994612297708707341678013010266840516935094206259255064475922449072012418321621401812296421417392082851362654203097652779532666070528659908687705926842282505955204139168356529427469630078279894799857137195582003875840181700080742361251365094862824216969818354312402574394006320509721152454242487760281286653577878464194712189379928584740127532910212269339418792087691367263412561769754723214619809624674895515414990012093248752220366484272002462790529017742105130334404753246946882916209987383243534564247272256446866461747673572017846126204606208847087961567427878399035881550814812389451712441397417358765079511491315429344411258781047427254688847344813937926730426494596464032431026178635340088689547004906576761403859072974638499936340068591856703312860874612720506769436922387531055857616294701073696625999054458933535417101443707120041351002752246765365870458831103985478248900941624846921437850898105382692120624890630417404811591924824117834281651557527887546277585135823357080734320658313637956868860956664930078700968507221308358045205211603651769977130395268456970906877830323122914170665595856968879067781275298792368905257803477624391839143922412566979014408376715189319703273538120455461986624693943241286217440912047245073959354212999444681455116504680493422766168292722722589932603029267112838122866352525887033437542630541530907379481791847792331735054902502979240200736250083104024496238348216944410651383546105323895010450914179463300424203762376391021503671392165569397476756769514098194991129396377573271406556968972943396097745631998212694734243178568055277991633435360513268613205845027732793392868450199966229528432722208686645782060375461945935937723585549238822446781376003040012250703531954458046359589721264167722025163110352220833309138418899754169127800442181384099585214695877939207933872096608553185269669098748658100130498556529597042453966681374450803255742368144876854688578511418432980870800407490100209457754557090726329028559979147137653900250066594603233146857521257560137159381926610656835529051393667451070969847905215926442162626246098720147382190755829733260736794885445219766067547569647637893213818238637118547203130144983564571551900956299707023806324604192482433542089190285251818683635517916921279095193503426644862490146523532478568320469260639791689008012523990314802089280426663683451920798138183345381639882652691879567740026946712989787726663916679897305492566115746268705068382737141772196435515939747770141359953040897649539370752586149520991199329862947525130462479368959475753158590508504615644054729974194103922422058166590727843892943953601995903207905153404692779366207998378536852418576250926128526472030433871084538306164970409942935601524091847040674662045881692802383527512562961793391372897329478607450809874770007708117311664535452042604158208176896982236988774403418652682715689193983013966104332178301913313606621003815513042245323467701713092024971961720795062090464851878572443013670991796366693225543258351971257705687280046719030546138854841161057037168396016275575547903479999685714477755107812304494395795786777892849787730022455527643426018223693054700820015606171841884752116809389627187622446330814187228420181354644977057867606218851308679889876209656188536707344106558365025215098128034612946201282294278734670053502398240165646664323476902995440165581715950330510746728419402489481554610183513694587023538826500140776552374764267521259838830994962549712590690381873852014269581612766859620932215789444099797029266289762381559874868099737713230023499568411571251595501922280719537690495150388953941050026421310895638981566212902121371809204690596987083407757252631252160608135055006624943246783400044201379908760934163142571905977001768685694939253592744801699776940726999569094559290947540871845585454871490828611981044652030051713676437577088657586847789810708734174555212010642383147232495735900584455059643533445517636678230690379952698329473092346187383525288302277613670813550883602763119731575719737261620123333344634066924326828036961511869521674960083366915332110734643743595894158349510158911070988066938266568763940758648874708689082980824853853486662395885027580477020371510131658496025469229641950427441147255465366538891273539575340151792783080069071517196866094862138245122822428138136858912480700283639744038091628704576787674661227013314243467691998366894698532684657974518511739175962365553270912015747818352087951854511533511562920043952663362979371574578901828429288789754884395034731841857221291491738812600011743910048696881294123598912314249985279511248218093885615188282649491546862878014042038472615827450575704001456420847993326811634939063701767421205810566257429322548976809730365786683893080433332242185745550989227620329167499141426202044258137706802479751627443671480326844715446060199860322386992426480982303168277200973369872578494696376159415205379374955586346045325266293437247485984440274921405365450754522270547480371632493670041656773643724179498534751779904443548056990939627993307093141569196755314191314547773534716541777005479548078598311261749340002339981387808261507374940707387309324946933829860886440791728526868484603999667132980645113718179652330165529620815626364860034638273923006236268577540739358384220314678841225228853704594574857930355778604147959426814303796567725502528973466186130844463790567288884138704458261200882786881624680836406975082472394715836951812953416551007896842940780317802203482828553899248948548223602364012772332354977613411268278750061229235388235765308176724125088318462062450022620795718287644653773082763881235799682482255226378542772724327794074845581193520603861446709186913699682624794462167080002284227079087608707027746188401446938574056606136462291994319684754352483402259590247629890329860603724087057021410612921742598336160363432353730116135744213131127467028779787143043008727309221741660788282368797680466159292612042308829586854175802324494929092055119722577877104143967215637382711093607875667833302238231257053045624018350363632455625691922333440238783276406821246312656690955613863108542664546870883549727381040846298926036067028939222526793276869113403767643717549096742101307855711473551355012344388251104944282860738257954550957692422202192524233351274346422752537880644130139978938477897972865422711566264083133249597408875294473571078819266291784901647752824726048235430463303724784431526623652688228563337778037887031227404735658158843026506554856144340038907293483309508788888540002358659264220486880087066607801214182685837466970676064664570206510697814124749752432495859774202389134259392492834635141267190651532645050217963586147723774105004694437385303252508904913584646666834308357872965493048010887556233590929257824899814334511455674762760510400172528515285589928240546720919362359916855049646195830108701746255515890571032766880622164571113242780633895924950667482925204948476772315307002015634691303824822697185963929652571859338007834542372663315274769232879820634792756093599832965565837538527022387670558055071936585155260886620101364484440788240763262803668865899927573206072624102336150982091682540615588807041695938011081409988676601682393840007987769090439068392261755901537310318885435165404165620350600261310020017110579804328864358627193173898615875737342694473837036633493047294141341643727938769109477688582321473755161065076396777347903802063851014504958541113833733852645714623602048318991000025572812738577711331366742490028643128148889976438391555484826957287821653523433399476207913781128850695429047750980235092571907564357483245760931311776101130751648143885688229150123902704816718890341641182546419529281362638907712814657005810248521524870151559741941763086326189566922510791957080120125203768074314120145136327315448550852164305196546768235087079837610720396158598952787778974121884511538290977892805442464104059604709017818695773774702934207342288320346652736202443140445184871674647585169710606049603335134653676840666600802788254937900197837864093558650927213782930603934045690812743289302172385035009408587489210215618733186536175362071759640946908451512525660260913013640013448860659415544802719576754384701491933121387552573019216343522770947640636329115923996468816838828857410718927624960928658695020513484901595288194995126468956513978249434872826200044688549892140417665038797584353988323234373168982703027705852834159647112565857515866248977468564840010315689391767233477673569409168005943644135997729055768970806585860762897069638491814341192620963547442051302980570657716926393037118433058968759040186378502229449050391202488642216997469126452601794468695616132800711125620701005170703246923156535871369001129447552337407762191564740973511051763249978037063146526890550344205694700902098896920412839065423404946748705296732636287585836489344231548639318010604991460684175163409363099053216288677834100079193400773064287422732784395482478041190269038425784294686195244812388446924178389506775458380497817059753979229707249084450852274086460178719663909433111897696053509081999291662091499618931772318034924439619432450668194217682907634206513022654297454657607926062596209181476405738297221682158279642112509290429353571574191458491116685961889258171774532146459531545331329285652534746677045747338592124256498714641549133418088680864868744698296384306347277247007206092935957236819936180258808959111263977881427609847128954606001227395842738298067911248589911549475331930564775506656932108363378892941426292180147202636690826831722341045439388687553179239937002578906406818163482322295850697645740606854056900831323287144107077971585090381499285997984942468688633700063978751202015952077838593891140517284138982660721245811558606010140879366425756757139114096771950167004852635324374783077028840141419965608602846227625029322973349282360760412274248704897930405510291272996865557346695042409041529602395542594450845449621728149602447238311804110190322511807272320593326461782766279699447396552162387253844203308022877263340355945858984912351971203561712683559173644286150855131726728958385194270391526595554724604785628799101759373866479133885856948826075785460677378771477206638806226247263023019829589591241256456130704964801256978484894812604447046499146310109832957836517242975718479138849324544309501196249746263814858658552973151157398833017855212553014832664738073822159944483910571821430132504962747903953577502600907422332349145271783019251033117653927750439126993450437957121798128453085702822893585530227635621982909029025883211946970062233256132862937517823791942744939250429633545334973298724087391772890994323788886184842308711917404933619354983070287524518194464346496700259518417929955103584146811091357533107933732721318438368659217470456129722936880196311641445744440163412637241182001709762952957928224845036293614440843616590880851192391643647851781509736904736916829483680596435230081358832776623873649545299796982094232492833455423234256406715276112556152436080601856626276832717547922666187829369884343893670763945929639128805286238307831525590802135523909866749211147383317648909267639628608402335410834331455718304482073576515407864771134630012030932311428438573220474866020014470057888881627193234030519399948899779024994389209995105962021002343816475829175764824218524329657040848209466651304314859117249700216770216770932601701100736318337580723712342554089301471414920890769273597106140830500625063661996390988192097385114390882697836643467700969727085898401766706763414273067741338399021968890185641487074769428452934525230911001292354432549054371148896482299337519264475031489249172394218886025773714186817589165268031144883920615603798017878468251973077152166202091448199715997238596522860418386571316001150508835899851364783442273245241525895823729303809134990717418964341173802428453301933799423762645060441844547161664438369635483449471598546759721897292640619601770883053693272290651147197935602195159223415478979403113883933554068992835533504897145005416618745840873337335575501976847194771987807430938752828190933484979392470195418000364454275021768588420407071052809296161695617291268686401974568155143482988329490322528222380555957965828575487229349240443905045608511956049890756993878804037782502655581368258711765014914290781455756971029242472125281284049451275094914084705052854992839675636316491777263057617558331850408373790556807458718779240735540642600298585920693447386242952161730392650858519660773132399661424825975659799721106805122116645327790991225682084429959134367589673375402879064182125375598061769905359851309499967174330597641555019111442857692608776670059183436431660116851737785312798434361045536594816739954202782079016822134639045274366667613129337359896789705516750921632107557182812860304985053022590597162339465727554021113723699951293965590657952396534741319558025246660517348021217399187989804153786081626056657763058144164007061306020403519417316907676265453173925348180622362194016106789491484784920566495257800358523017490345619367612681527921773274405104518838038661120438937837937751795569056934543199330888908101422398281996168673464472550805550811259142600095226592570422310567939989257203552990043679065965582196609665571252188952096835396454273078652621040396600431371524701103105929696108153250028126849285410556434666482596361852246084863297849318610196572424506211423533387297722201067855980210644652675341898771468830694618626033616177410457898062866901201678755876260155093766270394463295544799638956930099842572107107018396324424112149484689948695296529346451337099379156753557746568894397490797904084223862384351320298891063562612780686043053705945157238707859914608066321073230539993816851930113508751721039630496752197030501935001007467630934616818177405071836185278817488406031561162421785140381422741771032432231007209457442715143436772283315999189901084786365262793740297321770980135141551269718855561202442269405144477561663022626751250815959804351740337098541472085743167547533870132291597323136221122591053497719836538627304650217098827530624223986212604261366012403385496447299170300294215525503057475273164741904698536327417323659579636656938344202031060817443183883000943268743543323215940684524157772165874040051303516293330275048442165780270962005079669464299245415029863563183862288299127801542463200819230806699030896049736542972526271148428822437063324114049215734185668210795399323198471708769071923836800840532832903994698574141927553238542587039215273038039752905018735412327755606516706161734756333803584591732690606351393351876068828404159982829928705866124044173590106355230788761827726703252636761165071019119162314646583685305068256348670092805553051487335389910514185467619278194303164197164101612609079392381170356121787128110956270947236612503392494688934991442836278098542871401698265001457593001951240741564842342523012365214922104720277610893678658670955281862844516159778378746491297224856541646222029656813461169086803542128018756616729179632899632892656844327197442709658632841559896294994998894279399019652850772708542381445328170364813720916016490646602616880139685789223138626947679214611829270015120446681220501712255167275204981549393861598073817345140611422629801669010653033347248006704195244818188584656564617774134825940649549655847116922434530428496878975572423150617325374906956244141656786438895413246030548643587190179251388168440907898133968070178023788649290090039876973187288002893093120702475911700530567749633421084117949123374768858829934813597674714263955565528789582073130916465357206633732373601520159668730926816444244610479969980018619833651009219907690319214058420370658141966610399436778582449390854269151767898427969987510837608979347453231337174256138742759954625290163419695482879125445436159805618461172217536047392912940690882736592742790688794482761721992197399239853959386146027214454303568231275293801143536419366553135311696873129863999089228050752892804101841128653423737744659469346848906847167459329315117703045908382955401998435289743750110972257940554556026713678891128734772311038697688034398158355830448272969960569889333598673449048879516995752769934784552368142233435494518179142809933819486925200621567696486650832282269734018726956318919502319891050155912909855021241368134520542096541030924839650941048361018119499453505250412981121863739951782154260631790975063222368770668138069386491242044286377382948382167926467158890232485339855867108224867847382921739613800337218610163306116372478661784947141334574297521971322150130622188758498134019178689400174572518889697138379278770774990500235406022358008435924978535776095519136077955808215887328472539415993147415824140892765135758919014096826688155530176075621407949728445896837931829761126853989253323223943748419683614822120564042887728812254474555743296598445530861228187570764523188701692877535986203304509993944847151463856027901299492654870734215908893449937117798603592087135891691681802164867187792437335318713012001763825355689836496176978228677742173868389757995271437818042412461436057233462740501491190241214836692639508102867236451736610893149410846063563241158738770164100994989092499819555362967792176706898907706389991161806609460851112234157414262517531371303144029464153941655832313648908252846660387433664744139843136027494854917740287626105568282934904875424183424429619726011850029863381726408937682785751705684125773445195207337944599082097834242539867374365377169243181236894094414078353937594125179909985998637652520605483792226171533880010050762018057860771820649934474371853436372655795652921269470877712778382060953640947585157765488096454454117035939572413901862762280434357641527260632706734194578435014849143789170523783754990684296042561591891059116354268602555418488777816579005392609955329717570007827057022522934247780948783762668591071512519735579667270829921259161514037593925310424285908365167351096852316628859706325210395091494021544969923564432460352904121699938535990586485403620385095929589824170980218626588640752433940617984903529119668446708110348355682955865869272165666520672823025046901768407210255943300022374143120726613564860403592525870766888852182566116632198973916672722409365678398912944834977365774878771582338167663439108224881442938971975188011144618436237432258266932257417457550533246268291101233119623246337444983657103553374132227962830345426362073773591417480667607573884945727230910646709733202523054760053720772378594846484813503055056725462538397522755672534668212598465092121717052197606668400561629569358463443775873651250998214470211022322287249861168142474272184970643612793140831467380993918531486795253752120816634903973684133144845055298179404237917627166481548239553112248388484204231887145231883080989591138726210178505514188114717877559960645992833262277244415885318089976423167359543608096147637483873237392313939579744246910154163923130704231969807854001973095052602741921940019711921745993798845120602698282646862333679094275936399029905028284399192810002310695441905149635899744058822084371029702707927009672335076260257795459819584744186328412742013447195396941894472645535336958371723756234510329362105346326680044490273653038735174466192703023611022895794811009192491534068291990177419679572019526232621925233164965797820997334805543570069563810069223745445017760646975357091629276047177657233101223203503169806266578483029598732678630094292788670717550039622411822624807438487130454389124617202259741246751574364680996617439093459906675918113263373057525583652636139504154975816905995819107455893919933218895658970079347754751745049908070378747288834145863725997922527406412196087308275726153299193776779845754290068322450941318064743658096902737040956010197069778967677876884190019492621754307205317259385849105726391456416165126972304549349012129106448753247748704911134079851015629005544584816808018677183749554989415508283594579600049051133572657315740330168299977325325611074580060112222734563273200931913232972690693752912808134121542522070281280675991071510669526045008015354896711055052312676030847419101799522273014050356629156861984489486248721828577747802064025706926395784222289126217661664680648081061782319306536656916143497953539822931967630746740135899350655313264313660545178274669043218091128248472714551282228861470570684408603745092887505048380120452246537421952220870856741415235528029611652125189125690600849443312853340530291697100513502909278083460341503031715622243925846845020567871503992368457786249375616226619986714152237109427879787570548116214680619256773676088348452726513446920906118279532223425065573304352655661669759018198660135651825920408219839630628872542050765339672899301005504731511403804478522820139803033848521324522633932257249083778470730747352522271309759850953576802170252677912942942702744375446378641560020334263438543404541393081184418772668236882974788439688171973024114994321330868687941576859687600745585674538191311518117548992309554127972473933610170884965502467201394709067590489811058139333402472312585615231626212135956642577701145667409038948520043285071717715028709672080393889899387315090900088168017188263450195564374340878713825599724984158621340726096320577891460787841763393878264644541616568551625512743823054037036073361284283573949485268535258034984425908192438769511099144366027692745972914305141360884065539752393025018690387195466551631135052268228428798527115964893811076351826476477976806957760145584434297372490427605111316692344385775248845497615299037138368410543586422309015934018937942610131808079669698278375190927924820324933300014310745048022487717697375497801685944385898953532012921312005200863973545412386255259539910267198570197585671315295522870374927009999763969590829878476371211066571246198805097240837089045734579177635600665691075737916385775197600902322306561435547339871785474571558990771503673683566216315369265671825414175607855622175412042435107896312552224033166965212319671309843624174456692097499397609898709879243760500622280806370993911276948319733866400240018928196246066442090570555198320001041965827128495080540763502451175457060724827292735829204488114986685375915832147876494753546799529738996065459059200926155326187428974664071291785733961607407224452360821223049125908243046285405527093023307872103514692492351206333014438360895004569485503894438878531083767357683427440209810867209684568411113106439762500377060683884846947877491313788808524739586888203055394838776863775853300984193362752522606650341520820552245829704482311433726250125971775694568320450277028661183532815425393407314054547751519838381529873067868053767752407964378203331713554542102327462990039672293358749344905748895951543675530816177426689171521007192171909510982049499939006276487032452569909008164125655511579326617869034497903306150731684268812670863386451704280982785535223862988245581264907711928882137326161001327216342926408730548708147167269090541542221974247714708164245146416105369710796702434264745672159768064823005095418772417647179870231736368466387135516030940945931957882127835075675006878322598473289197763602052725966891958446804250020985002979355079336225792113237146483777851908693373102905923263811252327621038216598304916449923509150097745121786887532835072115139519751054291399199755863708100123355139628560732030591518608887980022613470063012354745311164029817695357288373260534933780605970355298714197564662448134569149688773723677867298637850809092985382885547577346902146530352506544478539406134145126927256293992146429194379428801159742218496345426626423667170007853636477634553083154499890347141164384942308005853564772675971511456312160005307425175067330115433961426161589598340923798744120625307313835458657088862586020229511459634192967816426392556602531235349245053470180943837573640939934767975874025651004365454943669467820678056757595674270823958520570828473285598913946224556027574275903048001491141693168488377444437829995913119375761911092365595465880825435834407052105268117093173194250744978695484058832493413685184865116229649444790893496220449264595394822558542387028697915693336495150900294460565968202463560126165442619665255223926371913127539962436391861607574905404231358175582559155287033652942663354890292642319908647936210104433250305008140621486619520751038228971075761368452041585571804131521004320912300347070401299331805952027740381043903418769966653637830530034091504543265296060752515606103428836189970415151046969200284160287555618965894914747901207196035051500988489068729653469564306862640491629058169954744211000306490223828138436543288767785220990338607239033591708927360301509928876370932154612173857725583377489817294916595982636950612983953543195579269624636855852659958830801660034501925461100015631962661496041196032689655264441918348939874734786757873928444241321637395626573285594547270527919348445423295862645658497607350711622150559341015090811940803199210080745591611087330495225392530529640288164744661526411124384272971750538101218716470313642960978077927474827681619455479594000712665990519755047972312070760912271461014773702476255725477354209533274979481373995706231226365062985527759049458980905197232038520164107952344562171239548282502208344649300519061524732461449611784145591662619736586292227546348757020478732862817550749818240642624661150760862354574386860947455516786757297520784492521705159690577118847237697505303729779812253265425919466016180763804964174950186067019533638657704418921746442702395459951204675429036662578855420187127235183358086375241948122746724843983685624198114968074515332810949901082175380846100502286899284188000059216606681019560613421523803902356739763004266825741557763113524912905870122621234339387630240074411866533347872554603614436498686151860646953703452472723853344720430746756190871663847385921624016809979177992472802719723369559260251978251610438125334959175028888749121973946033659223858890309673245093476902810562004154879986546213637867652780426312380336012161951119335238224658188328064267548741835792909491258908185289258415860608841784023809614034907267331694291432332819555270418681868640221696365484932709191951499683682382636371676661179054627187480456753235876412447149544818756576004743016929609154291583120681950362083654633658509529274179677155142949111979776123442031480526016906666609938745581998302860353437388479805595071223130887918986863738401279936311866209564673666103088493234275595519470560979807657762638309361495257940833516474061425237830814040334774031946043312231153637909662026220586868361396102868996723368468868043043709637556414224034117463476575206441680450027834731879866066598521854731693855342661531641133708924665448120461666227920992752211233533830039399040144024005017916640645520037029529080674366803467385261699814021481241487716058102056674469387088650381530670762435762482140125141874912670668725927761163477531429106160962324067040503335082521548790544199157415407935101771012560343104927237989751948380332877746395907801690499569832119567425151541238155391743726980880779933779645069802781036735046316939345458467197686778479177865553602140966437662036168147118005579921270459569322431673439956616223317219965971051450699813391570505268961814771171376142216083314317572327217358549365089518940605665506269136384000757080625003286337197524590533429694822370226637145741389250221484905636478392368324426808470615168514782503546298786332227309790143492327984621996404298058983246477989608457527564148294046483825888426030696935382399966770573929265880452117236343640886148644993193004509084879507222976911966798260427127397500347353019669500150141579190294307555230162819692652804844086384754587259716557985160023681524774372554128890116919194050825908570353063473228479680800445930538626113860972233802801571596694195759761887343680077134283320338036022103949499769174331610006991283134443219820233768423805229265653888625553783469580312919685351672475325847213553594112282512256702974229327312018589963895018778975113492043661409287118848738526673522020524346545448386501421008598205673173360259789677932030547080706704639920540955572793249767376228388355065356773201016764624990366226071892937967616840728974879716032960467416029716252678258430908135572812173358439658945581993943439033837220736036885370564509282412225968417629643866159027500072596445566630725182800273656448949758316790561375333916469909320614061250481713695985456588257680912787562560363943037185994277293997280328558476087534477277071664714533494646400227816099409919490536534290766602913047212984000949430393970454458127012308955370359909296940743589952985212441218463263266712225061663750870034832735363806677628893338740415461322492593358899355304689341993936522506202787939652491528965074328050304847043521124286653477583289804202089086448835360943173246553240403118569281665581783349808420858254732003152595156761312087123366482021093055449606977766162679639261334199943264349788958346499627874929964576813880557080408175310218673960517868528209173385809583897162411856412223527388706397591831810034923554724944618819392149122181446093485001811199321470891422605423773844956149152571067812047243668364690888936124747786222604767048016014382443736705158287342202001180601478431785586426170617587779652928317613197057632628087059589341132542602273433661953103505019708657596169766803659563632044561231372448231790124266819599461081617326142213682138875834911325470339198602432433499886472356169847695836749932338474076783351490567447679722505210057492408809129113329129974402070677845324841648923857533334953687221672469642825006590392964627504459693683034572470769383710576006766634495813566920970140317324353732262126056570155998304620705476442381309421615585720117214002545895582496037966307580358051997337319180363627201925624642230234892794863248122520617274544361543899507428449967892415897274195497433030996426126437110294547647331947343986137611556441429292606030543370213829686660992053937644054912529036083645073295322048679566989317171677997893558881370066405121170331420387938025034280130288310958477930477150009907920704057387337909235177025232014917134372709027134801201715631025174402169808031923045015979949514064193921765893685368510385768838276497022779352252936098320814337906350411130985427166774294023840528786348735500277364890192546391563044337016225804625066469620143942617592224419527619971217853373654883439968282509040828384958063565856461648659183180914513528836568883797308000235589369961583983087620492206031220940167534031607083039591597985981341496276588587180476262365834503874153666806905930826313032530761533127730079092230219081730417315201118090316632061066452570500429917615428208395109347097995873538946648666520570379596991030426840161831110777877999514646361226796255871174705854091743254878617323919210573086107619296030504899033776649532551577143340025022625822183533047392408329718554798875524444497519691454674071374149366921204966376887811960238052885098159437806382186541720738364496981169265172982160102732909989694610234461547232066118481873514093125015468749325329023518393772788957517733931400372658787181140117554841260088949746608020405313717086568445364740840030009721952210220907918648690800363694377878051077994964855185311509187300413927862656598041487524847113974178340201786496487979028468954573432096133104317983040544307308718803042913397337145591669926010911663522450021396445451744575670732876882031128480101992463990321252329020072018115096439667821693740805330159533365078206109694021511560615091564796188378897157805023854960296003284095544967460935108667592340000691926580733960632635644115292634812238532024995861030530651403793744301781303104594306474602116222947708244479275510199878639868002414739041585933225119819271688205562221431715548607252762671108318482302455190888255824619071025345341356596224583006318678166489051902729145421187614303195225983803740891061963175180261060473198466988150912935631510952947992931516551278114462950034446389271020088091861978183475146069432432083984022012817449114569400862536567481745620189386600061100114584051438761630976579923316202747667201575377959272463922359256752381187134279613732913685276162308925265912950596399011576149035912729153854170099093381224668924011825413746514070500795619914302302903674619449096715238461061796463298556561891406585874716288591879705562270942068722868159763795999783558352866355551203928885875579362195887329912348476848149731625611416312545929744351201561364771444738769566752328454941151489881903091181704908653643308101111031598077840918502870734782856999043110791508824519716250298912413361053637700769191515887002982576070419759035469393350195377893367012047389249417368255342925351537632672271251893939977328248642996194160853338951811797897359944385960124659858500024695440066254946924070588933804020525668054043329634265430670776570692085433647538733863909276093916947968235847123583220100093365507752340002269691879583685793993464660345153927073999220035383724719147359467996107490710048410307974417475556094722502650432264943523928479628476892885289426402767871825842165275412453383829146362372075036596284681154786466187310744398515969790054977809918290020083102667039233223282842628551812319337903476689288170196804473883404901668525183475518150252306145561151606444407720935575925785883653635173954244463417895874145491892869255136979582561978438778826651424345466544134421948177310073443054084094949174788116365302660819685907078010873502572936794009349343594953562644328489354048002239882128409057911924703454187449770185801823913533650329376372043771189694260650300923606851654702441366347344891072238489463467030398442637938553312594581142122363497853672148927026484275106640685400702361988610445670632070509300477378200480547147729476742068896985189724454717566284225291225475295726836988694732821475445853630449180447383847018095440919605547523428275460702725951923298769182367005905346507628799872491724755090718093649963258280305301120297196023397292504327207872655786309815706336088725642784922176076429343786185733097315623715927637349093084593123346505734449601321113937029611699060773586911387499933567705546911154686140933323350442301380560003099555834644001750525351656497154611322717293714351577348131058866905957540514297457247754263076338503242499576312326437299364317382254381873173008403738736974018605117935350306980921578666671791684316217294533722233254002216607800494076660175334334641253584742819521320878450776503284006031830958891351510721642795582282030755556255606873541622547978814329573152672170144696972203850085958048595222130634031752938312946327363234666328594030663025053681533633402911446495752946729877608752015432343063767459072082160691791096981077054008720865200997743394721120067342766642699402452260741844650342864148373000263266587430122671961034198619632007527290735301538260401248151442362270466079562630774683065893098299929772889593105840478428461978780664458955359405500509764180480810428010684846938260446731320608424532159268285257077549813494643019385843844586437706338759021711622901955358449013967517294820668898659617803969749834803611329779808773216527517175827251390127730860418805993015327057783206310314906495657893394081861251635588045774622599587677323661761051334934057012304377350306335485571887081323941197565193080690999426378606426251427053680225848514201946479697934068988723864239666610136489554121264802499191486292117519130129785386806088677319888388211144192079738042569656966016127439020598592700679874818410603990387051982191381656433138738269256488723006395624062447498078242802566785788750704299455218539617938674505499814750164015434420386464083773452116992682554864169856299345161262291743535984881501389246302711480288908219954567854422180552646069676870330119762828050470462225580678293542159828994262909821816493989793708795720463847441275030615237486016782603706847918205178526434792624023987563566419686093765749594903400019776877572921118446567177319629934672564419380463331210196378143139425177096168587116193064400046990947810384433752253112743354667372568721567496635882254162108914770715992498770868510443021523679345627563691143628704114807568334180045984182206175765866846556735322148800994745873246587355626867604601360633753639932132143606843196012274048058123166188241297327427222111741186273598633960777598349411913149558807737139411779485290123648554180981390167597173707738736446383611044801742239308841038864636323628174162253093269230890070656087129119753302882064715954955311493810507105239943615789267914105214193576642154699496568186862695966155985844869833217868194056772669166027785747317649269057641241484074557734522144833294529701052306573462302705092955695152577458619514925975740199370988500320251032048161866519947793984518862066399948065624720419665445145454434026975918645326033735418789903532851606931612359597810874873279716165017867333212451631869547736509257491863913413788979193484655645587855436842014042232442485720577758657184814678266847683014284760666804414418004616947242872091726915995308871456111808272692353658366088167788069622555360249655409027308713063069850647182829382982005354692818317839310801384852755351831352244864155383734250429711213865083760814578782928406133652026651467180866561952899278422471595343148760887623476630756243433448257901009701819139250412820513741572213147704880109763406041271036373740290424129356040301013413796261294265546278304891598422650207423382607432348530047335758765539942984610566129091762346283427618090203512344787952494426992956293641685637760013643348282746902275642983860888328863672432873350990475851392233559522921512015359560385611664569221715204341999624473051600059447913477551544824469672071349960895885707347534912511343989209773675711995279972152384961999810908281846658682792500097925350690737926175579868135910597091442198401005673505950413381373841204545216666071301421733037440581901848078375214052659467337551174631260443499803497221374899269740801205032924210784707191630949636258071323672285177717498412471753754050391991841826358842382880465553161637919726238946494841744524451312727206155455955088205227281797641003858800756138521926717798697187973578279228139984965184612095583969108768518767922603234040004633499501620017018733341423473405247819462696745667968927883163535290244008084819774309100521665006851057043177993240162726656981505153535566259316068661947683688360967139555863103423691842604268943817465723724597273500259952869347049011238813681422785712760729349662286637802058676602661143182979531484936943324711741367595992820916313741902896886451331225766378409761055747578739742433647208180745697906507913617293919046478627497421832109235511445479083517757233151833904045411209615861303080671886487913947660649343414965125062131582912920887998692282810154174625624200124139090528964998005642215627691522171863651924196895239231855484802220357350848230054435507213969639574615052170071955466058939042344222122715295588777543185852441624940449512987992429466064527459775007907486472440965776381016866365870563064000767537593909113572408423546691611361385296678183597699540878764890680979380315365461608323691870179845380330146747890644716690442641009489966938736126071913103956991993969796985749983916209200019448298747056021448322788807226691470572133756577833893697025943642703725279794547199812994519035796252193928711029398695580356056813160384469863461023524375717224058660851934499850589639330892100369140015660748756940195405822345087902132054253853829475716186726007884477809917158779978602761817989846738957048768523352149112932353490530053812744293023499295682143079670129771792021725254564740470484340581074578198989892868957154305595854473371294554678004125510927419230678650930645442272511241867216595255037556263930682754718872527704821972090640081146278010268951051133777917614476333224541643070450185383833888855006628100750367910175487070267424068206262965393228193932527920661670909480597860239754953832694893576552541697275867337253703514983837070511590671906551646475434088822672460731846598786076884678908584790542091439448170218110256990464146548269431436894038131761550988571293517246611603684891737406762887330876073740683562501038478886253328364762807782004410378863403296725385384634504454829651760222936644161464212421418072775895049830715216407782863767915744104466823572318373879322715958688966382454919840754027979940849169156093449955120725430628976624707627064318840593871028789177328680396451508791671907545131781912531938472244119351370614135805354065247727931570054827203763162786418398728484421877463299366597599939338486654333414272609970000156576598002525079295861715922284090842959589919246896456274369931456350882816668866667761832747054479591113201982131789647876839368523722751623413358682164680653613809984258486246982576452500023319818531997017751627753645828933904859703427815735445619627844346116185508724527392644455616995363232152014319263559043425801801523172223075998038172141696135311903788187956988170627272007169387309748834574100170497331848905449542318485285893043524744044829116978194099670809041724758626972090935641746104349588096117668188311796744307698918742065444666074844103502972003490563663847054046307096152521546126202215464858549757930877838442112599581649987251765120034899014840418236926511640506042511081962406737227369387573315812160176277338870993812459745321636891034629688548298296693452682180174858845745521363882687696489685630167554928187263331864356877188364221128798182348997239977232580229628047704181429980237700536178920598138116118695679523637406497077418261845917634607899674913297615686591462936721635675031472430343186822719215949886379948800127756811701923076768991131214663204568568428239446065553961121642691509993730066034083770719579656629272687526670625247681273055196600361337913089842763120810746215919254526847873362872768459580003645098474642583627948582491352455869725504094353797046830836114501397430010769440235564980092516633117398164503533690374135794178626939227719052613080380231000770547243367279717246175081911399793525551974507652580222793488230954714901302515283298856639347494567586496715999642119055306744989781063744167743951715810163083426409103132498557831835600802454896321479150604642837238861325382846338838418532939364301177036739592279046083614244937601037391212767458610903787217471892821570303967600954169414456816083332548806935604522932505002117566682507575212917109414201898782205574435258041634543461818861985508874489434947436615784819342553736873622282425496114925949245740710317498795224893881672646863735428621727235017773223547548400928999456934614349074051556409835124312944963553604581713316015061009090254276902697447719914172330895909989585612749236816731524085983472102700007998041814261177021335930574438561614980617941791789138219938864743293335717495259367941242556593088486981930963707856044046355380684349913335472982422764850525426227555422888046415571729710970166716109827966088579492829289795039642277762869317401693371654988276521224786785919900950861478869610831803503589448089903841296672040947314460081620092018994449201966847552249604297171506011713542823439736262139359316208262681742976804449383901330410524690994171382630811344022696049185547679623321079080747761419071604805161553840190019404110991144807950304316209566412738122375455934155841264011350112404081320258969443743807481308981600351113689944542648457724309975408050824431329422854310263672281039608366046407209582854676283057358582502117048287815272108284358560643798202873712485626129807669356984814497266453554254853661865932420149108363835001513643351001448819705328718639572734307058195954037339004934717118360590194483731067971836180130872512282708135221875493967844558835070715247340479849722820601236880100456686105632732146441309023176746390787590410204171442363129876666043063239054232122779202999835917127076876258428356971735970324641613331985225452405592441284888674697443804938773464266316815407354714570975171320852121261795559115118015947718878017094520052738731219356808167795379482488644972511490845393307954325212277392200420182914522517052998915495317468222475329645294199824993559986526167627226655074035876507252767055602360632937353769475164586493166894156761117712595007741140069919090134284531335368334796251016595725599353291689961613578272899000815091146920445456079957044450141782758357216593300562185151187736135773954064018760799762820722925177375570083031543211757700321891438135956294287804322436448689713417384152724646249339655015791016825285237975791194966034899769508755117775327941845264038057126491059910835424895513349763167505721493004586476396565015814901851696611822457848324546060985303131080097479436366074710814468615294706341877898716272423597086004316306887423794322790810428399934327687325579930943851961690178959041007101220816856309327658079648337072877786312250166772351623766728004922219171504098363517765180372890583800287272594906351033893066052432650520197106507419096557634820080850675068033661187968910139047948404065532178206488122547822459557002142307034849373873076816609988092799221256598130577171549415693448649325470776572454857374669279079219617785603073492228071087960422977778589451489886765835250606221273326769817263530310594509867847559124717425167646631443827045611807749751203736469413881390638847792819218314364067644907160894130688747229684498036959849691938166036335507628861048801240033007475637320982838063618975400338398382849638933767528136292875753125993856607478985498517280896584156636336956279616553573135786311694580459219553606410016636203348198632881104349730019145043208087215252439520043353975632349035660417440841689210368446810500769703155860056537748855090187364196922223724419918877273993027598918343751584734474485363678630177215782517876666303915442567782537940390860691357025170795182372367359006949447173891173429159752497766707385532165349087230765998766060199506988727867455703401632021370979471725032497019483303880362069479772500969372638338502943872743311392544177368855036916756322379809561694977583772282969160315923248037442389426867731068020821114120419596607492840298375752414922574221898052169597102705015739134382768197304852877106540008808147780966368674819014442707209387838734705818591548331673705743311212926779333568858852237279438968887666914107829447565833763796331225294808458499908519611462779102076037678842878677968092142686466689632234675478266615897953107298870611755549243192416691854565482990376287175176719624231520136735842527484324863036072049708005342359407270915791549660759977260917024026516683084567731967322895551282658896150250270176276510406326244998529649187083290255893233446719526309187018324033890535729372896580839103961027543377697789339380343920142836798997324910938381060689265552710282628075318139978887275487097860134640267558078301898023928784014614960086378602025265802420024099305187317740055995884026173364392446751691641544902861329673496661675619624611553562991542244272741853980194952976171452812661996170584877283250748344449396709236828678084402969996829670012218095228784068971396152269157321671453365379463884844371978832147665380748144541982212367027114922885940787298636882265366684590159793409979094465255508753733469243467488587292707419085994283890603107774132671153648105426942901665298715678230446791461607222092260075767706678126494528510057534672120079244388678359591400390110056292405164009119951551856093772315224143010923211335439694790018951224102167312868785018962333624171786807203151888404025388733506192397661827035062430215900628253261356783361419055638251708732861910559649391987607340252362196288726674187885092458567196327372400810993633006691967123446760306274548319624113556577052976035284000778626983854890314961176350105741452220305813202548119001262900100101641244645805312481386607892926265860461660055957543999744746154634045704756985789668947039035258593947617426241830040221244934259557288711662958074882866584872008970165113800965990097820085907800407748445319046321419844531909141759754250754037851359612096104621371171270584484226640015283885890283113306745037740122523150536650288927375945812457082648368595043130108606806519963055613262397083302364614396274728954959520372573800339901221980698842876987711814361868109093205715831193908517669327564625804177062982142968485140254057682248683303023144720723743506347246641939864951166342230889322548595975030368072892521386543666849084167557438933089814356378303470691680257691851911692824758442594413486451140076446643590496944600611646043960051809406150037318427156919534088925243553307564292286101908934291053938937366474428856525827146714292931678015241978818925418520706617529914670981131045016112974119504122732045866522605243720887376699820468394366729517223177476557587911589056149788958631756563783843612867521226769715240075659131988125542562887450107781205894308958661074563500390758535108233298544792367211766045129017944864053621969878755861593646459662602578577371558911540453461634459059748915963231869019534202000670177038760327624881885915195790326403280408115180388577395684661370124420889637508951218326867541984547618232395591613341771447626974981517955554329922814011142173809716238804231977768107117876264826934565823150485997337884106396355730492923707058881615502623360754937257910316729478135370438310240733903143942385963496721505389469133270070681427563364977021168829354215147783017160979262398195146657788825790259801758529963377418386166261091225888944291883546792475331458689897782154499005617644489854613454577674456011447892431915590717410008320929253599968455221526905138310059012692866082502491773447971933208086839476445171468106786074147093546561622794881779367486076827115145365477860766957377461402903511037165797636495006120383071411822446594134146744053786273818930387317950045217928845045269398159230823136305872680055585895884592734804528297765592668092887194229511931943965622329796364022368808330893827650971453022170645564516385386750813200743284725822535536103816243709015675520529594133755536716274869360351046729478797734806201257501994682192057464690670583159749903361467774988106370058525446319854553406295171065679832914078561710383519311932787203017332611805251424590703138401267913040934922163194387754115759721086846286282643756367034452070105388754003730221770247589365502383836619496252771461713909881628120731306598057753634409799345196286123841525239418801510981175526377234937266648583702970298099960732300016626164659846545675386758186441187455528928723764831783966267457246476447682849503127015594562538345083117309025684885291309032068132995877612504618660063049014258592643501963695183170043599279643311428844462127691952103242380628452143226809144008699448665270278916022168943454315926220610747397814774981632632951268403643921175745821453823096038252200126169807627677447874151973046658923821590406150848613739605285824329097759656024145612037479072120796938302960151680284615901588134829093501804180427739122327783879957140573096222263005778122476365202068978861289097931138348352765580037813443028931284761902752835979380665094331912340444850852007738913769275144060617297689900910144726982540202700869211132160528597720555456191397938518421308201277360238635029650353907680473704093351471454206799864549090527678021834143809726480320121784503350785342429902156314577169213156303634305496230449278129960099825861272865331303572692896022874157416184424762345133225051107137859457065882082559304680232785367708900499470095237462111569426658968823996845807427749631352570806592305613112031668684494143038399417198041340828339729426537260322931958711316988524411799392150284150672122519527952161793333686858641169537825099336775705804298656927707813618519331116846643911499118075627230493265393394910370981259168697570568122557325948948070228320651476880784760591927264076574384658034024909384039900867688795454539064768910494125359748819935617914208384474837159548948476943061729309312595372322428069656563326050494425731390157693051427993953260436454929729445003961347055931269681042149652195684891024760104899912958799205190185308214614222069912969140468023312213834505599441511028916754204991421405725844922023343429097498496581300600333357272696953958332927920678322547142729790786422780299644527940325243977442518576189369226260809948092512373236772619312324958460476307404818124396287367838516272022733661534298795332085620125139052581665802966599454692419203612434502830450586717303404364334969810897185192010275765886117673267201521779348217946517343261069028785413200924801720137228564409912952731216058741743432773944053924535667048727368379568309285159003148008609663102283303570417800834273401342871312676966539954739977283079732353298779591735814788638665630952949474128636668161054238159442797818767711016181189632504906256504513394450701880802891424960990941494090191966210573747714284472601011956194803289691279490785268968475774828956507669181871558365716507556068527808410355950588082078496929009391782501274277346586983200089652477795523606047504184223938555942294039407884242264749137846972268216804664231690082269567356945835513832979941847280748414813316245021425638504200772128478810056022842342613116277303540559585831717506771067101783554910258097817145737474968113251280758882370620030396957001169877750316532194604036146913883306923197556277543716834062374987732707394727033121783434193035084512424596047229891423277633085254013033898537569047212322304937894295593933445766372906990773006045699694377579440673891846347419721428472517585377165566589884064532635805381581706945239241605027990144418125491469922241535043463224973457052927365854678378326468455519804911100740899966531845385264603091633913944670886953315667279006609428656407912985347952178402093916417764402078506097644787570792524936045509772357178491757208054230890555098872816117632630448540124585006479624806514401255232352517615579164987699292933944957498728907120011151111060840422272202405251117856665865384661576754712174438067376423760400488041518483275263177069832383713558087034691736238819075905465048600442109527627917630720849016115526399547036961702983782044194817977726193541909561855198658706064237603694130069581315302502236490991614409412537472490317892087646165114696830368124736267274946311788929919768942042576207715868202909137449822876778086792723144399584165388430020494994216132508866831118419127337688271725090918367815622053625355267489849815319704580198034618357339474159760872287219444807355970149761513108398349022356975436699243924604909406665161037726334934990015231634855543247439461442466813198112587547630209270721745282731202092121886076728355131909019735217374704139314715246693503172832716710772803954729545504980380818700762936530056233888977535003285945942629686288569045154977799384120527310655245087804128918231898546457854307728370719935818380178847126142754706941458967355655886878933736024790373735891487722787946374172766556505519670415128229867094045278758383041838573735542163229331812450458839576829140108987153769479728387534202997224078288956062238624762739557347076002061964129270807585932976037562142522004388643700824911220066335531474178281018055549171903133209848003378357297405420586570038495407404839361321400263693628649527207214178674621429118702449961239882794022531990919256593787553530711697082793250559522342351626862739328304457124895926589394896631666934447652256303724736239083128090541495943798053549646327198945857539424877564366086130093218999470434542919804792951404881850704782632682153732312703062546403890112809501764984716479755336511863932177299318305481650039634944822684072337483581473170610278064410069903447430423822810688279527019794879762171944677844171242248002955263947384998720859976886768591000401745704419104260363225158474369558379151766560696092864662866099130584100290121637379074837530557477332749469963048880787927538791612559897931099794186634965755361099678602786699673201138187865088971853861992647987678753665564668625507579453845754672621727536400052353872344312910661849601890041547803248251057632710122091804319963586286308493943226232228691023206546729099731894566532656209065748089847177867219777197985327417646140761544765480996650193490985420421105233204519456063883318770792849930465172886282807804899243810050725920744813915840479456628015419639600201100997478110993588917953389828231048508375277548181012483003447784537853074082882283505184892308751194971393644516504931829877510480155133447379486025937728903220303403449427677073877567021699768503068597009726313629199441174084624594506662779362777226025465722863976801406887098523190018670858256912942390101592029294730328976573423363765301848224842975537459723871478932920958044738664231741065001302348316542272065362161196205802891709033040788665326786394844563815983978466364665324374145037430245139017396769044291713094593510130189248256333610298445531686322651990210018771847578218368461869052548897548380703241070704173437290655069383916803356445221163487691878579285279257506595226950278420406528966290832773101825406324409099562250207776936609953018700919183446265426857745076552508347717894865347978222056886446426335265914640268973813094693815668577837847150488438907791461719784781001379717858808557634204027175521569922126934664027760845654776217834091699776640996822032161258719689190546080313831543325447484213053052124634045647081220220987180623955048636914521888153142647432642008357706521284161053553049636474222134744033016960164755191174291277074713058548568299353046953655351529126952840096344070155867872147780692021827404641450025761360436438882796310136584266788727825348569030568897703427825153503229322842014455996815098981852337105277676160830412891878526843611906023137815075830767770548375874679659547370119794896888717997664429528613182167608880442502552317276302570810047205140877057425361241532942955539719758816691318848035300581727563098552468021755818762316131895995880555946596352301601426431070101251671017821939409511651983246164565507315636925750152928143353846343447759509017992078287035737340728374093783504070419313369440043843595626945294647720679537295789598315556282599162533584950020845964647965910031700448658551958643913030123137759716349352162038165561493258989164036608102832652310746341079289731896150294292293781179979057416727666381541436265642851604218212806375767608975016026273568577560772849642389966065927348115476697795656558506414449492436593571654170290358598875378915292783855459790579366030046815190336041481982581720240700763200912835554499682638461175432000571240905798324439504916169361721475864509243148226943685037023684790682571585334829926458298838614062775838207253293496396641877667820323413492668498529783810931297594702783076166273914793297883162279444740852654683904563753650719835690077371126192588879376012598055861796039168464601371741857891702320334237856150838155199800066006119655533178824600689545943277393440816029666128304921147465488758400941803958127703278448128172405447550717813127570377297685121801901521115050969329124965595392840728423733759728849868965351072361637741679421421080576999053467564149266409486368515680086437352998348625556427227196026299138240035721134086414785422946201826064566145191701265547425123061571478886870078914173968551234419248311692495540608120967585097941746419920496813560169928606901909842061604538138755551354599044627427097551356100706501257792930063630390619904152433156685568543816843438412557925694832758936202275560531654228102125641804894077412951970823652574824778796533122372854304080880539959489012036770110113611833077084550649560230526818328822382829397994239469569634172051505318385336449337749024398948666034100082737924652923655891205168301130328742937115259540291496861482925522967702997868522338602651387570272949089561787429758194827392576330100769152421014772969387224161847756793382535183655842272115100410636261776299186809381806000996992261573764652202318754192692921920331385672237010024317100658324025476447591722107465931499043438826903568670264719156781127253936858215362050348711789415679561152136544639866318946382478243734569846359144388212001377904018003282821907412819679247541167156932552119235289299576255333007638762464938006234070810512086319766869281226866921045558445080896872036626209133247605148959423595516240681286465299592544118672812226876725768960725791059502700429773838799496801746227153422522300669507852227161638203303169655547398032026022336153829153303692847194240891115862402398560104076445274687892118594636538873141078257702758160183255774441441730451728369949909195670047315862657610528788000203698477007315433464990937319284613702703107365284067953228382774384641917400797111311517324779080676944688490385048288864779029385630268448672262916186345475486966223932952322506104468941251244714730973496630635384620172299370315715397252623064175614830551633975476375770839031707430338150574226996836284968159141880375428895820783194602860818579354249305090106195130500520697978108764102589344983138157253574534390328782624563977005926220323332303308357383084174059940829405424583443524490357558400420875420557347806560569477555959962636564241026265972214934162124374976828096315173679038815221748744475875900479847765433289854376090296820145256418419469399198781417484534892751005350459389199685684099358974463652654307464927138474682880962524465421565567208188582570916917713555497782316013847392079287408609651292930202522544054163524652665676877276576545047408285254335525481918509481712347299336414190714992963236080865887901654575659815753627504391259791064597504089412739884176487280714788205111340226105553034359954903342731761726023679595616831661148507977290191215789554491770818615481298796122008644506734709782471241861885209269203528479963328073738280805180077948529613230676738506913064930258344133562955546504233818540158222423122395736210442471200735054874597874232381715013963286539051593575875224284977755667881609497949899451095558594185679304344587269796257047113789523442357730548511138839936673538746742333118432978082638058422589338110184585810562444232706206505537775593106820202976828630147721020494915235617364634823946629866228053557824080205157727996593959238167600276587921637494357010611121952625224125052925538481051134007329027229083476000263498980100977201250705244655542022490601534027611292999604135174002954788788606461942914405058324981651135303048297855768278467811933498159077486467310316501722668406882737148492189020817255548448748048019190270587702002817864576286383415361830606635326122753128606863167280863816080990378237838258972504422498526654411211584400496481132952726157143181961925333237295749475868304604905848682762548219874437135153262370717660821120058358650578613142123219264489011304688138238282182441092726931615685221927123082503812765172741098019957524026262167644768652341059300373929203922724701232525973328694671432770669651137163054967793787966793914345059090357432253580257272894167470688688286388431359147849282555128571761744155998687368386684893409771658448413303309382121530413936048714526714236811584965755572796757571085808614561372745705520438857447687296096425679756699457522678710220081838372225089947709666852905129011241264972002436173801320975809284278163321984584923907962976044966547050424276670035642835944352682628210728507352361324408441200179100087794406678638967118408130446383926737438938150335228644779269187454744203845612392047478188157268079293629015913433973310319744001991198879847644405207911232422426263827767304390127406418845702995949870490055990212105499813942795044103718898743729998667486118711471512157413957120634209883617421103601627285100491343846284802001492451935013857362922750293574128554028972041167800588844032691078026725091500764877632231730145908131461425905480459831041817088659090330029390071337854531502965402733074049523418553777190441584591236883427326816176300131906223119035017730200489533821292425702964816363165792196720966981307214511749168578053649715835299866562699694561080524660796560826791401776286858016103066522190627916176965605654048215813496191042746456297552334193410331288183263113888562768174306459298013045854528576535776748544032943766291781241889609786429112056624888991223692487278688912943948422069314347826693053391946100503034742140417887322514950145907482198936928058033657390916362299536460843795117049378916801171127514230709714167693393723488326282936763221645940678163357454025344777633966929943970412115730608334794044305785484412847844116071365154027529383830412430091633422985086147405308629081514479375944926947503050415858975541831776134304212016717800816429281536064061629500533004344038141159679793377887980791372952190444690489224241824926380396734028501596032976029428190140410477753160239531004233295830920412648234414092701468568962078465486434936292129761431968282638399291399028190590269064431597823324732051810752687355752357284647580602828026085841261189274673496915244780689359287374775090567087695454375700380646776415734914944384604123175496362249222318982788718700801887645732730529530872710158053195922771087560849375429247991724316902198998352095156579212470018437778797853980843119206135242122659521708800914921479415167795267588206372423989481703049614125821268629020973150975783049264122131844331224223313300377743757834987449806156998411524441558376280628793744842688233089493694576450709265369329638347983330452107604725863584654684231038245797840051511590553945148097409476905381567045641407424675759363379887238376791628979937514007294165050309930468288090531910967695642434572296758359429002606713883616172746250650745769981134433334237046332629131331048882624443353119746464771418428235725018302822278995399460364262677502720967193266816974435112431791943300944714994575544094626519408743806794744436767864194849150053976677470553411502535730739932321755652316362004833982631180876854259346046047315236332892402329952715650752670656385792067965202920278542729023732489667150503004769870784215252237342407642431249395048351879194740316353337508967025829169055430895411498959626721309531569588393710729296457630265760005558673815266467607992973358810355044158820221945827201549204702005841354319952267009903482778397111077021565163401984372612393054218771346395836855021627442783076816699133334541846410335599365675609672039795329490634367492051966145975139730203756485859863068326764661443349808738435300615278077798049248535533883508424320999562317120519961690551320993463494402207277592948571707545385362088654965572325194972471329961958355976260421296801989745170168114028851901087416171609277952940070365474592596608706326779581134381357348066467710018122142896831996418895840202870626972240705002282123875773909865324960596219120792429280692448685364889862470767806441778310413494987217848414815252586983427346935667950102890118451229198626142365680618791284740041424469714473777334189415692586783941248949252781304489170044406402887454376455982401011650372302975653105794897020513396087924149270882938592254783074941735898567041736053670462840296352472359218317281291559818458177569272064540713981865164348026908493947526878309189609766038139513234252309696740075008979234305310065405868738718436231485164582160860174263833542014358871772974089027925024061629682659044723786286148830759158434706005809697873234168447874013224284032355861592900250529712467728413929357313845013223487990376135025984217576946956079218460398103327663932810791097250071257657972545126806989796700428766416083460419584102392123794905632465491421525989313828006903575819160110404558508548024081007106757679762793077131233956714019673183508753270332182004142787084176686715561553089987216530346279850249047611531642580842852685592183897142712034385802443380349766703346858928369219172242641875681742744990406981375684725031910057523580495406629969460220654524199643863582491876510497984952765195018678763179561192483559293122274372334139986580629165238713163868782166925470886943253695291586475129324426732802557310634403304484177723714685784741569025991577645844191665035149483848829215733352917844394626479094514021990771245376915552316579550829470764228257965411701886254005909700006240410906019122722942353130889532621648536902766512256815918295408129372884043452017425591237134717278822864291775426253410113529434340648303011742672838951119342225779739533836535680647831551931759245952912777316210075195118676153606582411504138792335080513423116940284921173818113462435815852575502010306805830136523709950044856369670996251016223631959955929376903975725372805701679035719111299914845317769314503834225683653547671261420727712487924643982953859181455410319974051956535236179936442817409414675415695127370759623581422915763261912010419833173695518522982231817981340925752135348111630129152570622724294505402710291999390962262296119037169258381239987308749423419433638061569955613429250073480931151840149962320955422553776497364232641023536676653660357336279107226549289920118304243099596147728469505852942483808953255991439865813407166686817009613312401963492191991512388312850833079733923097878284675720059723533070148633974675785015500123480417604477846618991327254980991112260958647285808385338009745116975498678357045227789025686520021717489929611966967311605452151363311368707294572242910808784292689690680359026265087545185226715866039586922067408367222309808769451276330255812509499971250818396120044106807825019676840937670579369590976064330480476267001541849725872765285391160856449865474275510158468912722285228231450384700886070178446148225746257906729798329364996073825970260907094379583107589578426322919064154345576060996422136451093617739937938522512006349876633856459288535964850559794310667423552954256412647183497427004109940345427147075158572993379211061227336001533103348098510279906479522419017488849848990615445283521287000769474603980995290614429419646997486669076260249552523314864463670945664006116473918668767180302804455597773683032041881854080295718839334084854071960214340634037036100940371253768281850673967975617764744846800705841469099812394203479168329038479804346476133781462492188379286382850188955983948574159185000646891151324547525472998811068321922993269006801835352059448742065296720613747486052805749726145245803992080709031535945656494392324256930506311191339946979400095438683916609411665723514174941066571847720583700060950923660685672750476501757277827720180818227434835380325343909854302248482403100520714481442636129936982523800524566962154130282742521519588223053608117366425874616965737805332294867765244815718381192305997323315576495513523003186632716067128439153549884570245947028263568310692731540534875225707362152058178447009053674484752352499797568262144386119101248631089543544579794254664301160327756370870253453289843839874930848665158161099813562743098742933029624197283950222545403798634326814952802705231755086159905337058859850993138438543987216106356298615070529669382104090720866814536102759766562016617516474897651451003673745320464746093915445665072437757833181469989723581305559400730314558759129706679770437795479787761324095491313675743552332270498709591670491854089342828952600075099063285604659658264139667279758223931192416843379537476100559900946055655922407405382685839126276179833714590510562113341163045068644163881388299629352900479617941005660031012191756180872780704238438922292464088266227688957803862807359908807599119854646203611583568385912893321530364081530338053209364106887693395738043805375643750773694545947638972900929136576315993896044636414745740193155305467157154868965716188257571056374962407446196221861553531421594158093748922539154967827352654040904528963785352411603099986972863353092833735157480803228775976656005948843270712670946249582186587428991078552871022538400394946992164176969355125116928399298408095867783424065351697903364016405710699951001978793511615442018337392981838568915049091112131230777277803121212660103338744736655954229144205214735504463337874955411849194060857565802253103635076807453443787256478804750230344886272123053555623475041459356956973732611113338208147368025932407976021047443424149003791333095475017128739562561994261973688908905285781478773650607561906991522641095163627534593437004765389630052039228984270316551990946296723353438748715654193740640266495698888533676440649359847269786450352849436712423435870763074878794289672153524203585274488249416702830062814772169029304292692141726819747141632154705982962746448662833164654334791657254125277252832897350269423716330497299739716210607541243025608489361701204043346102894817926770905726456136357020284458138528428044723199153621782925247308288900045439071763822920628309215128810852456753628323452633248663032595047074538370053596562485293188059596457220142874845671574152042979544212980568331979433733770395560634361442364269749829618221078416809159029861833023601975048669189627296088453653350381903612252257200895599955053183540182269899504738607183423767821325290717492534968726786621622427719606924056285293761405455325472624072551997108899692086904829826046902462017143877282749787491397452869819211575302806453239496221378236068388223619037189149098522799525837955596652039806256194316782979491395093086766567621472501892553219427724376906564650543579865973726179779567743451181638584638687018223476608369814641939410968049978742485937835684335316463372578047269746839181483000697245507947747759769910971216365762510865651444311874275688893183817322944130509113970647250651316541885102809258267025448933886475072323151454076518342711131463744208324099612623564529001238687254561379466001735307023622776493144910601286897218979469606541521264016996272951496312452175656238083238801738520884167946611118779785689283700022744445127785650894622313996282972542427607648619505786748264840726034832488969113103850244611515798934255541207768918863047983396642625145975573207949458970400404097786076592601155077005716380491263736039030343192406564090657471641895311482757218902601674448379548881936514759959552893642099472209712758031771523459084711644813653336967201620561807545887197531067552134227584357229910307987906332321207955328240637577206938698340388384959045415819381907275064199753145845681935233269991154995660499137795411820883046704536145849352648176149540434220354400922863918112643764046091448271651201098845915086877906111454127447940251570092471384515251266736488520186089133695270087225448716269387748211803692957232653668528621668505166822587794785849824531657850902397920767725148761180988909054172269897091665527293015558046300633789752708949801241685154786975277904023212318839070930813777876243818409160943692241742286902056881736625028668262485278703759823962696350318798127169599756060169085938765879504985756018429147789171185766280609095858343473524118355363567815053591331460854559618776921203962142064511237270515607259088987482745496257163598808907796448183779968014743597691983986678210416237506772828787108583895916435900215236993164040461372565975469171989979432107677089676895777777578283002423965480232319778432207205302009391585421832779548151182915041932907451259106678037770316545216392541094938232587724006450001821180656283419600432886557580567729340774908897056438408447220743859845377606193647155199628838793390864392444038419885506969874761991512844514269867452239957551562610109217724149435787834524994734335381838398587291352523039071592871481285023051319209210493655380509364910085458830606385063368916618302924321360863303123753979217780601614141530112850363259171378331655688232778506817434700249675736218418434645083092436071089796276593761616392165409902691845498691518854647338656265999266494927935052745445999989493132740196666833410832548409961090935630545328384680479120990621714045289595465028356492271247913886804817048573290436936466470654188033335504835228451601924460388621887214677077421674996953924611758238823255432577895675206871102339078385272465407022812103232669979570280846640057764485066776291493416647634494383308040071479557971243289070590552023109720092704504431225875598778929352820669885501952092296095204339261638745394941870965159669254039581176556351195077468122646302732057370105949962926079843028386633600513143804851385159698010730364812093429997138794777744878690871243687649018165247095201768281335261904413139626618486335023291018184036577671230288046531535221689092261900216668617919465253064612739720650277179806619420186187850767812245320178054532783146297782100799476693255774550375806256364875150394429967122020809008904369569939118203458770721760959226515988607692712541161864122373587233844733017626583372778260970471192756897796531377647817117419854509800726548567698281873241191113184919111859430260451854535396149998648516401592226043779240206491889030753761647661616634002995278229730981915431095074154490140453069458591723577247999625261863826805908082781480961139663063669996870463787067821318565353297194982589667083639707006034388362622042087058855838702634453399925702577125740070181772125630569133387820056203044620576037648332159170740921328993259949580790860459270535385688333302945554096585794334532946471461346635103240602162635339997120579693479287154241064092764469181805904717814946443083443892079506374064544885768293468605223321013792621716438715338276460211619621311663818506287982738523370470371243961181098697857996910456076062389900407827853614491830519455396290472174541110889310662371279436419742276119297295493912144360746010462566401977573425724551070258983159945662434943602214522301155264686885082226925118996879221004266887665186499483822653933962936449395656939092109067963162542082624950378920044479884103590209383391621355400154149175851453418742835024557641732592327847760868696167166383888346703819742090201556705159256555941688487166560891494362540646702678828946732601411812807762566222715710717362736283729869632424328695441368021798698335859755509466463220259909651942984367018340479380308195147452582317912058399954512065167499373972041759042098201540291929502818341853784006874468645452180695246388025836716039214939548340040189170954760884855255296855539125474824740779966929252724676492491193905008639004540328441543492023000357829848992807279695981100241633209791524219678219412275448866971576625541229168510889423619702303258560307101402589213566344051230536436197657938144687799788036834477627457513912843179759906249188068539364576569903404068338388568814823472965622331406124314440528019150176730880135353649501067400563163619572645136574343955743127095776508616006616105715838786576655575893684586422463606052794582048719555679302116008694387989523191399479264317907548724347366642451824778354901066055358718906254467534702443152308599759462613757330272670371549488507217595111648492131129335793042427550741773331634472660580753620254661371083089268244159408157901863862035998471535983161934229228144288543291706163609620373276128785214817212320861622493232144224799454768324551265446098244547820281626680502330600036677616919916434831321697979458154532274140564651608432814453173208928302593959045972245944040718205801424468961122803210774294464874182303383083434611051619492049365486167462802570437285708815863827596829393541017227754575071117093397159486790621402791827815391550330363676838559580040004704772276409672261741098285283566938868230217880370841286046594072373205978792011863067431607762575798325334913850111876073553641018078791254217172281984444023409211577761681345958594087672287457126691004940448222181593124245976829298360121797103739078957436005687014719910661927752142551208221923553555958540180565643633542765502854381728872476488380839502984956794218711263343412173724349253482539841330371849384849370095438228553259849111234179618927978982367861103207725889415753730105440802141119572459769460001540552448740064000739421560691687274380051379430131424330335267139987812058364185492541901261796961599660303541038414484166569145487135547113058771299095559469493253159005322835884046995352284957809344741521160749355453481037766574187395074792513037582686087143775549750921936397424059131856445727235607163199276905667012895156628045959557299496445600535564967888328815205167217203751451193136227047127560985149003132274208896363701026866687381558839355108219501542186417913456152884985271512019658401478282010811949447641961468230358583734290601428810886608883444026573168934100055394708889525900996553360799906156682790203200197610168867733666645539851154333706508343625341598484117250148918939096583403894878084793124361068680180684144281976325432692824591322958859433545012087877551478815934523668835456562727854655592666698943440357374133405505064232307384695274906382906080978788986239448769554749624524356436487382426146808784986540101824081558631026243448866516605304321455117614452416627196354639138638541014433779340037535218096085963048139593856529577751485597929085149071984150494321882308267636530788459387517584040984802986059697880446442049560262888689394385745257280531078172328782474165638889035553690339817133368399633830674876445853202266559215164914684667264047542308371377950101712023479868845184897698052146370856675465677424913312946655840297242896637781512758047576594964869565371361670680852343260139230152887930035767700209989323745899733018198325419765744569117591544147957133592297905841976702915569745634398294661274541624346972162139880466540510008501248972485266690596575428307033567708750675651407350212823752214091399400095587720484551026776356362173505169689640714888756607925925843495173605636292590531204993630003748126563883410465262699042294826354862423367492911283902955244726998418299932474388514180538312457658046710881554027261746880242009020974108947921575478339381696619329900891509170904571699528041473547598364276525826421412417522394166397898079867889449604869580464045827351186737146827935716337264574930012524480107154678313432087823333839702955062950052163583190389558451833272392575390679127584184400896617745317396157534551466999474901711618047421413845556693360429623019930309867280032466969807954940656699973182733470900508652036352755931142618485454559276611920765936426822708395884723687372718008088993622916923535073936451800765890162001672534527874331140218352308570647174986703457966085931224654163066562969396407788087889198598272067024822600561830376820560337029405876539641848324688186249157206361238926807164536457923790051133083370839136225789448354039164420051817993471923355667255769642205473797165574976621831808777920369930111831874752094925925354287314013912387580003706354232385987292353872647815135674982731565817688630985254539743742315759141100782272986717570520718403878542336344661674822759903776471844521888987736791431357909159689398148046619728447843227843059003993519843772044072018163410280886828743948986496651754063812168213144729227232251483886912385889109334817411071401612483255095681185630516457092484230677633613666769082257230169844916525854394031148174444535840369453559503983979713169752585971949118847508426141483089303059072982512048615166199648613353100437831955270874870711206638642739346210426085070851720784733987704184674620442876949362288259193830608528508280300598320490662196882894558307109422531729702234616890160210973735187173520965733595865397959853685817724284624004994743076838619671370295541514062701739336546101363321328525144142062078811778364001966915504729728717556258994188204049541563324194597046049295399927711124903829887765761129651164206561258452515185140556748622997861903207483996420156345062133280200523963005499878703601322309564072992672181429319135602203258863489834570629852415926038873163882737002210583776209376905553382069043629721749541356793889828125041604961341730553459629282889270673439458186664676972285565184100250346861395608191201581800915111449702718547352253112925417105064532359443682956360135408226731915495635164740101836468233262554020856478391397549613875234383162558417420459355763496255717692642646750212980177505622689073966244393137137986323024293994367704428479844752138477329009812176451714819092248568128571503836599362711807126592540314502263319060848978491387600846199148545522148595004237915891534105370107815513471566832317819898222230353434083681321328837198757159518535911816458206119167250233409273542816801357275129739653470537054042095211606264022845455704543095480748939123770444640243269345087294665682148676478580666944155704335313925501507616500036328566846836420822649847360091668367923602009372937639834780224336244868189235899678944017388444537522329133186287081522316194335500733375074104692874215057209728734052805016730999523588230101031382114599511371080382558018864484617059074743815121284366593004943138285326053486793529068444271369971849711588556760982147487233778176052509327962967651918519177804946012824257553727528244154478582749373588409415686064583754748315041433667667802227194750979302892451484205079081223567631566953968138847827009644579363878296367102076459199520398383794279213749492551347168783457579201145083070622613077641806662207180745193435301078086163007416113902133369137829422716411814701527024544006591273340085873440134483976285904570799870772901374438491000779929162843781587833407508379613378005010534334742614094055078365096861925307524769994650120999713634236523005639914387636935726440702503136076005333567320354437302524935992004273200948813724478784365732438201097636849087474483533180021862465554046845716148250784598555442543368814930472038276935341269969714812399312037046479666047422148069714264436303458303751427586910573929675274042512632530780379655977806798650266692344040361793652474576627556887016406674574288244360516191038459976033412968017645880851621586832137656445432152046591268808240016774799896670729409808297540935100742075461535772784245698893841719004501368864908862594377005472269489609921709892433001347288532745839296571366386831946254461689644533898890005766988459864678929071602314181804399796520125564480298522440049745323653446017717754070031413819542164525700220103040204616476536479108232679745222710950972653604794285771710699034737474481612583277483283742325757791499905960738194803189697885899489059787436184512125839043904988571236561520040645770943364978614105001575069229641268679313044443198840383366898133753841437928303121537862842537759085701929107568299161535589611735178086481365238855666900611643146792726973975166504431083589044152470730187171994144176134404382474967352697015728357525284026251285546106716463718019815916169855852295250541081949894568735849598024333688110784495188511313122473667324379174244551696939296686483267116862870149284143780391468667674717452150151356059178649340560719898404458313928782963472030215293258788290667285869659060732738448035790748374916403827606986483577611576510839127710175418985977037624664974395168974185982481731738328044881870389699639362406572922761388487421008839285754801619582333599286159558179082207614920624075823274390727268278808784070476325040314710331113841683856874793264616516603894085461557071804242092009388655953540008795557699797916676412437402157872099753742414551971799383453228749304999872495527366698592097915423384556856767585225850123720972869627221049236101294629541431829769908278051067443081459725233539837001629602047855780559504133133848116611575593251877745886867007840726950752096127895775047248929201494640654544293185576779045416897145558472617249571737441953328854840613923059780688714752779043249356294907471630984862301210344104892652633114409280174183382957867876523366767109589668032212455525547114530243718536476001982813785698580320373503270787074068117553456783004672901114676932247956339276296462802067943807482043869784920729715599935608482205652273361108587840897946271815811589668894988791935185135343800287964192719286587686949392035038814457381658296539395634827054821638569130006813041657032841177928873510674689036703634436763014225439533891004202970172188922982955311933005382670277999420027244573104930166900982719222241598889715525271041589962215482877983120926968172724014908542406170938930706960990853980038646066758031622534919752984080865149640265208570792398388158803886008328670891679865077079478436605115481223516356054787923230345551182743272586554706271785977284303818986636211611423815072365339681858261223219447427989650974272358375733621455086914184234522895000615072606336417675134377460609753930700951682454851739224917287047629797115933871849470403420640765847481520723446986865164612837970826222126219168030432774953840950029088461380260749066973322470888395056266044476525413414287754054030305907608296118145689587605466308793553764003809729804507003339939824062240434398947054827185890213862392097030784647987157679948864043218010245747890452813387654298999809799396528605334408701267136119958392342370592788836901266240897410420627594800105333260766458017069703662565711069869041293311403424048146277815378382734168937064556782778383138503911454673771664306288115437030676872967557615205728329202145361037013814915693540929949761113847362184515182787152559939190299280251684870875454705349622736297896899356776352477703613589609039599753160168373090337487066690322203842229711824576764130488353109343450413445306083757480160472845255167752834261917091982312891997977411608458062249818031247848238499402457525801646902066063272783761703327951418665599954457222246127993283413018765290152789949617005723064993835027864166665090667307945126818796619032457243279790548585450022495093138143016864312477684701224833709665415572767400894581388817699083052646381217950958455720472846376670148992656168918043959957258948594302938801380040352389009166846995041096241320865316515856162921889682308710190466130319955919468599265060077288536459655419628782344760969927031507529623571327097040439852086226349888884557490673131828522577444330426969426881496009644542073599207979600729503665740824349294491789007879369342707136083481116675854780340305084210717640360496157971892630845763192978218318945639777559719869370096620036407700292305320705451548817502520064846624597570461366535236451692634548241684400463696594449495710980644855577818330867920936127099888337570707412660615441296993366570442717262889867631444266498668897386031799855138857775041573022208550558322019217705169157587413702316616129576860148436906378944497179242983832797498346011904283372083510533906387480434480229651026521138362733226919428147153466942447758357668873355438553673973360953783415003989119456080513430326712419980224736005404604021546513422520061052098443262875917781118390195953352026652243038230720200323531740728338446106819931835743281411925035559314667286681245613224435390969552501169018962356378734913810499673310082460785497580022875839037295169733771377588146834932615266982447661054091797074438234117250522137377365784706923727377522627655935251896060661701186182224534339040662491007729646944615636510068996480851586142925013346832070486163091464055840114221908091067450101148327546873286279772009819671913399078555028640644892740611853869238173337646163072467504601886898322267869014074655813965350261481916793544009030889444296061593129627385575031946787525523680536357012209515368833711327302633963551159438951866512488514477082647513492869521648977137151264984053444935699654869756902479278503542552923971851278042980443704540406877819480814779280266259743651327724453638831373668669169971883101958867242621296534203745036082182338195074750918216609568503367559901642939123954336041657362485027150459475171471151003044755315420454119498385175288144088371518949187152341209093138229906472239289879643925369340295167460524103629475692343558358617906402077646021008788454399983403448920600062438544659291275070968803030434356949333772394806431782653297176639802576869883468624493006790468213242129718575052716818047403053255622093138795962749783771090236639864072965270194024024657841755448484897070865654600190412486520219605731057895828466880199996873041306006144936323656286583057587400425695569725930171161993364789562586564644741282007421086231097969682259506907731148967777865748854613603268626552153204161535121022064670703060816321032445836583204263195946386767573310232652327331118821143754805524675537518609231638340217514015616053254534902641504149507890557921033495311656523391586577279447249883349936208843269667820271287023428179998913700619560428936346740253054640313352632444655045448577130413444001779749122976498941966650385507962416445874517598907168046356619220343162180427160761684811183559067405910175557591630710543464799216493991673584824298772734964038518093861758911156835456545955659591806326608229126193645814436652719797448169445141270264823160035809508262713013633365392268343324591221431618591586086198013555029185715364638424471495419387982686041185801970647055189268917433562153878979519961773246899475278199413505814444893004235271046041245974910757155817737120585518204266267397993066631726124534237910817137441654902773241285517855403258112841873686280174018398564492532161530021975897888867859337596049005537788580767205335842739373231163193886136830253998247719328816017538898648349864222134693929208015088708934063501016272780557955559334275886384644261070793287373654113489787907402947108748604083332220666524633198992063140594759231344280394977414595123786431316992112272500916711577138765846866994743981861409021018579089203427756171888949202863219132766637195696161634906730544714182141090750149890155056806870474757353081091345106869496236276148241908737480314422757931251507298798603331743767533080312054921429980132197828089336315091870546015872442986011487814778505969047578712443104967729319316716473435213929553381081660208831183755729543786865098214827475376849799821040230197970312250431888980482314018373045904592797711005445017841031381712979325073842245978903681748048346449493386643623814436654086903712542235212469307877299204261676003667015932947049607965902724468322955054026775194912089915323974993138106303157197050837535330790788759822674154745240124439889555822846832434394008488797772619663317456291491814164778541975182870092564753305758783619438470252391354132589417331694829174630591452097976877734404425772613755133144185922811227898673795255084429971310960748982785468074229221404680104191806667481639556283621001367767420972297281880120656867228176614856169493426690369614775094940304104105655606904551079535389363144545881878235341439176088420010909301694870256405032418345388015106067441571365624987387442801798265137069423666650074758710844319240724370578868420761625727669578226077248666800628570645580630931721292399196386493345361925768441419477403957574979700406916570740763207377343574625602996269764067383193722353198837927361866336323186303964809608416914223121709463336806508072929797722722241405386917820155853479670550924344146150052013294923183219332595153860834755781343475180828568142208926340519179103414789023120549756747461484636814770046322951596691465048755767826655944100924083965722409019445051194015090777264326608862861589495543230664089843508187466975216358794463674593438958675202771764308415648571294250808906307845317955235631970085737268854303575588884426430125112033326735103800800388427848293996917482476976745024425301864028761822139279734778806333277417694519524215937115333266978310348793771584073107791779069190780284998523454031625632898488859447857379395546875770333677227917655939168624109349574375958645947719036587913943384593172056145998060251604699028194465332526121046002992030545693423785399013213501520344992388333512578814576809052644183047670995667663355377207260378245906370391805873481491362500987931226522994309831133068048677093887920899620503385930193922975759358153156801210592803923153785249481165419702942431741249803874006808068460054800597839788556327294240424215814457742239455919504928242898707097682069765318825287679954353700924034119362312824581992734873007694255568294617405801836483960809295432639253531551455386650806850333919317898431249258561803668775896906934652759152159134995225035719044609701548446946570374274015086732884454468044002439886741868565380672152776469484858954631320903439699469604144510776513948021685141531561134662038286504071892412496792010918987569130243212808138232168672139609038443964640987899558102191818344404911790700759985873373780560924119936449789519192615271891700048573622087535439564546175058156239415031161196735940022817684132869971422136290352697056974298253240919309438285595390704095133078709927646450271977142867289045914364690926369739525170239660142594343225566874927691059193762678670943550118622920846043371766692806809563871832517423769867885389876905231617165231072645355091916817060256360690849064022237635743393175222805925782536329063736170229222876875653187975034872341530263852549834542159894308519126578440097072528038178927384565136096708205365608432787987379017157538652506853076557886978012281426147208671863926233441831654056922666518038774174650714946619124574605725654032340660564809194691108742321412818046767556181323744378795831521541603491208830500388233763207745156143590625213798955273107272127709256940216018127598808069816393532804002024045813684905896259340121454903859797799197360976534094068978098476328356652247443632933732892743681282661312716379377506985487678824520905696849126157896393013542658279457459756693697279716497827764058272817037912968144902155636513035173000028812432119775080520490559762963638654832056283552444387769321824046042831495405107785324444045261621875572138913237688485471120168060780292245770090200691568047646243053766545812553135508228510379852453161887066165863040112570648884344542107782988968334149345967666081699751398494851204330394858459157398641682706825798807750726226582543908098067847289147418239661781858087221962154844837967000787372637235739179805881343197831431383127657620450050019112542553392359475925963831322399785387751382545808630146782964820921171930551599107739053473131422457466911786403007541015620867439833255136633894141698666605152167473966595496357520397293034895367621384958491141611330140187148086693299764093684752996657954911672014383822693149876968797749203797466130047537014835735100008262965760494647356662846656397810768569796884619890353726203559751566664583516502492933901654573834506069272875546484114578523768720747238426286409871400712067924605438822788149128952821409939644132435930718909881688296782509731665287847552384812457503910852838893088608722193439705611415315974701281510933952021904389022169954266925402371526290957132086372851953192157836678924718240028838499978770786634198008277776621416057128116290146174444788402302352070179020771361131800499443201046689850986098364903125820423317055466644218921122722294815260327385631046660622418963545545911573198773843423131373521633881468118792767396450236988850361959936191954211450543339888766722355919123436664200277455898303313933152213573709342435169577586274780641104769974885775253122079682710835795354550908858765334578259860807104969597181944788764592260156212082152904452766756410361531922633053756158350860890741761212551331083536981603900178939866859762537623074723326728017668977879692845797576219828847208443019405135997419527362154131824603102853641408533965602425074415655951863077337338389282251527942683681759598672046165732486097939122302883835621570751501176254072155316621332474905587153944412382455241882947650928982136374311747269591276351554509362320185650474055267990003477665012182563247925996748377259509631391418345366097800824920437951164054254521367281576767209562988155086327259358909746961657913662855381270735120840639497272185464732232235537404163976809136064265647083819161993831559010286710223208472971034702827616407504641660139139322231336334543148700810887741316633270994440378634184236640719629859221523185725504114050111485795971086278194248919253649918433460398193958124956581185482308091108084383717008767164444015858065738541074305448653193452856997722661615204586497537029675946982333255371929206790164115102411190796241979578325930288052284737416150718434779954152233310430248051700872916530222995613540831314022380333234684265161842721687639925339061749120518756534976255650884454694702320534177594217113219894508363494433224926615361267841844223722538392177860853886790840325065977148620273754176098104492993738697039063034351547475826828866611262693099575583898212411253544218379126720410614757460396056907821653258806549863650959117415665331260927316405286396774406726358227193174187380791376068501021533401804851746321743404504500741180615617982959620207758426847221136126398162420520715788293192821481565227229447242994946073678226222171154095466963883590251538630342633692301780086913423022972190668970581062180148049960777558793194364029301391663769945590875833832578296305469583308929226303900901459288330299802566771619929270161203064470929898767280293808603249422068335585501547884710042291275154843068767613746818175440134652415900446360223622048693047763919098458671918354730221039031875717582409440360472123579374374561919304453984379448742800515487559845733587281154891348216285661514256271357485358088495503217954809424688475616058974859097413076648602346669256812455921962029400325126658582327335924804159267243274094615584051385289459285131668256098553179595980964800591964964471649538991635913299687232059232531752993058888724567111081098084347343213235953540306590458156475512463673294294368755876713944486015553335973189364362297622197336685807187733889253294436559244446971904581064142626722040732471990432319732801469415340905986707423442337612763590687162091996697464511894768166000927055680107601261327952774810727430390969806969484978426745450887530757505897903187282791382442607751905128658226551021753443808370056649090342688933604906612234236974401768087124025249372618381993567444600016681830610590702201828860752622682657913562060024157020309198168427507220806128173270118356885996006574889487128522851620359573369263847444531673419899954010054748645585062238725572245288091438259324848556381962753571260084207378941198274756262214682363974135184218962793133128434549574272732383106555624171580691185245902540437455128309556172676078443910431252932004589692847169889668302371100761840492847745467965969481350632316309514683920197647854495000287163839424485983866248115154412976322169829057221015966683474183790098873915876434761053887502280567955983537171856728299287566607395917426000105926857804038884899756431532691880459935646504966902645297185218583561868631220492904034092945045764924824741725373439034736033833745954807443469106822774873443500794794715493234926370993440112489513507073330490190160666324227008705666609435708788178736080869118390154264227917418360768222020208818824218180109912849108147166232028981221495477214507519768121685913417161905108499010013666712968834177518062397937081973270055183897590837328467709734191303457715439618426961863259728349554199379546570241108369248206792133302452154330156736028571108481687276629172675537204532427238708523951739709131732155129867908136883586172898327445828687362121394129147019490980051060857488825510243216064589206263653913388591851810732059005584009089134418798868614899665501307617402878308690068730093921192943647201422822305253182122647834572685890791988810081763157580033942327964003844670638200491706209008926328950119432311782443621599968513623534110921846486498088925644368884325244472139801543367247365818059454309500928724108514373623887454758011079949398868137927006478406612598781000978058594437581166435601186030222160911104391623196071852157960736597671784380159778723604196033716934266090767927686253445337142402489722845705327172137762377142214916550568302266346946808713926887655720304954924262527383705364822195911936300667647902571258531337236801186802014914973920061138194500644902743125435541826216839190253170614280430937845960276158616110650271665331440478255313467610815807666302645353809661076414111807650807787611411113555410986071108803597412926696145977076547499478724286460256799164176534935503059744929353603142412894466229000182114030315909316061692205039226753222700063026084033136781792112448918330261948737974975703126024903693372638024709296439634393856008386072043278890440861948751900412927439326064392233243284174546016779667763822105719690595327772524710620477186364942582621360763722123221787245149009476780022138413690654196187724118766732635535997836101571371084675039185319986724376737664657300624488530348209332692036277490534631790777471422784759538544780663624502660930810808555735838966836314311293622342435354607202006129972373138014971797123892366031717701113648719993660656199048171720603659176656710014577729217507299439638628332373630224755842078880272693900635681726222003035455905401824598697283442641324697906585324813148802565387234262192813197538642757228089938375486534186560108704868959693906223786202184747783527067532010962687286321613498422030941170810123468245783169173853260585329772189348106265169262891750344360370332985867950138427012347345432783884667367398248432626366300643427301513053773857015285875248219401634043937845071182837764072669573183417729121831618450106059715106890670429967695037346595059803677050983259293497813017499823211367126642936829797946693206314570159197566150106496425173347987971915124482462310448897452198968559395542386358975364162963292402608220868656209120490698169120152403633319063131900706902759485872851365757819105577331761607008823419049878580017436621132822210846927930107539115485381711626139611929968557470264304393520151453152960682361089939058265286135437969488223888278404531369328747477067705832099342446658106049817786466981294246774131801870935132181415728251010126932664634412480765495009395770861829355574198155965427814576857223585005903886846408251958247836808405696923883191404366563020580408126831971650530288213168254869755479097437361270254884946909454713647967779010160860968163651646649680882738473143660476377231404819671711969192649802654218620151350814529704432445718469145220489971939994087017524900866466052235885039579002357906555543266246532436679702363680618190829778874589795157646494251646250997860665708090615875934644586445390344029553796825907403097609728100052192953154370752832363991097382907833825381950284254970343020653514025804255106350850901123916426037375738330610648341292734234941701662004429614604536424762279864128073485814982928896432288410390784917086685711861763615609637829257083402431355723993561106777698910530136424748167014492083738028926567795866658233607096014727870095533977243982073215206688940519943870446121194158229925301672319546055210333503644834439811199721638291955525318617461539222449172940283636529620835946146189744875225501119948026911650218679491824973302398913066326045347546827010858266100006810972628361579083170611632126924396884292217742004672929475872675465740644471948398135017544586735934977349476049351088275858411254838079431950230554045033313952597140210401660262954558647041920525541002639741041454871877581968810169408124957314834694362160435662628840750223369124043312219081776666710027080208335255490281537286210706971433538396672375623617667498870159870299981854775145577062456946643661071414719273228914996912567113503672723796184323803633485106254069623834404262997681059829726102270462821941598034134521233287547848778749374017034419383522022724715522544605695128311578191207769030357181430453923166196434622399560420073513494291081018665265155287094356995388565944747174624892887714134512709689662656159934863910160329177901083380108717200885438730884997449066942101987560110518147506228834845851540758389279007197096749260615879464949516858305600176928788767072176145904587347187155518223899324043534504444681269300350332658417063543229646419055771795016224066106929070390649323424247971944732459282948557262823863896014582354207121242348628718787520586539262487472727486171739086959676194319473061228606197701802583648890010425785996021191091140104094363783168342796487999393847513672120500157168477947146805893386363834762149735767319349354379082565400310086863862574276467220868023853782993207460872260441493132081944629607836071231755784338498596612866245338820862358005740376000026151458856214020105359641496957112541035799873419267614994826943049596850217511598189628690949177463048196973142732443611248882583528123155351785024903055164537051337057137508454425631482820823495763370246228879150537904991132253743536261252905333945999894277600241160625328677774043883440992284624736038706401654276537619543241857884397786156133655411351326528009119593322547136884102042698543578327204889013715981925912829177963011217333696010570055083748564014465078229199368390316233750087521842744586827189000202060011970885055590575946343485954951479102527164053927407255747944294166315435107927695265165429874100621557186524472660045885278628065330859766410778143953082212864528928077630846313302324162337790490701111486166237781392078283158703500205706892670112947437096108074147016077081406401523823061508877079390874944373461906005513604543457669750073605164994426577815861860759502666882543122375980550809061653970061946064678453316696378272275889398966586929626588651483796749726392130681475093903862125187577993513419158595073729864716043223298085751684767110067023295163618435487465633973647501864472385054052867848009655001978792480470583068335194369323243738601444816366401150413440075694041087485166760127001337768140911781930198684424992722901036910112764892088402042588278579280950515334172187719420672106723260377782279751707417221643257226966740403386714801854952720511388260958547988286608218241444659824367198026350077062705863470066598166405567377295419734483366401028081091775779722066147110103814232673342416788974152946659931271723689572970305635802562634600355527979303760422705936375008799872212092618147309460912017197018034696785280661758288477690765297587421674412079503269130915611684749312659984260622079426025958617302081235701449447300040854966630404745945486835664390727555056158289169679048261073209402781299065133276949734660439001720466411506878468854466798490088154874520382467781230783186364616666278169127075383688798804073568890024394765317412649445132723043977820824464431288003326269498385995545495222174724609077820683350496918991708208318761496700203619702925404924294623746311463846623340954299083100203465253985692712105302612153959960776762564991934017619628313526138858758691465877307815362632389564574493784448686929665184472707062336757889287831858607088801124323758066551764973375614857412471907389225909100977663641330320294068757842148671048105220014112199179289977288915824589413947343291642644741787304288763091852114487084822623055796747969738550051614189095084155094551430817915175658051505822410703179098180064790270092985964706770622649710690874844473701062221803121639471435683863045069004904259626110673327662065044972184010326651557972732492536321688305524851837452735838436799346026321587741687967162415039469651314384764682252246205258243343494173720512641156261840974907893591873946220457185849061439514367482337116653415015547891371726281559725585527831104864802181713042604535907705062357385264490885172446300689052763282452482128039708505454777838952246683076591293841731788816509290253486859450184212757034629412250065734204988577955471145543605759349745060948119850394981052428796048483512508159164232307211041843143896895484669820880781409604616841134579774720438855893686093975166909318525410471487868507949625470694866142357046126647843122803491186698324720411912649166211905554779620411468576609661571039588376550114887251132609600619625469966916897833764227066973699584664255895601626259962060470181948180969180942115710237914214086572217506263316663723046127074931452036926084218638106814639211132919560640847979661915721807209119267552086675500590610399556419331138790137856653308035021657834761240801234770337911992638817484821541151054224086936194743593758254990258499017937512072272558943596513950815201411015312652162839989506224401927064499731684645838031888208056208552864186099199693611237835163326033224948738285489914926512828491647078011851399956178733026975789486974872713135837869836838615793073975056501679394708000498180997478126473243075296136703928095634188009097181629319018404135037478574778944346559840530923017075546107256482938494370527831561695773770209222273735510810927284241283919649277534286062577761183321592849324060842598804638136957037437826997320237332352268638802032302515962222000357058415174641687692510436335744685184537225127052398586261370514931887923012745486633144912759879693638604677311548192459029585143878976017136733898017796653616634462225661505517797779969426628990127896387166194706842164950730326981490162367027809666385943837124649080310556235761177573430564226040143277464007051583914229004079540882957444531578461380724427926559527205092575753533075016364670053741901299909908709606860480549544539911814734361990441024035856805532741678502146177241346938719847664196450230555623854486641687913466345134075697002453102449929845643937199260469528711350849238313241871069684541183353024155912548280676666336992409101357957323252388221138473779772374424846305389265463133723151478052941447245797974126567042999312564683488723592687735663476595184608925282696605722624702285369159795839064312488452011071514882723084664961721580467966840304017467980894843145890261465090447048523000321631812456721409128726124341349103272784262129789983067932489759073646355532652022512100698430662075451349295910377195987434244296978763718481503627793183547282172074665504206222260669992434576349246837471590696572126874879770087145143620960486345289637144424368430702750244040499033291624864485850791094573858664382772599111220517706858056868692473236225875696233368980804264631561453080254877453085152643241642457340333413111967385163342771015111312792285616995110485282526491021791246103788924899742288264825391050668524864937892119410736985868231382725492292454780085198016883675398930742256196662540022286289238210082697329068477640104460568304678664210391600077017372695378766407130405617312642149392679102804402044674063496150531940480097446145152428193916344497688009486336118952743853923675264655517248665897397071487941748185057728816265702190078118676105028166206983122141816153574350131868994923799216816145797003527556892933634824690197455438747973048788222028466928610586626621308789543285064103074312479058099676458657896707945095417790365515866936570016829645049039100435699417421371989557311377204576880102850410913203348416735039009444351670948778280294729289865712775823404177398931456402462825095649742389435610307732359657782763897367968268035991924159172615342671175191076600956619909019563272638948525512582621446812254502761696846214676528197955341886981274299596723005850013763695888619291944366085372505368752495202179717248189534605866313016015575155338749757922355834062671377649036643598934913389711541883438778399018744785795045856523282020715631266831405633937724858473047195625520205496834281767284369760262689123141646396511599319905896527025240108686355153411778699265784035630433876868459718829713040053006126829782001831283123682421356881067920198575246285512205464138399560858681574250535791494674939620042049172468365892131291752500199608085270631755230055904911421479498185551074166792132498331268495011542893070450721613585360007945112802828896654510973877703490902636918986837664478769847851592480238090219448261692690423329455871152849948048139285774504008786715103599268726527326365343371423635056692762565135607829652973485866751128749013639011242660630108916003930776557701671786869949517376204369976796110759432761489437630011203730539487190353461993197257757264207304959456228748796528866088548736333192647180391109861325937261651923418588574061093313267655259044712819250423706658164196074354066472508514875865020923959339172290782369283993334902831084710462357828078922508430042260873353913279581321825571221853097330520770137040138332686740496438713000851470780148528491426940163428239417614023052294299225333048096276351827269348680143458812754330246051633479760744909932113465887386932034811632956549498156174144933164582858347260085721150789898939724469460837428258640672504240526719587114222211483818481511318933134581097972201209519576806702982576485518962198829240864537600957492088795277727449678077601899392166485878276481884893794215405114146786294869689730267219893072723034686539516213050876576919994949035457015551894232462969659869073320208743285579322089913031237821884728657446233002111417570314472844240939932274730949144017062160834179207301124916484916499569776722087935633790402961103069812287163740239901232048057153025910925837271231151696832484743500802120599544943746849052507439829929945698001507149489471740302762196492887027497121333599790746294680050948071835097575693653111620179653698662080839169281714450545613126928641896550348115126020402347202869655111991861713710891912186177694010106497250129996482161819728034845482424312447389301712741417989628510000927904359712092222559958503626006596084649237954917637858699907928750171687085204916320681522311951113311541794416057138682826333122459936689905110929106131228616442984749572608268238801411678863556586315985010252197591395468832652352054139314670495592429549426353124997966057859782148371190935847260108040307762567645282153008359658603441799625046302812949115680945382403615359998518285145938449873889862328887415446281529414057789597902769896072634830388504478099303372410039487798241699646638931442826864834209643172552195918898028369605409290412118293409587162695530155608502158774832557332314887537747474231661008108413048535966861702438721316213593660839439273140264025467626214413548272323936440446328742030778373664109527990067762605545384776261462648701526503909456846536264489832564580736691554275643347236915209973860864773324585406368990790317556424057736371199155084768726499612864485721500230343987619251364726383559112781014878159388362987575848059375744585632157221640819840799057935632051138203548163999710386305900094250329445546994495318933370987814304020325737777221709685329843621481897292877479699893379994612896166062228163462428314571696813790690367780575356275951117752584181413319848997078290550825510507899995643593766214726759276911210180410823291768442906193813531125305517016203562433155320855482575648371404518817907071486454255554447708627731488088369781310837858460898846463079238616940037039737606966913715208804158486412400452597749798811677947542967637411757439015724566271201420211400335491970838721552340595308933398997944443351288073918274777065090447626822143889577397349445965468996592204984959188277571898880239486778251744772933123083228028711356070627061116576342732455512531089156236740364558015407730174914307157356852534907578655218607197102564764524459381122133522880899587786487081451425810463436775387295191949750628406931456998520496236574635224376517210466507242919208243593479549167205953787830752729405793798772648915835847517440535472405450924909104926076024372468645662873920778005066836730486174624715608790954403431967311151710150894565008627025158303517517634286797521912565381109940838177757298937188673970346776566894824886849444716507954438698590665127950592616950416453217516239061791748856691939813685182047183162036631119687204158842773594028364585936521558460683244204648102825427052306891720756485663615465484207637698910595041880317561605531825507742341068031577284429387964592616589846389821576097771964065361979508712493015168595139759003809894792322784288988198247331631930931203783613540459093053654637731586448138342894741469119618334558337485571803126987742993140955822259913311029207380566974257108339157194603879645785713658749218628786086673526199856213171935948576650473015112568848805181982378269535720494285845835394976978501641881231400566734448562640564514375117369628679526006538199948667648514041922834799106897427022902968725991993801426536193779873109238510517572212307798911458475238247020468036199450467902203056624441914444842388828579411674691001123764805860260545762011506989351561820454655398331390285154039232184911669783199557666023055941560242543527472278401878304411688939052260169683551357387114609775365317340987192859174613764914336394190942405699656174956436759048159138161112082306992948051568705153033428110437332744145328293980356495454295353456050075721554309443156979479655487846986993513706299471854574678265998903016604124221395285924813326238780737565051094776396569392071077773807182726243320810475100401993960457850035206741114731500770638082845401640789521503519054777966009586457934627341611629546720218352067420423962191377594043975016247153585942493561735810087351852320771256200056655317532300282394214132612764246275761311042555055860057034577161098541535786920887034141721681805027660972625971743236663389367906648365019256547266085715757075563843261667649432957339058350515896591934564195145971080011310225457058646877372813024607903276523379906913201867151452745863463033766247065578353612957609421265526780762539929535714758882835852658317098777479358407427109015983968427601651760036225343600259708428224260534276846590298530932913735450928446300952129804301194068686145856062541775265522866504133037693404112227142774562393826406796271414557710045910587047222837032746597440238374732104722240946778644737845342991120388272950218515545472415933658071164350168247390864532143898582312978988068287586029951518458602619870775666885651942260180984665507216788011943443800633882335417647027880177069994049569671767310837873767538100275068021625829684649752945083891941525997638977607049274715476053379827706849771490449901928688993812299708091364090109600398793440619744502582324450659832339623346594650609783561956920014323209813798997743067817243801629249659835781509208210698905752199243648884707658330738707714633819134589927117855429087080458608101497167744041106212119366135953070401141872281557629936543390941358674235776438808919539239174864028506876266716622745736122558335197153171691233337849234290147518481632802292265036607078356636112143238715709851240873238067302008231400186604809691305601882457270591481093569131506913205123678577181842001006209967431011458541287513707595505445639766870551447298867083529412699024226996926078192881859037375360309164537700098917973086735769679894008631403124429991210211023126098005871978931954647595894759676867760231540225885347197947932849292134914239151959110210441210841644781904728802654896408383730563202021413784795775664801208262248441212274955420959345693501144533776283238665710041161269819316105355365048482815286079948495132799922971603430459102836192422273174014579429803491514929767076380734429048480033782549868210906192213311426715933502144410278891258619043628766096330741099327714113964140633556155062141003854350862865927806203850222618343191272505071968237566389500591238812226245789381337733815101973551006570234135632009033410931218485104702935274466414056888374445406422033838856641520279059361661032488408637259777483372588190413715879091050840862069245390198128075274606784844564325470465557536201979642825224796403600142823497657117262779223531783449113539758747968240308988166569412595389442201063966618838669184038377671611961060800229913987809584712207068483854785470107237397466394014744955613705628348997673519902816280561493494795720723860398195202680771889004857867909280945474961948960812275229824491624237479744771504610775399179141684357400672669144392578208230460789880146588112972306871630751035096430321730226606612468186792863799976254652747551405563749161510734152580173073500740189746349088060010174485493941776022058419208086517748525929185257457106896217214423650632078380684399630557540513044741343977868667695341796881509016416060016689207254659347178023468404165104137948302761420076939787007051529205935032526500657893402909271658224279443489814869829348255386958832538773881667308690348526166713323644175110639030104096198494641330566986558025479188456722574944594300589989943785585623317825619731234893531486697307290164325485977084595437337093828466333466452593305650918093338949140193934210307287921593192361986951815582904913073002677675096397356124333582379549757993800206279607991039482011101415620669195753357017605998229947035257548334171497966294547453785386679295367818143924567693851267091613697676710564924140056401884086345423296112346881452139134790567837674216706564476908808702855610596153454811137557196254003696414123640140034297409952791420683065858750755462704940109479918795358200143975368439922059195476943924769159553078004029480362061420639181949282667159390135921807695426528616346353128716563949971585491880934353211818225641943577082944126456315766266689742607180674060906286776853602709470641777916186634835586332675488930149169034175074471705296026557844797768458626379546835390623732549574116323670648364274307786207120679736755148570482495277016922793439056393406209251958874576749488107491615020132843320754938114291165125655913219644276763359256660924661695619223900360030025098323373122137210098870897370251766251277138893876108806488945534466564438210798554744898516244550506883950724145697061445194956751130867974812651738381708075400894984214271873781141258717672920718013328421543430989974859838806107298994978900695903383182212401746340559776676575664982668192029684108724344511365005194115275294394069767390636620429388235441347924909262691567347692415436398710805357901832962977071353996059896836755691456591083783182849573083300682306647759676934294786579248036057444879748830421152803460437518868790131533689905343983421772162834280676592219457566488545105044585373441602841119948842668253876054959266787243455536018711736101672719785601211835675846841018727562125892842015640555570981343418795842176044894488996081837487438597309188504960037304741795785026821692425830362227075170313264363242255460092101640849681603290470292161822259332028135048713456539283483558673817166710748460095760624800249091749940327175148695446890889264532344709871168061895834110262990974611861911969668847031782838690211954732267259715914495388719396053253689656308324765420560925743732199531574143379222964265885503984904948627937194214256837010392824941958106789416026101207875237990406924052355483297577121300012873986080893293220768323970229340768002591689290566788752350746124293867734979757642653155003425040603160096357143769042334705798339152440843565949774411371345978575984937092361922813057724028102875469794640461706804111450480264217641057527416073027268393072637809961983648145866968439536416583684606720652453993038549506849529465939054654453781375658823648076141329142533594573458503555748633445562915203801093253948162428499955996413379402432841193335070832511043080988431994618201129788739078275103898834881406858274950933789049601924199489271506489057665990986608432728732611854829404408222928699702637654317566263737584072252829153692535719978132922387041771771635505963366425011719345258476992841864557838179038913376214645311755123029626640654210447292275866044696998915544058362205676785440610972119589027446039570192066785925608502826550993277247063061657095338466548670387162826717500468446213254830688291952696258891102918465250582767833090001255831004074822962779359327895174663214796233724136696272609078856713315716012153201432055290861206384485938844482014437218779451072945102338531893679139107650861235914871561352449596084295788699231245797909728751330637715102039441910668843807386112319229043462181863751707624573569327542187863547595990589204422517129233895315975464262719040801060000330959112726301141884595670232911410417051107148354594499800240767957902698432592154723213495642051082409942589553872787466290638137475754567784321691730591420072525056171932538753606649117194727121134171977234854382076813807641868834343219410135818007365431710626177922841866577183205858196688163891875717254659277756157983383800515708201769812767572505171930922610098227621939820906203536151384892878855563201150366835265823542814810425975432767944634278456826127616502404305567316075826976004735040250808696340202412463259443855921375862216315701766857418495343228160180330601628234832444301500465767564756189929052811438235600456258972180611845908583482432456594100796709251725848862193811032998334178700262469808512722226606945258303803489976924984854120349867748307047593374650808559973964559682367566925542307128627403244803589150299022358005255903437852625110405087898418919337171734695241340786531582718339100037130834722895255342046024322300833963476304462649604027986824563339267396448927872033000808370092088805797742385449706360168196284303165982722705211812928673819075593147913203385834103962002313939195935028029296352441627187218652052824702792492255508307428907806378618553779177513789958638999350012686224892214567324256439923162529811104180155791456937919243786494861645306297452790282487664051018213899161627389864662910339363268488008155171444474563659673224586481639228351409900402206537062321436154492510928170368964298074054763355529441946066212448106589690336221510375599109511068523442769195557458628996356366899928570453398297377391572796730337448109775068692824172227799863319948269906805846081289461723590966715613214708856913911671441581327455093812243661638117898791543477980881468206095429052063391749545525456515943998689618226739607249081323862956142344389260863832770046891445918096155084980039936934417565767653873245920134153742437932886984630664380100334058427216022282502374608640132207225060897045760252104708168177267815191352015740625091595016709947016449975533035464334998588630954905686047231159739413594781495414361280821120334595429046299255845187126011600707989596965815565116354373502335867241937636791906533524022849973494310211078092873168235789175709558391148149271255726082269868887232698672743842094640494336782267066514642667435440854528816478634068644369822912239535482919307629394174427719797500416686304322609122047737305905475077492719263731360199522603800193593444281356926926955954708605307192205101994349788556050157965832011338038977761839484417165357781310221496334862297236587251230100312202055187417255961986224476524540215460029585717649896468938106115451645360063402044674383561965969754951065672685113744395813887567226218307217217445077377683888039928697631795571231748509303486282098999564687176518602768339971121987087910299629248348169039194565933519421683199027514951874017368388519959188215470204126319706563420668206171740950740486927909515998406514815164966720480645162543138208203287975339722904343449393674792665693763361287494243126124531543746633862570462280132092429821230313525111179231049935193317771092542678582496471326430483787990106060026679528241454144846891102326329173162081013519967986841339912308577240686845086690910307626486083758004247269362114759463647137070850093052062125284937363474756421481806163198943555842152670601037609439340932951303469621283534840187797370328073500409349298291199927232807676329160390438903614148968642864101530388668463944314579898093779133573589393339959109662499343150129515903141609659435934625314020844189318530000913157814024500423589563496524151495437571920183051211899527170068402114828792685408131580691663983348182536007562293807984638365169437359890404545006855767011778222476779979622835562370059518182923908257768560666244335291916902396269895192449206858104072260551418478868836071156329674021019968336604214622299478533883816398562868843608016519991351603475322270260354057944261185619518180353511570216685135782022031674075081861767781306388555629866891279925675056990797537169309958292398545444760834173841082985071049750247858295246705588993685485861841203260033044305611905949851591843943962135051032485477235380966136796540194302720660705828729216720178616288271042103564649143110012064655323033506185840237813781075813099485158001926159954877310177758519821789099781921876857611973451169937706656326252024957206971560804461520919047548953543005184525771014366544858365085638990042917371345078224992795786900809494293249399602986623864940393125090778870049629109013543422624918990263971761245387080626330144244342616316803558201476566267548783594260224216662153638375738283802272325168647669668743879969210876669176224126543854731374020713464457054999351494135436455154437364422017316792478627675305779763958108191215841897438924146541158404608112475869403101547955527818525758801547071325773597319201619573791800592812577438510788899504155603202906928847733964850152320184195456481007582972136673610392791825444055165310313874639341215525334364435822444019821721673691193994531830685274789052907212821463642830710860055034914308309950635214232626990086315180664240094201607468948258421871316814772709252160688878444737556877111045562419733824843193642560374947882104439569700042904062028460607163754763474993267898699725776844057382744169212166017951395559740582093698705095419922832918029980832282104988565357345339748587151432126540323769116527129738638957251898863600597801359100497962719127680660719963178694072150978059172195427035818913767683158619089531293784319257977086214682733256032191315710724432026537246468771035549560920872270144049047112956809860769676551112034789953025733341529011887329498443084422033865493620670463743612117795202968025875551408826769177892125207076593351950946809895808202173056531973422022965007209260143689431708311309504910406183160562666367947380417670605675427195230626946216354099388562166275604400406623808669317072216900783726989498654992310848274237711108661802229399439029757251663274942976305664360155993233941452117272239263123218662169988949757537085888134205834517248706410473179702709486818921077963524202867323628941910631157237629202238272872570312048001437319962104947421975901381795591620064668107723456774512071241687130672959980062865222972118815902666749936132324766931555591254478791173482715202340750500447582870074406251521669967607394409894807591887376950961088908309041286441507046300294290826038537431624216604509354251326979140403594564725592979286336757776259636548548266347208366601908382900724628870354616031701307777217446496740521749875337837782257905604096104321366075288692930110030607326006009749898680731511461702395154741387564916369851597219363131812391742520377802355197968126840013873986234541093766699094340988534902066053156137220328886183536832318440953474887355740110651632088941373700075822794835453458865070712137529257795093820100501712299991388537409905695374527732412871408401327863040877862023117092880258395452846157304162757940820862800469890300350523815551794754473117342159669249691260426523392162195816847938225190348285194949990370424967515754392219681127909053882442082750493458786391125108816762487340347686293579714671483998173294721646654282694062500277375377170052989076148320388024657368860548696094291968380512324679310275708312676910374689410820406472339923473893946909664408846650780379777935166492826305370618341886767218083214102504491394250617960130748382759454292048040827973086606946571982042953385843466946203791496551000080589841661008836233923727231527608741260045745941407643542758239917111685605615496615607226748164152572952810514153826149603076709031767653529856112696200790898068345882715241881794060253828097514806830615863841412525498383673648028075801418227326097117810942279948450092105934178525324569314169609380017665382318547381884873448974896195077119029094968359564488291546818074417710146351398170917512844826063231908010908831137422330215037465343434647153533597194267553785947882881622392258428285286624629206423952010945798010053467842877499629310261713928806760752943327114650362542552639837052733301653968151842221639296435984349071240033203454549647568603860172394879778197974918997265843094649477677528188113186407933696069120899391213385503096047743461674010633681704951613524278804317967267246514231487154332130225706288082170117714585538674929178926574420604967528824094065448286425046582158843458198679849422836833222770531898128101783796150834230818985380625602896669871684188378608720502040541335515406467290136360551491751743159268712412481944576188061531437735643925784215215336982362625057506732360986558216434079474501270652234740755617329190210435777914824749575180450419536143206122122185199458915774777393344818633033032599973850788516970924140872819015191549916423680319303716612948986647876073602059343945313884710009242648918078246907360405849311834447617094799059194997266451536000214810570239331199954061676008277197406330411327428375392462952135325416432323363384563065847633572823635993970995334909703597959348936905522339120175640242818202252013183551759054067079080361764570037606027286522761727748412843553735785261284068974944438507725235665505804451337029090868303523558644106650058993251165800704199166488429955724166521254821261348549566232166954272694439366791930729065055490512953202823268109433065680296596059873152713835101226091160171312259861868202069973178469284365597148598785638232930726715310493099469590824652793977570529202477808404159712488182898873088543720500099976804140000777739904295844876874527276035298381841930087007319218882108642862011462390373407634005068334465487168002452871641681625065731581843375171054982321983176072288424620595204066965879857279489224313897194700258020128000206523149814522337321968488158133842421959616879400612652064404562401498621403968164752035048167900897219532769751739760730173268139738852783213058460886011643725335671543763371552218529538607331312945180898804298791310758789866275375737766976721676915987597220255219228664683363556787860675929807125732992626467805052607741169811564119835314177495271619076534124573794322553549432040578758609745786020399302512002968821230991770592578843718847727456349740207506393946744695706255960733740408961561726235869083629437587578617023076580636640379227366717616465148509490853457397517315256853738929022050137802370351616456584425362856214325995492558490329006991242147690733391983813334242572264250463979309071409302638109811133449009154773732235161555017171729405135374720233640836186274869052902975944212856384916423310400552549100842370323895589083135688393503387008416770671535400807532588726072472417212352413830890666257097713091517577415151975152608142452080069752793443727189797553760164199405023127793685402684557805602164039380309923928451349675441934530061693980744110740619552838374587675793406009749200804916102245408991697152679477208299405817212950535891418991159467479315235738772627704911554329020021840028064688289499628310580484651826485543561558743909554008691322114254491823785836383215812124211462233397986291073029476972057721281573476785310724427661781197711426255175040577341682914430764415462183897698346064962061137488340479471633189602203550812644835163357045016107677284554287416433388414672864688656670884961862644612281773136422795335316525286390268901646790233464094484194344149450867885095509179946095448289174582603033566626386818724969009497650552115170591229861142134447973258524342685665457190244767313007526210650512042928727823800825619926928081859265393836775520850077480854517966060591306613300072940752592950161448255128199584568408804897529581884267736800102066940461937073502324132981332860715731985367714464018637220718974613424231983511581203982299101352631728804008704651324965616343867570309647838655134296457524141587161868053861975728561532348019331851567634539414989503523122821932254599640336016382804596377397568687245394482445092965169585879981875479728974440767654485608191481456820374258424064890089108508570317875803502330393041363158673763415010339118946307214056036259058530544202420991879286856147487806953318699924369736998378527060955494265878765759607481919001858530438036168508663458926543267385782377354383554276653644919202329728632070346923782280711172644880648100937529031885454838052148664371541126084039958778885294307271357372034932085979252289851913636472652481472769717486416371992980120510120926982682988577475947108973824193196615246382443234264698545997094415613788227741036643113546856086644115752742941708786584298571149623575943879070389198795249138300859812157341418887552650840377800698581129483095384581355232293795635227351770870210140969920383336176151560339682113250344084070774147231875038778126116454735630134490826388992103795543271234072306372118838119136830617615542025039731331177706297417701936934938744055461823493775910431377176808385797522709805051479088485645332190551203645841630661990014592836494728524016971121886652048345381505409191593510844680332418856914266015192624641179883968201684840101391876869675627559259863140871862569999123771363672536546733665933450835701739268309441175425708062939592523138351990395351342783368162306691865522664172798237408849402507251007506728174356386204289428328895164814017963207229722012076986921333585463485614067604133826702660793034465293111418910030534761532302490063635587022067903926069393586157612256744390071200280017055954239104405119785772958626524712823038607585828640112038942634022990593258162827357588959586874188668900892289492084652118286884476362530210428267185515017832228660373818949127525227219589466888759305678140188922495242754945006509528748148763440998961342321671897333800401243460642496852355541916755474073770627025498937578842529380667004860795954783830055376497388125125363473110936608137231650798152453587649686761046419774716971072581183941890136966752836555000473053184300379972206701365816885744210398629196283201487699880183352600378049390205235600925293931687291223113596825351385586827501980603723809282082630053087976414866368142090386973680381737291974448577473283090152953434771081244354562194860456108366213084259275043559463795932360594105160708057855357744854794498308027296332593833638455910576110659999076251411801691841130779398674835057934062901476597133516459944272494825115579553370146959604749096669343783368057356839979547232974815507924227757564015922917492146670590346296577605135041470567203487771803265780807373173324512181118119039026068942868387773131874134746823137071732249041281429789974033415958205466093471701097686072672772413952565472726054619863522179660432126700897562386077629717456567055044667963917351862623617317995967390456367311036813757077344278663564791786872115853032813069128311130250703908884242464237656680038115532511939667903937572686414071137176853686377124728583607418819484664494487635787960124690716392540187416900023552408505268860260922187895614199452067416545409239172871446376629142829402233145561906545934649840805384436234381445833007418649100795183635543077591272415467918928682270954258294661416783174594903757711531029368506955980559676068121532279819346741669193398199763854608947544021112040781937418749570166056906260277648267077397486419041575141731657875194374280962509079242389357824827285970219214741873086565597510446319340192503367216608681872437184585722511480548273345521044322878767555677056084012584757292773172720057524470158477036360822961240309576376233799678883112752600141479117892178496620209011833150267331205208228423856693290202676132302164354420682167615322335554389097688171071482195821573279503121114483265826466192969670468929751170151854781695243044128153228199599526167931792518669416279228158873425860248462914452310420888386947401581941747025672431834251900606310737823234298422918450119157805536091110725607630367521518715075235173490548845679597613763453376344099399394775923131022392092747876494069179994947085612751560160223548666144227863350748503792832294121138878726506666448686217425354916743565419973410613372182087985667099336190704519968328693200615229069734590595162978755931614113535413322573598655134617253014597547045737747400572336348939418563369860355402390440723566581966304986488834510181843501118138229346265779079849115361557410050736924412575447908890749940103691280536047902002885247721186660373790745828596638100128482162758976863834156276881186263681170398482600049740650627612330428643775710883071702356333288923988723525964430994955935969837027725225548309537449863537663498624252911388262322766038167886396180103810380802938130051948559770312832851263895381782801704073529094011845509637821177068350491228076833070516361363611032050565896029440221009671816516034410552912474490227796225293620529358461451930559640924879226226503588772883958639224687261037104076278168491576973215899453234637430995666092104707545126544332066256581379942014113988072377006568949801616113074426612209204250763048375585787705479325326977341490247072538353465878340960475335289636132587323679716671998437439435055274575569032457486770743475666779296786514409471674793667457524261872865372390150435477563620536143650576002106898667406535216834702857669489568353547601011275307874887680466053671380696948968520394775439127919210544371435220274364977400719443299389087107609556718301487885920100449457582282492502523693777979946581316130058345025617799416960199333711792943649097365707721948569554145901824513521286824363927026784361713166957007824739403467455960469484616354720947207087844973351950838912316030041273034447126189572085761385336557091651157545734782765189068862616652041925862803793355147740494470089921291019499267134202433302838857090642848139542111896812741204709662165228519824013219324295608182817559379434716385306335999365870757899485769943936448687082843624360573133241099622969152851241806576131274949603656994509586846486560514389059800914827211677347368372233978555519633966519629864096030801572436227729538964066242966709220852399701232060025835524967811414211609658859025315208044982784922943678904325785982516679578048940343678408645230056803629503439199620073441236662304284353752563132564279644498653383080130905784311103982633720489623163622831530253047678803510236840702972907014161946011481869895672399415972290229283184662323745231592391121418898496621158557452291039024081697237929676738364437461363678706358923851207615540935615637753499414024904171517851592867102381769777333171990294199307645570758519984138855789706929372914655368808111801501009261088018803431990303915394412509782012114242773711954894426707738118281942412962924571441014224551490220627804279024659309461761565173931130516783573774517373241234345730335680845118012548190184917307351231864777793468524996261656934333173266187592369437189609177105025293697229226753183977342107855650846987121992491838338505438291591466133070324640907888190944195149030908101533173953248874663579565495842625128957549306348066803106737023109015607350604993934551058249116884404408161235845112515239525806535210206892997959620772783311817877557275155577450541810492610198837234310128521459953242085020125392384545566442627974030107256681123379995167122858052830904613014073120454287633711041939629182776523810011395058142033531658816382177830274023769586953137562374698364205895814315327568378385894325182248281011106642098554743232661000782068214804078441023602060131455991180450728821153907019672190163491374885715542967562562528568253153485407355873725548844386055924071210102211811796432782335307456132998658918547677823780050533364926388926339365698896111334621881199885827939359721048934596982818651688348731351920084483487811175166118399669675915783572721944184970172120865745001007626131619163629090079734002500809366802774894075342516594960932605575464757712191747032045015514052571130697430787560622157969619217598375479708548926157669914843639620766633052954540194322650039289808045708620923829182892578998189676124900932678736226372314655369678718937680407253369374457397088820241555084945922227160500095852439709905307833578819953363695965767998091602039087930421250541663307107641110304784086243900126920463409537838494827989301925962701486611025725312818211449693406721717514936625477146114052918130823859261927833115358357242613359744002462960529758468900926933155456718107590120580299134508840687916607427514737030143169388295451839029233018984325208226754964077397355273434711184485910085222396399292882333913573688313156703257642515817011676792040787548255730221685882059423057787079503074629885648411611575599295515872405063693038790755039751108400833473290938722232862883089474473910310210828989209257308993749178017445588004790098184480247668021291159548197688536030419896705959617616402024714291137910831949050531733315277904965752652243494774853013082349107811893105713738188626775103122868190956385725907442067300915714130487015954020150675164911502655901115626347925511105830193581042239927239104867879177809534746089345820659991020233934185178085153356075202806603779093088934413817336923947740361948147111476261053760647914568600692863220519681531646948537053169664102969043876303884318599635349654100935603825612126337350309845474389746939293409099933207387434194701752146818232018938664931393436194029652250543473917765847545939107912071520393071923066130973457799981360359468793499114313331952366091820473900975456211484457029877446574481643792151791043456588275767973713306726624394156816599140824976814261313061621463132448760150599072024385058533932721497139601800459587197203436787037222751757434290586156254966246902360982207782042348517535552534113559570670799709182338019613539486633829495998181446487511689536745065836475640485235111951126330747232313954341181489079006074603081669606491048713528724611663566391203600915425057481575742418525944593514806854318170218740244265601977375912370313948164236454058267363651718884423754553581288188990919936086440626577509755335019320989445833588786371977848046929689399785333295826641596359425009003899914805231665760167086672141937415367180412723899556958690492175996425325676048599380749012838538278170796573432366910277277670330593536582767220150632478114595712820978468574063490597173321493191342350773451085599315331428237940855041160610560037227651000597345923002487976428680271161640834748748788378209359301656445799119631132945898338178166314893674183934027707146683967776552947316643378429606646485254279580305344290243303560827850278154534962240187384669924680698295524187150446326638770008255684924309009917830286204261717642459737882093077879219966647682258153978215709304274028962356487401750944304680087489846553988719133302811237760734022597506364579137125531679812440165369739701356308555076351410418203853069305133656353145407977076537681184442457608314174339823407884317313672126486559753057175963903423863631215219403895619882348724537351921462804765900338172894504991705432787929561260121103685281548502000418547632120220889423149645793815842144520185453599872556087054181444623355858601265191330311572192833295266161986712038694854133829710598456584604925920281901075505038278310802418205794346525440868123027308898331579513979543307959644682200563232434544206303227519721114808703641841435521392137138580192593539026015608712904763762565512437199702159546799599815979760984861583050591408831432480170236379454980091629268295641224336275491183498636646576348061925697134981042531105254514261414233885885027314031883843872409906683816537620668880801278738988326831380999076187321127887851878655918265237432607859952792983967474492199908427442602675021554497408473633857528785297612113940441031262247091703964594222499262648491394272393843858606242058154272235078741304772992564584639011162577027241859742828928281980220864752460798744333915135574291625443661996487780445689117481811565787795567633850702012295192060044701458104368773550901435985646441548546986280295957448447187372600144600346698521455325499753447472792583337563763715538344956024989384382034121552542266812882743070109878794141737125432815849235731053370350088895892506484846958742843864980744213984969698730353363373100778563387894708780944703256692370704261370008702326159479709046605349698435068956971594912924953930310152550229524636129612504299301357907042584541027991970366962943650404998139440574218885279782998701412617194317620332352005857717359713923339009738300216968428428150961624501583402100886316522892803165579399831314389313702659313017847897949654492052725768705271141114409570467118534861792476953260315762796089014304787583361573050745371831222374750408972645473673523108328170672930190735629686141769877039994159753775570113718463518913447433393874054218131842165907163254841097412141422964288852935483296383816123333247497908844144849114166281387914261843442108699277573916255935946155971179472837069528593638427102505016214032224120448463272580583628434564658700855018351762347473433169278594799721831843589707441080816335603392121836552711350732656826631428946825188989019675275657233837153690174082732779367377528711479105775814120130065508678504803529400674786165534610803322137508511933198041950716329132687698745332139296274761090549164204484925462165147350516326804731142850856326534083260462221349164487178756527746884394348262792643643549641946902115281844579244522012034417808520201410737948996677060905423329865941466683531954817339943904479902237080608789521663969730862407185611595833169486706051381659559467829438144862561142996443177337205387106616447440654436606680095283426930765377431302689147177748552457618305303340751942147246505070439502247282099231276246631067520783914897191407707441139729322243143598348285049663222711109591596770523092913235683781865103540283570243555261628280804986280357537157822637423502267076765258394852263633947533452219076120143735737892428144906111821803675299856205825794170872051052642359422439743037937521317048922690127989871443094174683468423038803013365670827754576016242778524435769062459353969124920185986674854213014724462640424731727937721090092223674528770731814528038384824866505395966664924737386030886315956786802954835851832433264839224663190259948684045823207028195843506731183741757579975266629739850492481554495045395733203216233690339765157634880985299639524125549693091554420758586304626760530926150441951514762296113944906893454308056477118597602822270305394734326603193519219433411597289458821638083116040796224389968108993247011422637430334491357185771057566537433083458360397425909852282855258473823337070850889799768891088036493309567407075986516374259917688536571039874804383367765589910557045206365398749135637198382435716711708940377482372160615017663631515922703534690326450076182119931200649109791237720217454247673672401184328133716374301696165479600441965949705877266511939357565280190634542460943128741078331552272861350098849181659732171565041203837569300701781816077055463891283162553516177827234408648833029170569016814891946341696331224045092939764851206945808250778596561142921051916755350268525060829594779825114404095147126372468901821012057780782609821154702860929792754249870274945266628380145243838222321252908707149053607106330220557940730785026601776647033835557686632102427435715022127428333613850385757684483337346438418369758611084898024248565776477259810171712991403968635775336657930840013963398878757971079576873021791958361951591235184031918641807973742576538894422869467089114271573993675895608871248295002345988555980489560840831110156879992141460396927544934825794834918016101920646073814000604860945223814779117452409338444760521195615662772027425790288352259748685316725405462745512284611709026125902202840052875696570705113105461856937150324316187521374905815014881491018449088940143774658710904246579038929865908576583026160030681060274274357827868005404282633973316784744902309431261141299240750010350624607154185056591554991911436163031159521862785731005830465290964610039340473559042923746437540343692022571524655738361295231024174905352626502966975055160010327840477343744191129289074209193396554264640668256135308218874063116463986833383379521669008139476559950325720306059286263572091384577342642378823540587527581065788939114609055523930699501588573207249985610858730555462119328787674877181682007434976886341246147892564455671887875321833010448770672930477252950964268435933757380728212191544298811927352581852874357450199839182616679411051710357909922291009523272804229306069611341542602288075423173459018372971227739512543942009103490900169262221403817506698844806372440778432864687528719848619369175516785828669375929457884789683921045297828472456899007805047659153441094544608303434520404637245304091575016207483287512410208316365889998110726048311628148150655825867422680909800499173869005224380911136849699971037927879110427189497100552051145433602444435505726205583070506754730221961673061597947895772709227504604587164230009148681511298640443356211865076397176471159283716094056099561525541829434202710805305188173342333414725383306833528683034806314712231892734825966405467128755140308736955893074272994103218310158306517192154052913091328138739928906040771834777323164832631102954881495602696562617177561638707151914370525750332796512935853319240993441361775624124890127719869348812491265052861025546864951540899191384212065226934220401790120294577850236827650756117666198972572141681951416864940875452740316213693734853038862402809102944382073692866639756109654814858455399948315541047401636978510879638200814892250245249472096695485983796656435194242209542949522343820593346560361863437398176626547868202270491778650760920867882808372947068849124285447780237379639833886080421968658124809447274736607517481861353524958347039159852152888750361131674951365967968881097573869300615962235478265203366094443322295792735293734648408313647896374318589158689181034899076410286591294042518175827245955892486714115174811004571146539417305638405657178175322381174719089057632454871667135578882172399496795127967892237867665947695485203298396316285744654247901822226758613765243510947453615744904758165473047269288727398817261000606522324180120985699681064063555941537084594674203705855613730812570275405152085240741888014175679727499868509638121930110418946154361695771807175004627756858586453966935035569252141103263948296996283095017153825554309112475268809415073272120615106083045957135639824291707777544806762958021751292731739347757311717900308158709161368211127583000404223304867220809763346356267456506889022521223825488044310072652414359429522625570684165907863040380767928514927562780386251469582631342255033212082046406029656498199965099871410635547281407084473685356790149018003484330060148386351614938806354106568754011162940016808533880984690133994537780613069362185978945672176318700518927862013731572093926907156880466875123957591913613366055382262650742027422394581859740163506044151684864995659926226490148181190127937165244707825465092775087914263798977224030986965866609455198800290790371713209596313328937650679004762968812146759731344075813863724142892881398595244519051169323758681593358667366525358468250886581015576004640196540545686817548957101735158736618087581965674933176570061794231852789992501106344241734591390518720272728094747824780142543883073855320338264099049267469568422559524454517059893618333476751598557461935428656518274166094080776486219706676569512117198952247693693177432113407419790749196550406574958589182662218037992575887935228695946356581185418401285219844229507430222510779988762813821239377238443061377449962719313510597714463793005262347284051966534175024227194404556603827344561948212231031810830017202307474014352745276018279354088631581971599122942879002793170254037914449879115767938296150528975622865459544711941435022467822938280572729157509574388659826638299770263374346880255134865349299260852384831312037233067613028908219859614785863123374506531547136902086272992260853504074331070438442416382211691119747621298421138257520086180261189361567522712999925620853370545783142808116876894436018912971592281813898631781260486553567124276677778688957180406773315449017478574598868593102800310538157364261091568686413804965333314275455939392761544085345671395112196086939326721984986521097394481703760788341327596502394984524923649681273032018067089974379102318997305676522364060225315050237528952877282335336664958451510011560382840363161308927314149998658861175431085900462852121868058700857439948020237636228469976277010872013839490769939376695553018016210406524437680531770140502859151326114673272841875509203987549645597213604433237896152969550508488985270687397501761085918070211416275827192161922075962309297841386561082751474946060428610452721979067924446847826544583834661902432275988302886485644790234201016754847899693120361800862154633399205220164945603732370752767208748282685777150218141710221442645048839299585423570063444094428297671670060497341674134030963796688412118127121823122505213186581547221746088605113186003537462016001975878509298213506617551647832318404775469493308049490947997627518665500822629437160896161292739165753194469963699335725828333979200429591176655662200734804479975427984901952799461599917124575786284944138628332153939099240474166427796727140807148255812152003280877967223117840156976716019810716241105090026918851644364248447442717572281701850481819253003750142497018935141146870573435873120986380484665763524391601554238933047804525537631595364425573140868652093648078481641497387956949582307642347528798910290988610257538197206399007234837465965655041434990031759400538885598954013128697219751852148907126898926580187285046067708795868112142013244050066210886737954794246409461847778259487830300166203892071638665154405114970309525662260062010625287078323655115259785503459698227071466741107178309339633039331350858821111516695360646640474757999138061966834169445761096181105630876362127669069329775465748052950773823810377124814268748891137935971969872325620138817196966583224455090047668363265418179158345706262533274623307458022148398785393591346426815387053941065184891720742493167185917324138620166831885040951867981740705608673582920005756024591690142988826553370056534042556892489012309990944849126397024701615486482723392719391077744193331776394872265830593702832019106904737221524960471901615642341272727353943480344365242497277976150154627054237013374251541236082667972632680697294467575664158539395481104671953079522890010640829811859737949976244058049632039582502179609063024894282530215798128187869446904191767159831484258534922155618624229423350523920678823322716254041681823247290191249517042205225848337688525801490168414649529217179060486305602220685435251620477980238896846886534733567259785069349375048909560195098435119331849597560998891245550446196172453648120264287733122640582603014784696291878640245832508676846006445183401359056171575278830088274522147901488012660145799065149954830502358764513009178359398934840461115880241467803455945600227015929775399118624257113703435104636895013128414822864646639531406759735604178323344576011658232794728308852871007643340295559744203291365270454251585837745070245926041294495641508583741641699871615121346829730829631125539919819556041422755624269889737318333995395100527707450420779596847489461684951927930583562926996665031399385529167017500348093876080563003285941046787769943620587893213568862540385199516510016285943500841169542253554094256414730081658471881482265563761693337793456150527111677689707725647574031463320645712676282310279388264560450432767714375418832541926486343817401719243849488904537763201544671569275303876699334231131508388017227852005506440656644611796159618151431793325200731905610288434030183637928990253373527946681591411998502394288591704482635190065920795457290346526134413289180060829523016572919148153928722101837930981586074107304837636019580011548235724911848971422075884353171873171768947062679050626431735815625906511603325928599304309183715254987601597475828279834223079366412484010499320303133159151576670716397992170243258144833438657266607345226028308995591980989208820947373088546622923101424816075747709426428165250464073614693447067240132648688574493569878075644482061346843481591923740972171865727973013155518816008244193023787674221681083830160225090037691947220409382066839425384554972900822363226769770437289622574219377400030218776139095752792785600992327582237078396964856908539353539395057498956131511947816053140742921038448004467576729068045610400626165193488989543579008468300496356756840122132753820430613053520051180247419606655062057549610522293775813922407401457522994048549354659783833408637827101216798015603254319928236565095595735373128342175284125563888792470523084139417739402599567966063212968033732358215322421683438805138817327009375643503811646134383746313343317729988953042455500911630489671513511567531139198511513943708547555380670992099523820141847405367214261682950912637076695501454707208603112847978023797977135751269986375580773816309460123692500827479216728027773416107317250763098646227312061456752985866256771626739205467815993723578818450600727384828937043807184062948523615302643188321847953353675635063104728072484789735709776500444444359275168429648797722269860763956883803873826608057894325813482826695315087347128851226340982651992812812602835362285816471318267227934584853526300789351718485305498216079249075855910592668666889173391767963297081595520719319116685415119141725738782057737889038446003986312137534159659628106626766901904653172794015680585022801740868990017122328112247895542160953207450862371766085441859899975992128117629606241780487038708169812520993897415515113749339666921044929699623116972627093080807520424224433643055310684236167566432380352703911392090456663726409862102948912576235759116418305822142785480288042054526308394687568960225131689840281483577204379181985580144704979059464513868696997059148121545871594469718538402759817282808328843953162879390251619652229110920250838284382580026464385726507105645923423983869347633196108920280847200276099703260224870152561403667594622346115963484076142829999772474191791282157764474476044354357611519148426520084825056820263773828105655738507509745458769136474116902499156611131464921652220154759765176371016110675989682638176891659454467664545611546149282967722102989072761525685099372504795158645557712139372347240315508263987839778484063154193881842618035273768947407284240639620982473360621132219066584527667830028311815536224116153648797545703094895297241778776653705865191437763162536275232839924691718887513455002791995990697549006443700411698641346907710126626953530140274315456715351270328860274072307973956305400295153083896036334633536769271187075611726660149893814962064503860685798949911174399831351541792284693916407619889903635917343853142028759530112308914619833488297940797458543508173652138934441620933659693291189117900529853423337050128660896908697580850702660657560327249583054489718033357581174870431881367304160265283226487838546942361850157948849600506546290704704739376304520409570949166083813738966650951594410751062412176677752452907354206672820065084224761669289228006564364341666807155915580745622942423018408319368173682774800730772831781252456581577518189160129842790380704621708997051496759899867708727767111922478881020643781312748319852159379523216181242802382324018462126224927294441100609836343159557905734321153559602635376666309653103456385186053624578679322826754725621595254758742790326098592917155679949293853032838313503716466786336008920593599365842664258502635817922746862277380793554822180084128922057319966180728662022706368936890271337111220395734759047226982850699157410169267876070054983977959520969270763878441080296299109460957521814378116263065056301589055907860485650603665527063233559964714384575947815798630691649945497240805688890598102388733009474777131992007053880234900303395673825338517412358926640818583878123429032736829552230775850597377520574691411499910694352962189598031117654294577024332917101415905728812758652526588689392874660072056948086368325914963803519334216030870616944459063781694069451411788489888370222338593661384918168803271476439402920590728269402336637255374020772561179145596835001812152654962807317473154542346177408990070953412230722659136111540376613281057517667494440150333816827273033604219778829657740065951805592094026823703316374448066371965956940505766006129767976458580797312805602562398387205708846568123396557974011064256534009555141148452817937250793777984890745234355953155765518730128117751551044950523370272610237938877515775894633020692078043728789670723112743811156141367315153091791589351479469518658144960410301902114891687824598510233661863158374437168628281343954365604557285457993433041214337772550403476203085151012944839189124433021774205896100835960531095536788563622387793774521264706858709463240064038384891445437732880440688423158739331587859914576773655079658377266103127921899660604312214750130113168926948175013885841481267903797178178414823841447482206899298801455034188549839600399508335412125693314478920492987868981542867502968669994006883033305687859173800958872005281509053689421846677255271248654808465236852194561047898705418478058355504634542245405959076967912106051089887584203244706470672790263894658650710977071456468503237008272227398765278003565014715853104808418095878181184234910406046187573808596898670730778905913048810422760867043117896811176396985663368342425779933467446015951403152632509987377503829869384548760769944918772544251582066918757567669508377389211636844149183988341596912754801809984765038935612243488907185241450854679643920790308393249779297211151338517968140229830521571784311156757589429876646212147176625276350559930398878679808899565675567557763045887178188852163548879365369830378895569151680477070655994160368044329998630224647385472771039425874351733740879238677162690089555423923950647947737996233117800190313360986580793919106093933330381347087460492418686184955016007734982563281904164363140758767182940127399904769780151181760475639508096196312395886077945411569372339568276381202712699022520126665526974040072250618753884054864386686780404195467659293784836004012361206180056447165665036838407299045008830675886982519576104504915802559735770381320313919698453000598492639655039307284900285190419368293988934646299420099522081415583994689154733199326022429363244149092638655065583449290966850100852870762477065251533879018378678914142453670626021829895777466544515857239249985425173002306557742922427963861192421571363819331099032753504360891617146054582320226801941494110289459163870058774713716772443960022556995404098635919857785382219915265931396373841960808156406892077135202079499892328194952260739894929137200261969446575320599870480269895253469359579397576067624707110505683285627968203304838896135697214794070437380335816348056759605607976068235673562881149065247532050495404121188117224406898627767699215719092882063234024003264523407642917693846633543410523449975216418377244896588359394560560641209801337549092813517438498049799540939604892557765069401170071105218386808726155937832457842150644664507138561641335581660972148836680139131368181374023847916957021483837335430902041859285353701492612478365112581898097287027685007024846372206834989407245531559570879462608471623050393402078588466480406324903745750817337837157114329790109725381795726906713457686086508777799900869412865958675231962362066115348760296974358877146815234349931219468216777587554310506515516283327804500006731731997067565605328963623542526973647752231324587632720091869816613765836324553787332540001647307998048307103631958206467310121115302177141643554816574883791527516392100195189283126898498258308547966990848246496708701793741361908745071751166730353232380553555433725360215145251363403382173033968940848387027119823827475175974260257947390743452322599315853369786377138649206141526169544786080697506125415488540817277043149743667643017880896663728208430509627994196862292559633570447576319677660585095795314216398088561392569047327533207505479236602993373257807383682888435825913023729955083898716695990268687040337655806532208199413684681791131773316648213782537798473305697937835275253380549522116988371281616775424406412337952382179783678287760424782547816274427634589947514782554420371936203327809763472589571517091502738713328562935999558725152142864221567455284243178773169331886936213933315627343023823271824353743107649295386447063708833622009463561341842777914704578429782257558577409723693665786431570258150835046650969657368701279934531534523448458734391453117106374242051821249853490961398510469772968770867878833682397794156492602938053068500157720547505993919808265257054956440053160366818899659344512979156311821875763132184247064964063853229306306266770600749644558633546532274827061923362761248134119322329999983507987851471312250725790310808150772280297170995449549085356859190691074955961177662209154160552460326781472108388229449897761770459140664627717365385982870349673159984676193342780924871157803898960227837270035322530942999976361968783279570323827221502763888823794891573923065460213910199912676552396365255247156709045679609140993234700817051512152512795596938374708159936427455339825976420082092203857093395142401239317513521302473891344445807379831714086254029266264647758179043190283174943119736439851013607093982130698907088620625057637326493575828829113396541351391982372077717581960640607474964654233539783388024417420557235101101841912371542090981276219656655855668487646288511266759937391021586283680641851770951452068147911933252315881591668778170201977867210134667704601762490192202536152839581040745769843358118654301593619198004100980353625161925975933991851269724638064534933180469650380261501119376040899186098003278004264920543319857599004847145224688805400447876100058789408746680755266779978123718662250082108824719475516504493315241555617571328913835885822789134460840276803243265076932120722148629559811415357969139265197930498546057532639692447949341862588643070501365941844715073285800146538977218802878356637928490137232018475693519665402955194032618521254729671445836208513268632856636417648645704402837291152975931552379940727581625415781152278902290924673353734147815925274017438914179721269379360075143257823768357507132044551076072101753118635036963813528331771834449143870979450824372376247588190383720154976642216231065061120719353257265716924765950978953511421829352795456741923132058966404785509862043424566470639154206040194774683574089844360097760483814850716468712198579059008417387134202042950075861772586693230506984702876880413838421119268785710913483576065574319308210067206672359642136093473496398008118668659960848631851826826438095227264077114031387810905437789647858978714841388094608864675625132867647611877915429682627510027226310060579244089365913276093699542541721972737629409337927476168795872831177862299599737325279172392190217351886228219212640863389137711169529992254362067112151696223968860101021796578629183028341126145526916361797300640356158316587045831064549372386062360325785758833909282217291737516806338242274818657465662511436046168489844020468235107490978815522970115875365815655687348412030277925931209857412745238600441818696695867621535378196045073183435148125585139091154216541971453260149362715770502571752008283477248733635547649142538146325527939687855134398533851029853334675914555572863076681457992792790784892872598321293261442348219272747332837715766230799314389753198551196832258690728173847229483239880583568939816897212643838524688948520371525017928989990016366409507284367603700654114161726051529003529175102274851864180111246495516096084180169554866035765535040242120034902870549095644609107092626627319301529228353315182117907040880180016289796664165240918681372547191426821940498195172143796477312445317585798215601071339585043835005652809188812371029648402395495790515561503163846155402703470343679604645027818730614518976276440075911416701153279087477413622426700590541330880288283448263733787374823722094203067410336021273657420898779022538355146593873760559172277747107997621501413854385955061967072915366673842325176661404669409126018685071446367462560293637491592202322509621554142586125922856052629638360243460188132624872259844638325855757350902713417647918316270954740075123113916154856699536354653590581689621642952295343417863605506815191811117778828905631300929898863210871468898567463121239733648445297911764160213171743549120041670975951997926538468785438669994922523199248883081527118847037791467609070813147547363442140131249573552469434470497077853259773511628649938018441022814139543838269945066613562039037154223061220167283681776630900388545393636391788454207178653715929537625232293146796027825531701269486563985036349260007427193085422005093073153857883950814615052358563397903126408353954908952364084339298069445013587081950143862769372536359132311275388824118255839872598613400795240013663637990736867525787860948021311054406830696999981926362706971322499374964109802436543764641002388862842667479677419510205120192738066262760392233147777896558446594065715603433926496465445311895656880837688870177078840612743394340266120292370215073298941698536130997560930116752150944914867121539056939905804786598489175823575580284797943566080021099309856437085104290943868617130751614710518704846707608393106106935890575912886541374698380050890485227975602994141257305078446909102211678775444322156626058634965060423531970871037967731773111518771820735430304867367336785431053035715620907987844075228615568988636769963877052691662276647431423612740568913241949072457267658080870506014124490662014486310922432772872518670326303065197188688379063499613129607194483301025129459073198645208226897881201468787299952303712328385627049709573627390074373411830750959541298292699817509265487554598284835954435127263463603687494761841607806334520814290154341305902764769929364824281298667421180089562691084400046571447278219659360700001663219029988183367028128334734600364510932514486339746592279650350642787622144835717124087183177251295666480177341947710690294238212990206027363683201963072709384041322521778868677301690230871109801881704129722545154508775269161315023745029510353091455786517300282850164577897789041408440711859014515449676852688908065694010929399310544150682143264822864689249036308917258760185735993148351597206123271081115818868647470309637321332611208115104903316143067898367741981160179345221105036432643611213202209277770828792627070642206138208757510522285356325128969084498536358496515724895402236884007610336158116963742807996316288439493280203212722462664844756844199275532401377009568595158362618383137020728436830541962844308582037412437985130978201774834824861613981160580457763498808640849908936451237651891765778745458646114948983094530794757125990016893142528947789368559951874341629793498261406220735729369304857353739130998473172916782559384816391180687941379493939995891860789912660740685235471589598588219495358485539504663808744347572389596629613479445733621572126646225533351433237072302515360756738952548636173958643261337388921594325477367151906492060522233034631464204185644502963283388081378736324190639174164298001989171149421388251940569542826969087481547432180696895046200472395006873003967696647286710418016382032100678058322870359140940004460564083771512477174193566036653512308282635396941817963901064453210530578755159759024703237288903548314281341638658720447040088290035935342601359071199065811451902454825261229249322368535203958041731626761624552308558603156239057529268374389718875342796780306955897811392801190383840050998323611633320810291311137047021167545287556713321181722774690276719637840452801785096991638293816622342089765082853683710510959549170855508561694086072664502250637164565369109849915018712733491193453684890403794850223460524814898840499505825021717753311579743899440882838624649087787441390023765540957366382303895212785319185151130470269090791971890639036997860445878788229357680894769814689407587085343002872978672197651023972883004561441461532769003025006331051572019057314617359187905720246409153178168927175641559677363822816090131708925850168495473430407248925423409310137445638452012841061768522084178642821697042080378276582489411254300157241555306975521736116603252944930677975669807267974362930342814150559361115525141650598625298176291179972738498958904327561449122440511306858013875709340727722637141492917906630149042205604006262258285568728911130462367152676313695140348676188763332367230468735309591754143405741860251948110964716988312144982356095819867085450423693797245928767705849973175621774369322633708566926405236608708775965704606163668066112888381307081040936508092009701673172629607980009008937997081517248125447525363065324107613073616092087852709506330054731250780760128741425776652466921192401383009284192954897532899912092774674773026256038726823442739658160463452425272827635884642140961524345930358951764655964917258671743527434454274127608427429736242331264850140832907574896413334423438027500138403367535900948613059766736091825626833028216346606579676594811148394684212677703249659556138345462754528982244827944435005464618778621261767927606598835604339444175367153814227682791976430886143179417924174925450931280233227104312381088840549179489349718363220951328218157666073785052623746329859052807025444278098767364348475160130705271961065329930390780281899647041763038491591436035746017360713878942862633091635608101326160389262184412219514577897389321183440620364452466707250043347501272438203360800063490914567921086934274669551431748325642251620256813067510809067846893632593447969941026108107489736980359436739171952077445113540434589475606422756571616657010268945868432903212935461195942899730479263986390035676542804545748220555702605671935358950837899159907981104909027053093751655366653395555173106446874525914369659023439882635019075392584581029054693923279465654638719422551229401473571627921800175739477740906355547778220241989566801657412975782395909466495526688807262042057390869742948817599379066902825115473382728518382253176785724126580148688519167141069707141347089716457105005343767130670192128863169908441357390103697997233461599803111657038919891577930384039742203701944288225477043237820255076821082693483006984798648829372536441866937659794757173073679968141706783311793368006437063240114746322273457132802765688786631702964158014314568098685059266217214328263861627238024578496512647829120263254757406450482824617416770026999706569846754262708637633276190132395790815926225524798505398693047555358891291221031584044014141572307684838027226002256776502913471489599651814252078430029740767195648995033989909169770491102587290412603570928140590585267353920335192999050370623862281370284077938991226297489575337095136706682647521228684626711426007701727823402516204311567217969408773362739119363644242165434288444921736512551172428371040774789832098186038197359025738199213044822990078542475790875505646888592031441166866069533692851402924061650375785842148670749705894952402817862082762078506902942196346623558762234821052585203690716360133505591071362903239910968782163157822823969106425555879809011421297112755645952267095226766415526358747414280257863807704343757997864923024658800670571137775756656168145265851652710448578993678238188253850259310041095912152741060512513132386946191733810037253267062927136003633173151787814927820140647874269144379427523927244013500393159960579259784654473813534582702367816076568524759467420463442158864709588191575809233061075671136373676860046766401726358477467280454201863354000764537378035273709078233219561434792293064464866805601575789138732577597003680553496025939790916301935393777023264283714327107420941459527453741907352026627582816718625097876784849244958928844088690186023388944131614321072092419940158439037575191045441075875007772629844868631618676081535115576391333205085030178571722303390832152080992161431682442087893644860844581579637697403384415704568972116247238594956276889641444703811148789347254135417721329165630082115549266310665688699558389752567203308547978957373128576922048572491686988685765523748453112462718437018267540226534473917298415242910585164393150561044995257473677440263008533450510601591265251328952924481072598302385662077601690013789643315060525343243584915077983410697519811951442301075330938497423880619026150939486908271115315324916956866183027634354462367090425763656668912590273567945290311216193236905761604911528826256160578557612817088536873930112418088460604674298416276126653670730281981164655173196384875510593910408617817193220102636445381191962189709868563868115645232905348144189036469919807406642471675047107172779688032265537533489927533802881992087524186470185804259741031972763153910226476235785720361222069343799770914753377275116706610058920085035581424908901843986951062267783126613861121578471170541536973354236303370329699300165501961024073731137392762628546432664451695119816252376409494983084963727233523468328003841166944408018703066230329718376279324768900925497422085212824001750202948579094783763346988350187766983627688757958568636061582289344544323352786778266021111062973084688424708872118525088842210331141184678444149224993432329955430479418271114408327647294888438410925313158927203855426933456770513225156919208741853730274827065511220444424560160014839686124540123382530469278727819428466980278933437072713275272451169769433651680364825404266166366935073360919979709486109203099848276359591841965140610161456355199784668607059621921511078356447625724408247869281697735549413829013455196230476848029380146405114904009362907662820328095125001324415791371625235392768541880375276119733349882552142769721163263884458952991952030707700193504738250137828915549859386195236150860441972893448510869122203541861432705785578435293960559546652623089916219744912573479543358111055855588510173943334887465061216172861747293044415040566761644315110801791031280806307696290601275177539003649712304240312863971099853797359726041095426641270819389445079355318601794520284951107159841742894313012046318943816691443050386539888754049961964034011064208363088380438855649084176638893112569575229780984541660874201007782434433551565916920172984178953269850760375645630630611076214496266063417288993085788569033528467407287483377565276749373208981491160911905456320873994958192475390456731913625456446760427082459804490319869698773078971049571999719917018257152422919720969004901009348624394004012890167183085124077181351235425216649741899916969457463216456842559066735414299384355173506527996997129681386478854461563727149016756190765996614940420691354203653425467819256152565826313892018162753756659070577080360322988878085300964691208578316725706716073034353789400801585116691000272203634748946085719363850174701641862905295949945155036083705984885692281530715968879658922480314353065798653020246142996497130928797609639527644298946161836010292051762928852538657787940627381945550206051135293896942333768971404665680005943777296459555651080747872339109441882816106464523271920605558765277267740003842437069756465895456243123040893372491571498295339876466660504710483221450405666699686512126099971403373275069626346003280548283220900174956713675405680690679977640903530926101999202446640599590052154583793443948360668513258435902737227422761213941777454426676484435545442028005704324082925724986351061961523112426295535279123342954990448412074726645578934186240633369616467404310626549239178738495923694415410916483350083634737277040544660606229585695518057008812682507378145324472805760038909874438127650992329029058080523122809581389284339210476762182821529323610461814347923879118422210161096232300114338502885356301619287973508003191841829199557935436225346986805553277716008172075424485537729811913645592802962776348090026916033336632671808629255709235746746428097535767571314273660503197929859650088266611724902463336797189037080605981901187770572087782231438653006098484566199154172142123970513938833174184403030744227089064511403330189089016699382842135398024971538168093044869560490453747016453400600170104273263033956445848291050477126999071599658406415123318821856420111775695442170070968448664457972007972931985693876563145469429890243063067517700479684321978106702713860802798758580851633168844618066479187484287548853625265915854148206812059346563080161373160001135065676672063245863531914283150472556098220349092032788143409772398054191913629344052689501494366633785313907794342833175586530314790079483479756026989416719263793652216085864448668385986933074647303948697389107576753118652334167753942602458946937805120580771507337499444626705129146180494185874093296467801146623763407275556942129850041774904666455961594934378005933069277300112807069665007127295101840686659197782941415225956510999632675479369977892706049843402370768386360838113864657251371177364323882699491176320633990845358729485435431083158610301813757709137463204287840756701435041722549741038409968590392321899599229590247512224187977359638733168011044678273199394746712503005337283277456638755377195925190789199641687130588239056200785031866507179727643419128015989229527718287439209842827212221282663277174677166685379595946146248273590105002029955560659595684469728090323653723840738761427364624021623897752898731849960442194684465713124476409107917382552652759576130108682501011191442506318865178667537384670558432506117039588148092744675691159452965666532680427996823040231367367939292346339815213689095125182148689165308403226264824383476224805457891614226086415111984887793873771293364835187914485854851051278530515391235128884944745494059375550823888481012673542295727093339003034323891555202794397907898637415302661160327462354286613420101089594733058082691326528232132110319166463996093912229507097102672393595416460863920441294838924164755243044360653814138985947343227443808732454973609270018763209748432324964557478739629618018619935869997448823279514108626380873710781652531403236769649172028536326333215620665593804883174424725026689949936608249586121217781872643207996917194304005693842195226858520494733525643384639740892242756392151239852771873625252414860368465791719263866988603270244342687135210861094093889229987986704823949454521253971670832570046514309521332318336906776230196825910802408152955777077807841153612871104102421865195166548180198998477585763524334666397443979823650886454844707062262617702883916472006530122199139373929557086285701171102268955609007214971533044784776467087220254051239321995980737650114491310120505878149529799505644265382531712952423307336979969711018504402236253936138001990933265619090674717362237338413584716990033128544596273643090846479602215515147496310499378804016258327784639661793805334913172350194314811530856678413008083037283835298591475426713254666009960115470998615561348410444162760460165747248563872207813189762078831950208893485317820895373772346746444548722604153329504108641307979794083127527858806985757182680003676128383024798516509188899276705882527054639377340734473799608239275321397434465745169144178368701779580761319865124931196546330057139189653185892250125044635177544190247885945683084278574013914371818605300567524398781137577916885218338565823150358304662317536699424034933052768494816036491118795799533001241359697336379721526748795936546140329496494035816931043824626047438728169019282111876980232676063772747356480801885609842746486627860392979989044134454682797255847521176975027090456767446415534125810498434502366225252726486284651326454605949797857098901764604561879043861907629116600600665675651881874267346108520643889918748363517507299107180045062896108987475550858693381617962887473182288621055090392009055288154178742193454628182858258886395996609195622685767025226664171200703787919544386958209850501268363063883152332293237160266688479004520037076318020638968189182155816494246560471802435413317919766218394512909267395402660459927061637070641841834517054134224811309431955451778708403901874491444173626037793787910517121001855447229331439642120076209874516663415349556112408131428693279525781112075745502193337421328299398938591350319540958213276377417678264135947115625874323277640496643423800202898365805602117057417386936571741567986014022804645952096232187706279580798486690081345153059237612497747987929666517454425287242217452680562218848521108434211754034954285950822056128105764304552473034811123806865230785646060520656562054332037339056992911367368213399043947842853716833146445928258745704893376238599982640409096694008772534325303188502549218234892818972009866276671623462643029084611210627609567347526312182030726028718245145882469553451897042687229555436503462570192430821572622776879137648890998619541742847310520760464857831616941470279271400552992847380939884999901106522596185290541649480911130588953998787598985021038780705606702134423299230925244185398702064285379752434613225932172063685502006358693248644055532420093900344171062793086887220125298180251304175845105018002335272052293851657515864241545922339108061012361416832677644861613396596798993401085898646703295718902501177692931844049307212745463403829615601679010367370290584366196791547830020883955567497839204346276467898573434493894929423215091039469740955706951355575493222628870852271708803067539661951800940877108319293552393265789670429252362922461847474388238357592603563229243266697948483592321067389876181082926507043030446434142223615933108968008489262541656509813524110653380971623870279394537340399796134247762128025514414976733469371476442873962076090955001631110963071194275731673162156650485844116473279886105228058910033622004827060771977882992760349715906613633721113499461836775758196681001101707284375460349638255902597063141838518482740855293344264248567544946516241655080492176965585772958576245843450101590646836576045253485816767240677641290113548925577879281696661461236604315226265752237321977456243590216138057258759014410901797247797453962862208303970315362695613864382120154110011805181267777890702460458006640818481672509022519756937615289945152264920189533748937261125872285757202149082964774546696451623266997335286333709085385606752877132381062847599536467422040036446359409661555879526851589827855577560807518124283150064056816385572965274316150251178864027120644084316225233536777134087473623720432325270023946264368476259979748055648970056113340057076654203064064043643152846494358997271792467899576654430314581233809428544794833633157961258324341520404367440512222345799354324581129023365179422285687707695622314913618115648929107713206617748454505719903757952034498799220628196689091855541437955828870401009452906809722220182194012347501323967366510045455621122311306536162138877266598959385759783340362019138871013403940225182957121550294653192207812781565313852690135176207418231501714655347177534705066929297522471898098830792297706041686887183578700841736694283276979257544646709453412653142747763348196646185547340364143996659636305136451366982582658091885619261061799919040562868198995622760903518947240657490746661230866984662170908406989856845973116445978097281260261628965007404198818599165586928074768353472440205958315700052389833888911482150211879543560861808758588286851286203598083277899297227899436429639110087578691474126652299090255293782763524223916303112344494114640113706619260036416384034159130101340886098415389787992061617806566538575753313408270449392254829260297646092535082785473276566584808226057547436015799582168990594083215332321197417761169021238222036085081225167838492347365398589128493210408594006905948495391257476712035846572337353865469111672571332489140252239098137816681922230267717039363088856126089959978105863626038802678398817172460221616266161091277918497580394513598601493888735060852852738425888560075197140872312819715186572636553983655103762825125448121996247480242690681443008407541655566324843211404960140576637431961864468100471033716046493704045367306933865243004605228919672874420329882005532442981408612322652445010781607633949585620287472636012305134199306458457108931443504418755592406660772266627525305598883219488348287243573628399576824959945945112214433016563058710686195165076664500779818291208872355449464009210454798200041519685461011674161784709791219518506188126873898291675111411058683392528175473717102105543899205918156306023001718581633935639292666192070924779018958443428173751857351378192409441190659186995882743546531055807391313856976049253520624123187527509484305383614200792044043929459509303064224137328358339359492765065555834778524913720947500178538353407974388923038974329101242549598615225355258750140429102190600939892342789654075085562922201631440973909904565878306324804239717676505286501088325268900899259579415834551758172270952551748533625108982322706519039732589676699657528848184462900812627590223319219101228840431899072392458291044685348296335467759039530156248282892093302259439580441462933718884823964980559670500395643547672489370318932016309043960753918534303444105956709184166589846814718619472420347120212032425132881903424970476403787100906661418401150080480682249125644399370983424932463950455975958333615847370971115641236436145970951449791898412320853003984552464470266482931621493405517120403575590372044233245028599631593633710163386508378723557083587179544964952126417195811735589172649141453147407014990639120345093691557070948420465939589225816136704042554777246451114354439905923141853660797593498116928368362988470340712056938428491041159192208560894321094636320127332630988938307483445464501268473914515222135190567055403325826607928078329874648422810639975135384220426936428156591733324697013370387490668844513468144309922741690029489935005183634480450827305746173618974276681099303643508171264718073263307614799683058974085568206315024732221885844127771253876374604569556745842544414766995754729886194951278183029429494329242167014439813249954219024489881360711632903480784301942163082049365241571059434114383731740726045788505897370186143859196334804869952767648784148793136896776742521948694534597778403033087911449808715565269553355778916094067730186070924231274132876970020050432179037713766823403312276713757362405420530415304391420480611931653574195254903118527918087718604152485114194055469211183858850400682448871693975583216118350845447011798336763483588816681127620921236210799520866391141720014298357903275167050422080524214549208111239538109127847768362308544435854970709047157057504854999817003113545764276676511389336506535274962371778285910680059491420957139552265315078433038890070286390046484183335001292372049526185172153505425656205715146250743614122096713239784253641079683430868714721323286019299749628766147168356512491453385413053132912118089894168560913783012035607186841562403124905484069477114921246162044155323388527547454841456325072447395261000231866792513607690421029385105213883257424461700216530162730790238582880588191697888251954467621894311396508191198767748988754219889911122464245288764703672449469375718353638178551933641718283602072656446752365766179422748235711240523256115117187361807940412929927866583194470594934270561390432169166643549699502745815508127362833375088229226782524796933835646225075224655036437110445678569922206755455966367838964770666384307153447700468699334579277763406946211574288026619860666796299962304879577535900808833670049024090244874177384754106919209057905606448150173779145427092090356671126958237530595383268189326912945258590637873752500024222169211391661800712407774826684204551321551467259252367726867820973079221865083209924308648692052673964489527471224011903338290685405041403394304271699743733091066562307000257851676723407342057692596723909962525008434085367192952750837634746832865609943572721025381168283899121158501027292232146647068094570909838695897279578073540136773879911667004539599956710688964412333724060246951580113463677659449454884483616817379332168366706134644502902563035471663627197532593016212412211469579983825670550728075805625619263241836064332856946321577165019221487302402319698048373626209299205637928305399243877651146699291903994608201147312993562389014320103542631674066970801652204602499251694259074362839577851341597588778061914812411743577782850173947454087241618093651092760929689115334050249703091286804057438666673548980889777048828008167265490962270955058575384563977160372587370432857580189607777607037088816366448985277150416100042707060587748662322641997240426028886925068415507015473726592087977880712536726973259919240874274045717085642784235241916194252706813184497862928523121661560958427200607077471023903714280432587253085643899475138795980970575132728878757347599105752678584028117204434265405030715399685351563929443526859770338706124262144756375365919413482321328294163618550435755257204776101480450885990614343184243461385359509859844832741336720943915770284046165931166572509586956779562479366047013577053404828562617342932936311201671847698799452665246893844673798591977161188555038364454967828900616203019294494225853785088913318056146122097067077407432849233446418009933828532861252232594147529195081968202759960880386333478025456596673754210161019445064190216758974140242726951956306882301204495157743558053264026682215942205982649609073410651372526155054187548805819346108814299244323463526148418154923657453202389532330587467783095020989896757933061359223916176412909587328211773357305532157559411901815803956949448107017873061923772203631385493780386258650811993813811102855273500426870763219122294477692959491184717551626905256075661520164956921863960916728478695067190073328555073572786266462100014922164591787520402209618404869705403723285741473935299241303667775460713884748988231421713937944640326912556438348979125606326688748465707489984864204629549021963627261454534694216347837306484673098241114472907737629923591219234478396518045922961068977511106854679576775289286625979653659401151895369893297539364889564680919438182148249965723064791814402200920520589387499962394576422790023719984728413725099418786944071603953665193934564478299801330704776253527411298047413069991973783467447555630424716312621663713515093889657439593153507441673807823254569902675497165334659198330476253119710575264343301773597577875946751353976633063847055152023334618512653726884120999454403633722333493117045773912414025639633220268082737528329924148405591055178042227692388002085891493952215801814254768266174520335319282122440942314726808290805824936852533017586853760990196554822593373077464978192873737217398942967374460771980780360653777661992301046636321853488032144998169523037252268006495890075200781173261333484402616559289649061109994008022721894829823393284240266572082542287621354444595098205208415987294245344657705656005091195566950905559261215918780743361190422141196256688586346859363675184748457544240611456206144435977960878610583637016854182323708116596673329026966584552498037163930340816489865599993833353637366313114382357681863955812197382216725121550865785353913541356991757841756084054541168660397425094159691293331372941978538368051587426281657749328524710948597061379418496565728352147842310503713700565545429282985565602931363464827678314168610039594465061891988281770385018033568111937822391547277337690708944327597510800682144689699075403550850472017977823462484664544502214567390798344014561353181577310661950421220953807628032105655795606899254239793298363225284446895130762432731621606769625619997592325637721042641635466030481685406148485953267044697756355232622096141147458361244425150276687959706738652150291246704483786749345355194667284265638480605083218650448441974451476343656938843444520841027825686032147093319572371829120108969158064255610950923227663603318765383541528992506967336404246120686070787288566910105188170536138793427048461382581700148245526383145388806149382404857957366148358336403373239050750858382781948965930312847976942934996855543169285187661788835414939057408047712937706677756620544746105309977685966597288238880047375784283183253570556325017672720563320609034049993381471762804786613889582938806858761872210671708589763199698391770755749523311562941209484505982112216597577724174809671219791211964411419111077162999960818397438555558697660540885092856062723660045080102684956938760499718037755661769482603182503574465225195490330325615683767680427430022668895345540800048689392500679181881988299410165583112976396897770714749021238498621589738572866568783856155448726653300648158901900395975724127839417696778802546016341179577582252785982341886034704712265187829306688087913570266217143017362388198740669328476737381551448067071576995811064548904261706840281186157160558341593384080150975499371696798026976048260044738673531849765448786909187242337049823175512311024313129596132517106566473808320692464857948304004554046106655875306065013527609511316747231055598953945650853583879907285062287661057901000752472327999175849767847571225129271580611025842663796120239403920223852169789887681385729974593868194989792782323704042267595027126034784701320626872898176872472285416863420587913989363447656972658350027261948118410832266277228907832701786005279606635708997467629814661053032133183315160165826402608999137450795375637402211144637349902532202822107598457385678066464164877455605531321371712786473613108980425866460791191439807471774380140001714898788116286969449143548034184729481408680423720039177728317168210536465613099048667609511158447411359189946030038339813931959439988370854642706987034671455222137262118506612550359849211017386025622052201883511960325425509051476466238102886043009953722068637518251120574224834170409567782819524204277756814641760961385688768118642341565979098126988928937540077672673879485615676117626821203733466667968978256765298751656417766665388832026218290369146303192170304440095073511705856871393749607432449218899964886299589980541994865929521277852296070978794974166950448722490872494416700107943532972536785609184043166442763448188788436154318941790198952311415969685474934988716137430795385341886458465238837475026876673806873962209199593053249261877333713015164491446877679816134590072981721264716437837730638968883527663478690501928063306730682105774734506346131733471466159884066249213532516392068472492394904939847583173654165610794470243736876213755610073775075184641271682383105461047144950803127849471146800314295958084611515684899792921947580966648643257658686869023801261858155410192241813628879032649393841000761805290154855195485150378129857348243020249816446650252671394194043358161247732083640063016313500984440653608847506448439313420173014261980202089026489228139892149644632780235476536086724637168192588710036243530830031070540479222290194835479495255842398530620232010190718795060477590075713830066539931804809182495518373804664985049196199812313846320180906200137540367225504482831600854021063785584441936975856806135725557102237169423882182814032520694421292404771494381154268337839216098411322092417145361404664355621742112041011042841796841189714388772193101566743945386237165029097311039894758860613951787036351688877283458211145333117215732536242922434401434648679954732734082690484681149023849528298674403655844694743116002558554624729285934026984738061372779189923212312319573625020093087586727392217652277660801248336661832381213225490987353921754850581311229767828936404177833257482085194800488728012131602525707923235330330582151965462112338500019502178983753592262637219912920914274049613588646133336772386270230039951740235117013448465388792123411568374713273083844982946545024670575289998375703043526213059769876730503596827743912656858716949943930709871338428589420323922910547061702610027653679610439172666128582682779354313721548946186569551290954553678941155187099997967144646034772766825318055093660673572571494946479612925328619712504413174276720328632873134813208401947379410972141403065116410939371146207706902375835353173241595065793812985526334711329994584928577295758831582182937244322606743655937567676014861736643746567701545302152765087767011318321503722300811231189806234239131098266924374199817124954517106665230773646119507148831821941640570995091338944180532956344229696096195984945818699858681927091938231980593269665091809798948838618917777948519089542226884293262198606430360492435498177238168534357038135791202368457017050070132083266803554676048473261868858312180105889294810120273984563202964714177103644715206718440983274266617321865316078633083233559895743355492685419805308555354242482022624387564196808381144749904166645761726125187431484046649879278772301955619740211481293492094066001051765374830088283552513586225174746321322754936735947871473594988603016509693388304385468438886456141180702850931399193260495416664553207166091160387848159601094215784159649923742590084844697435937030644366727376904625347745582293988496986336091350925620355048384238488080658114346528909348175769327919106722015306859312418798178205145764160426957113369123272853209161513608272794354386048376631059590494166174239234339373064918167037970073141164628864511354660929383553174512879549207173094135998651006697730655740434312002871192397812683265229293453803939791208422342355780522739741224084335547684979030181505869021145619542923341638262319525433638897860124940218294991915045515918765777308755264506985987067169196804303602944085671006411820711925758333231736374941923624948686022877212617094079208435787031259638139637936948672969947336199723659006350939065167044153236934562514179199317517428296347690583019018605766661223357539605776920032027988695095576180221495660734554551525076584627252055354663134465080805402980251686004009673870523383342552775608207631189868075821534557127704662705261302616805216564119292923674263219156023208340365864208689576075129888189700843605761072771646484699537236827492060813502008704907695286565484384895180093411006663365781166907844230803028503521190901794512998138406838347549978199954660525189033933498901660640895102407957614571737632909552978352038398592316634283930687940692816846509669824634245363824771908339322235613443016906761485334590925667791822359020826678615242021741826098471771740019765850446555021341872972839904265360701059460813110392541571171055054542142459042891256003994678091789145946395255058251318095684609826463494992727596215559708582984430586280354822473049971738037213936718068770402906066087010264728616065383767821319163026019259754089784329520977931670234216416718721055540569785128780664996723616024755107845501704627659733174015180592081408832347410559635953659596126918665605003093662285272881737236007855720197883254662730862334246653240871547154381156090734621002998104646729075694464958308656184980198553924636247880238040946084995440308144408106443274961459815729846315524591809087326794646446163729336520722122329753196794090526722505698474641555984364696273122008567392388170827481753207524644018303471260780586360330190027220158229582063418020635089106982442100315761750536918995899920584198788086114250811703458939800325928247447897520216758375619577325545309195992316748110601270546106857443086752791322778147279803694551286949527226710985587713116814741309532163027109381813510226740883827492720537467747104610775301438417823465731416194196558961469528893113701802654295627995110478325641805494188614412869560747457092288828805402402769400849485129328777269657699492295679425070125926921632708683872967316053787775793061022152869560232876344771414399887254952543493959310141271418712522237102826533006366536998655439865419396148438711790974378191107956525823117780582869160206366772279678126936365009023138063719628484860287427254805309276059750961292983615862094099315249255190613741218807828006487830595389858808733602680789637213568028675481018341612546569424909777768805284057422491238906604440592788946679563036662418787508131261975162954421993800236574037387648729537963874152805484784947604549245779380425664353578022041875291015814386409488696254683442020206695485581152070981583013373314970484255790883451979974028756281786159343929888518331787203699405927682053789537356866388353950171890596565500747950122580701488847464589661707079072990873379906107333005434930596948208921024811037655384136621226277779625831170980670420265673750941433928977323664770802287996676360044861952929245982968541386239484874489704440980278016118848423828675804651890409162468969036199503428532529828565587732900373423129939705694066788790542596440487998618061600201621868728797909882740169266675099920500211918548546995864173619686506884488928660554349225930838511740998487605247520870708242836075168353699725469198742686988761890541641431759964426057351570973061159477477078775924077480833538235956537366606138338947885638954490082049743726553805539312049862101518840958203683129073363029617536070322112405094629183191038325222480329452339357903458250906057728860081275641711860479690378121634854694941154345224823718343673906176427928496782482067926394191019036542834964096682452867521855554788829692587047434500105324119117731115310320818095220011349972187219615174326052438742049110325693349308552528374788547088894762042154717681726655742348745558934184297902049980207967721343455245239884112642870423300166081244270695410843232147874134355854060318374011595096874720817223125652944668098805200290055805154699535716161790676100092753585021166120466108783431394380349091259705075535323321119915422033218741436746399608059868875068401474652057552966029754108887269609483489458261665748256244744806710768220685496941019954795859547444908366121857422384337155024562614823818237673624191225387460301584193175634300711509509218899883804073536703002466269541397654190042974009064257196687477704990188077451587092995170560414900392376480560680187705548035916693911984650188701230198153365355110485922216990007316322090159426804474832652916654433872537711935345940968105590980230564307443653691727042252307527206240253043350053319300462638140600905717636682805758126891804719723606825413583989040373355218187157117846866460854396030313293485636768566209291614634924060472434078342529359297077291504187208131780842316681000368172901789097911258639151518412818413814415427149414524297695688485264907495929201450417896369440559837391568089820327261382189626270207378918700549171177930843391802828458262319867021865746467346538507192138040496424309877237702387175518317899637480697314577641562370061899154338971660019056837515436082126737114953692619544483720080224061609533255677623720444968700477831115639914936552764709222661239890454781601239938283462435802018603473596597164317090586124240202047069288709958471196312941286250022386375630205215988984404791037047174116541363863964343768137286495978264258878412197959834377338859119658489847071442984827655430078381526779178891427406171681199766651613367885212245850132633145310971492875093266043440002530440911448130140131368898192796464726586452338134682663450889007167191005266321197367223724263071195355264504461910866635641131711910147634125638850778240311239110275104941133134909598381445290466115237021952317995647607095243502963549902346443141379255020449399403869816300158227944108605773139085092522967331706668473774987072812779538138803465004905944051883353451605044541143770029574633019634486371046466957128933610240986737612710748002511285470324682963227778098235778869015331595479655463161410605663842128758515307944747493843708258201014006788803000905746566795331621792502482285635060973652261175700281329530849829651664501354122520664910904340482124356880534088792039765911900765745091469070809165380693742148568072281528391837182603794338995743919888838508863464175861209051976054828385717529101869602217330880014289606908276980748233821908111564308263385928094869980071137522648236627610639853346305657767927308208998475969253321672825540484997224459333902669947737922131212526966117638784219258277592643995713002852981327786727752951386162962230924705758459214362306039694477805097858843816660494198626042895248482014574713127385127758476730504826854806599406616265584640206112734369429055338499979804359965593010982099410649014853458833978526696521113864502447394362956772010100545967307296503031344029193277107975699081441805801992962763486237079295555831843654954884159326454510411621847587175572201804706275736034524629683632685300654108361170249983377231586485098907877819947895423093955107584619742673072916216168712979104995321183062027923514028834659487710121845882967544477862232204130056014394441073937924597698910383118781985009603492433138623236110348558448527184888928334901281352440792372046105646937919098285122803185165208001835267791462635064203246229321113353338374796290409561962852888977574767235406190701881881845996160389926578498680505412815976151880031516423600589012555251292179892204099867486682382766662683489557645167307521949234107899024934491876925831065288103977353216209272487766550042659956511317095195750318994794235418345124712874456949473812162249984285925805869687909586343906765406938785226664755274248745194179917461955334552713821428856258239224129157534360776361849640126642131959850742778070648346682900300483399145908328643479495928360544689605404355357933449092230191474296692816520362786565575383277884540588938017902538323608427885534709054368840177520409585411942585873762042419589893825999461723883832721974598993870516334299482990494260589596584332847715769689753804420714104355528518162703780573947507439245510684701802945434665681367515805222728077872166481599326901277515789946361062470403667706591946933000496546100092498361836250448883765486368487199576249337854928824607626942646885536315633975285954381854939292409017984135738172535606094311782445742569579991627970566533240697241047714330740950884037456668525198379892681651040683585505145147393625847428806913708153931256639755900052661124815347721064877892493552430593578179652580323445030914526636476371487972145475916354097144635174379050272892853822276908143048017202213401824224489966421219575212518548749246636656090829021057803881534515578614869710292210298160344329275680355304473090104263376932576298785936327450578634534483142092173248579738501969990421373411328949187605188688652986581817439245907049338955395765255391092161406885033484815462737578874590611935132781924096729908694771079464691927963458203696410038914240512297238952206563986781760788135247499276695564388731661260474519989230888107651681736390342430907972908139153700264164850273350860060513515424024997915475406516066387313995910411140880562951402745948418091176471732021882131880876738532067956469721472692750937719447210500334324728440361138940130399412093780879265097263665895122395019768779254086827444152242610804232413428253879759601919938763992897358986379339100850519095527036815498646863637236217746957175982261274294517611384833325092586269051533969810395565129616031939959222552268705440017660239446506679561316140946434368345298914636429543694918665924755088698562929118381200198065573534250537435415380137691710330373107180069488267454212238424822147330410363863047850793406885200664101152332725480881253778198272274292144000493660397264586571239161013053041407044257168391786772758725166219703815601175784436493412724851655444953891682442118771745372487771183830733768334610516787723244959526218192316574988162164661352952622810192537032199813428108801982469654193662317757837705315691464104954850698534832544606898304506106515641286568407690661488838152934205337114698766253838426737453023641758822748092602248127819797526162581012452273615804857000735797107135498592680875558607555816206552843773182172356799444918981625814068016270280885234664354085521751504906177215519737780619981343838578168052755642226496147731154542573264705862594401274018479441188093124455292291819633046644874684260924532466099066704106153062467039841054873503362780937757930497865373724101585034978618250775362100079825361254807455886383134801602700916873220654832135949652570692200850857195346805699202691606867826766782148165732844213932044933362412538834361354951674439737176983200282587145184671760988467489264850821297924970511820902954249786309774806283518657747890026667553982276004094812882979710895041513479722942941404280274522407453125460240094400173527037259314247244760679988178333799375355375266976491940773763647193053004322304366743439210326392915341254833760820363308601939284998105790001716203293311605034010643940076292485014223012905413326307086280245676858181146139255640214298861586223672483830564314960675056916058444019086845360073688134877779531049884743751014839208002492825396324336081422171687777143755202705081527051194122458374929404168475676322633412236291118244968131763818500722793253905476870462197080123006718923762299776654815930132929370844383192634038952772181470926503023789584742352402248769904005689923932465229302535538333731540614930069348787174075114505844163407826815261074616055220189978043558168461533274545464561429728025851292951581801081445471797417060695982342040245125603730645854614278135587048236865869334146267020562563657889976010221785947511083881003952487109762736568663476102102327050233976270741528254966785731001424805074355065799056372307129754548033723220758923477950494364447613191786167509056333071007355987241134987263733232065396627420104920780472643511083149907822681979066277812130928975796589620269658965154521143674631743698769019808774056862407555847522224916554763788236050864791447111393694865451359544492162378221155353858700880429496285354274691264584883204164360404752849713615266284844540999219429590789782728663644189394598543373791142729876908970811051095507215400447888280952524799586126990922820632828759146051463049536152937626371521962322530875622310226990818700637375284451982983168581040910351242851518288036567227964655362771651203595729672232116931450378146322796198904325187452677737571307231250971301693771326663166930026164323120547691972000843893727045421295495316236059924651348841416783854627806774954524842455831191665431756998970216276424527229506285621985003421550451776275273777420330787723423204798760125068916462603151555852997425190193983929811831642719359246146716852746119375514525988825824250561262440346113919866660913706303522067554722919614488361420657609986727035856728100068763107752605765214169616297990109456703227311240535149358018265756159005706457310989953164915926562511644755003463152931823872942276482986992111455886762430700275627965181794798743814097840946842160114009134351797947642334895342087962903436026016149949326382115514961237549478127946128430844295466284401082339500783087781602568919191315814266983258345394115500692574361588950558939906034551856149483445878162997268197293303017688831653052429562059231328865234339203284753982213277422589450941114065531229637319215392463399518290119741713112998903225332054412996573667362392220294445419206168771661958789062991287575463075214396506707888666849701566582836253697985471639087898486527368111213221977157279192738109760812597966880081125398759006157085851652646893905602854163159276389175337929707890646099657194369552299767806366756159605761538394321682742251159972681332437596510999948982540771873592559947096658373379388639083714443991693431862479274870375994972746581498549705478847807966207316323663673036301165269792923739591514409111275645649768705559938004563409779172836406113633511846325247645193632655579923375810837121526654826248480117510468580281637285280087170383336343727535101105444911848694939206807617885310359448975384162239395286045565249254589535124609189972050890087069606371651294422464929944396986126662293498035424354085259164761687644514466497422611690472851426568004405936573934789162197764886759587476546572299410388207464864778833662251964828578610653611585875753519856969050682442314288237188739656173493891694866282274980388523546583975932225365576910973057816754339431129067428374182576869229701207953556847035814829342345585204960741776350252024550654414879727537045787359647248303571757703637775497595550674864612555492460210771634859245311432028089002695171651959662323918707513958831096894820408860599512246416825361527378152564462047592311359742515988805632931739517390871485690700980365494515826132210444637878859526518515156205327792044439049529212207127823674894768392718084018887715114284396038134042319085499944792410674994821016634232062180901932051673661610105055049975537884697322091359207717073157604760484758316621776152676505866979730660287219781761449632377858200721914080660090167604596347821752812729672892938954763870134377499154790798492951372283764752411636775060588302860879693372492300620139749135716146148877205249756456908029488429926668955513183419027357088386511855899345403527069960794255773237506466062802607971215125968673517330962593985519971210925033729839759108362924940165425662838222760404620333500833140291255139475596823652096842016740439294307672788705378062545418390226327559907014750842634256100130492869953484803414863021910549146566381286495057897882424329078589523948224035046629466465047579113838497402238085369585636768012233974238079554044746138474704675815495023930906292394454539742452734877105799489303362054741033388066661954865434662263709665170996262828695746113379946090444436535652407322444316370682631670535376091640880255727201625464178288328880707218308976713229117060819939887423311173434478059771811069007495168520252503996076064892704510551843131557448640301842199492258299133526808003070183071226278615645123841109934312112184547423880870076809581860214491915087403580474271956000360445839855913493511616494636376646772013554457347048070631144687366602969601543940390877499422737035753947620385171941313566671200854692933365677386364760639506641347368554859395486105846255480947897963451971207819178817763898538997457251301354181389607795380550709835940379067592840650265602587726076536474008733651325670374512937753061270724569112102932647243040610094020440857932909798802270306617275337173640627667043222811063585537149387864200955144725926846597944677096741109473185621766193853419009044960206206507346523158674389785088980172562215216802100347563903685270430957518157070988631095018122118514183736072753192173017579473405647715356022708773657488875307740751958923805821365411931197093889301868261107425625899021473235555091960854172462139103752202536393748001245729838010152087032457814129469830521058483028411750875658768411659580478748869612528612639509749859120285921750905847656049741207846296450204129329392026202918590965097030844776928203143653292801910588667792780429506556199049362144039878007213242465907514445809956467727537019927930622575541808738440918453527392749626101786400518678125560555190901433497548816213590729284750388513880401487806907981652653947127368159064788060068338117149352181279736004504518086363731840125193930671047359767415992143182059787479567508023207362663192837188940616785978312032878581114787647021972340867444508379205755612483459880654505262086837022763627939691890671583777732733779517705538912238428726715213117645115830966314285506288886395338362217425748855773586505098328991252501636227442356074957205870020674965613539835625812425008280118037705128997374636443507131043096645304983494717564442566293151878079752684383678062362166778447025884477044281261718148868648610985201627013592936080228983989000627056666963801517446924465461665051112374243587035686515383336699608330267059559175140362145290623253854710961018498376861258972164012055049170143628015995230354430143098031582434395327587199667075189501466159250032831868393937950458276046260684734960177894117212476793246746947007544788045690477142569136381897436638725738371889877618930984621061289094892677284891825792714913926212089165073042924942934942754131816218582260191447655358373080978069214042869105879543995254810670669008374129565163058545633045421622931529990880551173943250644494757124436144961419467039572526224845735443882758789615914984989720319861461247896917440030660338875226421994034830088857731898044647482402306770341555892972228051614039554714027612280562080084405873296467930168189496215838059395422520698687789436168743531572771762787709925524621684291512864610044259605773600610655108484031376922478142277807246030352989281505928993312444782072111113154670850513885741354419759485219847246375922374391383556653465956742173086626944329029405936988604853097344765811351265770673610531749524620759926847195913991080931435726729181006850559984843195298390696127919459493246891671144566182417009415453588011204174025676816228205406844811896699945080200455100381843259663460038658718313803686179799544314072653323322914908246737046957589055264138173127580839735099339717203757902309425755710867137438736692014516522820170547995660995272690865902946810717000832349378165650182607290516514673004354546090294818767337355142046870283604570190124600699564232858205929273541548060185004571012204992716310075861403539946756264777329001361092218244811767000743043389011120031863825120733565735236584777621901080796284982662952220172964144946006163679473351062912273191909675321454681650564133193468214646988526164749250340931549664726618027107343421619106613397049698885249637166575280310028220956326687517517487048082244581244455819967978124257082871356444850477175570579240184507977753386227657270468067401200404260084270920380143838705620160112903350372886339593402562377182137269701998584258858938656542688388482710234164532121996187183946660576590086478637927494095690090215235094517379873228085025906656761217015959752737607524169521898663423820968499580052200862205196946778567693004104657540844845558245924245861881957713755809219419231295857594144980944662956401560027207509472729046118789536919215017311863183546214810857608606664905746977100981980201084525206024041405850592134808788776848099087793267151318312704856592039478180108052431618192907371288324002380135428681268526278123312363434698138146921560846540026604604924848169712322742135509268807330150726898148854247563844420296854680571619548976831814102683928417876798744477660980780902606309543839368688477076951507023191478011193179534899218169724826843109038186013165850673795437576425793310774095363603737014137705568160740867406245172316541714075422311650195308088445630903328149594024303704159074353917914526923391940691841399124013313332003744579931743130674734338106947393717719711590617323617799723796815589358156256730118355533825549150584053149855955591896880979030537359139211585299004969172997978289033726976245315461662910814729874466311032890406147858517694811029328842558942810532508653635132538184667250294004789702574717740840653867879043124624894042052695687515034673851943079902969778560436934643056893083966514945139953244211929152592971828662384212248807923573131388185678364442614636995449303474124280122825622592463974598956636248905076200932268588682021242872012189308178603595819091898333297098527900256281334127437397078094335128950457300249853040581986202345717995280571590813208573820997880986920246588136083510329833235816349956695663913301100818573589694594557180688802005299186894536486094120798940310276112270892337716556301373277194186090057750774056744606361169699910449318984839247107188847045986180760255649491515842540778337092311429983348999085848427082238477939288110156885453523222121586949626470461093295903832452916746722662911893499651415859196211291457139248183541578276632713454018190352039585975901663464518779738833358364048644233255552159329492936197801965607642397269086923563165834901187211466593667938965816609170568617960663645415788363592101124372645954627676467140849168062242043478497309279520865832940645759635546327619383692721488039700553347748897774053602011357226914639102774601014768105782785589689994212794807089570139746379597218787292892079378048739030408526736134898245780698584777617350128429628808170130911692275828428751983413475791727059336399685382103673253671775649426504233066556781917060220026849353712352571586070439494047242686623870199841442904799980250658702534770314254198785721940170810393622115980120082604891423063783885116102489705567980248699016696231609109333087497059346092183360189654956480332535155208449559342730002465360931796087938079751616532068796056329516731567468628637931913887534543382328068575603942370961872496350807221464576009342427246200673019700914478362415700316749852016798980581160275065664757965351053024216598893252893405810647876706851044826413689859704981686899101943550592572653848230998511245772858682698991833724080593362285201886330909215256099284758136250449614726665388894418796585182748557773137375986453489619861325532897951880650295233590762644687619991435402536139896654804805877480574071059080573951730147331505426352000950374586747149396869448412879471054922702313645935813845033092192857846635714912153141379131489526795371543208492582093494456636205704640085739238388195170214551016937277766590165079618847560044329215230064489605932664733326798265706899691944956185747403250247935155131758942004697335542509841381212221514363069455730398839665372118531665457268599262357747455988189399544100085001384286428942542942009964248002561408582592779307973725383618818645522433971623048228653885691615972388900479788284696682787500496208604855637432221106398159013077722819696539908169540118274592073033992390453254208184416849485357066773473428604912220183586125026390265717882397557425527171832289579339719491060095891300448030226981518557807879105404728129657991184064540436664230247706484794499640022488292524085157989464020400978188053681694765463381179230503775910082653290527597037945573434609033323718296068168395734114690421347312285802855661794075148429571068761414962623124590767828333714814621565801683061296847503658814510639042792417312101715440610529552540929526689216667835173443329387459337117811348879178369893401321004603745300889083983050986179899042687151926027547599874740990252854246781101050371659494237165576626927055297046402706705612074550983398320820178648110674639259375258263351461082846093326183076574377926985032741719816255053353274402053802713474858803518736999279075886530470539195450494916428958926609141648603316849209190667527095778212433909644995188838846055468703605789265213492335692140831197611530684067937743453118549557139789629508398125633281835945627758415479298201582714769705707003305873212636215389263721741259391953725518632336822631576277763755535756790112280463005638729666061211680017773754647821530457647432303381607902167207758404346083525273101879073571157145223836445072965214624255440357603305276554094947090847134133283975176218494995724162718621504831903859385364876065555248368146764704533034911915358688383893168868056495014883953937616336785935254204307641878704333485559011399904365067273009168749279081546084906053265863073488597123942351655088793677956482608118360376593331983821135281327120147226520057976394189083457205818306217172957434629814448532569879559090780659077243261177282070163075655204690886793018170664514948382297125138365939406207021281780642890709651437563114201764324045866713410656698270533933875627677928284984864003275330283154533230377203405182074517135743602472530189374420083259468181991656478474564290717532915930299511920967008023801523423677240895727845241600693341919160280949872049112202806616966629106640999641896011319760912667624924211445488723066314170971195158001190942842642041781394136527950054111052047644566481534846900242454598100662206143272934067145828799436466574530265037258071274891151127987477469495946952897488971960606765452727044442587502306629389320330223130128193552899125964137811362190794889768872979926126352827768213067513573915182635296474207267141390482084147065307984859679013982966225791892019601873289591792229080606463638589857903276252340274634078588184743495958069807680916618337884966431866857191433929842861679578962762040715350592621625530943804267186785912837595298945176268004953530878588293596232186705442344123081397634023364856948767051907918652743459501415789465234651645628413289505060952620675629081024154308779698932554475643872221099893182141875214044490577709416600411161092523539889082986800425771428410434592143197479308166920157973889814151093035180134372260785693741992851200816604986369935792565958104696056073125696737167010173848157284804414637605757490983092767507225137995487470202812740722287388970215830265104739947750736923096784185740434811804477015019700687984200087487856047080465676852735727664718050055168582963093212614452924217607182658577413248634981592838091373847050742293392210655434256411100709512111169063152970492613250268185408696484489805847361732828251869652644431456246748506832943572171676385531077216579745977301324869340932964889065337883290438034413607758999570413737782336580877293993117955851871980230691675983993417722204495398871255262913823587376330465178449484223488265501763938265941284952494592533737915550442256790214025031752742371805515774585650954027492681043802640297001237398750161140097659006004571970745430362233212331788536535910581131404685309178654758711056110516318588619564200985059998424306570363109075676139381403497039137295557219307479446110315491100313709354696091981726441493715187376067473931072834591191519615969604560561478870204590374519309087032832790983693116826281025172857261149415837999108040075854477669932198751798618113436147169802906921274998815352635772361415765067101805554324514067427353865872348455616335710970029917451810662618556266042444165592504874026177732377782603718530860765666731524043074447498517102101473045635193705579319699633888250105220388051762846774167998382793679917475454248824004399820882184141664969792583792010953515734979708754845012414316825646828123500988235040860870707677051344243861876468734714577506274262018338311879302483864065494144604373503324098962551982951042273884933826820932382816016684335069703944852569484139097407658092073413979909047160279517808927593499002395119209039923505616399111138242662122362685838308333208018817299619512548356330100398470157208132681135478349654205528782557816940591938618365229992854090271942535954137789534688587036346309048907738743931644584749088359760756508881340588808900657794305800425020773809987024556299307633792214324950889370225443981515379198568313427598871614422474716010703981306246977217307906956928395645663812523494255524017528930949894558437953738774866422502037833344007616784343421448358620879307086873048100411153784957219343405310083340009607648498781534472715758323864917738478727126946958485446301984303694438474563588184874847391956143255463361426730469123754759337476254386557902096614514068009835399153326683035236693537912006981003174235264090434008226739252365140693349232594744348075303266182550499892042938522034822324705623489060222714573916166012050663612127841574261370410395634832915848429145369740377726058309142823123411044134725099560770200963033860348711132478063529043792935091508861694971963755783637761911417416692965868377817398396079406161857357358651882081906574481803970620038786889094835701693780998722326982722749138525813949557546532716582945958432118291755181084890862767883420501644942276642517364568675679419293995106375927069159902881986588005304759593115943989444572052396707887099146628557616747441734420215501567697849477868141697355491169351112685101968183627266803551514113132985309753761776046504964388437390647277594029933056732213459348689210949600049604195220530074454193792514349923860760671563010157446676455373305836142571819275229649411699196025353940475788008810351144467801351449468980472380945672057105282565855167469853776809525150358747460946133042941538565438414808713954237193493255541434046415997414358681645219579577691079700128973641519173737228438231492611336104194353349224539392957522177053972028249731546453167371859227040006796131497291615824760673991346285398109252725457362782398221013436061379622809762842054662169390467661235704420651371684917546869246322303241247797641180409584494589779459395627511491558407148203372952875389816150071729511027787476904657893845959594730707962812918806032140180897993573527191320793250843596554437692395502110176310613994704672547108427763553901986413868261345898461585588003335929633362201482621834623871550455524603439321941448490853265979805562934826891180110458629533788962654474436970310470876875273763033187172238985704179018123186581182944275684546687022115252396149653753798846534872082612025748825202361341816303717858899265603015622643695565243514841843919954314330407531570067632074341738383656650313474756495879278725306939732292408615052953205633258697778004145355236621936486433104273821638488908952975512515044604803490736254263285014777866681228570181134913283625489151051445700684139920616100227104546612147390300695354847304288975553201028089360966835402781936623515223608931572253258246569129084576172634940400509944447866682647557056768421703493432440311198900338645481749835921556467410728919479388851277448739098733184402141167996861815130637695039990072499061705253209649991242883978595695645790436058702126839040811812305686157762650262770472416336147612560306750568650660713305923312664527114050217046614832237292412492482288061699226714936182167496517428410138392547233888605825959618683253986819702655430694402597220727226835715196637065730080751115742612954322100722864124883481058061260021117216829798115075588598863290358349995882654536535426893704589742194676982462354357283718575468178619257229609221127825380700366100953579164288347590590513729491845127984882679863066325333130991053271430913400365700672556828687054371061729629946582036701678996994657897346890980536861630975097277280061527469054760918848636232668250459883559773784493595297382187934604573580868357935015131980892864319152529372257627517352215672293151684117827644562726580582824167313745619045520654601830935006413760553530044270554946707608748569459773314549749275786379045986057267205177766651129983328423529031132215121681926417464242801789283051304323007692578155521592258596304487776499472635170153996292645946623778835005697453452784560771004874051180475582661936306492992777228528608802652952304984858184722218981524962042957788063188116630316701022656222301534397827060612482671933346758015976206374037010723452555140211551211354005894042079067967517659195067147530920825612427196196783812341977569642391326092698946555715485357443155223468312083199390242964285234170660133370307728884095353316215674870139500178163467234094088604260224860334084995848199697063518703506667601154063206270382403187180061960950300815105217337583416799932034596187966290379162337838879814059203839349811523200478259242011782134462307406271941024290501537717491207988251903989253092029786627508955715476540512743866008929164082635151030343573978566019539417289761241584265663281922304688097944937346694522241035225276039791569497970368098009814568627798479869391868379232587651108720674583798133080871657615450370261696380221840520994123240792091121420161465632708532764661244227242562330329650344969192436503196402856506899543664114292946257246930020743955955776944886285867579843456622205787159756010152082196402943866710407654745935775516705381348505871199259779730214786171970567359839520651731794113912424920579445884555920799672607249918838678120873209300245877532853683877819663513044460000865349429901661089704690170610829669053512956091876913523967434893293897733220559143624155417786474038693846870517730445113143473900005686839201729060279458951464159235088253882150449333553940575950049910696720225090297618036556497059257289513167973837875557292316253676144924586780633528937351586818284185151555888652081297944381120855320942470955420302200486359975523854314831640992907298095613698275967534893742123649964006434238645011922664332331087847524510207184443294078003859973337972937005628804513744197973761573570420651231335101032745092234535599452524857086297763177915394085817233136753811369259593227355617362876955872514836803001424371543335653190579376364053681445333594433365207748070217920002544380581920871865664359614055520485090825387527010192605666195656473996776421754548814589673705937199657745534417876891128988558055321490090357669951811328738183260031409176537037420940025790349407243603227325874044159409021551797500851302520481342100180601575102753606671357892683070907745619438828655186128402130606787432369600651579199892238526149242065059961122675199493515322401702705218034455226091085133129211122352724051827779702502455227027107616883200309665070473306191437313212148574976420645281244353123127799515588573392364364214002155858434637559594439108694789520170636988179964451052096165016358465504942141025239783458883665407129759033933664013208684912087984641962650770873483086074638473098906077754918251574211798285992565259060620676748430002234289366307086553636446292232316159539557007819041468166314221241399100641798254541577864248431106193399204372508724752079289246335715100759780018449846241184928224175412213608750396547101298615288158835679745653808438904105377045337209070723980183572944659939850406035560578267901930994640604538707380711655487806278005824875445827675738264187268427331080952767096406324666059913124031852043315536963374794528918547104505740602296075721399505088319510219492949110375816274789599858114447399110381696702283705169075939774980030258841817813943412544535361380949949017454386916152721291701344870784817234160525549570890176447664178389416613989157382787932871757752021062179047218224611477015295121106501257097704506249925316952190141690661684191812363237581504122615314395242207447931146601661554583347953104372597144434727028483258011071062576020378671419231820607001493126406459372476647532933717476944863555327249449364567755185609802060535256627163404727263269118146255089769605119463410634680562852451455023376702522801215875487660568805422424396803164597275351467331498559885697893565880521192019615080962829487576478202976496107262407591341533154514335535916784560594963173148811486296610665269470521524775565386587481013761756336911532191042206601411889840821354722645319563819561954969102168396409338813475042856218853183086812131350543089668105390055606670360955851108312063881113777569366956265246720216530904695626518377675081288267299608889852424039867345108515649388593865918159276414838932760880084085014728034258018934201916450266285708366837010284596236033549431616625852062844362988540517922160049997925580609732179238554931699784954039859185363194966519873612759040985650329511205854897759218202741533731039626958268040870960233319922700952715519485804600452086625980504752685401699198943408022114897348042420152605653167788915301193127707207444202871380381130330452116319635924666703264874805607309588688427672662016423119851610077713351941962781192872884294200930051519643142662706395764557029123157920808429534880526324886274970665394086524828091260468704622163239977462882825188878532399202642138880196025334132891235455665784174494040561069748516380119400662499980998583839946513245023579546058182333912925913336372792029125058288279904093939715072859528032199445825432991567307248153695175622380366568927468438994115568130775732046656288554243710459948372109148355963788734988233937617896317031070320543562591547563252912842493709214535798478124877034012595778980907201723823034547764236158172139575764554039783333172826408772712003544568471804103434393541098542711955734564848478968327643997375808121436160081650092981194936907102825497764752223932255627294316408671043477048599738526851103297548360814483830689833747327923649529622851472324148145070630165930882458398459531018738635590236333921608171873875467861271198081510652320633779382442159648090574746377539503143537593023487224954153556076518189539281075281414691140779625508217091153111322690827482267549536874842820317487815557201139675219353687922357135577994365302311919986527162341765576223686665940082760920654586972089495186989695576950335836536683176378614365847454876910555453904032056980704969766391718101705769844209491137087392341139236461453406173934929879461903104703168706789542979975777580580334462153505301375248020874146474227336615686662223941920152218976727523303498349469206712588658606034035669469828748089274214414175513830231685038920446698177124057931794098109615570179648243146048908771492299356016391150952079248072212308434813246422714581073452491317623073076407667624265615414438140298708856081918755809043088352525544377087500516723930156730464497062797539993834556923146178583327153006670008916582010282234539130460861576538541253637964101419117115023302166293637405144606623836238850625801672024729034000953232475693621519502354328501929057095218051238221508600205737985658648470360844888901782718054198657976149826484803104871056694230145700715333493001488614418274146665040889768574104420433875715291480167197828584217199882290557832835164673165415867916382275568690801138244391643713271149185096452446695578088440603386975177758284729648172863221035285121861878680171318505841714218937289529117909833284169556562551194410127697942687489407445898892077213621372294215907431569256037975691667929222298539735292703702072272130480827447992941341770438253812708456699678437719504873260074610866199818555424724677688010110413055621087095836202370546256745522208111552626158356158862229794261799056499737077971493486997728364568916758844105946347305178857221853744492894565757130399186596197471767285546204079933428426862465127355240065158274613941622289460688025711256268169959673345932348686107052584902939985299628347039613446581865971337714679722142068618700368565563663262704525000032124579001821587962643353570782593482653115389136214151659030099226537939747249406188644508688340597757196040080568155478613295536086275517716644439273689224142631239465956433326274132064301856450476446472441875898910452366742158286779988423820356739295344370368735735107413741007400541474332327487662566459243986896212632276045297544787847256521213504506852348988926655230414882045872731508420878766746174953481806390288929983593673903522039674184376302630742546831483059714291206274243388664874570419712709483022843517933308502120925300827548542436991013586475711208799242800559356294937592579240359282661825759303680745981700633709338171090096926916918744003798808974644158851473723992809871271517837300414438093374045993926968782588798990320697888199848530946543480348577487642200767263737442032745523337092545989618193271023094805891760940566110368411714510775332973983573168950284236308406976714851969868210365177910411172745320585930861216805257291999469360022220281156602373836555123138743538641667769837654729026967160860543973443340545508180982591336850644238002499599145133218204290410723348714349168330112298152287138392426711853821441350606645625036273953959937667138003535791014294016540771544648637381056300694626983000495357962788586137244409719684078623143878148593024446431543903051871005050422748672462145033441488029431317564327131327417139466662546037645108086013391304432103609702557427345049752369643359110784173468742418985617021188430792019307073599798061203960487610356822929019049648409018219807796590997213553064728761294120994907120507959726993203131409495305372636639110474315254643921848549434656394540117027359022860658442894563980967648740075648911106824685254915462193891101244507055886785492949738631748995305443235639755878002236923562353903414936884768641416160850427290279836902745986879608691214793020646346209168729131341312948607361054957633111683796817017615603225461826920381210258403205096526884640995001001340028611403935886140986484861285207180041804049218924866768027305284272018724234648023005542300414047229403919810161555427009399117208082284665500018890512500165891384111006513582965857710874137135508966677243018169605086560929039382694512985726274320166969522274045282231388292605154307329959152838506559650915975904328321915102436654801926666210555681414013188281800666331527557488878243954326101653111387988903833060142818142476168567046990486186528123040844374266946374445537568746089327825340514885991514961881810321068851567490129145202137602023656920738072909267615194974978752709777020289861546230552373429574179869758772845096707341588945803140378523739714556943495197520107523651266278927038197618043051087144826859200521805665970673438067809550423852462503608641217774351376417306696447277312125219125654229113610047329231233754345227152735496084555590637110130259135963159681095778009028018753346730084193057492884040167539038202516473366435285191698408920542396850545563662168472207885164821815977631991196539018827020398321486240653186786264615536708154603943918354961253738101495435199329623561717739026669841069174796505061242816366802041163450509589571315580422776328262457037079195195586314457234355340211157340592513707303218239264122124421649002884020608466134871177553254516738744224343033975579934346476650784174702623520611634701274132186179376278050751512826103147234222093161457323032852906528806868797243612678510040336405946255357637548675123217324114566941860644623635988856518342738050089265454516097663058505660178984878740643545979191709544284112080429193589174995452860814407295569670482295706674088729296852132718771573405484054401603613626926982113174978016456218346724314878432073797468527513374149238175930766402656537585059913199541333325512213241812538943854691511409650596729658015390033503810512886883385524001854655497308127963630453863393284941141730479253776773090457695109220251497913491018412370814800150264445204548633581730130979696348832608498360244826614132720247475206559915093421634387523688333195195289448951907540213541455963115415101453641419471521553649022539760762749680819428531037905970073409798818609768346271457819391527619580124608802934609401529349303058676594171136212863316098382035077742386723568739480088100696633108989895333860986225197728878851506324359730709116639260878896025240426954985525833510312175289022625557581813007161195852147613347228888297820292248919503458698852924586248211821366391162005071113935539280870043823053942075202916709167545275158840278584606181356136705042258613884397859339200794890968779348868179120203287982963061950867850131266047030803579979169338979361419204724805308347438303767455930364117331485785764230887344663822369464386243607689639421467414318329944221074366130319325854847482325247998923911196324880832714607643435391598022398784372328887713727890532186139519948090248810848802012394298229815847578586808468206032162865722355554214652166190605453388924010553397764066632423431244357199843870366463362968349584008550895114723263121944760137035561023085023933380076182067739265006579662913266995407826115761103115760350492871284685889232207614545397081534456188586782549166200300629153340347663181507424035804510028800283802158530648299645275580989612176016529427810458215333777385761281541435937945563353139793885749389410218303609654104585100799184139799627451097083840260771948110398737621843514578850399986043164902857756623843623860016081462569582094740233093683908784203122398613638295211909069444694919526926605475926531645458575060808182801569943189642114272089792246658064319035678908093489361697316926523040906600877510628035339369626053212629657953827836497551484167698316804839898752992033337824486153674601344985314992937767731569484290932788088681877504652172900421894318775826057744688120291015461202334706576692252880671364936253826819335092896029795833960014608415696910433709326921262656681504761561441406439549458705278457785089452421241689686745431090494147913847357796857784553886823874516106430942973701931342021712743537935516009925728139129354400783839262623290448565387530682272154119227390649177059115022566733842170610658091532303908787894511138172321475143969348996935048042961207247314274141558450176043961797567357699730424239289806708975836207889053603974688732568417820483904076398430665557449078364305518197515406414066854389980455184125647017491684549705669361697921719404586668396888575593710493738640411585515724480472003665610994051833139116457727106511785637841541585710408718805179600653547641094331639920682177716766433897350779352963261337632402147408066894494942606793619229978994104901710379130165863536677554468454508451552805215442265251787992676188169736682686102251516576243510901668794138460130012186361104309077598646094537954138654643206686748073882734413607174705305046454615680509501460399398382287153584543718047309880893272504796901556873070502604503191038566708434750397654405709993652910159811533198759154745588553145514503867433899938376094620260312341556894858333825013705520695612479628578423247882051270402194209062481842345924198906266346103801473013360945578964171574792446584311817161982676497362887143639096618219687149227335557385499927181626262175748437554054407648406313548633193834428022264606773147555755189915633751071393801850630988495632832493024182960359443932307415140602067919981316422808337681718136634049579710879563394847782692836499928065611433709971679708081771974666139530206866796985039483021855210015718142524139061021112131795696976588562166456887463394201158300622210617412170379014986048578443579023897619803408022883453982201845477140051572029446002733021909428431881552343731890404793620349219745035915366520801943130377428550474503614044654104946864877010090834548663980753588057940742136078202805671371464093368167689287841515847967724325463763292787365813667333456591966498988395656528138444927055426859448763878954139222062922217581533609160584860325494766347232681451900417298643804764644935194830017951489585193409022587238123307666725287871842348041356238034830292085065693469640547415235738164008678340168839198817509574682821611472948353580185164867150348454119431885591086301781395078115805883178509970667222402943837236760790991245832886520991023143032118398390798795373916202882471764692585213716144612328478207777210737042234475463837075134914802449806915992528038875530613723822029765790985184059387640997552143323269395976019302028167432922182443368325584735506821221659984238442359192677376342809495720805987328945871136762616724468016051793078388825529459419399490664796579282619971242383359229017018324437094975184864771586534802380787804079441347472844630176992483981191661183808221042878711490635737292912942475400990294968067683176292787525664936393454172877549441229405259085545021563644806153055875497895219168213944144210452725451522730002822792615035771665657571253594133478581315279592246417326831900570444618218153984283140937873686507806841365051050272273733337237801302445142338922952941416755803688143590984958539144998908359397107115524658896201218802673981483745732993885310616489999408570603393880937856003700215140786511316819268468901660330906783284276164963263134212247819714499192984473374142655283883588017122347489759939602980251940041747040891377098559486010653249712801571608433727835047086075897184272466125592662345092242001724495701382781016399863880564518519429283041455552542640612572107011176659575173323056710545933170547026850095659080962975217220888078751857521128706561565967152465022495578376405956278239852884750681352591628869026045981161127108853261688933580446280806491501393482458091730179527422375159106999693642323768587422491502668126456938761193715833171874312295951605954161543162560098780085056995690736824523787515631275183723166275034672222144366805543015013233833524570847909447254902066164001788589431951806784698143437900727110897074783648351479087925773782664076163902034074762509849598488826871025117904090237370080747784171425982394076953498812369980881238121963068978141147526114896820731861986135442889282825321706355455890451109116183428760282872368331732570066426151327449964839336227041051655999441169322761967761735167092702111195530592110471473174883687453558976010109979663365286259255880370195061915899987529926174476200624406522537190250638114782831718148245455339506841454615634476431357207358527658736633938249083768547736110922211999527506072034476481859184246310980645428701151779162648192869710459904434587586076102240153527215854869420182664532340564606020628987730917288726146288176753971294727635524426085226585658270740693791603673179738955261458230889486211714808557664461570699901996720279040655448366638323208828627085480293443948367286508038940781610198036778731202103490848322769584886758813389389045580077958651280401749671409858496601628311852796585108083597398606507818127904640608800969048677914091111355311310463683417112619624534837655393563201313042250221867671434711734544047122530436047365293026275518097913606793754644322784308819556964355717457521224309731285659210520897525984816249993054069364177970315721897593166473598697955401196120159116606561411241388715527314097863228332284014876178428008877102004503399851207168880881593988129057072945216056749524255669913513316725761576677634127699311909962357883783080146131873132766030632067732733656700413044002260729152382320469873782251152062908477568883573007171695957366028788359688098702260887940609837800786767581456247315603532470269618293074195736369804073711874510173071566554672400085687343534614626177821651973809313183991604030580467138889881056485739094340294866587530847724558733707696294543367658327826153816549808234277504162901442613383364353506414049973867681105156930911478595594577599942693774149763765325492707258463958030791451812940839229686922250777952451645500934602457474777166843839155766443294734064548010230730948674344723445622992415477514688422120703025698648316500323492941419431680091664608704736650936694389569496366880585896729352744390254273305557054101936391420705537954102841179767468180267269212137113008373074244016762280672769552207936014802599527766763369432864469402715736328181239823938701040923951343613058030125295959365646011751486698571563044151384635588711163422730138235158953310161010231267416381945570967099403256606842433672275538717187150930279422042826883098542728167384300314241680317158029154118640962742893845057545191293948592625817793111454973575634244673515906988940439569049692838113051963793840539215707276802146238979557634019136202906283731903885263722435601362253112695703959038607923634964473467706956651462256077312360674710752083343085739056677458203369130653943137250341113279683073069969398683938769970493585172987250913558854737816661073004185614300467601683922172768369977911278360775039192109739523494193403008373512431294299524860280385222871802176380936464093490710800049940445640355622574884718816709778343284614223142860295358956127248869002132618865925291049526172686681328683218156539622508345989582155244617653619118335441859398020652219732879945214396056704688140024589714786252296861674642348369999879544872234475365176618366015834196718297552593440643133052254010841091926170826817486553149313532944270435710076600329421504427567131088553824020236926164017786070039762536445892191888396316604503581122838438137556508655238001221486999239582165347361587147994184849963565252506388455627624156774386666725351916272173521237630879468323692857470003325729093699126240080561432133914440553985755065183592657971829496897388558436098415720248071644713395733235063232720438001155296228034888523056696514970556233704507152645300003739828666726633900419325449073210325029355095606905602949912149785322756630828353846987236098122761486312340044996049620509584736899504545455800543693152427251059637774463464756894680752885047812309602513219115749078587259950862830334766358489186813344123601899883088806905760650047231264415709112476003015196286498007144228408512279546471707892356828257762685001568365324662902793591772423999905830659677025109781712872488348941517255570599175905281835252513918879289482201588435116608056077014722863013229393282504944521100415390663070802611075050982111437493004135216211482644879926240176979258551996815354100847701533632541370030790439833238782346603593803779034256648707946007878693538508965285070598795588771704147272469921571047718522997396344508011555068641410361433902643932222261778323828522925389844203291244670569974983861382928769808796018501788196542234957739134536560696325934713936112265107312524402460393944155811074655445617362986007138261820669822048253355118275035148660759312266347714348788555227897345582457087992942953777573386606847305392976212656093644983026030814772781792892701576655051870932750825027509747716717136849846913176038597018434016974775301180227831838803740206251683567884460014003928625959112678610417753482028263366351585203138115983948733197370375214924918108786516123607781494905848412041191244068947091016267444841118291051812391894322515537907126450272862118931579954949736969228901384199126181414838732679412664501274680502245721319772610419758473113810680359234211865285637810277454144139039395306951369942326445122690358138664543888768563367111761725830044293976033362825586849504066496282917396654125394899328682206491821388318878723304730230811685501007707729458925811957692792217032163226026487632101577810246433432788820719317668220298183843969313369545586180387029175542301641395542092126464566954900438092086855691895036505266209168996510372211634717865402524184995563195352009824151120758788111103798924091682323291456071877990335426200273867748122328163040981183064939579540204527442920225492368892201348821125828873939132207237347899896710303252610528566705965907662223842012351527113168338240676436779950157783057647340802127375751387534276786924365060126244173775607094112770979176574357126526163140311874530611700561730502018000827797888943927840630039712514557175642181450341216088725132864800178524837911504985382124408528736143068208961655545369154820588241279792932419137290584823814796532562859954514810692265824817084929834759072415734787726279108817763627609515012361094723856947024848723091824354952269744865262679417560492331345747892196406924908840840527680559651380272716989746535951324854824864526932653613937860633484070516866873226632241264504797502276892243193369278376631308782060079680090546141013134942435650717989277837219504694478606636954985290883466559883684659694212522297031883578722803749894062395775537510960713725990847768827516354097364742749396850108379049054106031916485821367427098686376856536470148053392687558626285273632845927227183192456691647361832061244413083998893734807500190464170576469718774916694841474375278358888640950560199570115284941355885699271257708011468109014898890524900515126728939883465747199798533442769265717184312907954644435290525287627055417299684800429291846020026026577582841248284703222322752936178839723943048718439028139245599949290089448694768227717610494878500532306642076412888205433330711323018148653268858787408658921548161641140677905887788475745628152993988615387897658007990991273818926670922098379267996861031142893309956500375479995407356954358605144869514071318957176653066152440511130382445863265588392933622729951311302667500762465435925550554522155692222969127972228317299490332633314481437281658450610938789872657374033649166973397219704342723161799475253783870921866726114719153947112969158894516292009908906582978046899405657087318995579368213582287376353847187868202140117007296248847606827836260154483827637074857180961887533392392373132264506564509881572482064942534117381039859273169686613790795669131391230461306006031754149137817157198130690175236561368641522165266620336731691119158354200588153875713658708216740958345277576507572721271696705928978061185752499213278659092332112667565110340284817945818882139990073878307550746444983169007997781126993425235643638955669791869546259883256824064845597947538176171003335789432014565776212202795495337714524604628611541015228074225645642994960840177534662072092285827444903331663972893469629792260375169328115865009820112179775827126652315983693624788252484206078523669531259469192410821246920741150648534392639888621699401526990252972657817974878677225361519068030324610162816919330050730890442914566799089758860071888256635503519548398064517420667334135428963319010147198580785063379107032176305874407056875937780189387555812604324195498984852206621078335245369861682809015835170201444816536407536692803964863577015951997205042740715609499264411095212066086106468563070859206110110259836562338590056304439708630119577437832573893032173000689625989372177986992060727726418750264643517036818230338839503948164684575918143224492140485990405579419196107688251832200456857829762154947267632860008826560647273359809729218409489883033490994482860612990715746218408531943628902989830596485847618095151312810374259661294184298096199903010529264510701508567279447222006067360009371083375478564288635832048206382943467662178737087348858752367518091778764849458326709081360144569329946258319732615671814631232607065262956212630485188622820410610158469810904445186340555640304175259662242142248784106194638577630530203555323729661117184448332411240778618268174019969748889648304192885898623610991097907492313241683569985980086953303687605435519390154529186973820544860308335433601289082744372905079722009641340946050254379229396818662066379058271925043619340028989349253168990005147867687502131069876100156106596492920871071354213750457597534708423235970673273966439709265087188559708199732577817158550085869456813433344236649009488142430275640102404996821979260062164837957417065085176719576918221591939984245137329886598521119265453943291127317300769431051974594711271997741530805066507558857413935543199590089925724074633632933294921442143931234865083651882992473855449924359177937265448994945904248322980801009513465866942441764465660349349343263317489043587847856881139009694358941055663052766384764526741705045353429622879137997107365291297000936942489749146068026532050120555822120734660604034947318604844453221273443854046169155741143819349712354629133520636962658402392220997848143896897317474920115941141656811437902767418176597790873864351094571128968459062225184460773695029391355305180022639611802254373411906680859106640829003907396192517422585295677740768799255560523203506864866939730405964954104852708225470090212312845196221149875830516235547969647909908026478924079918774814028593690768475358201853800852245124133935328542816400881509684618514661806128220189946194051196127574487065528907237652313066242643906080857840822550482007040781930039026140719774156098451889032289665093587719770617510069315382707573016793682779740726899126395853206097896304911527319446308594483562434457899931973503379742545700437530907506684097686216825615311408804099746685946892237949945483878296620165315680734222739888316799445154743277241680484496584933457423706743562359137544442613313918133293963997048963006091227025646338454014749219028656174217243904995921024280046509250158809090549870993327535354014365799908850699277683914500634756666403619317333233006630273262045427295828429917439595614424760231058705667758381969048715403651292520853132712087487968694163985220694389869411583163614002573531753138003012766532911637391967892656788732339970008471553112030579071145392408456087680477012779400228498285320597300984021779498773877315212164415228941323030102325293952006108904460699653198037733654464367807227890629913830820560942981088599823973313187919033206879669499238485440490494424647728094950009893216441392207971741110806229313715912278565692253777929931504957903351900066630707311476204641507091980111207201577955642778169210740354650345088717692420731890905345738995797313880589155877016383745697121925441833884171550897946483058557243774993772310006989886717728566059298244315869847513541637647196714236644313880324302179784932688620236042174656584854585794041674096778471153945718136147078187904855088457503960123002353965190883973382891498602551667770888265968463087826021870879661898442420642721458678958333373863848609052708904907227958201344295057701471539248846955602201749968886858886675655864033049836050594940969399422577949182711333930989797818422014078154300639522160621157228356321358974244714657441496631692204401263824165424689363469275570599669402691910860027044124855631371575409836921963660003086308536961696982789554549617539923113777133221427051562270148954573597472139611885627819776070197275149733762739252619337472339531977215430463246601675833380570080088170494314260346766823035220110169586510915059235838655072736841486650988355957489383425815023624805512880168707932064213166141091919115517354731434630126212417756540947983964347130842026111697616850931402653237623027137784306956779940875717878861925220640233781898935969890712039758669558754546045736748078090901085676739309017094180938107476850616411684290782654992435205546915364350790507617220556819402418019972513207587320618149670657712217567160877997464747127529328462245495707113523831732537840077915873361079350530985358625137255276299754837898456060983413355072715174216155048367052387423624096986396918079834478659412871878423387776066408282072937137579151655654960627514897408990940254720016825918962153710135720763836722510671834277238058643763598610987451390694433631183702206124731200385262449378884075225975320361476564018081812621742803293346823447703219666636116472513961846399306914572827011648384449207936882460253555648911561514243194973891024888555725960057027313044331976102884565976669049918846029173031892525645272841260224421449556334497728217769774789854547730321299337502268889674582478086989070032543251085521974622165779289919286891368567230704431809717951632667394781582113756472316824410556633630576250566514587205897260097720759387120177131858092665071532358111821274909725124036317165003080315916046671986331508585459005258721831198051927898199123558538892884172959515474380259822853027484518528615578446581043204848267959083224712270587739435648032875082889802124978004204405500745611652053778546790548629338711658728770420136343340149164140911372704620498945537519278908632306328744578122267326422654075276563685184581725649286213719731845765249525408316341882291542895822753222147316918650555029847661158598753893226259897862015574947240575416582329068282845437025554468090187599401635420081792436241977570596308781686284012812310747475013135915249316922934038021279822121471697155666371541876769167052319561080464452592209955159143246783909648889589046925497417987901314524269328798084531028531308552538136746232367612287562237526082670722134206031875216945720581888975726483633223936864783510693099322151953890507981498159831333214175172524394978100471653665195920325235384042143553448036617992088914711696697114156478986219391010569194872620395060759402826669843790249878715498759040689088570923650806663752652035655236152019851371845649437052692456278729606045915917949142273729508807236272075348848517175337798535264121732884471843086544933663517433757672889076870151457399534546567310457433017159708958498649417170592100806296303856977572714195506372592142624116859286015161973100760200964920354097303817251190657721546678408977033314227835907725075079810244957028110411765002792172216443867072688403154774913264216142188151454728338059773349687617547762726852082443550688903992843384671738837319460956941817828583793146924282398617192327054303447872143759118096924650737797676385718724322539246017265190857182709921636854051264039796508475851807033236548192779757589447943247911724713489207183442098781664138176221260921640072533413496951691678505268227957400398647067261396770281824668075434892063837599508198963771377915824969821268402632223263351841646840594994668056557492422007999997730788910218424472417393132901315969059240151606564614193923881196398881907644092029890379837615195212039278250648043365553399488898641088426226229198185758389027011272154594216214808604675496359874704164273639222657843476565885912600728697925956831479011812981960716722858902932336306136974605348864294733963867083239254551426228831909569907119058178289943243707589308483717553203791844395439969564883368162283219769233495575821497983105134103182851164073835440901770278522508007894916224139136719474567348068054843013401377475598139862070258802716763264881073168839595644569837144644285271276334050503778549246086833108631333531033646646506193863073193222143402889183275530249629083572290112651819886544366293865422538548286597953635510120320246526715892310675747578900010870134005563514376891802812521430834576637086598963013932976883294924251436896317631999016079133596119944985624259813484183202258696687511662162839644106255218516479753382887763154087427950531676373713359717063426192255905021389383218724154644816978517051216827693314179382842357882591803382134720561591310056384895615247790177136135318929105605410818494677227136838162986742627899507232407482084906076108154263153506623260641528108601385838510912849862867636275550196062042145263678975600655225733509762650059701608597360673505103145547331363831810154339934738179190064279222984998520629916171364143061355231551800853205205063493797715543796118427463795408522348658068061246071799695736994397811842792740371188883849994004900248575323343500369021533849225716208361889157724059817244009780278426714802565266093910292202742276997343186176763227645130979990134455358530914463722346552331548654728074377690504362731750614275113124449038688337449464096559210599876829239149933788745036279643343700054934214846216562955319545435059127666358020539077088402618666027898792166431927469712674643501266805505881467460966459306670492177928965783046063979648270891012316315213228901642450319997525607146065127620855546007020989497480664067078912103487436119921238721008497263321224621721897646588074704223129585144721797090928190548014710159629612208133379305231117686274384368632496195622415093124768811429527736059920405193368656540603227909036150398339741326942096268350240273839899778835661387153343783910011922642177878112475830906308614437249894634136025067438214606401253087270063887801514012419073618975983100215046918680831577564363783510432308881962113820629941420129631127441698297868126030318976826896630941283972505995661778939084706936009388991898177696696105957620280551069499685500648718308081268868373120909258539038789019470458097541801680344577201003632072250112334940292931271414904038487176893027382850167423524143283038743058571409118717760206345975383599978656746223403051402315457696638915721564800364927148891531311266372741137467156974578941523454211772062805654848374045010276674430143745542067196108332036692533474760648525158739291687404423286339484808250929763240502140318924494422507224556957206419680515352889148157591270406087596282620287883638746262834111982939463772765353323407265161849203674693250464027938728166974560794968893875052289392540726934458706187422859662247867751001975371512111686744402051254871341890495232548472929045664575644037684836178917011207425736593125900345527278410945933721654528989915824093008384342983244358777678315530541277647266764892268289428672065066819291789630098301162555918676599087883146101795301426015169325271444431958794495517332720245003051916346931981275644855313664025692683625667293975046807779802281540846066179991378807177162382916682194712365907487757565858879816216345166955784316741602108036225878315723427644839991834164038387804541933052805035387232857290299941925345560344341728432509109854350117599934536264314446820065401321338365497644470610071614490209297151372010116379966010319305913018415014185696779748119198766151806248202952059728356547752960274920016067411979618986841020535794074996508597813774621135514948433997622325356793468604219837119084478920153093736169020207340674574163912287248030979603479642307831885458950419515486059395834754234544558968480400551615861872422048012601387178295404801817150154900618159104942852525922619861904094204314503643664930548233582459705535806078717963390159104608987129148209616086496524552990794202304422835634796958902159172294441145598122652244648594230388799677077153333757526808438032371858258875508346866478465909875646548143672828785172003780334333775707979970454060865404603706100574080102079340860907246470996297892941579338390218653438493467550443599419379814312938778977788396131959336701103103894713288206317993160345239149228903495000959449184051581771018816210192736050124625192831242927022831292066494486470290074088378277529075724324824799830028068565833046889292297396015345614570297599943740185470314275726998853627093387887543072770370875077187062511218726139773026228882872428688090961744493137453314379297556644029592038343195857027661870511798003551251251224787375631517551465104466049406193495006698574300042412540851579646378946741298187858870416663271175868871413373042252430645884151688959778923614356631332392337716361156657254618026080919365877470363810542467419703891061943732523161256481495402884345658976473846425513419135495079831567718686259794334233900136818911080234691533579292309113591157264594354127916501694498599595602590052142652452428511065776278073079197033974671597061175902969331271590351030442824720881880405685566612975040659471005892650603587477432285745597073942276665716266922288638700727803156626898145551048753379818532647253231599287523686080427501892022184747079556435295106755013235415177369774309884728194142036039495578596216733339380991720106716776501127958221509164713987213638464510803359754933442235995415250278675030639642222729170600878716544136770358387875269740420314785223573815405544983722149638895765684650087246339011554954720593268028682051252257024672966380008185454951014219988386491640713363969180327310841569925344092072113061498698487768438785143949278243789724850374155615082639990609918182657096050231241619884373973257219609934160466883452539939655375621795665070240703768457986562153473549184150859739783983175254534164541461610947645681499012946101493977730876871876525548511232508557351294199399258272710638381889483430163065852967460747266472506058272221674820629245218055589332661444769140497429500709263370137478899180281628581057100967359377640367387109404452222894750320043500098239680901424964233858864312799140393210465367365856406695422099181002680042585486283794248166677922525054625451160428917248567449494371876992481261431467328190688757589940743182424606002070963957235333177529343536966796185884116582326723992661125803125745006038239752772838859808234485834562066824234497399461034545543182917183468802855948592165228779001362232675617048188167236931928183271055735438432688093739652691402816909847100577359141350513565566378091617228986926969600904973197073176097923299197494997546781887112059408850317144571914065797714836516579311469213170069241484190031088530434111169349323641189678993918212143605546875663433945799916400692288505924303384296373876788807238243577401029301727945365659311022721700935620667229234079301196957978767743220631414596811563186660445173954184578747370624146320007302643077296337448550682268893254616544979106461904176565480941173061348276134664968782093556563021118963950752734461615309889805328120211632639665738265255453254106002039255725066109912577136537291285385683405486123923747605454997556969279794274919087720808980131267223032655775277987456575143730993411465447802303069415746846365374491001910313997090043265221659958737502636745276872416934861939050209365809998392118477759651664372701640441824161068078273965381003557144660280207466859422246545572015296603845379930062467208178008794183349902895732314585440689432475567599454422839310567665383126645120059108854751788142875870926351044978323170820601958777213879034188846157296000923489157037439289209103131595008678367806562621141885221340134410009057944558603950122278922101958906327408659212174086853924633994714356826632925894358059866399223785141131481042806097475665518522894007336748595697383724294029111660973861350768978397551435364723321949215885850175968967200847455664477224789675574721674719734947922457730850943196364358459659410883856677556958609902972759238461487194957742553983997251282736086740407939682674023337820315013094481419959241944868380931544950059084480608110033383145502207156173140620465694892390332937876034655986383357010897437086421692350434807013751849757538875329236912473978066425153231334980469504415304829250977715847858640490543848803087502713472795943373766545316806846524221289848131469919082437227488502277675085590199469725719510823241560175911437905063883814014603622089478116751473936442736727637564730940959016580749632570737118580902439639271088725920872218528265364590736289290424965257691936746016262420804221453515009536709662692748679326847313902066620334016626257296292476892816581901533165750497451830056582801206342057473841472123818134980333462888068924653033299059724966004716794352488518022884052761844214957456693131761252579450850941762390923864055957300047737756454089324100012502234652509350053507153446991017522768296438368515441498685865529785469972553271415386942732378058522619048176830626966343677030167694226913479580065466567280325537425017899384543002256235558838908098510703303827943162304982608352382496774889026919396566440444678366857609436780087961206845627254745429971850504103488202218744798029665415159912122738781265048532604473394347338662888322776846077145175787095075277342784279949291562658577865915215092594233765714418448415561371737632643186430755355803924681629450349216815906596268953825622708681226822268764709832151215419232777994192878987045859615828853119395948871073268366791441729713338819190857258060772519890990809833811877279939059391509839818521896505069266099762589934666232649191874953857090327029416630953915482974960138464525343419966777343660905273263759722909793463354494454850244203429256085856406427948623223195262506060398718743911055730811126826853539620163851528817259165394819092457642650156056835848690793965635846135462582486231785795842676526476308178511784866989622218530704313085038254772794235044998665810345789083244892922742471379099356306208708688664603795312255137965878746611840878284802853416027502897854056763380156086160113669635367002436438395855680816016678296547076325768103299996202760775344974003749168615297467752870956614419485020569454658287601291813877777153987917009032600503030752281689315309672606957558765118708464951476368653566142639500457823307099645698984052878770278919078726095820251579720960399589421972503072293932073733949612665943524853887221239823379098329358780390443449633601128353287001619883464887351055262204975919798916468153181986133978457637012269747021964974520274647379603781443914892526406729380707238931982044983064018882217992230938615560468292700328742056173776685559718402465399127425372287874048408010917802010594615420874129193684662175809050565557480547436427043889672697609707968362935326420625371523479463041622329379381191495737529015032867423911780153452711829896643676589053989852216725780969778912724393813219130792686927179058700579572438563173061607112249990599995169763568735360366083581427559288969940799613056968904660841581254093566525035363601153993350457604105543090896355881969725574898402293641609138013176895301416550450553982627066547970900966963530901847002189931552358765594677842994000994460917228560507788102572746117621655149224091469577376767237770258623433093867484099570890797064447463277293914503433149281245310671407147751403256974085534212073244596544667638339719529728583469419995552432930982829196886657017840820561677447300654265712480611599126169440062040461068602876922722791418264187949349971013328571594322842314837033823115103715078834964120976547827884680192030403047819488360196609488093625063088204039843669263117724575452526058244784782097545094787646380732105284142004487575649065644783609372390525317652460300472084687917512204367349420754042800240089648184714065411929326282209401998368424293571513059482996669170771011342683474998425968508555377138409031882302110914342050275842905040718623988327296112281995250610681380998753836002084223925904963402966967268826413640892804800441902331474201591401136959537443484230691528322834923089216995241251532285015269710203630761760070588147212833589912283450024057451770114886023545971844357968927038831164596982579479209609848012073034178490589903148868550638954823519586638956490648525440595469916105717221487602938492043844213715342493467617220250825142551353552984215544495634909477073953097788255766338527963595682045258357906544465352602376411064376951438655652327117786211043431951881731816341394839388820653814858339855645417713776219372656229039638311348135835613124341418213019184564922487648075011461660707678062704374460067493157384692680412503010709988190898859320407269698609851560528292940588941013360414820990691045965994230426918509015479933393080084687958797670422199250464741654509612828655067185113753592490621244101250570996419537854274920734545081846626224214252424528764305982508711240482165596158141224653943401259693434288663883708743849392932922422063500995057927191219714627777577215251445116436688785924137199656058845717869727412334242141054999128448206043242110377584252171312144018830196901164606516088348706367087205063108248468899835702195548066415826159914172943151862676696264897592989678078284829289207435027292746446210955109461284543624426445011584542113545973963391284536976666419916003680653389859442540248663307932421561249139587101125307779600541145961469346682123952989826300830485613534733691741592519165739763612661759482045182185166380196010099974969973762367389739651919646756841611091774908025907240153061430466324693928401564048292356650232072793528383150959260241175079512678088444992295969122843583644902396626506000505648593090443443933834953280550282241129599863377872293400285394682781313312404414427452553857768865522740378386411673283586013739318548899807305419650585936933932926547662538690335111538539023462914312591958888304889757028445340920094410948862778249023974022976862170313254136000490387877799147541239616837573077278765091826202146302440969961786449591636341325958852353839052089600512962050467603255315070892777351366947799702341701049688440639643699128418604797871349129337723139157927170834486357230014527624285254499285253083375890996108571143349635906306307101367202445650914345191182725100430234406503882021286204101601823786742169758248451252636278081376432247428468830069703689027317651869925655656054225726262150596424641694563437586970063469978626196053889529140678046224827159401657116259645309259129970826620964599577864388472310423774799128786338166991915950433762784440236925939599839608363590533757035806285910711733490297293150566780167504399173937914726354376339149135737073783987506403543787591324913201304366302927144439739432753172125666588465921813965270045386861545933182589347458901021375603876886138723835857012101486798159898076539491661998226108352620555773424820197459017804121039619866166795026236707220474333088650431188559162701267356880849483527874750253761329658829276935018027780699419780264401559352715059405137954677968908316360444016970571984833808374603117149286584526316031781001095144284180109393985740014760201702170575661298295310981370872491273541286481431008437811522296085309475511856598941575878185598019467891967851142346605936401629060715324401541853018361646062909549431621947495598888986084388389284697761087764258436844562903263946007322361967495698813991860881209188263481535115897646661358426187640890711897916779005826297819482780778009070893748719380304675886899808639063674830737673920105902519117992954379772674903122298287063298318139523744762916852345240762961839564685927134132123222345559008055752230729562324360903281998871886740315063110828006445687063461738094921595142578094971368978240744850655242786462366233656595781420475329083623980055420026732639490378367893090646651397082280001781703179879639779816101097205508070761786936946303126764656822360328333062165587363401749276389895662164073735157173431073024004704256058494519216909211511664606116069809120860366251092926806339773310349424065470897741208586024459083944323112855535453463267635080878279065844999147407505394162463544978765752416046069440748990850832099409173951467092003755148055386365517146374355671911186244057054823670845557344400297532903702931617906070577609194892615028273765306944973059085762900022198124059647707086550365492082725706459356812421082843739615532535220660977004648858199560257407243335754220887007703013958986851400575394301948869785096397695508751322947695059993358317045800761452077456203670581983224383211376255400491132911684038697760827917088457101992518526456865130896789959073670711057546813683919535092883008744935445304549964117410020441383320176489643067021791611197812858729197791843279531140717040112764994923571650688411679881144129270271259088389310064737585173692450087955889414811094597812538373888649212635134291535960915510446462701078038748800119353849910739926563071573103863550904854867094739649018215742817843952560423665740789114611681361081359220408108780601871441490955241023703090020499798401691404470161094876992430976471493516716612300685629839364613143781833675092524965090598320399389758222058337443293822104724119747421988957882521035829630471080131750489641626582070735635349804466616125336569037378535469399312807524983775743850888525032786038623494843509936009117719298097064992767658857705046881001536252270196748119635162791400931034965241611722147617621835282269242085613492804558193792174325293473432397454513041756673350069078596292446714391990589847119019448039814196814716063748302933163191314337518824092644128935600047214902840201444460581134912590419807554017576294656127707097687905435277791261212226899662416473821110522362429994521384125448840794602811298081677510598791078903920014465220204383145865616043255525030399563772352348589127641935225732800118691106735433906088357597377478779597468944028306163314227591545249334208540053846091264971635800845872749779731250357793311690327664437206629357498719355968220105158749162047710577856422147988195371532016361754722024019032687171923771143205049458257423956105447837293391360835189191593719940918144407290148615117282231569710278467506409920980188437953053261505765645584641137859696765785140677997604491879684702613861150035971041459242642457237171276842080024726764734776818844503388491398593484099121635773942213080009935216095249808296962541467324973195600114261533982497758078052766784534141856849098808745647377662316022603901811472931119795340046382874306096948677933259371347373637274918262126532646799087876584710790163986224328584375812164554235577196629128805333343094078790913703833452931329050152558985149583779566250788448392636226598905892086250129849043758865506694304191109691937387764361997572491680008735172461224875579037666209565178727544509131440387071393481046930086335136129389552973224409662837143761115547748469234949521281770629567083507523641406128058620555731505397934296005710917913584152544434768478637082413883679435782350322950326984939140036314282424063431885175267974165568993546232071890840315465922705562928157357144769170278170296895533315519519197756026294763566419441659680080268580793941417759420164944077630517896328574956015268440723090596421511668891556585111831739195969638319421311321497349550882451552359861845193480130352208358964295274866299767310827227001359032446031799857449233944754310137848332453966569855725751033497183126545945482926938695061889028873007316564806197101380640545661852632038082487736016842820575802973442985265415744694021233693312836168504793830275253223854027645564375333654440187341161994224015749027904071071005671393016380768444761366321013132625430697428153320154674200717999525692929775425747462006737473052831562597276009827766151588008427508919158625972490835245932138928998750337129413056832322742614249103713738663295878538729926288460428997492934806301781324472659875609212882414292368257558555528833980918476806426558510396667346498239688944773009602423782596768901685729891905345420190307173413449536132038975246388910628126462323616154365246744053464935441577499171901437777104038237305320695538381428626252625904137425764966385980784416995313919581569810386679786144174132144844192876422285531616803990451195617970190897896540682187459296093401771933071443428622855024283294491777153265096510917735846744817504171100789340019992036568978646202132109334160743927825109336151630973091318354992821952641478671684996281583963825821373981549532537240413435293416349342110734481800458360537250318338513416390357923413369738324799251122445641893967012375610259521439912338669427284423071651124244893507742338589434690656909755621008531751408083140903480598214274342206167161196087863002744884155757536093844294008570499461341642177672894433962189137045652116244094969639424287534180757447958648298278696993884384074575005968063211717514449680651611053956420294923469116448161145500964099420873070091657332098837425131642327420385328049576740560667021650346243738253456632666666843818924985607306787946941703739012427242849571974683146465808537217574571129332977107287542855499699943317918351152953191654959951587711592622121384439953784698058407316043384168075963161371584964744887145723935258799468582396778592572473013313486626738921497092019071101163218516454900665078849571602051659097691793820891153628029376878093273532288059151458658296612531028152930434776853692130940458859751100211894185483539375896212612213784291061226902248834203598415209438738022069437576711872214822776462492338246030143062303108313037153700503399080071923175008575349077386677564180076144808683457735563384852610377075623295123523200639874192732036275141818863476602376065369059608084472338856990615584240849129904998183583865208648026070048542783122751452710912915343079654120644086874121064342199128948800030363688088651685538280041712878005290644675354421875322987916570915676458184497189520877343365552227448619629121183647642506691912754687103950488554713435663664941267253944037343701734877684169967178651023871694483351324626296973644016631918222547216808201615434145328477847340630706378431324898401563124309511224602136576707881551552976725735011583755944251865521368835046990409621823640089389229213410478937694470672629881410766462666459827881410892460489907331372038569767096267551841166819890162589424131306460346482779923847769881689378747317020111972939796449694198720288525643756594090037487258092890555142983875263684311122640887656462224058282376300674468324465702734069764624016420688760604257855882017132507966544444753437501287418153265932903625817947963821739995502645214656260517243476125826602298236345907317453906231463504584120634006228394485495963476413366219057221561969766363622681704225877581410644565831748249568512610122112284165105677052110034099751272260352270704434787854947176134200227372833173948295783189185716224766396516983299398030459877366227807841122451542403267914051444630417220492958381313416389849336039718556352888730459998422349665132658144043796472794625265972887050180147599675899984634978899335473538168686193534715823326317107206274653471047438106189247121930807689566758414094308463634588412526047450238850994196470500815646292133642764570808896997941212096953693921166693294797310896549266619040479812807822337359150690688820346737272040113158275271928425849954933729148677423907849356915666591025727801230529459360519006614186628823164764051229777286418469447138620929197360672448309453130200560309552388524423721528685106635572842319007246037477071120781952513381513294756424530956035782976519667105592058665184692767615199999506959853667860648927753138194804290119085303456315956586533978981425657741972961275479829452738869254885774678505650908734916161795906496899463855047008412269845794786893777228237070620130036890602323745937091694598727874232163078916168174632727495612892334785882760647718268030839696078774803463189533690235909241453817932147902299361038981203291831791612196086638829963147130022466027955414422548140695604447954106682728404508290807006345349917907729840794768958217447358003709251196754028671281662428793159556053530094380101315625541103249305800740213511016989189432068885835686562999876227981085613937511163711377470407940597528590037678302013850825718468891761640753979519628718172034527787163254750105052156448104057944725335275177451968517127745700443605365358151640351073712270698197529855651537356753527911129523711916187647691789661071973400302558204725382596110955101380350007884368837244414783573671895613312078626519305532567888024009402798193327172199769645931738500108595932589682208636894504288973629296230565292783870007102143519282157159963016508874146805121992037581644397230069245737510978207475125983713427492630739672142365582562635495200472788474348998275621959844981321068400636844892906474267865434484719456744604496148388239811406942643670855111388600543596990700298762327739976234781164357532212069269749795059553698132024013684021731915107146790924003731351626188299516784377182906022418693475037769166222896273429460144164957890642189939986540306150764304199825036744113921016058227497171839829243818654424672130001066140073016577523735225146800854241374745177692523731519704595262291943738726570121141357163882676716718687902995272713726584592086063031134638973751056136709831782751280283213078911099219045337895689299174842702892459232289760223353948092095830515646192550175573193005527488368519711346572226329607096803900996403407571021979531462390367036726792831463342705544847880619768401497795222043589241095567169179583935419057106824187511200488921239312550814057551734435639489106680409450593158114346715759943641198194479073430814243116634342805744642547028116161544496526966870171578737500675627132943082410492650962356950933742165745593030779863678339929733675685725283097759512145771044633182084742684212280417596580497659929996857347797972155706179448737721272043620932826565489111545302963526182186440860881170821117482934120510603562276081627504961763277822214469649756945948447075827301615136344685121227065563783594215717751414704060380708385405963503324652196901363504651806557311138339011685293297337781357680345728510301030983392558772493590492913575117268004792987586321155226920656820538488934329267217405101171807508256879337224855810981041370175780810364057798849643491620157847704917221551325039635012274669843198570787833001908553041776977007322399050414474980517955613466433805059528121171343938289783152108961607125321895887680406713436285376656589986364681464946529474610669464149251393399904074188794983381480486080338338659671446176463686815460705257806570323596061190811269172367149119108859216286355898167047435720817631515462113487988301697115622224154400877474152374911438637678731126983187081455974450961140926365075282882206762126362135328084352835283681157252391405672087285391923190095476330911175777661631970448835933744984771771746155615698153967232351831755332491313771994482050979984499377900956479913684853683663871429823771237965385096542560163424625905644679189215880959866329960287072934798955735991904400309036280410135580168626182458603476189103464028417386286561772799593867278021446967479673059331995749992022028174197390906977055807293233871357953642852174489824491338158997767435990656005679423264421945665826439293411267247640990429047380145994101354078847478947852866946019805100201082628434887095801337525630149179395591149327762126657954763366970983716657975923493879489851776829028389892517586840704523736575643376535636968855910746261436435794301795018630253383735497588624043177487019123566348842111552564026060928805813602392811492655690672816868133411118383298572957276551395720187544062473632860622633449762235863015354649128669685103230526701552194101662429791769893210682218758503243031684839220398054133794897102834949477466574675287924484850547293749488458697076322363872125295386934303616082795026564647531899484625461456700194570418567791302441822773605519668581362740396138688824444253339140522882469680170711283933079957477203276600899943265741399533038422377692254066467752969839494222804028590510645027570168712068655569479634589256321178542190057732137095017005389797622124185591582242185015736069362369338835906116530806813524691937737024029537051556081480745279703313910942021095840882341161155682752026447898513001497121502408949919574680189451947940294067526980033482785687657487230759923964656793518708840829374271007590404996840965324957990566838011872687249113633929823042832575969482190225471474628471794902081620437101690210555005365989249048466237916754016013606633216651686051770047572494278643075866213768890868028249169198577189265362695851418436165206719620551186114985761267005368936684354203842815718328196939717488448556757016642753160151051833122165966714829629119444456813671928778053398909721637559192160986978743401671126469401580183267084455681943415600289127952635024842046014219808403168553890570013256096796153649920929368170250715214784956925048584129002598367325234476689481537131177236569434340162192329869183922576866236771704409267777206813032377370813001285257616691600114247586153606052310958137100303712342296711000767794132904176445497278054848640344011135470209895892137445135922272662765182845966638255666388620045947847197830637811872530301815161865608568203758991956908631678603242941201417172205884817988855907913730404439688909926581702311364646280750730669836119419480543146206600349034725625379064439139858179327524732926669684620531789870467739051524277000517399885400632963342629968311394330945862494115639894585692227207810521521737369454561874197011629534440327338615471087589064836257269842744116703728191582182185326286304260494419814282483305159392217416356408123318513111303612812468720806522227670621999131138881451868284793126244660640308559986608066652057776232246560322173620597071808394266011848576577430285332489578825639633179147026426948955715321600016991128750693033333724977183930091078190919757082609676401960210513366037109509147463456578587154962667983032957436648157804096266944162695864658243878440527761123266292710903917838052894942307327865896894037573543540348583654285162234743529372641244501082793008593346564877053374830851006957038176101169849748278950422738231519699854690756384107295648904869229463586453877012238711929801770453776221730389317451735461086222977933205004935535390165049424427527923815283001065247678242963091721471189295946757247409164159889244055478662566357607105950385455765426686231430135470079518082341862061480202623857857406766779782397398279239926592002271766944263399487494603092209448664494244354016195868053757061109611136563507997506854760157573079780623318269391913002458123106649842257390334737459419471851617117434144972941214096295705696064412321748084869314351821620932395354844422297872868516865747099593489834451015283027553631672533950279515137284174818311946404545564010308971257535846689525626478771818671013639823435224320702331452990204039380824505777989065135988344828472050833128603735382220473065748754478952518658890369709597603731007901320246747213239427079059920387168430216599973910543135322823045994216684904625921179322903601327438967967436024495134777597202130911424372883769439238005109123598203118279320578879582447827462850924047428181593407740377249425395350837126955713491769006643791455308385599722260774973738912091984525016046916225668728585558818384943267771881690247995733979281413983559921680865644960959423124629777477000313176778632760263718225011349948372533468299571687087914177617151973152653771079199884646163245430497208503540524870675243474485195089966931233428748912664697281300256670769935583277790527358902726311163296860677799472624049734250371597388641849849215195885430374374602900839981417450071203448870752564073778675664141289804587005180742579563756070858610130430541420903479862409755953473212377380132601210565772489295672178159505289521601083073457333158842100597361446121804566957207913538731104841301619911536582109171682026968420860345928074478026614399531452778942373542055076231780003118043805093932832742758302529243441958037253550674795985769074859905770296034864425718998246734145646937958667717833695100759491680004112528216233183206714005638957598188026879531724447587610242180895550973701387013596875596771355575673059341017203435264215696248526429173742449323052514804191489818897874218678974728857919838290582159069614222788180868410078795617231068471831150519804470406405852413443404894726041218469544188059819784373785884573195259570918885926416268179585945202705834915501686958143339492156327083386847462259685581544222432992117112813859792734173074449853480599854250231923437287424884625721783213003809372540147174274349400327598769553043967069118365440402107284797905386029947755428803575031878481377904267763649216792469969068693872554034030479809231251456215519641044800635054483616035275666626515213578866099784509597659167732280241885802183813839011261834893457363739752210692964201418560011174857187757371184520475270456972052321502909221212847761007949579804856041460361247172516435513428041749033514552497907299403979371782567967413423842910348699233280657597640413400119469658984836001999275189167338026834177702320214308908961557183815187304137554328588820972027171381555236880775244838414997938333026213259041584354519067519606761385327322787144598098495601509120315221633676315612639954867061203774329041646212138208997517467726917853876957430748341334521990684426728484956539052111793636644852558156407889896904146917536981544843122159551475497643771991372794336987808326639311377565573545271750862071065495843364693358039091512528565199845031763088877755897003831307362332976202598377694190763139655092405312669917330779288758439785932324355280391769659131622740654432138412849355636742227248790106989810502916389081866959233513604011043061723849715611646386734550868706346810920155142072223825680760127429553879766827192333890573492747483862692302548120347399974409915140848260653730289853634669214200088920142363847706657970374482984387907881386795516195357422245514145070988447062115212717504225400595577465870212693329588990299237045605699017122505725476086844205191823545531673275870996321820180598369172797612432757538682562178345410265259694877436935080190429598012582701266730682527924275855726892588206794384812019675177169571914724900194760021925022356735166056172161601750779305123972519382598275792213294014910309980162393524727201903077555950651104822874379094678538166454715593296741188034622951565659350652726419081674173617559930753667056528000519605982515684496038421665151611393712279469432389163741827519507095143581296925260356676084454668390808866432914994688613831674034385019925843263980205843684270093328180407431419479209907702445557273627244400329979669287954764131146166307245229620827571410207796851276924485716041690958120913446482918679137735121191394537803535485271214493632197479251337727777549322187613687092772001209751116068342765928743405122236053186513883518831203296778094479536722016141466181324525618259035568952593746975771949279647326182850864164931063764926787113383909599230056793021459200102916403085798638361846152641287365754474866687697188631020711329805042707686764580219326376509594313648256156912586250483094918378747242347010700923977666147897046762224653584778785620131454680004476560199972125102333226563428525941154525183743254621944744505596018170115656385384605863010346039764992818742851690435444408241240686627007735734234007804804692914572385935153632369265300757213172433908926762216271478928975076852631846191101377934471068452011494110597824267258614095669467387823602020146805142865645341988898064552532770008240923537437463850847884302694815424368769840883397833380363712987488638558699147155998842828009507749194223525115365684081628739395722563086406120041756873600569095516701094426289860754953894792006430946053386358529737942983449592700835030723143465154006423561235988074994499924729491980286043937962849947327824476508537801724716444085932368946861721240448349525638897142607742247367979333134388128025963354702122239799704920087642090877334218030523345758022571874537131698452125779259373637981439806048707960816337320384087582498198610051929571348891268694013434584356886821285318653925939601566160486113617169174475416587236709616619639000333021981887956756609784150329449451908114933103476166784992646805443331230038871048040880063434963012077374765752590966795294878880173327783474288192974964575739992593793761120759977543222042361872813964716467633691999446849596050681629250919893632912989245289161932653076524742900314616125601067838370856786796327160567045978832291103890189384742347616270508751168879860840245592404136144315055996390573400399764672150996419836812842630974772793475950939802801616842938301833970849347647578325842594130508338771052067003127886408976140535011772277032501434799025768634946018691828578500077781773111722056380060130006873362310983816899295270246290493220756645955058792168934800459097677046478570989115604971344512092547583048802939732698357669759357965222539356681990434387359407273980216597622373548867249533196289292277993955526999726578205974617688515625741137189274295424120509054623473782488725058709551853588849260549965147370263511146903342842113424003639669950154929981801294755499833479002905010330965938315579141776043573695413444623097666647751168783067585794438069054040663698424390643583219427609077189142707169923838738744482880415714114456422717783817511984607112112844487238889306808161255946669031968851333690697057592310109502017194371483551016354948052497350130624435487112392114052162505665629231381950318925190676232776968578694247807357756278791980082718781981638423899983106438399999097821712146891417994488082454615713646403624294253130384965114698114990550036833275675733128580755327438046092864650613881812904703045017885398962828948041065670991009446865154006308896423741835371453872663048297124506948457607265443662957044340273336542058467065421786545295757330785311401348334449350160400762551222598895780199172028747607578776296288980850616419865328184651782137287255998477533972707647839101132363487928248883069186199918177327123054493498276589279583395815303094246126130616465344807029085757977489033463627983780191721775579767730739813076879614787332108016202082002954178772761455265313381436385163691042838166152166647678720267838637055130477953581859482813049919966042371735638707308366463906692634502551181839167966016312706265836330323445385888590899470482232893707991430737864420636864923534570980149982897252637742847644134123723990091161702537767391656711958402666744115898824809350186604007946987930405893685591694984138087463903365114440383258116467601495179048988335593721841238003092346262114290842739074772276013706600932773179917340433500589386256123037475982922700102114652715767758830962064955151913646455272281802094653157535501373819159663832263997634385402214947111718093498042455883031717118422005606855752526951066893311649227968293816589924080608939977493118824181563911264602017078026928564369543762885192415817020082082610855226493583493772064699101762737233010443393649267577117209290334912527504699548807651427771045427754053161986981124654414545122221325775634398719005289854382426757906570127187485415857794697254998448546496251035770713502418782150425686310531818544857885395545098660555556893519826340699447243802717596537614763365846574582021964404890982277158450068981950968933433807461372997232357305342173625002769691701463779968425926888351928864488317508243619844497988380511822552115756330467373101564689247305808300958447592443336047305202737438649798181482246812047389183573434870672324215962491230160595729480308476618768795561574301195926326641000959679352597661277691791628449299174081337260407031029986797940085486533759265986780687012797839112773655677188063192239852661415659922622309551477489827403922536686137018814702745514443419477917457732768102550151992711371361015873267733027689966918657488265703300772323134677756827844835256260880825327307624154007195330165501084785107224061372768779974146952829763655904843872351762847208380512509645289249798174081098495574581657545744674712485163429347904236105848911905959438150576172413138875487118608069964098125232414119241451004363896353418893190434789817003002665654614475276384967800899165311187003400737588346154530563390290507515019600138291812151557316839795371445525629978391687067009203010653588028351224582643213803144821939256441117132627460290774230470532407639752607888879830911559931047780720198534867831260930264221674537696732455479496049041636731412329198652551963895207807166478753134932641852098400136828741571372605427031794000213706767584786335633480175244865224490524752636636901864725158205274407603032014663235868151202518627648159656850493343482321716370041448327280190605633160275859452616269569254129715571114555202259382150219409010041046905558159746911571033756403180491775472531258938367607625147054851951369294338383721007349074595080584823005052576538855924657799377149869874784516478568348612419632597292292363098497048478074100914272747722663664708491119926231974364275404279592791251947383719771968503150170461987881027514256318886472089563536424045088793803900503847304217883710967876341638187720685327291248366869928067347975351073730999083091886525856346415985790800123191965769513503843570424117248672051525566281245648039339581290750296501951087163181158136932844471297588465139240329908512927543536511503187904687378488283826055272678302190394432179990801560981982030640605760027594708838335515454615963875143611977055121322729046676616236403766820899879801539505920927464658881230267451274122203699455235700645329933803135745355180190542598533448109014735193714893592301288067507701086223821735788464089943862007367066852451914351361257987416314202702895227851088712282190383653992777078337982210615083791485387666648936467660985344985098388367567773292114045210173150202336943568810604911763685339798792105538568564126191044391582985247168669397656229949234365967117243132738597834584771790407832954651917042864879038577622546218026741459339798113789984714861305524096026901144545903690932398798977536854892545298513625360411110933247215182955758213952304424583054761555076090501697325882290205891192494900190951527567355484011094360162482518668226679420642708337169140609981455124558122274895848838959602455889046996102111011726017043485849942442080858934965894071653292088927604614282126532558006054008983396061214111616506874440769848928193209261735543747920436956521742261312015151515472147162552936322239299121044127846901889279937497329938043797613156347177169545082968889441357704832840915948726586630054454146002178084400933515603890215714905667367886919494894899954412642459447296084305709647429977199768898839287110776969081078138967292338570741119593721384809287579651956190847791282403281445545029062166087222462126252406663345502420827053688414150504601144124474303761499384015483013231343131069572963249719616726388645899006254970694542104913536601497347213873115148983047673577337736620610431611324346729930483634938574852647075495403754954010379017936980127692772720152304093507369880448774541032906610757920496460438668084082719590690415329977464401482995775093307601412843762024666784494190530835079122855936865412686769670349509013913567682780266566603719918977567680799132686279050146024302615374261544842059444196172167131752625708972857790891127446147187712787188575843221090601331456907389016529295018861375798611464911197535016512880968216356102718510085454287868959433705514464402018874653605761993810503473528693924725578975014272794068320609487332176037583921333843754100688723415264254536043369700698970622379103529017065340224490941189105394417296356711711679033818601612855128805834033916848395398785825460124366694635071798345382316163493798348898678990334305358747737772608900314656899837301769297767875939605126372424028415934559589672355537209305907445911406004055607967935111023730900948116478937068654937535101868724206205577128016799985961029138289797904147188162125784626714654195926700136839045995462626275481132777376328826119601600257586465314358111261482382311830652770223132678155291427630164429806478502602441262487941032493920117957885309365035968303676893488909261995512609334320241116790178204912831202098273326530987398263396389992656343046261710963794223608878352932288458530706510414095284703010943732394702932384668791627417480295536091333357896903135851003393448486804515292312799758236846729578891284091732783231690772346180998693321305561906007784835627130786180366396448538930387881241719017721428729430779172829416976256392635925414960383689853273688503282823044037681302822760280423903816683594888923326264522229156263396417384930222281597464026067703823133435582301390303255333738651847812909025026128270859177242287983295038911012806338674519626558731890454481314938581773370514969679448479578920386473243353155772236929588569188008720186269472182902880158061615125419521760348455496019767162546207998182757570170019134262359126756555077393818885384549329349848156772828416505634230163313195336832410252431397359984035349224959345902619671924522004399252456690863470318132566278284747965314911839275366288313253353833000341042243622102165091309252707461900983857987501726650063030031865948139130893726376112174370219478448922595476115189302609742124659388373224407954161155183566432705437459072362444208633073550382452958336150678566645791070038860347054687653302357420576313716657263483818962427935443121601186165169812818592357561184103756556774759112985644225805216908474206392558780173201089561889990216262548142404365203156981093774455305868033690500165699511510373479803015620524754134149645301239684957770233137154701893385640801971402214110678508741017221772173023530091206772609869823777826688231502678249328687461929066553967062707730439754380467748816182251427782762682626985609860364118966253775403087771540537060062479723922176996903370248300164475689869363577034278954176084858943754993980635360025581605542377124218417414190879565880874801046228528879187359868893373341995712346687891861547270148456490111781685911091983236507060525083074459016364033556674970395850557587742201440355848641519866771138012325014658955209310048897974371362951822875687928664768632752954363777241116930628758800915342468190763177569591817124728491364858616049806702497668277149931818618897202755151897239730640840357673378885627356480955148045480608402105151856596409085924069613255960667253040551464666871704040148006947394512834600950064382942873138213825893606686149627286206743942136813323652581319903724401213940575281899611539453982702334599926358971936013567453809204089589143332774602018788569333150797315710453659993448085172522383530792853329482627895261743126094342427215385224403375109118945690352809398437982471195000574365742083094093969393449409494675992021838147804859328973288494015002303338651425344858505005244268916784420367516872941464633104661404423197973304760423380101815562430596890741206533030432432340198805194519144221492968667162082116957521172080061805776361834912190807128047330996574281329231469569340908296088695981566776311605798739616870277376911835782039276655533779138713115455329576950133113390179511731200799026272842377982066401132410719056375383393389045160678670223029233674738147220651719914075683512746854680338596819569532587017962872857025657924002449233707770374412523864539778150093897695334579621980348468776698120284810709506931273004007406752704699425845095067486535692685750340776856669938256284782399795573152275816993880207547820675513416079183472405438176987798702955211213659670590927657895347765914678100317428026686413892921892288044591443901389596825331925612074981056672467948996942678857306915202198612707353880915615830082276995999450560494289068811152213318373456436149789768624313159108183606359241631190546122866706421164071614842805662281455064081143040185323904488113542606810154328299493328030451835753743786674750006041612914841170454546815051049991776786877140423220981634613086642847925988998697276218776398501165603079904450526723558281867254526213647578757055674451167500130813349640793433638915857905629144271092656944405480283024544132358507874650807218347853034967987980419429135556964182275987131315534897358724403942894164113724620569613780226638077132866045156021783978514055245289224506630861127230063093390858818854155700542707284185723251515476263022439741117553065778274919210382078211579163657953546930691857727072515815416319798140953928784379473159534008027658441354952361865928928415193240471533501936330130850916807009721898284938071275373748077760421775671990997180147330184296966846483889553318750758666644632385661988379529526524162250865763780699351449706859340410080467290969722067714255125603226250528267556590508096719380920847798874897988524158322117284354125409370142954486534951017119366372614463664109888705775467172009831621408857124149243578110053229979118277979269029111098413086283342400507759974263395783691768508979632974014424136790643242907854136110359160523914814751317426621334916686591227729500235644422146321670670117815033182975534239580722308903813966553783059791105908597308995599025423833816747987717828681002627586912302803196622120007148956108561547986938724692945963536211731364805911715176821348463399062111255150936486243114878252843207979050943342375968855297990821967341336077682309756469820493437598714245281733976639722300780696050773902437464257689476222160101742726797349434400789131356015810340997707124832613792327211904151934036772549694525157831598453929701795898369320258962952006602387742502113204939967977338001634830926197254266167342735346890011082943695046204316177052896823936514200730930312987562986213231698196507374627417371157368768934330053002731205359966367197957057337260351667427288809557857587013154885537605209927041676205726950717180567705243502009066697101221739826403431763261303808019236127855456423271509233885697909833941366123535601645027634669175197201029762178154792762399044583795841043217737890535850872422327250698597687813437065525196102652522999758911746728122458064959770046831556267038269350921599134024454751134593179511117838349416603618599211784693250829773970506320059144206704373124372196993717474665719293622277184559703780226860822211986923584748110530783265619364253754443286268613712131704136880319455669468617312909351727551095178924225888091920621779551205794474132517618153488666230437811584332798153086121673537730682392347454261530705970194678678884764783695789766300362305563507822159269454824957165339743862280832913502680973151491091542129573177403860661456915264027389328165575849975062436510360601216879222224559574327293311623835009701046953687483200062928663671136595058217878697946843896657542949853801310805005459034820025040004184081473271796751479198489923488530270423720230595785723175121355532541336259830530843985621488407567600515702214807611454653456597173539440437909322192648834858938517996517078389991931519596226383070544977678786360701788542413815854191839420605294546299396183337256690470236758446126349455170799682588278566473654549935029860720164477785372758600136165188695682392137164264565912490818821812071247967012547605517993403354164437334811737008764641790572744047718805236663947129416206994267538495666090893510308810258339656345089964698729022615868347659872387955880622258981879621246625598156092500558702887607501300875378210241016960144406839767471974094030119413628953984073941569856968360109241070960178056858807892321695632589832865999389927740070956263219628072296576533394034383822658136753643943591845649827396630830626418211492665654201485585305901996219477889958711264228947445579737064334333479216659734225570652396950630989732399281032047003706178899601462839298058509988079415078403305023806924547053444832117902007246298148186928990043696440140686488053698625822109889007065278146750740227021374668323661036155674267700237742262541571963423377420594707793201505775167004180418591285337051243748262127124093722955424306250213865509483023201849011879655003461095978883513878042653067085501027798853605153537827640343876781800251686574530143837107279549443028940058878165924221728916725100381735088675559937621764377451947209183823960640058365793536574069691779973725954042552204369038569107557777657035788280991233943153084680923725381782661787243644819811367180753640487456324325903908407011546873824224746056791604061261765280586149598623312589019574894403789157252877745754415334353777170456615823650255829659749841849194832830105427649357464370678701798861181036279796707612109375702604999808812123453087515293279191806116380875198129332640634356633205993104169388986965103935540614378547909150625219135160282025852609257507900547944736850517088466807102882918055642450831295397403925637597456674211533213220494742082856205742279961577812058021179470644849359949756008393770906045849044949749054331003972072614728680676688104244050562705535671805574422810247571925175203996120985162384367309410770112694982682881057062681172429200669752703272972144526187103120945048130204141292335510090201217667441899643874926988191442243796373932415521227466677585016185922427150660854013406881493531123763426892408435087548397728289345378960125072153079569768069263480093209988927162753471561281543703303423209655542550415192307051003686850695571973869682483230465497241986274006937012081433988813169024021874264264294475918174478331726734470114842582096763165613781317049978658170450160779743904309866107014555369957891624276070048761242925608467714021044969534904543479951804063677984832178048069514116069090671377930107199684108349778820223805563069561235050400031666872588371712661330169823761880847041488929624123824381591487086118199324031528511903473932049816252537554029994359783767957389607049303710447909944655656748070714976456564822125123700702755183039559244663354775728341770107126951193773244013510096220889391216292873538528458948642977565575787310146067534062163144831638639523674488529576170530944853690711746321607606858105798675974287980742221264348765667332782352095411671884717158825122531266004343223409150723460239003593715933164556182422668126279750572945437457835975883389056104726212806681156476671712615903741706879321090516580775007806027990211619730033876727451071961557395814309292532448059955533791129736117798083963319974226860737732715582450170304210042198101326726792676070773371482872041205717391422290523212067061336649623222918922334080987639323538149940363162653890955170208661870915580615802110917690023291930595560862278659837451506911560663457727997553879500420571080845921041556350349738210810602588238820450539323128825642228984170623653421232861218392459252216549770035230200714653297585750057660005894144575483103243784206697567953925262258985371349206336207570797698030893152340669619192986638859781929522272858113555749439642358293130840046335664244913520632283241477924653564610729853729433599553623840596338731092388396382381745940391722211570326980646866562362132350055950571454552521425626579044785620852157677884489743208488143118027150569460594202174332821138014498034910356999290082546920329178750046716543623338184125059214431109102250764441051252094987490528000043819402880269676375496549644451410684330468783444393489863827628293021803756866053563782409539164517074544415630392171783814626858433716592473700164104877330604572854385251425976200699715174732396448375168866322913169055691702330314649893137366018440066134559576361803344658441927954812289245906655350342850781573068671856108847227638086232274540268691337578910958061385162884312071137369556730657177086083697379239290753173602062536528957865677060012544017630829514200605210260882644397999666854354227203586710395297623291638440068976314187525042286693658801420567564419086215580273581390718275095892019887693520862356488270404226920512866048080386122601400856313541711647308727566415193805113257063778849932815006479987247133228890274661599620608331470925366061660420904424534636482989963401902819284179551316741560435177139074364827170342749219657619773138557964688202438848839963783612025824348105687378859286692296170322090111053227193724367491730829759858875008791008720147845257440276809769805439246260612226350992202877649363371111984867936227535633434126464110890535041931738864008122139366237267221546295987710853488659598696402917769500313843955573957008470016345515826396750762366571753662554692801371639281426986636190308342843553568194911391919954921882550726396966697787434634964966757564867058184545600279733662311364282197206569699969265141622513233978583747174546624940090049575398041407743071535435538725425870725344501969513779101798292832041499871763673666052954316550203292917124048579735129254219012998346341928977908104361970113841741000377592062419970914466688043344134882734850608527776102176480144295456018563962039915091413928345255074019022646809332922405868043818258501578271279095005529086610462560910222692494309357309589501770007161293033335947702019698730937066444784366587797396673548969004535351313352396517169616507259313475809198995184389494966660065262045156950746472892237405988240085010233846623189888380514465624630110549747231464386766897098839634667759506239665153416376176676611280353634492030619936119953587011400379144228590112581805030945124750196157985101418327185741628895120771416618897250227521387310894710824620465544429453440145041158866396595179403320762661867064908002268686896337400129001738518698418830134485518917418419711699375691643625391295884770409451302524911170971351800184566307407533044360629521610719110501142287186126523797375747385139302876481138944807687144899362671361931356211089619344492801842423918899085498872445672445851737997418382330118626068455954438170744807419511748346410895564932764077241462675619719554246308369582328393166418192220017655653676942635032519091675209288273411129314239429085435129637713136707076112910438964391914774044712967882739050311562810576394933500610071105544918038173284290366200840042823824297226242561024536375312683524069507292948465919307477350472255551631064550867739664456733475840654565921675521589404556655489208439473587677045498462428739960807058876271568825763349202840426069217165788857853756575766201529240106486917181849777437878569962919609659403100824045198140429437883526392221400198390933329449957058326331755849730234737779006434932860168117486715992300498608281943651637437060393698761096293023916788541186300595648277721303494826365808476070112458841475374902157987816140703501767924290289771839297345393741945303261905656298415823110920322188499556907342376141525137418690195109992535658282795749848769987034646252597958952196497083287945535177611468299326372601605152978800288919560125289210496135503101162475842941606585474524330040799118433473115959429148840603247513126693922883430275913484627944350685657254435338524748497394635013610085513708118908300320248932954805815913800835030548259770908963421589030557708574464251140253839264489446250598912970520929293842756178471897094008695090524402324191408777939973254927051874110719853690735598886641668794631926510354952026001250687970757760075221562461150300736876747867750917496203093729557186006440824142548810233245850114552028969461832624493304058393466805953116078610938183301523316846766347093347699868841231378600560353467843320095519915462264331842443378002533255023566635958969425071982849040982518184445354892740792251507112739197908281796163194465837013644039235453170755125052800400222279057555341262127520080298301949987210556100040322737398632133347939071556576715902383027365922645847118239973607974973115731425162078442012769450830491508804108905651465710173290412663352558474445299112993128444920232968413891186927071382073944316660750405092647428567416424905160980650944929012100080607829737583519297141180498191296695181184785462200421600375179189596030546652189764091197647794008114774604340681463155758579230925188550269025664209852526103940371208630816932618458000282176939345999696462170434437487010987387201608540970044221772842210274085609105891248680725715213460546908846814510517985277144241189896383350971096974123663283070367407386845903244899185118598184335491587160878546896759058091824135771977290138146886835623196234508952806285162370626652755896653053516631310984908476829879196165878479439926611039797248612701877283372698749320529941328500838608470832462790746155103008414754658757472246712262450722993326541495081621352761607596698302754022491944640520910197945615994363812369032837698336933312057415307233260326228894198841199903256408033785306483461932402038856438655459836094993238228034136363748950469024615443343355882241634716526222902437419222646253233781037540611870472031939760079479152162311825938172060253781561500831055297908935835151939428032046526876997573881544915187941115220681998747607888309267247010665361864867541947008678582651399052924488121026598760717678905516255477960951037349780485748210170100875330479903591703120398306023875306463128927882626171033265739183405585538508307908092205306520013663693966797090931068102242314631316067447993935321565714103340179049271259833296404133688178462397714509527144381404405283648425074687499380864237211033605319025527203048214152681153614850424767218061118326521688737165127874980346541924630051896268282787988217392031577704881205289583738514259868287129175056997840195033960091596752744302435864604211268005531239533541538450965054998084917746275747626681777061910054906513720444757534423878364849837405599328099639368504043611371325497615433812044591786545159780969464721906788842435030061610066582231067412761832477791916124480006566759942412768148879099501573902809222339717439928842177167278543856879998059973021271691728020899187139097046805178455644911731565887367210621299957905945144661641842511884069665597651390680673046394803748051565450820871081188725216089032935128302398682239935221953913461281455659293093820825797562788899448497884695838956423964461705780135503394310596527965337198394266084861104923107592136447067722958680203624320388889492637670519060868549052763939221199988838959965329541340076291410783025610741418995021977701112202722201938502914740929551312135327183466438613325199884365500997498344697411055224097208546854042256084049190270452393619703630281773840661660237243897290874828304380487704015553457564543147263760040316965593217246505921252661730064148407532306479081437469249699920567420716822313966930029839970419917961572231852191019956364683792855764028960905063143660284985036958839931588907237799967238004741781629472175210827005371695251211762148358146775855757619859345927994545308074407417741296908407982668364386133253443600008608173054844542315598996236976575328718701335967156736138461522825574129608253241708915375990246444607623086528119273180327251358604961120923576820859914865925369809188362728735508676947340450291772804468769864132217716548844412438706461500934014927571171784983690564072011393026213688178742399007510972034891134580316568574788303829957967567114193781340136870038327957063382154170096274792796345526635924863754747689834542385183934280514910349421443338559753784698071943658285529492516541105655759510209144878577347373056029226873002104846131599985645713718642179178116006107489344846908963868431348298621710067868652414513603950821488519021003330529874081963453170453508480963771302011916952203121882943740277435466840400928653477025820070339730459556101132378203978126757924184225260645874368116495259013937950831850972186092386453865410693910983561174249466540180971900459863712064362056076410303424085816019663453111741541186344581489333659410922752723254614641345742465833850205586038977692075215583490876598864385438960459607314074360994793327267191312217983169345833146129574871025506279968679436799025561502558089483681970709837268252776592200027587481419684398431507523340134722350503223808888271542327712852498077380265564781683219536208989537500696581443919657666935567737670972977669883836687711841938854503362895802949898574665182904087720907584454144374194693341645166391339794815610048895558627677218618528920258290803643660868741530874006439877216553337340995288627230382105200547403009526521483603317308527107498488704508538724659936508453893475321998428765605956995046511436913333631136842676516044131686697085142420133275056686875311147985428537720284385581161140403119304636825941905609189141639459579661870337304890404970193276280888057825606645894414147955119252706442208155827890397149434699039736833560348987291339507412497788849612539505171610447879363119491161625930323089441924269660730413580004988977037508298177633955594224956638314886640522930561293518316159977489562275610431873235726761108369145756435073032619844909701049084539413373981553176139839281846705533633034997945379207852041022713612154439320700824026040076324167483742878746416543180128506711290535944353949648802392348161264065837854699852829227068002192171050667503651218533095968724083040967171339241643408642395701386130486497892072474775911888568155108803270329653541528895545643629246496623479473650054876890620588351643367370323475192018382725723787857797231983105917314425083069617885582558261986986210100019627819754250585691274073368454651533011291798078901347398062234611660172600473746599795746436305771611596717319405582945390979413570842538980443595001053246370529411400809366716233454246140270947967224692179682739356164390436628322416478957506310426139492224591394201106002137778403833859554178526376062249542723534164339231610878854682476478218365693312796610010070840625316608146130275126204234899855231915046477005821321171189731489810742504499125819102186227190800371307916278206333152669206426566581710236986929328422814985570330351354212111450822791446355350132512058180403034054851854675192855066893613408927860644517688351108827373450136763785930140239349983193622710657178878160169675507424008545484472913031518841405121167367101643555973565433904339842852491154872841941168745452812360641307509900795706765530966718843554019915389278701538662848073359947318136797847318714274243203449472485372816809693856426611675463301294646882254839396550528851095287800230371083683324408489517614214331724536862701411420364122648720059495712568098087842487147507491564658362800731859724721240277484635701922484530619384549581999683960234742699969342560297710868912981729262936229277183597401516654949436309482479928709748094061052264653718893419598949912953395930903423232528551250429255218453495941812728182775599940015689972186469455732042376488821575483130131599560613075392445995945514398877449094870191058356527510667661844150173773764056958954594179083242112380413505097931190105305367609240333299710840075199620583486131548325150838213939216811353981372332742282919288273777893200474419024723902994008036524224013755046836111292157949989689990509595736752321886705030792244741977867340196900063168371113907495700904506622410323063047992111195354603000049144611938308832031238671171412029054732071625625367568301616376891277777002094538805488268466598438872431466768675867487771156059171637774091956954176312932612742231574381238677775088416751908003098858326868529534248176211244191791177232383289714402226180987056812303432666547657992183856503374244946671523687704076178847409611904923920023682625516892731591220937021256933960367651415139068336308892327155485474951596672921056075645509379404890267234220827008136584802704366302141707592109745261835167525119356490432344549045869866340706215626266248540658235966582908649985435842456918980394773279853313346884880174066538834534736627224765625532121078716923297707788540294645801326691974239518491579981020072619987526146750339488467632078227509429161752683711457044965426329140347807251561291442206801719949124970577679108363484066150124278477125722735732727913240911909463412760378103575951939966444260372125617243176768311006207637637396793562191930182784266504529615525104202836832726533330390985283338411522281002437278265383702486876177599136339061304344397205224971675766700468815406207042022701517363907286474154393999491490044195961623539996930563513951319793173270777454609161873749414549520643235391220749707629199968277385924775155959123802606657067796743815292346820469404773785139631352113400708174800597661412816625211342126282661697618971273814022122985831897776936972307641899080370120354873042008662029383100905977253243517411146665265449711717979359928292118820108338472798693987931447183940698985542609950311985359786903538954076148516891888815585713419400474396241985498316712909294665057474618720584610784719610210206017229943227709818902469690600326474426113045455751029441817307425737662374727354813018408932678951326694956064221592183361252064107930186446641602279678024932962089031761285728548053150608708326459253546878320786845941655467972976114380402263162837454865319196780386576042226501514713860283900565987308882392211429202147524755707681813751521077478524896765254301713732824552471196186245811033427272081618695406437847403998690019955602085066306862294407723397379992664471501896321551955382583559159463815810756240294585067211145149932197146932999874214054203312021845486882894845309398954147439670911474304035714230256334813246395112278380272402535073258923331124553087110315271107408178508177747887133183025464771848452030938948982323139214291683839773459318941379461270645682993911006872547857927743935747153344538013345238005135341675785733369564529583139914537068123560156422721833987083404745022486913104732119281657474157137187187233064502235030155984362862252808734481839555238165810449497770291619506675161462379976131614593894634164250167569475112517523631778220202816290828675790921833180632144701550111358508817058019098229004394715244413535735660170202945203980470014274384967295611158814689460123746706820065958181460115267257284678178397064530206710041354462664134465612439326360302011450313948708918694180324738309811008397519262874958925950977519486216748537003698423286870350997074084529079784547781390340851777540264628102812089018219967609573064319082493817282906152833575086036009395447275421658373669797359867722917937140953317552773026214105399025513473797770438076988859416512815352677970172275379103873625147861769259296251807875719713668801925108735899246283637745607663967498185066815066712116661153501581847818962541024872109642603307496379087608184152756175676130858439358557843030623896586674524487141357876762970098549435000680492003652357643799293518841195316165815652958785866715684425709122021265137210813091095802616022044809289820282097590586527615230482247826275666563096697718893418435561380924833320160247536796334495370819793433796012263977716193066222209181417054753040330457460971239854105328016230218874953216363946293794381291577439084043441200437130002023181901076991695801366785788421951901943441774682333932707782883711384242705678050925521859058274028667241385803331749500242583553461531050352625830720354059789890526904204903074354370268005109283718389611008273919072538454209192088418543578264515923976774775582207789938328375816218624995352130116937838747841213713460174336713848713012394304324912148238643342440909994049534037064124216411466341234111592917251749325937545154382314262599722302444906551062915403097722196447892217925632839184643918277957436236081642347282131250672350273455959242503881256978274391054202020300175817646930652983760417434644120383464593876666852365975304924332727290011469426794606332636931564443509546766966436639400424636206281105711122057576693330506554704648411537088207887795036699491005557064093384115701130216532181542470934537486317650140868528078167002602709359941654983683763441875420899490942895894822730090693336717330329391073423189650228649815616555176468962366415819360465442708728023562490459387329512875689741896574537477806860260847534121553589370976071472722304532487569178658935956057851898695865011247570491329638753589274008631731091030781093423909488172800684260129552435794429122090943654081664634042110030004870137004186984762877499055868281091266973122894411835215949659322347803849639577280687555629131464322538184545534245342376860479709233060081140905188199921691104977016597374758311156961040630068263551521449449164845022555597363775057287663074665643262111619584905411439372119203488108870198025005237774174078998564107170249917853196074537196942348854391017755084238678102849577355279502157336944690253965564529317645735948421085957396366144549207855718945432288488486150560510254159237851539592057306766743627136861032944399945063461924021771170367684034288754204798752545140283869665438894782619698226266461952153617749330218282790857932921230182638640578798786708028103187525877368774892626987021763103451506640917462432707513586993513002691229433908583296610847219924429128517196678412654304087489612503092863622885369283325970538215368432983643703348046830725898927469359055833145732131517971659445908623384252545550869744122516239494373567694296400063897895637243847721913937462541197558217020660741910477419486612124315360776977464980268855107024458596451093455305981816923650793887947568155738594445370793979829137156917620144232317842371819003251913784019596646238157553924568325469095522037584582315131670457099023531441941806881677343409470626372037732254252955134355976816591781538003546592607760203878034119849851702174846596462152541203988659311653347855870165110853002779429339654259397563802485252691883677806458230561895788645142769924339228966315477758445522356581434625701063137847499320075793236821870525151784264274072406324308051790245843672735690509599242826385840505011799795783003559121700873417663295160511608461912169859236255852422060829378994498741993470681263020319700586750779770829375299078357330881737164773531053225069542391705312381051676139707372231170047356812396675958740943321611527540949923530644202613028557138475162383470335390915762596579344129658293458396634315110783741847315620700065651875077854927224558345598853517226011330418555389547238717004237800982005443433141689679152610369084190641564211355509105198222424334716345245769428740305716848003300365492466870706526433687583002612790347920472657764481963417042252375848286024053748029167483988029918859869034982762485639071455302156108695595012832189729675355729098237250571309770536968142987660239688897169587052277729875129083070731295200388927320526716751335802058388186551225410636518389242385353701057101735517973171807409537635829850454542837369381314483296312709843889045974387145229245343852465983044369585934914858673318711008987376245170209954483201100083000106312150802793178538038346036272386940154672204647082589141528359104528981148391632210988001017776512680867361963271544239041643987752828243095634545468368593231494658430972862810521601516283349798300303692038123578452003021517374915646254556268196532346035594654316286819973993197812331355046020057100239051587868421411644820171684100518236923336822112373173400757238595345667132557217591676702267561272083212069189092353926968663444496802174617782982905993309054077224021593340252956683413688568620460587221964026963835608781963565091707057496236271168547209958183934671492058551338126564092264860165436524440531606827090031713988560691983448197066345626298020846052641741588169255752517433394105938741024938063099924745945813987290428682785100407430344238464426130534322976800627541579782582121543499951953703738070273956250600666675368530081338029497816801963265073735893203274070919590842932864431572149883591573876084891565071669685607363429578669425311128704760079212828914124511922912897951520518618386498872065326825001696382219696174418602394947527973802577541060756696269012361608147235749028822660398907578451770067164061074945824387175946540901197098257425201053712451496013699026453668171102913376514253858045257152049288637697102844858803247250916502106934244168866703015584034637848596455581354572233447837334226597736254529109137256789419915818463208121856321558462103926579048671780492823006429214261980371119474425663016923834743351739727497722730130306748919302851482957146513738317120677146760579153545466315779931720360686942818883309124914695372203970551077784727277130606954639731706914152975057520759291440091385612201250352827425897818537704411431666953975087482546434775073435315762258833708665351507902920418093968719835242048736863516141294107390854123294651712824883359510644948218079482647479429667478029141209888003684945370826083743195957057869869980453093478335901973214236758957127859482681338177676870888668308771714794763946432188229741561967071993431534859066380651136125971824139767732550940977702056856819303759302722523002407485682097246359482715392785035840900571370324745812382980106734278278390961764127693963179321995622727236691704655907297012931236453953459274665642227675179554571969595730938467752636217685045095077989881743811577451787240121883785797490345462690908740652025603253882621967022515452172345944742556807424291358334196335149746557889399739729911859285274442661018124298872655740353385550117420342740313115856406535089421094509260514633178542259771645089178783142729914699038342548948860656552984652709964728202902568417799253709105774252080726320514868504432307963061293166608213326564178436777049680553783610188403391654705422254946851485273071355377419820310660050384397371664471431096520740675597547075312534288683981757794071126853038922287505483977451254003283351409115928757773021722992436106617952573038698944438328475413273033295981120671874183653133521211446327226937543696161088242841106178620024489063956172842681007950478370523968063917607562235919866519698800697761343994254737456418756050551428622506727782637877878626219453055664422756809809345197465640855937337523369739724936756168328801188660240734867215784068363121748281604851802664675287881826973003358541486928846961413653589629087202576459117343032172870859523390269248881821726521796189144452352749369511982597138663182715272163955826620162144274693830027093613802198312285715781669468848171813566210092567679268563343086490857951214019687475226281162203854544061725524535100022367591273974301850926215682237612880643362467369294758801254947061907622461559450738029067543769685022751803459363507514537933249816973103728704764422789496501599619448622948707469351912516663947637219020783129956365561356074751587636283012386377110603740813223567565996535797548729960478977639084653307503131330448241518706261294880866975830126420224942004975575561034226702559932447097216863486868275876353736385873954107685549981968793363483852830896524956458949580381369215975691460793828906014354816905140216700953340029888658709830250574260945449925710657588282303534164910247787082407699547957440222402933439242973495604183423436174448616380980738771113265732757999154896779568679344444818157214535478227094562050112803497752972924635744302290131436124344138490439056338275919491866757590455383099485427932329004138546072326303681276747353807114578276560396177614454323145810282054071570260671060812046969770614182750541767462830194274355703803560595870734084187780034658086378702755308944021980274339895319290112132156921138978576073304108164948191129150830533492484655214375305855273914432484946578582797959489871620343953655207519016072888307181478293966451327701969155981179873833832917999337835205980215949593611969507730921205550489954914007191619290617375353023496845499197935501968922510500836787966409598663591177829300454349177433031277222639623490848091368849657503657509305253726594395551009175140532467122653363181331757006567764086497587229040094289499346222245787030554046391486213778595188862350107843536680979373582754924728362632126938324649936982155529639688006263760602151905020728181667978524911749335006536603349840135336740589281997601717423283187090481108642373626316878855213295824926175882276869040915089104752489815032458149998781585740444186274937430706207652238986580944099948807027863768163083760099099944556831759357279720015495199661248573300709695997350602936472173425484707936679345620867932114861458425561176606507823074463107720555467752099226567532429536289352098692192174909685764242722578242665719438377079247330594226227135181014035775538252480577647346474585773420739242826010147060451631918026464121392786956493872220913052691260357516249679672776945708664952500753570037003770815716978168714699148011229282313395256221102203702702231623880265791800811855415268669744562316819132912025228291150439976728683846462256163901305399887437766089435820503957083640636474612690153562158972420016618775129537517706333186807937800525603421415609855734095568504916416591477442978339827531953606577540330828221033038061749026884767171199096205612564560163785711489424133718548748145640369280951028703880148485827695617920269624820875898891641358636580467132480796106648407084084020141041995714448077557038451271601371851342173418305492639858577647872351090269724437111743030679663119990778576197465823381579441635049162162748467614357062757129144331136072928945239621226742051698547729924076575388342706951842651147084390993909368204728887444415578004423170582833057575934696593710069472086288882462977417002726952494558864909990241005659728415311426436848276180664511000724769900554908715704666759613216696264596049368210278412259064673258212171357294180233774405230803622468733132543157429554874939228634981752959958400466452493868902622248300590264954686271982582485308109324708521587184410864887730077713359570171410567907786720895392598695208078991602417926628099525056115579280735220950147707439109905700135622176321721268820037251032974034023649471970144121776318237593879337808242141841416774294269747539098397505584829958302282505187707814417108262162804144355842345167164297332670871653506518137766173717877170733530651307274106682167017251109043564280230429433949726184098186254409439172439828674962683882990492391806197761649050224378371597230253922295957970740736161721110657204646238734214588587978773845288044160656102906911039412862866702629862386726903714376713400665926825560455913969825668733362432808526097588609942383036281429956754260384948060253973857573295898694831085846839225721060027902082141246544669436910386399603758545638026159885561437538682191019902409572735178786794772660625058341868416962859313346288550429241359134809186299917396376700426587881592043976114087382105165365229660517454022669193758914492972320698784569888145099972332619132697452195808588489858662027310246761375999272456070780790509838729949958452296613038751181545125478212412724439572925606913470926326097861090817957319933063879396494693972622801491625796631631702059299720057227668300835903967423395844489005589324170012936098297173204646528925160643959660541444936264833811376847250107831321724943554005872056692607162007671391807101336343265393245883700441358325671343729144916290277391187233405426399092182792446053346468594421222385196588393502216124279543993680639304289920617866805519644903324155917145996588781870003581811993839897963046717016910207415960848943562104707447838824402158708167282285588306628236772099186052920975490698994972129254580145332595694443858957716302358018571876219106673126301601926153632638204821721369537113200685640251488199903521357335333073086268863249153053733472549852505166756216421352301258372901626384539581708083775276945662400604879477219401149597693789031009691553913766879163039057569413227321252234673070293785637597241469502831334208201017530622578495148698143971665120829915528997078272295041048406504528912860481873857987135255644744027270044203792459632154334651932059400507154733744402632684258100860451648038024531962737872634108612089230173144081768153674929042450164959972014441806113499126590014038963158603062027107866880250005638728681193074408219273773360770943482963530537617502127932684949097978856513697731800117178171913716265861763022672840004358313417784558635117341273438666208208708519242416229070875504789397985450809883490713316012688378219963681160723642278614654199690063331234934824064763609948968174241161553673360001441804126362881706193604674003823908792611965440519152932024885786177379876318446333417759324069057954832097106920734099041914028488318876567586026016176515906113087644931393717984024937414140736271434912869849948242563473987739976883041838326830737099501439909468776318919977999805484007955436061487879962656487707440303333359322404465626287454285211694262457732884902183904618216064163293053216619882535363826689061835738464823981646872271428676972760077417136088440906852277932709301427102575013059819073282928405805117720217804550504341589240030335276736776213632303047675784363774126906760027910167030684110568891753049307402479829560084605528575607313230591063508584500407979747315357648312084957440194384408778030254608838101679547869308121706421316189665202683994508334299618842421795838449154262983030367582959896820582514231906386752359039258557699828692095068161055018668586971494489620108239548532455620154241840368940789580696749738933967501602996300898285413433218431704692702053339923042060839275758496871336820131424110838235077900411930310754754939799946219273126375727428844445595667656766132831635708894457891484041415171173371726474398684603826031329402339402501329081252882924569420221505059268169894250138162829287288196442652408409757129047723919565310771606438054818358220881499781420543079040927391631755469796411883168128138468576778149464685760736992157407227209461044150725733127513294048087717035117011460319942095371730091050297187338963838765542555479496426325418918051697352005653687776189227810828593470402598794260062423732840480095211001477278926336571521213577239917430163298533123287478702872029814004787207679176138523668730686812374349335504976331401329166451847561312185107367726280756141309595099433951340637849372481191179843476453371927069394288654731726229535993496277045223359974942714827532647865271207937747979568187458002632919199564029293730583462961761485734886094170475865852796087391752934693498506678958878343012783055330841410986387702202995270181121287779307695785577713895663593036450133930488246057331666464262208984071119976460210787436969569398677475390165248930487242039777596187414547613901204788585250412862268817773531716429697343342792610051394968482325478762073426226937608309383660637039135480670040402543580720755234596227293278435290174228513982560928098649095068669129464115905973526408587415234339661280905502542764993849163037655905425162044077690543945492161765777715695373962434186806024948823677262793054363698571965304965299421353661703758442583743329154937579504200005467022909900338305636915335394588683492830099755635083913509586992921696721265398657349714488670817752282591804186117240203868616850130791283781587127734559724021785049305825988478601263971662005370634049510843889708835455318730146806659657060003097633183386053902465094903288965526398838867822474905377127384602635116758938736660580273306020459023263101629937709694774257350640403524953105460655541920300751012610611868527521435292182442182150462941234667375342554599428583303735162284441308509976742917397539313053245940342713543380691257295223207094422519203445944480243087037335630172542917277391071678706616850541549750431472156036459224858184504346641929017304149872517720542260822846764318410125287296510641539870057065583900878908601386864080326327922492564539808629785857852644632814314065668455308079808713039820960789869819799776706835565394955531866358964801913293761409698777096835429327948634802243864275692195203320926385995172454963686000607841320268248866122035898456706979611830669093956581126340517366055322207259104236750852699368713630489592384896259276770447008466492934647263801475353476007675776477377671357804963127503799200266847059805739818934732051493155988386438060009120845849628222217444553851748660558570771651525334280884168454439295893844463519051680788541369917338835305191724014138523711409374408061430355994974600430941691165790245935545630143205992658672868671375252359683593006599061251101840164701463515447004833671305382506655279628045492522031254333940024070582307571913439015177107209326811823840743657869695506516031070924388233413525511098975566238268107195955038245177510803291046139504675634377487136559668463539058698967777945031206901986819957395028020948508702905982504259853334164566148056202130697807724973961997732161893621818492667723718360737356462161080452870026480315265487219763335707817768929207386835837599963489851817302275123632401380665385750684059259185488837325957823700789670662703192489330338651848447193186484667917283045274865167323224460657385450382616372691535156147865172078453212357407990775525042052256717179722426627856035177439947252557350851679971261509077926526319022834790585873369579216618836245216630155863552083202899502757174834189364621440166296924470804967279207681754198480123589425510735942415743231717630546289400250980439735473316011487414227010814329315715282768900469444901020271082596801543130952669779789112727987361028701318529984610942392755712270685251218746711777457248730562859375339486421063834690939444542937515277899083975149310189910229407658492853058770804713936302621169850922825949098019986455821668089394270843196011716400037237642030697843294263428811778435611760640569264951846767056275842597649334631690983536761325065934704940986145261690017946457521351332511310232396034087569428655550609940777735780926058103028581117265373172540512173110363530181545624511681394262545417339752477997755901416770887560787024415890853551241064966746640140208747634618281739452987945399711168686372902974483350734674641974129436506308454960274467282956798713059508107671246560531477670331460270152288404975795397379445180873310208426534854929440515724888363456264706238988034230817993283228699909368062720108092812441140589881707350485857421807202964216862852081547281075154252647290881388828420722687924813286143840802714966184570063678628473609386699894083986719497202448088349853115263106233174028219585550253838914348861089211168148499221486451891167112230622238310571929196238781921673108432359883905159802256826785361934062163954330736888776674916161730602719716752224157477982809889810971894134050169720966191184577111322760064991494377178489622273661419533455553116627919094230277445701049216795274977395571125806895977003291433255514935922731249799692364177588529097606905285872478268246517153767177922403401788233950938080639619924372989300854020849012891518010291295886116986959440585357284324336711981899600126630620806799071759791639820658257306842230691527366214108367314458246346030803136748276650529999221381149195206616427480736692535433152505768770737571085089318408829430504322945099803168161433367677524662037928492905195531306617137187834301307696387644549960803652472909206031466174832047731658950350039825228891669144813875504754789578668221351813883239781143629091312804360229664605803094686677245406415406998063770970004313543974642396457579929579155661591116896222354115795739069589377169118513396042949959997224916949565414187635491449695794190436095787278105357745626068183707524654884031797205042551311339831605866773499161681230013592260979737349139050222007257812383825615852987707466771839984464444737864378653754063620027181500779918207066995593163348726759152155470138880354877239563962264815134228507130689333582027137097588729258280283866051419499282833096568171954047957467223340328955174702435596066330318693004027301647060645195302513058658957022596198544539446878784127671537129213081733986964211279838894060724179895696057689961456901988597129913042436897886128553428185250674857493054217018629228599306071408626812245801690904719613319991361689902887272944628823562822484344253025726075114144952448310879415965144638179313824391820527807531242774136114745359674948150106446789627118708679493379953562007516497424245675367172800356386284588903919158719438739139033309565623207705996251252507524391386732482515116853263886654634733576519682486116534034532780522872618604974224236418898195637044402826569724583694171797224830038434418986083538292254935589488969251148167533477074494725459039421985562395898300318204823294123616625277324298024208875065309335197284810665144763484025927824120351475262686785878900576140033938217391595181833562653605891412503477681625583710757854075427140530563735437477293816587620907810649197940662386337268530230396954024452958054122401793722450355608008039784475969716904405835063445653022554540112972033611889813361189259141820528255294452973889843478148314024155891191506702154828145960967962296993479514318517873548201788136490546579362665611919881275356869100269103615622298327921101238924676389408024604084591919227153436632447052581388664398791553934459272255824234729828533318912127996145732909392892217391587172484890865874382111895104922170404489969227472425373701512884177880366791281390854454519647014121686835289955969671833413223577607996102990437519301594443117206304813056459921521134944818889630804690425850902190526395339490339694638608882002656783055725067045357435182091249063136423713764408861732553721156761294301949004480417578754365677673036349450811307868236397167254651834943691765051636244464367015701048133516876397777671258897210184129977822411343011948510490298802163667850938077017754415866353385467297962588983449614086601678241366358335014905402187198515441269536782407508305648191523743103525208271514484621976143971961960463096034627080994202621382874149997540693089458303297194918818979610861342115763899018349572029895392840279662225876831873052555688099139510388737015428875510179150089398657093479342257036969880812848177511820039239737115558454392298961322207102945394591488579676055425692190701100218290256658498432826302956849371733004543682663126762082142836399206977474125787232806250831453392595316190063953312006343765954833527226530733214814444086267793883733028714869264126907934724211674637285997480186980309313907293602106606870508193449980656256232587023589749159208933202354506071383088662955232166363050444957205946984263487567567889754760778623698801856402454325124620010730191000465326502814724157089696293543897451050402555047813009787483894969618659924311613578644456851644926288711661842032633005888587026446170436122516578267834915017117822277430740991591304450840597109760313669981809347949803001183884338078708011820669888794537467042087583057269351739382748443464976716648140034356228030732926228392911806800529294531693883150098289900147905461605583276969972138154142730638645475625839994948578374491123647998736317760300105730369187669143128865776116614253392404361459625921110134823303486258168880967995193244577555585716208396374147482462119559290130184119345194112830471836450335552683290151539714612056615794312978531423616819162196351990577417161612967735103432471894345994128819218082608348497866048507722780794728970952677801283664917000261198876543370336993396106172019291677689549425178315065830133520684180050151563709256024659604493951488564768311012616315170872147073638618890871181597427338987550500620925970594146930637700196928211577697839157281905324673055902671530988958508789058504709373786633242308274225459437470195297814842865145033938705785450591345281673919986887740913556583328048417810389261445347374839334507641148773768663278267561661905626576241895105532930942102930613644088276720535566823861944257864828193259874017510929170318912686606737768874101830141807575417573525511682446258214151861239807938440204082164169156827218287985572113892386966533839356257865194986713345684046653792980100849025158872883221818510561724844534970194205760467270630428317565619088804481834974153761720210188033811431890424900550190586204307237047854249017490843488969838753074619995226158712844855854581615706924458827919686359779336863696057018411024073427746582687078395407446968097799133455998692836749524776870826354258918772441670085571983871289155088102382722826542356108312392681138742699994118813929205470270103169337416512534144082012619198318393849374031772728013552155012295411409297742556487872781577026176501694794894038700856528880355951718111918875058872546466972093151091532205289001450679857853900861872196951141385127306533114261223984535182344544945494657877553395631299228342434750614381307580000031396920261185053421911762032119406477949413772928173711682646100603396809365815133208994872690933176823002151724541483806026281715310951188631778061592010719666048034741275954779329485516216571895497268357481976766731937683225105422841974357996226013644192280490461534389874027042260313863119368870101892544526435383643796048826914366364532536049998070745444119682536328978716756064087869222455256893190301488491436046809568876702560998053589325090484673835818754732848215296374314302653311003332191415770265248686889374887527866600066956467429764976344457678700064684109703870246419715930498611726084035018945432576930096404119304105030413055135027634216356255457368656137666672441697640086185750794638320049907254447367556197012253203356606280822336050805969920320479682644375736382432158783261720067000718545612250044719906811454461059582110144202826920894454897569526634155604145537723839922482265125319813049990091196778336665675858929920014795660306335275555749748264399437656020864762141794703767929682213005304967901040510657351954324874288233637535416737142458917215588577432792675721216197566995335256341213569013425217978745650261333048580590971213598595454914327171352534430903600997056001473114171604280317582067098703781312325109545883068022465338505940032502640287925587292291960823618529723209183609389774477176362150243861145484686032957120940426744146035588354569329999798238544000331562140072554219447156030755808877952462531125604981046580884313724190598027339688153751302596742630324125241142107113940425587658143329689273660790556839951511280724801481569211087395346923609738221172883881088255541432693257520226964152854973502891693503675325005164938592378298982559779879649915578758800667357605313171237397952309030926502373121932341792278003701362967620625809105968133275277902733865040877206650674233577571404060361343368056095093677641991254858886726428242630444907308783041728359128457879319656291612787217186882805656755656864415229369366438265667774265052002493534462653446674029614408092862280313043198660409839277339140781370041825261696240337440631374929959322027866224321898777750479815406378137494998972948551618933508988628988992818690062834069736041869757336334263196348176272032145302931421330835624608336288633642091564050035725280479662461347152197595346602241261332485176159956154962004580620164617714091575997673457982489655229817996191949824757301442806678180702167484177984605747109427237559536180996075617650370712156368428497721654402666078855212388725897130356237638459574535017992050747879352054062527774143474488039164554954706982526975841299272150595738000326109999861133422095567757353886481627054110564100373818033762971436703385915219430846620978282113414817265101361753626072212374577860719792933634949166458351975663113889081185196691913314077573704067006304373233073933606519899561710111057358805893732377844730795251266338440672287390335622703328616349480574275647214524601147717455405824413143042574615732842098510598507814387178925177444273328414638208910097494469894868260376014212805260141134240315017596632381824372539800746564936614285751875927659590408084643308234125972007165249170232956391165010717519077105225383107806249257913545388787373573186914652320793761323265626547523361021716673751214759478713796168374546584712045039409318713959010712042424580775840131378456745024910980778967242410851027728597792109603863960952428029340321892061411457136364916906378018874559262936485863705418040658908241232321506999084997551249764784788645570668850888608257860537115702802496238601464272764270173569704561230696912894726493034540744813111068117499344598684268848379177669368105103099747356674978123305056002270831551090672836117834448892422434947485519670487564544338694529625441714888022106600401980904827562118084831881822331987174567520475779412974906527226877773242429697388553744808437553471872895176902228025888218003408342918645328329520237891235671324144275799851347366764948009720158814806257686837534663481242054192964230159538944019726029895463475312968456422702064666361457252499934102024379940501389364137831839169646888577990983938553362345051891210109255469017662973146667957416183813144473703497134152992630175812743294116049698907278770157724229306633279320475211210456347981547020000689179672878608461308962712055150743365395295578710423396546746557126390317631925738206936097289987489258407859394043707136355970916118984688448745021936205118900525341251034031672199228213111499654057706585743220302911914211538264156683778220968263332525864798610355628202666341659452874692294579844000148569477807473973792205368331217068711198714318786300694976041698520426122637417480268551376931731472323570079686873352524179092217916573167228759943603959975512972412079299156763861007227497662309864680417930201884465503916566303568985008022792720199126174186057223821475661412905204827519004881809294871346488294675016223482109698277666722883775064824215863678252861949320297189558931498776061580616146797714324156340277338647348028675249272431790260847356135819483238619127351426293890593502878629671743824966125068348349012602434232526581004138908594927099158127361096707608639276098829831034641360132647871910878231663202894058763678248985649082669999190734896774281570281268630575909611302048345160750552294900900209274780235893019654076099925631903347170602087349018855345935292492099990230068779846367326654288766656453585228856700850388640317461114592674168644367609677156748516938551164536787001633398384124794446033678023565551644714527010956821158111836097536278431854218365413302056312407158799627268552962994666897648458297224354950927024304801106113351838246715424276783450643645507178640944143345536019206017275576525434949262855990899327543601197758743402313031762079052080109556428479265507476398740512432974057986332635615651130687505547330808642608548249435452941738448586236573163223032164135938145716738077353463662076227285226409102529559254535938629660758953330535247805433205494531495388398087659097772973359027176820070971056912254751895900300093098022861674359326896639656485680254973143631948139614677971519665703537923042928862587954259473436342811923244785279277451883356520398172507519849178892482893293697457040853033920219878923614509279479160185605650644057581269151498210640179423152679601606499436670634984157432124819403729665103469327150758172800676747905577991772459621775478243819833578011755244147642572573138674813353167335946308185864113646258704669246785137708133675220279602588732603382934672638090193021610456568312221276743472021743205799098775822667162877594943273749088084786814796567986073046075108611416450237399718540155899705383722621496184219732389490049255634426515693760796823151470586228244460641130151514849720260386033401784731135734939702775140570593302011341952983039985847695446222277187535690292734477130552684396841851912213910881517309778643572988551577759381407201331962738106453096918739373738899536760645580807366963213116718819754721250433639559264898776922489289923722513208970845029820813335606415618178053969953366099230688746454593782134417133311369729957567124283262411798778551001238470284547655107829688826095394284732641856041424528761660149812468042227339798373107611599683587859120170104622404951658875120711047324892226031329324641309112682336764136789022462990500538288219316474403974745701636410252796519248679097620219134111246225468768985047335728856723705862884695088973154224524971086670628109706272929033051541818558753668056285700533365704618183773814910708275901434782491810126849750509274196692829936554153655626789981449412974968145126483383661239219147422029451319529921185748127026993606717166780070345357443517637609691832518174630839292812833439199168718854953520262698031602185180176010012290900344439400588756365741782143625254956112125449948996487825265440773435042178558629112709980029328627625782639997481477333264310081957995783743637858805414134404176215486353936977114800508832576989871653737490594765375101632560634264829283571920489831239185453530254367008752109050856324839704369678230794079785523303978493488385152145198986694106282915085168617480609158286198482416137927693659371878910952674116549631375317113738937314846180459875537956196314209602072826174015390103711439771411324114219924816425107597707792169473529808018591539361277645646612079956096551852519237820015026418756238616084059302077298762878830419153812014820579083635557954466651833345437161124388969348305867779968880834268396594269976874992842320622241587363065822916846009404192258035838119996685563212125569007024578287441589406505945527070645106474462168894858302331408498421517551466605226191025916715873452188224080141295678890827561313499623524446875671233630792580629560966594605154884727572594703492888702303603985663153435002544140157402143421774745589963967216987560710085795625580529856184093751133576481266036396718293940830122153382307078482179400064146980792213245239047347119677626574969743337903377853906960991615577246938380494651825255247971196092018593281457691017866239600692642735898312734940784059837783798350102501961507419766882982614001176145989530019002615244528915139081670425958935633136090120756620351439775683264397729836648706715057786474154815747085681072636786803652244681452388297219383251119954541732437372457376489240579556176299019194921281133181366663147914892496516464952956116083494238417198250644231839423081731735132060565416415106959999304046059803665693475110736575804113357602850640558881227403246352247231688044639782450071367200585328590579189790347019387657487597851520314232049763067772372466801621491102308421815099334523984807253882971839887018095124156397495098599119600715479298412951023847240133321826421297886766099388104660106911887196745461586072143737564428825417668506822109471287227333349280184961165106507937916743132901995064071633615829374020718201311454599293105763520161824596951870480226610626985331548263707354003923193373012372395492211190315383389264077693564974557715731844953208677814760689693052137196174477323428194628641344253504115520794510009719125589324275965991209508787964223445697096309048528246585550163798568871238745871186267127353704763194065113911052634696336072200844652460094470368911963426837742509072907140898906806133874645616182436147114567924187363077638454527981793796976279506017891060347229343927942685841424844270732331469137669965727072519555961623105327842454386373570602711159175571998520671060545068031084599021131369814020126416190918723376616978133332573883185906962330103850168832802669148829776264934395680305023190695271127116384424149786121125190524124507699964826057312947664469870390134287686472498902125304561036750941061670002511631148011123566322796946349218472727444126508901796965196196991382158181114620037682659654514871815077987948537307521831134220268585285142504674344216151744948388074830126388867449326349022661468071185958807603149537105243388885298211830226010332013540053082263064296190229681352072145554927498112440116062367975829962007352291483312959765604993410248060717791068521845427633362018656024719849879277570764281689641491029321936726483561898074978587868459467652329153825558077295387387525753758825022518388741705113122059598173625796390068688499135646404459360787348957585305895184128900349792200443440277995002376294999749373838552000210482132402270390786835563982873121289547933542448257972589550405692271233363343195581646394842216743860570258126122674067487956448526057531746409428844441159391145559187988687863585569318954680998461103678469732645352879638920922696300796195111302735969507777182759808183098164073816316478937297196666801679601252666437775836657228532156751236324982546633070974751439820769992700749705819543085964550124995783063964992587608367114377096371908098025076709225068089009414137374876736982185020205256861983756580604325278366051587300412119975099492379736754913858615467349255870279956445553289224734017716408669637825314160103058831277078394111595233991440345425269510945109330252413041396531458852248731803803921308625967757526335753699509223430176199131412725983300269964046496291751494959066605775087095698304512992201005608327651142398239410841184669760096927549261633497356241901435206233982142574651302667702963018888173445775078455864623159071862232337273398731507843891967237256695319090241393468767301198412583520340913154938351767749787766117199450249015139753881756677985602950364979388364408698883509258642377375994314460598104041836901039233815485320749345066403393611411824771337700608410091273166994691082388830450029802179770684250923845647565733041748881378261387870509873758762579792802010807824029190720651758651253191033366274814726100044601720247361264044750193135399174159377945749983614998915737389019779159005507579632558288126376447963727700945765045684704867397803932675957205967622773163181526708118942619645346589552881561609423322741408450899318491617500421898872357882079340172349754772180278587421415434164190818394288857393783795642287858503515026896209982332333104105128754991648610848591228780059751752686886362768205276523096781948074453929389205829285007105514904819216589457296358460529006850240530639746429249713540263622131151502437369144894078448543096835626568874311541582400823755724355799533900169204279824212479061090481746991329000244512509305575452710496635687405269194478996932415744542179171367656014690365382455629809557378170581804616428817259015310102481494052247562413397079024238795575307273536482860116434689363609794280082664625380453294020780739281216974768563247503249443134421756806203309469705137976273516118517706258470849706042066247797099573910139249359048874633094862988045146716613554837266921767661506229992011714442535796649273988207805980688582669431252063935272415392730051404798564022532777046416857337010696246557017231273724431282414932855328692565623218831664705176544006645958819171027880954425068913247497800056026552002962597405564048215437999075569835422035618851254802649052029906140975781641312025715437541598165736501406127509819024218733711001129968241902146779591517516546168471358223456298082106622624021344445196475223490730641209195993410728446712298377561437345991244791175695779705052353528585191510594498346537477041831659455738744592416460689837781190675538329000934349288398416750289480479045518782805617084693993326424250617726817532610574454363101585016117454999555321936156646021978601992900186627803949511029762815435414597694970309411824657918786161851228904642361221165882138298694410102763074898473178132946754039485015472383595503409028197517870452066254794301046675607768804538691623397726729312843374271416183664678604344461447219035554357086523169025477308955897341318136710218913792688184319574011614207940853336343819704814502931995943525168647598278718016219530168294544388739078608034790601399872584400826598429410808434609864833006866267065588616443640021631010871760301480892818270861680937959536241287284391810988299798915751716108467125552894497523496564779576785478109235193461716875229758468149890279385683053074358621699782877148078667641868121833030585468216486528677210357535670024053325977537597941244990232933324809381451927398170652688700519248568551811486239125086471491076230142859635803926909844569079751937455863370678509840999026349086254670360108215630521434355828249068210565538330095501868305474802878950805211094730102481575634141346408319020884507755547575574604107797021255334884856704073367328268476661275920428381726676427083793535509370090529867785643080778930560688539392657541629701439799756498874711292371979199021153111754602873796363213840554271713976876613633296033734467718203193190789056793637258212375640785963881659290675309860062480150040301653262538072814157297971609973746583543649450403213192868061404329415441268265298879410577715940105611030365226541474869256615422938795829465166858135354810625671559381372941576112484105559786643941570745345887995208636227530467304106893575776888290105336041465748721483261177437755328625524908635887646196929628739111550725085240650747756605434675251318731532498115649635447259322505849631918409627774715366945567367064140495212507360998571921817305455591461863244944546805862703752210049679172061368194784429676540947092250386915060689323443305130136251122842496415078969574282359348686174519111661149249428761055003299863388091852680472826298614801685402693077519207092299328029605232994599442771746593984810781864931460882604447988398613899369162938300053842978744417404158827931036205055533229203197838524261156440247881264312493423751373711956186579678643424226140902741189115365658094362542643036030990932498977066739258804240457970302562831251188612935651802401836626468293628594599389678678823700117001121176860375867301454265702108731765817719787258721303512218140754366761596591375791201447867881517962647886852859997423589960577616704207429993151701603314717875179783702230813069227793187896941426217195837667677155078701030261984771279652257211328509572215571103343351740282684043398792718949811697255686904780622689588088368823991378020740914135713090382711345269627603764586542106284697931051716323257479413641044812058706433013097468743873197089216942635421257754658068930553800418929642275747099813594907247691916001862059135093657445208020824588149389394692340130684210043899246125478016154658301726713684250005416649023329554273568189914374309301476131145251984618273055968912008197277077601776226990540552651318535504836534669576830441932927635738085014516408188003741622606535959157432306315903593896307208260130036150576885303875101560472636189462332034928458424446123208815318432449114663544639195862705297651135107744423599277901862820823435141325787571838092888543544939475643068541565242616854024739382987910673320817181347625741158076937397170184760945029965988824278458501290215274177394814467675938444105650520444217072752958865306713210559833225308419839657008847760240054456500245689048607347088248028609779521212465004512154557813248058382921103854118965321231146892791796313239657579701951144332634340872144217317237693449195327918841926958956274567154130698093820084870998770815927787402677261509573028656939459625524990357437349536297862594848628054719152996250912406862600212348322732142704704796206472435846746204024419319931832859579701824400827823202145517321227146130478052716046900247332809919122425530146894139184879167637369970238610328041097068563302538941246292568026969134787563165940764337856153492090971212986176756982563351490453199497755946683107212911651275818504005503986093701557455563560189882459004936712977030859260797030490633806030956691824330851122035308247816786482107964281836216539343758109311282207474858512111695079043604872245880307623921526629239556945455816784347262121207904607129316944906599349901944118398418757633898551089180845866085328440161825021164613029033019600096642219751166915084279570591667014473803167155598811261167064417519829772268093767984956839969527872071193588809301751792398947237042971750962937024600066192048851004561403975130465615135849210140135007382774559645059805579675020851023918917692424476430538704372935347522395206837688729105398479270049875418190660025643273807844211226241246398461199545628914712264123135275687161642116690368845467866099167257913285180326330243429062061776922270523986363630405622265122559883602362768859399169492629238868599198269755437441214649113678493350371966214345404727918296842716943289210195239113790516576763162958305989536092837320955323543247397543888095914888330788041200128988567240142399494018220372303734316248746799756104778284532147888686700429917485920432690285772900465176291690998689040380112147906889607327510557868476720981881399208036363704530208322336064702812323888072009428722008437338821214645626423726375131383641625053058833315444582885879571603483757142995937907664561254223678358072353531668557885028397764316744316071149926788505240492058871379217342713909030744407995067822563040703843941295487792242286388728859211609009523457963731769048451666004994226956909822263703051489666352437580610192596508999112315375665530086716483379555353008705272186123572321610044705810314550261871063023067346519183785266001612090407502311411146687220853278636433278398216003164342865675956374791606745607578136496208623034325156318897625707154592205394819264171342617887243738795587099030139212198342193198756851245930793436495783735323804772829583175256116816847688722033494101400509412239553426587602528164962623563488076073905162435587952140060246337714667590121037001666164602951426054022553181795368431437812955803093478803340833141291250897397481872706560035215998817052489123334534860803379540271230179462432735481713891815336430592091257193987686320986482552096851177007769408898096257902237267289894500036140828587960331650764724393548592500465161355798794565665237740937094938384987481158366806520452789359592397727332324646729776652748064338798298297743060385781449362314760185890584360074916725722050101819651055864993920652833789973188080805985485182794143388594455187560550407501939008604130437774729234146394459290156752135102050426758006253299071187463349548698724361282840845675561318996421396452726198927690302820508197939223536877321723731993006719332964461327174095042798318683391359827726130512148760357041329353025534696925433087644234507740522082504942885431207187804406325715272775468275738556137127144592489901727138156545701659558394493242299312210904475181686606766146041748828118950929739069003060622876630123415576153358254436776362090891601460567779243435020755253666212266508715214531508028164860790202688761776734977574326971653101468605594574619099598350524667450342518858566909888190433322507207275546527513262830313251862780716789849713294565885172848759378058820038018296656677418482793474615172614151325943169419658415899257608189366529714437036496981774093715966038718066796857975456832150382198045490796334463332454384677274703025741946154606976484113372653161164981262900175612475807218613678069276616619840552006321703544618196431371636234982998303349931886967341607374136746033845947006547313970615555292597675977104279034833509325856177718093437390719735934304257821363146264291317369056617750448248073926225981848588863926869912760110026666020286749547318210562603460432343156649031093798554368024056330428983122919337147591508830571373223370960919462605178688192666423424125922748622428924529206962951495671031551525464080563486026010226222560387594287303831391437077688780592158871219497433718963447571683763650651211048147819730370626107822101689911574658907139055599577593952665903207095280848296074810228809377470209093887091125891898268457634951274932254796371084943524354049005773348308352800342576749238998809683364668434569560262524738737909156132816636304286706100079513613903301637547248019866735544644730990208626134561266714075375382630256536451666152840250823646494467536455974152081493104911393505012511515227872133971801113977446304892092669576257494736662991231890446042376692150320648300990452134725297080813225508962094731001098933635649116861338905273877693045619896806853806222872388346410108765195265669018255570931723020935587311599825239063137090494025683579695115887316378558776865782877977347948027020785813394738128834317795314206761794285791297054129541919848394043770275935694759727989760628036115488055113014729211049686718873992369635970574130471080560283517099140255017014250877122390261140741072595713072537007253311096324195187298828520753527979653883381760443024698180797561263545049128782804254678399122858170478300282150463422497936999580558566740846369712918683422093302324596999863850356935423928977035443547649022923624120037308716493245139310763905931838870939153506535227916272200493412031290760990843056823212076918312101057155101079555729039520781622925717543510918888395817835362471372556951093329267585376488914054751590045408104374466534470090029309205580779279088673539428282809163619613597181384770240991398225824469477952631348376954299587353922190097541940308148798730375426313628005523410567101889951760765144278586354620263388538053591532187861505465317427314988618799501556269059352526868485716028852241027880491343980466549170781658671739113982274621540072346904397357869201344520525383001774903267583462550749873700040746097543417590336847553783358640331317002906922547021421159207023150289153812504138614705694048334762614475316022201104577550450352761675109976390412565087802390365278767811701483765827092679611001202243342452460468371484221364459758253739652434836632252062496488498615981762180828878571388645305503021087311570730078208589495535633460570091213394917410871929390378408744469927343978008452542638872410611600450869648708411369561516427059208908067385691583901488234781647316754768567415378210975680530659632983743099982316867831455403416726876881004104666523185739857287373414820503766304692539555573930044106210685094718940792032756491270042001863498426189187114193784953330035269947927129527748733707996845068330103992143484202571418289431669764190292632321493851065227183211542099824475947602122975890666569590675808344268720668730475813691496043905727186625447342825109792051580733608216294797308336933138556265589543812503757853317142089340226522132106949506967581353933822156678521158879140266913414948913780480293535030727218094939466630965963089492795931779692559572761809990740747954304186207582978623884845357549508533890021947856244525202240515406932695262339103345668399821265210167141733251806505973069072493488238494892622228087363582419749804785779689392054230533658204617178066018821425927562857274992697322805404185631116788030023010161600172001997031162458168194158206847452376286617924591271376200343621296947929245413546290405514224178701658265476993944766775799737940113754527983461457819194133103997118341547420923537532221598937400748570276054315269671932013985888036384397575152220790873176414815479183406778837838557401284287163801309461085231930328878603943402619272785521872438612575022230364166272761993833678314213477883429243870561355276451711161707344780026295713166645506368496218884828984409453212345989637298554816073073304297048775419192530182011008174002848301045810289929674079559559561628456116166368957340324774126951093293401672549722680986036316278927177818112435881454254837094819807138682233902145162595812111388448927226533912066932796593501374784169975758071234581069568250402827226253673017444537107764985196432065507490925841469421755670768872951685592476626387717249398876835370494093866314867280845126976078400063990467936506537241320065822784305224093729964498506778051604729935414227206941595678281411352846454224051763518394673301548415275206910371395300110483195428400134069127642118391516647360649357711998935051035873594241908119854550810149408675908302854270638363828237631258223233167651097686669254893757088261921281472657148240827566590078891302084822854479384604208597209898494011443016124000878541622451979663531277556826133378471555769894114044371095020078071110077504005846462637172530266603861421469129320587138831811057217378283120123550066512252546851004973423939751570630497574707420634353940369954254534973315142539868544077800670972245807424244653638184683533580172811344946982805938890995463017141215333796141389849914787846434365779067887749385844207615539087288652073487629262573169830305030119438189263013473014288405514004791152720523132919559250346775205903105170897862279441100959570040398484179084368746469145487452371236322576865860422393175245684387568456401163225595549170581631222277347051523500439308620127057801260705910099398726578917443152833592973225512744832824014981838642346069710530529168486092911329003433175185668723825034053328315320601620840699903637754192061245718821086368656088363671868944439104908273730107651857859771214112997335529154188098860470723162814699755584536533132678599375819789670930396378669014054218687932163699261238418427434371740877470258986835809943771370295964603091787917934361023222132841817654543118826632233546621799645520199930700429669038255964307304498798492256162529498211616800620595622484009389610052187630646600602903842591173639897593568138755540581457870748918389294806298456646013862445166223353797680776164228639828706145058417250381457443020783967991127789825144214725880249425889448927079750535207862910729732404991356747146864812055965028157609488875712908930881090081242357014091310505639562659183890452033355413318932092315019841896380871084074875610440825166270436419807146772021443573801990955687153431971981835996517117558874238171128831255753459446661507793818386833368985280200400882865046386858472427442941822371422572340887927186943148568739319315911425232760138009708131357587709989558126839250799219429871750247779397727895436246202054148430061494466898037196276057965696371328710557559667614176712750065151621765379877391246688795859710073189626658609690408945262604441656019398661084888138946461911021966467524198237313548631465319399963008452338121962588762796462646850186053818995996496516638205637424817277914953455339808857812228671809581018503168948307300239208700895971038391404871536079435630408506618802750858005310268383530276055431600917163511308312988210046292533701289017672775017881253164909781833131199176125544193239624169597089698509819393263606721954267912802638966708967024679214831394715842595292693049995173006633815356958674746369023201958703618873286738298969811276378737805887332309779782398110643942874297660473149603920649596983989351356590345802337995456040563435284575813256616363040661556206870738356345492479662709031845493627258144215382072425586879038466863709679648831132168978228505438524698123137536335683300756426259330127219373094900268621021292160383289391372225805223446980996387356419336733292846079610985681119141088543139606067158532245661941082904378394644324340977602831737525839865460322395055550649284690058279088316464385946517402170008922670052736812007992462823828187203943236344148497521835199927821595945535696925052893052318431007697296729290932032110496024123495031628966482290477376380253016297635576028129616706442652322652000988340746476795593945573914574379616634427075406800467241328552300090922777972947855015865206157477791347469836781985781360699570296006923262345165244892858534736406015316172393586791335924060885292829969853931294665072546723051031349372788884551554442472972577689713619820556130370550046481620686651884233473265450168606732104560515350499228962250411418461374069070560278470868780749804373162269113350753460071057199189199125045431340112401657811259535835569947605775120659633261693763841347861793199384809655879199628998864003445964050567370121462697767372797141973782880624532836397753922961022346270114240644917744476131320369643878247515773241009047967069340031044916867120938138896535973041650295623881303040851929996251187752595430187255334011086689453312678505179777261902615705967626361183017909393626834161226716035383145736568074336380460754929593703107503119951451094943528403141601021013134950650545271865003073071046376476701401752434620801722865263217846463537732078555419683068859431724403739406168718486991205210020152769931679128963694011880971709579765472218091927311049330142794736560874108761275733191855769258653394745603469266905591271794409175380702923213656952304427702952819915414877545524581098672283042215146798834310688594973454713812343421397513577454711584415349501035675699640267810115649102464873576065954857220385242586924901412372409437853981190603305591308616170984663463631743458293291738415277715413367027099471446160199458282787804287569306302535097034611312413291584984621283580660266078316818641139832708093064804860221561977655750249465293645715494888357746719174826566673936368008867453271364289903882800926115313559152655377782079505623296097257220047325211198933453032343323644313233430480001563675021081993500722373727740287094777269466487539294610072517688139288727732465226524712890555466074100079980225010453217644354179737600525578047126245872415683694575903972079753334973285102201259144241697172932344025807761252664748564550694068037028085769351328419650243767822828673983787086303813364924138479482384105420580329303517443367166232401684858039221255445740175220460232954123657111000768413022521577553536860688237245425350268339847245978176405767029783004829603157282078473132274670775879507784592043609647586755247270924218988769473859291716617194440191751899351074469715643428867066924737593912219085720579142943834289364958933510148805081756286850392982589418914380225521778352209607696262102423382421024466788123115256339778967604973339569891811114451126931366041157309327268099834530671083820805115305576636444212010808107834047783700049960638990040341382007780552715057149783225147096764977508906350629664868491223451175219132590098981877396712214516235891084828475789966525400180326667410719219959200002555383662604111734900279375382227309472017466758526019105712470941511572685700707092318705897987107149245818653443208442827591041537429730382071699430517002328863188517970469001488022711749460369548297332227592271152989624621227023143451900663051599037556472911693885973559965385050101138682257240279126199514485934817280267059756187531188713681630679012845643491045610567240201267302524850015293353608755158989788387217177026543541540837262510442938863951954343232780105442358108404787013169302739670750779501473800520807259430855370171551825384346555445995285785256165513395896480774983681227773252462395751739647768413653237819029876635998116792362305993793680500485809259458779981856398311502718187677457511484734612366090585832785315671414292123409319057094435356422594658642034446409425614937118672623016902428807716723752547324478543299905916790120464814833821612028233237727819604435343601267772100774547859935506198152775550448485469865886324058273652124729064069233401756270817612992703979899547278467515348132369229701009728273361120225399162466131652228504468122177262031086065718421846315812009472651570684584247533522644379933855454704885839759149426549996562801038345876737061491137992234351072974839000119416730072974118656409461957456807507854364751452048639324133242237779569871555697837440329896176370934561306653542668112395285067750128798203175836851778957912082820760228916339049757794041553997446485362373064773837204147304792145565250529292531830294190501201912447376462319941825287672867616089469735561149865925472398750791190720315762843667503670634810831383736721788880197848972554286893311395065129871426488583798213963537704817997959432264859956229946191308130135234238969116389403854116879256745367911717311522321990813360669783917808717216624095552941213659018957762983632040873020696270393157238227627899155549921278615525055204462458487220071042520047991063549307024297897597757106715815088408694882935895018013923008774056861569988866562599435534091000117663085436437266185544684427825527512973896867015424878030242552246773522849015561506916311604892397682941832610632046263770519746393989447646555993419564996483254809391494735846668289306057840311901403177083826144987266526062702432584169277126651697785340862561970710197831736496569273608632353162547310805784663987859468682474166794763692837991210916864020413803722115265020378803801371490532407514952499509548473534584759139169018636663012422842289484272077190771086312684000285021610605456128436661247180463616315985256595154712782553703216231733003473029594877119578214295324315331978668311091196834998381596365743587951616460734769265794545402556551831389102986125307887304495194248160423666067379364503483754275158130682660301067092023586717591635851006026475334977040157191970946407563158135573702425604711132344938918954866233093829047615275313133366177923958142165469752767432668581815332777588870630208787318515390887721063986821144726881523911298578318746988820447300496637243213112147855478331053660742706468769331813307029126106751805674525239006983237346240227646656217048508895089987896939139829420954402230081204718855480047573642542875858237270552486338841977434353642125494154936382809392510726917968622261695506094313328629656328312974811432473863236205334676430426759634535837263079852861066219020903413280691703922682542439722155739355220455475074841904665348431651834541499920350391416529256788747190529410438575915892291826350298845218494272323405306826370084202786523230833997718756442598108581658304804568157643764406515362454543010411580460569121840421086693032009467318670492671938462987147946844042982334274077514574091344732177928711504528868931598942890447222515052320807336898006093108675966777576623365176580296580223551529369678904534188146721915434129448152031869507494186775170089576850438188994482378862996731915890719514533425321574214669033700380469597514352549388094419495902387645710931528328509347938810373866057292550907804016720583185357116211701130730951024720102227420742225006379937822752018218646818740502563961282481449475979291817667995354778966301149173861845215853031917166848226816066825165767535442156094267492483232718865780830850985737404271255007760249111841821349701028852738143232651360539978556969433406445775458691020245178862392088592854656556005034796097935405371561614535422845550041019974171662447820220567889744735270729323542375155957848319383243116655949093406005498533463716035397192550837782555114006109929647363441232691676734463664021389001194921776646525411583196061807803535264500896105936115193803164718038823104395657201102505898880120215362740359247634903401743972322681545410387077508014276649043943404898987171318425961573097820661946316798107303571202065911618224477727749790456374358879534838103217701850389777699609110703067887450492770917053571762131882540056276929263665059960860944660636074744262778056104252556465371783148943700365193088732633925922568446275780538271297754675862804871706096062896556017443235531552592814845710846483141207589377368630172565112394673989763715809138447277052923610842821608479780338132297101220373087703330739407562144548943077115566985138275951426465572758437287728293925255355598063784370518220589764996307716768006660421345068562686982133901987056246119037093168334861358549407697177653847564719929460947711901316941561861243693549819447592375344881924622847036232667106125404888703561604193765994566103789351064776604534912002959868444851106423481488835687440709845243958973729900154275418220401391303651805918105728959850784974956536240964620730936967096762909135210268690394732069805224387812892125905482716187606725480007041698028116725526120603319835459669078378047176692711102724909601801436122603136091851917703522100637575713025311936628567650570353984912226575158990640418407896070057275189224455028209641902457098669916088268576325691805888988174765821439129476831730808706950345115911900085025126295075933546350126555230415919750205927565866088800109862392466057294945774781660647404997884736799093919721623810707694874756562043844672194134328347876199894859483606328571671114279486862734785615933383533088850265967439155045261116905707762304486725114579916646654924328267292045235046638861346592428446657834160807763045185394498078993166437385856110302664326804599667172815400166334007112892423817537024016615488279924144360177249774613732425328413196327920529379434494242152442535053086365254349484000632019060555406389313006712805716560367024059553010302932959243628897835138786240654607172410381908140613997012142126616091392761959279065435326818226287088511509123707168296723518677336556914960526284756888466625224443529252865211108730496971269711320800474916297180444919759728233990690404589070454892215550415117726783125538334011708710249895586668308745553401115458069102293169137430348763850644600771704712071885117589169667916835676011129588724821164418553594125523786623326891841910247460994204287290856293570772241792581481645677916359074123628428015959303766995729732455885236667746496462993006143853261433402338681647329878971033931730828380212801217579846345753262287637481858528096699056008635456418288023603091372444156077320467067625037699819574034891049821198247895610821232850244751168939254051914919055259506146747693199627201341323774702077426175223903888791026653953650501588256784426369511791380739359546184083651859018926785277085679519699984226077863648384575247594265912275268810494648688442147505145169373816759631780099837010637905761818032522633693943878456418708951121117846708173848682290790719713435226100939321897456780157152292647975404608771233987134697437312504976179312107457101603118473082713035819867818381770561557950238918449049998350438514733693658384938677261100839954239577030028673373918703327736016940743709912402464652270403133238934989692435887371824877676569728032341572340272464577185668106425499925196785581986319933883569447044283955207349138606508101989004937131548767519302115460829516953593725188853217696598703247634555525499799014492994744627130827720946859956366872285426039417973921341601419482160205121326800821870732031971188881351661970536865334070194887930542812660551601882289941787868638423198155530627445009315660473414486102841114337519270576317226930462906713979906417105762981607125535001318600186744835223360268271736508098549721942222324321153590232588547092429610350985692589483839178368784203580113378235860828654493724116567695832601923559586552512252533053985486532785430282874543667623567908907999069198042603698179168663495710563017776665014519909145704266336797794574565519742610179086587974719624790992791072484125728050425016613879818455879452445341561594550432625674246142366671652319228250045584325898328712891186529606373355888042257977475358203186425958343708063145191308280991451860022752749123922570630256027255051234546910276591756359950533732425941220075355679033587062730249447388133674470218259443761537616713369381852692993942177045393623796797027234952011379144233561137742680798676499081414476641964010533497503383089923391034351725066391366229547802486905371727216241683361089971458899559806372190400097337112116653924873113265508006649740201770861859938178551101129447271244871531208238980524874333269203310640226258044606186192507871135965941050398108597750458295440370510259355386561491271385135346508099413544652299925547193442731216449357351960454745272917913602179714050707358721751577641091594850846182886724764090074221504210708202134938313393870387975449466938187621943539912330106577033082956826457031730027112686980562800788397722406126454520785409480009173834951073652538213572946065299602530913527154451508772193738341539283754391719037196486049163989264608135583120772260907866980555601414577351316955750355260030915678263726283567077976386770905176910059580951643455543243349258271855694695581716313533139320057740943113932796075091653966854712422646340483102534947018973078536539251865612940622220711194789269596900859742316429236320825092505996303675783341557519387091886217377899648998513474154474085574222952449746707859412877861683163825892280176521752913508834280533393564814359241747172804038374730303537358855630689671811672827707285804654628619998309165181243002347878357821926357144030062074806476173595024643093984295858562945266530284862027508275189983204232096468445180350228434452492474752904649345390865529946333779991723542683092900866901040449498150539491788267097788952987451737096548972127056941800689665070925606542859966328895783184052621848255428130432173929674879795140228767703731446289775734747723119524328695683794537019260392137893656193748394575963622927590546227069583279788107363043371708078953424145910825258735566691769989147296605613105441545995604201494062791457140319050550162765744785171255808079304906489818676481973703770877933289530107856371582137603260420086445172467068357965426718918146494728880588188955881653281427080855640599827970442200943969303129332450475706900525282089580799492156591431306459443392152506214285329881128502194091864411285319792219638847229722340240499309953618615909994275878441860977584616036255852528178117601575530154448917852848481740501728862635435074875927055639965755005860695729581075342425751984816726577066987561313485496228426493365213422704697180937197272884482720298773719892302793173239971024219788878540968284791700075499207175604013871920798366014610389132837427220305387810016055862580348092147790590744810759450721054730683400230434534403181839062344801961022027067767262094877278034282614800824386994578010378318499243392400256380252806082951408608649889873441255314540316528913602080255006851333941109271867328926283523364186823784230713837779729845476048645483100039231091445613802987559778085125017644785167653938485745204184488019730808478854131218691409152839436578668866784438740375375912559392419330948347973877200723100072477611170109929089631491795859492558783730782364263734935623687563563848335365817177308647332570745270080977229210846688706159572319021200963817685797477768894085063696168503767111028124530265442798369630242733601262002153510761034025859750553319535860769468689867454477166660139135697864690687989331391212499456370834114274915775022857835574849718654012381127658573078256681252630349580818232654655440484055038262858682868895414646081076354744652706842071778485836696008744220000566828019908498082556027747918982210339307737505791341664811358952767638354166099672399397433619786086867728842948181019296186111148927865961842574116143055318210052009489195366883805281532827304925191975928579839291087303607206059613736172151359822220672516865802611631300809541839836938027116008756753278043780878794298186118914583348366809102122654646789371398486457557489892378599072267339415100286559548128303090142264430061445385558837627686095108517671066927969003610102738745914860465754650961181252261134223962013084588859911882820731839952988718588138819567180099080324178114770768720303650960007185782966499199621178416568017545014324940826802036417080445453674628747325702420093494128906019200410144968546732890511629046387718333043501424388830268408744071892337053856642762156123835562759635137361635593296855421370657131987238737393198471398803348772299487405923716497766558285535948828844160219791998677023827774552412429398225413352031684088203603669344936580539472547125275248139640056810040996942062842903672686470220396356941289320911102084514284875681787387940712583399721201638105799621532706010809756360336519500471320080811223558951192881206629427806477651528432484176322822999091675912123449384822576850407850464517297144343179706186707730757573992477463570884284624452437009877164076169557677887679704393371505160473165327422114838731468879169042922503196338159468728565797602751378828788963154804321099979135204062951814071153303726590486827149396957774912978238231611237761541478654365678391197582767511252234409384430718827472819103517834639982806656284080738928720512347771783227303763698619674525699430020716945138695898706569073193642910614420414540133748041173297220430221506367620805045103777449724969164655024773238770765695398790973336101050255117934853469221134266459658384368822925235676028604214855596395165988569660201491750696991874720577042402917140265281614755948695689229223003663232192504217828205361650297071721853347446588351281975553166772735524299418733469466589308882290760278262680417159907953421830227091218932705692913513921728859393106141309058335905905271877060392955736523252303211706901278731666127749608502309682325688015893570688385818815086232193646117876363112123395287901473988391313587175141065685132177569984805425230229217578357352324578243664465504897308793644891347246623962938486925555693930742178812006749051390871519553500478010227524113467313145696468131898424177310939860557671329046827360710251234982248147891769560026337936249265947454923261334902215431977084953259051252692416594894704455258425349045863971582568544490736288629798085958891485892231371542718454926361530293110298143543700018629632242529011014457455007075354061825089511256259742061758455069236294237231362362040928318524214435377650896663491801442858060853851020097993298756229302114385344884228965682369099000380452232734741105481951560678203831222359228460929465753924385700456867498162284707430033157163788910456234620970794430565135074407094165941151116453225168167538711809888344452210200595673576740617302419826800925137110681742727502652191119773390877529177487488835682383184005166895486319194568131461086346736425411058273335497524857350331809124095764437286858454094716633319620246711355484766475562123529249149724049667346527497272148936804156565529454152625923840644990859278647941954836750939023501972744286408940442090475311204585494580692418262416659022697845015246586908444037223831400909934412042566927621961902878281661476740941678526152666735640482824831222733104723483423465977034588746187567646419167532780734084008564936881078523195471572018828888210549081114648647508040500637436697859590922095482480621095703023586416917720293686120018872377108288257174865536813225834261589579382331606909712152511999593463601482294146019102049900562781945034901095835042583908445359277259959962860134980294189638772613130535775692491390608421748060466371676161946097700611989605600046576597158886340110624558667270661557762849357289399068048913957527158419077098228172193904646022419077878738365448116395243219799362033872917226505607803962104274659633786493911882150371131004577984874215762772565563777397159220802076949268179259043582679703149283487905916324568078925976692439413105783831095891517570679031511640360383062862427802471187127690039006369302897020743781356337967810451118360392787956959892616670590008877913300958929653171780532579886356285128670627835832881516059960369138798975041082999788058829745671959775761413810337488920588945702506085787381478538684900409067984066111697600560129445918355015528875610687956315368871477606848446116283215441778601689539453713554058877830155639560103998535261796543121859074192756889856667986596894877827447293479536680623053959311747095287693354437092648519718082472061370078871730107863881398400878589898332530509628291713749548071083936474676773394313360165487822099178741103412039094698918159721036061677059110426013192538424351134497461711098187292913351434919161825799698957099745065201204787845674864722275568793125226464941698291805332418605718620509031888573029665549890087321503423424694860233211547346983705949747771942758600621269784570370712757410246935118798780123201638878856064597395827274686879301993207364499182403506389878615208609153993101297041452410975072608845385553531967561862349714768464648234973817793360742732246120125449392793086556276698582579811117207511759706941815227076992097405454785562842281905648116482584297101589345522687073000055211137345097662348682951889665367669912189811198898157516323880487491517095857060591653793121081165692325596325888434503014629795499271553611838019461804559288552961823068810169561446746145007876988415780202568655990544600173093911080023467641348470567673421614438830238650730885442289015791971518659546905860096108353414244712920201933424101343275612377560368164041483832572347779841088690239128786311349957437007625621129048939161855050323559621590279121671772952317156912288432326451400244753441095223878599342396252689036999170258121434699385988638737773594635261483648977623727463066354880190378311793102664060758864460675073292890651249677485698395800868627348084828653122720071736270968567599347280128218888679760738744774313746564760973147111618360972409355384184008159029420940730026228670494237010541182325628910639411377556842372381382826951571498972572181356446188142313507620668135848505112639723894318641460680881039619709132535183794859268733724850971268601197161228389147142043256594415571537867486178166898598610790384348693072803216563327242072510948911504330656639722862439921425131215123960512406790161457019935397636150711984866255180000966648915062304409833934786026453272221563856028770722515530740057660504773363368248566811510854151810510436492350030079451189628957230290861030431444879589782596419305123934022062307733879377418510817127890944683222051927800330743210752940869839773469360543225030152945026832644124135858447789786138896266174987663740044440441322271864069414066247727681739183282438999347736964435690040950964925497458268873769206082432193818437813492534883807409817455225626685212206383829365560635644245125110011439456015113057893827536783859680561283993038547131938449181767450206920777498759217462371499003645936499689190657445230542333697519795342777487140995442506950048786979722319214751746084032310604357070328453170077985988941619637733118256609688005189510480567880425657739795994427334861922913482321139771353860175971832677066813868821634693702426075889874892552125585109448095802297451965110721079337506600879117750598174869376794065279961563953247638855523721924878051857706221028024509395689624333788041774216493060200544896845576856798346686657090326989684476799257744050030877806109177081512664256790110165555703963492238286386063140267072418102717805682804098922542441400337198657657922010514066192897268101642436914151208254772256572426372565110307738696924939391342769944540109134684358943819100354481363305951992362109348161185279960548993228141939954877359939292593006184768028572894853567202443824850345930083336535931119935845493926092469298331008871907021543917941362576485162998348126909593064290139343581251854581277342727729652285812161273922404215563818069447935082881331168493541926795316911295370086975143435226501624100955568485941545503177483357295043469665830979902276246506005593267643339525647047167211377287340716225536197245210198312675179909721353347788414055006337986934510556346289661402667454131998603219742257918068579556241440622158387204708795476848728993274617844273175230261269703247574453196928125208216720361049018120563597723462645450315562951531089250790795129926018384104221800998233719748108162279562736351724280247403331612253478479562836362156954399351723040027008779447348126455031471245948681797763061590581164093212611354594160505384461936052122471532433478411766559605199334998830838817880721794940440622535444378691511385961519810309698654873392706360049641658474779284834052643023813619994745658208644425655845953646062843569503717714414845370870028213047487699279432214655526416144855611182079852177344280841990100600411572472192184241154518203192339654287409573639617405272919480823263148670495558175109529576655920122871843018474611406725072183470002434970713408273004552060750657760649146045196847917441219891109783338625708139799921753280484262596964204982183315882528993370773210368219871916496373848171096429091744353619274678083658855197753708554262872538260408077425554533643793217634269556637911034368717317979554991706322044349672393948160132294733658269874655530708989306494080699810803122867060770638355903999607731213565918610406309794542470954491953000661487994188515570876707744676401630671463757880854873294332522776475690709463843995109819512316534706054656106776508545004609963952085665353621771760793390975029276226753791939354839419496533249553989410446952697461955175175715770048630436876458674203588278938429982909886675347570136697368353778053584389452693976494558302343225859376455275842078270403162543641527395010556558824755363581560780679610220254764165132663052087535174733680786010173966383018556999041857033906724054906133170757239074294718519940408313032794109319153662827823120045041785204724935559191353471513218441619621328565710802948281281366544382407733667338102924192613378416206120811128247231606961624523412312772948015437119613396162268783073478866847740193991927261822115202081973763398863704620581854387139035246482344317984275515768079970637968794912140294354578127479203786400864749467385708420666956510425541471060859708722311178232307631270262250434344319082979938903198906419597158475141041929898616417398367092861852824755342880784135619774802602088187569433758792394081457873496786126825206224984705234433778505297401898829746591972143946301198330627080549525461802411619918180256286352091687904289435400760545594011239567307796539261882050428887679528554541637395731175853327790435092670071661724251270498678083136018229601137617665190103360849447050970181249859773898834071400260230989011518127384497562158852821206661457870019314508225219795460904006906746904177412036377946579344553510628573939829967067979652411939729385462968409052176015444120769928889960406701456837360583365262397310041333931247871245885318875517335652570645448968371230787099002631052972879573913591320014869069646939848775435473605721513019526432828556642932274942697709247803191311780058509823150090439069351998414478471904642208482105028116601312722438226915606238785129605619212293070029610437130770318221639411202148310188809822242680703549767798073384715105653376471741201980264825871803784534399361829808500265025833071286575614249737681940946308484771330913731229477857687888541064106717821923273699081883930988469511085728353648393959902468695688594955638023508195518548005375214330726452626918027974453187265985077991954724282567279889363464323640272980449430807336815196859990203032900566086672181206893586847017780762860966276002284579074112660825694762222905620788465363234488468543118461923424707598558253783265512526800645560579097102074030731520137285265629482136210615866396163366221455859964559252145349553696185016398808233233937019280298217139099775716868492749730266262250107185416195662503636266770359611262112542215629221803949233748902188289399311603628818265463867108595978392819828827499285939115422326632025848018003255684044994322322639723371418456948659168571200183788420741542566704436910942837621451467807070830123113546581041283246469692643137028764219325573978833723671995531047646332547485571152856633487870050639109449116686090221704320018203246185251700223575801440915692948056088779415683590432350848545971482420272760706118718772031069982946291451898823127342675198693312308423700311206771841590730428921957580220725768252328674994750492148781952930445190949157148345181542241661743060208775224933051977067012822370463068535348142716357372994302165687741920561565835628947025617958795578014582336039959860614331820945181720961428624006704600359793166311362837925651113914602706484445734429117229340261196782588839510271005495194852775568066719526709970428506347595493717922746351479340546631552131490090913563857853626871241494854771465706347129735942489693517637573066197087537322941941658933325411878584640730354616632974190440230866720547807527561096999220405248048354273404114157137369508084037835877722632100263477650116203179259933842279187035766758164854529257473695819933611435946251905601444849448951328475795990911503572317589681652615033151573758911046939509618484080866414337641040378796196024527534464831547439039338789369169987814754452069640101703136288752704948776356636838320623229140311107820294202937076419472031429121411094829323964431357102435811955893777745396382561244268575996820128146083848531375586718121537875174408159548738415487007000181929890058329957410054037112137408561275125291345513763234885711125600410540666240740549243019144798941546722614097391645399135466603223634972595554803033705899821507931856747438039256033384748065469253934835201412592948909160027193944534627078352995836473009794945361864310313863467599861891073768885574888142032376011622578950290247111343816903728782611416234925006369443538936966613598434990536128974294877865392967771327297819326072913391026659582486132431781845587881936136295142488137219984771004681977776825923196415735685778834166099907591320967492593317002236517500940014393379405518410364140206759037381972987516944714396954012869440292825096217766590265225896071122434401887595506428191614973672373087757393223013643460977420899963535681260877639104344370599370636671798838003212359780514745276275122588855102644582251468692390895009611757900640052957184562064387428977789921272200704878425048493669654760389832578026547202644410486817497224467195196451408542713148962984177253211098824793717919833282959829206123925921443219504694200058458381725548140466563916762790041952159936547307738558715284832577843748705758780729399061555841693425047199497711059301399363361461480461540862635396113059153886594806754120798269721345668130456874362326070196433130351103283387658172750093340878756700225631962458891120969810471007565440731360378101088717735652125899656259160824797706142814794777651037333423660258563496549606392748395819361083548871221109801667149059580362277521891877270839306184081969225476876918503384085116709692142899476939687724484541184292869807359277230646791508621079834751216772247040922793124577834460179103190145594628611788131929704141703293538689963493325684181124165544249243628092851063375855789472153345594150951280220685666539360561646249070881411298471783941803640089508585345135480327768893554952060665189686854080663857457631011351184273383439357721719019400709064378049551904772110274036262948980826906876191787395885835346236117074249986143738455291323982563891620815027079675860638927734217001513880866499545637397040780768108494533258419272636213397106037111578328420504036474146286168845669858165873150090393934494227497189138085404701462797966759876074601411994285524913589670017780130215753968024882237743278538885596303196056693382330553165144045891502924241825330623832843520464100526130574476874229135474157564093148869476211526157811425017617591294083420396476092647891482118083584266613320708081643108001420513261341195519786240473184537886204660921970317669337545937997804925625430643708739402260240518971743488565469593566347573906203951260905601824282736810583288355118789860556990996192410769851931357096515734755668351076500894873925224654378782666728955046944983586635530840536940375694027738311878611979495951860124249453596062265009896427300031462532702379084828485305202245211275672699390611902795010374481665421778691499248455895181908932735285310202718701814543202282354632209042549881716666736060150752361946740613393769159304111865354943274199482580135572474336693992883753382539148930723454483403328137111461832805629165708458954412394860409113618274999886454194396085494597415866747090387264750881160943328819910324103701227956006427487325143002159798801365026324663408503733401805345176305295393758569252604860259165968820552413370994607000398478753029240485831602351183499584363258676222657732793138444987177013636369016524975045940558890605053890337258216313550281808570926995525950954687314475069612330242007877684493178235238205272380180007581539884964542579878807232339264669041527517784411010131533148553102536981417110830783725502554029100196180791822471992359695755444168457327303337532461914880275080785241284115867588168744352338769626018150539082893792052537634141133570597396180971779076371252226554034349488691257914106524769261282387056057973645000126372354983391638355829423453860522758341094315863638701157378209772407760580351735311250208346427011636915244208426140117754643999723542442971961841060948748349617534345059797921935756833414343532300342067980665950774862469783293995612639979447632229488705043682719307062994830376613210071376956999158241614026006508647240050397084733319334999212676976295580468069283208226303898134353430426618987429931409908709463572536605295172391766118400384076121077403769655012840108933177943231027940040328892130510074236584017258220533444936371374801248720932360168010782296303773319504470537752962813821531777169544421335425450706820722111454804166904385955613746233149234334757337825142909808915631895810350443769579720606842806219110422159703724302645340105069856559708561832139375150587550659801360470941250186898216197124681696889743569385352752259000061250302893085466547828173603573458754802669228579953125410888129037451036773293627746027589134163159306356956271527567421092644086260449059631825474004510998417453904411018459597066480352925912687680575467394767283856624005710819243705364141765608075121436143715485887558128562689973600609674913813064280242727232766137147400067576427803365943773539076203763868772519907422976132597881206677213771129876684165875773087273967102993807889386279800200261593078853466385138571266523902733275719785305206296992958483959003485839148006453864347485621825788657548779487268763598942907155863274693669424904286905780539550013828732008265297601506548126438696771550681735786340378975134512659414003245987820495939067539924661677430182582342081659080436877527262832154212240600910106322333637572079804096307576823933080726037813630617325143153030662625224638298241199690569343559675324328438805037259733524579745002922404163046399245380040753868552567493726230997793218903073393970741037177557005310891455543991606280288199980424958666496106138781712534447265588808304426110510116870837386951265598859111162346925756101486140267769108162971687418524852014579347001371489072685785244799473339383050720546150886491828254741007979025714420750505950934155369604085449805187726796455860585205267465553022540747383731208445024596936933790720288874507329217102259742506009211602042733944288571932050379504138702161812656941640287617727682581920027974209003689778979793129806783915448357149595803289866875180815393227823844061213126612121918540778982714590827742207843724463974808101210745371063594804405162637411530717874600420931692710451037940099149847693642284759738939926105788702673448719202526290529707788530378669039880519522501234063556244689684999954378475083934940107316867917752399041196812741029848342500928468811045161300907345579443514344015335579184428766462177596876291919579019186033439027858899105452123323536202318949412442695823477425721850611300374706216962879758208332423394390568144105632236760439238032033445916514483287647185985551241393096713808213145792887118212646036073589751887866723778522438113408907823154904420929231539950865700930957550173162639374324318893697715306976797056964773084692106752451135274869220272065859148242374010339743608577552711486987969189664492244095625323678025606907668151897712194366604082020280786295122776160435423689999080323820421507996082477277553304192323503272827762935445051818206970096950821625005291166032967857200563886587870805903547218042819468285605170102029800837226897971128108053514476003861016225525362794875779975777556503714115773105122864142325138532231154159748950830548041816497322071306031968144506081767171746056302169288028978795777347057583036183915488701844138375555430911238413923347346827288476939501016997986060359992030898128468589680786118662508470332539801685590946620100182194412037447656368227459809500382904529478026845857455850243682798075529627244572732269512627438767502704631580075218570734996152132135963051594382567366971737758124378380659088694089792182423197633436552748257243635052813720900169694905205705639839494353033923850177323821269796769810922439117158351705487030445123979655496341123383777214836492994645522819602988479405923832899176807970692704810452613692283093809422115354976995808773049223867368610551351840331426214544419965328568348233030122036693464635109776059832871332706583582679386828340343906420079033126982119676545141951170883288188636245711671551907478602600263433066765276083476993989193688088358446265302730785523687071322405151139791147081411182235018860036051072439505244819435685260264713151914316559273880748311010131929376452629932904574455639726377169598420974777640107500424600110356455982031471143017347398265759406301062754901535950655282911637692934254279211700293992394775644227058928230612096944190227507218093992611904034302182814203396373376177597405192664003848460411858906901736698953556066607866956082519959859238852467954276402008278689556720099825826882031471877107013256576614219696321042826775402037842583751942052530817032256113323544688668871173849016439820438560331570202679410213978058734598717475858849160974407802465382988177374944864606699606268466104007793615164107008526727172023407842447431455824017198115921968956725160756265681294121838338067780417446774097621517505634601051190219270258696907426996974864567806526326015609668487755937736272740962765926384705316162492804502471956825374656647779903881206869402753771499202253066329387933846391167430372725986866237501761782388874819220796090002834718909086377001556453965569429245050068551671663431722914701885258128623307236317711694646772661285720005568580374658416900510605291739984649821286578033531770278125946466343956413973243365546214905784877319653680334189453864945864775293777738286417787579833971658687735091774377536103801870546480572086657675641042189583520168327120858563501203402972324208435580570194077699973377354615671270278127467011142741445145283025806610591272407005634562629686320721879658557625680675747453226394468530043022339031880866569954193452414022872785814050142778069189691516613242929399471357031563960655099837102646650389143336610506810604803965248362033395631265080038133952241716044280319444062994859998250552749777749740041285955896675673176486935395342888969324591202598433662591193756731084367216299269399663652693949210753428228827485890160159877635142263714745962905044375747810382771442729886873807801839228600525597755227375562943960251860004963199429682552724316036357645790098024720673838747146943667554456361562191502593496765262182574451769744491546638394218339457886758579148278792034262805101674687374780936681271925208921298723514807215554468867995375003915499266901670517681549548879793954186611241101518093384911057255459974223038407490141182615986464799350777157614798278794868260272270467376417364357951722897244625635051731778105664840169419772783275627351595963237380115097414379988066998272304184810764804576613028717334479123713771735739493689601260924769831387362178451428160526960740589088268345139345091374289163679928508173903276237567613735437465206793972740600956145919419148987177292718115059224758475237600405737555778788763042414433589651984809954662393365283922063205503863190229065265823278471119066080275808648320673141799378887646712468610616537650437744941267305491820391107638875448091618014627059648129549012281039293350555605174413238973775881495869092867034066339237460842735230368002225268198218927900117586184333241949364407694266406384370409621799082119512626789538804391921431135379206830360398315485356533245172078789309192182656414103078556335315779088039901031976524611728311549668883206697362947359813458563605914401036062058990876600023078147758479469846017432425749718067316800127655231646219977806859106996527663882139553199529999900580482956120982757826927207400679052576135524613600621169620324857738016989143596880258210651982060819821139068450879783803096609516453309900245890873718146305536299199771925598807276488305301044708998143183017621777580670954102526718017736602362955047944506376737679936335860327306672461389522399829339864848026662341441931451464972352025645609866663332178569177729536015428545510387756976019244685672598593086199751148070617506286799229798202887242665308935028131283731563101947008498301401423096081712045332998239552427079915115167213691105062290162986710561254633399347396013517291812072439478400050139974642634575521061935257640179650716951553915572065412294141103278598978195053262298085721915909938979327047400942577122568900038796355372557590920704695887185042060478329250206025228511061799125610472667559662439808583146125131405032514243228875395186418853870137896469701991775419058177514947063137266980596727393280676847855256400546813680122111687948785933302416302989457131033593300116846202389334181800426115734621086365057588494035337168752487420288657978107101235241127854830755002845843048432412904677209046349928820020251990272635551348110166965727617985492871474605882478822520129310420918550229811842464266368190198523038334588805098592772254408416218246010351388311507905732431934148615263141282011068662831231623313889370145815526395033757738682040065072846662639195922040480534457976473811510581082348142717369376017700530630611676505916306769105983386841762814972685693145777727655300922693106116596191203224418838521356315643642397965219580196150988382352466376456978453135830979055925166948149770307659547615089757575744966153278505016413146865663339973821852196927681595523139000593888664093344903343099791405475158205510117309891707929240125718995819126771512679737365792460390102737321653125648230679418693664499012288117480494397118700559274039135538866005341534386063025519683003711404803711392492374681994810704363238910833702437270329192088671915934777270777160224616927451303270050333304127358098864556984142162419299018026976082536061198360530343527030800291752471089182394975476592258235476863745328445510200042853983527348914105649018011716437932388145618342953632881559475337623757443032208793986979011926986001913370147385832467812136319132355615195205083405941077026189694970553966845701953585878430759579110242787173824634391204301452640420784884637475746110844840299601707083401831438945117057210529787221490041890138670276306287258335601425722989094385507368222369442304543736410792424456665242637724507223677933324832947199137275789319353611411355779678260459911086082459192980784940617374396955182312524395997554397357725105877888373992799300541850358663100591176238379785979289505892456785116357589887310428448272672757656369822557312019306555602070626789134544489358062561269290024604161098833794588127037200430074978105600113489595241435943139925745458496441991257082823238659138499445338569567261620661983228274629079241872354637689132966215174117025107759883660226292318201836734430829416985836835033161047117662822414218761295070744980070613082085818700105289997238390785829342612764141064302684364485875387462515132777930280927305805880234056389344089609429402646093554239876684165369173768954708214891227795135780729295849382573129238121671798043793704701263286685150618823041578019897955942391490307705705341527401606904216335180878282899682250502001302725011949970729355686186022726563027306324693993042516223195389614723281771637399834713528947565957050454935666733269564113069931139540651260904790913644769777908595242193594275982906009824830747567562467235990170267037197830591018468721588566442164532318487891804732484521118667350660707866944256005481975432943697655012507632194521346735504373710024562049303385391366498121529011196774737028102510496932104491257241581751194442006125829111495430183864492672891496404218472967808533769277115008597344758460386119430509128276186574947668556438654345544965899956454187442433024170847135881302246127626519691649919787177574885484892850289832640622466058936373095293819402851911990326853274986701301539886297322064402229122841995098033691638989866856852118068625512453417536556547262869306789781055340797455464205287774383282125104061377734376154549991444559014924462323791815558089301992207364981054693441001266276445788363305443938395769562228986903726327697454178732432385044820466070764438383320980562303997504007559566995753361786404941932835670587209955670627053784520158857742934423674042308708471538665462598216392055911215388040158470798049313622514392710077203424990872653853645222929414970738264009570471232221292928161657550602929079952977082473412265227627675729490561454387035535991997886459993786856664119063318558204949933238336243275899671651593513695534427490434254729163156649780871932963277688051231094030990463583846956840065071601538612543369056943853173242544372217547002651447671448216392820334291059374921392176250731607961133456724242222072726651723530560808985740480017000559783625352086527237488782815385278049199245496743160325643085353024389428032417424025554553669708615464177289249857202069108812066423537652405101324324423301641365596802129606935455532129646322320826161445895929431078685521340891093310728194111706205750284551759720794305730146759735787899804320072677695927688327278889019310349172131389600323612142269996870667401645586506215391776018621479396347966276895008117007486789962264767499643144403628982205868362378574629690156241981462415929846625742077716485025938837533613362628921556972400739834644603059847966226789846823558321555431516589241057872836912319090960945457760898056848511581421778158890496166100321582082348581517678414503538185809148311253119104466347969843889012423238410243464732872605152116128243666938687847087115664021183402067157093802321700694752987961427655009641585854154835073177577372478398076776365390954304336268422528230311945010995666780176956949003482149322805373526366798297049834835515135317224474080078372031771744176858871472749153313923631805549245283176961379084681383512403299784871367950547319160545632992222597408340389122151290120549389922072467294623564588803689052459695735309994979790834408177304426238826175463179865922272714599986064617780995562825136808444536811204344982361048708805328335330635989989334519707976656477109388177686122946956425567032517514185487429820491233342249024789736311688828500416474342740484234090672069710709094784212873152238175805389371029782161908769159649565719265130899422636488209773739007255442753150108795686270893630366193474241856674793771543347285690621427106596264692610019349464448178570609564555183977813037198370033882501676705784088169956630619815482041344550417224483800818251878356471632811966517445276822411779298984789948635661814798462884002643875452815405054042407963254825262518236054493386127712569080302408214962961972201187153069828519090331053577343030067311412407245596100823808775224813757047980728571562683130697466187291789946283312136767162326860056349424474930440662019658383277541298071205823893268929641928876636305962498311394162967013719648790368949338144926841417683197006752445805155065259498957285630041694726318828968600158636267372463266259216191572105030283623969393515780118897818765323891693929771137924646409315253221309095734070657718469708473410179214498868225590774219764448833875591905991753554257336484952164724098012984454168581199096902408982217500050493936996477024855840694581844923603078513981314948543354072148863922223726126645027518449333279642513402426343483927933917076076481406027922984367224032296438027707795100700210062444765588119942856539492828176215057429404500730656251702700226819283856492719315310737211372270722786213719457140272069734595075405402876529161238173741005292178989307350460927832749933708753530971152944059824156902039728468680552855688494689155678818407368513930888293509611980195321841250478414022890105991263783842445726588128055909228394123866186555064607702805760864303303268161770056504045871168362940934738217515245169392159922891029049027808233031765899651256692956724579966794397703460210327851634422548080490237925680031284773929673643455766951539600765138703642444390267133749445325164501793094644558972087195178488802772433813224249336779737169702911198919114975912041763039191835293962070672488715955401477102112540883025947746511545618329958961864765100004902456206882876863553640544888393305066097344734209202816908838349364690173735358141074644421598455611463821861092354570082794437217520695755575442354865253921917204316116353911609048557922827978182254254071069657336286713016378111889724949282096293466337351895983125156270291305948149095903555357697180325649320866107048818673835248159470057532679631490729035577097160528222640839187344643730150752529707000142781914440865277787547341355941346112179001017166672688655280331830263424616032209336336334659220048396325399905668042563059608593265445414856298914394473714617245631866335864162652952483347509744565054199081057855838710148040484308312370349265246097295823965120957687718855943075488790069448890478809680228195368485776836994318669786647186510120357035774286034681841982123616022472165670561488197639648213099576956784658866631245621668197140100722460096834660184715677911006922506806219789977518612764161531858381110483403240999173058153325107383979703436245661065563382470040372608168450190111979578777974660243379466804501636182672035626139701080371111872028840691852818998659233314568028426039662689813420470775946537103091262007216751290871181890035693786662360308942675724849855417991750039272311338461363065408830516494035419142099493987992897741590652215229048187163056047842864496284877304272431084157309018418690759535487172051969849834560263576482788882345862496900014128582004303309689240134181779119694791201281499274566169191447146779615837597386407878552638124040430168939745682054868025159013932362636379991120541290768710648830906217782021250038916611100579867226027613525224476732104269703550506101730970398186852011358647488226624975125285167336916425350935870166725156366597567381680990125761125046459610054066097979435737422022913541798431845203400411029033976022532060701851444995481794804121977295460951482237834875597118857770851372985345420419503130818339577666574323180010282114148998040984139665256576441648944954882259911020025141104531996033294060910328155693370958311193912194983665431015364054697436444646257679682636414232140195526699541856080445033798507224675244612432102113026139342629824694508591482886333976929336549012466865789642301793180234178242429210640485529233587248294322763384910283650550955709898118503469641242062476835233074659659610187341123431340340730483281456290179224921411751742463841567651111058898513788657003465107374462477709547118979323371410019210758558700544927819681477812646035321967110891451217072810555064076191357246936097732600481087914246777353834375139899546200031447247076255826217176441797053089137607014042399873798066116475770246798447913863678494818384064138902320387407338981754531201879173882027322275115437391461127050068544504476525974846000717897656299314259731849625563551833936141215310037879517092139489479513510943106063370838850154033855329833937631767430965265694756924122968122068984460254829145889032048068956547597535508473226777264878790891936701323623473941491518777522695266094217427514429521561386883246056786292046787932330361700791873417351402243805214867312029842270582556446361974427151469671985761450811631552203911403059096609910716383681084434622596972285557032519076556232298445468965259601655423557461714546392179001317027258868871584116663540497114423924696045861354015511393463823638041843408783482341781276083462545734039841622989529027123589105305433277148258379336296964829595967862941962732440803143257515387771714328419636705455274262467285963690019386163374528157747234668334350640200203914968227522784168240152661457592946735494599076272336439464736400900260988068087984974828041001311698184790173690592694476844956061377493534552967355061433482451126833126874607820793524140601105631736918855345789384726541766549757932131152480469635983902858434984432036221712225063300614686661826285318621833429926873642789931000351719913864965191551308781179440307795936142167838168086862407748026130272560875625995020072389147229865386187665403939413192028713092998069094412969331015337791866880790276903481917207105426007885497827328170305664233626633696584893479175610310882932677823404865953062733496901688446793778502649308251943631153568537910994717099905322426834889587257949966808457558692680811202117641683772527721672554817811956955414148460402216765306726745815971943814290233111749913705394259516394624299100113600216591736298597843794924251749449487529814966501002242546701903319499988053244198459338402397154446297150621252494733648676758444408221291615494000068282611969321123919922539476152654068342704131726403391942144388154918265070801775526577133565889200190786471780928572376495135150049491335011480080872411315365718514572365153488266391285946119236820423254342348224937742110473317242074782934922490673879478943377914883874145560788114312569193522060633864662109789728064965158952897479284723953420428976922153527055993644931995055912951398643661379587265189226321279598355044329435386392332259206959661583513832473067346455131019051886433692708620811344952201467887668129068904142823265817023040834828232873645478578605183413534285106650643226309241470569704095042531184518502948718674791111557336603368102021719663707660662513486583316652143251330200452333706054998374026428659429549922102370027099001201074101150468450413157288860013876473792472141519768734980147461757699888635062385509387886992676321167745856331986821260937381759980307861394064122178449192868219155400915408296061546971468468353757847409069515064862128491935277626922039332159048712538488275587971371496322552485396259511165932138730710128122661557970825164691463268226931133702991316643971780536205531816763061245612926181884434184972442011206685490705767233561516464334762779233934326438962550571049594715945613113073210390741312288943273017292414243880022472426140133255613427177540193887747741970919054510938375705395042705467056865659034668068332238784636135085766913058084210982977322876243912639627484382941759317894292624402949121535538305004827950677516712696819215462742917183322105728861086650077812897299404320461499668205880799384488740577266270804377817988828878157680085919351134270138348019699199769490524303607895859550577294780147583251183112272597744254184798791343696001840930190146793485256035038578819606044745034809842040297401247823516326828157860711330341916156719564757123298078750290460952982776281468586433025604448733281345999052447657057349294104449989558460347539222096266362493610311747029723967239299508097774111751554668582940537323857992007420375190481224523750387601894814319469249342127532590738604957229913746404628985710665662445142793328068555716464331878779894091963928192757656013108301162244801435916734372517224775292435619030962570042831485653045658882220318418240204574402201402404837827806566895746364565050645919792400445484091160980796811721228373866029301843413983519922801110850132653430163277246445285655989774443926909328301989099038036865138162955119087016379671277976225273963750899843910263661071746248387930251011123087348445105819937169916719792863724048766612233353578995067010509930652466051907884540681926356071256196519757376489219717388424077070289883588456301241823087715202366409690998228096929462889919715442924573946474596592921930461874358984581199765296796163674588713756777823965048538990672767032846747743927677328237026500807031270292887940844513566789652931681639241034377598106170142055844370395860605679124603234195543259625695857647390387773005553422869873405584011452866755209061243261352954706250931824612005253643700105631435419024155406945960825810012886556882385733046315409853706401728847522314872791964163558218402626678259392101051610335360339031074746904459380738191964740563920646420452157898937040392255463712911563115774513477331311480145459847621903932923830270612327916712823659721460967535255976069179832512020666862872719111111575854946924233183056561263434711932198363534735339570159340548123120787506094537129245496174031049216230496135383583776639637953592638991692903495729905990590127100833577525584162996143697252935898265408065215341764945289468692138390119485982373015917059286537634679724848043796473588155221223450473338812379349349238069827849485795635466600011482718842474788172687572758391159844416923900686655263879079760426809125061153044625336703192363490509863733413318409605036312756997035478647379487154958484948910194448449490398015894401113523670803547005868290343725474183943490436237122511926842552087864584003650141061960130433819474859895129892230684162478452278331642040229682788978389523786094342138744460525244863855905239205171604145847608113037818886157451728560913637712698636354898661231473685071786015918751357324514815806373448510902711468592113905216913187434955550289033674166767103900594542565454255337425611591885423357132117535719851775245419874159866025464626669668622822669833531045121590997582725351934860164955879390779206928103099819945091873345546690007143737149218266172968173744686602010029517162384370860069241105968188856275515104886414755877282279616354206850908157032094323529341735748529816997794825300998765849072055567102756546028766949684404245051946761595500942998690434126116538809385165837166789923142020804275101797187601939337280728632633929638420839644621833503623599379919330061120098394818793365184049306589074317986089248205884951060819042831806691881334525882478273574478476512210001748353681787866785794915881565095084697376592738181532518118987890952384257866923740508498587046751195797283916597636863844597073200590411511197538279176164330979614970824355995505388349451880026727426715796813144943513203729027981636036578248846543963227642068371390773026891687840052403616220378028351351599432530236847412199516656590309589977214388545946497890648699263862584049165494310133107533162491929515887243622837894558511848299797200586249994104362954701824072179579852273638248119889168745293847633236969659887496992868946187990915417431707301868849723789268827423167773872751707190941233092273036429163131180779356495588196350921307131603913154865304576405534168737465024540476093195915337675719978713656389499252700329947976886412989849630834966362412155296367005674082973627849460783256061018844522999837635209082022308227220993250725251181778679523723807559735131886208974778300328301047633070969595721077448897472957715248344554300995412941399437422531408350774743806291565750557109273948023165094581891088621736448057317880200417661699421034062671169466630565202339585343891793115203234069575818530656026350997859991864914810801938109422782658330951941119165767983401386435017577329093850070276528855333313186090565266351900545820470292141264204225243590087281595718421701870250577723929153429856300812720308703156493599385034761715792060353134456409896531747963390406571467456872944094126227451322455465512736217131252975713324488186594455850602536946977125434622253190747013221128067741625669528290120528485083299451007800644304535433006379405471084791120620549657860845829377191880737162592112099565811989370754972187632433549582984389155723198609403111647333596306182319806754416785812704878236554499620718426018451703002141376698396513448964583335243727516356275742549869086115316825285805178295751035943415132367976747389494495774250375865742638500854283346235401767494870044220263059711473871430927802435033995806483782712673091245736183300126964156358818310981704848024362497644221354873476412220382892688400713225843675176594522526501725134203645734241350042194732116062956791040020641579295640894497156533198869088942627302264256696036278284440358242326463214631140724935764828507242261621741711584220611213769869932529128447781740044043295745386314271843297407963891915356172236525556879723360193156176122961081257117327240888032588532537026756858767671471566306361024225012618679017296345978608983719455673432434890552692943544639632837313446973313591311978495554984356706024735443219025005021855633962454425299637053248493441823763440441114994921123784726966781433174040586583806413026580340474570437821613755563498590334733088441965312346945202793931565365557473647135938741271638618544115928155242675481445067953959424942341786052103616292300985924385775370505728458871722848946435925795944373522935894303544365708855647875395777266349314944553790158863397434090454199629467924629460217142143305692207049758849486518367672366183870453829453122988059078349164216213604341730370725057181221760863378935346896282211078714118694717868158913333601367062420211269166125218613820473790441191808974931527535941323333635095887857018750128396892543901790328351061573272323062942921683923332922972640020881884256631086709868032911932831583522123829581158690903970630964103606264619357936897434765212454227577691100247941999227267376069920190427404869454156509285551739677991485417352437795695645059963235385613811323044759033595135882990217441313252287748562336980345056173395688753092983856872079163562589591703653832483211727716206049172938776005442088765454594922422710794851352180588000611110664831509981054318451746701179221366476145461248169567540099981896049353433889733328975942806751068591344674565683257733262078716446782145326291491820410794214831220473535458647403340706344178915823941310660597954836298768382096148732694872465218812574675395911544820188350474529248037602381025142124840778058323346958377881176596214983086296465426889112703061113540730342787574293337487834367672567355624539958625920630192455646207743318904441938229278523698741997461138562567796194100542690029362704485029990879098743327159160863789039687686439278419068939389791903419031337209490601661807263995747352159320136021061318107835722962253111593468215306192925210377730780770763227483105370001618539179139479053802853877974288898814637794430929655633468537297522410593706419999641498012499837041907716183416664473142679225894369335291180061475818612162629696484822972869407904896295854988754815418544233517050627152173891938596922558283650108015476131001676182951280339361643039732237536835112084645589021570424856941481939852445452307742697109253050468708389931105104493509303881460703277847508744732847021377660451972162324720350024988862538451576124147811529212577547652342152440900639910065859677083707955188126690804952446560942785206270000588801626677222627185687198332391088751934107278699141844852877055618755852061515444023088673220552349252243035521849588586516127294365538605039417573411626176636119087908197958192560431089466776515976467812517191360071696147485858682458932141193716093721597666138201259612895922427211397619555264144853710389074152536842552873579814223565511040022690464745485395083664799235829321016795160417034258491495551780398348950647215280212756250931673067799583775896888637674851207766905741604111221875521420084203221494973151869375972360785982609049739712294374871426666772747128874613015987444981919638602841768257193366336411276686327372111941749944026409735768627688592630828221241355045202305160270705842589340044284519098104966626422228720096416307143739135604120829634815280170769835644799359388941094165085211879115379802280088794232531943318672291327912582238622774686541358683372884802462188554210686718176559251327236902218646294353560063771189200091217857283375391400363252580816253634585188977775718406337512330908454156538460061576525015003299923498941789535707173865263377962103267345515112865440974104619507771284449792682784182592545657946321735919093031778357466444310791153727050560465649399646780654844793760148669725387644406621508112586613520952726700684934559787860398813649485430822318093272991404300026544755259968475460343111316200749250808057664797452482218834768824586400444780566574682709309651998733139895742510515369475345563619078137765655814325648875387356055962115610353346990368819708990225011973786172927223579371511802170780674990316072971960981438516920216817288604048908252831810564185045065372213505330893716700410794412104634174876266968581232440447176336163605994031576280497219484183303111590073647240879824574869134212154965159734700264257829531119298503763759824021565486871222238940630985651744686715058405691570227150045626932378502764585185994991440584833553439230579431372989250807919011479499476973123542106606654856371511888556350720674043662043550327666593289164837095727640463166181993229839875888234787763606334255302029329919449064570539080715437208372028013962807693837492479388849445405312439818350520371351349914243023018964241005654906356609007779422134680600437169449301541588592236498808032288036159963898456541012439068202001558818951296996011262606973301556356195545664063124361042231244692705198357084487878141522781078612097645829219118744353249776448239073968666986102689902546067929033239172268711575919422175634009977967215616157190436494526909329620989363471589627503884332041872152705158124277370798311440792239418634148949670683361883050614495199919394051911339273327075168646422121944660984137628405076907773459756027233413094096618361275955842257806227418655418508930842057545613074646755736831592282851881696035883026241072940581942865753526371330604851191495526357743229841779426917793465013320857699160430700590016960094456009143382866611426829002022035326790108814600229638623976005444563949581024723135772545778866494679643521964866421929196817989756725363786461752991477576462690510157862983636904131012790400019057339493839280890081655322496196724413542671163327848594613049761072235857094109934917625210576090462376286542019137877797292052935735799693735565330595118572446856072402515059516731646312413127874885721200031990725964217759768510391132438551477541472121706523108222814791902448803042123197237842950460886101751284358205423349754010043286741193539277405873554495032463832720600670057668015588684484761657577963067086965260686920623759492700803704187085984945751808856799730485561879824911966949721835652766826649264956643474870199203988494725390849539458671054425058238928531393579367933344272118870681441401459285182178205164583386300390157708800462333450819786788657954838118284888593781694549663498966044822312622972633061609327250127039472887038643019311911552754779948627750524575568081611422034015660063806233492782793441988056169482216048898100834529833922096916768906352114735871388124148067389196127195427677899267081685235324700097782414073508834427254918694428237063794030005497193107078029828571087284697887875589333215972279311883038825930272226592347287448700682262167534283291727031612054195225148211450314721597162527104905619725118466848399065142805739909322342258474361668322045012333009638366116897860354703922582957897169523522226877186838253111107699552789039098474051851657974597667782192355871309263466069875828049579197157622487820586801347465944416607703353554811373090688895634688051977832567803498729315816307252036024876768998608040976822241693616263961016476879213172992571949038612642718193068726254024365960617842360231163693541118910418144378554215113472859920112203197836648545606858631751421211050648918735052944400350609189523102135118747152389090176633836197613456030165398900879747193420603696061434395108329353711461411751815242149758887009110358922921212783653224959997250590700261045215091453749728911180044946324584075236406580163191046353388698556271961133488052459877007351603598445945283261529507080519033264718988418328281684664951874877218288827350681390624455624803382080008582485160564231362793426031506632876783662741945185954993113645668298412474611570269393142776581071179852433895966504703575697181622922733729099424082323115614650572444448817093270685426320430174009557110930487588513152529215058544299770927236309170922739004225277600901951277485330727442848890411269623823595294618669505436034427740248750681041645290484398082917417107507483520157141834001929385724958694874102775037384182190414139259396134225125028369215374975187052955642528034977790554043559140569033498935690733505413603561881306595938916460351510416903777649681499418338667059113710598429987210641499359117369977041198191245219707304735683675947039496683315506556961652551852258054067241302426355904751358842507831945542475994671497613856479740798403464545098158781337198670412129493443255393313054659462560623654757981376627287655686459629841900550283992683054062401271985335405595892792012947087549118066793844722469285275956366970694711029139847532110155094318853652290167805806563345228543928477916652561946085148163702661586832924263666158379391731306641653572312275696472585001853545295407290374199712921168140659447253113916775049215978876666390243861538710727052453270809818423874549595573934900636947732054378987773057368019030189053116512462827451907977390552370310894652016910675551645027955511571119035286302766360624540682637247007332536654784512474428507722220918792515442413269480249144093627588915203751580626444663465473992921032843509613793686463073198115715388532833482298995824988673654768704413533349444705808264944208151535779229468721383486640611424125709303784096502222159820357308284893744862788546871628394075798810810178015993164160494221165778877396696410882610724971588023130669993541642428889991424039679872884009629891004428772061732265381481784391361691740271016682203998299144503377780758441582361424973622279443473640963102729731207647235231999521120746097290474229107587726201109211628528130483942440953305776024716059882690616433732647882358161113020900639750310017731079706412238523860962231911148795378392102992711109509746507067222030441407971756461263586266828058525239692400867640291230296264849751017636824624331296404910004200092022122174123810760899121367287372456349101792795255758602807109465100904259129046462989931605640485557976440344851175254850303622053012486263841461065790539922061268045570135178757154300549711735588872278092580685706816920526873455458123597157685133223632267292627478658161975860048602415537704162155855310734694006752995954496983244030763907417996213430554745604513145086147462615282156099344242004848152074744209811687176650908916258324341315346757329400005115146054185678196645191484843080911960532144230037504638891994461785330194591002921593418315494651667490951671194160350880852815184988001543305682198938365035158429694467671729544394812087558708703391032027470824805587551723989778587288409796432754772392315945369716292444832108064411191725206412430588494755698699466709935969395049942484974212363112414581360263293497772839796870776219135751719794348107443474182501843469328015815944778028317130115826043933365279914095604491365637714400031185891182806001691620937986583828292499194076129619167373976025228433378754096868557701646455592839531336282510339626675962529057871668658875460997583146132747330666619262709065962479729554017820017607598412932832655026442193719489901226785889828261824684401758430788923781115222000669379657423426967100989425414193300063909269196348223860766633032533484829293761756823522123108291563074337556399998867149636411177766971865518211765591896741872588196182780333042611974084151404307600329259283329387002732157655479363568076206967009389106763386218129539888278264570258406765493374296667673609522425274513746514577812087917882761698973663664924381176552676013360639630229506246996470030383618984402092669407862436034233288642209428264133342711497016376167832517122236225749782830617627987201474264352755623992880081619551135337876036774223092744234275207456994690872367296954110895874624400515184009464508421441262602815777980603544530351923287985194453948263954516186504108146305098711223863924050309337534070802475531284062787213468154163394026959380089627380644000078160366811340239302883593284364208896679661851600642821699351048345987009625005540090500812349263860559893405536979933670240853379436984472296272108009258695667601649905257827341588945691557376900369952970972680298951359065779497133380158509766701267019701881332534957532189674439811863991993314393817400573352510438428334961888607403994602162654117554729322849674572900782132290232343757112785505668124389173855186652222680910209844066616384819518975489193430170784670121867218568112365038868887840408008647088055012183009948357769826913897489244113224223387454239604258478063356278051157091432946173547935715625046603865565258338821518793462195104937101156692378112890002423243428918763584992239635214314076153087630937814670426407268392636929248420359913400416199172706112418241303475882127760629331214902490611581187634938574280651416559265065888458276639620619330132176432067317508282856936065475975652571685464419545570798025296992145206356483130857836856789852304941586630794504324855730471055159354033222473731297114968621452063563536266144934276793648366692346936593904662901533321906815561205985304149239599887587799483807493534932481113811150711864420519833383240757068869318062526331188712858121677679362867787818492657733425989442641307769862642798803971660698781310585703563793535918723165969189457728993738285494926016837611152479204781595756796313600459970282215381829546371016764228829162494026790384990541688723737987794530280675695593913495368736801546653086714057227650314541765542645821425023177013113445322637822209983706727678344046744065215431080237415428763331242618615617119866832908166216697420488232666755410684409935252897219353581664293066609587127502732335778723770776398137731702555629718149616485116332601313852434600054554442549920114299114727798418760054647378459694973952305814332979846282900358267431572367757630283377973913221654640601688015839252673030980636813176892186709734062884729975352774769203789653634927169505836245221496891463006126267839575238404724361028475669255557902357038949043930225383417989548320258960129825197431367124976583702913045123272478317736362449013814597359500665221831004708364656968603853269162033038866213916353270739979047162352791060580859829470254183725109328409592343642470958033837246410407550734781607054181150924065154544639147913512271432604600945387285212979300165992233777636778416312940698892511818911617220643558435513257428684382331952330966348753917067558839574148865833242536807303968993496665493217160598689853227836738062398517969590899638332032328116669438189214742479753001839572558801932286247201975151347770812566419885562027927081792780445038500502796317423968829054398627996078100888278985775775333840538159536293910768387617061236057851568064245864578835031324941366830201439471737763895569848741048473860687944697445195735055989007737322902448098655019773980512920587443690632837577035924292291955314475740538103259575060166227214879423258543971317686851082319089598323402674780056936107579895866331541926809912725545194907434690767552860255049734494572880766819760605348263327046547023975224223927021456091007325299324359036592997400739217476549979998305354777687049090548719742054628441784982150974889107507183701607742420898123134240211008806166268298902013382739061263713457405593741595875506569448593334398440637335707843120994205423806303984517241109473540367378275439958166105093313197956351895931714654372350052623613297920635126297035914152962389682506638482251974230771212642847032916649202779393995857865956488861063808537598162944935528792834887257477540868676269504016888542645266862487172420528376903060327238056658855423850586146588924269307479847254185166479837413143627247435404318933658052858804300222485245075762935017900318974844530352966254354542626537339784771345590267823111408298773806195260001296348074344542576753847191801201216500595474711770215332705216804691968425836010343215042730468899120259857402416982328040656979847982617965377014779776320844392082816429584666842924611217959334083445240568784327207102244412341068948680044047091595462192289053918611600744132718448245154614182239167448926438765933735504886524754807336881032467800825743000287318500628359164672442015949499806928237844246767521916575408295332256748791509772215590816763889923613123165944909702653978832736287023421635031672369232149369060485061386743179513457704589269731918560145489288583155591620945759925507749745321362986339231441257985030576629358308019649790252622226966773899185242054747208831048892507691455310917466093844908256730195516520216533277851428901295617149747518687443248169116488632397225111438242746865553225918056657393610054792483626632465317068124414695282318029677582694241355726102455270732241606915330761839162659588468572791787473148263036727489507867877293004224552918672099866248222028242475657295038458981315814574739335959457061250381227034374974580147938954186787698755188332763843903484740014808997163524397377588294055647595845989929680660628540738016279378194842405506371439399066383237703226721641784984269621767740653271065941867585933438934411107259944683246953794250864733401233518576678962767514688708021417952497151418636704570092062265959866403285060789247980659393454474458234362564078258247881666784465019664683609251008558279332270363452309749981200842902872272660252216321419387058869535648518131983497890686866318741169898884379775168892761501883211970557123931175451778046048273239890620682049867030869243930699397342239681429417745265582198000412506725891938726783606339220865279835420509915390688878998623823569035875390333704196701125048740174486852816827636704642969721330248425096403352860966565443462105239605849564147928832843062715088869917138806149971211337805205488623089006243089843895058939084171761746572257971402114197173786827515186062948397677026034930191795504597838484002220083911996951691876882195178280004262220958784402102317748050081442710935595787687786309352771765148723205417992421471650985632488049523750032936437020787080113107299753880319543851793508850279835002148669803389948722157072553548059206423807049544486220360293424606159391460950198457318903795181034336449241944312852259141076957107429313960744800760406283693750437933413523801628968508994321439704678936151403775239388179540718761614961699103742882609024294781737011208908097606496712516266479074884235921490023853724802884216825719096370724156385363432131547763761205470081712733101063615298207505692605814196885792478295897049021897335804147885200012300247633811252717434366629622715443718302210409919520115090240531467906764520051758994215599364824460891093797492367664576700505657342702678690642996184187954631972967955035157871194228972641648815049998785975857557956041772129177796553013653404719488465171212982373329951500941704160544730397631620878780387146867126665783341270196744892891402416121963894406782790155731587327403243345743771720269278970474868925761011479923932891765187685653147472920122757980853660312640414021283773905819397885741891891701388463128518047598800913511931038540810742093494540720238004392679425716960485780169038510752426462909620429054183449217103517225723038205072377665228825540287958522625529617557719091391808061657573092756894470276256662439080779436395671113095575396816764197177931035966317775125330194680209523897746410747046376074119505596692617325911991491254116371562931388626612415787901041113642054490189638163324113570967360981112526336260859746111190806919340576827934084861323571843468764723601964512605112350863819655909669090715350362145343680590133721487070823894354184442284657444601226907304396124991194832009021954602001198541727941714963731059214201298506351561366820659291747599645012640150405662245775008571730817739685861305156867079198302605604653249485820278809059869195822990322731481441951905326798086886725692721161356526448374828847603907905242962371635077413072312836514069134427569174704608885345302662709864455701138606246318979263030287664193118170536819774500340097346279515766566475940553389980899601206010777240426477787774561594072105376080088578162706007475487581987450861436607126619353250749016808934065436986129129954843785001696741732344209704323929232930230799612837066252729582972854016732985979666634394310998832476955526346213957542591120026899276310478328022376585209979960333282168670310896805707102995344224690388645864175782443881522994099201930966371504869768423679088130776518701354849551802400662108263952542680858903163430025873556394109607583229003364936892842695626136690442060593879028738461370736550523097210072997569082140420563995216966477596333624902781808339048833490568499380807283525719672203486214345952701355273791518783295180278389151295438081458287607284721890621581231886324833502908236684215970045482193768064102666950681047412121921741158985161485333043350907675577297759291563121326407365047160101145888928086757101795513924599551068185205057508636196266640332508739555504566080529123688061919955733355809086332667401156594133550884766193340744774803882699383809118365354001903154554410496514738721200077419781097610337040708253275483866959838796153801945578775640494408781510304793221903428615027728903944600237605516666366752405472930860444504901722384880500263319232795835887996114119012403058810357938593122546841228829227222678196649365645292027982881771126600103365844091794383039186513050416660621811306513750186520678003558073411553025721899889391018734889292938463354129099050865021431035068421081010083233602549171325278772213142040261403389221632499435615765032925580938248026147352709699000452715058186518708775231171607723991809415383920996831828679547741572739625370620322253581329395850402862800833972137537738565168053211216882140655345635539465150387971445271436231026097140708401841648649850707835612289223885559207108938273367630166277352468772701946717962327635962789181494461360015820165758052404983631992586068645547496632488465516014976417457292285051847566218026293284460411907157731103386916086296693287663370179162438498986819648748139545215691581676651454173649001469947956852785362971754330979478589210611104088420291450629337363206081304864290730224284160597804586812635838335652779872024576252889119052956764751890083897974765528313457378547694392755521874603634780325577747861001319628281760831806452891250838688101986953598728550843268422683717795409442101144931831715212617632507387113484189663953077788737513720770001414898978430983483341777504467628318686806431548827143713802940516715392056529901636251210682570866379809202892001529112859605141586060845504020486683348432243666707952458119335737463203963600093579074746390864802235492265654286522057025730453393442512093345491988264001104278457592450445176407793880813211421093203454318781507810702715254268991835829800434927102700036239070910775789908572781952146332897863531790484329435204295248491338220449324456953273438351263790399167487407559406634865101574804775282993306898302571304482293017220036489009003971015583847802029388611316742607488475588729055041886044987803600636539753897827475172593985433151639053941298773789043135690899497676679551410902616226766003979770483313389417875394999086714576330029602192128968095952175690982264525615632603418885195298182246371583008873569164162582820638731207070250701843247335097594869621377993146281729253266501651549793003869192914253285677734827351901333409582544091367580321397379781189186087519033819338828922985309505190153501215407594589175697560104328085433118288169191348188922073965828944289510495037799140411468688049676409263559615369888246071663209865461260283145893817249595273507089027372262077391495182997516100001828544583648923100684737213971799023148045301333422181197132396463667266671735752512867278229638633132533980980548321644778392176808144905893240148392637810091191922844244140802764143768650833606163168904347272971302534204804423692831478087807771115270342199314274312770817085371247814204244892508557054332347813536215817273716186557704912484017665535843496101777400244141010271355238308209925315558170601473769801346300523528984027120392558959851111753781359064207511338469234570153234897001071481046509828396876694821953721481176208272334865147495015358169748005429240250239045609055289916826956831453458190303191519639835680839573393430833005792285467013408281527393332495175776984693798654822673121917574665066517480111865160647330136343305027289823174952992947063855218738704664276403879335402145299513959267634316960913285619786194229492134183934573358836530029012596379234200230546084125654426651468478402130363935920225440927612642612612626204024698217555398645657909033396002843862195814211385873698043446862029398661307004506635579238753094226324778479861656744254796604580606311782200522741778422833480531025704579937741211821347342817073164727053985509277949218316107556842032266152471074789404698282950998044896681748211789878015081169483191299954653189701820740205973210733510931685738939978615045817283472274603343781068271216089947891012930430103573907842370093900690246733640231348713033810778123670003956115099726172325408283465899793539895107577149498785197047895300584774857418524844993324544155055307863654567727486807236093406747252511409550340152690097118683035984375541787519158627531151461742495909885924096125189315783378434328968989641342715078607032459650484216796811265596004069824684428155405452371862078625405982502829615886485271426779450662447300690212069812303106713911687208120978700052338522409245967467494820439564217793565442767940636657033349636759633584732318231907385217533613932704725770629151570021640944018609291448550797493123804183237967356662482043543694648590666235499465380186323619986595999879526058020531747041245144985722197644171627189815017020540142248369459010404149862329010488469357902561291538226339411849961188953921065983714272609807958788136076283315542490636120591410144876823061982343811277243548185160334656570495272978255336358249280374270139863362557327044236618775612169038502091914493091428904710384815926452275933514867530710037972263302238701357181627822195290082113199619716094134868028762686220640101516935951548913234462416905059602159183473129422121159261603328217118722138182910387050794725769581030639412643746359290324454231637367987709758892929602651034628878093815359825520210656542504992984175499114853744808085079616213320856026237559838953250826765840512851795566870047101468683188057041549489205017858103572465192628866095808233620251993100716248015631184803512004079022723588346332754295900300292781616117185481769238594497026922700892164406934605435417819681600298783186826978233007585577937712298715050049820036963626820658303778494283104829101237352505188949808189134042592397616926619216122870216731558438561577722021050089372628967207262530551146413374529345562293435145818709904649111781044106293964282497282254660536298754493871270557640775777264055783138105586202790599492664195739440052531024717065150158678118136003253524710735210495874824817906417247582208980664501783364492622662008383419604879817949081156872803422114616030791946145147567915621711572232830392824353517073247759555556314867428420352955481067867353224124803594063120014831669005244555054598127346952533413929100273436855332957078461714044424478745875235526937416531301923250063478582328932217774890269451199921553005444427742466611380578445393650910723381667744140013074698057570966763604970604502312096645236666665611447206713996080216059107852119141467811573313027905455111332781589404677677565243795723165996679246973299653616735944482775945224549327675822384545971272203528149943709123901700721556514184724752519582459506028232815317997014678782739413373669258452071608351448700648296271581611609870037850717825900471080462132074671823239300658400626033601775677603845686847239208554672743264665944983445564558576960942308908594822023326270344241441017471749565768177613832184111448599256309263783683734217067612724557748877967786766002918812692661862440062128059048882582511688563763514962816317606954635061009652152191316601576234280899465142892359575756093816669407516421621457600410910641309548513619178901411864227889667661782600901859590826809638760431508231266531498621057853917595831130275786698048418635173691452397179187739195011718516852940243191797930159814529850149761724761159442709830828600316143947786809089233065863850392264820931543362096359690161581525027646590294890424421077829142674990685044508708641288997623256186471556939004891051278479345945989741866054404180009810104661675699187725979002615074464156311363089044317011943410656999722790440560582418601912118864502421869730725195215006127854686285878003217759682430564693844520602490730547828305586681054412455982677437442439681118333834546077017320106267666063771634398495477587952737130906507618340558272462494637969044620273560997440892133137177545787727460410589998784378453640869816769510717616306294805765507150409434950048979345055064645343279932804494665024194070167252401633108785147519929957469369959636850921197393289256962165761102266653574893799744060207262735123412911488452227702211565854705121839084050294881023282390594942296999414844298678210559915818741163343045539628482916862063404822991412917392745684994410001405869581158694101953597329544939139869365598503323736796625534566671729918937340823512081682398334327397512991704869722328945035349878760803477997500537449386804437181281801394589018221542544209537127473361852583741811525851546548007700126718218182942744467001382696873955082434123801489911889988228496850407353237895962901777998684465153902286015703724437551705632990597985774590231300203158834273068514148379056945193482884007682699839994493314802727223286075489612464273122302895522017034479610043387721527286364035661516437547548871574070791811766195277320576679910863341209291692047668242203882783807672574193938071271116921628115390253832756491982194317128701613208580392478734874085815428619273372013813704669246888213455145281822668007060020857364870851731972590577320749736470020378887628561737269865548309853390552673072451684896466012985757323746069664902903365026064411489598574809586849045382115467967824447462135963821456493804359679765781918280967128835254053662353330375458470000458616844731101992075530317449842640208589389440519729639505952124097040057287063777718393253374394578121490853426325358167405529210315233774323145549354567914747909519715810488574992050635279277145697321286953092181735903888753131536554174639683507859737040218758899818216326706720252311203117797726404975485157940663930243492690655937862145841458068832806216264754208865634750918393309123867933505006959201524899783635858268052748510098476502086668364547527793098894703761713460865477746304537679496100583345252683179794771488258779862187697652847947016230510532610846580871496587452930302537382861069002450965891247690725599194010883693917914109667255642329887030923837045150306090233711465147085063007861907315447810116500791097461423974088428442576271474263964652585933938821199029895541357692175166822649191058405368037228937802354963807062817075920985092808140729401241880753187635044894046558466235446494518951003727515478072345994447691709912334046201654839562092576850347903679754773705393989650176046869181054453243812037166122707562186803091130371552988543003443966613031819943241858130867202936927806729522243713246512792204530145353891792429490394644374411628542912539049468312900624767209678759387074391994071841360445862536907342223619271676114821053016006974840139876643467479997212953177502523660601368423995161014503257594655413220461002833186452797086705613290831004089815120611326535603322150987613584685905226015060083331508178469959524985063194369771290125185512173739710856557384889301798263469200232317689827918207862890873721282477055807664398354305626344428224871391771769039314494652941469812530735932779498481496312569254933721781851851022629969559296970848918400720003577801710028441598255724817467662735106038866739174299334362633786390076685803745837333927694178361040522483355619070532223992335703444921312168011960422571644877906029695122385235208116057970747762926986740606764700439774204722639464722929831359280411236633810093227258957942019647251451860627452853727643676127901819832088500723204046996120595653392585209359130006656935892534734400909471702604291736962715496675821656515368801183688976212704539623202189532964742052694129370399901075533709686243531093198325924199141968396464142802497210076923528951255573854436551214369838758255979647726578298896842996614604061822456643313653809162237811956500267282563448463832938187524807322559813779958021287382945109951019986846489582533230719640942417703556246580322632815304738400983896116341372584457981865992853415631643948922549063265840901295265900556210752604423617590633533257463304700611889422982896039030141512829372028013898950915139087129169412912276149237941979031785016403077701210764816877029934570898942518844270625631090863284820551096143923099844279223934114597376799521136431784069762871102746495577472947922078871220259393982906287401869404502559667139017966331825175939587901604429135840069899690316282186491714899423312351511445339876462298377878102330199699151472327165548716076471406807581653957588878946332988231580273895721646447846942049250908840357236459175075119008028928438155233500753301759863668312730904986581629688750075360444495849396955912806125333090176035913644814923062195637560600799010086737813632416350101320227169379521255902848630756680051822488599484165475356796703811104534099298159095311440453019982104818843169433850650866375347870539714609833839821353142733869140465061577717652698296940770954878736785936831774944392124734021812891626734559377275715628843360545497767953284928573984451115431838379150696813312525871819548063006469983385299183365986124967115104860921931382620854359952983158173007220491482452926730992019111159172422762021282455456677889938664337920383027152736192443966070221348657643298543940216621048622187635162841311870904364364888078895062251868159986294042119572444066717401196832426786027960731383288022735063361649688300571725429730327617844503046352378656187143092930667494711519198464349059127766957950975729858036464535777418859034425718095515352427778207540384354520524830047278180961153929076813237190767170726933486327531762068298774951264105222651284714925855983335742483263944435075394808364231041419020101331261558876414679027710001246475738699924575860192631688244009037423194745864115505791151211710153635245288686441185880621337220818032000837895343260599041249173324996257772793783760580301763993292048319237220879393547188697359505066321215924968511554896066775180688904223785432191977238531848885343539458669361956836929985719285554936389309474882334287023103825323386286231314060537795422850132309644740930761501508835955066740814403518147798418931945057308740035482178294511789001008152713272757510088268535961822492842092041243028059708140666608843489810888583498249808736015310077003538557068614206726199129754996961902328021112901497439784592472347145242214360796870038470017316862093732873567457144485158697206115409041550839137854244770989191199824258093044475856446222409161765029707588499999365910671556586531724071433242704412085461681059647491325757542145105356315481141824308424967480502787688143812990808008240726980966894846768129935452082751055409001479494228730827827837850249495384472582652910074596408120285296860589246603947963491650568870958311232528206612748955932676394752657745642869135385816930321025158844272144110797902785146936754380464289095079516251342995366729773621627232117803584927605871619690266140154715150913871250243786817162320460488806343575848381705224638338090647484833076168526229778475893905557567820164719426368970826255519171483461627786953121608924672778585014959350680134224008167742685484210857520217573532333311656752193846768023762288840738320999151030220525945527040162233953810662461735375000062425431313180644636604304530319645919061981932583313419781768032191686498719252309229255499939587142403644326918313193536353873838277337329868898845350843848533162340458657624655245382834054062112518802082437691813301981116159594709890187025592322929519207590207635934478699439678488949029172919405272257380127892238841735306605348953576906257639482027735247881317618084969327046096163257931803772686665599148399960547112508232833484543682394468087198693069912355979195066772536368773953260955980242669101430632924086142670942776882374917610904758694132150919793271220350766873421373791424307346064332509550413152552208737059566658759323063152298967153983336362990180780770567984511730943543547956427540790744160173846491550084935722952903545313251287668922676486187301105642537041853656483193881689776563401689656950632342160515470690245001304255394907084719616082106377266171581186871984051091422189879414036813553615384558836062113563595341892106462583994303552931105481213028260030970972871365206257398278221610846439240923990607178475907020614172374431756681720280203497486312937824388458422338137044474478027809564190319152364199145621648087281034335639484908376907129409164390276771666679415062978474329429840345296681108449183297231137122133379137513581115909749046148166296156298401169603448555859073134583913661040551042654680223203373841236647773628500103810964465236158066299125419393910844759629423436845893821197979174717558817714274002479187964844796976332137790042448066899614054938767622881667091520703366648244839961035732156609635816639521506516011897438540584646832706029964019535506959338488988785902987570166286766070260129117025388362694801240135464781960914697486976594247150034507188935253964161294883992412262862100149360928454024136733050460385735386105572285649037950468206210225852509550683922546515921796122918952327009787662649137556720411471735516482028789098462537374886772937747323064332658024069692234268130746285365874425291897772821961768586702710236184117311378770106779245282187936301429955701447182584839182162543043929326142386489114346661837486266182208431723460758048686807893489380828796534298975356052462366376970253700752667795708032772433308072974145502792060851606957181192387088612033728231276367105057853445186050246095658021135329895168122092614976870950472873456749313769576713269030113605422004887119072197674333699295285785374786441296083464950614514222731237580637273103462348201249275669001048773526049675920398640239528338579983041157169285131007404513003965697672033875055656563115376498010236201823964077554196488922663204033780050467954929829292283582623282560956691019311627075254716972840761279605924864706973421631895461358409452584493295525059420834521473352221261122349450834427048916136695278124788429467979168412716516170909233092240662260159529650337080718809243778413911264499311851482507674463389703155527373926720253077585143846091501523541746297328237007696129928546084600351438383052825796346380618750106741860220946454652303083503377055192174041486942295830543901527941173693856058414059853407876195966648172439215926560735658703245734089395044787748766821015296634838625295540136380639351559366358006163050334486239582863510028429141700479419488652562511419862924247467842583232417974313197506472904186301877714288491655854694168942022255673004584562005851106387387093327541389785551231435269554025931913232644582353002343562989544795235501911401784052513761243583351002909766012865005928653489970611166873456348636195875082113910623607033627098203369612713533401001261761614886157105989530716209295284460892227110483941781875526048350318358667717642458043084627843354712158136722875976995539819979490215671552168772319827642446369028038752185259663017372619401138233296824619026435160224602313313749354818651586847271465124905719942727197133790884772027330085591962677811442810487639853663031010813406427060706603488097529001516468824134480458573450680284988596456424681100493110651752097753146311664465154561467504075268598351125658364937783769397494742600821039823210459038928777271817846693125914506802714373195075855406982813027653105351363920004670219256603050593792845632150037861839277403691388917462681909498858185693969767417343076726465294171369725013379409060616200884517014129019409367963254119639035258325768732984481036324926374305840628176861931757787529560138305678528843097572139671700302747979508783494018759706918060153743800223485784927786276445281222602302015493915394852386369018497412563387826168967872941891009095888828835553304905686223771891279508087768772760061997850612784396142521311349980757550496421885998119299302346664366390928016187170215680249104912839172256791270765449331756438159501144485113768351023965262311294174695987545100000789000865996963946033091872347141934268030996651572189124341804659297596647145576204587654794213789401415174473149299131270117448369343453192595950364643252302637307115448142913980023947847280447288017051629880442903758666470641264347113382785013207711044040507055370941002709245263301847513296399917324574957978022400120818721418754168596849281634476105556811913723937957305176904949711093749120910848737731317754267167731048924070026001609613873692427699361634272319579168940858898846632109724786736927358784486163154616720052536791822878120545066385418797783932709270526919519247490691251301156640885963984644783203743069223972065209997037701532084888282489136605334467994505335975916444119971098941145843529737639895574463152005393481901723753232794919491097826120121434363385567408574855045419106872144614622364168139925858090435247770629906071094286489196627865831080449346919514344544613122933875532405342360372017307593077508122392997750435156298399045017150763915110718263341497744874469737055822046639527987561444866459046118957113380959936023525162852679766929964750146608948360066556014091217784687599393174201958797445460884542212501414155955815002664189581637162627064114428298788129632175553535097056158554723132283354595604385893895736063009709047267485183518176525176449982249692727512081703677887373315416655645839627685758721703304598443712117221001285082570831194285879501881832294011128039342567211381544726325990253169683332132281789052667783045282426454932444673665564460636361806152505777839003227310289502942852586027763561438561924980909935800640674377434944865317717890208121033267693081527600916771348348215076603671991730175164421200545079581646009604384434719550131520435769776282038696806623136555206228596097025315871056290709202963247183159217616872433796407376133098965093960292769618938354045762018271450620599794741470855508448748927110086831549118236208383945722250988164142249676826884182389255637332801777345676985722217248736930197150720230248649457784117877718281083812767202949632812309163641771791034330073869627635391853830133173786914887866853240157128684446445839259214217996457771456408301654222198223541898994497043158653112806842769366565302459410831968959075633442289231929494686024578111393362360559162196489932607726246835010809088600274582864968635301491328747515390020231319923658903545369686109573170415502481609666110970576330140434484388663357425100243078390276716181493827816630462732922566090692928828271238041020991079890072271318421481063370367851476111371442959489394241159579128404185782795964725981779968520413027038731690047153339821614045417496035067169173458975299256480566594964999071680235754965117117695110252595837839215071889880137039806294785034698317162671002923223310081765242803953818302808855381625863574625726415644524710274320537200080507409099141021166275085849427585163479481159385852730363789265415487874470534534478848439793225193796602342644296729220472400768023343635014236349168196415835596691031520425661038344482412519812213018465856451965827182498261372021632602674145083111472930332726608445652854903002010682819839109925439217467655414517517189975595018038284381225898719123380354426040500590325342262433202842631396679455076778121666808263694763067793631230258580759160718944564107271860094693472178961195677190456599806630044857819648988487911512181312365181914259234449403259547654089891356861501274021773236621181100142470067561712024074858939314095115759709781540116176970637954095097900187628941530292642948186357680331889427703493628523396387641850056239661552396376495944618593651219101053993079967512354116764941732579544478019779918877977258634010212232517316229934831119692431205494470568678314831238932520009018597077659891509059923051603784295556444236906325747689497373402315700955111335850735632996021212874550683961956304174332548670937417934106658161015466483214905529559265435351298967216888097517728317810460207573120382963494881931239854716779599692354199526520745776057929133254551144369937032985672853917892733943660536203233836603283615647227747699315470638519709039372070942419427127356068429756911988123475759200799867436397517669704397294746755055558385735974044341525767853581120550774113385741785590278184068980358651329313516711069511645029637555609306963530559924681744038331344247771478698104545734392272124303457852317201156015853088266371860967206404764914122527682719268547295805575103070070864269323035058182790582109774140471926397251624095391591787515255644775350655709806846097414280752830370886873697420232600998602618882594194364972147392573308020009668696375207136484012457650067544043657429091416942465440393198570742405119260928392370504722230938594871762302325921595195341847613137489162043284198618780783147035691020182206833559500769026974164489484950752743291317976946493601144414416369537127477538377997713066908226540569289861267236279793790357536725092923809044752430646003615825611457701375316199462475554804930723603579207985309472141689398438291041836815087372132220921166309501982715127038595249440961963832498477118569237564839723196713430516129731003540168572303462565763064975808844562144061208031570845222000542481518495499732492575830314986201086048589154073975197533683256369708912433366401507273012444479865558103620082027683710256436364986808627980353331021472306468367911396054863763211402158388414353608773651326202572373899094248160312727812770090117319625841318926386404233535723669603973552353251052112958735186776207550157879636401001798976485396391288141856515367227628109199765896667674842378676917893425909675254860080532999022947113702643345396571913096698322752722181356272883608907404135232013428132459896816365788177920721682109147246946626616812789514559377509717567857672560963056565930876008234119202869610134572297957878688160971456719957564504697378524010697866675023346200490288024599477458030701429862824754391295972163821158638409338662863388399242896999756654821198111371696845297677332730954371475930080770850245108685241437227829140567945089753697847594720102732452279972301345668504233304351297172523992131722286443600771009973545167915005754642877366800125637250156219873953799490333951350876511251732990002142746146851531728701303883202911722842069699264924426422689781938261304804341895417801855312135275504883136447766295941759577958598132165571231584014319112736028881842587370031314542318470170519723294812865564884525420567207789208767333442296241962215885075777554617464057127063293990619748706125817915440357805992125813142991760348543793333914682333525530104892992371803223693037173120478083326293333176785820859919619487637761517568298196193391871736789907640255002192829853232859875529791534120544197471198267479514923258216752339963538077303254817334576620208981812397581702287096696846756265508224595090649980456043514749816279541763099156037364972334907049166906919994970964474248005750304992442672349478251351767416030615477131567374386214361380360179641199944793007861841435524118817652216005329531878989133606788641433373701749674568196619711493006737844218508141506985027857589981890591300555234946185106592185188435749162311519117950393500081990557412723221675215769177466356709963620882169209483412735718927888390479142503263328627206688840974497769491473538525276247514681130888865014158508384050037168366485053410398024405485792431016094161146034702035565987947361653712895594895496588573367172627559201790287529176220105811965306974181705893565243379567988030411584340435251376124478295013118285626831766123648281562244780034659091305694113739379281416689134957158046156862531583094177965715024798320785839372419066770026863027062943886157417184683339035173358459548860529877246488360764052396169873979444659803532072344742382101248934518538278918512227051005884001547640558378808033698066666422049646284830169487627326417792579561974408543121627531947894335482551084214518774031296756559902273568990633041384442269462434464105488151052241058417275448481840792791770642470608000245516733516456104355609755863077476798776226253567906793761362426243315033628303077826131116914722484517760433002933668900716811032992154307381294509682782015490165243434174025839090371312023039696245222790501731022494102353865503980470767810463428685082762305882356931870024156092909194654824515644772736250860699512021470894399950208490724262668056895320825311328158980127804056641522623627117819540614232833150080340245683064586286173076310067652003198005557767408088359705712512723119164401037295044840450588818020293677670316307179414878347434847679988780517526236081801325696656261473604857149158097270952698727675390545350573691324506475335541625301467167196253169789325829760641059166534146857688189017729593532643242023113260524471921540921915878489827596759490787023899419168034325647857738504737221726023655957386996141956070502175066787377117724645594538213075238535711364972999711630066211384650451679838878393940790646813631830306589970008803510847982810066531500667683940380812806834514415080993666249832155441243896059342214336948220874131837844027948873968604498841715705628895615069673774602408349134328195717604817176996777447643897524101003447099223624562123097498464525402827540307299583731000886475484007143358026692336763654420766238935925304262548631902711708962622312148383605916745909192536760930379639667014631755475885517846671170202190054945211493843453080040042253255236742267814247796688473412889397359210146390826707389953195648504396822120798361277830184632834779868115226096097591345079534184657864360683784752437151406378967218694205309398937691432601614860252653996815719032482679748596095744968587873764710501119083652393192604668053359510526530654883725427507571579600090656897023840297381359285116927335106871636370662666220896074564158127714489453971552012699876533522786342664007938730904144871933560687741536033630489424245048034428026542760705569314543203466848158883160210307372895119728447307501736769323726612673018668837240300057418779062701764008129734487471910979339126209197467454069718092022519601214399645708319373183035219980376924402480347304554496915280558887209437580200536490724212068793898004127146246195120144268040789375229290235025403239441959019066294362668509704853801560987099503304282045494797607140808028907594650851960047968138387487033922636993382834340774609635721066914434405249042578323681114405619278338369196008977911571622921395509999787530494402743009627283780853574040402433846744293654239750409691154171633303648166574106299932054022859942412614391043622435637359536899353956709420479282868906278924544625955198873051982771964705530996213447877968043270038909346134859355008570991077500475697124902713049660340183671879507715448946701176490354489462717552402927562676652534037961740437367861118792669570509311510733020020398248949887357760275937730554541332459953202191167391214360703687678332712575058621128789451380709160067577699716896569335944294041619668168299015106748999459874380455146871824461966643379295969553258224664816183783821357339591495053164613711242397980399224052775932430607396501817980468641419913236067831895515759242262454674651368581301293111547689273023858429958358232779482802698809029151462595745812150004022844234414532920740946643808569000301993802449869359230168548328482578020657858047672130809964819394133205778930023308400737477217849274104862831079059670098057168189364285935484841849486585841005832906052066695986584069236127050159712612238617659120371486530213103680465174584468637426826465403244707498203591137471978409004319987821488270936916031166465428271733610034436904141534959409107244119973828739774000897358567008468553032534979441967348205794334833476631780594302144469927942139825645825843091085003299965778822351298116391781372873410019672893441541379445800979046839122184673883725648583322845374625694383391373399079332356447395989328181245567354459178309468254955131614869976582128108977906655769637290858014402286198214306544091968555837978178798148402622439079759310230870019543848394317737773559776774584853767214648166329414322520484747018728943671858089121995677478919267223385965308257902982394457437777612319013865903054036005551151140299641341848370945873662720444358515644686076586330485130301692343375114818848275815281966435425349999612192969740441663442907678211904185583896901587442930569277485132437785455738908855544310405501975144431519636678832257081317554160861458774338429909007338421044194708742506529606776500836231249271996700511116761829720230403969715720590826856014133123013402427171917862764549026412977513052617545643505290066076199119200015869882830481532934803489403025384850383473867258189107114138719771148863505856858133904819375326369995362821167371440147570502085527741018338253038486615783962929328125584576607063796237817819233115016748170191744396324028913369679611330395988848624368973669879694003856759979853983967563313321119774986274818974655158174931598649455298426324532300069588374175202750548991966147101523313608132348665151368605838338113954755027551987243534773494476860020022915227092472773219825692849303689655133401550311930924353242280359042495044788756025283716051664725193153485992083133193739358050480842210379006067486854353366446140275469184163053128857360629131098448106499497734471941271640588495528853878908569900131465965283272961178689877519033203498360679491720365674254263630492862211296401615882834804597609808236895396299492708191721189912728174034691590763059100599690740627734463090778357347932000517499479855812073241386005039402593991961344631819020201604338502911318830662271967721814839395600977598223226384002687228866076152793956589184609013975705507668447546713637680746320316637381660156901047061605432899801044332047282070031074280660136714417879530829810962053127682493130768442564405469352759502585040745215813784639529938856055484305171294723300608837752893042347101951604075193281342588690125544572200758166557304558827656471268422062907626158452446045659337979457256203170546974500441316151867846960371045394806729774739760516555924959846185186285017756853610325528752758501541053934867933467766658168733078297765691032901519787038225013368470241780299597875186002726033540695469711184996291335486948041288581130031399432288450717933568319409031476536117566374074427014834481587025479203190163992195319115180080098764820011219226600890284426253056473488928528693953983773684590215119087077123568094122704475185643856257538434245719709127854435682594548324375142266738004994531418373964932579261608708259867981326664937567476647615199566629316039322041628147255611296623673633901216206992072076886500425533563227231121402868114918397655628656177066020226855284597951439790736835971570523845380653510095481460693905625675051901061665790168033201201595024200880130708589708532989254021884229278616858013843441542109532318986205562971411728827838655250969841335269614016241140700416560699414605248070125882045614843636892740134194196932618352152272856064168540628910496340335459949849551525386533133363009910219632749875155269948042645477772770195415969610323991426356045853665242377561955731560071122171841715528420897015486088156764534260601758452517259828010960451030398714766411756588889578815454317838735278830752821327490964349837048967578514094805077632024682611125441012429168974569105979102100314807356563230741621921292246718357343959340112143659403910009043962465229433422848938884620958244261625995364318138055154251251899537583385445759050246783168216841855893459081365735479644955783745816164330167334486476285168414150282747178417888031649097793285837822602671728752201864690780137628234573926291437958870330979161137174082331351385721347990952028593927829574858900166013706190551001724129231051983703335739955964481907653001654314526134851319698363205272950541473357043475252448319008266837430735509059571867718215439886374083679168707881715238945034026421812682065350658881022209075136936105273939842538794849341595729190698467644389039013114922279537898563980901054594310785672281510830270419602445496498014187072125504301069634876073698982603971344246816267309749478129036400984443711199433108974481554525109015029072000120019160394219292274134982803562394636943785493408985594786203415612800816626362469534572757107287902631539517919153771053180749480544304687479638516800705385745831287038883280609416606198819782876467148829284494221929506961271651014588181671911120628135420711047846928699908509003481648156353600223156011885461873362860819428199851683533608468019488256346740583121376072492264403422487660053744320448051873069120580449702171991974232498817882820777447899064355646631428519044900157216293232517256600695524462547082479852912931501313603269746504373239609233197763394479330214194087339092640673192236979116789286738870323982188969439512968177359854852262193779199866540639039067993690751864332747609438640225051106904244728198244249756392825362760022890654567510124114255249348778734814932927102729054778909056929096411353498251602912054270720892111995055826093792371851978586098807468709026871200075525927048397053153267580358911585088031912010479806998258759636265365995692814933386901938886502332273271886711723030081578300829601507752883559324792720918594341382593639592606760943404004268494653624090482275879458101799551698328413649833839250761801050747255053476361945349282755332146836308269278792464474709140038981742663150797545620571928853021188248516564102844222895767104105098590678216494601193237059476752908638603117548506328013717611300203212126417417699831525009213781138282573734099271668727138337455758205185622439034734273681320647490584557467730409631151618384744262661503447206062758499400278844061143399378137971139291942356019364444072394744899685530660726499244188251585483613274770039899734733833966755457428509277451615844802559743646841420386652745433559207628509408186259854726415941873334458517514803296236500602305721247849009044780143700643979030321224135358030019666995726026093375001071357769671790823440395426629476957854581994797700651440365857147604406412037933656948838001786851243500930132340888750867450920564808536625031893066135966317161381006217065447105757406155840716588661801076344677462636498767314617937376533895415445697270564950096855144716296798238793871686021578473441399994807358762752954858770972794737403382612811276600172103003862621644531862222901430590476910845420849302195985917019944377399932296054519339746281894992405058367066589550665708514970778694012731872475184163462015257195162848106709522982957237622744261280431973267526459724351996386019689866884183733340810274820552043917703352170412882363798835453970866188112319402031282238172339733569278191251345562617294394154303735114410377734578938385382258524585464335497675751893459496155798367546591200542453142443953357727015807382912346988878665360259159560054010422869329375197436931595278257202618386848164484632547314484958269193939602715035392170817764593278227551322993109908451705022948353997295818938094896427138086563804993679088776278196508530202589781682271706201864718106656563195266591036863562321395388490449096337620321985666856053930646388884957730547765629999857285803522289787544985474928866812437571875998521573437216256692853118281261780550089712628874738942973189259041451145286803345555121944231591909115189974925504570249379031129740991161459082915359487643336042161761815485335805350333281339892681311445343868852284331135440427800882885458766846356311324244944684692266996992661798528798847715956529320448492319303215134651267885448847226207171416528901052717326785654150235219481303705404218484024984797918750696281495110072951086864103638990451651071762461369366117159140856205696719878727850183948808769289954546716786163655772140582604823436581530999508735504526916097648285969332664313883775039277667184206323157172510998634392335081360022070575308464630936190602996028871684642697608871594158123032474791368640268938044120654680443977257753085789688921721895120469255702452358755439868732815929359280631311895035616114107722828372774201381281427321679259601813955469024584466786442946267134103548676602879783548607469628355416669512297615775636468125802268434823444437790973850060056873011265880542299029339635184705810011235254409014563677169240632678715988137928627071854199842508649800069453338447621250506222421354825058594726841622800845255374907542923277953524233593376351165999057590044050218421163806876346937134466060830503343346350835858261450780006233557529784637431029298166537997743937505765635537345470983723650603673593980115217829707402808149128128006175908238137555883188479663612659496037621081444787784456694365722431512705963208105730887626676922689493584893901973763457725988900914870855304526749933793836847447299034132633091568411965043738992394515196468248245395464728348350055900172085122237246936305683513665632946514522677809215705904651662477729324708118038653612841788148333028545827898420095429157548819412556652623283267602555824295691798873194310621156738816321147293599727177263215066301947403508708801498404302618910555820147316320271122604794616953511618389145562027035645158152279705480626770095971981479038782606554393109341855827167909829417979567864414789022535280517837957489057864846814086186227453011583808563840063010611060075761275109017480735315294498651426109371127635412264532862632141665769976627888040767316446313855996599698622923424937253061959237661224060875518556506210455996111728516359672940552597621071985482659637965347130361892032855866422606195402174100671400104867698032807179997487320891491262114555364295073456290950829524402882888191455285860023812430451776929497268815022599921711805130986401704138538052311715256408788618011286071305587742063949890037277402746049774644612655757852968324797613027258403070697663389758927221560202132362145180100487398095110815551494010191960095019833786499604613430715225844672574096126508552557782565479950947165783277461879955867008559117858568740743214780346877203480045646981856272315995312692923466041209904563960328513301445576514697948823239931896000209755232580634096194762598933530513368789419459692814084721951922958403994784017333735682391906092600927745927587053643458982141538571692945067662090129820812905767430294179101603753635459817156912502428372288978911740581043379303676673897506921067888799315337177811585806005571910374514948312684735660640075309121450986231335197819411660849170217838861007158599705629588767239396119763529473794726376883376373009576796038170826421951861673550044733913765840347489699822222880244735948222040602407062361433434780398568521084856176148282486311767680630568276097106925527094940022435533554470939767125050250982839706701622982388884123679433408929432359566318934305163074277046480188327482089420012662088690968187758973291623692711489468831700035901106706476315159227030117934638328948245288262300138178982880931853701757025995991659904694784983495973023536677677469546808024021745006168115345978124468462932186034165332364104488233328769401260426812302402209658060452086114316403373236570525786382106983476616793479818979537342938608510069666481339986246331671878409457821921747653711043165274772695419406664146973038374721266567700690241525506185889531804217722089227636170374292955131906533331309568760307956232572618787058144741517927474268976982427388169290727258994537577195457392457411016263181934114487669366674822678864711748904372876385593310186788627071839130563004353648268338951608264420836277306978261811605831375317547631023616953127428412360125725898210840879336330146652975709295056142673306686749503920562628597781276226289517337760518345346294415970518289777477358009501311657892926240447573835439205885987725615135723346386786778602638418320443622578485294916911876156570620160462160250090485680727249194307726239752952814441233752810731622388678375408329988774874691441652961166299660837863565367569190003549519253250942694102085072602148857563840702970325944787681373791870866512500093289330047005827455868684548392358199344604927235172116689766725842181648223568448377434688766358872549006785670525042566336072603048277546329836991570156383841201532987617277918747658072270899833379453757724515216724680149537387513367111083015337939007370545699165648972309233816913249374042207136647084555554406157095134614854274812997478387616611258378593510624645953226869608866274821941271209953596226619558259476706991881887444420732753438667952304895614307979499540930706155590834384196114375215768790602159749157342201367530572302611123467847151963924876547259679900544979084859341648519182150878072797806784118350683674073294447149737735388642152693756790823740657824828408431532544692586507287959777367140369861847987242187549037272572179724582782981249998392504369699849987403227274346516365578377891710424298532053521031849417645131922301433255070934221413364548610887915803918128878965526229029910587471181038354384142141828020020185632967418544611520448536061091722214873509630067890098462977438517086497480747843435663696792913810620443644116793022663978532896527868049304826555492523422867806389889706791853672075855447233429100536927773422953257253524928363765479742735210873680951303833738206354777415992045998021102811436988177049463198099072598970943467471673195998396423206206519392625827181146738252319940881325658858633006767716541628073930350571561278544828074859384794447798194161249110049450796680878362519960841602189366090289183314203166603133418725617800255595301234180776170078737178354801572742559208541937294215599405051616778716390307815774681500530750797070730339900787934658067444491692179488984951647737581910924566081797308192773144316254095038691403988270936965255431165441612974069899382663391971034461121390998796962434092027103941745222739460606623218718718759800328135194608063589065642197883865555895621752212040496843377328874057781412730931073558927189512347275723012856433618491510317858727297130486977257666309022779859943889318180902194067414529217845110025365859323660307359413040538006971058247652617140078459120219403561336616938837291047263284505814419659215313004163321332969510173788660991937225623336202194551232671365055718049075476504717357304947398698781018560551382744708227172399830875104158609715790919571704381731528828176637460644351713966448833880614464067220745034032567006136732614400035356818388806623193564375918228895724613685104045626490334981244382206680304332364429936093652010718303336404698072757327305140458529448059333684719151309587538713763389444715789276083430999264588771792041962436702558415961238879229076902233946859167972846920699695477943398343191726915642956787315301719665499038764964159723230789309385747927739563854679879054757952352045761222443005735554480340687667364812854287805011923912315663976575559152338190921380561268287768848758992913453245406760429482242108654560080851576253950376589762065871202833298519655469236938832223236793898533125187429869793831684206775409608556515673706901790029510203602004024889574063698996776244482655090733710089625296622573300875837999225040406660444456996958024692128246469969481925370395059909339211106443565362398747935829100693722992635980122277297478143164176571777535192682805883500764714026603284616699560781676690876204878970920047522316831952403604653162929052707180349049424053232414408342671031936100219844058239747245980314777263117313722565712912055858926321320420217743241857876984458799445258824117320619886728291282035578277785945756312890996301390910905305967533802660566480772105121685983283938201715571324928526691962945116576976347426254077230599255426438450296438152352222277798163143024129506682182729985205624586619177427051255485177783819237381716075119629373803060682200519058286926498300066555601792823357398750788236462806215843456033783766294262790255627620812674507928379148545024356115915398575808804809696654678326269259664594218719144623351494728097552504488217851991036716440971372459259531792967429791919581768987240865392719092042384690246637490720616655526735535862963064739253874403313931017167933831255733990952219985968966277210454486362464137124792974801328205788820883663847277380622260854860929389625551260971384400313421031377366328958791690927878999241674874115049088199542455627373902198591554158936945641306102380560710972592351078767219457678143052378486850068949366711570753413848544517716647821720623546218609902191843791637686101867529092701807830421545194934758453505321554464520863383377354165161111077287407785396759506300204400632727664558765069000862631568572696169329782027697553050414558258772642986795587243837763228704652977841899428334227995535694049364389107824925956785893413982976578473485328044772085315312698331693868091431657837607143684797255523095916532441858072456583219057580991598317384085305361179758489312256825998477287821749116618896823141351889589966718828443504809394756147668991023056689317321872713899652411383960483985605227835823352088443721363027507303301529262732837348762612870748703796514078688723300777252933064977059002302318492457577548593893508547554365244237309459025410825205957081912713737073294463972811074681397346805617008054281178186859216672319699747462741813428817554445511039228544469591054337810068843162950064176733979666216597514140530444247667075135024873083807231228833340861652555625589264564781570582387455042236721704281911559991028042094504373131834271606299477159397074681093534907636474238465958867774879640083216505931629989925046743267573443987018200619445400595503512930139683566576369283248481206106321515091799069182130572963702268852045799222198752328915910992636015960557073749361264055771548600894503750189660444241283358235447652269135613501534706558327840144436920313747876939180302140489270039394651894461165724907387200999215651015784595950376358469854216618902353034300824407440185417535151521831109056752263892679267876695978719714613153379146026892923043220232725527785491716839795973812177433749110023502348781508286461532779046602842584640203105265759775843253377083495776088065085973044202486345317141378526829421117201690034726826568998548028822052143262020937771250409749657343031883053448876079143364598144635703226288472476038805764072740756925079221726791385660774879809533318446178092865796375163251621731463762693935478276752981087426554411472084148220963895450548933736799072468037308585525039249984200543800472247441136970053933464466702347155155508440699969494801054588994084849757869528777909640215888678931365372379820730666571213153836020024688239880980689229633147383356136824509492743538437779574017935767738764281214855383529690191731625091088542336384344679774161142675518878056873408379537335875904385546008560893019209361070803177716108827854804510776280600542670565980291519811902912080711847330253939970370522905545606643958142460883283519456753547374005752134227684942022016539835018818317263414943112099514825237870665242620994363896974080184897079152514384526657590266238155809930407987909153129106179560074592042901483009180663072700715591101713129869458638665717080592196842609970566947768036095519461437230822438918652814962086606596629146750111855314981713423910420656241314376719935760603246436675140881849645907644151611572221408595764985808887856387946669970241612741642726812982746697793343464816111855840929384607948411053830439979543407010281557889386542417627589848226239548516483439324674979550580016219578885432403756563597210715218084027942738432760738103241161844296526695144296147608441787214253718046299618207997096633135830239752545286073933360640427737772270775273385340020107901917326813478873492041539780949672856578524987021504441423474756349259645382736676115131843470910362860598390482729061709003015842045855041172485572011042482001548217880399389779054696648305336589890885350454822301020003423806764357786012105512293368100209342656862128599483514587324761192785206481221621257680839371218070966523422310812588117477108243142133914604129162337106631062901909424544109617108456077303737595542259147764673650228171541080797420214266818377576806995978093448262017713270894603837890133050877586906510820060264524492869170719366861733176124593773903825917215144466971143445819423997637295819446158350894597617803794390871022437277959144980630173146532212713721909113380902564342121826378819496943965802916245901566036290829843626655742958990804242225889200319152429193038908055935057757707598923856548962300880763412995049330124720402965423639864421928755322660337355203250858721491714756187205945242085207936237845325111345683857368628022617781700786894525298112776661543046039881169823386306994655367126167797395741844546166745384184451289573493934490351768841623254749634589387346412950226055325829389598234066785826125630799694232229741712823734794652051620842946862248364899256459585291494256400324872325532271520061066469295942189045851233556722141835954708911492427021054549532465872191570762434568127049317093480046451435675840864662190851417846715417348926106610693341655808821074720414268974113416064790102646813393188540242658460621548200100617552841626549436474460949096575100718719247730555836998513811762333294088569579028021022188293662096704692400739072441488474623074729454944986603549858208397809236423118349063834402327486929913404005942287419178811267998005154196818151466494154683232670797044186088935283062586593821947941985138912793357782133962445704923007429043903245768242585204500437223828020215245642875248832603351939784016691551891028672420807219064620727648927301897292098673309293230562384923874599926838198730295662629745985163419480418704492278471411417253704925704526113566378288468203769213374316548249791435028371998363737619171459705464905444544940017491845059487461026485222494202263529301142661381444500761029362318117395552219347703880238714451404840269778658181895686366329076481867742551072385526785106207374782899382895519716824424443868327577408683071870082890450828949931941989566359634152825889596085994048964069639160136505470228917314311843813037777373402591332849430832732843261116128385661985950760331039779410950967737093500117472823071752451107898588370609528076125454701396519296035157685817543525224940658492963638386667734509339446051431969577311654270432376757732252277008569438350166549242695191766960352071308946672169859573371103888375578924626381981210399279762463794335314863117660401003005120023580042424106812025325276688874636345552722463011121620093960096144722476474156186740263469693873825732236985422826146114815959841387685193085799101286952067809330698563283480102923041071949984304245747129513517642772318837050281655855285647886362649664422299936558514079380992016024303903217772823513276489567177234061914886284921076535482875322611749113604155409928777560649342455472920728180683865202421973576940336136204493758747061989399163807158653180893475419848526050197059349957688685755859706717313064041853973179031396421431797446672396077902873351720803648129851376710599856188780563831844378001478424055106589975711250078393921174958145054759905768531246446795650117068768403070744531444490669226162818184963814458206983446484064934037877004429244656606234838400575210473824869487455351603314746336717321835372214467409429858398120345802667071434927742851986862825845439757152096779194234998891356589163194525488279419233196689421363810371689582983187385810110527799610089974742454455214930433542519045081346937066022245390392334842283212392203806954069835149844100536759725060200404285413182501191618469800547762015801845800372139446817595958426186162341985157712696434416912029602822877432456249242009041954262126629628666169215915477142353480800355384911903378482380692066077368522343678005153624058692848027066433833985338670139951668411694136418310180553835009979916399251542647968396891399711455990497465834309801893540242089058640377120106534657814804066372723750844202296031865901163118036640977232242841336494143979302852786918903183120745627631583218475688132386595833737090127097922943585158016312246409254034619335306054274306016527619919815348640760049506641417571969063478790649128649683147297439942758061582835235583687314228342738137275728716346616133673270796169946949021468954011225584061305382413987687257220777327584687257060120128243092047077583981880267917632304663349938443427286908727751550216646409737642041016816915843515392967588120197606247321694134133059345385707501437086039017712018537101174928631857182368727669301031726537095315813474921933785331414875442584921969445736915693506433595336134175135119958015535345650140096581452521527067462486572477228702998757057279813545553753843397188850965093046489117142367848955139447962548906715970922698718115181239179191990425704981868051300650091455042373805864537571902476704914115012657165343533535753118169682970234183747216936325813160838859049126410567234316582844135392078602269095429426365140738524647776149067800410524741879615004170731549893572153215566394426900343781689712055130820295462312004555979976721139474963700847486997657102201335050846892697903907385703398131040894097850996794686563519580100393258941635008557005370578461343300484429706769260989459401695952959650229374844634904032965648930365337017231663187778870176269428044305739816374523614921462039977890628048301583230933543161037603794911103610821774185090306738272015067943784615848851907408429310918973284774942432949682553135787106901640697442342432939290860600866388825862162437781192919816650834648438486793143909714044085023065325659972223220307426039140241121433480307638057185387226001053156526361843040492749694022652747203829722133151786379897250216322918453074695015137900356423551229005852891166645200451726946619725822137171233645758975324083858459864371172297080784983808791547569018025914333401699293015967945028875925656202938097293825263285575262913642473377008612435305032390764854273555107876512577799515249506729398840186922434262833561099582574752684291407026013150938991407557872451663198381381336915434380282436668151734674606599200315326648309441463937172011208080993120358587793601272605768672868271423098098756005941827179228608773569991519989939614430660131486791132769327179453840512415227826638954915596735755871331180038141310123810432902916556302439298542628050896809771841253963430867124162300902386840976775410124898977510148147651494747264946443611281734541769117656695421743008011266883304221095707517147040550038092417848848514225452444581414686932240181621069122533343098936281842824280524258904817538513326616825533074015591776559620333966380406214447091816540638418695043623767232896174641537314730841498501446139110612827341682659136250187659807636876275870098983726030906254266436987923665309163190568954037456131253846231819623379348674694373041344684192566193113851348686726152742487570898902142822138521199753884840474465560194731106060889033498558451644258214990359792935487477365371324263248377380460727729155034601442773396882253602018139690498081550721955544220744904320701264191407965338974643691489082378770316290630590646699137128785160138441282039416248496309773346379829759398923483738277690921809400737743801334044156503950063273189819239770361836555423193773200742975885307611419365065774676111150260779985346293943595830009159122373676809128910386270299561196190339592850342297629771244918175349575682847798919361045104387074706666518529532936622427649476572518307326531001317549044062015059147802653715655763001293311222496543510862037594241748464822084833240609459390130054180515187238406431043175944759069563093921161877138483181797011128179303514566495517647845760661470180095424488153934579340595232994101476165961008501797997066184869991803441437686118428234331034299131069459967298172826482986001950883468582331802027306318663584855230951048003931500957713048073371639513691670642053270734410935162763609476288332108136881036135075365207690383529330564448635107554738211857042518136981020602591608699002734659816438165235601216270142718315311807514699533855956464825183588134996252650898347753694638221379202366057021302559814240176019993583647172289098358903228704155625047125009222882529628087256459076867558971963190300386640653212031329835919158563865333201378131005348972047528388479370642060442260471601719381390117749064152824613301380870553877521212739825195189940495743870622251196589915333932576397589467123862432033898701041006466241441863801402844442380099934045682172459954803835141429959848216246371367608506819163450278695988596321214862306461090012415359967653373954553200576932239136795661099383598615134578778012495502323179978100072753942615137569049929474050773328860501143911100109354968048835892822690083628555577231313403007911548580026260220329507108707426725186381161176842703910361890307759654116118918602556678418162839274159396518465567175392803795861484385307334233611790909520662904044059461306628394441024075193492449907765023366617471988310334814984145418157534053709581076254653023098410528244165920663773278093734400980272469984720420899048999076546745021140758047658009610014717785281355309810202901498698621167188663431340838708421886482952744412023507253976557123581596576346973558889622730192216548300677683356651864728568053508215263831603886643057893866515245411944955414044949049701202573505405146995661179099599208802354634767955764684229075401395699071269871997276334360146858259869640393483350713068801334292855748375320213184726221165498474201145287961682561548658700709772846736563473602283392069237717687974238755935407970482197100251771088718816960467200191593163302142011418055902508495333712458697893881894284422360354821208646492121882113957285468809322222334772519878599507685780823674022639001646424951428381109709596102574407639322149646616467490765460009471935318884088158349264127820733858740563851486007510530360796840316331393926001868789806045211666401081363023458733254694758780598710599174257178565602598530100674860358209125668110029539607836776833397569290850972337218892651264163983051640373888641122176608447677570422320215529371918560235186897451299021964460952956881281233139752159416889064117539518192597164625007769514331378500483399491002267506125238200732029700910010123636896387244226929187199787705656565935418103848524997576720739940126387212552673494129426833565878010885425413205284879938352122585770055450759769847493076240625683704289492675227512913614310635518060994228000414693999586887920605143563018045864715007628677417112183579579084187927984901267032746169611758955514333859560925113511033036852721836618146440766878661026010200091546550500632294730486042826952949324780872895832872578720925816178887484008821496393435510590928817113025742828982824312700457128073153057171330867233204743422124065870568233453216543292516657566773976099600975789962596223872583202190397998221833187897742824943964381310701835363350551505720016583683855967546701275100487551727972983184716000441037425604371459158530009223638785576182980019859707877704511552432295772125816820444730418067954606914095803210260900500946809035006036579369404401531945246199513126595396208647807170013980413676457168459750096505556429541415807573638227228388528561440166446809031841944446163341999204009992949045353049554239623079735252060003565721303922711405521920727176343983729873849237918040953036242352733191196977507870251851894517841039308532126313054457225530764808556638544653322267694652805604867747983232174655402476599514799797737815257841869567464148199185994282256856134131823413017186310160854003162210202037141047001911568094955491518857595299252521173934829049086694712073653885903339204905847390351774584945858708840804415461404941788892564932412430436466586784514786617680306338300505588273267524850353245222053126163008857165275488408369250250352484648342260699977686958643450900117362395331876263435179972581717683902035329054918716724522875355640284512640547412440610273258177149809919291818110334156701017180687047625624092040367875660395549908428739607345886723132884655763536281810652547132084100942509852274574237573085402856922917862042863304320968550943328730578022630640641700446768461055221241528143918328664670964516290593763303700174474015314437395915340832110752848949902073878627617658309137069731277218794861080020299535085179240070107151488978029095678233978930933496232111420237992650996100099526219660857646610842670937666166565697369184326583694505715932444673713303931226037625777465768088156651275469805553081061759851484991953574435802208235925632233137827224508674489811460027860454760157295012742913023163265611236051621864880323734800330085673421302235368982665863255962311658589634878477559063481049567201904907539163893854125249555646905187259758232142090631528387420296145047897337864509643754923598951455911759773006496556635422243966869018288745490500722402307936570769231177830350957039870248882598062435276713299408031275209454140370331279747825427055835248717636388581378240589483032534914646891791613907865115530274689285316114182443334769528889377280354596010739844081769245430738446923492355322215463584414478734052172350779291614273099750897946327276240381115996071695058422201016378873373577192711380175672223316675425765782467392216838578893920648514432309605111322664688536733580218767475310424604030626482624257900775708801158477119788812941898058239029601998081070018980663128990321693009593424673284363675189131138809390676047713434179254941738900500347798444996969433145267505313618103110527483246779468204042714176676499480664962581753674998394983645054495246382808685298926010290548232062241961464675025093029375772047324371034624205301400683834026013629326980067261917771701449730985223832724092829029725751873692269012570687533740942579896738869032961568433655162270356870801716647794953795140612243188873105193875451472508910970443384141574298305192758543528025608775374118026920280160481647168622061941433291865697206064696395736872362125931245945367387084575930662710552557873287442706227101148953807759283397098722901501803788510369783673415878125195666491289206080219047852687422438613777139789151280263603169101022503669488148852684713213196440692467286159898530572412973480155186365462623794017913241406908764375289524910833708043293591571081364799746222324456645106545079123944570778826340578223375262393520895246449373295037508612523585821635561762765380871412203587977629801943766921104974518742654424722106872513288797480780872498823424657782942296828117288218093930246986085481180010228761930998594342352096290865260639363808278056215068653870500860773370272044845946307190346278944656772688738891929767120388483155477809389235260110903982181084868061036585190457673192552069595309860869554520798543554672884581729083806437979168856586322612556898465036423103613439712810358100232613982984543642859219565353285573424909136182099477113410739272073945501908644075206583563573639904744222998420819475284647843367738483651208121025852475613959628281464549313529758384423467379623086932202049039329892638804928036054632620379951369599658890520108765526507969368187037825419143751660219644308807101389572905592899326469913197024833336811281841012566528490658654256438789149927637350400673856619473014550275890967199048238993351714675847231255399155405728378976174005137264836835148893446290869903682219451693821241643379685268402208192179773105227610698813618634573259786176897880242937891130647584109840155323747758917812189496453325522676013258988236823135407053252391719523477323369059279198320946997395657006468924796178552725854573924563662534045546111230002172186146475126768620271462398298916515671190470157272879485263838795537248396722766786522508836165165989650464850324289787913303794450137313041993843167973011412543724975253900743123256107557312335758712900586788529395364006660046651347794868504240517363141429088434718323796009197396053156475551941563165758713806605058862236333288020328756204171620898135812453940482823348656146734441436186670184043699995650600893865118554802583756768379005726943656104603931558897915078021431614131413202263103651050231452718515421374365594029279554084303883739853924969979814427589845458608489372914452935247866022732412272002065818879191738721033764107986521575729384738626474453814202141383976983939365392878087451198175789012318496553760894785429816248880814684020212289892216802531990551190984282572214848277311489445877736788860221144515789621489865727980975276019054113567016033699185833286631698095501237694217409176329500850554326123823723853725815812257808228374412131162443707526314425159847494916589405440695423702977077704556860092444639717145770639298336260511971942928858533680920846766178830359893521303452452107731035335050145558131174893384651060446019160867787876317885002565338041396813750816578537901997114582930748351334720809527703030691939181028597039393527200895490535097068972212271475964854164710502606561192218629829819630389780479643026472378841794118179922565716288056223163618879605697206435972199955185610496250424611686277065938513050812475108079777579748219617646510230238083038136097561129017399651849340497658900168286136456034853855715728309552093431331257317912799450375371617353182757198268106328447160894053387512111964594997959245304858603740811593375181255604958801232232089655042089692737119197223723758245712558919570513746296846944940182192309619337946227300416910006944327641075612630979169726492353338044298467424454206414653395541119908849597739813397162113883089190770536055171425719202518870096437291654533020080777726512083450481703739157318377481072112176363214710980588791013508717889504224674107374780368291075477579845038087074486647116050196950399648443362838612913674377547092114109638097437288382806959075483221509222810620177205631233681405520331722322497336753130775687931272507243032992690276464965423408939665909224665753239095266710019195218433473950927263513901141957718988557041230845917210393755909288287403700616338505572574263729806949388209486791074835935751629381758552139644570969235724522576133732902756093028270766645572053716194635169975780269156995200514958973192805168643091724618134522008714407490503613181722858763066242245643004654077050505804947870933492642526308761393886655664707497890210372969901092843415919339932825397275907166904564804046305222070752277945319983206911451639925969029471011064708521090640310787578726666435908063061157192404444408897308054207295077536716689283190376946755408475145847460419447245942443455201631589045462769986883706805093110941340468558826219376009135521000858968085016167410280229877560668898564509309159178160986442854746280980010057780883625104320242902556787248947164107942848344210700754510418001350903996038108158362968795639046721319184981866088066544867452063190269985236844085792469861074416131847584940834183135885390592781520243809718149061130220626408657517704102709484170881449898689146268200013809709445047207854698866405642682125930018222978771352999778643503667482429883612170852417495543189977383274080719845005360765947204386722841587638719611178340606101983598743273450679416472504017671456805810417043675825918822808181570807644387130025150041711029497641197846653693049216273468882193442107737851601425014886089773474331556305201584212470049697776059266075130112009589030697535339683835720886403665756433687418408745208172624427455358222717394957371461583419257522796497448954338168830962252592749115578662593625145298484251289931148234496681425083341599388054807534291442438130214539339406373239623842073933678792199932534257143582742559651804889044877141866913956771106356173181694533529523060492619555964827678900925173977616158955715229706791730749535141934467788922664660199460440557148425456933614687810124314320584458084961167445545570218303956012150697185442585485364054027901775723910162743759813557180555845361731550462259889397361299157492474907423953782238476851021433485821230765481941202006787140265062011312954388904760955685097388638556520302200936971841870163166334330557567954084900405328361970206844257222501462639570661802019736834525913920294291965982577849251751928294736190691904894923307541096935038099658542623709281959399928806656141248178942472668686665680542512687033665151158798560403887955424971550452641574793248419040020741079060911135804875381116573306304720194713515037301229789107835021096252704977196746513303671133002046266495610423534118494237658331864901177500361993983072480748470898975133929289448451526064157766950614503739340664544623034263100594858712110217787186851789092632416382862999933542821384920140836698930260101128741962998605031799143011115491766088978332719739376091502690625385950524451603570101565067803277408496946656980404469093935238028235549640484513561318635906080724242585107218620280321055789714982226301400165668792469602084092523744980860825694304717201123076725909333634077336392623061505741917858738988605557461280113965369999546172225907241180098175416509284484695469301701752879897601856890856047034027470584296681307989888165841514083440308379085536434369034769890793211900273407535860094365088397554789789256835403204297270931940998186970178260031430666848379099918507236944374891033310656443318045437493829110155220336837316682086670447191243579347239807252706796326447224186351465424581402795023284843260709540277030925703632396859308463167040003984047833055154958572098759506373309112160212600801538605998315635752826541726086276969958071720775525968923294100455633748234079838133957374600791467305928232218929060206831103261710751421002327637641744531104746462517072162536937318472474164709452834571579368928654936857328246661235450287266382480904902865985240897437006341268775510410621113308100886115694256095028071328651035847308916060303130351718310324760934066490725538437518711177687204746413699604952202954025762994652675197839778397400899798805741152063869821691834897533918855289415187322277068819674146515341140883348563842642389206207893253293154645604770989250786363073533419366962762375603586404421725568119458920458085923135840031593759127062696325527447085802843323547338148215578275127298734845292754544963667764200724183398356612620216771680254047093563798011120556500552688078303352531895621821028339998942115886450604898490004199740221053189397834796201463386365225730077065699089380897561449876148253876816538300701695661673710422588245301950492958166475375797933262496294054024484458894139464455714976937702826192280573783295385531842302468856961353172287703214565288774907430284852113040810421922340634722145588090443115104601219027923218291801620917552374163405450992656485810864466419134526621019386607143596712664527062053698999622331678509975937149718084780108016574772274598270335991294944294368650612913262184354522250486459562539120265152238259026921752567971385734887138981467844329662434279424120316407422577400534664601854453307787630176605950092253616731693449715748246705640824869885348196170381046393990672992794079799147041641210286348736319062770057357404214453748306265700899289705772610706291670910871030911848086016466588442019956709096181137342018548017564559531118389437392702662373360049967086963446864106427399474071480432666503665294376286819283099142524645228222025402127573422854993400733482145184486134339105584426671958108949939189092582556533024320359550489023884337282535807472796487761610503959187509952662470797157756927227984915740735099753254327514725485436613602863969358698311301980545114804053915949725585138685826667705213173057469098973484700432258368704138765525617435534020201789672031035814087716455362879687128082823683913060951323025644177441238493882527975578422764671519154097185201673943239746787223828770885565652308350897591441769530551950220817692457032910649102214363938253660600437165656845019774959932547958384066709955999526831753013508243264525129352381658807702774416642854495005833394039312400203094033928133522512483535954731782083848939568570671333409249344863676254728272974334896653151552171053606811753688487642567417750374751408797922381799876478472857028726806791908910601117684742847685377443872711849034688322404700160154514642446943690063370225073421432808609893261510205401172634605631671102921488257933152845590604132275012812564963630776605349549971791370676846631400928036722017986313038394025980227117178889892758272044695154887947904615924399424214464797155099530440940162766025043936692628420832534646843496654180527693160416291036793661195964406605134966223517806185801152098493477063416904909528912553845426860256169128955619704398033820943954038430770837391198870483664746257729050083767436454941082901190886614925388714198344875313366050197543498738396649881430022655666303804774989784550262246749092074065660945706637139116808566037053848470971594574345211627258659412541131785596430732363642754356494178104111509556798260713961330565388485273195884800042401745653439864354014338179556732785138002745863719555483821405427672311207746069113967645234528762914586523069873983790310158240136463155301112134636204378422609486610772425853141101455616276768968157608224624406266463988112565627907818804085918963874241993708391790051010075046601733592158211454597556887108885138240913673624417024434635046033114296477017233419713824138983260192343009649573463577810481174426934813864911359709931798914540881841508977322588692460537244315665868727038949853559370406416220283764048555740840695686962614523364130322536452135665962650923242440313715778979795603271307235909680477517024863781064543556879140113489004003307869258412951758653356561294394433289989748202766506254482829415326404743357712220886620228531961762462329647720229768189541151800693843038622715111999538084472519518542648014869914563962965830733472936535358832075316569352191992341780285538640122502343423487227912453268771803880458211111364079561865889326942608653812930846312201931605724981777312626169624271016567727919756148512154330408503021317525531606076368985490754456634406876861788096964864146793450066859669301815247993544592124434662399580911219580008288134535947944253571247894247303579183754861933887673262177634691216632452166039420463483473640341188367015100371190674991376024362250038790965387630150137452348104517601113053576886463671806124475992207878568936555966511478636087597466753679307121983503956378225796029426382092445457466881537271875381346465336502912475296486128631898292294937686482618296104988725826323552843867071299589628141641682089757900404998489812651808091837955594640548937231548114101291403757380688690677900095333184927104516321304621463840312316250622504194994849583510568690859198083091270416985219005186362934590307118957011234676130868539887220942474262479510173515747557261684259241193914161322826715314475373362774458958564458720681319415380991089680153263815693181242509228803886875609094342160317270967737009132734590679891290272243898185069089459422007184269321049987132303362794458959629182720885065835664132145584796483897047998985543514214793756504389152143285420556638410513944556597982225617755682713345135602531128327656817383724038154464991792667634415682981970956485692926451572931406669881983258867114840634367493753707157399264015709267897523479612659861394850424456819450321475206699682502812853129314220041064086935761602109133701724745783168564538215185249809658489290381799813216373378042303473228230127250573263771804580835807340055039827386698780935491519930911835306591962459940982548031264017459094194040840081665435601997602138001491875887288616182876497328418390227346031962810659257353920273035784302020406653667302355619364557274589662081721040554474375361433430678056443152348030438494030482824954807019358654831667068614051595727570883920396985299281640890319704950741104639998070317067259266822978200943975473048262181596639576388120252248992916693821363237301366790478349471015276467359268532188816846316626770147695981600652118031552030345460199676033903471426011670435373351834143591065324310213781808458710356606252973101603440281562392301497722853356844172595079107811386289447776241663345323706509413187040373505831703293828770432972464373192696654200318609892371905572662171690399458714651411501586093842369784930116655501466255367677100990014796164051050478369832144978835116831430088178169725278495737515756992714320965265734059751137372155388332633812919283761930099516752834228539724841730748294970931077796513077043004923452584724246872214923097899679881512339603293840214118406041270279442119198095237644467218514125330796745307040432438103906833319715529529452338062983127619708657761070209915345874945030497516027952740093437043313122253727022137721898745296724936627158658447822473230706200896745695303920275230356926447982831227645171329736160910242065399829351455391223902784941855520192654259797640311650169232903656203041994030984735851918913874841766835361974467769084060469992481199158905182475744580708692295190973107345494942543370385764567800752850172924537403196536676465334966879060459872021039736646898949996336810940637634732266629015474584553401804363300195876280773060328418600227678957437133047478741246324592412122257030494795454511358232525438313664807867220930065970005422580956326225642061553848962188697590828311370904557357241590624382691297234254971323686499892580223586534874479737601895975957887667123282113039880297291469590738945617726683828635136788654364129482313521689967827045302572790240692975723800485103312698165833829867203875020749256909942379042714708268467910450202191798317873445036841784884295611702824121730574341947042125029353597634950261259212897176889820469669628784328461345972009602743036144029715528861109364987382800154038000710276898243852342253853092764418044273080118267959395594398949356453858022376650120059892260166293273596963380833008679115559706089719182666518385309500699620408703662696445982923194797163962098590557230321155572258138691011495071874622309867137081260354317315979883482879487784729354324186030284420930731467094544845890231176915521469606434432757352672524171203887659684601890756777850867614275218761867255426799734894974993191720494440398500593238809822674382212309625102327809710298566863544941923581863666529765586752295153310768964746830024865250858026785964003396431914763228248839747857655403656007749593554407246608493397677723858307047004254992557202694854942890192609083439775389814197397773102543628825528148558593532203154625917225192374329012667454858441693948268820123107971581294969789134399632139107162146179073766313446075531793514935087235326690342469662708413137904905342147495104799575322118148078461989240091199576013335781945538790924148674274140962468982317973148594577674270376702360537244001591148311597088186855249228989142220463128284131916530565497868631449510839270999525081151299937484571810794798240329515651549982112603582814159457480941799124863075597148397036213688450263055956186307530566614382568188695700338304387033034661573416421670995777782432100701313655600905056808012370823729361146345873927490968285601226431923634043444958562116594286558374127744781330434628796664278491510552362998602843204012161354188393444350843541966183173668667267264467048688601348818232961211626642257686441636457531133602758334636378678407723773811437758530801956844570034499941391650950826653274459952841448087279745066593313214214494568120904560242291837585554175205700056949764510380057295190479286218884663492676395911306336896488004959807051088810900732252915767626677511845757988793574976715109783571142305908539123655373117330316841652607560079578407400350265907405210127563143345392849118408808305228866577095636635492062443525948442963647203598103566486039570261713590026818433769893525916542191894837925348853710896232391426697362045596171811687153309476469092193599293332135333166631529847304110105554973447301804057354180569284236706227201135875637285863851550311271882140640201865223239698255226427361423739532073108623038025272089901367248542288716061258919971379640471596957763708259589630093194661806283677882426698956842135898705205593519460568226045700464194992367930955353389739186689987782423911186675321436986675811239664092177872248983783934113701394998275812086969641277966934394845041962689174543231233157499616995596073338468716218935555560303665213294319974498094999790569995824082312202081975264834173490736591273348472407658905570250818447674117635287831842090049986831977222020810657207994592120056959030564695924707397442855251954105622936470368178245063035381924169666233776777926289049928354473743489791991049861217978008344521079815058693875169628860088364211009463550571510691129679381443856960123577240304050392884146985419540974800292764241768698307714181018152419769663669937117757387580241117726940147522470480799979899272613806972272726574495364539774541414841391164246517443354574164434071303709770779337556440834948059083495938380664925806426292497547973512506279905565328201030695945339344272325780719367621967147043578257694251203649131461478139549235304718397522096543875267682645641100069651924298362831941843287923400070882864351765980929046694293338413029322161078536458982876165937016361418708922594180589810479999779334916883343994377795891062976534405880246485884473171478961898064128934050261225201035384616615040131746282580312752630921095640517063959963575781894033804979630916016924204508086182884130751393422293019129602584233686888014430602140722194263620855335281336973096214089357845838365411584201979369331320929805069868594574820272819342909754154250613244758856765311102955228561919174549330728619565594855500318880256629024152879137601847381325193877514042335169509002762592162235611110585947154206990088769590614461165910078942298170916877555309160981215961358132696726949525159468974670040451793118506608811427961747634947586315990797982886031347965983829138301067216934338281899444921310778198512079212600614001652056325172401107776573860533721074370164246098051139966621153174056093273951274334904779326818896440004078932740793411859262227678567241544645253677775549787369783004408622892789112688744137447616075915704096440625425044364914561334104078664250931111227103666780122511171085564933712428837924306618424151098990338431699722519140488291126264367033806743281230872019683123425253507383213773383374160761760366433370857308564788057756563775628854886834598179019152022708586493765165179886778025770267040436664118212321343869041964180466344811572885363391003988412464683215611608559322570796903956075395653457773638296134549325134275784285827605796552489427520057613609766235337254288753681416150042821137960362513938923661862658471404428730402585507650487867729062134730160895567773919235430910171063029835808508005807644400877461751267656432647627631445793343956246194183047033031529610665509844332970412680949666476190066725595619447302046053546422273307565562649793969366864711507133194495755991665636040163680892458110830817586034362383864371284943889760714880520479003370082453045235797149975354679287790587696698480538719896731231151616403473462263108838593978475868723206045196255331560287183470757973482346651521551037499278035067360744381250670908831619398834988512355325447732973989539680290799755476358458658996238600777186239168758563338320128481676981304104351563410481374773707981094299444710035973376132949816866906452048386788791764254958588583884972415003698757069478341913194124575274409501451918973346301530082294176248315540637617065994959015079812137179348777255522976376894752767100356459527560003975274637180810398765282388396906169022098510028746330385374480905867118212328795163972166084940287713703620623917721048409041841690961598938514814027773351732097217308929963349659657694937908927771278406202538756567348385895316466441211041464258091895645199277926754695364777869756450907222725026828824803940577441535113414385970809927324733486683307480924697146398177179056186754743328466710640502012510366863232442650965023365026901197855573501042477159504397367709647034140312949329897859205656672411367848452765617190115125672771242340374409041560452207929198847239034815995921975312370758149233688854033125929569244092033609216601435893568125081627623566606318172915622773622745998458989134484328430638637777084780573956803581488895306414527551733554572145898819856264131458068578085676893946620955923981627828129726604982425894484675046498246344262058723597889856488478542844956133627081187048397464464976570727008759950985129125991912085039020817639787808978651686781263867341800530854475070635928740759180106086073183848433339101872839619516604934007977122789001755482722499243250935395372829473017098860611769715519161560735847686398895287402056823797479497727925270881874344995849652926209325893023724281394577294069424150034636802524346327189009879506540423563662296456615467196561157798081319819233136503379631110692967945669050101833243424669011653631294050660985563866469323577177202505097102027729180309189912160503339288734654270871941805690530915366505226791044194725966193322689762517050732527466093121795750715643281030735677170214665639662312122445046997767219157706136392158307863288728946598254453324492082480781809719127354396155335175081070038434257029488625472133521215857083446446383557656021934838849706385561210148079646090227643216894114909167504191253492055283076132344509337884491491987136970057233334480679703266317839558645195197304844914222426113435943882118500687422163310276254845839933376764184197098278282668770022484685388698718283797714690030914438009422322968394250968837684998900229302228047963742211171203506863816496810337341544850667742306454088185538084082642515033484137686622871795212042118080556167265696039520320458892934149943248265985794082161150999632053776940474141636441752734113957190276745966076565202346376105521385864389171050762676007411043286364610933108834681919634177123245432776739790980701353588647112712342041740417000839315369557316851691383772302539609594565021811688251934740235999650577612028209309169830031036234272777484017754944143827166915179991250628896657551317143150526346241840376682678224313639361369635900382837746836618265670883075127124325930319401078927194536925524429461226613867304205405235756757757471432861158547623450378446867506490408206117444043737956115459221706638048422615900543877798226821353040082781946010260420692595891835166741318367785859098661828909123985556013749783294108615338443363985545418516898001422729216260478505094690085425918340228004657048244819995755325291821722775323277743559993603661243365721156427916016508030671105428494816670024503164531201311196205828184597115462172183838341568692907726926747350412187456179677590252346091316272868073583369363043633244381123381392385869928612011613320822211671682157365200437070196865681855251183998525892497031866424347443647183823637229893119314943867956013250491576001693902078396999462341863579287186195293800641080057892330229465773068736327052395115969747186543350357914075532732206965972774435430413489453643250349080905989724559520401374490280274264496553673687710559511045957141451708814449032102357440642930024690988116907371337338290369739312554711888830459055154742833367386359185976613589374125504139843367679617411355532265495767849288030409089678374675119818907619414650119772198145761283973707283482503417105823153000458269724607478466287298975064428698448059309431260127429053965610969877799640236367868475851924441196446775503544267159837532792271998488391077187790145898075517380449442351997877789567561807676671463128289900225606599319437807682373789872264379309272353172176611326781049131017448684338915055601615888951598549731724830779152707067811263955666663534182755881439929510255540336427003457907721316620196326234399629516980662439096207750548873611490733102978492386227931764545449519615759097497342816390646123271035684564359531630197637546080517167886415027900960926990563952814352256661645123909698695808923343474598805480553892368888778715010803942559904344867011242215423998939639084455348332710270156475665643475324732594331940570141693649195189497524566708681015532312282727249192510989067697803799167762667549409226644157547571915752766098648435997636290922972497666858658244586515549783590679682584574015920017033389647398713410327730584292893184534235407329556789884272830161143578875477979162828879900982625948099501657071475186965112588738741878962006761264660040700266580508696325306280566791382460503168896983902158121163597901937959701646467452267589536483676181689305517608510143305412816591569879335965661772664638706960567067578844768960681052035799222103881737623422188500447319082126157457306669891789656007273782767343941948001672825987436278450987612772173167388151895917606964426119794050788982895130214687794561972726042981056563467249683036746297280312250420519414385143337402186356606677463539175974400734518451204658879736335932507758839311513324854882396283129978551373591617289941424824664298610405051148356511840997967618792671688209422814009836082487454826899194289449160902376219519229979573455024545571621731315164013913094794443685298341931173152559474100859348507320151146303077712936609594899068016854319851725174359895339654609850481114719816368529922086228022819759171768903314400648049474160318651577637762361729709576556558079706134800349091949897664701070885563686727592314565315130609341279664022664502018719920469359258230074748440045749491757582689031933705611626237722133808961095421670134773119583076491080534770276244014593214321657062453863101021612784001232831929338650761646202676265135983499461429773941008696547450823564509311899742250675622719659792621082350914265591038553986137534806572516195112425311165657884014653736975820540066433416213731880948138767004007694347157357984548127143595098819113542877220796452444226854134794342403373588497063494234478413204870511687035861113029300452957342700532737421706265647560632967647086155935479948407471809379380804704990019293124418319612708260809003771964746343463380774762448247616954233665074506128047500498164846606252365988116576849555417957530506644904244698883508284159044369840293391665236623359582646746402544770458448166198047436170845360917979410436043144711477529246720180561511772651003384951400635596049130163092729661651347556321614538247241132471594360459930360200089980075710852157103979006852694770608956917581036807567515330092963025060813029294364638628539312121210329504464066880258446778978835281953836117401108413403134237021721223696802981928460434688465998659471871436632881078592884734823648323856057816021015545531176046250584165814921847822099819657886794203390320401787239121568288147346947999647450752892818833146308733365602899004748172883507529586129613423692544032482879373670798327791250271670221920848203868885018857311596616509468293081362340975667753309284010885083816800845859344606076128145408211233839394864811646251857354556736503582472303169382736131617333054473775268283377577097600673123402237999542698397064840341495547740129358401482398669310319519647709456886824989989277354419362667325727601961033065518418188598038880084357393953049794751927253977487426375420838745040667633532920159668195654629991533465403002091543043985323810439026919619410216191697056224166760245511189053738152907480769558379553828845331375801723271765361487519721182635644864559535283577395002374249544469688609836856206567492096246111269217681666639196614971224471839060462220367211095240446835682097888021522240102498084986569422151722697601620599185811730064880191398477222195073084345973792983698199003623994943040263487113239889168826840185927472616377627486086171217751325342195252865644812591497699608519813618613922145433386125448146831187864236416436693428399857452030492553416437326016354220624542658199359756939210321003329499071469173264182519274498019104439160733553567942124787699140322318647770198585153451091128719606011136884963799322977598217529184762682194954120692009073495595911647076200860817366994120382627332608996924195414827588695860616527526018737417802439538302549277111618786973229024832624033063667599452018003591509460160651830996448556389350436238786084518659113096367264069364177000148762724848255494137881839128259018744008479631238521215099329519687891641591878064254645938883957396010103562198511474619788672729257755206672563206125880879938806480029499105077142379309772055664805761841840739008940438208969149394296608149645620101165499717789624387387058038008218433574136972844549393917249613053343777968341518135399712606800468779079849465212355790701906781082033727942736061758077204077699503209038748587245449632421289452069852679085656239741305022036281826820699522568707340572076758983472742682347979566571585334567022582017051007199750961560151252254858210121086487685124807994875451922250437804016394745732907365501207017132704256172705886403667710771808040633472241683077938421140489049394796260986763039518934020816684717766938715900049508858867199213973729761202356740350463666948498185945459279265516359005749567279360692463472052463851752023794435947412903677969176516453710076497941698139127407787777696644005998825561898919724484027284681288509622254373536952496011877500964653595147280653149106190235846152581837435742124162499302600773088211042416459575349581292910367603895790352121458710712266698295734249975678330292961217656438516365428827820951609084919801858592625415863462261714488168605409351758669366146194672003542869994843209588409794554866629445115676086505247645013504417440838795372646061531303014185149550867052369591350434842907322076347640650623201209975372029096084447167176808407646390597677613364571647263420008685822054597730478084729212186395410051183021283333794055441916503792984102420225094754014804913880813608986306160191663960075990432222555302270304650455855379505580138774486898711290810464565811964511773112751416113468490382876315784372816411448427217351386617477157484351194735225206284027511435280767834601583511180340718552541929543710138670356799782848902842503579021428024365115215108920108134801579978167189643357466467646355232793549045136979881219009187417650833606328854851130285674328700214191891572241509354200044474738691314559926515100156440293865784712630792670469423833342407220102014309309372918626850133835507114349661031975165914900357126138634667116304675218919595367988886173279984968534414011645213994413202553167906086187709143194660928686424427589467880647661650139702861451490413572607291555318535594365706522955236754955731059408220172176451522303206425664005258837165323710383760747298222703388935264138793413767206376654222420259353437625928104838910562336900737627852200610011354198040019917604703612782207729786094507621571715715090872191887135583926671483062490115346353537792395222047356626129474735092228543576457484190478002034019459842998233616553264142415799691319098866273580143441074508605887611926988499161988412127886573419546229699449716938639173849282413986137986161309905870872835053436022261932068881038051025151887750322266504480139636921334496550801676450065408422020791830224145341228287694589674337673301751076166758431658863841318185206609590674250790133852459569379479291702713728802325324425609060650924044896148555269382868897022846727940428883412109869539810321638601988099196845379189995151202495709148353190569917302648101552740126120259473821534230224019455474993051565493373551020530778799810315833446162511060969036498428213112197045260427363285127539150454154262976567422053718154551264128292518378210295888090057534486224890035348073470595954606230015551701833500785957011599235101388601490847450017108964058425629135655048121455679164404707711826727249722418956377419250004825600803098171060164013095536957860252155752904710281851951206848767080550014497133706758372437251423089484374175523944861551070037597975963632034153294883286680443842897697848731794238184776251897495423362293644908402339494448932354742276733182935304726046440083569638063376535253372497468204850109891965000204093471903401092642685789817016777082511433405177553719110408493186288971921835936269548355270878602019516991705757439317569484426364082855456177184673469026485788838262163724965969268657562821056072700771249507952975521600772835857414021408966939592257231016928513690571592993648077634207727252320936197956681781817309767882455696863532119889822832701988099660644155500879659525793886411592015061334079151120976403253721270317445506202264339136555801222982858353646696514786350964127705789279899312427346864094833344455296155132369936886967689197945266915979201953164145697546504892382416360177888712089874203147304264628895480654751610089159146642735219751753128473044877603668307148666628779222712463701890967792799558830778541107485843629499788078506823820467237743908876314428536003460366734933649815677355569958212277468904858715957609491313753980625491705905899388835825970778275660017583932205343308436989043649919516243907864691679870962329966141774372203775377697599659741283490394163750826610943508871595306587245491987629105644733840309687330110101873566535864883538762249078121142454328090438099046764179150326291758578980269738941687421591602814351339861792400492870800362599346096852813274594498663053786701012006866529873489652594952638329725234198349028875529232758840745400008991651543566643643513955362280468678552051296496981788122389379966816988542003625402289368394304012193119224632757080166357088126490749358652845330526171359897404653211358524940678194725830277513539232589638635124749531243998970206869830881210315057246298868426886537658481765389539666445636906054340496826580645022071968004759195734836200674100273065731857965007266907815058470256626446482865852432670093845415826625226579577613976525842084591882776167878953047506843448911084456628547878734203960920282198839451378063773280869385930999559094648651357229933728709836172733349637146590406476475844371172805777278118256316407381200211549587978999867950731856500536687797017702456629151700326416062426810278816345590005650149449815327193016991540634632607862764608540526973078373167900789961926964106575749633627188081827264471520393970271515205330972461109371337970797991488251414047522057683056099139456112601491327512140497982914854797296326006957579268291696179642123779338341742242681137334314355842618989062780334032148046219178915840467417712523933923259039227341456666368993359630640781320679114887697398959791900729996743807114671357411961375705298468691325589811417905985537315419890924261500767813862206820870136386302618887668526425804783747922653823183009296040914500561644379609772590879260022838018880308230306694472747045503034865472652513680433750071965898424172257635320781300570611326268567415040296935053455074283997666138225165364793713057646191018611333987341207398348293583746173024784843820874788896371545963728355049257478482192649204524769936901704963215306903000581173405378261569278280252210099680146712333281686210605085382823872956402108022556447567645727459591675060932873706385684125972791496605094800731600076574560100359473683730138214381977383342634104207172468667670927649298248023151421292251511812637305096248457793099144489268587077459874856864914221245547303134850718745111833844254813012505940774763244649141741953408202373197535214251556186621782008673253156596360377807805788209101327488563867280039102605737045878154417177989041472773627744080018941988635577513090109488085787439352668176306073339733747521966564282581846809335727146421851243532851457961461582401776982942028155652227983337940464139930148198166155739774083715115890176590551262293799543153179372334047536834867400730445551186913513244879080115824104290547017106293890960795253614400637757902271472212208799420470503648445040343601061292700341874408925061791251478438215089999503474955183994847611479046672498676173771480268216196997752691936911497335239686419896536021227649711570931641415402755905799558795675551578555499144845470560622486660751703931815775233327729906045056682289546396280172491473678877041473989928218238037944586976134259461448324719971975446634039014067901777896099071191089536725721027249720888959274854429267849123917216392603021964655869199206912133498820994731820517589029456177492796200190848237813132635405048561472022122997685480541703852433592669369505033486979874284156692607220888421002248121686525592536819065938633309282318427025997314252359748792940255148581242653051825685877896466427499850973270440401865194891207617551209464998518360199620755836765689141312650062410310974348265712823634655144349978114199772202656434325322340397566317802729485997949066752172192802681778426078361087121611952860360112908442496989722887235317460803942262975134792135505496886336834617717781071469572955468709058924335585744477803046743868698698747239309227588060786554489845112006002838272876755011733707974588207473360986631365526501674917602820264306187275372967002521815893679717574907134441685853714029117543646248138626215881310756370481173761848056881353643629988738832709245832638094510625235516556137484057633229274868812091231798881430071489562614879075197572966251247306810264481427415164766827145049885451151130237315468588045579279793365964205960514055416958499780550750383265025956284195023425224409943067924563086458911967656557050140266028791970915935513029395253262457514223562769319119938269617802513674536360599041308134466163019146869418054013663419266115136952953059834471791841960532546710150715101533738402646123972042301117861577522854688319015248553094502020487795107330009443620841020695242270949915532954221170101173859535040559301792570513717532238743413206892789880732649260987708600620648522959509857829182621060496565727942562918899977219390345581765502886679243728674838144919915021845071880253324235322379539723873186920398137672285895933234757424018704963649136143319701684346877504135547681817139648735206248856688360024506965981752607722629083991362008437554845411207805342112530897293310393665756659812506524866573279485805552760293041714989169036981632960307137404716803699954068434728438572904797712784140376555150202958982827334207382996919738133669846430319836833270556247156514810145492546699618668547467906347494260709885001376484429823730697060883056160266811533661649553039944260051804657773599297483982650009385126288574978584093600622487476925354672239001168847543376714419219963456070313909928729072368158032968126016959989324944146245218962830581324322559875696405683171453610366039728852596422544379293071350290661063543153432321499674068073969459312564525820974612463788084157482196390947228052428312243479789269527237536446806223883319166738665258381440771886665264701917496235729047732544022264502898695042717844521607506611135194575770375331958907524481390860766140572851939180129730063968536897815645372961984082758637853501467983915238795282448034322844558501528547170012855724188280968459549241679947834731986344273093059909034316691234738555085082918644203658187591038836038025753533437993968350226290792162835278318846442752188253319837047550208611702492445099595005409016222384981270098077299358508878998307115480211316936832203766775970235831621080260878750400727978315345991858190418994031683252536411042270033983806178109821383311908103083699331710143433619454008648820844945395075655344846758092659136342367903245713140580855589273420355927935387299929945695532816183630174560691637915699327600330342032627545622287401119571760708867385476218619284826210391941346210946287418405498928029452326778952165953707946200239364051591934462362673648466314250320707861052442956376487005381224812655089790503647367974013798454087862254312796447162422977515246012743838799875919140505957944202037679642344479057775243571405833628543441338367911522390810655684286982836218951277297706045477291455036402930088116494637337937619900112040995938824339849213602231090903464325083278735608251641426610132911350771161535451728594406861803658616848140378947091072768165533921764508457053176372326578187066923416171113670014545852796423424303104256262478046943610633743558147525589164442904016505426016211884006207179271960455262876261949015793735916085503013828270958737403950383062810368209807441159454809365325798460133887551944986184357841234988901542969968306280122923539911991458542734597456627428562512076807286838927685031622866862181490168092667367044506169956264856461885792488210490997748801231786013096145725650341438727661738494586366220310651719169739166370067710376432475054852554061336327032393275619049572841280631524560674881958736472517632954583010856079495230316138478210642255740040859266280016095695871926838918991175113920113814111849301740810606730930926295970239708754728048732010092729035504329309522671293202977865437767690207173204749860405894908091078025182639616828140192955931176689896337084064910252266152150824171036336683229970954009560406648376802948572294830838343408107509423404883416412163343541473495529406400009335409967839768644200605320767098410870601886554874434553209257503249516618977513813513922863253996199051313843324946753018387053848693739299406238787081652710812753415567977868603516435626123593586472344107675261646685537669896356674829768495286274473503513591015862472886683113980900720994706283971464060574685916497564784701093523370074040354768490151197460805779933384370579295056135062728605602548202050727594005910260448354890543497750578035551362979870409899800877751718348198061496631681078935121910177360148541366571414109844474321556069237794158841689764640328084219055176724405697647103914928481623493576788124898172291132677282056675727719630964974105869163018119137129694072249202635529527969170198677598643016948347795793519751671040931608056857544469009777169774372234969348647757221518075899037625008354515632558913108778199145910847032711806500411036952693013018655497888117974176906648844450956121880520172288246359544047474122659098116009859417173410719236323095676424961120067101075093384374675147071741323577730272503848580649187421089567745528533253612221877766470520838608437102880145177164103877411877837749805768675402382543110348985833154639012052614305880446238512068349181213399065420276103750647911692245687464394814244189914969569687686178385843444588439695411019589204706164442619777259270846925252930039008532104851131382911768592506186981817028976342278848337067096132256289835289934445328357798381745164935084446274112185026512671465273980005421884954751253433059412845350393012023777230711029683194249220817456022428557280396542994403394950609186937640647361800920020296532869399675816127619086090157845474492364370021377140015786747195100317388216150133513968567992591075209337344529791096083844358820868988332026450380293290766199322760180338536896470576659701803957013560048839192684715018278284012276111630882267049200050864192770902531874798788965833406045611845404864304501915049043623612197845818215782862481485506720037982236126550050863961532797870203512661001739401547962196272828768636677195269303953840231612146159820648847881809562810498161055619513172549245250667764619564249042833204881243032194822265816056878532867557040379420522048794581245246285744840485221011568608292821308180283115610549739139950926852238171961001835956754411366817215817141579771609429837425813185493610673760613717905237820994398010220502368689358169196106871360197614172863484111650780934753461792008127410223851425596747118208489858558977730306783593662375675226579123427429364946383762451076968989586867599089909941115981702442442258346763669389867092927707511222348914553716758947158103991706814877867984916184575918803062778011052702867281543156811762313194757055656173205821956326394658318701979926587087973655514679207902264607068411505969524301777902699151365750562856782613393749951313418729319253764369584443051086606082857306188091494245188822726355254560543278717910184318191851953316341948012191565599177821140521622400909854598072492104534577686538122453937624624939676615705478921936895647813181550192993224892078740607604784854977305579213149101556174571189138274232259109276350434402759960546022523329189783667226045434744947141047134002622731017329942164973647704432278510442834889840133956500436839373069673232872871852816766482449477418293857920194003021548934012033794489263538217700019748683093144848730862395207239908056869756311684859396290848784153118821451497608098297233548269882581731461735408751652643533188756188866142045182148891842673763960373605939247972239471646683854557292821109929426406340422785035136307233510206034932464418534732283852532835231122113750201110646974675191876465749687847418494599198903610157136110700062656272564958434376440387153124669636901636588264928402503295337358947120901392188159768483321533133544296213853266100394743037907324410083287081514008427948688707808969179153898816579314547049974330719551379773857796203195881415396323171939978758545500809630882133375733172202508723366069197347456090357051489162252960614412035531552155324116695352304639724791461956472759684180350556328447688724401820821870832051568791987352843169593704112329153036884443733891088045874351496539168796602332336322130045152092959902556116640110536976969603979040577825181820847745963676410277792467864658387464832488727015202765452115644718608163685420972714011741911643257294502477904719963096269509305051812175016554547117777358979959694601043764704427602232781752442300218926947743690867335533707324943426157804301042662219185108396694557240554865658322993965093854426144321698944557829523854868133894147825739204392790749689657384504594183590191245299601309933381883269771091448823221486791588787106090895607889441327584653837619103218007205473371662562927540324536197504561185117194605753021500031435545535074709542682173005684567125400697475003786044642619323096388879002446904572938342733950695406739069602953018089022967834338412184237275034462405165275589145907981028249409732690101208186543185032855089791908557081512906337459626788894830608436267647750833818408167923931641024899409648542334922110676994421494627422554565519978984759986418455377468327294475851001935039796255480680164890777693739664573174761950366314785351169230907859318654139511224287925325416940172907519690442449855957408038761672381666752506709031839340368621323192505634471880760373498855333060599562260616867248638546535602171993434047985714380686980943575541579814595342812850852809457155441135919014749868346108554781442666777790495968220906632289207572337312228209532823564640462163905944742247544969285485436572382643903785418068450366819982085392499732797340158208268289965850331878559575607706313726479717373010093016344287194953462221738664503175806095877468420396471630687080246980911694184650431674675506251385407227750973921504031660828284045814881200069120254974251975846336007976152894143018121042724767749613789343138449592025160773935981001441736116301843208883023769745083534059654295988175618122864828494659044807180014926796075913608678495512939672339554920607313217757225317466638427662914883038735067670586257862038786761464513044180291848397370808491852830606008689884104658330482339155535215854189528401819114281299519855594368187432589970042228449934824946181082867953428330878373785152981423860650873575096748113604885414932384376325980123696569803086883933807933386669650891715897808816996025110744167292104184550420669816383060134395718431573493620090802168549551834351522259433991784924862813148783801230826291274586483429587031876298303905256032840525411913113625732040302705131185234288436075099153812974459764739619373223674595238449891049728335046671182433738830639267766117681981323787086186061942315745159674091518861010518276843258113371128330345000671825186898005244840167490003579961499783944602105043425251094504320712697587041299199664054700374962089681299349697662430359820935951665170747553776000743971267274454640795872004514282265400755806213388881842690041196873490206777921441942823791649212325377325056435710519104567243617387047940992895996311861398997732285179032311133517408155760212460359754326337020059447348380324267719733419269832583749377210508938426683410468284440468209637719642664444239116878587086207540311093639047575392719541583844192347129382831640595509178698643422118064612168838922342564732073623784708738970050165704382958501131362009840141379463877382931117199870286643916506565799762904594698804049150799203595828287193456199245935106993482233996883804771921658523498079185756232577773824239652264995895118027864124832286065631716319326467848200487466744089434578315701462531137863290865666542450875443809295805232138159735822766626487483749840287281868283135015862413012927328488653435459204716906189422697329541327817303807088243881483297042984775634398212899287224752722564241460818768382616742476363713269723305938938610533503398124724288221659599960900148325610852833835171717932082969610909042230711404863079299547855109427478340310034457418617548037441620852628297297595586807691012295665027854031916072648130841605609877577173629232638575945248805132173317519159842923582372070376274098111556883657583414405962334205275761289509804991842317882326367433212390679474294001450418157351837669490652641109945244307501868358019406239220845656223922941414238550325018710838055050488969479390003155881186228219161096857725329178314559831551854563166138836914182863733959189026841410406030099334414290901528053614132491352956591635062324442251532362449543096491715577838633589145206079787531862655313880687785031047008192875341659263543630821377747944928561810964779608318258725975295549446986342677506395924115227958630223539773500006596452586972884986284611335031104714556164635387623951001577522148999931488657662854876270673613436109553015472686964193747164762185898191443826390698477625311748937017576774149068688108784578732704142075833295168243339847124330077110286421606442584532176087873255711154162923611325770694729166542863664967379894454936897938918212893686749119069748755777203058481150046144058078745115253755406621271317179730952816429714140125424112680571586193509988719481502028445970120369542442986933980655401765397162330423412759727220840233035555365912785995896107616753861528029257389111161859346722118119346947803022469361009332579136087881972975634589123411744401719382834668867381409645020192929205289477824040574377477962598079843436865160319263958560590914183694602569568808460404077327540793309447932258195503024152393821001861077004241798421420115661055331949756340421039055764955538519739550418236760044228244491719485229842748376164345901595659922288254734151420531079010756131916545633000236670630909447209962927807717096426026814255582043943973194978629251395959844698995213241211436035589302061345029455955036139640742389072634729490992878668097092056016411285518804948289563783081528510400210601207437643679251755615464483392506860685665572693919756681993894716825938176125519320915177534262309280739259224574966306034372063160348978677252188773911715304794208458527989277877465596183700902866032257857194697227895611006279432038885715677661625528855066153761619152946020896737741141544834878384488209186072918852893301934868442967413443925702413094260569085705016902620173119326444330757215103371534663236762037275445908967473656968002772630157768210785927317732300341650748801598901981454251058281296038981642178066281734741349715190317617354703786563404210425694948582896759801964990530106333452382545269099430375650489810205848639809430791198166168174016476835379111155386659246773409705837475640739837237942558109258579104913572875618001657394294681520977661251575087651401374840219254149467550330024008261775608440618367757527571260782900881051133663679391274088085255733321547161171757192196705687758947794241658049826230921354253866696192287777271596348596875277182483332445704434648165980926486506399118894725918114222202750078625185086484314069033984843493984914110295933412882389807186669620011897013533290013723008844952391460283496449700932921787783893612842548926576359925105885993404635396329991537178119440735443639867555887393291015661380423034760849305865285538574890537377177479306896948079510267928665072967430291525851976187860475930387230666679184609297569973662368017845024948466502737462226821991835833321228489405715123173584120955968193001112347015664120044562707285372576947719489330433410976865866809374722795493400543376103532522276527074192674815804775108277377522841797563820159033054974935791375077278593136984107230297827148796926138973601334999773114020058373053956247718735306573504977278674052032298006746651051949003166916000338575176918528373708688884846939469727201765555670474995685380681301845457332641340655235189396309308079010704368868271351675489370479601171761071080122642763909398399149711273728413923726652498467411894364709865711059314658926005340835314404588135574956182761379514068536680231846657236184010645018549101980409968910694619431961745657161106800149737525572290116444474788560387044773471488743939184425159278862353347932406818496004497703589103638150309719227877133523036026125412931222666893090742513632698351370424768575585149463565427231795364224723447025545978019240014989172905715524354032366440284779936693067848826808001965913159371134896267586794280838309365084579541100933607497591633446306820614039622923041844008201615945868506241137404656718725969745263114892530609569507497699147189158392616210408593921695865457634471854883274852643934144444016304508720247548904997489499043817289677259938537591041437691572907230689551870104146468964476818305236477043886567483150472965580738348034136070156891827212593102518227891186320506985770403823868308261812171673477626521207970914359564333481849251183884484654113074116151877965558516959587879176380638054546194008396263022204557772790772903553947707190713373809397823938213909003723151219675548796298051973591391801953550435533779721615383878888956854638833988167351985180438874090300898940258341738928298566131921773138631045453231286670633428379201871349601964313677392689510830660789284385012580511070530242915978701049276433601268677833395945573778615594671863411737973600366225963542075965358778315537712733123494307874877624089467015511569973649450549263482068826916860600096622543810220653135901269853476959091676390547941836254332421925817380498644819747650989519759062869296652037355666913442780267372724712832464155776885833040446802273699269901645648388719246794732419449168587651423513962557375478868891465592473904113538841939821219160044884224918514607223302377714213299440103235555325662282275941898475182493179507843068532130803573397973130807959304701574211422386455642185171445288661880375355022156573417264507829770010836235867275649686183510554788165941401669538889698265462022042769692008144859703232252781901432593906566300797715679292945551074540811588659901063768492731835584331859703607449816698906388252586044331277486323769210457562990676938767339151122415197922214788515016662423642740440256677770639138237641665877282087831821061452090275950090098929684897784929693990693349980255055275112981242637105359389525182874925136000722692407184967683740949400094233248871559433461365293669496465539184710959009385065157702863983997611782406607786336473546433772724366561866744649992632483460231815416309917573032672625269633860145298566914629960360664423998230141034825781601489038367065417043469120587079372011285804030353477513644031045346309449059677228394346435746389202359090503175053456582160521121607771965796585797311751428425263334632114878041770752678389199941948594366005569224265380152978546969379298068769030190002868818780400332454137391767285036209596241030598753806660317378140822748925708771783635196639876036939798333441703163207388484331705537977964813723931001122701179467457902489673919146890699146601317735179491655162681831285576159448441998848137021729808513636412219701258837239296772917329138914102637836986721105421975829645892510438273955622610121690377078880706735130918248298854727553158164846487828025373375247338465122002086093807076126108310517537165435551936083093302643812047535850705203905399181979697592759931174607883874650464367128203141727272850224689806639921215488530379536903737075591311869845492580120381846226665094670226210112908729793640071900502027817424886463951151356083689950231416649480627118525997991678037059034052931631561871496032614428196506145240576105948976334428815226263670720047910255658024320970725737010959188335273737397570352947556122426817163346955625903814691112962845339453018917510906112041656881653545460296599298876630167422884522267979749230575140052197184233219195040411074429541031222735050653023881809918449655696694155580541146102616878443479512667383934139391636624763242052954306511038949055399087460642798658688951366850756600143844198250293716392883201787247482394386662210753999597829984241414524124703144651449898915219099724553286833453180996319301309723551994000987240110331180321882093788137462888057224560760682332472661041221647438771377403262760648762449502763299204360426902362023387042266117861395182486886948821081984332150042107164488841987076755713069741780779543245509233872148678220692955931016569089968489945442680366467268388461727764037031079290593509943647761852965470571778736050194967278558294064193320374679306202350424713768170638749659661162330529803762660931564239883611453612633375889053016448040396901268746312129850696600264458651796679136047976768000489037814523650106819378343609977082052054438071545799245098278453952078496389146430177826785271200735125359077784139479021227489886799426281038974209371111628210278809206822503796352366143566826070787095929387032233453209606712968310209598975612217072298807766988755297910017831309003509489102175626633108959041827322080397183926406004082435160282819394945022893101489854080737697949749362689968703126092968472000224889502345965903972656778217532239700935191702945564281465333916488026524179163290666446343958068874613993439033517445825885124201362934628565015677382107875440910742465881343003902331627106344565411163718158953044164522130183730104707469768654771300994089591340457995592562486594008806792534722490132295932672531149698952667552386312798607247808514891699033193956473529174334863444896725994416235670173500000358839518395037740059010484472699693468178356181402986353867169788244899634965215026913134818431697197366990687102593282887078822650058256868381162127829703438888579183782530625179998193038145884360288554164552605620647168923880618311401585102649285182768188200156808737387966860893756877563373359579590209581675821540568115527474140513247980331415111318862248331017519461963271951470470031637466047213963867202689360250244190474909331185294368804182871543231448268185751267773968570782183324790054807904522215828829403277667758685580018946182810617162371227119650061024329713873130939862154527463046136881689050237155508632815513295388580198789269096616968202903826443503756369719645878733505426573245974480845386959360269821153655821766960111040582808436938294282578708978967218411507054947156259307114070853372888804829553722161649073557161681316093517571830745001522500805727924843853900749407481144851585817569502811313982624357222713339717410971535035806876045290712930105767659030491239509028938761405597648083183946616835550505758089180277806935884713089618802616620475694089757466862074551009573370197978358170147801464960644690349065690942963475745634862161827264686626477716609197878829800797885379232773352187533083378869608010161064634456491246982889432532108049534377254774757300298670409440622782034182561134857878233414939055916425300606929412781378992777258926629037138789605924022319407398548927383124282706633968559075233711498107682437688350187891550739480220044856172072547888635606620327154565757297235564592359505694308948713694699412917309283208259967334279677330444821354126664452615635456545825307403088868309661567461311695899210825070990247628376050860788654676761578511049936156880401762099331766953982464991563841932193922078542504541214638014730545152130933925986227125936560838676089826346013028594545534053347283355519274671726399441760970962814438227302532829519274328443333015422971501012000477773927682620677260953080290889745729708118999272268264013736680692548515840755074379109416882995580551201761368332447768830289495271673825777921077169984191487111237432872322223051520725917976506040807909796569371262827636967793756000461302564119153346887506617813277226786520420270965339080763466848438199254092654211905926700536570985882489307810086734181583458522713741284950254692486102699733528830241603683015260827932141009546403663703793594983216443888827412386176770046378664059409719979353670637439257005351745268409902882901226014554147657323626239267600443468219937250587079080819565558161035720936658945148760438757650107893377377538448687169382086230855696006889698615521619672330711684097204463292586612539013802579920323453184475065189855014831783652829558711842389254574543880768288356198442731852139872452311064436767428604459362796395289636313369435735520537376061333128221027371124621551612424369494472305805535966220429084348470939592080362145889785831498351899249597488197778176106478866599723507244306203031363225952027743052590256964883805960594579153184799438379574773899197824313417395546120647024898709647928380625271954658215207783124482827115717776985947297165999431385064255119165062394823951591315552145657606701137494194016836731580474212582487662766603742680810667912726250942052134299288340595138902854639596373666098864651484955313988167563798964257753903255591676975413690095811369172831016000317661678176526004140581779022325747627520152293619460309644596564817544504854921044133449012451079053530163567323812969216602914529788816036873477391944993312049486208439871490045504864839436241042096722429361953024501014602449972512301113281847450189849479077190609312574172270350464011205979084207639958886131431803218142157575325606217229819915552881465381555383788818029139715592842337540852779425467419343019585306007864684766979013763348455020834467794502366354077722258760394813393340947304710378771208762498831867652635487171123229331283560880899462142181411851471573062059341542505305527119547448592014882990572992770159713872826631462525815529075033971318023679535927584351612088909780098864458386449687411444415651444608552401825806314608822980564221176250983816241450325347969322461079339862700179853466874519978069943816214418992414171594607308426489506799687107676013710741977916225068856535431119610123233790407882060364152368589291259191560018398076343086015680374188825893787103296300627877724712518453895741032835570326001490521637367970187306921877253971689568874366123486957095158362719078859607954073828862075535424699151396126450729973392775719742578070768971006450132881129266906768885799186982273195623031094838668927426103984413630056464176745497740052424604351665393229155996527229422945592436709185567080383300993594356555015379110930066820351934491218778612038822794878623228551332415050019932670669783059254690772354283731759322981259384702912584045489072449471486699418245204734576349241849790285195750386140170654376274530053282252422592256267730414148590660216810395127888324916303571275596751005810941505346534795620948221652412995425351044391585753884542399093504949912572590620704998924282035938775881584568594364131380216894947598096847585113456593546004826349917625159228540673961431484168063245439820784792411372255175252956685850786136807842307100841211335479459373529986103706380310187283323955562385269694415456003495502667103104655194923371624925368266106961475371081329245852068365842107398303564903534677577198098101705771062397819211643668965307295335965838904264014223154252450168693432474755149114130410909453161512220454720811610934800722710652893996783889214492328595160793591030471093291527625187186480241479775039153710649802980333461108076674642012269898840838435269172924866815758116615286996588895473538931197484669933497745079658063509030621334650920373189970934183006048845138166570678485401536789371704240854467946611695908905862458356904139412850091259790484888497896804991259755570019530853636957021646344652689593567326375930713269656084870056128714152214600176562531398557809169837622023383307936577158149829812851032842087080098343091203207662710729981133147285363752586739349146729378716605064315339754842242619129953450003193260402754178345383724516167555893022893813367573206018141454288402335881401378599614089766604614127413872711296651536026310072763542237184638859474591574307032374704976260653996743440949892452577387169661067239380617218264977916463012047892146614468891051577054111765778953997280434797804989922034123731790336264847529223705368839825335799437776744682618920024958317076950574423711536590779957705984441725886397688874375425067836665596655885794240226226076880723577363812288434160588171643756871534629671543392066440200085349283471911424627861277065600302910662905892987902112874365928865742403389060570451429329861478321839636006610361787309284750500207462055921956649578978676430435412444517022914749679837428950060420069077759985530052962286580931996863568664067095674981039343366394105075838105939689749102058259043245859579612714367932450392015248354956236385740411178051939049105346103728038430951028093550831603815370270432529299241420407921632517061174113330111206618703702999953891463677492644469616124234781873878808507907821754330011532333493495738124628567610463284161412466388624851241532001581606448105318537570013093579345572345424993671860011216877751088595896348289749419996183127807999713014432688759598903290612950722307472289361623101458920682163904669885683252981125650654407339467669900738308621464347089367743765536253160539362722246901890720442134318131120820544225420708376118933529468521645507462273151147447919273904347448201270962237331332315322641036044206485308454553139952207011119985978001955995027273618879300718903042469372662808972074775356596719900488823802310942060485177030320972822564934265236201048488258240928770667276567838665528826457950838356942803195359999990043842514164792767670638138042338846791453847473581463032643862083583448892271568661206646489352096387144453538275557387364708030109256298005781032769978500890193923607311125203446344227857017643462918213040003326799538413916134762435654482977055098129938190764606695557245326463773892747610490132023208280725714432588628660774945408088186038046956674836331409492884359920682280447730243832305961772041116229894338339757835300614525432943217427797681051831242808729796481367628109904276814305649988709190550941688947636636070517078861947032279368523100576920610396240287530377440842718232176094613782880006634834530070356270667853943412752034719486316723775939742389165737057397840422170057028322474705288099039376371752283039848028605939840631975306868363088321289717619083074965777562501484163141947590696635785701339037519641943169616047941353526832231428031282266134462938447933917756047648174391996988250678004220122213280395886035859985220469637543923355730178070205907997597133283009218187585790391100519345932467674048293262120903030903650614668842708990388060796016939777546793992032726753149454291249575070714619866590228715946619136291316853193300997840998782374066966968368541731447285968085429759798730365760008031467189068059135672130440081582723258303064127922340079980417580896308972352998500915433661504972334209791304552801533528557261118719868378061480285634869202003688137225534575802671637425670497158948314378753321287400326460281184384138574594331646047240889542799705857599853751085484050880795532324491440900464218731336143767941623233255512068489158691954871040113996684353885445091338927546242884340718292742424649894438545829953293182868988927833264701216928093390136798197335820241250354860905611057935975698726744645553040887881702109807758071344961189227174114492680811090992187852258591831614042275791856994991669729517730280411221004947308739516618650754029651236714711574730022523305235125608753992851748668440163894273216090852895373749853874783533268688920203136476587594673920445665023800119829817793975915741733500274570860019191631804651240326079299405294407234568716041787708693337457806461879986937503905667440069895176544670979579769521497955394917135209198261911554656853346817994365556547489799165962111077651186769273364205851699939062723904709025836017848332732456938390837994704568656708981694037310855775624444769579283938685312217171172297449126150586324042449154312604297827190457254206671334036819860948949584323549640940891575093181237418891011924314138504819094402294909414725812293914524173925099084195983467482126931764682479346521780976203908024901783699861157952603917563523769055647266566353116450394904737854152228314211376961060268242307632809376123296720942403468646196268082105252444941437643255926229693511597656163618792636154009092144712224930780812356213878815555017578356786686973908483487873265554178886638197201179537208900293778928154104534545702263605546361814946507894762360492104802499132528916627928510718905235240857544590119777210450257930044806611935706891015230664257604984579937752981175496954784529124123062860336963455563548119728098528143244003147306066895769136023742369938267958749702592434767516362747480202358804067888440787560402812065125740791737132268519277596665398462868906247443029670174626383459004556352799835006117450737991254643003337938727731478582936535658370757292881746368545673582672557075756467672780613546763331556997711710321163592623067212345156969532011416336049857194467774071989200928862989388277979097298909111267508067692895291793156819990983747906181411427109294993779707445877274017886262002529986985236356456815653022030783273546978260499397803530303941601348828960165983080811700290638310568384400920588149964016727807753100643489912848727766118165622545644847676182256988408657391644380173051881429211357053937119074401390429453629178314764022880720765808308491675624024546970707481380254742636840523194123632730689471497535278648271404367103826552376081935585620677538370617577401353385644577075432957507683133019147965484552876343772908387498956218386835006451780612693803130987641960774520381784864221257536074668203878799577381203434370424324076829514243888804205366216204473784895819025828783994250471035968446152951706784569155616849275261661685362011604793460326272887826105056209585614111651107102643999689704782114685880997797931786157943564462812642182813311262294743775899606446987507184363956985062675828007804767549376841040463851332981666728731830651192838597187349646311315229970223770606482052002117113988696553395637448471498390425616269745671812312361478906483501693094996681901028222057445308091214234424043609891151741592812997238340965767722952948662609004632472680996875497280111418679730222972939536379038769963570494622593383607388688302021507574139927294493290099059599459218460132255252303706949912466411940274399542194443180434985809332299741933650939136295439148853041318762731311132129599374409670834827651782781932581202400096547957372950054341836014702415105414652521009576590411171606696373604064489696101226080752421956864982514353908920772211045211806362678839764078143994212182676851098515554807434110649255154848274970810080973103608379529510490276876320573248664305646849665467329289704114811629418188299814299500772159657892729738296277403163290941496118539054578092164069139451748466269492469295036261323907142453238236803049068326737565478103632803358592907370033934993380111770482797994435888469089145447706260059526396493037826856235340836848852383701961667323375167213488514139071791316559323040824446861461645607137902845138023997676144001718892334618304099034279758410004344155473939321250110461138265758583639213469640164131938921926469307578581482720739044165344408551717031144838470523352343153994700886098026043713878630839215182275476700478975285554539513041211653133383305047459991821724543138213593999695804284472876095839929096875668991789423806877341183801046740147849939876998617666794163492411017336280267488238022096091408281607698900128389950799410045661433020984372050973309864654561463409185424416557759956881378721352269145537243594792657164986267906746487417702233284615462128451598216345130839105046358122043174809165000265739228048048686223527518512611716376954757083833306343607564435157733172154451589991423299200705180684988774524178880907915080810447469500181816765989935730089431739270949752417916492166873364945814527099061455105041999073095735076541811717439259216469302208885814262033964202904133830112300332836043513661149158169104896784518280114496271733757548660584925738085999054317893116892790156343339555377638708232246977458900838669374450604102610727519576517133563761738493669569734595651005676748692729226148364437617930665250257936088711528329262317674420526601783811886403540632428643146888104792025252737309906402772060802504924402671321749595686883055340997036360320198710117065560213319631813283480721847061284929660437993089303889497783984945594059312588742742553437786212277211907671476585949191160677240924085792454057695370942482663341260365473031077500846684231612188305482761642110068377187258264210837140210124578967506202087305927176422539270931901383041020354076228646929845738495777337223081301802856360633137903659971242611247751307863166543262341306839057766462345661223775627419475749442123239204682466577787082225562912150583069259876053729110602182227851379770140383390265280612599928380134270354423173685166014335901553658486731251321774801312635581916348973721820647967047254318454188294843942058977106518109682079116425848729641463484252216071308192056374399905425709362138695137718915376441003551952863774063553932977315785021530643413112840732970850220648484682624718483701957401573474418456760566587987124641645210364266173438708812327043062480463602071403570724918137946409674947310661979573681027997344068919214030569731139883101518846544721733507650730248294706607839556822122027762667096835574763902103258477450415856257094983155971651128238885855261032964011846442523411623758410815563636263317479039093286245936447808206341603208052879671850967904222199680027738126607821990822386973764327324162133850097054505604314476331656685677111373626137967233193785718982012149665745869935338480367980850156519694975603450922055389131000026809687488215626553310622827656505172260826134544635185159783485271965970833493702743638530428210359381317048413612642121571262666612117429102488981162699176093654500552003923906224925978820419078277045774775390828276553728881653772740265715239065247615434761664527796283504757566156010602607971929956309006569219788958988029806665216850018190416762943253939447287535277610360560556327711074374171774454882557112227970972576317597319352631030738788300150164846931522685909987910025313147194264358506010648035755655418917033868851625404155987618766288200346071431024238650398091389145316597801807969651519007419437314160482358001587377229824185971542148565333015192122576554465364388781699867044094676859934325891587857137214151361408113207899278215999300556387963309158247597890906254959211474703010321637780618899645791413769999260686293602923505332952090209754188986707902764741177644998815094742935025917276331185707031587343128404426056478638662047674393461140575080339815516553220478834245270486455588509981782439257304990263551842600662615393515932492382615283065257733400953230732979627015174982797676789888197724953889362505529719442440623664305114128527596344246751209191473663796261875927613949788210526708610779745271015207483431218669288533628913294344446485598464979454561555032833899603430119791702091482070913734416693623825230715548552728947615588518019348352029183994607149798106388214873270897578920380769178624317696325294047068674470462153543738494182534931443740679067374154446603897023335248839711217491720354439235450069362035306754379386998089952092794563181436390743003777172781881006177540440492642798739332390887870263456316815603002323261385937415238263640700703123471707019376829800995432065251816627836094769480070374106234834938152150354601191274372758671942692740315973941953293046180058366031490521230421644094981556396996357007868866851172880759668687615992887017091116388669869292541450822197317135633323675246075278084161168316735698975684390368732666438057528750873269647452527310359418025474519272395089558757253313376022390166019119142602819021413186977191578639608325280137052259994378748271627259084036109162427863517693090406637279388597641868238333743273710529851528793635542287762038038672912709889648228686594071977681481581681647120939935746579098106260111915499014784135795172222636720085545964050866941031935971091731937581832948839765108886288603521305220211181225903074999718013011689118239479981891953334562411485578108737756766420971337352804248533297079628224163656832086922211457112966400280176511134046651684707037787910333264673368851445641115587057228338526952102617049631021873031656789641651903001336869953442460016128750767328772188675798991720274761918845700558316355367864425368430027992720315203740660461862036817349158192694194823903950073659846346660880772038278294366809876140948421404770622103477969184732684916563527365152680760231333678051315365245492424392801514416628681259140455048581930526938504809601377483587400742733758817718080642971218184164243949261383176071563859654715326858793562916743756613057714460763447370717136900667236900691301854737135195629071507289586968974781170425567187057639095890773172999207271506030142066623694640534515750047856841486151512497021812133637813893840476749951800654917776617771329125139055071505758980455175979353789679650880009617429010392406824412098833854314566932662912548328675521717487749469268852271552763511927545690313520627744595531406045999602351828533636388696002062050881585858745812498941041368074447905211008479253090030312450585014753248642610170853434620135573029327758198367319607152795041299980376212766305732283770249952159162191538008487321440521031808891654154093120251469854466009174799410200412714941524526229949105405712213485216089294189927070019619368965803978457008164521521373788564794602613154910587826369717651388864232205911557684631309459179914954618148583392419795792059558203885133920531999208045794017502143709551519201780250351344227607018077063628085841112134300100617723914194441666924306888395003420516312096242262874705470375757872376419399561184980499709487500503671806592154194020462530187346646685743574442869499161741944782047631343003450482609468545242123740991714494494268248667752111795563657979497847131351204380145268352608150339302276888654609111182348988655208793294749839923714582854251480237840867069790377281249489072438012192362766188553578768222111227736049956070271211695711803103073909580983933493578543767349230155561231637230073769557675555743463982377214501345311566224679385250695875340323281113615854435305332513758113409290215217683841708724328160957873449552234467852140109768236528714890422770919111744036518092689891597521051090561099160133093468782163282953970487980991899982208186713028061098729102702402099541969053315804194256184882872938119664428259873004355119827151936227008087114487870882188889828290659551568034383327919353435377364049385332117217939398603597608540328846514543127264777447054356615432909228975159672785622931338153273908258047176846677362272230125909125232955141081022453447887395032060323148507098134879416358099775837171157241191158813090196789901450449825494080668026837565061060503393080683297993007110353603946713677884335510611986448773067133774004257950755958209993127647338967190974046622191350733945243577044060522532723603048081132371459934828001407493733504430775110829264022777703998776765306354380878548103077651837930853275229442259909517978705424655008607085056647818072530594873840276704174254263068125161097129413359081886377754351189327115674759936304524992406497698273408418780224791117976116133854588451034583757346582143245930097611302776755049413542298099700354477858788687444226121625194997595436809212470207169246238629841834459199439591720923165043599076422106809802105062470785991687769459936839142886903846042110757376294379974590972958527902831149401776228746237893148223307429251334863116242878971311621789426331837143443183278770214733060206526489432677920247827169556546892154503794394794823257881485614202137121736177638353559670322739244515159102995395619525345499963354773661652894235931150774764785660714080695204729666360926892053628113704458290698445063072447795474519978529122933761810982978247927160356179754646111118814380945414548649453360179474691777734137477130667994831275084094253142795928100440371447789149446957284903069494529596310770389544841570785084479780037067154576708855945850683164564910919868277808412821459182086596646773154658770337348291466504173331247998474820760677915584894138402447922938944106577556118425032230451641208436019100908097216880428083996095570583635910433002801035344688646636845679636805998018044473276889412441635501813675698009228252760919187168845341279740403391560287787248207690122794087662096982902174264321386499436690496585430103584246069500279185756775607300687111174279814829342995405938624004677535330344079757887569628690507343211962247440452643164701076673975257422520252397816666663752193650277185050301334682741510865247854181610210107486732788589143309260678481678270315664841886010844690978042167136858045225478600432687259607579176731846240422489458776467652577607955330209171845299790112897532150387278586879711154264391673842553846080751325752662159898285606845243960837738476262158382744382277747426185743490985878014418744602319894666907466353338165629394931642851104756784321669302481180510878222889160974964610071386164679749678330534574210928407566511055594656991983322581863793948774933033927996316601867158678512606985422067026398107027701631237809289865039811485762375357945516912232301180881186052837528887816579156176338144571370439711812701348081944457805264145974369796874097619033734478724005951779287884453896694473744716711410711495776772030511518464281550551503157511259875108840598333793553693859300562642133604536816366632078529122406581409234517324356066785091216190524079267653565660561701326780392860300777614309821136013306291760018548287591592344339589720861914324657340835992637669556905501173402133987079511465932282742550693375896703637583895003693673223790688039960877489547416443312568321126291642997133499690396607377347683439891615765144199183865508255019718559490955455273082504931077957166031912320220813773840210463893060384546538376155660741330605403436705963314395796268970708840410556487707184095954233150226821219355972530152334888325791334901962922645280146465149243452905622570754104828046642515526309396297545683696421813831271094721072214428341899419583729858058823344482082314545505000125468187518433325185314046654762445550953576669702759281858446025589221720322870365422600366143299013597522978913291236444655525816378321597015387967668120202501675401671792460889230865434196283091052463340759842382960174368419605540714330241537508368980523697715680198900635676239736939276077153290703704680062555409761557237677095986756373708521197433955277513953502358756893738702174223931588294614966173091996883218409368914224578361198572542022657256211846985966600013959763826328066744756232865588724989354216990359838976496881463269774339365328491188709510921879880453676395685600084428202036156377525760461044789301120710453946351364236525767610400007086994232114286641149638297041743439318927740082788357956387950182053549252087781252580690873249497788565230394287460130000935762753981845100015351746426231699821866884243253654892366337626027867777559623185011738774128515414167253595519897927140147168750796004775136351863152966716321145607189916509227873184437814176184977316799453985766910856393517808311151441679055999311823889180820900296202093097187990462319735267779614092676977968406990404557367251590800195211692807760000384362078317704961570379964825870431583762057560974358333967260274450725428272529710953416809108863301738876673718471949706916728030592029290480666287944627557203119281040420172920706589310929568095611067508494793167528679597625109337524573637962693066420457067875218206756863882429614477214063792144574452865267846157608943989046171642524085009174581277039726985714568537319619091733367368266361347673047813992832398985317838579835698071407218510685860282272725452932378810358547148705794236000517116510947658639250255924874729324132055024792453339550725464546537711610345484424281643230490611191530530939102049795150930779656302466802857686315235117115200877797900917970498999524149061538748609989649515713265760245383815362444085915499940979338421365549892510599532537246056657711890029069270547842849770525917255718859701595765734158029662272841937001054986184516992501211727140271223543749740896390705139157919857432751168837860271743890921355878152463648639161861193838914471651238690617084709626468629221566645734785129033247988890880124125594165186381975062096207236331821686464074803270403503894585880743352126648433567159932334802257475541964991415210686452066028902944411081911595257527669934208359421878559464742599695649059450545113354074432765761722426940823769477478919413981248465991211415621612746098286560807800506474392588822102353740263210127264612818478095938956015654983388297905679010051273187738939984949355513802923749895827801645890892370402923387580211659941959755464556268096791635723479653145740991612630248980715238208631090532502292459121220205737612444613853202842161155395834020586763578877361638098132562551563818382445218782034733928038826692792915867434631738805054878446834044026076505115877594360464716612322359971237016574085459640542730074633408195396675888389623313023330568247773858174490749656132657255380981308850890996098308381666242796670703815646202007548575545044957694027765493592979635844636604814182647801698427239894635868496300735647730663677730194291357481962981427520809298274567357036502326864192734575115102060330148096008591795596361564633006404679499881441661991334346438310928998284258494854950286942203581710588373584263726432477852288145374048016980053990615957080832841053926780119288450375760091636785338058815172716563423667956657380505001346611766656406830843459265112719923161774510579359214944177111799215080861599974186591262037980074275279401588399236247069149412433821943533790983379475180427240295228124252634376223089977146499883347701931322901556151449259019212048285587806756995243754144262047610420226854840436228414562443152435516235181075638523882667642699371950090359858570846885728399165315572719578280513552851726918603917783409037344169140447292157376070479664423464581970336586652762202422890719700388256644970057251299340477202002310104197993116569508831105923245099087498533228070183393240431725093488984276639743958260350986115798083232724411313304710502802462954546978303040124917794691060996810180952609124024725877307183186991735919234717733500347180615772442549899783044207907452303875996838828235569089615538463892147661908152184969455893934467494657546312144858746364162198757241492130943293712409674815620662667745352027771655233135768560733377137142578573657040936314045915096325458999183022716661271256118314694970708217708978713860879300125736508342425283883184193461226740522094078341596190855526707321116519584225004564240395221416188860807282780429902053009707315684901338613162550550241658202555801408194873883428235527739808393645121439050250782495807828332385619134133834956413476804218212956769790606565493252417418516667930541982081309168320685322940263263439647412821254579933684168358814366808009915748378749965039388231136916485827465395328328584000267102164733564818669272458268003214626501956596839230483990592896319346589160181240155710854883220527176401265117898594036796190073207913289238331861094951791915565219075276141315378961206277272666408135846116739535088578187641710017234539149015103170401619311864795942857077968234656358770885020011249564187178858876405277273957839018462508155259350723956120191991529780958527279441630540574688742320218010896764945506858815392240735330316859981635654056168892317594357411709985081140104489476430590964614953434746444514835934666472200774706073510955308125657199046225964042568913073990387159794985414351354589318584560405371610756852010490570815782896565492829017891418133021323811059803461151464938873893676469055177099174581619798575228417808867341501157014981761135670064373833519830351462600312435890555322668034163176235139201525767901117192907703690237136048660334063436637316511617257431129395926649668383980194002476785664195213628353618996254996599557286019377170597213938217399346980437869965903468274510645035026087910002578092436968845548429289651926303319146629809642420147795408366202926391152825313955904222362989180752372469673883372337623213895740106604005344768715569783119603851456261181810243218381745852157319304723629033617390921215390824114486104446700240623699687113038767051494362756566369012242349013992441301249761927331586399628234180901257946478123051117752102528083121664995554967767779223590619373334905176721629854627424548823168040815022103783388521534256874935097533885943140889035045266596628970890721539357663230512636490454467740611777995046741874144702873917740879812863128037306313485027521670157493442414564834066999235449575444533669756136681568027763100721113368184201014414867639072771649515890719275785559570306420220378456192227241211048240521722400857609076757600747120476546690391178966645327400103535284140031213603795106642871785220101089208158930534288730563712166014660530715708215199475012838945203122799130464851829995034173580752808711705229844482359516086054158722330796092837726330372253011668554004647682534011036040130789436453690265418394896157161390421776612103074341970586422173864794696383155374812570800808706109022894883870895085480761728449675050998155236047820130300745442707534159991872876885087609601599622668581052183273466789067367324106796454036510355651245947424165049889956812687751737132941610118569827076741235690980861455667261439303121553680879873038256831998396522182256848060201066320234473631534895298646991059165993331070863031474144121407595087550470063007617201196797733298351197641312162190425340531023840585939399353192259063316677351129551323546238606884545877771089341160670713249458164583926100926133882369999629574312758925268719958043663032452641847857015451382814014568152252477304873510043235890011497714992418478003344212306393142224190553855002981111560331024947925542660557434962671184782957538902563042541878962678734870803186712551003172902286281235062813790621665973889337116810707195073949429615842915744017536798399811994622954289609396288223280777598353261817258325316595165915868759460977498513169634327278840734815432317533635331825693901378426725204922840818925605345506998278988305448094347881600928944285015649449624697484926984010426222895139845566330120197857516091736556230986597991038283068320113410039924426507027440696274832867696837064392996416326150612545033482683999526011910725806404817122726752231943211652363613611557951170809868167846561112557854682261008601874124570851450925408579309941290519787802182116737067637571689656655067605888477171649186378616747920620068945648740843818570522283403419373269670415938664802118259951819343547772380127333718181499514599178133844453275414423351042748780020351241048721137389078404320742869551374947418765526078939257547205927946749867366716662165643129107439874896949248899567122431630656357405438832023717507132485094522347262359096228911804892052148708399316974673611486770464262316285846685013927941646423950270315177203569756619819278445995024942051273359453043312252277338656797650228736145771653258765421100394961015938614509466112513867683817835878370058514683574444411981270234482785093721115629616697863387179638694196573731875528177379182344510627150317386064885572442801914673906990198016627663938740841116009681742014919082289909684724522547906840583002977710143183920896645133249520970969117820667750488433380655762950873756111078408576254937089321103891484107018277938333991303607737003514822635396492623140455314426388615028211365950088402865485633881929358143340025532354953679338870631836858931230921403017731236045958951119940331852249001400484893592868923410086945513822711253684918252059698022305420966717832523629797451359050498570382202817238181448134299169570334132617412602233924256648530862355798276610410915220548174538354363849230691419453016301149037495065060143345105626465842607978306976920388658875533901206599392438056319969942539675189157904615429528635093170741378102679864123627676492194701665943802327329236024809858248996042279898093794375045681787433956581830562743349144607502920878980493375256794545617211012635570098060102128614011334259392988322934800591698233117398611558439811384257018770512048841579812873977812015105071223152902612546093016604158378379140825000930908823774386364829461371930882308956328941245047954696166698654932044767097188524675733706342536508807797661323547679641998421804088115038929509493150385468247759006903433235090323443962535923292547389463106187582782484768392025414097762838652105265314053122412506772181497410314090286562425096280871509818628173600091612434441107517676184087842045338580435296726632214448551294724095634398040047737368370020127506695280743075076114994616924836152425571151091223876819241551485287339153545000197701374598391479981331336928307028910924742357212169467145682969483915305473163470154919257398501824002850518384288764340675273020473597749646933495015877662188615366885413325623813573110451751300150917595358239676565871343683508678673882400578449084768864320558032820111249251188816501711914093724900468427148774379471957606795423677326148947046898108202011792291391783769400613385932672821986868036984250370282496337933652941406085279431404619831414081291110634669027318195888737993360761171110248649083582204034614970375061287543079115760333576891560240526929264133276664118248179968376566367224625341409734698980179929829214319504873009981324513810426315464829221156423060959354419125718435298554381914669633973791598735426129681240274742798212559921563426982799692387125711766722968025452527821706956394528100605397320986221242767927198324435534037439488079136495743832160607342350706542160121608194713094493045385444401113657430174866364891046827780796334873601414824401014295438115822256522401959037953621410886377667268504737524712983548944292876684300145185862687563446115751978561678626568758869192288451752974187050812054273792394827257277041241219757558737028456494896439817982515730636348237681498961915675552454992442846003595567014791887321653565887595348798511845013747353327604996308135127997769181361276772672347733570390671252291603023343131312622765501656784023251044601331361286920463214800494791446603598954932434267182752688656964656551773493297964586801164070425610091791120356755978686550711144863041771534261724918010405508761741389696481938159150054103172918138251307188917895520055720853689930245367120622234054592285173885731856001385737764050150805107579275077810076314598625914010467253374121438358987502680760313689559825601194975529275432539021936801178812284208966368009624657772277292790085534691719128361364067979506436265835549909045151110564443282407562734256118508373900472488195590658884235243223244086380976307591345993652439066355215060716650198091244740125079275428928046291623888345760491736071396054612986575339597295212240021983572804469038292223687790192892547157812419173561435897716218294552630382743466361302282666598412410906921632477228702765601647157479304038151253804738655575218567814065650304594242443345774906895344534424965403209062879456469282039578722676238699586406347837972337420223504999641256828760056729996826141258929887640787900762020438057414790236403735615261079068812764976645833268070439238898614770255252324255640388055963971060765874769947123570504161793875434113613864678035889839632686506956777317481121807150328141574754487729650607594158667972524024642408317233864131648716137677279178002310935730702688629130638011092377522118198682772534041814965477867951197585031289775172176993349031696397048543733830988047488705481377474520835029208396253587130159587705804380851286373194572280220109513569002832754135296042482787528780116779754740178859903268011811045178277744526777687045050037229115398389504586929009425840593677614561818383290739273085518453235439912969714452154979361320724751515824178732057276070056971200198478739266277840519032138857145524382998050932796733685166385519539379181541245519080130951249786584935350871179282111170870087133642578688360873502704745049402440361405264351251849848233291728821244203995487329761880509268198089279251229731086936769237451285747558902500247471134434219784505603929403244187971994814718874724280076198578081179098857726274058994288348127290474593522100057284698234027226861733579744637074997740465574500790543381907143113041441445361312932369585564456083590046518419702159821979096088453169316358579623815192302290919222057561079408026451505761951490929526975921691959201448005527209185553009252393081943493634708696769151133709344637034647436387799080920344376269317939203151918033682572983787866601618397436143048742026541556826398114643540229328650450511360259396227084482286510008170553795435594885594220499814613970124015642964923835145065546758528774775079635444235668346117671191818358803079251711360741971531911304164509254573485300838242446822555943651349804405131348596301349013733826595072387211447943309812025126651850069652032219306220194687118994668544723054376725629182025058842499767970068461330804591443215769334906373247960472615048033046170818463903901883240237428469631159135393740878173839739495944052281027205681540111603088036776207742600085746170387412151868658690990547567534267524243349425757778368304711431618047518416581098993948303936749853362625401872651813991149521427761111901201511197972672113534930454791862672905355929647756475607738102656437423108424455550395592853567211196873803923264750071363885748108380990505091177507053099445610008552522885261589089269144974330092057802744541361408048909091315061413778114095058980220311460888630677595903230141699083600546641043199922859145745568545830536635478463332723892551872278822832889348508056465755788622265642433060731106951627150114125603560642093742074146972709324796853089934276547300557010029209339029251261625198411249929784276108510999513579905970608026765167778410928513011965924632040635216584992107748595228053579688289901494529943060200953864229143160295091479497260433419014931855596472530709808228628440163369617416553131205333080720899635203300639881341446194416360048824817801272154026158791641127326145932243748007281222284551591601436318980067225478845592991803873710798455055283294049056411238577228550269196685326601280448800577033023315908158400397763687558842477428737242815832307059827659050098025410889901350043364904784405153977388108318490412931868457399162631983384304987675945927049806953749496834484504300634285638187231108247596210151581149882623446547468073435084947307554496343221585429471110811107997023161625527166504482730131234406548362867504507300161230247178993307196299389362489008085533468983751513912925894250639519878541270609874374238693973461102348155314995501687708732769746256876789061650816449908241146692027328812629821659067535860291442386655593528330780566432380871218641883922320894349052361001605298219693505933047624265553408805464302745673480510750026297226854014622046505828953279458094702295586459093515570915567332521363735585546999185777880775953989914021248790980380158187378492832094740441335399791297912928725661771077309590729166933172921530461455162221640554188968998257117436512860196350118561812869634738158008336755975931143913137472299690394890508924479107520587179390789950100036709894025725096486937544335598754143212640746637026832362418053251833873479888265520201792730071372343775802249905688146517683821543798502205641656374741487507633384810362290611468910878671008828365670168393157076579256285501001231780071175241135383022712067620223654151021155757103575174326080548755465316320089961077761380424339105508071348428126555110213735374773411133210367381585175768756562215824243066983517116712461204930816885927321179187919408308840742761828587415840412569079989114454471156240731185330474457744971165208142052081788941835101985971058450613462631651816352774021077809064666580447055652602475577023251066151754697782957456203888367072458566511419112917863760572441716955734246268618909561894689591387979785135085124898352577967393297920881428017711019314792125060502585633540270839317178873055490457114925050316658741501794767304926734365863132888905391180243555247832385471226986171543185327756621973531369388627896081390976046612423581350909386169197541988572485756428302580371994142907837901647484889744105858249912517673131288423439933930558377730129586184796891647370908609723975177748391488591646591057150185643607184608108046349537465988959951147236911675976794690408676602479912696271301127777763565772433850789451070252581635915123847869472630645770333284010579161044466240684328037054046950723916062951545435896218115561006065531681215391527765765099868383903118578657879363767020656013943824815012957574008228304939156902465700757268785340163546252976038074276187977998418600413606431717328892689042472125212976019377392954145516987414171672492473747743050118960182356834039975472259343375632513102740059280450690371237578542134791762726835547913729495858949241122800024855761898315890134112131469807179695183074890956841413885535243640726273457454051407301646732808393951142655691822842624762782768215213285923088666993093142886307374789251443239200542971789757335694234741077979411782512024072513933928308380904400527847906535191559788578985640936574800468169111796121320624691990139172364411376748015727836123095726945559221789904555618147798337066086157419289086362258675382112608277546044288917132941557954778229972649662053540094061411450410510460308981374776536946931315753907289230625797498729001935124576771267819953037966650083116231391999469874844973791079633650456250228023720574735232757349663574612465323733078603165421630942128737829422907121108103597099568261599665052061366808719216046278688556236246697266923288871021619839738469202342177304144063867848197173522310696093407941716688457497899565564690317017321960440965098027797266163869108852888269965900186871722403294619720095277584220869531740232910498469076247310954229974556691450348203546545538300454976247744009045042967023368138351156495070050413341580061067454455100805741113696492802992170132756285255180198360140440443255528047126284383670238860342214629946500343114565814989646982519979587111252967162245468010784305926286112887001146399199549824314423927030069821347720700564264258743064049339797962194218161119042730483763493429288599929847871607259414917896183335336044082580211434553968735898456662690180877965996557392232139419513640190598549363297885290295685226755541427319172668299066996411440790244938731559907392577537658627394516275856808551790608762501939897195322681576588210884759329549267374467143798917044712622003013250694497556742733904322073000838989335589011032112199041829284444870503228458722281689222713337502795836602619777490087225116027723154657007328644413698348914065333672411476543428127872896057312453900838427211405499281253491090671334535358631305641927040507142303686635750490733189163464935253240463307732339079539821698440217582902292321077651758680907496139204542429429665387066426911431349235776334486179355539280645300689718032938600852242942110253362538470690872439376210738125201400176360214008917808157603070990417294994165700368637656209307984184409248508825263231987677055029696545656864742280635369619829741000820025039088820886413253529325688550883302962888251456917714669059675659302931861767676297645927562878467805202873641243251848508099459254580621613370778530383131033048101525498153735106593573781090396401540775545310304713459146063633417221205276192912108417174033170588534973033602795019467937200092237669469978551131991871674165090243537697837618165791645809935190063784006227391733187836242560679449358431211564942898166148106399018458106895993935926063470027111827857901080278507857973631230267651801464016723376943484063585951660221492663363156056282701453605214965673787510776104118692614660351023208429193011617571994946047736085278660641581379968738721521260466612643202346109806993577602020802685022267608019043400648346805317285349986285643038693233717267706938210128300250842677726042842922516765351434131821020329341276069496684353719835191788148364562455682586345236583094411016244701321465085720258600181653172421948184057992825605430909633042252452497390332762118426848422625220672855039493122206205779449685132135187058105840677658595781294045574477656935708275329672176014055714266395337876718116633024438877417003512549187424639305133241092441502598456728098772250728097689593179355991420313881813879281386241882076458042718836900190274446958654140219409727166598053582680371660581352664844934906373204159598506666261490217743666166292100302279866988789489900728061539252704913798101649990855586200915814925620656750485333324144332041062918289168232951545633978842784885246086668708395469176790586958067978276572373816779890727576952135330397923116746120312137919434039908593207722451226477745418552798224578252033994475193738517224724763814609179466879631397233009905749855114994378507054403822861418061314116595406687646847319408885191820749634974777790460133952772797706630034995798508192132848985433620587447758199016528526244111546487395567136266085225456119808737438643212394760413105064520172128877947140490589482891707692682467609316751086929596366809677727321930388529007009745313888213930373753312901881412616959574799829256451538420327276803810986919617447307086784105748065310792430464864807331177471676688945053420798891772922952776895420317932714031752227695449980119421980364254480722533625890141228101076767004010934067785707342635821155490481921546316763526526623640355513570180697415903633972065139261665077348119972141726290264339055404788126268186790608638285702916189824168540626105325977711936484630560920771689072538596813186983821512936063969720964254308833112333362806095687277693490625727139648982215067727645792101391800447054671136129112774099310590590411627249503199322662184185699769285375902057094362507632595256071713634124996344405466731109961158723180171360335853454272429281411758315062119797959346930508462331732177911387168884214021971066366700822401144865808889668844769095965080849849510514014676875989435933631617765040193026848569854023109252911273465107281697501458163422278658721495856568300033435219376509575319890288756767613557606409587077434033827231727938391674404671482523296670540191390926587747416170773586289835691641408004881989716199582438546200210378860905878989458036580566245731514943743959110834557353814148741543441957775096232404601743275000321662230785169591744159523154417746089064790059028569127862360163958246476235291056917304572015097798891478665219360334901943256142190241296941661387383375205598303603163700915993077287502940976277489877724590247601999015544882169573309912668423473066856653720970330863560279737883585444180499174691929504761575861316507362462917339031410582053404384686512872066880284709286837438202231132901204929892195106445018116901630058185378207089974217875817161072875547793910031739797123722903840540813067187821517639645681589554722218215852987767961232451665268444709146288822780395547316984553421320203026867757460382474757807194865116921848465256162558610689711338731535439046031131525346353840954157219441531175566027744427044386098679447800400596506411133652531899309596000873663309986991563268775415989802316541087494786784782156685634435879377715714547182837850994314237849403446491998636414561184184708576912265464841556512276789026390534726873328155043867751252189544993155667818652481564387619223824540900599363672375861689900882821612770100896443756960943807708160963572102580075934187949739553396024842914580904016894703492598002411910085855887612159497138530395164755926061404549536378080811732571537199100974682463501662840016088906799798227250761959640034146422564132151517824942536191795734011387518397039671371418259808356611373080122204959071629632469470478848518918046293095004759404088029862710576674121053105660807968348045837802352499240129850409676526073362596465781300523117188815203239590476245808422290632570374518708115353784055997092166567570610685901270612388172244386728941550121971669739754108494006327483415009839495726692208400482315022897957117045047852698136188242217216202858618461074009382735286819464964369479315271666373045642501786359582366291415426418138452429391511033050301736459162141631149223030181150113128827045957209855695042801268954718966174396093615810561401571726716400531323968521223979018543222220387169874945545975501793581641140789957261135434251457957669467309351892195861035470956636825610161074469238367277942210184044798031196379541412832339486792203420787329683460318248407445715408121506512610418298873640647707400445520402263512043741220476769137824174743035638645766770327883248348534100468763022951714697966236285613236403483730923593155626043538157538142028989335750237268367667087692858683905846417206021830441073123008055972051658362345067652174170736278129577412708763316008821750270592488519477517933786612008096122219328182074136894360636388323982290843477270597164320670527357042264348839914385536688033227660258490838753266591797181797833282179643065658304700920707609331108096544240809454568781693685532569652250247699466480427422959228471230668449629416046215165403196574804689384350576996574998108620707320550408294605226105937304531498359622389210180284937030182056919344969435167903179068151544757550699752224498336739058967899042690594048014661545126529423711836814720190135154000779282590282761515025984979672828422049799032487222173451058263590880932882314382304457586312485439304844743053846616893977471539785110928543157043406791407900003951566206728506028212227927297941798479154905750155383313196135911952744672736044039772394886554602775935711695965507244851646168080309102432845697064500405849715758246543731333975698738659581305309237470422334124706369500185935444679626842508339664663642297702891744751742565828620286015800442961939045249752112641119126891807297728337396638671344454270642654464603515301416064547203265142367524326937630094820902276891471330427628396890710656607718147559355485761084722490774865101065449164235166626500654662054991017147588357210445048531854857689618351766865283154802708954746597428973174178383710847491980010878326269469343177329297652967955863274419676271128965307819055253213612921023390069586219575072419075074781167949339232708375773872514735459515686829033299071733364796604022846757150803465099576299964624194009344519073464407228310089552986763401051896171757882405325165621641616779618289937919602533368294090252179035920031215621799463039376344002542820447498982215999512174547449122687092830498180407536800255309355693629978760729195125478633372964481272565658355042062422993483431544115466528086900019493928421557521451712103704526711008132400161068136834029799623866598401344687788622203299478479768915572308876968995731357604779890277659254534210356825749854375304824906597237303631871805372828915938298705378110531720751552709915155046130622723276941216015843096339466083256659848318380429975474934856456611540832962645066083768298555429012266341766749677230365484222476261183304620272144537386968094911582457452752003399629409378274531533491833943691442386920212159794379536166981947115964638185227611419258267924163644325061932501240158969679688051095894157696572120246290794123438472951555664153926758525895898142481467161609288822900958759246928604194069885421291199079799633385916446782088457103733841162828096202915920603489370062602430128593215727830628168884308440271921449453065573354580253131554411029910027014241484387690771270457945909671318777243323548400649931630298611322503446518661288438423457610756801609673527318754710813455211047587540751199806062419017642154557851389375217051398003167353747521744388084563454253039709325475393365754311085365459296289187744882679418854148378141950346982580433904886617464914785914860252930673169028276376520718015974917757650433253413133119083459403382635843571126492297017367647581943495812571940686224661387454682408383750841581823839402732851515518655419646165400617533995948629345086606682565284125654725793830695076503957549347175719153417982189127994283200993500755001917514644291814638104669917601073117137438999348864959050523135511567748560868575150329784939097354812069851544827882904255707973902945675074799949050135038691032176095717669839795768183491185028692735224760155392252793543423918823442595157428610860642014292609140073314357837721970436842182228609892970674215452534570520275073359023648708936684918241920146007143707749536171292116536187160373720110908377094899870868328769105906968494424600180835513935424969271528941637142804177197064457168038490566801588390016377056157080607205331267022148443807252588161743195302974256180029209785067471696206729884960629420852079605234889627273080963273361272669616043444825151016198398554550191247328849551409577280367510298286826168490977007152003107149929955559934564305655410971200338387717582663295260749339577197545140970178967467495842689179284446916164138318530285281023987893056564813908530828228763782803580267699428945890877253824964790699492786500132629743935737597903360285338977052295457600563810649875515912853379581101922328034660411735369870051024975389117209039332746548119799786492785199301708991173222275059744494111290185990218234202655110175764276736521798592437632627575402686029243849158179947642141786795365968886494336589090820682100880362829564721441287163482627783377135533303500243651560264956986678204330827905039886662910981042947478105079346062423252742972007523950855232816200493557313823270410126833411620889725870536477257529528016000705985660777491275913826927999394029578911986136556303288133750284071510804116736575904478051750685350533490207081023041151061660316537663025743881539043676336125077721845553923244463206317892805517107562119800234577743678967423166694752686615547686252449047399982738982051460154594849779781270406347270001564314921675382676624480238959467169256186976830115504844750299802890340731322330390090396944690691131567544257726071441135747424070183687297147015427527514355420715310558235684056555511093448272798565844917950062787518679520425505221492270505394915807908298571021817913665610202577147062372260708694581603841629841174245998564868396835846729761120621307647184491391124868652230180921757817591146266172231844624009029089811006452641377210285007171086657563962383856548770328947319961957168043155915075560339616734112299453780336700713032649249074690438059152145646249866798979320615635453918297218419283963337721837223636114611961707622239913937136867284461976512337958223690416957038069516824144501516425904633788944321202476692293357483081881031268263039080454912983106972898911262180502159383366180116501374216480269522244802700122361144033533583522863115812114176412988947235146948006209267973347781080773110491137298133748178808798813347814369148791969783013929670250290482098346364444592638747884718206841216861943804460399902619332185330857078941569253081941047136288543475289677427666751407188251850478350894452343705867051662077758616808299389715145284269913646275855073464495558295840038350029953146108312358072560373374548873111699930293178575702351926645176965182860663557968287217581699834599648823417187897357406846843144999213472200770252136688225261547790057955851625587819916859281424920545504912788318233648050403613774038894873825875374294930380499900902305868896272889723597052483735508831698565438365815493669436307848406480899718326633634695156466559104569681264678294847525659227659591384819562301940408840337618438266176783370395075541734054669170302297979899400081405939036382705453749857372889489039774115912604046058985690598634772139547077761999482962449870356852152310877334160851500186347948372269885854485988801540442061168822149506817610684835577642997433357729996436641125754136625458029501484451322482161541852305511885063075898742537159979117084483668293642083088604926864309679170502282836704557201117690321479209581222256867296257454904051713712924095731602952647205425585829421526694327314104029145986846631980689130230634341969278980670625260083709553857786662512902626992518780853095651219900143318282654971131667121031682452601358805942994040625620346876792932996599374169928190899829807827874731575022170886391192317119180061954243929249217153902850225145614920625048868834280773924773508059245977246584053275963544853789440628709756941595317398169030908664373280230501162142946559899402777228114982059067283996063653369207213140798753038670389723804814265583970226640810299967773462521332964646440328543283039386309468408250944056738667765231574553322028015314851381651517320687808192298332710023979676515469132522300204378043780095992892959386562760785832297050766251145897315482241343302618811312030777609159658779452349194923366099937631591429536351209979486218696616720537711537636649267896136133620979134786887944312790597833727154990903866775058083827099321013671503186242377867839814985349449317618585679155034834163807973083916588351451505532894512288040778623137890090618514500086953799306925079006208087249630088005635514934046574125861223858648988695739926411961642433432557545510461389942009991200749039475023782659127647087289027149982435213265413298479936765974472037165215983653836624924833422572582378361299656669893508194718211861626966579398601993277365678668093000045057193148917907690463855411738247641382959981785642375013575347042131070756636682293516839123409375150840528803610858548247135673880676868503859065129621190027408280368767727307687859917117461995061494313539064906213321027926118982709861168396733578888294144138376812394323999738566972084984443909972481284232613618915283898313312247231952320429646140036726992012036354998171846648275487570072714339682911868516205970084951775359576695682624140406403374165874646618743151327534899646776901523009736469536230191467234229656867356403879510670482552214511700403245657150374088334111811097195745700476061635365640922111644386063502794732134942051737010625697471190275862296476995156511855948533770655278518848656226765702173915892179594790050183550710882181363816044866766039380963207029616062789180926844101917761979839849930803162785368802008168093778707902668914068750138703355651810946751389260951798170259656150718192709781396231183641591453934548313628126037006800623012612682651218291607601394812169672329274043266406828296276715802727878919816246811275047887650467614044214481315926260091025714760915717021909499954258786872556225055849495602964520765458830771021101038974335393786946311205971511717589116636724462728479569194245359110605298131399673060250516500233412208820197670690419974950396170054374447097725176930024281861874466366863800297154027510605033909931135444512457595616433027639672197860408629605688931423603462348743162689693424021718620187908016031868143814467024438771664667730783038347485177189169197151542237626002115514174857715461421831693795077066423709276302316207418635800744581593903474156736823244366925664958483422139075715822623805016224782889715125426338443820800780814178438449206973711170833182827694948690473628507405649908310437676232874918822767732307801933344266597685401528211381760173931053223877784970653730099398721402663951138033800324104695544183270896630661646865071522369593446078410663907283805895535643082227243786819666021147218699840961361170324891343404544817257017722566863186503167429418423930473839856528466420572365998680101943664540616183138817511482477899403107960797868823567993362754290336192759989219098586488557424205532117441941795928912263354231043204271778664036264581282603215308947449376436305900918440685457606823168252364864072909268823484939882395824560707992243628194910089928294688551176734444045467983809333689781128503663150018829158395414251748699985495431181179993588326901992077660431205009173285843586473081238835470447363909138718554055906850465656273220569980057033965681462761790401795328877567286653828468473432530523942105927092506941080882229680585944566666423792869042053625453895769290447477487847683646522867738564759948084620374750343291687937718410569117627798965408698413736296880016712255457715873721766452662587749127730786129113841401068782343392466693067901051110007582627813131239363826795840602235565915288759133087765323900319804503534077459669370131322430293342977873254977697216330669694466365424309394908685155711691532240729203420731451713825217064958123869691231982678794891396659584791800138042143622481133006788481282371725919899305147438195052992769663607214547413259984433755746467862909768901347557956946627352943513836938212377835547911518574729158448496373871286847367450044214011867425775487691674767879114217587870982345114697229526798744100532537149283102957972777482800342673723937177948242563816036933522102736287863497810374837414442943410114116797884691032754841997288996421266830310114093468721736506741331306715960469369402777704870251489476263371495301748129311786697562354607257132018617761035943072379541348444655197812221153516612596543311275770913709906743591532467657470198382507390180576888931586846260272506292854645523602229667869464427830484998999325499227912297026291407463499036137609978245183495972904787224350190442506012875439981215177087290794016936701607242138181730035925172599095378902548436715011236425707298787636049854156603773704123051721453746080791454437004923485688809476590288037459344143247091929233235948248982682964651073948202280393019016691517471701884212004011418113220813122245858412991379882917062127577659774002455451911515026361946236233177917516584211833707956282351023826432242905485051419582620754064588371665554629284900018147594050894756679036303078726858740547515106837401907985546520603116421658284207449597457677058239968908374431088330915704946654689313790375004908041873882749520679455973456489489399507128560537628001744576709488403282660805823967129021810445243797862933113433608515542994113119721329258297134921668044976939284926695979063522393159345172431407721131959013632224866544806208044272391011706303015897554042840576347496378387646701672890453345834799143804495915888193467164204183476091484977922683583528593868168501735021591336274500409639553104011069561992498590920974299536041841100640009514400314035706854399530339923427016097256147267308455923476046562809001451437298390705039646475977036255753092838556312992878976654813850120212468133123431526730521826922588901272910227486098155736856999673883110319999436784186992411860021185542752766768389337638695582500315047457474394571246160688891214203101635754237648398623734468199697625024048073553009723982153208021283510571921121776770073948221384815191187118810835479315314824497145155434501944461602300787949436510399773905340480432148708212097187984457445971919164386117462964208884905659195394430182238630841615406074154740105418774962070671411303688280961885720809023391183354687121986804593586175495363077808547014994549664004469134700996239700904367998969781317427939128370708216946151452636473120004351083890822554592913382346752476649185239076930636935076883739775613985334068793899060103485401157728451830770494383006647298404285651482502745589476609943173383239721372024185457688656945465855081333000887894278232611891313940383953295408406077152312144233504548330328115516329560322094210914561112581559179624442842780822686548360120104417112365352057065705312709320769198540037868795070513704715763922929631877648013662942660728571523113987506841530411081750031255010932956852796669065460625556400892997057556990782830047840361815459918378177999278199717430661754131709050613594531184711008296141566586233613530065580364391333013637981729413774209047078998825501941281365672756072805893192376399855353835595826381055483238874257437275484138063772238591357523308648077309278903246682278269256032023757078609281642112360913399866718127589990682138239385103221945309648016393895769221519536276224278820829591453867766758287565557615058193224741636165181281240372669890293710776971857955908530945627023090242469567708155672590361321220882775211426597888217945466822136255017169706707053829115260749199210117102015609275912005659340375243562525686276553355317266894822824443133546634859492071878506857308074806661627894347998177205474247883666063199657861232426915373990744357514664748573021944305972471310373263154440968384369376501405861712072525259684906274281251576405014916792865401643384494325826970020288225778834192069592960309252311700032201976754524803129940256628944684715824427166661656813489902154509588838682203133744649645545271419087939178564416528652069579389954473649314917857121114059017435801156990331468615316673741276480788882694112458102592965805723600828046080751571834521350450894968703694070913861705735981955750680278696069634792051312506865533711760678786467962219937688058604880339624917985613358224723048264954945675522078967383300581001230204077716093155277507390462045378430678525343615058691701119902696446649406365140321578689488608120291619904521144442998867917011418739825417898888117941173439613307257791966002509780143479569345783860904138411680801311131139258127952984463327941648171253672738849259906130130064636961970048951370455262307528615972869542111749019648842998076462405659990958099844371221011552518720223658563191205392401977441471778131252464569258218527526007943884295452336513499308044291921640437240189190024243778530097946028331601431479822884224540693948019956783394344899932278962629475039879840814299724886840922719622282983438256406218776957542911932437569029328429311330392549749888877127194086953667784902808768358809454286191464071071912061303549666697981127203572247582827837866816865482355739666086113946198798228160431036696064653228582353266014574707066365758744131263796013420996889767938448784125803859330020114443037057061012678544894692698381062012325503347758432880882716971704698981590944359129008411167144624787936046086768262385688204666323377935974509922722456208724036861883918286370007119933937022433054568915968763034508717312633735673229826447819907568932451231060218892377820393653028236219760369542845679221435239411302253703016247576378722113512138891556005219334153405139503375006864612009513228749717936258911387285638204186519583281052174340958632699361235626234090663802904979722617942597173819865609541498784690335460205122854737399324520013742334306714321232224167784787849998989695169470474224238788145465531807783215897311845195526577546657454753024381728846558527626413384976417946669531121729477685457233029386082620432714794608199409691492550844585597765142377803977625409798509389416282929255013348054564530403411491805991942495893956784800705324152913177974769273110563430097148923899734587559842747212772818159685367476166726667508849211418557044633977049197707965609270786542527850461182002633737252887364853669257793956393202722259918312132696769077297291548999689021805444108794041882731698850808899420669949340151819196163785206586157510006789668825939248998219383796616147036402573424297983879602257028209484538777872604284586500390403119700868113554998943249220587700630653625020482075011801515798826190417425027383132798698446419592714298147924252420441798407014007757391568786119152142396321064525552526498028375096069395134431124534721117418822405879207778483887369841882910252292388297728603556134821072988396642426923617646249008677945797305579423736550386071596024349865021791714531824623823278474430179441850911328183311848451006445149928124615325382697389503008231317615643736666896238770629330174637841681138373802513527812332891974369227745536369174457183108269361309134520493385584355548366573969926640478703123212725271502260895714119683834669804120455730457439890003818385283319478168672404459868113293144447743467270732989480427806585197830814347287167082497186912314608752142557553406762183802418385575566223475788599196631055589987156566088483135154631388978375721348823100986893244644871458897887391891403307296208672177026809915947146415910994121444746229742009304025232422191777758874377674196484427141302771091420593376364654600605267436408798031859410729771135171444363420057218838697214701263697101783854698726330479138471480872715521888351681205956811642721142467483431111261727633118074316037573772748761399932563788489783111112691368894801574538071781768132694011173847702195571957784204667077727367541907958547526583023889289478250344660146646867113302185080414461459107497404057542228432410586710041286940902453002600726182233329472894411240792835472865632815593936315944893658122506647763668629317891624803282349941576600108112270650920747026350745807122750029614941705813344482832401046151134607715966101548741624917556898142743613870254861189873386384592315448165148479482744571663650270638316951271119863858553796783629559139003065017017342198202288903240868950534918702397240157682587227936244490537398691322310240092811285763595869945249859581418228263018797761184796128080986455865518628917801796193918177532537582643235973096047344812169800127856178446332084497646834038081667471488779435795952216923967462410925841977813050868003419596480507204580972770866675530737678456780938898139698178091746819204547731980533124409077013732997274624725963857210845865377804681695628124205450110011895095980885827182172074756024930368000372598780982448366011806602993750650864131298026318363701497773153224471613850427685387332008844931300319904585983937209219718321577641293627583482473537572012851699689404620696356397785416682559607561148204444950858231807647567131487906488531331618218566957207315338845390124232045758958760029649577485957752360814598798941874124190426418972468404275064502397554316180655043245285961313628810725018855189027265866588668296894541653282808157619314672642558633836048266176497736159735200113814640931479875042933023219653810040951446490797614275402294880500648926669368155058248951552880804322510290725531708837715346054090599860350881786777189721818841583631596095831230250753288962882885286004029624701043142760828468365663197670895598748205506284990742777059668461686710705249289864487946436627272153825470987045731070509979196484770452184831143122360600266431661756082099161977020235954455985923928622733370770472540554880106294136858250211927024073832345233375028999574850983939256629535725201191116606657733173771945049515327844241978908944992508167704467879979443618598904095243449228290779914778801682359271186115438457420249960278831162665180880310449446167117247273588574252784568934709845821774173042464213005873003716603791123930887465370828251454681381009719834831625086602517379516709941753099023010202523762401083569418714622640337690585233870360314035620877429030947205836152914414474643684368329226106436874621108107203979288736066886070976355128244744883256888338066273581984134551768421578024950783003295849305681945902486000095095399779773253375198444249968064125399988823663386535591829707458195039804526372864557782587525538845118240626342111079113917793237492116469060562562642297898089364741541027790424020295971442685107800242851398709940956917187858691002589962530150109956720457219509593462369697852833688614535820985319952187484346123476091599157408597698217079658134860895905524729289131681889485464769920076191888652194784516799258725874094875878056345460844570393930991351513658873209609257798703300492660193157842010637620463447530476276328650389209679965576158306791355208495355127474255066152153451998795164105613005781816566291230094152363423045425107135402642991194232104613200191017576261786140220155311663893088359172066969892077989399964707840606566781391285536435629366321879995920760936202314761909396172643328474361494143771126953434554999994981978932383153755639812076992549823001162283935286330152786656181147504854863023956682811609605571258140168679125122437190703878394830844616444421956805333476261744170614318908271459976316111056443394010840833545138416242004780452889076228181884886982707537343298941863554112004552133309647442777567622322049347336295684828384318741039751700662339912072331007140263415864268949490421237922740291039873422112944025747013666907325191251770271849722739878016694514855126921851862409309407570780809269642748179330269580460902829185043796521357494655914206803916727653964152642126212041639457126993397590694714524492764586819880657300200927383024281923958007056462130557747424381097515293779208267155396615970663477676672524411983516244429142437346470104807743965836262720703932110260395218398646348444816971821316949951793535206350853916809886437696934258431939682033264652581488476054126359468877402259038117408983219495722706312018177598869371209475716653616431050958433398043186558645082566560201155505019647855818452160911844085573521662146248574180314588780616824928672756571322324094916175985317272229158905237171595079800007422953929754873023466923822910211648368411513297377154675317732170936851462050795101764970308632437079969640141193190301179727230034049225569541092757789447459877496373368148067010471681751603692220315508952961509753326394166937235365246413837843927236641857157458345378568353371399385293369462197012207061258788001298734176287371496889583571711175368461330933432575538306476727414620708513309442140694222082680478321800608181659755541584003870787883734635123197211311551765289578307171079069717988909670580730086242954219881546370393679251856773444839004462254991161430628006491206480085763593865355592945298700402881810164857370623304619445343351684110088803690386172029399519425999949858187877517241229772711176450334637656045579714762258206057142812607463769933086186588829232771736114197749600544708187038343429996569849315033742536909853745480492429417671710697636178886972417133083564913948575084128043335062742355017571663507403449652271127209006384307049694454957041939792954508424453765347889683659700210318228322237840594609225956398753862250174735102654864081177071996685920566842974286072679928237137314363035997426406011225144634321160283040614253663240959154350135997820991319272972993929286406956763961787783705718514282498808689687957918178109304069740007943192799101770930363922874244776041641356293988781431949927230399723799455834192265623629957406005504357313859287723192728158170667497063793799552789573259827225504201964286902737195057660237051617394993146731464011323481397775478044225172773039040391781111201704075938974568171184534372944260522927034124898140301137849731152899193858124112789121219541090041100220250620461097603140988093351218826830574854969370768405053848523588272637321921264334439034766340132482134204500422621312338064790227473110414896766340547203615387180969769804985976794936926643491101073127765033197240892754877767006346773308028917104065261986546957141920449480347517190736403088962000141013113080567802101235677806211604490620950776753704911269138431667258158923789156956018012382986252722911873901785666455087310029679584109560704375493119192755372147245297793070187017125124578437008969646666143082266119697640172975412638876853229354971017359484491469632739384151174706655178753867807695219263862527809878301376743468294542710173106953345736322231195918665475948817511530638383448396178608965970045700087151205953395046390457211432592610154437858085589714969060402398933391173676269979757193818272362441021915914837203246930801708198480434654024675795364807194944515530053097267465625678046073787970356407698395348214377953488123791139778676102002863021007174943223218894959371241263651482733854612875002230477514621151900073457365413505620778684330165256326155220564205962492462154175321953419885261282132467641884047254870236127393618166505227203653479147371930378513282251404471715984958517408145577344546400102344001330225196632539312551140724813059034779681471135439475337215593090527856092690717287636912524667251775696229102438719109249423535938461671894587495674153460916757881673762550968605199702607477972790771670808185125677379451171748035620280631523237167453568089854017355714532034574462237293075673712709158803631828853985862599586872148099700455289456309583475869713270663372396515669075180894249742546394234287781000994652207864291028087435317717870507563031205241850458272263828499686595997117027541246555759016173444246837593320913091160223635711469251044723512056356388235149214983195053359695468301251589133934457000615864779475208070362226850932747931561663030878119922071606375285652444363220086066356219519760187630931174668889164682888052271838418360555760346476749963099240958483755796365216927576891174006526758301398247903895832398840068388605479282719191759974087956566653190673822068082275424494633907663276641645108176347670313357234074774643596648217750426675376448247663288917279275541117888880178734034282030355214652472989926558878768478369420269566070963992877691475605851551471230825086021045727218890146021962797879369626347564414495021906601144564159756485138954107285713373718324637151552898984258662921379106388607646114345408396933575489021549029472193412575449530758565574956648394048056739755741606707278129595644969509039468695696519671903295945909791688194583894144799583624964800130125903923529848631416867777925568666518389631177635704928054342996381488411064753889374234788917601857225461765337490589092111754297802695217226128046903135398193383832025264117602802871026514934329284901929982763217632916118661600394457920365049966948694701745882015740540794818867189237994284865031078018531490114114637604532100344609797120830233387776684756589943527158079899293870359349212959505349236761369178575207921009771698109280878076855713421544953092211623276905897102186969776144645106919708168290283340460093254339676423088366954651966250201313877954213618536901004438755947544201367423622432644380256137488107366107359220392066597470651386648362933781943942028353199975606774488478863575985086189892152588680944512330110980190232312276396238732389735506340842609770727736511023115459866448962541523757747444413141580599651638025846567834636016385635310214019257823773700043961368003308992025730889031694221793523835848379513072336847225186550713280797056331843742555464237004974113606033576290135489284124101622418577439233954948988369090000901795813257176309107213048043373147463014819035473007661202943748069154785249909869029317275382846624976470054542038678198449920561241424097146860715781608809880318518961266811064825993489784431565959269735155121958602912837929377980686179226717127098159387595480922244336079988179632268316107577227202973564454145204795646440767959688740550389676931418459504795756030915096073162467032322331216381399309214934237941175407491030761027345092917442734645012518953653981475428551092905864478823955209264979037326917299257936578856837131576969213792998164776896784977624318134304758450752350115067302505228910149876644315699025944465624008904702115354900412692162820120606030848168005640518321629810688988041466681094818719044074660575143410395462714170994808580807921892314021443573094177323723159736776050024656713159945829308551105772146185386187611162820413413052196229960456415299873251407399695484662824203656756320461609284928567271730624429567789796080661483375171535081786938601176490521806380120480114588784013840208610488686090775600558091352485028699911612643585755237173920825227847051931877722558521742089838804975462862552576885129457498931794284109354815239964644650390910183445107542818714520728730812049822671478243070998587537000140524111706801395144918864641190473217321683372730855995241083380905391524841826593162144221534798708617380725100207538913544502807551499708476819136837739868307902341482638028760113265856493501816762287113931965276027774088326570596498157902720116833687958927288352404149265782925116610676871480398424078217350564886394868919624297854499597441009266517609715809833413856586616506394638895800199641259717650705523528903695306089133676262593587725628866038654873807722146061373252289206297398021159647030901215051679215516756980612645543143994743143438703459580707815039404348424603377108518988885874809107614865312187043549860631004274388010947263144372025184347029224528102700168795374849019095724769123860724610189908384357411155141747517050447600409425204445719085203594664910313128255905868024164372054449356844654063937616676640660832267459050203358461051580355870678325348556204946122941496329466593929783998640665245258653934338702121132607811264025794135132797344730091495282187166580354202357489096911203849565120596639843096157508869281781291187088137626265131240087562937473194902641791164841947137291060736063232162093950253963265545536683642701526858712401764660299510243047633756180765564554840737160653536542739678720856173127030907471905666868582567435703122905694693691126935872343369108938841345892261621428637484715505409944259088620313537897018312455969245442681025751657828358301783293511152086583498588689181569887785259383569251727623789192386661372025076563430179657350352557417515799376921064383985852690486122954799795799490747816028357938751907558412964538208090809936312520111754966847790361626681931345721309444038997637729076716819216011482519205129107183517024194722711307714906904570650524898779649118992111248531212966571390849567258615676785836298517519770766338590911540961947308782588784991306094608913876805600770801776145629968493960385294892233848651396823027982111089610359363039891130336471946358166859690398381633115765385379818566895594718181655320421905481845811847959006001278700210660833424519348163845817718764491509706097176219659694263461433890263328372631752219122059162144897491762013557282702140724241497119789509840960576476539807591375503832499870979454768450143267990860145300900999532200962043936190739611004964891398960253556291998721105740389356461664564229791621512313733862476130286662009955851854090960137503368402197409286084067379978430394304926623719163812405135991302442949350737047204724284630750487441005932621155534671092754101357632385856515039887848498799046363610834972216158937213377319349726453012726879826851726578160865981480978259464336713015668976833711681775234834096405934489660635448531914604654908290619427133791338104198483677224842179320366733587796084441880907332250902078632159314172820866118852540592912262535935161881793181044562233750453053798622293580990737521374645064956909224128170485458560895338721993126459766935864902734904382536323494454463745146238243273023790986902912998355673078099990496124654431568085831214252927144300883875584868217978768340881652712491347696945127994548969816496232189658371178371955533935757228739493969142515317073904772394211011616204090865437879583761483794382580773176366003248274185872833405821245821270637542327002164854710630943292729886977237099259098902294016360047494204764647801924173348623351239468183700793221927276029492648586799011352784198050174600873093170681615535449080434735339603706732356679641394382454952165138305910957013433268060126536690445150257967539298539640870262611821062488485077121375720037760161132876815723635282786684916196412429059108923071248374577905623165204557470173982558859365725469791045951356880122577109274133570185304613891514064947792246606910298231579881262008996630818670775588503039788439981106807737752362344742988745290340685176351192307064540405180309871699234897432586251055477623901499150084674519462563590557588611260890586263136725826829698544423427166929108664074727807491995479098962851972016667982953838745870497260937031653108726678628597301062496094591916934962459858832719380781451008940529463304660649356293899577404839512443214482117186953876172684336960448337157021396161865769966567241304751400581772870461274132249734947403281400301914280295355039140293694033672606817838696778342834278952772110606350197959715908039325164023746926778959887058709419890915274160468205844275421206199368696883932857860931387552845215216842806019023242894262131830014114549110804834426674993034699299342623477626535936713972214828407977616541876509756055192117032597028637442955145288548787325821821228780315402776303862391613536029085709384552336778562545004872679719001895513526509176938731768695245604754336695674445766514343164045484133230004733607991351964405549345134284692881790158638845959990776708732874984217754500994107931882308228187578500384187153088447641025875802688557230256574581152859105000120903955490858019046865047474185205802620859196899746112936426179702674125618855957605408134561906319146955396975959648287498689724090043926398147870561570990697729942496720731841754395331384573706180632042756317108805969221661792996927364166599464460375509084249960053886010307375228062470666432325258750043073165473203410725951512905191428574742267715491552087476286715264697626663325268361229902421141432424921603225449451264546822898768739897486074549964833647357934906486591507365802728942624652089735580482948038042947892458307412120002160509554473458719639991907262297638001418960854441106215257729147707322357006931267492901332837537671499318283856950446735117527104153344825896179572939937608150794746845068311375541382287971660513417188025999375274524758548304635225324633151921301097544467089443846811021938466389332452249308396965725360922098179706022622570476743448996823319813774145100481958260888632657729468104461062695964913771101987357328058520102112440369287293846364312052438171177271064057510703542076968998006502148302614512477094629147283347816966871074480651681566211539265646746991319068134326196309586897461777594209177565661791608399020310802291848633087186898774717432354931805625058323925919429786649410577674820882975890634103872025726136248288645355218647642062303753350502012907636053820498951498528187265341897446984592319971273334631251290800985740229562019739275082010645805099593400757294350632824748175027256922624683798693383551416832267430797318231190120088445196398329127225985563299922658297528348250406292603313913256455325829623830818327037156564985598803580457418349266725840230046017062403979162189267121851515763580263147016370751457605360149318072707425641619900113477712570080162038157466139247642722978124498241332371497116333353463028321584861508052424555447509288470444160763020364470772365942540173083539336358488234420861909857302113171326727273816275139198753941070239529988597487631255822888105141195680802520177131353637137010921486119689421176770277409313221683892666555700893375587131393481837675831580844884774110804360590402199300976009317754344370373856898630105300789535143168928625648132695736583244891453176297318271099474048792356279403912514088411826654579162387710585684853143593044692282237391416314141960996089616189617665866903925634489810492781543291958646666499904874320773864449521683822842515085795470853115093877204270998679671847436302124341936900234152860094034238832683608324382289450748509948478897296417106681108188731669947337048807845931063745698988266464628228009339969540151088751277199593419372584214139277366367913338725673800265950477511262626510662217717498086925574723587733239130991760244449584958832354948144852820485931759566063312516748576975085457160515198155599133073933639017540979513381529531662508820371755590179039748074244378718905683454702107255193889408235967763002014299126588836202078927241176100342630650686477757952434069908212935748354357063917615044871567831749648028708277216208761872401891874404860613357219124594502660592158030968792403112753918122767802584828539653710516875412016991656129634235027092570758145144763876769761784423808154353244774505748122776202705361100380917593099420380843934148195521470970720004277178397215943054608765483199745794863609771235717090623225714014890737759713037348944119552336202378016138009911276425679078335266628598456064149121002424672025395233483790295628391300495113221008315245442735847430070182374609096840266486729489613288689950391079166690580364952594240125376065129991405773873811723184311285921427166040790701536607901388780632874306655082453306733081343475094136172921504674788370207551635140407927949090580489314433200159209760967892389330551215531913229829628131408911247442621438318433787494309811975426027877495599852719051654346720774265397147436750527734410700933780888738217391278863053833667265539379227721787514074098476677611800707289749873877795234138419547917068516048079373768882386429066683082061294123956207679980725531471385287546366534643182732237903915068966992000842976069798711222206800332173128585359243845312702047260905044461400123768615953872493608368091685183153494255299872055523661151995053066044102550131926537445126965809067418613869580802187279260393033395944926255941660512546207593849747842864348000839152179737681811156287976143891315381544337555840826269115888530677795354446003178271726947531992871335007307892949714792114383390525243591321866792426584731207850023814210768046178932365788178059145386046028386037015393419314972372487178434567723816632455982183521336560198034062356423267114520656290575008258228778395815726709799085561211888783651129136582122669316506912168419748738436593795354378871990658359058418666547467255708286273343855794354779238635092303476674612434049930928542074874487192322445450072572609645574022801067083655476905812126296055628723776467912231133217599761091586401862078663367690589571848680578224232099377018690551289182738408955601929424962210284991954788252276575191750224618016125991418247769985821806378115623091054941611469747579392534301579797779120607980064655169534202747480123723422917896659579093845870859588294292426367366018382710016073989462111780221488512348598621366350509745514405201922453125596813155263201073357910241891719010579893526943808009991645916290645326945859973464421234946208386245278469804774795519798589083491997657300011946616674354211205316056940105335373977225296427895732104988181238049897062403564126654435034901515028587198992733107407082724250620832904507252237700550876595297158312471034801903520399007928522526235167242091858046412949912684991836297641805947617601474745405604895686470537861253451814838467081924382360573754207077639530963709920952396372299911427778724129483548680620813480233633895867533095837593782956097344822358691357929329340957330871079744788339951976518939047077528989251350411430695720760390995193293948013723431884088608606056807573514895915957028319148809307406148925479691452598956216624097561290376950401107845411296204083234992380787609298698753517245847960321029518268833339530807539424897963382956530102143874194165073579830323979347114384776041248206376103930425786916838035829522422477690665915260038316745088120837954481639908443404395365887850803374956582956473874549592488361571087190715434522471174207712786330026492561392507177257776938813706988489665494347196342326973195941224514172122600555342082551238920490567707607509244740932876929323376972099886650241300033339688854758020375649949424689418232842189262309928218231651306136469989046068452372031718851880966862638581497539909672735821108630563178324911805625735338335716516343106364676236390881169633038157050525886068937855493940143380577232845329545252363766275658707026729374156557436603076818056291691880761369991411702392543021382081716969569406922995949715163367362102903532874462437586104905083894341099445633617135368483062521706280705485351920873321843801954461609138013569352012368248912757561296208221842980470426239287458382287206283977449380674802031848748787325323708917461519954083267379273638212425194445184622318712359738643260875954471678375579901146655314834903602455487951609443462547157910629135600376259221021881825714247587267230582545988732739096826001639528795319937467574097148470607800111094183621655978298567831124103731418510165841437758131474500976178298038577350711316935202998332674060079783581381283206167677791850642255966730235760605282616413199083639385566170505379296302322764644520093174176904009908042949658183100842033327274271884660072746957922789439760018968842360368551057719623225639419726243572371795579299225606150085094561050586714711862270442349300082552273461679645610358613538546966530103584189970082542454161907134995981570513735611885258195300828238020780989156771176277204172864994701558354320343532045875968020778819309045979607888916298703193986553344976627016003057728499538984820041403275380754109589878395719130041094898511653319026293181194574820218989881644749154629827931971268496082447982249859087792725394567444922032622541719407060899696118254905907303246828394941226113155077199757207330513062707253501709076192178001853734142709550142379728899312844388105580101586055584161380528257132661928665251511009454560463525256603977391158590482046881193535630505627626064831988231215306289160184382243256474923315507442107244110697636068881837198304009994064857195217959274169094774488849565771734439129845092818443411958851642747704378386193446552291561985133420027115320232711281853918095410961804280514257753146986401916694440901215177022514664059852828030389614690209430741611036825528714497696545763149025498030493831534155130100863018262256158870885066886935756771479921508951219640425924456332451458266794725030455453773516082994819585822244222195213970175682326940882768993862734794303960069378123115981215375757635536265447744877073204627658396626944065048540611680124054851712196143929319734129720401999446649843166679102667464666472906593431545481145482918961320894953859050882384101223840382590915675864930331828463194991970772279168823252122498365501683891182115251861653666667216382030874779441143687210857158149412555737965271590965794365245435522588649814597133803077922454127661589680113268258493314725466173086618223825607090700406513197951731314409595698397537225948601506186437449894266546584722559236041896069108894959714824795073295983366885732302137421131150884358856001536251686509002622174949060078383025076389576486115774882511831062355268921864880183876158687153411387887063184600977533082276498791298869387678593658688229043272079978011294722520200860011013234659312370596039773033337404503775137953206316948258225332192137561386479767248328258207571752730031711055798060757280685811135168534308655612860435083434881225892470404174021208562047643892375892458399272594159164658222951405088363201936722173125137019993556956789899872084041962200577355913529666906310642437150484762592328422634473305492909068622122489326710503428032210825140976749118469140120610857201100213208010025832463516099502395616523159736217934494829019358515943078776269025627434001395259557785765089455177827416399484655688866741233592090625125699199647490637400789561903776140041244616137772879719258738294771242706284621264171404381963145240314762964941606589531020460344497699014983376080510226045153175889467075612567478343009549524084094634740171141688378908591419123290734596038321636872330727200468102751858936565592890849890040577349213147805367597613683959457240319978750995057911631938254051181470083844566190213329295176336542360254563712437549093316661313935270911894246603185536504278864636624428537381486442832331666418082241237669357938586151741030552019715611664005676347511826665025082854092918039690454623281608720268730003032475076827004776419144787875804486287881655497667107941995858796812636195867249044248123413734934601587007541239249202549420889734311506478915810505411077460634948486217917897626382508346897652207860930750185941459468528086147442690042878052135644921251628932593612806507934823352521206486637129768463253977215217633405062422712280566093297569122835693950501442934281571568861624739528239309359747245214301549317717405427294719187357883295030267952773428331514946578955229888486437886138484069804843853407756911281710236949342343824652292033458247055310971620300856392554973314067566840592833277607724985792014133063460648967061482528456263050488936411032874591735536353339663871976442961106947615615344451339218150999464247031907141434279934802801387957379001238589008622175570172350514423536667286730386040211418952590849148200477571663152818812379794950208104367483019445898544336378743963754776367925521220962429004506661498428433201985429067563846376181223254045654188043774245097442183585533092588251998998213518510984319449249457288355865503734039924905585231178285572588299880642614607555139201838806036398097606692556652187306912743724404383566588291001475934553721302651832445282193670068869459160859166964370588010461474188011889957135517111300551132549278881064259082416757448053192965428156546553878283599494089365007179218484235173314498113085438373391664497679177177874648292335788439062431123706140001392838174519047435684592966744840058632430190664133633855768681108677983616467902449494229955910241974965702356055396215599676114360935348959365618000260742501255810562487153137980784630914591671794041628069668180675378833296324377003911136066240041560647185846225043174381249879631175852730757677236941389674380844036401670088032807952601349080770923032217355309360095386021951860196765651451602074732901934317200621124942079931185489261976937375525013791366494976706275010371686382348411089467036080366028321457221520714472501125171765825230381176641891513531067540440706497650952521688887117308060824598327010163740071023989440990323697275004090932917679985453608543046669522413414171890364673351077180675463662149164072098701324144118933338822805375506120746934728630985279388027005803031961251660452482373396444293643895771017903020203838219364518269680841631206658950568284852160275772630301824667705329069668208623003150738829698873628057025047015728138137322133573696043965182586183000841086245577990647994962024122662187591341901953913147188776891764003873442240607475543065206121105605493246936043534916198573278263580910231781849110438187718583137544659790494737419696963693207777502705589131758993452915952244610102927169335723032032756712570857795000834242733916362072140528679250198776239038342039936674434728250843204969645781218433060797322461101799052840608758862345121567592989539184475909074135948810441514924593685010439712139705241194278293893932202937703102585611875025072821046714717314393383398142801244536660853315747492965079974076587076496795675850559066706205987883381429040082012859059314244349219281311883888551112538754335490356445293621568807713256391262438940722851620188709717566752623649960848611826465947537334003752454727403560936777184758424135863146751039745051150086502944442653173153621630136394999942050126978509039523859446086346150360700550123316650010771451785785464159712806335387547888935470368745433803734487402689819688429815740155253242764268242381863392872209990577916620521253506698599802885438962507682592150244457215929180586783811854353105591706241540840312694223199343330225429532803650104935669536841407793132028158462391061523031852475873122406859298623778359655131224286488329966222290385761711546709202397870727914068711982539393839054524375121761049431594782591413865039528796405311893044610190275974540712879439538702981653242170130369473727965820635150489844825197737300132075262416321109932729664175788662542315272702829037991675599568305900251157745675965625224405870459683936808395456708990969960155707618868173047198531608773808437505120724811588844445904095167669196105263906676784219432538749968332666817009325617261974961013872025975499085228248104984095199286509039360183251237598811807761786303734446575001180071151387161014098638418754224784702669218828159707751253126444633594198198132063298196116637668490421266104419393079196202033273457582114551782695636713425978981281833506044726905283922960755964728727360270473049816310112207553768290563114324458918073762601298150623749099291203972576635144174962927883933553398358798768237597763378408540679546410991375758356725614135127818295553736716331257403343447455380136838076176814482745952381129946688260238119110583810390930920729867920817695379648406002968081757112984469905598048929287237421298398372810064143722697566115429216574035418688900002724260999255988345064584390508917257698758153448748966980068482291260719895135600999145935156702993193812822326282931057149468203334371448838268410279050052051365191425088326933539768794585540709011817287002569607893801904720203585059955686300141441474544860083756044215499592213982541396457306099871822459027738303693705300556316371868632050095178077451291886037969901126116726555416493227465883360004162061864529018324110471671829599173164401925158517070512586129467995596463173383378871432036128744684715772523265383676859739082674101125242305462739609834271429914160981446487269247205993980657835217523654313799149498826294744898120389093030385565239845784032280107297541054128239903968360251752954911323799398391375552571317217767470619308071425954745834781305053509579518705936984098789350622218713079279622754772493991589556464701442534706129395278121748158757857662266222521090946305364306898687756464526069984925546732426960542405372264635805977901064897165972848844275921686172840428079900294817702793721021111723401385933744416263735638319410000038709105895119723793222580000132687664356960455945746168750025674127507710113454193921401740307488171456518295870483125147043728452272375182241701433874601919537368036589161377760320309769014280692260423867674839671449352067102982619909823352502565909689103988796139169959064297085570364700522732529985229004014038671959791622253825528039519763358503758527102309268500271528875867032482090542128901475818935495382595857336226440391450630734905912992109480037855539573517520844068085037087223246145934838402932926915280743087534092952456976371450726557408180418919235566580163990244035500925319870628045167251390773955608907595139954329386200020372688481692604943271803959727464798432629951732609176551748726310943797246269354445899267994058012859225317640440677191552563215247484310083582754686165724790645965731466242062667114551012367704513840036561031783630483854614810048594834537640521006859378567325135169449187561833072792694912229454800904696458779828096652426123557041039884499098866832127494461637707760175271540861266823356975242432050541159668957654629384006319926211791716711869406368686128618163660728393797019742955136634536225411573376993205311419700902068835215497689172878282065650982679877673169984357215113570807214839890833909497633430997836103031237096756420848946170132891849964427105774879134239794487200008852737622110846835339875968438103688975853895881523680475002347768410381090524375730443842613185685776388837693874709091101399031467260563348895596488843075413358886969066524286016075762269792273319800794631563505049132963563753021638072090592156863442686919935813059372586988470833247634156117820973713587281972321666164624417286409208062812997218837354386090928755681861222862560953990647358892537859610390518527644082414100180685383924368269127450421589845315483121904990495535272120237274524124747968196383034399071809733111493513179044449240182317801553632495696297626767370389569274012523935267395500625972805401660971697412631653637341137183006792040520715738262465735547796071725744885312647072566813523387904787374941966095368883651768740593395456072079501124256932150949596006100948703480925553205088260632166059689617612367748628133270006440650192959185855960812800038600237357935912272002569361422132777218660052794110131785279420594113854444239442742947758554185373136223292009345103800514183900380370571504871418841638785964703779193933840161473230323057985102623180101361504425802221212697459521464236515573806712576141253343859704966618845271777222620115251456631110008261567001468780001093750191246655433235531940029705123943455519927205547465282000422407325114294672384526657679537255692115348471408166046424407985992249167580160627219610847572397707289063959990631067694500347281882568184134438693677922178896556241770078543673445282368428272871873105895960472511356268820613039830357987965582246986836867756069319811407183288862271196940829386679132458096875690135199681068474514819017530023531893044609487554096698002110275228343571433379184387072764359804194028175715537011765689957680785989948080970076819999620056904705779802669104830590468781363340817750220521836771819053677875288731406866633067012782939602587045751561543252945652463926961820191949237388986248589817258574174633827633301096772893029287590157614497835312733592507482373675199246920591581047348350097138607306913191840119026942181122693737450354838223718613060441797801067061213125772644429046157567816384474452423416423138966597738832803314989074322522043110878538865422827778076437971652194533383378392205706328772755485856554213382368325973255580529134702577851126718623638896269829866848386486932107472471515301762557216181153318014929960032747661242741539527595572717418334420782829903317918356132107934661449173243075755947619233973039269135129154108747241035399033900190994553406850831366005131081655402520494202280089763567294891486801808918521468388410351417832763482795022331589850041091263957197256143220549709274542515499073711152236229438111484966242785551904955583162852909821183887208485900760592981093283782707858465205640728359984166517502730340317507058001847410064234483469685315363211076869044578416601853344297732802376908084776958976511736987223559662895094446725404327074378577922705719630896971079985456320248893431896221876258693720210065428983494413907043432784243961625876888358383624708538595564093584015282474827923584678963371833716270984836110396068006300316693433688173270792568995601803910264605355562127795967586429649435214645907172163367602909358269811288554984312031055344339645906897036873380287465941487201175939041643981530401561563644319867911150791627462662535599178376038390428229247895621207170770578096789453694984545618921627753241378678855441318299005669105800966203220892552598846583674745833810345450010412254723603143612228342616296575323040154333048369227606209106890922665921572375701697789885913419916983121554578477446763813069057777759285305701285806507408163061744297523853363401585388573019694345586453953022262696671045300295435493851065070518698965833639781795399367172923127494113319609951105889131111232949037517276980989767827341959062509330581935365279038804948089862713703714084615466875499144999405370529793464139886319315715157427322589214084919542247466291636909942342980963241678147801858685731906881816007591582480892714929844668712022089203514312756114006200649662547768833002427414702299709700234202444245257553163385970231971920989181781026113478972634813756949583323008787175765096690602312576037427231017142591089571850903686655587168009963187110174369503274257719540212274510907921599296879363621845572949550201922923226787292937190461985844961856887488428021602760597264142734902078999073562294118228751120220059220362178936049035963503237194605945640250609807413709955860704952756511717362517455120249628725573479310349894198740018056255064180193226469094678554632230326149864474898288175780306661487395507523377784392160318733111022450967557586391937671921010114170823050234372109092144743468322845305504609399375082841319505259139754698561332465575390475077304507132047504812363504505618994469944403452044386644260268639018617830622718703040464497137392239855226779766621642312741764294275150060612887171018851922148556408834205509719134438254154500736903324346039317053535530848954022507097035599059444045807466894983381642253193988270259693244608816259868871106111359502718890058977407279690951454036700232756801626423421926663422372578850715228095529180612316392045616208688716258477452493694084795542203975752661040931076494607897014799984159012468332214749569492687225790978445220496410964091362849881115765113279070998345937308165867269429989043741048864606863642286125977957095206620854838222603771591750313172234561007911092717188096786478374344552665880699051883854316320397863315448328884306970719996841333005833247378152080133090592345880266603459740773355410700907170681612952317421063186292017689846727998092246050293496742904834890270024165780026642161375771860325090554052495091471452401984903905908061845729580803441493856936465764490809534570205736551689678601617018028285403050428265593278911038350291511999150517298523909707686840319365156146543592955221615307071920594899615775653593340891120819759873713446970472051266996318384112600078644516902411923561082890077874125254753787930633716194210667992552308636232826843038570902547600138446492691576275799818231592692052854839401102635169532910125665643545350351999924017883418746050315768011996046420082791719076516376652054121375703929370825036758771380147988517633227046459653279271190542305782818727171071344663703868115968657252227492027742193337819707981389730840239286736085946323831523856288251879172325238239062656691982225218456047834405599613302228791533498173033387745374274211196092656638909066051037674254353580070930882294240373088022558746797993518120003368782869206154857162447038213032344284822179655544208393805755520466075387563911312631409524440407541125764059480228161983063057723479551165602572883236453345985474549784340467552425276938461129842012132683178572628954597649930682931211364147837032309878094853632387610132147881289742082190567850433854166060419054282406892143498605013751447056094122102857636883914569413035329841062749469516882717400380501946242803378141679166316041058100519788510350230089148427250158365297711408146979020307195890617788257760849905270329645996451527393029378577116878211119648120434965857897283896472123382951055408140935071469825949234217640251429869094366472835830700555932407389378239653620882968177829590506294637858205978548917935888257293652048228458656879128313246397534475503480140554157067632403505470183288485933891060532199190244889166593426023972378548583423557186031687672682441090047524132363734810147537743135344802731418719054828183905124454601492208119194129753397203915360926166276046558726139349592497873067684448452167645483147404670468549887417553900883602018103259690155169375339411794984224043203362945955637461500372754764450477005722845409466273464672992008508777316704145201489544786529430859212921796769366839995509686799937753032945705300712647997709787978780097217300901909726722047208524112418937469179002720706635369180798262189923051826947245127567865372789829056934833683008071957591278038439325081299905512727984947964271466281366970563937013484125273125964819304083619388990074771104398527262099070489689187426971868170030699495577095150442015044248412899487421809590317397234392002705685667264372067270495954701870523453701709283172711954304231654424918925467759073559561735266524507507331593348827857909716789139249133643641787311787623582804470206809336110344904723611106146220697518101673319184242145937666115130842665488796757494696424446617959786227124635055063810921756864938959240148440376061963328547930436533672211613207823890403140066158522803057431420108623012916394633267904571002700431896111717206780020475681495060876162798075065834921356385039131877517470307889196514827815681229676264288906005987232043584136589855369863955059262416033985325377363731747384460524277788382128739020056286267198777467284258617318242901469723888517606523264748494524917224493153226919728865259495082111171452041129873953124442309445522620838229152798601747546992454365793697315423019995741437643044473426373780829448782338009415818997892993636822260703422387755008120322188463078313403016933993295836848519019966391129259667203615171351090475388303546360746036951692621316003940991629542230278782469700020910550203291984519620575616462025415989318092745427004972702687521757077273700885059298838889380448506380983904921518094283924717625929884535613886238018089918119194831027707219612316758541246882384626573735048915324126709375591758070007280020993117201385539215000391956304977214222484390670238738029437333106942862472734811152834610366208522233391559248594149947758528707635067918032892139182857184511862526093272863744783874907966902289909166755263763638037511388601199325459109513349874670042263944933984478290265505032355367366237686283280720280817022789979682105491340488933861015621136198909366439825141836854231089189812849278529355341476365721028039602917080733790606175873597513807817957332180460296391741606811127734360815043379525946693222904985925468667656543712360157710363797984031311490342598316192000829996078378524399358725153694594611368372212958281073524621565447119464516975195060042774550479660683117632184603846093503465670209348084246404269026770681885479619349399635340441401499825270508228286292688295789271713155701203475846501536857958864047658527122838706079744377454517208703869147250524352458464655689876400610789393766954942938965057479334273678028683291669121723828401781793986882333561266914458818891001885712443510665547756514113017139686644855726734997091393847198199244534500243340461291012875841659631136863837833882443901963006265233800511964354368643845649610535306169890426159370183764724554791260540431802135005896426340380864093173123107237481245258982651095504187801433143878210567742531101606996152402756512421878361497774460226013574906093294984199883339099543302743146765266841249134440008655111272135871624381533762716571227469086737288920575855324634407403884272402534007927973436543428688824081069802294813465784470531582923534383540235983294579298881573813575579674183544023438511713376596938063161201734411393940904512680955239474001083469295092348287120442092408743908579785608875348825161398350961526420680067541316110229732273232467022681555145247916597785219078828098129714652751194087698638052146003370165692178581113977645542759211072831802489635069432145890037675114108248520068687936589854383324769790488400586381984047618595813659091438334974560435605427710918468093083640787888248117188385379062246817192381877869323524302280749253383478256337237599572136084798641593388009432824844592302859786770331890546230500342257854718564055405517285870690127124487393064710622684582690122925768653002690132400908512241989744799187458695617007596907766327515041624037673093033401186621374683298767446534609175977036337447370862366312072318447824359978831408351256992629367034269191524798658055460077189803543256702492824063487237415342451785278556850375980902962380270968263404768943674211309591504982012720195860638868917547309194583326768468918856823317700907245181444994402243401686567573664493604689616408266946724758613952606845955102021664794623013794815554387873761232983519505441108755353953054271896183114200015847833164004418081060622928584600166913820808375079906560858378900710361904223982544124145753404582612018993759185697562157340619189262027859884941628201380508138154045392009848480622029866684064358419788292199727417100955725535440173740894262639361755929064866604404647491204849667546691810327363435468864548928310549632685311607920919665959230068558818809010480846469095847944555959667065305646726468868188066830769474637719538944289482707277865706825398386999020074547878393718564335524237453648330434953829545814186785763341169502338954496702445501305160609693879460974177036511923512330917780735989321895718145922217990198459257269518261425200529919346699782307227365071303568449814826298834189783388313330319016837357571165848760971237847796381212088987960716115167411226497875525436346576358692421192952868279865989553300336175487060036685988591115421233102798520635828537078235771508131256039923718713550313783812088760426920027180017141064598639387981652574901149511446754139350000067445662841143515929763258467375031383176688818285503545085779258673960602652856823889735391302220526680016228709078021362981626568704257623237944593893468408240718908168979018728331904738298821487773081414384768691822928828677550834938495423587753053231647718753327695407485766683451613451505116290020988372705949762471875003970628237913886852553928693759357987471024324017980321457497791332226243891297002470995500643407488680352695293635277308078522179464006638228326709963534981185909799087535167668561891508177234705819489878810060547247022538870101642372256364833488396544968981037517384711941008174735707974273724191870210960970027969539424534218180660373737746667193466746099162786667146577018656270954806102903040028561682554957176777944175542204751170106475309107816999117378127750336690481768056949634301999960602489758824361299073692462503009528193465917575259010054155982994505727767309091255990207893658651528543977850537732390522614910463159645707917760408911322678107937386539085242341093026105636591398874369474655242601391973804107437355724057576058436241485421848225742096945510737956473602174903469775814184505784159866354201418161209921957386944184704410041002084853995861834908220914628640650829816354544228478880926458301736847060968404031385742629848864431944978367909026637323797489443132409163844432691497257625975486161011997372203855198269893533918954742242399518504978587939710424037099447532061080324369978617614876399227145932117619680959506292413018152268615171382225973150948578072021301807490510353101933821196244284326330328903322349450264407111905425902279944531165158896167989246880822649988320610935140629632070313156187572891671454801641946139807808070332486265315405842675106314351374089594084995016761764088012624889130303030764130426573482591394161224841319796447297421050656893625125691236284943970212312632389423629805818478188259444388707468444904589645620111233642717088068352608363483909686892829502150579327191662748435891406525777981460056598132673935447310365753374412597853057642970841024588369336663131716704019444603390575472404751701191487797831554408806827227639634494836113219959656310590350019380989356630275464667559070033814479088474576763790836902845724900947571862701891188870776611197763977130874431349117803315196001735100991930594808175314462415672831401167572245104462102908608416143087982464660665631442855310664108407767086951705510791659294986565916236116315785986309146101782238894287792988943773523923628990210802198118589493427249282002429710238539191622576056627421113364885451255721988084151767853865094352976535134968685999576233000150297044716206197593663835137267273627136303008748188992493932556945934620204243967218288633128144228374281324114235198468743626275582534853046998180835996951482812651580626791338764185244322263079441214202820970309824181629754181171658615619874140661241871147105879605574721025680424933549418615586656918128942407665514753439868412372782744294974970114707968717743689444730146522322209014317461826563743522849004395213799511485156430233377224008454156696360413051200788487800238285472524271511247986277863571851169036773121917342324964684608112401182089017043397843690503913688011214740166881280662433719013884226685030373840538692622645834705904653420974299139767061601485204542790986266197859586823435293602714631253478612151942844089619927700282651999158351013539851035565588223177730635343549551264399722494429630863635422143513365232703345676129618361495002317367974750996924556221640381981032979363420304584462811190910320812340577195221925114440578540722213994189982192969253620842369052667142764351989340040026860388682828227588920652806041823024492698002162158602006196667054735162555952128700456851061869542963096256425834780600639720383535684555615078940960486280812035758148696381206115307361896766218847121673628330673046319763115937076504610854042641248901950028327464313914931007794559526828614856908160660429505530794249554839436154705803373214863338108128908837698408230161614853737843621494293632919117361176880652430056699366998786422476351763665946827731842149077204191073856207427019476623131210445358771044885067435268345723040272497188679065479487714394637383297493308414278759666039404971542169803062097846002984912993518148666585822888752166764059712619085194249936070094340545254122409463617647638789730182982933906036727687889761683034185134166249036109268856747112184190975750453338822313235628619183265472841335605312219457771548850221184566489533013025654112883347650440435900606533103051006089684439627917955798983767783452783967215311788362653959524228131995571243507183661302659071361095681231629909474367219117900563322760073953739772899012595464112917522164651783196368835464080506404667624015182179660858707878500431388462741303217465529851034284974677213372482525037603507239775026367251071082930374049441919110182981791255146927832621061230056956698975559529013260325976529992681163508856021996596892581247324927623748255746228169191437652581252454356299528558425246468797901685600085461258224155280825857334365862279981837978913858001100891091015532050107203523216180371554016099057552249622928568858879782532209369087184947515831966297473481045063421722141571913840360224106871345428963618409503458054940558107652064066855232139706286223948768315597093361700389081029260063198274007647500612634658895455397743121903262934856805966716584227136405522814499752709637335727399281078514604560676919144990177950632315729251666628330633949817419577562110627309268299443873970805432738917853588949965956173190858675495735359923270639762669658882844201046149777873201153479932866654395409146241570097686563469990091731067466826666739319161300539144139626055882326044460327326567405713799783608186524882556670568934804246879090344416789065433363394088317284813157362098525211311970845316518248026556530482459892475235130347605351075151910913554409114970662672241584494474917178114284084623869743696729068274984871702162342488452285041882544161717878113547821071342961557707800424645371267888634302673521966812716181194115207444167696504004829437608718181621206702290340343172813087087814964411399074436056198168923944962313311017985654494149338626043137701942917447936537288597524526322970453991295984286512548451434100163921213178603673770000652841353365245614056822213251314942437001414051464737079486511920462720787683532614733829669324903111661538626230019208173353588783577375871185062682099701011237276961232016211364486065501902797635902671157196363705108689972995118361368290855855680215577261113049720302060627997474697757698949555069619783295712351057450111752408540655762129504941996884438709415895095432120817056221357618172405878316182942304342627438993971004609906296008565615323514064144163638280351964848226833314462854203927542835723395658219327892519879539957456712834189986555281642312388657418647668296477241097662595890445442238635322951954730385813302118663019041487462569201066178430590978862737850460190522945354852227397144410723123166454457741374657342043653850006844301363611458121563174281078063402323416117533014941441741564136875376659369052187282297629697613382360437515432264588642636575375798224630031925372090485231694020852989115841853956707116089578661103517145697268336381695304066693447841567998079124764674947630932331234104011235412717339690049510842662077433466686485317731113133597324729978243577537269017337259282823415651274209153743869778551395346354820987880591448692044832693258375183323000636107189359115129561903872601598750504592881670654491324376009721894326401247636957852069129734206835586024048381047770598212579907876119089884011502432786312551772225193571957917054699767514829797562018883416580161230707269993297116042351001962428071658143754535999916415652210194975354516594991830984144388125480539372382691240323954904094333817377314381680966967378441884308427190958091659299986465399211389863392765602354387857339227222496842642193144608039617302733445449171269992981440327416977172328034504935871642866296911549080990760144655515999832715760167625931888382472723440993482961470587306826836887029564091605894397556049536492618287259943117416314760337858859521445164684377682332347507985032638899852006761055440918005063611805200504260285427621501828745612550640278608654626022091083835052843929541532254655289130530651484662472684521561446519845760832009112182437390840777723526988749905803640730206488136683464372479190745192503282537531438577099980732261346225710638841189788309878268512374145633503855990966803308815042882076133515384357274771187225029780739660833022501587777048209477267329943652361004424622659528326092725166240361378290362881629893166963612242611666509380520305977263992909730979024570260338495186723092217953199144032393186618900732088190266525244178740766019152221182989693010052253487379269782430484156851175967496885489461554318558063930399168648772266920172759429058449744997670635983053159473851003965449172278660100328169709577081301462205810504036435416104669417907762786945520063027532694282972240043248419245475984060769269817169920569575490055796457818612339454384435788859867160677543080499065274863196532851951570822895816979881960902748300813872922422956964936930337099023807635262903582316299793261225950166428544831817505584325160561081572067752708905219374143422024972606916660657949374002857977506709963624361240999357491106721926463148436304286463436694101589858282887253993134259227377278470377130811492437130037087717463772689212436939103319153755160260624774700639135505457812026682545277265979146954757176131904959288455651819517473489801572953322751501810905663240187447098674020262756867907324500756797672336941011806411870200406835481228092837973789967544009482939315691458457824500219582651281133706381360705208468180082258570610623190292869180471346837169543038054761738531027306826589158313531229502801258525214432503704300458072429776719870091617689495238981408082110246283447441274419699743993656962577638279510948917075023806036141495718671655506846377770878287449523836901666934814409190677542115132242745913990170359991233060849917966387529853400837929383129587847056420644080712446416524633257559308648531681414560677548266496916247395724027209043049782291760240017804415073825663655180994277777514378971037205516518602446526128448729310339765733681226602581375409860349567504245430738418224308420871218689602428311893829551561295367023567914291020321723931145624955905076086818586005892326514420173146421838269260796526037265552885686675062652501532992392597191063912853871487962999539545019117919037894989696970752234174047730173335735978380086287204927055664018508947058247058666091420608969281130727525517102187859188050533098399127679218242401409794411537534880429883172173027424800697928291820783745971037648390891419760829525320867981408571246128483295520202869363933391662281605858330267971776526169190826701179323547982747898196167798092183842757418702314161770287481024850282924847604748747228371301173454049338254708884556769166225562411102341159401013844301870308236806697925331563196330044424849767914256063257550676007324654150436231286638155817778098482452447275119749013812721463889284550616219137327823886435435214479661088924665765536955081200317699137778748142006497036593580852374007530788234877847469136031574264883387247944651996384650336949538969553838561822712522544476280705257532083164463749928284683912171674393505437076601295922731551405119435359289539460021813939561616628417883853022182485842712988032260342513002498831520270607121965446876151115057996679276560443733734768271021999753231613138812171980936204406820977299996153761110407392867598695977558512490425453570668778952035458316515485245090691613461551262467451885673281817310550371173522656846480765254414508885957569113986282288194374303744905505798962173050588903341051340830810933030937613909703781468098433506714865034022577255714388438010148124112783467114943592354786668056089891810975268099192059410746182179353507465006051188281446203586986496912326097892518422947759959217826201868754804916294925120952293676856450007826201200485799133212758847838686215204603595360537371599497730224252345654663300441346717091445600303466813764887170507241217760909251957355575356556692446111941532883292596752719562568558601818215499015775635535800544476927576134104255788923903225589365607435271398943495868850762158060982980637143466442567239293283941892765378492216939200036557657949850419214723523150384369573762437956608310001528429587103473841855779833871113299575524238420387787832629457383354694442308746693684789932668022482190671699411162212674607943861671621865606769648430193645116977430215962462578042197673705404962521183138425353851629182762757130553797693144403831019110700386098546489101315734680319314831214071956366013024260401242182292728618636280582823411131547174369012363079353070178255479815963781314895286358647420420381136803551856128087212087093981089937637453187595612594286754997189188784630014678743971083052707211213082051527298624030455920248396869375463162627503570108446119196399066880698971739974393735471399905144692418670202860034758824851829551574388048809227232254029298881505612509222727107296178305493378294709075844782918769258505194858910287778966237271858555250873625961514994473636712708161589838087944776778568848140583011406218524735483134953711557880680510761381333092292088411131193450681608056171166597131603312836922073887706405516690226738494883257280614926334468854696767524395911259567749803317346131498628735360624558596892197993641318106263206516987567753457708708405497244659585792129375587477037002587428212090712771760613138202647595571731947529442831686167765810769143958606396007023325859327842160234666719352127048209722510162202432269465460867115623671484905497863743778075231434624982692606207919567457426437939280580294529030554997432664691590532989862517315724353250997348124786293314492919165240342268460819542247226008513405549769868944046644276309368011732289818054848687558731834314483759836504158411328059189116196719755239111218599604535395989929942190627517549411702364536459712931280265245645990508833900668150380523087214953087362118011637396507694602454957640146158857638354868147141013025460662095892361755902554897086689061474278047013291866262623398702855106370950786179542893831910287870284473136262400631007454409594816820965952867320315498674691807303758006129788871238520400746021821700739649289715109308396233511188603110834419917005470513343853983312758060988163159209440428811416200330117506250635659441986095205318406893055054053450469932105950607013074687416341596790517384086231899240455171349600044025398697439820338908840408034463527090811018165091111069503954914674324840642853653081159734370633841400195877060792824356802350817771926420152323846130409868905497132669777127934138002024706535918068427548860616377531944488909810742998178998311248726015217578990236189727415740086601359013135262018956867179375981338032032873754977455541866588448990828126632935595475915268796506616096837003094698892946303361223163856001902108749006675632788443677408085844346026222875965634326886884867168333445366147657558492878138746103059512714915005096986465378843688619055792708290059482502788822721162071991067158052451272337128390388873302726303757205576480349590210031700894278645065668175745440857650241989028450938639437450709715735191219264157463504288532959573769290095156596391903890134188647058701429112960512339118244160355797470831247264644299974572617080415600787525665378398725744611428566304590950248301921485170057014329006174002515942382232275684934057637380456706912181649356978991881022789961602017450676714004486180335105030401767112092583365601443482484128078659645708374761910745163910844273393087723127778954709273753429104637768927705440841909355623959235868718545553339698596575595711426079161780075655373216534863213805917442452059072620633618471651957251404750828134607220501741926658542785434084418950394369983992086437806360235598253106049540633117588430877254924300214519767089856119611924379162169353855925009634470149050757375704602965618553379654092963752529543333288386424081300859588983459505240015713901924997623617074019070193741209126987085641900207905178832775926306732055042029837800965624472678468769746631179591416051228039558859800178875228386883365226703406992201637296727607216612643831590473688643212579207607839119871390516544852015665902279451759404640748479729906515703067308337524699866442813465428202019152083376829522622052386768970270313019162000168130946914475633640471006331154940035005863371967262544111942824744017419128240848932518535334534193429829022930905537721472163807787666344665409142246870726317958278626089008432743658017504951226083469152902791179497385696907977891807965692720008371038847982369245040713548575598561222107817507762637643689569975381771346984714454626802397347035200766158139626101704376526446812278337605912098116459127581763503653495379993921594111576469206972744962335748267338121520834048820434746535653913267714694183805291431266455330807404304891270666127759504241836503581453800858706780991083367445960301225161882628893499967257254116771013683012334685230358344727142329013948247287761395477237876612419652978166050884366588679666965151289005132364975942989880356765237533507581775856922150181785281425843209726229123309186773887657867062225499737375979529850724919297872730175054009876604293831238251724747531912209707745107105249324584054387142694770427870368197887741308914974853537177274247207279022787591126451035168994913353797582451228264033183491890224355559081949383054188128137349083244695658639073377667446630615338741669493206469668227733789885687914334238915185274890705596727779273124963104856878070104382134503748905900302189211019467163003821652283703101640473631875792925144195270333681726864499428826107431028864173887985277203569955930069760020170091606040520679601084314818467311341493134688861153170655561774713477653308999618016336337868849198706501152424427497681005488820493356332153629497515659462094641389146816595739027395333444704559286415369644572125503549782341953399255916636023632333923186057109449603288026887751799273732091256108442110193179614614318266766244537915018955510307334342179271240562405970569878302035075657958286978008975535836251809048481052066454164436357304629007423338957261666746543132544996938018591690320279332786312577489356732087770516794138426760660035882890512599684061036672292174089884868198302419929824906910618808198491929217432172200375127113340900288431190076036183641384658815971486268975275493823996372593099288579986080417581417967499553005136978425070876700068851254225289752909201154132362201747406575868028871472062971411953705391285381842161081723109349707670699876854020640102991072275850387660133960191999788012991962518298333571661744380317856914191780492983288620945719563791650521779343364445007322500696237555132435536013193204047653580161640223831217210145666081687382667184896829044732714206924225144195223755783742704561949232076921047533133891675295854634863373858198122344160144963970335883348338359469466710241688183807565304936179079474154017039688417398061727108423626273290767496396437617413240556511716730275264270238977550286099041387410478456590580393020050459578772197021955111784161299387143282825425590814973571919239732622558925761080156268295562292682135716946216111182436431394312146401363745553874644904942375234435023680182501473416775909714858471089239290294604997972678820981281271548728383728902624954321068437078829953715919180204814602104783194838792661890747218960545373845185461712351451194602688557011444349327354213969488508984511723662540771082040245512068456112917014012939180195226722445286395628972853877650039870441998560104208485928234638973109325890378150013910015617974720271664457358513877363972291494327407790920820198677750759328828407780055942283293635626285299981176494436004161283426260338687714169364861229243158946506054323644659277846824772908413506577421506794618194531835665663928351500223927765745641170626024108898388354475581586180641325662883318672958583519715405792640224342468643761223513298617146951807488476060798067316306223220333141832329062173776500065811891565785406719301513664662682648655344923623760097324271232430877312117678001272048663069166838326065141751906650777646855366221937175230876521425068599824587480147186151368907680615826048528846299865695833986657623184416297585202115122158118667114282713440077542273020666312746223492998633391310412368154398080487151148790331624245867415791793281736579811408510164602854313025987834190418627917273001849927976758561691934926975469190976239182642726219913442917500816287706220388770151327427115985763333956360807250641094971552877395108522931730414836455831708057903172913181509421813379821841656632872598802938242497862767309531497740970019211185294530728538596551259572700065973509153477437981184868097704103867141667232243454444566966158603899868238118269714154979345233843815167783394554331208693376616114799407818927637010397069971635816616129053097091468992740743975510655891649392950188351652560284484871395831745015946203137494944443541649290906652783720680760457573666339420530265050690810580963615491792620686242167017599102342522253906431816778273736800102294461245972394177794443411618231634491877951434404514618254993208214846752713898671103742270679919760154425984000034393670706839031641027863139105973564244308622036493101484819350389239060512698086904387240896498269638138255551453216365787896869193521304259084533339232230207811551285290616677431974180019771045711228140380557091115861158787629647975781783392143046723971778122752656060815666353369948663777248372948185409012209364767241025322628142807864689432255651577963218136577920729027383967157618420649288171380092257745695470849832798680868816752146909266583361816431965990568506800286832903106780726046092950375598672645080483417837914627496607422406016060115544493189213800475619674712272991144966711858670711293428500684942973189675359584772381238092440269316128767234941383667008537747393797966703283803518357712860664387338651393754848392473263634307607767542888063088654053699238344099428000772183428482566426525564355841318923933406848688832890599136250677224401897224633080360635993458997366254644680402374699955782845152202274616178121578086790341340521399295342443603303794646212136154598493190187317573458548186261935738693908431269686421147174435012179114766378455220908131130118577261709829031248981800188114199579145642706128051371916879310913991779587216526938287825126091674897030630852795805721247849823286076615883225552515570887209473007775065118575774507295589842635786781584174298547901143016489801532429390564977935678436991692796981517603139972093776101569765637688149621437705712291463821132237655405619302741941465458660937081500087126248718493858668650326897825654416939950233879154779439169260861902313444646450271588606115647666899479792785752496607203495969225518237787548025989740326493265385500431906838841547303451573673322534974978522783616788249955068822400860652900276398311677231759631851082050930451989455702542205233902065858973871852094967766680155667349643279814777337281617669364874496280348826691555896937409417393959358487234475600470187390375099171562486756303665579091752408788037152586830940640672586110566446145824579649987503520716438019767787775153409145834200110093988981646433199633579462403917706943475992868638136199197421333001862942217220871333028588558190337487071454705172714145654713024937461759636870566800994777240638415571450276952478288919555349103195909599256106295098908128867447195372224782942242413375397324372973005644500248549088100109399591149303884637062363091928089960918695730855443413744684473283712793940246566346606067710920647437332773184634219873462451477206658306360784169363178523856836176964073649308242323286525783165326775842382098897703297165937041537204279568807191596906868403631361197311764071791086099576570180175821625668123915143078626804509481356571185607704693351315638604748719917725946524928519374299506945776879954663526226109722951414391488157155070935715781409958666519682298692224998270883088593801204236553310386245645046622306969218088741969942702404495107071636042488879067335344443497105175231055085756867428593809660702583097190378268476286725543262745028183860968824387449578752464099335366228092555125052840384880079354449913953748283896874975033066131098471544297399917004749723235178624651099213816388035127767584639353344830379914497290899383634774557049678507043505205909128302578133170609103740474665459271276602766608407168879989454031670849825170504651310770425458090662093626969778505969435400898143141156114067835710485563040442383743141869250511340786463724055502776105105844921250848062226165247843380710259680759469856128206399177908677072445189629271258621905743955528624934067849028100566441410753410344907536618774944607620901909575639868599396475049660479979883550579156073091325111607697275325533246019976072130968517557299427263902145905985566465822565422078050200404259874866493455046516353285504462833839905549167010354601934559371801133165242338974642955206608722860654463902453421166316932280900457329920998244856022980055951360387403968003955946387607936358625829811789670458833892923118301516913743236155039164990243952346034479959685375556653844017654460611950809813517412160972441940200103913204907782279242437645788034493145652613877916285275432865701690558898208764316672172319377532979246060818578167667636748274565136557900102668993101413986188531918428966925920016664002640040942463874846595999180517061181531520588445787435981479736612355832429871209188638902103102400408821865813786605008564269846314121501758722855704706388267392546486623616336903351650243905390543182807943312311199923328947822336301685396714263457352145487891575157893407710925834986729998186731869241089856224276166409079870374980807655139137692253295501700569002664329548432228358442747189867393767898874871722355959024270092297870662524749426702871411459977190511185149044312190362170708894014950216498468156251817921275281976191449137324495559139152128762183226195364485459267279717784168711482553256933655869555719000042512128337390963872924476391290419630757608507352404575717603995900575821713865056994110385656352470345985446843523191142315140127301064553178650230517949668330408567726590024304163910891285018879014004933044631562894668001110996507206019282124535267874283918987205877178899546198252952269246374096875158816173380123259654203393160629799944796944578734358321289726835440452513550883874600182071946476995242504693061746892925314808295466608048183843826723747303438992990383497447500032124438729470794586545613299913270513901126428497736101559156558360743392393598992963589476452083424045304250776026082716653394837531518752817726700026769915248283876821915960916354043482232260453884685130199164150914382455983284199722402993148955876929391721380824915755763606242498288040988121069433462091933294481055012671920792233143684296974918498335096926845564845016608340678999859222566808887976020139982759595609570507747221373808014879420413078234727337621018670201554085007119899387434341451970053152868485686260827621338208636304413585091703387774820481808800317184495849809112638824000200762999490349706633214077226272905919355646870858690540713997670950847470081731013593883495609023285707255546751704027684739658579757913443288754371494863181730670463193942570610127875951872215446608843176138559659625807327199200555705830384031822435937359952552655216571575572046088094695309480813075421142010389265106527628748824534092289868029385450915636513141294398791626237093697169321695639911014763399214046047534513279111089308450760143130849105156994076899338426014805590036961318906167938988754879010966141854984052712078803692929187366793199591276051908848401346214059423105037658693697804924861524639681907243153259815576322548460436536605619288440082117728114397063467188146050078005395895946712200852070642119777721381160954914992679584088302751981697847027765244414146508856122762667797994210660326040297754120161746110280091358261433344256379235740619767770180563766765695022995838609429902679439568917707405719010409693606362164232523389303005230839761462424115549342159988463305161523294548923853687133271751408202856322164622338768986396243183478283964200292401559957418020060317474184868324784327979548528924506119627723992550174635092210109706884165098371355448866394175255146495285167427312574337151608675263663115756629775310334377302066572543298898839156396277683466687218378092266400068161200509469942505084876293131920950712391408421886124445275935981892087642947699337738987605206587791164541177338411232319912630500229523727282095061161976266597070322170234316745685566772038208554929635773867886454210628646039090432685951463185672582871405564405832918377614456066213101453399537957619197989673317494648870803607851414593872476790106722864971848963544414278504456379092094321340930076814735647333700894850107665297650497961882581648087342950017976979866963356372508845929898244771944305156717791322360018509808692574522372451669893314333718385138869708108131109714428454282372649349101834912661621277931787360144832546365123162881952566524475445829775817466608006697750778814384561065221129514222626966939981132582071633875260226550617216262573480737147872138730042529479086107696447161678235397097743083529310461147845827521539684863160428772008121098517856469202801548864077645406726224171107724020280983846146569469573294222788377298331840192905787345655972170522152435542538969044588025299757134743091192394147678284081016487700102931799186848012043661551074768530219395664510298444173812390117534561722303854796583590049098766213843100929828767450504206562174499288731167821242635883074600212319100417662622037330089510022080771374148005579752945094000511640533609854035075645761257363236122111184344448054009103890531968411206736414199931687931270608271268407313170032183351129905510552776795946818609401086783396832150767190112752633884108012058623356935072423299679593590960703198212331697527367365318443214060941915614885948581276235893103079520182619594310869188062857352838072988806364314305652692676752655290171063139962301655546535235160939444433926354010672435411041645266066498464434541732062627209000724457998997616132217633869023435218105771656614726252740494384258166592899480512897591281672303079779730353321777787252632311305227014126082879625259048432006912287818534016181979340753502459434955751296996853964068982876481711362352122077240533611354149872361414528317197516766682402007833751364728574579187684324787095702628989006941391895015401770249495703235867539525463199351393175598272923080763970852209420050566677551293541753690087992398116854761813043953806554563085622557023859567172377732877633458324091997784001555988931003636394257456270695539304886994863921953652076394007108000252629865696058103478698463697428615360695361900799879080051496798868572267409354392907261394865422967061341364667837859896778825793413436558704666587293757142035569993174266087743754404780008833173977460732309341409182781524951753681874028849076067958939980005946436055072886282169316807188401089331753556159828763149153853749977116662226852197624819696267193914796387023812606463192848897609084265693597542386728168357527452460234448247603097991359480844375175603446331472506841277970962914227849914117062529720998391222917831816305173559931543607347626680207746660609972402673942608762240109611062389747689194900441184770302375367956046562309037423666918543046189440215313717333881801792860775839063677488015903318386364626213045251692535517815831880178302760299379639835350027955445515274838110068681264206503637079587502978759155813221258776719295225835279748575792922787639511693768106556770994453914357658829542157586322187377857001806089834744336985387110688875892722337127773417238909387368490568945422554561527696740498338045972863417931766367152800853081594795887340850419491000993549714068499050471595855854681047018616203000872668795264534582908530203611535680331898246702635474517688455563950317404440353038388451178606193210885188837938130124895925900140171177287029977936579672851308434002475993591171647584160868306048215457362307053831158453638351072819698175252729231591791712570319836925249167333769016009100834605635476447972689890952717285612123327920098324439316434786479598330139887302405085152242451499591537126313623818549168193940697113153559026221253682452140861283972590207887803833589840473052030122608691052482826360211283117212533619753891611126381069346148600338855967575147625167716444614193217670991128205520399004186155127598230971717428856958708800673206689551091824181226224955048663796580777898946757664302439031069316525093298828491479527586381746578711321923280641861411370035491247421825209184289126410385908388611429057553052002768243600095369044291310707726735183475033955892547744006371493311247275671502673324956934802763454393292174362620397630154383510073842592892127799675182765583692639221004920179474833736631749104602900976827671180440717222115943646162444592590959396120678878780518923381409524289077367330449075443287797019952912881451935466188757220481018197190512577235777567171906926663607063614957854423563769399844042506066878916676366814232132349801081860553322006218417681672893702427767130588165607576061903773944925081736052586169807448350616647637195095600407365086121843186878206705098817349290836351657448909686443566317895602140445178019294814305333568602259890121981655226597026280587779723042692416878273497791892875478521457881393720442405455086045642015673021708457073623257927184873024043867290439403391620852141347418176870955330657963923826436394942435359858853158634679216280665270781615321994916334060693700509235559229584873360309865591406088898621400434771604689618694182397908721928563443680112448318092595522657162418103304420197912006072570146248002534597751590364533980671129798340935887223135182486696877005548039213931225683910934127302335917208297503058889585821956128798203958318278460455820660999458262017177004634125723439032672404668529700254098273487059240005799004745425734395786595497473611926121924077853337284821705738508188291254778300743694639369814046479774641902184720388601306660745200008115372006024469944868404367773244579860306539218253392470510067435678654533959909460329845502610814929131438068680355882440502119932066344962771232756052798335653510706315974217302172884288067809996354826381149556627838830266372084662212165425226136524503205400080242378530193501420940746611236006867853134510240709726810806596726932453473768856217647182647248458904398508814691596109927158729820750121130882478530325447324313322901597302458202311871339361919524901831752621886511322031644043738196016027241410168417312200194337464019975516487529651655046787482872930333302577424465406832527269464912646593587698218797735843603763593942071680934775201947187585347308604228562311078460400925120545282165504745169319797465408563057814074678238590234883813434103631818615936616995300828691703472686799973620169989107519516780620283923732102060776222921282572371025665903535621172460856750880078074123233832529463552014050971461326513599124633829306843759016056121351308743686890583400863564213534094231982642226423999255957830645375918581958501545386415939571153989676182220284013868951051135336501715128221716641775856750112126082930272784735556153102738455560574539778693080998365553811578134243330656849172574687112701590517944086122043400655918038693184554083139987690517012615987388249523699702845554576028707305376585408024266349408018985189630969663333513313783734387931034786326124056605918930920188954013876042376218756114363080687700775570056039722202760232382611797387606768480730152021229112792264625854923630782517293867449296647646513869655155733072164748790842344763955417743008569831240257712040244459293166062985891044630035890254166974758871802382430327987926919500474036443284161788040615050069920077970849900440128809398690173559108187182108395178912855753821693032723241264391950357733064507808915807651912400264107714034595861823748384745120181955205013573107079069233522161586132235740959930808723783992770564876546620827496915652927891475695041111294431396791438528941705383208292247519126746867753488611069110558668046372765770842098335512293243059210872933380901438548796481656082097373899305209204404889804217814638339501510457854534283824960360225502084121271894408354910836475534145552672523510844475704020550907470282092357046780110400024372068946052395327744630907360111966880143832103862826741665157032984751204947170636026250137899075697429388042714957517817756715238539127661035057466745558058458201855297527474209188003585905189629037393056984376226419417379135781020292555865001462938522586817264097034872443538925079331735476856973077699087480263227129205098955846467009951220315290239880444668207449367984708453861026168198127310722727183611195730339919266413104140237543135650056172823360598028277270940074625459910743107551216431984483256846419180651100768050555192254240457264659771149234612476710198650867455557990241665172495002072052173475824741511371789500433858912569189737691095759762377115783695144693868178928681286257979828323826913328047479023387326386391022909760052266132202552288297377557760133605749380502855173452917489928377518799521088084966337025457493454453230734387450964323579294262643179531258479234008707020354914984263763956046836580200291586029035188846176089738242837968387097994835834972322236128835492792617439545003730938293630938265233316422084783019634686409924098902659148431115956540529437464916890218673418172964027049472455204007150317361321317959203841582266231143077571675268966717553455474985327621341565336312424170793238350695428439320802079420545879514128263656116516246206899056977288397988348122962198846243511267544319158271522323817287105806171951703056399479677816593356436433996345048286453055977722618473178462640906490771558010665728997569958081201025064976620144338610827138037429764405880334934880266269969653587078766935533132135541931527556771042324355647015766958845557183343042171711307779477970392766360574712646293617668495468143871142043030183682268594548254987023255148930621094341220579020551858372642919839498030574670359668980775891028330141885473896805431066646897849551760067834773087792903132506322278972574422638611481309669952989756643501725531050077785664569809124597996331300216613257818146521109299687927077480806416044062734334929085233461128043572924211830594837803634982485531457124420399704483052047203528406129665192064947359334699909332787731490846046278873640358905274042853322151232210214200577735283469229576976345643830612764850146059962356456194306980103441045036252557271394667677339392631694901661164369054415449352043282261260194440030867718334654890272451235879232380536026075710804767892831309813234788881097484298019990710906870408920073667071883182618883213854281501364068092149181387740910723484746163566919807047971268171413414602689509773685866498828116792388332317249185224902496702909024306073112878329507443819876892525465850686544209100034013463066019476301796353489416959338800121817768252054197327783617159593917239939234756502661243488731767743613704769873731073177183096308781024570844246023098702344887194967747616668799815570890587404892561559249059782668631800901009191035998710611412283427821109943706323864072869177645948434244073114218212423384353568711705336650023207847571946487856741940571839072271525033364064054618104737009753234569605202140411276761230945261158208583626010948685524270078780870807308631754371109755766229368202483212657890743984373546997493479221157118521286334141472161830953315032341971337855968666562862790328145276879096018595499094706892242141762803324714518034614923916129127995000040600071295441244513192341348425014572884056989690293431086776992080177182035506662974771279636747669632942134449927163906718724125745998522367599540211374964149660578258508426028454604918917952845646245011781035327214071591931740833337037598714265917605274317541145461748350624556912026143320172014402095910348951175578195872720102452915612504934055627837043808189671542334549998559751495732376681435611423243236622136468762710737974079991959498894022012779251452562255243667811798435133945926922874856192819075765461825994002205603322864225807510955508699632892750119340820661340015048732780899108612288825820670832929264354148656837305922912428208209625520547239212408274886736033158178051987272211324664920093988789442269308178316588421346266611423864339062570913966772968365212788331744647603909431869942319096342850388609607787163688376924310243115853732604034566114731617270786608864575370741384270953534566373084493389878623912672537775388863076202171085952762037798753249989197617018083833183167970329359289624010672907849780543343862770099062344668186314953363186309506038512229546625604269754181544748314509557098924254021871527108168675056410535031032621670983735235882237864022246201901867200530027000573113696761824158366494394114674885157835923868396336108215499769462257096473454074567924235681955668053544981656613049680753509671737761103102639862816834732060800857238178854138167465676857379634073468043856077935596615533035185489051651937732879556490902042982945213606481713941650518215965302400672972540685539404045601908940155089914892242798767542254224020849957868422516659879845720143987161067672300349275599183893537469542284867288699767755600019131428919012339533245302697624815877030163368902511905233051350667692066718928334501730032593099121680562306199601773930656872523637296160059956747391981060205254386652096647499209350481179308851749134561940300144291887642802434948977046398783782482328160040743302820936056622079671211155605275952317661934408967345547568429381688497098289885147285531700244315673769348685032599913384217348980239557905404722872576418199667347802149174028240455918213427381123479665859404116892171942115554741666371846848613312082989125275596499656828338403272851418626451772717679091384249593908770413041170297007391448107454843569561719438760499567748654823170275733965647784350103055783895154667178556884556461375428290697486443415175280512160683057922930640246727339763129447180074587028267957425883228148539988397073033456728044543193525737325087367686673324873470713227340596472998243961140870153638607779076768095482877687465638100604143281569432850815566209083955367421944036638545335693585004408655190227107901236176983759129845925447154686084385975448480101020007540419972134256521992528747828421477311937189255786705850960476663454481717728733757689140348510346956053809711448725813688630653661771146867171709258884269276931362214605445684299794826685339349510508496557085477571825258220601023183746725598224002788724569636616726327972943597193641512078073056525694456311026848435273673832018109331110598771867671463884111642843216170261322415655285504989069892700756619013646356248011027990860076037597435906738153907330925506253145335453926863261346406025235654873788787650295388165606896441711268090482431372678594318011067060629647718797658578245767809552599163181406426078977369376152608591260613880395846694097404108186473206135280475386126014213986736156263746011967080277269365749944148715798185460670213905073452280386523492708985332963678010952485239047997462782713430541016831767073481969486185055276169428049095382994324854857298071573461943593881981463980699482158618786768617499366293799121095035544922058500186443910721005518863561438241740153520733636803108014463835063995792835968180880382271097465318416852458983218428306302082478848734525733228053948001152260122047822162394883893615597792990791971460361060143525075195036862220155969823186661782421057862325259508996343871726842798003802898805685488325162528206859057614165865272420487764293892862685319534813242614602947253333661692500969766653935332585551059315878634265652226729327183892204740006206876132621216081586768213143758846681888868284644931536178407752644625602680140340183654582805639615950048264501216319909433246730787384878632650895559574280438135754922561481691603106363433953724133264377785576516855950331885939759487703283082043260151209261958386279962606517259043235132214302893734077265814126239333268929885588842145381350802448266694706150239821933343216448231849384865204771523601683631966040689051693144300423167548421134154830904337782435683819481597947530928960871586839896468178154655642118883795989972533889744516114302511667045844604386037713149562594477024907238725559192351897548870389474352641753180175121553008362247992229390509222564783710776153070387895795921258053868302032750173708310966925346957133042428087963227098471752607328656285778377321633740763551530662795808944854309307648613952848870580443269061026629280170079360763689667679058179988013638838957759635288059359673460167120749799313961611025821761085855800589984278901522805302565398712048902185700081328032947565374228696047271291106175043034343112181301571834493507654503333147557799350770845943010319498947071224132922134207056252283161077382685268493031178427518990494605536861435926352695985058119136993185478246754528849692888157574366546328770835128116625579255957303904383799735843881804864328148144620550234179672863300906910876697031967400945846043635442880766687204592379865687772135415800719405030856393648815981887197220466681776037060058787544795374521495298793801282369400209582278386981383150367851712792155544589812215908330382640968104986038254780310832960989357376006069202785882606835044868120311189817265800053716658359144744474774737669551935047657167120387254156664266819629553257537896846392669721073941944214430479904095830797247715534540286200355634404150081127176732453503634530138154341699850942993491932063853668256183804148171249467355094732064937786333307385524333301729065389853267235149880006790517287664166154959945357399197297303239377380513754326217516871204677513865868858928338715278871513081187692639339440802049708843350216996520763474957245295225824005902788155243514818455698661735024268560675393682438286599218022246019352706356071341965936406143714889365050703831035965927599957330824964875119859963879600728616213538408896817351302721394594596607243410361700284039939972103986802507864782867548558533526433301927729560939513692005235393381898164452519431949801719721054535727633164954232061245001564376969738928941852564471740262917851724755911448766733886605502615153879175059322193239288763696596231545189943292914010475071340257228445484426510206932468451758411356397298900691264447413311335389583482895795377878416808573455132300253389534558960725831615887108899979664033839671908718912324941509459239668583815366567504101818186457562938255305916525887372851587285350357118317919395385272406678891491840154927931737739796559599665650121779178915319366613225119353602586329805362498903240113644025453384869312496486694136384582869905220665010522096560185924415987974421199345464391244291467447609318479290651798272107213811740957223427732312517160489478786739662393679905796738635370403083986102972868482634378712193005375408140904944379202742108172108203576920620670249867181214484829131504897061535965092402123714191595821409027742951062444820056532780464358920258558431548424426076414493743430061537172172341575565905194601240285948540855074983162738397615312701576232567019225285407221416328182978191059463350331452110470651118712973183506414364191095273959277450127024022998889832016034831975509140257171960853890664179406691325268118583635763905294603010840479345016174268775001068201330051878341182747559706301784674873151553260248641756066482643808682920563077157296061766854705559381707196830950842011877063154694804876969645107749124220342095429108517479153557035840828104712436487194169545486952890049632793830911873195179877525612638688839121662455813148314503557750344305262315891881015704607265866119063646983461181408785640938331499124890246041809630544792537309867795005194567607120575754190052333917963109209139340755770937776593902397382868082484092726676208306720883255247787150774115844516664672130800597190871822491115035544637274985665154683232972351967132092963994542105769482802127366007429255009528941110269466095820292226831262544964754726284487375810734967050657151251460331367285473164283353992933645877378851932434962214112887499111989921497266108640688973903086180659127938267301823799224472912201699613328740276291332364956855267585318926348926160786894190861760941635538510593102572994494417404179206752152181894492988122537887880564926833686571718176197176040748273542997010059039169318286539120289128155506219315639005816713644765367727297128495564126356228281035486995050615329425816751696784341520626097397088685753416687374283523511403274266576217518962328271056038696204998971057656146867823751929334320203536007341267395469268537559828622348928534715231231024831011377766858463553937778420407544281085511383699240584066721794153823638811643831812183783441560854319835142149409484781956715085576464636886156878472081859326815531093342462363170348704058863221060625750477378271066702770301543853139661634403928953142095816995595763342469235451038651516220935935626472244250724551987400499572302985047784639789924488532887900733530365372415814746933415559004018924846589526468065440416973997551724806609444398003803837462543913971000698640458834716732504690533448757657272978105496349483650733701147692512828477995351179574672183190062179645723741381924614598294285483592054496809125710786177840861105674888107360427032584684551046264566305096189546380638218719581886105947076009241004188073283496813846306476033048446575621507062314822668755179894423516880387342266232281385026463511311396224969346334820004435344667668605867080453963407752471498458480664543429685445455594758183841952703088249142440475142834199957981126468083422311623622133763566503960603840485773589217443279867733676568051655340138937446213637167467674869107917975217480584085255052909540946468053763499580098696644776386675404546907496471506089009499739775054716530365980531306193166458141147479864582846445450517770096801449320386979519301418059036352038423384235087985935981819398790731109842069076064123029822695471671321952662952716741217039607302450839141608877098195321247676588523412657477644087036308806249707472273608606218464541478876970262386725548695014302078224447442525928010264449597815072914895970015654346275080217161691662781702001847453832808306408888874151331863809629204457924623918091218581101592820133894460027129981817557587791296807178028137008565547798477387264916848150992268940704937715108421188080066740309093788991307017749078517773534571776009163978057526043422326437135047616675553724780752369573433385145893879729329319955175891601288203867924638259554679473780011760005330585201348323801076024764564203651126793118507831016451724047841251422138106322504407891282772059010214567082579853498895985541056394171314359894101240361815571350789965862884813819984214070374871995457396271750409489839631503508959463469062233746482581432015053010944999427342414198078076983872048595784129667598999970562090841612619761360822909752417590853149651017874465774937888669227479021313329763355378178379879130925315663674429651238456060106070197232138618575055047569720724200316525295026059786084437739630737461632763825341465924254346666448235223531033052351871780445081283731168640218033319415144385119287547320306011896967102924963871465471370094348573229129625559765221353894228960806916376184977219438950006636220003021229967388166128109499511679910909913643066881196294149760668115428597657165663363032509083000224322009982825409841621760896240981116610325429938801873775555717332778824086752926339089308819875517761783554039091597787183041882681322402675814914997587814896786662510575481677781270686873565271140131443459145772221288401057611141599900069014290903789077978444894547896281355505410790647588232449537134377807945798277930759775423335093868927617721487107623140076464545234473286733485846016688217958332767441606960651585000777428419197108245921436293796724911346350662880587069867430441608490401881194075831639043941413834195722091746132748912869772363456846610421503604042523262762372499029165351072162819659597381060443768781160641154931868484095090498220371103672462331240270863741806478102981956564980820893267234182503956472160435247995253372223261901190514061462170884162046827315949324421086138515556081015422840147293348882444256086252647723710772165719415169825780051723389610820671753318998421996525626654328896559660836869551976983512211916704696757933006442446967372078725241697086308410298503107896742362341263756731093298343431183323846222937702108269921888723742479627575573560296107899680112798190926813001999712354074450258482347289949816423490466484960043219541474847875312836840671046194953497377606166017353226511755227018516579603463810912586696849610971487894975892391311384144880797092027111952373764365149916500885583878626172486093354915675242272406059975947874496240848902880075871243358376800421053298179400650232409295196976166283201383392311808490397749425632940197874090321182448433919697816076703772636446180666174022756099676696662418179493284221456102111483222839003962792406011391883161604424392287640949479201986372675804312079738198269056809536321870012217417280911427036712324770194717804437591395703641919978261370364840063407922118401237123754228757545590965120517564599432057352969291785644354623523038626604703215445085614832109274046879930625860910075460410976550069918580552592860524708603816296596029997463521458682097230313796834811293720219712086866648950269417583782409448348995134710576426566194441241795829974499322271374660000534025984668171386069903866433193082970189392147537919142706527556423761745166434640151910862928854511745470420648882588603044383284257963039753178198764486199959085554331204628741065979784803913360679010962667357015150781046096814977795925589092669866910760260127684367710707002195915651714187934483215575378615808130261271436529446355089460674890977129198032172886398895584716004785411927736979260852721849863946091484290849342314396397025716400170194354249127319429400348486924711651465367850803017663627519185295343141579117093526746822691973621070260600407885060465003778251316435130394179875401571489227143563245646114783011306601605577426114057664148239340733644712106466138929886303599231330093781880018191133489816802056408539238228971920110223187019938391337403395444720916499545243687916015632437199643938872153888199897897406594431580251331105415030542626708967271239032234587021929602689664335742589986993277472421491541102001376845085946978687954485256597932394807051151613465420782780421199364994091837841932430818686144802509559537764465261121388789357524602166599381642905780126600718881350095689645063489800012826344895700287121031537800040159781058769726783365454730498959168543270298086740508311359907394984567739682726135623725268413751421770174251647437937983604915309714208674514666904161900337772286840125569550312328627257562047984046919771248668803495778128363606890317201156924178328020141758104361986257071570777838709406591937281625991175588963077001201308380672818034853823786622135465500170464040165382940686652287616278689857319507039178707765524864856945920083870910372327013929843464493971666129578037608272471582968061982326395756437860723423770996538219472340466564396738952710710339456200223170590054612891697821294929218309152429091712068325508543548183932467610034481391321230490847996546184627924226180025803316463218257943433973535837470701361053636297391210794813700401516602350085268733255511853726761550493124909820937092595926523170825431777741471677674304169741717454622258315869942897297231643900372444011140006052508783828489998103600611362313049500070323986495702291083122839124011245980006878254411658730486534254208484111751250219335814427417208035018639904680781385456578272113493093208646622510215075052500658427638633443241745243039123420189271526349631959882180114969092540340060480889389346537053069723439946179659687382196872279474327066077266694322162852172132768323729938483095843189577072801888489493443495342345485132924280857231843064231390863702279645277876388494305076083481128394044108906831021199785715905846235843982197624353348648011879937740781132820126688403946995872155323701077251760413156626129139910313516456980067891390737907204016121875881024361837821082696686822596220537200072464180286344361212996935603460695030921843466865420364902301259801218004407459981209629082882012737202887916372191224215689075502302152932645341365950178224774595101938953186921349521736955687407129348755728240959541047201121699799034309186533030522120371112575199033321876974850629438632045434655277060878097749269352148808834682443304864196860249582273212354793075653459551870537917326603952054714825218419402550074500888684293154875868397307229413902706121496458363530327583699992832238811054398213425844910330827822239700068650054715594383901249766404333372012192621169411509614659951070765541359003352140975928381969139057641507342434915548936541182444860945319066547723182638244725215228631496358923820513560121040202440930774466237735080783844025016244390915327641373996660889372379418057603381646048307293313947592477339496957844173844261561507449860089555665463000433306734125738318829953200394376643816257386382012524262050675962444468142208130418948907751756785299415066669484852387494006372521589576729222915526084198936440981073205040858792708710188532710206435829258232168700549429239594615995046044271699396625577429981488108068660843703012333233355462095764127322328362690279796966050900928200868922812096755153282756759561267179316372295284458363152770332860427176073775425609540842756888377901041849994680697981940400344481393385918350752436812325745255987358627887022120353283441434209168926741289699609010107456417563649014122913719882738996767071980532362513972872838296890451478394569432177005840126408345245455237170520487097545138051796228735548333177536765221377245440635914632043294651683663121273096079205714413315751897331042302276213907447385635067559116297998156055708534713947489347577369882776869774944133794445318488542569758792943435067561081353013973518797560803652183328178851360567584637585687825142335514774368286810304895283520995988731059018532546097338538668175026552423502345840078590097023173443412099492479003277109055745980136229792110293388140811228640074756188877072380805379727782983697664977685527747964992697512644939566349276134416591525513597103521846841452809540982307067011431926448574866568689612627607630892464594680275029768339119315833062634494405025056091717403718767930028655466986694203715062196215606851780284455228243809832234704385415999615763322441420522914246293441685518740070964710868953372921940698079356612277564561560585099981231682191108264048520660403633794481395857055241542002720554814013947822364868864118739150528356382151395404918009950560201944149192206771424438188597155120833651359565212967057353990655023220421435601556731824878889471959805165466260834305874486144791392912977917799101153659881007571029870177108533579154390008762850268204704188725244856666945645881205748561736235392024432484611225581453848232007782717953711042683957780785352043209735581911662492046968762840095697520607352541929312885779867379449267764214537681138461807872763958221681731502561947808382532351632176615682997318809620718731090375647241499270969411934050868450359582119584483044866126378758173187626210762395027445083011725148104522401439811404626586422993199329581099647532686284085516728970148540562495134249073442571745227214129381836393421452592142051554797735852555872142729947934317327615770324318275785806058602456559546452008912546178023104067401836910871783042533849273680359091141692900678699185117330194131690909367574820839733976349745759900994754069163599436142340250302544586707649162647703029484355253782753815355001225703816711432107968110237893300264141252065180557334090278766289929772458495578327454459546727783358661412240629624419846624303272123696884205653620021714384213630510434076389051911908250369355277968061789590853257834346410719344964102756525152969814506383955186935375204608587214664654465902995772799296717162040036074861164446019945358196592004888879635321240428257930560053231195749225096692777990765353351703244414237011035610534368525721753605316825414802200350877468734611721168139200712986286965037396420113545282820412423812080220713288493128244154605803798047905012117442113812520746614106942427614222028711671462591597512204538606358696824647437751558229249323701180401623157754673840561409890630369706949993030708008424707626036450595280330746086246714614813921885601494097778770649223164428352414110562288596847523534327605943494013916082523555726958460940349477514668396344974021568074567755003710920890262803751505404905645788172413448770978353638461904091952187998063074774257283925597797498013989244000539797874734179103168065695497026422269288316307638716989081498430779315775445637124786267308425209974482864325993378797569858967580725427738519246312302301045167715632139987885446596329506882152398420617329558312695029409837641660863041888294557781072515515288011305942651600633518781386289429749276845628955116041772922101552303901134964727446284416213757739324821523577753689848738135848420989054362850618664616099154539897904669026147528111511211676768709881390104505715759112230373486533505307483360846471951879391655854548103719295001162642013577157229979163677750435945285444000592604188020558888411865296880538309556861075263978928282562536489220061861252833934801716698339293067113034404548407253812113507503975564820970488293393335434594236271507878061843822082346708022695289985310257852071838272504913984617446647797189116268521921383725276477944915154525608333105219347132479862132919961575903003644160819005537233039177630492214954224507396805245765076237030262108008293845614878810872598107676746011753103960810583326914927019172797198460728573022611744847596175519663424938749604847996844437094895169506918725452846343397311677044008688337241369459921335224233574581979086494315181127340716718525561876268911021698367480152196720714681538847284637868567999378447297996036888421095395559975787124767671354061975161139538733969809034207904505350654931350985451514276475814022186070520838752232816662840515645220664126444352694179720869427842360288342711546362430122225870320959336891173193288865791349089006613266345304977676838380584831764303541628150743054880750146700447649994558122415950653166446328562900568670795797474250743991747018839602549237140266995981949835784588582929326169830950234130573946051408122197598635585760315692226517329108333084694399441449383654851759105629341695116173283392024549678898670776170929529119744188111349009676991384116082545573628841540487575122129513733546103235492381037478383974049590894239172539286270549344131698802047106843347048158546040989768292961978035905496142264439832117876167028644645411394804618535168214514641446048427701397767381985783650589670035943359956464524378452475325456364002641386034843792769765092429264679718292051102405808737601879183164785279545487777685595051572388590778859861220430105388483470960678127267228887417492707130575375027735239968127712859320154146736038000405541425422274637177569291306086861298512635137679056469007571754452084156094432631425847684016533977703658402811789767111312977413489651788533271268802206271163644305208867459637436272452000020319935405542723973811488021832238281342486915017700267407993950405440903981959150511303302151338475972692094236262121836684939243619040151693372853042706536562771320833005114486040767816716534847377269260146645600532578240704877594759071863893531092542030100155887218855865741673376158814706926350731627375012379166405536028913205683904819794668245493093317161246188230956987820855599972793036940067198429053721831872359690715943560122460016394409760560603238692195076244181828120505782255807577630407493016782336632974183560193713102311683990899578064465526428950648602847931100171341964621905602329889733583066874343587145147978275744953816165036303282367799444347497750044662741220787164495753304014024685382381944934864113654740842246668416268913869602120246585269941214872286152494983902386802347949532757063229990672358566097501503906917455357594388378535339271306746938610359352728157268950720821917652632463094346177083688097336090861135014390454207588370593017317196231265892561715785563968405800946110119109887182223392430429680110010389656618625917822810316400031906882205198993555137149779317526409273749563827053614357526288003039935186119503139725328633031976071522568382983230730251218470424675241174979263844661626823696175647518016034727149360680895132758461732459073565130759846546527412596954917394589241006372625868404655615753893611134964777320792076021238744714630288420040720205690795228328510758275871704446589003912250102104534915867630798104001818154159367397451671301987754628841593679895834519185241910064552373113628249122540547530354327691630428322217112877384614266037940455075350625815363894940936610995015725034249320133018837890394940907418168615998951436832547504674181596990542537063944822441374275603319274528557706988763695445700835466882383031923781976484867868021836134977641711374758353308865611873004384004512962149892398577757945912327742917184896652647738334424042022570582359580650041477846435789809960319954371219374417380665943317169990026012909643552905840729619282980284102925278326624637988977018546599188394624362766945717645063884121427306058558285520078273812723973587199583280097578191275936098548620655292686918925672560913287973769401038967603567064990455021989346691090452246183020340484391416977731202351321889883553923946648051006594492846755350142002572557028468233158290615899609375456798407780378810258543135963060425457416082892239899387858730595978336557060578187048386316070760550872065986672026637615126731078069812024177122718436296206434960239719944172110358491201821521614849059790043048735796020338183682841050246379849118793885792370906256230189139971315926331291020708097815162850020424816762383103111065744631385850841416963243231844876142784188083410257954788639403858113936246333118441526846858980870551377409456555622274893423922691826621775123378772513139862364350801574576231660451065557258871794328009009008402000257116188194981704333296712174901113947378331213276383647023215914525604618916639683288492877623097347825348609801964551925939075252668960097974447349636766621563860610419240173490290119303803873220408488030377565916681090854007429349269661845611512160150667110985362211686441184560616929980970596334265179569875445463481613606619282718972676886780384018565157986719200461560601266034776186606212943576965599838095257127346784067700711184218651467390777305866865296762025270797505828936048692078809005728779837976754494491804589725035719368087435881774736738065973142597704083166552182696063154514422625067065587448999201655276811364830680754888439611781884179403450554062716609215136738129177262148612937983289079146494852351393648692073257364661581024923237389134320382548143402717993326578104718017481586422551099794583971259343432793094535384755267310906531387832008140649834674061878019076474919120917411725907262609323999681224130132737851343747006693782600128887868882840034186206701623249100546031319044907027013087931336634137848595598024211894446408229968841411021186950163132974005626921715881677952627946479463161096281009015661386567391292121656969950924175718320037512513758860393002434222999035054457677411671320461738516895770178041877184108906234566256768961967653177936858976237311431832812568036602074551076134709098686001442849418104446820284543859356544084920208070770512919351163386006660353136983980499180382321875336752065624822759795268448196113843960015762911129820310312331271894304110340552605792740637043962159998945633227145022984095861751552162957378271609761412160579203774291919828822658173370535293686343892669792488639263362536266610618771670224339339453956948749366543554402736188762823339473279642973055583924133967642094506837018814314995492155180026583737081628019245922246659784134309561158232964293761164516583109567692470247143386342024721657325115559050920812472142415647924951243402578432944654623655889865281342971978957682604498948076412348371794537978556422874711256121360897430191521820455829139489650300218137455186053892740759663474430543377971290212942542941224791392366988925371889152981600223045007690396571129548306432082890322479830301109713318453268087318696235093423282880102219915437116774823786416172265978791071281853660215244486178843288873020545553652128492585351381524386767980550482934568466089622744431002753845584849577188232117029061285912513724812562998288021380640091912734863379329377563211099691983008845247967269925516816445748070551157592878959637357164610865957559651569328839015485212656344514791314569197257817053327016570409242038922338404205616222917679502213627489875829682193416331450677777896568819177120048114729665711308393474693338925130919886762746914297485637711322903031312430470747649497812527089189769232896711336567840323860662626528703967732386575524678600489172300475067197699495611326677445540074713790574417591648443430408290499987325681167274687259714667353722816178929157326329295433110479845769828987585867556787356888889025828478032402733350412269075477530460232518436685622757959974817133060381751387728099458094051533690932613693900570573060855265724578877226561093196303220645376536691641612448353453996845126340194314703028529544602812356029621389451910511062411547223338712771962149649324285477438892656182256893481506782231661535500497744983113625450292473820240446474030307166355344337050148879812313795133102234720239866720096842472916234520446621421201608273044518254056445648960413065841102554146760362042645821999214870034025052394493197571369652124722420803675722828100910065923503636179963977291929345353874110444633930574111423999038733741786802244636828258098544318500161767440964217388168769289109144465292878362066918889105663111270348308891995705682964507287598756979046644293446577703604832844108587142035936109697675165346494267721120253925080258665581415819908608523908892184590560327793902848698173474018740021037604587154062034427153710928743609110827685187212644997712650674315023068354623113311022212741755682165801959309727550251634062325556534555130252008742201237879199064480738476532634723964705217542405214900129072922908316894474399560943276275189345028251933452462843977939442178480275681858784275919555653329758643373441064911145853220329991189686200998072781772905463991611570893134644925308159881587825732312655130255981402444846790519063691189893929382698426017804049032845509802494690307821121094873826096259581289229525088019696629374937929703293591015984636119633453378934828834515594944309729441009955446555772916244925374821851686868498300164351500212271770491371952199613843719979902515454442044583598255597203787019974108518835254696006938387607413355477170047348934877804253002411091687902732453408436963510701411531039512979391902224035819901999302527629948556068123325256330715979136834043733879400791556097242969138935508707760727942239562386453815020487587303719643947282816962619088849624708397120977317558786341305185708292149192282406717987474968215033176272826879916481688247999196450613319394874394862322293212757986929713460465634198782068419882293627730085035053375508238681947193111345629678111217908588017095029842088776217480430795172343357383330437273387116128963398264792536257618281937560250794974391523813304540723883236333256895035256275771269128984509696228442653821678298286514435198563276036647057134187770866710299104307407773322865692510509834000293783472844818257868675032604419284426338664098699075115454243332859381588959084813954864074428165090979047131909616135707765971319397690433489531029760603808308713313581044982300763197347889144937371287056161521410329936945817284712359501239957016005453780646201977984473644133633052899692861978057030592558969990799710856416354350825182126036863105599780506083480326770315480949411638600991616099182561650104888306476958791932685511508681454416972907512813264950724450718940913479813965724750942323278361444918260192833138801239274927857177634881904179381270006361398502994141822386900423880770183306012293920890810934410524875185147293147708258328909510317501476098792133750464407526976410630157712427078475060184969477266170225231629085177398997789254251422197267198442624483505307070556402845046947618483352454679887281003475518038916914611211056521330733292448103354195691101205400152191205131712157287302638840468574820632941053722499703000475212397556726676525127582544945039457287811800359432158873041211126998303536100053379894592337899738790283087571766400861834444582746548197753822617762273053360711363734590631175283038254271933249048761111695607062360363869763306799176510330273219516222395098689621187795247638495730775930058116429015530204466843079185216986140744459730621375927578780761494134015993666180988822680348065802154093194726060361525698807362437732571547405519486625977612577580013504584210078683242898155977452351611254916068500980975648827244565713606086975901411196252808956989992188201749320831665019386279925313157783786416792028218037160602841423939597649996501759717456472044096906233235100744163109041590328016075897857025405970865820082445322894469880443312169108992907555476852408968295902414467112450362433293232575431814483351360535728776750104069828651700959991446174659737749090585252023479476640256799832139610187527375677009364740844153139051011272680761913620546529200172211908520461232158182649742366690690739476959915866676912966049187059946003649503079665355376035977617132483998116100561399745729249597482580231659676311171275054321454467672619609820742719314259766283814297227042440479720435815609991278324230065694504547973320105273250689958837437954901020662913516703255736762717096120546365428667857425497245249258569403898678049546160774252158641206685799907506833562794126491289726395229237788290408893276511075786276683215213701384415053282909312702295771391333506375342256610534866923277473865506874186391164684387881791179368282632627263619723142367175760479238699335429567334299345314308575267000330001366653003727392057522415630973067782248852060345886481762890225876899448329467131125272644138078661331429220679714758765255652364951243917888724341990719829106903402568172053054573601938314745212445366377397833209591495773835689348843323888290164335602182128548100010223291029851624185756436455174283698378832592615206323001655702545899631174166373656102503741041561994305279083416405458679401336964835559394465886254320406719873580614764778078190451447884750630422874173304331232732099040686067409054666359112234705063694364985913051114980087500566150456491301454275451912645784268075025812736797196871732809798888965363461272669625443028282032583017470919701920431025502573197601221416299526968350532246653584148089177948425386245784490166951047583603779858551717835468512025859992885407305843247822284432620369411617527938824721386741946123398160871911055568089426869763337723885660183137293206439767058166970287089828503306018434933341951954949800685424802327619248288460748703723339246960225306922897627822607915614327541000122690768203596740689180286845359194211862879355690767209445954027566905356815201378661111008776850853526350198170232075920251189786491685511811061497203039372860580572464123856356704675971767971303352765450793018352241589407500393318166669852853297545041124987477234221317824308984814153076442568390806089835051039962658889468149012013492832910534292887113757033801911404471173061587057835073827603013947887820579672632605519388179048853180779140795058733877463244010636473658819397909745318949018039259891032254005060387815598389054267655531361077670223320897811512365971556299588658109102181237260810568829394666821317216827020907329912317094260054943372835800156624222634615175118477387573098894881725841614984208963206884011927173082265187479974705766858703078137506171050515814757981686101922473357905101326749020682008454403865657403009667547131905180586293305546018570451636470542060963932298071446552129198081140012163099870890811971357585939670975907391497899255679884095238152367156675166032222040136268969136573241252613187561136918364748930090802665463340903317205602565671392612190884147333954602318622508335922934680059494267182944206047558872371578068763672971025675097010381694525748845699541550321825919519714525845895755478655056715517317501824783540712051191884061996893692893545068425945760932055987005061419041108319927282023918084163659287750826262545148930839831777732895074724593107825102864559898243631431342040229597855802984501842498711788217548001317427869812111602398327550047991386049166205755935143761342485477900890773153860484585569430012116428773223664439040156215672804055766215004920240652275342820951082881561072110050840975064819227309020139337006831896492881064771091442586437151068814432643924540519993625829091235854222575965329364075186630696970048218803874381367723089587831912921753288486137808329092165052554058732376119338346352910447713925493895913197941286676340588034348236494768301851681096132919456861292342951800327012790218702101376953765838473450054853387322882091409430453752812368519014875615428429282075210385210895148503662110077714460242679256936793126877487892011597430487564637651830552394128444520294514401793628555224833388450925580599806032344114637139495623104573567747722662004162182508375820379065005974552184443398313450296398323630475316305602436178365432512164179555086417622957392807412462742528896864972148235731910215871781824762619127352201564968826363984752143904441624087983858122110837997273805745492141543592898097071340813897865973937300839200691331771511055859304783695063592666070071066038135922076691966155356916410265255541016536131576950999595774069720732246328688667222507187333688712376913263842629841463709328930308044118536789646095311434942768565624448573853957483512075958833222548662520867416328900003390545946575440449848391323459887133978186968963155538185307731693146754202674050217560235636142338733415442796687133228210121522729955679139834379677085031462266050588546781893709788650875650431462017968052573974291219069984367091393851110329797506725282619748425133604936112863634786266445919861600729225598078870427172329374624189574295752885549586340503035547537630885493974359742277903013710181884907378463794493773971677963173568439608555457562720129685853025780495409435405275663015939855750639574846975283717022082350992425832330397764898537730868848952139501988615243994303702564868310465997617907595664714059505299025914060501362201672876614119357334396409929679861006001059019089258550904236158687669506294411317263776805016355930760507475881900080694801223397283178668549502437253591211705724987718267149171084429660913036869350996901005484842805138203522568361735278918729984555418284196702261689236382105228263327777398009576447875323646735167162063977393719665495926758476009451431522832047451546475109746008117538969915964292824002310606255137538315982532491842750967325649524121652468306865980981323910188449512821338449715291361621192911727590239221988899712468885610152967569302940040021715920138211269782534429897978877307255426742701156551751701708600255573953223877887284827683737683483676559416644307220461465845447687870947780946617935554761274691724300690865982480786165097121647832255562618740040578985932787181831192864133774619468337233457382449710046619989881706709205627824079439266281058826817261991403140346472242281957609456701196601839490691175118157172577650717596043547511973971489381296984241886118533935794579266841759844375038369975810913764956531297598745171839957625296673911702644381046454195166378892306624554978419783866883410331143305421372815625650709980207022065491534077587788215980625949726652598147908415554255255169871269624395543218881409506156860531211234475570495634570044257517752188736163698029406958698189543539679101805939465391727360000351386675507453440739557240770666060191100373370980142530258656485828622805199895129397967262885541535703629872362707119076003247772145585594995117274800346196777866434885330291576721503154479835980504268925479460415039219212380649372126426628175104042727614878627061566816638852061514110600568811640565894095285839084212152799551573169586283379723513946930115417082398704807951626090253490140085445523088051115569674213074372379270006295308545811380478075277294458050038297431860643804665915984995911274947920398949169722986979556834104422920028617291177794010293699844576896111107354472684389094697245280871796962941276869287524667014025261692328104877276961316431519326519480392076147712773871779402235020857957196113463025745899550494413324563669171421295129429798290084527418278197222001659720923762949079252540099726758949573184354647132406858402440223125999042146381141874119624683639714749467395946782564001160796257411878574626033113966192415896583864349666649067459061182453619857857271262029700645533366512281820251229104129632578913207081965067354330245539108009596266511509160420048607014458822853049915788968997815891017617587917831534474844576955187344222348237492357034199425222819013580935272910779597627895610646998114538753278802226574726288575097481777791522501962532565563073622393764705455407019308643357214581304786439272376089845929384111668153911046336015811203417508721488036012426219109560498136162850011244748251165495034902462469501165674216386086799967582914073036417432671650209552748053306514054731965769243978172837347642586125461267808664589283955492121458545395637533862612090491450419097245958615140758051419666717155508856025268500064396397599459240557622370773953245274472114559814674664625390567118726340276024611922233381575576998801256476786539420492259470706720462962574870639924168051984948564521063545348240732258998434153008646868515095864031348388664828938872422752945498369353011102190403889655798774173960359958071690319423019712244835845884711512945200104966650074201702370134529107351819952706277297429975875038703121347108493986877171092615505979531165289548090692527469731686898895675699987012631455908422606978207976109110179185871296786970973733789811085897911999832048503314457994660525808965094261682330683002256374983665917286864884270267849329124707784499909772184222612530619709177526708292424851014555250179790289480470006595427158223083529452788400941670761216306379666342179739186921412065931624687030191998928170775234107982672612877736158136303250762295099530805285147692980525133537950965365699474100825721101646134895197796036729776752690032007283315798863761827223566441688291642623460762374762288380089457999901106082962005504728337210340543873239949595824963470301151966052149580967088503430708285619134152780286097951238181748149652229159870874381697958849085250027644834897565021813176302064498436724429936960889615842028702945649314191003477799205876007039394504428274537598200241257212598112837926625084966509743371558554028428817686078062258435100654420308250035267452069635509682675814947410466243479579818324969739814609917053402510560932662527014850845953387226301357111339899168779855005100471491299662031078049463009839321125647489977204303100594823414731814165656477783402219204972373190811506449450198297827317449818393971865625461387692974698397475314362327321291227853681395940002385848445705840284413832876192327102049058421757558276733775252888150305448076263230079332772394295204446821335759520009598731451539667550809708750663041666174541516823124135131378148457346926132201642949938419175630096573274374268639039872345639280104802267809162419137921107002225823650792186865819841292673709185455785593090624391660057647571320904938009866777887258461174447095240696926075252369768011715231485026311032267054988092292487499732198528289615243202407442089260496571551517877469298711783343144031573622667598211383714916168196556098258946534041308113736292861077063978096097420023721924466318649572027668394914684211315823521458030272348030392982823572284663248317847052175494422607508263379300550222308386440018215785476463575317637781233755748307844573046042771114708650826132517854397711190770008359060214690580009037502132458782492589208521023022949459740582920864040246204902436524828662252346865862594055498063721927524727908000093894310487798445767280014427317504176879660941754155166693494930532067901652411883288776862632575387758480409358290575499766501171534231301352769575507791693254195341933167267757677018663704512556705466260645603759527821560485712387950386465915660308799506279850090678655687290400455005603105228320971347159715204009876146603590708858922493737883172065809027366597607157028379466764669644369925198000957990854059762228669407105927838111928761943269494067528206578684039632414956206861966591748985710692437624316925096997702197880888535807871634989617893073079852849671791012318693902732795403573458925018918368432486100912736012949295585207010271496130333112169067005822502138483795081308006163735625404479664480561813380951761915058445253751653840194931331325178763827569542389083629340662285906122889376266402503706312617237240346163031875714303656260296429685111494755133721745284523170665873243351277745755675212819082033740354729288424789927895684210994630165112781356897348082813634294895833607399342147079724873295539218615895747385730069357693243860470065473068073395970570049002037836215302101892501575233194863881235400670655414452648842559446346629085212899501684087451795671449745983910825035489632904873655590622747900978690070440131813943855824500048861020631943836647439698133967697486922747868750541690820381041405098320678922357730003258874371147140555286769498808239420237306653665345234883136492381097252936968223171797036858064811291163562145708836949307038109546367791462864553587201423853683214700411841652522432341738758745345926608068123727701507793243373359961209774261570094606530983245966099596065388456711961705024765026175545791047555504731218948338366093479883100121613074676237792955212695263660388637133027228643825064388402093064489666719603962457158765457287128722295199416702560600163186284619847472051342917502484982603978844043877129675290239815641035145052786265043824315663483887217087147147450120427128143927652348632926896751180874662196491312066270800853645531457977550291120060372167194233984292954666247858695450479288418452990151742127960686200347455402472253870682534933354842753403910547061072565917613641747384531958250754314216407735930661673723746021521140727136444176469696841280900137696039440836060110187851106963788854087235974948245366131976221864662325581553306829104760226085620151228224668018826761872369721858637595892941747419394041713157921520201644691644117483053773103697038791313261162983732043707433568806595790480945849417052797087671008859817983234558323888007213966751685396504441182868775281545153258470443609071292259402766185666889370067707194867949435317465900774693116519721769566103405519817821220526813572728914464120056633200451355651121847307167573632167031648240464325454747399388534705258493584467005885071928397645627132959555492855072047232801125752639865920177553105659728196997579717183702346012413042863652413539715551159807592847709285868375453276126953756468437604310481753171613151121173890805764902839474083395069338085342078035610694916185154107596816761192633168109441864595041540484617286597347603466166454727052880142449717851045474301285014707056483103084535345615403061173241661984036705027108681523320505298869205502010931991241534091599358788168886386556530217521215434249096021235939743506874590132025538521464998096413780200369141233839368557648482446590046518372552422914954276036907208008915923579207003111889077700363209187681147190985260794574559907453492967451237058063503355803127604450376247526048924075152373995377865250038311222532653875769145605780391359456544713866142946599775624755551177790455790554236307717654563572716224930235187682604241201303484061637228148938071098360489699298759123519996531331099689683532923670002436871616485246485299080266177192567262577590347457214491484200457092937085940572767948070652044904420450074268586836158991685674322757151176958203547271618051707735990421431148405420776570381112251158400152856399885562069239952294079839760763948287959552830574640468105586059537772233388656301386821333335568173375726035783785443379869970274438803092683589634581143075398340067694914584213363413177523607956882714646629846366339436490057796408409275012054474025118096827258857356660163200498099615628592274131587845596499977984941687543373762629529000327963863332615855923693610751952453232415435157636275275066303627436033934832192124157045068121162842083035715469739244832259925045351970942526516323459375671674128690559832242683080841028612746494628322028533192370266333251431218654515077647618294204191052054528764350126567581024843106450709373503105945764945668855307680058251500905549809072447883415943765349578353794945458043467371039497338957154947436832902617970626834252553373775551746295579194493248337538438121868816005837567886815152402370431066515909991347825017034586625414536316132251460395768640955664917066851593275036639592403329296705169914180456576649469728926211071843771544572443512951507118934565095280412493626431380290118425282265550167759966844439381534768196146856482505102419863213988585114492160030095458005935084231379834387289832917507882736729034629467830996146097224768036248629379574396020656295062476089281366363425494768902970318418200486084503872057839631310907145964343030531680910047536772929738290565697221444579339490817521017992202376100802523535657862920269556978445515184465693901645936880425204789208085233502201761778009439139062570460834508898618358154827483529213757696815338960826845212143354948488538251068825585232268223857390892950124376651309059130469443926711212802544056778083227246434458227706136186850490791825707480733469335978077183179985983074878656005754273031337169837185205118948900746498646809318002103944407859207284395843019958582632567822486518047724851061955315441048718770037407732224493800168513542685693687727474418639186821349331918983763947857719244698400145923636543588025003843900995302509108209511818788156280781351650184024130979947841697337393914666135765052076076571624883045009486872079000686599870357215708988968664425454580646468718482353678419576579459826424691683063089264289028594314904197059849711774934711861456278744424328120072856756119101416522812937628535644195808636003931396937356290759683885254416603034129769810779598229095751303419043776551425631310410899033909533343423632376422208108996863115579686116829811948455760745107980913681680334382117704331618139949218060333066125906406569955165808829044265947828484221209500186598346221512861159620528678151295183539974779460246620594838122977430627703705136183162311213277616108973187074885406732701958532032199717988534419969086842522087177543805117761658198469269294824713841500845039870852735602427907954355441924351853152105557159640466827251555545309145445349260389986057837494075686257310796119979339217927154123722064830902283932111134791577366932678506881709911221008718702000687905926220035579831657799432508066964023712665767538090147046703580411552806319827439576734621246571302394524361338833250316807859037437015205265135330320937994981961254259047141696644183961647023939292757847197428982148249666135797714243164923565862404327689645035353606601054606256233170176936373781971605146475183796062247373506330257597798452353468963957152951280408764176483977653123534690943520978039452959461725110490379810752597464411822588898322976954839689807309587555721958010957252570316541612974511227696160936427567140742485254311723453421764866396872307745815210938016480379106847068091197590274657212016349762752584376041343707043873921078187801333759825129433440241525913077803047360065043454007727518613183295524378217669162031748095569961827352677286510601174254559816645628527781148499377789929190386584317956906927038448698608906880790457704640389012830081207900195080955305902068598914941651991761947900731439862541230557233952273919602564298348084537335509751808470764294627946231208244563658506316696733594412925422529464686525058415519428085100042392365054098432615844935463128712554307525817288450722170090843417505024992934584913279222367004133986348448566734596179354493578310080052315026901844736453004949454873925085291386267511079906133535699828008663362774100211947650501174400856134195345991816970583298430502271244939957360439140942660241633123150212169905681810652588982344295775464313187733692400904451446945104798577904203600383183327633190331196587409249511721552302896407692523200446874214671871448396536359585344246092944062401583536490180789362801387610796684478822125180000838282300546610378174475617149357075863132903759428471769359673248406841872717380188142082057663083968921121545322692321087676492105616231940900150955012018242171067668088001519525754307625291567575539056242327746314545576062545313754852083549494317618240577463428527211016815375470600289620407428371842490006320762366283736814341780655638201669013860738228962004828946882799178859888979589353051708733370312142122038780907762561284519546530533112370159643551444765297484987150189004609779925954307723535082652780606256082082555961465843695264051138060190820674656166443739900727104440715105395081175929441769727621974246325565580900712653366918074234428992862928051938389639894899823405549844573926775746142109154442151073897009488042455676448639990746048197182810113693603798036942829378997331552332786016871114932803714082426042585557934347532279581952091088592863217648948041186696045054918220746676549075451256265405363653899184111830268276709880937826903732441305178210291230349907405726324670343529219995040067336038062971966699275888148957577525318400199070016149353517685083778390353104386689343107683590606435243228945060806075892572668147785526249197165799422463935976355814739860015426053169615570114764854934578918650650502018418118773374696464889730849636643287223422366904797509422689483805920797419653408095596887407835588378342643745960388307944900389772588500084262667003632658197172531728980706150647858779075134866233099707018045237287521811021208221516164783497873641792424052283153434364343482338842327566054084566490884482279482353828662921951567307443768332373413673733274179354222947868021562163969564153551455127875401451983805276821962183743919870219649370447629222927951897622816983579392498216449916218102000125607892486523284563026859457346368215702731461775387337753553407787208484343896778772526826521155714413980681182792614228660043122179057475611003173915940327509812326533627134738263346720211181647607063868871384307159494134287936447097691272325149468413131192482580973320514097583282351224390199786184625723690559291054078367952658104352823772982758543904289739685678743582428307501156684798701641154481917169922858085330009268811164937098338516179188095904422719620489829488584667096034133650607039941515108575474848734829057829460971468281208224475290609945565798738846583216926199127866672791825409127454897181082365204853693039530071446440117240098172519765707653446975543662243817915044839985416553446066436646023514613095543507983457675371860158586936878128551382438604406284371950750509528390519252221851493455690388253244578295967279983394458506921784717746732606253033280474115874980693391517491645427276090427480774932647039184805923431880053423816070199995044610263159335313166683043624423871683717928172057115109457609105226380357917869486766122283183464933579437541260271305876336839206409379551399008875693553774093903565629325537274145647547617253118147419336247349513341371213538622304560914096155938503873271819359300919440859674180904220595402862774971193837535945584898921718497450205301636488994379148340578054956132780463857713935629490317139480730465117051643944621073310064488258766662014514948344584888430045455137572274196971443831958273036023672676374040078222074987697745294026161208516928272132060703382937490877616262831061804037871211603217992688845625763225188463237465928423689991584531468993994751453814406991059767375739304315043030991497805708851330468873472787319143416926852092920128745669867147480782399344243889552088776380107168453114381886597561826587966323945350082197416577534812935750366774178975822063423074342285669694990106155582967251186372798188935765811413653694545488418376487928443690752776859712280067543415382631085050236990246116852814289516972896081420486901893932312916157382213843165752140276246259142525945235197172009815759132988822508881874778241898219461082511337866851638914950188709280545300645672696583886908267697979299488203867648190650781690285900097524217447138382220318762555105196524547047753986954166855406789662578625357027313515707656370001743554968603305039358756649466344190961326743244684485635702823954585485143520630842097351794908597094186439470688146941373985297469023879661758598069706458630876416001791009791847909939505072653902034272449705820217503125087312447110085735113240796205785475436904043349902107291014904671763793264967518218529209786090024898726991807170515442854111247171806740642070341351955255888824215272325240785111245337314569743407480621896093495436259941069654839992966808402661989257429339944471195666864865505151548893147195531990283645478665188982553487340892996634287695482192683738640236079523821454350900330284900986803741334194154151104723673612531614402448611741999553029429465786149612181177654096264881119395457675841666676878889445483202297598507260458576324586713362720642443451167293396715677829722501381580087115816354245366431790568982348175093650435434721265385804621131456142634801914328940608747147461530322693011622802264586003089188770755084745977939685256894340601285302176212550711016310476254073145905220706108356465974186941416872819529691063497185045918550570306643675834890517350141969291272097510784363194221249364158611694914557286492654730788245219209684260100585210326032859782407202916185929292038736394771097696114969563573616695632492206748120803005136141029657012024704776355462295460743205883735755316134984180200344830428823450311487106086991235775753405940815599047768308242573334486193233917903029335394016568047533784416153539123538309636889057531488999207759250399567212532499319697133241788706050259365846686402306268534952985996827725664486742450048260778662479892093188278362198126187686618718288858294229149997537401289090401735639792963041815306133641274341635695999206073343648468960872518078237885555081758042798873406462782539772507522872166472611951567328020575596914373406429947451965624029066538291408119010001453427595524337882675622346604774274736744500181426231106839219714260883644046698895536624631322481755167823432971539910419576307203064179195687455164193980989972611727016921252899017029595285013040663547291718658759451723743076973503518531559128938381162949552692523782830592242634273353257339623683941704081841921524817626655817412402613945376413229070043197838771542678719758260434308092679865599016058960370840844675974136068078779148570064476680349093405885741803030867308494221322222064683163164199933361848132383674031210512352155397547880990358888339148225364877624550846081158013906102976158159885607922201277987863743659995738698252864070051052108345636315278207214051684904445923514053301424416744310511396014652035622206005754100904577123170438236379274361146927345156095398179851719092440969004169192061877021253994283613463547039834042446550903086229094792468534816133195179569646504991870276558144072214039642435820314921666770827661372729836355639648223255202491733249436768045827868619559934426246267506617023864926501108461235023705029539521166107360393375592607525161283481680088007719316129517135437027398714061161850110077352442440066236813217123635277611633093937418120862341730151876628044992163504902925182178201977875642968304342101127951845114028336162129764390462450842126063351471429130998089588587871516014216131712645479251818718720863550512622367671445866358105774253995295301695801706103806507506712716805496521089193068589825820415610992016413454547363575811431604005093054698679258541763108715139795743819061235659767800316467746754804529342406787360348299416779822117862065998605480681618493860840780273770558301188516118892844663663429419394366589589582523169614555342109066753394735546464532125710889007028446120931881925151645407265709590415924531550457085226872997169968159504713399121882978059990312683086525121014739415381000372639825408696404314239638977086718666390132692223553935911127369374128677687727675853819468641337306579045680952852428475021025427018115995973315116059712749965719100385555435536800287743260863643202278532419016871390224168880532347352567447926036486483498065430896460900564812182775641944143813256216727408190094586322570121051734035825006064695113072762477593498128028263058426193088332017699316662893820238529721603412162718774653903906744352060532523628052398753727154005373609663605287274180232522382278074712705571296619650177078760094970781020662173199029082007255657661676750845188596655980830410154089853746272071370100234647970207059336872627629520856045342708615617584912517520833287894703007699339181538029180229180087698812334120613039796689839253349920664846376238192607220975105874962005520377179787896986897662369711229567494718941146227156940161417234149241865796889910846977939491160261327875157739017830592209836714522734175282639733095105047057951069460735032729772450393216774865700266696176740207376744265813932506722314908733042941816664305840502144388858210338938743691606064670048558113524734035908646066733644314107808212661739839891756218880044148334061619337101878565237988268732397564222418786859427751998117261467648463123814661345222685210230412522485388081766097279625736818781720684074688866162448828599299021121319546560490308853711035130798079977010243641189749343351954371509971569053791990743928893632675017518616698545937598272185262600401609574179702300953450544285799241870454209382082813264811300869991727097318728620167868881595152941868030546736116801197266844228441088493871845787109813760855016452635441568116269028575957312432595858931445157657704318372321147103726394870648256511175741996470232193929655533931121055755633573439670411609398449935894269670190147824041368193011231731239429748416831886877671642980529368241753176139081887428584164327922461134206047530714315606891518354425310128409301629137060940919620983846848813245391461057621586331286170803297462095108879273400182247876964489090388321413943522130928980427662067208960477369357829995800071346855128714408388645408778553846980924987384342987475342807252603188518715347123514187608479649616556663478220456469372668653636042608296092519031017717804769617324132034441696031363352006553175059842506750306012216161326560550471536833910530315871499914418893780432635565331613554458448590250524817959317367023547456291916894544395722613881128004118386557348472388155176362108498619349410317699095301905032806873612750784881033797168483905159116275484308242207940948285161466058450552105481963480689390912809978661140012774728120959827925091217939973463993697347780107981802207959765400333941995530893144448622072962683769623736301946121532345986704489225662752923372721301376337070871001825844514452628118443006902272037293592438137795035650582887309365160079272563359690353407848744623098837165336061140627496205017385777179981339501428768986120334807845584231390181083196448760282355793388524229474090395422588708486288272737883013602802816168434603158843829566103474091943694275347409788485148246598413291775567460562650628544531668577928290562382014876245072757826521952376603744554915561823967334440120188168514931624541119177251399410904850038956302200326217619241766027495526795934587735164337459212209161336049937637292872860762820645636694299203413664838377841386139764390405091557603544824992842701386854584755526664615572766524440259182686549777964152065592109300224402941467567175226657374297925674277486278903093149417149343745399384624221313204825210511159917093243516262817842584548122113038359247308152795313656988293405301876508602307000682168896677497350751355810214122428912713918237035626397186459339624922876761631043080021952941030950192351587287367514686860887062557900045650379380457526315274715359720165556345268095841224698146496702450749873736006472952402435447353904837223859547231767284697413950672686146492331899534019532323944129347063622560497902641491293018154037131104926853646352919056352399282667864773660660596111242415492545213980977309661283684125438437076487761806667665434758550989189737319669280443411661183715694740190149118546626735302935237858889868241963484064043181415239653943801153230764108383879073437796940087732593268324062090567330423353120772770086277242574969990864439914931341760699562140051374528367254698678245028662274016644609376018667364842403624686318005160763271368666424214773335330669370746607635656832601338254588683680187929510202469573712768318727532222236100807112683819737364085564760832159028903613076839852330600831656717878831474957312775605936650740446872889956726579293844060733630645769001692628325800472019944577821105630248884118307845980664981723761418147629465067596961900564770969149643257306128217325335661562530240088517493646313585747577001000637005609689309177032720195827174917276764291191545990655624516542452129770344799221920328149671731951776376191986613821215095994596976565265110770164958738096590914242537426817322868426036996392293236515461979274501215844566976797607772310640592449368316875333714865495235613536451289553665953898038032614706111262670412088681437614657226529274395750903729195092164900438498567828640896264004033199540509744419616753894133648543763324594035085560449571153374818899666323232737373583589853482039868444222802359458678668316745659159464935854371634979874607725142701517636052480126111341405712369094161946326721662853450643473284674418512859485582871840677016689034995619150370964383924575090438004608931504199218862409244788899504524738522425295378535943690262418787377628174644869350711566741550614840885843516229149916285000027888698930999343529518004831384137977249746503266983673670278164673293675042902984758535021127961692915473280506832698874802446243296214782867441408468474727987094907105037456838009293099760684340046857215641324603371199141042327934183394050633232040094915854996481739503546531495352407443361072971082754353536244545952519544730929589724216912674075907378079866565928657939221009132603743686437865370901753875306505249489804748621502927024050698713168258895669870245655586917213567884806104536965190619746197624012932196733206990733812541178146593750232147359105416534645110475779060703954108233142886201729959793162068615013188529605590761527638858014827067439575995659236473504469674573817227256948394932575425712239643316060743141106407464705484999675228288024585862424380095810092303913063736078602034886675935894651727329416391497970963410518068652590668906576010598178751697069495687382806900877296944525059679587905017173290262888240220676642480896075399847355691760457448549296586658476563629966672247997913004584491967003155993339071697448964517371908091352129868811319511548395167465723654347830707821708249911133932180984215960117329249654619855105862429498447383238037264383871922010917272415616881594404743931067446764043727385516605402588100518643812827551823508566139629616184709507710530978749885362801900023065986014055394748201817334761464234365666466409444609814337673934211688090157760726655721315034851015290331991944731486103619410916534337970466289463321774458130082265245933111512432345926791923912182654622928264153085738072825326631036675490896627882881112977646475732841756776920387632796034560875926372196621333914597566672780041761269870933844131622555528151479945972209637908507841302420237843791117094797715535031447361146394198582356779307131418979993127900475454400678225707828794459591381286011028788535175191619642204819679939412675406231379796038578402002969477634672581865978865971886968772797487375873874942870949462214497540214571309111927513518830841456058247066244296959769243613465631954077749230135104642472011789708771975370929776629412353607426803565953212559601756924934580906962554217389847139604549080622951490220677934273124697507977650785628251319829813267804512254459989389189505746899897460578159878836553138221361554655998555780290765405127584318106507045146068421298702905456835088766084297265548348148872018451935167626600328581213756477821340206197369861919802198962757041319102293255555771520348200931028134304046234406274225178284017782975728791135319596867529635964318937203028640089986649647126211116486617493795115670841990065052597289346534445791401302791115866431082515145831746390785175784561888808362519221592875500718250524979563948455971230316469066974393832648609989696458275248085791246930909560123788280971237169332185576637311111976355540376015846000193738307050170198798586288576534142435931424091862651384991313165851405244928525425398677947802260486798013980333723388689954867622581896815644384597561136397373427793734912268475210573860757513877529626942639224149346451632847160327514356147775331266325844803830049585698829799450542837545248940875658486312118028143821959644318800551585340144987229954842457962679608726283004377330160685467162256505676994466370499941491740052633283132052571717221234221001697501135373357458073185964196530997776992112265296496573295558162905777391833247591779357151379097215697896993795164770417227206733068458097683828781263675313156391046584040801055502383006080117105072147278180494471513146048573931690478988122148469590132997332985187150820186976056610469143357810203045083474999688302136692557961262336902629010745326367913777586392255205974713195004330767515415872290321133976008976340626127930826881468113800313755714905985377904572333222720548505126656308236026602346279991924495820086338748735087584459488271767955547171624598516971382984253900804727291580939341866105646126136403137605798615655618052064430124117942453992800856605453206225531240292187439104149150184506385153376244152212814054450032786269025753968992105347145981080920684913507602472339080814376892508442291064180644928173106826458232356629045022494032931538354544892490754602458096372729346666155083937804871964033828941826574025063348174273871200501649680676373938018477480593124996899178361987127963517683607816739710142468543957309333262836556242872332657393413846101524082391307808715753575846766943736432503378968735120648210380343331976511885383875783875565248708272981259468705821223654050433986051297325745943800163377789446113058266986300854616599965405607228896691334391347185684723641219214947750738290972082625131800254724156244054551485306123486035900051759519456769516243090167395389603279568104899337590232410732270324425593953370255248029080041274385568417122676726512339158949152145466229409006194773052142966826599410754091938738931155799760389084524703436570444420621216076205822751883250550323061790105260036780254970698695686924848124154828443931386310321670513235019281161140276928056183866976006662755075770135952365286739511252746266827178341332405824580908872254824427003584129810650712584904042332896070442531872583825393673200499699115159524842731904172471577353163156572011517415772760199788471981443886134946280184301140463860558275151752614581519207361368103657608312749859831430880830443897265356362940998951200281890404399842615251523389680918527549822998147516243272499397720157735775824569061121130996225896462345723375545313847700587819553557637651467921128655463123195002991573899683228658579901034805658440710117056926893390374826493884149487274626080733480532743648801009747985038981520257283777462632124714798817979090784146450948271514321488192395514187712646667872311951871009023861750889381981274215819569696376303429015248000835033951432467235476843758990584831244178545310305290453068491443817544156074477984121697896964936240285926377979569388159228210392016636923664881515941278944448314992947342217438472504963893136527817654915972096860694601507773791909186649086049868416646372943780874042549808021841350949089425878295970127855438880023512409247199792036612597072135314322611342494692556562368407564978932650224016566358506003531468417753191427426342481527173739579107598506653845448206422578203748471071790390072830003958330411900255600648139079101892867055589388230192294771124359198640995043492708072258390008037233763988439254707370496436260578276339056125223508917630976276758664942555247805050391496852003918829905844322868409192723062563467640768879693139250623788261576159353517429202812609792692954669614646976600361628851944402302082749637983385243541053090501060939092243793525102103838017295149374554025347117354006315502167308141105689315007259040093483158995603447451895925878375845460871730996487869162363208844109170364268152026365649817565529787636393017854748508725217081571119120062557580159521103833851909614456450012462934280398609967970106612523618521874871865635237303413783316480820916239139111404564586783119499510339294784573214086017685231127534779775122722086178520994198864331157884349494499784006983295638441334903753232092907490760863902024775158942410212192687651292399731119829583988732481424492303979257222508838201500097674238748093364431251629796733872239067689877994035190654767876929235468324815985838637180172304802612014200036759551487284568574822456620632315118863236765206426021436391440782492652530445238285588756059620118532243468221295426272077040619334494827062760072482684810740618626281646749172665933641315439253038122938283614117632868695398142805673772191676605144974137293112041670339141061318773406107311817210955052479886655589770268051921718983268177816619123976756678033937084874570079945194081832566216520199377174521167162355374378840465278271498590686775092977481991721169041261792504057484503190388528770009493119528973493340466763968218255387482346532293830429813942115312600726138103857709133023594759595244952945212482772676760035273095763473413713779137967345750786607002031620838918892440151712993800375605432835193990217325670439090208730919143150472899683271462634979872523648301058589388998261352871412248313606835304722438282029577975174498586551419419274651833327516813666374129761890265117870912077833669360019274398369457635625247425635039046676281919858698885274900573883580905269003810400431165810714063950495830578164161810331028549794336891669691927980555843218931780311888741300258178301410007757483231568171696633851833000262498956457946474632217718232752160999318895246525755121993912737406839811051360581047114298114196047033565435494429642483899770099748247309350992219221705331102184143577464914048129899278731394779849349881695956262016274389397158996700437079827840870939066422218092878185068859716861389264620234883293150475764682790986349515299191617163298194213417026892821155437303303716972097000607812197525142817457422490785609602195155842225165889349982069505847261848283921907150455023637020055338615443794305171665064483356776804616815520220851971654331339665818446632585522574341067730817098064724764611726075829858283996835009408238875090831785222609770932577520221110188153072301639054104448189432193311369889638784381303065062864380891058615335818463247744499097537157605096817611129922840710004542536402658909928119678013918299099938361550419194454643927532403432836373305307559178265241615509735758686698719854474839412777175252106372465829794286757454363225387669725596509975854455044185094234825900660583402196715755006646978698376214620442813976450176570076701168784371276684166503628274672797857145196747767367812184453343527491868783817372260160510159821972510797950670216788833771972577858544445056088219290584977259705172999645148243131263123845419187855947566065115850711718719102892598280202338305612258781882729931371950019593170093673256215895444550364218358297722597515089068738763764272512588732933886162748375903181080353355280017939824506508382568647583457456631847904123619381103199531658116814427845538306564653534603628101719840073912216731972012841101962390923238322841127160336144834883529414955987345107091995996769070875392072629041946936946834688151674865976218094041618779463809767475747423587220282112187302822408410238421646010823685129623095253451652928261804690089761272255365508564455161058560354854831746333304819713210168956072899484208635131483271823047340241024987973813472496022858867029636808045127086105695754608395828708165917275718364347784336966233009723807818835548592734516068862808733147231315205645827875939730812897629028274078392986175546891672244351924638397063449205514879146745114926828036594119016066304154053478470679784057491372020042043258042709113138070910647914979439537628524797476676487899616103780209858043755640679127935296132886823331819985254478087329982061035749938332493289403276208630329175703375678593530352227821299099788933723283555617907930909006276685800651509087405182598638648381120199474970887715050752121369634866735113821590769775879683978140483866408293669598016131238370840569394978394575708386559170492129567928246626830196009934070030599073603554803268960244903009338539104267373100537165944067246924275834068224919242515797386471624297369792242631330249764760361143223307818370106134996271465802598671682615846864872523802817898981484796786614217698765081047469002334132575508478082504185796833925918783925862378009001703671641675310737364840823578521793372671469140295882831028249250340450094054227624623665926323592799004469723638249023811990729113575464494392296430098166616134374470835633331061335640054740176140559926251199296861177690079394148288777155601699641387944356615079582095773179850702833390321720240194696693132812444045668390117396815341893967869928676864645509603337818639451616085228150178522107345643863434433641829288319889602018190713150845171329702968804617142663922990672664621116228525910821950541281697902334071383004347335665118782817854592521471952195536161929098144056755927324294345132600209036818790161609040740052276796148440269088255199189154183474844158439511995172896527816103850448596080273623843771658816467501195957751256240355213512540464330685889482025588480336528996841553124432945993207721810314987280896940073849561881187422431346930340608577250737750321973618532894244778451058425698453869306040757620234064145573771798992579383739646063300276243418792745034403578008413362447870990384851736150962207488023831949228239103904944234397341488582901476722471926406653125559178919777815102079815702756431990203696032432656280843279775316261857027931624953944397619379143450136041112161687879794998465817526592801480126174416205587869508989228849713075404475744880202780702415023374556077144850871184525900931862384638449439621339037987249453427304441803798170280788822571486325132694793656287376158765899883049383632119854774783634638108262746921966049582548206854675174999912295250117891969862441823232652998243413252640426055821614655273975649035730875070810932320180826015841163844019031263573704021745204381186716326755342130624012262182583869200286385026444672894796927342843005375266406174058214800479386309758790859375472342726428352225529604031414353606991056909765976113716146064510424465789804290015190252380932032876017639287868315084004425955223986161097551751594168543438311766098920758517688417118237701243790550171042980550540880777934876097040750576597402279630195877161282619515914838824299909211609377925049445357016858917184931287538275616173238021978196561178394990412482392005052680288920330735134018860263373343883070278018077275950242234163507956117950358056296331599965509468036168163564222005478623203761201735277594387784993705851084205599940723155412539719874369567821244624773794809560290252848064110070535399866537068719352445873305866243152167773938339131819124075939868995554825823535351252726756262934244991026137838551059627508752708564639122946763163886990845553983848695729559305370191311621063383832926194829613011390040911051161738886498573644172779211492911393456942243389477761649026456184884486978229266683471306648030188905564238709673304705019008683027020487013368511907166853813302096073354705237765224085324107540402623795989935145856308680523473638357732496384173441682441170356965299038322174660106033418253406245244856223681369639449323018354531885869335223607362835015593961965521928039426788589716834060894518321358281625321498355813480140294002916980426997597920282584216936524783056457982923549820060778731869769919041598235803048148980903541987011008276640358498189241489411878431140868164793474097901049226429093182937416981774835841829561051635437182193770587512146123610641062826587164517757991040257283398485630358092714170675629224375576495748993759399773269961325999037349253995769364253132199148163529128773617651268361307516718304972467276202600207219422616410961139124050734872568020011452722281240329279085266003611404260534313464965306614295146188659109789564988153162405552219564300720212614085176903561069195018159329661877031771293471174954235191023243508133870399977626593516451782788285628236490277132200243383601607064784424602824860597348494985126831128796948048739406179850899988762522219586395148782291137633661525664707378718331289452456997073420850988260593869887348262454944039368936654679926083533540964101917313980749473587897476833930892901484436379755502999094798386962041757810170392734670871485658500940161416895397720734002837860076204179761529095453152629729850188087071805089502218352688553995106273264905484412759051841240413808440512768638546579280181056273803969757417311309397477023365547025778885169685656780836063835561215714281239122997036689719938939227684534955900606454727811351737396412185064998870732001804000927004743155552721809337966449758071657382427737398664770890143513426991569538285424817822368851908945565634812934046676795748535369872085225255577950201964345703286033218995886009504406218119202392441290005287381649551341746271269289217986708169406725374752625640068848754533392505438675612208593457594303323216885037299684790718220213734414624749794403730775008270639490215187438250917467016132891513640870644291827696250344722018028463690259584737998670394736438637527154507232939478332430989995691151962819771762053262390145791073774139109143576538865488907361859508829878776478667125200309394187835102897373071411375711128799808281072499015656858897270005607237691260780615416847644531357057014204994987241380753341574654931753732206748277455355912063052182467076163597395584600618545714343537356949506460089325409575310993892527752284803364454580738015453070566783950941151171708488792887337610169654774138990600192757870321158709608587721647681720726106850020556318864735672555849744452027877442503078809445440081497699056596836592786723454507463939442033498324040164751182291465530832036242225898705238768677492655561895732287425918745233133418813708259253492053542800860636313249687211856863121493634050321045976352774337182035017507028862808101805884697395753717025647511236201221951103349212975360102119635049641404178928069090977472738958674406304507764425243515429714529825746243309950160350973816428643843066637991875241288041583544578773182347181090833482044716253861251389306180773840134034994253890652190519215911042978999338147020195287192596910314970104300649173634140829363825813872338020305897488803901392257730281405918307401420047126123805565729535583032575545693152963175099876313470198817179000266392391651607831476106372013838933604116116160219332531983057694347237807417697368778413381297471238404514890852910458311316489108087300457973697389491012109430478289885707307428322495149627373587870596569309924405583240282727471265813458302878503745234151590659398210845370901681464599117093760647595157127505235298706090608912530656210774542609836444877257352039141015089272416451681968078444715222111218418209317139343780118096276575334701940355983259119490993617631226296662294362974369606140554092027383375434779024295175680849356688003841276276504879312937145292954536559308585914473039869653969155210500387332396630597646717152822109347593430041781570384211447602544527526750279330027695707329627113954563818740270212854085370971276081163627466473439046938776967086617518815170357641770027743247435867521450504517642725501465239462683258204830343279059024943385066332621098175014271157404013186505095631354990551217756833182571661712683645814121149039253891497638223976280936599407397623361584466242940095673108394227016267081209379901444022779152667882570618227284208599514240427866378704068644088385452525096607056609945255519928390552380962622100806780675755033098409897962837051815438815909405038299318372115725964974611591008533450387767990663167222865299562371872943747301370623748182333024236147730355849471973467942797957071732360221819884578781358185929594685433772955976426154498107174770648846012740083560126391680532916550663273332234839021783012445867189369279105575074717704886837357372210137331564590833430769682177045603794469160777243445988749383190937991031476693489314975886535319507560294938202654086242377200443739825892055688019971638664845341748438320861604037462606215012797893635289572510622244705142164683965085972777013572640846359023623405746664394767178245235546904954367535561990441205101966381840296076344064548995476053761097312776204043493425490112831873104506035678301024040917721822104355092067033641199570334870421245291306165521110383063021407691689840243062973684969632330148329201245303864253389666719847181388729299595788374694556590565181438300437782170256207085043886983930124661858968075917232183753034547691846725762179574585131417200865067885019981062235827326831771980876167265378201774616618245763373967016838927915775345718073494201677489876275467519469760895080733327616351400452064659018091004683937052379704019710066617950857048760517188633057338302637838586275123863522928153501287242715708395244030137503642947219992087650955933383897796395321815273072420181934449134997412637998071674569822324888757306368292257982796765357794285592047268348591847785504040423036758213397689418922384495622801802852350889348779929361159883503902160304549366387126543965676962783373041334375358704122539479898282095833645972307361497130583061974668392214362239423786695301713020535050788840619079733273984169500639492976967958396546236047185127870787026264756389469176806923914511319574992469857426322176949219093906837605202006015186759119702488210265236541043248830950469145635478503502615563991595096879671485102028052550872523017047487405158998654453885124297078419420407506698455754399090903704215650980838548683528598163514485676991643421326233805894979125117064533107437434763046447803434395173424316325842979978853872993091199811759087359737740028800567671500036211182017088319138302525654586144873693636512697869902662757582487021098826867345599630086123124313209812787884933383482519660526154224616938965315131228844512369703446811705931487126819145406672493972643481443797835003586917961591109932151952178941668650152448078856436660279541783449603008499559383607558091268853256296743070049845657152971552730599899575561981679817450644578289639297521619847705780543886260024625849069615522267257922393616775817291568285673031677257682334480125497679061761994941005622317491933975545745763961034075828221426939091024606721816558287171307738049113389943314714454774532469207374553967939467792515941414204122970200868777687262296138241648902211966101337322470423260867642463072384718822515689632542338437387086392671171274849529548230354904206205191132861997043590819358675350409948674587163019189423024565541506051987864015028425456749990635217821120253208213294971245883903491721164662195882715175092707768959288501136980285398168522726819042568419550481596550068696674776748940098508598350519236217106823572201889492229884857650380904440650493126000094012060221188665016749456695790826993335254050987438638147148143924614106464154322596975666413812936372429611473516026088710567500163573945488654989816449717478781869229394174002573560116474165524055444886384206813582429654601351103426511797153999020972069983611949390630678674855145116547388746194659194603436590924434726035246844423024368371830187474499917494310490638575059518395129036204212429540522221266027025371246053205547489149302058322912901424043301808087543949456431746723388911802821822326231890269430536564056360215633951032968621507187097242720079855367577910745359489322263887365427313222489710455096542713435639096597521818753506161946395747026530001515682287074042873632786878487930098727526084579237814056072771159859439420528026951170785569470275392780378455254189766135309071079633599368396375699143065789772159640121799093891110601816283592571301066372568000334434046680335705823435168123003923332691391681163257680053516395416952698590281416736825506164563839219020000467875798687207520728527874274686126197238535772719223763882998117878820416220769956032939829601929166836073990723401785942680489851851935723880666559767705390651653800969708671490794054081399851000749649158302498652562688861089676954167643543435956627786704857750199687791596167992160747211667295885484182617088096032634593834200781936813235739480201653585204811813200207744852860619430149856587998597377233121067898870219308032470493776256008726180810241996800552161483684007516032966867275851366535896384141574730469009139248445993125866998034077697569820702709434971684852879559509586426979701965296175559267833848013883854990679409531145181110161690933264291296647231959632192267414545026960814156903139041584960393710681986075477694951378784563148784963593226554391517941893381673055108970838396627410943168726731951443705508075758626974611632555331931944935241850485158460955795476351040322063744695659431784106806739057419099569829208657629955366012201038153145575974527416534525643253088835957090127920349885692345431826049321875616271842489589879210125319305265705537419961133542848407069822271115373006065069886682618944170256292815084047162276714692959589263202279786377843010827910323917027759090725503942324538305573668602747281176435540939485779476980470307583812331824994141999820827792293576851492866382733926997579179875560499617305891966793331015052222929174776669541210362111516549673941693778658876022514290736141547386694712344245350890345135564582183061890925456095502669321723991045218514407697834952354665596894279541452723709743248008604872356508627836549396194746361239178351874891222736390481366919320195932128050364216821724415751738502079122525625453409227647476721248216060855812572909033702443790302411866596221005729383199303693289109644772338759035571771439039747429229797842858410496994776850849647179865736954762472446161027284438509850813271396313864411061712514615797652571432253080458397769685331360256729930831840610293852944556072594772756648241031213922745152380555899265262946902150914774900188133078651003132935921073106291613265063570788336822080876958513008286972373598058290677455340475452722632341369925283946657938421401073269623400223122266286528347936510641334150671161307954148980188058079805218796799718654074929683274526815037599953171166146253288423494028681711102001048862131619872603081017332729173637686778262178149460445619512868883570236147492357817417577233231730156730517611518329021599139161109710667843254358801161695376370832171867039760749214435050883966129617193681286219862089533322463906296549974040294993472461008811918094239019605327653401770992011131867096964757633252881594907665236266273627316387707100230202846856442439283220142515386756869609630058615052533462631718992441243009708283200560582608711765582928747623688839675551584119750479981480050872845408658218140755199525553114112878718593081982105550309550917066756256354366126206166692803263825942323803447068665722879777097003578527052182550902313545291141057458191872598508441964370352728835991710302511905766507404956981906989950673584948694397820350778992262533441279513677252085442948641102063017800977518744451918730995680330206543888818992876606605927832438683427105163503234122564986505550716114017570383285530141686629031425874426693437302662447170496014772925448885748329095382118392119801808501420824316312838915958605003926417887268428145179899925115824259702840023914200795008302042350199867236180599388433353150968952904567739297185183261939606055801462352991683770134420205690608383640393513352307132488781176712834457994540603409606481319082853101200299252936132974945642349770356644315538978348138804775043204115675048557079660804137183112898767917219833615483847446879435872594305736232905740811316750882906210795465730941128841376436465244366200112249363244029405868117281185542287986654502573146549839798538824539772551055201818457353430831324066846529694115862704374541445444092014947540383960384388124008682138635515929421365738983890898003196357830743647442285138071603573039983978162401019976894280140782622055384931812831026842569069261675625694731786356866091249388735244414923165142505642040880299694055062854092935282803804422569119143430061461125382014702529341620697565305736671859832742290712775058091945588287938576239531546574971103179922400059082066004276885530916668597928481167923226567052112685617720454743924673706019079307208042760153569914162371808185048268808717415748515024770145478836161230616647618737986653569936112151810350468359468421817330876228106292423904807497395131065450096972881806345544680409338826422683793939355054602039411155629158913858597063707025216958738524082109186526265573706712972156586960390897846262089392131521084760560217534589889688707492167944663146411393575184146800683647909490136879369962806249273844148913159021569596969013265171356725076347285216613445303449374509478568458785850772273286117658608497379298823877631520132017273068544721849433684890309855600906571280682686314839346492065110608892537688609604186797287816296459889178150337935740735039350661420598705080321638085925409731552631420651837405243070891144758996632713568355705788873779709430865519817008572108610060124808714767366308822323215745594255332120632360674137079336815596311209326697355168496640158183343726452668973805805796989205846427960428165122142633960069801230547977741217209072443788237764793765441981348933354758081130233312086799431153350370749304234942987276709217857852388746507740906126448950247498050444896828574755361815669058725490255787232113761128530950905692517685214355741567075166786004887782109686655694582770107076478923116091245061862989973607772317057074106657116097147587999390821393510290066142553814206161648781335678064724394489793508205575835457660256866354733289127057931326447488730909601448620575456982939392052873940282915464512103653717060240920814462720273541227738226986964177076997997319289248340522392396659372679598180238154649851275277385486825085861912804427935543162537895815229173237556909689638039935116077006369028843771416390970594830359400449416299477191791751058191461312865825478193242448401690006319694153724161490761357268055226019575115550755379555775612612944871682085387874690375781730002176105348359670624749065189910536257824819769421823078782925120457661882674595809302546613772857581917263277903794920587598384390433150462649675403130931676064097088712121028336871122287722903927329089474470108381400787540958915751196451935873638549939446226035937825212805730427196041934944196275108550508882691072803632857705534988062500602643963720191677012382149960276781604287220377493273338591725963228001524981890466146692373017618867485938203446158752693944809086135628888708092847317218057893499145752689852945998540825276846167915080658873508677537771602381376102258436446066200462550081426207962824810392547699540411305949258252283925770393241840434504207541003584686611753043081598147105821094754821719577084613185493613361935428897775811548479183502317272858798293818942495510695263793104822107488808920619288849570555436489343638244065073857233646148228190337749311980740655828582712881621139388225538291255707702385805957149569414627866256008786213973373087985531912756040983271429796440935503280063863663356777991621403150332594614846823346404752793270082068566633155731896343905110113264150280437331486325090206031574766929517863860152126484822057023207140292138079488695700248097747798235692418170128085475765870703219270992816919968776928045964838810281258972820426468639001093027541992897688244365837197481444299304134695938446958231731235645062320494695390854860456050669958949364488270828783446729190258979213946922297789300446984860011407397061036380699552274306374615405100050300884112963254165238233701967428096501390139513964636542156368166420294874461356748387724131207649450332323291523198798856430179594140988269591406726265432239966015165743112763106681857633861568837716021803053991272334663942317290648370783811915079035614277551750228404981576671889039191175373052116964798194753337740483988633899487636616594447137327749777559685349499698992753468000714532219926673929926543819247017359050422134211993193727498298299033841536481804741897910021586843677184687984326376834090502175442821848625211545535758182388163349941171686270334066691855506459258218552425616645987799589547296771481830358881708702865480827868522767091445810037787044708605607240678734366414787958171504367118944197022471274052252784039912700959503607272886429258544026394061924704401602900690469745903270123186871812240490545802883322717190986708943717663745713125277568270147996517547771895520667134201292626626982722935285693428345799769855748719290126890407293825958204128561918678445267553030488152388164951737103468564612802915510323029982048316619369882158406155684353946743216395237635507922688136923233296003864412771619634247624024756190137725657062573730447623204818525214413012684440268243448933389434564487201558244789817028119758697270381161407456400187338763859662216457313694727348062005939858412755608476356292295136048569555530261731430184956836677439898733938782492318545823457900301687298793050056865586438386758233752993218136130330177635508358202011247864467282387365725569447962126131243503289172970447908492280277179679294945547618946045804639511830447294579046522846222440472467020952682172396806420253796194719262822048818123121869548361227039932945711653253009768123818069613594227968546094817377874640580577947139258493389532295412667734226444521438837118686065417581170701863711189928862663765134266112091117511484309754678585198986000359577883645020975120502308316688833023495386324142571443034916224907504263992140534915136338613345557680788758493143543425949806604694195808438937048297264704636641261714977987335121143563838191330673292315382072338567798418637732343735417835743646162863555955601612920862711786580501988870990493208456788565777163612522919386803934441842098331199481740634986794302291618488161057172406024622876840695036710527356105042177651113215629161748851055733018161473752383771918427284293347314737678429279222723886285850472295282726837529380188407462858632564640816275283239122249260968462272065418280625643771274114687391257280786827491906213439512953435156006473916062180091440614371044613805376581631981152070689390536351947196041340550961518861730348203948761765334056556160112215237409740925656815179344546526324387686668895564074644267523086485095798356920188558590923889989726836191172943879489034632092796325823867213376317598705088916726485973166102178205668108381242195475258342764946089991058026787901007123900230479793992686895356230021974403347941144653329606851872649081692215594410674979551529088343924853038865870237340091734469349959124388357657339445083055981509460788269706264638905353481786210503054739281298690543723896445309941294045891481369298734812749316680612197292311154529982694927844359146583927660933591928854380759107335382485622802483111063494153002580842637648622617122148704083182476978907663767336479051267280165512188932701808036456240852189021890140616895520748577296452610231480296378641690547142812424476631671904441217631042134380662285320756030685419583162230538007103184063941613076872051700003095670966565632581236633130530781665117487601669512691687035698826607560969308251102433784716993456353655796439376895994917336241490888986882906287217355787396812417692851345195870859587694286593999535658079419672759881205732863397842393515201563315104487295766741031205837784785574046440474407850384894203158312739354282428110953447955653447746070644521159722194067744763256004198518405053202925193628134145917829447563264248948187963395163327385444011684109273589907951568841885882362150264975128744248472061024369536815919907758207392702807662119785732248324239993295835670467197539437930013725050093584412486607719326798025840574441553281112260966984784993667705421372361240723367991104551391237457496662351112339906397639044799470542779164626456263271007059215165655247509845193661906229526762161426009481537529214636286741891917991754285857745144382435312673774630351149089573459162821224516832935879837151439460175028351456768879319270389636559636148910941843559958630949618040813693974688828438088870086898455166437024822598808244724261339283775353847320602253180852095226054377252553253842110302995485532158644639982293309851925394390139880980191838457774903685315822729204576259395547820885472957137921198839981358984462087639039103792883476335883642692594301299992171530012780640559872829463713661904948272281739189660905206611290468365644384691877900038856778309064327678024872533024273706083252200433310235647625065918491480743406664469083648067103893424515367830188174208753084988084367355085181530957083176061167336497445314769338207054497909012754180565811934716447528574306003827836617138982785333547114000913562611407983738061356746649148480135197879427100573699283998281267129961326521488518610354155625195854086568200171673726047998642586319579727539986420046162638624279905873378400306582003149484862881714458276403281695630234682962241707882576719387849020676781100351182628437374044315838069028012598376255535842882088879823274529613406318355712001749894729319490238541530279524605911298716521525840006118886620705763732692601103341889356487215982140176240750678931314734284518199495113599362381547445046200304395917537156684486173876496076853872155538431663992241620650935317330379241749250661428252101334022131402411029204235753417822049198417921573382992082290857306554844339988480349597562086104852200435938106634815364335536753809117988298820370621864524065505530743724150696195052369036722415901800941792016852453568309389240727206310087059997613154155226379806030726008688174184769258626068888236521413186081314380318313275785355898127650650493239162576656727334741870116556878012304254184383547373271373764940227339185758549028976379512688471310292928955261649573247107341938494491950194328459216881060452818323606109034462360308875478534959152640019940890851521534401673829385707439495642028397951879635405751671273865531495729846482439425025130874860235535092520958969096144231327958523513487789852964049844005963668953200343219121196979804780127885961057925956611125190810526450188705137360326363123264845314025993076304637397658405466780179718759773691168528284549566058702910130537852541976730572703224084933178258012482098256436208633379718175584503432878817754247029296221484898562864683945371499474972943636455608040515762002172895087622235031284784009234512248297131557990714504171030140765640504327565223156027880413707481504198624257077924601170521356594193848607123591544153579953814287667738549234936897378696510749031247550356127229724506745366232613210023176387234419810546666056060220837455266272537315280706431841982713224463454267553984087927239934487383818883899911636174374224880107708562769192087399936562787180350186627565270067902285383375626056797397719426075270505764261975852381034877909770571260355030724789872555469705560869331346413867281836038558860805077802922636091870525358698624931863830794632436660152736784336050296902983474923795618651284102515129369144743647030156480093684351440138461068502906566847187330786475956242479915395172149273538205703683419445013382343162383493655365536316230407421584633615742718311124240944861298291724976857206108621635084321674670760242700008919907736661883135963687251393779678976052215787316326305814261226668502691861257677655599149769497643785142525594471217555541597634070870603916694003824568541662208081446157148240271954771281950539919043345129988544341291196831317625969308100362203954507701997086609571998472568600792781262258127022359025133661578934525155834520869547043316953265301075855642093130168649349766868186044432725625901422607879447920201546400341527667763661754557982060808357806052665079551754165291983963045855077138330302632442423352859115454876588112567847545241452914138388825544470707913539622069718445753376085413482228893606333037416117363768602732414636500698150839523390236427369047184297359271282243969865056617372567289382507058588460255496071318028396696104362848708893013163218191282991300951947396251428178008565049930874772868779347634073645587511677565495904218524197096958198508535319471220221359240721998291174621638323961867736249818376329215091918875251327157911665288455245165568542919410425364758110911985330507985462464241263405786913846620445756428183870713876538784674387292348369576144767097941528453808318589874529490455690680210595342547753274952506224103917677091915722496244522530503302866187216406828619032545059649150179256728641488369139696566443664012824874247980211997256590235671260381091224697748944493735817584398882304933014155336452429944200003892496157468106099915823110031369418628935727854313530589173901104072359671631262795849155553347485105731287968050161323686662182687422380647204950668551707610990413370602252065597568264652028863542787566843184810886203456353125866952069604168744714498068888436402333895672811128366072964679561375202601818840999981516388723227850261652905598243946858325706960285314938414271653352820363029668774607838996372801289498334842088981601702617299026457881171406294133458739257860460680245570210115083453414090265323707066591198294336856635479189810483264996016381852559762003096289581430938464102379604514951122769639835261835880509457396129381653096900249510339031582038867951291080643963785772474038995688623805526190528478853170678888202862254997344528886005324286003305683271673460187473822794813393223997726107905394615397907163813256928238366441211838244480030783943143422864329070398255138468833469129327890381152235078476429581834140453599761466377731175521135199331279650373149835228886458516212416194239423267701265587569945733123784854182931240241869597293996779105092810990199866834240590396298908191489002333100809614811081329131271610054669114228963417477547320864885264730253847474365767390429136402575239272371610437251823338398986206413370173698871379872605140861346524190935348972290778339945345382740970953447287271712831306460420366958545145858203869671696872426860103691332466790969747520825015884393259211049420015398284488214746684113521088566005384038033119101751619289415160097668924987911187268495535899764618732373165531524681697866024859388947124235536810042478378620778150743210912710684217015882563177709633709335813577147602404344630269593599245259666398121527441883770090479610819258477739072949393566097657179043046523947419665366552293732511562314968073941960323691522281057464790883461328689371781840442590027281715606085684365490699527690904985366996809521608673482086008682773279872381700645726753977974958667158249241540440257112299296000618759816507604007775223950857266711319024381117870230265373657406822797600513821852161564003479137148280959575306086076120782899755786033650259791958707471830757555673781117076461390663033118043497508801236076987435747044214587695009275137808961145227686761789064086586531266691768764266366449256772774330463833462927226538522190912237895480068731601644445273111945342561246423253577271727045158013309981156182449330798240532239161224523355824272616146307654402108378533676629557350089141952406727866267419769527568012601883165251588873634620654821291996301425174872076159226152079370060037090881323268900307679261246828406707191811690320585734019731565471378404770313356149745874821821803244722050489984206794984753593182512468881750673440868844300322563240743709155912879367054330175009101929330079170832614730055443971150868220588642788322211366524373165971613712694008761405641414494624136940726022439836086734392909175699523454363234947749478137444813757823172643917318779713774317353385225444012839234006318035067439975325981916847220057352164820323614489060349451597492403625412365193228239240807786681932669095577801132598667896214410718039974417609705438353867877711343980468355804170131541856286246673037838670822520532446973197784110203382318450801800883531855974605999555953731987471025435753923264392567403340982980463811177978070871682088822235959200813830606778895337658373164945562100618990494373618279852409983009063333647508059130772924755752662604159411369623111270772117521579608076978978611376640159885315429425413854866174660047514395638122067402997806775631974359642279872175689885299543112881554787787510338234085455831344964597709969407438871862044759037457582902741645176920583673319369731029174273285966653331396748594058215926058045309041786692612854724579331360255868002265647185634475782655316930722693303900929247128351807296323556273574250627924662614043754823025478937773425688897919860930009939635528016738956684026485977126234895954605158102232486087720926537751809796081710036423788436878257828294143259918416042127487633266008998619665216536369072331100725867256857851229683474245478494120136783924600467136254229443470125137915845978174270809354743030203636917139200714246150864170330814061626352660676870547516022856179170581876595508545291029787729966760298172232258984290452278768047299807248692400511694990100914410836994020677259274791629258270425483542300370099217159725848294313690811461901976400036128257565575536412244030141692119936344270871187121655089441029921012721009829245227976954535548935269600610463646386863591435080127313459820246999778113489738059312070133953291974520508459701106619089586926946747328181558624928708218767692075104174793136507724703623059138208601645943456323788050522016871733042521387488953472248324737106317653325222325467050065325167141630729174197764819880314472665542630812248238676961696066082491794306960677743651094911325920300879293668900845627217815484705727471159894982218385374177122166574543556105811077474115588933026326983048749667607687192184655284087539376340714970041065468124961194808209225937569919971579896142223402903100786776802632260156394914918418774790704289490206913414716742091680497232164477683782059858215312163925576005848801503067822696422704768071583124775302664402020281846442947980425757267013225487050107230753064577849916792607360915643462154157612750104080805636887398223857202918576700402926791923790553102871988788536724226551339934785238923399314455429595021971615751513998001196307853221524096933839804385040144533058611760598182693459674947164918706303919823285283497066714793787288614551567572076627777655803913032295530415042352806972148549000020776277439011841259816725998973034598748372251506921621213806473253169096625223440236754272457637556368643609040185596478513272026068775850202078187839415441209765514687996125676145451928030471747044251480048022491987826828101247087421455495914741135264021093336040742757256333080315821897077749490338623198790826875412172808774560635695217312831267125498792893791347991723795371501316121571856549048964120887690379206525200417711175340688773293449463618615050427776742335081944710421335416753081524199857577543765825531227776054032484474208710032156607458528272065352084102071495761283740176097201266069152463839114265588943314070811264258464882118093090284900545983075312028389192632325691683168054102440642190762736392752229281164981998237533575030842513504366085049513266729391547334380837082362867512747227845534162492902484209103420522098399970803038938067695972345293120327272022342561907993985860867812864510957110431244073070762045975238206912885489308824799157715061050562641925895554604063934128755903156680476666328181284908990248277913334596774059760965889814870106021805018716488331397680771889034791918760919090952307272332320694278041771920256363426497012557558082376938902249004526552579673670238502689985759984422373476026233293962190801011110543695183198718375762199077762143767614580816111076333959637240878426941140639788195662692996758056081241219286391209892792304681433275248657391433644663649453286077361560937574063929727841632147705690281477534424184369618642421886247581167840665318117490369448767908651305620403110978367448569792616229820394312849245652551213555105778025276355254647892200591337270488069905853044920642191971344583277938602231364052568551845860652174078397208393010696347519852679269572114621340373878481395143481782409305326531054649488659400059086197855910069511654894790460798111603262814220718300022777037004496993049759773065018484036190961072620041518896376761890516438127554530664152731651534103559590940501966005398457288170646383231378891377293406851718932494359404174822883710154005213160584794072943934004988160906982088725338009327071714486991261030609519823709750127009594435440824033992546547914337944966618354589826971265777905688290236723477342318482917207601075556480860041500593337242866246128848070691257810580489000716125275864176057778578501363481228207872587439217318325768373253014352871060629215573547776068787817346059234695704186537500530483863173152099295936290509829812118348612128174979093545711667909346051698970839593970276962247969451218308955725819809611515226206138080650083505484143116945733762559494259434889220489935638582863905495077648586835071634342182830507044886875972710986662865214552899630310301558541055103924645033082138844520073377432719335491797325830689637394887533708368622685557435273863302249472313236593808589003973925520092146905620890577422305815884773039635879823904061275858616089669844562605296325332740081415714319872485838872399615381163932150267456123241060871196488945120333209270547207565495247875795977503848012795276063329625019625571564452971623747728471935621294944176685316242225218482114056806584798367950987484807827289828122624804719798613909628000979226831650867419689954701248415437184043969914402327330325660816207169925468961430595379780625796505822196497782647626279689737839422008897338997097982400743699813607649272705912735589959630707739283176214087334702912023142791519922414143165443832325330284441748840971298168043118598617991008805998942540517089785172524145319282269346330204999772494639983216413557907384021037413400076796881245784876246267189052709038944983373855590206839978822416231660745755387255333882523061312506321494206193228440834201653966600439201376904230308019059417308520432427458413015660761279342161205688262697518528792231376939370661406800145702496764170861092022813469805959079258848849773149089250166708305895590033925610405336239110116366002397771673733101580265595340354801966027896444873662800611807781934398901552051881322334128568022566978181353430414255010093210894700060980680112058558101790672314476197929111661780928942006725299307432568933255620500261386287201398819055167994167051358519967821658270941844623947422714585485133794141625598516948596908076487227465493832417970179498668859066761626955525244786702848839750927219182486977391114189619433245044181515703886341770745928423707599257458675089518556052124105336907309174652200755794099821963624104644096794013328805587947102895516146360841981050130191981573935680511110147588260311483126982288923012515314498888381919645513707899944978983500020688310232106985248515850908616665963421865498525234507323508980808140361323577136124270937030087496317216380860065933561797268047188999838658100432123093685741808352783979213993005899421348530216715772181370563108214941521128581238053385267441267380369267443415518572361491189710189046847740187424656299311039116828756399328996347012303570327920627084617990507482970905843748340463198919356913095710350004678271763604620069338339907894502506187104889377409309596252298537903728000441761573325855175509038616844257022231502949201112571651289516978848268008508868661658020661208726872496128434110864419180004138254505221143176043103421574457885843365232053545455693125097137146972668214601944836006225271117233342575289507243782709115304627812007371295112915570790684724671628540959653194386899021935479346860221803494357367634453600181904009735305554745760264045732072851599176167104418289278499321442923583531513856326499238047904452495950619789744190918734043408902467391320325049616303762916858025453090682647624942388677317013005815497189823547586190038282144140645792412957734555877533515968355983756626471398230879842714087511619848393520865599834252766984060701536540903654218551041484656812130916063643578002559467886753591500371181072062499537458534064018992266674857520059037459180386378109485969399410972623403559629225711210728124779466513235854642873131548337581491215427039942610195477705232688835500611659435029573419263619527201177576714927237830582249254697390573082517053452695138658534211093914666753584338551330206628262764540221983250880796094695000140181100726141143328053133264490911666641263509252246202053678718307576424805226419597786237869328485327528077025022463838698198016182653938670794400106941937951636190810412765450096494214723110614965302013742729623278404683318866888544302241945862941103219300480334122789010580806260904710628315654384281488115854332640837593196242091692854748881709451433245652542378463644629133977650352686888864528059624159187727966832435962403324104675876646276841604130654351335406143068361387820191857814229200956848381762162918977709680660866790322320338481889843435155357425112714816269346825027324975736570302143969405215356120162273907906461680203559685458335754064718548933060759607927184464728662137757857591607764033458895383046550264244876555743597803140722569449521679178080674160286835348732355656896255520644486082893566192985547356784717063046726915899953365883500945401085671472597102673714966481507282857380378414283801163630827664101928530875452618788590293875934663558964132014851096607506465537626641835040661005013213157468705954974314056408960520819552621171540507175639901226161745618579567599456849712352436062919760187648119931274880246857077825597502411490057296218931281495142452918017057476117848436789917304220939815462268464128085819414178318268566770107606278316723706940184575709621032046482438571568560577783916707820767170605466714267657553180410484240312293937815514542700958195401717792969233473421392261947545885398228994220696089266331504268229230037647852789018406530561637203215704077041675139461568469135150853423017476762371867275480472090753583955494705134726371379396993251499980684216917689273880622934522397989750796947106078275588744458977048487318147392031052912899481957549912769904655805852297248096056211828834248181916024432582477122425778233581812291821507523820393888865345565278692202909356470351313118095631597985427871931583090549322244213904998976037984720868439880060601808911346406685835356408112583654440334807642954463665704619898092651158575073042748647419489560093727515122668700485015410201343422176452815066670823603671810684299035630673559387728965837294859316703080651105538152393188362198058990849386049442190655843442906945962442158714586343167944408318569417085318265546945299251020041337297350480829081804764109271267559598927575317575198672833187984815705626562622929494856409427599363914148991712498840670899991247754943064815301823379286983734021554209330597403929210971832725442418255357404188498536832441145862283368898671429097291458063331619145990204360011653855169767821995662685482890710408608615047212461089141504713204445357507252097741722019350204489264453070396100569575887728622690083900759472349778069666425038958724715260321713289115614179255863602211975889052235395735557440909073091879603963940678128682924212952177941802400635286492094722871759861259958680479944979015024304552844343339559734545906049267532722691044102926882069904638239130370244303688227164613098246333125715591900102618372008255342701170129906620617284383312180564823730746641906386517452587996458638851731183278819204796395302287670388253850212763736874978562382966646110733252547585389625257287733739212752771293049269524781293629436098538613382989969008030286186946027070605975901853454904537886546202591119503978040866824360027796868863534845008285572080861504205849250240431148179823534377533862543648353165687084326819490187473032987887959401637535610710055337211980228238524079495652702779904809044761532784667164684609607031726578283053145432438673311440490687658733915835733406512154373096319074913036898068560518530585245975715661454152516442157164130167574901954451354556977449971975263845082632265517190844094198793496862692156247690106094116703875409626791688395979111144486701773020868846204518592523283026266883159801568780915982127683925764432263124813556678112419256972180623012349678553541030766074531916596746521269471800411250045003979694698044610026576963095917390317683727658017558653148373396350464363982201080009209982728965538394832713568488854147971859124473504177594107840030157802614828966987714573882819055379579570125629084342753859793679161332248535752072547035464182445456649459000049525465422065701823777505888175578998513670963496313687302917696493641619397213100388780955451100206590380692899330909568901085319391435232983182898198885803199674033878210897405442149087347371015266461040639693563390530492940059388994602042299247004007322693889965045680295465097107817049181609485798291654471808021907585434710888684054017952093150159942631180533720633688771546217799573746958401300539823110722422932761886263917599601223455474121510805087280664558483360599163150855148524977756486487633106665420863444136120138735246255583938842450423638089819717761471954692904667011373964453591405642625768199388224524054165924556359020994760945807267351852389077896998300271683525032717025796401918142871900390687963485846067231442562381756872135529255862364661791905718379984481852181343396283677882868188036494006696194101053168772200231320824018586057789373986118224053579012200445199815593479439169948954344724302999837432960984259724787400191383726828873313989538843846046297329139749406491918632839789065706231267783601784643232448082813910673001433210093674829028202511964112541091758035207980195128871826162401908269384676450199964489435987916021245177451118869819720126213618456471014000480119521485641397006779954299989684612520295743792339987972040828733765939778785427821496839536294762355130210571267363418689046747408070530653249941021877622213913906446711518970293583192507037201307678090423683761269464294818137104772147106408727769071303990606661306598873053396388804102862258365226315970556616217376112798033585323259110807728369111227880978857188731729725634841768182615592819661556586543803798719436390424588292153202605052926452015418339588858466709785829387859258092817443010564580555701466897975372077889305169804342840650261727290136033088899116175671330458425893965147696152303786136288018146689941700918245716573653826659902443565683206095579331288506749820176084553954549223588859932312914987375153446121050273493098314622230455918358767729876413931183205857937973003235158671986125541542059392185713231900738898734340292432261191436293585039015539364867290755716314549873305162750370786956888593143073215746123786969002366852774355463934257821457930912041825707020678224941521685858874882342466656028134247942623414317755934897307023909485471479408936197846131162740665128956656248503256822071719965295889309578646588955406964568902555126775237671182814685504960015684543562775864975318044032917968690814121370933871021922179051151540695796773248526040092092988727812785761093274415131594954550283505724893596230448064142435762120057195581799280616044108314128066784648260257001474102910707969109062995462631393930663794005970847610293322057464440472806862883568963153330915193081189653527883268778480041989801215083162679729355717564779289086958902721537671550244490770805304885288228547257175520372694115188757652496757220053899802734818398250189377053224687305710675316700331820680700429869849040584718431263342165348108405792676978425201606307234217152909419546024989580032363849374768621460128557566884008436602186740003810244606485180328408687589049054688624837762407187411903169291653807213920801193180873465137584670168347706763914757759532213035607110545849138208105292489300559572493878542372657301440969923665282919449195016744493838156915278374076561766781886403446567035096028345575085570057578566702269158823622118222515075555455891870566804473658354984927705323372945015529349969673060939599105974063539642206343131842113684010397120405903595462877749585260019583429653575627461293556015268152728885376975984188951314790716799277405966902195472380672835438968644076028636276496497251066187231394327121004436845374667637412988525097282509291114911741935361496163406378975995436737065773140683443303256278341211709305747180945076682998907880830094697675707273122184756757955548973430640072529026990237236480613057690416725907502752884043447177324405296599102330803142077018488729248429973798546521890573496485933155543804729042789307162700781167481887703111763529781427159634873823674791533997599709935264492106830198392252822712414723521807721578086248700887428971968906395699306716687034092806502344967314136325046882761907619009770349451437974085021597573849864209048406229524854074337586317460547659022823832781579373882794547719826559282328502358011622357355748822794616476644672297038243153923194357191676934794637966668659771238135904175377363998108496616912716688456343982001681720540372620575841785926389838537861091716011236963556889270141862803960424056846590462533562989325249482461465693787568347489319440280493829782796626713761182160882040888515892284315920999172040054196636360434408355418827646499564751152839748646141033479533833563888468562437385788462940510269730009689608717478440406488843280847410201703429713310318779563851851425720317944648417745176511692604400349853785881859953864504893804460831489682431638597789630446599246784073244569265097557068232729042171737713888353578739511924235275444226225756811872300907379644080022394898855578862326746151441003720947773821377316725344920400661047162010648922780244047167466685032010020566399514216414043160141806292589383962939244518123312524070106057120593761626517222412155882004310764134415488816128557941858500025915595579822261445688284971677841354549527867821911437396519180874483028025696839108837982137950959165695316827470618757113560511448742112515608428598122122312760540738827983341024860151862695626030742283341282706251579429305854339345170146828516180283879969331529950803658675716040826914802108512843903360496342739223182243580957124891349612846168295762761924616019444333203552927272364793583866713424517782849197606729149461773331087690050013826700491561963543023450375985795095690460319295972338682089629245492383673754599435648415851413738585304063839478834237151208703876700687399293245238364220335826023897415398185506460773433170525741981999782224935603571803216485319908484300856385125979468927895852129408625854378720778824762149737341038985334356867949772884124379821565052999038949604857394548912058584071826990834025986095056891717084671199393797148659575796735322973623347905168878842884028927486330215328762230493546279345893016439564538649504736041154034514124872618511287756716761587965297056233300807208990159181554375730321635340253150936898059079384820859729455746597624541376748456359458557926743063344182897587929064342703239324025169359413611944039681573163230622544539748467448353807306151434467465382926972255547894672153193856531494725514569041278600804829957051876338112880464654178951960393015992950540248552807399649123038066484552982879179225532881510783239869572036801300376593260064471091076125617247570515780070138529435545195872844262045744424264893208161047955438398056539192771698772034848896366644129449960811022766707136613677201740946024232027736453931540431277751009960573067018931678646310528892259262871428751400025014494048160541703594064674155749264316102454545301971965338422035630695665157139831794184933478636760687624731696994479238569175015193805116593807757251596629689092057316902191568074658602579779110953079735299491768705042231425235925090069146744037114711260950726234224347311621452642160255866767419188591811593859596758237197451224850087409565164672534586296392637779861748609453234312405071129009761394270504932864898824869825163719092473522845678043039253724389975270855476585073928832749241600198902795713257809651554493659860832625526711293535945203930940228960607629442606848052288217295124812384352278579664220677389923138814593600970563739116814984124600730565906428715571190787875049175190263035246060448332497498832578995843303026335147604757579622517293544293497063149496423190048755619401220369263645885242231063279504801957690588385363245522525166424773152101180706289379286933175832512930271555431407356625719684400276227443509998681970848434988918188256997100325330235117947635379066997322708110041168630577690911127039555514994359756909074820041470936802764323270829464467403631295858150547338291301799423820418043522932848054067201197016708929077483054429721794012765721955958209137757438405114464485009941884377861117750875610719980551802163240188603108309133489620573030151329262242269925992362455652326397330838624381515976489179855735921356472692467747058941798295534251548751732507809221413068588986680655583593476849687468898488424248346771833381264433172077375464355065401712371255677891339551590025825307255915248792694045333139356966160112615788157317383141237520504736666211457252959616943282046850968085850177114125389481637901058256547901436595057048375891991099254841486179877122297705100455888037784915900561382679224091616143144524436225917122952819216594202023099359304529631050373407922871799016101738845880179535726809498464392064621057869434641661401659429622425374391477657738788118174407285024660341884276901296440842889605397861172521307060374898904785774544241096483999343393764065782247003495670206677095686889940884718128841705286456149743461912201523296272194575193597989418888791620964245941602025845688680383669134578511809281871731429090551331773168593283192662059398480809694230041018245471000433978395850181088044533316256082012645684166344735600254179673987434162181224132044725786596459712253241918895581020695041488537380036419655771963794959420274739338371591306143774638618284501406924609239646218052746850938307121443161873514398346897029926375541783063573837702520936328212373318503016582747960928769290279092130795563541522646218403903026961281721623982581304957592918360803265702746965147965335710905825719665479742340094024074109847331689229734145849467427368465927449643518776881557475276952412578155281091537661608276316665329856307661207790057468161724529237687040962858488794699569014684822435113567018016532771475195284636784701537811922072296727293262738322178601896600947159079131861916864951389698329724017972707738406954734315961965355559788172894586771326890722886367326442807096066716823567676957973265181284554639005278441005035835491826030667508845837083470292069691379003317297043992278726605851027190490535648509259278127185219403255577106425017101528343225669800951928419605372411400776141113365701793168887435132038362715059920506466549505696603346330194160659546270465668817576557966188954741078441857646425667148316970819623755155081841096438357677579153765612117549864100558151233220089665642141800358787664789189135792404716414290576852814575853988659876845170504076320112699178778085200896800705263537657686769858786718089203585978881694650699965573565552298120486261709228147366044170920851795915612226485108725547226710641915158946481343515354381978070014021352847005907741755174899711701740668285851390816396599351984915942032074906018716456232124202075964756427532435240906104247261173188741808578341738228991100097832278391439408230664059545968617244733859324932632356020994404727017525959264485429314943149494932601928457606281137699494455537489937718758314822567668327787081604465304344586750144272576136812730466128101613048154224143180147020386031921993151806548887794061352104922329506624545039005873832547964834857085541830527547297966274261802435304394279131659252578976300361743151052219091926380820728015440035594915761151870088806878773170542433887010878384943676785666869620948364117618827153648971187250762688713778264782639005128107657859190371654373664504790041768410790209467418334082829464625092130059713713007171947707782114831181185063581359957436101576643856386183183109239355592632448126397920590874026693653375519230209850052421369001658627362110196034011030533421081309935404154906552293670806960285096010766879843767719874933634398933409988159767270101971610015552044374549824555676338404761186735709872697303467822874077027039878627431987160221554768117642445298699861796576759472695075268674068441634909892373365003919063227334977067819546741706946468223335544716089344221616833256492196994158209101065657287240860648648631760178969729149623479077885601488757556262840129738419427415408205209549971847064074665489613371400894945772521146041781141172742712298342502779290508759182535828819839403666273106515385142657428925668819672331427334155729503851293001797273812912741114570793455136794418658386138800385059742988354951365179840720880177082168641818020423490429981026418025726279097483009408545099074016131919171007155680838638994821043020532980863463835371252186990211098356767950669559259279037331736629310293091869320944293118423525836255041900201893210250700243026155758274598508260988765725647352310295470386376891562569301759012476653208489408137148881394200287624533809759311201596559310190790999365081221895338484807483564622923594286897071461065038062086602318773849049164450612257992306603631687428822891408274302987727832517160165016283806606745985582981503195729903808008580717824655037257862627644516581149570957627831283893603850512067967508314018544291488283339988141235462308815772818130277704778519359836609654077309334196908154748905263687094559399821735381757532756842367605296852467611422999802701728601413828541927636672814080613613523253352490708172291927007902658197502471430669477021314824838488132316150006116126411933405784945581631376131466179213327761763570884114195216180541941974924862941701503036276146399984222666858817691527984514618830640917843996557212953370093873936223670014320259675931560426740084581535811898996711761089448494538548104377194030035486356958879970456480799292269506774993644750479496433527099068002042054331635808145236016603807635490972879059504988988946746603885572792402943752545290155100514003029240185900538035928849609947704023554266718010054817060771375240856758808491588651151232302056006265787354693243094966668548979363491132640439539058911715566500231807624568346942627212435829147754297054974081420612226343129957400154065975961570972239741625835174592895145426045443305380125354545270194270805875889260999704567123788238456487019920790115725321010327011169582495011126792333957242858124377145885981010962763102603841500808906079566523540673583677915799218851845938966530275920849727324699658612180245480587616569832195944214372850879190009912404365625014908225569361257817114082119536197750354481552908262412200667207150503318421484257511006227411398690553752838898861385477663401158091164856302624867153647188543711835811041564978541821851731248320362366085501862467797559043317944615293869839872667569262045858127488542017531119788820682918141695947899557804132129444120377564291870906402812409090141275646909507916156647428423731143289332610711863581974890655192963098418084602062567620431440317307341594854312150686723275800359270072750031363052568788345037860681866366112771622821035179703724656640100752496005049750782941330449811068434706816802400361704001798071104385417320253501078235994375904889862614415019537103789523415799537266687928144663641928575664564321025258458265494655326149392240648364705443034152669441605747706540041322356444849270775802788571443421113242870918928165470467906631520317695545507723468700188614591132282285151261356030556443233752550715990255915663296312464880498470385508428344444643045259663905056480790231449279706680849554696407710092859671361376537430708899179158057330924133395876171071895984002312845999256642118287010195000469700283647882418141662866319929239071538676138613257555795926505255997375379253272037527797390928488871073736284831304531551071385395481386091306262526939874450896244724641825534297725212166546427528603864656477293104419745761205087282434463181614702837896296175138008401030343599957026673584354374258894740332844079267962792462275024973361963205755826123250655944299842311854907410298240455942822400126429053425670518837788889991978326517680292818351811835125282554514500804815868523846400703613202916261206287760043827696997161364275149591930931861140282217491816531513099011560291253578413605280461455338445975910430489193191568570284959228547446035625343997448602650104344681140533418102573658124943583483343236644600258464546221590915336001684476628668837379019295192203876355568531345330826954943980309121847330076238725745991252502921626511036107781253466603523956600139221169094346616555883098169009182483556987746420442524532142975215250601393389551282569330601780589560545022900043790618614511704657710519865109690543407337343101712388107404274789835587475297174226551736749710638743811051360907249582434461982620283187110037816682057402185709241521178045270843582995226974910912701467901744936352698288540140068747076002894873011797869856991157288968679814449738189708087143896842942877709591908181346790852338616809966438469796675822954966234508136185888975954171597874927866406347481024259317160943192016645136335818933484612350642079692779018648560379903714097925531023253194244016291511299762036187134252633449977182959614452937477936187789434396263253759167750131339099623934759878841713858873160212037675592169910063188554168459289810913858753009623288907409453070558992720988446842415271673024494908633030535765123820987060515348765450496959319996930326646783726659404895724566195474422245685187705610850772262081269802952645744528051731096471263095567844342257520399601177453186135290176439374020852331575470896141782483545233129363101954405948332157304078722497659745458877135751655847010607894904557369519319015115295558976699781323841796478533941831035811230966281916600916619331461823350703663075398466353767938679859365729781955208366854681118748942385511076852099638353055473119966497775859812637781372346881638386190722392562049898819924455523284194075511799732167436155441506474936811802497271647176252727547013412424363463338402345947460242261892147394233760399387500853942968185712968303619659195636617488332134930193865782376964888960150929037262216916128267384287650930486246604896588280096454395539906384192280677030118700892758981146881451396294866677320639333821497415829334636057180671972301143949459056412795354920727528055988992422465406534407821191369108055517796651064483245338032062597314686922126267998214192206512888326987382708173770838426794798261837554470810729956898636863321178364098483045417561646533286020172484583134108179435083576783454249889207157865422867379199067949019827016093450269872217544035219781084744255779625068419381726254813747620667312621883113210067051002146542186889350687015288358735079164969377912106968627542761636599999009443489922942348538008725099053460099167641903888881033592596496095452274823862506875516421615040104254867223754672256189093201055598001124469820607358120485279616874008505683690507448363823880369893177168881815899141122405129309445090059053163504388919190217112487765645087929162820583947093735310220213434647261923771475336884744113390463937906060846374168742515062003682805335272780581259737441980413395759513333922315368173466432044300918327625226490898304599422404370909010983260691655802085132971072090859076995996350726006182054147850900068641103420674606030451063595481524326417066713738804605911625061537926917201604993678326111324907973056107325213203924591464665153500872023593966608259392204216281499006203579056559507804593849742386000124739583014052907109222770328510494786846796654325522234341715438422535029560386617708910518623105188164874679263965342949776040380167429075912250631821120732755613591105180023213869897125944561874325475040432622793403382453857216241317592891146523146944512975290747774417092799254307596100612240398119365916364294367582234850518676508895892490778527606778553989671743065218700268061445262815320974974133229005407128264573980911709477744694698505287785997459482827423040211365152143077523389988604576586764981098873840138212067494704430251976132660395495323052059884827545977879726436118313514997690701513354141976789963693074021856199785721266269397435400859402382427053220921997823423406350113689668035425761293313613194516380560440028998992425020124382380041133263515296854243426636181516068665913977822303024525987796225261060086276999719636703336192987895961901058831846936305119513077517383775644488306484794374455471282599239609259644120382401009862235656856341790957566375574713908590945795797199695647099321526114351705427318090918731696693635566999498681313425004959081638548229292875641209393415974418056227318691388944101946918497367849350622208423735807072658880959006853874748255915151632324956763844661138385243541974903975927462442511663157237190458338720617276977580765559219466765862539349641498025971965590018847903093735798519854255759822898538673874307374964643839668748654356287646460835090283053492711248028696413303286938317458540604731083423284398897411418681856212911668912094235676069007341700374276663946102550247261812729163846434157694907689858095213290016706016422779408340713493415332703094205176134120613885235334240069489749770040938922785677692372457147950394307566546766689153874376574905182105478484103381830842048907023460106896685377279239239956586208698149047944382863937139703841728453684497381228853633461186789844370257319549223067429371972428127736645211299754669235099769766238358500167347000339465561899893305985808953546448135630225020628062217169339423477183307789287817545030047452844653683484090095593028904370052596306495416195893433412955962592274518960354150769420623448655075138617104484224144118785150274896084913815956468840368279046279200693928639455030807390364641605983757382362207325760338623450257026927017898173782776222321907005410598073972907784733982040694780915618547080489730075200226922547593387506731858746739662093524134148880613967355486237346551705491470746371123765101102622121560884623832917652050131853439925083046151204972497742540146075167272136006871346011053608698323037802833604608770314115733940906139339922394022648292656965884745694463666936455776174141905809855717117649077623763492665116504062571872823773247131290496875195713169121404287102762707369013319433095263861845589916724253359273872551461292810375056194972021284634710791280432635724330660497081141096779851949937590408209689441019814553719176748614571404518933426204212898503090133076899291360824787875906759279789756764876501989943552410504379126895705449616108624546813675974455103937400789772607878512303921479862313201412648046262989739626783533973708867842745632534060968821533622123493350142685303845512059586627583112468884462973322035868456166425520817855636673309831629331685867440525211388744420390648881407425989053403894670789358892031138852173191616148987223994167963591483850236576708749434379269008094156921368264978185924010128193008112168601636065794270869433087382529314330626451821749343974134658342410557142225002740263014269845191919657580127594091953674574534124584636333463385416594270594393285739015328114738115737075760211423666582845067024151734093935964589584881082543410811148462310744223660925203289283829777370208695473649825379050773949423364383198481235250773866586543153664504343889544732907596872157486527408813837422546585204249549203752683639068858878254618479386832929905456098216107865410786104491758965213412370178248798326348990257194376456304985697944859038388734258818333266121523242123638064286081083080763995124043568432865355113350207192223439477053085716867485203875937446826889575328082506833666270059088892940191685382964856063121979151668108403540486559856735887137058175507364462557276784507357068099790389498234642619472716232835779597721802322992183549104244245733506075735514756347723076795744355343640797872895367700298921674363156996642416374513278081335254716002129518939317340476178863369971578746189936653572369534913791022657627600366124269401390941303535109686729465086885524978733335336334961117564404913948723651605010859535076160100395600840016512712232917195087286031920661956689596462889698936301460029806073724223805851279056022440824247469552594501283285335451100232092843477957941167407483401590716785258516387471852097931057030658292399791484759619717951595565493130220412183676758584030548960872256329202025828200626918040983928388087023309014367156652902543147287935399682390541302030365524399490986601556937226091291044221125245703198871675957655251340671940075128136700773729402530363569165997338706949008718966651663966743013478851348071428211100300100983338874458975187273533824482080203341783878848026728676966748046996441305107718750187946364829442243952415874671775171371946683159921191569590561889296950757274509168576486710793444797100021746834155161510004995645103196745754896285110075740162429921268596512567461369009474291068679559535772541821825451307393202093406489515865168129747927594208487909302612096379246873138217952886556024115772308016385236452700185614965929484950098177232107076320179259536984434210670225443658266314002666136599244793554560105351065428384914151949901935678215066304646424836095667937701770718879375126402714990226017697009089731070238272573813224906428724041952255882163323104541245092309963628658538840169179292873190538866249433951974276226709721702888032993439471665526719661732556192947177647214164035287503966953623589671815825922655155663902785877331616018056671300467696858274299643518190602319206947360411673004816919529004869142759678027290499725756018481191178084852137908259048523895988339218657572282166390639285147822239863186141852277852275918612198957147128318864510101437059021834188612659148291468118386957695683201741359103359619130893515426822675652135425183260166511860022533098590673914055876819514386699787010989970624090798256936723810192305373853777378476639206332159443873933179954454775666174586964683811651901960246957223784882314485220295221846555381786718228317660948988830183556992462283993155833139746698128621116219981148043920811653117924774798096658993140560782712410129231958858584131983073769575753408808665096574308948889570975166619635375584348229547903215354657483094224148267900319380710550575052176386471130262447976838668834030865869900277851237922170462204814444039411548030670779411224274290370301111263753217509714109662228524210101925751987563268717132146258960891050097605651562210698249158038292271383100495003648179075956509975773304335149911100285953076897437717116615415362347800395589772511860102888372349524559868732363378965520364876510051519196077504471687640057875532518990789724630301371352640824220821428628415039165612441155906745584432478411082510459866730211311204970131965998566715417189794634290706347896970031647111870084733814639149010206968585972268409548428529378824864292909550320529057641400771965254259264689088453233734145318897586927919985452601423366086129689596708238278641982791176615081009717359464616850210994246073686537674528717275915675089133004667892809875105953405133224689967119393220510530846843247274069166793989665944717926063699676931053307363373955588312950220420344480619968320516260162300760339127777231558370233375792017201482896185886708957447445576585364731954216694097381840091582329406364634375342878802574866972729394142676647264918248895936514527607165140458550218612869181840137036254356895241113206472663718141049856944580616795383320769991109350336554592891481996446628267895417909615991576152026401373386375756421023106257238267781816000884410963364414500760064758126431857616951164452914512402226164082490601367587130787138664442193529263281450573253228740570813770705082043208987039300745531549080149908172553004207942226333911129116525522042290905664087155379308467516363105898133179551500606132295711985613140094794965626689394029385081081842454427782244935765541150812672321389740017611012698381282055458528521700782113590202017153072923725167927513859118003123597199078808909022396828257213795243426243661729035606512775936626616959945803153336520629183993286173070717042871874402561909386848639826671648404985970676720306395021838684170829660273666324636552334221645372030615836502758742942356436917369774817044093884486692149100311476258641104583639060144793164752181739999617843253141110438040448495664706222353923429363057836755934522974347106522574829662315973343051465188527145730590986354446625072067248205679966349768605709315483890664657434570311048032082636239396140557969722449159956612553237398941111695448727456933740278858051947345905747157394332324267100009777867010483055655333694130046393543611036759324824899390472897945893573889232807064679820791030952039082462148970546642441320012743365542701397755240673051981588201113621777190179083045559138470596627561813826809812582973301127875678215662880145448525531581565809767391699025186792283738851717604662282498089955034359476907860952797309972494525974853518048075640139428368585354418495226737985462015247769208060063605382273661568420661536499410956222392405459808027804876499097903107852715860346964397001948923007419709531119707265202002079346895785135856110567856301482650693923877383563385838731623757471412287936838747027229857270865114926081264256069838433924696847819518553024248898723604608958865042163728560043364107905238596204282568795522724944193254669674211401007284824859520059978267064831934027259947812620388108870703013801319848413456223876702226176465345114488790972014510178820246562148135327375761172869013944621218114108539441548369337265639442791772933105685573269080867813959641269350588922151407123222541359023000164373223703171749736479862478486404248117829700740443763745155187510650324523987296321066864379047987197830320534952178946674692739076919251668186672104422099057259735153387990356439702080999424782933616180161631337845869458678935134509528044051973546138030380555637373615597840214477353583235602385791179301055577969185120548328794555833478380518254097418393433973272663542169204958048306592159050178119547381846700913489521460724899107525185464618482900714104220047818603223986982377462528642519013937142517520519075883658572028325711481608250165054243282812965284133524282841925455212977465112759739453426616679662029812782607376096114563288882884634428194462665686119563004774706411776654454657513734536570174923763538633131322014175944965182651773601745670281314757136620355928682604704305136563258646762772305786230719375996662766371214460929930228806566917373891147657377769886414582030066169539836730822010687360594991855335524706862912454745185676968543631167484144197500497969067828969656792816923474493147159352856291227267546227328368623265997894377859894720765297620081061603100981422014360581026579818906300120079466154079195125155991623654435258659638522711568417214021723621416886716828261282104380484141000659403437518221453999692202836739916407562510051285083875449384952898102382478939320901250803387503439076624708265024594804473918815775903269553580372981922032963574942065734790091970189261268202790951625403689761441168809131358031712344429158491905387590033527148773033545289856324908303990691116012027594172741571967403413579830862914882705642566676288680001649663282170097323885919561919523252670733657280202615076866282476672916937749020313811368847687980546000849472191902979092079236555776863188680118797972867654562705731562421764630996581635900044160807763278699868136693346766283813178405963477087200173930976640658404193975127000796265200092803698651067596117450923814700245911827705086297727779309509636210390862472241085298676315295892888704190108212756521283374136278401988263926313760028612150137769282377920319995167206849571761269830888066578830574484859302873372621194909389915166939643753532468038239022796213908697288116583889161637418823531425164217009800149215629726616832242535828398271504537797180398059101018178585121188301676162895746313160640001508209659227194063521861267730268820398241998710396411589020311018036464534735606050409794143535141168454259732753506788242472216117617877025552281541753327754427185775242945441808317041956110955077076890587186156513864852500186847236398795661913254920460261174014610830694693837464812856287593277603613829797286320570818935866405975004412068340369680179864636117822240817611975008462084264372120761359105513315342327987782090883299427243466570221254260748979213374717296644905459428087172640899325242970513929101658662054745354567632295008288204269771558011869456919130949539072357857030902897135658351768429659417486590286032959132801340395794312774727173501078652768840427642575388289643904025538047702326284539626549162251959559829993840785270617216235752919509490340683902431480438197297736310517928961761790760282433864157382341049296311642513792213080496676874295064173671702937992845826350371746523017509640179440071183251724636513600439541977643385241058061116752178555604087296358992918606637222177351730197030962574661783879140756755340172622931437923476833006562029470678654767437857246478546851325232513074029129227555693674882732809803476946515045625675154256314162669233142589215597628767182308231684169348775441235738965605955544939840443151201524791798413484891409083520471120554972367540137070328073903894463008326454773551171129761931795754504579464047135571213202792245173416875742301841771336792878083454349741360788707728524605512109680288916171158977950140611595837653540328759881689918718694567226254297318676320736828814730379275380129604402190052492890308631873471023745758669398430820746177043489295901015539711800605971233066805907409322220112945711597146851832630964882162382139706603228425205509439739022878382415553962423455446327597311535507436583090314806280836399169468056687490641667129016099199557634341061261224764830083441122315019339265285045424215452193083845032303553046893825701051453826511768944481428474553299603925000107735614323933108441494255888898646462154220767899910018612528643932914936809976178015654629242661418710106216514823875768961179936640380461859183228426354504422054504942044508941938786201962861166680307754049601242471203954483419325981955079152374949749104219446138255530247486805846970520576596226156791439006236814978161248558136927222460253946222282013514350969671728864605047985004830805102095924033745049211741189242892759679195690951486105426834187685480858822928822588086207656010139400997315392094372613434557869224855498024817328996852170811259806772380228768610578232601202361689218504455227655414801793498935678036776194108189770732240025671013395389195531844007860206234328468116241015690210564655664458513584854945498678646715030589503999861745343454982831905182731497896268889779383113269323658876993056201032814171160770899754302023847078447750648675819919242221803192440809412573823129895255780997171972119069404742431462103360241361247874722966254195129393166878243440229919469758799674836593118604141415623113884360702984690991873486722318738676319020415761134813295207010631119247153056746984939906492068896879346064213465025296414418553476210629632029967785315175384706148710255586300439182204833062908291948494595798193040393398551383892546171243715855678359236483454948142176663264102067487028297651525623564701988001457520676249762413732313579427613471228398049163780311278191785965537413171288848453489515921570499457729052399871543463313222037617957929545764301249893516568903995625341133675299299906970706850515870372454067510719206433500638660665560499832315185189375080177811854976221371321692352144152158574039019873563995718447737539852484273081275810411223365494927458886492353470560740028443358368447425375676309687672752557035196474469391457639949646138696440151883381651151711573475961049462255746320469391883257926533070159430712175671596038431357373132611274613738996873379897799772202839928497456082907234576596079008240092159848585270963123066425397800447179193857630944258652564687774662596230504989138925992749937631017294134290728989822487415628210586774074985962353332162308436956619876065506047806969186741946032400583079444018893929789188077315376788752537477131197943218924230044362514273204671097284089503419426484548022807788277445005582591741124500441671714641678286160208576328875399064540231179638351390196156904348156710070426338312607926929657064991221610123324671229319246155744407807439203274407150630747336565003816561242125341599954482794161075717325467648458868039232096580387872429355862432121705040381335066154740948272515037940783288157614963047229635260921253291861555712269474706862887115293558448193729154065521848594600789444766720216486694179729382375436134838632596034702952891926935106888896256179312204369436853659056477433448498819755399262247565777522900198060963299485467779729368274560328407572307958865759311173654986269874020642596982441939683100947836959549166552692257067004150800551047743720013734429355358243014581503744207058351816415643793766416945778342278842486917034737576274821796600678407470490415789798360329891179514644850192820798067659847254839519649559459492961265962536441627789183401077650680048212340187772762428029603331136883816007227519925412053775920112712182018141138291748537789796235381246892308430790846691533876399842060685880855617057172799190172245118881449103026482516245194597674374140226587176252176154259274799900362863536794465810443898250941093280112507844935714591988324009091722741643291082803672139702556834797321599537832741067539423673747725194989001307692506855467274999793501561235996586410102732652192144093050930703230595363221636307345162063345456544890041888025686613157901045828749070527806257277054754320613434546574729123675294993212605795047947075062341306155711289498428810221058105788619688758291387007294470445655880335020220005707372173962128123407718073527221782220240068836594520648089265092704168980541753796309798485029167717861118827775093738692560607101303083974949608487932522564419532882294910291559565394018529644043513205611965013352809036388745376643648145974858315579040032547210877865285392407424945387654926001781292982254275548798709961107448799942176440785636405645610488309475337670981391457373040435843878739200997851513435888034402980894314767984047761580379919277802684824381627403236330314216469899477702735457514720594086070438994820305403706647582481931486789377544225423388277953737077744865580882693188308866174276295584881439952348438887361264983600915012359724836131821946113483884492978504511254457872805444824880417407837508286730506472604033557586631645784230979771875413967134279505067392719426813038524541176249552117227804843391416201124036875368601474444319318897038313709625359265850396128350380066951784089907206164075320125128336924358846280910582787623308935649097386153615670309454678920747800070516445038358687829079431646270582314560860665655014219915447388234816074080545639595580153540333605422893187697844373738138819823239766910646072552176167489459274505320967436035622494697658876989312820352598848476667486909509977471590655409636995247055054048781232106509590278200285482216337584672751893860059196286240402051071991407611967834569676218653795882359877421846258869891305884309537802920608130905484677549925388388686938876442234474477914882020377260160502045160103123933298809932902153310668183747561872310161950566640963138690862281209068984766825246635707689057061129684527634789796614730126655144791147834749904644339877301403209086781233926696140153675301429807175635145278385895985508342623534748987953502274579428511925798283155690748676990171622749258337421477478758045168847126523173418790846735614482604082068825717723416991555348043747079417311229523576584556133155506269411113585854218910046257365007804726343467646053366840538975452457517644164118345845411852885026668379384279344077538258362747087218844796948035341876868023041018226236158668928438601955247855625066785446475518354573632196701479001269402682698548184275961353279847330055164145184305596756841744736562850118136224013134295196738175394322802213616506854461991114545427634260297973885384435808755241427426585014394289619578262944422882280198038355004257719368424643572959684343566806727706479097585659069921017740585616535153992723127740698239843748308907210459320852234723302838098729465611957892911629984046134117624958273998733809482900007613133325049206227225728920272564773016344887945753419856016759982635900680821797694211388923634870708966402159294408068259776637995163687454589508914666409518266527979666620413113683806650561240907402675521844346439646194800112281539053389292614264861795095231349143006033934802647561111642629388621036739332653826075065625924915940282638631110386511068530292632168622472485815195569235426426682726269375239885224399419767671054515468925360226666518351559943361425436448944609417564689467810607052325134314453022566257093749646461426835607897614817699641538598598421725548268727543238228168891275462222359966988453014565605547380565649969919388592019121590251992720833683891213296295133959880544600492442444878064833283453839451273565151336339575415560880454365554886756781273040797856075648130103696854416011437433995640489229019226873683079417897990139813861248741818480684344170396432771767577544008103136820954946867800465242108313643245002461497569888717422278650555484027324939966811285007752818035599814060936779949689697445105809711240813526527076348374075576632664571804496876769145939981940601987869567590513171899831638178697261758460487920646478108559231551192673792561135824565852878042490122240511396622412731951472882712443953047350495671535153672551276912864014719517071723059093018898281765852894780395391931946927813754084046126686122385285784681062444788540115100150679047650714082990551745955928745470924416268246155705260633896405531693280501284402213158052275925502457663883749537817077632403811064930546929401756880415066189527546456123376696296445598220546322895099388989810669681121423647499048112195117558999273666721977807484893992092891429119851747086314837608542894371416922543786338766813495819525423458061211588671118278323293011017620780245832303222098072306076122653800965653655269686551944324004544765434371898361146703372455815745175820087117498713257657442862431362884599912373426449519298010931230997368268208100637810937136236824102122581103454150577058192240798160821638588459307568522619237029054052839392611735889191980074890763291198638113239216280422250218468976943797014556601635926326394650296473144587481694213665106192368657656791425738053085573125667309678776458434891520262430486418544713325505553999748272944922924544932024665112632847558577994715652959899194314206734004216891979970949561582964257532818675659645519616962136372234949214221903677846124395849147573600065804516013822485837268484747418438015681222416985942457881110672591522045406469351249656883279687427996152971737606495938073099300688384820311830416115917540508406633354367531654079471720794294904227429955546556785116037119779556664962556097090057022937832180473553488404647388548570670442844709974919297973097386837918810803458658461365835903518007732513145718970867715346232692142259240446513740501025648764316265338781073594746886264480392297764745127946632364686384840915729200873509796608811662231976663795767042768950231637207771699673388526759560032691097663836118041969973505376927822860898553469899956893401781611049548810855285944854012983836246447401338586685820772585198779611347513616068637381770805852610846637230352252786968354675688621787046147053266529873200626216091069684900586577608740197183876614472278852301065405183711163146031076295576731374541124777009373747883723342551964632080931465418884122279182579081874539267681761829143382089442181806161202424342740597913803013890832208557949563676377239809347102910618973189351060705163350666803694534041093705961835310023288365520442014629498303222717198236067303699173385034041291508385136666097692016522252465350959207547867619208991715601325782526066452028643042929515619736879834489573151393830379270087869980505158904102710775766219457096007508264007731079188626469128740513453907398822063948967861236919765359151420752650224294733344535015519718647603456110406078499956053222033488580412631304555820785938363968655041555644275831544858449931923918119092997300367470252653760364212638937091165258763247780944264597150447175543047115818194594722258054534461163573659955915655355299110756971079231576957559152088122107810018510788996521743131543811136217756942330802678208123069015622148929404929800139599800704532041156913664369093197303664622809768238493457896349903572664940079206390193104772754340958019274116553818490363931177589398096786489943198710893189287437218915942314075058645411883408613438263886760046491951443955700927283930563538988259487649345931299203669818722957007658188011007720811132533638924156270201194164190333661762726303178158040902444578877565634190555114423288747088642580409690840895209390920615937612940541338379134582212631932101052220019047757760928703812905879140196105291966384555718542693075431565487734477618185698308960246569089621356463664526184314993616479787331834804641557769604142174825023369421026518562138019456226655263256626149086989730104896819658348126673858277690803807180062319108665543711857477312944822798444813919877567414288723560888841166589603211299800061326640973093016941623659879268668603122430633427650544778726925662049928164188097842661197983928652969502373117741445183198912820570716567419722826068240172498466095955604350945802059841230011444498565269877556881168140043935443791866155874923766651309461691188761827795251754901318366051542538579022486176827746116689198938836221110923098273226244593926270703178461366598054884581233550192148818550653148384636749426658398096313739736310704602075749588757607154506429858042344913206238621763285097516122647742576137145888664126652774023376739743938593859499244452685303556830782669784359855160980351317532537807692987253209691973282383084493876528294149814325208647009847017878465617930461147189561765224416685508628117549606251631292619114909791603211749456233305455892528789109830312448738707487461650342538140403479739902603895648200539480341292343413957588902936605392832362433152380888709169891062947444869815069694034019564083985720115151380888110553119078114892361228798010586570040133845580365677950208574474480958553372358002631316881650680231980586930086161314908800891872871240674513246357944546390016018951581194882332279048722927130744422459684197277245187241707815912802478072768947566214630198792861583579917243123822906574890400711277826183907646701207069130288266089022795616427025373133773175027561996843601771986370673240003416892830673012807519478665105147763947162057010617096296497351461857993752201565839082109183385731837420784326291580769621372529783522170242920634542708301495382551017890593267289786451305886525501996771621518835387589545652672407430522138598523669780790340184885538833880425550137758698630036805447024082237119314889724268771373414897782984064619212582780515076743410177634385241215133840511845556250866747209604757409267312260880782967374422084642442674086064549537162593112131442089988739861525125324588499899921600874826727348893399823373213842455477895730507433961456767218499337165014955555409588450140521473135636735152724255665690383274791232181523505090423238142561991021160802299993074162531906687916789217787449762638481872389154821847368209762148102665826978702126138765807120958855984417593637882178690841289234899898082378265431299359769191832769278203308293744242625722656678818032642368690013609814387537780104346160997857265275043553775345942824905787304239930112993985347476622344746877026602652381861409475128996004139941176742413244377766606610547828499926853900879441331916732286839809181943173438292923959316850502349287549975139034982155549257598974533580853970357225879831467496338090042614431463031102535012568842464836395645855318878631643567685284256628257375450442220221035905257696731128103745629792780210168028579773832635134172192521590944753431189339308294772574404946595157564221019919665145126025865418049557317563513779609045167036416636357415238570714664541752729605155646564156943975402061506411979685112961004107529626349801009194035463578787057636026425555733466015968358351761013185496275716008566446497484810457538434220300631096046749342842975926926419115528077843626554061437264160024073079493778026625043735988868997880050808255298029956029477640242855208004498579406653971224491139801219079618108085036919718596413428059842789468255139817066260699142690513555279961233964845801622097576998243266530528615026213200821562229077817113016155457982838082836196582461752700638556607466727243936333686954068517846636855987625341345843359402998685467388868086514272911314564961450242035157176917179450714868183896329138212754125629529851472136401575899719658854097076827477539365424302837709807341891080805814919367669698444525849750637180814829586800771852759470430412736249200589811408549766024032934701229653051606515106144541729049261568247311270268050055352215992223901118744147904898172035099957102129444572176565889747185804892526876126292150177462173451363878248331396139356000120233534184220476139812195345456734543746051794450546788439464040531180898031467562841005291952725725312366996081776887573696923977702691263412387200109264367881867720401388597116889661148036619541899851355460338818217965922518722057809138197556079007653688334018792234499688097757703082816706881961042935127481083472829430493448511314880459971314418385110525775827931667757105881766454671999195158595090666695786881781237789179936564792268663370428311744771447873892560764627545932111018944787219869374848296883809434003525372936602938209700541012809042234099096570658097464871132349953248372551597564010363494249128741811850858333647220897771901633547828500495924384460075340528382054990410925301979402698195135481954890984466913969753481375596766297512833509984645693711068896008325811823859227606328269832655818923457478282257068412393428369672645189018388527541757280741982235926797781114082195229011099519246155320869745503467250517489976419776303942346335622801920774870358369448561592133023936129062715335571221736946134469581166810700648025588892835919490105115090062656246380279529238417369515370642682152953705895450849674036710068063259869398220472298563336092054319089358941271335829822010981126076208326092598844461195590252133044513575030396786040263621703824875533615856302514572823287945200758557214796710059691342080215271394156641878629365966422127443679552439199329834916964500915044197746904372825810754635364638553411625213679249879882510069675769959007779115073348322473249329827183811851653982751620914295306677346381370749277853316008869633005772959925286355596070006611596154918474516401520956162861774954991676161601719049457513298758607487554757493434410516420318536550518452364203121346598879381242550894427640035634368576898337409821155032935625624087025742833690544362511190216540809000089612650062077885500944829868514332470493291058955953997163012661048062946712781873882759657991854827036242772026490361152023780080317661991310303775532750909622990348819047314162419205493212066218986419874399506213684213961051786185271104998738902969109321502430449615658091157312942890025149949259459291068921170797004713833160572444334284980185668637808071030991200612927480847936636278884888728131099931274075586264901214033106162186466170962742011553609272104894949318789619269008415280881745031527179581715706586258922791347990508360933405883510099051694438444249764190328568732536471362465512346117175338124886465981998581684768988999881958305980616770890288037874290952893560184587469935731219941816577930340924418633239943430248921254376878926876674762243874232851808765630406388461515218477720197666636608090953244412726842281085218805586271473641024867647891314240480921588984734494706692352497637739013450689358179141478303462047361204385099198641088236381896636302264797699240159621030279925132569208588245890050787822657572520169144303180167207357857081679212285955701078401899690814793845398734011900027449698471020116621800523567715924638488953868038843908237989204301292412569444645122077528464999618815580426411185550803258389230190021616931134108226333167269025792302236861818104605263503866976799652307884253604258021912931326747391696233339782827007724837901975866457493387082480309682608831776808871807078193427699210927923314216922286170177133339693503386750791593557749297317173464199354387514275606087788881304868563600620848536693818795894160156772104985491034090953424668491479162783330219099983667350328226106033870034967719656377121694611114149820552668535346185746981986911248891028657029222088929516211039660861865950661543516834945414135903620249353712430095419690724613537325677963420975857342033605414566439514202107208430165508536466768736063661546688863995251622758627679961550907573689911658948712499060323465547187740901889708101426875105646953696370984140756031149779691547751820966977762710801417055953045878140981687502549487898022049393481153068557509709290798283550608365439593050736020784775670567351291217336072761408155740062993960253785021207464843061795853244409131092309442201851706235165412112649571745678854245922200511212933691689690593830515212992714684849463953426370572115688774754216933975729017830781125469372042854437779235461565596969397016684148148378369080232641705728320984691833669405921720898302272660791870791718283199035827520157521162929985383288002220676360982062321521257106406741418411905783473143499113763638031430729344341097621338444107883614384511533259711326024913644093787909399488945854988559834738963385007043051173821185958404969525809721944577672978497723672390477329032076716719193760473724317030943475584482833388354022534067304925843584044414202134857630601420277095553415823200650103187704946507230850102131603736819025216674076725905589433063912313334469111078760835599617337094318259558618149482900136227633213696611002150674249156868248651716272389479102342679437797798751747722895483385600378242071631096182107035525472657887841934693302329872756350357819299535460966787190354830081094573339670336410039838354500635079914376380474553907843899310977476134796911939096641675505323480436498605575389495106345864390646012883881581926426488194668307776382865595573925324221951480137811474595977944051999990456877343219559383298038185890831993123369983167516402737026946129748716483600840587130737249251861804641193622664379336798379332438964275891485654277041645863942405331050318995598088241789197427068391888578241962267182700993148684270262692957491917945935598184532644091761485883381494042741621233995767980693698673871844943941287179095500341285865633081111798828668814598655105938763761737273627581957189982600397512604750229358433440657852036206695583641547775985290662266361946876847911731787548008305982577759646628436271748979845985209228762726205217444162213950795362510504001472387401444606007325721613760349081876925198106255732983846487633501232385179543822779740002533323280682661563039587724920520825603443586861505124285749414801092896606466019441450403224467119045466673770304974307622694458659968906125878366378792032314020078827588359738317200704110369849173125665654742173914722211962736185638372378003988622402914129231546879833456465923512496082999097287001911823011002492139769325533976001732481352260527454970594286911006755234111414113848515973467886128525689735209020109354876619910434972731162853113967173605404915564535386213594281060281684065994876898377350351558652278414876650482940020743438015890749017919348460643814484406556301141874133400967432727855326787413006622728141569341700920407605164415258662258435008873439285575666854783512380134804126140341399409422036705985201236290417953404248898692960146111405495789714048010548369876139106249993840253572616970856356316335813886684897457648626505499954657594012317102854358059039500991409732811832997213238001132443033851291694156141258751569239440625897077574068212037266052839271760112463976451154901095429818649442916797906667430356867770128317367954651492329140668288876763351325790015138432498654232764462004571106049806399443526680393371135575756312928116294318170275342029723208241715419404159218538851271362874184424339625255251250683584566406944177609719086883259817750555435323601700744606421926975237526787353895310266608015589282765316801459406068399087921764209103384728659687832426114647558683672540271968694846700859801960921253940411468260469535289680534814866936308349235183233442017353569384603672839414654634517869644513101288622078589601838975449831426277436612260820881082280291434170873364762633578404962390512084039182945471937953730426319870190610617555267179884631502047834264299242061568928150406457038064039449578055752897067129934011985736207529725540225877798900206186228390238962624157217234242085563205957537356021075968084853682544776737780167762456298937097831784977996074666613175428311647220040634981320168565739513465770822357863421229433739081170015528872112667136683697959900804957591621515836540213985137107505468570146958787405659296068279589739420489326571619124169303241895614355411251843985138218164236681024263418106812686964443743837685491620328801741042993109629960945143957883356592627270426688000154010836661454366165677384711521899702624251479688298900366187157254751927760164244779556798690011617985198507839313480021902880686170828958381431403890136282930213041366623969642706019331742021030745344584957878537560290136281566078095252769865638222763596708149019510777150829040181804600486972399435740028837767725056606418270607845765737447506923626104001003048573914081972004434922622430306883825802325121166430368393490776240588483516831746573562363945404481291147099614090318236081275010103917525574295947505338976946999439432077396163026717190642100874189412881590313923833831942120649148858343670869565032683477998707505291040776507218863056035111423227669037743942111855859762512822569089340182188609065280620523847162869791407042643677847375750407607414722427910351285361992393597579167506818351738830537351549492480269709441667859856315253849884424334815135309804013726206202783300579004485102068175119922751230007486128140611248626563708320111522886508511570362682081974215358843723623841481732548548777817133148202162147906923975446941906054784003176924456293556338393161551915596184475907059613908135488035919640168247372184710239173419500983393810056072871842897145405954911379191806213426836597380721514254944724224080048443027089951078142598582879538149095124973369740273771360658513997446435903343499640396872265334141365075683245418550665618679943786378788242514070356156475754963803143187039980615537937318221326697505071226895994987642082468341089316717418115793482776388648403695320480893186284110319804832497623452744365714374827542801619689760495002489979430491877971466653329314079701820208689620081223801106431104994889482477863420035186493434489132508433048874243438423074085959790180277404771252632491869965526364285721139276629892560684405734809567740805590759511195107995507393628793346387612229029305426597100655783236027647517281697443947025689756546128299995435118801821986426442982456954042477318348765247814305850160318556979078760384800452344080967593718081692371054363337510135183996279850044920722113865103605488371062259818853317244480158371549371402715037751499100572677384891138134391751123600055354119595670153942538314469815126364299337829599497234334109628370127546121174429686602522697715668344557093917232609402960058130445203401320295268186333378242001060473348520555109756451442956505359199809424950808850423585258509799546466957679389705326165440722514046982092919316165880387333031104783625943335069835782733119730073736544863030909997340898854738776365635079917659089529060910355726886474162917804392267119917663102538893104663656572205188373914355795793297163909761988364445231331447788824606896486105638189199845061686567601862794565698173641700181523316985530263644823320185995494719689851864113402554071154076454883933430682877705726911173346393724801906339681267814882838039914052695230150367004603552368887645668677673165354125892191308028080911843348596679821341732051584109111235464965332205018125047688699509821682161182583286718206026334930164017777876954299916548204144693552628313532433337709176731549046611729358285589873477340625694867100830917616161815300483820678367836677672646199759128682504498781011446135397282516365452305295676703113804686071750444899201429040813950303195407703611505823102048799552142394672903526104013670111805464637239759707732505172563154138741460095674251871834121142541220623902232452081991206193440012577561738274359917877407367904498565362354400147586922856282367394387907027991345487144733159624645889571023955054545285499831471741067764917685094684538636312638727601001266272636921681489268611168589525708617426611038835713357653355955245650790815270933807700174508547475713945047592276640008960215033253661868043772321743495438101653301013339895713261425493516009499778709347729559732824393982256645478941373364904193758336491663314111154755143005438773800957131877161265575184631759383003288686516176215410836095507234397134710588987593549474655939446717489583336831310781357080644761004222961083757757724440930214038622541956404809205475237793092884315260596677296800806778247131215223977091784111429968921385221440385565692429458674651348361564484111333727437987606740746413331655408067042264671081844474356937543826753417539779750275750864184875642780376375437301156231937241371229176608349368130749329769093575377787071454632162681917371626651513867298154101657276583341267379604071905104467657089056306387991896834020103238145931407184348865928947428775105370794406744702288797512952891942241599440153399596986099192631008089117178480390830231091183947833465181383272474213514989539185137502744653574026232296110009054516494667256048371885050369457038286640594717308495898919889677686894392014355789466760926852885678769046672772163191363653911082086686560672683678492976847372848376301924533474466292761406046301373550225930082783541661433092917906039440440074348468701733008899159530314952540579282302979476309396855013867179795449538815321464867128582790124857845174610807345546699393068884382241072903716243675096981997319185633886116739550878510529431438819279337589757963672940016034024267528100170616735103666380623740326637741201282432340226545927172996767076392540383528629886643610344559204276062281498810562356081597205686705964855661732331467191412198529769113900256242432867195817860583232264527148514252021499074074037939934651654654252426401031256453815886530663972654953065378851923481100639256111064331138312416228800883517398970416272457931145870600838357772229608554992211832484935032614788312607417609695983781813210615226115310758365847301232900776839775076958643455746645474554133504977872672743477204352491869209101215388200984697776974288003950974052864920210385751841011562772518065348362216875530923188095787521275410456741951282077664080946360538854884095818617627933187970823791767804067645685775890663715067818738280074160895247114542678577545547949651792649603363186806550173138728372316324441424794356070900368802946334977995668367673657596301481442909845379882828104377245632243944700345420826912414491556828528760501640336502839957858969688236554953445702025686272984118296478853124083202547713119067710178407440336530386079832109775842439012126558200796740312780137537751225560209340620542301439968175679804410324242536901201258514479503663563496823253813226417926894428061575509750606786510366408052874525972282754804755059210738612796773327611190944693719877068412554936533111874783874110234174423707231151188520502313686558758273333005174226281563259006609918846725652773414417743844962027844222560894737723062582752773257218222878684851149187966261624286372901951448124468780007299354833139670879251391507123731210090046582371189901759283855121847495296003636172404297550634763645007317061837334794098251763483673854289236086868958323428208121477672371968009941345769700935838452763920529293245860137296259473590190406550256052831271864680164404312011203647712566419265294323798687206456134494989392576705777311654724107863498923246816454920831820958833062111189369787131373877981277857320877229701167208702916844389970159089418200254752643997904208655422740499745793893690249026067450432499551501628141849797388557507421629852568069540461168439623470859291324718505057455982822326716593883958850810191242085411941501975568981739141612655129582572816951806168861916388806202848556495826931035991827071281152454911139399090745267753856676536647259055098739797103732714830996468372729767214842816225543202761475718328072319679095482860969474184213033042973776315601288794503165551670764037971925931646319389371805049395673682866020410016251815525913899996553639461085801227894611299859096399460139920736724918451531288735896793914979545459714556791251643401148091689707112407049633529404313553480043587182987856399987584907827725654158303373626963834823978297484950653756717989611587120805913966957604533659836380491896709382324754256519548094311315339538274983750924774570886640765941075116161723487185833141698414164241584898623874415396436666907815372887998728255689727554791615830021912853347313618324651493420231018816450407268088620336400477114511728289628449548758629243281893906742772138905720654083080281492122347008405727464092388970587716536433006584696366424789828770854512543360415660009165701662755963427772567115841236912457528309062837217564271174429912352825202177285075445385551195993784308337944095379345057491908585960558808132571736027146925595142230973051741053051102351465218288061849310545679369025454063111054719509408504935677799453936793264503302966857810959539576134122253510423666454834968904583121686636911096579904141752754993844934967120891301550637744307035850775480468156567303235934289914844718932430610735262739171667648497277721561499558225750581960298078764568943157670929757074948358465692807515100713919233102773347387654402298858073505990524550097360618376336011701717168135380303246618038833281172709055964405037420220779631407643672783462713888758935751286928544226788656825649880394664200363839804850684002323673295718725733862892312619787190650979353758057867945755775179156507567538173832994228952037905817037504633449105356692273891037173049295575951497762555490059863007302790017156940116135036381297981596340304860768169072448115591303261101566956901079747408538613503205473317367919292271924223928440164282669690535200823455810199338488020677000363742427174707787892762238280144743474909035529865220670453283134034605091099718337352527088264453644344071064183991313005252240605181703519354426071453766410031534318919419755851090588853816524015155790466503445173805463843563608658531040357253861685007635755339346885799990216435880049550497794562184259739252121946137237674370557180127841522916947031082566569187210343911307224394895336078894350891730648366950146780145488180260483116444400124000849728046368642728181197335007108525411407216177153730852541472889299303106628542779439590121958971116337872233848687000266349689051096471772426698113275433573978131652509364586621940441781075201104790272634829912860482638890379527943012375504069025936947625207486869850214633316104497800038266652820559436570506493774834679182251673260025670179210415089871198938896064145506907993721814224379235961859478043090023772994128432453593680100284197092257212555485637386660269492476156334996978504830068170622905383633744950702614391694620376597232681719357212733589655683467351920696736935633740843141713178523470339453661681528923113518393063899741612521803258336257560399201593321763481323168951754537522226440440630656696972351919651363769518924706810361339059321601410607984319669950125839239526426444609513732412937444363066979194508884891133892672726766880228153269825640382865815579163108321923730608893261196623546189706853701302966806597830394209744633114511942572508701275698110056628108509722971938951928949509635008331668339368954437467536906335915485459190695997568870215395198223100677173143517506064400315612445708066463734732951966785694670620359295337503765060455536716492668167352307237909193870355134438921460731090026631200361861891524675629915080870690604406160399672889832161843795968593221238357676961169797314351105118758707171695574691828683992386948283104503939370473809629600040422658999476960886278066517578616072570026764502894954266982551577486351295408712629353744650183806418793002579774338993400208494695223530801083116366323939950377203465825244119213791379762119086184498228074591854956251819038150930389033638200124876166816352398858396988735774591763658881614764819416476596116463443232364539999867419793051917322624712986357280738053579525875875276192664917160135058756283511270616847411045200827430702734564582313028557662730570685357588795623800995765748542295734256979472024792569450328661037218305705775759568427245717704979149920717040689562046501426880981608341162527440479373091173356089402003105430791290550605955508642491110173690007368884343449614538843692723581729611370407427092283901580692123745788289565947898721039877212370280003254623163826395462299242847002369359116400596989038756114197920252837732679336217041830543818990027844563908510787619585345805224126074732263364559853759068467255488160608215512633293212353615727079005977547111585799463901018496655226050295370536309850663137888563601714974763927067644754059429848509688202699444107461441384128386399769060749586477041520184724583486780205958634623599299335402143358015917170583537778104533498954764109736649813400948177560964231822634770717870301146670180501369444386009297776091074606278339354320123510899597930339947849987396619715052968898911184092070781985192345295129168157663621122049716614683445376975162008113491013791623333149177860755744429949327608475899545249746578901013069876952647398419855055946619720638727098975389370854593700667390441222900764413842086432327393796883135942545402937826129495164268866026957932993647011576566875662004742695785603544524033496523017996474312121573528028127593189395428077179443000582458370021628026981782591441436091820190069403337540388314205820570115094564553290308246156818658314913738068314569492407179937999061220744541460148567425353195040415926478443825260920083316373336263503726482516828276214380366446436223519073377460538258189431749463549592822121158927976300652500280778741790836556952222126962639917152935571010907532400041845841306420631003563308938479217133684753348119209444912109356284557334725091158344300386791366594305459466324845705514809961852883659154007410856100172744217669216550957693137039265031611856447505128836826811576742591885432203155138603810676386167361424409742891277059475884836617216147774387206465812280449321734599483806921538744482564371249826787560366447603283740488954255773196306163098325213868595591592885202281200334567441766669438090170214684635046599691309122340445627037500805966017403279517234200349757519327167975950245912583704538039781949033563265791040550461321427945066113387400292139654411092712678684168011456447752180788408408626228154837434084004473824787283488264576081783585505464782159410359422018944815620692606258589448084641707197490801568602645493213251863822973916110555331140150133718219813140964429050463680129639854282534331322686798172654304765987375494080203743823895581647794222850057010993362941163522419647974814271673459794466153795751355174378000983330621579348616065167151501521202676966071759405951840609565846513712232844873305508783253356985879222022987886202389389787169611763461783111766438615418743713995654075954193869595201257449831225836588319699945520464206791507743020556873488493259955104523359681876098126495981409867125141181840332207759265543439489605002878547969804790924193754858965377161761072487525561102842171168426787518106237872402909402181683134977115037643288833025865868001211425290699193654310868347010033020561114288729304100096660077619606457516243434404142930168893803626210071041675037149421354484501638981719193463521641413792595915351822749691219044394931456573230069244283943983579645159418765440653524271979797324143506400462174359363237329849650060277894877568385699591009100138076173222170843440336298145601175052609450529086736239281282886205975723093613928955171756434333951938495733891633794525048214784587833030693033863519295804779739202389652933782294559977644981387860286607301679579351839805841050185632256957563505667656403461895640529433793269290700732355069258945723623317571832632178977551059522197033120913051996098458643702049544341375850347706713336819058179525981167442077499217061223797770716486145257133574101592853815657386506283057995750471299927768032318887136145101082355094708999932870121984225769168810055685980713844706198441513865518558589639484507005432976099365014480750181525617262323816342802602071905123086139600346522671899600890899786178163988482660899986119448987089244125490040196302927983967992730295990744614840357325197110787227816770556048264159936158355241346683207809812514823344933168574413792915723458695321800066139739550727884594343374360913678739100761259365240801024817013129118496245498906661084209420931485714193926058173978754932764834621801117182554633924967994763560308180633331172547464328716435665744591222908642679822568705518363726131809788023421588632000449656773189391460912337423924120884359039996927534450864264732225397374713769802074925067158577129898587588421124456162445273801555751050081583722069740623755375635615339611044753555009879288645688941130899588600440398121563504255669453726304907254646600275284907773113502045945625204029368355372395888158627495645981299276164443055458768441599215838347857844933844746499290741101227426065718055703076282554198217018698171479510011224754943086030079582141807618375475230140300645505955645994168303685551798066209857732281492162099615722843807818557644866318364159885102843619951777042134538605982312824412645221219321397632452430342155067653295075076435772586851063730471280401693373832878294881907463732602386173712707537541169929274204603075203115778806791643592831949327842661842330135748860996659937920572264535459547256318702285679917972732664675770945420073675681408129876462636926657866646905841204599846298467422150233275163125632546136484689367127028683019463325093003212748266641541038894341205935727226825884685661389761465150768033504947755078223215185954723948734328378629159677697446575200045261550373142737094269659210462585163833797554157960469952430731498411899120731856652617468474077202582548028686033421486028709169833046450036318244149079727188226994248348387635379007360812940036561572228761612407304651187090367647367958192543043500652841505383754157846589071622616340841967452779308174769660449725684411618153034165006650392717466093031540334215495775973603473672788032797912135702577383516306360717829413113136647446612903315453117419403474954053561902220138131916530745024342193667726271410873757380459213346666176662422012650052380646720707575773235052900449349564943541883128881122214111565315118239829925435571483213647242721112764998359101308975812153688818444312820937184794844757339064986296150833840382455198953749119750077803230266152538491063880311378089343575905330008911588546937994123316093227150939758341883410252906526827313919635987801592589442498180072025913529827798386984295000312645685127668360957939899788040782310529170658082601127298958442177590024530701775558535902976518453775724336788086026727651534599173291493878411293280193885443430951410763069621726452230007029645684568775204825687183751368300280402078811965211807494603534078146667368598919579770081391691059415317184717802007191603385948198086647839828812622121944695862403849826552936925425193371108747811762709929090900080178924340947940997618719382670204705224950094916154051936722644230986063131537464260288836869238653348521595978825868568114472563925130273676186259573709459144934247832027875666653452341833660397739624125879129166794451856355312132843713655423767771415305086525585119651252100965611632215986881836165978532167615695191328521896086604759804417616135157134718877346455211390445325526413308914930641998178765460084340149017403723626060885648589061960817594984024426324724878308314288201223974725581537121198989156401010506193938812426382348962372277864873489869542389813819371041261059722016472773804758213483894645690277435091412900789794900443020228063451933319498098615374218513506520421241018665082424963225212102680706088229349389210465705680306167471104651959944461930562712348649251946372771051444880688547073683776074895792207005047777518517099571192379597801391397982749954276782621973960849361157627163031308252608332176103655142713026205841501810002533736975966222862467906807793682400032934879713313328194149343390643069975451936259578472921143085221036972195377447862788549839885271215387182597335296284484113679889835200980571737713702699727043967864057694760674351121930042939621090984557657504033982922123937519774536306707711315462010063549827462134322436290125724707025727498567672128655645431046360058216715405563025389455604640530938615513632831039516188059852662895117931865823617271180964026990191930244124517658245036721383675819971354408358797548166391829676746284700505170743416933924475169083080551086513172438015743468878892175575564196742290679130835160336197710071379830404226924311673575246281826406837526441860374499999668859118105672495538449013932830014119222930252390908911302517622241506623177773877169915472847345692254769545661247375358099959928486131175401549891922774429054451130106710025322568858048370333216672267757556835106750785684711130609095566571785997613467126225128410405993261635753248396366220624795797998120742670924065142406897539388222839588224465961046034699640041484688800900693476400836429455432709882173237479935536118713932522084248168642091259743153364236004299585069654457144124490854992520886899454867471669963406269898959621287846897992155617119498534122416755751346211937207079356124668440551796607882030421469028795956199955134109485732681435855622116998056616377328344521160842551548475761385036572932974224028328980440338110558039517153021710850764358330682481846013189309912599932829957932451214009468355894745902864708440503335838665115516239220979613167301151251263938091891578244992354125239840398559520829531375730521451102763067249133431372803733005423026791564913475867970359829074601063775738824077902240110948308046421777350788654184362220893549459728118118288643137926226776439836692251887447014710871091201128046615496330773029542264363249697747765275813492363003181111611881727633390167793239181899882939500737565880876315343589855024733891139567146228021063139253040419446102799454022694651784928875805408541122106014328064061934696230503939565047254417948863427997376386532422964350145190286771928050508062690994331466386728594969453214515866180091985919636071684020815060816649991841408571544986173000368376904270584579814657072138479916636714762570906577058403657799465126512000051265883104999798434805661399213137868904668166379054931528433141297567988546286660882716926270349704003979924109815080616712099775459074283712762971454914630018129886523899101884054031741764200224820238215234319289742453214832292143201520197298687735198115188498666399262278514713067008338849700044590627396767853693150360134712732257906979578578676380609805366125445694041596565878001277448512708343812939189481800859882483266653696962603608590249357589877539171292275825007704567446393769304750599956215214881042368561717430029735948067858914110948306947197300853872413582110092952281980023406730427565342133663794597289463643984770540589074595580805176481441067427669011080526763601105971354045904142226256946159299882711637917948283326293725376417641014251713441945751563519559683342489363539217903162403561267880146333730793846530746421417441420985510425481946234295020999078982947819774479957500409013592627082943550196307274625117625701309276157908746977468164535099823767193281921697347412170371934865008967393936445036227849923182410404484613041560987922303811299516954064046227689540951694810656597912837121345974458487896865875781289584918361932875784713847421259412787747909110150918771273202232222678661095459243325250869171082358531493805232438788273287720582993701020142295682942308958277640392580263862143186765550218865097481046072586726624210044370041949310076835636936739357181005765534408034276401632592078445486936802112444618849769269089894516564279961800210359615220120429409529356316442847226034158630705016666259162751231783945325612932466096430082132820972748964083652063093085812643540128159454601604383988693997957820593775371770225016880489122888222214754997663470597867888532301909166848701184205763261888255407790811940288475959479595804680057714292925225468811920382220163392081013494974293932239837285719711810822860271669996977202700192131976385212508538763569851360220832374923606431169334743971416509129912223195328027786548385885785859423690996863809270087092908105601891244478251542356041551774339340836599142141965039556739246249317745734034263679167685387665789874038699556951336766392895454122814579092919991711510451205955955369670238088946430559958551394507451757936317350726437459756213525921728005384814041939120430922640140698623758660659887252846682301809403297422860477381687577866380096489517804264946237441242893661303112286553327625270593598485468335048854766662319019323552597091402199797250752135731380656420445755806591291411378136070213518113455672610049240091439466794703641516815594775923116830341488944173834128912417831323131076782965200138733982352526332444657038897887950948673225511698712064851263585143240312509498555334126158993784741235417002942486767459257167650339537948782411723420400997883657502466407458954068038997516644489260077776631271787016599030323619368326226009328004506378960242750167108652360730966167483189218403652476190885515250038108857670203383343073548795627850867659189949559664301660185640154637858913436839034175147655768049761445009818435046069823127585800299792877807262255848278916431194934315491911872014575797132755225033226336404186081647847583610844278282243765415576289198772056762240914910598894002887327127666708825435227508573368832725421840927119897257511235707328856220939456224315239009855165206142330067896260999217243919913407373004513408718560556667169677866945718837344264337550283063415379038832409544345027571843677829459314902852349356232631124819917367908114702253558872134062588494036628177712943088166843195113877727570450313811915112203757583232073302056601302251948536433569998111390956110651321343922880781047378963835080580559447085906899694105895166874514923252726345705626350484736454643427071291802842922441570470293211872577306384758820700974845962084742248602426413891563537605938032824085313792733889861895331395514919282728321368689149290608360224415100770972005958198908289038198661574188040895645585218984745398585299316400354185607553605104781323787419336380481853958017072978599853911702601687938333499761992594207522154936229095044233164168225957830715411965101964460553782270800390185814118518532633439462644274934507982518111905152753400222714622504200648157429232767761563419169423136727987326110644710331023346470779112970920412891586589018628905822039238863574699079304101254386922257206306514579696643820369811303021200262242859155161998155859388865401820506075553605017946586513792035864970904569879633712137199853726344459506281466986839711184935941133166957523395679888944864099312852002819776804460534512762477851649078501658337868142638024254215280938546291055755095012840108812441462245057702597631580804535736299423939647964733916904186601700337830209085010908570584573700758990301304971306166571605740429158504604821837262318600734462417779561650430918023310679993682425012872127378575227505163778655680018967255912329710902760468891159221375800497181100414812509490643684794284621641868579272632957182827768926685167360277800467452003983129315078986143180525276598251424523218657241025074625006479928820920846434743765082109076122093986065137473372782777165718771990185387616119731218547933114907468120156142876103224656192428278759148844647493408141440839522998904763011468506676620190400598066996443090745035750355798357677796964960397828261827913125428113249232552244534874828454933624571105905369924466656865085876252899390782858540210965516430530326339440890400067448199530634732616494574396374777500062864526214611874479911790329162899308875489083794724577489017719667618461723208770543323945332325110575500761296983711906404365077407849742448992157887303999217678483253499265129023737901263117224870950847539286177364442026104156085951702283583563154643344579560032802576460803053685746501868340223383780337702789826019198833817031561345747177742328700820462536686001292760875212352109650773704678079851208908453261493260739337794536662436206488302538789431948682582158895082854027349613799520852178620518493630532276806713289140960415668368193482523089921495697342188607474556637364939191797817762611152343771129508110902243485517043328545329331792887047018171802599473752188491806132164749472122682883709644451729114687664448525261564714374124435111854536921803261055131139562195817329374678165521139341310792831034527889352076248191664037533631854235822873481149644131754267915691674347526627909499465172342791223081534253688968331218342071989003684837392527658026862910946075629288618067847880655613311754248246991353054550212155622093337269988794364823771835099164581255712976918937980143561482340096216005642242762198506089153658915335159931964788096974449983641760464841403237490346773814672556814296726667556504455200947421740987972481231310788026276536107327278059745312058119854576011767250466773527427874798197366777813270016574909687514319102664358492162552838235656892905191912410983180555981139277413808802283054561457072288562930949940477316955664034542147617374258903965683532161011291669320365154100957032671820096596111013038955828346757955718576728675552570937614909960953299045458862566633291043827821459830466037935483121103141980529947140927307183108687324564117905320666105234426394519056987537059981030092098995894157784679091113285755431789161788046843958861998153768329125866705843311832585288510814362940407637909906528591921046291051033003788060784236729606096556584570694833510649468551410793392494552261369751581488682990429915597812429768534824413981824829881066907274296520623742414923984223751786627059899894016175782470738849989987224240410139453599025453360512932089832381110023877182460762162587044010392570331603404167231720841783303624983918748871430214374862468273319397908967582016321295578705153004289648555690999412453589588945455763197377826746443026864226675698852407378582378074824790273148494073657765031924639926644805307818144804292929613763499757312682126942550145392855941491086422324055575971829035123022183752888363779770324646407576958241474050697298975102020090648620775235601228411890332623232469932640868750616928445383834337821643606948195479941099463450818319606206592507177839291130733443378325696297740665243240182978273119462004273239702276744363811883981193652438137432807410711581932262355029268646112054700242568917308605392658385023699768871418734026239471821005948984390750452681010526885158946110463296149593081545104501251693449227167845030043339705523460288229300221770510969080146637643106031424564935043579531121340479581909204221977819145421857472542208116279728660776953504249273173716818037177197457098663395544623802111451238255718758803293513312491217676005543694953536290688723411324654182947819282361270072169044166422960351953510916915042401447228695227173295156636142173603868152448414952621355456567399994815349247301966291550957821681734244119761350422518461706254006773564638925093127304812545491623055613611969388461335305507287103796163059799492282055181630160892607142573923786525081933020412443022353839515601047300240198533642568028543886977452798525337783351011314347073996404721864003606997015425127448842461135860519712862732175698927277576164550494466862432381790764493696487381631304454967483359445556803948419509124312108412060747891506542880181711257107465203360230578118948769198094992845217286099600822169525168185909707179452849983523563930074885586409433648904019550781653929648364815197326045442481180240124131019732214230703657974545341638735785758606126240228259025843301730572130351721625746404901912965130505266843177755603577634058607626866208181516076480863476754024799380325279686900363438077028825598946237441173953820690704494791760296893970551682058156628681747974123462023410854622584667273463403109878074826376833370326382561729908977386314789278682683541705977668497300269515785539818289913700335318701602844855021456290999983426251527711449994118178479718493199705048000135108134130549171590056656618887415816085144310794357735782153829780088985989672028447626253672477526312923152591990417951887998424846428631782491192312347728598159282376486570651702814559708878600988928022244918227520714217986316234465968489667081006606398984706328638287579415256000026377424042706133342670664586347414044689067257436873935080523224886793714833117300479695058395772533899449520458842176827650865637340804563113883896234793995564684712846009056580112770485639194167701587654379134779540971303977699445300497177598683529003653152194539203365567365317879032994386416242331111407733780443004309046264932203315585193734019567492912742364560482341866946868900141480588877150810352937663294156512278005202151460936270515225549249435917397883289223762655778104243043707990507851514068301946288804354885598777863443550161809780609233279487889956044026170461043684858652086196790207017276534963384915321267619216953464988639323978347113219989355827072060761533322421538594223128063659090719130293869198722267731648449436806660980065857572696744238105433997811853129826216261263183071367909505138818948203373960060621698145463591766508898038983287844506484256106169807547330888374299213387970587749586710732123467148280561609950705404665642733038530379318134744459486399736597835931170084889976919385865789711787685656291385091699761590768133609560814392528265266624721449038751629130118881634780371342622729749244734948414489584511214612664659787303231356095324805317800815820025320780613563635395066048850718229625738858551092341676566319839696152017554221950844752161407500930941072452974482217631384490569519608779911045511928301394455867112075888499496782322892891752232198984732340800856230467180839316694667764122820816111609913064454486843040085741674353460153336788070308520117275083754232794541480184832444280880311473279481608964756268470477646198046964017008743605218589404119884693984008989297254026052365569021576906632217692773003165884431406011885385794176585772403320599720395058202446772729659514161175929530868646745916510358219612029597211883998079885821892459878385121506537485782749979315259834449067939887555609023140510807173662890160159913049300127954996350079970665721618274899336930561853836220761507542518345783977620621457572945538790137923057211413784011895488248643322408505883282880809648119431460292732226960399726865465260212693225374687228573010018826822674421451111771338461424292304714901129176374553886589473651511673170447205282893378224356172000720672909847081338601068067520634275199222911211202280195709136217555886632397855069035511419453877253546045003186220812091250096630619569150407721234648703904629099895073671634763319628703036326861861518767701564157553656168936978274720309883720171224133694720189499422206489952390125389939679276391124033582169760841648586755598534759006566701614810442518402253884765723328598133064562647866760266725757484009536733872778346071325175068867160597985965775412556316578779768874313815351141360008279493423360573808270904896260197311879941829168208699555293532300916481558499385643264282652899664781967583393187476201758955761286567466471112582839063290409631060726947445873839661755088468851427306011605390081903059513016883605661212164361208721780915834663067099166992503776549497672706126818634883088162415545155580431809122708834796436178198327413490849474640490263923439181353001903192611919663218264087969135134967477310652301797401336320085346901065075308890139587827687989508443483794640034956701259762342645560775299096572896579208129789598258959579764841655389623180106135646601301277559851401834227162538606375531441626350658843198869299502773477908868071304012627474944457741950822349242143121331074055850667238776972839034911844650750496284117831292661301976805242218108013614177110222584424820054369399804375720264621614343820924852560264556901248745550474401790252856343697472205828521665696395883600508332821441806178711318008869309147275496156997674869371812615426613564909946044631333356519452102330279171748603684373882016021894752148280677761677258417976412118155446201109263164381158668339029463871989746407340905019898633031375018454061576612968594924388178347547383982919739249266306648924163885080816910760544321848704058462227112830691821924095781054498755842722774585721132917671756972487609042789674980567872128109270850533624759992005633486899067577843179654565447657887016971299701007992977256332803868037638187809242716360035117394414451116510367246431022615734072672300239501650763570799161741887665604049838288675767030521323986105872262560788605727845808361439416949819740544732796465795190215252148349138550175884013590007890383055293565553638250892660070088507231350611944662962655969466327897695898078483387391688396631250648813090555468956598686420009433526133734336642175146430398675013720433776513621351804748119444838261291920334298011459769423336298583938699491187897187959802524301679574203757609320969728240072729347559666668689692819282182623288912993932106445092871514648577764965420016567802686641038524101501158692321997611050709895669514784362944418916861796090113040545011210523442968410422758507013242146091825296142532767845296720134846606997335420109936080960509283561411109057044800760496827547856973016577629363388503629397210309066298585255388954970363407179702428931899082093558889527589095310308360135036134169855195414612908643617501559908483546883855631390079133656831209000133879717454118281429339505195170245270457849838555036430461614685574733968062610281327081771570528849650608164437112858502839641101675332157564988363890291379154276147326710981180250288792116616013465176599709746240601736195847234001246063980974373888932943419378166272943019543044894172103120983189155243899576248337278353651190695613501727000186489624888400179239271627311048468956317002891682813253862593090637580743939269622492435774031485197435292722172266747439026651668512011502801493322120896322346996231683093406470464869381683146228606839276793270537047942817807960507037006072338937176631187877068492796737902098923365278152858103108410117527447947059829502279194213994694020298474065174665234415108866858754461702224111846537479138878941130593104172542698551158653401305666429318387540719712569668112775284843352562941440004077620072576575260094427700194423815829546586682368685620066884778858318834500885041727402335135930222756925446249650000057616710449978722342310173503101110849685010432660025412554936978455322117237644471637571884026586793555842296174085420712921653006257019653469899581769427018649188868108307462638825227180728719917328345816663080573852672777864966048398667067785931272156409371222953870389740187630619820684688717545730044610217128989314841104036247759574898489388603383019222878548330840720881980093834046070203017105642556987040144302492111582956726064277096525032437487571117504858111336926962088849943552998983965158433362585274964462524746007533239723188836582372577695370307225467669508458038374224097067970261063536495736801480102106707503591460455433543056470611484682441512317538759912403259471136068279998471040448786021852321319139007320800799363050215354893356432951633860043106384921742647745156908627211830492757096016290292284839276089967248490814652362068619195174550594036822955199210940420670277215687622687138495316514017812984152661173823234744336670295033419924141041960562089445492146043775369401843025416406374235450000996489980213260408365358343654860219932750537900152823535913905350159053316937452768480791382966054576638317641602532876382106691382186027566313161011326154714057550534651970085373049214741175286260197040906948655463930202942847607806531682099189965921598046759203730863738726429073210492892042572220592425099455808422671241395066332289322788923669065949733690884042016683733679224631322373643381960266045814174171508933870074632664717803310122801838764293875248410184063743331086368107223139499803998620282584369777788623555624420244386256703657025522687833272522002615626545983247368535193815698971921639336042174408077099641090770744057884053905899208621887321017627386382754733933409382752494922889716885846271382062818550642084810410159443903606827841986748140451593357579466772673437480845227331679834603233414486688845112467953358403330446609715463010999977990598416953453302732264203823001090384071104530671737807393628514445796414694646832184765800833120606038687799799013065224142578155734207522793250476877108418726599198867845053246670684642681476338217903790319252349949046137393312738358187470738345482140200453407547515646332630017688170396051403440913870150615396011081266942767666246023131906261720272711717080078544750819665627943181142724620667002521686120478813563142769144998039990547285915559282046262601969521973886003398596734435871274210290123698564883955247717249757336294227382707851277424261369423286496257542973865328964705230021551912217292544961168090266574133864480986759779493344595277932046275027339850483840216020314988328642154127612812866653394417559887617607042252076963876578870729499144115200535054256386470817407452280146408216145249977261463786953025839653186124662811199913288207737587440791383726256475244636895268102749711147549084956619494552154226635825647338648190736810745740174303622183309755752629552758670859354880791101561960125619030206467744826382837061488171428073003251987660131320671814403323925051621898031285821031280182070107021959252764431652962470250298008302973346796870755455674364931413279014212330264463273991576140969307228446976712304358658029198579013797489506052538023834413408014763858478936707508144487315953865401246615172691852214262220752922217317904630638705032012683326579159816676773773308780046795957985811386199929338411520309362615249743258083996094932204227435412111104333709597199074792201759494689060543796765176269861287125340871179428112077656686244921459550555360841094873684222407314355610993532540889828972293766151423780176650428087472693844154236003103575396429827393716052330426345019753070299214882225684713541004281091763845309601081817413662738728908185676954172792749839652385894911706808686553805930498997515350228485805106844466333984332640250693847090394930416436661401294707050048248485373155839428271557071872427532831488670090212803069635074679320235578212816135319471982822141938930402904781610692591724236331570706015141472809251236688708265099345543110512095925773413016096415314547874718526081552685157857682403353605134481339182390805433337116641626117282325504680740260360041217304404142607538114208934872945033774441052657423277994698759081672675932304574801503596592739504324091592713075644014273049226355218713714001759019380255716370553303074108879678045574051657865203173280126249749827222054691695829193455908718253484495860941156707661018422956421743054248223597981093686038631241690348015739620946973384505121121860208481448666399822726932213758475348741426403757976908773743464184312375435294360535611660620500130019318252375615537629943731531572928203743269103971131189628311671351888855041581987229925329623544386332314246915411701057919480138698750266926018570548969120571433875105662401519986988531904551816527839494109476887066200192168588724766445254616965561951744941199077271696110597508934402635843039765186162286047034784564649368976190902720622316929752761405294715784788926601902626460940876740266757564316302625778454564853116662060905690067641641058520481654912275396400425382985654553638998903981533800364190422627774949046495304187187605689651116867788210765383805816786849684688704656657600368849142479989830417893197435809825912414823287322581166175249988171395630780603841090946598797976532508994789191867658582306784207515263059484599607743531864299266579009546620691070783991184852905036161649223460258825984152748736951122156002653612105829550726781571712280932826446215442918388862324410727701333156361941173422265537397157726996334890209084546224288949202325365173950041725922149493165890468201364545613124829137652488036229938828562863465610026754656916014219311488522369713891493837217298211517666701653427319956607633991452026314836166161444222577748184225510882524576117660437826131933832997986465357818448804623971741441027966548016133203743586596779552478834985719992221442996473275120938416025189076920170132100492739999339679533632635255892517268007525745913655816446932052957398602861947411188517560643002471062189797128584487296117074487225209887412684925988591357018864300812547776888504643230679566734356945705973978048433821298637196238869320546034149320073742754552066588725462144827361887824404922712745161942911966050737094330434251981423585383635997275502640547116859856151118027581969227223481859625605693984507426834160251658275857609768147224843342708891597609307412485281260653572214923952543620853133628402639749792857261945086448595441733606097811709264226722849748284939138330414830881973147489219994175043952277143637733656921095169562591825207855518374625731913486982701583699717608331671892963161837146106402157724627680101212339393773343802341791084209758994615309744387346994438500267929002946042047611726742937364748291436601677650835367697181359986384645328147070222261786523809099441826599341108879199852355061386513421221752285808882822658150357414537947574097785396822324940614330338153273136905106774125397476019826570338209501445471385615950447887991176094000305054692837080992778819957283155256538214548657606600373422897587770638347445414967697628879463267417335433695588545514222549823084218142348626881218880141623801777070416333310399517431907592118616397304138939134816519843613378061727620854278358794078236098162738882571717696931491175994845426592375659419320443884771226370528073874528725401252323966803356446715784931709548711802115990276157027170824931206493166580188479555772593767932758131558779894816815829873829472356676828968429124228140533471725142699824699667723613328363898685355230868291106163601709846299206814399720757708242921642874042389601475340963238810956489419391073602666597842405678567687386568658625501075815929451712591478304767654726164476014530207931596191151565254605115692749553315650366639801148085324274810030388755094049903326877815669229366930204721970413146321573040684507270475106548299912344682729522945357616074949703660273971143855530819760603463767633457809989322628125212999319307132200874416522080374206203667267444238644615449108844512097754464635205094202440552178691484037305068034692098702139583593271423513514659798424176856079617168091833588324232424070869236335297560237890233100441760210656169161412465358778215493267011608134536732257538408611876086241418977642069367970141813059860948795985453736327130260847500074657922924724250777895362469095513998161680532048787505081681263719901525882804400895039337849850469456580195595627024925488207135419337828907677822537800576444403446283656637267254722138513821768718030349947063882349445935257574926173801772123321549800947026644675802321755682764746060373359077274714985529747059847649997830638158837258220721034949664518930118764679841366023289620816495062686062526412934755081361629315971016521009814303471391860497751326693895558677593886075977380300973831325097400269420227572842301255681911572360519897896233640688979839323957966641659944868040388973165337714540152944979504293493566224487001056216517179634284571944239639533249393137099857373105193574241357642735479428146812071439228926946090203074999586798408162695838930078453352335785294022126939868428469544267539462746553594787633847609102423417619737070628226636932745542815085598580258840164955623459953857957877680518361269651724353134078093783732217127700519149265101951121101415455907006348227593652458326512578113571070896584375129977609019606027706925976229314988061486236317923147964987115724274543212591294816034180066060984565204187642365480087137779127804738790853091953646539444966757429722355501674009730175767845380273127932516730338199268375203400271429491655880135542198958234123662912427682194519837484952307955836318162885880712721895115930470020440843433397168445910265237726924916073247662020330099811661882371755130827796142039606952129630395529874483650100878887402067887192854942475302543328850497698475468330895233646703874428669383176508170552182819556352498992349740513222121499235362123529080924750118493052676255359611140088405529990083874590863511290732565006991070722228682546206824557403170171817405579255925222621746381393189037875148993150675412630745690998554629186802461779442257059285779594338037999632534200960972273935687217934462218914092961597892788877949316593223465619256257164450923492685569999105814148005391611692981858711433986100724657546903617929202157307397472177440450040163562142873980602273382705055902979511994464719909153845308301331702674732518158894384830905817730751999044238053747930012453222097956684529661902551555838525880445308394641069910633099294129143068930737321712544968406375743792581647710321819380972278666299376213689045864622901488045608225946547705135377064046071993148622785796310498654446290609380413040130354701202640926206612890910818492611404168322350525515161790332232915560709349739419384625506293447052637217653042137810049462436223575545686083279520196320533145610937480557544740744157319810941278176262823619021283816434344934356490451835450766246470794166899578167383844322314186390375752192006277883561860233380679697842121673264487381746889256198010385273535139025944018848337704932642868251734628968981842664825920616478111047444980291120966525097365275030910520728619409682334154797365510657342330220569631122292202851501245142506994052575802531057420823665708952588054079843728335180113821984470273216595012695666954208789033322910759437783333683472619557947628127834572285689187693179814541825522161344314333727072898452083743816522499756236461717605465789553613545012163377082735249689892493415047719772411415093323517504206648242845365057391992008396137404563252859486144441206376276282569915121580185042700039561407935558222193808959729600734292493083625191539162717659922970014448736991411031027607129866044767483659380230672182752707400918426064315001035837136044838234760322649427649798503609868470583776002002400150208118947210026333721566896593906417373300075178269458929695832610569584724295020464932339967788862716296938637937553428905862675044539281577800503644601930167246282430014384469208850204509424574436904900666915929610348071161894490963978228217670659144177148493441275093174083459180224423770301758059871436609028381980474107997923869517391803491591915009096245908436102056224694315291012074178155593966081973781627381957853293851050389886548480729590582205263253057459635866820451213162747458381704645355945717215954040581558401485100571321713184195235025382587852898245497518683909265734244231271658293686845876486993831979693703036955671763565936052633173987357108075270517366036285234735814143472340812584124602665851957739787442722995971806244218263823770058818884261898325886825253577116317679533202802135545866685105596356680613639375418918173246363222616375859574986497253948687873535682699892564419297944590242672821459233728395438925888779845860189057241601381502322881326060272515214492980949021111900224554411915051177974090739233535737983441428513263629051548170771329793626825014535535481932687232434435289004835653577454146744426550229366278221061722346090043200627861183499078394995577351069103074539061603792703480331785363774920975889066858674928379437438516457943841176486511960474661177314322576872073675914228342901498674603929405463088900281651007368637494344325499004609872207216625352780532351792484560791318578229198091397734477875731312511244317795238132791472240135870307668113380303381661696842467565246925933156358481325814920356531918613012421131983095156086045881328541571392313585656700999523653538114738872820696959866024802663489014504767243931055116860706470856624978301952237500773355610225117205231494262406749019981831537453119469398427798135452368393278088481410010763953769152307012972289653789179599645524131822193527237509612838199982034295570166530408190607620769252167335948014072369060400448801743259871437617069380228075014059829520635367058099343283346544229342312256795338809612454634257843423572639244403086002610903983530016530457056728595099542410940021570409570447288878266685064545660400379541230201907101482155531868954775100599433101350423640249724092242520835257944412138215891518754889975007176493364396372825144612474751784684717363307612473501958255453817703985776078815822762629305119122553351268819536422754310536434465670694194650424429189253465910809451572096479933191780268331920030193739999672993477601267518999933845834403019782113013251582189583416149783127007582896315239554636267838224918488941065067890889425781176999052758161583522849637439185168435933521268860056250333733435677809925578844575743732028227041271421839519865624822712206498197568260420742810567782908409788854129710223273908793676295539117180232039727511724351516191775763999063755573010555212354271175371249216516522481771041860875420887497749522965489793635755267912852964065549758759293599543436478538791126658541742669054942896656122612183341266698360165661556780705328287760375889733430632674085934726408060188017144926488980824875155880829865595119172031938964929731280360636322892150093559940428763355527718934708786115458165420217390886682678948900453680133110448485051866284089882068067442374401576632259558013168166852555374847296992291564305839274182019389449056959559540291288901539201044616453553933382702659530995965970110034535143557019053168045431532971005492897043555969517403120613321626254760315150135889521555664644961702186035462494664176963575116954568305851149251227767285052303729213509559292450237982848513195457559149991910478520027847883918535380966519173288064158656523838398526213477594330389203065417879615968461782647549460145626096609259678787670493078585694396437365605388779255005764012456923169679996670895135214287071916422330774942867734057785326446874342381255545390802152227621542676246868201297898665244634478291395144528491074489201944804095889974435037711862846938859969683118974111906344225339452400698145928337492106339644541461613927364067345327289675439505978890805503936683173140788281392577134538038672965100561063398063488208436520932419194965250179533612257875161503844300398950509133243865084562733724470398896502879715026125106655348301864494434078594703593499170272521019056757966986909693914858745282588653161659751249189453591473050409398530004061923618522114912472248034233543115006204025827253372713025183563904282349700166474090933938237001020525378654311910637227963543263932828936686554219179532144599050192178843829417742448243388626745994934300401334142082614400045380922504166045073980448618477336770403544593806124913358780533884192028611335435471034889165259860893738160158303198334774422743729890848912201352743376256456696464278480017703745823806031317667795316956824836535812148048624870659646465448913614147595604684839231365032508631236126588377556067672250591351127328384995591693153047070051660963577708471452203845204493541294279744304383899018510954207390357736918852228709510492211493273940258581875239952715509199984775635096061397115887312098143087520135359181817074443006777828950073073629594031952893254221742857942270421848596816316180415567859291859963542250760254420289495468370123631547765990317706426331443867444509878883333944731937614852252754930322925257231619374536751493152833083210133116260476739879762673744252811282255749169480930789062411455599790667805429159772772224603153483370953690374909420280700929602740162014753412078479900835783143982916014365389463160655148909949229329835701961938090913710592404372747975064155574843782350710175475119950284268567972686645007783776799142952711834493019515003774664658772034663530137908280659421212327217332688538505550177279899274247143217358102125980506806695218019802456183586521889511586960426470812412140557818684412424735860965742863258038596885155150491359207467818435921074653161440570894197088846591439400111371258988066498178542068058652859731822096553686719648893333413432711912799728119747566442563550057186802905234320705625915182643300238215196887001360506232372703164650001642884226708065558395726807233613439557347763685060096576587583691127689425256491792092451096811203507822827147240469687330753396551033053879252763823991583584239066397998578309001438124008355398576301537371394272610683095829838180000048338365864050339664384867435437664533690369487042985849312926659358299845635338215875865896953290452590943699735462454117829511274800202290979971801740352897970002603599386573637457131054194633317256553065212656397310024539267017944818550807053476282459825196712748099899900900887212591846915228937173632646650324073434179477801789051529835808402191798374978008299611662876524201230328770218192740115222345949666438909885434531222153186987951358225802346085328642159031878671124176689997723819195200394237939159958624789075807638483829909881108731736159334026067446980359496600601336882261209732465976026001788097729618620373999088012661672324251563310599697910653349336104627038157347073545264502406894146296535976012270999980636423689268974590838379401982784991492327419726308265251216543116211870389463904055287169529223382407704140451404700853059487571922857026561736710229252239800509973875369713732689905429605083217930257260884187190883048784187350205586519489965150319096512046488665448308432818307893748214423738910370093367710173589829825475773636457051264545058586480396284178493030169009087999036999511877708149593270687307501387323955193390494625654611023118977926953334677636297322174267336542569569423872462397557544044497983601145096600783212635107321051094076406533124899087748520877436676137254112246407504709762054139318931562850712948572590205721373559756819735864909607263747644605029807757216085257566946858164803020817342272555410105145795027575855838555260686027549757686462680751631910839081716169665272050797810180731090893488268872988147755730138408003524450458016874532363426103632484173724676305899195235033684560311466670874092933568329656894843504783889900365812525187318726287965106633076623003851638346950409185208758108713647535169066297074976300286225427894487911256654838059789352234174122052703085895528073430855476467612043938120901028492814232091295949631025536066328079816902655850681701514108411115018206160653129660094704172321178368106178287204233183549062828459278170252413720910838986480827241001722128306333488555799894548553964692739369289458391558957581229999500134415599332603427785697801524015368749017593706923473320263430563021101138344278758196675811824290928893223908787732781647911127682751556290607443578448576705865605214182920086723709995934263095274582786581059576497283644250670173016024843642701885993658656997421890271343304425030342498944691657878278708646907630128289135242940757855785556081211864531984298141055983739529384135433031028071466542515500505206094193907888970347243986201290366951427953769120245152019153135160102738716009721669085562713463269762257973560619396063254557483653366381992685602384451974812907835970735986886867049543651098471934784446172272357861709435638001337471394804592064994768889711874101227112627055255064145632777945874342405966859313813482144764474530851317671665912376859698389993640630869505429603167630477612179796998144854658938639801701213921865914808318455343231603375527361940460055691788660219748544590059917066830028229163482530641563626830041560620182419769499143243185495658846336780589656787594159879435757862697830433368673203014814928764990204963214729799783052129602366460324937564872902386145737976342556393973949421142753857080782159352079751002301667011404815200732578475857224457936106238348540943343520775605961004028746760598209923031601861455475935320085991399896034816536866164253874823699398889949828123223879333140524093134023878088865058475180498813751940351804569766006459972577070313411781517261401228507474876688141256156070660383875806044305821821622050880466680751058276661966699936674157467699071929891407482452512792172457611573048660757547852472997354660650854645890890503536974616466315983152326787393628522013197957545323036034719012697061353521641938135473794191651791779251074321582232378469639632056531549567097309665387991940360554074023869623854961315610988775461112103710860088669346466240123453651457183552138854187431348497536635303815548995763607704461530437650535386436290075485253266453964001949343529247837086219470846047807705174379572398244238051384022103087285433979978995449687438740293189493132235942635160062377468898008822368259434065244688079039598491791715982580912051744270545203742596194576244272487269658320770030682590314338951768406611474373399097742235362351960259275581459276956623103050265632056254823913842746668928564481507958295645505273697068275204776883355631606560610561880744139320153993328933507634320095643814032427771624653086494545971205549957671346481642599634125754471171085980116710184580199048594351803959701329688807181307075738894388352225895425785154808436010163120247317146581150708463105937503153283996337515377891198102793440525147453762141494643647091240267523899735448172037612370314197336699538690883930641078131112189726042132199522964584810656044895707618862842945134970660671759269681227741537053315723002591720958513269502538761887532436511388866002666637645796623062453274193858661284902069435459684480618300356908778112010824960179089549011634095475296869989739318307338005472482629448140165259179114277940172760508961518489814551239831649523804148341829523197313968505745308938903161282412388814736117453839242144147010603442472469781194720275929783328833359052640277193889891504403381169242017966793018341620348261789385401120736541577024135873695127226114029075118468275954270249750403780932633281379938635205809782018025660118389296999487262719100789186957653949366901964818011789289754088795549263702667369510967164911564279666188660313770774758581905998676332410967060850919466214630621593157888877653157642559976118126361004783947185617425006004794479468558463561597410301626255778114400352203514300837872035469804882631650916197926019397370280050642341057350548848559554551330428255750487948461562002892352649461748863232932272312876863227240325391547203768724739259899093861970054236159033358739062968798119905342875464481168554069674968931665990242698355903959023281828572811563520666048714987550544753121899009188825824242306086093942453435359284570392542013709441610879864042920213336266200362095284257698411479851294060689936057811074846691480318836383987950059687354800797099945085423619559720576811311574358852701148485630554694984825744897254657297738228987821918598786301120576974277286957915101861911060513142837592550303626274295472915587043096479593626062864083331601625783014534543559220853335281621480173383592305825146977844671186771359023695970631199449732165196731054730702800446824313964923619698216132219155435182988266787799177576358036647288362991283837793321283821492472616342734376838953563063994032699661437166348008193076333274789341949754595947909071018102667531524405503690347003848787801579528184299131110021633764424037984783992093026075381997050736968722551608453310641280816795000156845873043811205428168416415522441399568766228795394110772537550973504778339558001125633019772367822791681355544630335020700584233642742432279062275384034807523236919898701977524496019897635342395208801724133441880975954663197243092556408930037849261621423991256881852477757063370168462779235685428824823874134314715881780541533750905021551954272222771778729869967292269170875261621637923462987984935372250557916383922659004071694480470862522471532850069805634385370297956778094063931720882148093743519102163871763718453216219714996058787901517830504436335353364770999307867331742977233438349421639918355011619806435872062411088920852944380560578692456855777866449281166269244629722412064625320742652464939068217377336350469493304939575470922828537654057569625671848030022271144149805390817321667997636868450086623661245463262685177490792850474548391242238413091731146726346376392756289155568863305042197641583373342224792682219163916217123831901694224251475489431617024140472426483297564030126389823281590305781797465178298298712693927426549874183468388142391249403165454925597547503502940385761388733749615521477041140839747819219956396233417292808788233474269396048444161079619065100572911249116743066765941286344567362934313729960696934502507333458725141221057777453880871583757339203511249123249938352095596371760096927721693469529767206381940642809264743119051879784183842122615572088274514494012188330377615519583509679760624013720964385940488474906497994785620724351406154612765897602310604524513456572669747283162771094003453865775593732095756397030774433222307377870561528091023669698582075870186378414840992278559602298979668981665648112334482989911005146701867935320270704551339521299536194753612519773923357552953977747784035243906801970329263313962113466300007235404887780235849370633146823296224984432317246644434802192736199381798185469193878523733464279894545898821174522035342393913164733251870807937010992716102178094941427272953895741922717089856501322383061714936526264792774389591657697171485879938267438220177482891155338495879104032053891103734216683617382044044643529415254810602268700189553577183993488887761483118239571852805327401792168918112511261667513125928292592023915183072637573977941366705823194811264990307830412032656308637198463648931814780548994121418567792911658737112791181063361510049578110925907994874672238056319228837020361025531399549663296165261527542397253419361109911944571512404505748249057275174575302151147999661593170159071160655369589285676472095040181527129315522276474592264721900862109010027063599337775670914902584689895865878087374547689840469800211971271792199183030465662260782515051655136155521886699636151830545993793175088607873442251715920196626021177805296656117902740046984828796197029577331266342254257549173894004743971486769148458923521319677188074688169462275568554175537762596505411538438058558949462902371245911877834968825509524489346461798287807484243148114141746319638298267060401034364036596125041652552692698076968856827614667877060045365210866021422264205947345811556172313486016658825738834357545636648864243106278421544510052341594231831007051128697058972406102905583094345881282917379414507873816448147882257888453477580386678283113750992507239171452931690849286120799089636853269818556471601939197536141213447108325233501942718167671511855024182657480259726902861062986908986009603686355328300443280267788359467709392742696923471817057571029583984849830782446272876815500296305885556331391579381509030335897750606477841097167018164037560748522316611851987051747841873146668840072594391148297817784250273801826315089147579178132636392726640051256831883896833071553711750772588561765585842525974259413617770774992100877765279930849870392169501280311981256147114167502536682142585387975721810771920112362572792025530491153859166407537263386162403594397833553887988515681122028835364063332090832364066965790786815649963723410899804508756671784302985741796281454642308815730995961111600280251550298355829607438720736984515670857719818691003612483862600664079379657828804685790594942471729423321357289718238722867800941480682346333116621559862936892928170425844454136243787030794839840169341288614807955781722637962755383079658423812047948055503601619685045494092986708045795835210448503509360356501586923006284796833449908324134355700164795806611555689492289222890761987054823304650647303602969206348918839278274929296382447580443410791872721945200187997453435200883552381081056820961068995897587571376339793327570576447947397690964466318105604300500559135487200511587426713068905749963779176145472819796872405519323822891833766989136648192913689713036163118795261803317055806310323625472663092867435909548087249161936360208975936071541980427690909268819892602348492183147061100087287403955234549876939035429885897676931471939739885616234050038768459144799554196944019409839823884997571165409418772202117566547644477092128074176057936602036620202712882578525825605056208948710770176422138240559502778133086527518285352920393197524727361608272363735756207343074162950059848189816710846582473299954524066990055159090707241666339814887324709352565095038994798129547587401238522107750873884828158910678639236873006188954767823673066302044263408644221696016578873865636935446040655724897755080379109061946626632130125004300366732422005624511255544465036475077718072106808238527382827014812810651456893958373485596742190971974670876762774759072907590219567940070721376149165037133906057828166445918039113147125596017493426670605636945065414838653475384971698149119821390492728802464637334084719342724935416021200481490255649374772541339304250270291824476190628446688655805867679508740053882055507489180065918910425319063498035171152974724263035970040707830774977549699535246502502339835090278339146755815235090267249445050334492934169802304149598973937910921997761406676429289197308301056892579894568013668421425969780654241908911444749871748902124937757041558466992595177030325815027880865142655279279458423760511543602320327520431390666388875009834000020756677430892993666468234176797832085910659826088559556538147590582176033528911395142977527715104782840337746785873402946865371153316922293563847176476667391974928073029983621498608259356928723332192430401522901884452546817291421190578133431993333806313836096280933525441902295725961819754791592624946255337451189707994961816547512670560755265393153290342239736760797855447765018367955753961758354725783670059561771423725148972813300921084396989774880483447699079401330937695276737276808853168455786848496157747422818353454571992362684692922952367970120142494919382504087127441226660569466040227281990016061789719877332693344523676480752045769241510879237422539728087916282605881741548461231708554425472093638600634151985555031454110718423948248633248962981703009705824745197690143422327959776891054505235762887828172026826656614690028226180952826434369967691952509465764626556698871378705662111726072083445723068195542554238091424008448358201162866018996309125578427230506394788983562576920403950411156328494793764927197387229350797667587869476765782934901193873961470693780083167786247309129009081539033253159684507229045532772456122681664132696484652484682542688124171263647686151967505910032937705530794512674237150299912210132077065907530474341666613868006471335043341557373064974970472499541816259769093535521691796189487356958238837394272631745465212309953082655885324400911856043170053110933632338774531974315314462838668851481743089707418513755625155704978109666072236405135677366774089971162033121635494916374418189856917764293860283463799298364257502258028063067280000725631507253457782983555001115250899756092732507139735267675198155283215372127562844234936669374204083262149867901991688835669152676442596405652640140370636907498215837883829893087536806544082929731886978766761446427550434285607650916305647807955423998824026804462656659278837951431315954378193354125040865193818552400910023193949322796544228701705439592480655640625431134166953401416779756893994027488640631123559649356248372848547049927414749857979197935547194584746088569780944040543965052777858585198773118838846457527991514286214402357636558904331968541022604931373423653941162688869120969627348363122642603805393755856137736159412184129683744263492664055932140441359000017644628340396726836737161863744149359200017796369648463255527412337106946906519419134573490794490326809502171506717599238569138129658684665996528253601205744245525947511587640265833132437600497598301102866123257342071184898006683099999622199251243028309372973887850831234075964924051821600848805135703887595351881858540854775894876726128006193135488521064404074458455318856360496369719137477837901163876322619000613930293909713801445279155892705023121227512668315588940647016178021507432682541903492031076636424555599562358081673611846761749343268547843420977144074532664942426515629215818512949584872712470056372117101098684779797299598903090660348159704214626364249334509599261969386232542073862513348676721928318889372569019358356656944693929792370687090743127962715963265723195244829680268812476352486827945348052994242947755447505157462443188031406845489709099683170941190422093697924388296089923942278703579689146682365329454616102401956777887745332980503999960454330650312981595022378253448041549507109399691567266300493452588678910048167419528772515511898753970818838783512684582818856792197134814104019680295503146957466946201929146385388785540892184615392419219871050079256292423049992650955357499049640228753475488250044040916601616926186675400237779434590207554740979557937067693244902137509846310972730274454994471277541394765156793215837030857173347774336354265289607681764288592879784473645819712640865867410141002064185995650587631887470288877666906581728532422132727240553553881320025186392373263092262960968896355595583502355203738475146447610356356082436302058599861619784963962661803514614453201489612909678091884558905011386196835592465887386631303897012425188521440440280426512398180755368305184414503102129936657268042676346856266681897928715340438384383660650665504552826223820376253111972557498764846980153804293031850835086029697531779538797871622564166680088765594428928900117994902733998788773126164424837589974593310545906462771629709503201190332369320520480101337613662406010026062885922119123419950914442895578833211399767201875695798272094998430836949397567205686151542202201951200738906924402894527056096060885623995072939793350244125184529374684375543793550264925924151993095481820236381627507277420170326608577244789779923729190477287519963014604933020309765783952367888041774690034345021098996508428736632551016897908265276165099924209143008538070715888745242254804166779157231613892145741691736879256348802817788235836446009244038859835919648085072537915862567145482611962043504330366353360573152753649377042556897439131334152902072745828994407709829995063407826171754162536784291747682844664195350119059268215721291246899503942300936196062507677147845188654991769953415917978012190298862112953319685564199094699360726052945722887935053208689108810322640818531202873304578921607025020052163351994732358435417181894086770155256009135215594907563867981061777469196451689067649940413085645525473074962953716699787206732234851552847621414893133882373050639721282015341242416604228726233526225649753740476750607688927151366551070195333316549425570834676450046198110436055210193903229045040950859179384113990348845868894801425780850788045338629252644729054054564422767468602133901639319941661467947710784844096388819296156602248509044231741066415692480040235154038065081903900857652877992138455581250637436500538665866422559214994306807381617134435036180425335369722646995104802169596521983700414940728788382125739877997500066112856250558983368149767983358479834605553575683417294401753919647971098051664177593864415779159757962279253357433373775562359950468714755460174060145205982476959079765942723324642855956979855568434390890137219801038148803875345865664306600091043702400947153116832654006347977448911827619374144071834180004739884360769506828643589693846382820517863554172697258468615295271123974246458861456955080554369997029088995717757534564225261906806266361824825958669042664702101439827110746709381920248233859727699499923334292708835403995602695827700902607659864259043034996183491808150217539495708090884216932056721164928659074896116704001630803806563247481293815249744039210423726558870665446917874040735806560153421043501787112664130773470316706197456337485499156116804537288102702149807211218525585189191283046471971219354515323452378452614205843732009345756372317805374431407404561009234747106708345415647578371737057217191294305123715014256283065578924280092427453950398968344326848591042167828943275902922993296831728310699545693881521516954214142575359946677758544859869529747875318076409117224067932278182135657801205655603755971897438021609041512724449888233896758407683169223087230893130979237196107664814784805434276758029014689556770807100957718857113176775010035230588171209478879735642002975471465202722901824825771014113973556834256547334138913632978987323156449222145160032410547088448733819139732065272159803019132567977148862139490024621947921406353379114327195308063095588790848370608189698899391352170215351662920744157464831302015095356894182471020868257607366880430548924783704992833894199146973703496823171904210467124150233824183551856362542633403632442492604912589984773122731117530868825405845920324355231682065002995178132657386520396283529442151575446226225766271762583615817861691251340648223792808929500596605143579728101199921973892071836770763039799092089744629884334719821917093969964778386913830094487913977043411941018106609803881184054302054602033452416564667360184867731879360304882773908930943446781713632994015288980415204528826254727311886595948866693369998530024329110456049839957926890569924348890987433780782172366672439603083371457200230461418266260597243276570282710247842062813184436500353699727551509193219400078071127340961730637661591199609648467445608263356930246064590449701016180668465143025293428576042060655337581624338321044034535010028963216336560143278480213905780900088200345023537707401778899340093319898412370191535757127617981559551855961422902699534055344102447729024361043157996927453952866214577599146223037613755675742974249169889235124244047110453698594879663370751184009642535732217458803323247629024710801878240161397626469615005567253834282663286262907182376517306833366777378852226210398136157499657919026853069432250791558378452810701642164197052004980439972928961801122675235474896273353439925805221020007226695903611336897464913362499622953751219958050087150127415184925458355257877783410138468155829877788423049437968481875911690053851730223126266273981473415693956102675424537186249583626590482154943832100322610862042767419603961243403528684587349941044701198398995607836098955332387387471251605252735296951506803419992325960738770350210824007538547810859955890798019167386238084021214197706500844098610503850108900616445161324442083659339303860247877885669433400113477730940348597107366052709128673212602954612907252932292580605460281050505079546932465153634462181709232975972435180267378301684564604198269941563408029849187524395918577913928105199894236248459743842825470479136548954791305488750218782620390578926535857736144138242425971137492319131729323699713812729050383853077961082392098128068626109719585810256677798095993242693718905823154643841742446374577042306159970205029116927473906831223434890885471634853638247205325530312696869753579513856840588609069410688502827639170228943433376185302225698470956389930673577098559203063352948048400248001877297587002450661634496421943023286582162354333754493320901472670063590153574797228979172409971532038197995351274033806525594000737906875485590362475753786489906231100308360027762519983625218971665456137159012298295921769977218772431426954360850538418042296701324680469210105467765488301234305751502462420815591997523731357882827642212129268950777096253257708015417138622147671029323208570199832340938939079798259137555021435524449508020363931933857476447743224914796818466520393889276910422380324166267902776835502125400676576474994757149312280970043170983616068479187595822144400763594952726768260816835914387559049977203927613830920418912027119786985154546981597321911788513200328742264894210776569269292687328822007192833812721131087508616238127803695396441647908630870493868795368934132276148372366753356858600542512885614072339562418892787263888451501883195721061587188258814164714940503189285875413814156204604829487340423249189965562893627403196360890835176286013845732588617607734232823178690002339042651953124011490435920906218870279937982630283532685616142101479205995702075043684388898571379101850101940234511776849365866583457736799758350200062047735655356098831700627005355633805643435859980265953451388963259462148293326968739021441446056668607057376412675906711326060614778541789628084394562254974263318251018567337449468326864761914218110700635331822574208663669560308904615157000317238009085530323283990597217482997278838491181997865158541327441797246710334849282692422533089406761862315845770459390885799706863263111973031620285365826348834818315433202963511839796518660021271337106272058942351857928534183079732755517753772014888315155298928542558935884916839375455370609365842365767067628230565466014193286165870671047918126616036914827073848948049125788597555338371093782823888999741102465829413842695650925512468343561046205552244356584573487847029200847731405312763609025798078769464294924755551270850092407891835352582508968024979573233750738105466715929091873444645398539741137014821993679578336126827864161825440453348995976640327119990739664669116796974704570548700097340078998325228398191895861969300246371544638831410907687928130984794642605918770336545025397352997286545077362975138133812023802362444007698233501642771353553311712474247480433497742355470360293108316128900017848916869615475752536720722106745713915198909010652782983054616117006976330627329029306011635625218590204964587299951320499075555325017342653357583527276898883652122164695442409403402852345764001067902558188399549993048764993154982691259686541613489424687549796804746049913003520501416351378378188531890441038025319304432060774990557274086970705756844530537937456969878500951147549957216208539507477811816690568820024069328232121223648477726306456965843766441379281876983308281086881396976066482185363466206563490658250541497911089363114693246614564551519513023115608738147627381557709322122805439317862901681094575553712881585006892172177927997556799792812668743605048403048352088405683883010909808245230243908998726198836577133900524509444275365561808709000946298839313611377114090170709677312288928059469357006190304149498795927560078866522833812153218895712480148626403228093268816820309989087251684748871086171477943396823877409687605597516564793629237802340520931140385282200930069108645375672083940830609831443770108321274538217589360975862354615362041523040255348543520846322539770702172112996205369168061252408456419021846329652193765216582435316892029545451866383613762812571432652680248646111465502507396015467805638427367514785001609583035995609873835751541616917959453610015213648571411458402725286355515123883621424304466388864592622325790437574086869843643423136406283067979069546602241827445695878386057465188225715787497973870526392580232522358590743711383458551793897555197476786809794749587416551644731241942318625907227267129088183435216279170053870794745593018265749427950168632920031597303688194960014657661363531636170293563356952373650390480780497759349991048966268358251042384730122392272849410651771950013835195666057445274944805859728911548084510321276564778252121041649565147205079918134094083790161246572550060869922644516500108381320712263170586410976040810191482295217918100639821703751397870620499218028182695261568399118822768769170921293409698482958701182235202286664548734377105180211568872330534285087761513548207730449374339459368928822831235712387876039926062267948718050243766898461931293164640282150781937394890456309781548071897662413067237068363476478726451003381173025821745632740072693573036056669909934830767109750034414038190519758511084823897569274006243164268525240423111553317836431491080578065939146344157152638617868903124640245193613029690017324161124094031912252372531684002851103958508390496897422855050295737832811552411764480151871572906596147761244133510241704856099981133430025027477260795191253296779572459193663364850395391627406489153164840260082993892237594626676865437798716615617665044338635536260691582420040980066954803015574683215184786533591686594477796618444523608640003181694561083726506396046508772172129064382097927128790146428160487755073244853549978889369302954257462795998540625395737884214486953015917972826427529527041181753282338246913410109705359760352444225636140983605251609365699492221855140399806225257640208003197591929665663660172516935638918063598105835453343663192532906882531501955090295457863030891573046078635654434912504286395205312359881780157492631298960070448816165773482344045471726529944645017625321241294471761148787559003362439581075191618250239742844369366727419050902114748367875868264527244139929075833186960353717363318299142006660471647790600148321186453711155444526987872801574201457310124151207274206881078343530358890394401494944836588181393974146093067116621955150700073981864425602082260468329439251924947757604749142846884808510146157862554152747517222123781746762499341094088985029650806899366548661252381024441132110849076307810326735120567086008791568869995575041570620000770357722549431740254848183107775951040495591494406523317413775416349093064929531218331704569732138846274573080272632959489725780679695180636834046073387088535153983747204135175503563235439993740050501567506306671667216163995848086488535747381517450874234222982334106830820411310134404935739631652731939878164917436467385661911700748957823561293146158788983489861105479813585465020735004891495388211561467129758271701214724287132502622654169205651707760473203175612443171166431856807724390979648460116882792298955341167979664896607483865521986882931769506444439036800605620934641573446295697308979100368661933137024249703595580869098787986366600925732223121612534764950709891907166563874813058140940873539429682926714472490085316194848552316983870327280090573721957116360822255037102978837931169864233319580516771935471038286252943954116423929865086745471587551469197203006738142964346072824863582097345497562104848253291723634855000177903642782346831453571850352724580212727380169919864748187992579376720168082719498238795610966949093797820426892660474571258333265752445989972491773524652272609990189575273236896845864296818207551400317808467394871956508369544049209913578031090986260419535282072654205116240284038459625572888944493427009818345056432081574213726431198539994845083110716504958558427086933104823370272696686355476339223476715445555714324208859214398866789052281886294351766787810441009437231747219535797436247099222194730387304577867057311183767715918590987446860519120574402195871530644288776938450350713943063990462633597931172122873912029914077638273896147198287461551767706602318468203220596737617096268458090747933854167852763111543146604065727138073031364272819306306365176137529176199149640136244292533453522079093768043069181000804284150441344127122050851743394708602160770315446845761521120518327157447602113456959967897665067360368621650920475504503176202809094682265507535514589287689310731786372182583020033074234889825994926181970566673400215312262722091230984924265608018362302965230325147685666607293043486887309219961055677240154304694133442733382653178237371406378993741879804375502651055305741682812553497256918858300369183672595135558709693184328735534516520381112276717094370878619430706642526770488550690601481588713271643464511381345061359772332112869337126629087390406915976905774839554708318779534433779652326977585204031085588068740902026762620328435812017917289465937664637331838752525387891395946624778976437123450163435759463463485417799309755849110125069233907888694319096384232916243424667189699899741272646643513472896930890646106579395548360947489975228849266671400746384579452064441907908238610160678081750068984337815257606227135730203998923836187568967342317022005812980045793993717244564186630485702854745233419015607501533427530424884502804577330665984099814079195649918122138676563939331505358805612910024702704030458121271708452679501911347592300537407026479782390597096120017248963410896899089435512596091372835618442178150082524627315481420720524767945582780312767460914996652630460804715937157790183721516275911870924846340589289467376521886954305116907769872349410958742369285858828569842110364762752679671039183643812996568610955456378924131272390771304073122967470237125724447568441604539274349344628940986017163977469193867326816163656944977001349076002673485224972017937565594840634176614599538529898779826027034822059149576142925962746312310683642020908039604227614416415186197952367016321519053513391050131947884334270465854721326594378587905874607751630017798796852675390128397704468690491584352535394710999431177229578021561544842140471443797692480458082757389555851424810651526309222721084063746696169014966899175852387872374965418877920667695362174800404962686364583092537484501334115812276755246209032008658185635018131487482113442145885687810815760551798074411851929147146529127502420894800432891147957378132956666932702394885640309974467086866519629178158945543240376952092094961133982207643117111622287300833210281588562024969469447390370647156181796424715057810007966639137463180551814295130746288390895315144276837650406450555455635450497857701888910919348106982890606056037559649792557824977879714194369053241723291066253732725022349097096781036974851747797467080214408190553870418025195261434882570936846665938985470701237976370562219488140296632745962787955578168053102029239829549842601303519597687173510416080201146769660633980924078343643601896344241428253115742349843864000527179994964223178112226517925960466099566133997467630020069096526239869779455010071663022706848555351539682622027430565412719079565562038407233068251691045957828590199880386135245466002445765098872371325433629381321530510642394821731223100398828508384328017210410059323555082535320434914065276509131546702539521800694010114974804837100413254471939100784281175488749784645947654794521517001169740088197074370759343603969225036739563781814272368773318752102124826804663505281727123619775094288634205751304894983522100393602350364637344787218904381115768959903922810733714546314049089554688465148364704061621410831336006436198277601389787449997218419049694234065415842973818591479195076804787900477824494949517613182325476252805896396297995838284536195383399097214501653230158318660740822775766735009855572573346747372176659850360645515203191925010275203084101859492371643247996350586552074283842603199176381663578153616404251332413369870916464872126637118977482503634087955517478676493072327587168339541302349106224889918377821947281626013287669445208778773904085696413126089951048240003902400118195508968909380142934527013329891227865794820738143450427741615391933786386843445285616244889092971063084928895422177527068885696130718942453139868755883207299083401793518233096325246295388410115036342173900445835649240796113018087234519683210052675846664235041058987982843788027889165760903312116714997674279436375333372334683451146220439572583902525220159519998670099789660687751332020666231301677275122397947674426176393061411027335019400494945023575935117080429318754280970367597255188182016376059331484327039942936592802567733414987107223730632398341248214868531678616830367961644831528413315743438242541866245502671467414207291367508642429416903792341193990282019913449639806251405444250972479950072172808581609831931107058949203225072405362021241835209661023248779139822566359321867946288697404808420756097315140766827236610719524607458892972086821902423223993652608266189823771451951261667378323016571202182570784847084237418645110731376084497885854582423574746921801890970733271791873285034033822507272118859275178866680965094240388163191451703409893703376796453687510976947061652710168993054699852318968214761638886664131054223656819132674126086339809868302809490120525937797142851603109843943516788587856004672907065630233180379323890429277992536745781637427609794791395045418532979760099156010070898056372938365926065420074567760931303718946231605425037321691684535466529563796984871000197746903786879922113726671288563865883617156814189602777180053247276750798547318092892982993843505362427338705944606531785613247374847353499368334909388843952455395271889227297772247868361479072592138725168696697415028111809210977373358079112916899644655765841859868994309806613056445017638228374940130289885226043324519380556867675733795904408157974594972309706628190236910747129254054938310596781998656822274925464076739835912228250748550467590800222863298445449421167807426836820452139902608586422601352676710114379961244037132535690712122687571386248982367222475072821129021487614026712424525952244061415387189238006527887786557768211688362311999593039826222987009690534816269034183183597442565192248400764415643966157350541118019323434453773556772663401690740117679441288913862350565739476140198734739177590396134133689798201236477456971314964269225112274798014424552696696206495579665142938997527199839020579085516589936584765893910359436340888986565080388475730186048109314931894029599882613292214891012087655458837344463834651605227523322559230322023940474474255050764267456387681061352673934840740287988642354455870318297644501610737147315688000802351766823507220010696661589101134889906352480419761066490769139699189318522166131832728407093521510459780150574277439918747305824678475507424329732291125560795916905150574384357163920689140122162526281572031459924277559000270886158415702774557897219641527032520830160613546468607589104021354315524554333593347561443593438584858860820489949734199483069356514489272277983363331767112676295968345715353387534235543274608250162179139615229809675247928673545035133121243927175015285309686635589320702402179082556874164726648348990170171751872963871133982844811174473559335847143891002594005603717340543335487343411805962121715620643851064860071604838166604665005438468330184622431702294910663408000531757923867156084711241863219666211406393506654633375248337338920527698268004386822527711727806355266072381197097552968904445145397945948969142874424523701573748439194411893316859003015352656334628536062957114052827476353936211716660089885432083609605889870580527664458444022777231760626597114828971661782202918192875210187078581800274856763292467084323019503275688313911704573428849926579284398283044331397123810012425297823836986750533731118045083330742450278528077041597772033255105037894259612763436976950759933494476472677499507831836173404703022961155998003748759008174562518940973032938218207988354677715495282859904401507583372944561892471378932381622355021202316822260378562011931730423960733773919667258730397244394116875712934397345242598176075445697570622265585217008095115543491319419593130243723403567320774560607160117231445286065386235162045247022165169550385474925598096599208593809629851940630923467007926502229612031243209812687805207463448796073640078344916364988952796122832680991750198976004481818989278149700850070020744809857479502946163448764431358849547204437111749874064979224551354669209651937292267876131188698516462186050987946551153312233634812153800310182872812015532947630062336556194725661296197454092278215343906283210976468363865085418081527689787792617913745291447841526464019974519700139837969075957314307062118684030960028223944713760598240141374165365770976386639294003008716516893011373593694266859733404909355514875851918735090523422950531337762634482020989422829553402539016031587352873602073104631399379722251651312898152788792883145031695383966428044060777310259388760486263737515109790562857300070724943038541006646397224954001664732247918227433234547987405176798326160214527108122297388109559975313617323862294253899525047778673760097157823887011154335038986113488517946417973692900682788841820877738677737164103042255555023997660094359738382558029339058982466506851265378605107327603753698067590191903916766839183976169363466063115473934976590988221804440289108720791992405060619242149498002270160412693819181661293577352972771948545451166686547443384567166449691286936311359217941135365228184331459225675891973724452466992359471708487842011423344900005891948434803563764328473409140235131111480420098399992413026523780112310480871066150244872976027981614192451210829598198873575367997833396993747560872151079011889532700334605957616493031757187977367928996717318903275771967808368709628926406568120152286814526989508195516026280951539504594196155804673271994068163285950962362493191255012477701100772475616137161734217746134198622723218817847147769591305408090206121309506476708648846534143539791737442059125923113350249133118933392723468983968138009775592803087833777912595082188193621568084117090861582910113654263996503418536531750963473252767651985540324098786447372225448795943549502237507141731108226720364601139270192979329045985224029823301142999784580056784836207561642306048188713160881272750969715503730067907929129151859900748635695703224408903845721169491674903900958242407570321779830023254514850291459251479510983878106555704725773904229039256199069436982771894695681712918573194095721954596279507294584316206529675562021774402202836638291752404296975252862218089219395583453165352397620837564995185364932432963919672675149674936954174377698429738156506446916828796117603575752443963202883867772370633091471950276526074163934687072142602826513188539892192456105454034755995574408797692567249301828019639435256524589312416784593949303812010413139918766857369925890786026283041370154660736769139068871769765913308160918364652243105931419298784448250268375378777888292197343051958964300025148847882194933796739880014161781560605257297717310520157255412575351786278510384392784349311262814355559812952399818144572005975051781389589971479885986256886617442127137053662925455947964182428710093084380928061563870550819202925785112857655263928044375774148095811935797930567108740934441625765024205278988333409534547794019731480227092355711443789127511993812222750295665386332113347688907976671399740771705066700981890264755220227645304621284614057017379378319168409574162863657129419515282663442878666217058077871345163679630616154118326078027735065779182344334075114807442624418214278606783687511439088380649786571847018118645294499897788134878895066136054340811480112638269731925286493327970172420422466366421200585812578267260658650724998384875607567362830152807294728475280893717155934104090157737512752431437968596613510045039458815692684671647680512037773147139278342288930799785407806090861150337519838854680174390545562116921898674525145904021726480308541753216119062521168027274388557562492813957304887042095143827994415764450710320776794482261461112210946257165910000060040193667299962342713806098277576679121083625972229773732131120376557904460930990330977721693766343707992297614384219606157330179798036209589901875784213199566986499633402586332897228988351859306972904672441457167534357356394824811776993298582311750866844421877985917319614903128997977424184179584957474405409346704080917303645437454507732663710637074721110332420051306122946402029239264185764464773328410790367135746733248878919269493259104956839051675542118549927458141005811837359752656273940098671417180655101710046136776286917048096719227148796925875886055435374339199905671792481809401054536011618887708244908058358247437473285858311185411371543262884559332239470307609081458756285139757623652627611309414375865111326823159275235042666900339118050040613395238880193437729249782328052763705811557807712748698559467213070111470130878535124919846436508518716033209016623846330362805362849850837214969682960570841000511895294951309936753244362652085907916130803022605470403392004414078485743045295575903398945794402127000230959694093824252943013382368331379650712495850445395616373930605091578822666836621191016814594701698608257046068978367959745793147107500318588133368313302424439819691384186221941184933516496985400669697232721452786464430222400163141300560530376798870652688897772241339796137955496546081458671169290654099393341122378046175029393606388514818347520455527937624880086689870466554934476805422702618558568510591512598832607431647282882229331891890274024761669473660674430854783318757753496751844439018112414666194736035841596168767545139165651768887921954074792576250174709559402842979292932413796369667525274386433477963450345539579609013267871535322233531142817444014574763695308523209234501438923336703381940754781100789792910146748586052106101765727885581185936288902433180914252265576977128673552957429057880875990685779994552102345092563007280397948773874210834814351051584998953982037652204123391591229867802666594708481429689932990707531150419473638935049942131700825977144893702914870160706130833145719890985764916767025928384673057404229844681938861191293068810387171300509832972126308686762564543248710600473185871329243475790418556017290252563154260311858576044584442951306819210695502537299609858601731623097105752239719367910166330269978301695152048707506600080863475845202876815116432662632324288030131246495196932643689163887791746982206948351250447460926632781424366028845947251363782625166246359041182645355193204558855955503617949413167079388050262087868622677893319365059341477541096261267856272494889561960773297558636432705071943388247099605336641453623231348317004650010444043062455036598803465503252113263743584675589587935037476917918644204557010128152568167634841759873680848569190120238637725622101302405908932130451945921791539279580280828279963390387234339188768249046633447795505851275841438792557792424150202826457958061807179961873835753734159405400961000741353778273486057880936137603256925010832025382564470331556546383932366016545233143412233280817266624640271283248842780245453020481258649251147780479749382414437670757855807292534002413606896273195732128135911078465047694694084119917506197800860023236247191073751873299155297731874850732860608370982288476184328937482566155163977346886698489562043549073558735105927155767700594367074872616866405967244837615723418047325353760538854576535971605068283704687170166888904412745624937944627873888986583939602331421400662919167261977539369077580179121746282891879775236112841673524085198971043974804683787270201109296233294384561311822745878150785530211942540365645288168005371986874756878172079229105137367855610188785402611145492624852324748740127356371483168532106189152292053924564030414444904281870679276703231811757825198887383102229979834044841792131274450633351457024173719056741995797284733406426984553892697110647849934632178201954281369097550140576889027379315229160289840820564311590585267296326342108815498345315139164903539751934761117020594683165059013993780995874483796587098956511146943020991366160274400370489557657342615586336905329878791637062302655929129238356139546671788693950983617332989732337728238690550808366085450572223460741274702176874534859478601828857885732292557159359051179970178496030580835381194303148693645312938073292653963914967527878433072937784049966772551541724393100946616007396236574100733397590821240143709103189593811378219913330362103709113356099024682114274180760990597788650799566680195315290261302019765383999691023083798266981780167707333764523386461171547988897714114928493962758829095659382470644752071161659645812915611435192933363115251162320731118686670812521205337349920060823588403180705800894945812687952865895504920004073889672370711561873257592692518063371333364613269594325923024242880544888404250739444960864363890472528118337486147494635078479171052736563730636483216338515145215881766980258346917358819434909009795881505575080856737260216095875462106154357151945418599094166609232230648451205921841765339911318657372129647553922670721220722490766379060185757325930092499796833884406780834874294079378495351833739498995705626310742073256911210645395997578212781858003383861438172537000623969190428750422919007263268607867717031597877210076922474489182541573069492447204414837318916611775638999251039723698893230903613636591908161628013901219820951296514523792389504906481689705214883560684404740216201584842646379708184258210312204743431701453489344884686746476282417629855587997242852242415245760749073625184121254217184153510643950299099711110481439383077440473946514344722502501088358325665285501871295868328562674358235207881471707408206805386433051855928121608850098315648535864213272527492359335541758793597939921308303491719154687068150345017933200595062559408485237380979030496218469826227344646892693134907202037599534718698858568175243876946023380114774366869598445591043499746195254435297999599928920685144755068885243672538287276139865599457740685328491131190917335405424483826686148566209179447022068258174226877630055540083222276071285873307006132184788383463042918680370960199424582794602612455704032312808963891018047053174729723198263085911658090135551203412589627302881636496904902444746160944484997935470413559239294289275942257695544828504871498924527786843648648152864406366992873885795250809592931997814022492476738030248587962726646644234287513855858892841057982669363219500366030393961996348145888898227211788908891132792417568475663686607400898559251221471723267858508409276496246457703376404207106333286041946074258798637335611757201429899735960715374171053914012807549326387215431020114065725133242295377574295414736307245714589230439009949557070938378535787381838059595387733918108872208921045428689747652907966903970819721333200817614438258592433343192774728686217364626982516839891698164269341371037307757318147625401482124707279519376616824381232948017434975158116387361001111168188557754434027439720980684391761906128281406237868413719223730423701581265680802088300959073702812794959527916245297221940611220053865774033209163378551883654961776574144450516030738247092370722242849994670068921326932207745179272653553871592601592524158741136554354080472429604387118740381958913525342448061242958473670070835247079597332589232784942389326539259004852228805290410233809235994940030888252430805564191102681577851347994796219218471520680527826660500571041589176940584220518827199120464575480465852723313132254167867361201727089935434482839357875369440888486112927209051428582440635920911018989623351674478459639135758107750327785175250494068703458223622464316567635070922204737227924784198645971802013597295901515937042766932378452922647227382952097577829345559830739155046373465104561546474307944187327477326574952232184069626940258209030582086846820273134230041019640859023032915653920293698833784736373718603618884663850194933078144090736805161860156449501642392038971969152011709835428839880189218401801797679073808951565673122883467907107684911999417678127356984808415031071156997453806193134586358283335788617784573374580419115988576407435868486513152663895376797308914805152464629471434188277679672741032215064964379199536620536802991473104497035734611190540698490551143800920943161881844514321199621248656783521905388003258385026886558440226694971468207535548358474206577095413929306753282088572239504361216328979119428203452410053686585105006864998325511460754808523238941748769841234612847976570739788908069796691652183433522433625822128488491838903352814964187073661383693881429378063416858157871450541876614494023570030062442235025080324475050341586463386286138908185432674184564143710956587109343890349326114455609620088348371772436558521920943329247515893703505639855531943810950985610377533026469604987102382649591347388914468480860426267720660050113804763092851258089885028334045649458591335090658592163909632648480382548056994136195645194514821739544806964674823324518455625176719359452229743588227713025999378578397595202153691819127721740802705190576333342349048492836300027637021488622683902688769637800337153550262437090294651190144133244509549044940450054171317958395138325934284805713608813203927020361656212188184901347860257229950934611764868977988151081583728354850792014588779277953276751506196819752465181799523933151464216088604713464508019953150170398957373415719698081207384530338210203358173676967645458357068500179132735642460496984142763285508573492321936222154261637137520084372764650161458647124680025674681244809509588602677740139828397144623362365791162643211821007327691912928259137437342727665445805522693252892617372743586371584747739282341537561482091457918015207460027074178262584903893915781916401301702826451855333641348002278882828567403511449476266931901793477043202939342870911430135376376705291064270497417074114287795514501980252686352188944225613337221204214458299903674252744752575925860484156866441593475960677955662620760237878931246203407284190226794958151766095056675776323500945858557344667680921198527163791323334886222807281842124488521406214673317527711612401801894320117683992424533707952104249212230269598179349407048044705229824866844283323999566020057765325289701444017032124897110986130864682436616185096915630591864609373288445637540227391397136793224646451251853447563541939840941926766846983276569266709127954271943864736895909443926286444980030415510145145504132422909791451246230959542380870311720225940003361556425970324431936083684725025753352137301575344240704256540089127015790102301460066063765528393082567899437480168243028883922792880559369822002908526263844775489150242452967986461657912271210972684871402393694636338499460297570551195925703982386242058352573763187481220996972345414641634772647492307136674276204412640006558449147793821714023990675328494132643394844348101273853468740183894801668392736353812221193546591214983682697312773228927692734008896561310144541739973239739260622975064440182099225982968505507836376752294581574991829833029238161074927171008329013967626683393562958235767132255490401135119844984850799338830413976713482128881820068182893366382552894594169110934627544441521267827711595727744098800711389735030581210566209766383491765849285611485260909848984920795706672450390268658066607437948078863837734877879281643859365563388739195837098022793709545564249682029577147554409629684638289179531506659254803076868159256597230471302093633826875898768055386464584910851106900464561937653828999249869750908336980037803615848558495383626781445011892599464648549177821789407487186655597626927929879589156809636673113816903734801854922593610748209303457763032985098608802583144552722627195186784773444633327513570387445738833608536079134246292786987329288965932551428417503850842525184099474855290246611131705663747309490553399635000082343013026200664951106183053930205114471170863670048234596803358253685080120980678113009571476652128978316226168232625006205396238623306653642333574832917975107881408780646780033617126361304809328752151934850813074540576994581190635010961103697083379841893754165629026932216380853396077726606187957231198953548840623190781911472491857936202556040402697831668730267877406110898293074375040183786693222239043925224543724887408568679653235286751715451707904874513303957109073532437726444875079876061369842449537306526946957453546179171375414515794419152123709347296180247709184746545699783140236380038619783181800110269950220087846028704693420221727981612798446554667385439700370954545396283263609670780007583829111974753519870840234329609143381934365025606656367652963576757822666635614685201801572642429278648438776605597991828662800499331167429860712050259087198771151780811280678000877923047722934512970164856195818825149216145637472450341305760727911467931264657737318822730193496039522737876606347079145606881991721636656117173008567782549054885094912334608816614169936853099301056880168853064878390501676089777922037674038885755799414561796749426955487924942271561612139462150901727610885796774764031597703038895242623402413634581966204734946474658142642581355196005503909775145394853374273771790154155151469518690411384507032249955658696579242939821187731061843090767915582390692725869313880855946986654925805423283316822125545815968058047489655393370834112711346437449640178021283571375664548614005849261655982072681004341898424386629702221291047942728309931735766969343383987174165513915710147182600645336033075383934350273339167797896066396747864051321134431668393753427395965285120920557759619074484671579574700633836028101208562115978868866935713874740292934959912020609612827251965854471305128885732788917947601424409501340892669397819934687819751982942134091459712825333463056077878709359547517780638299494643891038635108938281411477340450635194476098044293824641544817289133783291627166004958385437758485324828658055202287367178732629257525738071127891954623923282326815327720956168369872276591316996576913990983987033377794078588110997892679650633772821157205881048797483279149627161748822768395037964413260630442871015190081676915446969520397377747441143097383973146229693396942952048936038648295193777667451940843848116006990715283579654216995555258599937861218437852721205239105368954272057562068464970307224924417627059252254083734391264519839773034351199539657908100962864964191689886821576865862067312615237622617270538683224449662253144408553346784601422205562521010714798182633457287527539980986056718271522295971284680557717051112268412534583109581137820321028192175099228489918837039581629596747843500839614422924716135694310591224800147440772983419943965251714685122420290193964609665857225969656852794380649542687573150504892485303346435084865510760646454334999092067189968402886073515853395279790862827576527391650851233712514578495914059284761155526549185131424997568685739335775893954845911515397809029594001366601954026568028672265214277728174941760552980488354069684467533280487568318470530532331327606600564832143829691181851649811247446682076637622834237858402288401952592448074334465595184856654756639009651009237691139153487692057060873996889018237371252731303238765677494479834617539844557270529609389021839777660445283588007079096195485424443705309796076875971995712807241654376325387256124420852007003912685304819367289578589412016667905959904340807351276559413500987430282999825517686193880800443434280532101271437307915097847710045166395070273314917635924753820742267260228950826080265503873351041940633369660607767544488265160998166981234244839424071699430757430215671874986570903774547642376749527286565460909295211466776859618970502762158424731589389837239567288478552251644768247090802331019029831873474305578339488009580356959924261403135937865025774077447162744170971191987024366205710379513563040234259212071021877361989209483233445629347401819289141369795565423020818976606276074751775762305577340012392897634410642992982782000838901629000974427254625848143586147842214496421672350545132006941843219526903353556972598963886179773701598197675453944192084669045600593858911957375568597829928804473283599140793602513152838210522601064908369100598766634055094050916962518510912126612386427662525949794948038855456999486242612305824718025882089796840614781151792743044366844300011669817289797390433123063428998350944397638737350025834470008087713683618262805458414557026661931762220333111614626574854001921732092187256421052998816449647484287056776976970526541178558444863515701512813893258321576951263037259354400462558084555645357382349760147662187950106601917959889458808512256927034414361236512991777599734399893433295408651658936371045293579569515551042700817067903182522168061314860876822400327163281606323288293466485045497464667597055797805771985978321650170932517014409443307876995475033594770182276713688961291432570353281719947349719440519844202675920683944925865524344138481173282927415452002554339186161119897418211930208285883201296365896672252830425648870427990808912227191302534918074496415541407880399524847512765466627092228171538777387714734617064552037144499845600326373475116837270853821878651671437374600601484099816447003954786883124886597250658675256493699206867800568837384234392690461705815608073475716972285712479538374949117852766069521919439967381790774007466807541436708323887546544911641544129273064254550797711081058587627042057359070834867623581610238354314924427685406965004481947476453976015017977588502339487970046227743260350852797498640413823850841670729150367348493646841745760567896630375875403542886299328030424720974622033178583805392473398691211852408084921813941620630507473316263832080343390141321065272903091662856737588834582344760877732550979794387961472014207862505458196321202013667284240983756864448886542918779357085191061825461257320405654727260602587829355985702745137961134239096521002450763247444585279595546878768150550311784746343038173265637442311405653994730286960386119874289984188075189623687773136807428764902122272808260361194454571960759685218664745256165369411109214531880674542868463006868405225593600541670509471814756445786195364582668920578888369710661362211446951966451557369151982491341794210633135303556431076576069049948686337870510082066973497517554543701731454229601011146435195437936122510861910763714582660596568807584886615813067653323183015878908141032074851085438183067178597267562098840098472226917860489690113089835922906896437647913710332239442931301374314807071015003466617103533605469946013735324670188173203611292505190925108292970805489622801942203300198564457914978984226365876887602138153206349061221115356816108007863180912433003282847346447323353344741653178186493246936368675635817395737088206298269384670666941105032978897976963478427187534358966925205263058856486436174444609801922540377385849344610386489519301445086682813576063223316769141106886696776450778815917924917726808217584183890756914226736316045537508877794156378141410686549209216826049926817355310247329358854574456183923634319923265019470339459743425617596557568998323907904078200368079275466749936013864666617301661300298970882884615164460613721551794361192587828913699993856723162344404969765428644200470776653115732968439987595083173124848738773603458340710485590688387389887270511610530908718938925100621325440202348393167898423910139234771319300060220143110457351270177104609572884254153237855750162128484340301193892141195423945789939776395277050147636311446644450388835492614534248372447190121575520321596767219075455429989355977271249786799420100993936395228245538103495253725850009732126372570733683106599917630017432740003093312841781949592955196319993346060927493223663627689962857595127336326304919771624598396666850491270064992473960487822780929452138786414557246721601971272737682986220918080793665400854630868915371715656227275938611007568923148990044785038207523313500447646659950776438759686666211658189794146594503298234054725262517911143983409944261276372772966008856550815457160234312270804844799827038472523769640983915088767956264650229777071133997360958749066483191210257437183588906612872442775439170121020324722571523194716887494502836704470111181280162167099456334367498613128587618889782251825936225057774278530819348994424524770244996605264803333930645225274023368699329976878175813165274010883377077825180179198349510041645087328055614644057185182929980382327064130763386315436022209966505471030135067961622173654808661794629305800321635412958984878747057386006218626146225910225913100072505051236650154303495668242186041712220261365446390573408538508485001129412575448849874521243847780600787607024549817175809546479552473773304734248794452284395668910732380235362475085519399265840125274655525083412307727486624620605574184420902318229959631056090493399671656604286955469356380771113987925325582733536187018078984800642798360761934611163471370640078471815832393718930922623054586366914803861687006507642102760699713140669865419650994566973173638051658577664474072050397140758928243134608576138791370238374959796013182971729749735592444506709514143782959742244561841499817735646675683271658899121278377689477719017412761487426873112735030465983075655545598622601536122128626939285770800543467204659200393337827600214584148605365179405997330623798751104822241796315761674537647902973365324958851967780903440071428899993910660286288247941000673668461179755419905461397220383433443204563601855266624643074020530121850311020821612382622071074548412259412584537173270171035177362706245088178268826951654884500339040865264725034215634685217314251667680188843931518792506984646680869183000385205532054407124170508090873581792514724700766781181403866600992176076149988800366830419283482950170240399766115314310341658943383452222126261448477002829612885372609477140432552172085276912740311427390397888418263366343663084478623530336122185593046487161590445765941576582681802508949417898593964050574928050923057046644038902315217500112588212095237869547850129416855391071531737582828659160165712442844318065978991941577757635016207694922479944564350971621838264825181979782996456252403206431385244591291525605559215636988333584624299203763931071512089695264489977978275529756353429958020034392324736868080243027971018212007595493662325142362276409179973486665167975639398144850245277406540903853945948346845210527197817030519768770604828870070688915543878574822968212230887207242349302883540930842507853281204419815815173799550791450834527309748127599123968146933431286557774177341169058076032018110833042870040991717112854546812406162544956693605427822397501303185969564735894093482407545229344506873666229124746856398060162537363288519509754585261672192616105449271660240078850831536384490286674254065219340210669386083641822579205129215541956503875143703517392387709635169061019253553265111247473436401913106075969885492210246168563506104116231977694334903509644986422081937052521770362470831744182270898912961205452845339778826490998371691334547007035520808386366968436444615843220937315433715270037997911304891244207740108259330510547507986340356268405669573396119602286245159580102512116805943378865668167083543147262054812242041267336596722790353030514391815497422716644086836819906740375626363364121965834179386471117418092363735229158661731327783838088975736405187653557511625577250844288610960410301344749608957627244632703391102247543201377316682533328397446758225566198643970243372057607781405670405498975662934698879464125375643013662993682702779163720765102229303087584684804645475579159820092630301684827059063143004986932335976894092905854816442853099065023337384326637880159774160203999612980094423235740818340491284645755193196872120353246982350902941469953547361765438463266126948676978024928509716333666986464301542585017288964460313048698371578328143923842837464315421479993007956370329217609578200659673704897502740389925525358241399033583737016787788490365159697169892906238734149669450868890689614809544750230631853459335304715646266961789567240750545508593605345260681905650498143795754482081068398036650820042325817187342535748171087775204638890763470710592633595049971017393663556144092817576957367530975312691614944499946137676900230089655076061651355913364222941118502988947470769760565768685813842081693630463216867144885203354012394904742069010882189241893437327701708359293232111528799972749520220097178654381025783102123078947066673063525652578644945731576683707206040917374141697655954124097998005714485866264864074027178590165263333612677978517141195645529292827567261403543361455951646631553529633272848085964397296189215744727779667591900086285628480994927198485380100385409658217081199189440770676036418434545892940851583120103225087982624874129020663589947165272691772604413959744477504855268631237647949948533708713351374249622739747112345461766294777755126959341780633128916602858698686235728964066509948772625736124848860072259542403533905857057396668986970112434520551211906982953574709941502779536337737062619620946660764185725674645403098674209881049487123695616594487131771982416566719261918172799134208170474451046097309224727002876004808769643958812721284929315409134875085754133832994400577707794715124529131748833123801246462508079819981771618940351635632911969627392209596705115562817730860088782379423552215740443276711204766223453685265463825812101929741504721951769902578531516370772744562950551875032192491872055260682772264210696344862762381477310878980147802788906090212517593145764027295440949978501565847546219810737557000885145203774709127942694331923794426753270727754569654133106560676809313586782435964613952836911711766632403863756378232937239915095780120461172029435940811659553413983005091472609497776848785512015254471265420336309698245733340342550305677359566338345111399461393104117201872311546075084211328354340173256056404388900434872540235094306456517625165515750510952103990493776239531230004496049569128856155750249728588024388617030667718244323574095482404879295671357324406938360071149049046556477035305900841898096309531541379130278064391765450070188293753481639934275067856073612467902938541760363542519593130630735479915085713878721089635353197628338021773086339734628930715992062094238794518008207172945255733160404997927287616105139433767566528613949971923210456919993773750889829647627608436592046692429349835940401322382090526092790956391441157492045453465418358243831618879642607153412682701397610443892412465578901032966181191193311311573145694263694287593147302643915188773465997198599088990100329928821047289139454698274857321979923175496775855771102282592697192124161694769589580993947635497701731802221505744972199452550417222134799837632840959499598622238956426573441649681100745389741424198113025242932810047779896891632655162028664563675325435240932338621893602744291948417980806361495665675616076905225027019762103532362708068027842873869273422463280925332145619754352366337989833327681810557997207385289026853352448314645399989814993864830913542445633054675751098556611464725931971857782671237389206335979846533664935617464521104819413037126396772139439569156462431993372005835267156790236708503349860686063425077892642837208132025073810208869244008287621866164595962256049538936131828573056728871430968500717325831701584434840763167635156072791287976201828954720668610283900578126037497734330229845097898916052657604577123941564836380648090119302017852434826771274083715788042617354890579852885883712968879222252631205323169050474318408129747734404311616376543033806113093520432876297320812950837245502604365329834321651332834640233212580227469397884086836996316139540221582195677491653511593763393779906501777699292949784523350007018162509006863815612541168041363683980097427350751264948569837542912131749556769900723670451784874763201074912133856259988292663876271587626442170046856052210586475783800289887433735918476610596515446796513833145068060293837307712267131236480875638622549972458531542933806546454960594452277996583252750409219812081272713514950030763293479540156650237549315738798133450673626084741816996679170345118394382594461802231567763422507684791018432673653207886745360456588652208926832035843070133722849918956450121265474080268791419874704536377317377488312283128497230532996779548823099167816884922923526734188653577918564966898167130366618560170903480903681523686129433615474562105840451395933466013840847133186431347996198542554133894298223219973130180905080629670565068130839007809422774287077133592987173963073768258410876293065245398277734032606700475782300988657240802094005858688848417664014781006810171261378443051530042316543923578995500988586844934834483350299375597945109351339293280659685686130698463546936302370912486942438967026355135974148462251232367420412264234932815336983790084841433195091246004997556195911813657050802966619745494418714919588034002777403412440381979659202671664113207872344423282295873083116393046781419299356358445116549389786906791067120456210447802086136030737551740119737070104226931982085365826938912199384777958569620151384237217208880612685686474751133259017350447334858943231808401903190641538867412796986656645134797976966080055612665073055541774792948043678740915486819834854463518496483691383750803763936632805479097181790809610319319119942086951380502110990760170488625799779611485348491493916055488545555774625614652654221703390470669545852707576962091210280824953163117301599862443422422674518781745292995012536223488246553705387676045341676461202408683279369480533613230616587590887692729464817971282183668628840782864102643242327581829683599789534432561200921612706486003945582281933871539911239790183441921281465965372490641829414198566621076991385852694559935052408294386295659288880389017241317048747960144744900667852817545414198534812158749659377887796807547118363995443385001006375443487349846704641845627584304095397526212208852141189300746417125174947322860108608962588938694673706119892406886716269340498199499956631315613997582346503913427132405393730692301259888852961131841582524865014041622345944463026592042133960044723228471670430070116958134640878294553736819590336768431326455345130063372043059684120257391686109306287763648039847851996858795037706601921392871359802054579665479958468002593443272773375652038113848176752230584134584838932003311466376860529061965362214811768681050149216941086357988890994661478279194749280722342691802399615869959453438398292807634172175024101522050013448135921593210840699243823089046167135503157330468870603482914921508268232117413981671625015200455994200428223086691114614709345970687940747208105381148927096221725630281218890618543363941219702644609771784635460965960141255906154640277187115719242642147018669772278566161395280253081483653866867629432384185705876122453110019599427788673304187987436031114257248380855404692298007376320466860526765354311161422727640289843202597867668735938474800688590160197464878601688284866889171910612840998292691023675894160889573988847496117150263561475098661867346163079942138760336513178823162408894857808939856121342796942591246379106645716424750551083834866419745422545356070359100700570246845812880828624851158526490036765668291386644008229258250148524730570311259376871880502627333597290838482753082226250544951567463565823946006767435730985366685272281817684249603933659638321329137004491360872256983806277571892547209475021538246536997632074242562082953125783895823939347021074735698941074013971425963933176634521643652637887315624554731524737866821995933176749647365226645604383326180319919537635078134329017147443441099003741192979440603198765682137199500543928116819783316235169069459500043654184024470003085088999582906467534516192186000979184007411172262205355371087297440884984484470429179446026272558902185593368877647733185474064288113700090497276679459793729944213088596470613959189414506516481890438287658418323185250228753256833070559148141228877000633585218000335923846499377491972435621325533140547134395462657257022140798841092368849722931276713232099572418155803140911006695682381814056119551264528293449426323115561260090883815337906863635529560297118384383722291797521515793738854099863401845905831741947728632273891472673344220375584532845246324632985853440625979485132332626500496612206316704204824211829316034808243051747849137379517373344923239987442836745988537588662965942818170164195538256461011988923799713045853803048734437114642136082239343881693359614715786812900854077284619118314813251769826044732689696978566473022102890366575814261175707797133272583096135945158690429867109845409305407189842931124059912978601554639271052387516950517618120379728911055804730154842756806398449340261530101518856461438477143607355218205472231793517194812713936679298303190896328636165329753232595959407659560639655354401680558708050084362555138195574340095535448727175089102570786553657001375673874825674132891377847157775385945331590076351827275072860109809703818274447118527908983913301132965824958036522000527049527598398424408735459714099366428402728992001634308314269522879078448106022314619582186249931876662169687267696363118020598801551974194046893364729838145606746139136711841893080840938372896260223712201194464101203125756489182418597009370173517953765541814975306185717609717002239933579004935836930159003380134185427218199569813058584731710492782328295066506261666020328620748312709714537642365920514383816690937574012906152397894885982812825190210742262945336601887942829409419718123182732102510791323218309297751893055116107574401376288722275736977536315395283794397768522331721916768047065304775812927801409014206363123735154303873582967082674851723436261587191691466565199807801463151544292271112557520088297742369963922412884492108841516981085678567326697259392821561550040074184171731915730636944858001178736727096621814776396528726381827951845485077296617548677000622183803410855165057868762748615209582327750473015714560657980519084856532317399164608454712782287556658371442956420847638250456932765217697265835358530486425064514788147326764446479761510679797683417699470743905652079057454624268483638599541929609714065028616025000530890610019014686916698197767184737158186942333069312894435660650085301290207315887799083277185546867189210743881039084535283398770701693689647691321789323039097907375837958560127969821039146688906182676693268968987399967246703365028020573073657602275270591976549472801568573159721766254495889063718718463984387276092667094824605831651674833737922668228063137199416464643002341472719400672643782247169057914205580806174159046405239389825740133748100911289804464910478516086833441174814524302312674724452154407144680074018219103116494855413802070800327745248658384469722932048653586772395635039490576726109174510417037441823647772176248133086711879955477445141308486975066740005055528556420246352902561583554482979077953403140112787489193063514176843257187752919204816540629812002787061797434865055638745611620080751248586804839805910546266691936140435617453183934124731579209737214366176097257858713243904699945208145002837310158784911117631035325189353612889994293162196290342522078300790440390668560690781009858337665617916230751856691546632837898638235701865319265127806687386002832472167770087168447946768369079729300410254170277050652874728548442341055318970363755280013238151464129100297199529707815996894831170904347425844801023310086645992360442242622626837189100151255485357370047565177479311124518540568733761862589729687981057216078711252056641854007051296872376120521558933750451571651043087341423068408939304839960511686297768655340126565779729277695822509176272250258002587857304046849594730265563041532888894874601547650699980544592558513874953302847664261982611848974462232660131363750941607888890235815790544678787038519333278242251091038092737098299294682623511743610700549118545341793263868538357305724487337778181216757600178048591473395169667337617374291991301574688493276902610919441084915348354552501437824975402959730631831447284733422242664515320041925667587752997005305563359714653033711729314490973287248295126768029010464090369954883238858714115159768237938929625397291992704566095684054092415842453414530210898122449710486950925700074217835759943434286491574430214734193950379829377740642665452429533980837100702840174267518903905167771915252408749633985221030658501414613038800534312037452898078694249896120789505270694224191588448732994528027477239024910891692258907030268417043015085582245695054221627255672397840946155098724787220738599486807408464974402371890036012306794085985010276867489550690164782809380688072283709581387448145265273003483747501253454317907532483601322942121649228693034407697736561295743863557323826002525906841367503434690550373909280625705559107598436751302118613971855246811496677346129674902848203762152646833207983961830518377727082673947285444421477307074236275550289421194491762550759388488739786797524479173148931886107201656924885048774162618898452037891341592243919912938506218639770048502302149149703965459817994216504138471209170626635362427012875341824970263812933650126031757964862454670109279448900193764748177636445703397131699742478427385464801545098447000191787196712310372196617588020627068694085724593963404670933024809927685050552476096887436562921186645151436448678786817644184120168954764656753706636234949446596117602385700041971322746399215817657785557354884733524935557492218142406677063373686991752218953213778033308453091454027738583660592753577539564851646352249333009561116101753581626480044463641804282829828164120689810561400833919397984333553463920629499112034761019002679755434609834346611430401641538245232260959118284292060390193629039346849835026180188061472008750030747637689971093835615466300722751163839653496923653472805252425818987231128409898136624381655610536710163296822157298670635923664195909255329054794209006866252775704042197621518727765367824788628632994545663343371776618223289437749851634906183914270685315067887923042825829336349436848982137791331130087428500704299019811184876629986470348433053608204943570996390905538547699088869821156836792380567960562887110323522547701447241419899669310729102400392491628448971427487612533448931807638540362348942622494719055609088495777022662098383569810113663315411005054647593297769257246802454676570867476939588417706367294549152599424563600101928760112522128280867042083785131247057846643444091621403047959616919818310934644721260228810531368138983282441281492850426827122443310119381359850703955250157801960345672838407918385936704046950084156347598781654627214227215556920827953673979770797856753766759530986447302331220648400574956157553363040339105353997493585823049577372549427423083363759401390590393806057143495330730242551708780598689793922393471605225505017710883369469446193401279713112389408991336936642946194814939435335788771508238739221104057274904684618372160604844526481012749788276640775990204270895821654593814085647454071904643526829478796146777157488207446514095819529082974905850893331221646972060699992405817855299984342338380021943321933478483611406375952913947191548892834509475518527958728778420606293993571043717010926334193866992538740876754465696178110354706685374207149792499157574345183289144775293852798087477343191468996951128969948971850448368187359357590781057181151114990947585703062999028697343998853558736990184234537115145242152289056885409429920494333601618296510804494317364670025445516306534452551038792690938070121256136752150478926597677010523849483493516394358982792895969865338950104750686974646369913503165726644319013938749463370973106994962171971780991101528075073874002593616588699496617080472377646366907470700510669454089840598647440780149830852266060258881211812877205438760684231025079989781340160602578676044611568326360361059283750387274778634296418355824810445621481433735872425959780002120955401088570207346188959519143448076219380423837461650894281707006076348502486936264719622644392558184558721785677583243537244401053102979097604477253888467086552564268213437948597685102083007670009479108843637984942406503310632180132862648610437531370500618331717837374379156084594926315966008350905953815756612482216810835786794717145333310436121908186709337617995591038898782429510593946774429175689459174599481242815168535354190068692060737940667672948965037167489985359784895876583914582747171989060852949612216821237443107984078349111007411493691426783683021626605781651127433129785371530130854677572585348608647811725670856468943952621725704072425220331123435816416754526329859701862679182347870913055119736622576595865616892328877824870730483086797473373189759796102326906047018998341613118344928298917393049682464100101624412235763862340569901389602601159590144384655697670157720731441883913615711170975223462822867836225608879181528726495310252349891308524142926858185123250431800024982359096419643058723315484512256902144203302075442375749290962874451746446979189974832197695566304939130933800670765877418620928569070117248168079593956060686302668942034118790657416942833426962960372198101898867831654048078473032961027449662904909808668425837390562216730767222154233884832892336416472902472613833172698986140835561253010123159298274839031284980069371682420540538650541736193143601939685434846916339731370297361330725382331485334770855033682931774982192338218136691764056587077795669227586945965822404184396119207033583251142402950028171850753028340054266376736378952037435940564716772021662749458005504833346706654085605353892713127783793346071325691391836149040495784124455401232748025088374966031691011114232294047517204159352744580775061495179637635936982001548086491905009260262413885036085428852453875105239726570569594281157399717887628106821778292711550366364158980913068652277300349670484319957893797817722953670400036713608093001010251445688214425159564168375583324169117165726155017670000835310137075436528187696087742626166830449873356381481208578898907913025479507389570095494659660370187563230993745711464883065343521127567682154639022153152253914203339073504712127783453696640685718275622451620994179155450879977240500905082401527254984157971380461825343129935965450652928058315336330977971614052183487062336068259825230283788747046791445519243452883066291847156931237842091884382736358497211017492640422604120079785945255655953191140221955824216829644711941109058431958663453983555552574647948425087555482074111767312065340475312492920055888053554433468782205724883986137883086166351789809975007092025553433148568951210828020649341966717109373286612513650316491742131055131259662729675119344140923908849419744484987135364369620096938748295909768465761028420371267850845186955605199944887702837074997622161889429949150833348445409236290591323858367381133902224415315950957571159442989330342235005716466938392925170749425181196874674477214891980557748846645114585763161505762846227065273877408524150249880235125028744015822819011824789275306054546993242172341747785739901849998972438611515572228215641389845597008281728066068529567129528508336861467221340346148959899419913233225012538808174329746218733170587707716256262270180390270748594044022824892586850729705937350165748193177937104320297695209008375643023509471135358026883523556143928560065795902932506228719259130733870861351008995129016120037198668034440968896976269731246668727090457215924840788750019251949401966253303511593823109127175492182577989243620726831721459628471948789513271950750302994734185850178020071983012802454117004770204424228898080099334020951767028690078199641309376229243688687691622493545536413737575833924879134111351581413411251088505219281249810840411195051175326153180402498677500645401180169270004568239567008965855548568704809771203740040464502125549768982353110296881304636394369977828619871405112668075895265133560083863655435889083548240838965978670247688549658097969694307454092408885109005412775068531384202678831279356099611752735728573350061019467839397569173620059227944890382507198902324863648057957616494633566955882053323940680886398638799630124005324034643051813887402419291604029614343974589286275488420582955469039951726723907593111166409083617464991919218829487939327082790061475836237053530839829917449379572108572943667872286672587296160951110032599360008979063406475353024452962324703762597424711980120138893250731674204076883290720932284862095521265068324732331362368544274456330818709247741382347467518819754031184687753702379198549493501029164631158658018425544341560498541556919509441049591880216342254286797444025035713187531308115094328278234429280069231474708709874158281772084515404294048547009131219642197678754604901051218537831288734891643077629191784368448448987734452286999283973792436036421188294523649784840661977473232530220749843909734698190973524386554201592545575724996502028290060153886799649455484217207488445305112090395940877845906725285017882343681180878954251637547836525056866404607071288841146487361282499469429279394841253380815274705014604306890823976143739637687155320035591484825786929328626231356033572496086436893369774137956796273646211519268868084208078269456864077379303667715407949982926822694287900328127940708120796771476385793172626924522466851022846707973966819277426827944385792376082036863423216233932654279277993558441961622396727042168522919677283204946901049808814797665075152101522652903286266764388318100043899842802718864427567456216905147647949692193357707337265641559784712650330782789569099129467827986660601227365169065697786469608679110181500233620065638374689996014012363472327323956798151649867586983889696852818098708007623691628034790433449485671061406864507686471707277809728877436086014567960965543875540112310026596750552845901432725332587423744237538277387290914850391012669710040388190121911084705866166698554821636091435559228500464697229935975969379461163323655314280414973808312750898536599858447745218157680590199219915776275659201278433230602768242140428812920202473056924096533032752332678755518872743423567649874217316064512151091723849674094844870521602536405601427294727602332795715405760758508068264820736995195871026037467890818617420472683139829970361092964057066544652813743478585080530735136097422270532168658614059858838168853570755277424008727775818423100071168480075273269252667660866545795425609311395500678752770344286092113862640688124176639040576752786003508524144417106188790013552574922753438756482246371318375143249474348334303391907439531978425543210394345090028867313819708430023446488656796092499506525175767663988690351269755895088927326274243167827851355007324063162491501625249451141876127202046607154474304179059491592738359585157234462384228190714238448259044156950405425372667219104611861288507538068999597423611402692075425554634369442799296337802899608014019566358619155395302779605661978995496935756441879930496240179510446061600366556742601783911358740232012976666209344751005043946932412071333583122880818167255137471022511441237401216325463301736254725509294013880838901483362504640873475035851657483059324785477511308766728193299767008395933430332730700733313471213112465488798436489704505704920668315978273396044168653545401846349177391280403830022656759087387163340686664403885330589533173317171881205306598591352034258003676504397869345206935243684885700009661707061914913973276793929355336278190749884371122639232359889749610812389726937861818660722556554567927775553025986993103415343860911398265904564968204550703851536543484040227726912492480030736769535535724151238412373087569824459154687022810751355716010190726618199492663237641910007121589973092889046954906992979530840342945026643869645184686500758818522761705589847557624821341018044991199263446833734865321019018538699278545321163276650856389862647865871574296082953038185685760852004145031958144553499206873968871041230234642569835598370260938454574131329861476010760544999012808332761123712656599680474167187953359902807823533751500998872753975250232314479484786516101223088115308612220783949024576103587366075236035248051008389145877427819591378466601912639153062088469335901340330698256760544088022545850592792285374262462499167053572353248379820821257408672229203701584399584279900000147914376947959951456360128500901737122738552615097795089854025549921969557663220011815893439725802134656933644199083218643957846176990606517383586837543484113049316300156412106183037732719919796835179793587972301706055805566765016221402360861154917207126498991423195959341231598389337061435998612820781896743878435148675949922585345786519810940144756612284300982664897426406564131142806725682353378275509168755231005842317166145042523580274618651984258980191062149329041493437673797973389097287226763759511871737790380598509071829533981545639976375192686235011661999948991945574046890872229354862847074122147401421617744548206986225529155245126343816642835261931853788549557842936024785419002426802604669422382116180642516793403611735237132975273692125297768682014095248069593830505446172331771535667246210674343285803316510539638193209107360036744835966132523654765068002329969227051362717460187614782247945448586747649415527773645347533441241782136364566332106223626062698621178590518547579928364353953247815014030932163603428960668081168893554608770052933781062373264646670675235245016474843827207503030263277417201658780425665444508612380330279289025508904428168478459372633059307022341576862799453227970253084383948349888968244842812679681340982156252112302022871458877736338204115209516048880980482419491439090774785716790779185750190398039417071754815887974913981257454168813720388920113891673175439666612774834612062194145192346256779757271824222140977462853004040345976844238155375162919341919403843344465466711602474012313400856783320827289743301424791343270902691679907823744646148892782627400753725136830494510267036828263412675795948483680170816413884079123014798833065829144860904618592825826904831217582097801515485993221007305975532573951022136184542315105217573605190567833764084669984071794997487003446747625093817490960539130740079950886758470902656958640506603729724288799299556491666021895753335761757560918132033772723701163232749326987041158967839346986480168357170694865231808672930054870591728434150538622277799595983578651946419849888981314829220653406661181088045413401102141669547387932353683049271892870578792655730142923548078057503631332846470635336512758451130253873290871720364737951697194397780377437608066178874952528146204168262052759364304318785506358849682282250947128740837447183030008305560347156953638135273882895717083008689097994599844030553356108417171244424864165673323120186461921742477055222460294182332996206575258548043869702568101004053128385943554296641169214975735912427853432186432196378075481181330290787661259066654083627984245539483178284176730354284865938314529401214849360792013038778581432044975539241786630017649367200351393588735970345491412202017342880839243562038843699194256893848685271606431502622575612317644936162666949027459828308669275759405999108623218948826767493423830811880820849933373397321045799307856875389042327688535747133552663845847242224932593984639616049818354500907380425696674177646774019083399764282986318558056449751210006534100315522643198122697568949378198417042122771013443226534586751050729548464478167893374590234457397947181454619097808795601463964612750392147482830716191631925949133088431317266115000816296345046566905607195662623107102663061801591946515938297323920814194862283528944628624479680609075692339519343840643079200665265452933458507460615104964183811839333993060182299853748160667890159625486809951447861794384992736012221040894284884604827067179411753084139710067441001141777147243040471023098116194261252820990247863565377179835572456465750586681574918387614963455916758596123222769966663389547377135029526653740302502296947921875851487637033123617092086683016767365600984639256622504359469206405793489645838030338529857647479751930079201115608288896045966098706813404833615149073420026222500857148718690998060132652952313468367266803281931324010019684799778649011642267728545441089017908547687739718212265404077851619631966183874718748298357943709433153152778207250849002532917639018080539729252021236557173131242074899525588331521892676186077661052392762862197352461288905629465824860636428830053409411431352826066843981138477732530006363559679632303124445191228163553390848045689932367707043931099223558692643551828775070083786309075750244597672226442216677854444420765096532293962834585075875012996713307988787185088652126277616720534745377419516827172091842240755395012872883572769877922999393096189716147783990621923753299672043042161171762352213550810352831070411572318554896472946037850237894871256167697372089658527454555519222673372756957975292922906788444869785406742374609490893525880375461047738616173918296232498276637677323145342485262797994898508343254966528407066470376774591633971391441038129878939019308406462571287692474999558511009868245545668438398508836395434003908660522302928855413519551976960932982655701402594183131562531534273908561711121400001335727381940309530861784455284299981383908507387198336719199912580876861139711619575029257289625912895613933864010090547737702660159889427157090479379551075259973133359997167679093923939263281454958276983742031764822542638442740208809462853053361984298520587129532708588790626582537589879625609839445923053487958371963927947721269861520805803251484683183688627570592535936819434212740507479434565497249163516800811404961023661422712197436848014081086472314988104599224812091175348817313081426080930763704061983922391773995779392106848437140093542431548643697560125372986253367767874228579972301680450488816454915958994236593743662551809098204554814604209741833840164885271323244131853004512252552456028006138502216066659676592316329144793955881497375855426547738791559651793864014684665164970522529710677118969589933689689403802257490802357641225174154213750352198652915778182263540857259307702175289010762063869486371209742558839040619597357551909739848837210376300775542768238766126179022618289119321141952093118187583984594817217717610438386223767392710063509224902806346949000612725005090223599817478897682842928348315849520684244897918528107641622314839138405992152426367532508943823360176617800724608763079759916502358143029860790004818157817378395554585249863370637658356610721517977999859646517967106867849634183859716280944000864949083109365711380895130063942787446329020291357751622022993591736624461050336216559656369083048685137928108373750208531213367004913545289999453128137370830356461207869154729011143110249152485059481993715568084930472359817198264955699889998113838465635581794486318864541369343907735741908156222573666771346484218920978269501731259975599857951783594152260463548751678378607333244583419039210330455945887446498841371905001017488804742478780292188132696385775499658680674354905870516207157353428242019137485986393343296120062143034393674153143225469574067751809907850621114281787059357707652601110016047124153833995217931837360389823979828395415954149457863005289424134209911720946239216024723033308431464908565467984222020281252135645442807236356647215107110100847597309643469888182923488828456349766088702257469801539260610752722248447492246232963764386528267939417033025902046050892403021602984568143497057835024663333501553242198004761239400765156731576795933476613755206307936637573442116509564173120164982525471065300978281549003347881540299999354522206843170510921928424536907715119801936061654919069503084738605071148033392664149999413908203337359103198821045352627382479417442111778296737741652703926278124518466353893242400856936000446467496459441965333246802658601975621693268071364734378323884054645287968422502352961473817198764313042928161427731422591172499525705615472133633108246764157107722081551104765848314793744769979041665269084680497844887262346426825856084773674771096672357889079801314258115494228706057448582813109068648828757456453071309577935816467945974552101045347773021271721919908692266578520539109340809899324619281210530318169452515147653659972545665731189096730597690643557870413633021387392922397482512130015515594554040269799689641275184421395190055504010113742048752026291478767206683550410326839292751374776900257585151500244939781253546691291295637157726371202636076855401149261327975830757094232684925722989383282602049805948619016005993786344614171206161625042635568336626838273761625454988461046396358819487417677813682587944199847048009581099961131507158477441764656926556203792543278762432480001977993708171093875722371727475756038999124050300600076146084779906947865205479963287524111616365643903814007236608694968690071540879669848787531452133561428336558780315699513865723273155663420354760404020150164590657415589570275585602475287502403620903287354843780830337262318602219906485815055818477069476613827897164705751547155048443885112228864369311452384820914148618885829885356400918048549265443683640984919198014197029289679578206228054700384331380108855875343592310313120065866340365122435575391806619472944673095282771392027361675260696487606228956138207702066408738717104696175638809748503401153052737666633646902752400673538330707705434047947635945298033349734642418992595300009325268837629572412606184732776245792001927532220630366939813588549223703201023872677114909793771138417097545145748548814195728235607909616257590970702434550597784273548961413305935140372502673955558670503293210131198409626093843349176866287462658939363836011612510877427121304373953500181108526447823460033947384361750007834309257106299837338420515160138298902668495581086063236973791881259799424159763417607759965698067435767254155820086846306618899378328532623985117595272333981502011978064258445824007563811267482329350777738404699098184348144843247653735961177938619904893368865255166938662468784640349171018912561057049137574058361838823788627118858601747943289262057387522169070806843825101759115783250071712163823260188013726591272120404705078858180315325694335815972125488706031945467520048201776009631964362809690217852059505486762105156145227260905598861602599114464060913775040915170549365886481126834705051516193326753808790031265214340352503527490516994940205959428856433290916130287914090370409075729786253018373015038425437804444031599873391908303991499671633190073172531853426376543062874047457661823185206692109832038243848253900367151352223924735707686368955841744969029184416178276841956494955377852561241616117125934523175114590079218707235805904013872483640642808194926960729312486089838269539175039031216625068297952290706299503857818818392707003507515890660202449355769501408591329901886300880868084029427595653635224663063465045751333147534083917222782996049259040093233227871531098412389282516661018413796783338429761853298457461753018790313377889345742370215527695009022900081083102693762362982971541419130250342182380042557225617966038798292584216436085619683941402669989227902093443848026599286835736426304118876525333531129821990360172222605302708842811118158499944316884772775269878457990241643360222113187570323508092699104679623638830257954006355116162450350542350113162242794830138074878577926646433267055193551929662911293744415861825345829817598746191205397387985862781249090258214732224058494327241880459170901586503556691638910297810852800809305458408356871194274826492609094547452463441828217604526455176120639224523703588458639483004613158326148467380396179124004777492827594868500617470986924587950554088897831787513754042595678171649878453755668379639707499370090292716510356494711110984780442004731832033116214562789258817549040400690205798451019385361324722359033112835215010729113014502445735458349895731723303628286233754249873279078508376063424133458446454121889411557787893032618942679137751335837788286870043278770838794315046441237472421384711959422723235384519137979054902534837458416482925384728899379751136345543050551835845732060773294986986002301004942778479665250185596393674534195552087392366523858000200744813330638046130515871059258761470129464294230236865441204162029504437852955122005088852730674300528004358768330203718311247710709530374352051781099232457557315955283353887301319617557726997565095182414907529534050319174805684211748336516730974025656440450992695878744158233378277826319240053380467656585372787161235705544446761654603882846395734579608498310022419044288941665065215207599272848879170598556326705361786816132421823556635124779456314197399469783492139013290168267951145510853489690611254301920405103847958808520414311821228115946889397097960519956284588452350121434612952258546771995636776106172179433910600487950714549897119961568597395630136476004785643374649451528496407192989495954112719769278889815731942439047813508154639798442020964713692276125643672053901323856923329827288522615619487262192441699528964345276922621463767847742657371787265667359116984775976555085567123114200014059670541569993633427263358953925619413487776236514183498994527341181346682101443060057896198288554224533260689621869764988390610265759157856586515224650277471450787886669535136507178577382645214997373677449140690543025841305065852348258838957496514479161133721500745204060657280519726173179317634904677869827980050251382998442766375760989316110307140803452601989453470693245011331863763007494030951386102925527778562839846158293436953723588957239010261693450600223525773914277704745608591432179401949980821204033717979583364455655584529359657466887894255820541632863356112018228457700248903550181861526664332841850907167838407393722841138571713252048517077916155451558218437985431860572939482568036583527107414521316759355402547728630096947966285548673540073574787372690866926067805140249564347398361110907494863031496667912470689520375360986487574755595121825920136890509030139009438812265013986950278466054566772241375909762320990437820826715009631366438789764538668407069759060674249601798184389705943449522823951132507207581088027672917830445351436906012192099055082377314445710945974608235319020636466156122623873607376644217405284878398643288425003939679146749399363001980513814957987164024091652759423194131333198406037655464879619089254511256296114138091907873122785225919647930246333888621318633492319172738625959464117681104932433000251609717223602489427708653370742400998973333826068645660493803021328601653108948910732274166721791344240096788418080829157221026537924761361842446677952811818776012416713106308332329424244736777206109088912424996355908976258909626307365335932059409501003714588043142608865601875318678814840302935991816316053824201139525263203736326907179256693260695774663855840487445569515656311349486317981033188920938359052002642386816462666787708227721526693525199692308095386308162542274754388681967194074411479439234775727391848704356041144763716687527963479245992113297254329641147605684624680788689822323129690470735162856613606186734834218757509782356222382409178875632153832313506418504983091403423153307578332752796300530947247375892645828503055350794963176262517133860357496407390796461045961875507739920756312292629301877644465246295225040131315355122876332553052161008634795310913201665917986439715767735653359845697717379582894027951329703222144141718346281457183320033464452431848394080318015329883695177448578282616748171116337045865623011362124102159496763069498306831681032991803596617509145056027009094247661232202257531127977430575740933336131610647201989327122794221803782721236416353360942983377785239049971701253879483916488303019593564208062615484694701915170483404235035979063671367667210547836842580026868440779251253351562837572365418372830204114300240425316868400221703878267201533509009072987166332677258965639613902734944655019999523695311499011463931509146514693158950830915215328634751017792601663333606036217578163759212376947695009414933647149306117442422782625613118367226374475007860025941112318520526836747994799254779180526932432974998232254734318430222928715681904380910111688808387221473657600284165347423479934400838374689390480085379178417399545729953541161004544452276082301542507074213385565050745542459700825276344216611703368846023217301507069205698486782138057711892218169162201796354843600644440863323159321297775834619229979969473508698851262063542378764138824751911099309556887473105416093997518735861151159485310229711140477939176717765352547644790297370380140036927566620173842301924700786328289077148698883429044740109013908631336101561750935821402836776861972807079237566320025401284255589714122324765846313507940501549747250095986362702703654051751661039432893710864397669067143601612161412644993005261512424799974019752953188484860387127002319181709717756364561981300104189675405673182405328962421193048650811855485990725665370391019879451914580126905108884914655016403441593986041623224656728430414886300921391426750013884202884468649900133077307992150400913836538276863034593067652869441259144580324684283991144829037921317761955550516709389496362181973400735384623703677320479188074904494228759993896325967974673871255227785947798135731660511565155033983499255912062971661970307174636224489603765303776392499765717624276401814391287925436824850999241110732379030129307556849562970287627237026310816415339156942928955616980750400526796306871264611846125524581712723964157832370316711933501519074337016862815287179332490416470461476512124484710402387207070421152500266385521605697862395042102866750814558740827857704620142913479261366877582581143239313868009363024374720000239578000957958540853250367172866359766201139596845883924856519157834645895073581609332805412218223151574173378836207277442457134510177152233213135309458928042430409364783936313922599475507013720656459687430438846283702290612299889981610468639643919287118880121826027232462425469518823685186323371836315136278749832407571805186878536731267102214975357538642889810936918227390757534097643518561123428251980702095451422250022879779666379303353560771017628901038690326120107964455417849727935632848707944885994523548640152783196260300357518679023265734862717803442508071073214833962544495210111520450296144607909948603444830968869997110079367118204452825023808520693475789733284446133003334602988443370129309675261742211771795776930228428102342496916076788394103898153829262421103210830642899603077673258304211133437491448124499677735445057247998207800593169845839987150762783350546960678853845747022907441036419355619685426987099697066743413212671724130120897747704567479792296930023739822056038923595338882965360828582863651971369937533066227383105048966428786849656384545663646713316738740826211578578647899948420339914148249286140294280080933390363530011591599410822310909240345401944339566509848673126839277617535906979278121128218214666505351425428148577503885886953179150134328072623822595653042244335747394854905485578974274932349843605244349114536281629263716101560029308657206156940793671794366381963349810261316183841544352867816580768815506580721095364026517589243782570883410171663742164110918147411381877626110275167545914359854591916564636675312712272348289944091448897650826245545373172848727789200353629636697891909868005026479596602416607619147268563193246634084167987452929791794905724316380675039026899238263418297126268856795258333128740016427824230296407847431050233073948525469084222562848728861478208231975946710399577585147138850407899031222803120277498652275854754405134271115529416433834418598608550983375107296616908167029980808048153047111410342808025649306595694580497966925494785766834463970405183522886625278867942169748513042281568229647978210847332528574018369138694815625205907715728572136786906475256590115197099929877704570139879292919062508140528484785766829025823708454945580701596692386560148908065553815593568837265522724223286904849735562529493408791819793906696858115972548290800969927326758595366140272462740536930274938656358786883222349137765311959804262728327329610952853463296207790265671841059527333573461308725229582640972970343870776595125085595909402980073609990283434936269073979731414752572319431022280496685383636437676904506541502714742234325848242597075718884611453048081550896799670296721297364336885838830325564972014451198409293565472930536330454934705967853992463325547146247005318035575777851365318360836183454425125686649170574962710362175098971362175194215519747681752700884895310014651777216064339782446750172616337437380084431057399960814708806369745585929530164199704071376194707598954037954122520873786366938300719849451441941427834960009565190212734452450073535597642138652660322406279779795767822980554480797839673215544212668964948496768615983813716085727641637451565489347680603222886026965789649957124981956692816980077413168154164751388116070958374173213308708681796202738772394321273125945903529278790162007594232382941670222403444257429138151016657041413607371225906975123354060107362623612666105096722886745931161978676955543333496140602254412878158541671102226247632021216599829022793896870367382343157285151265357156685271197557076139039288737862889087893179012962443278241096802658918350185400304415595075904298997428541456870691217913925298434902720345102486126994378643776338914077549110786123253144664048197598454839892388329338321729751228435033914516042049496230690757751442646623488846060900544302720777241317528658543379430945809691358129518150040223315248705543673368625226388198402112063503154545298098248521404517508562447197691376378994215011454474020812453716432918425812119983442475787316161921469861109110463256548060313141978228864189870889884410790320483343175607684078564607430408518550928957092040059414925462226271206244047727082879520860809978084484015798180994009803896739708336003867513291975134156967371223324622976990730358540808185803600392409428986987132362221743847619767518881639031241990897313156392601552335410475221541338938748706310614800998020669983232703139427327877548696987345976367090645140627066781159805668457892349299969973068140976736518392477296446104733520067934431894405105218377667292390939210490631411387889276486378871709319150076339625598839139446056155519039029897794157165537032685289196486798130573535761778941876139130093658047947014746593810953779885538785240706461724150823748097843522833105630454594539351262463349319862090763140567531497679875874017751791913186959819113074493836159454457536940153405718280538763913981524521720532307358556848347619431459197375199091673095046372154311804340394657314751559187279837878067421575419769454115274854954243695159716395230830016902357353557944225303555223600690836769638857335961351117940628460110588771322450419477747716041612486618312229613380402423246570714368296332662433762160329171694655181621549810443979776600837454740687458742029226979492828926980680184091836135562453531090334264020591763089251104832123212104334117561482334848023578092433046692416675662124844881497784015591294494261681452163646589774066730284377538069752775561980332046975847540337366207976928036487081956539934646012133304684020632247322105252543424983694949363994703993757802507779425420633967120648723336498479404647826771273959206991035543092481263084024018472224269662146888475680304781533215288765246215411700469872713183154153774908931375852599164194827330501092492866859544522828084334951339372048087621785092003050311659740560350943667076051810708118218535636334342854185027741211601686971689168547913342619031480629912352146212838161521237875647340549623457125767782012373831281405553484550156581508199529684099617966761439174145173582023886085275754154694363054797047646790041268335151214095971298803339264991146716964712619832031174997817826738838666438610105392120481918608947892576676272969447583212285704151387397714936709157055026560511504948629733121594103922767936265998412815465236125254747185927862093349159252448712174311649012200958467453219007508582671601932293949984668880958324684003430046869867052790255688150443798558369438759868664070671650241225247284605637997739602562066837993363752555749478579152126802148219416691331374610410385050528141061461880138571462665577582850765511620883308255433125376577798556781861046108806814430753725639972632536042535280213238801668554669459214685128682558584322340460903151893334555782408064713415452210398560545748904665092149378327973754044693914692251046884010174947052676500637019252256788031834676672299075674418052453086744662115186464389000784336830287046346172008019955952215900602949165824547951564119823641789494387438303375536255870922349411301085055186250018051195662998775304021823997227649308439230881590853591343536870803260026018210808560451390983070599572848854082988063115115902896691626911506587101831765353465611489151958545160107150292174679985271117884017724427060314562586440610250219304694709564898148138630434666949526168080833245579419348853164468618897443959291123079679942995099441240415193109470886554213695644259314608516889171285089130766034824670279705768968119840209806517603637593923444678763805179371735143237686355801853576273826349560444203369840385562603625615094247617050274249319836748064748294863212057548446696989472126443925090134091613752133930851606055474064670042971430929208721713626374656914409744420507802789969297872473681531899361151953936444221547672999357363265401550145991495211560279504020808540225180069173766366028105894231383354592111180655119269176463697677792185935276466806071145730560981766070331310747233658728124335975255227197774187930431096037869811292405444628394638286229320928765886076001487244943222426215860448569637711323819431947542220400318291003350057984165354880776982680692670435218533348408504814679572938284743482487480328709233602102471948938751291848872322032847724586751277807819029579155436844897219609144464348290664951198909214279391247319277158039075517703795950650395844274760630725845943202233876639739921331003048599927419243118203901901723652609395344938974809101328124476796807337167659851448320848868985069952993752229246429745643081436612739430343198551149037609291347034719246581585953302188288652921129520958181282424892711747892637537968212992830689169103142078594356897682658576155788939766726795448324765634369545967239393910344849705438430912769811099058103202379791283031209566090146395248155352801808614546829625624392631568571950204720641225563753628259604806785017744896114254347226532965755013189751450223261227145828375075843175245159702686502395284985111190951263183960185647572322402320281342747122429319387499270731516643817133943369690226577859367318605863636297495587686332354478643638824372826799244182559684348417447425494996690292954149645235760116033963574626304706318395532943364570701843736869959947199130673481669105206944702100989323880700461995098147517757654577658346320092427079366966518598743579833436378998985602427673064394412350615885906983306714536526286275473081950408502319564371939723871093859128681873051188337930394984250406672157444815826749128842103027375534698144621270620373144303048830744641029484720556394307830472774985034435474814164722774275357249270505564100784742177091169842332852098498067979234710204310314853627848269332382675100818976416990030466062554369232868336681481504801711389077738242021941502172773928528520201644009808333769754618647746167036034476389104173297713509225548351777374508423446012801525821197111843727872153894734558707673371472584665728390431810369529704156866542765094190908069428322755452863442860534286689909264351284813588439945760564660991342379701427533903609466675343201606438987258339643481810232288849633869986211848486560435811177220260336133262651774598571567695274493576477031746198237770146876327289298367198502219008703067591044992851023056724168547574853963766188787285401125274818533489249247984870226141512863272395889675919020639900177784763354817379412494992142669826350043569318669017955255097881215985901547232965787110624888056053013816825223745928466518264634279092060368574197726900504479622250563603094435888012008264387966960964908037220925740760764185153933811660110700342090057120204894961042937270028729904569969652371786223203719933310171608499132728057396090080575613515995228385669865550144617072025137296471355985161941772850205587612430929151771360826782959821307245947975236115353048860459521096373305781405947374138361289015881756749545108022766937091745639066982212402218200800927795655804844523172630721059159568669481301068521199551737735799160949224814008525736571937565056684976866545087923484211942133010198377909866444679450217922749820683110591274487956013865418250736245088525499286148758236137756813336733616900927018994678294022688966222348602003184591299989740535677462302893013355910909725248837536002318368522346497944228395771966574728919392584051802816535399768781319981799525040216226682593628811062158084863869968742336656232042348316518732564322705710339480084711598352693433915126108325421554845857201112814392458954046129692241994117965304180237074488844979681729983185332094020039890143101139323264073247758368836055015453966096390329577358602087844705638359887808839458758700275071401119095554739906438400399694657031946334445565252918754222469161761918972368685955231157463968661821882156288812753432900374632743345035176589251967655981834753276161486287027136693140491158867699646459062375544665135254658851998734833689817190900892561545480873161797010102749918990244163568949836555190582014669302492475333266387149267226517672370468065895649290415365912245192239501120965821827194442682382296961502474765924010973482603242020016724643601861004442397629096523120640114825351343685783650045844480532499442664776878736996875878678821350917034327019495538551126417631419732507425192956475297854450222070960052701440966471701892186528798482555231851001063647407590985474951532809550715512545596485193075735179122296763463256476622112759337226170254032406497999890131130521821451441910078354866224304300360369379853950466634031902680734902592135092701064123969687158207605258112443126811202775849287812223622151399315615613205708210081407781634677651942707560873803517281646365109285779382666720069666563761677938116474580481922220208924041267004891571294219680949532374480912679286838879787352861302945418524107389727022522022545638587357270021398698171287186311042445998347059189282467865643444871171895654009958244661478577264411577174822417268678116426347716115829953785348822161900406223283126758413498702303912307700881401457124852246938772722474290018435944484895782033757842715154477088601427795546956788927428082826839565520374967615730279112718886576100826176512329092411951499054181170916325439133249711871035245439127568153406710502842307491055940253922055104715056717439640990532884889524738925695185345472998073426819499902193116304811340920252414220006324343192529706188748222348554211243752798726482429600772266719543915169876789048684024848945335128681294800410674136942922149862706315151188573267147134411323326144167158023078058447314696234387684644085728416677526299117050693424222436000146733337299547749209626238015215582409364975318090104859799687951922737884659378697691954524236459798682873724844870492091314770239789251369811623033982559775398743571890810825956333002865540074256656693060855497076502653244612928741930214372678222659291536558759016041088716656710247149729388908220354867781241609588787355198360132584901387682346260734507461744098137293930488488607675014747418739938244173117428871207244876188796144894019764894239689343821649556335025187392120458779036350641490828234952953334603747861655262953462551141959732518695935303813128161606657462867845859872180106522605875039955867234513082543494078954156803773073793138304453880534474843188457400601646607253009994747047466939122845500512709826600852514423554235538857137722122533455771609715067169519021733290733212299584485983881973444608895599495980257123635096456095015469812655996982477380586486133812491437389095331802788213185646999406376398538925222538587453475639714465317182320726931443795059443359951981280972449456971715500768627296820810204845028196792977045034010092169141027163771437745912945657990106839943931376154520318305509192632445420516335665376328900297436472343396734049588958265683285839512759265495308362531016458075574601602626725249594535686043620538661220384973993480978655648253318121566037575062223476971832334374458686860607696490494621514917094882132429402352948278282864522632759923469454724040241024900293724797012945385496379247068315591937804250115644874769030029573666003428779912561164672885571833024535754783988957750801911133795563057279663702732716745181547581214658149091444571178587251823282785045113676459521010430083588408902780423141056541805057185378983965567845688440672481128046254687510114957159081523320878041670096778818628487949776628580994588339300070879516345525890836716579222660418074121723657150105229128395280157089359636609907341918792585662940804613294710891526607638807395215830581022354445478736136592254990268173825895879955752844650961939137779290179537834334890615983586283943724336522831689271909741289776418123871894216945408175647810359205312892870794534804362658797792777614108735340709409053384436024459527721279290997859879159811894962136269947815362046381303655165260222048589832369114945155666756980712186083340692223675531574554569099332158415280213166372526739142278447296742985782456384966813682253790277060232907180957863645545784868263238494646931001914906900297848568888852519981253195296053715500663230312152868758890348348816410522261173526612887093116388209966059170129422166708585450479989538284815097209657340053623159627325732234545641738864888853633512993916263845275996518620677940830780166065264817213645520842020453093136698263355101782979273220929437632466401824965228680431649681960650316505902136288856774196599007680555401606453510136760732713496515134741011869277576472088648717006420834048867998397559543748054568527246050485050403362040392393241751075918107865453885854407976586373538863458945042405399256467555289044708448754932003742050658288765799422607023115747743040189043553419537201273547877965824682829738080565209936248664056674047879872136202735492032248659837307320301216400888959295211634757409916840553505897822475111146904750433570146523022393017617578077741758717665912674103911970007042877817397381753386187236252431721887352262175836766012143319818392899205759969350809653968553427811313724117924218465552702501635927830050293194427764455093211892580517208425334211322839693148310684793884594525847010495964151192086194779968276623687548547980949590679689664277087019730458636342368553331415819545288702785403705418246325829366590903916844807485577538037664743177221107235076326358994861769064442738254794060681260711888676413375826268260951313033424205093895356618800505964991214314297214591445992386504419617549706911802319931329701022292196711609383635701372561560846013196361163285435946946884026142318925485573468097799513733446072916528891571323341509477286984459324507723937523908980629852910431795706478073539997598180589870905671930814525601401049544008412842643440276922531584743746206063255739333714999390556091765773195953139483520401351477076687110563622487584737611604807272359424812479721341276331163603775858562983052703375815005291908795011714776941096659380038293404302101549938748836472742477937204028503043122359866513341587790199855665183592880324833286041608900542307037823488580904274784508974050142466161448920765933887283948039485674867072840279611004264418203371362884546204199821439027015530298064051025250597043194586397824134132422691732405402268218182605746408214078073793632195246371180838597184423516654889005240347410207567880389229932145319959113813521729224204683872376540211457711036784783650261038937803230721149979564073260724868126367217488603501126359556949535614406934893064709697430803440818549929769669732985409963984159507223770155765804201029031728290914502699819492642368768417069540913382622152858313181099754803303562151143474747899255460125267241491529023747058002104283032298507918939917626714736667237041884177906342701613603233040476594393844745217896059903003223166778828500890501658066297297038563513843786149941493687620777730486869058475389043399069290417944817744303973596557137478319668760512303152165787435928579681544320272426801553076320057670498855553722468553349677555263607995034827598776098546229189641458387851044473010219925688738196501671305495891276425716494955974957178792906361619064081568365343436397508384039371660140330851905947233113031344334420076228920638324542516086272104039212277893362955179670566603368622061864824090272049671820034044896181562435403691461358962313126980099741071719909479773714710880575567605361817639297277056669638128761769765384893692417387567661271867778401600901399516179726459965170422913312630876558093425524844697883594082321727653118489370157051888924024609388179313265826101477540160829136374915650288898284055421912128803447990069997588404327125692947048851556521320724782257441934794331785642925330223294540808379031139668157021105136663677596627098373958254064527135113670680815860761132294901454801297889232662765176522236266060633816695420899905108289581708910172001989692942090293979475413900120715064448067555318825192767873054054308627320549795716282381551602997439150357087766670433110498523054116853501672059558827121259879357695485079851995017364386885974798208063390684532439424707058346048898056861150435820141119314617579829255419215475898455551959945929044528650037883163938012254739397496503253980538399677420087118621268247166852655698725085789192016271948716549765074230818397940387541665792192410155606901103752460257528990211832889367175569075776414270794099852793504687146515717572323954270258971835725703127794759631038095111783886755552912553033045572228498038596838500055957145991231431641573752640805335777782583806359566247575680318599241276960857891786278403422707474570542367997180389614843680593028138702860170988957337086094234032679249863193368841399375179078408736139295291052287073616716092669569628455082469601103344544694128795627962989456642260201771551110187528093763400424432467843889283930060048803581414729817473620851539753334518296313056582766585071480051934657911899727457219362049926776568009744077618836961578834638842233945246757430846247890933058806880355850694487118360425426248514979996154040057637985730752082994555347534951745036331648423939746960068885397509760599346182542364823106646549949579270267598577106973600448832607536312579622790615571956699030838690505120670514757658444948567721036251117638001834982808935790072311140070004292452969736783247122907039545057666040455342800447791012847674170866893114511807834555236770948822544368121171540657078546367562322915152116827545477670387910362206956701060798756795414623353975242153661181330505055093483668724596792229362560788396982098515437401676961464213263442271516704917933896171001782420909703402860152917753043531430100458551528015007975093198764473778782155894509921848487211128835241211870216637530745709009081474261355892402437450163720823498610709572404197745086053305819167368137978878007900883060812174382002258494681761094722378814170312485847674115360815845152597586489687804864117786491727287864976279108345210401228941456863863744754586750221278415927834459409161628623827652768142670650946778868404250494274126003570946099549399626836952067907465495010148631259726955442331518016814448857570461114643919374800438462464661002762134242923968026986328199853259283489480477609388253120497798445591012424771098954680129325059639283559659152902405591144597476051179085359454836822996910375570859560109975740657670894641065714565150327826257745641871074742616064381437213593758371595075166855675008407847736099475584439922506194565163461522243514792249196727213623670183796331433502323012722660317332675749543312035226455250900403402736101092764887983768452658878141086284713363459081141736304545408960121056517684776357760800182769129611331262933727270310045828148144051167818798707562035675873430006535283016568707101198002263417336993354598836188390259647981059032271130066909197064829504880212327271372506518359126423769717261880926442831378704254126499393656165653222124554307632737919544666433441577948194150939563291356585415312908010570714521291960983264782075274382102040017933899219999675958308307104521295638539675269030911414230746527682469160334509205289914013163042402559036937651552035748195588278052774368632295913116173662975828938511669464193652826885001597248266365686424746677773025092392836598763716877252261040293492294076284680934103895878057391995112155862763992162989598395435612612987277088916971312231455177336910833366801972955436034388156826601047037271047092908660219442530138544284535453626150749459182838457305799872707441151531766336216566658105066350524606330056766429472889544720339990142007661442912960852811244350145620927633627546042305515601638828235864649073713077904428478431939065533032449728422699987483081123066341350469194123051369129664796465061500320796161869314669137199561622000715061011551608483421515629774725473879272535556110248339545686266243569751786256782793438150592854834864028482813902780082119220604031038038815482467966970468918193097848615036760257179615273938351860322645710442133010261306718079557961133368594550847303842502431364365226744065612663550271626823850656281318250127894606087801021456337624533127732564881336295392398093874765985045263232691956382073791885723094869857543356576160211411041805539733175684227334105959696674356436723017692797874620215410462497421265597384015409620273896507168542115123394053814503358588717845431047983089617117794452930751673498373965204909415599419330536800833521936889162409513188275711582486764031125824571018322654502861104035758612165341813949791367292709014336497388907837083649107064991762470281101399120183231979172163181937459253973043188986168543230306389858739114517394458105632762415023663302839735216105350646084994928733550047965762046102348054016781038451750040586037241449787061760427631320818925334414630642809760239223432500319867533305379293819021996822162424124767319834001958060036441595202317089699199266694336913876492207778776225922569014782519795176724752661838436519422463654381314595674408066400559686787652558264437829101898783103952306756470053670942962498940823843801515255623183140998293257693309002404427765566011822856519370759996530759466815118719048137037078082615162436168124353242435749101625803754702962713189658707594330781295996063953870033086996246476325393063923891991796054845222357394630223357780859501347092037716931763903166705573637282045844900989804300338909853143734348911328227517325799028447435132028237166615092041630259092076740544735616726149008993469826725637999009691555512966799295086337557864198428738053901525594621743174457199969270415891340784987409627442878845073185400097737895442166019069237680991125930732146076053602588392752165676120431372808840120555878112064422213307634838799808098148268665975322367114147166728925459428050185428605204461136573952293720026481714734311471572127126924584137224676831771955943259288877224978455299148976018192632807529620606522578705550446728714299121350882500253249939558133725388582373964986874917130107095313470750450127910934797758424156805645019327386426167445762759304797976723588811810554522592442805230041166264952123155250369588047436965116179792482603115256048150701279029625139527049372503896270639118434539202859322107200685034226921323617683414474444624461866990879744870177836740716962432606166818859840274676559307548663492775180467659755940481391340507416242358508309837251013002750482947010714819917502006070075541584688327127047152451277764754865354426800287863044705266499553851081674090530840365733628380477171767429693330021828050259610718210321128897862597959464353296293160036088438980156281767717052254323110081235875558882422248681583782486640264156047320234669856936765284219716699852222905660820759300773027880097132948203089679054792615049982053527240199126255899216129630237026118504537606909553137985400619900337274194869558482704310956338690642454050792436908719120397862685950145969075535085868625898799886512948840055244073823836424688756772535649369488684428670808030840791670224338989426878049187543537959099520990415499342014066741216314984103234590829306427060456658403992804423627139058412861270081012309843697577804979561508392822287040687165961287612359533614074199805185623331110062620602694519479892472100890753378672119527713375203451644703648405123037361253629196093303089416964137351289718688091982243631814701968755062451499629415686555803890544299280258045755183317040243856235081685394201096227992288041901611426220060900349179874033030764966840967718791817484769113754543128878489619960770215244307407139136363039303904837531657255369265882603483896350791582085511155564879889221249225025157333270590557152046299437916196180344753574084132570214421474927751793048830876796573622209651894409996355501319853148216794929229576594808622301577867781769510778871691572756133011353872972898216796317590182616987784243641427914616616094971908046192818523743013234382882140151315925800967236455759160588139086153940329520204164308462968026000448637328222055163027636224846651120102795336797822084504393276776202859372072235012208985749822446608118292955330552935467238799187435110565925348555489184482679887313787091489930960533361535313992703232079605690619041690934163118009923899098101672685640624067667331037969371000326757891332443205362415701715583233932252683446976208613980693040878133136896110100704652531006586736621668888594965621674912085359342149195520719642138572680795581493520536934008104987658765268529723819749980757739364298086853325107418153740488631491443242986546524432345756934431677592135627034894058623730781626910475434099276653905502835405610921920874111055216356094211279908493464120410950345104288567009554981979481921249321110516058816618318839917312180233920862547501379014104441745729616282587702017010529768007878918671363196327490381524120200560430115669323990622543224898161495372482072924786694865746410256997043147006845084406666534590885303071334814780899085600046216632550970097955582597153707073101927539652087996728986789839390899877288266485282845492686667690699196430290346487344575406177260830877067171494066337937576229543593590878959837241852434434621879759114942963117308025688496937082653157593071483466809512088139073424299846173661734945787238210520412034091208020388688994978840665274805891929571325563635261763309975021192452215962250232654743092632356808481743603134234194178479957813137267632473907720033641046217325959618025836011518002295497928479420635007939200661937408432512201541974385843738553000586417984150122329425989516546476852006436535913123896513974071191893056331762732916152997872033956000161728356367997886251903776352574536528225926923180766736564887494920168809319376514586974135184053182188973289508660069939813633930677144019031702536485965811673191100628266011403276880137281185877056484237677983187285834807082920537130196975655474056939697593675962274943229200009913611518766851416754588138046709430633800929874597083872468689325534607937180114269953565938258929843718615790302033208435508623012470197296126673719765329432287168932078502601161884977325050390469749776012686071458437080199594312273463610334775146745233257870956087220192518321109668625899575476257681265029605747462755515814521823760567367232928827777282170285176696581982838663507745316859668507829934284046457502575489046873686650992888823626562578573049334422263207739556465549455321100995504304034349607516369202863178767941842565495124441549506271756116024085744711356549067353124331301720357042807979590353433547373128091936078916592879536773335073592221125982713270978206558541028297718812243738156200251123524787891655726204643834448183378092668269479966528283793403825408361009970639801747907781563559084337022149094889201013817331395732716216722162635558813067079940687527512313041568011046264060291264759223865123720070449381582674433306518168310113486690118572095481837197229946432210639541189014469700827468957403429757491366852088969222367460621160249203894161983988717600834781590911881241621685036842335374460276505508409228905696945399301853833570369171969881861564981600781921536247533886533889726908267988105391602650082211540956779678314097977222380290712210596740443329093038331441822018351444886795831568442249349850510695157304819292170151783597539409795686098426339268984472719032864407096513626816822708122752044517612197252058705915279779061555371406354104771096044781534350206386334197843437777541798792517678654607463276988465451469120428350948861330354729185231625330012080834804448922578177662189738765005365478016412448676791850875196981806517639398772154998924206459921444381025623052840425609664191971331943532225805056249215376129900010189241735503808214899395433630482478370882884634705764311939820772797238002797400896408398444773767438583227747920566054532276482862495428821478106174401938915221819571697124759617468011138262570713792018837191995425620565889961153722182087386572682476930237310359791232098091366555898208367341163152566349012462251038230775612063555544065775773529703791658398540280447436551449604848679701836763818500279992632339191574728403810506873522951650264342378212597780688377035535306664679002424368481873535727225693869040671364966864615777968598727147891096027159362594040247050206646899501106557391170435849513502761679875179376479994121552289902924488132340056436877006001734447194433213454696565287720091550357141196150045260001317887943792442276506252567927404828711414295096578704336326897185018779013527351804588547380698981017800492382344175785366321300563164588991094775609602042199231441940522803545040756778554617314414976157797931495958943192889590413411063171595653299963805761708509826761005907479991819618794320371780146496854239387930547794483169462540392757998940687404413078736400620534237628466361982666281861392374505520219366552004345403093107172023437688229696962880718605678033673722432342383775031384163104748742407358023437204314578509767065499153295957224483575751246074053736790548627614894915067451125369994960054963325889859797609585686098558385001977119760752430623881780089291310727716886705338145092655932025176405574310535979492753505488435520513748914761990165932317999526294023229164846564057851265521780130096580117887334490881296920698324610196002495971362868535767560069269935554856721159214402656453552159832810067860217763758023253053418138876277478376169191082617509825332952631760488576267214501526149189905920152560772981948966817444909731011505324358827539114010049396910267856291227777807327005104963638708908402991061621124645147105002927893096107325472656822267553997793114059490528934523721472167225431295485830153484273774245287682493773886659348797110690798946527676762167978807367321814370671494473385099399782171679437544452306158344093298583906666611222079296758106502633574278535967001076947787011950176377093721067517122971261426947005287366088982579338896069285319216344570406931577008837549030483503100571058574072032405389237167723538903200392373473407605886999471397978950544745940541937740108448487636836261812627530155266175288345213130018876009332143871397314035340341747650736546877321155370819979189233802891476703715128021918567769596807514416976903367155442563533972691633547617038410325061952464974822478093576712083736386900623380062196165489523436216142582852115075475289917251036354352490732873445413847392339675661682364120054912558607072041643743079251421515882582501034646774493665972878584682566489892592728753925173184856242171441908346579363980968234431811288601525037310332205915047748759167618989642439673970878337843443046040490460189764654380203464908831174243576758205861955374588244116594696183088424290090569574928490356787596652750092074196278937093995531739521389149650144177008086065521806751830066490134493272600187245385231126533651267370412935872976701177889844719817685517988007121711843836461435290744331932761626749272311881825816985153891840139809669091407536112855690200602016066710813178349211821134538656886763908252862579535715297449805127463349353619720181072057903434810470357593955535735585378819282833800580529732381437521360622703585957785369888405058630182049249347111719782351663202679124543549509327618179468083997971441985050517803580912662518277665782654703312736959996186905104687092717041744637908287707126570699002017135349822803618187504943330309559581734269519412758269558788814915074117660638990629379014576475110852182773769851231721703021644805216723188148804864017417868986001425927571798564188085801409775927016280485866677047503841676452406863841842905611772080989755195993905573156388447914159238568777592897426346842662567462426815920063754121092393426824128459179323843089629068825438973994040247319355715743796623513748844198564159465443513972083714578565581397584710166342818340474735782422422794450734784091155686974021120989363033851126548557270082230924464344978727260787736045367251488965245398901960646757443392774087746395532740669249751839347711859139077227036695713445751896989827657301684014274573060100843866431190780324011835747197989094010792159685999347798138306811413339166945069504121891309317448921746227243026739744689502075613602185934350153616490188106426004903170399626504498515595708490658570245451192544689138889767471603786679976534990212809726675097640208766147936948095272829435017254266370819267244574867715893423550038105506690847576114006964807112049011658178255148690446515079837349234084188863763017012265362694980000321814641164054017369147315971331013182013016548623201063852499740658717311085528617758790689899787733703578750441274242761257665659265799187625387495759128241955071584733340650763133837036491573937474032621969163695963477569349440012678375824303382813776334724606880095869845484273410675853660086296391428184509172366632278964439986675627653345235807976336987302079691382543260195604140832257329398005321557954585594165998706357432787509339743659323155393103130383706411738371254688418912914412354685041455151586916586607937623178903476166621138580299163027481967033587372320199894152677722763614274610935375977606826072909999527659230025517713735402774947960581081956390529914979803647719003915981686896451610061419560675919643107791245366770984712880881429569652213939268215617604764930751199232895738350545375314875844377619637159517845806784329520841223433046095284822384239038366183452655128308928342990175700118784215013636616966188563660726294506319096299096281451952236661234235110827786708072708111878644153948736838796407740754969467637078845003374532757409261804440402764424322412909435359598824660998075637138842317324800389365263414726561903294634672504141603306839757955762337271744410192794402622972202344012777649875129405621047281723616917558579385032627931605889811120776370371914298169569082108408603740189732388417111685547852604319579371616974098223083965765712865676312740758671970713897725921702625729757956805492521724654116764541846759217045667598418611657493543080521789563277683451232370449580851816324177372504765970526785446094762243260309832467452424654723736533659420374746545817868383280181496347561143402767061867990810662407511135414951878818927105070676904153042193000948814808561640287671953349479441632318140098486769190361601002837900368289012514069785760118071084457375532480452729411096023749518222560807376475862266074753214729438287074029625806994182888924825724777269740315050100010061788569280550689619056268730072394347308423546380181298087561872519224846258233621348689280010122646558356249832935289076669432231724961614788388933523228016182358492259723835947701181275062651832575897038095217617844862947538084796301761890237344278633372026588249176768922226473140225193992766171869419132969781287255966524704397728179391240077935821882856953646563900427808006071057587339391764837862860548817157873674561765904110527793703822827458240876353919811316923616063044075349530566894037726545483801750428419662274020138216736896207689818604916858861889590545897054946263752426747428094377345646494305674335802139338931909891077822890610505285641430823391772161251592484995786807805360372320134372261782200030530489591184813444610022837314850652052428049162424215299841326097987000333610741481163540192246375920739482951516707637983264907027156722057507787564752121455692660176891557755772534531466301179740768750561229421029809976011674014491694694403133416847227171938019666450704281318343191866917972331591219889432434690689297383257716260987855130672841374248176498562861234205611658280224243483898802166278291686724191772363050295322713500230953792792242855831105396118851008826042111751763446147331667373796901821223988815970849296400697060796241411032742811186910576292343083864711214920966150458563186701462662006229360663602653301857322770262801725257092886937332456097131970887252456507964554647591850357676287990442612610252009816286120552824443418468322932835063026088190085998494743581235617262838109546501769414757697712004155187839792327133023969105281999463990887566412501580975708085898913191442045882048072667035807429803608840414339319170462269056426406454511413384501243233672183906038883429146721549104861919000295801666009335805691289149990915224260660854602620126942742367490835890294882843039117502277745238893228707522966150474250457165713744428577243830924600173569170231611365700218022455793410545877432327197217136709492642831791252503806837490468516512725871360189703338993763188363082359872344914704260238375494766926980517680659646469462829923883181461450820536160193292393809666717176375900088616050958399320834748161098755723218160630703487626774711624012843069922254580492092176218522538186041495618580479313643132734109467763822778736471824211134057990802883147349443680407237576831901912595231972389487224647273788545846199509068388094204878458841866170079244334962622097304975570762548087631030512819953120967142993861779127452744645635718773875319826627792075844276775428096562622384664234949682286377367917608761756257703082862202977039707921089789331665010111744228315549702395280554314412601671611873232100151357819922737440937560458565288782032037652943231495374836288421536280373372315818669614930427823122985101666256200479456961139989783123261364576101694333844256606719118713844447704808261649724526091974842854942453738640067830843164859642120440716691552542257994366345892428095475975668558145946297489344999266084682836593774921712913659127680273096968815289044737454008985101609862943596299452646128674296819600936894877627067115774566459689298934876197760537952453447027822177676626365500562373301889772600612700401161365768434957373883165821096180927478015655167471768629486387785902206880705058193485092471768214080129642841456143317840231898745334040219680621363627222595132822892581507415046632377455770001404345502889751911600948813153595903751576139479447857286413639396197926466045306831372521393436885244108184296961228251963685125659675047350174268573002422391337000364773054642759076512608744730315890772524753326387099562867820333352671300311019768350695067484271723878248941726720784785321788359758698065296841945012272680537859515318064267780842572527551408333839435199664242785051730862652390772020206733729528002333768853448221394687683207942255217462819595685153885303266042133861466466838505489598458056344378741600356362772774371594429740570111700180230035559167666885826911424704059567092484623274377520305721713388753544029879582531938274197828167923941320952516653755628934302402262229687966439025256187626498287565694946462324515985172722291272887108140139514061693485990891338146162980004351636054928325877264844082199174241821508228985321723579512021833592807029558057749958452547729232050216040453011520806438852573409749009876253809413817497157363567180897227616997888412231502033837977039764137334400303949999124168447109187359691921510118132355977151630321153638969919260590673866049727387769182889220456466462228609208164538948777597496875112756690696163215716711394109798382874864324365670074234219792442102305548851328217222393459296109935967359626903646534611435323938401022237862858377340484690426970360564185718051179270488909721698770667976767412720124618216808957432927611236665059923258420793235516997282479982131309520045805375640008809085703944674978520017150409763335923936822537582256025543892866671166254240672790985903601788081803964181099276475347061418538834465923460109671683990083925678273058216285319768286556238797793769152277954824998284723401705047862485302667768124457885365189473121374816118263224257808753598136335220458296325975849663983330881644465266084690049405286295666102677365909699532574033881031808415075994532829433175221047122492925488330670595665382950598612380985524375629042275456788744479900668502874611789081493554554531432031010631518853453967031230547081767151451081768323319426067823720990292151120371194131118315109807634756719238852544553849061041121838712877087799347755160260252807738230384320543312972714991872284674906587549342010965475743616804154042377477098523425232903141369234507798734479599732303261950615435660939926636055288059736922139719732372447627578092300802056536463330055398559682153596042561099058203218766369441787545125669685904208031025309247971785467073772545812779569256050772095828816459511186268969862273281173696754734046257604583623519538235955607066158275885821181099083341551188805352754153464429868337990825914090217563989235739143781560062724959941502414592038441369938707465410021642282067465411155641527893667820178832581448646138890478511838853315529679009487781172015135440701221401798528988336132737909566367585011841202810040671498913590613235916937805962899840047516875707031926906271621190053219553016096440338720847775496135086698159052917779818480928310079415905540795062774850081944995423457956308233740609907124521386894746563443610295715508260476072346647467044764634231593796826795949054945051836766549753493434291391863059500409699142171403625526452813814587241925058104929630688964969337553794622093438178337381154570839189308007343800894401386810896737370297104332589754350287675515212262166801703492369413836001951046028699926989763994892704689058232278921161863119304416543669656917256923688562137317777558535662603834272650543087251635365483315657394363300717765602332163371424518807848454865583920560976615181158334732431645885515628056037413385132022062308117467318890736030424197749017069557135115352370087397208073934072376370738985260087857589634189046816049359884255884873927516717261811524286304561068599095763483363740869706474901509374396726632984843247938328693006543320782523732938770527905685923437106434573866874013869319554238643804379900363066241695942008674179887091264643933030715288113810766534962266049678035998390563559883111182362877648559010329261276542395437195996470026938418216973115901387503119287873179430322673915146322197010511130903119914622302938151383478774371650306983084243834345813918993420159170553583609772228104404281190371158241476479436300385361130899119195999309587946746212967629812187995696384307313168110874435315009733628592895804252246576786648446887981389152883469365261242035604466435298499320385794549814206644043774475805931747415453594609873661480623015394076038473929196009623657544822980368966502843756614340774051660171366926448840396272857199974654456559688365640602677932596726150225682028121707382979787494928390705657922712963017984206591028687061609786948116265613784949386578894714429547935917758497793804162370567786186403951281129904438656734037395847037334160560034800570436935854295896838172875601282964909164851132968121076554006105928837739286045758861717633050061757213504774633814192404954113247948951915703697960717375486266762282703525618783340476158022064543588233566473136755870130496775137827734353568246271110377810791920311991217949384117387569548714149836092533470996912290969945265051984694910313442352599080645309455436693765820979723068255015349079141578740835990335190575911866072166729602515854226931022211930421151457717509802988471581243610107270872525417000960415842959516067374317209292859071283743297349411678461173205266041613309688395295769647238944919965768333658706493099192935867499211201552103856336136422881151373188740870209312434644710688065875396932175974390053786273672492456866102881497595759361948365335667002304329702664049125223510896873030930378869581594130132054947969199911845665323503212847473717746144353029341740749545185360747413365318328275956919961461253474511795741540317889627622813636635073486774945114439422839283400316071822743592642391398096695958879020655691659749267473219450624138830082475715638601699164138797022210856313893675317788523008067794782063555539300464885652549736017043853202449725753645872518534735271429353995046343791547340307310156555692635278769449212654510079285257111946948319199383631741076395212565732892816165229670807258806234237822482349453206507409694851517555805729032474891375821455196792707281631684709909779740425236086932640083619489681488108415624069468515024226128008391472063422402667294582781389470479846336852303109472490264193359707208361897146024845798397408334202166588619197653066156396427575236423491244744119549780971025376070483232721577327649221910851744454546207517750250792099065198920100819758701635068996288924920863770024559012974878143887759483732184948435652711585363630494902275047150957093768026585840943589427043541416437927574080938338795899309275578184702455210433538855907049755596323454299267948882698796780511866297698604213806696011308479372087388681962617805816748364163414097999392925082379683543728490583506573156737942749082800720231881786575401078049979474051527956004454578660458874303562012713981141205199288319191456249004585043916235068453330723116155294721501403619319694030500785438441587787642502770535016923266718589310216401964568468341167067534070820017675911595091375277463319695838566997510191082480099628398034193184197379988838522077674744123692526985284991283845089609931008011849979112322174350452809621550116891344777140780182193448683348719810594770085508009303660311197470187654915650696021407412001646466551945368775793151140181724320968569545529497476388867202632232512638052396448578328673196216197477061635583572121709342515204812246650999768416885880848871733505631349165452369606228036644242153019009444590414250482896135001982767096882624958075486724988416770655052044927931147202998510860087172038466290520182711143968601061002666967187235182041088331289785672876736723604414993040303879323316518869755933593638315440234056556954329462341889769994340766302791366115546187969869623329843313841121062346769693842700821348061335569974822296812839464446071230153071730231039886421502767322497894208206067587797651881360633912281519530475533887281584027408054429000821254353304012795187359506981628920825470412474719590115847478481967625053675038016899079141638831942442124650210777988283763004141212225918007523600067287902928868602465234458783799379637462427164351596190534103309278736331522906985848619504856769004609752989191417999435852130493546703776997601380704687122809344317759867964293115684643264767837494486812624906039181683935695279193543014836325883596138431688571701027027439117789424224919036694078725608632599158751549369802720796049824497999972875995453173605230223656963970665255595468781474488812715357254284116476259388983103090563116609053859004915528598320518284364930387257655219508523022102759943866661450218498505226250614362636095324665871924342540591177112727352287852013550417004746008658536760527629343269165780496321220044063228651162244524442161944968501130665156758951736768616365121654712813502628318841676664242397255337010530819579598204322702829607578037470087130256176471389945399571214610197926656401090170817731583561260069139797877217496087092323294603579439362788835231817665331859114467158769024485372647626744887772358712969591279333931916383810299799507659814131549952860255736359862463019136843997822817988928330489825674103602959761927242039795565257292056084657630051864272263896013965813090208748540398291821986099246246643361916872574550660634748212147412523562217062566684528633168656235961998095628384439270604931870032028404871559240358068317673624220688182814656729509730170153910898630591837851081351950689656041643718360656049743234025239089549550589539493193806497539759912283153088149379628017917888723607511583767040056263303602588583071482960711176478204755014422189894926101498659578105365584402960965248004943716951583170895276016145214628016934564344470363489439105083564644525812068005045364980109601052041338525618301116619490128677061770182720100233179481101780858926447588953909095711822513566839068492185889244030987669885680539644067495075237681190149025221987776852926217306818190792380703609659670293282170319468189626208400986788649758356694539507336427421088810624858207988395297249839317132916812271705652515003193299666709147724990426189591407661808423168386489978949888446239852136722866041889149186559297920468645132137610784485428657190610349541924828664567734238190898762702636799935138897249374864882697722147546923189410080860592296164055762823781525074013494844827642651300801790092019199044764814733030421017649513570837920028619089501090139988422994987186740887902620288979188851657838769476762265511002515492783564850422872941946000381468253743692448986649509502469970997746332212134626073860068159308022483486205377669348654529694076516432733696197464060810529179238478574487907212062387253669777807652006859561711426797430237588973097981870956983379481375195951097143960596038615382416198817748783632527355571486857992850876178925838466080093236481806775946591574310294276046983386251073758864401460446656305155117048642002365669976034549439008124648223848043366733133966166697175127080952728611832832290848814367008620842924167515170305890111935010072794984270513027803494314335211301546754987802746002697932941738775078313607465989358772985103933064969485715752439312337098663702065760253102088913777353863224723522514528743615364333305517619096331441580039802353515847299294099608300436540114283517446578981371530331614904664901641299171535961580909254677930338574882855793841577979205030391948811622055831911711423424390407580401728170163386411091509169749330305457143357138922366414051269357458775686805551706199953944369991385010113180121797620097908761257981140054897640343773291302326901235347225072283482009622702827030525293892462756872263750266507377601736608210863780064104741192830668275910547051348710734059341166910473734979320398147657323472780894947444089350025413363614502360010286250046374331994010857764322831650988480122177572036927618588226469678992954738221454296802599210724694001800384567725909337989604722527476353357229537544140853266866769138871743838163617585193702012228965831478750038402639047352522030919726454832057645827726540103772167155194044504097929657170019597266261285794594656898982309571202738510004370753337557648983355371120390612315806032417150753962321335877943719289886693281452570992457943659290240200712112572155903758584676028160718163784758771796491293638927550855606338856357182298032886797032477363420777951908885622836365335400483622318596743460678626251629725519756431762296586564689236573829247902704409365260370985551721670115920757556433817877836599603269723839674224780820298664534256416206158966872621931177323586818148398542289979984252057148638812974170614371612823650009554538991144401247871911076472576142247326802592564281388507598420740852183094918551273435619182030550303958019538322375783733286345522874874654743194708513966102164802188878758498071542576539421777173275549752255909394283894828828178637922807876065837280414531058200459336532411339704526580350342323972147342528545175832762769688195886770810034469725662075990298383215210859152416891098295769424769234229523630319366814978489680642219605521069163290105547747194286234436456206901682642983020012043843714868770993369491395636758746182946724009422386051408066287092942875317223153858531535613973483415026425424523515171953652796992558079656113223195491538635102024032157827559991444347006617775780580808140492845381637799494026334397901722478769495549502231195010219934812204925837776403082075080303000758054832849731747255053235642575483226743016162659854444430118315184908413967635490301353475536237301260536175949935622481432286671610016858812285080232117231061193458530838985511923390420122944599615118138721601367542432340084919111389981919904944299736694246130929998479432178442788606367759051251024538870246114385329444885623237191759154386601548786623439172667930735302665399342905881619225812122716620147128032600285569858124501503792231300224405452720305558163251518007265747351319166338099199546521237765007826210913903648684057135036546673509909712545674858741840136775887934613705338987254669562318160094841545903713600094045370057766100723693906424191291141943655852235544589944372756590931297094122757223000737703147587215533054985902189331499676676705677836837453633241005333237038047954129958891542763481191410522368229408482985740030818807424423870478047119291586049364953044876487297667455414717688343260697470108567722392965218290545101712720188513845546888056696185819633576788144682239262416344089447897857201789818145846957850984249688757463478534251246000012507876812010901207011364755158686405993816865488004549104216405831628134964997915307886762196420703444556716029658046507880511203125762529057306506351975112160127548654997319844208914887474312792593032280493092448792208711781310822667785552561169307155586404604394843813926322696224831682508874836305815071287103326890017554822783944465813047059863210725247649744301432624856222109612008990271602596400525424850974302333398250378742475363579248308270738376521461421054837493770874990911692588575384831359124289863629369066021562539468409572435831441988023283970594578493327426883453283330160381130091684802717395517058925404345829885278833064745232020265161153617167882125379205690821805011059807264708649127353773342688724677931964234191225331314648979212576809946377510305578565277821226713420637432603993973996913135465245365763689707109986336724666363771310920622199990358581886471858648881281963030887815466111610292560561222506890299079745372297600065891757896841804081351076895513877389193312803353677866646111601074371210392189476092646076414445033571072053756263200110425352800959371526767197069925745905269521936509746316183844727009239386751844269310177417987122391552249824047577997602299926251134556907094089982538328293995863754800410805508720336993274370357193457924840609632838943837429604233376275412316512373105023352480756296170674035863932904387539830097337898153676945799015116119078452122221200650372347572543091142514945835335962361911369329909862356043984896675104618122192075070595668338868730058599281417325043895508353774576148863693583553608959427640132927200640305958145666739327933036861011159416305712095084876267917673195986296624204336487415522008342628347620493569980645634224797416083061602281615674708079807424091503546995767371221273152455640630689605233266656613043131042702216381484679973512727516892698717101344960659571676951101191045841199569651994368976501735374246192893249332973415820063134742524714587067204115383097527877273542719320499225603545782160756741307056533033524817184799627108280933271042640177851389385584955116338642094801075362298792374088718061961971661943468556007491212167085680387507175121277002440024230290950235570565094863175078661741201177129253018936847426794297266891732195887294658056159761624825894630518355280060756792750180646511067113664988882424264179431512141341783143403145487156046749278730996444326720950992228660186952544716627425214528408729873901684608935548333623332056708549924434711996554150872050775751746424529918705029655711493080047412843598641271384622437347100355253250537456790166893897099547009545092057711282643109379791271890610268799794352384411759855483171362736710895173145533655730333737153970077036762237424171575949258440400894823352374025707667405099667828157464772951020978829200695117163912750692841285381108450422262992152403967952769003299384334448609464335535710245192103426002334488611983781380518316144029795425191325064053148088104564014536838901771992894395888168621546215445319232479921320734462576332709834435826215586495911768325194736112528284304286288663185690648856107500665330660775786914487164402123898844188756314889032519464318485446767568718260885626284136291019748058855198861938535117170673380029930433925935639543258379634523819895557280078943500711260524757986433460227729873325196210998596809211315659765899694293678587142575047775909222127345570162665319597135572896463189756191235759934230820468911817201703741376645938312558270648158316361813996270147960428112039166675560425664781038168085290374270172599502186895274338719473486195228892875373155151280250921952998155515737952729391682808931925225725723386966442566085907031685668932371685973218288656965338966071975508498987681782247358814201318031849921690825849889274254943814962310712679320340450248959048820995375545023207278972975170763298251121677236447023267250827723849918362056680912157816712068418367913497760036995934610569273998424459970918399117948584429220846237308210714985441517500856100227006132527700313428889527310939343950058066209085344843551851612517470966381691922241979943266918578373921265632910054795151904673728039922969535329618013906689073182935517522150087020639571465461534410449199078198671912645359155046249204535606461894062831968537885425951126436344482595834976815506302206267538944105632983757485694194300016754160473790999052967520433394083263041350145278349642624787631989958368565366539700014098825776538541931484556854670615658589427230452514444438033769842858423863738915386227154860285522526109435586987518275578736310530876321442316768477161627284905250687230105167460032591237756317861272015829413759884782690875744740734730850110182922142202416859555135279379623399252245428334985046017052041913915614045405754215789051307142590493935936150670795556954176909272336666491085522242342962516424527825524023430031445058637294605594640921961887306567812375848733999853611977046099348329556145162165771139150007034758701061350639486615566859700000175239721117838859014683260446884094509667741554273173437450966600382552815795918653018644595042295639516584039322782225483638686150432617825752929681312194952650815409504697282733264463542191334430775965882062001646777077243693195058188024019269853496611705845627858820152776835661672842149814496864545778392040617044477567970390789969193243564724903983822096161567080940084392650788506628336990479016396013696096828687862466725656618971113454151532727354654371420461996271100721766460395065456806927359363121672585825012592543687622573913802008160940974478896965704467187511283179132503172954791315476057781599349546093752914853020869498810872691368981189248726334011334484902588041543332131613112078080513441925739541869651275415530229109473129572211233504418089034948457354626261808117626293719856895459616789482668033174964552381765282138189028135640648815081331648604234084038320158437107935557537832327053221123683193399430801824952816056593209195553989789268844526875978662224350238620810903044835886543478525355448910264125682142707538563299004283919716242063347011886644353432994917607226066180760578449026642223170573911118262781307539177946611476357454168677217901174319468824532046866656194806845776010539233350719698896627837073132299334185491583954240391832492581233948586998773981321062649313939443753216039902011919533542638785677960039536902360750493550744158989943099536736141642905521154788426475597284257372046850151100939127640704216978794365138527558183984820763312243878994037672992269710017669109174081833254991724400996804348210985574551130253634839647086960353985849793167089089718266818137639464935268867589791982424337517236434801086120156679346481835780471142231046949826472366450435279290889602388540258373443714625823036458781616508736978640377809134647804689181294925069311580398037650312310483579685218797478084973410448371882224675023528244501508570909473535065020659482217135546904894352110380004757349336362459535307390198901458317582878532379836862561438404485168222335655192529955979717352894116221733015716532991317966473120835068202746863507797066815325105851867649809985569409738815467432594930897929494376773085393289691316128943130452074177215375827724761865795416579189729216617358381589309983665511934362698581088879040084411007943236973299481768705927275764487894845856165104873766825220216487104347007614128449005171674977391795712012740080789872143394927148943575927113039417748295103179581609086545121377234746823117057096232167099127920894945390973749777051910746110129485988835553780757979151408955421467885428571772659037280189524395799140918036741410812956535901746039241338549668396949281900426620107370131306917684866325739721728788511111011632294715858355425549268664776113091005615234271512856549403590509858900779010880034501567892355666839629666825168507643781541047975804449391017672057015642781856465242678706035426333843572787735819237557260508242178192951024060659360469442344815149011081771647511598197870163968078567145428967020752498174910003712282192306887142333503985274231393135809429915178917666162316368521023236593283321289245098162262846105634787936296698733250035138065387420796363783628808204629276556932094457947572998711817942916223285563009407976840157047688847993257729970564773635276006810112252911347217726888592891330398682931609710720090887702776771894500521433442837993066385704983437863618697979940943060952699406139759042251051708027880472100419323721342502255124901757539977073249332402477163743899749452585478112242559824495021961430990761862245896992124782932670643361807134173570871288690441460723189073132414296154423067818704076414355787379026486149843602982035439769351127153615771234460844850032712706788482336824778623310138367584995117801981849009959383930715621124124668753107646764024779153093278145119121384528573553867901152714171852075824904987587537134243001271724892991757301255343852231307862033412377547861779647266286463973886989265290335722119122927144678897093763118750925838550230660698741815070739016627618622773873306221372935993905811088111825269036574485531103028156387903244031229953709578056466365026663861362850698283833112579909282705050638963652928978609577078873614490961616884018047990589873900072497397509409743579252941051770673821304691331942303953453448366931354375536323345856548722238222232354905040394286732558246616534020448111175478903887426606525157715451232139830774405505781166023292215451191222064724079784057250100195221707508505582285885589210260623963121656755327080727330190851614821630071041061625971252237944910382189168540570566256781990746243799947793346030900069463423468914407114609214446294236786135099918536673849104871703562977468227470139163650623310035729381731114998594734243388304843490315150781906482463111974880163441806768872669926846269136362237949472200903399871651253307590455182724223038933858258546934159837635593367338930496327872887367825914532450356776481147404020615974016650749311363595031182427498787767337385318158414346331091490337606836987069648234454120685378510499769739371044592087266969400719225064981540650601213245854240030577205574458400513183422508164572740178446959238624085269548271425375348455559559622939982236243267883871141451502052623405682452682777292839214868773253426018633068424049354887624312700364746105678266266094797706830860868859967881809081651623043547531246385045076979300161519467180548721244842008357905031970688265096228131755233266011432802399756580023025954682946183286220744623752845705286893365123203763219808003327106222669887852256010431678311363753279680921144669335620329758972360569478023672797058029506733317281642887777962125800531733935538595321270169036317827431672729973954924711851653762989911330791934283460094637287304653910903413179502212151809304851514835139061672464541942624355912577834164918095975052752604623767463575470641237385153504510696066506117052714975017566442843209290411672196945712245317041295173975083269137004217918267845823159298290492170677968259543492275970577921619841164115243368893997978234692229886145688663223281292575754147406470168894968557487726999248149153592496732694626346711327641563395939087132739734427856847641064074686230332318070694555288044202093814896658566244112013320710925495847647435742285982137564830334543723318046134354653026049483279920580135333505201524373976566637358634768091140985355072371564655008403087364982498908134312454534900907907615621555505229782851550417364947484717238867861994213388009647595983167532883775455785327384310053163234586487369236631698037461855979217402176790814024229197851902650807072063994874913019519573867613499380515556788752961872779098032850118246725538168832040175361744583967360772295442466640056267812724304928905555155618269829699252309075892452405083030754286423050968899087631206271741880370454908572346138812547097454380711433398179619316254569462686834422324345595552408259659398974169211144864499055278148154802403169740194258406561706545697824956711896730912795644148083858740797827843565936794516963969222040659776112855038581468008632435685165586347067520885798669387981709904930495845228440742454393147075728769963493437519634998910446611016768341504003944822234400618886828118697660013274870254697593680784568961197832845503516936124946329952575906023671930203429530853433657970261216597606973213170173858223048294762536224633328120876171803882769059675529752279634751649322794508665563957861572550255408232696535194577592920666794520245712895887480417798010597999829447122006424761800283528043392206310527655108058750508038032757649601166551555509996752702116793474625439166071252858365626156905244839951694530564602357591502630060532491586071627562588020616816824992697427350867457152467110098747079753225107443292736622629730857207417383370702954803469148284259308520348977656204610757614542906880826271181285577948975351634352274388875840573892832473179890367540838283431183198770676250747269866395589653343387618936170878842618035063059311237881744539511448391036727282128097659436611045692580787272465512694346794694034036154516906937061796076870726395367261661223281186677328633236702004980125349343594956804283966331032424708954528507768513620673128339968110855417094816963210720064624141838862734189041828054867472448471881263776816849244825103053908792819331152607817807450166206269452181072418490742006376990540624966607836749461520757620812090563818777592009608568473575382594784720125353862504496323472785040891540715815449068476268793401505255362926532434526774429266872701318894758433796915823231550849771887869572856899657054044421592512045684991853059788447763023714748006042289093727383914857593466849345652858586213876956788887179164602396523445564841581590098478275238331618803846938537760774515807494954144352509877396315664249583555768354954686699296854209732883153539809496173839902154918103725657057167708912753068089833215283034203175579471389401860408254128767256406288431977499565721074519014307358872954486159384060680899176923008385373027969882586430186454991528452270714578526962209159953510523231590314494170702121535111973243244315952429827008610701515797619461330760023621197646328249152513596160302880676084325975511221227340478956289991999949755347340578226098153171334570476546676015106119186144170035912271838630163981944501342782714668767364739877341253021426908027767053248053725258152399152919050769337199665209563889613170972890193508308881612891463727051561832855071777848522657600661827154651805971840319942433333215022433150189032061171604762403992998125805238286970033614307865014481357866657954172557777677057706354139334343545901992059806692572309022671039965084910634333286491155658272862121975212780494078289893064998567041416789105774081631161795002671670302271857991773650169923621721089738951951398646001897300824848143118305888001708201776494583622639827461043666241985066248622301179971071916591652710661082640148945235287532781698033543704218630099897151173838021851842812828559720111482642525466742655775341656012449852609219862701541431338267917629587047844765672679520403385404102514664974953221690594847529241739196399577473275174706250024315938820761153873663118088747151797994819164251136614270221481262945199878802622625840740024956565067596930095096698890857819093760327099549603591186142389337137106604502179741094616219114987293998360437157948616017746537326632008239394714270226339073099989992943098003279612886715223577781826385457439540767756095436148091739764423475731149132255023875838340741939492269013294250578291559381046411728883428247654257645531538878985747092651450192433192796499451768687844239609596398570124979788013686515360417963743631377533915535829222248190215515760726429510423534600673668475658821206942369716183089689311616995893130482747139723730820831228832892703490410004140329571093203435043100579443873815573289028028273587129159883478314759326035201150719034782630177995567302259020070916769182469391195823989187683791662357560911652779716252268349807442709351550546896793632088956742717617567176551209143880459521461113250351980399283427746731312629537271433993888497002735380034552290139938110163524454442456848343725585166525421052456989249914829161423570441049861052701738017596945330200072938091234672811144107024162153941446070774755197550909520545571069857842759077307241426876142543522489247658560887251718295972925359457805476658625540055229911275495214532653277481838756488265140481670689483767713060623410750439490149433342208353950921081249274141568668298342800925744596414072516199981443088196382132599066704286592012637355018222407991256992432780854301527820181513348682550141267065737800229540249274322831951958105069264114025525007277204915441716005611618636539971831265429373610047490434506924944949580327444063839900680454483198593990220917478309583820507702593513039204833696888054643000708655715483042504210631257231948351397468294340526330005350974823549783171759554448089228705398114327214475451310353962964537588872357725703161994275538150384223218223615348968728178866562248276407889080226864100721076935104318704964353899435837391951484854577638285323964187462101757443833145640007323516938498594534312753326339326239685168110568575472762031019028228183061215798631799903669390042106462571814408914940983914792210123565481599649926977640374937869587824163977234019816426896756351376351971955776537133954073883396075113336568698984066768642717196408849087752568734611895693734247156303237312717022766317959258072925524086896783661550667837216242306081347007041926629649289931212927125396578369212935354584109308745006377147524374971013136957437092200682280649517028767225901395051863429569055440250957591772432292252797488949819968769343700322590211177728299839835994730046004038518781236769109059013649575992751997608477028236417702877861328224648496217248788875279985841571097279102574686793327616740688831737057731520184228189819340076014102085486245837620466270157634135601747021179134833491569712253480069850115926082808174386311268227941136821642934066867423207940867508976288157496681884727466305977031722634247806714186015827057415365245729680951551725847378727664222876372428531801801566790561132050035843281633791563903623710136380956654333648866763749616250283554349025888686440913848414310573928222727380650886011560749086896900842455961001547881384199095951966828039436930961233786937412216410753215507418287445648111611424762514928943852381002174866028348641467477017292335138439366961459105685594865493367021021806006657285082687317558888666021896809539234499798059909333894717978859175547852748254095205475694233749068026334072400256429741750714989467375312396030306909891370954823555187913062162706595438843596454433702879545578864428008158692475231526385517067503768280902083859910325550140379228538532750093353239673228154182532144149733256385058485326448859944185831773450606360931879395716827924896883376456143318086488619635935018564882054925111523318354830276556719739954792110193311214449345045053133188540489111134391490354640304958878858211497500604812161250765704651432265536203414176079799408917478240752798464335670306534628750539559101183253598146826827139034505456826592022141004648602834703478939260221043438030320931862281317395408257221424692299444785661161150015056121752677596071292525721187383233135126703160523342822696785207024312412915323512610661539547779985027326752207867302420069065836419228814091910667944967869918986361825883514985285809466453658374644813321862077515061536913070433709567380064002111989965777580898511286574091898566971766441567069365515732847075397962622673777644380918048799029110838733335592710034142511240493809585218552709814273440979905352832108114046505240481466427782250746070909605724377230086181965286001327224728336088328000455498493308256006075407704473292543634542616985885930399041081629003816138279459812157176393269573289431837280764290874851046048833082939708312011290715016100860659882663652110145885224210044198994308364060413789816655397234907623426288317393964982587389137076110182793052135996366525218377044521515002249348189133843124234170771095084291908120453754843466432538976240166166554743440326406426810495703168491143022772342210844847961996221032209596923559804269072482575904291239815465641728363646157083305605678584526507120482596559154415648476617134683391229074236768092015556879685118194400417993677336238148178810404379453178701966763356350775320016563268553685909936012536086199004993271259170261103371337719807311552515163729755555746055463224225909616769753880165764609086180429358487836993213711617878943124885339497578779638051100067344990948503152498328595998304568331682431678669521315308628057118231881761223835995212141792664255106103634128642641632360900871660671342882564434408383198223691292741304897265684138524779768845754607874794370703892775810613087543466125421080861693113286925321716313271257000999625521562619019912987107056952214157499287108658567043752460472234666853736271495596046156113209820780299253371140190622441527347917667795858021494173943649681374396206781435246498089849282785277685800524980868661813762720123534011788980282113332390772406289384113775634497035063546335715302194906400390187102303640297862796916762371442113190216740882035166715936156155859826433812456422359224707728334618811796343341960255033265721723580572741100579745827039576282800717132572954494714064877547079229043540491742757247862683487306169428536463728490241883374002690184155939491282057127307844331384705664528056136373610610857642553792262724538286591522056509916585755355283025974196439144649915144651089629002614021687053122303098612187945410860812111703672257430867829811039412435949644211299425365710995574251536528297919595124435799302381665842120524819875328029197786936730470012987660522923027734986691939606510529414553241270183047437344874627906831634885921837305393939787259620330035566607020709359189611719245589916159839077967839668004965304258213190915699512409016566728114191515476968176843419850629620878136522831068004501851368250262208802462771094700981248930203640047290212404135343160315787687496354817097211726180063506694282788758323542733824495638017426947524187389831695552488107158584917893419157340816330276104883820579956261929958931793897066298252599852764530851518598225720376799763028190896353490580312625652152953164642450188258061897547935925008662566896242385498861025828787247368569633888340775644731059373182994529631160962882534292959594249379839347944395687996747133961644077414474835860283213941691663097369220762037885574902331954064677377489336705528425999812251827086520300736453498742275486711732726464185252234182093468664082582979432528875977584515117277318046632530381345058783410018391618702955669072578191786420148377314638410514131511651137507077296376888069640472277598655519932598850629641399133414343800794201974248873037304984089377161342904274426144837765440219055206026806467800312959010389345469381188911961820972039320949618421899466477834123493992881164183614605757770665605217866529120845859198825662444777975620552658036871599841928214266648987879885345760274604049413656061846643909344318083597725600895434801076448406034429271407245681583946811832786796530604527302194807815367226416683407240931377180626934713195921874442702933463724379640305104100255666400549485927113162527352071234720638845309810206765684141675978842303666853980297751795673238704326441647205449421736019736280405326227492638598929516809373090971342895160493872194664800659433529216339442706931410568602102946429639116558321934507797023778613926146027532514088404023282790549897936618751188198474914678376962205828620073407888594754361938896829828992816716536781471960754520219064240055892177503481102280934382781302540101978540149504034384279725470977520211584951023968371048497964516842696036897961301189039392682252538272289281883614732792849183169429172010677239174550381741482561586163516848986643070564809249828539250377442006477965924159154162235172177366070196897695975544280863144693338481161158062567787823185154126393553967531682286066158960541388433656390816284539350569080664224256953268103484657109921122479415557328887994798821418603951332379560601974419884489166684717783057644382267060128925651069907094948742749221035853520644942577157663489733891125891860735437264895228523273194487663387279255673695901884504524335357316517244434132667700489142668436996658900784793273706830380575163299524487199158859665121817072008424421242774367462557247166381829958919716308187255920071482349915919722675487723054349543632018622216760817235580405595516492047916215839863509701733678736111911801240641256745205848023265986823310705290454814147021644565905084303890352407599578992725396726054952816617518285932974576764771524603662468245345094725754401634411992797818379952335612715517689398845829826287752717066131460653522845241413320042004226891657318617373009782299066586866362240871416054546874548780051314718447260519923344179740027165225041969121795840118801187558802935390837270544045912193404100131705228649813201755083995801730639095751710887009835622501377748330042696814596923407346734840551193402476024788765654446866559071248205402503929291307272476459305347306759387878393960938649572328727209828892269190056097685177119688960959316770214472627396112585606987966369074658947607087792201893669946585682879365594129591798900509880514316410754176101320218618344393434471891766595340481179554909747022283770792773760699961839625637966111811229427138727309629288415688053979915592099153966234091863509673321983015284370224043462602860470415309555194104245415122811363813319038335610958419486338180155836254773556255147736657368058999394714558353976730015432639222498122843694560115064492359005291916346037326192628634825691574602668119973170188370571545472674770329079679172344493791123807707884255876616129048549370978016031735874036670220420440661239244436211323269385434422522383147997735261697887404612575461940907780229979210565057211853574296286103798049705284349379735015014529412122286069326994399480647613001277934955537197009258585247609801667328480262505688052791040559240568306641838434149150312542907977928323698396627956669258412214119997491201092762086976897827936187188879612733112977642650134315113542981952281084957670230444477114071493148348363799533791154929128397780921288136758138881376319895763968899217590180442731154039858779069578023781162328490357629672658090639628268851166688047052993357103585721773276898507192855345813390883057331406410397562996740136537816177352383858324172369387790523426216906476087883341519685487551255062950760726777474667076849799614285668031901926521413881774273265497475908404238820160898682239900422934067524343346853161595785117995049173407794930819163259957068993638978449176398557735597686581069473989922650819043003683508921176682313187438034442537570913197506225756610290615899725293714453359806499573920535775120925892227635098319942269321342264444128813961396807414070432521816246037419257425678320333131024736710426354068411150204448915891349019665800778429156531033937305662708706002817285045035644668491675048440607514456521609630663739266642689695957203627309878271610244546325613249547280136126917941479026975703909356953976994151656582871950234136780437478022731135238029553450511675947319197474624788204479729656437533034808442267281277796263887391739425845511726805621418389274114108102807877090703808103531788733975336053515053699305584112704970440893832978283259741749586983285382961492399473109316935944437674422778514104457470919727922417070332540426424550530152629708480110782407021319599909568861443581677152808034758683980936064715621573642640233134183394705900143110275420184733547519512823844168811869068739871261084680802716270689682554664203115898619406028430509830899663944710695883997488597003556934588352351005707015822435513900509216787634335267319299367371010492377796987289533517304199711627034598473034630362866574617107573954437826335316015265300434122375567087467197821189548714485002310473246816345594066843342730592336210270532268598710631394764786869680653136287025380613451797220314995845558038569038157532286684759067912568734270589074710722053087296381631233908484422480074993885338950800264049220038702851994928351330497611472125003129802460937077855058008344022581970088974084807399251558297299054006623500092895283661512237989470320955017537578771852356082152568650806962011877931990009831393824622328648508504216277870135368800405921807265441991775055758867112640130250669184630950341594850813694304204203193879453657663924603741167223726529794608428589528035072715137640687579980827012975798156031089112083251163942658837358356127870391848969019365390930173384367113219595195637508535681568390281597123134773340277156639319741085675687963669246274513361315093416052021672376616903858188033741442888181796010641217150386435315143709919101271176677216164529177061823564516561938056203944269888602395181912420092416373622058170747034377794219793165378058773992924861092965260939916240657335033487705381144534882105945318670088352054928685894979393305812866858932280012393933867832190853172240762105769129521644720881936882260848459314201075612608579237983740237673104444032377878365418994623705928283961154393988276339854956044112824424508077940962594132691086972009837462074094214019683178001800455001513189928221170767849641096641498147707463360593599889581842034298143242904532071504435614441734906811924229697674471291439314330429865635898175160973116315610996858315950550993399173452880828772417667130436205717207286196330867302472424488379745097413273317024731014470069449993136094472951779653113102977693244889778120609813444224075111590265075836851999168878522583761206489750226812396625051191869392619055938120271725264299175540301185135093274868476193751247027479592771501775522316248061072772630594725221084320501469636642647744863372965910088095747275864927917864014190322734090574137906196855032885302139957746726027018077931875118727174771245040654127065231413092513366160536100594660293710199164340451204315689887787414994316908563510815971781501822338828789762027729911853740231777978665282100226885494810036985461875815807330498447099771627674523573098070363003065455986631670683243093577914555184326856454241378039995141845948830067142175233001885931669669537297099339509797810861446586041924928143224664071618926931018346813791468177348836985103544161269477547594542716580285339491383878108736994720457374244028158204820965679282541977831940995953787786801793840477000595278578919228234139283940924355648348207477848731467605257927087966956662737218677998238861038118888965331787525904488920689301496746224334070091085423905583797379675671984493357963427466457577200373630206454855850043059921821879065439510317807245021560239788489851745228540500170587424513516421174863634462118946088491666367136403708537967100464979719430718563455288198075943127244614431230507120898434947976113759572960754994811755462667016450062340491857677447590086528156368762885505568256180033906564143340235069395694226824377070576453259451320777374138628401536496912562470610241328288446439376751847313412598543552338162424698776847452920362147856959543710526147130002170130869734337985793750237408487730003787504497453850828339482459016262699212147679322486512329620305182668795398990085219481954123645942078275119485233032150219646737953457655316813598197291786709022111551905301119081154745522257198722227901494222294689240302411186908747465160351551621279522123589099294739689622210785047239175460083659540369751912837021597896320864893086881090966977904964832917077773351951285199275975619856529788995057578603877332568364889414567445033812443476740020378865516886527760774301162358769523502729888088903864668590801958269780539557583060182052175112377156273568736538609679746831198475132251331972875107235599527718800038018921836238338603728518133753528961076617802441556877589029836668376147368008954916732543666440553325708493822005376813720347824048471585139271061443548140527638077420715134216917541862507564655372155799166049691749487812935758374634335444519015020374102733436296380048303090442149864573622130144936741607090452824038387884689659992535570677387796507841461617475060705395370371678650127882637546981324291667383005981723513619304791292476028351739933413124512494672515242648849091404001222814143579655351412741405795917353110085853719370829560795482291552412257616903319465228371514654982795510205593122444626844182523842932384753698104952251362774793012815460439413290952558875530278680450241996580430386634148348166435749433071209687159695596239088050012399885794099056327100063986351638351028583434068142060808736148811655363575513056536346485503733062605985531824788432815791271965140237592140067462400916828876892935565616242354859849429724414481897604307408783973843578709472934362063252289165654111116461805732113299525413674502819249229950988322990296788689553969870646436561585923409575158233837597021705598250454709692038426347673128220160220278684998246767361952409700874061599984646143088895772360178356985597300780437782717585463107731490277959058022806605464174178147554702936427582538693550060721472681479537629570820807095813328668527824328869333682882994792971991731831485469966623988347387496648720662223230337546176817952670522597184366461166197878182088595825708045876437764376485692938060849298781600339970049659031618192886333385980952914380071442794899209455700262505291506073782376976464448727397726841976279681502423547914898874359606396607109180647724475476114913046320663371460114448629106421415776010687199960515501311877222162501166062560461492798326157045176065420385895408291093606642664040674292044223558604057475100170929372386206101754264270184057014855559064188161661967399358417035647391072056389524940933037191455157139468640178011844030057733835011166192979316871289061317186365081562080323825901422093296478816145885563973105793868658007749461957182351953140909157891438982113132780696863808937838932624899552705301842065321799783946609578187656345887584240128507749183953501233440400284423955465157889388103717142768330349324206514262627666723909093041944266218338394258768503238596807249426000978204563533883373415405039943348615781075896779975052089064724326353217309151736447087357191855293287510904774758425690335252888791924741886291752105920901380606800627000414013061258546077483360573121048366524918853972308590734225467150372646240763248385725681612304806631211272844848747254650180092589612408452830849526179200739374663825069325365306369101974135869817276434186791185147839186607259571072117037490924002167225343826090550757604460764194717498489684401402022805195055430874946468150678480933168232090881245837664311366018237758545315670447044979867097430865720176282513086319281894371297254087281459205330722558526987450957766288249369006113651360763022613805603573771878426586051963266996620271627322615191890582642036123516777820328199949038941288858984450642487477689688707536082163407723793939861933871389927775208163900323527437465207773992786422149634256839118675103211361233560022827827887763645260427494771983227135468332971701433678973958786092921987242333363919619099509672568735862079524257576167919500866970962986250730066050224689961436115256611348676025483557519116432229253498110686779855220881412854246175672497975649363597229180251819772548800908037272496441806001322714883057688504392191618377854759182881122580476120654921859893524347758638684790508536171302410782557140334857038635945064004291574983314178462059352630230912016728248458215337885577706390795460524192364848550598555103909949660059165547588703495856040648318243025580218324631633072197525380056376727224351586182942597509050214923688343201548421985261237316213602054944929559689000389094358044872842706735537702881996271779384768756348406004146370638328470973279461401842146011508663700906951348788802157181770115501623349603869386604891391529376569836707861045507377554478551549850494955598514181182291103465977421729118613574920310669176675365153516773360632012418858389542821761395846494427912831911349713133328954392028137367132969177773437952270689983380024350254349932268266743062297024087621367593244232451508456893937971564845092555354077094219800892434409560301730188841023166900401213272376072938401200533329700091749239544344076065011651222111056548559689228386625632727380029956623944026700483544794005791030684088185019221180448905216692217779466728234570030438136436415162307257726639933407116263842614260115645813445835421074880938990725609895719557416710511683621674694562842813366839793463755910203115583742249400488881853840621046202170906364708414546918333121539098963595695565438681075742779298286445407546830324956086561878498127072116115250647746664029484407454893958531814189011848277415659795495210102881042262626311832186983493264668854317990958982585706017266984826881581266669058537467621303060847156499586526098096269889897506704074018675874653331133072799738071127209146471929040419757879508118007501597453245748602578626437006809592134805081299349611095328898105332988114419482530806791107248941501871416947433109230110760021731743822569687191234076028752393423750030968344178775944833267659169792706385252989717088365500096077759495155554106948399660024263104117453185658849390262063292889359966555189337226048998484629597981287103539388929077678156792602953253505612199363598436539400839365329217307037579905690538312370925078379915829716425286135500686137571628390882754173982357829677752487027031625987787686673887107424820219696868392191137241516176652461736448264989558153174029287038212399135156940872461546225413322557970216105006498770707377111644173984898134752027649406015419191724042953616831240419111678738761086644767688004665024925392345927598362453422640564015824444593188205856623557928067930292308319552837739103808414571785936503268975087167981155638736428083877312463271275632498402565920456434411935658157291322527325874026196882848581239287080213804090741838883601080335393669971196227206978936445138166607245612276783498835507135036282637172564422887860780794284330283199149465483465915534557811028056615182335263933376235222569547237813839133763494160071608492323103219468599497457207415776601526066051543190719401057166326050240589937379812392198583031427938915961290170048706472949776053670441783103674710473233105246305713743649180717099412714783310228412749670107560839599820527232004304925688928775923263911644861445477948082111861571205718258232597176302308468834450874335523405497274580112887726851770941531337951464302743034251705103337786386040048050674282373352958396527658600279500162630058093865096389950262642586162946919808029387409188436753494351560982963337186860828459568056607072374927935638685225037535270993592987559506262188272451337982264164502615910097716780863813350867281958218869065670638893844101412996748402203643645504453068253991760541781636094076051081464685046011878564783045340632107957699033612878020368614280989406191688689582227883443775064765610669870135139747069474875885991544309622942431669369996321470876800510516665710399454839814375296140719451371164603239634610647685206969510162559348068330769710807812858448721845080400098784560321772282236874848831481472234636527383939740858318778519462165694327915432344772867661200872889120956853509768972317758224724683267876960930115131611388796916080252007684354786235826120844179815215426638052114173854678685964509478880093637604926173109080519239871012892183075923957985352721865339632863909129460801854917297367943168853221987077341447980318012531163907982665804323472237675486401331355202188460641495797728232747453107983994815504259033011208726213923080419524858276838115469051419099649344123604312917390441409705602306420378705355450661815143268070329350849671511126774460066059517688947119735562906870790621088006633964899794966082005836029806638530604962100943518150822442935968431355030395534201303637343699941196456510929483496367304453920281838824893056761688961595169297954633261687117526197886529029584256039872916918020902489094226528405354541989856756320228711322656255162574350286150025912712632484824942371390085611757818869104759945032042143664185880617032000606236424655651794166194015588679054085371767662738595545943957207597360865014549136012202124372840767895574728419474960498691348643062940996361895586826940747638983326745405351165917584489992045964003014988029896222388723673470175458286030415497593160801920936778879922265265771091972598113524735217404205020332021668066291794266172905162161007842968466363103929805849623035847442603140930959372830228217073992649089441990551459933735227721981883785065323088356959596675240681442666002976844000768594218151472060335212874394191705556694480308232639016083523099332192962328131842254886070153914840870954533102133555392884624344540334607175919985005122456549639899038983257898143137332770434807710385591541314398372213877314467148313519667414718047982323114550949114004698704210162574891257228911208155465715942257511418566466431122483428244612640619919392504814287365102213735937535506532399532646492408321139401921199513121419595908940683739871782744093801896456970303362439465188390909378620485366962738161928630876400653446919578432976244518896390856146431471871697063764951790731845290885774433734043948002971730597818197774879892403669301468534329862179842086465933274529284394763363640318816321555269442908997614659560974889901434159361694375933394436824205362359854154468059458079782668396768517967085805438332647927138191788782101742965085078048212649547005187036744886327163075297011623828601547034137119517553009616374021453215164516529264188704246811830023726029108230209732089455693623657196055240090828343195756947801300916187523609314920573706361403205900203127235258291946794173469691353728239117350048926925163452863295320902257132225050126776396645554445908943698347330251831204463279331659624246815423912076315163893159070883211814306358103669250367690646408835753088647981744454021519860888320153903716869339558448679444391153799412879694901773675463405946240744971628380119219036707948281683589923082457376160986869778731606451680705716124121475808344467220649893025746373725031378775773119864005716438826683210663142217017484448645919383154054728899041906298873584969493129342629581154776586692250879775212703387450133712785020611477172608149446941526811672109794121415175161032292412579089761503068473607142146118508061417228696464973390197368224143726845126577291642697768142646470832112828212800929551647692603319136638710495033181293557003732262138411854156903228956280765343511371508506481302836787717908783396831089085802153291588360665469070965416309989663598065319332677813704991403637608381933013291266687055071037679376765985616237174693225819191756901761901426274450705960021459783099478534219787742638668624548821714506106615028468938635267565642855065610605019730776771868090242962254693012991205142216232534555932098523993146124656903882238724072222859507189984376664790355160195502975332203857312319739336440497428136788899455035201003333652207973799925985407527544214690602710611626538529485090209318050169220408513082464676916472510900446366862364547762286176421642831215928698166750420574654443566346712175557704688470885164506127341938775117725900478049904761543298453522092507633429355940296277518889928459750628494904755137387001431397548270621475757681239448216072082132991684238355964581840663663628427541981104079414925539094582990904574260471066484500123465444531854309406905773143268680855522755793244670955552593470644869501296513798307170064088092252496162539000046055939051035288388718220921808336241520350761482002794675331672776492559964635964055244939245034373741713165541153555852815897724998058908959631526043025705896613248345058758300795098492021652943815420184695557258851012243780049116967971887570035251745011721524931531114060240234189758472354752244502582086481431142154144628997419960503011166272026290115857700615893621712586197202843121045945406795407706219147726753150664943860679199738620082197732913110826731192660634851999609303130144730886606069100248812183341243375518966478514288276340069346680041543470274075627486032329691688447110214141091641504369081030741905013012556519573023660727657925760093072120360898645239788741001263627118051537100262006833640305063370211819008607326480808172364999161307758286409868804917851475959672638297244351952059645986127148101821291723830609070466089973688670514722798675400470623171261260897819973058816731946816042825370586663466202034064834699661943349111181417623279163877486058830333561936978053762016887229376500147409999800328703711838135527613879822050681225859998680682453451707175979570808812364276419044991336560771186160239679180187767899274565619268065210054499513324581239097426459788025278615203895652682241014593612722113343907456726137959367861532584368010938902345521883708326796009933417411270783523258458257583353917910448324243407778543550585966723149806789097996081452753971135922861382493327904568734458974932418867497940075202568140581929704467718252509631234314778050203491341591745264003192212098012461235901528097101241869588461636720084119285502760559571956916614533400829729891077849545486686559688645741176857635497361671643797830770642253363747936710125172768637722091940950522695962858321394043721153269541715605700768548575792255275346563263740715598543190748359944069205946996661248893737271364659155961627571460299945218759159250851431382302493632345074149260415658218251079441681420581116864095118939283457729179280395970962858706826110024684505080372520272388839412415755224693933151396261861602771582547198747716494514932028139485378290955657214823842531504318182590884316059824877264116035765406382178263717319929759368384697437609294115906183412188225468752346830482689180562716168134166682390132924083538075177803698670714834327229371975235203673895398419322032097352292173146317108249331917753547163920968625419328037504651669816194930915583681975338169356058057751913610399625677563463668700758855730992520255913322243850852833124077714036933140589257498776081755752599436620604822014884462047133279285613791684926371555488592831630663201718673077354967790132846465365052538077850269040143996571126569616020600150352591537799874373470875376277645445544003412764105828839423017377013322487160031295599959116174584347339795697646468469230235038831453692424336155568567696677626604265398116816321611240839835724523090700268449872996972444584910967255244025732588022746588079397556887598730604529400033382854511400489631201848719257646242296539609563980567839281316603629749069381625661382298458681563297294513203016395249927455920386554436475818247514871406845741008716644283998659374993320618331001642727697697616314961658269142209153018404810612895615568008394606768557537587185943992715185284646371493537765596717658988864630859562377621492822984528971562571954444028969620573108683496940211490672974747951381300366538998319148220410104385940468289183437143168929422235646119011874087859690294652889706506236297523095507638187760509084387416053989250333182086384971797628140278507476763723660691857010672548036890107032177977276335129535787073325138451843209222749015536875117704764162699851721281837999583640846311384595182566740763023365583839212173912724282911404405407585087510098838765484662149401641756448021686638693233372618666068157646599029372606067946602781574608112134713292362022737234862153367620222345438956456673248801383178090233857722925709645361514020365345854985948238324993886141191561466033176986243023648521788279278294182159291275731992429150246294557977876301034903482046785269591182475428251447941976654379326268412088114005333913161311118272560500728497195609667439265309618536817837571819586571367295725912717543135337171133704017636969035560989623598947712902054970649484110888846233477796090704455772263767226525887961662879082687318186372207085660413671320774028359554566258930055629395022525311681696238591557144734919693592775696639522844155168486264560583530075078983684865595783857649073078317030380614957472057710055341726823116720340932734773967408578270373701744457011938231383955844189711525595302535631666389135564475358783999299688078408371763930371848207857971423330584757441716726395295461534102738556960443335761731824371355203386771075965740938237018845836709804956849182304275417192373530648355165710341021339983173353594869865960938964681439712199713704750080551516007961390327426560952552780195669579045317668809609046140482365408379979905664990607315797029361033353567449630207866742514146255663717348582959390142206039279560530062245759472371167826568704470659977879916965384618830432570080063988692789155013493479370634464879888395779759438603041192484388890952807233449330566049529586625819262156114291690754007680088705694010856895176313495759785899387999685126456098868330381655284685424385976280052080078910126860084046481423387510446889672044765467524174561526013422339265950804834684709334929919586330261316550050223144551689521150329402233160280409602322831556250076845100871674373446540834301124765442703813733962071285569293327253208871282218718282291595571999990313082086916664415196554189223355431351403453105148804799832839390671611267227234303369943837575125904276951913884363373779525495715219831366261968805981088283493804082400943614605021510270101001252621903520007942691657738701776897887784269542863578176080556658016048013349805155402975546003390022596631391111724659967441097607138334158092500650797259982388771108123584283870799668284959514437892724581865250805421447302591322863537942781286750916484863539218104316207557750639021042960805654860111815384785828044333237291655304273202657044479706779568514824935406985471151531162632221384566316222146027128158511056174523495395549469672614708438616233861053223267534673473173696132297730199332444050356604956737893109727975332642160246160663034022544769328511937481680897259971756785277363585020265281344397616639829642990096130386245874754176244667326134903352219038380216981399501065863498355016369269818190652221086704027948444419807736907946053833540151920606602307594386122238123375617951354483840713005955520874740593913991411877875209790395700182656997172869761468301257216580971461767212775950151647947257490573033791302405203993373071976881558531195428144649813556303575974365911039056276080064926849206525242923104328740458862057380440422163384057476239703450989994264223055685481992400236897413206640360200415173249498143904629601083701860282777149886240607346676770590350791408425149811580463625137003217550393622571222440978811831789448321590212634740457502214843399270607358424627096008948607742002268665076458142092198351766887351668817095805684821845044509874455394015271434256522507823591892581839858272125376658506712201216733066749678068655673417265867203933470373867948995735626206934373598590944110438219149488730253829152889704235915082376502471594990993330448435358081470624518132461951746056986873213241128447691392078713180900260601753370418016536040449888770158632831768855499454471194552931559553045083690518600729051734268256709766238589819190859442831552688383462724579625156787866038473239323282877454295390657415855541879315446271525863391473092246051806878125751586434759953582298963696711257445066354899843569641408168374122667260056172618665916207824684016645026197057764325628505271868481388973196668949050664391166382778250173071798395171485053478604314909392641681129291996537434460625406739949962369579602596148804842635805083256868543201287677097500213118018254464466190350196530309298619659133183060460494766859306479923547818476779181708619466576107063049226913253533206567747451792740003197618412408605026990536486369058035576873518425674175017778326958075255915487443402593193646896197468650714098646922096572826623689661806429110463009750240715169964077660759292155481994712598480443585490002717725454725370931954609816094831772076514004463352072784838519309751681124416183234113379252612258838295791452352699887835095068182527767856712420619851410513985391304420278439367733872220079546419027097894851668641515286848345601960206248624579104940222799574069058746361538563225525269302204639537770370486931198615710184493380356066702134627191859707979788684232858466702782835810420264204389227305855581124576747431998635290869097149112081059798195712256203717992089930182319295584671655919020236033754814739550743376629739915423679341583546363089046794180995537830020785014015250922124076103253781426523351137484490648776169053027608023872816408785237929379554467797705131737205707109260410124693966649309849853507849501114452918755667225928725109306382639067275855904060691771706625045326224102175055062823435756468153670995311711469163115525442646277900265366048820490664331400896578248387701368711647905295348314709238497535285542521739245672585764881544148057074660196863248481456121634077046501450069672026605339468523285655499882364485923708815726851312858287207779209734499825495948760502096735628792405492864819605322525018920191849702693155577830388878718767931260157585129654998555489432677926299413409648093600841888258551599918105237341934631082776299959509804512870078802903739780310426638875812401163997204008347017469562710237019985420637029796833818159351626116364797078874373526256543053983972766479828839025264998217586226262336616447850785350216779485474033109359362683606460010528716449065749983943243944377790459119457178115510606787506980112159527015987350520908062218146071929945103647567609246772886364275389772630523851930956408765767096818451195455777839519298347481478061959287753638770464548921368039999541013550918148344477440468256843209197910103196016963691647801415777536775666839412832202484483772406146113005768592482195017827442413680695803195965576475092880208129082618217663416169039261169127515708784803261681272729222536454644721399345296072613106945911426750333936494028223086116392488122431529675347639001990743437413321141503136664056088002322096541758784636142681117131163237458323133418456720738341753659305512455109102689731732756510480185008259783536231766474123965007252490319317771250413851009187018216999446649223217824270429661340546268801059371975519939538506913486645591230107757522491853789386008238639275671567827893389872747753668802432704051881038083291789729123420559738215120801975435985035979006675577592541352458034840565301729808639317132115833951643070759652079222021086937344450889991453027447791405357461532742537517809032480217426393257149200990313784091404044715314874311535490683418364302795934524899133035996371863384668596192809914212048775202353654697726490563946637294615936471994866190397580648334690449904062500712740704946085492707332693878716599355070622886234954610809239514877732125838697228329228813794838936467239014384026289565651513551907982248785385156115324723513641235663660619355321198105191327119527268112027029659008488876874708556750366283869982670447701248498890391776392609827271519060373955092926778133567257039221180833064656878200860466863230863691838120586934685937078342527431639827933103752025909814964074525954095192824757371421286719697324119169262596117799668895585481737142678164957489314009296572437128904677175451309283845820010434238264133389280684786760319904432706203538415913876759085088023310010667111595698856626360005459035994395553739760780168487165448846121804136878053026705953878669180073345667188455667090310930768280047174717034298163190754897938359595371628177899930410209630766733208656001809627211456718962460650637554431869393861674088752028266823798494642276672268883191124413424890879404327582150704998288317712566930211352948493734678791579855503968475202673601484418616806493097086072389470216536049217289693515031495813300887142539623183056745712603611777774623658634733029888341168129563305287990596409050266304852246659860945550043078285375778245667525889141068534458002079904464036864410065936689020632471952285227760347564906881494407386150825375500218174788361361662002427628208249422854994845578631401508080969986207874488809021158001610868424404850534381899236634388872339693474585877045399931791331710704576171671556370868641691400741275734352130354006963247814055181392861686376495875801131861817605578175499250128372434923787504633209593742877282785703379651728945476586358053580486866116793866034479307812271663090577915307026849987777048469234919154914647770002186500362251145883145785704244826110248609478588252085611471647418100531992897208616401204290595253570529108172743234061147979492521943002134906245468362495447937108510861062150746106642948104834160338801330256031140848777810745659778300276788053742446590807972800593376136712827613466894903087507161076505067853010280693551646708769975498586056229042311745502377923135369360430719882011993171399197012121305080643607332230864863097461465428521720017572329333291218024919735955140607586764090946360513333691930219514237926782805319571029481257980461184315534377670090493096646867844670565834343568355834441167119529332998577435526232288120416208187785951695590258470724830579340661320142272183735525268924562420127569868477969974988326327911479158226883962197244961410755228623362896397571680169435949255539406108610972840473537355068406435715242929443886444977565196793434447292278772826880039698012880965328499925056470554184422046329265962103188110040465940546759079834670030725852821290864081592412000367915172870708047532325798520533247264413295285433943576533822791007709662936116633855651481032878462384114870333962933875694145766065866253352389624967650768554251850356622629670761001621155142783513984207369947889733708822412517695967684264134127740815713854147260344188931475737189142618962743409943410187784954210524863100697624088094996830673146264565847184387774246362005116767047443682636825471690643390276949247981766634174103691650961346528284192535865657928144181801164235660277165101711943275042776296012365072093604354419232845359322959010638289444301150747534306286658048030654163729598341620876883005134635870999074801044638648588084881324547877239637090982262329740885563422932838280103560014193347290143244890851903373523833362452479750275871304349398935365573810697575322215795355142067246578147677875755913867753041773511477051531105901038940181039134138919227672678072581864240116270040049088926889884602326862370322893309247123725507785271810815899634559946579724620292607331195604503871208227130240351059928303513213570434471471370296914124674275645535330726600829788758342491044561205848040228620767290810693263413720595198211995796919449364310419602752229765296267389307130956972468206064939645627901625860114505487871371965775285008824239392338420509433280127574615967300828519342933081602946926478088450975631060287683985749851812995887064352721733553269859480363084259467421285035014811483322647069146563442550719382294876985156300094988026626361763601768549868869852659447109308696812217575194347051958615942578174007555744210450326499220351295159196995213103895993565603368237112329364237421368504021584424623777960309738464476962167619360236064296296578870870578943995514629760294037406467988052366315940074105270242566565217919550139531478922106996105416309049526621990280677991530211185744691436092951918430288883114297022526669544424990461285997393644278171116815710354322346820388689800942998589113539502812337829374396668568913952430079405402933507707443680551166119125268111846618390900377453677634333295993333201244816425101266683603902527425221492757326368722572187334543324867770771548009789851836404694715981620358587039703009697266064922216438427679707333490283337593150020446519343028824719280230364862821563311770520354043076352030930027343755675310042530592112832705635323551055229368429794208366380325438065836512006862425082738720405442427655444118904941375391847952593811623806943002241975017809325003543253269778211674069595044674761106271972302191927989417529942625724626565659627072690202833070404388854121199434792305964502764892921649816100162086495943326560475716702087680519880446214637644604721767287493603126612393974250389620652509040428055167426950663841291570609986757660346855523016582640637496006875035736763499367727760485826775178355216267208851496822725587350201568668748435023933809213580513130995910188310504934911726342118128374905633403980601262051884624136421494983448620254552891292710119830017277021404113313720901667731486959768379974105264055610720423124363448368088129716382862417449766187495600340413436496888030566996005513613737835827056786089711699428324607261053920318089543469295974018315351763184008786316736993215585580109961043401278270803413887298786897276245730739817699172836917956104208488146119458863114144912643907825288991627237918789667742298981929612170894791452982112972017929321251449023283436914950439572124817589551407011541781406368130089426579497792916847704162123556398934512132471696496848010320729536469523308585848757624920898097375527223912290186772040847241704784037823624195516995711745620915785443122890562462048094357695929556683501152036330021472656149616468919515715654277170090568465503767995369796838223694789114457041489961096998898302617160232805859968228020299001112548199954394188702704705977462503694925254374226316292129603429477834658333875646207125183655657850033732369317979547544905890552047668386232318286430690715158589330148081564903578955223893072290657766486642264092965202322256271707663381854383905634843765914297876962806129654659077699216342509318664669447340931409383518311508659652449353458605823573607037166320625171883833967542059678891469786774052108569179162274675450028358690165757148304572018111681495354390253351897244176264267055123851945687449851032985109489864991893982500911236442525040584100180391006954892024123069406079997166770982786129678881464091526729467900345119655607666915731824707027861065138900903815954440134793067134280220874927768217284438331734814067545787675343040833136241183354007699174604950228969164093627646945796608898288056017498017298902013906127904731830400545158409098133085464214851207404909853554752716204818571160031430538489676648035909778047238668538564823682176759463573914041296255011155965352831987374821710537459027561054146225578529878271777860550742816291471712095521956439628408687631905096386994631679320342640676528401345255973550409505632768461131954046550531689193673724804028544010669316948977773493608263169576336898984032523226021589680628714774533508604838062752947602868063941070119466320674768190771163017861675410263466522054000060756006480004802274295598658273748520059298300563025653099179010823139083934044068355400302295993772969527870191581854467269282539745111434568686950150820476712183064239349810390008797951209558489911161023972121784680525036416581751973722518659479523323725929448219285303701373234532223238113620956616593112795287734639510309334039981898620373507658067275259979133672259078526561391727709327914956802668084304791982332111999136482125724961233381252372039561557833714957262380513396939759105956988627518806601083801150022961141887447204891920406251392140317208746595511102812833258164864365371435354392135813614731225060481466861711183916103059535476361639836622550374809972856136036720094164710328097726786664423664789742748534018636003269332764025081923462967792300941975098514858366171219823587102102011979655140956578834747025241084854030652399966093158460029094351966302696408904260555849766417818240074350543293739418065860682177724267818138573555936888414778535968371874140148762073109950754580427989920842265128816170831704265493218414077042739289560151843069013536371693788818988686209697539446155739664337479616165298878515192183576373943986265116784185379378837285726673264217307250798051823744690071144556674261737151534674236114918951837457766886887273951002205644147319553400182746142078248180390188712582669216880992376083417643008582575497177438651203374143157181409567875358847805629936231830825638027563547985699415582402183777448872363458538914115869127339715047221740517497181609061867826103290978610384613358540360640471946552419889266600153235683429149491590453013572067220181935890507428151936266130254746800845891978959055882082545714821764129438087972297795848764159249689436517970253481250500585250696628022174134617950267703890941055890356822897437353017818964679052111146117640005360424899782648745468766481078237273758666239262383271955865433618090782791983669273240282928354562811511822018695713514292577384552679132302039543262542340614203464053102539720647569706921655933758722613704097089238809476883385284671321358770836721620957891462754431123030738350306649266581622245801923992415335482582989802785142077262424296571224122680181704142410516620876931428185660994519134261211577536592639390824755311745837337104966847418822697915734790138836006783039646335526367916435820392409795967837640537029865492480286827974373055870857542949849722353368733825182809878800145857666983672848741501557349405430982868982937857340577885156574458906142655744230425088031454441417833169173835582790239854938981189684265620931133485137114548026414841651871139944033977073768263904641668266662419257664303925031126030930347076158034178016039446831852650741068903493209793855169463839912926193842769397157601219090805273062422799804031698431561268852476594625821667244963502129162965649894834130294612115233893579154549010333008370292041560424523314087064397413579464662176754740714906529023971180929146275728883547507959045110856497497975214541278794946505245744705356363592238351305622202407418565013824454834470884190447267109784649994518752477494454754982809052449386680862906846521762838803177106505481052798842865461413509497909485136195012930739840006147411856636449118989821049654878844381652788596702032150136276356489746901481791068847167439961966892090698290564301886679014530973735024200855087173717215320991050351041320646548764937656024929806032837186998452402673229449985930513305824019424592656469994778300318936789146753729426912868592193396873902671709329431570877984686147769089748333514259555841538088751054051542863094727365800224949971959858258468554177831636927130811189697648847994825472905868995158746979818304175233097587978748819772396781855082892147621113491725172427809572714596060589361156855748258722653700354084191020368318656952618047903456258029923687524173882056531822448882651381590957155015824346120674357189525629108148095550089459164215427763540038818766569279996043895380384015673438232824938166733021643651940355247027099499716734084029471869451082642356586374508142445743976066582425919075867076784057932902533443878496797112005980480666358643547714073135203267192270006013754123757496167784884825402594157441109805010677224593935640826194924877420915801539863559385274282145032032880623518986950043910455670211129559324822603798967013857019664809854324813879217961045333411534357516242665962580922760160394254827671743332769852013636022444230829047079744225410690045969902367569638300868901504869966554688538435020869007011373768728664479181010892780251650694001054644090132614503553637213403774923037282707452932431861905054561779915067023562223425275706759300960648048823997490233240194896959818794403958275688783015087348008537689558469602220975303745911454387706696626112657703296500580225936036968779119135116997762512602166896378703543098686588523662153378476055172052147798850061124672457863460205653994475041230499029850277666295903001922983687261369920244044874523382403500788289180778642249439372808999723612550519040926958451218407392825474531551903249269274901009297850410167932339046739520021838796331951752877534726270637942791483033062556134162399850640723272125739772143892982626731979757822968696330042803995395385416225351035117953639413022420805150093563438336424584097087639312995235531293267554174596252926964736032959838634493961736980028201052731830101542293543219624228535699550248867714021678913718886837750569703860365444561945456847618949946270906654761920193226238199907948343386045275817296394261746990257201098672683017141193618947489970235757312289643724056809938476892805386615313325568559858697418815846648178231356655622316492757091282198884861639491681294332637348590830546507433826416649468741058673255403371712067106824795305100154072182228492278218419918539873782022518511789622284770072067961904663824462952247374959999140457319847371603673947843619204804662799114822481818736955509118495109057240713270839139085138226707962789825485053280795987608308981547261543895362960424693328036280259196782605234749226397394710667560367800227394367384673019315548944415221735680366575657673772048403413121933406559563258680356365970975097572357826492692795531373107162276044716370924639326533837878430322267557672067391647322338024674016737003900447081598239805236151414210507916831221307111193969011671955011902207061378833372460857268853728547001701335868068201635714103615634447392732812073328395599500118696798832324494301934370347788178923913699691782334388492356773343913639443592770770297427523882993228247795465236443135267622424221353468999445712436961987542351467009526848079144679763465187216340407773351368952197804536115023051401892708745318150481477503015234548464391844298765941417435603188122943201116062201496893086921727652724170641667284283874926633838749492924324789368494575941379457540175395495491814159929635989379305833090644150701952516228920196051506095938129797208522183559407564525057289887387515110988049757072320669974462405302339992241251974359729186853062927511722113017051264903271986645569459586836047586341830504737941520414302366970961603798523591133523021982892802949510410520904175829067140654342349272416042705539461307833315621273696148032404154249952224772804335601554041553137190341943360677104476677569645808091438414720005521291813354525020171251618695379152063847661721064269817880365299516294918237554458304644076910032748587508758803326313632714599093730687216269035102051817156288465128248959978818724185362301315316326534286111426252763956293614514373731707052424021351559858183117274003240930552836696612773729414427962747649923577907776193620680757806484900230590862047688401249372394590919130525135749900458922762839107286002573342836983798098951477195718307569647380605840079102093624615604037439576154632569450339426297962839524116943134064888480161969774827413282686760896613324595965602357392574612055545635592996251696578185149807177623734497166274195072316957176084882129262817618332518905009755360070465106620800619010061745379131036199263316198534072136688015526844053273390854924140462096828907805047091878445200918760862562055052173068503874832512922250565248618732208209339784088529166309951461643360361350982635137001385277736251382612015692585857682933100508138157517116919224937419370433919606491516980920167652325335804107497223549267922381954765890795203806314316344394405915841668533722590654327783231579874384509706703824357588373199092586602129425303657804497540886495054536558048726019865853428937851541132282392862867406892964354473149698271380093147061123384722878630102256857515416302144035911104857391734730447872663914066160723090233861837004205308010740953107117598246278808048096254348341122722322253297084243396354881260828637809331130163690953747641154924565866585410196296678579690442419627823034830895193021321157092633024828132109358942507500560835453698808384606499911004147647854187436240367703977141918785561646977990065600837375807042454187463239819821612539064407126584039078141459088132508762457411007162533064572797462205129988703622557743861925861628271208562709616320669351600277874432239990541920454182090918941381061335071223982786686428597496728477154010696986839092201889239925847187776458321283805294845066499798966570534727710921702360680764307371084428628046865802087729282047530039670385899269447033103939151165985733397067507827730182302791232303118305574263759057764901377576686690760536996728770420856402537321837645528114959437747444269209996242610420190012999866722881719709365838185252211155528154325182838332323116344559120012997557734324283910719854429407875281593831482933508575613431164858122704479320842554787090472394722543885647051221993339404899491996706201979828074494633713377644841354322401085692952981565879102929982859244921166471540929137352367772436796679911332635845864319326714380060134619251801977399660442846402279167185389247562974511276919397631056250030208960613902380577027627210077568564966073572792753414725305349864068203864562269572532214986878822855835884258824680743147342732814612546706887759017719488589123857820465897395087938964922336300014880691791979580174920788808027589895242113771463029997984305591944322092671159808992227059484591538319628878555755609548792854769928487346172837363731269226484748527361033217818740150931390399644974458448517861274023028254330808711042061971356138666848357095907215047838583106590169190815395552038343736589546528384565593724186958461253747833418423117215008882545361859333879792138835374374504861620311902372785685664943937589455261940983882330160675958568743854656259526063346714331251509767844820292625667057421484275060517696855779157131145597442226225480531015128300979420062000297494453640737342968796135423722364060317082466758083160489796718993553789126837046523709965488075445046629643844390966910432539129263546126219667604333804808143311894249927986955554643373724128880641100841244952933031314661996114983535422292374399358549223682640667546304946558438462665120561956734910949567963911434907630634838066535825030792439780073836329878216527383779526640366675570714912646401617817078973876554091722744348564815808894019788160547134121440497984837102478741553442562743147170235199231169757649524792859682177853871725445004245520599355022440475983304432400339315146411752175985361850535746587462006651409537320665373329589001831945614674014955001053189879271475745816263437771979726873508483827520951411279844019686681122631958959602512103057667470755630687383699671774917514838428405823398194601514583835781669655804849586224723791290698778246063226323017295872781471559467739393223186155213468933337144198578206457182786857344890441046891295257075139222394750843345596990812090533315534094303723004237950280344316624405550414700197175848359853709076112853234918008927417011574246696602441363139468447656106639691816376249117257885215420533122350297802511195823841118070423793213868411765830400403065843389373264805607689978270687497522178377643722958271965620170219449374563715363250757798898767956060857432217538375225405332111198604730510081711757581592324675448999161586812736460747364410952398410988699700301572878122945015057978833676196926415125173916541991041378897935924974029247559235878171985067958471805876769214714944413332016280793868609881321355508769825111514137525349642791040146439986611734745876526674743372933909040683296747325664452788039870405062441252008003936427401256754217553870325643402661110662784372798081871685061271505342475576980895154735192847313266148892620699370486523739345613485533816744774193440227545354470971296442215483162772382803130710631061405743013610016708367610118012990715833142151197707607676254531503896611818151202402621912899625320105088396608104403228910021067374898440387054589880076175101731041754190843445032695368358723560598009699322300611660091866697550931519392951487425137879304724494717623259171765562903031631773544176333571295295691972461704988257545260270580371335620124541407437382989487443891948710613844534191572010534589785493575149080986221404625362634661026615926491347808202258218639131623375131982079919530775128020368543465575323175858184329893727153795808782008890215863009112705473674865479479251734958311139490845211431582395200315849752944684710936672380981181349787340118430766683221746955678610961917192122281082307837244836379855412738915320397156886257021882719359244178379467844954813010034083559044312650359545795741939649559552139431635074171903986254068134201173152124685068003757742949676491178622045412128737184381743644825042875580182063615249570008325362008134523481352383974118815527612968420746270680180448118459489257431737067295461843783100879563570294752551314879693573775427901847712666636066842229417041037882528736714080445423788562876702002939483980447079997908615772530938181137228754662390508763715287631834145392359865883829831882795631683682366950389399255166683852918123104144987525595973347583286982452938633370916100050183148881667853365957013121725247599864648710359410849586015517065344308508820651278742972184194913833217093969558099844724616235284864064160453628483688394124235405340231000572592032448908660240114983825737735810971316093718370924367754024437151001843394382098743164115646114576031486184341270486467062721986464173799955336471311608345398892594356591440027846771727990723254440462729761522939924996860566319065327706217314346387908235332099267805249301769764350586065706777784812351629197073746206061163798214883463275401786489282701945572205747730510029240434060261795272774652389911983470809374950424280031697868522484475978059420182807677294623729461230692791774533298158369374998938545225899192512584641183821776677432614122703722840258781427027404078894553803926789708613781266805943222157131546379295593874978896043528406030627466353449724871451934202440675305305920354173008269457781349197185243023636752471528329804758291531167200649491505120207617416477917027500839420802200441361301223039163904091814771523006330060312532655663587872952825855182528981334205507892407621072052646805866626131669092264995997949927704999225933764520831595535156930554709331665054895781043716981218564595188754740721728563965601199060218004686906413748305077100647430747349102715831348921174499349561721572784041752734283335084518494589065779444283231121696507743045117415522230457104068042082546376370784973131976308345274654811483357924767026763047219237355250048161169828258273043295065278073330326617524610232707593249486063951737021613619325408079115440635000329293473412018880242303038071598682922013084996517772855188924048199564132585686539215717981521698572578676458984224304490861544455560731582962768791864768268264415922549272847911392915351279525859958316335316046660500750535124939049866860320620628941832144395598164369988804452317271024058893620255229059844205734535811592834588574022297487622898790302097958877081817847349623059081952666532862278071153599089625937698500703562073024519417150352131869236179369922991553009401379935461663570669519318862538556701788132763399780773789332162083261015984821444453190839092093230086470965653857087270122713531150478981685251548800474992851453019729268074411176865586575803122961439741485057412170577514754223168331107427760557739213957871739724048642951476190077183966130698134734755840617094588319510248181303202017486705493388911792851593394688156496281591546409243551162994075054396372440332222396725469269693858222202079964283996068608046244222479517921604420457336595780751717910574243971527192169403970345757077023477655131989178768050019926972330101551544171221838047161721180469080163110470920785126566406338184775836575150557489459577978869986646211486272886902896148822604811140259879967912717038451999788699756354394777931222033800976654428863860191047249550155918497910950104397820953395493309587421482311673268540110737971870826965744468141996673551752296519415130612369862593674319078525071678748326819733793392685603209848750504311240610462587324929343128006996583284683745632295204500051307602543631274966231405655997390975641555037134799738717108428261946884211326230658242018516454757291361486390483471913731785113947446230523045153489029452424520605812499366188862193178303102721054888485292179137534629793108194548615004942574417644101741008661919005890300144219812727286961786120114863084587687226914526384572912917465222392552206640799961448878826822470344918507373892884238766265897817606373192315599068660775163013614583467173505367508381858331406237284235135397702146530336795669205126002686653669564743167312159148955150370300407207321147331177419734764099459622195927735308563126578894452836711919105941986598952265813225021160096864886674101223372620720886330716435707334854263119333843462523899551025325830914933751403045038604490593388844825738616001415161283730613334104727560834649967579532720268572330020018623444615291286196942452532885030948801486214000503110630251499622147949545949158071246861829547460142313140394302893323828163281014071022861267030506402596647808411125295796591573328372591038794860543166844307213703902497405065784832214630454238702818719509495503879403093694935725071248946799496634156091389070886686156104713438178238576862836064869984580138429751948245648993753868967652094213457313957246953031973807902083230406809504786396973790100052095393086884508843422949153322365399657213112654733458955087361004749289201544557411373566551376504949669863003825887599051867801925527010505403637235530807252804858168525145696627903840790576254842290048560527502239339597470099130880205568352181826172219905398839751573240054226630263983205590377106138346114927843551724527798636010449941630265537068024591580923072280694495843794161164908880242388824363723832999494213935291385692156152605870780413357122364314230952662812331460133284106970142896218602794261799135919102997953339896666283883674719580743442425765506451719640883196012067021252365600811554582299259969647402440300167126248156642801780264824304366683607806185441249720498351432710499665964007265074042058946856291090070599058554531434743951637101945279520903420416493827252878074495270413364477296779372359266692748476369148203029920753830109183203632663217530558625791454143580599815655218345242233852986975070390852680125651075628478968345492813813085881795329587632712217316607888929092228222466265964117255136438560503819600819344984604351696509133887841045024978821010988123853158802999321080120037272257918831475953274449280804567029323937063346191402509354568769825735572802415755667840018257767787083874781850968347519069229156806327799509059678041850628760700761422683549262932416452930714009588824102262775645208436448381991679755611390379213889274755772300509343937588605728785514844227567948080372415383913605390050026271820672508092031713899661071506091196840961584553853280525261436904863340931217453186075380641895147246297921873583324230806498530731665159277258126609481799548492735369711323055196254365030808061317705812863032335012139685223708420039689014298982282402331289603999810498591976301682409984826671938130003116755943836243841025288372201976423261564500150302362217486958624479554357706955364841392638212412152969544469518318268962172310296766678161869568545396255395576188667374172599688233674968017449157534591470745458591307133974833091838976284212812288694777227871017795706477689014844036126114310882712100943276603210467887685540777109384403757923429298039991764247303378585421889897867725313015772056993532417415476922056179657689127521403149537167875593625501277303960006949436518802049970383336773191168574257905155498287591317961427689441266418247295762536184901235681520275942478918644371540266938980360675354838809159580035806474403175106329264419374116871535498636365403067316438583148613481035317458895854674510840305152835943111469935043044039393453813571791397361474879847960963689311442471050350581331089055002042233930657863795676273458463770733023670709517630679517374059090201259819007490481134711677334397724586663294989351908829613072354141488906588030576128501885250284362653581227383663926174970776256424727854893717000407151740098345620768104009569692020651683402398574376508162678901155857658718526066741624857082011732422037878365207048673288192116422395052601516349363194421689665965254531589171904829619525964129971032594050484509463630537601833983309956152528560006555427919175191215913403201274497837829776674395288060186040414058987188496794547083567139595624246305874292026692474881482450195215980023875247266226081163485870806480466676110039346893495903841498632779726988685182793276061422817053109661602623136829075472150231340240286363017856532363714622648999903985232722418686377850587655077859742672313996964894033634383005671514599233453056470425086438384167698424122810349028919364047193950714273049708723385732353872666495246610274876334535347249687667295504490795207483198856744005316759015028519008116863568168530849699894169062067117421015303523433636224904128592254636185857027145413152575882443692585961499637601486919727620462277104457731165054595690048624214025792751355568593886393430328927030155091851961943843366301017038971169408426851904368940172491139501742353298733868456724514298346759167670940538306983939489489919911767766114745310631100954157318561710061141999127833864182208707272768969139673715890853315134205186538685124146385397146978635915614403039630976749407666380849609539164667706020401590615749426263136817555980248718756601500435331510248111521657069730264577896625914807716817523653457988098411004327623141342777128759291994472041713257725438998434835151231797818458233387691943076262848602623341783050368846416259580742230076019680749991144058998170051263920206864964404351486071529174288892107147396696947586844761161117548948899212879473428130440865566190987898078765338750878941860766365087652260593720728543993494059163731731660022990650455980157244259236090854393265974373601584697521287314759086645571472320815292674974124887468388560242353292341156330055479466946027632482305737461688820488392807326871727627562990103708349520464400153442214569029557355998756875160277947395671394258680567983346461490208970972959917995736889940975008404331050236701114460513380197756169756418760738515219299542972806063253985376713559349693951012325072592485366452566818887391288971846980956678075610519249028726734964612628650944155445822444748949832854147486482648317575023400073177739298297990974966584175243389424274430344439198733761314721721555902468264857775671072453519691291101326797980319546371811804204416463902923624222861034235732259988552991353410417911451687972741038293965336538123008576929915894104534373552084913180413688835045838844389194176829373828288773702503003982303409997881966572940570034789359518897281561212264546872153613515862484195227387842659874685669169679554906114268564425729188436572092949541557475875844194535004057050662550700125676835918761057503180245090167603973518953590641782492700147948787784636593775434524378669512478092808043454684429443069583311089846036686026383210168509196287408772349574732971860422180054863695074722984485343697288155588586825881486363009957858146469297225875086244392057112222044943596332500918468854349012795052170911904136028089405995835787222746816132467636625875932723951443126444500895025153226779703968465299197547662872556641212332604570317253342819615139768228591406354168629661899695824812616752080122562658864929150921069677877110648629605831128200549648664052431964066470378441695323902383917795982155229305288150525156862116588001701442786278216369258408287889407256792283481292765550570856439940398937583595638590407943236796811971780195050519164501140500095930820598968383740575693975710206277862842754703220269744025592349504381433893030149923693090364030514881847176834121301952157944015357053109878927556602781689653785868967107288270629086319024556274719126637106914579088184157083620924939433788081257306679581901002525400255468553969930270065749023121905035063171636265867785280034191249505780148240956561076336577305736740457304572506864917701995320386012836371094730102093297924392493610778702736974511302411379572985887716112347136994934759497503136637432096589919174097449134930293462785720658094859849017618036781575005816781519358135817860231424901823703643564830076121813245238301721040360856875264391952280640765397617778685705570833700819664049574795272385412557078835869485494735961267823440252458755293523574983944027821958297713303404542441092089741247053457111244358798203488405408846335234185970913917899250457723538094162445273912048462096045887973292199758892714832130230879146542688395601488293368650698770039442823491000623263964458560393477619721568176281543698023840040445234119334164599539694149920506683657829216423005366057064978097531077913506896527028396023914789904773426085439272108204143325257156526363941347142474320570728248730004470001647702718797682439519639216619395527842918856314750244454669913041099256247048428904995295290441127513347254752774536528908797212322374946351614645096419235051394696772253696818509358545761237393290504132964026469220046754955006564897430551062924566081208852268448037324654462621631931893445273271701797210894154937791585114869433222961686651130200253346041341951506188666663178325424422053962339191007097503363233362796716869512952200877053648657172476852999689503871495788530139431910169581660362608583898211823695256347470451253414331712985927295489134048101502346686898366738335391918365621576527957769764124416499806358838311141575486260422364336703897344116904216933497061272954269360076716934786675557457695032167906039066670999079847456397985932854892983804431753397502524278176404886946280848922503372126939217871277549636952616230687116209498471435785228574890022267369694340095193112867057212689691087296713138368566210390990301422902007564494130039872057228495406885276416397923066737309649142713103305334237913253102355402769178025360064836897524281726615016133278155771359043298512624737458404112046277233563790682038429061887709941660137394839704873623418576089763771345360653596820008645654566509541462450647734110376493947189368579835442545906552520785793855576115932322336091190596952323497758316146402397427719352433743081435856481044378559842761362531691211029299546989430463609983552523482523411475234224303531661700570371589675411610539748728102332932726666920396053798344366299457221414057794578430116711666585433421114898016147044134818182839156508389297839761863742263211526536157278423046894280024343312788587473096960541682721134655272798211811090579810423439979572493933011639845571890747386910999870451119132067144302428056909365702992968820069506979334008718335141967693135191706640228248632296206621853305152271934661378940653245196183325715062127057334588490016350558515906259242295085942275975059721777304478145969178090751234724805031866742990450353350720072201088563596462192912429329416986317447956737564813472372127089867160883078744823136768973900206569797599613585661903085590409672466892952045500454713938813995309305019124898159893660034074429873477842104279188265211688103711268024976566197531508924581386690931724983426958463021719974248903698613031253718208588783124730992464185917288949506606856697454642623274533376397901869438479539166237253151285965081129598693667876091469584325923328749694452351737553188079056771818106209372108537903942602000673167297981834351931783618368585158034881822251443957174999779015037131322060725474561945158984407283093485484860697913812619688102574336176715671376624581277423820099460502232319710091528436130667227041458481598933324244005218043353983492691615991443349927707806850912564973787535510977754471045321348416950210760889943888089466740735141359158527354324364114422873851120072831165075744709233139030427457695996835752776788265114999285094248531870416974374380911625622575855303280423474999889421716307780328290648991233345207293306588900302574538549925148592387074816666376193745226049116012967153052465664930380857942414975957604139201301772576465168025232317253609876808959133149052269845803105061052377355315369269010831184999986368854800244707740746308149659467812529734190007371856959228743549157762560538782509056153876634812989101268913768534410220214915459905393082852860058763086716600415531121255546382811202721430529188043622468025845003159840312799290843243429993134181405622583303126026037699138764087781144156274250242834767394688979520630368756792300496585983901667549800829967950426589942969906751326311015827669624772996738221536059114726758885249248866022274046516963618411472749464943903612162282932390023284313859875522322141782654037205282101235777202474461044367426865775408741635462416032310814972550078518602284817970969353467386809251909397240103935601849701893970139638715717396476630234303240154477165655431717512655789860635388437563588673740413238066603904193666644413216023297602295857216770907028184434708703316274497796335272438152268706896732106941987432644403482617524851918498471471629268593875448534340454083841341362235963026614400559590822542467285322073531359273766474888596928595475331909679586717633334901941262224892476849453150506483407267903430640854855851707511396585229746787721879996022983907618930465697164698833611834503814550775025678877854476405693136305591845662907659498389169543822980444071495603660261791504332514003022883259520934501806304974977385480916996465031758224855629648546511015247240907243500679297859526329480552915952152955199459014965116443589730149923146472529140594068759780423980428311577085353416193493817175796176105175290076863063007064526121857278892584806554070867859579954898700551253280484897408843487281390318664384902070117859452629268574406712306350184039596388032851154654728292904385800928083534081009327701741104585666220768824091866915758151233913923661920495837378312985155866689751937189862747834695670988188261070719686006571707751287187804844650637857509511268324546962186474518872185187147102672738200037452729332418782973870108818628706368996275769616125749961594597798352619068677127504438957889328286925548021712321147914054663418408223745473105738499132113480096691165053731227827379068879812256214591643919920663588252039925974022109798470074007659905117869719831748314093548098936094129016026901113267075408258411128897805161230412969268199562191483137436981295285112740098681928675224946525285031897149988402389804230353375454826182114292205588147659883451349292200385836459102839194971953080086710356759768218436996131390859288669217686389129790726777575321344045506817954048557500330521248641245588665280373584587400417679310339248991507431767837750820814336749535812409180687662184267491114232733737526615388040869303012267206265878628990384483444738340482974959247773986764087855723206224895132744876685704899165576823257688262117721152774624073047798146641409204249311145662055082123821207461610287832154106571503077019605710894998611957670872797243822794421155598222252515976982712634390829556967834181789640854820570943511859951187578061372102240613618315782821746192092897160855902184645379473133826520342209672310431721173963580549251359543612694299102754330099745139067890976066465150920492058110539529986275282656911260887061114589160301131023048065536058137064492150430702914013833982245515924044270811539439645191049298575538790408084295012869272382996084945476306520109866399915506800257561570792837402169543156178568734290612601859074551314300400054140479331284106199571809189089639175803576605419426382800141958952656490350181506139111842002221476966006887015768703484865416660836371098734233170696254827899792183139334532727120183353546281890994825832720559459834718324334826582060925403611191591732817371121221583797860941011111941054066972671169485062234959382280707916697985272945065939340969362517918634695850168908249020724228747751504054900529143496676776809369475124588931507740147940848284607899059377712440843882848215653498535982685330222025506316236690861811842673142593263055889984580947912633121983694106755280683934954522442694113707028226858562765785470704200973699976911504783495647935534020134877025837605441479818475236367155919414241311445187620992706383971795916729610036080412902465238690708077925707496347576258984011633135049439897893307308602792150599275685456577620738150520362244910038977627155100410384753300369502169992074121641239774483739100983667710019373752243975020151429567492738847183833136041325267163235456582997620620539980756998726478799218684384098532293247953598633397072583562464569512387233298137462349053746724117677754519089703463145628564655734819724171899136587857708166765972977109693785436483657596031225726540121956125495354046814215451532233134056206806974514476015353311343177316767179998714592723039248709380006951138432614744183165501016639314878764311442800782953447835478961949407570594599242836243917892480201566868012057992397550568036910406534983458246126410076647204105534774498452347415620950018205007064473274161229572468926968972479158601858551480648260785568401899810410609417950323233671597634550242607474273801519402875904544164015750724280750725785739664698475202236704700619826269087746947876750056694236536640886784698062921532084156925221251240737502147229942970803753301804777617473639349535398114647147925540552953892755241007399554179844589076119779171922903443033038120289780057807104091043692358992403919871433463570672391646330333998963028012163206924654651034046330115879895022029180724154590061568897714215417965197723516015028151109917596228772292453036207302088625578064434092599456240194725756424319878568855403565030202030185232560630773411637660433201286740098795897591600158848844764958015230523959506422996638625570397840475797450091836646164622593425995277258449602750012525522216119933286734492850598766827445912981288452620965889624208138582426814491087206894105089721486034174922414446695890930350566134381060549324030755803764826593160561028120760170319242831544363521691382843642292307150817206310700366980148799117136524902032747479117214057241047456654465245915120947672937289344268700576679342220220308149150107663836206202838525901712309699100265772718690743759662759710000803109923039739535329988786984380815636159079345724297724779317405979859736432688178725052602725507348894021179800309392896440112364730831487607392461685907650137599949183299094983801278856977681522694165827854739678475593806168875186689807364177889460567245528767413146104807827046596062113628687768008346760817309426732980211028242019780866233731728276893704355670762829368525821696738767505719577510195742530109521329626403222607942363806531404764773810737572971425666879044974360263105584438104422407170736802920218391964481544345860554807071086834633816752588411765960759583740624566835457350245940041272572628705584541502420585505637760653278866627629599665734562059570861653107364138084215731536199766423510617554959646535886846397420866800460252792591553697084452020962386090427045451580136690690775425318277948040381000028101540167983323844517819802211713682286704121160531065756133996216990025106203467408941732488197835233817740244627974848672562526529127699759840173421030126991810035798307858686797454888665326897436515106488106338115513764106093913145920744089650902955077085346376033809801432877519929473570552243626741760094453977644575293186974244081068516997469099297250624451188997600114319940729849206769834964405895195961161280946179873419058474425223685698891586688988609022530521563525776075342806102817704588898627328131905095675481326316259144679530224242346630717205063189751529157239003252619126039341434670471622944251223392827681879452881907339168063988081622065204216383969483094907894373566392740184125048775763461382585052552671909967121089865384901655849614475902067396432273952801743339030535325646094604805984387417328979058432398614373383511935981347208157368750709768441766399819702370664354783892272874295539305051475648203927997319802041601636190733469687195324343107305207879777804133400902594643690175609680107499317994328535941769690167629170616849370087773918542493740822609507340812211797530081539789449854822336004756452961842307669172014515355699608974848719536255756578991606344809477525414841838668166431672630891235839198277695781385163426774833471625958297543542131536791355430734161427468069583993854222335544454047343647024629752470983275366522531253854730470524456248907772039640794978182563187194360698700909240284314233338716353754859048652758232138281985213961129797777565247548314374538375954611797503931682703195590070929093408787321444768686761905635881868762140816800726829275964905323583128825769150548506414915326473081557688884185036376400982771178250840322060540144419927845886554914287574490696405445761248275526325005452131766358110202430867581863489997808304778254474294198298354372237742648914807878309073941036788091119756733814534256646380402564674043818003367289328661231914098169720719155379456942634822489435403007559641580326261502107274098023794832919059987797568167839266235616026408628140677837059868702171163280085725478553587514480218076872436424435522782467178305047456642875389468981996959039992126574570003676633517702183080227355101141006457110008656180189781965940523306680030281532884725396412927364665938082511627051497623901418804295766593447807065571391032878041523022093834559133402725245950620595360989749745022097463496993314532798142979219559059224009855428468234272736774033152828399751417268193623433325377417051762939625801740047550186398805803905164003525526131841853670456590463132915727429917486810560298813934443374610737271017499539242316729593811383269412620229863774387228010172696612277265471504608867735326569074476844890948014599062429564829487286613191942504818485399014133759653876711560974751031905126402624158005898071430634882991158216085720880160098795980627695427931879365581433943710657491497750133835851908528064507178255183193315064520268835486752586602613465341559415078860338209191549772930823364908174137602809421157815125056960135265294990350196488949657968998104174471042386207107818618507091713621924879308289596283583842986509119766096956573183160556508002212971655847480347521676216510749685836861121923163328872695966168684308190655418574650192368827029802601692165622196239323794771393933455115508182406864989988954324197923713402403781630979373370143456484354153924478841859726063752908232157413245097716341472610177843125712327895405536997394696897459274076517026917433852488228715748850309666630919507672425772416925443569793798688670213982962360973718655623529095765423900312194655681325846501895989498752586502982949590413362195924772559969594172429650197712983262816337715004213584535113215832905556706357420397097558948584147474586713011589222142988652698698447336720668512511471069880552296930518384771765310545364721559381046436367562876830119431000961556361179387013828457603860685624147716133730750120005144874155625028531994998410787108105940925162785983388465140677195598031323080793286017710641920784436976190319580404458137854747636072727676379750518027351638843291523702906558761694007317787344409321136819185921725603711314824646165177477234284452683502147960039091890017027271027340991010130058274602707595524265402321818575276126480065594726898261673965090354841280369904308797142345802703340141288553408536919003404744563435241895284877372238802768507282532912016507666410700956377505879272292755647238972000461799144828686506660851815314579916828391841072575522363534601428675027568233117939348404276502181542593707432517614495499902183128797894408815116386172313143273587045511512093195435246474112249264708164915458739628880618994699310249871946364222491377842907617817903954519643190867203955332043471588860442850986063707249858558323466467992185139984393848335586223738877098769544874641843881558069824488174751120733123771223750144814448149040172801237556592733120410548643264101637454240496128208735106306187513051843950116383643913060311803189913630556754991459900133352103209821373171914888228173003368052706310223251191752093530779802812618882989939269953280162752628916802387652375223018051983753839423572049947074983527464768663105036158891121902175888695623029449899649442134705987423151210767667444194871701618891008292755672494335836681690548973027389557148706273313139563222796555561792884820385858484200207313389497866877335198233781682755535546301251026993150647050951316130955316594421314681142164426201877629893540828613608260350954026493913230857947596469787508797802250388772262189139715434532675338743049622101627510236383097236486703920557273081083055021574416864011278134231036005186368568304943801988198111591201388320694728944892996652832732487036411681226483913000319374612255683169357095344444304358673146387208117858807692447023993958268064038865407988407067420164530501465473206822190042371114186693015280712677183874270433425263893815964312070049052644683166006142363993995396982116185175715605740190049764789969966968338985298634709951893533671796961407598186870816690207748836801244188666681246018883652058963048135199417446945803910786626290562971686153066765920964839590385358250536465124525023498738901822761463471766064592945288224861175433253665498250006796076485375414997291236097801291877916541116772042714003533035250622149061585439420935005004348486396493426616544391200293798645182209301513046475247773587988192843341161044948171212273615948397022717286309969991600207080360384029794644694868298762400093269540446876517338561286471382459148794864060137601774072878051516094418550220196360048032312328107259110238265878937785432930298761720883569700228474557170189608408865419307996772795494492858650280967274937721230926574563677537882151381531523462237350789788523847585235917261332711371966440404827723604159001101399178197245384017991133881440684289268629069529579059100401469707354869429282722165585716782672535724744685287292653798191436913558974990203802809044088888710590973002453765410833717278813802128202787733361891988389406757802464014921187486535787079725929886911571939391970321349126290870148463398489075432334077497217924523030894072980066231172325627313260041007154796943196472743428959927399330565350498376907172587980748479565565633191610861322188903283264977057668867396064723314924765140843175460287011386265380969479965657951818359265376544466205740534408750494525212758505238460099938141439426182563981829190121238828373052388837396026077615206238168898515616152581558059052905370411012951547797578904673291854484118738844550158456942108162309131201549790222698339192369985560259886934633260392464265421318279453829790223340237581540033518008644423408814734854902898264738288620634151469548205806528285082722896659580009786954510174508040961088276654734682576815570728789693296488152238940093888607539659765563942056597220221960837787915119827648748228423199327418795491305682646452898296718039871757529885307667125638209597360432751042654136661641809792826594507908270480990428816898861428996441337582895557440596352458395846226373871473765171104287351403389121307124352657980096801556559158080379816502468755821337366894817107510992153293283182124592333318939256871712013709628701780241212302454482604349655997186787400490857633676302864874069745012016077761569984907132946645357805161684204990318508768451866673096719348810894452031509524555740558279569392754546843308799871185231829187213677834959924307761546005346351325104424897941616851250275440743360980031643616274731174953278088085211702933377866577003869857881783519892253335877952560183141514496837172049722564168736803074876229649720389700877047474003804008666424760357663475664997754420484430856032080847378472366589863046377017635670356377933095675440353584862620654240295888992856492773089440718617960546519049498706687359902421139527033784662270445083488410885496460183238795798414975244871000466156146142147031515516456572782075788498920961436920585924273315316484620991211551928340357841893447895442440350378332926044849434761227331762429229614550667258796362464862610259605419019089575469311670560894163071463024862321732504917455949926471662088966567411564658409668088411011101882970368531028679249391203058620091654507480384832048409170896906491118078370126662768930371784014832692956811526635365478080880018356448234135903063236242475481336385245252633159611818326133682886190529849701190118650256349720570780391410112078778479996408267674765307171545628756540807255740937636842109396297726888184118856370109447956438007271933292046388723711748878254461569338141913941798400873604902161658855461009194987890183698989187433923030348368412753430955042834149806984546451759079057852184298131661807461183698588951948345133838519512582829203118371060857762835996927235785284686967586805569316253791303311287518482949358372424541250261208775379231628193976919067682738822561400190973827343930508689269014595601881245041515192948727604488415027591833866017711531217296917425535623107536127608501364318325706501247789812653703116663740574820717502671258002906801411476325133366487414541512405864375204768178069827379467930760108752057757077743324014847880230488336067099786783765546998702534484383211860037685558443094251831497393596010014322098773338172354243739817057834525632916234878913519650679491858660024583777476905142973745102216934906017937545774935419043632769850519968666152273728920946863126686685190170142350002487482331764240623694104222331103051952076085424447659557131503549650925924283597008641525584706082210974654771436165027445160477008992740292390425987429333045977735070646811651648980604820742110543161020975412900352229756589041121825535893552881845924538140597622891211325902825249463539959732607399293145758424269584483866240289894964065653133705996997286096158250230835021932705430312937398402902564565564213404430372372411464709031433732819555859660281312782992561798780720329287926102989514443155176993349884653611180240341498283439007990054931894572490064790604709446070774624368305624422523201954484542954166870510703654811355891800165933582337681033411181069788592893514634413816635839239557785847043458754338557133492623826836636989825389215316671426871678456775983497873437255179178708042383922511875395727012313269015217287223938696392464420808208289875476098822728199168641341845251735827326125206988923491032844398144759957073404004713502781532007869851062734460069850566011077277743983187357739784472668374057880885565503438594401108653735847158661977621357253125526351692447295796331319114170950415086032553517277370048717362344567504183838966835009449992249807197484929860006049610724151022002864487297862715520568847364775114062996097216074356763060912532492037653072427130897196468950388042534852728382132571846844368739389649360688809895748469238981776344423660851591772637990617105563175441456864865469678274965773777056131698014886937199514776818839232937631431405101673594455794471964406849352026214871584303811846153053677024264542464299818692818358572861569039324923333134164128006707118766919239222479443785559489829370035005397192906360135497132005830933735050822874208529556733576992534793585535553728933501208545031013306383042896106722053233894860696169485223292969643862400469858961055455176180387599200118489211071791975777572388505034924371695126813117323018938828586887927132089708012761959579870743178756351839167268727337796061342702872566295625698799284296241751034204688684943863820566239398012925161721690324922729722718522672673561644740822569226887038290323640808226581782377268757222304918199384186365355198807896923067386038407775316903130335664726954040321671533521785281796563197932361742928754830766741090996420102980306768139212497870381404410027972831208198419389160676032206338168909851981040292636421706733560550353747120771531785075279448430047692999750642088300912218866384179390238729912685657996232636069087280990129437554787403641749638529674635414531481909155123561543001390579460157055781358791759584742024440739325069018821027564688052072330451266414960872105830114556913625693830133442569178490791978975352535551321300615557581607657264495962786095248177116145025366976784599214531035949072432841058033660219631128999021345388754779357685176917490656998002660552006552289353058309022775422977934501547738556259390559133891501169975750611266558120331777761225579819433669153466143437828489694554603061635497182263364065381009134203178834759741167890813303948313147644883717040828014060015371259034240834486509024406772017968398050005079849538496182389422280975891722374473594178426161614720277550004097466658983804180658327776015390347607866418433170553199771013887996855525761894177465235071092664172420263509370487860415783865849574379987452342153304135419192143315620230655445448540313779710449100686756972388771412531749946216642394788317491468436450443243313721079654470017108246017080394144481185776618814949576287176714835333082837272779733486149013755061878221553123959109899041334365370289701472176715437832346418980014129147728424709663396072452201669027029217766803213953981475904953721915527326856390920882105772629093421429418215774497993568264238279595661436904880327241700679533756386271515671687472050313894019951039767185327860745314184542187366089443977132058583434425716410853583167373428982773448436649013711871606696344337752191476987108137122874345653160427944310512219751468665111055183897985290673240410232693983638810248976531382679933297471059695903238632738687194621361381981727444123082754804163983079960047239484038701241770830282628457576710413211482082135128316846889283839504023194183178111647845296433799425193500234756326153321085363094957869459574807183297220342477375300876704084681072236516103347300263202782254046521137899721995050302610489272628411820544922950141056279209052846808069775864469092180485232754211255998681685302103267205083134059477288504595921764390145577615459402860666565705696252373355052162966192425243198147437932343335677734312222114030575555232812569508272027004826932692043405319616944630943854175171752511229163131452988402754334497559629829060919342837257371610833023837612527657691103377656213176192858226677324089179233199507588849380068835197753691668715147196367246705502572554299289892570891727165324358258448310187815347778766071797967739472817325997734078303049523789748112873902753927975823082939875609717220899259964351326083324497702387278846260636643123177041761240301307017362181977696286517869782007753370336988243315283902702337018216615950262190832823930470181924557061421963662472419524990153644007597040788508866130252702195850679889977143787507341238417989126882169817640993783137105576976317590543535596423223796646870598507054602978668744031650132445357222751708361425756359673967149220343031635868530910565833787111383034043751578609734064701513730223398485386388320417484355286535416620875718599323048010516841229601227781478554805837097242975903942255648669048536124793694506639887450651037135280293605023163159023163345012074511941633533029136920629677505207387948137239465433216257949390793482260441324771287527447044766827042328608824280953691229074334351705684187623419059039028376937977664547631679205292412856062372447422729530099358008121557263225900166998414845143010713095466916781998145616531644731918673924355849262710316485120576527800894612343633805086390455962092900215307857969473717876005037460075684015211134799564171931861502988397398161697776071508886198163007088789867432039758731979586802706992409526053190009419246758202567396453417898036968614230015087533242643942917199288512221450051151637307612163260550325160507930816381054297892170339434341356486243597844021659895945530878071280655490305451544538180206602012971423592956670742830223894727275812476550039523445506023219655119439503490909592923563079743916053530078656929920705549125842947350558160316512163907968491559260167601998608347729827147467135458180859166482166081104683177942695095676866732465115296024244591791788390642290411998301110854589353820823750456469088531600613431984284377848752734087419812719515511058428780376397923073232588986109323119523631709033215260800587989401410589244964468940744437404232360950452440287858944003733970628853011034481857646612118868755693641295253388217960734892695098167994746852887484262291211842531255812692756709935728942456341346932498615585615246475835420739199340678446558066750850586275303893352737755497816421262344209681858047706613511798352738682650090870360874955543985705022570112941177817833551903679881642741216256186985566827762371968313532539459216088300260835098954850885304808767214897499878535475666903680130111687326017379978068417465275393049940490350269550365795656364398434531577183134199847814984028562402523946785596017295796705094666502388927957784000048159255708441324681698479830454377301394573134557385651451947945481780961572354226356094568443384153133147874576865083017705702018783063011139517981544631951646740778945387333095388492598147817130440921186742090061096657873499013776242224632067605634791267443418705282440376136258322478314016857998291907216470007689732751376437876752685608072225109459621466513460723747786286263279747993858866238170063401053751572187338784422684036345122277595191423685573901198947488313236872275715678016720697064481887660794079575086216693235575699908888099689345433966995108257105565853827377639442187332352133193238550898240770811567494351919500601322773750386592816590686906295146695390681049881922219644399456706887958983066959838618246053772253569061690620523891183791006500524547844216332831205435839665921497764247350302005850572794699091068288274259196409382749440765117827025841361191608500098932534573498501830449506577959882689760985307555159512665979803429214459451403742889987833857111960892531056784391966306213858337088217189182302022223863896209786215954544204955501914212966912941378551498949215204547131434710164222981907834474780976656716921166959663687044698176435333427493696518193443394834500682461310223721391947728354169329477300737280498842481531822763212195329239120245692697939261313835221663004441225611804571398502834122160004803142251305529811701647213965711373883539798868592682925526321134611227915604906919647520449706840455454864014364735678483426487717998145330827324358855829086624805202258829959789063618562337240904573491255711216694126560034963525667610258334840043042972130891811932856650242757305885209044027341299760289078639907006049902061424736371929517122098844685112523771028352143976319790649434072152709409426595359235812423539657765654015430654209480172628003725247565044907946353986412026706420339632600520292972286711958661420387403034578922520359939191509600087009573344103435538748319542562924027031808924654070819908127943245852489799964935425570586952961546428086454515106844454946143397659568496426032271945184656261101043133356982049905079192459239293965306373672719771904468154230162275297886519951932674534192709946093959914206806677071473782819295753478176131140915340522879801763853201151121302621252046135310436580563426630310637032078532478026787671164620987016665463249910663542333053927619804834392436748804120769462424227122554757828748307701492365280155046693937570478524940226874492347344925529668068012239938849063088040567959611514496047507848138447608339748859709113442681555286657857179299594217735510646102035962059603321584267542575186950505651186418970970539896919311467168890796697143259548080200297388173714331551973644110309085697119508842138318777176973121213905247854835876770554925717542220290184555786666715491970142260859799763890649626325074702359631323643375617564566436925487551024248291435774120016457533401524360248970823828847640057668169578953921278681624871707894343728542894576172633836067106358257017839156172455898318501128019028361637088068582679073979701504193738951669520343121680829657947950013450469753769298665188947314796562073351628925146017618460831560528830223145371490685246237957837747428117131638036065182737879326704703205565873136915544810907521649548949551721585230074060556434448485921148176418399634239367549759887087026064362113003104448302658459140326955644005735424767036642164835306703566380016516422628212659391113600802984215932432618940575679578537251996118951532515907982898689790194788733076646427749040839347804269492500021731795865580184834264972631596091680922288081206934641572513200254973255950247025039880643053382209428602945490340028964052988989918147413605443976670853071698958490993431022337558914086467256751000497071176275414736342982303395354249276381076908224441062911371120563773014117528195165921671419603012777206846837009429682020955690229392909268733902867147487828565390905562385994490441400416325575790973520684323529330243334723496867388517921916752590712515348316230044825484788127911092869638585142093715715375614728371366755223009216998805499704261694999986339143566627600040152403556275786199765301340829708992841943883753288191272273682674423411977983501381047088399900282578753952802899122397947198672205897495981495787081594243974699129176528354347738136514995993280871368791050756503022012911308602594522974614502147591470725783306111028657669183293137270074742274868070766923979003332090071188104737115686343156765524238607367800791744453089451812198015950011182714222332489135280339991483879517609506565135878946074178022245683633440261040630937346960656337882547786901102358948911715641811692938401854673783538892835218767964527072358807178273086492161245461502881134092722627021332287966477837783854735607200344233614937505646963510125454620049863299271882515197414916335754177249747131203044255870092292965256450359297482553666407564518535911825179945901802257163381560531468205244754633873239815661412392395507475914493377999557647379152703101572116373422736717873318019606742152420470767657287960977451200537083184200968791858900919751646540296333214125062845040114023543433713711513055312506636619921577317238053648810560055667929617958664690981721471154724155849869137719203315311335306398319589644633293455377133777564156472259565045592287561562426224283249290554983699662037418723323152879996181582357682691092008878034269821781518769881234205572013963872947670246713734619540130324674083806812000439160760906294829539928042931591130583010990811284044057335312921853459029702445552325165229169958575099202166917832987650341159095508735035537822180076581976278219892608752227396001490497344496720234748751233177395177647660875630882843803117946535975876698846875619901534140449394104330591850985828636098817231410357405128829737535808241475476712033921915122518530113331592667675873658583334124788446568206232836454860421028930412432395963740068733363430397258159921623954032165527198021716693526426267115496281385589362917840023160266578808630429647514232610620328563330765336851142101479155810828575510546385857732872975156106472071496855880539095611798290351010976889909549300440897322896552176115527014255907483127075632665597615831395551703888431066290455513209009800011763525083762689543874415153149275198886646266826262099144029566142303892121090542647422334578570657004755882096466048955623030522275089229280823669684099144036886306090003768329751862476757370657034908587282879623454690341387395712458714877097714629615744217908692129717101062332029820202523834920042999179277809329568560865288344500234846259122369450294498758181763797147899237073933073997865577471702760248457712275236017013343278227553630830975592750531649833374438818735343551562873667923228467477943297654482239107368568852049391471334319593926919270265596531186121815473812017580812815607832024289268000956713023846170065622659369674978077077059341051599590054778525775753712280718296276692663400797707747266665368680453857033190069061520198818294426127422477335557460193044594088733704212249064969010160422137941656462748632182053120149016960599881704720139132241575048350449884698803057723722929452020719343526725332592750452277323048944283303244077001329969801263294244772136556656754377951686628283851793085635010385857883457500518971586668539902381669165528101532026031734091695717204949860206468283408156603728032949070926616816672854465722291598635792536346988877914849227405927397908956786612755784528410233022502118080394831572250940748966383530136539349179547352737075190526127751003843854516338656185604421882737636148074928429301851103459947099095551553860424456508184580689782082690119875402877603356685803020133454647520153791642427854974301205166132850114617712278243090983836539287541917787430912407511151500018783099039136846844898587469919436640380535541700917705715956604051310369349958768003646662477293696664079455515589717402121292161464316240352807002267115760218333334334990990704816711962226791035379129970676506825869513630925995806841209780582622508173799822694635871755110386805261517669174564861027118852484769678523044724836842714050259185620427246347850601334166463760486716993503941228042995560824269788806484892300929545916666667318309411415945377362779879070028630487398449762807765956253833602892419370857658317461468668983087845259190417615709259606479016531985933199882092218224716910440215724272320706873172986395527654479006815224307251146598870761420862868526226707966248448728300664562929943526346337602850369375755529724377221171839536980012029811754988655925014636483007565783528692760092767416683030368290049154995867576769296803078086834927537881375614753310305190603842092606714691111752483260865005514812447273038800600386325267682033374945992440243456543917823965380868217874151970908281500296603655843722281694269932737580021910307599913516675803032774812841533607469009899523142125361109227810483023701565802309181700906892717474541863390813369822427142705015639760368301156694644709538232553702957435602258048112301453819219730127558121722007279481350787309049405641895265566440231326706334068768670538462266542887937247139664905672910666319456827342837829464556378143131416444638073189926091185979943057298327901094932624419905091884574147836230445929049864891622443144996631815145315720441244059504235343425930119830079137764182430702727754432704654898342337351762494041058461190825552391381353423450948386222567934645432761741395289771167651187032016289255328366836151412777887508949775780190410996837264313526349627827006770125771053031778365645532228525740584208607765737546366583580655112633654602267447510710717252989795212618596210807341870594248611680873264895563532190239719094719855273714229457506834715579873742691599189718886330903217005192919646694030918308576911723418629628310268025541088084325744118860639509660817183042278899191087941117975409783532519631115808573878037572673467472117210119814953138590951343221331203896914528176705964785406746991313232633955450086272998820879885942116482867860024949544980141684313578774935545201159044842872800374154587300347696049734746005087609294436362812630601454662185477326038765789882642212350408852962770576021683188179331975035979897945486733714280615857756615058533563221370730192689821540845614334248054696240662140215376945716059361727861247321973474699608835718030652219381121506947399252371313913137122516312969825161524182929633397838614948190265707348959282991474106962100799884450993001958250632734770770891366823173139353777814000869117243512845478819273139400947481211216909408928049953861762177487116435376259101656966954143820049886609972181861629901147330348306325386687374683984215699701619948489495519133088439714952121857115863841985418216883739443381346996777055952888430508453023577747499579377133433049220046845166511087695932073755379349717776442005259267949647421552841075250135872134908733791595550489258980850544880666363890296296398671247670403873497729639068750737781822420518241132092277834341604186959014768159285777519564281105101579308241387612285797454360104300577686300496488266816925030944035588791330912941266913824107088952023711891351675789594211440545481492977450191157851254873485970517573409867940521377394046102392661741844686105840836514041860906739225970890026140567397277018327792491874026748004466163571166931593485689123499558284588345989716287365203976638134769173976479471696741912495864319582847388792069788225754220499784497276110719304099573086772462130785480150843967012204166148812774500565499641179415343466240693574101277480073856725999843603231235979939292560004542407844476545835291006824537821578041914717643576779849511856987713702547724907449535217476431121184606676972444447558395617218120508422228311456747817965370390263249523126736335992379194882393389523275095609908141670326431327005610571249507125365061266251563821205715692810275617575321192883434520387436527256930769810304103050330494102509016795269387618676510900979517276374372199457779358581392856844112598465019142414570793279465966562722648046945611680774418604555912875553654988809127856245267877330327592244311386251866195954642797229673275983584696135528077105725479240759752898965141010986382516730398801415834777425140403301690941439827226181231627104618860611430095338822715495818648221921465734285216493454254219131327879159188659195700410310952832117784001042035990607039221548267886959059618034930375638623617306216155046894938184493659269936996428207710682619556092752554611470935899108259576232393314883046572605831938365770913970996244764342350616210773676730671450463285525534536824085819556149396660968780371881786158301006758396040042827868367892942551214115800182879740777201959826755151160333548513703917263274623644701143046490950071175548473956142412766748546011725671930402025443237016449924792894736506562309859286645255430165463920845689401052956157586614129535354875816252608113795448248928372046450982009251289459356355342038779337291550851183555565596271342631706276989308961212596006580514266742386019004179455235636498219563373310722528481699455898156526724664746503982918486381752050055009742644121209522500729426968538779456372211532982130613587837234116765769961890446791917823806831287544919996882220553768431973102248917596785251468072569007814906896414556368250451567153143097620831664979192983740788665601916461737671981101543497090899211317241823493004996943086390681984431068886393318716963790567739427955150376892114249123909826750788406169081837874597794945715425900359611097252846494523888706622183431957196637399536194373904125136456592098555946685564548742358725057947808279812283318227146311628889024815882628409881775173712574982612585693629633742477512040472385333905121542253930606835234730900745453610303101232451288910642432885205388810201468969371736983174040465961440424101245245781766746688496363664940897502460129286925080324423150139705856079443163170644220364364102603348566131081710955863268257827813210706332236958022013681745261372069417398001907368891370768854719470230901282288219401215774409326520121308420689709168152582087097733033593604560535324513444127158558853038276930457431498873617098215181315795869704852817935357871973627106195239319852615222519324756740566901255021089149618255918150081617507329239407657745672638606733319808558917974168443911696327924990928647715236679761416466677269223459657726535161725270485166363782536977573281106021106692680038549178206204555855789103745374744380917199403038699806298566637753663230899995406752456802072531155927909268849316016882401500294978085665889215631569429984289806483371418729760720638923136903421785507266985572949193466478843681269775396273519528043005379435100443535391200015711330908306383572201288046662578168967829216987017756639804794077336478751657265010887292886777084296763249175351291672231954346720535511868853025661614859416279505420859986379069519822185408274996909664742160427689314268778225736379319522353310014729123830046664242847524209389446962760493988817705902575125105505715670986026879342641827197918390343229149219519908404821008239511713011445776144038477625812301216956712044181356010667535237109345218806702660598353861809169227272394803732026585496009754574355869338064145272578773792700153290545807085901824596718839906017679608508744439713601079042862289512349654735297129050714970419956367412694925970447749435276625757886460905724391653976099228444347636869107502478208846443226813578779416644697562198277780327882365511680751718242688828941048366604661444666084519814544484189009900609775614046322615400662938189318628342973904000975737065533359239781329752136466204685731368738350884063906910989857995244819605263481887778305762295521694973577971401945091522073388957146672065566396692168104989869251618867402039970155555797963548611858171409579881737933242519750992190350987342010605537656535555995648356710054895187292289220805255317157226738727546530398798417049600364641747792189924354212666144053376172332625754733001882733455488488995573140607358674751845358690736963724991902186477903385741600925436324941390489455345522569124028670068299359737092120248491151285109346955890642857676368328420284133136754501242072524326005280531484867946347287500000479843292332292771676814018967672623561112694756833620543831173028725843446461411481963329517131479158715080439855002071285375156746280386835383652150663030628154530240241724686416058108049606282690522546292260592679061641375703204544628887450788840491750568816103296781558964289674831110902057431098475747902235283707625884382259925336465863847200097932112459245648860778326799325140655767567844508805250769207249867788249791661364751942866290620987576888063855076672016622350541395237188408424077999940640180971481166851682539261414832499356849199998252027623609075838582003839854007641064501561109149878926531388015065173564698279291493693757573824156116842164386828131868208216686488641007909369288804965161907257948954508396000864095981262993675505085854382653761792641636060735140526478392496492775596398963114258982315799374162368586373730182784713845803294026413233835358624696798913606522034112470161804496169621514598160512811941057364859741836280772253926469068506078348654989719181723787646564406834276354371998519501504209932666844075420022344211121796548054434817183820148584271192267433409487981144551495215470012495887122086927138564813996585469162544407179130185771779175379236400184946856243812289393488775628948196767620296604623810767887620443148154081352616916067309870123124306228319907665913512863659725745949969321892798938801994388491380933035604410296996337951243798221550237159056840246927057936142414727361192245799337191787957097883967567697572002795409167418399776884021765095860582572124831048602662306558028917907899971582579064822841295299415160050101986576553428189969161379534743977053860136643531675742846946048151422265710670526753976096762691893821339668140562642006992619093308243583779876585263466010909861460077724354159159259958169394439690673369627592235743470554061094815659754228596565710923810560700297281862453475512390352604034567863063633374902646796937792882731976918488929482373939674103098142961116871053523294607787469510718277723557345612757137492409811311878726767733647515904757516777882262884337425732387419707692854861555238342851589583842294239973174056202367208178540069498536571809990454723048472126289394895334678232176852909672463559052008995553285674917602788108140046965848950289728921340492067576822773501195711967353862735047214121704757148008047946591080684963182991948119037535022537941731094610837708537758513447233974493845531898438915617850526596252725186678529947559405978273350161864560170044632040313212370464114846724528911687283279366594220382482134511137406834328901617355367667709338291968089946820466603894716925081615488335829788977635659868030619993477925248662776070650536556046397538658755936982502515455225150328083552968762843543495848916377965794957982119340684284303450040487826791866496330303394778228632157965696025725282835560336873709734550183850512002924873329079126630452470676061586368326042769766626322019749993234893984445474197998805291978379680162788385580309719306277153864737890640653147679805748470118621915757660271463324029440088768026582796258248334241009852811728070835613231030657485204429283118913825088217408635949337472586516012799170135574894153910757390085472047692110595733968906024514540464174810473013346169711159674471172350960794953649053201807024935387063706284949552137651401369874313479961744801667550662070943890137276686700412880318443039780739078597968127981571979576843885589877427707330564922223298605332819850766044650620340752897011157054929848718202488248288782983380709224044701502688491457126984813317916530911734669113662482507912928905215613533211311498968354076155125924210840124749038830372273700888122150836718125162740561350898717285810337556935513056950674206905723729382769471816163375735508405904579347805302203917634195711796691341699378883378267747202802596356752683011074389030565889140750423369682976082660199867928212862310178579075985164183690024917725609578810353602681214764816338813398869097390677823204234528962663625412968470990372461074686720599968997771058784759312301396092944313556202871068209210802476177166609570873813620511118936188300854200966334963424805025917253381849815876877064476710355951765354070012795374415554108749443736109889719257960229579146851177464793773331896510269526214398262792895908821041714133132730222373397949565822276151785975703285249896421961630511629478408004334593811251232400282358577832443585954636576377225496327871959926252584787703458514879857796068487040828712070668283084343649606248436030945584165684327582018117693233418381146083452365243036035193661094389216877272863210645045580024676496603285379548885929215725590012352551245120180380368348441820562812724138034137968711199153591855732442687088785949851563834226579060756547600385014161869116355472737467922820114722363346013277075664636040259052986610351448191080823818882594831275922583888486289672886283587443103969891832055111031020504735101973938249866702807807783978906817737224808917139322842264983742735142861506329205695928062420564741583896820912304552180445696906375511772461863085403973227605810937938654469611701394649553201040577129737707224712944093951200413588752213346220341795593789284004270245026028192869223666381576103141010161230595739033560756577241495772778569108762523817992926608812364778086311582109728181284967516816179577754199776961033851385864201041781889453441796153289965269222664167497583313751985160810493197305153840608296622825192258672920064270066487334467797289142936771408913089585179525189339827347254979026319721090556675024084521609776290927127012056097217666879328002553357504193267698307957996971879346771368265118751965070169388324302852234438754034333768008200747749245409653372684179043551663766884466023444588791920943889697511220358400609530175920935540856517521807640902080234856995768634979764662737922266290110089781815881945196535975543137375701382474239021538048790948054279116752009757187067600815176038592649882557002065744189359795517485581738496080200591722593329918270673473752148797613156132845248999664343665245791928014967147688839644081849993460114581843955068361874001021858974390671211163232490424414874832072534303691663704441827990547580251297562997132195165493253340424634571948021899558359803426050066954560919819585472759816939686523360875411456310641765596927443368649124025420918444069391300145219934409531077862034310457696178763394545836738133579107618209689762729442570706575486926166223400478043894108189428390650059370629393878468055861927616906991778738697424617856398499478238865811908402142671308083070784738391549499735227279384583463513245005160059137880022438572250958925868166827522996021791140340788480120642988837285579490945899655620239783414470502423511153936532522985710629791309131735147012555015486206835067323430606217618760046349478673653437976836260482195734655627314014817992347307977778144293903811045672205335042808329697485282935026578807218532522131461687528256997280630929545273498092290848186723093399667893450347470829117031202095359067291852172928994849973605083848628297929071050526361507479876064754344967758097567224980819927675913185810537240243502885541089628789704370703224073332713830165828224658133602078541221354085729176039885200326280297067907770270858093476015718676499444938780824052283277203998555219954176455342590599976966033272228482967702069518763379550074569078181412860500012254743500703178944389242353561406321422596401475039485200582586279656242373337702807728267451313022140788569577159428395396215604183112875604922452288461207926930750365847647691931858061825639622543653094066543950724379133958022664465891079837270602941967488007980649151958373164370977925414735432368704301442695216892348138877679820787028964696406798418275142774948061082175853019159626370391861770698165311849976382188885771929827382785811540292650072562260107265147656335494658599546749362908722448604330604587370968756133355902088653834449406263683996405942586217082488505485957483960544184478950468013182973590941300416012406264514244133601789531648361214761770355132834006945558804894010633343090030028293729816906607500337247655629220530087928481684987688637337092097199666251768280348061780016022711832357288566216111761521100397447522715942998593524421888044577542038087990818626608401101520963673898739110082032118656911357977616197361303499940000052758820807558164926389182047877856384919572253088124111482719935508578729622140083130006968638341110395711439339169603459207263457887696461287923007044396080107295950460622736501196696446546123630472801795125552961375214080962246126751779053242845061622964745701894956581675335233018026167379671767190558715423082722720820456131789417872856709919653515415143190867545754688325048398923969848212000891516295055717581565825879828231936886557782642857446456257773478202771389325457596653066883303296702423454536937413370462178772053333121996921962876167484104264524203529429091507586978378192150591534000910627384597677345085633434637383737098694694148047511472826110463547028127995200317005074891702599832546736365422413148897503047189638687811950485687823982643954405520383658023378302411635079781983065602505405183765364471637030782408845222896978434262027860686394880449955781856210479541913500811889796845039136013830534076853326807107569858749559090862385078642795811012811674784212338258181849574484851502915271914201187017936196952756778737106903070832454065137740185309881869695668874007025187873996004483277812555909876960033907985033208864017287622054553348571831335934308116360106871130721383519972831797793221514790252584035231432493919720158651522983062588561463371739615350717615062399404186553101194771116483961485890319590354599568811116248224488055149896896967465416319057294254508415152538945926966009789293121623626025575635260160172419465470030930137127230491591241905466833491677051947736787269325934227759166162698998150200674733413159778964709494454944889380211464331978694313764773984950476893158191846378907887126356481193567108163029578333883149490029905352496490539213826088412627584655260809759727285167018619023524781381118941495419187267836004530932239365529656046785401383721896613784086856952242968851917411456156225272979226734234062163384110596322217093266151374389155422867275891927998613102974305292156606364639516519317291164657630344546343358550032075953697964054392721803663615916977359182761516039873145727676386918943434717381096600154977741225405326413916551963279872871165855030473556569941881187566119456365166124990438951648279493999166645255862669876315891539236855136242061820805319008006589874633568038423499387282899649944719276246271152671420630323261709909607750349830798717956530324817921523986468410051971328054713936411066685891727541516684181804731192558879082318210319824805250835285681922868118461652523950896262534507663596389755389305805840950402717934445635384606445859319490824838909397082255263890230712657897470081225095272580531836204692745671766987672733669003041603666031941373012267362612046324181539098263810610975439024924035177151750013055933919478465433173574212459212855464025989093790126766554212321899458338899714327882669159883011687388170872601288495994012366115040862652295942656511669858340528193221669541545079916170430513117792530301231253015649921080704521270859396734577887462896669913667963257402654197369262034738520705272951132521586262077028989688573208852912444973884470941691692064895100525772231814998206611474121208351127579754938940129775460278825591022598770080692789115608488889371962601847317070036756072491801802262176629870245692651865964461142368914510653237802285585412395422222064544401490493630036702821529949897765408038754935671515565016768757222697374389207670930436640985662573991538050342365175021617068008651937257265103325163320176396426769591398190387066288445291497180879749961304847878574963694066736753553123672515693368371263706366017331976366981145836477079085357981155982552790767709006353174486406872282787670240414495761499143648909451843574508828586188575723269224186328757457998711809024829386926871453930199079956902201820353758604494749690919306670640578000212965127227113752894978035567836552804345796580695291266955640031435397975837733367198706605010364995393289166177638180061405405150534062927516826796710827300470440010140738837740779075799166932512854397237207183353932758321561226251266882217773806227670888902072346489736876570940350877725431650734542368431599144610598739796802602589800637056737284269477004009883937549868104534078340342008751092316138903375855463363784838292344159385303522777269536518756701327196576098664393755646573982922130541250480820021899912828289905606628756034144792996954281158227517488990252365502534354667910764994186683965332731215290421095937661288805954635649876434294414535808688461892501782878749118562649625644970585984613984333641154593871637024473342006058183430757234517727666333710588558982666200088662033339336061876822138404497501679186417119048407984905861722454285062437408862116722261806469314939308002046465439341928566951705870199566325617451162646557959785147048094282103975438322001780367212007575107928878464975242814256621928750042194908857972553969801034988866905603566294530136943700914151435452054887811061797896061526862646997271578792437714641134867361139275303672275617100847398559408625540264672276935384532252749517738196496160110260163634998995335303401936123746101580049024250519024811591399860674408553893664130102808105711862715236349418450244065981070269348946542219235324843253513715691401102630369559823727465917490320779666154391189906475232857368570711767660625183965861857851514931598259480709752186894434642463851646506865319932412157237822947847056429680010240358009491488849431453111562094874690388701823072775600574413065457142792208505939018199940866974648775761004958413536961630584726254784469867313996670833362362336413859050153425703728332787816294427480786728162438130123167964165382651916378733204107024874829686861345711714232185548103957289450450383022792064594661197873579877703669420448338154813785550963528751806447814203624967537961297165574806612885687803637823009555333861116471194754916941052510911849349951847406749295478697502410107919593015262628258056710122844178893200374333324994996812319096124322193173960306934858645324518687674120163057762045366629948473188066479947280786860874845084051502475310962755158124799362164774112032658847853142631024045177758818158385019333325443674366916220165896354170561651009857471697275110754692080594776812151114708742661639490996721648326852955914481287037182211037569403158731673962949955875512990182663799792050957406502964950037527254845329405278952431089552291011529836867452590101395196969131914500772913803549322933137684212443714097947248246472692997403538895770961368533927270051926273255811688140682881276230250131903863277973172687256679371719386099838402476947884559441034455906802234550037803796506802064793752763404401028344698319361789158052710724142895142537803500298970018053539844759367652971708752330131403650270993656634413430922191191343379354842268716092328482155150646688250209197590014206736980589505329724430368683723163387597951713035462645873131480311672234488974052783856712681482435507872794557804789455224246735364290536557313631534495629785377429656192808304960755188833424489206217439163995571489995316559918274043907931222443642190676979671483392291170362023727769617703371352176551474143178548122530016103135168663166196886807608163813083953698330430365434586670101235145019402375893636263600139380117533641744775664957494186092679827593694453472774372182850110402378666920910309910336442627179947539618385237469230901352911720161630105981017761817086443068861630721773645162657248996664304104077295130042794431617626457750709446247995140468804091078679954988079826518459486784576436087069921407584485802743799638306957355993563128716585955404637660837603268852563314851641492721057115088850568686285532766838415631238300171549861898067015726601668784943561077120536669180266245659300966177074047009900449128125581856202609475634312924238600304966919231837802152821959991555152611788738625252952119399560531534781644337575411055882017548019596314667676528100083964708480718237198620420293714696506902642042024374036030018481490894824676291959685219920766652228514073840831080455404541535634346080162434931613932316843866155935446158442311063234762523944967860109248223761314944717465878199605429496222859456253416422194945514005888654161870862696671793973883618636906052952201232026190806678520220681427795688110598726983016668909085450222222753711304871107483912247587141133457979883644883120067688605146114040735853986300771498699664843063939173843254034699748661822812630433102082839371019882913655866984045761508429467414931442309758836739101007397749556501891453506300203845659934984114630169354950657617073018276958658327419647472489617875824167253862713096483459935233336059361514230902491817218252216669310630465371653144710050064557863334693146155186377885359929741169998943123377677433747220438656663631358598459222441225769707035232857144286827849630624268785699637408830055083270385614765639700954961825641375035052615588373582867495649014088817121214719495798340890167318848871864940407468718958598953621514179937780928569045411173810836089248129940832528828511334395269671337921586979917056566672096819722829445863508966281529812340962868360150950628800590738983488032348687429176327802970123350258019341216875330582310892561010718030295141203382467368931065400318387344546268925853927557577556016729975351860147341315771787993993830232209094388048182837368712056943208143455027721061548434620899918912548625593224852034978435405668035085920789459359159855137517981958739609672910927532312558087357551883187812420409197033162574506747766860330304835052284113272604618914949715070819333864269487300142024892154735083643516389933177839174686973360172693229300132537615767426033331304433633895814377306482394249954709798437088203298683596106421400316551636667351925088527084386525682101282291811991730706920863895391427448820929946355394577160427785442336284933530278115088155910280651056920822908057246186923503245459231441887663019926547331471683227477779082634311171571971669421483491546553975548823010465295077738044021153863726492282248212633168564427968744798525807384722681446186899809173919263103727548028443544844060089071941842603040647360660521071283428212897081614156200942788447426218546322367567464367939569805000718328403920874730175058103654340232468766365671273419561651093221354447287919093832944496858441576048463432325098059433374377738824913276429912999806714778544503315508514406798953781956801762663896919682030033169427852015535920950921032491740412067124361822121462834910498710205228834955264340553885777500339575046356889667985743133012274026858948380264857447358821515532089428579077080850227238723525942740152071503540960787694447657850308808705048554959318984182164084635209443519707571285908200981741077618865711486733690010661699074783882788956822309363566839847102090028710417906177885377032571010985652524936834070624745246223646707524137559578079702982670351482004424100120523574976173261421658948568612409676696742398521053113736732040592803887515750991914835677175077035193443142409693436900596275751617368129971293994880602176122630413895154409511680662403163759569732229585720791155609255042749973557537811130138808044882487758957024556929948747315622602464016875390381399002931389634990736492266681519591726645196078203978581183778411000013961425508407838302181658430039028483435973914082963521961074909980112931798963498896481425505356477122444646160205703779944302676130131868393524584897753650046792043653200921009270328759182384841887688467884304577017783757222619425576759845495662107161288773474605465915728284296265589817321009002625917124992492228611297243874365444552393257611039447444897533375411876908943676420054225325807199714148158442181142225541872182377448701482950452574688107901571325222944586969435845857035785857593628115921782600602419461730114448201817206096228455900597018256140847390293915029706264379087800555809842398837289431598372178133989923733606298718221160006651926332990090244570758848971251891560106373847321688688708529607290127903334296277329221874094554197593321461842781326647419286617872952870797512639066135261275267209192844076457161164860209831340974488105687270441462411471434839767200647731664503876446568033493524732140145444751815632279354176176135672834771069097849290415693970313454167038398527986839456378530241528171359977546979468300178421767284760487474800808986350990676156779414502345424673479272333966685473337425986055323283246911168533134241448190970710868359955643531101373595036125513200458580427498700897925947565191507324813796275751130270700135401064918140000347503774484297180927087522485902254449572109909558409000354589325666225129948904421398129550068475640854318733508602511814216275366000337808087684612624383263996859387160980700792479762119128337542759738817641019599473146348150098643162402122789947803879364389690179386911880068596939466891957628176722771815112536421331992441018820639950079609793768783129986247633426856704966360010546066944363965446313013705582536442094285360734262741545328503775569405029241424770471324711475440355231443648180236571948883949747663997461640213254447765017116195285361308413107005054829741958473263628073516003333339945990054762755813171756453728821479787191163936052118753345893091785326022893014689409984624165406298902546963394627364686201496934164566573863123042424451948421342718138972525805660027303072297223523308723561115617466733805382180354836589304187846287841683287016973615216755221859090543365870165956335564814902098195040936792310655492043500196596392983998578561081608638621221774173411869741834866954511822867231625262861520720431140979635286965326613446652557925525951097822167181178779980112205255426564358778605188184969378893096014388749004043554945192882662014623932573530920689179663071808235933003428005331608602525400635192126836518819658668727554960811158146875355419442380051879413071245147830239845691685939549402911259658703663008758888647995683216295653229519632738422101377830763248463450318439972853973513537219984614203501406441426129571343376514762012193904100993939783158736739579882989805423730390802400694659981725589311155330259846194476984560369105810283801157530659069496505006707222387982652204710412093878243750756520412407602781995996940483889237867352583395303970313268488315269573962609377331950532593773195788629148577652593201109136852156417101932645519309139434056704293904270764129678977115630791173332056262313811108957605825325735167081110816201930596964809327342769685501919248652239637287065080700921377634493148194080416539887346566257435191465679706988571189731886124347423119723072484915444401114496032723228024379421553166701848369417575258937029197050870091254105333679644903246541860581402567530685494015369401667354883571529036401644717831868621573978885495407280112389843843671198219762266527778641555293456496892270945094750364779446087512842165954463052084076016263129506157963697223538228058332643331190852452879294629028544722626374851111302695320482385406798682044325524078552926545506877497652122567577476126823673069522601045007304892247105295060140829815064841438082842952240126979993206001294986431230080416409704969609868853036159192026675353211315900709032064279443115888146127808657045874417418585781681020070554027437913565907047790914495035281206788659594065555203782980749161114006620279676185632318697614539396432119148830661643521174783869383271913314688891260135358870148929834607208501437848353591325019617490495377532461773747494076499576877046306270869981591356708456662836865777678106208985105345301266487716197316108696950900270090170937294010061845656429359770690797848294672808830002207519063226364377316454362680856727879169055009466036510125947757954672037170954111218633425592255677156996782318960637144850523106725924948430950698307000321287370310388890599383024410023684151656342920921442936502676249184022015391047061720293180486447128666382556969897973762855940308517811063365689712493381320829003698921303612428859943309153391544301699081069608816958095597870302428177454206459971880276387908471666876723058675169898103292634299808193888256746420978324167307432914795363414803834461036908270661521057741853357620359236479648019423120112332449545641859421674921928411414100043052665894249749024709471950361887225274723157298181010368153742148385518867348671838687403248616383303876595115142485531816645911993432643791635989042030836469064108611946775195288173205278237749460771134974941488298547538635425509340520317376515625255796701267503380082057322230717175536780074786485452446096287319284997857559009703803122478559739981357994953168972593738362421697097776584202669567989893233512703024979815107044089919053852302369789119385894197477370221037778314522081782947554998805101395852817374274088598918358837388884804324682569258291867302916994122357743479223251676389182030011080840060235005275371544808135988229058105452335339474132268988160696137708985483483237044703887902779928672552381596951690194246896207775921686939932952460784969314018608256731844674055949689754447994407335223108922977920251196981929886937351398222698300442275132097823276794963204812165712294159178503413466561414892786662300663823117660738819385417685151393385556768246119061229709119814162499106765803103870661914902352571418230092302074717761688454519296328241607800051089607272150869602535874700211469389587537765648999545333272077139499145097718948948982668472688604200743585520896862838241197540180218404716548294566864686407102584649200718612246360917615507962879617795822023707236880191802529256289221144836704370615177123643334132938574812217163839916599847570634996903860326246947404512875501311780178425838353392693309233848010215328662599553479769897465178508959064570039928006753783842001064112466623780543547219890686371224761772016223291189729764306342549429736527320283346754085346579064782868802041023197502285296056658846022128086564961715465718629896444114013930032538440116950309485042087157331808377911616331494259920370226442837098612760169261952250930685043072980940738694793807690466552020460569488808007210186828823720816291206778334257005416728072566720460625292316166538517139153029475920759370700955824341937513657337304879457124437058255133104451410689420139605793458332406718593848066289747643650537792686469671897981569542526038485435253317214660432398756492396900555109256890991726212667909039514652796272878615609050934872031989101716002918806278147349820447791138553443725935747210644986947734328217104481193591381380869873297784769404879341539884139545185652416885849501083909809185184745151655338310852724955095180343608661462657952486759661755336132352260242449386779422093147816087983633999037326789641306233392727825423876841517491481961140313998956798325225463172343861645834370256710818283691722889405412962640969237277007765773194207244791583422616899745075133046033874601519732624248410284568776375160293864564333497401943665028522418443625892130103826541240719771367464246237537668375248000336064298954008665054902026522620082513857866527531708418562937139148893471059226574855133965266819430217937125790324989148177928878819164693262078909668859400366493671271646166457107973564640969938306834266405951569073223918828202913489636236626717305388107308062882609038930842502201872134501405023669638259599881632445941237789026573986533431064881480943648220965630738194180670574018397451894559726630188184650576207170708365820826919545747855669589418583986620236109615854458782409344460092220804709721709596231880450973299903824669659058178762403793399259378814772106989853969745612742109522653312746011783218831008030749955215196040795764146599928901477203983434747858324556194806546008935249299649612909750623665497164108364002162273611674692837735401149859609732556620174941446492406898970824491794351710045740588349535041746503814589203971647233780795868735865904498763062123934253195424228782177559483966379928545883630080546839228936172103757903478402854995624952367410003904087396590692076015958884288090508253204381687701436651660155226396101023738769230440766309573776930959716739832869906166027316197879036397460053648508782638159562872208903578343649374500220043327620903354344807224685955599408456187767165878463099019534572664795718807028200424895596789050689197579314157762237098745379659491013297206733886220666613876382154492973131850444286340183609330275320077739749735908983453841068493922685666042100237244623658699737820454610042023287347259643590775322232872470858479556391643373829573250427293997702396661180643754600802401503436748532391754898535814407497940251615300356504935992888314251254744153566097964680753218587423725953834832812478475100063150845440858293737249054191898090739424996010420827584343141323056577804598799143984484226410351536282798797013455493085733013958384994257116974601293689038729097709725427813386315792176485877209993428283924540800336460422768392451728789249225051757159565305212153324753048224447805567478429754198629245174186199287300183192072642513000742329835327673026537132342619593167355935570746245910244420255750925562739353088925523379820160738385560536494327493919712892519538937806975235116226120830517110584028623030796026441337192202790066610837846962744287285458798557062431995710078227639417404316531665675663669640665730852908948004705446086224440678245894895958225626297186782942393007481762269871435372693904841486693409118857981633768348031751994865579934773317190829576525477585002436974815372312665472259597595077975925309221776877956852486798633274867845171384651478784323553503662725111157048765095642572809388144260913973346697132030828723234199915193742967033113696637821685753647229891235485385813084319980822836958100992178058973583346872584579645924378329453890534317836638613239422751514732027003735318477384627757576946714874574693326079621082608083556046905668770856520551400528916545541451411845458690200027458180338381112025836109588613320259996408708209993791652826914918893517637195454026845255674750122681514044349854713807136856166116498493076241834823761699643434840229510242489828265981846337318546311068021156467726529968467781304911309399687383839256487540704251809043319946312974768063505274262276802175492655559874859279574578259826217467955615876883768494321655926758983353547867161655859719549579415280526288151149419226346433188625632811276686310183654424846447989800338489111706006775370190505692721365070089629606560361131656309282831357936965582505247810978092671456386958423854565428526113914743787924262649799706929123092058713191069362046031741182822401871882695887835550270766609763125533349796683142142399253944687360387110341249019911644031307481384526827485478189387866121968809507521387162804423138695569409889109878511838832751862157026592817256229878157430354516887281997395154513921139541980026852395996847669618610923222218217997112980911093071938129233380234133160700773326654736766566451351136360014189441101258280522237250580503375071527357262984684540558944797420987174966765613313577732738831093556938415414969604550917118128391881156215654431985281454179941058632972716123479804065560785310962344423123455721997993838991897285392208532394180671080251535390032013081633931356720214089374160600401411957274153553814035907078640873993109994630256589420671256644943780634304171847321481753511006380836535244097454263811758640566348628237384660580197713461965626096350431446196807852880824009121676300237739022677553905194684748336318257443399284656494040285862749735895253014431816618689045028227830689758459790385266243353774100196962649224079231221739022871243084710570438964915018190456408376993897551406312320640131811552741608392476671386782582639972608024400162902359952291744489729495581099021385058197320731062087224900511525115231499045530521310776097011054298606395075829776120765426072022017324063376277649989319065436979025690608801439414884637996967188471898533967521443302126656993346079214599755874518006393347992337619522382054061393224981672011377411797265386738258481151581846242350518425558820043283809038693747523140539486985499729034038319466847585907643116294605621021137446757190521335602832597589767843192683676794300112637852258388370825411453046703977924402055819946562883407649465817713107701334560577692933093994261860599241665976235655634721074861933012821387270668899018226603444252359571497853128583971143845275803651021985357776846355741635906973064125964297001877344787583470143356453852959735464252008223392912511527365856488071349895667926766820741220760042922679109290631163693706394959221205218397991682034936882555107960415075847081980021854410295330625475362187508498238160833814034196695501193173216577358863809973382863286747428981208591541683525085514456509260654384479667933136605190770412744979139704898569398285279971075227649992838607071352227339737556524140239072863034884593399014405290489253566297907928086672507628354224083024534088902322446516486889469717179252592149955497818590491222090899674899900066488324476617767418051356866405721705644620206343036235868899574363630411213818679005143304580657131697320846604091358603174178073633074614433610948170581681836671269821980290106205820468740441475518942588531035054592536183319646524479844569411911385046891864172171802566286278687112008246250068054889614701505477620996543464523466215278752639397044745524044479899109026150514548541883293692713880967354653911971132145652787730625664226600175890247779994393431926166466673924574826703465028749881024702384206613547886097005139365619714454314083359182883297150170444859555524857100141190335556476494365906124881355862276050386112509939873877804578219075323262598197966033493119073880327431450584840054997599598616170355778142189319235373045586884592272721038674810197934866157181332737080604005306195043046115594681711604667832636128893139159790186649737207149380182422787265261458570404093429507998745515981959885452626577622624143561269607584578795948777383468411393842687405284694395758155998497659604466817349438780408915302781501651887229424288880280971453969381355908944667251858557500327887687352495170696271218024840481062095263985537719935868457072166099846954740243420878957225939045723505288482332997215355379554844669086780340122315424544538009965101030826779723224723176296160725291259521505453427411551023489198344945278171650343686091513492522303350982621939210399499159767157528604539607572011710601120763371160398223842018735068848760618787099513689574338768032180358032063770714919450488986066394789526729643771202674734787802376990968162298135966554500934456209833547138087943466613364645427909744683781755838895114323135821566359263851015923948804355703227746246943483144599037148619951655497973150716121068910259882331403066596547385238794787536807848482957394861419100601816517233185741553355946555584516757148674057820215782061916728313123566351207103670874457193385013042192988525889511228784402156212655832707921461865439558737819648862973642411633638351834561988366697429132291392144264770601815545474609256832948089548898055937291243405664326901344772742621057301867889145820864229625481148461673355371398733769973103178622814242314100459890415958950107748062564488133044727058076158363530115019676596261649306592224479836938823526378370562952018976779790383018671724636327457214035886934577701418501582398503200105339104824396723777811980524418784307045473364851770284625426729702395331457931740612843921894573047796482108930652054607890580647171978030310613270239169022611708856353452393682208318439045627785153547990289746193455730289828652700524992626721435353831472688866364837601500566592681265114680606382062412895244459026088471098600099075121415499885851531082925482847866266631683725518342895246568282236760728802273615618275867360607800143133803627720215188800455575409081621161995257241046512773259432796675133080584165840487811035092127895013027910447189712782898616694074355040056938590233597499359473625058346883525009745545534233210715727281281585320550433873946384072226452138246932821097663425683209722745696418741981365047657087261005963949557440280558426813261301551077810051149381689961460310018137750571908196392286436988756133809429401047992889241315609986965742332246651278015701179774461023186810152207510903288278065488839727441890965211213315448966390578776110422271062339949875410196881864405697437875401149742664344072692301594232295436885954247197004487463028943473253614826672452227847070731904325353418671451570238378359039129392719524832031622136210474324621537020157110104760304450787287714719078641567644109688275945401399439685723289620278819393418897170756535309661371945723317112412645171554721448414887851795225509458765830502112022595356973255482728128914900912102857852425631006710294387316511461594793793476895027564485134090667596622481050963334863143084591006379555209922425108024458637883764977372159361480936647350555626203977979181277190756545704411944396408343680571524547748960268785064669593046573781439307312797965278537937412524730663947204022449326969309011747316646541601670060395933134040921476956427845774736968185104921672279681547304870968558813887157761941734492313623830308644549830885556392752110787054078703028571070563807977205921577409709599333378218099879368897591857828132023440424965131683730060557320608159998084669426349461037888048369471392960757133687119566486100011586535706062278082251763091896922501477822924669451987195794162564660719465823984231803917176584913885647665132654805813718779246587399216058861175106227347279266631253947934358827637176336692371466533077295227116801517355110723000710650144086607011188517481019122942129661161014810543259557048813261787515775474276147520978267560349565200276206993410032313618718814743439463238248969200502381945090090923839712582574124758018203327473699275305221055292338359563015820167589364086314096604972536652764750659640620258119192677108059694602518260823968744434115033600230244183736875209444418826797062821976042033719059498923212264190665774223276049510373745866877539922745859696445132615868610168332787980579099330794658831204432764462568938201837641889757232454604844054926169660569226297401061063886226779498590306861029821269328775645153478484896665128532916719206791201207792939839530256535062482213591338616837411822426952128594299221188924491777947511968142131678508649449138387963169061100035197978442381279166513380455648215195804790748030255406571006207154720129113519829051078335129772225185263362809023110554760133906214078320790462455527963634414332951740730136609490945059073528662383716783343665054899134305523039543245536495196398010529963992534695234830660415491993811320341799149126142385224864955542023016822351047966078517735575643237978175239928512961825769887759271611114164045984977126991044074284975118069328226986244248386194285036932447231262381266418286177916119639521585970467802097568740603601012930884258671556556584937165474989136784418722183658389823800593953353503458302041385627880909781262161493016176532273270142213473056089273439059039835692384564938055690899792104411870422604708249318748043531242720104195335367437782143284637341953054135229897341157209629340574822097344545270259947580989381246308393978441069684966467986556584247749893867500884937374811271190589482729148577159739623710275592569727326219288932991934886403269493875685801855821715213270151854430971454747671410338535324194159917190998736823904133759864421758814855244499111090223824935012457177725500209577150350681621339992386674260538173300579531330269315780264261869924878485157773928999797229279833532588291575593607435418110773154071858553014214735032758390992900066234693218454505359848821261346025928168752862805811564870798149768114554633365633290469391927899516660041807092859912754519506934825806155727112782082469326611410838929890137715746141413953039640906623536082110360366647352690410393623457667063586440076342890025744862311296369816409431929944778255460862620756755089680340923009315001272832207167688383192657304825530768066952133928044713317066317103295012511604136943755729214725930259460730583606959139368863260054478672668693855502566240968096258111306403539240565534501737567900065457016308654331055936283703871940079936913251133579441765262741221547451881154128127835017336882792706043610924843298573194391031607748489880903692934040778029178777504703508927695708037240594750757752644982666338922238262997966347303968390312494012908477195613987350869836278672884532017816152484271515813721111968917719836737491499444290021910272519391619907695783005817029197865729773330475183379158801286065228724126644072588189876851370670429239373633900593150674023364252725589493676673427376692364085584660152539027021760562846708913855742679210587964201095305127728556408683348000564277968660879360574100642106723261310813527496907124993332684483954226707344402132816614676255229198178820124006118359485319514873316580055620275393825034048076828568326457243129788570997925059280450731603772898786756485934029244653881701706140544770929797855614108311572074716366986359271035367465717118588970619326809569123282420493220735383607096190673928890584217175906568600713589008332789607949338034995752649164182882073652818426325818812829216920600582037214700922870520135658869523123468662857801952302593347471437383454653936685608948404462185257727171196886918226533782081318851416358355822253502179362440841221346961752262267099218809367095264417574529964742507710346354973807338366668522858467451230536082159327645552600997649515108263684052048446473676617210063200460870603477837756264059195819480708294464131110035268400096464942878991007702540693085996530980405646008877467779223658281084215121481547077860230143242130638510167340963338765947200935349910375523487403169276170728377894805569265489340769927572794745565047726886813313291218438293830743902652713792384075923529207088605177302068732802069237702337450880073696165433419430650762309056753051000771868849300331604153295964787533526716810675220693724232109048891991504431370941431107126120154431229369527658377174896058161560093243096216096498097077290603891673833735374046197344716358865162229817023967553456360213385963074434835065108147038295858082965844662429928449524794447139815304757311171436162136536078987964974157660874880214501381701079816764426945771787232875571463605964634500362955050297680251717208808583373757950115627275526247753881783270470640186120708429020038154543912028422149004825643698581767814226242814171797760249702340701365774222474091198844728952427497455394842401880707682939103215975962374714876905210264308915105261154569835112713982482318308778531312350368754402081625827777640744122199478704202573135302909680295929018373922198876793975003443177108028816593649654623299902096674460664854671956547334180371281038109674419114135428813996813916078425993322815930184485077400248768590511469978206897797183280734190659483646692640213159826985324390314790162279939081430960658014288946137683091921939511513445756392452863928554766951884638760925863090159597700083682032134125923491583577439916852959684133694605479499927313155693674618596931759600151375388312125162371774965359074816362669447446571362476374434287733112546679593677568316768316326499402328126878813502172614878193881598896420530912999718145793878242344718229934761671636048134479285651979970516108367754311718001836092687369989218117290087364048236399083602174296365412160890108131113397523161485363669067919432403862632119785816285725622846850630853840722493787809641915499176475396099232197323877466692813411481377357492394928909612314290363542616223187052403928471622642861152362830319018545277942148230501917412338048832087853548029896433629640759442956430968548968792324506927431372256917203491420810362057020494091073790080019239885589154760328461537643505565864366319246112386961253256145752255883924553092253008155540282871353543441375418216895710605714701021788739497008716307451665284906810132920734294174322099226473874396985330487718424481055589031915521358179465953540343753800185873610129479586806703082051138902547263628601403576240022781929944592566165994049775878325014552280466485289206093146044437665765559665372756485519015135922530121211354386278150055070353793923124481492399682414369907872410163889847987286452311669702314078075973297237301796616947205296820231165758897634477307709283250880232175669164151238922043963525418038468786010198666958470318019673571449700401553590498430609353472026527334902085812780808203491034838126339598574860559159889941451413335970001639208255668780542352286543442932392305354612939346102873334763402073156719485331544048719630032653290136751979982329594911325436507318360494833382378718623739081689343213432433986592798649834098715356031113827529392227475104238091926393289940833138631690456414260668945044819562960648291992103618094932011509843503739117711440294063037910221225605687733977420222936349311970292387610309675358413290358535510238816942621111861036491897415412323265081971336368393442104261762724904670689554992847790380078972703172963018400090589461805353757200104418124553552122982084047816064416316163449609792472701377810263163678562998678947264127703266081283722571543428802810323795097042465170863570854191396602514071965161243086834130931792402637910662685784918196841759434138730018241099280367791690806245736567981678402552547332437336166499125070137214951680969705509178122859722699202060394688435847097230456059725176994182673765113700657413020898871760175127698871602973483672928943150764234277075748419391293655868093647642160185743040890089038866671911190647293347296714090278733114670312204870851245733200434012384982657562192738704396329421354642675329920304810353850220552013907899123688313171741005652405945884241761142754055288266300188661018560144688109678736098379891998039460514227026545844848539770382714946232678456943654292267731481848703171546760642984340902673944702500583323028987683527871150809068491420154244661616863632739592261709587551938202792179927043959887548512199289045142784625547946031231114303920999080256982824151545822021226776434366825529733705026331312313678533878281182345031743560397729209556287013857177350710955508593188476618757599548426536958710566568132147520747800444406155635222782720419921366131864332068081173885379553963895629148945434508451465184569006823787747562333936284106839203189487328652595723688252473489367465855411959758881020471461423950180587414754426594697662078882954427219506995151634253647066278868006635227294002770587192636137068057586129380985503235015203814661994845959265400514015160206091185951451452787624867474423465205715722844895149370380037066784485012357759971548764160431521321122531764229013848806940943674856585456961271573279946566050512639842660505554808113977015497085929805953813049330945197724395501039359570585599847223668140324954212404091296270724836376560644183638200799733643814357029534170864199819473772265960763736551215020946952696238794776772367588845109085039286848753970891511250179568502840041225326717558037489384364764669701960377030385829361701929391584635967681342769596524898719349424677297381465716611595223804783431867507818716919379783772724897858639875095101445904679760806410822451020171929227436393782347442507415417062631589444253293899763538638335131898166881395829777109002256571787961121524733275642766490284983701781257719689272504116563165894602297676130669984170211018677336634577514831273798685928181089926241977298992637173320272120525000495888542943142647073273565319238862835949533691192859749771293969046807564984490746446729969857811907502077542517164322963009543031206502916861699516016612147617356437763629096880425888120082375725100876986226409866129042269469038756579368229931767554756963552719412316776641140801630245587167585754683431170945952984968797007478197825576860977872747052553417551220425399525993165215435689453591390730283999161141646296079749628522476259051559247883504000421225954129296550193639141131298154159045251607558576263059537548620505072591322428411128611713293831891962951260863384298694954093361792303446039198750644501206583956015473969961929733205349111258785955327882642886818520167435825951611024157126850261417762744154868401495007267568862176018955163210379834754329088076116712496705436890882200315363231739909993009804029988347403536613232558446777013104441613423900270262565154819894625290671973343515809269335809149143383814100544139861933865492146190706063597177089195816073032656314053313429980183757940852374140059813622602470963375589506981704794797236062563669842564129626699259040538245627188648168030750105998100357270572748339579664133303450087887617259237158213079087289471609176429837763542465787292285892207398273882380988890738225376972545540103929221994796212908874290782262775648266967526486700714481558099323227294378793264634547341558010375046205281144082952832129877066583354556630530268985754290498562751493090230795956529532038679494867782283361165099437083206366986153348356987607929873637677819659254674278388859354105629626771970574326447813709273660948624876706306360195060320793595792420307315822466659918659004037861035125161023850064273013522343454010579882544586330060506399686953867670488780616321805780835525348642015384401301519070884507150370656456801446999756449384254514258376163257552799637380366836089679847743063753485048030350403368387402413567820840942001364179115343840682728411527329393944984924638910647392734371059583139868420755402849890850682018106855014549558769777523492959221536795795639461811975440037611966330884546796840727462999488306946990262519770662171144272328168326727534350234764001432399762729361307494240094309190517365012874459315331867959194008960055072655957347399777540513911358334032409398534836264245915173105016201252616962695410489109300520716610224081656438486791975596452269981805991156805011358785114435993767170667476395468972698191855435255260367535395770126274703294716787369686945952618057170917646106691523730133281888153556974883110356838549209167974115507572907947449630698244742939915781018068573969619196839952734476012415878313644459494309524129113506367569933615501270112768144080528762298125707146125304387730532943555765249372237011905776913032482732199889263393923460596945868140563936789580645225921432889602245072957856141114569679496188066195101533418667544607488203733877624696811725612700319441745303021559817728293783663261214007942888416627648314392933097783949666240220714175633950691485967651734273853558688281190070132596772375920642184184008248422732186225722520377361966272156613758717113877911462952112190679759324849409985634638059953157207531115778357923215061622326451154070068876048809987395877236492115905566083328051460254147682452651134332718214479143720580669574748338615367155411159325176104345774924327719964415639858710084656365781910576934825695764638011162534228740116177607730185368092342600333458757506270627887369469492990964111732598043321018509285456855974819701466290403847905555689149512772689926671654807432724261122976292777828852994008436135599370460937700621257848200787994200540660805101672173357061298959478626746193946153407348524124064550003367806122283883172827778326595534012365654054322350644933886307616495874412356662400057770656030203619475612698611232710697516965979357039075610589042092084837426448071355035302577184510484873507968020908194191332779706512174687939239793495072842085204986803290330916506266761981758507541086436823716983234490788793952955374883824263230598069505402052072136277739622718825567521392342080539543845986983257607540399495386809856134809045368389145531931166637495620336754677838774314697680419426953647324526739361527921819738381036409984570028260892532293809241729801935025291111867070104372794200326129645763656815378971368977365256092618637307013260958653116646161347165410569169832122867079257897603019810124543377946686099636975483192509446760615893080152439609194868896164705854723897782366928566307379696676919700094281647911674012825802898955703243306389397959707130247795661698972172973025735435854955393393887017218771228626000718968632152339908011583620546340550512120992816494154747789587175395072662815248112204913291615575556626039655854178108926511801747173744187504843861017670896077598632777375634721042803244611185400276171661669711741349970196249637046488984754845664727262907536680624257750783668434031272095569572548089917723554104131984031625764646862865915520896702289577068830471717558024860615609367491661737432384876865602589493346505061513062524463252019589391131297761754894504574922967514037279510913777280257367655135904107931822209150141311320847684143218324244767566953572267277075626580560037709788526780625093758961860003153105453507277223068243720342426812600075418081253041934231070872321946219930108811661339676712998505580104438830071150384303898210472456240290058532672629158908622604538984008898814205854050271795781495164924299447554759951025254410092010176854020526905741712292638559945509674827693211277886016725980942315420618748899307013832247335504501809268158620997992660129594274070618132997743969639868012678047524937497768119086814033446984108812425946166723084537625827929255761255427064653599378321376091977323871875231344487999150081929272870898820007159568728129278668350154536280515786382311531937791776156143926335877299638436730036975300334662184427183134773765800733141976263019912510924996058857392899550873517695605301528036391952852078673752105539951020157264999350875713219117871353365010157839780034274666966948822273591344691005803384191289471043741320109891957524174425250889077958492997826078683453523067319214215557262665079193841619217423289055364971598827540062695070863917429199734009714343637878552219735645811584459057691110025858627680250959916771356690603048267499343167848712347468752905363371150705299864877800397646729541973192096889563163332884688478999061637508376503545957840667959682556779401240401469791948934237490697434448241759773771483829939715465357603105123272894581978393247952565343538637703546140184454233509839067402868796842232691922728880694387853374512072554608295734229175878983321402712310826608838042778059348958923618013988303184422127884715449396767904994302352354354608499261467534290121905326586474950454346013729541054370453900934681161797957551655112130865725770081386867641971214208127383393065107585942243026970990864413647425990193996048735518247925136163451862084972082732151097716667102743417395654482944282646686469734707123230524328155839231222928940730921924515417746359679895860275429552466223295124796360670064502435932035430207689454595208715826634393536320540445375640720137495130139221188332869091153480742806787596119042913829276904785216778363603055325315051392516894750753575325147243427110261231757881736769155343253077945595145847854066707878041647404804975104363537681350709356616534449697356934578289220013699340788521592240680941483336111027899814992939291836880648786906803861312249492689887539567083405959629080659377092944436416038406815584958480402847351033301144804302691428925290686127845850675538083790247161390477704464030614307635047706962979921344667190574536930131983497454127686316942017331159875586831954129690125187647682342689076029610188830311187488087245357737270453907781961671279320810055832083291876719956500930738108952252878633954190267029811488695893591051060895519351223791730986205250814414214086729536317044731095047994909031708349928230706866491688734843021038801916715764152466138635881858100466057534838612076856147357211847178703610113863795826793784014978374048025665374251456350327154998879304384163971876859374248382061269011914376314757171559961622890131987978731298348535336767100600585754440476514768616157334530343715008244671282218984162638669904368535699712485278779691721986557323551020726038805451817872852163232390189037436257801286637718362009824318574442630065283845725914591869647507876239091314374070970026783813227908302173313015999492397809161815524412790777528568440222565695403836413449398476299015797553261292911927484105607840534644186004047175489983737678564482119061310939279094545454737765848297907466975539827957320533560282010386469056105252784643202419555715375015834637222668348879724472532020024002145364483842064481933775128954402087681715466185125507789672401159545058575478510661471372943338101509756860376855860408965198734722776630928197190272460400560100548455322881096544399239886012846171937906951311358337117818505192339004094219874756868950361302352176710263289340765054201532474852867447680989016371051598053788696332801033235149939041775090339041526130335461888110037259696201236402673750703469112512237726752949150320184465826893258886561358197638603711155007246438319744961927441913373092695910964510564075208190933688981473086763054230962969531126596439632716468357911093821291966324593258419694850347629205405253239327521539917863601803319048812214043759279764742558518080535140138020587971139907219077197415598552423239027949854473042690609182506502247756316112342881203714674484921096497485868419121689761813240116362909833825765274211119316196684518412866357442439357752189166706118307379744688030542169929580189364199115710504143627019417126091494670865582187212114560565344848454673024133571655598311026280394733823516414923402900711839110875007476842063661817020925372190401167657111449408891386240555016685864095671063201228883885092492149599276040996672853912495187203129993159913553443804946227370804675447787087977024955401507689755877082276204607396568726320523926774475720666548495196978663147265723979772795740306630461084890112278381563817411783450827926420238151773708237907313504717028254931292036142275233506385685495148119882203272229441225667638963854762592598707068928266005191405453637088068206989238732138761374539455332858724206277575071262148917757063241982093626581593664165194336311793709413143498834322466669306221927434550210811641776341584247659392217726175067882438091755532163882434727645333915115701155924989202730727119342783851067443936734664601688244341451351216617812178128765368746262624137738728099160321453432526734616315230646467397700829952724764424785593373580992394039572051776955177739617646985305325594178687479082551333584081962317074759295249699042997381109136155585177776205683572336193478407732746993788805077513561946619112388480226419326896582706233350147848164196450784885522444680177593214136694614489080508047960654188039779053174471560143866056574259460701934716937747436338432542229279171499909078918699657763810256451565955634916244804993091755430382501846927401524034842141224619913030920972747828985370131829518248581374350729374615772613992868132589668804996939623243271463251366007048185989636235313599416322261533798111216774376170297922327317669321676842716192206368524914125674452650542174369722866896320472512713910604556925895641710341652076236545921169413921548278633758348852761020265964387543689483561387125439588676547059921883873086252465540646395291339866155237955862060668729211559763108336858306272915704980841171754321924026022133585220813932983336350596680598532510857847897908905740766277761524456776705804033634870231019938476511465732468816485507536704346496498537539709023906525755455853757617196995442618590001809059318133587637663338687408118040143072210935018679445275209064833501051509390403992478193753032998686630007844336282775878648554967010501074795777435943302414434545087250829117624114032120800149304194167943750966671181812836834038014893454181451066911222268847781281818815531912592111661749068644529180294855732336913239832499736639755542715425168324459018575929947052453739161523888578878361868483552825650569481707272643498799422589539565010558292215676509632252387656918001768225090448612510552709781742130175576086077035538151509426844038753112346728872985095248733121824417180984603697190827341053164159859573485441082591744399077805825406492404299994227925227426804769481192474958486905013361116572985255708588579312225189404321820474154918155620481344442638841633949208817680033524421749569223555526861999303588867512092350666394596609353775698707846912090111371999995219712948762341039059928279082057503653874820324530023686726990973790105193486813750848796619677046161246833008142510319201852727109653229114420483039254315151202342742867055507498712190597096120632407982347821905818841724579659483389384327071887424102555582904202959230218496905573366652780935092118123842750603378519330300985775205999655933428795810006832966146967130541543074412816151940503334464669216465869077078693273508751637782405166436757447034543535003857976692441027768803838899460683038169026831967917641493457671776106265028272687580839939502813124912888260389059064333090810296648568961011437316976171263350740569862864135079648964792873895406821553388285409693650735042178462508386115612848954166501128937359662482522551262758129431994045598065619676700513765130740250317614570067478370270281828646613161351691771974185718924609352477323502542959562980295494009813146017446804163057928334311570096748520965336854777281968346509411321519929693210631096396623257279455607834376434204312161545659670035009922857322610964275864330814676490263500614129846324343304053818185840855393976145019026807584965486057495409256135626131735423859468990326441463253089667437923869104248766379282923103950134766236470543242951142144978702890394318389345009240141714523598030022222030864821050924026571168240364985616143002578112039974973819151245808742560726832231408719747325536023987938050183400647001466717505890892281181835362263230908364985809099863942935393754226797687364460415319757130714639129759428124163174561435417499550089802155925503455349821211492624876231146463254436430753479923944349464892562561581817672652694425360519195356264302967618325386349212344819034031230757838529860037191609421647582787738406499641478737288454614087941788490047359234971206652363180756787371200558406754401847945502812760247831465996593399753975784238182588212314635787291800469630094141199442557644050192113837010280256746669571134230721317524315828056630722433026290078978578325312868997131210010545603178657477400448031548239275399006177541543318158338890263284277993313409051293865950643907342785307227722510947911769303888578496967414961394678272293542278413260579056010335737359695290204240777966068995445952926380401075083708793323581335528191861683605438398225269191574723749213667703229143184474551335628689149021620615817935268454887697715218905322943010577435742049772388710589617015376730350443521528119466891355583211228603596197355822399635958214141662299080061457656889103619337771383334539037462098699670592652757285892962940967177246492875623051776302461097300338004430455566243873464886874215405435637582580116890541408191795314040024984461283030664701790178737739848415470016048611329456335256147678811430289998736669499608421154411213677893409378485488017772286600685415413855673828887821267401449277869308041138404749028787327198677802886726293663660906310687581966739596096011429999160489876713556343980134597896468635281618076137174191937093519927610315821879476832216752129473179834984831584192953855305137054342094343766528404916405392853878655691269098982375046848021338784993200245110630481763349222738057233736824282552410270690630023793759830443480182024986204601631169841850675554455036548556920685681390444973487164360345614885616976980997308220513471372249241455358180383087272228238948321554875490888650671632874460844579911385528651683099620561382380949313769136926543248190220368961891399876930002480206832117669593544600837058147774560569989355069877816808248613161456199170789889159794199737785184792301439169617660193660317692132896937293152755773974594292352544095071851185619306616531197963456253472524103803887888940498173876602273600409214669775776675237220695006568154866582602567357948088480268889992406434230393208048636940500722897435111714164217725613103955133354874633405766701776372477796738860844354691338561176067407219484408840599629635269989604611904316959681666693313097241906437577202346386793375165011473527135374227281466505526863683950835484911388161137170695037816458508230841355724408659471019158565725309053956337763915150749973055175916864622445303279037410239023536431071144291668799245458965469030832495264901022118048423818888335599141687986451533829106868313547867916152538969831229839171224394371437184100058360223569458277500236473657393805281685320292105317268202329396394256442307160897025593874965115980598391708389258246925293704377982487509600527480503844955496245721942009853741771489928616911506947609159556374050948558960940539824830561695624910605158149383334235854141022890239887448931032088102624697245238475797301744145720070507741806421368870791570218361812388839750240165150399285690318857132706890801291017801694879928899368510695582098014791817912242567597320056638548583342385651888770153136766469818224111323255997735169250843851955109021124674646975403126069277867075032732751026817587839034044801367322455690764631133278522148091421627551406381472507125506251412739670545863012169090937990275157501712713999150060085663200365181251616389552970371083624550801913058936933550689140446314455133175789955676925707382318227387857597904260656850177026807629512997577202358893432931880508784035977301909818667950656504144104386265638220184925718820763347151844260006133728075602569782769977654282332006417222053769859026556714933057665342732647174087818876333061897027540630470230034249557263907736764868515538860156707040397879561526025583853499618767401444910291609194075847891489621842204050665263285042688316183315242360910512519685150513035695098409681201823454660935767012680044386114585658490682877873890194258910138552078714234601841177972632549564595594059936602990897208705925276550791419153754347745723990499651970379226835112756213404401297736724538177587935255432793119953546868048024629568154905535304882058837340521638055554465307330879466724636899022052136787852933386901695736001752010411129148109947687113679919533907635775289362941040982384335153438571224628132306153075728849919662743667695531051595015931373911362973224246206179718624272416705473274130098672021877108286391435718002087158022568756819012288029734329922689032614830932886659737401891247790664762877618450759358625906631603189040263815512691691323128208525824344196147196409563503457241968120746664792663077410709919592941563122201841116968349196409335273901326461260504727638459778252504107755688128853504385425336652768659286376356999694904897759191244849877167148959640168706540866615553994157041065105705257321134137834350742506504511864870631698195531470099578077308367520677047443790358292255348667224758133378327630719592489741630736238420503349222099926808099196131629183685703229235339346784325242707387366242613798879316813160618102633776493103098348996896318621514355066146320968529920558155294496294066684184817785097008412105034289365098255231048272849692752838672885376307409070259526806084276850522676075634270802494791974310656897796008309094065210073893969704890402727161710601866613105233835281496017381660190067605993893164429225469119746991233441447838069297749192116536795291443420745238903031865460822324464987254289148209740197625427188801175872020293151794403695852019392515609574588201620954471788667890332622302549282019008357761846790589633621709832254796889715756422573273459337394894978433100237106076579845237395332238650040401797470836383744062321764958560111760155763700400867471201417261799693672403218478203682444473474527796287959959679950192137497749437446013057048618934094248110267854023652833950571617929624290854391900699235923410551419874217386417373278767989849330816581394532482892810388208947200176676441201663992202363527733288819461837858063608303103359903828746091693720951090952660172999079710047370265097241464010487849984152643939208040480819214070312646084155367090452095996491175663863514261076052298577545870875688168196677186509644698432907054222945368479213818031419993336407632945854620421190362065472801559375239291820158872541645795863668278355625412645193205010286982225394456239193374530355444098378081680847764313353447200194873566610164018275233397866535561140987547932275373807513968274738756597830142783191317042988334826485059427654665948344917462710137400363296761238876881877197268498345077433456043060983728369291629529912623958086128780442195016284805930574749383601560292124503126665127814140847215679827148718331836311352205255710464239061166904966528349167027104299057295337866448661592851963452281522323758451091383812384453309127624073244859828035286442812655866689047419472222363254222221867033320836354504797880065150536547494767540479992487883869331666419647247214266571677861886356725732265359347047408659249252384595389091536935204558544652185440894630908964522389828470982252515856742765948649548427411381474406142030591959868534108750377938419549729360799945511149216712318331161408088718560989366588240615492569855442051087200774228884931035313269866562408722737683772820489101655064622182400355795722901369728173071721373192386252365151024798829835185960587557242060143127342784858417752368116175058442356352066249846651452180477608460782939691777004463305775902870245936710923674055537900810174429014255222054274444180090228641686201711979679070622769432980599290459118201439849832979659978919661100990819674475471377572402484150872514638782093426708879916281301684191115226558779623961215980307427138073400353834670766714286297401412191400980067968351203470290573215912620390709715622830662407298008879840123720636666520248590456444099288060594421595552721348934531433064731404358075897401387623127140995408386821427185864662968543310643094817694773945179091522247698548472620170349655848385680097046634137853719071116698274577281413345944265125927172859524972281590171779871941836201811485791644840061040093689295383025734991234392809070618055587939543972714989556767599305701803887875065663339986650632731075963697698111298588930117091380887439005354992359782264693045316910830066570407960321787963317571465747488971862270110216386080339644962403787287982770025918057157337639082833109848179130596049554000392672859990992758940932828006753551735413455541640323937774264030317464819826866336406145521081366627950374960025907787913254768400630141558202694017912255843027861174116825877616021132664604781485397819511626740964350608781290415182361536792520307137113543792677382687036885278878621525803954528391137081888359469546361752870555536853781004323605577576914746579542989012504835363151648673465820838557539660139983041849341453569248951311747463069336557300448202137951349264527729522479805960517224430388210285821849380058395489367879809289005352854678504722494871219416918808595821079921384813118763390518204969177049281239833177132292109348630682314867604103728829404749559651810682979628766329869073562309200111417649240189245898871353970467957678090971956940999856279868810478735580977210416494904577724006320599317481826663759452693633001878428089522226254444495299464801537330898019090631822815866510562282993458550749517263539385119868996946306125466887009162230546227013541956340476584943220153810718104594850272946068591550528273419754204233234175883237240558391118045616439339648669839260524642971000203442799434817163870910272140532142024744428467761256002441157281217907679354433108760884152133081719838155418187476065208046936889922032536863987242776312152584371926659735509675761590255706469881577219253738077412227755927213913741591005922533856637893469513214765167376992462559936303914491665322777394171851760674171662946215995427638069109915209854256563319921993509663640359316093870201032859215070163078932009353962320797961253443096939043985606070294450523764916262827024519932453505035113101146949028883916901391916818007980531168107691831711660573793710430951437038914961956041887946759419367932062395330277393770131948785487341570980253798290020463100794548958048038495126869208857163201754347754346263961670395477050730522266685630816995358567103880525165775934597311089170677462403723088369557243929966963992348211329154392643028762743657908177989198858036964698800915492953096643428623492406266778252594998951274739960559760477404957045603985438161941027625999994604568432180145642641146840172358185706161906540193601355684870586786808254279180669275168331457285532576596994491907446212796696895958173690064669235483909949266762299127446341245581186858892522596171973928831123094605213535853386096118404541314534294700777058291169418025940683510368816955366667306503149235831847762783581401499847335913577638425473303756347617808302832090565041929760582144083227623097815633863310963099573583128492367482307452356305061958755064909216432971697498116428999978482079458891225434513575783652563010782446877307789926159172784237665808453840916818004983794875051639262400913562928125352484593299832010298761292076456387849525926822817252951618509950274347006408513618213349453456082987608881351296360840051613472013830977940123325277453040066191498793510280647969840834099334027727800479739636783045415944010226950023616356718232585265934763468866260526833873151633584150483128268694314240385283112735611818803343762959477370884126207860598185645090337649683100361529999850064587601931044015180671258099671164569448634806200984071975528043695934112355429507617224097555844801456323706862417690055644007331129092858536059521465393588422405318038806813973032298188168206347560107640677511872240112549647730216994882972960893364896375265768030898365279447390643748149981175313732602102106032213026324004939267518265340371429170159324160276253038032365661479508750679697363288885299323730749035212443185584033267718759806144735562179064475555478524572470912490171962400608686545350310299509324321327112620811274545873551911595771234326169829616836450447509319980128653769553873018334574356395380685177580102787343484527049996775940945701595127955155005783441753996154533866327749660320993701570454184532877079579065171688731073944684324194972997617553317642036395987652643472121796227968401991517965203524073357646466584722506667878249278266237540179955911500755268538962768190515167924175600724035451903834014973530267712938986752940621322121571719968736297845743369482968547878430893695626583317914945198100302194769761534160445845180133106397155894374173680182869772437453923156130233244355125260893989670269648676764661485563789618543427446214698355045692510859675347491926554687330454553870581001600461494348679048582373896879704338623678131860566659820278551663867113483131541530173630689336515208993835412675261957251503583946501737321943532945889880573487986669671811732242004745617023597930253065994205575660700548336057810819595906613800429646340997284282950442479894898098497247333486700928043670235421552263127704769548665929869120136167620259743680494253732350853419241503047949785402755301562938434124983610991622050691790921853281669228281491177695621421245627146646391785319732022663088921773649605586712138409556153797236758958080465075887086095768446107354871897592987285362860785835608189922869351482381480719029144247347352940087793709438626056040145169609634764068897823535878949678429620978783093626242792794338289014509019334958971424999280431471368922123999305485179520097573086244351010123335991991419324850882815984530076409948963827548728158010590808928588899902901740815626211571482339731637420137605256574030511483246961075583769842760502758407174152481607666651799678697588939665807765233530015584724806421934147395244364672816481266666960093748154320539340834314756896782169488348369820886285779367401495777805385311922726407067963098164656793508882066374365787791149374709881252440227460201372010668434792327462522249535751879995683042286321864308123365960349292937726371847803209829549201256930389870638832384617581452010225904091482811089174635715630194518935111469662492521602697044072462118233656731538283651777487915181069973070765328760331166012432082930471771451092177502958618703636893485219125808031111917639679857956136185175362283091736100276891785548385745815129446517861837617200872084150052024203811164528741270280461035609722597019799501944811592138031443836731026032657025309748677953491932816534317892642760340839822642791514855667823015376108564801997366673073768558080418340234911189460757979031615980531271446381740084930439002540346073284206508567454385317430987998493502979892902902862815815131205139699423324746412914374206134068066809785184855090051906066648649646181568349155487234196380602485428111858522769675396040131408195495433814704354054311617462727069771873128510391731128766781980356460130172422397385837812745480016444338463516909682762773288013858327575878700688810276065986789928122110540084207262625475278250535968989845660979471083737962853277746635339685145922006417934045665005998376276851944896160655544692233164913764617441073825566594032875718815748185840017723312217183011943405376480808993506419644319706680502010243440986730531013595690249025232782584958404346149711526659611884742772286714565345528730220834291930534068418172546128328218448937879053257540640649494559504223366756109917845104962750471282211844166198857165714876223989946340805571971928632311336747610792647749827578734965501296189650503118801704976971904758800483814724037020993916766411609966868447716256326010378989417242373204454258929650303362056078861875714151538480894282323008167155876432373886310398447381261231705619447493416074685149407652679682178190161107249044580519845350535742379520864803534071705678699955695455770601743529695746518341434478540426837351245267253607759871528292649703553431171614762090488496179066482254848167521030979054645351713357285672097984279512483459228909023668598045533248730193023396323590017656336742400708251504522603667898678788802440093430743186453633394240070286720243991358094459411328448045101079757159726088240406887206735693433642253732689904327565317971072679174272199656349649512835564871128753187407854637697858184839873442291891918066649691899957660685114053024504846888891287559966006564917948793612037401536012327023129856632992125205032719024742169282682343192301800333292877575390277368118737569582345648904924680768426568446109343889888677852566544618247018524560486668910823684803886775967551043207221841733159125099282826906116800758400053562111093028686640912651064542187436989339467693745945423461407708924678196437503223452933110109899181281530462230824540875148572312062625293750484267967793940045553637410114524135607351941987491848663356095152946377771514042091827464698644909060378929130914003491770004134509908265790165579662275102811245281554805243029716345577988977413592575814679920929443273945134042146552573437634153410390896623110254423406853383558458239832069495623334240475785389175924679266265361976438156060919101187611868244940818650997190645339741663038362504513893473840839967660648296690004393885322308770093788379461808818433204266889969295183844679013402875025696401331186868167176158508475977638463910711375580900713553595671125492226445670257773809640771494850752032861338870559047976325359798586447156005690903539485507163814609004676955403017973350390403721008261583626033640794415910288267222563167797111176018438851145468434407910292202400521642250844549243967723671960755718714940390226379003221403329585320968256668968392270561952973875976242249651869377352497944728499837922406481412490893612589698433420504244852056203294219438596572206604728841625879636091919631466397166337327912691977579902005585418197079875620287370333903444083851204243955936248147826394025728114524223819332167707094298824319940491678196931606335250478155004869912911492733228044182085973373772129723287892713158369133787090444496685980845067876234504617421742177567126945160384074883182385782714598210716722741317769138124624615019359117001356195064415170005722922347219526485484940687350093140164620532776867684678511464139575601653179715456650838309603356358871359387929076883446628222258993668304304695198560151264063720318302297583682557255160911841620795212315890104394157416571768935900739745457240459366318847489584752566910267542125899419596741447396758968127375925686034073010706048721624473857992213879721143459844537497341280893006484879315337195993526061467438422229723112182304506238857311283748669739066713284486536686163623647774070578083476472180493358876528187371587856996029843764815768304044114854585661896943544873664404405634548224608854536907734981465763626423292206516148472896036457290738605809887378001455924858385426513114335489201929086046350906951206808151102776790692894761666513151816755636907200288764180166912716805947409019658563792691141975702029919237621820472948407640572001115291481479827123721784815973423037121898251789876564615675345050700593027173394907884745266165234036506228582178957296714419117061080423866777699605154586592208734186050813380382049042357956422094645641348147324691671180883039559740487649418143123326226589372007804181033068199510265425032084347318354403336763472988887514914795245650089852048174497824909527633152865171690898943284757809566904198524104958894588261328394002612019356555073620756425454443348443259378909596064920222751040748788783523731083945509567107788906283387769512399205206116349878648083634973005270763291175255785318681851945311060337497122109420410948136971301276960513316637223264733277982820943403726679017291614346167274115631566561936667439326893312708488985937004803182253192281260011870285863492677559638130310346714814628741195346681737559027229148805352050035475192298436635763903289988334461288753350233779785585586403964831530859864542931537659523278243205673026162851083665140654676441662114815315107096663102704691528565054597405137389891931946597745768967807953421918344671952313357948727261427134431016747223454126676845370447639964484527833588543155413649289890413585525962558743015701462078700039682610154620663468932020047205266162999100035678108916623780840772987360539053122599925164267436775134463686452530111566343310598200074966812231735738527182682354799251268345718964081680939488031440343162440385258932214256908166011079209036509470747348480049327203510024722944235715586251590876317067144413258829558152891578610565209380177095971625944226949365666535502962497162578765394225963016842897419847664644426241489348476666263470167656539721710358547209809358380422253982954581911343291858487215202190753322029348006907106768484396400746621111159546961228794800594262673572954243493059518978975413995301010895563619829031268597082117397822586540278125865646921658534630115274017310848080977816210005675032622022254343004682335321961339502112063329919707697589495592410538903857675145566349991137702511921425289000927940768724992841566571485567593690935591731341463780606578091119752084943167388114305422910021237027603037789282765636237318498482999290174051774221241773290164989933117409133126907445805413574685889510848997740012644699224003392250986559412713659458690965960698891057757138940661880361392163232493275602859104312182117512222470933109944314342110042318638020668909929225373785752895148273675794490231576200153743554378054096941563522523604379785975504426298613089391481762008932711902589070141882026365740514958873057388332396173658533021818744016940093218525972313465494160670210149908633213834398506163223523706637695145759374129180292177480986256567464470716898834494271538433347162434557053806242943709998371132752835380730529422689748272317120325141534561275051868030282931552020695520444185992809067874530364133806400734128519336281505963473758911807502063495814282743483743324324137209358524337097162647684313604370716190554792410336600690120526834113187870106762634466068259192287321286129312329387168187599621167006230540287715148776851413239861187083629744356718093323569011343518047810222198192059058872134754487455552413333647492588263392116069665502918058120428569593585793091626318235113504052707073916055570769484724195885577987929828840334862199317088516504846389406268298703554298494864144562438955513943181364019873121510722543084106341517001695082721032844951084312483027366891976442936771886184238823818646940591154148542720320448603364236204031913582086375632901557424509156268165519569186569213801374889510604074535389667936864760721610918893491542216909978462409735886028342044582746749518819331424160811838312293320416348361641978395397052639514398103916505602156523298048747127975280355477351940820927095865340233446443599509747461420943717394514524511435987555271282387385474491863095551935702948546855082925410298697429115204424107018363800182661118108063028519699262526484235965303675008954636507857564256977130303587929539000007101928211789926124969299265371922240213173894464191827048295544712849155510152303230659603617272651064578134283848013935330606812207295596912994502320610662488482346164142474399845821228440871145413915899806649057638302474590348473936112185188637310232902280743630401943920602435491189812576752297743112489536336090860039780305001974362512324633145388947288360619105939338818232413800090751019662778544590634793630214528266985190775397623607693203561816085261307851890766146077958136716750440043850005476277467955321100410277285282514663358746345219266297143173279450632464154035304416917284676275209722603553325423325143068967735255281195163024358291784590727576248196974831652317193544014636162909790326433962291798689484649147552300676257868522587708394548591182868117858089543197585371834670535917606248380212275607346303730971688831446696808191452775712827561441627714847490068831232183690531376703367939741518424832097661835817730311878988212994316259891779170818922505217007008511398530045069849621488575290691742486137356163652153578820448278487668879220305196300940253979510474320282906510808218051548186860592703350337133251825279622714889907204844899586725219226472722584185993632913908156286233656745000115811920245955566451360707255785407562864442646458299581245768054007820421675178134357355915712072103555564704860317053923643504236061352926477594682313884394320984177935477472212261738700204429392145151875896719272867679476537947182346408588752541037447664244169299851946470314885059685149066251899275895402739893154162781642821425118391630196827363351575717323370364987207702490699956114248176353660463055907344867112860497229853800699898289215824020468792667153462396127339185694553168367607018036582476895309804621570368926491573573503724359424087639596576066343287222273094295846019496427397087101743299642267108728146107078474576846667727783200073976940153197881789375792180314930410250831458406106631220655839883927360339126860204766250246020938573202783035654429225923832227116459109942705902614149293046603313512781687718502434724064164523737767328062970154844436957862827697839777837453936173579486095183405379918757384610268204315049609532889292645015700163741500168327430013066204271290679442105369675224791175178087683991209020037302544214615843549521455543326298746334651442329961359493271686710750632206060350922838590386256711537690470596298893182683256929623416158418973422288692235227988505546130078544760733629628684038015240787356949623927604422764207857687433704400704344923346690084325611415064745044441299673005949774505628481008024520686011023947136220237400389569164206099516805104050086214252157084207163436444358670856679010333093597946538586759120699093737537204245101695032336477622852816202832451077487377780169150584035596313634940329606460597273035925807159285441273070831370579710238642158887178399790317544229657095820583805566652327731332236461578485025992846125634255656731311680769373157640193052139915612487811219010025788273433625594128523719607546417398973456628237770468335999644796769885802006324469598653571547107431964209084637125970634409012503040893514366810611896542542600005288939549107006530607529121046853478752663702537172549165061630755605807600707370778138827173395666743148790549530027625869646385632543839756751544118381668076444646134465398780465730162641721464153691929847830370475624478812875520307855990805504712646226802311580571788527892572675299219316251007026741839263814572986451611393911333276266304080282805135876806355026561485925811004380015787436114267228849565915986724659964920997730280880443089987723825788228857840718451728251871603298237781340882259726196940703598173354732717448499927034165076696299784684434314455207647787402134648384220137415283924091697806161821226804554852919623205169040794997958051526741364532121687670154523085595648711760087797408566495239586801178660312098270010580091323265186839466013597690100652483805555832040965443489758850762049802469953850059373590083788636190959091096734552302990492840422524812384182018442238942974482474057215067442693701614664808912401262601951693500052196929397642368176217891401319081893424732331602384596124765315841970585370588590669141732317301589837557265972028132357649490975451266984168323006971571104543098815427093408832535177726304248036240020023370160064272690560279776122877690271262518267880284473502978788985592038462250865760613702096898251659614851108009559014527295519586839325866065110728208434425773747165279198137100110151770382334434172728514877227303044022807873565736374313637657212856385213426444065804190641927760134659192000812607805310344124026943457047104669490696221494362538011705836446263512338876682812712555654795162813931684310621574869492747629272326496360690887491773332115046524816996030755211612984444734931448576906090998769265556265353185388776955050453156419668141263944614340471813144833497161604848099429989792408513682520124058201761422984576386695902745921654171229195626645726443697894825636756332263165549601479530313078419135337168142152962940755633731734858997268572682880289350864301887849477615906796809310065837112244494585896553370650147869949286697983589598434394421270177556430574993905304030302631915631634718932484025346129576855816592681970274218667663797596015875803882970433449467607380221632403616101892079354860257313184476780430993813116288781724488826227944856969772433019132985625824751593333707044335073962491484035724898044455923778484856646595562965876111182181187248806620083584764258079028280022910954054542000187438656486532876276888463795873099219323263718196438420007688559217197551535003792939198805890398226080649772821315915971317318773689024738484998963067973100648569828401890277816444421592138912535025160837925593218495908337929042327568285127105875371899679019153308954467538869813720557643545817922476749608167002421928379906014733703535463326795839292947886703448415241486126377305542559432277396955410533908828838518043734602186693444199990854628850876016442075307481078700969716702819901508878168949240489222826659849806202600600740565004906737063000942178159233627741623666549262595793890354226389230793462786381872952112113361468416142048763007080347447838148801685428366692925728819527555390997931216230753001318401194128807102875611411635360000086492701114825741789279530763944310133022809323223133081386742358003909386857194037583940025909746321435737700545076050497535198398825655926191638880185834188239554777951239314199072704553087449836081702939102355125741657184502020042977162487693316372889997906585293114475340846895934851000342728445080448399810306234530770090771942201257383636343256578430744534823837219845632499955559456739780575985913497039116610906985621406505229137376525986446310965611424140457234071359867442989995681633131296128559986608054095896314473102068886338990026397333555426550231362599377829421200901984789408097215316349473511229044233659984649388978891834187612113092608669945221597289707127783652612150115734175042976205253415923856817072934534245739122371564537454855129047866556391963840857118101721595344310599845082441680183588289024150936644810847828450282330410266704610413811304529674149908762452214020005239140756155994853574851978717653349083596107889351969502121769750589928472246500403646845921854710069384591663917225041803809073997569992725610014863359628380671708428861737267891110567747028122072422883110897574207864770098792164539961701045930570283920474423521328176290721352720558213337410452091635487966098499398817167297388719874181079693894528794311416419350680605467495347173966936888692906707302003129618808725898462655494081576226295017243206122679993857056728863970637059960227870783739846587316228600227369490730607570927550148324056027444044529041661009986253746414664312302547114355780339707476426428874552129806517428157390264298597561274940115242999869456447500879189254866804832993534939663732215122027426141213851359920255737415935984210786428324658585970895236823752224573320698597779646493017799959711030644962854337394142474292264965094321676531691753622402629583712137088719096616824365403067178733097440993920242721749543401660495144917095209360996340724205774635693656332295468447466801390235570363417538140818418974225911090791700061648405861129019455489192578749694036996816559205762014361717862627796428513457862091551818669325070496417256747820694501393868159527096061252177973782422537265752145439467883337882019553231815514111207099972490646264232400182905416893456733896509855462492155899835829337311458307382317775821580427031972147127887367858711189655742024223214966064345637285570228177929761052546783254198612283356220889624776085318872892898657019990808422311385705396238209919261479691539652203047997320287470802310360064103645770747018126314105169642828956943044109048857453341478772891227489632006274319016517145250121601551970695164054367792280677308928322827155718160172494323553404000549591296141314075582563776434422033114490166992812599194588626059444549371530710588040384130127658122095015681644470779192200514041476134803931549500953290663642044974963866864516711512795449908031875513044984827309986458751734187236291548117318481683234803647707761268248834548427487011426239658772868691627443512612430963165671249785395871707812115668272019336926898560530097972254152432312681300568079216894042156921057290517030888728689298670868566804155636914201491480937468966113562749891867584679264429027742844792344001706872491139038012199075731191240859615476026828674721738281460115333339085274309291544509566075045762751403561747318387896592788676477280519770528597697601143581478600013451264753425372929416671104951284003449829370357527650935070561832984033531747110368767942529098634775452252975241077617816534116136950334575967005571640884445110795876346024180750090049903717097562929416149103565768778056622620309345578191925261836549362230168899366453706544006388180928883501267769982150960957907214629318766927705333076460203746430905877286584471444909147467067649304788474581575296391532659123406000548176912290686055961177660042401847527443681969594358414778958450929868888578086147615922077511680681035291088471371552799311940329003376913605211896825910971164852294351265428675516250920191851761916408745524524236374860281002268248764668585787857102282058030691296241412754345948721119984320332603067619206493223807566662585343541322898166808886395007393839747329169399708110645443391337014820461033097751900914747234196858695486852374399205208208957754136474070395699187049084134741782540114054540824301494729035266307331761479424755875758210040607494544499975652341744623873300769195915412484306542022352325367519250528210641684568834749475819205929997004676185755758864777407235433628463833136246241152576109319698655895050538519640264889738440320649939880190269727040765825786870783507474016329942133234031032998995055592348076382580040649047462426732679500936412130428304963279397834905312468279686771292358250730302911895519696812877585081867007555993026463976740600074337242102463797030530041612895440463193553833825342842456034789005955332089789481226917023262128236646574316220607734071050470788798091869057736936530920209866826129000934783947998517114756827072349523967305215462112602689568122095998529054985853013400093091551766345860243489258637092426094703996303744623217047888457587422785008469245312123347356926543349396793528156342319778478563874014336225749783485613727149811458892563010005987553238935118248534976681835163947365401472683400216318771728677041431074705205297941819744648436026720790959417236512921555314187887827337408703778168455273337321412886805623809604461632683972463748747092963498828148382769612995421128570115890897241923439343653814624980443850936847301274248573939780553504979935680782314662935865461349400251768519304960157304096427466541055744603012804241845073308721410471676706190429398224805255892221698784843928652943891634920880776913573636844907388480655811178763558865399164299324759500870426430865503641994511298089675828811321123936910733389620657878207464782076093614886614204097395987332860447839326802542400932330882766702409565370674348588744315567348603028315625780417725293424750837873915814456412366211431579315732252686059803933767744295020991579429359206318118552431792992960606919412603918847090629326930557014738699495490525369339381493876867597615075128357211046216271349989611562131516554849369059147134989794741812381132747699717496545105220298643721952032671003677937728093686864275760186128958955054615883975226576986299636100993566386001558799966877812026384967977652161804356279262431601538200058290202454587817633766113807353985496625717957646598382501694792329158194436952759617884460899157834021997918651765619683069468316457528473139010667852471512947706058134566566596120121489299512795804058386698788209502394460330537900216875565767051532746379205919994885652589255871111201876120543550640828146060344894608564554534249547670429884890384994332773195030769189356351790298110573783292904771881446810136069923540233047837494599596956069700741071704025617755436588097079409480876762112288019695628069647315141344980993781869298631581150977439955079170091649812100177561357065474532562920241726421108259790978547311302947093329600762051099529269030737193872340641694709680449946726003917578547915635740898597307241476711202905926049116351695777636010166778347489569134291793505439908397614542136058789845422596303567276956915320678975113509637234823113554604810496627667217787008459993318302046149852377195471159709236614907823576937247239378633564598647548509884303101732055057604179344057678344526273450719765738884875486795885956489311540241183839810628150546744950163323408237819636599241747840415034747901250057057062831705795011530344137167661063891387767791614728295242681895326760976542252580661559960128870925683845864155503255908612825150969036679243735763461470648116687169053802967956397391997051741854332310542911264261897063555529843540142758959124295011699141623220447870730405134467828552409576396435398418109830122162665779183889933075303225299905651108860273385645022914732881887360798189516126033925505375477087908126089250754466484779701742300123653072374204370205909782121341557783548012467292274594820459927086882588170194863157453565085248491855524725684851013205665881883642989736325990942560294388299630180906302812637612991414808576598506271281371742468396513848075658758370871464519348795750228967684184941778597038373135166433517618114153092839785526986259424049661609968028545082521622008807813133522887119826893184572584924219064464076768874757886337010774373388667665679818409419792065076385814146742164854599756683202522715639990351279644543117928904736730438658232567190268342652914889410522777288743867641822935528147253557915525720966102768482928769908127467434214158442111092854396950449225433548435535185051520708056363547803285642097201050083243237753468092111305769296535102053121215967203925894505548548365892008199064078297738280209515784881145364525980739920225828828869769183365072384281777809067851786768687488163001032667395711505352420251736699159122837946206755494190583147426958092142086439698658091779826859313925795195640724154580404349540628650465228075218583663480755337096488793280103427911636125449289098152451875594435563223802939240189975001885411948015469564948883104762177307057716816485463304865676637943050769190629486526410123402983010412207278927075578878733203874151052276950413657656950662390071453684386413859960059318800849693280542095264430161424479155440890371608772438618513080646766044773460136666264781620063375605229916138721490054310704712874021813738580810392217973303557772989098421748002023972479065398710069575504047499991616494154260677958973905040723666240306582463172465364339928127850200526770828312467488030586453123948018957384865017253186513736018600502698100635418780582416775874982822054021237541229625850678192688014918651787133607784129257614887459516558303693229745924997381009505170522439248120070049562471752081083187196460541489587659814340677397354566989830516925131243992538246030728111628454631982159996790653084268085167960373337423513219737828866406032055933713184301667061642696599571214136924291062323076730200850946948086329279167199582980421700209324555196898796864340458956049016314935234541377734283846160886290400332188432733073266486595229767417620304758236607043621494654113158868646720757045216747583128984448814304562294539365787811533921315534861266898226757869647035286031882454925331535309773985748383815784773327653863978098100897572048315635604914194009272929622687609596299867823211704548450484389587824311160981177411382682214638985851139849822144161641311758272623801992308797321643732247568413699523930641144853833408321613576489332391999057556528032396012706784513970854550322965325406790841482403006409291473482788013103725794249656251429891200733909633737020261429992079415720897178482709254544526075598663371422789365444121739686077866571392118538414591795974176447488612396294888265178672321108082920736508805958193375737560621604371802386434543947284869599133202159479511428940583837786389460028496288072761322142046372337118660640122652545408107946494932285947840908920163829928295647240475440931857328825566412008161777971598719768802995680966719449570284990290358950943221948606388708120479243072951095661311147067881419617212584981541268978456598785888819143279397572412563492096900668857127628146683593143478352318169164033541633930417597660994896634039456559417022191597532689954942190871856634053693212943122359259168096735489527117006446370220495981481935202584768011684039301391112810408837091290866602670132260732710484173383734060011400595523568305559743542678860121115628683156005207684533829208545073967562650804445788223862600468443507630972745257431562287663872012545170668990076133503328797680385950632653340873691685509543561549807676855500094550299605776272587295871028363387826849771656935598130071526746644473780857401444832973643576839030138212564700771339210132044643549911852821268849573097409299209594285196250492994949271324967151649297501118289623191329817263225292767400666472014595266049000894466668106445437352177483816161310191235224085264653628688903556664615094232061144906306790300433203894937443812304848853829814278158450691511935111440529028988996875293937937515013049602758914475275788845399439377109907180203385223752449972845078487732079935654433422397210025662151977627903291645934586926131801913910262443487204330983208270976692644352811437250746086999117638226807394728113658990962101042336008040969985563222493808601839809740644234940005327278370350309115243048972752994196413366745378709202032311169851869980109683094664676834229426015832459272858042613592531552666257164987618159753640260287684243886134510309859010949312015127961033700135453547538804093650124369095034095192365332166623486565374628846574578697970207124999626826195218528766808966800269187395755108616384421655341480294842053040084275442431454598041183121188563717994551702868827207005904662961901719586150778080730483751665432196821861096716789940122022513121665593947490559215454702455908340980593415209523220754479004800124541173861426161763377649295363675213302205501964518094376636580865441873368363296155826595391616012967185495951039160105269112600292213590232890025436498317713248514224063034946714012099308229296924912047521979023123578382668822297893874988903190754525618066658304756470129888909832411166151489812898478771623294059139383897241799445887807082537743118680439085891328101559334530085168911533844724355176206748541347777400007006202517168794603419526415192726871000785646780622919612169656122905932935144083875775080519025948946031000730479730656501114210904458754057479503160838672536519297485316322360295209471678235953944945276151941171484018115724892432474867828850066917110144039663107838893726062286645842272165006616357146528779327073541818738423577788701859747578162244632491899995094298599220326893294710722737035388474800994965513414946701097766880402606858515748680157313274894860561700357600536232921031088117696213695338427634579803717211960319221095359428313659150357698684500846166907957589632714449766035954035068211215289933096662169784716897426411638876996498006507832121193345027614131070069428126618375352491544736920840959120143605494478642043823274833357012425976215493135648419262495250054180544279124306934973095012897562928901480740704947927640418297378527886582391037738561900557428508332291683967427089559771248417194569914008043902342075807529927181480876443864818121888088139100792654157624928381464321911522496468035086031791422752032883854316901157461816833033913549707561297524004933393613952616827774295100316482436663919136642204558081944415039403546925860102948249808039277958027749499874087895572287619608790380807695231687966447276530283715316930379854066803609045220204847849274880574388422081962198108266900388243933014977771324765391687219612974512315103354905340132110982292949267321162450587638884036235139389633387327673743748742697080893290338420606264945821580093752314171873244836235294654288122227644727980842785243681022181882293459176494166498530180705078835850327517413224065800235401626718845085892979687621574786508896357468423784784603518107889857240485902323914889198250551030511266172596146953914362484537325952561892515646773388460829377815937843193049706019237069492022185571950770349849987266866833059414699448502180590826238017390434869899177984492205289868446701233767067263954186420491178592721624528924465981128869569295315774071594575479638516453957816731794604518863641002806710721757405621735914927485916875022843700239678886984323191416044191182813042370116224863943779416614277490036653437826421351510928002061010105494504396193954417045731437712617723475767682704625643312326735870475551652475048162445373201380163143383496049223935111926271423049375337985784280735337129638315363062307967238653034672425643077566888769133368764609054163153321399220611903933019335863390304309639006929167469513541842823541732326411146133526560215445698418759688534716780807772382361061122775989692168566857243120767578642116499246442626404456359803579802664936681463744640107930874003564009621797836459231819173803138763959809626391511216659191013362214133591530917495642583718533697636680794168761683378043988570287005569554252982751755310845103509106974711513391391214647109732782093170722197506504524699157296512661626340131629209706891037035059089470398819050851876806978836637289413013310037448483317248930418820870637738715289482385290035967832767300477571541619681300518248075457995675933204159245983074995543759503193523417362542464360823836400302537911907708715483051525306119306496729168878615451058585322323028594409001955626273012110826312950173115712857155196962591997520772350351077190046897440297970588820612511054960062126789280129820436593585607971573544404809574269515652343438195230906351418418781814017739119457737755801466510513649923664588881842614691111083705624146774854431909913182653175277212426630781494990188161080123899062466694076986635641906709535158126665824443277017741916882387531668192851901481375847149879149344185216002901893687589606543744089872575881286716338990547086642692603615283535191291079016685576064252569453096222086696609785219430128645307753987688952767292866733151536012107876772474393127496356670461737419081446237685968840972093059351627235599345211172869201342262906879053299303312922278248179126120913726003302956627064966520626315323139142625322152210123662795906819011873091793895115411547746669873097641729883829103601851567724025580117044782755082124765303326945234936968618612074749522997266086752179370430748327732733607391843735249743877534122619470043535929048846236246881317230665532893093417187170551244593168935124065627566904092550224900303734489875612507804195323884956982805115349902993011252745583102786115520904069562372173856412571098080101750568847585324654302139304358857109019678197273381797958978719657933533594060368957684398710879540539224056055047895213637533300311974144579303903953856130987211579413748886906327225693113223415851718488647154691564519343792827505440958769140655042792800038130907739885898847408739356740512277798154307212864239561897979463939822545397393065460023756107815022571835695250550577996760061068034430876875520432491434235348668432130050868572587554339764964735960996073139986697510827965002359324751521477493076108808708193958097375068288646810257143449056253033732101877469718000413179123068203892515978404301039762298613254146641925349317947539488292044546251304851508756222579028706610307791411380904715028702856500500973746625061219443721972691386594234259082427696056054363178930352029426650284711922924236747752032445230970148529670209260795501330097282640755253640778650659911076111387682624168827688896589795308245091920335791258634321153218926208386902342892749843855786132743828052590702845578759155077910015178905761054930990253767260985078511198545313422149849710418360821105522047836999165031002799978212781714916320966294546916282680141567719999205857411819003456604743237110840966262315876305333961155585676929762579990265392892452666191406664640373992306761913413661936336317127084801962640783467896423035861146943150574014175749654660472031926262568665223690729938833258379326077158760160578935026689511506621180655392086406225300018530993417944742959042141577525171353697533149231703069126272076908740513563168338830156321240763218840748489725459377574102623004118664180875136958406975889748896947212655853064519561460013985342069409770850311453376664780443870069555882465093261039202405192673538136576375022518588019253929045382113178258344923884981380641326972699274914795555338477928303493755670013784071981704969491685477095209410058234153879308700019327276552620357593575362318648436996046117263596802516500811384573069315547280899198374015576385587815816548472795968928630264297681643610653471495313206204586218432195159124979550864990481838335963652427726305684537476110816613623889401798277274051271133598007543995637042073752478348231810516870886000342359663821124173156596730903287272930897072146071986213391655193052580899277924988351587197540435027466709363104468794296619185438157942622196003458161671695249842873396810021504990085737097707443512585069337165738095687201821356335465225513882346498090560529555897431235820933029491246000349971087513362906767637583384212143382290431543221027068378039663686161411018865184195416955072720473227707703070949853934513386932465326035734500244184484125872037933601615706186759064311499695351042370020301769937475722642829175947093900208029545659482756636360467971690683066609176932524114003398790687998149242465846294709073566975365345657766233281470600588702910369343372320495288888040114069550502605166635337048803366454651095646102687449084779389928800851839850788630127660143055896017107081998788299871793358921344055259833372488005494511891344126585972107756683974353905066586174303756234387340515429092231823106238541547732700099672111705480261776808343324138404198480080604209114731043888974332212373419806431149212090347873227143397837052732205072878814043118409681171227121122120998353960965813818747620749736015069229849819502144615732283330712602814076487587723075167950771627154491895136229507478500611313680207013961917184639871265445267626660858011222395236082352833418547008828153650625335627310554517300106020227209318773784888946155667942752016788810298624309227842094404843920833640530067484480336783292858133570135684356501604888989628680537679827838605260345815396206249949770193817041806201302285065401297107973865100044245059912666559483847293606028739171458841647080307841716288042544847294092414405883918641605464213638384604134212070069401727205466283274088756872555128529066479533756178052292528033331459318552321986900057857542797185337989301121396264274335975705113309868975210312251891885088320519319392234011795580952948704674272267322407192965528308933330564479735050179425202683581633576355244457536742429727041068855920719992659881742192713093781183684585627567006388011321880180643203042251452357416106206815301014353305416136402465254064959320476468577368230296972441250330288334331015032437144206924230861250351288347267363523281017358906554908609445972444399655347278033179950844690640370866609133839019013057276384573077793323834645474719600581153914428292378333684910099567552767202839171101348345191492421445604027191707989604053785060868584387398461076621221645744243086688785861601107092461381462815652360268820269618365038675291268902395063142132636240820236814405330172505921234753370449682875903055232777867289596322925164694069396838645704962249640607799621833099485666537363528225545810834371053035128666762129300830936764755456043315835708521026222943510182898476565589157661489406549427045873178139207247086490818726375208410249622466872786703859046581363193178817849433845000909335303521061968684647258473668926757660995477695285615927466614701129953924108271235458265828595337521599469975234140731245720569820756644134320513620720046320901424009749844918209270433033128687008333943922723646846905433690005999708306011259226169181103453559455704978702676549447715734965582962166459907451189762683700092623228094216017585831111630027603567213290370278612360233858732761117975902921599345780138505853888341378749428999727712613371898786430886027179690732756179848116314790589178369356370347573731256099387703471770510861175460175935421069266961096872512130317636016427216706928265359541661722833406482453505121800182003568177163248038305141555992465755458864925578153784453106534654900155631193263144363795472162962163525483015327123005649813827207690619959064173815267533581239063749085261433371854902425810195812261586349300239824542861297115009395682504616962947087574885093912870131977247608110626721140417146441616562635933606456453516202964802056064570090383172872489284537398301436649953950429179095406698265190848654266303699762862905380383653115110059009979166548610884408657363191528899195653053946637989061141806824668180054354909313027750930980276128274547270192229111793940252702061515348123454016550749279221065525102036086130606805560050755620700593828741577844098116148807711206801198359799794436036687176718354650301252183503467162513561129413919360260737502188830174211532367131649543819363234606726608214938035966386478716598476957285756836360730029427515110324453538068341211721926746474415477597590266837897567209533443986939997315351221011299746380354627817651631265948745917621768129826659951325214644650036616781663759154195661228702783251790248605375399486756057287878433205779793009874645415879407084807468205897787060306538252968958554966746592364295381041088075539149701170623097132590232906321217760408366435819846354036101214952299308358405719483344402562672823621019306911616501725484637370773559661236988083831700487247611182247287408564211388832039128743814351221201514934631007752027598464863658948147006960987762323276941936082268412385715575266392662255619101474760936852194938469918675519169134617038827081198215269862879871623768135560017444259706867921473990694038201212071224983074070978899972143412924174775114597416714550118251138337609362059972635401526303703051100101429777349247244339084403983346871704046770361497868093344540740913026681990229916076088973595842843746179696331246849504073887106874364356622255002077524965566238971791275571617624850450390635990873913379202224533749459360681940126604516539013872598835801719463237186188779950111406281884511056591895277011538293159857317894254801675778273982218445703311584718549510327575280584253269582008902734977659928240354989730755992302428096499548698119218548589956323848588193450314783811349379104622320958394359289104137680394046357701085745352894859772188360467410980942775557812840158050369025438136983999819114741215540808264078491145810694672079916366048052882681149945526244770713352420693772530928627128471844660409572993158313875199020191214173559779806481166032300215899139094497501961680509527777533955727435710735962862300478340400311246077728594506185398702005234113533382259595335905618837138907022928088188913358982207122523622463372023259524013722052489621863650898411679907214758326219332477242122315068259814760888175246443490343346128565188680728766170575550976400472171248270192660127611172807198931607193745384323830886887805870778373010060873369846293903655167364556928087982678629428912719342301989057997211242859841287325767304852083586491117326518003310323162235360772434867220901807873908989591123556732699867207731223481192263287181149695844660151871398010073906804312822895777996432228302880123598348947489573263819297004422746172956374032974375454861695672030192293615059617446300359208551471730861042014656436424053761070741919420302599645469403718990195959969821683391509138674415918375111680763732686309031892544624912074411528341450280742977331213737360426740799763006758735277293014809208845174498731872650492602694173810035183682857742974318364678014253440571418868946080529671124842160149887459038769799849044388257112839238148436930114569947648104417147394693513510462616560419190847214731073541651862408443687750893761852532786610483271213156797871224309304256417682638057957568982279799906768101389446815545927084624809716921538611988300528852549112417175628435776399192987172394713763895610366262736759632864798207825644016440032232543364975159345661151329167711407546369525023089988831865909544868679736987602648254987927554553749007685640441932993949980177730398780491415516079782515744142789910441133375543586090983510246520338438576931981309337545114502518546698197946881077697055790175718369600377433685145531098930066531291167198295150139068969861555104544184934190563947467539661281953787927815126993790734615070496654221881147057149130249552543599448619010671673810167590621116538374255353054116935985802942759547495705493029681541557498830576475042352993333542469015157651694542370098526810834149624024498052420893609252323988785399307531714765340948072143062299952715767982009946867069085029024673972790861785662292781933276611341563926698561786839069426753519252401293276118925221810422332663534424590087059542679273560097741778953590292906308002054256541350455287273529472036447793726835694509120931423820746774090830990909202437899349937975961997063762513247817085698475989068235929348406827993182367254510975566752497319650820376806470416964418248094867052657667721823754630953162399665733035018910648841908545307269596932952184618745847962239551107922573233444587754061176928000979948535895724818684561348495889368858535524419680799450336115152594889606730597258547298916977800129324703371810159819617366838088540146351111884357579091118024109404766504320219642344951407700755462538201393797903777510609333235825080675644596224832533605778178380669262919910498976908950981762601708313337528166067018583723408400131839221609908321398600671794019871285375706894981351072649329645145177988399728101861163955441954533384640959825387860254160984909226480195020909978984914779405528700450453917175795774838195997298925878606193255435167411694800245018360918387637860445291505917239783149629459113098722931619269104708026983168341544985759622246939123276352477937953508105713104447377701804251389714128371312879504739112932462261479344972366268671518049353090128505852769848405378623508346483831157503754332601912193307510412746509608490125263891460267042751656601046896598444089498632382438144895402428595016852655938587245563412885329090405882309536103554472128107004296134131518735521672728355640570418612010198396521287907381331628862072071443174833047102373857089979572094180010640050184627901436665734716081249443265745248295146182388782682853101100810828157316985282769897947690857449199459819079307334499254978057751089646314694564181795790605220203682003382248219862585287271806985121052288068099991912792818837906213922094085286567572915379423626198588200695452650050766397772707118646085871572837551807947422221016733903730776447346469841363637176319771993137026873512885317785193921172234129958386376728847072121610790628645223301524464590073356583756807052098147730789537827008788744737938631181054450441739166057573311328212437324761415469150738647707923115362225849855098673764575475711177273508542781586410742827392488045720951752707674939681703510012059072627480552622019557715354219207686698767944446650394429562119484663281449063233781456485688951673718818418546330257456822006527825559528115796534348671276029529980254619878859583065905717222524715118948558343568945629223974064211314084988015811728954955884610906958502557968166634590943988101507556408513653630527653422243787508012095608624620314715269739598617401280447707466134329157906717557351836069581244736342958728225995728159324913237207652262901051337319338435640312614242911550932270759866594506204499816692645644964577727088277555253910653113534533657597998793868504451095990259436381555517221780016056010288899502716123435425606681952064390454030454160500816138614915903100462486475190843337425320947706527124960310661119150880049196805077676900271902576905462157429826750767243881396577091163277395090763183274744985156245680354840602993265243821610178913735547302632222214545286403761716055621312509655978569958567631959849851984916372802650777275345299960294903644781891456031839203414827345201076667090694033066080986825946205799559256400824757066320017040754421640016473504538784947903187783006622654353848868254744301046741895559808894805041990345431967465982914245016177053237033425699331188118377924110515066899049492237098304140256996999111538027730134703055508192874809765552737978529969546599358664936759782440402920521409728456869087043526014184044130930102971753346361390776670613171780193814994910553322934988959425881088172256688128356600853627380583854178432096295843344567205773215341854846195297251282053881686031506723240886805534830100050228527380428728949342728208642544833818246682086836455053442949279247638820407332634690328023072080154149772205374237928362191421798121793438129420270914948520266817623535007585793693819229901722628354376474778472694341181975134341291945985256070622836542654798511460746171900547059055562658209493137458584124079251300358971226449241858863570079657188701539701897476150360681753653803832777976985102727234402600028376428072101456935203477557652111533208751412356911720484544562276077446862615412361387030643589321006349914042488861306755572972467872826205704453761818950809448912363395372664272741088029172818072100626114699550906011716413954170553700049035316338722927381715190659872400087183665980590329852278088186919459867345858633023158302233724169041850111790460885579611341367127590186421996398247840843860377972058787104998678083303408666997114436117740840466531562043028843403255535709543110515517814387447434582974570799626678090251843240755178538232960105494721530163459251444137302835993732529612049333635465546694468503924674570971744066490096589035473219370907809667463005823807795932307488948314485802723436234800606829514877825596957776509813147839163409195461029831775571798741407765394076121810292719199202901486607853054610660500951526191123612356592529343508558332271821777989773403195564241884050155417902475992392046685989885807142176404530560945836517328402025751637167923786757504435719340812404740038422865808448261198260099671439155378182021149440367905259170692176432594756314617745001438888409858667155451194313181807416401062096535373786185455425860493375382039708819955774226394060948460208042393673262208088676197683821174843367451226515719534988259430507565752821172949946766216134671519537222940961107492352144589693808126947069538596982146641000381792869092462726019240632418109979958058178766457994135650901981847365806693665350362541077175325302701639369340498580055905426434902959989068494740203395415790670542989942062178303909331943169426037324373459193828563358499476758503780425336849127236944107048849841134581005194476898696604372068500252053255017121305710451322456843314871934994373496683740084348294334531776175922102781618033724839000441608837525527542469209815564003719137154845054133139417687496496806923883070412034663261218576292076644329237686247931926536142277675655185705191653651711813610027890322295921196862279515948045999980153863523308664407285125598693159898470438402874486248753607982421910987063888891201253937619368212345559935472924551958741141811958793876608380614355694423815278993305565577281747814422792249982899183050035838143180290172878527497106122093425712875125352264083922633702169215140417147720791437679112660516488748965070113353526283557458351333508707085251843768277493159314650667915566505585547429468943814186171297645562821195627653541298996515440326241132383961018835202963367442716164878636022181035331993811372095078604569378895336879743731638380161555547202572020991047127263027771074548816867055668263349822349707573788621544293415491096544085637887542005388374032137132666025676109690649535612396479765172275058695529728021451440448040497951979956742042332143145535884622962587848121627310805198054719956171401033110681396099224443040128288524150001471667842333175832770111672097347482351730832004119536000928898498951365595893911440639953584383941142028811990133473182823391142329829630046220678100136062017181685341483631747615077492895482924648411614899813561713665059202342788908948889560451708959252487791227556548138215536627728499421710095427329076261591824081374825151742198632060053667368673381604377192656500608583769454513736748607690755709720903369368007766027445772975589929693630553738581124656885044225152794125795602583017262161419989570104222674146134272137468953392053092640490890436675198136866529943684884468136147289928241514615726544265596870616794305668706767263956617775192299509684712822595329348365768972522198326146897358698136139212794515834969044758106684608161295845077371246312554941644691176291436809549461061332665802413703770601667921422916888184672011678612479370176804131854951988396976689128044900267643685060444340070314989974078020986193810830766863283557978858552109183306364609784098454106901530656488498427129076399436958064429277730043229838751790025473625650131200573938488510986774026643511894993311076584036366497626448462402285390317907925037255139512624720468200254610017965543767351280448060720276371800859712137177749468425577991867674259462426149137165483820079324016400328248393328309246492151536567987344337471715886600171530780456701437202144648113691335222977625519319652625415341897467766371778635439265122585677978684477763321391181179376234470344741358588572180963192325337727343453916005333965706585984272619049710459447644548549279362570374037992152598453003329926709554210321047457760890843342845596841722414054775888334491180925794879295338000535889112114582025004510011560510289833722834939494774915175239313357107141111632313399746782464996027861426326022684678753790976879535718129636394438955540869964949909298372744977193479286093311564063644099097217812052471535520594661777589681632862680164140388184347396158507017350558849693914624470573969031450594971320915516310231659098702711448495670018660645088386634382892790537288376923428078653057623548951750084347872206098603531116965750312899948922263341074968440483960443994780419449760780835711310084407021841049376112019776233601946751048779226931197152923901062424725986259412754091449742774438503731528030545295079765801570829909095257388704315318215041011689997863448809038033614732569015001228731013854233581289617298913825505144474881337950036547046102177143016240793087823806782739128905348686416098807713127266716000199367575733135635979167952948937424042109382191078114265183834069009194745967667149782157263436158451336460544330954179244955294991974864703226369781625145689095650871841042857227010530299188308457670142312233133654863097261584162374691863799864978443526849360333840794813849247894663019703952565050848804113559003982828495056112716399878571405031696577611458869528686999398346721429512357655807540008067898924071571036593241121275864281037010751122637608850162262667618296836915493940694652820400594070917237810526702390897210854151055051498568337853534401229875808639439594512882147762661616148959543176926878978759660731969667863746841200456208836653389963516026718380843973162649833673498633108351345335220079297829871983455419238628751236957753641019549421581903674524778415757765825818125792705053354717746796450764116729777170257774566222909355420032684499945154618580360667171557513052785548622395117431676419781444529260845026355363944312651744068042296335925511569372337933246721217442755140822250221631715280131582268984665335680657539343087355104162079249297671289326873485837949049315334963348916432277096900997190911973828626151028404306807195116961829172038107196092164638650713134595136099115382707965482222928164978267654678842811829194165591010836958195288557575601163498804262157553831286500473914452083862222551439236809909756746063316903217003917901223105111951574233443241875787767990437917496174110731924636483197610266067949677808867434762541983360155064340287890416044060559916486586812128449596416786071246448985974082289356764201350921457906042152804617987300614447482557141705347758095355798993549831005972729719132503318940633553160437608811314165858049635828020590478018573687814330559530384861967985197696683276032281777982690491833139577368080230444030374948048837332224441076134061235077074420756485702659140943476133971877698729847328722396622979639573396053674585017013724868346450864795290075905082001739645878461066177274215582067904914335418304985645006269685942919122529782476914852447978827928428606526473228919209812926178713913760120293189836964846018085726261167217509970324622266956356858574118474869253930814163522887953707342664298787310563468962014445735017762615486567743585583782052153246057789368125385928010136259559380301128932458648464898922647364468438303694516873405945878167445356260613939075669049455387577595969504018654341136566024087334840123702321670069065135146118044137706013214863171241181492334508257880425364544230889799115705143514240086058389505860267118040325585587710208372432439946251722906482035562995523441656612404189439285861868715252903527199245551267131193304946597664411643368740426088169843567288181009690445276336865071198638210789552994752807335625090622052573228877969879470553838532960545656314711210911713179660415461598299375860560062869441884368385270195457674182112785568158326163900459351561327664300813831391517678675411742261077792583381133513848628093692599428679228753939828280447246340863615985039205211356050625571105288015424213167632963470097332735583258147119737311333138884801947126523915147725224437482305592723457732936925698119276741268011829969849214889828400946055385580035414516716641428383680777970095120701531703204210238950034842067809091460722250839547098624267250933876452659385832211224684251384615521054382743625286270614466000317428948271645255983701189910628107141010311402517265781757435259583495366379358123204306137153426916449424814675129370298030011975167993333890834843176264974581411836906111841838249929073136851340291960078717142743404147342888560441756162079972891856559559020890390401981197391683029832469812460051135990829808942370377719566050099271363009942190081232132319507747235150607425234856656608235704172984127566940301152698113473149081345719951941411811188114434651269298829781671231574110218772965690162436954336246522480328393150521865424932296389457946172592184804900637787341464177703270311494065925142163626655402853676880343169135669610298817915117132216249134543250540420094090003312217443614229644124806202973165879460208427666485011017797886321860498668301244469170614492579816907023089644788064176368630535667599780376892966815970581825799344028437310236294340445594513566757937185803547255738045684672020529808072766116305232237637087998631206074903515662392420213058674613656059031807661621751338870360449371375854932577791909230242532854952769052787234285935426096998509649787752519748103115411461304143804089184604383562056909807232442985456201858598070401053671412237336325584896242934127326909598832254436930412117121726638984756248919238922234185725522990543131740962439261040318324557093030131132808264680518935990734136181408359270112288617696559136542422402420162243969563786674692835742057901284398103295955399710214007513775644965520594052913950217960305908603053677570638608124556655570388859763942871473026223948124734976366074695806462476794920847525982328379873223532398861873395266816155566861835107043211181932841738708967002122767664301606723667481366297019247247065785059232011410672896441783328798045634094166670718080866081144188061568687501476560506009648270477844819895238904504197380153079749545501766073144588706560219996093390985484820152187580776069716614822653603261594359325397179836626264128350986043633734282035877130135056460701333486122686220862005808505929150690395558524547130172564050009591156966534101800255969454491121786836456980306827902119122215575866977395828815388607249183631847681128017969055021069147669603032286830495203415912700559582457512321755593513917306898591545493765788533258717479011419874206532698637205605490448088435489844120123884928675759944980964163068276245123608606752963560001983184534312841976287600757556659990621329892407758911222121161411686001734007241626444018617143014062658411032504137362326390166839746111640681770267729568901670795040079662990493124563154516654166169770215141775571346027406014962800121253203806908290009351647170244983719095917480667424205655934968988475586229138356715748526993143652563897782012583590582058204909579940371777759626036744496219761647483014106901417941315511940742298368625652135459116789581641341871744557267158947527366888208970523080034936307060338127865636215248745970929484341970705580102950381433748941010237039037100528272255457856625831542921293507751326588124679499003974589791018760609680254106751451262783189115362130831192449900405476646967061516280149468858397491934945159136045497764482747401336255098142554608958343697224099368565545895912630075887038088675859670995090091666852633876470446442994525760461543981777248065507098048401918609892996020829023346443766722491767846770154168515127525719602373313937172162556560001331478992692877051629558844281341891877061256666496412587286463586173321477630642582252568534312200182988443250553960280446228503074687855378514572274118601330989684941890838871974192515124818878466293517842688700785852635279033880164135763289897602213588084614050537126035681522647393573236519104372711817090506369435806755896475187861566775844565635938318625797282648769730527432251603305548968276812840946048854466091240605950520204545634190560084942051165151475431414498330510651851951069986777996815844603465498963863264160721661807276760129683113950544130625637449537616675416402601972665713703621931668281361308965478194162901266148774594020148443743355167983485944294817863832968756874453592894686653414069803629666312169184619109134639985072684397607958906075630493515223107780493949430286569010914519443677737719930408122711494398515614578780530439088586715320420332917229478371460105410174611703008051277541055049637299845713857929431234835370605121790813645605855782291171900673788777116737498480144291848426381476864659887822684544893607773947092545381436794745522609917776904614048483533568593345120856254163350318241879636354030329718737459797111639316269985059262823661633955288072576045336493319284007292518853827323613353215351121123157383344380636788345383274094520862089746188591917952506128536758987849103946694848909384924979731778631960919496378593875790983522368166681403141854120680781430101077323541343470669767602730236578293135681470170729373425553840343817050105735890856748148812199367460756294441700659850033175798464612553003145785518136529116492052622971764445233484377835559582290424201958189926822923966908906169968759697739628548389789305094774855871545284139382716994491064985584963899352241147638879830904406946635625908950103601920510776000921089623673188996532302951837933799201778351815035731321400835099664557884435580093608050388702719579408321986915306098603786688641238885540619056895295288051846797850725745379389301809821508765881137287870085129127203241509988439606864992981301264899816220337474699869636899300584922513898845009357438785740060779070868312319923489184718246696487657929611875790575479440199235433851373155336433917006439853379264770739726043483686472124752294160401505659492741030087446044389082203050717463988794104891143127119175634697127604186259636316760971516920860864798104560961965670987582977189712591465542955804253363352981442719191054499358307833529632420035008575588551753522581791883640020331937407969611985110725860622529261025235678187202768273283865876427140345439865290761560347911266749224723106166596713494959213678485561057846317573899651094525781251186384374579444331745992499218415377275000177231023435867576528635154807685131871059953925906900034298526754330915381278836885680252059868727295551979769537526907126075296866876220274710808680381437110214850424992439473122190912835913730652546427674491992423158166906068392190946928581301877761175741432382778508114525419529921357069346619483335347715911295047898668874853988061029354779373163164884725584802486722552764482673688460468922026874483603843885029688978080686748158869823154292289773035245242261951211044162126492085895504928725801476027625382188605659305575895407552219615293007737065886257292058514013879180090876581654408810067713153475056724781170160834447410113263590687271201249795343361313442620209720891582570317512430566722739980537001393837094321054846517904105955490569673000176557320644401951943397159775373023950317506128268905322925970470529952327112950869487662636195039726894974519437821880333988940912853215542166258981052628631542129790961145562937874212149508096449644810648670393535249310941052805408690926576612014206795432993659961175562745741596076974573802159833256229777239419995287706048786199259931375092645085710935784714914062825726461594794821589525177665500812812943164666698307342185433234648341008282591175611308030904302804323757565134291510931881722589364696041450795902803412972993861774910839382413306775972961952628794132581914509334094878807340797687423613914261530950796859001374643549747343394797676503666572257931306128671427669672846733564571891535942862397301179481414670181927498726147790377624146279627360472562063685249639187951850825908340714071295455193511502049286535442692668084738101038633533298407450288310469378406710866795135010950467872725991319154850146234443217912555456969055197990622522112240514335864788296160539441245805372884523385262431507175042868557995203579126297892561552413597723818900473558804110531476629833004465538268693162550155056072113872163194129153603420127977371979038445567424053681244725431199048005673653170903439525980185627889977745206146558556493973920669592137250316287971938659217278634870020406365447609653306807806560184796915233380062950682184908202949689261723931436478372689958711639173812370319012177689694112723931299858361851162059769947962637063224705549891337213026426113433915703377242587056226491588294711496864313160179124771145448310949552472499767167395502160381362632382020219589762643223035084052132644463074468781143235474584678800100312419754799799916642475289707239584698190980554490990944902434391452383736374356900704232734755487943365254895701349325864258604150123735455524183828012544411727552639628948300353013707558183387704093511767679575983160562754235962739356874686631069931321570281570150495750621823052837800618497019205694899783335985415024679860496884165869819704198397721049531171027215836351655874247383458291715848716590768736919943759787559956499592701906632797567097805267362300437990925373761188517348037679993987137358444998620194717381824350743928410651344707250308802797662819726744193730179252778117407306476738629688089339032461799263666420260961763477075696478025686181494453617583887089935642822189907262906540115617608057733076068166748030106933566158779920967483998743135364187673440297335524896836010610634691645074656988383236725816642062857639442453719801806708943492059456818901543578699827873960446129826400933100704550812433726840171820191296998888756118069341981509816739884614028846748452647210666025413136903085079007309272924349488211936935384661461518619160658069747734208117147194414420615867907406420037274109880530327704872610260398259238872513693654134648801557451805447217553092063635237418638937137072758409122013153696648256071845650440321163221765649302912224649395467730540925608301745863592360723198207405506550548978984663835998939824906545983429971221767085583131799646069569256712388565770443244959528361967419735896134309271577814489627130241599819526546927534062800622413179122424546726869235074178151442209200107301496225424049272847961418120564276091372410233708010479684424538297450692126533759342976652589476578470204210651642888089530248812906230943718792104541962832478076842032953373863379262449594510641327132160342878421544490427133035002847359111875442247522307390420486383820643879891200922180505423074413098833124411799579928309344226624968266235633873299272054186232831018824191186730737851723777725439967906055778291804574172775267879654348901166880044384700936548204568189188550196788106409127757811203610304012785122069603964831416598230711865356765437231652272540541718504783962072786538146682538297201963123434027278725458482913156024128124067734220006500485807790952902306907816446208967037065635282955353457165892018573028332032570617628881945682645505296834326759528661032240042577345870565834828480991146310104726765042807175917587005620256999987245941438996695096686074669712750950098533672751434293369359250441882527659603069661917082176870089265928360967746517069007908369136626444795559274316180989750936157120725463352024707506685151488105683102031506717118977243323541682975525911699147674786504640900422741444397100852625421614484544350003698954330388678626369249221942724690493675486007410183197226774206986087555179780913921665119765450477366996239662739805985755878450637967946217386911695611260929129758214174239507732141345075147711165070745708878898642777208346172530600444740721907987003408352640404871521337874807242494786537984160056550787101410778136498923935179010772183885888418572776900797545634601574693542523095618627318304154588351125669343852900612833989328347160469015925672104680607790814082734721292906575565750510951155552533433853267303391964893491403441505685824653391119326240923265505552510180955111266313345377326643715012566028359994158291454580974884557749104187519308557262886296095224009857943658214180037429582161501258240354130898959680095693887446984230345762551362580697203648468880757928833738444685710979203584600868245590504828939683998343759476759698051159840173450800794599839551497939677474575741671709931687868452864005763679198751455140807777346415266926286933553463826608229495633591319344653358792676254727456851384443637793479008377345141348994251022550405482829423056127717187899017373059449525927185297708686905034368654479369782262568307955131955178031671814480735093749565704294837210503336738066096468857134858836247175417076735438026514785098834203147773495592776241052826006407093271499794384739211936220920351515348566937475903147592762523356601694358351484232405911828518352137169002798017930815252769396627794015608022994603088199908827118884103015248386251296295688694132896222018845717807271178895907766970238811015667908913270150961838670820323742166811743101927242985123042135410610133070040905508124383766766099599534928599593638443469431503969457393769090715223586640004906651701626220637609353001407832450404725646307471194034109124282231979024557150179796457623190343411272403212259114582532006222938478204298457954379101790453592508896442085419851846937429701082459818791288254322978406397845884204280301324671302952414549990071016641045908922750867678422754042326588343624078287621670146666561442500516602008359869061707898295486809127467272167853659885121898771912999108191827729213121493920851146798536018285242071137615050938553642978026393579239718258214928081605226981089592478207982506635170854523720573882148980106550908470533360711825179553270978109735910452490746761798644322607914092439087761133882666775120650759615066140408565121666040801515260297493136142487822628649538764353338949400069614361870881144700400711646948500570948059783471830327284694467765654814631871765179475255226801194019629020817953799697133461198273635568901296873231594291374317577564308222758078645708740161087461074093283266193629580409535057058389059742752189087599875344673165129213264608317281023567512642904408808149074451933691628615297878633772046247820251837677527883982208095119161154477065495150526890360663519167081893113842024135977080484838497011685283048501409559816429620817159907652307226833443966799578132916830753444243135079541348986581705279746260260426566285578696640385088819449090065271921709264989069833506455609807896120052830214781432379991745992530017575781954395188903513756926725852432903611315262641886391762271112822686987213856407082486764927803463688362405947332528169303254693731193343503707985455488286780843412923269465641831337938682096351269275496128282136101014568043034804593023952870114334655594233663531061296750382540273066732700539938634735973502351416619215093632502303704917657786990788899667706097524948000396253494241438632444690691006658634385569499023139483379908952658964421596013968734711440528693799618616001079632174110749809360743022696665891378730604992331436641648500072367621301989293429505737315297946914777037489336774763587889467500891114715390008174605431813036340781582187811749898949702139690131120784613691988454398527907533485289391145240833021778462879854856369709361632425783794593369305938731104735216273139207441010738926590273551995556963275733208964837201347630965154823733230669435526787769184698218253679075127675883182587907009638922135291506282322740109033842172965241407018129687193176422177206695831744586685014243871175488608727557596973404185459469735621416647901768515150380850802008049739413157170194663883614685459328637580126046447388330534409736547775841018852319302518114065629942890773471711595352440977734420800825877390486692166625730690814519588593654403876056543898338677685468448416579735377106322824133192737736435025516801406227118334487779640752645787244916200186292387555274465119102558197055904185166668413611392229950229279827258344672294443226503322435965193722391445356946812975800535776981783564330014322456026372888927161092235473779294621925127176448683930056023842809035199821067956873907674881324372315539055186313125849717363510633402118776969416642694166569035428999735169508705623125757450509505669577261114589442126308029548661757536067046811973219196995361010847260020539172595196484761679618059031352967515153467436352984131300674159345148287562181821478161281430351890848321550156954920283561519970670978631638190427731407336167787572893254714591605880132684654657480441651350983925538501718669400708505275525777894141757247338414033499688463660591358728489356013624802082951589601386874690114838702270301679185317073363640167075559228426574228409594759517852004584063110464440039972800952274291976635255399679073143598629608359683318768433012067868597183730292407028424157127267709736781782787176612886490268419872512447813509723418994878833028122980793871973594639931501081356479156714190860797836395622222863285492622575960196382806463409666362523036384487371405594791426213865169242872146829622286171705567327820694604184463915051002626367052725690556329478778250659220456381256799415983425640037958323011567201923159088045028924615597948954316789317660628006705192861244307834777334250105682932031638544999359212389128140351775129451820903913863671871737498187481262193461053553324189108931855798537976444080680080261054082832792241991537321146807495765636349110316312984769829670402300367485455758747729856045551767972318854729979263629375870259816911623166707194106235927972761755938045496635009570336983539007565514277071157522292481658116274005976595660132620985445119619099143927487195293565001914883920170067625878821051721487934353929386774709902098752749418332427759795575848270923774021224723148271325769569295188791120397890897109016220767665098203016737868086373598353084166964825664771945104080535928889967645735156828167757382680423005654668893891796836716050830378021856235156156823982893489506334253449633272347485942673599986844843446429114550114583756482635245945547169104285968377211036344757696790216738283491131573767632939936980153611941228349785522933709303946710195373578099413524252415756259939108431869087015515633626111863686864763393602461181811105656994484385982314689858285328298600034791530569369694920051988193611039077469071476052938672296416046584287794738814004062277444331636486079098109700708820065714638676752995104365183690241334961334557100233695810418112792307066902592373344720597533629498825523054424466643633983957145324134335075444078174537983740241788562948545890190444254777978144969865741723875581844066340919657301489080627168623786378124608939556671245918563238298891144418427125332940532707889269090209703507579654324398006247926754755367803251280492976863740315827290223503422579515730419523601265394586395958157179718493215013138264424461971601101072974390616947179204991413187673702873592169038894712560076418461540948791752289343272959728561814097378659290038663376697083785549786248206642846212340685767197046705472213632246549019139915762857120972565961770249529263151115314498867764339576148011630488273427161466363208618676246430286615057144444450601646611080515171700642084200085806233273316930629986443269085898410124653461289705300133210260687387144374196195179434696042628708090876767142254879821293617880449630007200773550224630971106608308808041074606874596038809322547377490966866927966500991331606208389091115716586149998377174918751714477301080015512588555339985149257500511118795807548708989654441377007542664316704377506885219325797124821502593545561826833607644902326242899098032432555523501521738066940843906534531392057335744383754028100482033277261782296221997387048027720534731108476809433288084468875104517855305746852817376639068966641131654256652291623557521286505239476985241095262375699043727248516454133221591555043889412733484339312651018555784300281684575455925333265755530624659523354341836994648168920118323690463810208931549635059134527502735383859785309954231434318803503865245497791042974933923610205143946952183683248953247266508185805306218673744416190717682864984985696521057058321109509173720844694046793778383956605875296511053173878030592763473038978404946222756818648281239124144807872651701059847401596767207181820779726005022521991099806234237018999023571593396079202447348211099562451952864729176695272537801504888900602787203363229165096926458419014375798887237895082493607685894015838142816519678004788696921014251843871814531438715605882803258910840332761870454683278609978872306241849057506139080480209129876035316371032192587793513188309381589824559589851778002388612412301701065990192278670107980893619947268118240070117836062672260512287215229302175644594706925985796827157589763370510965480453749214464163474871153836731016639876442680382863164989184482489754151448810192032243801335257352146733698228202570260945538199214606882790951670204058932594386760968085543809283402864360025276306297096588453831081121324346769108685572106243153994889568835597990124320122242484409304267562081377284631907155857798883308006768908535994818455991419976445619558552449184200852316898899654240349356530975500223828387518395064021608239323035146222570974390515058257939360667332139835987157450136823481790609330086138063792094979616658538646674547300424627702070624873781800827611899173487599152335387850553243041357999752735002368939103241779357517265097277553419715159345514364619781774881024199759758096664328577623246748178071190501831873758901318479248208602266535274802750394914548622495027806151336535671848316519850141997814886450771056135521403393154897547405957700213254729471878479818286919761028907265547275061785298432546448865772587524893714329336844466566811180899659337639584484024695270488157580673061770016433507017268352162076836985356907133211312656135879207763737775046383122375671517585354527392309942858915429848094526896295340443037880933105001956004012054221418477347405783310301976086403603381393939582760418536266658533190548187481168757155527279769414509575580296840490687255826221424007944883090047163728360458754066092300142099933081281222176664114907433506584511716606490578671982331713050512567942521187857757663313176836541022196110187237464144352429995173249097432913371046010636071672451056015717257888079979847495978237919229563449084689022540832748463601412169873270253707442145771488983385379888372707393815890413823183981555773218788203963003263890854725719278684802161010008519518491044136141392638624744545835235144895704725389712096907654870756090347909607033879579247803652822263193236511449263213477235429788199617171748533632363694733754979749042630851334145232554499732735971629330158954986615031994081151644069503732121168391318210155171468031482466648820591207737776704209596732511394385107865728349286660397911156716236230137466928727889068495009821475635279991336749155479235554672922252110656392624249738477461176359511376471362515826899048597398929331769532654099683374384815770085403171245297618694030587660796851369671065994133720996611215042373467253865526893842730118193603617161728509691937213415394628467523579221161127309514742182682444917907311238391834193824499180039545701969115821324190798056272299646855293490722492966011616471745409875162181738643719548875204010775203717395171409619492882685315897126718045020096095739584870997988511425716808273897161149865390045772605635709552154234897639980802741244001578320991724257284105767858420209420390731610735258730049988773397874713243149415960374840855102352733645252998532639680221451632837634882491521431178090902613358280436802031477112951704945435214783088813016818513217771560028388284462612589392384991529595205357636467708921548407301357943864883011744109142153014806693567888228238633381857691220280212780448675034282240936356700870346862145276685794460469822722984816814307819677571350387462484695111613540281618131056775810790520806357165677371497231826646857215960183686495416365390413685752797917444512455212151584345245879949311370766477954950200032058033043882846204746094705191362907863981074791994247108432576587215131506537302628739006172354825842927079182615898357946368799866872741146735885206538743907428748024102907374474981499891058362394234779972451909873018686926327667420452846480705457516809309448718424153007211729584868405533535007032556859471013871606364926980933409966707110897964774689410879109371199386447086178191491804496485430975281807540115631939639684750769576958003602286158744950090188970019831444696420208083219663904260958040544039680874654061920638101127117603289219290046975493146085153685284021478109927388489184449967941729226893432678655664865458702872051427082301364557152104737564151273842683840143718610611717048915085484606792374355686933031078312341310307290346498607526988727442636386561359504669803684437871790859122767811351712626386979859293686963784090386431566926847896431508989474218940376908645950523189789911371580263363621660994622292350771289020321749392658793416485482934282698189040713500257008486034633665583023342361060727896225170907051912263752526037067607146654229723434956052639618393983736595928307406091777254934396596240894977040227368802627673400805021717451028119850571042942824505012049635436282965997380029130450562109906994443415381145284966004767540488227216404637154080531604610641979596326801978242550238615432346415951964228529628499761943499132286988618541410067372596167285747200226705007716231101524480234000706106010344408587307768325633329485349630977925861149252719372830979897067470104335895724750930993735143506262499126264564453834121942194183287402239748685158494062686087171139877919947323617261624616068064627272509607364399670864848628037036901442917992147619209403516337649625513864015064742033048259169127305838795567669647994139431013866533079058054943348973524534994816303851871468705385549646773639669468888415538284106981763350762524515613228592901041381412964303179037107953975903374672495994602954051359627807727561679289025896994210240632741036286340312065255744568733746995591748656593204354882597301482455064200749881749179755813413118163996053134596927258296892859293082613026047918192112302231504587274323718221163310803613706361476361717912403239828562522325504559870958705497563234040222490045688247313220297851248341894436507126116609259292984549332852239287074782793303384911979353282676863450177448161405717384340620731888102088200023213768068742884861129402552999609203486912847783622528759446688860210468503664999469257340523236252034598200039006191224862829160405562428037988983454251193989653141591545439253405230082635189675509776733527701855483992933345725454207674779179910114713707913379881106594849879486095998843043332647335645229926673321371844453851858920079903499611054053168264515582065104960328641239795558319514738501965494049320103936968424480849294198904815050925893480411219358417362210039505717228618326495762772183310371619651098476869178629327106823099246498262339688177741683973907059653024102068793167538202170149133318578315650025372614262341666486091197175500242039952185056338053442715796951473142859325243644457137056751378941951746699373046391697646232835796040690522657838294862168967897834212487304702181710382482918867218191346273626868487066266555193616542881019275235718266837906103963372027733647599579704393776823760298669637359576330825709394728992524114594555757423775675078575477491755321177070169623589391781536585754387327364005820393175046188664114449565216110833078698442203422659248376616905566403059134008658450160138082536379817840724772482974761789884358770690004901115869447864661049573164535434607898162736109007880515011030521807029274553156158366168144095278814417844918640705590493575883407032580084902554170086005108411583847816766319815204600776405848934851165654318190085024605628852551934915127889249901370886180590841322361571135411116592258651049186142574904704027940366010250362946978680797822634604354671014432157677111951853578231704046140405181058577115781467629116834083925420569710088079122722825256276174138585011336008262285797211594342805319533088125667040654401290877727921443205912869856811761069373250271229867040446211154589198554580596087539437395962135428488750441836770703034162470685439857273523261918864580560517273206778796833670773881942997483479949878140373133819055934818961704629154963972194299587702199757421655467974022599525332216338117861875482409091033643194949037826864782877019750897906548194857655191617369546759864836581839163674020338280059706295126224417499274899421097520097192328711096345039065511299174278015980682722929459079329827754574395056784791069436831267419161377259267912035541201556148542575239314727370514074989472431417667911559292908322402975232751829240634358796760333434364267544267791857599425605797511014449474614882672889045560281087894867314329050277883248739996070014635963555013916589687772116124027382925576372723197279454131227901693186402641506573281274433090053769020991713023361190907200704676254353952494803014671820768739132151492387770284349065099336461344538498953738251846104458158654518059258521599704770258717058011555866450067116874337959139571429740147268547462280443504345460588395380394625849243437465709380497891822217680453734946041153798918359571153305453984977222143406294984773112237938945001374327187904446004201756976443265066923839699436397265096509676739342138337642943255043878196391273178930423626345477908488932877473753218844206763761886506529295187028574106511247410611568481559564171540079543258469553643782048261706546528957611912527179977865913944064031725204486062724999688895743577291063016584979934603552275971953114057773341403670122001910613487468733990148733075348261285155471365126732528705840047682865295915216777868126554476754904145236467235331514514732773373151501059302085181549174413850616096821666238733229414273448250810546526185149138504641931916368248363132725071095086712480379266868543553618524004740981592318538922780050327496019259694271493384446318186187388357138999708094405389575356315680207339792147255034786605266889959706269174527648114491766419342041417600550283339607014589912242697548353976314994504093286993793283062343927984578520154848869592661160814446211212315206370290816375286530062996225720930393157682086711332254306790015867029833582898946244549541293842824884614324916192176784435565666218530919607444312306625690907358524861896980088560538977310553690863500055611390511861980326214146552453402913862928803022989332580134762078247034128057550975308705955817120371312135743022127053316874497261694243870370245787375080005524646755536869702653161249068469528419635277451818757292044229077108831988144870365343020062719041635196549637396855915959350664399065209665845199942694197308772504594319025059293095708202049768769173302395929502884946748220483276480841259200400500502176031828407061155548669461689560468688749507882338198438162651433932593855936920084111753652776166007919457921908558634602786035545828251261155246351445365190266422740144060833169136227899915773500841258392977278538072903344562052548616103210082226491893194726225945141807323973226716324971609917506030161280002497446373820640031244737321628245916046908498363830896913224491063473778045791561075341131777205925856693348372604248413969145864907989786757688540682405459435257689300403337904440876370679794980375311470385275219442007498042288206192924047615076931385419654075160549001387315239648447503440580528664681257946284842957702812270961640144346304537384837869047570086011627943173952954657478467907481782745956947100312515050244746742620421637837103751717291423106740545340284673828460624487391128275925033120791249146730220480047588474143137958614482177478231891739387712914700466447980231433709240596285984484003913067128676778427418131795772017800942183482984849990579210633309991205982497710264488038875499752692705397092636714078609878964997318143200713331520795391106498263009801411205876186411620690805683646249835140460933950246827456103607133075562861722002017197957367286723275667793827488095311197166810416395040660701473331097187596077815654070479606493957191720493604673103651470264482133071535650109423519191203340067673325857646171299433937303746472287202905416353279420353431659780738440706968344573243872000372224145721464792737744964732479659776535703701147737392135295509083038901014831345366411765167860783244803437215224974708702973440681627286739034633502889431398085892434497946027649654163746211566382699150442781687019035126727858680331147168316351133345354197498316884225041888888675267617249528754421333060169201969123555483026863290506549731355847286535979326478656470482382660409736133315044110279877870929798338788783966436478608644774742402829966474400171340349867265491765497184534149046592120072318047069111637931761972148991710312290957894041282640307701726084829467808086688153926823420302523196755596318191532480943593501974210268276393831712301374978955969481003082672881820250530036434816782328128604547989386573784865537263890384682498872127506576191586146925377112170316603390695630938094940250065329979902302650984332889932902806945894367564019822104358630410190388488007473362351951947174015221238462855677774934691266694231517555075336195560731176804160968321299388364614016907817986811806593986083252279020585420030025486130360611965378702508192091601391348188630350564147029115683768098808843965720177321407969342374542872569602757954208024829390978865624755638727193299126403874228649483432056561901242815471971745190507288794107550727591580078413799733564492817930452689616795436118556970769267246085407826640916297478209464537921579521552756851175627108531078152647595220569324093119196419597659950153085502145496708921520827609734989048507538092972257595239424761464369590816302543818226756029630343810656101171857615101873741390310584744637114614527695138269863078715581285651236991067791664772382550671825885480966948778374557902305795086942570196368012646791738986785653907993611916027926584606654342085238407245271074524461691209561219946986928652607732768790447265402567794737661437858392904105995551325616804373128937395871108882739863112253191331728752594427228648332240289044903679736500928748091102136287742976009760069048257993874869545183645763634186170429613885591068697432080285936244900759283293718802129708667120515357360252154462148169199255409735131615637510381655343968736127769181074049603701284322361791025365482074251306748631507831177125803344775190200846980244608986236166910610730479376683670604396104757390416341245224606503708407269039113016216779932390268684726767498659340589503705204106453621448721415809825896777577803106839225445816984539522118367076505310778532605916888681543985647317390130372781259564189469282687606002680559738026847604695834541072537134990684730387504011599722419542927014018731821330377155802473573432129068325038259012099285493214847489638815998635122914496095556343863909064675515311662116531413709725115479318569538159912698923472831645200107250929171922280232994155782788260073611528544634423268138088514063839218652723136404721792500182840531202838666864290169273292723470432475734127518626726063674877506565958373909826006034169288345256713702650039064907438143673134066640548262102923403012250307611747371287535392540894317654663528254534346030598719711258849886603983692460362128332048108988481864967448107983205613826540871489783216737337136326826302737019740209102826419597975921629931233760557071789997878139905783958812634335093678300258765493539098986536155806577912189141254073331433149875937840543971771584075667671999442902561514799260554659144343794170772558359484161822159104904150362060050065919535245825430066683051390012618463704200027175274328238507166263016514477619761485575545743728404464453803420123152007201655345533043742403464614286535133764189356694533155212645422934377977148810970255364983705934380128176014915332449398500002539310828862768187329302461283391845365979124095884583574977770706393023389701641086328060616850311902254345201569665314936336140771307951097131493625534007015841565420386948458506076939293473361631141978510645762213359742736588847739115277933293488855160235633796584865385232004979856108381654065123361288520573877886217367964036431182804541542674266638237004022396056700262381027787307288308742918328064128165017743395134465559620120845577453477493444298098881813993286500097768277529560754984511716423207723003387808734022469285181370055129685976153168834878371641057744274868613486774955979415587306398436608882310653847059079144932874234442577751027281623554451396917909949925243711739781899540429463231818963571320806521517171485554297929972738365731908026488400931492052826408755177377501441498291918298365947753641443039117161616161475562171720296641865546898183508339896098809066164633645079196514583323637318093599318369426149573850622238891931454488589143823651397583922620277803785354902954719697770441396172571283991496067593611343608629382708042094768324992135185323423638327091101531982665963591736492202239064595119757656349755607175165329398189596800499365154389416305391170185374761132683797098167885762868818104095677748098435274780851967801021116583891421429533016357764927535320603838586778048899610997626715346182181089104952370618470402803968532356785223411857065245278586833395736577213760388480693813662218736885858170318354367052675680019937989694857587631894769788868997208587947946369084814251241103693721272707117520960950172976859998643460787121699329882076214955546954158021223911739284194286335209427536582773951781671217078006152189821861082078351858414758676331041126583570142881822516500850379082212059429670617952752638555958613931229313448199192904825857318718616379535255519040810698009632132929887277087731807465459457349143545348812562660680566769605451264909144286770384866520275819599427443841470067473650936716273086102599275966303741592337502036935758129541871281891832912096189248003733616479558650753037844035334860404159478608097439448040874935147080345951639064716644000617680033400437337021320581830502665517072988225346497137250878880747125730563310674986124885132510546009071800542604498175098947270625874123608513453803663048453519022038509382308940450140805720756420322663348561605040999117850296035179987032207598179184607767792540280755605742519081236721611317739811514058330735638008334669577176183386342027104818912997858743051786493433104362578110591394786526740289379680627408647041531745443392048006810319287758296090276619903026419258370989982946083762146348731679347696080143217626836160078937005490196968317698564184047358123640780051617818180366906133013588454997137978911893308025178913467591306010468165041962664192918299724037474600070919028371148330569987447473235251641496500401853707456837233098792158380295755292227411978333082596879122104167110771308860896814527473739248086596852423727140075164244066865292761660693000897135045111566586548275377699178931848376655430493995928899284296842298737231689615725671540989163367036036422450837118270198818228415188195022852008120551397518483622373988986341178173996800158562161443206676703129366564763665738237272499944305665728243682352955259000492372129154969728034110952172582257634770922049034279025877586633434966790177396031897095562337298585675166010821813438948127483171376058809409538155118821817706643791397473657771799988681174343269174477374592627465033934656580382254953594851985016319814463764676244690802287033667179727287480520611451837877937620852552233101961968646259577323116504672908988806653264249467374196643174175588325319470135147751625824598625495557302925237882010783075387739828326686141543258568368738697982141655169739997281599752560067125179752662089876139850471798825231782006921113432031363685448461008599851565358090540488845553622633088111792721742973021983311667741040534670142961786576711213905964237038803236320315193485776205111390422703889575508852696321664044818112073852354493576462169215003929345323764887329954118280063968608057507974318649793994036009331368199993553197348958569727292942356987359368124211636359468428955133437054937956709292141531576284436097070041317974240589000727989520429936440847513375278105689616606033643589593135418898315954786193239874145374944737503019246436968336222613573024680391807796954477746728723770767626718353124231255748882430539869540500080357740005070454335818284138532523478028532908997182598875701753129007924451764716332634700500222571315551816438752052613855599499569015172595342454585852539221905617029103231272334597208909325583824182483673583023451334502825051480392145288222802879292911161552955666207353348964918041880954928861186439085556483370599169537039559747581588311992227619057384159464467426768312226701849325569641484247717800477757654256855343920115213317920517632487374923356359544577480987871643909058221397748665079963379981229827156386087143293250055620676230783591468371073670903182373325666802839041584236032904242774386503454077376845699911765026414944142714332570331939551655122074729649477550115587166024396060174520289829816369564645464878792486766883264719991104646591974086549818039144774839277512161464773837081400146892215618994080465448851393770265970658679523314176331958052152326123488610493800643653436226905567241770693716685457208227249113310304995893054642947839350743495671544264909886043227737941036870155718586222550684045920566313112693446313356135406795293386776937345129626985334321515850570169904190660957461796485468803000325802712293007707156396227775532591579886269463570615759732420106459269845079625743279797611323729695487343924833357430005326456969215316317156843607177354947820751849584381348352526259809354938708273017180124591297754713869718418782855672604611044620471751527851232299498295181803857180931956331157003464546002117322546327802976121532270403640295570627785697147905317697534716339433787622362042596335151717144369139452351893093666529688690077303881554223922001058062331993559933415953075367774049513828238118446117590271018605503987507052701930865784942866862595742155224255119176873588253134318540930794737062443164361290842850800987774139342552115422703070454464995471429836058992102518696994143955236819374449128801081804756101609982768308408628945253477764233745425633375702010450455762933122029247581921349240828014917047640047215049542611737003574406065048854969678288619846971937542745585002592395443711450620438251132578890029505645403734024509205816050973667480047427517708779049244915273325242272486981214025234554715025437260322262842520680114055871741220060447125790669244631586341324028684566809998590106004776284370159165856471506311730613621068049337643109966043037649222311898994785202644279068033705750270201819984277696992121148545382542817134837863504104704802073399751737635486192484519798499659520350190993257794855606206453603851462958155524095991397995222497944251412167677320199954138876133397871979108421529472989154375497899618724282758608929290667802226893853374897597468811493929731739364197462397002089636076343718356938762981759944557835466355954736725208705006227243850731906760995880364517071444447443920122614169608943134727094304191691199631281738767911748108797533306916451293055408786860211425099502976284771358694720475455291996557104049385875397794092683820928647651846263956812847893999791924194764851610769400408532764629754815970669062058181579135708242247872715441605506348354955655518805725823652663082578205013235729643080304746839310516424363933359240791975072725613139090952203401446829733091745895686498272764681668589824233306338336376348073069388248108308844739672239995794654910013870225548707208660615435564361575768802549397786304027289590386273700278769321090448888357178496809670849115028206615154952449563732808875213681051516510105482335345422697005564999323594089470430313517754952399002652970670690390330466418970792440325788374360954471385550186817685444562066322228171978848867290781294341015561680666155759488356787202874574221932891260020643010924362869971510890094524452039491288533900253705089619482273112258205663076452250683334537547142019435944644610380062826352781030981848803579712509713258852574428569937400568549682872687742338230922516083086237670570336760804017391360904867637737151659328648981344654147723370462160816951524673926930553198261710634978538346276978715682498565671617075256148746658016435813492615679900855726974877679059163667777854490479308789002062282421494763748689307233893424196021567006168216859112396759018816121114316326061809838772414386574698522369862634740387003685704152605251047330432787809483156714738325209222084005478650792924889303422861339257301488201001143707997732665767001108313428534250363832645772490616597714668000527500960671575125890743636161169379731832472833026113414827188614643281248536039413098351222293425907950464915583007046638951123873424245381060375980760274042062907658509555517314784544420031457668994745503840624770960633382278262236259681053701327685610200087827184654736198173242101875966198436135752499557029632305082337043035868351919283268073157183887062543708496666951376822310914587762934257561078448637325874359132174375303496076176421080178674833996700234018072974145671903693064968485820154167630721341782255774765478143344459246262688779242734640664957620217401340246576908724058506676074369978160125143169441694592510553541886723438582655461520535319516336837172077733347335797874994927983697593026544197264934096748060482609697378965296946731789221755119447211285339084636125365681371643830736930939706456569666463622775858603206192333722020878364891832558607372911685454063380786417973656561146921581528679115471136036540176238989127887850808955756247391197150549844853247611954568664999917489217899130650764929781026629682545332971347621567697403792535719431181152458057941622997335621706887289699459168694999819644637918117628026900282671851694343282746648420164364326915464960737130181208068364524770643529627534186112320663536210192994115313647780296540503031241573248487132239295336065749073796567974029411411968802985520251012097562304285706555841095501698119822238181815983970173033217491450089282101683284263140903471636060630530545190847628924871960579115397589618014741732600210176496105416617048978840833527117865917151797123190452321790368919651362481372337454841742649906341655847429237608624350878918580024931073284629699014535868641324679753250742946949535120865888526415884533843920105270931454309203186135495622421032592979460068996279837180916044185890748482345920550169898244807851577547428453166486005004875166953191645762666828324123482480789864920368744156891518685860489573980153972267136661206743045011445371708263135991891865538911965361734525266997402798561945951586706358011133596045256631159017596485017368311701365673351114021647946599204793888672356378174207166455294256483503184234304854426331085258630073707122749259397467592764716865530925249988778747420737471645382674661035657845392014500217690475937950307292121674104176073114318061216556421239800203078094348346160157459033559367315328580933946212944232743592555216873940753809702704126741303568730063632939017010530829883736662197965818806758090327342211494174393609455826455588965005317319814334727970924511149519337786181131803416591662423881191551985022016909251042368886792566799459818380252125648725365676512377474569776421095856899396452565414790367996869476454651208449217472589760126379085335711684353647343732721345426642487576824871295471079307864679499810207170105473578523069201975918935334753613262912900461078784002271944527861063007558366636068786627660651602717298497551645963900438269222026598333956652614902302363524702638546078034977358393044452305538682061366248729034070084668630567370245224112712910182514446926315167534375350044039282085001048353451972083819445258812413804207322682731188326321336875703212516235081872474628144604973441289858935371733449758954604051610940568260196984969216200125782803138123476333665300369281763088277083956217803286699836428529025717114830659225706719493388218787671007616082669744888912414022198955731202196361575043468957654215246101479585802966876729713532740558558343558801585122256037692700664806658467608760778579722893792111449876793192331386746144176681032262488254449191437298131124570192760903770734951792513858043729600668681629733825859641945479169710283483982994529389877069071641396751915779453732048883764719788136458655594271035191812172346485857025866877710674354491178571996778048420865522514134134661652447319613728571141119732740774696339547041929804750567588898128951724719224121161935318423685780310805045819358271056394253302261070816702015995691579356991972110825239532730832585295050015882951503542038864978533144244365324407663474206466771902871279493378559510223867373482620428388759991095503225167857917714537464606503534128917776927479020157488489889620401968326786595034245872996120516272386928161639561702352821562444893525064862307312576687597824506370598796873412409807017796094508186738063492128866189312763514483076169071009104949938078256751877299764946382489800142417340510047130261948572153919375400548670561887391465157102923172490748407377817146868688876895121427016549297440154355857271356348974620808288711535480498999444418654605518444302606520439080366469342936298973646319166306099177828189670265316384916813966322829169042171861432309702622071037794081058758653565484742887309932777147576966092024668312961971477784145147718909584014539341228603481588582788689624235055002542572177844930650153992471900563625982463821050625601380887139432845888123731947006539185769234963560724448552994603897044985808392707101551439352516093257706405123366640115136834007462731378663873368576623311131608284641854634276412336197794489688623089613937458578116540468577378491607507102450306659982778735892137740426297644646912424813553748411456076198873619746808412996362060924192450478870358709570576584012109495175913486474893934069716483236375467443771215557931591712289741914066692427178975830467687257269722768374249624909622328931527114886425543592293612093468296002382251140373447940263619408583476398060033019350603457848855637717031773214660722394179931167078853654081272662194995313570100832474145812601008442760080207935526049711267850225465135013282304133466871519731273207120090928504242251835402378671579158808862334278176154832240079139605773502936883575301457177859984558119964649065781638237009597319420415226591597169010701383041925900216223541003110059335613670056813086059741564736266739120668379246983864388055513612079294963815490846312411266685841388674491119086576505805940375327904713625545644531512763553929777913046758238791416508469611758071066296595527582348498915670737067619648580350092331083529724360541862805699713250902975487659174163853453665340829424259203362498868398152143048392772029796802058666987662719325693965091474876683932826621760128743486295566735933193763678770265511014578105408223944338275482760067304318804529511254078191124836216991787704296234400489296467723136740151278563685902191638012490250306368409292881534998950538985244612803049173748828557698772969371464384619204345038171776894181284948548239007911455689847638745478215869676849375789451240410643113643010854674751928922332076891612909475427955790257129632301718384222931906744225743477426137544694845675315364173107873689606721769653518338898869899140288922683769987332269780743911112381186985358094021490278317399467431036318498012940134436924279708704628959136168193911014111179938641364901538127048928691847021697412755512381968265787371401800896565479647432018439642714196506203067041038944174243297601244650695028574100887547726593675826160467767817996017612065133850575260458598139520332985479016949212420702354057765291741535706098880023913165192098807756000871814241185436503200977926516920290273341117361495081793822437033946708328765215965099727300080306664771151420961131220953851461350384254936879889845063066399413038201896238674907301955669509818508254404055543858985772469221428327817768649989225708321403020160884666616623206764965036508714001125328054603541940003067917437738078418736662843863218719421991920639352893253899657008438679346039352894293662951175087730347379911322090759600878255682548793085488538765398471345800083913644663579207976623202885876950798102993420746747966724140711772667816578178346051463051085740505270114829735673603163701379682094642664702190735034673317244134185086361294973300041742701539947139646262241450948151371056700166486885617174682247233248141617039490423107568553975371415345189400853803600680655946201051793063787086894684337409480031435604745566830949426383537405390950556150936102700026829492059235982510944299209132432522103898732635401624270640144414578042006733522404401991892537725372135898040194176884980550256268214680682885146866516479313573936772294541626194794196892487219141755974495046007083892448005758469350535873377254671919238453700836941550987366711616169943753229239660608499867151023710054254655435230699256348229948352337521883411822998778896263797871307897659420450259264904055806747510934553523184214060899800344713499834357018068131541201032554343224144777236768344293856165737077783916156093305840476521780344556399851772189997053675133686638481367976166223735266808909752633007703664785832335045012605708767874787551576784338275614136082149214528374112990383071828046489052616300282586469732382249835965133917736062439912177180838300205740068208404245637167016266247150482392858265518171553948573438113772185720253328440772429234048428728918469950300684287147584339928653058969059377697507955095228129972958146813399094140180982565081245350514705598410033793502180938695590345950816974918475670688219119461917439400753400124676311130367701227591915754356720121153637992405697029382116938162182137008155264808242183361651470405476806246349567291152955225589796688658576193977172358444452027565337325409572065560239711586130895643856776883427484081380076013865597158256627254013957834758724515766037648486024519515622142221039074554332661487637912491467147401706120367006299772949518853773431561281638145493201182641905614628392185627268487076788010313057664435561623255356972905347562981654752032855026781791561011949915756934599210119544439474330053527769886603804036272091926033873497983381727135494396745019318300593131897560427257571180787623094254975817114167206440054430564393594936841794676974984535012447632975991107062159941544153685175004189526584925171216932547357375186153076551890524798610697552195482532878441576312346713658114861066721181391199415731694714962004614044988055921013327656752737414926336783923411978047955560239006147597817884976725205946918201728452696662366713417336819939240104461523363470439887504469721760934766429467174148390832492867164388205768660643898105033661157266334863420211274046961485557362261409388405024847731027360147141954534564071744518531629214260854647718808062915170921731437365554853558854257189351451662656622271332729896341943396590253313153097789410560779153844518034901167208717648916099005450110527481707730088408496021934604542473739695070686575623147325927581667773934839990333397063925441998847405043900920027179877731946136160712142568090229628989664521823663331600231180580967576473293270358499345768099276345532224580166948440302735772077727154521919021180469161602280157449471989660243296103573182257757368075089758240077257266412389645989712525101578443504483994759878726412897884862914258834558964939746971764540945570505334301584736988094775997515166000963488050812630282408219785350518470224822894998854287577622655328895749959873454928680330837446954750512122140712190989190365700779912487236862932005015705501071240266330206930251048176998366621388895168464368439891864798831494254864424311881628938741486845617988070384637227564914723606877373615907384872164577140832114517956989056432064281444179489043728816699440380598573953688582323070744546263643530910257530536509435318397111819998573805332721817446855830368105966765617787894162463696709707371116896075069441648169767980045443079150645579647330591090065418919804915106380069277708932525833373048117153873686328890643129986289284492297217173520674153171153123502626723409370604738107446777151766547325024467421804547074594292436565983246862891799648520759705876264393045917394523658436789546963083865741967479037148308507318941543013320120195484409042076555511739642697513759201301182391507036553680389615025285185658620939664617261624804492074321280136173332366308135850530190898902675605248398810570310083307897040698659748049574915603299978907915508765244987806454750186637247668022561625119754010553731413198520747945620181340223047546348419694623988242580608984258594730052031180835289532855871972859545617976801194984555901910713740688277632157253758038372576094340421330621297856832202205394504118604341875853054551070796990733188170406881199026979774889098105032028388842107265620402567525269980411003113834776198718101047199691185246590899615534105694675917110944123258664049099387125036454913519571381397187881407440740455386908013895060193394813698680452260959952185458662047096603258379776531968610847443990711783133030135089980258714312668698211972907456335174918639054755254782160283475952136189797610251569589616300498371625152321337492798042163249198481122563356735881791223027396399821517966370332115147035806337628247233121080353687077016973003542190059658474550655470827550201645263361745045773652171983618138415640626019506693707110713613369820592815520456362886085192804421726267678916219679263719289480357617489223700668446220309665023949648185209933747191870431904653257333818747629620800322727050698656885832636176417956412508484533920493022102881889660702012234626184029255331382685583166828999364010740824046834869270926738775311953551340779692775545614398061873830946890489823425788197446601571042923249255355885535303357499541695690176905230892389773302375817728671985847808604855132870627723559783988312473264738104869898962460490055529233501181720772133691146433592084922545271473013383232605119941539710658709737126828389394897798904701694698209875339809272897816657474869334863098357101071179293571755907017827326834195875301203313574354992538694633820205955576704698639876120354175681473670709536248899118928988258360093946402643088177847389919468801276064148814071145254925442403852843438442902842772007465951892115411282831665830123653021111455691611197104535591257058431559494421241453158463073631040231783188959974515064224328243281357532555688631264744757365550584490356533391010553209931111750321101236879537863582330958958975944873713569281922514029628137378069848793141170875483529414932189155757272108105778708865810954828778972533233201380198548681444241409907691159901518440326113330580060437159150574342990854573131902127058064655235572012127803015997752286655261321651808640784854023499323918438567587657934028106697177058985440890695159083361761058921444849841757231495903151749919049273879231860511357548001277223040754884081490460438862456639910861481771847427681356172094546266422253256243384153737299128900964597608928930256832630768959922900874461347940874583319332531737111237445920375406692017571594660979098987207421832569734056740216544565874738202197423787382848351369909999588778210771594879202644568984639151646880500454871282517087216551359724679175246752367828345791939603785701462544764798509218193446250622630878060522037800834065747318144329434168252213304044309800716794065109799489602317190956252427505002461904960463750562230494796687048166791480648354250754942621099705323586263973778569401722841728738183824634930738967703527185664102169908126571025210188315985481747622167315797646511964658243190327149068777195529173511447499437040257946427591516374621359174078591461870946925181823191835529602724315138546506171242126155631272840334543792619961225735558267289194054131673723184699167810072142749774718020189116276430296208189773326996582627945176124899126281614329891158390894388506191049609434190726365979174999860584202858024158482030694610959773253218314347665684726979581753826071947389863683274444471435036318148975327090409760424148945338552576653501573125937454791095698072309301376948886787593630223814337066963121536171079636489160112643413500189178183418376728894647520894079602676890977647746941143360190303076095545971151907178094214052559264640278212064580740017568592525556967691149068825584708213409876422633574426071045366327197831976242103170788925222707210046133914463611646692485580038218320988751238276567545625978824740532763438356625448778069547773843699892248140146867018362824946361384459883144794546129033171352701694635295586006548087132730583787520359135498042747842216818484050824153531620419445035222862312024624007147439638427811844861986016321025198672725089559501715257710360092804033778895759114570418367301564454228921082389541824133355455887439328504776221908168804270364160794220229137821919385130526454324969530997344872223290455211196058143805662546781082298906203160677432930045811831705013168561670651800448398596553970572312602223873474935795985500727505941382196231355294394303962643705061911816132099467342109168904977828430858926331326367486996767396391252290400139821758035722752170473645279507491561217838031333385363109738459588824633136823144413269006053299992607338676406609373395674049543808657637000129306774838259160127569018879494798576158505988113457984711755067442819067604532023341263832671705829910839434830014981041822101099534798449746712479049509890631869429861817889762774574966214532820902737192625948263680893212599633929144862321047383582870505054223453528224436184247857628481632278126362844045840452368641960171481123439580472112626455250093025658919565466041237378250787090972044828724441916480318086387624548149700813297325948694860236883856831889114853376403075247466074988572571962065427252371770757460010310054612012146633017468889951722592105955688977296771817545826788047373029954049948927984194167037677548755997515117335236686230086584900744801424205928758479953652587037336626435533432078036650256800148670411223495464428992385434307477918277291334380424743691825404005644200986090276919159395592169564219260496631028560912864560229091052029272717966399615762268057099539005883080609606318696179950737710786262283727643169581428313429815527793511307770810355152227616111404317857641144597398187567183390287786767937812169538075829492861898338454396839584562475675374845373134493051842270079548536503153570964322932229799340727564058774257486040635579948917602282727337828701903480340264495278599070923692316830573191855547206155463219502653384806276481839825543152345480529916814321581990687363576061245724157246114358899410590509375563820452401719796026476259419875695766347532407843106771785869650228464627336583866190398140831598772229220432983365553946809439053275542099465841455810623958804743883814282929882437873857532058207426446449773588485922049183520939190246454420647001691209692296027400927401408540686838574363859395924226230315020628736360174446729008369065063395075848591860746524381397136787154143227753767537510010441377294724782079473442940267343381016749275013348214375580524675894638801331515656947122220194282014357696152853201667941415395369970082541557369988230733276298867348446862914744579552759446553832971904064033327663159973232813905242931537647932481341033070342325717303986413125936016170801968913254622636094153650922746011513309222457548975461680106471912038464007056969891778833640683618110894744799489119979130672420685222196849158823432801839680055162555629697056970108707536759264319237547341281587305057986665992847658504062421865780091991050184774182889277874546270946108611056010025327639623553725894813927134929779649955742116262374674545013235307606138721595737364078695876808894457878676178563071447375659081312588748390395130532281593581744266512704006018870635730112572784531130668646624560134888130071480327322731247345716298032282786580243391779213293898869910936530769913241769228348191640973595357367656526162972661611495087908692978635404796857195824849853079694430467175743193272125504494310947032676639861571334810443339486119771888591618604991591843449697976112544025049633275168167200542775576977381109441119796855174130679515856034358827255210631031845021633048289406433985132231040749499141530412963064945282072947577116296946542512860013643620430128287986991548988475794506176573509075651258687904185674087089645184868591540487445592947050691538549174136747809434052862323414158815193742215115357678794777253527075747169343355207191883493002926731978268553050723126956628993970206781806934610695538106767284506883553895374508913527949135775821940945764087695182106526851168696700621083236448361834221375457930366879651768095112328465236539696400406650000403769374007441620821373151030131187323623011528922223117565090341083604345146423592089329745175332518213318240570735186194090906925459191531681951577988843678466564741374006324564305278588239016357636288214060659793899876201876949526152085869601103916836698403346879550282581248177934896400455314681234686677614332364049758639540326462713460133901245366335497782896757860465537128550987151478797621814674955858094057867258425887042132783686440490021977764578856490598368813865282287589600833897125483159800524275722476276668854742254898035730834821326405239623133444256442676626858622473403719107129837343647394863418380507859635007661180552653805044713564053583389653455520957338591657450756912852351294739464753462102568697831018396155857081411491053127944774985533878992324245422058083497500747931329412328873644752380525666846286748856037464207471038115301046767187097324169647870524480761923179789000127264948491712918210514872512172127400365975515760343721208790393394794609733220768092642192045084310878806087518833979028313364547780498896890915615973754944985671069116984449769668033247484857813336512567103989319576760565121992360661230081799213905625392905333380955930650183915762629003005897067430854896031289579724969676003773547553475369544765086086465301631521035507368343537630141697957181781050714763026841065423189105462665523664831432853730090400057773788521403117888367571648064623726713124979272015306435044354125690752278125706121894322583481590196892934543565343448933247249822341295414207936774248938581989369396208283896020845645919189987132501685704507603717861132063810798782755847427155676320309694103541097537888891870373051069391662790753985215867830668804192556952719290432873249373284386976861314675760346118783645219335783595846943304097212752368926358368229228278140348576141604858833055521897861007833122912580066384371919182268165175205169222588347363455797893435407862035491015671788263389906184527809810193805849595282741769266599038993572160744533042436207085365227478825293887774855679279536428438508547564742986204600052290906598574710262538961959898996995963835698934183083522510998546309462233760110046253228494147980660809190580140428850791811366293998802925732622922005379285884607622173286637307956382956850332857322077988889867583694873116283530735233098983414221953394152485496732045919268619387317295529940021554215164015965203639160370310480021104974381096468871181650899820892904396505725726363335532475633770833040156562856627865902976887115435941064016273447986722399701735854037829189293060017119609532343504883843023067780079484027819905627819912199719718271649744253077050000935412903702641626178367005290314338491437698303784165280784068130291172219416664747753665582456501606002029995655173004603695107389275621642298325766636004102151533350207093942168725415880938248651288922576515891993835485144512636676195380019870324759849277234446494857125902315233714776544995782045020392158609259711123839601667092410463304826697033913648072681412452987546173444177396160781759732988991234499678916715236409223743232013132149196949551021408894401618030505025185053354922212138734599317947933256304581078535516905983842663807156314163196429954228698050380111078167060052725152920147500740547925167527899866384449088974445834038010904625164661891997483241912751349176932928575237127967195113342169253823877328826347967780432740188758642722204573165613182663910128585454722105632431624033541560160765392765063107762475573748552993316406525885484319479145450452929694875881114689810313337500042620448720725727643711643421916275172476801333738786411241536159211789439384147372752140886214504946738165616620551022098486583869414239970516239217392368333379905329318638788538964269194611371954469705749958559163115157744420260603032364672691696546402316128885657831068579004678951939008321632896522934070699543314936778240990911970361419567055778522227007162073333991577700256164009489027533587470266814742864270674245117260011149857617751162460085729296963364971040758729956535265806244678478014248696804853396641682485525868987611395513801051618286611250496075729632374829253033810596354005236764567581588313823816496454087695825496707840009220226290452057777813818205713461491100345085431960390249983783264969547596681044581278461790683407897689844052751652878956727951806624187367270119466910874469692139045310428303535154070525360378942928088200320791048937942424338062693728708484608607096363679888015893005164166598981495996513532642715647900573326905950491859373442646396172520134402289401425419429005048715579618770068271261774487211346329987034311888976930022765907600465972872391883263614930510820653263270619512511908714133070388564602358869076831777026131079356583658248868414869055366670017658281214984544243247186731872494969652713013137192638291905265924439221356385689466252609213379628936214250494280283922213685177633360194921844880365501206901690749192817772569332420282501531960896528164408914873603520081669151529867428823311123411955687287775924987682177204456061789909453403739880291796708842231705386146892365162893750933719754710273318781080314086146372221914220466178789288846423314634020554848012420215576124610488283360767127416997927776329846091631997278475853726311691673778985867573040256000593971492819572540765417006393318026566487181530584586043906620088995031848496215709378909569210003545111847104804490737615668627810760538097066047688469236519468699959208223280297763023867355968293375843639785754077991288056601919209695810432220564708394222098120383742639403370709165174853886652746921952675559230845486165338533597560893294841848098986862074361780382995154163684353968769485352990477902084745937663786178532037866841953752581231745238241325373544354132160626483795407131725486722894871289004427270102243227143800031683493370770176094918471046175856481829628435108119029037526695586809189788437400028934725190921788296898336399407813307048690140462210692587480433353206558947699502458002015521995753914036312372872253113765429134885191404857726844176455687352814547543371583066474837272066888543593569489794468686835653457796515258409178059513551757229901637749398592658381389408487851426275205905153956338018213125827144457304938140914845638097950308507476985673845177979802421684869557475742534824144907758081803047995989154497866349462753974095844981282788941228306536927212385949483448714994887138397167191358938199726857930448553069435741702159928565810420116606370092736812530095593991032504529069782603110685610834047015474831264160232145021262366296692434957654314668522027105530098859405000777906663445641704010776592381399541666487031580752213165439349211414776598444694765457342693460492011488835060487682474792379990339616354963861977418598571596444427850363877045849884089633548979944439874941752036200136589758804728146140737499857717601125087581621789239451440613905730821214279006355833691973267917171822021896900933045915063746153972854720920173881001794566621681257229049749205644854325806684767766808177362711920127700156767342487609343797159985983929892041353514399684534749744442564752448209920659426379760720372743976884445592033143142928104766676074896651857499721695858961163050012146676131955256846541259356438295621733701145547853357272502350742854091916969099762110648127284219169361393498965852738932532750278898386151311549836099677394935749221909596898635101043274320288616654153071150316793298162080265347053865729284094385902386823522743019797484600454106113806867186332889017019562049228019183644921229736588519371078588882322488277051152798441191555366953678487151942346796502816136219593235793936552713309863371193143196432862329470120239303043435284597205697520903843802902498628339093877813865300167987825776937898627578441707652099341967135023221050706228601133055858991913817492073032700802570044520492410216538171027026782903596706229646591767947712213315548470519264678259661506126889419316767121428078841627592677553152869108599426062364522003173841712510534617678284966847200064458439240520261364086054170441643024453616539237656459959661234976904310782250070343647513774485811992061817250548791767198785765982359480404629924666472770176829480077011629569599059912314767112811698882949088206080356016340891752519098577987665268368961178267358631315051778420339996164831872582257282599721589808177053597156217190972635855792325099029352781011395073992023112711316696287088268440318302354663097799700265352928972407711182158310539328085751514680575951369373829075817041003776478999619816854019919050967932882721721614211590128208692771895648178182865306823030593374123973278932345820604605981912842579469359823937221497783866352507137058715460365957236254595526851315801923620751097599732690639884788149438031453865554037611734342448878545590117540150869712216837514125289274775225873394974790896225011690468008503425929736449675765556380312285533274156450841490667167534857406905565785733115794501588310391767370178589599791837826252548615216937599899902053678774586352987041358652431439542431181383588482863993544781254861077405005989589652873802660244289412123776337233851520242037810487789456181659144526018527289476231155718956246649783447765867968583362821093363515076239721557228746219877261070353669462832453967432863402603783520286318845764301683613924749540271950296541261456485430756851647505364501280536498597140620675151220808539405240904517059926405510814133881769586605567014828626945658848490421522348642608980154616726033668040737427885872179106775064843030432161806748517026061284791306349759919654504430622371472709741870834781935139774155389686058109328960689026112517579585912532894075807113256950755949060114666494259203381503231439268679700565821429872655315518037477267392782543314719487835371039512992342644722140476672292358608328665364327196648716251638283554284827420314434421565480542213062172115011994990320531732725162101700377537725563940592918667954555201090459512367436446252437707265745752253596183471770196462405425706121068914662201058541790662930128701875913203342671838019872298216911346482866982253889619825568545224797604526513083653469041542008748242550164393616274452038538109327159431397777597314195331677249617531943480015622212955260268368879404092219276519533798108286018494796033596703682284559993718581706027100800240791081012832410033050898836727072091193073981590270455396436100331916570799214053802790332863090972511829624267235813510119714851572707238363914291765340197302485298150506051575358123578694577598790301897181210402132621382007112410326932502382590304773932362048354982952047702030270909789340878251234386583440620529415697497365438442682173564080995340412044422951409864010804121292387075236634093889207905783683808561154668795404043170719846708769203013256615639955167908714444964667689515397252692583541375837092988661123773554139788153167326399615947229619034147372549354662040730762952679785542776224720620523615487674907958974725749353081351781823642233456831866764331114315620167419649754465347770215279972253178270340621540242282693245282119720964374318369254497117493520686950705813343613966529988387280799649283870655722210574395019435931036590251300926307794531720756353793893153744967806816975815564582792299179658325470932932215747648012082071195677391538636412775175815510764328820501805553864951061563279656499809458388631873623337933639171550705570208896198623097200199427686867329529808948238254608626090867586408589138123267816830002238634799371281943915342520253963062158614409456631361087406246958646507489982072519820725204551067551060281169919062382245521516178292881650145474987759168485745061752795669628153967192064286683121475143794463051398446002728974185650087440892484582920532607270913558972989427404691073439468335403284106745005997500233564689938561397784536776295689915772528673272045920944175613327308753070630813381425807836543129050733178722534872450342116194749255255693289098163333685235270309011749898545324673537015311506681180639336543610993930534478424317128006510882318309359756556570049569352103210702530971067450007836049045628754347677049704200699606055343575975198811013582262019537924039398444986622266533084228048715665952145610695333377430582875912427150027105555157489825059491676339887484353652441514799948861739556813880692976466608728826047750347487475554543810623883895846128740204012708742291040977155725345183522265571802180010285216493784130088466513589293776595077579468499750363637786551418927545601663295125206907710821313704159179498218041206841359520420905006443295266673400489303824263125735282354813468921328527901910661152722676517189782794815172428044641323873530623977046711241442939937982358512161115204892646115001765269275234070304871452753537644847965277439428334258323959344610585899771181325075038075873563066820099333929316797649290588050382926256474295443614666424748164406797684127403995583383214393992088381877749687379491334030013268540174334568924350052071786417975769784778207825726356617131372523369843052929719959400279365332921093165634863363508670568996427865849844947566417893121290839082639356964082981882745300251900175133129004677732579271803848249092504122814302617921751478567035226006711631969104023763687160339781681747934003412580805147616816878579910047248365208724345884380459090179195637728748139191164332175297260504328410322667157493310201745664511243226869549728808515467767318188738884070898725840796117498714180566253921973960561064179946708718756803701781485765539697616295644898659601282531211203492062500799651426379526404177701036633349760119801389536697278065376850911450171925667231733260848709804515343558268670429326836168929025566680769590160197897025538168583301593504753835982884422180237451765367686209338408433139838596762585835105685020213683552679431639962862708472582892610244711700769700115263488888028679809640004264094709455738154319496947393043364748930591397754112472445085732000306635990420649825480224038390358647032768902997097226656570831287482434176454068806329816040853563063613596496918701970684040283041940049050980684143979722705071019149205903991330572886959749578298108971392259596325297274864827575117029849763373484075612030733377877494164507541399593271057867295196491776287628160947325154165235287466099134918494872823033113361705639088672975601775187484866120232342787449520201289295348395239302101174704291613887647591528982344103725235805052161011667962991788229424045081189225892702571703301770912155205705227706867681034083113510767987959733110889241295537169552131723950694774381022549263450924283151183564056617587917820124614145007681955665443494554878442297183414307566172792589604156373489292668181222396996075514604238273253198767500070982263686100273167757440895894194495155172471213284662598277344057023613316006410939921057384484058665621637639910927873234666596725700852887785638794432713447476516709361060697952040737364895191180592370446019610435293302057404759355228073591225806212317015705654376978755124305478302761003854921602487204261613588512571517465631052340027184345414657420550961220704346764065892362420330920076309311523692937563082262040404834660076390981134420009600282514720697549044966104413318152957606890310915038637403024041911133711477156020288088399382344457009909214718964924569810194947445666469631595341404111584199676507714404246511850409931729996027863294896632147697377912810899415939727972912445687496805612455646080496525171208759452228144309754999174131316869861506591271694897726221565170572781779953839547254294541934126671773155205799361943633044927470549662880158974234019199318345945329221008561253325332898164595053477046838000959833106997606839606955004584831006089392224777703065766011673045902861493463303360910994554324682803590428667969442756216571514531207043836726478959912884012702070917493958827448831039084162915567075377038088187006628903434789739706492474732674098417313100056716557741178410586822191397034514156780126742857266057490165111244573203796412671948005817383462315662811607094558295509378931353648694277074521309498891654635138911864011617322708081968970446935011701226148356424775178405520195273850124814863782280268632655969938478392194920927519261370769572532077200110686974690532162717898865101160910637562553984124880920059285909297954930084510566544187512703785910045021681805156847735451322239173156539237371931627208295508444532964318815227122978219893224590888067877150320984249071900190610973813243526023441523755218823517687699296047616436731484948335829036167859314330479878069474854316430119308161510866356542416993259475939722760168934064624747223216051192016144399826175076674218553783218573154721891212359163832636726949240848171093102110071083531329131787494686476285184475969072291043382083830549631062487667875507157541482664095110419340589805917173159653318026889558289826564451131042306807060817032651904264924888394711547143074656627951749678709477653807527660623655546203885168944788034542891700708868418022679313552879801578321645332750314094865707455832311249926474920707121252222581634868123818334462522845675603828178747763749399173283074021600708292577984376732616977724845653523024100075556041484498005890751633349973174070432396855109181028179800868620285754150833349219845887765735582829492753832851471027411677062181954080489534142099260727235350146145074322177074770161292671838233717185854958454214786539274210020669530501982269306440584984248565185999184003850727504104922668929967298689380142363025956221641596794538366333502073023071810828605776102308673228571913278317111329064393903108795539725854425066383389519790959723570226563134060798675894052676422518212206871965229270307105066671124528078130808989907810768084701798063659151759307111646488112453431808583013824243249518314403661956046578717077543500246253296822167075566967038696217039925346993644250782880562804391535114202350303663465030120856128191753610473805265366986330861514712344659522425854868074261892355218726720154499747174101813659194494959279378096644409957173045617330355311753219631489320229545848867954471054878171769983501046678929683539939816859815793444432592971666709294843151801005911281213566836275026456104427624734204170249142528604737891075908761527749618117610797356868141929316911489550009334969588121594394143641037542443080160364185991907678226411267664274546135343476396390088305824422646719615240759725507948983666915825646585447469088286080133620739404715031765987368607291519285492866648638017854808815214517696680520006031771477951417409831633624775544822421022252848413565317212084666173100315323930202947069739197020386199738152631160189022967050283674916872914549376872693478528295890568386782145441396280437332622028246391871136000276155160044256515807347723515118553679294009939254319748652242708219027039639944474115242001883288270550696816044016853010431078623919101220404905369597029648001511115258797282128871638873721344172996329039359122396742727278795463256182263834818677039666416660605378640557575936893751157783547502321113558386631035085069087670508710316173239408600283850570330722855637900229584384414106916597990592175196893706076491322808953800018715649155498761795720494362675031082517256212067384274793456135629269294407138935086229101495110716859562779705894433897953660402675089122546543842703462261031055044800958182149438901320121596489662369714566459802406115887247661057789584197156784588152873169800158777236588859635641286570691463748796630770379706212904226386565720848988658082865766252717313147284599522133125551768086236356845585305741714561260825702149431919840482222151457679980435913024040400903262840987605331663600974007951641794679315992205981089266988123664002048976688428510815170905868157276747242662426556427139782345872267648859152260148212369006743953114681136840570116357276172362057337449791099765273505381209877603069734680074049913835822673494134152596593267244284611249286171967746025114820184820388651888057911680464761650092299490620030568773966507233981342218721830904066474107354079907798835620736710393741616394305500389747371214412418717654053473400711593412156137370359534351970092747971148319210770614695168667800339778580755559591959973147458562348488345042888103380313087151615340564482443444318191973625154283689867346267321408566425300083315899049643796492693536325292410758702127658980661540600300824743721466622190208925850165915005607743084329406391063442098952463787510015391105724952226020491983473016468794932132631213509028164787612768605465268855872028536960320315235883329614803217416659958692512576369093720286071861003759118941330111476770814715353945263831509856967955447073100266131572554425330625241806919825848389563243017931673718118965206022753367629323033802408048415228101248118089804998328557303912174797470303151277126958254410466376566527056225211971364758029820093680421908515656154542744551689908166658913301894728917597395315751181370501770487217400970067875142894469971152606949172273112407781832361325972593658419431946913245847554070249303690857951980505079957497753665398764229023448406061058403688817909474634878928374812830681581674526026726490664251735042603342065714780368694767551222792089473611729663156036548560975021780052837872476354355804794585560266206788764850221539268973237895028716993100084169517033649860902274437481068535295583650547165616905395417317570375742912591048664658168450939004528191344863845087012039702441706465223270451745691628994302917903263610195974156719762187474039643508848879909831488942259591077813188130132234071467770413596267358786235784219513613746109231997799465664747762429728630702104402625676452285451648987418408086915604346553030827965564882801732611051171235375398951936011610468662018143176504900200318351770854650071108723121608413686174165455703970952552373354548467224709094810975681506853910875258502794945913153417564485840632687657661587757534420791453981438759350945141347295632927156424425795090956662392204068778768785788722425919409893412357172978041211769522355818559919060883961782399393027438561999771842631074615166431005117115862422548494169567455768814372602182202976345669114102181762617857916280316305148881111828869443926255815807688451966801333418911508965459010156851756814545025860918652044199254336953346638716492383876182983126556432027041471805120611563233235970397809264106263372967240250734928505307692293848341934004458825419263341142240159705860614695910909721923014644654291261937004095707753266494958587318604194210825702922508295443110174634371037153514937931427020463385960951053475258052725658129130557694226530473569297991130943679192852461074951822759664530881201152032678034317969456219103854270325547475539119720946848156642959036775885885471880028411016222323763488489889068437565324316574083593357624284147179340859417763212410336543662031022778246817978426236066097539664551772065148514320247168720748566851302839841353688050545278488690089232034414347379764257922279152321763283632997173954456024636888572343051886853606273970798387323209209755299735918677283840560215036553532508326693592324247826910218144208212946565197443797785023502986924098095331682179979141844105413373047421829819395561132077097088306421152835800915225462766511304819160824296041272775743056510950395455930923566392253149246041309418843726495006136783574009975537921371082142308990575222621119266168275789171831954567483581666017164607961825835824593639536077334222171563243781259195874707473998226149333683914124510940594555924517024823068893212905776159604081667736818058351089813794664463500868659259862115149976828275576978140213497987621079632525893664736697541799561855237248069305360426162524047752803046259039007831657370761322762522649596724369743972117240136241268653490426340534325704467873262578046046676850136963373513032980241762192414681038427967813193906306669773965453430511110925731384524135519371095344257505136163137563954119876020967924102116645135687469778574995679630895558019555336246186785768711725034037712100201147225010108880209804997375495546679375516012440990156536906500643374776611873518775354612861058388741785498167453079167717089504201222997522960590147249070132366886742338402189468162554741864627486990264193997766019174463474646548257680319714487752055135265492308722932075336615796262374303446706939332505812279557912669366146479655544258988002723137715803134581570034767607240179374609084626863254210660488742857985825274308260850197308823393366185972148098733380906535520736248284275299448991237254598389356177075437343318827904096708382327221683830484843875866745570510174903409271292378333430700214432265463543592968175273036653917543087307136393938989010997252446216152987087246230975933053507288846913780382175303391711293698090043966426268092827314628069767970410517371136259933839790016391507083046777003416715316707431268238913077687436228083833715750870070806412400247182365990575827932385916423063649639457124687589515148047307058718416089497837089906602001109310447604226801995594295405905046315417420107258637589555526973979905201027718569318887876260121009614299736464610212602739769236437498393929598154652345258878918242306107536468243116083599809640976933496084555964509452651260104339098296891588843487084747669057425163837874473960888088848840224980695135642988684353400226259684820057419465360926754500749703859344383991637179595344948175170506902739894104354286804094095898800741614349807559558465271935942625619031319721825111490881573616542986419215058534108247604960461677112135209907252969320504857300515243827813771778118481540997884121283116185588557119355683032870506512269022252568671289715948157254000902821791438698619122562265036681407699491970174122268275123108680503821269036503309311881717758629256514692930555755389398942277055599807439532093358584285729738970899396361045580500252039673585278556945405310775205442225521096510309680979797075744708387946212682433576014277826197664530065593062867248868845849337267645522693180340393255641223566724452080446901563358444325338717307491779546646390623973135404993857516707725144864884427070379818300693756965103115086028901406566343616445043501796611637509090224629069738642514868591278648064970073846593282810606673324769923326540479439872970074917497296720726001860597211757080256014855579057477508642565614781903331848484592290127510244710159798128911011121291095883599883629501045107743737200453432622707838150779075185599813396889408072403471886332094413646030008980495402816261636836721898983390543672663060287609860258438574756641082969095348200133115934033096825336802836325334593096209415630958147397776591170641915560413728258182647417842013365474880102402764403762707897915400999328856755173006948897728765568398588256310627364666985796702875579967441228561137899767012047602958611943722765416896659408595001236979762024160977800880282572646357492203975474314992571737116122886717557503980106020585041411586545540622224167909137158042136248114883376102111735358581260022717194231426432013247018972505728236788043979076277346016090243628680528083499154543326481105870781346448183256390676165339954651237706149564876622415303038895520043038630244338269121319776510876362465840559487804784525346652530658167267618002211022222651724558903615819657734272250930959944262994537666317722271963067509390192576627169118543375561775936545307630252246215616692644908986642241243786094315113614384275178709768329562815239429376226320034067937067324595305706466818476820154248846377572162167820474553043427743075490530210546535577783544958658198969950285534909159469501357513004419413511005963248947080526505542683861091270104544261276050341774158253539016235447326294230818959352116620788144580200038255131362847855747360601180879810755550635289048207218802195076487149713777295599201943568638996042228767636408378640779065954904443793233151136007553207459726132190319708009133473171813372732261105253096528942400255035770509291109160162086709220871524805559282487863401454258885833216668113586642928957621786430350246938236076209795977220497732949976376405142881411219764990840998748174790133841179195105388328833797726107733826108956123261605733500361262970122681237736104959050584555339105626460711843559861118537724666389253583605889779676890706406788146139707776842368920854261825499757109324584691745019733404137044777662181735332897317162100524272503712330173552318101692142309975518095045882721331338441803014846088887001858781864718896171717639248569912018290240872673444464121414368592502349219112576151607441872283984157073012402985444761572222480726259231197870521749718904725693473936078993159163898175958154564617266362894498338572436918336096354192212003247280948014508209255078509787386803035756005204737074937593435686358842841680539089482241943361804447110176243191659393946704738279344500168763221180660062576462162057111251051725285177191848432463059219033455473128854878733118768453881530779479065086549973335003606786757643147567015241606138790661061195756525266524904498007865309199148210712815914583798282121818351041415246744019653320482658886200669404573344953962585328417175186303837649915299733185836012273207602502770332167320408400352398338736405180868902987557657288760700733666170825991697914694426987976791495504584625249498119915658437956139701718232909840008570620747413028331665388462522221938267924993509835675598356718472411827858466068118668731578523190137620390190877182068686475265727014158351130210370485204064469423724733918558306973170361720277626081315499533935584453456386704164449118605758829691110524973502644715222419709684955311841936205650619520143382209792570809019589741657718674020827355415516586814235198853185366729355378842835150402866569995713869770840046302050029639871641265391515891014468410378452848519181984893373844878349462699960687962391663226741685396388733379416522108943969278362465870209059307524656299113949961497100732730576812322033543262237009371180061520011802937384578939416445404501310224898270519833967505152907061889119997861513816869071684604259353671681941559903853688086912243404804685324713513876238910592213473959091795863525139817432251642681032950659592898701847904386712692220337420076283733160527587248192941038778971728306253920313789733808769692029516109378630589729936532003330430199688406383247911153568577635978487584610347407550033786147546537783597457172895315535317617177672511169185899905367259736933190063618863177146540085530527190868962852065628973827727685806799686896619835685571796216930778118730168816907370623577181767803488139714428310897199700688337021649526431434140504286191387632898252692371730401002690588051821924316490201352942546462849590484272912218096302888922238711529956279011635469797037545833339422950563665916382393501282841084358597105371177718637066920795899203991365885587157206792588051051727988229993921038941520163297290164002260093338003841510095110673347242037628574248795297249903421053087379068838715323707934013708085876024462470802043079633996683847814630418789940534602322784009919878838484127387466164095289970553754278722714754879733733405397701178129056488144525464006938826393162254496722277163355909674457467121114124571721864433596397910669048660708471803052413508276194963049860799398133991824068178933812323533703402484758007947829242856790689222485006293761458644293094459433453687423138700516350667017560759299114876898177975901941701141549518967254985398922115804294555148133138480359189719147172087902623446157188031661792296444593849982620375784322992988243417109955002262012597754560100597610649760654740730715835930012484671165049990602909027186520018749131995678209024522256353709393328318348084057360293918304835276684692234694271949544202780638614751792365095321852775371426015104702024576760383510251155391758749628616762914904260969060507618491253091683633244600960144607140897903007904898752156761645552565080787176199574567737241453848661691617768792885673042793235696624368266178443407797944448452917783714056795399008309353606618561521123601478710907425589171869694585307126317414240867650351950852863987954992596900249947501777339902351834356063080861500042353020452887215590986042248260967643678193851901582721736231853065118177178385355803981949074568515828560542906583634749820932664330329465967498187908632709293326905036775873697251648310918468047472389459074844066496378753411275374424263681328446741667937812648839161074223211764593428203496521745874755448406381886645541557070415020632618507785855978345320422784411201201984321803454930915942030585910729969062784637507825466025370175941863936794776333336002490123515509218180447882791247042309054408995920796791020559351880683892795557972470826407590313672875752402749895178870650078019814355450606675405883843019475813457459593425600790815755202583149575809077372975390770830228825095441895503626844305622552082409122443026453057113654334321949381147273523113702036963804513062486714613326120855623717537905472250173392913760011643323374727435243779447160657017562212499389288676546040666384910978262581858512685297703842025149102425526258839408304622283886542957990663883141176542200483755910402467923821074321575162479410360370282502816624270702520236070285143606576555572543756168618469371920892235504780256798004625474947448572333860995432941709558417644805019496687256439451957374654283174408254737115129240108451881980154481619507927981455440306685467846329412242480777956501153859224840718961182812723432728275426541410088563351295884207729333187044823911759351674705281804369245473456427312069185178947329888100580232827400749267985139038654078409178622328882414640135516600138362505159682527231689287839368673120211392220327024789152389799645596263981814319958191290094345305035097503117704307232470029722012025054718695070367940682831306309525534294853351125606116378509784839209535535030287699480490575327480760725116555924288890803798900971633524055727082662600142722182357432077036058359514096726034751324698028677119181263572193057438487469757652206309745797932942882668687936648921167229423985951688807930463568161649912598910928884508959521837649132770798418247428664661113812686748258679573619994303234874575797790113716565911715873443079276024698115428453380057865420214788618629021207895442781793105713069262222027573639955260606816469738590096855785362149820682574277893080522775019380456354130148400561854649396679303824700061124960506221736906607428675948854368502529585281926304462207463011753433488712919769077840824118863755740097195687856197508341656438288128925844754270899807187815361654135997826718091645767382004424954530451282209617741775597266249122064072857701421558419013686842025167293701569895134287277126762371545620535706526582265979135309782312214257087991345956720871022292878267957588036155970908175222187366140682746594017003053220766031556163951385458578729180506088723086166830387465420818890504794457806883897497970138545268962237933402527898490809879149864878181362805484475966836698948840451263985222678119440763737124983040536154607466926004098192825577451462170979846533097853735053605541475647931238001617739174514037368532244302873368461984841929022227936215619470155083365483046106142664860334605017495039850269096057301447344353776790981464554122740963639171795953446956554532475948099980050833225997427685412992271960918098681915643249951403304134673881662328476763005235271785295771095907134061282584760955022099059650986216704062310131903719302835753370245392944476709525025903602912776696637292690595472613954587718428719029124423434102230534931165004192778825128941185016681492524552839446576663261199043738364213816293906767626875722977472856732298516665921394962478532270126069781317767556997902377071845019615886152894078986425989866491729224899766143658270942529949490936425597022327411747000888805217964373543411744876107733603794677739268960709137990977241553302665052569045576810850831822596072410977452298766347120826113380085947571667457855396121948450593533069229693825622172312339867544463843844192496375407799504937042415136527730751673225907770828134589132122310712843180005159602399214248117295970027779333048229571182253544406992538820865830483811810193021438927166775458149064888480304137364383649419692096581496544854712259996171157196770115002711472953835122111083623453244203991402715299562352230300023723771187306932402720267555461973871004039195702838957189472416845229715639224663300643665379339575740740940553412963660996845223189867411372645346382742988919496352668879445078689867656917556976527702145000386538663054548573402244698709092209322427726916635383945491336677949307592818913972897701243025615659997086501216081733821919417780997898090175087133575845631161358293535862544211650056539037260779604612023999471103623901262509434317720993435887720709612646755275161095636038997703534541297143435937848725656781248476879600996251119292781962889149929897062385484251378803281766885785286714015161642024733002792958497708217564725389322588929957997306674357642148493406432618569763875321654090116236655800775172676403093347068684627517095803585908444354244885615485084463361711693918329014914922114356866347964081920226707574492763865552115872007918273422823379371383032652411568644122023154756281780550204042847094991741676128068782048327144850574946728334373150163130142510886249752075332331517348284551442606371107812641278622098545212319601260570152516108888375227055822037227587786172516031452704192042350065803422283206835872527798135262618623871164346043327851248115956240889295707983473812961985129501511255026749075943304291886249002521393203393750743202241465666430849099351459262434342859316989376091314956050373443588514863895942410307066915036257209951480073009560241565684656107441851266295679910295638037942233814530956571094582062309391515699256248709908502695079651699299363296668021167783962541601459524783063725108314517543294071461502556511946687619666495977256686304901783487800630226812705232003890222467659785243597158727490826587543131132822744693198404721461388332064902113031527510045199684448162269853446689479878559713753645391231629133087289751787388897302129537959456498105183431700193373526138957700858300391516519991150185471674866862229944918123713220900395745832475556890111630698975878797853383057621427988480647799390487895965011140639091098895463563423212818323344905742569959096933742950978934376155126431298034451416789301447995270399952188571040707994635383543725496227683158657976836782965560202306313385715523823580268744520397346972833237710251390355601405444671784604584203399235482880044965068436936431795500800522218320440621194702744045213376508416879369583508768056027614126923123097059100311362373666409297113604529578220193371659565474680525838448555111776093516721419399467270115034689339046843657254040336145331239897093345078422514782338792609324502551201677945287583402973402004537149032786284030480028769889492214057222667201542169189639891487426349457173562526305770777685713880527933071834198061317585497996791589444992270901422291311160618333395286171858477695953439891476318352564315182637401951983377973112462337528593255895903976220852767205498173954171978885242759630111164178954778304276193597260367990093409133912999543713441508168516331633106841290844955468068298894459937851254647795500767016752113744363195282304059904709436693284049905535676548487888397240046371947240946721227416036812338528556342607825878023550620093806700737000193768149230084875607784212007626145001460698401549048384163532580293345054733358797288391055086253760355418509469849553725731301874471092168980276852740382763226141947025679909124459102597410152475521978107508410223933365149395077506893650503328957532714659288966158777081799118174551427191416577769098842388417479143863158336534330686935643014381662366653771358846161702778416504483203505201324304453474406619402214677342925916804125246194768199534522208650152224354557481740646551392273758569969880750882799533277415243590671852745856992848623385506059848724591495605472925845496123962661133632965029927615669714913787884135358564656537020192891998643607873011011401913926191109757872786875895835007582879961384453140518721176746278041851844906100370966480696638294303388723647232670051040813671580216506912459564756986224653768757556818891148643879701269905419801602517355100970628831948983577833671978673733821875344981141161524912171482934219679664191743244864768233518670273661162401951853277963363021428911485682362377758841072166716951216233014655996813369029115790213149503785948761870371231659443156785682584799234212241195966661024093642775365559065655351921211110430036618437664348077337320565661737098524440387003100862831240763753241828782586419901232974069911874713685117569272444180708159113866707211247526074610946695181883565898922343847975741659982257385044389748580957602883491716967251392252568489272444786196591722715213413530503553496934666500552204746768784051565488462765290692322499334701955502798024751015193368716503398744380384801905645091594021901121337124815189120187894842010240350552548196237324772267242386798824097993707421152673120043495643482000409916158353882526442584209277269543293336118423726860318854612062333949826407879203194986628568360484379992627133502986082783482381013275752542284096680188148422796435322643660806669065764813491352022482457785009834832331214312834257856316824097082735197676147783789610015683913506649288789414916296207786134088350121709927222482036053385047816761277831764147046772424299537265079770614757274965741304292898279109931677640444117995435907721903345520537295156742616851469139294858921370635188560705842423901309049401766402578197124240771443316642758401493756162569022751102245966818207336504254049640020023844290908816803618346287537547856639426833286220818096414290884563812258388683918389208168735224102739391743968903683346567386050816710873334247720557318794758186430971912034698056291200324647125893606813941607950434256982449624902139719477843256845075491420501754678616445333311840538339977519755268731922913380930597246489917027966075939450041853352851002082515554410951396509499583885859761046100859419789182806961158881571779736458872121313650853922482862039727816770652829632199271205934169090037926848064586758411995001854454603184016389002980232587152366986663304593539637093671592801822989648557539396320892707546474462682431047368723066230488250477382256763313590535115929188865872915610421718319931140039078217318228280885269727384397294767867355224389533974406987873341310165700906202913659054843842724956285171303518900890814251555845750773295778409739742354720856369695902822727434817925024102727453458602737260291677041235562445760379841681393582618119745403738970411892621916702887862217737511981253252510036644404582656989035317785011157304791520683169813539619863211558616454181919570193164641607905677314060384620967505767289236480289782398743056548409432526652467401618532527656990263321330476436109900301702057302141518476326847742090789890306618420571818741091009053958604684914404305314206774537417762717636833789760116231751073189538258519385272926722575938510282311621154570937911638561444950921983504929711106651240188098219293921223538591432320473300733487745426177114341330259161406694760583497730463873884651388127566818174993240580768014993358197246446881778137106342948055160176773854332556072258667084701521608012506597069987935097160899853924473705522584099211050660243036925967375977316834808028002815645033010285487039103884983003858219570622905203161864166337687433153665611168690111253257433293647673900918327818908852320163051004069375515720546145066446312567775215048563487796675579586499804705714930266693446282437949464023069740636434623535750017028736284439854115190399739580476184853464393852297021824425514753379163790035000842107987560897295802004553446656797812429792776261492551118502079476567832001139908974204886999116955579445794667762612655913367612876236078860002393157198150785073389718292272522350258895240058587607267797854286380625546724308462255973182988479283082882473322948955381532715266614660928641499790339758256429133695787422970818055772212718456155449839223132743546704209126565183711079055133787305634044654799945624295446873713554787942662549188491706627813467996225195129631061798203591518746528104203045993325469395837225907568125124357084334493860864574543930801142662592812183188867928035152625371656939452508321625351191470982128923893191341325463748483757234431064957119241462965161108658155963830292254128484910548047345608670670261234223285547647660000058335781760397342168543972539671941403426000694972476032089504513873018157049862242084571117146940193228360465059967728006503771197304345223056318211584273600863358726476341618194937658679252187285224339194693950515324563583718469693994352578302638655723015428969165397900701364133465489921278643431739293875370193701837854333240634837934856946053064697431014418972941650722541063070367680192104859171512468144773442647978883452519642304100928958381751011644398284837050871629424221517174187121226768848097822256250888971593937495739425157013436338077217035994579305134710698367974547591273038158902676380383350137077731016005877346576408387216506851214286379183313187990216442706650692655312028376708795431612843699895825938451243503119751179334048584159648369456330609298663670577555917421911663482863828277196350208463314922061539360181296562553292499417736461550354105276339358482289104719519267835919148174495698050303712074560037958277939930143196641184380467193313420225915106107032897217049370837263571093113477532348638660525720822009954794939957357110860401124933078215187874083538765072206950280558492080308811322212200652371809123969390884413276858721309779545830200115570606126711772955075257111872093143200885886050933267395476460783947494325918857559101031087245945216115595558530824497104052599906407941144961015225544414831870965833724731536272662692759673847011824147372059792970956247749911199765206761891393172414974395188612706721155239471853222204773136411256623022857443990469359054753094343146160384702601129175522397075436177527146168217449108691845364596134967627449657552839103513818180511549627025609731021596288655339583057240365890695351015285548129011313442830298935104932147007857648738511561849390470798573747610518849631790431075567142043053781924546950230505228781802176628286595817024977617227403902621069257209796271297170188251886201475565284992533415854416639100312666377757825984413806099675315211656652639650815389937306345663274240907739320825177927948824279874989951925802773971252876595576189109518252521597066948516286295863387070585536089849174576937641404611192899194176498719946453856161078866596446177175211617758363487201811401590990081887512434385336358802231010329407226380401189202679674098697556062014632925825023056999906464032460475014309291759724175337904736956288249434433435192683870573016796388417181542855152028703095016370371479866471463798715834503164397134114496113616368514047714495314162449282106003024042236742164740153126469806603766601246550918492098248402404833502067005279041195295965030755632622846520037124771787491655749712821936202087548618395000861408687920266789075677551390400002935657724165828006075688381260982187569248867380937970648363759472280801366284400586974977548218410602601923369314547994486309772624695399279002583806339417979608335507518066597485133703008968015416016817036460296323171446979524095245432697363449264807734003434080176062540807162236221153943372685151855293825607062586771883687426502733826062994526718898409930000414495129027950967747945338690636792277027601118435663057200392608893182152843785128763417408436663633200012957911234541904372293894720662995500307760014481740244316840057609434146262100317394769969465755658857194707823757372035834448414066715690428658104748005071853278752018937724796230000736395371138755060217386197394285078993767475788496012549372718821861462313700748795098807594715857281108475889879393408681081151094817482037729663844452695610749938606581550775234470861677736959227508461140843976006966596765844695607334554330324816210756959861169398584633827180637890467721629964256833617743773229331113481194090098579372103345491128456808955338852442591912468755002043542478644182855600269799510087063780998247473130651683106890503054292068089908180523092756537326377141023381152414894476272091830144554408117704662767915943514949931473002125830582820880497613913290197214056834645902635554596008997490180243146235825971340704409335411148612653173766786891116627674902116079293041078809803824232683414965284225696644735504107415488622673325183435703898980331599300762728541347551972641137968527877172404230211756703889618612517138055917692495500137202134479977178196302859345076582953275572729978624960221544495469206692161259724338967180069352549224775565342697975328043567303339759722253044215658555058191146840985075264193357866959358160130061614028886844267271428989878078732901995815690670348159922887669244693900490933885797971303459376490787128483460963346306011095014529928432964764407966347517006455358311423835848502755392654274018420524538185723464592167167473416452358388587513431083710392814651676205832299198302810208753025744879359292223799214835277783718308071365585330625976348318531604243313510193622495117343513319751906984424235950528157025047047746969895181370333867649286069003991408868097009138353796805109155635504314352674770624051225326539863329613835464061284821167896911574680680681317452362729437199897219348338465955811577253549765686258575025662063528641046047961829328980601709975570662353317507429772054853793366130611940336595980052751124205915765132298142554260267815071647065945031855574926886057674799632263726712942660716946535926792227079418741862583567135741206039075842507183006393630555681991600835343203711300634964483674316445952394462734098353105637407365503877805047421591294350265000977479982139839701206900167543487151961835045412017131622337486359299634122103548700362408137384017743339043624591036217991968295376708519776733602710759229723840443812629699380282651170237296518395224124143210261266111372599012547530634548385343217556059325740195222298827534932731934329450134219813798726981165235537231328414602417882126422991820990135889767546097109997016653958730841377189930693575584944098814650315660450124930030433659154048333669667302293903349875345425984074473647336126828515756176143618793885368073804383136087358763147633973061451082641987313690117512845226094854599481381114679036749149063656964625186472860776260539650021242168983298394509597853485077925693237298636824950515483837863704579758702767678855346248363417669237091577100736656417259734257949255805713312558829163411086034560160305802094060206761070137641032897630018349933954525044665982379933039113212682777183114551767181410365693455957860097479488369548693457727618315378382690285644824690683771088109622603316383101547958851110714692776005039190515735988129738623066734235152345307396712103841362295164009553041424833616229019810569544434603907089438450095272631611081368454478867248047132678912535110981871792632452218096472706011505973879454003699483277175336001000114119053116128929460455403051127795000305444270767086481224386848682453499345652506667901236930278049806832642030698650925692443092990864549286894159219603097896590566310500179341054210575121701505594314161474885752871642899221042383105235354854630323200248777983954809676701347617955775957299380012853254516460758248550018158599046292563066875494082058853018357129851425051065839629122316666928983212126288594420365728591502908773807883503441855400883961549584010728194561768724415855835370302710722264548619386524092312659829392600866587919390169659910713239172185937966605575034487267324461849907511424879530652967529202237307323154941574741786817200992049662151985849634332442809441225655826355226876330896440957764198282166503129106225381383553825437541986748314076859605136196110366595574815201994449940026563224787209545183470630773603366520772880040962747062343830511070511630321189600336157074521482176904212316100402741862928753388129744701692324121414104302743439995086971121122939205371186217410600325900577866962076202991691877640702422528238417998228027426502152615764616243128614094921593113871322881493571977413548584801122435037277051002514069657317431442527050871697746118341735404490118081694503531701124198107359326644557932942614426843628967618085706688224917989784238192345183444078003500646665592621630201662939816592137003260976089158454045449947654031633112861767237508769014353762954414034446348463199542257707146830622835942552100995966495462558599903118811485596147666967407415791812270188557024265218048883679697046954002531094806073840303862930494873177649980621740090908278891155683328721201964556117015547634686920690988150647784738839872894807740441010464588349750569523015125225130487401204075071139754269178233596202188955148249308091978455407595617302315371695665397646782803574250361274746365659732090898740700780820743222829817747996414523899243916328058429643757656882661209699347601812974936282422921023781790869078711106454105349705980186273242054283652469952242265743807360328325177420530194552690448631767168406939421923970654897583456675349132567550284747860106777868214534220076142619992113616636772107597006088748657708218485438966634309660895960930953287088807578792635712154754758236815302199583011607936905277802745193158968668196117087961828888795412428913355898091364334461841479760799824391645333284060917919260903977345629061315220559484228759563962462673131699299338253663060526382022088550720273474886642399480996215444015320695758704522726506942351772114395816927817960529033716434755532299100955578389006708493218720438139217101672957998839914961837187362637347640298302291032653953382591045648268808308483802986384779792824055237626377102363677776776388638830268003686810662724638394610251647698361355440882431376663023722910531743124293958396689627079345076724863255378216368696385621567227496251046991691987153663052971685341471878141441517311368146639949745189846285786752968053525642058854916233151489432672500538027497533452250655434851018049552027364703899295647263664884032691956922659610658730233750263914873869191602228083200612329567562850324155306988488379778317140484254315171498186562334273707420739244917249645326132652708576143960892230724257695838181104132061128464719946321295716498323828036554321193252598698722756532984039597133031156289679045222565431098147122949767322936619359545658457662766493409208687514671049015572918645893533869707727413143142232487591551177962527725398785068236697122736061257899236781259298614625814770857023531907915055365807372817685386673537252162044409328492160723004003292104021016286581179470468707003826369938194125734840654418824364315130147314335045225400748061234911852500150720990461472089984475962341895688131359271567059322555936710154685616903511146603728500523327829777602317162385003417110923564554100940288262750302040087568821030014820832121117278926795519025848362998954050132452825463596475357649118548385480252586479488516642019662185388198383863912889579737124862907885790203191434613767908356640132005981482408602661428506597024362567894145850917705916125886574673947672790473830185463307466319243887352436072551921420230636668899014170509143841183777347537193172765348704257516615678374232975129818592631772929837995368851241067646060011712465675344602393969452025301015833346694851148449368012020272802533560044523971249768735040491845124100063209627310202104086492744403594328224111027319956595260473967361157062833834738540767098846119887691158621529076905362496444779153259195782697906058495903584683923547641272853848348048141244246449825970229066623028735886696039993158684473154909684016806634834826794285068377164076836333908795506705548581874874549642274086763801315088100024904101288291817260848186540009211981086668085780922379879919008999757277492625403733359851313986848225713455626962339342743435929413447391184722467260403777176088763830852531025567863973771672727874466575635925362956609406087557442417973126450629749567215387844012259120332737225358207030341313669823415321904186047442420852740519256327758385795202374231006343959451700605972892144012628145508327448136414009450319846312024749827220737252369518254952818045954478834157028768212193956405788384822736057966894422863416707703143588728557768386216324618667713524045611139668282788488857629972227226675066260763276055825136121887530551350059499018832484625482296564665106405576546326495522932727607311841262100744104017708238664541048760747174325592861286046000424925828356393067855152790303999842759896401002253052950837312882161609140842916495434381205670569454716388732517676410006800971043200671683944927787748863962908008255667697059928989423064087466890145448211701482576353426852803226943216632744269489136822731767487624428421683369329432153049220730328649521230966761685557572576489450930512423445799121936258005898688091629549861157110130448226095108719065027659086174702652558093942433394838001045249669355902583956400416561517313124711681998835366306018876795786192388519962458528281132018668959011221085296415093275276480658888933428986401594604675015154731581127418464402055327921284666947291744724763413795802476415243703274236500480099353468115800742826728132209582371546034253383430085719630364185786069042763821863466076912705343801067567053052758530898025788387840869918302463705179100899718727416808185516792768736400651325899942807540752867908981975678263169083402933534936299830282078999962740104171514429421977425048413511680679256421417109582083006551044550560233593698891746408254488327995650605761093391789565427682873315573838054720200645459040769600201234519331733270166677534302154624178948424429948053792865464371552654517570243968512645029964899201804570307424410933160591923630385511529225164564123082183270922730465159588525599191615132856904721943782562214496792756163540504522283467390256156389396035393619769578799721977280945059957466640196875505770372377858648702111536141815413861021602749430112335386522080714112709377668243173955179032630486507305114959366962226453733720694270252724695183142509038263768193429457308228360534061771050560570465153066714695855152100408089554833164989477567197720184405683711774069097060190994015065540079752192706855343686779511223607210043456300702830688575944190857876371467119904575879886957027560721749918566197558299996810783829030238862939217693603004085118433071347112028643891800663834037649861469606601036434401093840133096271175404559898999291556624543648710188998331651222346682548786614815358978903735590764464014788804944980658955966335185640791838924988640490413032699639087769302440513433251478669991874905974111123896456840968857368583079891426266929821685886734073485971719456827867404210094781173863053529818418951172709714995736849798446683692059423462805578550361517398804754171962581625243744626834686054743857774606693664365777827605440718026230055279171909296839173341503036231199148039457491604916027610517989708955268107760577844710343883698086356139559174908517167063931510476566449951539566456595111128349761019691050067635828703384135587036209925157422227272512251701759224608341123234309780857639193693263124753798848637267990893578456426417140231812136841869894244477436198688659014586119845350602395132732209365746610981874168076031538060941324051285177087486433234359970481970170527650558147952106710688581438875923748246423216088794753857464264851662688213087555929792207882308451165769570158303686584272439339323112279252556232321101000591523607534712306401016127859250721654376084992851124942852169772643735363743056452796930347821519357483703033690468397906883110349324765184438561012045310820656309990532651350721065603875696027681001389591196000492656434190914775514332496000893307556693538866432887371607932558447961953035269953447167448184926082989126228796601845616612523751815243732259659217624151121334102972132407713877941016833597725795011491480041371340008683839785173966983889405864750659411773375692527790061480700047567690036650606827015295518668633126194925534027835513141340801640976592680149020158131902009215203699054262193310844876756495258463932572000050065875959114874337069169695481483704341671703958426751825633652129604921837380808764814316614832329743814996264850169511835690635565575264144088110022281684393852661495679681917400713569084880442898945277927546752150469536536292775431501432429609361663574747020676279851720658118911318843629264312464955198528209654867974974344713067285466519641017867824900725885801849841434922422056555510484835973737065235254595923334962491779092172513029536426608348246922993660039492033551684636371115809406786930025081899005256285668937491277565311842856722154030295504518412814794669497940140038582137334321875009480063723362064405106725275713648543812422473907335859530864374375114201413511825304011876889265281988742449081833549594507391336634796638410270834064840920274653523300161500442354578181087893141625449805701984040505067245673047237846615401796488081498923214896039486965519605004978362277988102704649870366958473037850674270856290730732715930375109814515546087097986017097248190578196908909614449818655771912176735831220443489083853673161915310128807545612819459191220669106705128446017057596040557450503478365049056247346873171639641482979820569461012043129699251411241569815206593191469603803376254123519059157580992413623910973883975801392403717305857686219243089236160214466272871140546410822245532444191576324988192276331101921311403140338123790193604716359181928672508877342506460456881280605386897397710398836296180477604317571143935843350668048102636970817724485025086446338399293074116556165079953713503490911329933871371511326923001577166243765288154935493605015716484850356974010231899643993988713716519192945361885145932366082437464780761260864104271308617097320471779971439122212824612241933096075400867662683145997731747643527920800083087054850025582776087293285037846719023107140575211004973841312641027515293148402536257784808217270649444957334936460869456007803236766616065204054967588865289255272903220124777058295433523379813731426245240347719989182095753625896129780074194519387820872263714110536522649195798694326521763647319530868511087955505215311258259090266908054677707037398562115141074468733685431938585349843634012984398142401705294104074580393786651624284782189678725983153121114485912570166391833818599650977737731229300168442791236591098269291561001989298111502534635876437938948806996892555914782211152093036054376652127868179490685733874078954364780486743346813324060406264684326129408772746859559722627923440768189238763892663686387915030064098484219358850798897788986127865180808453843305191660135376857044121840306520865800274040290388102998009341649879985295549455617645315948675782251524368831208670129725984072554237465853721110030549838603775567254588228233087279185670666231665788008058909558548554335049560142856588692451064395233619160782292576884551411478270515591012684743563565948668203119899427238322735715776618232237343375948933611105314255087709875526699711789498492647255603829003905149223385906720041871377614936515991423038851283107224858246821147474736775817524139310237406886629593289968858104526299561950749196623068799175022888968157654767416703309073878380944627773063810912100703824581993744184510975292522850510058938517972628492641861159025989142488955776845863764416656536197223384100530060420765492757245899978022165702887692274548326267325983918796683335678138984361795176841186932013731038905641277243891534033486745589652021540304504677122586969096419589235246242552862171053849350046256416903416867810583079902588286859857616512785695937379421143493577373920537472038461964134444941469809015411637457793673002155629562709198281388330044282589935646744821193595571987258482855714037974302070235140428927887712614278839983137689373041158679219509135177504187236550846944615238867456345036956165752329244405248525894755420195677189756259390307816939702391393768800009021184051989211561964988026596817770202778211568629078101753069709250517275874871686457123252819489087636005451657261935584234766460285142216381484565239479388364301967179851519596561717954711687955408479064932478257559732904767668407906583237158635292934254269502597431812347456941347692392281061112494065007165697699138433903022274128360041640533534507549296679800297771361273386429107484568630184938863704710134726293151324609394848744113887914911927612775493566801199800886264088952773712894902197691364079482367991417773172900970233494335916158550426809008569698752644804184277071545282692185319975549642222162671635282520867274339930021588111820781677114304460681162547471455658965603103288575192804742467805578037597416343080031312042980344342610301449820332591117905304662123808387426838235588969392197354165273533000407345611651588005136553994739874587154743345446882405677005723290667010323260143192699066805304542350737483419815769340286839363511525057295331398125260532961107690235484862948127894888385349192499594598366463585350409941597448646723485293566954667904377935731454362158681192051704256024842710385504723730271200435948080034930210544631458423365615309261246975318533394747608113005475927928834851403795679768723757892325722076488183590200954142751661006165424953846760775929985035284963432856947769672766874276282255284761956758276752159514902176360199280328053768380148000192141453703451620685879100097183914530694316898052794500359233686241574086944425074111409081798417311857643162608039121713869735344890254422893217246787236730879790680868432151293684668449858967529092881237906133892824032141868495043045742254579921334738584202466974187031745291135924739369400410655951555772182253288953813816410382375862914988025341146772520566147902249947666585260296268353711408142238534911540419093358865333607914641674859681218074413339681465661124320676032064362477452644409770057869534734437809922879575727767193474585834213804149510366963410896254971736146740051262142874783271733493420166016893539417221477932216422542078998407416005182553255413922602461120389745481072384124440878153281131034568911342824411318992391670112613577400395996629029946655419815016558850676114982533632195489969515402837137347656333491056759722845774900714907159820809621643578275372040058599473060768104876838050640921579061192687598890042693584784195778241961612094218451483943115252309162965580253169294114812625516669165158667764771290657350124268700189002698581497441087903533353521916065082386622146163590215005934557358013030684743489203330327054847101104791270355617982387296443014800409023449764337306900039638762941323170529322269276543579326297204905977189289981706257357192676194074790447693978737849639063803151083780978412254611979767125909633617825726291555041085558348647528861484011270262825116881415002401118884075036698526201357735529006436975191142800500652597048316762065441863470261521076920008504646025634027492959255479907583006058002570937660679833086278711232991432082388730691002408906354566830188391001393600400378371434269447045800161607240771706596546593063692649851364425970080794838712038266047865250005984365963861901443040622981163610467113713901228638357912264603197612426248378927966088650108695613274844237819591064060004509117173111362393985752908028022852518518219291176718644197205769907999410615982612822604386824202612239705489114878796522058724833778454342046175931689686953351995347071556510030621296030946150711639622466246559377934120880429979215010846333899240940435344612213000060644390268077809599321121587199788020119320004906020076130665541927660980604624095046484874586836242665452508502799930827971778982781475778285854127193286928211073937347041269615371787226884281508008459948985998000862778526357604366487087682611963826558211792066374569434525312131651890125506975580032194523171729371146463673574057983178396696110220088810624447194087115536062256132761384290505461347710014075660955120701355934364563895351874751221070395451577707756991058974410044792845900208431153037822653078132439449491271319855597472569788519356497562048636739313724692508218843309074250829023870527128792830614250452993170723789763784231000311339035459333229688097129324884873624398506545912459666798694565350998689895123583615497659772643387639696726659304552423697194872431743521115431513137280849463830247869339794112911145210620501156501424257455830092947236522333102065549087254009172966780782303912686989470974387450680499625069294772749919915087274795155843904668142370540779217404617907449306865641332640957248772806814028968570169165152217072395832457088066152974225968955056508178805619106924308586133577839528198737678834911118972904717477612009237042262175565887740592285448221299685039365739227309897353727714535905886401637840285354718031023186711567983759115019489166062977793696087576303440858695347945447835895254007382878019141208119666539051601435490044566119128194576439550466869584819505885504111570121413677853672817698453590512305469606763891183662023835219359732273640202715138019517570554713268311964013239499946427458016870162519452646533702583262350029238420369126759282119373827751183639040325259423869626944833320120445757095584812839213437310459559817899954671878557659536328291625588698906863141092367924011594427515812763470007984420856924433605168043858138509464709447242531689986519915646934597311703362626540919090567164637017661836563820166532929437321221117329073681412561975582289021832180514897585755656315395030704544834207240765631767201966326623322457000606288347923396334264314938753745182821892669762789277773901028534021403397284809450316795694844918171353494017141834718689796110284464570967288768666088372782989388774763716741658613823838579701234406573354507146433349331112969637713299411650266230915811463390226185638062472805352612149841554713624850873704594662706836276971424073343234187976030875725687816025544840339299747253283583100189801844153183049242026781676945042175202384883946142324768280209796543550883504314053668841715493078069592450601342174132979506018259434706678121384370312067312688657422021999290052697561146529285855550411772813646164542676337245933109462287063222760008528563965082354015235034756852085776792648468808176943859486064389048795280199282100735616495740696824934158620897409616180492991056733775477411598262611016464786467564197166050397539087550980826480841668875834662714736294465455583533812352277798993845917995323737137616288502513452087585167061911102363404302411906395238576785474096945348612572160848594897536100893134689375263448825042389290312288323534060370815263855580350170195304962877410393401647545085885606889822811470780381612181352343178465363931261480443496404145969268719406730534421695476876225703830996971435493885131902572453994967211700562102081816284801330655879716345799954674338982781454190185903015396282110029943076912919467067046539046629430314246077281102147233287740738983436896289498425894329050421543342225621450586361372602234084959408295482638535195069644183280008937072144540477202875116636757515032634302101412239199344981438930847944375440816571447220541090824789107316367820490613376745089391768918795619491089805780527792650587272063940075627717181276789865284004707330278430342400329919078169640610173920637583153801158875294344815403751501325705780141165669875485224138284201479148556999846869232161035426022233071824870021152849588083236163723855034486141873025067847110069643582156515599753253165123328731294446158787083871199161189423642180950301449048178963847514651432775421315631274564305218100061695715196158930041917354826822634487376628184477596006123864086606654511201409074874121362174558344473584696620840779887387755450422674194916155057728647557175650764918488228811276497287656424514171290529604508560335546218137257705457630020451467298282382343039964998043024543447593568747635014312134586986156032571151192878169757086189688535302908460346064572390991794108150211683276403871526362401392952932051533715293004045092899214140046900731504114852045779369055633699734930427742242587309737680085929841813036965586966099012447513791038744107002584704781378099214175279718365431707507411788191908565497018330627732791155030047799646629169610193179053361393756044893875466006349000074939598677390351320644401846643514876442003931954817851787722254995080917340983114366513329757551036135747875292406342498080340173444539246171277716677529857555613666065517395727879490777560498110804450146065120933670596276632017203626223892658738107938207616900418796108539047813075359217470853940430300910238475358492387970671730221209089434873921348229007905890479032107988653519732744700586565438893937108383574553764855024761440262027515438751661831509425324169750750925827262948936204162493017445210068714971029727873027391213852582470211325693381914962946408496506439081428561755270642641751434020268015250533769447056983284941671371844079515226049848359459435283413333321605365606331202457232225779075791678420370397319453844584025206694120690512625697046750856563242682634813896564938254979470205418416221186396862943632135582475047933042257024525841214776869407667300218863082065652749907092003979860516666868208585393418143143360136898295581587742511051540436924182854052177905462802391103175097375024754450541145389656931586012129103167292044131254513767011822538762905651956549578833559774888771806796951291445483645527657183942193166873396001209563881085308456224476983122251026554733015603697542357738099067804232763071591195273855476700734510595578091059479957964169424602745630800641092134021098043833262991862837770026699512949075224182159914514501598660356339764111124502497205873582659664385572632061808120388694485652514982396932330538722838876803094635016363103120925539083769848003045321725723949865366762280457367480711674243049357723860980877294598592982853176414000857746043208584422941075808505129080671725564289904924559913594588199467672943563302023828638642594446656260357344674284684565570212195506423167562685432721323181492011486283105592897434187393143239912138329237521928567606772763910800942295575906565726464240849742344081206492038408350268436432416299640172333651308535069848934158179978804226650879493622479514414993830944811376469510174648038337806563184153316957355311517971351213484861209359942180766230333699592425449595588663108489129349987630597632192077779556771293130929940151534580814094825370594619904244839730724862745642273013026262677016147233064372280988120819163415053962809156866837249849309675604141571768344531717409073208749585885488430364735185658496740788958127911265028237832061292589347730762975214579744922935406620410768251018130760860428358993428203518148035522164205524874404788981940773590718620623527425473537661116580484674912937563781728780227145794831143960591355778765939907498110447966751837626152938601199231823891796212053076907891961410811826497854471541786620409006161605512854688378214722907516478203182852822088966696706656933003156453423001827253071142051114397511720113848126413183043116011019275791920744651109869335378840448768541783194556048438796683777595652992496685358489089687882604253937021669356340957892204390765083004883102620975502590455046872109947411651009852091196827352754534365602151219053789440656528390381450758100136095996200074988885127580136587408392400549059826433436947272133648254581629130481703731666525342512875425337603040270786262384609507483024936248992237802418295002658097523924838349961133397831385850633459586429053890199420369836747332234260089585226387266176082082618463597754636765381837390914313701438907619189462978002690904679257059826739537898136372559276269611977950175497524480454378649192384700524351716497793748365730424799616410266701938714174984687300300996666963876046956989998911397678323733625139249693756014716012391699977880885978288651902476738616445052973602189286527058222241181964911398276821468253875080072197459809046973630407839204715272071582217137588604507986993660494990951972405042053246374989942632010410602937203216161040021303425105158710613958133432554485772291089883011383310413951872912472091185370159667424343831061740807609855192823179226929557184991554657107217069745909924948257114026145860300844946647763567056925443261618414015974120973243056469361664461137632211689846573209374378416427162235906576919805413487006461119915323820965593663773561253240203437523513464213350861460157239911766863957728262687054872705829441889725036533397060698597417595469525708368793675957251590681338697854228494577505201229066724233653916902509953955024870832698887079702292238930235150104611892442547084887799108211003489565797714419006051754257182972196850704870667796038382352830235064079490496256959217723179122807522572813986315050807980846164902979738027686487024667074084568018701812822012838673536310189328714308754976326976058923547546751612788783171459516083361663233694499443200082648133342050298912634317074661112966745549775714216710512555978638506332122089196604066196197229761025390761122380027814823480456934009219051466171964661312458297633010726173888432252754772676972144479532406377333035250018180526769418328094309635079844580021699481463010981760989185515133220189612397931953230105205999515410879226175757908560341970372686678141938418209332949774524310263451178164577759662351757114829001453357778297454498791754512130386371697628946854943664207541463358734224825233188922204374998913310384783052281931382466855906706493652623319685169141382926255950339329709880080920367100455312138119697867304367567607520807768845420343714262872234576462720294005136923425121822437198376725345389480764531050373027018125071101694169981337719047030518181794168097425554895821304433805893210116555087764930397584827572520178459735571453791814599798517042215944340545040929405785674540313261474664249621729865542622769891960727667940382119965044840766579916537892840857753616353348381583184893831691634542723695398182236867539686902031938726823006813659000728247843387568614053343041830384891374295609942795740891806561434216295850063918974556776177311284535004996464549845253101998359598214597484744892238307707770399368154000657665937345574548740841518443610344553723789649434725007281064965745063103939250012469647812794910896441590702190516692568596164699165055139871529254908754737389424075762819902724966937638148682107139017417805007340409005954060936718256071777072951782596633939983946187639556276505771465797108540809005959865954188052889710389608892473094530029961786217714361482325480594522578876266086993069401254938064040110117439242831206968800443137006595124545247541448166230760557860468831833608872085962978527026862775768237846301758016394178447462377533678321721403963367114180199609942300665078894953987037753569460423217136063294211348715141531220545678788013325778729749082871091247599195385016981852144309190337025466783158996808975075745232464937458110476453655791769958961540783438965208455872966877016421357040998266356978831688169265741875114768431887376818585525082556392074676883244004232672671017154164090283159353460339841282120112404975108945243351390406048432019940719083851534611116646054637532546033554536301593049725659015820672093136254411180815136999972786295694730949403802682094908845305118300016795442946441806120482823931443016770748330854071471583269738007559383007321290406397858862783962789665910450762127794258208671960877775645092390988009824498701062210672998062112636323815955328016917955446819067301113992660206085114424433319893149060728903931923832594024463687324982686517775592666979344596814085279128417562832096163699916293121677508089529376158350363065712319211268567326196780188177352168669300657276173215280965036850727646141121589976379206850716064766416613633725615566771381976121081516581234236823036087928378163011704374189070646985484167452628531343791364125898457489519401543615558329499310626822585251125737907008962303537690190480423338355337656865655176560234793894563808219609198447646919762627504520367301438849564349295104920738205865599497818090840947893956424771694913482443175930397308259475835026631040694024951807514643702411819097757974281647964259963909166049524536783810162300444495216966621263998569749138264912408831819326195993541227065500577816098646389735125002020045225926290339442351554783342577996888428932836594632519562557426717504027932538416574559840948269135291654653425760701370457234062635408404471467999644232159490093918672666339347154841561505516475479887396396333307979237667069538736997403721948269344886685337093607889540934508066500416055888341425025003272522289887750164740279080624353091768170070113619036944318474694347904441682420250556686698643789950156253490983669365421522368231449555960074144623412741832970527667281279624360214306214358907033206964983484394085197140143386012174387434454794774479379640111077794267636385433201501515858668664465131517214462645275721237637707708963338520052054989377894696541166505253854166201315940820451536185525076734352120223900149744198125167219916890458801071911619716043388962769446121659790497884245990457628071876343882806124161695436077106958661552710754889013925984692036072320114806536536248306231428294514178714482505980859367155254291394276604947240963219970560699899400580557986652514069331837949196204521849061198834705096622535051376838193691219108310746170656880075083194743703164066614245188430569955408484561716792954206315004775774763306222065701798360172787681797729374654630190359910558030797629871480385047174662808900693468827301505428563201278280928869072818160870206904297210486650489884487514580925773687337781258481901185660178577778934155004036397497141418405595295248095162387913290998327190399515942229352009467479469311273310390468951979405310779335909010802191634247364472744871796249116627582774263284628793905534632990947091902544211828268421683198137366023758394315876180623360308748672729837541043595746538661167579206012807204288659644258658747019588833247933569563552876139069981383810978888410517744532045328873465950337658723556725237579345145256597578438804741674024799605712014283645069014252088165608517217828235747795334277437889743494689200534926688526708609297468930027170471743247929286909625211585904280097010809543379925656823822049661669812774334117430725896062156102922827615723681372359743467732486322081941189937749281650569362157669014503082207561580804141075467467611548492807302625394278240549640508690616419711174229060688527564700859918822157624434629231920830761684174203906041528614546477490862053918892728533719289788079767720085331193795357027858090896819825804919051194049471374597691717068667726183801889478866007223344667973628924178092055815789121761280432547998456796531090673869880354009046484891250880982814807081695861771463469386360997729592122887375311738196691672449170103814559869093521073520146325961853164360584441042427923740981206979837056586467303564970552427559845864837132624104031054870524131838201468178145572490058812827368005218041722281620962094654637503145406085313561317116731889278243295288680217117438471008615640755642551561347530640314956064534506198768942699410818244976864959825153646153510060948621271191052983424626434680083515456602582641556934639866594194691835606761546003907277127455425099946105291579945806185203850054067542477643924169666414807882538060281970126879991947268669016936313141800931761093958180936605356416039541541584290270812485543995189189982207632566754169606016816371034081079726973779928903695668484848014650152141709308558333621578480028237871128221602214253417305202077724466433117168290261121431205018089860216313634446257021363023893629473194302152595802242512138002827170257748388188018112736317949409671950103694331478737402109040522386755257279156827991593030182213137873044235625891460182629492137393408813142942273303047476272328235428760947913878686043014938122256907455177304021575868363473581021538611599499732941919511540305578118342482367471723684135045979048284995951145954631947211966234200928812851598732999351367253418097812523410084250780565342706722394835887576406264494075000288068174371370518994361830660713541741206464631921682836723520878944647525571760166566982755900459850765519848801193139806852820691658733007740844488299891386025948051580611618237584489660952842004080428054268932979585900438739025827638979059275572785058648158149729521867339085917849032329471070728694060151572140210576825506212235676843986268944186059081866446523779017823375156152432326519661163214050709037981056774135089339019936769862282505447358665554235312448122604348390154936693749438128841538648503562300362105880953896070672906690705059963898837260462000465618080526405043728388926482842133079639763953545349212578602564708675055354002891408526221283781579029601100811827888471789115792768348495188910641455449605740442467606031765984705011055454935588171049591250819240044036784840884034783242004120966312646022983839231710285099059058969637645749469437895344930293411802303299388812167035164332540058286753228620053447744906846870677813658451136251528199063434368657881297975272007821352407284032764928529056910535007773490132594018874382139291846476546075675219334027574446857531773738741379962424841140177299947360051308309879590774114903571906542029095282463737877361540274157230632245722227327225092359248106591902876773474968067005939497512136417376522328523546918144363308144979441050732635319763209342480919360226017533113533504544630118340819962038438937849343170159422032728035164928040545286921290924816009532168070773635052062178022364331373976420206026012198463048133450602698954452507322389595469387985283731907784557685044764208353265149289611101062510861902767733697033414802294751760064614625170552881801617475218537862696197942044408779022891450985536910773720456152760097790147755423884559951405005165730977532654133286879238530160124640226229644441826427505248167248154069835305024729031994075806245253653443978850983970366108532930754637756725782411415856488199812776379517748395904867495066814211969700448221608205285316792904016380337577159943401195168110053385483143414698798866670145878662091664301669070876234896532804925478708330668799917074951854418251221075825880574038872544510016034225360322928945504015674616561545080751721033971879774166183621045733046861212492692626700425956841737268888560198125048772935997530346763252635195057506873690285225348486653524793068433231877048829669609805107256181641895603164906692784570714644238824603815424198494010211526046991443685367542493210368813247352320021606542329570812206695812268027922616230534207846915997593717532819462198245222163262411295997090826814230074117376797865477634056049977693162078711748423249804300825740137108427924166984228268371873227310679081387247746786154246158590255862932124268225909864391892278112102317424114476810388871350180462654948827245646055540953772084125570390052255555781937266444798935540210167264592594070369503278887798035357311589067816586029410448472058268547315766093519408171880350957166066652884537914065604523405843853492960313342110683670614290230097310630681452668670705702089537574762389443326752164008068959659660675832224276543851947617979355501645769879744230552798265197772004164428016389141768323754759490531182083975130893235477716114177047996250698178351737128384190566350280095897880600503547459391395451784395981483313169521258872871286466712006893175191210799626744956194713071684397097468039052064359832355542493896127012590397883581225202277612127693701583158635876219716630390267357593936777152115201397711511458620121735787694701265069224521874228874336478177408906465366818500687198927321499116389582311977566544238376164497407790286646165227339372147680162264319274315584991834676709377861386575883564303050081967466371036700532300060105352222489629428756251406815420183221552464607023674505342612851014115437187939266238458402323310803053426213640678470622563910350500043530883021171182508492779198449691141751030454826359752980064117975563192670281640512749081921893582709251794004172126896750574167575914829796127494322747420078822382483008319358306547983484448089788634270968218432687580065918049926294358954388846241746119747491117114894293357071793357980061011415116424830336257628225157772722780715119239490393945671560119128229257863315628559987456764925336246023393647142908875916550134772165912347225805401737891859540992698355235085975990748003731771039434842694945867251383122336675690524190885722592566559881827583716398562309220632985733122373522872648701523864817921585429012212516178766134054762103433853928226161224492968026934565928986048665436187520222933096498277551391341854767865290395153629574094856958142982549942969048916258822000745892763133533166026303132588896996573925220229834040443524953548637735580195783799415954482593636183997188393393783877493637720013605842878465348095505347456603758979048060166681033037740773628796362707624801813524614690209677876344391620660806060397629683070380172570047458290221748842238549246625636207060515017374705325388803436877578061838890255794503578472358404151548705073803217971253527733852735164603298236723052741872100283561583468906754094644905186552062674159515696286579526878719057059544207384241806070676040459820043694786007290705618621732027004387458771003066138543379851389942239670300604781065464191088806397934089397231652816196026530017368934794847689558257213870807057827118540381290682701892518606361097131461178981841344389045781052100728906652979560051935594040492939142046811323983502317693665720912499842294332617877141996810097295532087940834514826674108986053693089894463293725688483660406893174022975977435224638524871190748637682642343526833902547653438195615840378419509590642535028307383351254516096813370276501759072892303792539626872660259105589833979791368838200039478685443477029285591581899899426894898491359011455609602345091201738956360815217818354742254254202463724105594607432940419654779460378965587396399141854449517146368861567717966193299030340443460050555248173084769652354003472472324463304842869884150827900654696717392784133608822367061860203773854365862747978316914384753302303721935076339470792422251147719325272946904427820383220683628133995433230139540918934093393898632188908322403444912554966746748778927570165384341791695770826267270963024089231089096945008053750621260351484751254171989057693317375139997409147765681504434588901982910609490920482108972029421279815281803992396761251521293067397768602551423121208744172982543846311609571617673123496026971987001639481061375054917421287501000660142976109016332558223888693705771441093667468172784786621228945288606516919901388475873057965289012303609705686460541191196882254168776347022846353534046763165688414341123239039250426665083874509366480078711968423296997076984764662373138546406120736786788969731858526631149236330597175791956754696775997054543003592992851026686694042541166947604622590736163772722657420682692233982953972274797580419285297546317893323878656303333218951597117860838408926016241186602441579756044977824689934166501299748475630291593437123991420130807174182631441344236913482838130048898276397597899880478768638736604003886207379484812621319071954937968223889748156525625885566182690668766359915942891986823705502222919762767445192334410972527008482162435247994882668187598963590961044869064750857028239646929769057554271703573852851974105335629878596271081141836802315854938013215483898781235049159371820864495795246857952442322421766922051578102417308596534472554788506018490219952239255870506485469013238615693900031795453151203278385505184333755344605834969857841615644776221484638048362425538698283032507284720132796161929528190627351391387672196858415364960218186947161376936728406917782361310400563091119161410289607140255910289785717420214508934626657433818954032646401193522335224848206905060369155021050520488860919475595848910372428951531873089445755512589076310271531965942908070823806314829920069666083624016254369044492541118022140405258400467449985423917874581440366824623525827593294578432558499780842901953304902296351586383277898745631093822590352632524675817891093797365948978803959971451565405419343084252769643420829147243534905564113005530545978965570240868933851790841028486471176726255780431488819667852901158855842365132698590074575153014256165065150033481469857152581270359858333233849701710756384926968446124251232108401129084118239819843013503910932363188231917591085245566245943399236199259000708649347774062888584126187617125312125879900533374930683632591207038878226823818161637992908579523878475437033644104228197528932986060369828373209880446513735494730465021036131060973641044964483958649622297768999424312499280144894024010263391474231764183815879115186021444852134272085660585265962961408789444803701370204840532487518860913098040590573150700840649810379827741613982635811698715837589120305846964321192303629574772532693871079181300758974480353847194345504715830325417971184591732998360037633157321084275257488209957967425574992595452243293128964651874520805965623656225014363742024040857677120777452193672658671846508254717780645828498787953697498136632795485557463301712769488508483654934884776536114255802731218228757785454340127478541380391806634443473141064963821736102818922032142393870896311155126243096094538153586918608481052862078338450813731640922527345006490995553766261232214882803480411901822409289364849804141859821709282420428072182479960813814156725082490585679440950363917723829819058108016757265688051412528241252990565101769228857331197359905076400347501515063424312268769054691217978185937059320717200261437313861205703412927355903433263905165941344386949835502708081095151883108496101118259615198621728382094703169285654975701804734871563996760901751838997372012115825660586306577957139198971646026673686145479640069492265226157748661877543877815304613915582561866242944676821634411520305181074779346029966098560978432818385827858083027299938496604411790093074996962597459267956439290316103363288728530791483447563809515788631508864187519174424789800674911344737533320409721722705932579429556800444291323802302389648152932660613076539546918574317547590356638063027582781529307711672851229735419443416588008441017537673137969114332625032886315025253326662368644749718906762334787840210540549246089952115394517284673942470474293560093627253223874509103884085035001831327719330196698913468844877794144551774201814224355057082679073616289829779897893898588238048974867693801139927884239953464542009405837323231120168499400499546086356616653298216971602178367869157880103195110476913096243787566984589138329620834270215516038435014989694501770777052220938267851923779155523861313525571784908763468442346896756493731322770038308380758575483649900756271184974515836051390805392081578629832734481646539280486447669688690940100878166590136729664897010240507165882911064749414140607318600924763572167443135547132077689943638769490609374811433510394446991715806818638968052732792798595627108574462935743147677316426830265424167058051861645071621080056074736957200948103378583333007501386178243367874707390285204975836416577579392715242233740249425811860576094251355235909274774380479554424706933790692811956789981634572290344386980618596582009052502812988032702136785984641569014114190011259977586204621573771450744347454149404913951881148059183378717963112754560541682347088987622819498631726527649924660072562613443506782000456319642569745918828353988513550326483487267494477222096537347852517424170074458276306757335842013852668289324031434732219792763615039447369039561234968661931734664453636100064179819599622938995613796728415561261550045984877691729465301340939655636446702836838285948015958576735862513954727291657125042519849837363119313391112223185629397300854000492648005159036015901263808991901801692369669554609105600350086979970113474497066865565278211060727056520332340971488996798013995245250145024188722015668535770836373500734678466659932667024910773873417245743016149225732475300519816373510784714950345101462117334849998678820122522796068061506123113143515314784023745040201104880935539507109464347187563204148736394028832143749083778675801934347334405477111043776556869495130817793878952755498344238992427061626691112091679257780368849896965909924325403124674060407201386367772060495652632679718982196403704990619037295058550196233999119998593358397321046884351887848617439759661693097761962616844418441108587244296290783068944255426606369426380457308134707468987799777534560744573848140440212915742761545695529002979288937105032500933086731562132072761389157646750336549811545502989793121634531360112837353906338115361775854663132763969477434786224464380279218626531446865756762681051135098132170373027354495072135313635858740417551443127956910791713832053823221092731520590144670642250365168244025316847572860341776161878874686305582249514739345843723154967337147139775112675749655498847556300398781746120603958135522313447474361260920787982107976629671176861613152173713651755311848741189618934618565299079426266335568756368310598500695291481588772138918430983792515779876475869153207988016238082807697989193255991429822403510054055900815824065073558157523441761900272521046902377837194398993726877014820536668318407871741298474650212267153521696399325353078591911112303955480487952499019719849708706045275473827718334040393405820166716507898806933230118831378077854900325800492502271596852458147809986278533845564424427171742625050816160135982151029019661383293354887376139192742598422815004352330853461995111030570703101374824879591955923566509437308141745127409442604183497458240918660277192946952527437927563185867771787855703167561785427900778802720284581586396359271478829762720004986564459241717841484458121542262648085497927571760137757588712507291719935158199394948181085788865307475001561651383363618226149879188433315980333958449054144639907763095982560473192062840232283105520426815344325276538370715915990740457163927250200567031079617035607457574766242047750367853529544994756539459438325566092330574173289538523148991128830446520005416145575545067032018596405070417937013537494886368239473227129721316070024912654010595775702900890125305989609148980412683549431952300684963059177100391544698665570190047910210909267675669324994479897635384537899163068998077279419017123752758537395760333775821540503045466846171196757499162111429352190721693960537820407346409228265101142972999892590534701493931935151319272591643920368541019680808726545536840734337334260720896651677059847761893725802221416664901680925527956612093487408906289157631001909923870719845148803200257847395338841241355405845257171349649443759155781043409576342274173609019465825439061981045542162429353195592268247376435639929313748497179049374947838242401859261651811852077778807469591394776146502758733147798636296047125314231685653176385943129976623105202935819739733591195222742905734137483571228087730873906951052045019415526256665024622747693736974861296895567040025566564003712080510928523800374856118088390054552670118777536710255300052790040561914890447074732391851876587989774313557579737346351485265306458870507730045571908011601306434957911897231325744372375258991203433828050227855267047278655430715477115707597230285099239088772418851442392992525066680562499387752067736195563856487435977327318631054444397026253060375419809530383479000796893470603030947197844070391982409431604177405302588886378348730933668418976908080028799590233197601102500729448040408649663225092763546155489849607032656441472705318106919301864160865425669505770283989390402593576334639562139459555867178158042149818135954310375350605365542272611829098027489506908117289582421674472940154180372172953971670316276417605420523350686123671130601400468121450678782128472296573551638153801688898783423468696013658062388970618478497465716821668589022955268684193049886907958528374684063719274123072003829012104130016090844144523268219507301416435508218531063162935698951846748935309157542671664406819720843831345783705939715385212671226233502675876286406449942916464149901257788528317572237027737902677617555000301367899420672220539942772612899545646155653905403612783436709464826215825083682854345316505392436275158253890790168418993115934421477978245133973422832784745311296921487753928901809264819752003497720989131419920854229529770146255080089297387771020472228194948949461889731316850632334534751589944581394271563103532188878551196982612492451462872639375242821313602588881150630193256543787781798120865676678019809226165079020938675959433075619479731510803895954484091797587635764955184118213481088874496934654967728933234008847962257485674013436937661310763140505954500784852134569873518483900634631496424960386218354644593401790849653292329027972911073276740099743471583088326936033722487806405231195017540654715035813581287680991460036840226324788658196194747715129854507326638500627507528498412326406401552175736286604093830109720626830941639180384419513392770341124098844054690995558212455931437360004561675236665011093227275231403942505129905770475189419316406384708474181522234338599384982128229531002475033741903304567625194975590374664414276103781804564389983206354843043051836642104878712651067247637598716674869305306724415591000449796234553088918277546360076692887190509281385402789343416630882359057573175505936578166860101952195252959653054256219883033353676183378758927569262282106824311462714653379535852243197923286200437065709239753502824613870570905586482194803273177348136030095296235314766663507079510170366015251827872587229124470469636137369611632549666775675632405070935165735292068828975371003214345915092676991391311524534286057176909446711291995905444610900218813737650474991110023801731251696219286255762985260191384742217313033917806324528984350776543569660408364419662295186081422672354946741120539791865955338720123709563724796481152892566232046015156859479015788997119778841377580770181031385495767713098195552411925648137738435714558015174299067336319706191208578665299126796233340713658452415834279908414486504725269035138183217630863214238877844894185006551865904505942115512735841697521879755855043546338268524320279967746560977760016504375397604618868921953679699024857747448159503346614247084887201579970929702078188547022097151124440602449510117518337680794013708272958270265719111338297236008029319399281549996196126010055015673011457406328529709176232880055086067922389276209091143727275424481874168802912374095674648671466452247726589906538752449412889303792276393260449933445078759494600971912185835389334826474752001984020982545754061228891156502376766699763360483746205480023079483023444359179602258792666984415593714628542636411502334336044704752757461260555859725223946700318198948676831515667794504262683896707878797017909121834234308493234606784420793375428803440411563498910693393345735221695892436677001901157767656387568270071755064315449525178026782154228739586407603351099817546074331577810461392160144526393137703484624826984097437600253933494588306368674112913543339660734064351134079606741711946232037185030718435443146952913352775060433709986135413582907741853972132107496119178209207115349993955659681851452994281332160491919498696148419277815312731850309230180868084230299074544931116710792344029649529303827757285330009726350753268556542450928479407728907329015877686944208718469520456012391611760848822721903518268117143267718060871325128204691561947040707694301422975639572870997593924802957356358446371342270974063185425246930645817694808673876495630864943857702055536439702897524384829395085397345389737591671179386618336147093392697236172443936694756978673513659811106926247847368877471608424995433528832517374063059714206619027200125660610795755969298508191818267034329817369087998617248216961354216475060949995584641141549830760028903957374204760081057551220319762973825284651379291322978911385820976355955289737464141255679565318587305099625070260553709814102271226304479654443832526042854529511501770547735343805427479338920997246661912397009960400371232789221886179083413051042964195790530760644136399176440653825199820498317874267239831685878545424894306611741470553210633247357025471597095956807088138796949306184452555671140908662421453984518982038151862689146176744004383930584750167847101101139912745337396135799042212651439979980008658865799892702773333963946518182886680384497028792762099964296939215079093521982991141463320281222087723984380361972047833519074747366393344859878553072381807883736102819249403454838794938251898244140152704566859119366369716836601322743825309439486005448405962154342610569548157777563036549813190984252819765535830923682497769627028043378759115430515337022730430508988235857556277694586778906231259614524978739159636038720413437693949298888179165643152062827307924111414527182507722023709995210929640264675460631290319743085923994499576343777773204326872437237120114424603443665237799783253794238989533309451105136062913995428158298986591545643812001118282102343210027736867182426405700312498816073038344903431000141484446125753139963065396002235289545514329459649504010772144991564106034000329775744526872434466506313544925485737388667178351016274889534548119512122956464216678912013964472036215831774157575899443351602837527107734167000962202607115224480830477984798780012502466237917599520460537376621001906137600203199729664263018759448790714231847508244762940818551817384108561422419676494287873199604668284689393865100691953495615071019077743192625180554223123668614070118134107137673788821304340411717314321287241027396054619360537046519503415920031057389203937062703096359633459464981340418137040270635642972737656890803686367048471835890782069778862946746119567282711433560777698050317686303902357222701173534307776764382684494186675682160979932506204572763116104982717863572121751826934086412270842951973020679674769898227460305156410585724074969356039308090198909470059493067647525813737117646067112748542400447380204885064429220787670148797652229646858549559371320310810546127091816733796722394154725787841431937082419469637975639086480629772149111014585929926697793671110171062747128532164545115620925151922955628644578291522962101724693454483856416873985194855798066431218431678023294504202970138122548300298543255710090489967134305718147014742583670613406167532658421232381121209991985281492767608718482071452632201414150104370632383495625536450492255034619365504936712396195208793349349214607242205358305724570803696438477247766345103156636713318727430158654526330334766553657841232289867209518903739701205373039906334311277390378193638031815230013599105985553534291644576169362777173906433258762948118702828651145524960177962370427311165143313177020015787383741319896276024876509572625848292108739322724645924798392539540618592474684961634033151337412686574034788696486325101745919588435650369278275409665795998153965093988027540580401588733604778332336632441724621927892926481203285879209400165641023922192264924933932472326492089785203281774769330755194027064621349818413681163084066489574952617028563363122254963046048231623070384547199018843677680127263248447821678018248489159939059491299712179026305652733979313222353708777964743739497426172978550863268174422532576917270564950644954382927242147706102240969581470544432767538477870912602913814876907851920979397393865899623273718386950477977118237546569251383555724952054792911256342214484028847140308235775675634799088003383192545509838957836028522630126952012678848338346163566865625551816085919576677673703728999509861762835165053809077939376965359345995021206012063767054701475008111053530468613483298214619445176194973545198764437084595679334456605679431616529516590625576542592415905890170960863200442090376106322686426368694113790622463426264199208647106280812215553820925278313542459877049937207253438879911735276571708557450507114048700266009976745851404207082505138191954459719700176999036116017295128885909060348372380586280944404079831842276727456791497112281612124249422996660148886795386007992109526276189573753599600579896983572033208480595239693936334047393802543390002602994519275606490198866689434014768840179597336464680863738576854684513261889575359100665868072945121798339565011397685586391170346709793583722133055400386785548878145137811582898515362186611689964164603496468792344815784698625989624939800432249211174522099966996644388781508079000833822957079093210105281971630072055277776274762735525182178293540975035846290280876100591803357653537852410798020891513611908293926055651763275333856775552472223931409286637132219955427326609967182578607432080212054413140938408204481863052087386105083464408390691538566057625049269323206396408618760138273855089246623214771500961042191221541727356991064184763603977333908327055483534588383681065393277363954147484413462990511070087396745117114711282912176516152723862306442255155998507189850955421445250791142847104934898436363914135988450703150630471048899766534558790128396864637000114038941910266300583985337512394818003738924020904126434003074507093957626576775470240627228296902821783891628287974292240107068310836349659227659921459783714464419667829535484261721361975855667175671975219234160225183201684015163144210662791376409548944565231110333708007702994345333613139253450155988653956533622228918445102698765214958647376111012221463131145794918944228642101548330344889974427247522675064622760065724119909797058510741765868668313630944970197935980353213951295995274575720711248144367637612570533825325485189105257656257599870194289961870455135841319278851037599470518037720466769233248273007817473709271579340618843240294859335851870053577098872004085348678284936576291262643967051429066347433148592685658573149706997782980958707450665709776573233120119601111729046909550555578545247177546010181856833359582611900658009959929815086330815463312503763352235923218818589518345676796601421354692084418217251245110179436968173752378895522396308755118516444608791373796549013028870514526545689906869156257330214494381518118651884514691229431811440301396720469311610228522057470469061545875110628766684960813440095503973978995818569379637165995562281833002130152409242371423988814241759435965948132747422536408850874075354998617507445743636514699731688793228272699580107153993867042487982086013634486999838373351893110040579851524038700620194255387139330954936041326007411060270961451221719420455606851842508983452227816876731414437371636292230538196585321696406739052741923102537308633647440112667383515250144458335515491545836394816243071491125858350269917099120038192671201259570074361317646313925703941592079728527706039158202023943592168459753544767893451497226181018331110178741546034941045571003764921764922417847392552359916114288041608222491314306775568886002907924381292029908039785851395805729123211153941792855169340288156241325684356334911383916569149209557680073815166786784213314914659125423778428386411983695445387863740734562276010137028972012559479568965447817729650553610246827895289301093823487233554266784450446076923326191780189138850131214155718105125130919733707461384080273663662796784463272668523029805790209349126831515878607954844764706739846007859566654959534598760838232436389697988439977688470711263923012822790106567902176625103172197624909796761011049949766045113366542377713862906008494550543109740764975062075746569263673778603947488838906290518411751363153399613058585877861484578723487793231775785342273124717697872975659743235962226448270755171488686112060551672314173818105504407106356500858133548502806341992827473445529278958858548891995019787002864995182440753385928440031366574868822767886387014477779698496071549859805675155555569043134495173760155600888439646471241031953200418044585436751343184874415582894480719267391076373440480895714781667295928824440191227807509290364120877444880923853944266841561907527860625051427684176039900922957990012509395805372661069466289593274398655392312362084273726345989887126429122571682282077456936605536182067141736606291510630061262229482778450134946410722316084430876156365336649845432873412187877711509700755980413730313887143010392625540777844064677879429470352933340938344285553003518472278348758506076179301431562196998954096851477291496468334287907455200917701506010685280350756144738731076156645469893717782412838454445488648622955354408330189348355926546758720084457898896484638589907834521986863719467131703516255535246328064532760679742232023699090698385822071775716781264002888800818865569890171926958701878073364567631604252451925283224609621984250366065153396454076500094087878499110231284609671481338420481939912809634090533097753164295956811732269778624791990923082194694551204238468556576651375330659401676052026825730659764014020380420615884236554338859816659966453212852813089539652109080486378536600839362869309227965450567987086258930300683806056724343581956804645163153024824192498959295698838886351664037789523982651763833967305143325060501257669673424767413799597224627364302872755346936914230550441738270871615841129965974244753620218156060197702768225576080498178171239482224828999853755119868250797799997876014316620193385546224427570088197457361301583456139345995298968143500200666676233292916858116735934459312927996071622259230143988140321261546160042078646302216185302318668774423088330419632874550075160263095914616668047385858759391819101775898074911175402246320194764638640651417850379086085227934819814009759704559656415128027889183694843346850523524047904773366363379495102888621018149873680769519113181850968331679457738602405396089487341633844908922505272725654920602065158040434763696129388093544902821317149546195937325826169458457752163431584809935312613013016219624003415857248562486521185543823772166950752787268966618426900155473547165745931485717827805437011864881995650842552502746247794427077018440270846570608946294317204924720563577830534398332622282296535893631026901631930651341688337587594798256093650104092867312261903623091903405803767671916950169871050409939479272957042558547896613343815579016498412162357291309214828520732031037525784260257255449076371944429810380042932175382084765311711849691875614872183867195314162423875680241824235178561631266367956604515906648712158548299577837632528098358548939405285956435849461408719094736823354536556400885487689473365215324112263573002983473110843095210178510012315540056638749905189680515283646241692559653251161787024455578611757851167348050996761275401947822056496657619968127373862591660182216585360243882942261984133497733814743759655418830906831939171736798004916025599597949532476856437590303538000226782660129674764605520771473467755496244767674262123600866312991560772205744136230500330618798607608450244353372954513935970689970657986013820957415088204484666802337927886401176816339610718379075450260225717514103624107736666077912571685542789495076319839918279581159734033358829470874130922936957864832931030540973512205929570852559488548619028077597638411137701923961791294971544393065645108922751879601694727793603172865404665208373786039990199365464745518612309649162555074621349387154288806197074480139393487122087776426123139801950716105141414776625464634480900885557428037608837701158455951250804234215052383333377451036347401266063446539679456119464791221921892132680248143508717767477764052267590197365207328577529632669888611912882152181445506339565359486230351859904160502383131591323072685909139339554708566171221287066605733232268364906769123351798865564618871830655732901694074788897038260830913507436459613173769562822089319732080266984475932261650419436371364773955034037950100291549215682312129179509077006746891724823006522115892017993415414315978276000878904353523784576724954013245632161430954264910261011586777213210449463228118640808047567961634842226718760856598331342105854375094555358361114215142698093665865211512971884852527382727480591886709509666845557186454111473450345649975306221158510999229736789070555071544517583558249458943251457783243283538748316338324084265350614733787417411647502857949822663321417835178571053517542213004831556180353877674358410557791896452087839141344201730399603866404917215824016501303273106293433474185008792565106017789935526953854949273103384488008339031034845780124593991875083490228784354954866847824500158597563471460655734597970427556473305557101532801990629624311234396880666934122960612940693955611391006400648784434579475003967933870914327808177116004145032780775136979915270848853953180802783958976492418245316952136814051126623112178531302109980772451687741732225093185676308941056039859785800916853028973958651934848167192432116095522486561540614878379365454061412074653566632333758848331263011124673548888850660101080067655809593539318317156812927330143436849167098628418156486535504473238825561776825129303457545015680506229357820186885288749810159821699531159529711322300127546376052230458066366339813763974850642383088056162180327300259189921731890427116808903024183793635860902366619686790472883437891795878969025415553037956836576725288745178670755278152457541596186837864647918591500213822557004653677516158348331219111696698275788227076483802795648409425684370845407342999888660829478449224484924546609612353573572801714943954072740188099423994393545648361820732130817375898050078192498639266195055749202605249474316002710229266401434768926782272074952143346342860848157021330457841721290897184571476831195914766822949094240687118891834782317337858518144220317994683538442158988494019514475365236514128307601393212815752573623200735836301495918050565125643586926865769252287537363878067101363051631460073918483434359485992987781304702882464386217526134123053773154686656822994133900457769781223441107047128983800946315453575425007900546986775113784774003167793958906248061092882916775339682647931597278924767876451731521294522603546532229545755595319848608929826458004570238281715513624369975407683218923642992856373203789043023216704358425968656600171765156889460739306098027435715112554846047906622910344878866410136183674221383083240472032537818796147642357334665769471162501921053204147648214532610484416109897800021022739945341403782808231543274000276004546031255980085340626880845346111589836900266902394300872327752547030670952369634903654400670453346900474675896085393166032178291132210184208310937563831869161336774938269552061599184258274409786581868154994293835595186917026253540088090368962807036259897193306485767719029515317275911179394213246566834950296188934701580556560760059187793898781141057017972303723751002531111391734923153762083674063392821111871419572610733941513807830945515986268397307432515067526880049936912086305890520791116982748365859572948848737244510309873495643798039078738036141389435644400790432671545884502628726193586335241889582777137332491763728302108788854899324277940819709373902105509305411856302114104608814665657627122390141640231367753370599164124544487383838714224449193215972434368372411942809377641222583913587316497500034084239222589646916096577884261448686237995751624303913677466015459758774794212106127663039716331829665977001774296658522669285944039526858534433151484794065232935914120536824286653156328212888135494277403586493554960605792893611453148506992555051906708584363816458070569069371858535513338756255781504851477274874900433204454723603423338801621855294921462756102144717058768148925060172330883005869372003765208979759693408034450248615247545299695006828485892391640633524120668939820117105816376956395833322741764333062864187561638387430269324900646538025155654738306039801123137782092424242443763946393099069668010318921713787293424424622379429035972288241248436043169195873079797031388798318170356243188520797302322635046067134091625798207753908312202200909975867591109704581494576399292471141217030636741698778760022739912342008734218352656323729488162329774872408667810076520488254349669945948551050102943943200375677077755124574235086908003474161419788183076285276310279041985808821788484738667606866090313578437925940318770497304442304181483147932125817301260245163252983593518297430311088107515765957798953180708691723669698483925940740864867695279670851509260465561530035231350209842800256883698679090928965182618834913271491446766412662410591057128693328688486304036403614326825413733124457325230200489712998539813400921678971497117415136177206819068664559767317355475028370226173265489271368150952234146149132949670485708255443477315338077771153024404434740612204522557764751604970278509863849428410875855714830882039122445715114586419923630766918588261872903313631716786248091355002894178751979991234372290889755917073476358577329539975071308065901237281068424381485751856675863543974685988516468959299697470314245105614546018894716405630729619270594431147528665868280438582318839045633160082876757220264158054679612303955713445889705817641082320752829897464756334341426860680926863721186464530004856297177994220964527894604422123915472144167349430614383046524347627015769809984402643416401558304164587749710747214900137933230977350891033262437082677780036079580380880827071639916216535371467970219046829859888142749075403653378726398120824284001749715028931957940932969284840821837722203580357380464552490695935787202548375897452312626901339728591892307084902354626657371661435474232756297872932358144360557357243951186574467406771154059584553309263316408603022180005544385628996988661877411630233769882099670982363285626560968548985297725795441947573688251033866008942831157106739951468300530903270779565793069205528727348117756650866249391841565915305299871506605369790162398929953151201340001268206507749210090747719665439339433339868420517992453974172527679012081247148420086195645274614626129513666280865371081246036433689950662451071183493945362151545712839311482350339351270218022967724037591503321634394217590311093732234974983968156508058506885742768767319430427699054434517069830420048412038056694709647890840867800556189564587062402355443932437318437833175458191406593390212085498117296830523624174333783633687435261668136429162580100897926890178921051891395776670561553085834356695508285525843538177296049891608966879445195861746616986358639082584433493454825019565219464153481231208350264466881380062814116769783283927215278879903757344487826450608127285752673927932377139090428781845130202467626986506174611848515154792503592138057812926610155546191880635460952324203178753331742788992418676037395091355267935971915368400782860848576480127097729102650077271616427993146392591554919440063839911195699225052010740496210214915935117330789993532520186986139825736120503864656717629018610402365381215024027030192878784536020252678562856997251762878505864941773589191506344194361123450121196508947662544245764276947240085131077823349156086707622436135472876597623091253212401224155205210625468236351477893519402623140108697208741455525157636859317649152611552550513146274808293657834778161901236214801658227883648269315674984100712536275350653753875986204614097682336193138306622691190120570299784532674110116098969617695851115030641217134647201811814251544359075003419134056216699816126656329030283477134028477016674818616050343198240378228001631283200159506998447266828840603012962079431845866181575522452166942162381315582468973211624142167728391653745310091454201810889927848041884237644196987925039825741883002369234063117098287917958920941985635007289592631629157101878228664103356070969776096676664534805663562009955828466799527991285143372033045461415872703218317514275463989996830390052899047490620421613578682332489901452465099914959228679528983763717258978546683402378312667554563986707778301870212119876683482302175019487495465703969801161151632017888543591087156539528162422301987447639810401113282386838787690957068257327645405094375060692211970113470972923408226171202239138489716063503522060199460178684680685143583852238555422322948863843145888432283883873154329734047747905386532991394904936891371787474004199791428300116120072570735648320149202547683727082084027293595830691779685503790057457891942477921998954012761445750880788360683702711600259289325752491582092218177000080982221491201838665117871045580298763918537522039638264927502366526098513663393267800543114185087064794746224585991834079334035227909088016598757778526719576263051297582659473511420368004150502576135459460573679735150470489440057442883299363942868230060259907139750787019731045038520620744149438815215033740200452564759428686789823989712668639509474231388665460501551306864742047099491638064836226892573583364520696364311099165838945508266531988388324681582334670212871121586267555147926806424610267027592029857401743883611564496791692974661663735939950128265148535684118194810300131835720503966703579512508918765159134675579025598960486863428529245689126167317596802193679081389567268854305665265551336943590410690608991238319603255900156249018333332969201816495869385570192941795310976990057750358291464906753296043338093937745336769502732599221129783888921057392050694070767259208259310549412277478991011192482757278371152939319865346676275541113367440418750239215657213592855539832993432712829881997060807482991421009008708903183660585737060611004223955426616535812442986437450589653786085997797570746912779125407564679859623627939107867228017134370700564840035052882253835497431142986722180799618470797704319386737116663002767563988664605934780652301139901190801495209327373359068453535821102936561979498598011072111254079001606139387801355964484289284127015480584309282373652422069926914224286188839524977929775189047404873787879658452983119969373330881551320864253208670522703650574470767167422899648440957468759084241059525249133075615620083372069344051078945917925135531616037362441373554018330311886456384566676307532442472909149672608331166593157646979770588818308335094395462896845019734433872844787630798382302202660829757402043469103406759026441869799332809612980154213674294257210989455481974808337682981520006107566977425801001637627832475239596718690766601449632123244968588476514283699829080696746222109689277965270837726809183840858810586386643119072896176695663387139445184003206308715830318948202483873866590644355709195312580973807667991585009431904762707458432221049636086416186679068468101662097968100557718536159539638350120079408164101140325554136043857102642814964983229255317453973563877409868739045713816907554936162504964726086506835753612654659266705004472872513498521410271164166776573668636275933877804016932031988677703054738865832374927537121888413824586516624998515346063011793684024638683233218974291070729096180401273479432245657082244240941335796721283891594639176594947558361440648776482654247041552857532800703585493719352926319786281595808813803018303245582079487867016534539769281730263951263529726664493778284497636875487650350715382997539422362478353159804097163429852684623678151712989376078147910365745616333269848521814535462230666802101386674297570159016465860201283961887359117586974762549751661506118995617146053802500151948956163937288275462971372485769530461949147808801734189334553520192256241071824475668814779835671054352288410228542744774829170269209869982843586651791389455997719041131304618856484424872590400814006571911369195859146772668709566509532885505017375932863949831020871858473919413477093710476856510536055495843183696418133247780752804422455519568384748731347959042959150021816266220244023941281712313263818311617651522250249876121669302419893122663508710273035276590868177146354561320631033904837520762295156089928164586305972322715297162547316458130891574280336022859989129310665633510747078449847528346710918886229684896244480504215643099569669236251194382149030912365690329683545591246935763152979477790479081056707518680683224600738297286350863318497034085614536879397810470620742879074644969473181483800117642092770212211069266595932968745981859977398266270126616439579296338297052192216588067048137368037006715738918481554381589130878425758435057363595863454562204562773117011463140433432688561877741056950751166058692358348386797199672485397458340913642153062975403827710195045851457816116204115617543928039007182755195074960610005291611625935270806027314498016149362460621818344182262055302763725273557637326207887843870119459342522273233600008297270077144399585084170229662556239631508824783566171351597532362741555018436216642258047792516531381006461507002738892508847352404712253364343116901589363701054596751230797597999697032126409239208049726428673086372689188122085602530376543183526931012150158148241208809738841826034037292406228092361800711895692060158743323541103067398958689018122450851680535942104079430125865799683381769822467759542580843830481546932172208414503432880718532921300336789152580911942972523582298209503207870426966501300907191762835805506219212187511110020857089006889576134748131890266526835191076334426815624257181701865522003185129090626026683178121234193329090023626659085353744677844323452981554877002362113136747497255590974075315297086288060955363381305479363689462422569315032577351652860818833397432645897395415333798754997113169006548667670573076462638874633262657061723593752850833859325350893155151500118871135848578228706314084666353983667294943270516728978625421346950631441159336136161237627040507064847587687839788566925849732023675619193096039340851499933248674241951446967782453947228877112851196370498195914135255489470671616372306348144225172691735819151974418958373452754142959981975456953478833464994044973424401260870792246202496420876525373304774595226035945252853654255333464477090403749185251378685438278311059730357226818775471757338425196868269710084369216980775893761004240415160375194178926997750236475737497736730586527223806014988799411901443423965908570702214792412225943928131391088652251038871643127051639663818061470750012399247132333303545254845017759792512981639546306279940223309666325904956160498159931918677105919146147460931445957769179887822430863257642666359576713781298352165520224620772478269900317484068657404835903791552744375772554404202005959327232735178920801556011503324910826944452610845562868908587854169318497446721922917105002309050022058039596753760491334048594415936371139776632437232978186577903471543374618052271738556397931838636217767934306095844490575593153697794104285582850974850394497929585682387338836509038130708151318175662511481205241133559245029898271038411950731232055707232648751799397623267666642777290140127939011773472216162653625538488659270418513311155789888494099232399432148996237983226739432567256572128859931989037570682669518521690036292583762236958169946022262044284311059030422824758826933842915033306004068744677798830661747227008826627621434101293688180813856650288104284719597255277482611947914787934564479777191263443696113464564152295444997640873266180048701041592641853576450769081373536861188422436270280056571523846591772111132470862056505719441885277612379609055362299041816795047769413640676429491858842454200493839372509537817444800572353132503922064576159707946379515622727043533504367086593972267449723858853277659624112421171265305480116025171820292743705082052350038678541886778786364386221997171996586954641958864806283001523463973140656905602144532786268103445967686738217976191601263269254249743428176331984415004719553806429796494955986937978170930204387001671367327194579094540175822365226512213180779104229774396573118593458457926989511494324411973967431285762281807634756819227998857067418505442136104864849234307373554115339486635676953143942613658246100361752724029061652066489146706529652145665610029741236932426093550897067715058035038108591432707316150618206450335599470126423837114254110953471503247795005022533723783351054982485011396414625282163786514339007633789783060279312791020945073004881223956909852217179603739563759451960242741237023699859435964883874276633623438680467332834208491041379313110238442374955899483344593556166304201881456252021411025182876042910427890674226434636223372757413445614630914533520914546844313390198631133080106231660840115058544635811699305561963864164897995760272027182206784301637850150360568928667733244520483429732638590913049856181873212969482863034152338304573121881451267009672356669602746244151887854439749770816341064986213609529304185203827232128229396333655024262029525710416918153178914854956505833694307664434782774402510595385993976337794871157171571640567379357375087728642909833906156895931537019361976385840983812206440812771342225003085796789344313599621809061827607667081552690681354556495926814734946574795095909164532332430417405468551098958255775264515112887889606693630596339927046851421978896400398407908015382404624574416294814102436150518788091022848966789444536856859266916424337235600115824835281923709225803112506667570201763147302073197274686905832419967561053614436362327493629190715056166492973881122038565749039166778736438165658767952101580332576434946741494577266039166803801320543049766926354575375268386184647002297230922274768336046071327405286878914245870489591717048326796189928533309911891076812141110836962442382240358646979253815191023040216484852894114030783643571254476030486138112364963892975824976084681212119842364415542659543761864617385623005970090476146927077268730359784154318528230606093279800503447006499290713036294144494308152091977828723693403832744255518653853544993467747523149036599681591200371608820706100361576612496035343599567469097875924773063656155543338348191739039274803853324350975073036679250893864321242361067278407360581233791263309277494315882458684672019679167267261059728982804280888836279271681919984962265896506627242584104620197966455958074020248285088160791708974313122115394344401758006328482057206542522583510203329316521152517148043330332195895366380907037233873448093107878700092813135356205385914713683767252315537117387632041916784969251892225378529695562782991914887621439930025321785317231661021686979968985600289932119508946987558156219270647362191469026720764747819311174656947119592825773031197878560673577420156853333604331004269587533200545936809152373146490853516684007181170305901012177898230437578245681628621021900067358751415833214602647456538113178810632294053222429977542227084508900469463159263141967898893358861792724366406663188809924742571690266978561129458322373007529156577794167394415716578942364177633245461552899492811831255935134434152807218900745765606714964554287400528969405246420645964223558985678007958703586688217629165030541802910920539975729732517970333524937925492601402710978372107378090743602753403767964044297919578138146088742397665145466732247482258980010299289001085678065014777039879516441666741145922031457356467707110478508201495084297611407839325068529930206069791705237541884361550355229695447493937770871992871029491544233498542314726330847011279375965555418026900316979105131239311113386738435021804686843108968559423836882571380135248572618685802072195889596759175424718164921933510906512418036957966199639375778603378724166606617886712103485524279203552362856135577500143801072714644936976676871243959743696134628175547620098948681596695598754525231098713131164454123749440192670875703195844997554583745873930676139869705919153914624026757626147994369024043195338592966646126687954078610320073521348517495329961652629338554714632236921322163594352514923484325145206848529579512872489145354683966463550227944521167481797644603101069026423148159523378633748611097980999984386850023838716262734000862309638707124534953163266988530848003598730080377479124339515100984973743788510454081934685541299165873053933591163820837246464834133820753262148918891333062391269456399595978190987407004126107734592966341640122877313916552893846678317781657701959915654421554101504551511248453954900406709638775167135596597819927834125901568080076112008851829012348521472474631430789368538183226021466788025067777632724605436932404467054085530584005349145719924038440413014150300959453089653201031596714706902853525612251675619305905889838169477842683005691471494569890518650108450256729428841505100860864350887260035287374197951850227049449354581206603058797685923740556364910140100161979444031263298805768499696227103803612002244617549149815963354394064243356943914039416060342436991871065921437754438417715331445810715791405661459328662062805142944502047026126135034465073012632911099992866906507306518109895618072467627256123192866205056448999108430942278389187830519763315298297482195974773004986557252408101380662386207691228391346042613649954970557885981190226847216540516047385259471543253600111634981836553636817728162726253186231651762608377275407501004077678385711770884409561500936148258556578446557470710251984775984369314851055854143522705089675862188962880706895266831258737056941605308249541019002904553104087515875242221921770767265909432776919414631162648736050129765437293735082843786530880646122193845519371802153376001008680722043245855935724006031706350795961292956669056782292774681206561339733642711001223072917723220470802673922524308989102301916872137225274897848173773160770674249696431609524943064792633862299288458905378767259489897123799160590272801386380553296985924825845379789880646035974825294671559769729042226314196067389189156794328880566733577079807894099350486313525339232672429773688061699921593621351189408684494979270255726194764769008767269004757250753692367192874896707622745857395399377539791352288229780212902313602207174540584896139827363260945292876967827407377966651237332812246149291008628667558749507808820442878408882887070221173638534091874475572093776030884920474136774611288807763311019936126754107160442595672687288431494229458234114751738800456295961924110518419628038695277308003745322068840979056828721603689352858818724256924132144666896255075531166669032991283677697506928248870330910719051291095342386904419260756900986433954569352198866805563560262473394741323003423129017681466834093502708766744707413840857360125099222710524301649991070577670568092324353541537910819432371717175851508588052716482667075816197826627554407809697510986337486195089875739051915921469885738990618025068195868695385924890635578290930328650897075700249005555310242456231161286122070652454122524801247171210260840568979082121654231870365046106051111969409746323678784235648730587968638509472791461876403429050047308672176641751448601616290627397613690009479189140832146435663068578399608225866251234502278623880636472025643752038392635267637495259491433246753794829261693628693859163608245723191063780063434983850847170569261776596244007613704839023049208602894545089910530306956647932386400462908717132025919033686729848455224292274938894943171414341619767563493199205514034616397338506586583060910808105417157942660183410503948758103994253800788854258390714886341335443707019042476442291016298402088099433291606535942042347914238035384005092180455710025893802260999790883555770774083350309002190953321842338596027987081446151949745434249995059764694176229501643685808801012445109276021318412389538407838598926742550293514912383344593530332787444305571083423131870929738181599105596851459208020039605871428544995092059061923364183488846972021124412930101726786080046158759372451445612160157626842873992758111966407841579620174188132342136119299919497695779294152048365000512529035349723035438290511829520649226482736657570136448012450717686328951553312947419267398880989633707471975267190243106477076203346688973051606060845678641135988863920482602350760597766211146320068037911506264176325795496751730036080545738245294019926979848708732915642850710846235979184586713645922937698423029016019928731802829323918625889318434749355899469928883872571953822883755284011745295992892980620798360588760726646415751699830148026135704508453381204363887564179837098916425653808760443335784091528508643125393714620065877191782658634733047320063716357628580820622086835686154298733496903840613491574832912434360314800733875410433357957333942591505442126384929212509740862618067460263921341061394349791350900708831627549975477742975608115931781162712979363440872834440404042573085072666989260030897433104923851186216589015111508433926737608182942934997826893275411709825507932432904343516956481937031815374011802990815746254361752668732176194307524339048677908734653725310266038045105906049411517346585740502737621515412494291453121235815809142108759400186667823441301721112429009917240525558057793305374891155686482697470297808103313256859727390560069800391540661275532610440109803653256963921891198073245462246414978808029233798654806055749777836900766355027909261216047472020628338505759556171231385410746260611538543733188629293627597804868359795011121776212804250340083974477998123495740839918935069812645069199087570959047032026206481066389798896725104522348300659071930149904140457307347252144793405808709045995464702639265990667883554764519685997128528881622124492270581605440721854847772925266081239866395326480616485745567798598522568970660052153339911485887385569401949270410054319379809928019194707029871816238923303235068794947407380401446934533819831700380887340762621143207332295586474775333588329085816984560946920145437162022265977299515993905780785023985354218703564310750039546240816169208504189070374232778469352178361607969416851190956985949022777450121029118845315824007977260323260796625004597697178032497213321922928007540695107238252332236111897597141223793978393153882115226780739237756168357660790316491536050311077098858767949097820066883710383993929264193360146565356305781569949539309711557813227739559552843591445171199765274693280871720443663223820360976427526387093000985716656612334837005554862559293975801714198196869101325502328140336158228883802955200570690839542357354095935585338518306297766523106062418289357012817157289420704279481315534640429603194068582729621562418801143358568512592206735760982680207069876859548333913329303939170541761985858086197004504106324203250442481357514063861542508221081071563628535983916551525914592235161871248431395534249853058333031206816440267951320344912666285282817803118005896623512143166187646714888167669882470048706203223743634891201714775693583374980567927854092139910460678830762656881091836833088227611198028874545756553280653904247736570763277669760250193951056887515712222921769067413318767073680736427292870188072088849444584083529965931447701345308570670451980014751037823132893902833454829141311176439427789320792892477982089729489503350397266663804638822389906955564574493263749657933037582012002782236344051026722285660626227881598567496292213085162705612008661245083067205035435505089002919383116226150041727416104577577881762125198353077744650013850422065501566166952356837853190371730980660669419531403687658892601779455054431041458476762173524622301436058422124748099741048065191490560203874721859626118601491748014364684319595401031052006387741329047965484005604441280951383772515168002404560173708385978082642185191298325446494075019954302086963394821095734847004831421181328004526215377839220752600038951563533300674263794615921772117402779881981353351234942977004146179533485178800042255135964614557789443881144934898323426358893873760218153619482546270583429409623338299558786373842159338159084717797575021439075116983858444895255600176251898213966102949611526098567639567378010507872239769815449649933948296622465906114661820623336779139432118010559228405779075842165375148644153055318547419403108488166442036631785515677129289865887749994695901030817050807343869793592045989415803836692237958819628574257395823138801537522760444275018971099852763178003515319411779476071932722329458985987749335756998599703997522059428127232977277685994858294994255664072844735201669742134726217721415821180146351322314003067663192015610810278523593705357262961088949284847724102764643217885878354893426260157996879577310831896521904490189454802183914989124237450358887068327589658521174763815660700479996222881590694637626523723706853264727198164565611351638963579571267306330142831318314739191035858834000435820728136407342721342298908929075371902592325834818807249025672115657236123577806920820815170306381862606467656052070090116886976162049129067726479456077990890845121701026514735616010831070584440785638190487345426305311224889310344261418610724028204706178494990031569073526181529382251713609104064283487916170765548071194829930811079546254576521845123819936243898442556239759071298884637131612359836091474034943895668460354178113924985140364412256828096347363541350343172856584570307798814430641788101860029647525513558566943156481584388851776014848316626085816697623973937502118657977346330156332177166045104959738901996317948601740633312270735912315174912710027712193403133585176069289401535033854675783355208261284222423168904988690001533143416415703221432782024698780612725076138409041586966836082639182707975180803364822471567509958981649068286296234714100536365796084970397278556520561661652300294181683284590604131410381016355492332536787720319364593365945394132570114185260056598913209390440095900773569126418719299149162836037889817112795752179436812269148723435665562482439337476859700321256215698980932700501348459524374547455812142060515006454820571491845998531899666636011662936685113027744339028104059958811994239420237754477767610801094767067980827633261719277735622676319881582197217469287303097063422128882683748611473316555082780004151566010592851238739916533445135605484662650558422514929312680532651589329983539382148856170335719303332958013531505567317967540999646923253234027346875888638438559737453498072899650625060845071296816399660876334328260983075230394394383689182982604299848271304906121985425869293330005422858982216935440682158087246530138764166579574685872439441400496938893332179096098345826362567711333437458652346723608195022099953310068682312128999551367766214283628784147462387333669685230808966027123763559067738233498176889614158658249816277692347985650475782101715482644562032336995671063965626085749983874022363291379527801225375437307219309828226862815604133074834112745708397398550821783770393656867199032771913743634826601798654570594220132788182089572738077289766366996339606324850391223437989478547189702854659974931440524458324910191740862238628469643415779973229420092224332398462491206366593589733045723162652195982324600378903142490813494423958027295941412727120087430251118915329059202474577355978065533373505754383226407540902957282757853565201279116905883355603429610214675137593660930191602978715693978048807585228751530956901467317873992959037362192872031195898741583429972848452970928900011194023695910702046690863857407308038832877764926207152694411311608758533391396713364677301598862080970099907211943958563900491105542548596674500284138519661830355164220216479413972420348154002147584684337102647833413866908161510631063778974051484997237951786650061668669511233513250501637048112791535614248148839691665483186024094814059151683478825372390213973235653885175330525134291830394857106992505217661981099334800097836943171247287428857142930096093469868922196765668441588219703772053132898932255589712811400467044700596313137140892206957757439945201191638244522654573719860394689173040225208470666655347382855591965943128262209097874107307792637749893354719208571022728537376665817906321682520769876056652105903002033269435482056916214597558916297939169986287918222269665569900485661542308670178372984014956154255762866760461075593413855677134035205487770332816492931417491055907143030683469297994750173145346623116341409490525187858256594530620607856326901135585067798469544224401650820360935634828882090610603122993071502910987096654560755673854577514807708289401197932802442382196046830505815461042421180209288983943685788477848497455634627438843228824182398065067915579173392193496364064133154882052618282084118145625561618931854702973929612638982827049061280612234087300509816583657464172247944197315527339557119387714755512844602060133345707736482854428534394791206943498926706681666651897233386471095375740035840162809245710556454506085550865013187153184447568706742505985335554060417573025203409585563888144208541950173792425014445025765487653719656385088346708755178126013313289551051930242966517165022476424607410818181209159435720554498201149205316740928072730311257287785689369331968781950789802641212922658810876580255822715773958547957693946922836008279942689877090370666908728248774660741852667117167176129262394386809151261014223754547914885972831316369120050865138574303744658835144482310697589819470480301218809047164564817978153594993884853481631849688494516530141670921341283436432361674114047521003430415202487487756070172136768565080856462235103752806466318422064301548255682434095896994992688980068489405560522797295394692359421698718226675835412351341204353974755609382550664502151913531916323751355798163206928720075941601923698632342554544902687622059090960437855674034751395022920250573453981182166536382218708980819064572208157503285648309110113891609061769575502648544988756533158456746892735398078569099494909649042719869506842620826264887481388958905114630522370481111449324215403329324904270755967020461481475764909923338256552313301275100331848679228601959379612184165980957985159683241049610896010822599465954368891431805200746111157495579851902457086609892647602101414807716102403673831326808067509299270790728463296968592146716669986208180503607089777602962989582418841607431294471756235207028562601278690235708633389270476775835315878770708537292060353837105615646876578474425286346901108362477886874204153362729027268832930943847393677224357305231769310882917150332895897579398071035532899898934410251163167368555455004062349339121204033757911852631495537979734685253862061870725761109434254729959665072616792087133214160315075724308191533379560537956675848476058951756945302340824566732035869635573312258099733322201476835604976970555060875985515663403559223303253086069664053396337111030915859586393537689578398251992478058364730204656998440947080867695028386970530475073807358578066461253339674245978413407794715084931582352455493872144275219883351484677329706777781963974275564298126127321823408857381092372613290697405426051164393044725178419275742124333152637453506494743560356558370853030025086733961440454654967103376798640826494797451161462970864720901756520759297281262755750932516970272453123308865733760014100701779848940133123322622064963334920248019514433162092220017484602908919542359382787989973572266232512107789051122756163436462085244890745050630982835728438937921288614554948537780027459962942035035875555775776888412102291595511655252344519482705680141509014813734503981690335406301319659829521479410131584010673830366932602963623981920032041036601175536307464957417643714822068236978810937802682801568247424174508716053742973253981287587315778027394255887569882909847183688752296110915620008666208405970677072534483446093351974725666156270825957842634447498339687182690027974048158798860411944080434221056626068933071643194945350515328710276142457800298927739424468996513456323087239204689476796951318487442360229933881462984481842038891203104618048758311445068988613310525486228811344380624780234525463978462202032972233658926409327537484522089513300395269220484296512343315519140273699620781241022494106539366776135982312668562252790511098169846535606786748772091717520542692561617822559220905231178491853249238023418242006670013856070822167817497788708193777690494565098505888603910611645887842706064596218512339219080847858849336777729319691064390109172662111684718555816373131934370954507053558628752166398294341625400422175934515917649443891906296808679061416081523947817810483045235661325211428680344872779376842698173643943486519285163015022531424849672767793156974096693453400216121988954928253636624745093990939226936362961533665054212696319323427330719482994671734405786350127307841405928879298027776840905361615992452317902241467217360387605549761845845852884024454486553481048497910893149035197941130221406920413879131050727923739670144451343600454421770674359598133364873169560287907475438844827387218135398884768190796118016061122529782975886866745747614182081581224675609632991587505248277477450292514792314775249265538110440015995591781387037283576361637910178231656089380944812597765314709483717794194988018250986555321712200609991300933436207667409606017442824030012586419082370684482782271037777185024067329824094886006551134730296376612154072915280477046159444583754145701847193010834417252712799128141943067784112340324161619316423190066553447929750398954145731061635008875433028713917000145388772008844283539965663952953486248902658787569058199850312273462177288649301653273278597334485083555564602691679389677564031353542235232416829090363878063221304295279443968906232952825835196877743991976997695382895540714405265847515301069595202048689623219414674741090178727261247407013874806828496271154765187894993004899780444463243664899284518799261450017383237171971826091186152102607120504991716524288432981479826729497871540703443457689769217616615934916857417181112926042341520871773218234358502974637455367083825290860470366790754536979662342107026059711831485909885262694632522634734655375850256493642118703452430896771443423902358800318449926318976532264468360542137370914983887452474076931359065967063280574661919176426945471702999499849624291180427426666329393879997997085832154151871426319366436997844762205798560258563159536027933333532817745565751211214460086967050353812982563897046153849156319975584258612709942138800380778792748912559190652766236693446592524908963656940107962523592280087757813430142910249359914216088459744793152467129283447665731789222961169966349633264926604599145881601132775338096582517805202469817634318978424445257283478967465209637667652967946314103143238945317120442887029782407660827912053087292280380859259839846541628198671107183723936882209660347803177344432910860439207853328554658863641103459534969949586565416083196583321139361386369170597992524117683722085135050585134659167817615642611522871852788694017278988606564066710078370747828487692068789011908396880074091141959943042072906490267817519875455152350029638446741351003123896890131260733754667933334941229765439141498158138338571960109480978448413693279706060270331491727432438543592064682479047703280983891997756690897188078491920483901022502539009464828928202977200974969821092773094943068979216292442733183087836033189781335400491189422887082341179692385756890844637674630047231752141293695375439014586687602809834821897719073345306381399122756443417237805894843864389866214977210304762827351082142575199848200756117786968722270450503648505273913782557482822237879810537745355237355940170846790537192253776220636801900231502832523446057857152073951863836782727609024964661823111840541589029405597181586264958512511067444696377489844318269926194572123471248732260541331003141014624499468358785766770502451008255002754276946618966487481560984508167385180224579702077867165674410296066616219027942175908516470618992068067196093932852810755821061603878462164969964427072226314382417594525041161951922263500168212206375235623219570811568063328262854326026197500085146823531270242366778365928588308633670461959253799133012771857164848715029561788420799822362188296654618490065571159701154640944341013878601422148883680495059974472799805350176601818576920035509122568247296706227501396818704813577550181009128222905355335098494954755988371486977718978389279539362534716546998702120595152740869552262389321954937028292483729252555647969865389928311224694724412708003812287289675376176278094142234263766506067894868907204123587261575723652058277706748670232683064446795976391743920484874391877360413614861868458365770771712136560344695769399639999713235679511039362373842719632935251335230240359964331488737591139989619963940255188270234944975572352492185743404933288582417752820704563465686870364300867298541428140073425493591700499427498298962482235745339134347249498346335916790572032464444630876290278668944871888799576479046856016772330737102424377644820290666059588563691806772822106616906374580493276030137154298509974694606240648803588350292138947726042790490854123952563175958760189064431999266870605101853079734689363473328520208833547126384722598913452766488147575358807680509256652592555302912858968121668352794632721181306047566136698762757026263028302811365813254478348826963903560677745777042609281343126086646195189763658374095857637496327276821379676658622160240850079924693691063234980609107398132638053632836853072246149297582651816574751074055252749387932255705956009973002033940309573662780829049009460252297972456583737730764341066744716865167568626620056103186073015332145433357734334210173310093048088887986861441718820681177686778560138974249189754299540691850832910731441742577723008039559295176428599008900455358411066033888088286645785785683022708500205798893750174187012979738239621312673041105689414683135096380938176451298707380524711734779518618106658289674707768140196852811872077163798050763472921807141927290038032534463112993788875200066522929330501139252242924798014191883323481589070517333975098978176148651220920921770335653670314757973132290422179357179803368373717368588082247370885289133204616767217656737084395133636311763428388992310106070857199810162355274499352375062050824900940257045575139947136664418742129248378861742060319904234158583981287924094310498162973080183190699003236361678153202573346346108318516871658540128551746853796435989280180806755562870791668660892456191010484526575000841340445710774784300121655242481251870377914592309299024048691839848542995008315508071914982822494070034980443811591875129028204005691797215786328115829935387539079756084898245402284896095100510831704267434491687622154830062768813926536994863268772765075463756921951942342044004688976614600173644590375849575818120702029087683651337228656291840618183735659043429906986620464556963678365384413930575601628205925425728967916347470457785640777850158613008674679568441594992492584414087049997804302356805373362353774954833920854491414830123278858066328580639573976579508622786678178868147556870745081532224976291910509562816553383985063623420635476362730668315898191045928821298167509941393483103676214554227385864466056021746607431371465056858068465469749604135935475578115128950235907139324499960179037741176997566520598061579969446610812557348898429863295894339088871985373360021581511561398234543379174654768366170622543879502152462595617539912142773758558933989243554294421163632457630751267317952327801098213339399512006768798073916261849057915418933462962728995324849805211728314016018692080183731542330494351970666281669293974543167302479864200607892174353282952673616716212783016770283253360578542742278886125026550777093164530753630350399723895807254624678251077579117788717152857561072227684138700807058468632628710682448846090153818876555498797036811809812539670658986955585812614642438620484704545515175984566504242920856558313527002541743829174369854366745871518138745970685497407937429591938367728584514109582852207042408639248038536856797083745690979988968184976501693019004076280871809648573513740121311655090872507346755109964755051003688107358092327576026027307695103685919641065488173575308092952911616417807271526223618018045213003988482609955485183313088993137899059509633600341129251405029722303643517405012031683307556394714280764124648332025043673595113345265827776042636934260560706518842760394346818269387902517705684080649847563957175008466007088136179838514925120196372273777200809731736050291416708925849170933573224419686716585977460152760387947689684779361860840666036858579191977511914213891177795346678528018771042644017491990337396711758180938380933422783429116388262439091366754283036524758459091959010901702137922978501520003412049359171946760573620062994655838098197170070924717675765533140642119033693357423289712675841634481014293117766744178004184281558778382063535183607854105737947210816728900361488236360923760475057777781181738155739839270964877789832949304097457427207643993168878006739433386285226151435484966747031114110383264002458882639255394187408157738423080523030478460423746880628626002801381013741271542038571573458677642645324130587644447400421526712998448159629523107070083104152079520074323083752977213441789672896565385435445183290763990362058207281018239739835854841188019384064413853630907282666368460804629263708756010355868191456497697627033725155183193760079459508896395416099184694282936517862879955684327710467044731634725683833362396383243320173935799479553700431239803392220358377752693222883018614962330850607079469361560216432512899343733579772379373118198853560310742507761619549899492651551222137275745223081645715114869531298464697979438897869948012029201906227053498183716122412034456519351039053291398573797532223646778936720260451598068023860577613553722909129005202696044752156847812429714204836542785203599318312100617963761984598958030835124441035640092334046639577001576382710185822243805873588508264965688055213571941925483516874697333096499292160471368223581632072264997548669044010298595465243236292976994930906565948384610626150712684272484823068745234018615672862468531360588188264876249608470328461057470020712230480458542576972781793649457700063823139447758692305428889332911293491137532260238231619229110397571273242503453341440140899651072288830075972284708624967070001402850382358446957020209440647722912218818860671150450392940292136806888156432056115228558851456687895569830064067257633037936871309716339443925193834174796239687295723224556828086553422793127179838767819128412541324968124902247144326158891324415257846969228700999793513612955381323349563894100857432496008925787079367894950413998365282197990829595116638953875905686815111803419118218246814635868372141904851137348388646429102607144126616389556203763688530723724871298541417649111455157540152163419155614334200868107194461749861164910169294442241581190981190160727157933967058090893176411454185606216487757426903557250921442231121333894344728623788302342277052817595571797239441307761560254312050511732769296148085296433418579370003106852379764049950369294024666209956497547670726439226266173883084017705009084973131699902839409283564308463423131370610013150853398344718050229662233658831946202171152360119051925492165051753029599995615346939136380190594025662233915940783932840682172903387436959553728258194188530566016979999727098287275291599118946690759982466795380941193491805859410671565204989007942754463589164023233216846250439532480290532415424323208250143029924084950738634014373976372803601725985371340537396008517046538561037369027655878121820600198800786964078861041919460149062705515334588890093350238098903596649737631833547026961897351166233669104116019003478893315293247979653026640417984981289368424287669215459446680982077422148553801032829729342216441844636923226883667944278140089005487172842930001204681433474287917670208983602845980708843161705827810343748279407264369848491437437678563508750251880286149886225203020890924382168045330440779323823797899198216339910589295471482474557746050168807644563925319416296813060657945685763193886987594390719239133042008144134692675778086457637500994143388278499524486587372937151074348810973043392567361817374865333438720231732319631271747339630677087493882534751978440682706613437447576609666124524967033346494394921315536780617122940549412045254449860591606000594139352388149129820425431675880287025397391260693591964210663750241434406502601738675347908796884925323569768167099909094032653369529011501301229658314564797099488668676081832601495045190822787592691167505095606189233791528397871820505821715491401294836769597092415560060751612002813060419149433810980931714316094088822330636797558580248652601489094733586937745833681683541950982999261513854331744950530565067636877076870987645901701370050377984022649872692309017159888435233537742543855082168884767728257926856326237643205358910658250966314328484740002266980396902539468062499841890563548507295843982669137023193209730472616340851926081066903767472710124622092719072635021397129942481924970888697361561090434629241420952277493159114474925390099622609791037037231358276439516751632546384154872053301756332672669860351237195826615923807566953462721641824892968092457229376026760443536996493982660194342451266923204600177574460986198923363164839711650879094061480208703684207323018907676124226945658321561359675145726657172024102057648141964877729732632416999359208162441050301173072785498782104698504554969033787203095366675565964507920765869238239754119947713392990176656132413733709160977228586857130122865512645522486102536903879377717476103022457218610865702422518864500379929348028307576967660694884912819060342590518005284830664861602487077399429116583524337704742047386492037997581931248234616592930723732713072788531855851500003437324096018293144142930950989738235235235404558629181332324729494408117433468302986998047678665012170346762337245805004550924213281861042244842090409497972655377279527901022415624373394649474710946757007158142133125561449111403263134236753774806538395670455701156231954060176996970293331995994591934197788705149365641277279269700770086578595344257819224707061851507820136313831876256748415532694275372720129040436638372187941781207402528250419587318869234205554631347850798050646198036321060980285899660688869333835409643796325721994257807940067932293907214299376147153424024817094334438692082308006148043007664973556652869494536938206829368391440378500014765882599018289119511775091989743880763435159210318017494116594855523136888271592208933057769970677354688548036697522240183754968838150852166290364538828167495027319025292563725349811128934847234669674608930861446775756037106146136878824603883527237776126400794053392994428432011332163066422107536310498154845911484314918047319731762685025269720674105957489330912399580294236142546125281219655598566849024688679758057453510685218131365770304311295046439643794805433592275899478080282276280950983192258768523533760408596004827238121327432842984915112525864827344043277373780760524514158480812440698096523103677751764688782512526068348663886648955309841270404346411664869303558471095667868813194911794135433036584757747736706340646033983138747358010030763162116771964469617266646751559077174524311546849295002864821935191419054105709705075961911478387321913796399039799852664738371435915513473245505753837059892483856049151859558174062116301662868911299100492991626985194762654725031088079384224590917975895536763999752731851157678795326571970006230359451284647002369319976581085859932275925585216274359642064886625036695058874892402379305118369278427107314023484102713338059055948528798275841724841810684128775513138203745670558869551753913562169524524431312536203059743433183428455417460705003293046238448777468044673026067139832326273604142892198465062058365328724429935920452574400278444512207013775241977092218496972277441801239811033454554282565247431935682036416714028012458307879427052567778743167882934370896805803047552028110748231116057764243105834816537411011468597537318784092050730002452070966526688053175615098136834658135033399669386424570226839427482691307647239386074643675343457585657513873120167937411453532790668543061713793347388960254952680735526328187020415580848049147624583729196200032162178969604980689508771351331015808782104510655790825673458554589207394547619466914907263178374615197991265610212766107932647565845314726220062125596834489616581494839441574285208884320150935248420142893029196951274508446805384464949412445109381783067378941846925948924343614937283679753951850374578126353331997137250885303316636038085482790661731573018842424451839226233745388440511045602144190525687762325643336530282024116915566854057508263664787046903222114988665708658889546957114609234548379997483370595540386584713706132412892012885314608827719543415203831478493013649840092022172214964689216411576731661804756416801127672347241267133607914948444237441729933163129038695285697910885261072967672018817270086543952995299555865495504503747836195421306061734864311072661662193922467589247879752029478307826991216850551536120129198140426880324408897443160410812372663314153367055480195892686082671408458632004727732170263228074154046780070174671568003794985804802710387036277015974317469148253253889292881888294071664449281097493935261675284850146336544091892223583693142162545697308233744705446211169917909588494278039203199335334381406630955996209079310152359012497262765277036356596232569281265132204843715108263280947921492884815702946485445787448407351268287369147010481830876090142074646773564930159896548226758728252421374396657135561978995357207487374218812343598409339836638660373653447909324771619141303513871636179177805498533056620619350773788698301286443201773901570564063226922571359118027069538352606460251874465327461505160009229137634371096091465492632138087336589942181846351481897315227614703948802370198682112924314514381682920014804155024873103818409536696235063893875639658451008540725571906797492092512739056631528252012928551047950219139323868025673362415155721706060397384490951520554384944057356477060545113880373555552570925607436756877251473890449965227761412707260370824737640552216811011495283925253821168885987552583608600887073202287714475789941378781935534182812600531200062975234090923196113650655997889490101461168270357329091744612562890511640982204068289968817205257091049027088916791687895692083864235206952241335732247217380876625475255446802133871426109170901120134985678842058692283736045980353426120520374111963582818846624824636723001974141609292369754127718192586074457517158816536147073793913733619664005397086443216396786163679777409788637151462183398450059522914778416621848797732509903682670908261699874684097134899786307696686922702816300302174714660749497309835070363722647135874304538286432360870806224599715749839294923899993353261413847989974434774435089106261487931753965027086469436129314269695820293984475108653501888507648003678479684566907925921750398209205321375809482783356769203720958518169530310207932661797374834207167471865342713556714020181548043817318094485907089380846960709809208269370003444272306242513814936809949149271851635482517080997008993692227197841466899917518996401410610407916471459414215510448294726762358621015530191535309025559227802554771177590625332741852797704703947081857285408341325967912396404662842452590587937430883280224879683765321036747095358958295774693507179868704053446049476769005799540895790229331395590976695516975834690568914738335152578873014862089178060167986574411724093925446022177451922935789896639711000037949577411296442398338213097037162020607690629975805236383951687615587534593300951304104432995008914412054017047639475867242412077972886921870838557887463270905591277243538700335093100272724494050521817778775293068753433019933867870475346199034768060578425348573244059849346989421401930005239960748745329064841163562771570416527519483989369586581876960136015272203755460995472971833419166971935576482128594844410980416871473001925435729885611247399004929066044749921730145672081823526110959572427373378050933567459265666776186614486427866723348164263642076817633106687424176522601620431475698684753449078515968419473274080752169179346722533819912544468904892468768128575849234449359676187905204564594226326814919793036034288338106933890947454422373122257584829699595587597702179980004175793172144797309858090334485822278659983071241245635454385554376908894936991462815250674682607794013645144584160457101887901790568407106117082512851566364896161238902286939771692699274014849694247360530089562607592523221339931818327733347701370103462811201269503192775181545170388888874581837617477276215122425646765218337700057908423674289621148499148799689857984194693760692215018093488690685637306352294155667102129003092539001991206513591434283565575277955116895470455794472084988491771803938052175937241404757508568796417133681186078033643295462518271776249971684142121245783630239173278340313040702512891313262656546424200729455199310834996910742606330570786005890280996285624561394082082637056826432898235912511787730544217985803032627446622815300354674528210935259945749163461056139546668456902272421623156496921803807010744042869951131463045622516711658950800090348212846303991401334849983704687723749452872588267574896144612345618515644161417820591716194910530426102965944202776594138489526023312487955932411077679400828557823883454645441899677894636882839138773870314383822611971582615812775655597111857909626249058271014123561347095226085336113260151236941042098996355641907901065030349685185642321245668588022334065759483672254055393211900714197515381603851935452327399186432992435322535362302339073751552405598262971531323432263907972360014898501270101125187767244226582456255001337784974433786217466054132742861350084129573040073098495553969976889508733429029340902155359740082300277039048358583845885577071095407300400761185263373033683746821825568936599763215250086696681128559663402873783919437764126768065878552447873907765497004181173233679183187769317885626579499127652459770182169462498268075196752737073064334120383765540042840632750360208288373338739683253125040577445460590675248105177232879297537994232471874878819694887571798558561813722308680978013548595557837514664691124641887817027738104672786469858312344293028785729269424914952371290937438612475327067733664539379744118301625969837384720772073279381301159503233987250383787609215536183264808182523045142289254830221093127767322949019652964847983230816384804449185075616099602840858910574260201927512997331381329548563745378510199120386164406587350328396462757403844333105013566485553990093296094707354716209348212771462280340612356554989238125250870792295016809067425092689018980014975647641761411105815024427933762441613391298703637348725306788452646579795672239813852068795868677284588098764846961582341472496642216815870995775293399845528959167321666997567332446594108429184255820228921770442565982329338064558606060407218423700666680005831902537985301719599450694587261332021451995190123544714233309920413654771522154927063580833592367584338198304893150241774983268539562378554441592961488881639746831899910358335719597259293963297903487912339638963484310259745676939009512510601135705225163109147537192838152905190177334089645423049893957941792888241126214674727495155813316026016529286373394848453938648756695356651163873125248741203662745716504942507728146517322487763591909320374614618350354713338410261531671695800066692761473841800751709516963324504338678671323498644358458105407111289171560696571447882760726156718561376740574305564615095615136496608926702624451959433240018621377123301182990907011921493244374295355958821779882702967120154520381412223798128198971569003536413041641834881168860916098029665601174230621460667151760931229960427672561665878112774016816122154571801922852523616985346531718944912342142756987956681320895687236957920582039361166063041308236903627994266278932030378204737917478115249922358528982218289470150553033507022684071838331318058941070320492689566700151472282584483437424885478276600931134637714939368690389442518529695602052396133818016794479679260199590386652419120662992480113430175875831629116783054780241411931696159755068645507896658731899450746063482934819602947715352918144461074228210500630146182216486194355530504068201151375018474004540940824433891487466354739167739513733701895260127892499662489508212341427242673887020967634251477819552289251990147932189705642690899905857405188134942277941365339427227321185882423723888323173002110335486175049272490109086771625237221740310132524672698216863545315968824560868669022471201328051953857638718251600824982948022805323152428191600262037184780714185149940704157574941409366064602321060398216427410528525443902343389639905475195369930635549633813365503846714087613876527326617177402866433539671786226647536589166857238281753311811306761242199474412922444983770527329637501056380003423125664420372454355519924556403617428324828600809395064086415045340152257506576996929306751278932970428542740045529445254363263165865759676523797815778055583796788331678013647512846875287601399038085276374503534395203191331741852647205230235098423661769507772563469323733874030117578395677785310753692720042634586710943145829633468627459097322237977926414012933567288421018549026718943239880402224032726807470316508561710051184160544310660038720263800080685899357074180752808119848028651184850816889997163561506192553150087478885776187718604451536189997044215003888116539112015676622858990221700662574961624987253729435618767285573180413856883215075088190919884675052003407141579841241722671101633231696912241576929280584521628687883700594485362863476477499958618472792880642494800766003716328791223569012890245517991940660864439445602538776812601214924141183810585244739249108842919936054426329921694779612875058614347350572723855661867072568191830168996517040438912994698226478571917716659486492208330443122142867868717144250824961447636578144054050216991790464924662228186490317536849595633685014698744295055646413817657511726677318937157267563372655088710351036099598562202208828721672674813426885347992181105462732827653957910536314683024739882481735810723600948145929631737131666048315241296308049756175397014726639527670874423584028413289036194589277458670505637656828429863201534024968782349158969123689957508376948316503478975411655965285522375484593040492090952504955287705281443312245420378578742393165643128932711984639275978077640313296159005989766514570385423385684539286066308576685081376332523954251909293380877190483731795663883195137484312715190692661155842986644086011013249808773378455655809223217608170045255340216637977085971479480983493801572610448979589648086213671682665164003668506675795703913316968566656820042301122317660914430209057859286780517879853009695998305802619703641712013241654924517945935949485438716072931415291787849524670412729783953027664979879137749553667588855345152543313939316177778668157076146771423875241196202637024297317083686331223489293201482934324249093687385042829429349449633961966106010440246850084266859576730164159012497377425711655269456142170113863040414112786922913809877084074845483945268488766596353833504996102714078856364889214618113623554737553640962206042143722386306425824311926158126691896554173987426466294365141228820808786025877702210321408292244380260420239147426085125629940186587124096429342981938572943529200057577922576345819950701145577505552195645542525134613040771055122871551225329070081277269274817358226192422418681690959101350716623074399123581428453609231847248782000849436516879442671053604483549437161229817595450896946488656628153627119810701675643723303608230086911713252753767454521849524375697926508317818448197278488389877847180239813991512474276279614180352134522185520268239301367377821033817371236498624860891225883184866480719884474713635727757622022424427344795456523639512312314990646650230536306929567197622703792358285212692825629779854816045687517920879256629873958125284027355277245160597446474093566160133243677751269793350621368167819215708250634694526920154744720805018961704621969286951956972202451716049743502019782922817163297140338200844560754535168564455502583830804834928913913500444584948723815848515187390746740230426040396996412741233720346235502185222783280040841892019331410709928097473346320882771196100227229064720497238768194744354366077036563339166755033153971830937986183706626905610591741123823796038947052774964980963047675146976309348865021506528779238114551047648809807513751499838890013315223017275259743140276799462236981385081604809399643281334802999450253806311822936703492669556176286083863326833265872188685298662318980505378005034581279915685527184222046638669626488692453255808008727935921770154379531099182584641570868473873545421813748180250596848610207281789917105305002724510436981645648740281023874103404538349030511594002287906572164756741420562867788754136764308229365422966051511965765765417907859622756975571617043975577237175314600161437894556089275090277811415914179343611137738850411032203131048959188954223623585354418102266408295100635669963841822837418438237505084568190277709704261574679853383253710980979162244240760905183313817828236867265404542616032413323191211009214896454488165255931637139601264556413684947021997587634914441854198445015400671476051474657854569761480051247725897554938616467564618185289679915358383472969563511685833375304375176538428486095612761349959491355153440130545735792680771916646787779149293886247736527588666885587116111372215082149310517095764594221119761297656832195528247222952621945382072799666166846180147929772456854203597453996215599596007946042128316027959263518105258407964998204105199021863472971348086065933977602684629239442467229691625591705815228481880160922085488243139270489869221721001284071982247678435271801863305571187640086616183786581230684292332464445243336936264624557132003080905153167956745726660513816415048311109567087675846840648880473256797488665918799754159120318543155164000799885410525040873086248375999055124438474323364598224432951517640447610497829398425965951927407750626217611784206207089184897660773822382931930559340581190853302185956396433423080707045628620181491886911397771582090560188539891313054547645285780695383403040042181986867663592396376470828356109996765621466076014387742939518642069298178804481077577653008835814781814124430409459283672162751998877701654631719258564722018589575271526247678985839410271991036928858886211729440334359379754455844500988402210006725352574721951902928358757146399009851936022270965448559385849483927616655739642604187405658989376641187190103321526725033777992716782377498603443044190073841623872553601334377827873865863085022402089374991939428303401098444962954260186958404403575296046656091510321767218288467839238998529394247454778467848161798033493406648032857519257134587066534776500736822385666886215533639049811920991894997615605954670533211799826824687731042209322131184269931693590296715017803296550570008413177269041224236555448476880121115432562549109914337131354030384162873572898063531704198598258904443960585193441403838179751246563464587704170285183837952695013193998025435945591394143883625596957021912178227107867990099573627322746290117488239729696598084156217125154835971149039607665470234645426001086426576927736989200716788897439201733379516782561996224720079189851134911169249129208756148393149629602469782207015287253532170613280592421379580029843564542242601522509906534583667670319960116970632375401478070180466544920389684762802819002447451156378452562718676485317710834267224927374566133829374061861367246156982481214650570051646920928388127045858540337089866417207536874286496285999153784292032738741621991352916950487006574309925802323795432463374772771021113620194398447823666510534255862109932868747689603890052705132122432278693758194008284101199596361859584497021782698160850061072939634561237918268139278342787853302879505311906026007635907161423032366572166857667057958017808068718372914725993076376216942835786745323953971771846555219825115326382692908470665370238418683272894769249900651572890238978743708763168650930664807713406321376567966662382095980221212871786117442809691071922727452784351540820839145575466332349043017950180853768227811371086200934288385588651301735694384296949010855245788391969418044054879510924994161432271951863297613454138537901032375610625638696399582808070729749134218974389396574332553495507613662012802186627527230190934655490284768388364870898333554291274295637176590066259254105204638599373646990247373631068246477737134117361672396378657859162705989188095543831095733864858107259109403932928500044297820289378030572660671523570378482503454017220328798293548799468180404726054899419523479683296051642361881452306138523982214407888820501209097133439725113900255041423789074266657136887965906453148966143254161561998913468667569941074482096694837279570797670843335531648978238709396615920260907746268026582004533559286374630909513691972356662278121872513175681330742920354066451802695427981950975592072553627894054447287121926479648477767491312233491423367189138825661681758462195603356199073510467788560553281108262967303983046719818139881392629431167643744003875296626357407711905255645064416496236841119195745982634105920228405785025361027725304199054345741781139996008018865475889403818697500696244508521483792547258125986555802888363953653743202876195567573011066445646912734933795453506223103656150798641260457522955941665960306784989696492702341471524369169337649541991747309832395357178334750972095146949854109863247467474890630587761952591917958726632314254856294074345276636563959746670837017157132006473696884831273058555167432269488796608165755858924363011937132592767976784782989520748565177068199218223501329529437384726133910297526108077001025702221986554510347153732218987390646882383692655123722107132285819127893486889412031000658515710476614829550644862409853591842595271638162790661540202379938668616469014020835677873224035036043665368705806264084508761265564865423596152622281741325598442376832813765024607320293656355190367126563827834657995015370018635740039714837648551442851210763844901207895757410382790488798488318052812692883643230438481257443511992898842386383496721110762042646923145836297624567984594925573100346908766583493761753852015597913659595220189184612494517439645028183845264108286500949510908136456875015421150884783458935325582683410409465529598312380758364258398827793122857922255317870674422044521049279249907983806343983366939289766585661034976238786315101674249523454738902603506265010679834022694301569460494817942444141895597403042014131678905400323504145417301978787487859146762432490822568668326525056361179954608711958206386394278014870459798387342510025444213011107487299404606274854790450651627118719432368178202677857774695316629212169207794245396147761586888140150570867526475459094483405519623297601209300882120576970519751121429632672493291609760507209780869486749193920605285897600387726922692948724096155200246578737496336530723433528558228655333922557633831144090995420010552778784143951654155504194240319992214150503912392037042891521950645909233860015209206521946018343522851184403621889705655181659493474698568331801317034198395758307568131084682202450926969712689693062423737948201273170578613711693234860427885620856637681380250960244747156160455397738840512634699758609825516047303834600548792114672124545836916768470951771755272471135999501154282005213215568699551898831035252478392094224604617684515785288846480314931044102657665111921601548986284647750873478048426356820765828540805446733371133825582558403906953849773268718733797608105323234054807930978832018105116561639508569185228994935822918471871300433960255199147389330611946126635379763271697146188022588293021653426178849383843403514507647208396662427656307382297325357426092179295450810679236400563362585183888470376621503108544672973812714083764773076290798192563767504411070860669702305589330328221332078001948546225444384224415951210731978567546993443046044957781825624544290426369334951188781637448356502091687213914327864612417598042100573312695113112202811438364276313518411283360169576299950724409538905028111359825339264005715840899550471076281518307538627523188221628546302139165279038663709639334035809193907595934057155135639275840323490876488657684881024672234577469611309116472285130878229059529062727635283541796020635909104383647228082355770001890586908012600161056699551729496581063876216471163669957975557408912871135243663145504916876697386078675014669604548918514420218773229526403467307739061182656120184397505183942290228040026480437407031901857875650823738395414729012323122293207414922290483421511639972355548216161491495680964718441392550536366215029650525071252777663040917309674928366131055247452141771220986407538361915378270349129883467917875663889237234841815752043463338275576046086988184853276656526420381648344792745074957058915976968484360713486157755608121821970835883902502327775430188277410661048844788109285478367868989965423401162881769258947425893171564957002250144950465056375760137176095740591365809370415028874769036167329215390394544309057227887616010378840582135074172424964263654085029316522863161533271090570563950236200722793653765302634779721840080108557058574207445793701877640583413752899222857537416908781057216643726104708965292418365896436678458910647087605886777134052886487359326987612470403510018471632220068554896108974803302120395675824532325662357521975335695925128365062380864405337872716385181938642834111888166690433799153891616275805273285298723849732761966903872860456625883955123859700522057581278604722925045370447128577996515842147012798024683840882880599945083181490447593407060823804408702869771757154902635135364127548025571802533096167753323141774232047398350680649264995505138683629750733528192894832704776038227690272218643910460154452010692004478720549455181805526693124285616811226495256114512314655226465990401487292583165699538167589846456499877205918487077827337935641480008459565149393384658555598263543537252278217413983225250039149605895681267699774159844171337621997316100611545407113484049958133716911667479461972620466196612237550175107771643684297202444500863595255177103493598667737039015993792789089699749721285369583390862649767457562479450143987606885153528492916142609128932262816746839401524802014537813147887303560384014784705523376674157193643510959458758242502411663956617679472982706513354490665470215251087549031175168270694084613646137307603521284550871865646143345415382373181704288271737874059367226979339347715165153112368345137950201962542253826534983319184244402080874989208478353294988343458716699833552206357985860127054868396348513421174526932857885184997819411584416216256164423116814746387298913534353528116134184672208653944990374419922253239935812051803387305536790751117269106897698227168421335566519329175072542321269394661338596259735934066677622128793142848904073739325152211369580783452929212472536954995038962641418493935476473286850256358455348590585366371324928729568067585324964130598426839672683091947910007053660220373385758853767102887624500880838619942816022230288729473554242915425441551471769358252420550172700149281356891926165523631707446394589976171556724582530194968319906632214206765844345808357339671500495332839600736458543412156325621820133303324059310522168972546809373110587745822478664425478333902216090063821322686135252789527548250238450347542910300354808912562805633044173528301111109116418109729114681714386787533682425220722179680240791924039613111569452043144291296173750623374273115519834710596691246435597254254970384848675993579370159543547291571130593892810283079790035813074364327717267703588813101992873783125807108814442436663599404359537890370470166042245652417756343340309791359817499892959773407755720357914136132634810015736185351122154936536123726878885033112752411217885805273864282461500872347055729928799633441618113139888969116214009137429874389637393528093619445971174950189485574882378884911049508763373320590011000528536782245249578929230951319796632963036606805175262317838726400052685298892519685206920857509297832356770949276399434832041430265278940074986479240687473488913561868144628508291571378895906889534364385484432266231734400415523611243824587221695424864197026412416106452984480547817380309129590706190113936240887547559412290479479622562595645465666855292063397873360495979498460504883391482078325241107882196394530960163191183895594149996917115987700541026542850415610364471264985453096023263928810795133939978106427831821337335777657455279465152445029332973676166121077223125083945718882413760832830186652181830662776203678136635510116945573694251974916194605927057622751789940254992510817964730533121629099334965474694307015753258150953792882067202582885010101747809207804033201251473442420130213780838001573363127571980016226970352744389429605113165951564239603772539404709744480915973442206077795404392554718160193187154056882453025811902032736514876157734841381603571760672057069051230714447032495665471053056544860765996367025665923580633211269687598933019636879527566639502909302358306769965430937496259498332928839183542452765903155968037660369847907099319351392265274745426509132684521726237491163375390609482442932182017426929090407472703702122615317524430301456264737404562523161890065500795245113613172894478775223191216334651745181111789938188863998686933897304645485378779434360204338748100920201025956626241282015136631693683959993532002112759496009029425272590873125907774418089685929488846698474165204046528980125889099624492031271518083886780948452163649629622701701302305428744978461369117496333741817307080979232762154793085076703793738422128097921059759997205883807617001759379015051123994026239512356374326184078780256424179919906259893447585040076384241115917775831173765855230199838291287944213622485350838834126140157627784627847615384650178371659391401041550263931460752445754317529056482870256209740740880384797228277660943625165911862220147502344988352520510402183607835746139784474311974760441728262856776716325044647698697598129664946652591144879031938252886807955700242199203100156932828144871038856230598164334691871850210986234856105093866530202524811696744238671291867203932342095208158741557190529644512941444081347453713648513467646012942799169105664185484580257438356283125920572764189112837798116900163331183485373230593838975806410412204481960474809210142289710800273540846177354428717580796316257548026892530184680910354311747481967309000196651170104199703385952981962486514019003550304188914810108028063338439037392433399828262406652923911502107456584213952179285011314763199600934358754241009905617765133383603882367991002228118802393811585849702886684160337334504047147347734871028019397670587576880018698324273885665014354243895347865408636903703460059817740609525610007588211882143485727892257240787382629508627691189310767385612926202429024618331149069556285143536884556079998567805160878665151481126497140946893765974201803817595595982362497444922524852908855422205990721639394460563584250048004523284848881021015303928855357494809768785429195449036721879016290439861013341694509462615190365134543050533286572522332758438003982992549161805394589010957029093295968324023888076110561874029231744621661034762476761681371675995971917623881669493468367032419293630136879971787044571901494016756649829820544617973573043628009296161014308320937870934652951014652744802637057573454935852843733810161959700604364116345090301187797055758783681831980511074932168798519895351029557379128373846545367137072469956029335456889979930592515164808437425398153700616177053751149853824213252985078245952336829968343091666807601411790556896067523705150606624945359330235581008571844241114829054499641924805455392711079288396789502876103155694797216883706831542183118386381447872335734531925258980058766356998348731666023478907518122577276636651635032534783604458451049918973825620275839821377225657017279939765419889580075583671153614250146374978296552585912377319013731738157237361837804089501708708245543648158637075824273120596635983356229305631115899584588302142859864443976213598631753601024113374987405995212807305989800674825051410432596762723242491192598089284901575656280524968389777574027421659697813058500136456482356295774085547953513183611421702285668804574739010884488435156281437869375006419386808442106543147742423444081716228158836680404170581929269680266007282458330630256954580198780163002401501248367137748515265794502003173101948361888340443132113407676108256950719864763438845915636529560929323801523899081370968702690497957807453248744784571574142893232910202756700558808740373009441034379890888553636162581553514738642483795113101034675684514044851664323397706132924990049083412702165421603308287661105395113649063149892046212369914081331463063243116125069624066946211685032074367621825367495332137600149630520399031575332712135767324665722118141626682041197045550500075607523760875348328844004190111240099536104947467649274936291148382735797091099625748005257616410818872562359007013654008192321972984904962534082716739679553146597005220377490651165161921397863251891342492117949719998205073450429251273100442734736362846757629795454715343727347212874239068365568719175683049458400984853680541705242342378611213926695616026591728216425462843615916808725135748238047635926360538161262357557666056999729966023609078795591475942954048832322401326448398381395126570101215494928435635678771184766895684141324065486248930646354212393367542335136631688957363574709380247478749133011358134947671868494055682583487629829221737301405503339202379981553130477171711624124576053142178698797165974356941734167596303376465459022524375685359160625193727625450532132056908385589869434457845448053453970068751508955842013521401390889039473841951529310729554071555368049040151353296291932774308891293032187195975111237297717282858257490549496637033201060779677416468312322714013336842405182284326184871473810869032056385312567986906162968169964367691863857530187030974480922004822907434795426513022343462862289386838458043895757787230800581125018467246216649329437414116635157742618758536109173525150075467048679826836879704690421603702527139057618462745050369994688254514642747694809144765279854646970717057070920900255892285532716880738901702696059640830493532084250315083630915828345077309587748239714331437791425537429939691389266735205166163671402658137154332792089523993343809697329926853423214894554750024946224883315660545243126546647995635242180025952461836321212560907616119389942832912670882675810809932335628704678416672811934980478766768614299645971578340327080260804189725819155474075598477605970611743159047919261849330135953503204713481395889329461513509998785061401163577430230750431596811554518773571678892698425555976254291010902268937999829406146067184696314211022585976697403565988461861542213763594169678140290197442188776695948273344113762182302482780631974700399326471050691175575752583403024386000379334774750147490894098329909697454197648695689897848789774830330379926285601008403667896069765761361741172809669468593360057426294642598896085663324280305388180541982760346380496652149590970228593219578343711849240640147316271236761488848592911599184813959789766363910700149684397510599007952991813171068054281818813272392663702551838608281026161456387200444607324822684357198661731146477863753460380426240309658230339639949222747936677038713888197793051939253689110044761382258688529701112701506868362864713691857642379786346612958850693678023291929458452800644113892534988513128142281145231923894546552320074083903651733465527112385133343196863136229819588424528519003971762124356765835466995638228949268415056639145103184748243371623228948731589813949791671647368325629225588326153513330805945949731733295169801731426472826760954715398512721015550758728544418594019616434643197847844498992715370538651818469018240228758889369672336955164461498733970027973015427525985269205198783027508893495242711813855310543511261199371081295412854771347390396675786175717423110323131770181892629379718438719977599845534066188795303279332612880004198593322637261569940302240445157838652156713871370750646747379332344922703902358477512061779520897505541315124269126155382449358409487913842163873982848283995156849991669760541752390673686182299152549192805889809995191422483941426025282134549802034792711611079977010280185725094798680517020271173819549690941164367688072208390529260298966073320816146788695677317743884564676846464738130834948212931431387471389751303627915806693176208327683628819960150177374434936098519168817402705161798522258646854994040601011774090844095738838301593582632544853008445025303105027291505661115869972595473429156164603916816300168854018388051507555054061038195068281218529414913945704560047636530696461508141113717480868847153252625051304707357652476334684617506371503290349845963591079211605371855691872369349266262490017561963051124528351871303589125999451598269261145834217597790860637067309392943628484921023971099273966895824250532437460778049174572177748186052843786073098197159912627478576374241229484860671153167794871949936213162592135237123682970741947154884276354517902760873093030876114993007777651878520005955806124431481508368043996452448213317786411578488359746587469921157715718426319931873016299990319638402970156066614913659218548457113515186733237223514635219846615790375502690909468992814722810434648552019968495047306107385478164431669443665836281417768277172157280259211773087466144507001704120346813309343589630958624204253939538059187876475141172768533037350031549625266426897439254593078914356029600705347770285700382060920734358242519207513897165753786875012811818276767278080683917366801357025701827595850785338597610219872287681530698686560132343029292170888019569772007799530526858111763589591554602725932440704915326216496041903458709838250605311419038074350160387046222518954950602955977851769612594636824107301440066679071369440977861670362734568959341914100519418933895720439463008339539289986813791410602369882430203093195153519072526749562087962136764624115312906559248068074392714639846746064321142473754646672146537351378563279673654330098184250718956326901912293969374553212852339839490551930806076792742655387656658167335578049090046088178421763231622202631454779634152595814733833769011010186986494371175575134075902355796196057991702280598611446744514281556964986302643773460214465051623729137733472806509816952019913906087730856016041113718736363182303939211881042706375195588918473291487005640528319446425664143579740557075717757111735944802044216338196859045749560166550474199436008879780070658925735660007572427617510716000839693333999788110866589184506715950792965056354693621707420801668047382219274838583257885752938747712418178895941152837980711773381974186067978250659262596898044382424620471624367139365864411948437728918364364450102125601038493542608654703812586102248279539108478691613568647895749817031552721126674500526721962238771925035618772402013563963493468795135449777208245184287654106596316532507515692346526516167273124686660519698191051522166428757646525841693069013200033202511076471764399489809350723075843805030151144943868955256712381929950892558069462239699698506284695593413071447766636559049389224561907791678861566787956044394991926116010546410200170768225269308720455635293568487609780159381962119416518860343755252060566582649082290751188864515904711324144008189052403854695842959710652478044292159350094946515440923538450552753367080435238500514291552646375558546912809431079117735434986581719715730499756874512864784038461428129394625330609563707659458902047780802519755636522259201810864780417367180104321759580413244712124908402997856586604673692624473833970575731400764119720123645850115456516341609245319030680421646272009953442278640118116402202104834777486252101305615586879135753683873302592221234701172599571658911662683273300952137925854071756570976593306567149775297291095944044726449703080337040991784398030709201153242001038199445629442981927747519715889105983823690070999483887874145900520607604631676482784862503681365581007956028892831825085374955797261415602481497278385160753103086188890458934497703540932443926943017062135039031518800858882025769302255735864511575717207639970814078774372278398427609485767651593477006880543161357487634572887739234412678168929030485725276025101584649331374711463227866339278510881159873486648718233530874834350921866153745406948891902458083504328784942499119425684581000040043055324948284276063777551158733610830332713942673008660141821659559103370353074141646446383723650525204274395393563300117252613612051167050651637157336234481214378019829548591152131519792514010072435800840950593509975173775500494762392143695484563488511265529261549328063853405776132573935182681791694422426412607130872766553142066657894080675804135352803529626910286023904098950099373008348833998670220150014032900500615251612651814186784402679707015016386239334179934265541804027268561077530733840076430945219178716474899807701011941490153585669835990403737933396094673575944253368529869519778681749221112330544352850307920239506038802228910755580537846193329572095491874560079550380837777922546694384605972095766825529630599677110834848919616686115002801110276559583311561189016458471797617816825413440389324458210279501222419811523173552654818149969660430317233225313068066747055197886820812130377685594531275400221816746183260193274210391061052610709227894574891125293284892145292625655142299576602435936198122380918546530448982995109401232296229657072215821366291825819320939461470252137474879739539925863189439118262748975232396885747038139896838760948728225805821507020166928953499223296862260397218433532005608644666702110883853433696834545362213826264036380600413174417625654460869232466214631379183587713402807833528493915526236702607201866347832765518511208378828375185394958700057397857021891203437189373526005205989505526258674214589934698928942480906912788968725448698925630304052892342034707291079652275279671832475423173598967330763876558589518798823829463922868543586666792060317743845843101848502582734868252623983978117909793619738899218243262162272960469196815079778606965353863504795574541206398924831066811405012841831638402836184124073523545265319781967256122226708811730647277616584845633078014192146581163534800152572710104887209741269819635411834004005630039855354625982700668359556404798152214344545615305974014445409401410053327922317103303804706850776714553006348031908870379157165014477006267878933764975261086747734647896677940463625504078199308387208883423804634636297230678439558940765882694925487334521876895014936599344512930575581586107381627488189853972164301112636994248948333577560799937548434667207214235849750499210693670987976772773532966257568428094983530601607708580910857773053722268001930422726723138461521540546225692129686185986296934608401472861669839853661340713984101298395498489497381756893658873769051908473491609638481171714389626301310822019608805185891115929774991160332827761416347709677408989269593009057267460307654415620208125478376181190930510053633942846904112608821747337192121773294730844026459493188972696030602674738860838753833638296373474182342530190090990793464195168259795863078920357477364035892711933480920525106453218118085887586941021051920044317432661132178244480818128360809748355069648534268398782275898946057223065172625775468630834744575920983441037101364009047394380960213418318219344023190715559026928112417004345337328593410360005857817791996629485282815483360173231796267529218257768201079787812493267056870194108256788220949662446017886737032213209499605800492098307098647534765240258366801475957907585319951151863611476863284639813139264900082168338604772183993765708883406310514937074510333709421629082874430020263208248844675733599610758663969859802708533736317065288050676868911934017302160133056510725043459650522126312129892743465924423464691434214971845048511226384532608505789920247942347438680486401206732352171600092380363372778761251029198888117735623969696844588707319674783195184399405096517513496121133549130664996474971740512695374460422714140116835187951860497983139876389457160771559366764720725970709790023606975597250199061798026010315202710339586600807957367568228861109163283699596240425778155394492075652878945142672352437138147790519470246155096707574343146326696243535315871651184358849783068753036695964315960992272735453830239238737391350036017432023600636003551434944188346562620296190576769391993955980191093695742650312641218052243582283970425485852205192162772490080330613088027198883034121407488638810152653062083084760774765000674359896302997180510692343862103092327119115287510881733208098478180372677510337284166861289934447652917017236540933030902732500061101272596274596605888287703942074377437577743262159265110522273648436622286662106247085267328533784209005671745621348321504127134285235967039475993273503033907392417846932226471856636433201165113534018983406987059296647914212897387067884871026276843758437535151833444603388865411180552831743605399341250894680780990562799621152141917477694763969852820117759447845314888754542850981635040789615184788592575220904057252985637154940058214741674157788215218341304162658417543621823798079503150646986939410758847938785931751112092941946739545882571315765351094312240489896463338168653127903759653058581822189503799581506502210792215941267417191627727965102758363789242362386808846326389260063535522783817210718442695865129234151661640722664809286697225662209177894876711459844440690081475138189871452705304150890969729526372461650713209582295584041744743746569689385933918556716961962596833783637188334753219276817536373594903581241244837316982803978994538020003598129328647048276410198820429600539600482894664626059394717493559077484079647746512257541236461569684215296469426302277809886615243644797610223382307389346150082624255238100986838317066755739994958733549589763711865564219424369581034583389632194997482422940483983072112581333110401198490354768112822653457649036339626988510223345146434132231096013210529883870618602334107121701776359725476909392927124340547574099769192171768670714818583794104397087576508313203243695648555498511907173856329656567002927187741631372482099539525621417404611289834024621859288815650348340934582334358664282674370786032771130425653704669418405047248420264457118439077629844437503270398860830818578651213797921082088413223029012926349939027370141079339742859926216358177300149021705560389626879358060294453085504118975575272222274522525449792278979639358790568143663824113450410999658032693116693978736221574384433587313878051074738081578001624019047313783085915668577534103873430725956138243254666946836196443531897150280552676641647657601980605770600390532777222175961107398839515487949593362690316265962670375157637167200664645666113468007467943831369035202561858476042144227743251347717450306902527479221257485966424172057704304058974602088112740510046226851010870127551895588564934455392264401534483057035312701671526657331956851457330931528564409496270142579122734654063959415878320667065305903419506102661843786211896030117334612524080162885569749777661543573674727052040748332220499891503108746397285114714151987870180942679860843456083670084154161183671147051150824783030811508116910322600321369307991316209270903685916771506053790516176541862329595890951003741889214450258803896087358206650419200526907420456583767003795245751527880746761437646657732646283063439736675884265311418805067935941868688069939918102708469832670841085545181745792617064724630024250750294608812960610660096302952691162715536757304629021843201685792748207320325883794460016160407914565001543314600267069605479659676133041693928284904671466084114595922244102772354044510019183833809089540667711838173166227967982474882418190998815419388218661110489074523132666309704944304157611249010672735526737010945205553022394339164828459868422617702582486699504070389021374159840239268449955629253835027731045268734573017756165978979472287696935800640854643551037125842440030109146083329121689255584869130870057670151653566210564651314434350524344326059291473877158424233622747670644681831734052759954784744595614773394795661304957850276804117931936393301548711916086913120933487588296776759826351595161687168430678050464226951680540352526923520411829220972145532366279806823447744883576022804041445387447742894757271156788204154198955122833231225879653590004407740282377020848558539156836487709609535126391912966777042973881153976487727090074337242051772841948264450784093888209670943188821842257863448992846468746213226380520034613024060455546358830711914467588311608753264085890774299085795279721458557144751995106798291185846747974571703357271483761767311936643662432285480881438062604063240968603201384675017733042236697751087070492882939356230251528438351614858695118482838826484962547839129358934586218591990670247333551817668857519644779313533238112309686389059039443776986404304348233324082947302888020430523277760729716559638633313203499159878373454094587218039074749383160098156150493352424989904819491775964207790696031448070520275946288152552738835858395001466533481774765097040605219142376339648854226944957126827386008459423267659251583323050484830044262383161621086468456359522696037298878672404770174135157262577758542796416331604422240107079552304963673240999343278357213723713796956899065626999767382904768754093984679031460398832696904399501401069553819858923410777536661103898852312363599656435043964203972870164419197022371213149893376136837145824279694850791810504784230911936701694748696270254677808262200790272774451523129919736291580704688538730140835218549863769753752321216414775908819589244520059184677818780261454481049677315352453709854943315465205069568471375505910256528620104710064707463714728071151087224975350800988493325326555994303127678644964782052078131150030615631882842514706393211842924945760483891860508480812608255677401920160507696896383610114198180244345545300354076182964013630804562349155017806467227349048494133506221815797263721061734465205454786822323407126765007625201807188722462662227235164495711722104926526029915460749907115096795290035355646267661172625309432265047018338837438133763108566380175961010571210055338165229379859519957290977751230095761634009761042313828937325272375665692690686090525611484472990146363574307833709198569738970963874461138217378534370268328611908085963055422435502037674682028701547105778126051937099897406301845960933304273591967671226317860057148294459849180951820072622138219051725853908965923033331152664684333055413727024626695134340472114438609364666121346560193970298072342719984578623418314491239607048851565510901242123171471099122317887627017258310853825451202830260843783472016047678195582289763831271646019764380670660499171646328058006832015492551059474161952295879805598304784783000312562278572448168627036540932008979262464842256283060319679209038868257157044153708117349692248550498832136450608044550489796858438067587434120777358006240184399392751358015614123083440749310952806962158696534319473026372625633294048799860499226072083130859556490027431572015050241597825955000323325494765863421755838456479391606460435675262881063014144260485343886895331652682904821507733166639130838094499880291297962724016060791989798520106719022236458410560622616382172666494185493323470563120256069541248846345169603653901320869187228047374400709760976775097164080922839043838752881827772073372293052556400287859154683517171422753853464846640739375466364715403040443984985359370421408046233396850244380187178851464714890958945577450522958316933495842824993152254970437416550670625228596757064539268683323875680197858191508513212520523703524540106223016557235268042511251566824451514083959658214378685481779107720042373118311049025035542498514221246238715324165012995557095091761556852941244341224437306096969776119726695444106552967585001282049681988356948976068797608222074462620509348933879961205420134531722205797215008947642257413648247852794929399867691176311180229701607205959164877622836183041389611988196490268662929345769658074419249981392019792667531226098644572338994598534332799974677570880111712535388822992396996790634249269206343742549812602026004385708417072808116700464437841470223991118702407382359020311399966713065868304461349720669580348348380427545383448208004652998474308792377964348741257104449147569869239000216398911996120809561017394885875118727879599179464547048494944146981498310641167788773052540603239355786274844839362394603207882527572879577815386028272546523237594291795023250633527479753201122030714722299005522069883542089973651508294375606939829728830368911940360913109134132273918184411379955727223942784483527907085095762952950215665057324653846945883424935818653958736080864663784213023578182810849238952379061502484551325689320920820340069775329424642808264763675227021859686044649630373932142866200587805525017470830582619468301749752743505319625753405250929260524054875196663083633233761433624166922234900730484106261984525372045531228032472818312175168090409526794799016988183518080629113267672869083556928895434557739902551081702889507100126628203433430270768421084407551284924539994994720492046979475573348273081772482681311905350358233525424726369835953059750288931388822369689156166423937052512565813474216350713520160285482591599385141369078571887631526690968695111277546898905976395116260983468488723095190630391873181318733750955415774206900925903555081547988175631927514641680094184724846343617162074134529351632950456782288770994323805855207463240619591492276030063486653749529000541889588634635838266100383524133157650224163293457175271480958509622652204700628606743658092252736008868312587043273976404720801933340109600378425274477078879429435172600928192588930754407035443582565182806495955336500527335065925571434776812887067241200405494190331896379578853964660791675577107489106444936291071935502965344967500337058283217932834591039949111483409875425542194561074356222348247261135179484745890634173677709746668638080246417093857513722222754172756581000499131211156037724044071005227540613819204504211877069869457308700824705523551910407330136823830493350986815718096456663940503471856137691136442287834754764720664425842903900339103932687609583398334263818351694024488197303573496117692485737588422738411667997874043396877318088612149941782364944250814869561463746784200210898906580865126813787150297632692012025144197198969352945028298299181262403596155853358247139313004586457837436340503973855194729855153589522241175564963399398631493641828728556625779014128753848762375686555795161770196949878801728832390344136932468827697903870218486179672829265072996239259899377480997778630198408299239041090897369916464275146005713860619642119153888629899338665677039546641254415902121887431493240502862305335703911935199886784730831599259320575306481055054003170005631346132863212143574858581312000249382530946318651179910325358003732589782848407690917517050507237553763007660354475004222782196756037458199187713749802515676913478552752780738640683784292338574090839370063826556480397634504741851743813225715118940352065105865910063238705661148981343832861743524104721960533925698134529636003541626976367878882711014228191271938216248613485124233834017076911727777171019067647074576611865360417107156413963403774894573870279648044382997148551346483722407320598762508081761550755511494076148272695114331169036929067745540125874066613560499602777469806236436369314139472775775611385987888792131884329397183238371594559015749025809442856271374660232420221384645091723445710937801073510961541768858907410865837063523437960821985818200207123845869958514491872944697676835127522534660685122805792334275717965364732378555104957140812989206991334397757576116522180146615348457846469632736022413377192675189348852292366072058144465097038331861313545827838844178025754823831001573590035837715386435978303931823195264140191924720379625805327812083146194642562869478307011065070663211059111062846533371020748320208236621518909633545769247476690198818620936155890243265948283518692516253777677550059603450631778125732986169502794624998164404933568336253020236201037912331319928043755750886367996631959635200288854081022958216477533310492039543444510398963106335998502272057963909990014175461778770647396229209532662938500125317716096495224400770909937252358388319789582675787666804475103790568571015743475679196115995463647961913140021102696093613117271043199651664381528257517391909885865837869241753007408210084513871731617131883245571573671155980340371323023607822117046050669455050434409663713350843413156359016587309658723440231928942304559412384104792341304707112516884832369404881992127548243478074213207498764278803492972443406724673316443364332495971166318161454769846652026200326120696276871428560350991316964940220726579273525012988906625393068880778897041653134415165917785616800870719353611087510752857708417144670754920399487336282167962235876936209724181330735497994756958946824127505384362457952416272324096536824697807880421778500683756329406723277051995527123486094150368760556691250519124639698865241586873320531484123248615806119225337282152133562040354423368639910225918585631433593988646701357117998263907053573780831574467293090494171290736178003095206575481844536660410149859192672849220996331202471866945968808845746124179549994358303370137540349091457109272776248593047242337991611576311350474825723692936637825638592016975749828401000365280237664396449561105508763817109684680264244633545435647876443150998654269263809452449904157883371988243485459129076636695109297987940230795861453971638911738060616111223906826756820921283946293798750719059905343221314543366325577836016802900804270985670858530797228639910719357540382747616140395841248187919629202056236449153565129764703959567917135439788607415001763959753656221107622523114633694244838779385321187752267549322632551957909385553818077200112382463380879641368527000114177961331080427297821791281970646156758139367396132086768714706114436861689104032903738324288380680031414064801006487118414393904305042623284837293392099352788504145761096554224563226099574990292713201754937507390029353171312579703998431443569839157136106198485259925840905957272964274367984673033989366987323498063973377977787043618420558966353954837203423649204249658513942158365019809982849127569835126943049401500940639769081834384641286089820215092216448185053648938454243828133337954365732355281703515235047875542313062508290144764247782754921597673173155984843952046298143341056659474911247333569952567435331815611486692154760478736337957251263167829246089747226195236336075713747974740260506482456487315927932181452065692378481091785287010140060963431333953303380299538083521167180740526496541547422513394182639516030269971616930955522393817856753913676866426551287510526900070128578421101469026754922302578913140206565357678144791976581448860209031598575018531745718393481271033034737752122394937409048461686207678413368637399535762109757903029749176924959516360295009817579399690003501086236001878466950682441059674508444586924944681991603246420895509026340582851587145720733875598783076065195172379176891584854434220179692219019460176183135785049096864520024866459583231967007110418719253376948632926949596813415741884482111957153954013251638765889564706762647587102557338338829607300073111429674730356733432952634252390331678033436317519708687176334479675884129286465638289207433100572739934932345123392521489963146833620864875888746559094212837927282624874275658669679139348134784591924076552698674866396291516971389201517581347790155168506924667987051182193600675409958011264144773428150104835497966250176778776095944812302272683494919026574794778638456506032820022227662379500765589496416421987724401835962600791501752012197425258122751833029407995985814766931365568812211017339069929459176248053836644318645815077912954701778477371651684382660451810077251306540642594615552591671503068128898994419828818634779492755696588240614743882974968059364628794870708118302320261657384877846370609057204680334596507711111403334402905463199082340957494613220803467149932626444478954259531945114526020629549867553284803058317985799448682205793914864751303141564209602610777865531690248730085816269477686736959586448009957661349156511923198315407740263583246774469940122912452923530565167031860815969351093358090815350113366194706026482686330611547292413409736011655492081214868001472804011985977492323941642489931233889402664735028147930499314985069830977308405653295169038127596767312988806641676699767444872129803764492983515430772804614739068041502042745574236796233088912368229897081421989590206470048405952783516726782112015530299298496161298516347122358996795518734357600871943803331490496482087559327655884786286336729472496160795061784602091128727264295921652375317757931604892756330267753005280003716438077995360153578944579126658468034204599588276093489509615882511115327613436055934576753585949460877626209871973191310191641899300379597007144371088492318595902816628324036257115951646495094017877778886560219886238440476753069269815940597882232265304853733523714998612819771995658160336767666374520485615777114549774201956352625332170606231137104071249350047694705928440649829425150135431179446450476106711072898648101717355124992637906886239092740430179709265331364176458891164326711645220686703279076128808107590622226385370576175453541050966180337949472282420545445483280841819635444425105268705034984234492440654095944555127775581073595398097973340952377149568182959466863603950976668830863736596580272628562511917928456133882855468750318365547015995674877306901616036500345558671982169892240391374866178149040996012380767134621398268841898645765595408443041837254682047292378928945967273496401445702659040413037326419149988420572583379247361681246445918422681237402114799296113383553849288153048062061598060842929652559893731522722323187289876648524531468612953177506215455135172570341838235346766570630369701333741042651941596383480195454673357868540836133275261068206402915740096046327251188426518042962349350108653025849945646515794764027120566904726129132332711746339363324815613138042747742090669414110605890576193996610989803221455484752542511468534772907537956766890428409827544016910336786187461403234149014493246060597587188173219234050194522041740271316125368569346775743451419491806239711175045787892546402766737874413491637488750181198058286488626168296634406939894704871096275947831886942752818300954682782212393180850639131424470232260567465249288402373313068588484068636393331900009023064483558639816202753482114576902664548798950826688184276270684870217185730737870963796857423474270701512874787107145180821747016091338465245734072598085165614832417348884656146015343750552040921885157196796105623567288964922155211057468087296838488378692794806394205168555970309422746912606609512176760997217146538766559035876348486911826303783890858632633115649887816348725591659870404942685449539333701005625341577814384849867776578367499794292631297961738314298501809307547566672527700875469949104723702749732716026255246250344285087393990561326237993041123182897603853815257739919492772805461991217747774735701211839252666423495193165047963109426545148126194198447604928814345673658647851613697965646482931012009385391490344460508527317421809656792459112738286375328037321242166189614211398279724030540224038912051764335087996157390131821302351575066861841150700486876838517875329800738169638317728110975867505817005040617365495233563054377586173719580641107585687089522377959880207569614786282092590228518962494669173508572633434519150455458744639024188488187416316831314261470837006190368082229171400502654809283498862216474813257468609502065601067746692615693423589082431113330169588320870407293254933299014783496393021147391569507551700681649175386610139001339586449851535344779216078991105886665276127411190399031461295170972997840393002042957854767704497761385157814838946837012776393450451274698432241676012008635689253067768348823290768005085256280181067435068738880670185120789541720124178478613329390249195526813528773673417258472118779409539122455244635326416548195635644290916139447376778274590534158666742306733587405897790677437078958115923220354275496721503646581457707863223343983269062899839055954581680999468562310702025039070320811862439694587014107814993067708859407578702385421506816064050632064271201213530758364735342069942863447060589823081683765823262668314318298729430910287941598862680763454217518843292034070708856339398168648300501207749815470748953161487763899903228396819375875685041075038139687126537693948354507515224131500150880297786887437494564127410732055516828617535635122105346399385787373140083032758434169005844732496267270521237829651019080598737504830846284190047640226320237216698573346039395718845349368604209818493363316409853551601161638201602840551166497307731308760516869982207054998143018554278480309281176784253373177475843655509143824625518324667954968946068121254917845103913090359951051929519809966714425226440338084231204606405722375106837502003034887265302263123716068993838497950980931045698890431061908445627697468048986981054554378591895779208105862753358462967901556211481882646868421725895183137267214022073674095127627804218061537168126813729007308065992690546908599915517996808483106051166581337199943086473398035490535809924906095149439317672904624239840889989637578650461602859892436107703315468028990247749922459715358820985688669713460592954435996878024315197704241165849592599516546977859299856935064175757065762285087007326932979535522880022716828665277163340707133133067381833563483271864292672508711108525021744479553699711670530093803230044624768524808618066861552721656797128104176178171683959138288717165134011518776984815561726024217637402812361692083350826385654110169778592343087245213314818454962968322283330819242262385195556534541872849264986803546981498400313659903265378289600910432218427038724603398369085912795688618569341274923410908497844906815164245769627322873735787311946038029097290925609927448466862301636911452565274921628240822190128677576878582691363050779924992937259956784789560806447105072920446923932201694437123805713117954240251810424649522731388337589391972155670800751070424970971790022629618076504050717663237402706214959574513509413728684327703809296702344585379764119643123182296815929579160538339217668082390148527594570252056399268434513564531268507163587975657923290463950543657027945698373376654281159039964783458908510229063033724209529749373372861193273037949063085922189768847762320193202457450801056208999092731226427123840198872938248097203466203150801371671868471250562648415236378913932769413514427912569295347929115251316809894934154898738873112102931988066411568685248963359127150776621102906939338848173554170115149940245141729532294176831280303370059838468906178486892962564835289152533686693828879065452667252695777433241710612727676595177121453143555662193444591186689018565042870414277481826415345342494759030268797106225225032523764997022340126605054469816457106282259466469055910233874374155927489405153917047821424172711276339036049607399330653233488284227263688438254035149813902943044158484009173578606348852352296347768706322934050042953633478792187981999773201628890066455874658870193612861017544489379874084928251163307170446735184396491021869075359625159944356685675242915069594328114503788686213593010981478192048109261305368992043052832620006601249003351723701296119373408731410625271650639704033807324954201985196944814807330837871874237860914320603039690146473891745020885879881007679506989344820745049386355382678163282861921662507501164724511128763037695416941277140153661415577352682626393662957611310226762832101714064252214090974507212103673620872850010867215605489067343603540415811689667634604049472127952255644005672307180648394578390447039063497662935256538114234083384062047024145709829867106103875974714055526803341711078765357289672622748228011472746355034593077573275451741481597095235123061899110588752998876224325674679279166074268687413622013713917542412802263133606647686529678243525956580156101934812645241584775535994182682063018834757242122331606328075367732381217691179779283141398798184983563178518662026306595622561780323260817290309275612864999802211864712114099126015701573155137389328531376435366266001305200958256751496299723840585936257507317891326294043198394030746973446281456840288620314593413383295653631083102105729615729653834043849923351917268984426964274636942642701644698083821626447187561125431215079293383194865319970567372541884845944096917127960512090276283595937468039419092628418360720092036423305337005125888082064179742827342469151493522027564440190452886067647578190019802434448130628066097920968599199577301204881329885217187854973896018467620625409000342574098650869507450885284158236209578854500599202132545196908227991290254178867261723888977826180852124316392597686455806479647103634085134545206150359409976544696430438217525838042843245342071787135944008867685970885383133591926923572525417997874743050934207291172320084512831731552808123695426927585898024777947028753311509003443170952568285737570504802143858362481396142472345755222554496532028810961016194652491666241088354850970710845712073188576504593174847129342807709823855554152862746021845404793688800353617984928139253040621908096862822658938503343759063589765428512494647200418147834415452261928913216784158267940305742190482744630874347114672781713905349657550010716244382792361814711346620592656027908149844632845314088819344866106994419285663039527600337314271851714448788436435796109239787012975128433199964699147128541043999458751276922436934434034331233033148311304706142000683364714490333690118408505531474019255754306762155289728636611930230720960941270434972350847398487654528508219330902525789658808412014824112856791454644386690978700809260274956251822520399101808287870538155770930390714780804447295202570532163032319427744771540809832353793049431510484659682043901850948910731906688927449735141471554736333852366704276985218386384730361025981660408987961101330177201023582925498686229850824153537818185986452342372745520951894563978743051362078830324608996171489486405536707197442538242763605555797255435442595257694401370407452084976383407833348192485252719992374162485908122584098473004077967579602181557840422778032624649081906947985548509440680550541698234443657990832814280623123571513102011726467038969191493153306751357112253946754070243956023704482769563342759665349566874474547484234156618778801759807727322654523702835114068915379769436057273753551635286996023503893237197292155363430140365995329380509203176418116809762384253120923679476316008616365222310146580982571830206550146853124140884252585020226638199110622571650976381571692393097467440633514216733595162930767062732847234661637046949038518292596758813236332836170544960278625019404937837477882128939095148693456756695392387240086211343310130672179791687249714260264094691160922274126520944808905445469177355774364423666914747274363306371113913180305770435643085143277339820051964652868824771831706742576997529121270321616900800407276321950116685748651913177480146477256137963041645090282893297238126691435313916455742213349766152665578078086337292149161988004538587069444546075022159392741010562151543301051378367435337492119981985781636218528206610782684436761296368433334134849476054952813429820189849994204652135600503116466039246666642644943624645487734517585980122319603226709946213532998831157189537388355804295396046428979667879727163651578404936902183828726000571253128894252613912292920731764492303711158686269140864855551779704375663875297094261669104474381601525982264935628332498059818281065986422069585915620144648066816525760044630747682158792372231756822474484641243111061808034172723683280783911628075235644256879662647189944874898200606645601418430478615256374047312701955626806144701147090075736304069795965842756005732968725159931253461045975859015358176206981622007552887155289469575641762579994994274889176972121393070137194211772418074042351580451856974457162566572358992202796890145609682484057979492488332856363782834409029308223138028359329914859372526618198417995815538641423016739209865833022976598931972902243058391382498876313310970108323337623522561610677983408203321507080750757511583995662148183712544848050138039120019722455579171296386583158264223890130341285769722760850669734766343595809757509299006295064750234164390273547823962786172643206369200711924965172401259115528670101537785928941463496802515198986789348514484562871550787816696735317687014688400507277795313812595162484849529082324617708892468482298526297848902961401430992556194472748356897763700619474327569688779031198119895315376044400811671137609671767049214961365469710942730665926808335960523046922681642163909368305217219597857329311158412284137113749336362734383956508013788935130854596694056723267790304040910523476340809005063261155780523139552078208345336328462922522476622953177273007516770036791164931515522673393015356262409134631949750712627286531106110199395964371897958916570073826755030286779808173007068730315800401867949744117043130631533535903337213877663076431121325056544308087369291320686775139223357645809946350853615467497685954239515802461634884653353911485722617073835509602304650733762464527962880556028188682682690761382215215644323900714272639280668377518643037317208851563451452357720435303134851328559686539595787011480584947254393377323674882560382960982448098957459208130559548168928015830196633940537345383260616563503424900032047886328799937765826241301353574276689820038498389861794916317272862672349527284801924734166143087162546841271637306274246976563439710166789395344295575865093150796466236413520384728790712593330246328467825105484878569654146850271495474889909218490180345129071844336611001697137120799402815963127190248982345375187281534585534990233277760360252787284442851452402701022652017567860523271051148553489278486784237355803115163720267687718881011659949167398617347509970956028164650117502688799584964079129768864287003840978619326593865442077903252159287962263302564389409125426738196690246192661517940821966060441864294370410490821689582650343136794245921157907987508637520221765477391338778492894164633151716646150840082798811291960388619711459449263475777231152722033138183978442915780569299022294528306585951852647975741034796919736081244416465602473763317393060010592584127270684289851595887945667455524414351713445496840321639560233095428691611652041065357831221106615524995806307130922025668773976100241003621618140061404396018538705932496915101111689078714914218557821793376171843041339693229218841747899617393695378045717719981864737366874696255991236593374216370050538746896300699376851355623522450030620141027604429977044114389411451675436024548630293437901096951010941464906423229430036251172173736260988525987009596554621716443423949685865241381622276260891030793953998367673823628810760871491950412413813533621291839611428652384628133184876795809318433302324224698714545597743685313028586863441137970506082606896826452332447554691990521568741625809518895577283818431818635620481843462841024142358425817440883904180335365892053489062388827314323298246741842677572950240328917398558335743627344959453647403010019324391118320750369198114499887676220075834242214348943810362170623562891518313070835924993887721750847389956991467958209504396151806481217168236144171112120194085512837909629026587322383672979388240737027147863129847402723276227287018671162733127667237899918763445961249231643165296815238777683024681999140146526440442331158034587808363666839253416878511000149129155841704937864191601302804734141171531117126035445228543718258278021350403479551898342428286960012543094139153973909782251630480877664524992873123173518930293662709904097035471497929741320344713963833839814785905594305046160088906266934492244845922901502706004375443610268762786910517935515107630160956448374216582871715122957961499914141891944822265451796047703042888486096415729563644441949068213940250387346909245987617101051358968137605881488218257819502852497409184937355704154281619138153856091872535976673139621152661139396377009156617262482069757679514437960981224292695428676062079285699071415539389493640177072504660691537917048909850044279905956203203593445554779074280421815883913906428597719347262872625728627923093054893341801785674169229906975402188581267831102434555382929932609417102739500111914683576054345368660689245888317304407347514324168941668972159219586260986079854092407404445145941983331171398507321559323849402154970940036735242121939744344283806605760344582437944519206551438341598922006441399360357731280041035870643343617722496847061085610137050649433678898874897375559200824760078362038513746568700349195637993364248619063180358376310676461039683230584730199921730756081637838081023109704189407284034941782109080345444239544914801455276307070418921041892135206319318364008864764242464813746471805065803843086746863333168899661978949911808266918398553314713184080554132778867161778577423302951740941100721649426799331228156214193213954125293167261884855858350301324219962392779048860811926497211782344940324133044047360021036049979414773704881276497658064241528597261105657316303208104260336612608003057945266192936315252621621012653506827200067868071496566652261738637580217011268762592128871533159057177272905757118325636470033964411333104252973478390797297973722472966386875314280714028407849054928469648241121215802343869914759157448951454478970334149841471214960553275110094186128238581522294723477327974781828651562409923503912503902076769494378898078114692655132865820127966667292197172933508491946580280445559861416118558781418370181959479506359839841497647996775458406825349885770423481570319489280583405672729339872168656246503238850907925746266989731319550709433221689575909135905559329748433251406752666092453092537986324846393208354460506972683268220300138985836306298955577278940028090343628047644974381524191056790349105303860856233374342676644634026834464620074795535472422708663876839035801371399188151491657526297307748478600375138654755785186797769351893468230137543480796389940253548510493620341671948332110762804352119582082900671660378988206836009046540894154622571042815678409992789592872443344111483925275314360607550159290313232942085362447188620688879084720733284326515511085060758231145255923585012988790481394940121478223126386700594259080964072742830245574957233136756428105375930138853624174979479377495475209319611198824993603685851316549632481671809990355122994825466993363734652477857843757154367683451932198385657966787800500151816387019396320905793847015058495613606770798984643865184351389242222369447172847624096853383255478297548649807218501546730887784270632544367121495191600869551919865708701295266243331179915041397332367378174695818367400227158778193458148828885566879889350286024815579047346618391302515713867458103320303873691274539817416644778058072123257050037435315752288124247800221982879839964452666435546903776492623770168104961238997247292575264880056698261687127820547039220136187015165989473928328573815638251494822481601424462528330920303279422417950793448078997106059697324621058147741736584804020975580730787345093475746555353712251305844962629096924134460928047199694221338202390753716235660807006414523005971158255796729219340269244787463098480076568270666517948462707003421583081950865525353215093712811663284395683384322993515796387959264777254006247154796859326687845765696057958259924740399505214113657659218201751345476140502376114998658919244153391462655142930229357529162210489013973978397815698022629901696717846970999952243123143424809235244686067374616302820918788590208315964864303913990236538742803122344972963081661479895929246560378966609565956966718123249607827664709568950959768943760707149861568875124336921870017404760649319889406716880347144476046614483811950631255726873818469217401280079433907794936375523360796189751211199748163041037622232009345251164333560384530931288186803845480168735993628745481610118345520908382964355537205371636225228707594187137350984711376498298852694265306479214717442402852415875882673092667070891305383028026160586390392000264017621855463724195631461421540312852851433715807259866308786475905185135487353239125628662655674439974441902621828567180548596316221164683802273757109292434956334014454564647646695959709561840609340899769417784379827356097645864700044965311170582522182173591885520136111325250549560693923514369346956406121451387927762905322108169072581467566149391743093901933985599544706499534718713324704968209338796012475668765571072958574303262626543576315784241283227440984036103118489229447003428348570568143632626036141410874292807400329860255715280516816076020595793383243270118687889935597964622637427303392357216410781959027416952559495178442338359725597705775791076343365289570372615031450821482578191237902868510036910772846910046321814958913845760364039257207725659141831731950689640244984374667381421158077507297248045157103930062047068279323020070665065344033205408420683393434624345662807385369558600899969992527252142248494304794380412310794552279398858148914570933571498685619326660491938582208307967316115772016954715415836833667213504883362312696894780314963231783009688749615660904011782007226000902817572097945227948829152786144209568859283151838457182813985421604426855844466922283613549348132005419383103556441332263156416374543263779348249486817285262194422799325282338227479710511095207030906022477879618532781947609953827608574315199506329272998454055159064422114085963215693244201286687424227977807968608491780197364907320026291716957612634609888056553676526846786060125456024523918256364414250558268523921784515960372117509525291213589362070366336941378312243432297338652395174199321786755833345078462364966283632689086441495393362832214293992582416423473511140903835095303947039711917096819589396882269334134800056312568825137323031239471965924592813494236042832163833603935799951125212459832406754937276375881761709710054773592066248785190261028852378566855747113049423153866906615767047576557952870722491345689829903770999379209711332843061410437432317771726629132345096038290803814845079299589837456371014232241886572308049327146512266972540660312707662740058303656414541599976355888340118802458709406410924043443705979000573209535276435123373290999431113998678156848232113422021160996493781385124736633716253298469959436084119720831892297602594960280287205539234063974158072702120608557768279440345217231554452502070988212828450471137872306508640112614604532982990524638411826369197571257905651944175962673059452978893765472584968883027782759298573968711206595987944417550205279685259804713070161813171486047553122229403487688477007700876575943077375168264189444822877672085814598521638890172277422323098561387719276107618861777941806341502291884059730873532441085715343386946871001020951918629550330831999176084449143952868816618430854605185866919579555937897839257516937469224301504723324113570726424655908519528172456916087432636139698072838136085484329114425744063459056126253861644071412670302763549343363078520067387548440238799895677861403330359296163800610201487025103262790762853554442866498930742957662927650116841016318513323956454324633658327066201305632446411539682321475684646979530392872224763634104838426709051367511875088313382635420485376102518872515532612987474338353757813764190608378729115783683677017669175939839444107007447716197168004451639097444298102523548423937097679860391575425670210823733246591925213415833730255589270496156753217763966135022406298066643058329528024587532285987702032609228983896161987246847277052482732298529257819979264932755271102469710324683852778583143367389761575127070208496711734656645877464947344761277634372614207768586231647585767427665993114264476285011066248803174933463770653665776572524171487236495816107448158383636306665719713255154879014315110021246476563427649682982527208103352831941473118775085333164743137340479307445320115000647074291948357564141569757404345830056945143251075821812465750228231708382387628095818436696125315685284927704309486892262584124767095159454288982399889874752935164208535337128563919028071277501879314717706128577892826717177211651135742870545407388787831028464680781547815330101465032197879932543620049830717233582388926307048132972947385945881553095660788213445334924349720521289023234914868493605322927599862929107408214752329784571632452675063595124062180667871174824097510978456865563251166656399979586314447450564120723496564246999547400199230891084685138217324360505988885451038109620497004749450332376690642068608901143663560432408366717942322637084511409305990258167572946203963042631621247897388593537080906646739097680349757087179927091606918606499001250129907719158573876680063220250065667304699965734059891802558345008599192031740438604716447661668098099919472173270756389415755621875685372684356421489952519743095646473949373673980635807531113940526477375564728221404537330236939285569965123589547047055993932736288327515089956019600457555466973675281748513060385118093006239856757443798626267650798826160709859469842314594893558312350613324020194456360303885755697199664529867778215369755261033816982718869961391909492782259269769646231466695062812995836348753173387558316341306418286596077774449567358321845027785509722235620349581320688432498737970185915661180301641543030409976148000116999798938634756112336530543465319631424399988850086401091522295365010418500488713564263713078236006082707755743011701476338629803000496739219639522815850914680225720568771522472425483862585933331335954091355419552383290412372667499288716136386104817605384051829598970510314075255246207199568277651867831233453332625929935650440546487985488403255188035889977580880818786311434798810152448304877587757168727891529892401784030164050968369296569064813833905962300109282436846134288150052670866313028438302576387021539883621185761039909774128485174350226225184845377288373214698629651328043511079199433139373987315724678063245977673032906098578880037016622872558262671171389092891936102534279677318215523144753595144826621928062827766751659907089250597325526658026893787398918278337319876276050000496320227805916629871224425051390596022653344079674473519165720360292494343312059655496132894453762842134251080251364894714025942259482387455466348135474091520424858587397077795765126714214570137482107142717295935440294147463344960819184915289301260283740732121282225731794959546255176055867657231137042543505705918944895362949687753126814323313497713314778115817224140371863997753724769591937471118193713478630294062856785649431930453686660580157074082892557419790156056209535244938108567215248950604585823644018407427056237276240445507240867211017843991300291949537257104113019348496850527694819150356996121407965694082660905000853727738552987158298345900592519418820483885345370147687736865779974559404336160887150719447102636351915644023057926862478011583959631443216707515251532122353080135488602874558673275226622776674238335028747631876832765634569086730315886809347685488499990468825074455323443560027136958330962105065652859966193007785237758301708647543587545315172302925040461854283562201255939948156099181238760454986456927323212533589577295649183165864917218762817549202472946920133909439273541250715477752460961164350347155858367165196250287206968801431548578444616311629786101825117327737343099600726132654132437861156404017847874860012526041096104565070330986470511462308880423249067590525938106509476850884345862272355775484375129882057525375359386956010899841450462617102751096123427341246241675717860547256258478021362324011859864889368836108685558570324625629447828355350840191730077406794650262654249486590032951914068310995011212871595017133237649051409205847523964018666761305604831045301897070231564277661340817118407587901212460295492857948799386613286503699355618554697442363177645424101541588494636804636811216753744024315655915787916530737989472490706607720338652285543064626555683960663182628000975742786400301598495402060550989356191646491683044996120250970282202280635253762965142921177866691254301062624781289008384335110027578651505701639582628810600643928175143599264176079080669054174699219538179569091690914843383813516222065301597247800287705683379423514656600199334126343929890165871807498894417330876207988807176018786299370033674510065759331425218932483116013442896178625652759117786960820650553527716518882469839473149361944794762945077718240317585499716253321712314520508391674263335332525658342169904194366836316398698889414902278089482858633173217340656058987280772467741587782328456025072878869914341591284900093645614640947632980912390936634182313759164805027444631241689184727543165622891487439521922247023716429998292874310623839407235895780777047211010572866047870975298536503638993297243291748389169881561957275356544668683491968621306388641481240334569813822094607366889705842430274926403348200629723284268486844247254498301264593379977324271582316677159326062055233763370648424410030321044671527545828284790828289513368399491651964759151170791969065787581503836442220372263397542364880999079490562781394483111193093045183400966021426333612335351419282533747215451530040431375771519453986795186207639730010921605252145635432979846986394078293084746762140813065261116261977269646897225652809799822388778227181323722077090862923708683468315495876714729891597206876028134329154471367670936374146040416775389767010420359691089840216004372082061670744203795253812385181558809075836754446992948891984306489968327448381944879687902259254156243231853753668096059676678556995265941999861470939790595556734626440067108466115816366759761564523193561180450756883007780221520034309327069046103858010147267245738421030847790171026229758903059332213133751957513464804283928148235742217323099658369527799055906424198777407328929004643596425478210231418889523154561528608953118825913162418562488605411085221291708722666584408384222386496107380609651767216399085549158574638327599390220092825469896192272828372960666348038291009265037353853252648319930757523813305350679234086782528777604916769502309873695331965342320313391224168123296350423089925161945480271183792043241587770803962740072187370201915862314766278885809146869694767935415500672573664526688166308881699232781510218946779471757332617977413661945476722959457008634612681125715921412326684025147159518248014097492904674325010763169742174835187165499994765628632730623056616295947886172320933017990141201579625786644674476454661723148266711090639272060223400418885834560744492100560372782406754102743522282720369148583166690112663726890219510714041684398482139747929561007640736535445386153615426200697015968907889811040274241811208882310996377448570477399728961707494302725928045631114548044483619388646573615000963705831719061810213696690333330961904294759495727411386176161390947154002206897014236473067607581129471054727789839429834020950627701100403988940321774614266296009437404374631496343446842080894046760921649284538628809468814650604406216009437289739926410750977378321260327015582034936724011700942169543206923889685484648731110039898377427662760418836735982329220069487130273649901348978930685927057693901248892598701773494915085515229438255715889532501611499763090546584859613981050252770447536008449992170684689567794869407476029506691304144763622226002338313346427317645887069118965161457253793739566926407633878043510995454235278591230483163712262900457494369486020780896697828551753006713864147698835272785284290813688158064185108661193923973782247736893912873423870624438799604527856155285887267573610085108240835838808599886284872800667760567850008312417847296984545151302263909992654935977782440165480918712221729487142756420049700581039971763699819169494591659661576915837452831612313595489504904331493970031029679881943504330420349713486703801976635076466349101111566551437346764688170898547905399748496438392274182445734074181564450485640452723972877206055865985948877325478545440837072100131139877572458255523127964732961504087889679729554255484176755922593465201297283115489287432041487090752688654914531081587383854230146674642471051592778059039863942733420469602863377613595285869562289397723085929414257262909204570729625803271234045910082851307269165764213992531736045447901985133115558587532290031174876149392710308638184265677790084908249679743191457509292685721504188547573833707312311517627851477291977923108684219820656578978024886421442404436868921174094278968143127901305223191082733548418215471642108160839035766122580169365048327822054228173251700876902017269283894420772087554086261319438223551546786910722509104712557525972657817612065780734040038325630081447530191443048931292845358916096448129077672520973064378069861212345205966126087335023875781987514722500724561716454789842597056892493196372884973717444939111966804651674391406656861183489892324926484002418378084036719202222165738288478919489583342285204389919285592156176981131514103718842905536250056078518253455978199714146537910518486690251189927570350243156396423960282395779945855922945722055768778343116716250769392963567635371583033925621615555761142351908620878051382834630983599121310891007270242509324116317170089475047100708416643119404510129310328515044232746037122123692016834285443533184310164949312737998947787869616021024992372241534333719211242248857153361987915103735598817832807855197728053679516109160431842384200886133928555852855995660196949287815411660565674975881968011502563877441508466143664840961223899648202316192299887715301491682558392231700961042864582527853054954264250345327862577358866928469564172079684308860379452983177995339210630793511847294137072903955652463285283958079900601570926290930718961807822395286993470885205509196964190614374272633125008026266595368022175769393150014391075325895486032707453624838271225144477551846591104528591672767242335474631594564903716933992945344883808371315544044633080219693382021646647529459624531581507890848825948139516510641856760077088049920197369204894618973704277387023454017052812511159783174905570497967450126874565763117951804477745990797766169636292068558029435927985823740867720511748426703257824834294121691892087588820782075512123854046854600473242025152186833638248692659035640809931580914213033707818481528532534137190854961640602463608007878528789267469506542465136131832308887669950235243465853084573146298798005689996122351799137679470017025013548271193428747002124682152209669931132546114940033739497061408623692087567437452813780795662070906287953537401990387255634340221417305217374396270409503840186121642579714121427641108620396734979549808249163446413441476828570560249838723631063563088687948940239680080918359747314263171969985682672628231627354395141003007585289024671064915354953101372951031301170935470754251720881765815531091241177250761600786857765715381440042082080092122270531262334010109440800899424594423496865098102859267081919399144667209351588067813307299567378210134545595501982281153581506923608168594152697319773050376939004497371731603057917729573912132506845368225967517434310371492699999108953247505154181179686262811470120184718638585026752661201032099623780016955553218201634299886967480497331756130583296454596020725946963650999234744712903409932765076164030567035861746097716226605013274114960165065997775809239869408306296435660260930507558381065187207518306755856405255710341686053703863591343761942835410502450458034783219717352253320792247688735649704452738417404613718113803436635600739229313449489093171693239639251623603414779065550668030972727801487251677921868673746619026783197639596146906977108122791114540682665886525614353413014141944103929001711362309381185031550832541564500981228325623057030821208614199068997766534507415483348790402259088818413347647117479836865108292852949375626994519667479955147207429270438803966667356766443171646955008720174424659228090383547627097052503383645016238538764007885358796136355103078291069617164338133370129778136600093810654019787075779634613673498329399719425974811579191552723884645791709937041976166939379755024471794565471397287659104515650947494099231777097821320016065984245464929111470519587131903136990577634095264299762048775319517040053187880396213543376201220890741148268437050983307078643359588873082783659842363042813216641494632431921955988825107631630227123104512344840697321062313114118964223694334954780220671499151455464010941607021711534198099726176755462696816193686667968093905391854166573543377959562309761377219340212879205358188280494770661171089554723376889163669291853338145451878384457383127945502353417126715374139901350317940062072935973892123563874395477268365910171728690921298326411727368123078330466294343593107752603887241762866366062779304126583522373814037998973332223550331230410589175395066860831039552477582093103133346979558469054960908039728814929195146094391635207707772370003806783769330570033645010207419269019613980936987960761628813209159029197604047229513699415131687863159137824431720713154991637486894843330441711586200606210787913150782548003454218427357766302632403200178966271067883532807274086706342016161682928303949536959743054258525946341031283059707642142249066022303606939714599515105814404044319359127471972568007896733027364562149427534914993757398710659185343324680779208387492246096623813858431085909058163462738495514434630562953729494310681379909019471832823323155674066597512095201832370983000447931500319758758380680604239739304577298335971368286221913818479155020097622994828915208651895553064208833653363808913646751975002105540219331263650350321896727152081362472274197605945756521491072025638307360594367666079832934175711490940255875502416039419007067448469723774758468411213441248353361614534396633435298579494615244151467495357430966931833264080976128762380822660720519443885769624722902288738854962145543662244041193210563293187443130834963463550856288003216388320745555612119315007861023840272361708955803796483199903680443294950227005045911003323870987349266726811002928657138577286805834786538135690172068377451793415747403601252036159524501612606954742500666001597657625261003999993024148356618107472989016064041071896604077465203440275910520476102388520395686798276992132619193938102057188201868330190337199356611852861475624991887509204809995535168655117846318973477282888408139247807905064931713605371188907638896925982811223430373172197084972334748683068956840153314401420317907728705089265865203868915852610708240556060904084036770374394784664197912958813269367103613675231035006838658719550122335615797496809699629665669016035597547386444459625137600993598599690836580313208743952143356682327108348663808881895639614813080865785425202496446509504005392553222607049473218562775492676542727436709103504830390511898282206796681344929084138449680710153936479892856485404818295302349216606200613692873229901884797121443822891028630832878042034419468081378016174196814378981122549586956558316873952508044047802735455180100546699086107880338085596723120123147639561798676294467093033223186818193568433413242390120737142792043127636465874482988028979515470350548270587547595123863097991253801182616139025604679895287879911629335805376201510276796727115994616997936308924381511532319933653455996896663509489098371101428672730306252729943508354267953390670022267916508870572112900620469387614918337033941713496258496718051884444662383820395960956333833129412574261248394910615500074732139343314759420448496055640114185657205899861963579470547789304317309525790927561358100766585858757686760672127108225731711264739464037468751415786480625334512357899874158226239859468878139313169400053757042776716283598776102697664720797001456264933745957795165433999907384354132386913861671741607269747522741928685930306640717462238874777229449511349798578433322639312795298870397529106448220303066714134325763761226757185666229696508776053004988893857407076853017990867602247903562267024225043869221439528154425439263379691939147062242235614317293672922786662234747467894586897427761677742217285828835655305224363764812710709747816132392815169287549109198755639517667673957113525629022496486480937478379697503282234875660137421435437640405002019406343788963767646949803416655095319488664862427324412670304449948308046505055992659841499068511652027742482745332731538524721365076070292380902752250393402737436869754784504905135657339481942533331960815284592096314794843571371759879370277860596688479611805191931980677580796177279946636246532060048954729772576089027064765778943152825578591335748794696864133197360897057555694039775072458364651640395889073879152932413123548326170334798139765856384744277683370387254059203343760420117696613577138964905917904252649978903860293175261898788773749649462556916695914398366505460680128974352464209516504584600409950431602494769678916328531228337744830153399751758787471593666562345712259752402509513658161570742352206501558054408601808201107820136595157460806449386293909403984831339146241533535726213262006812993877419625526160815391976513038381880525163563823127266939011534080855714938236958860338022857328084965552572377180837651341792385745067764176331396806102384031220876313753178732807255637550240892435856813683192767489313921381849904345880468426156285621402802980553119556557487226194646855075091838205795251978562103057963999209380182580679801045346159141412261041408812725060678767742381501508954735177394766298024665167787824526876493271999110652130530634330581379036626757841105663201709919383173118193199783289427559880823389964838167099923175431075198151416735708566675377864347117566151720272693978849694285911024349669778480738496269549603397646176676943034789503136092961139450851122663900911038957981931951005679115470659063908441773209610997611298623032340860353938198384004218110466629444074048472481529971053909357327446915716392613722052797703703396486312221584993145337359334347989434498995911331358952524763814813210427210678820996011219826399751223008331695124816722874378999416846680801122212755697693492706665888919834745739455492251699825539662332767669028485158000766434071790063596080919379288471779145905243015205461089821837871445783091264527933951147063168575038175254113515392359671743881327796418803010713925391723337751513247801136167638373666353668760980982975712040734137360655277929963673603111850402710596467545922182936790743742908641642299889917432169847135536448239203226725346288801793546333404143017545620042281314962101817297093182374512839449617775001528630438841385308499903228438471638299282425807781125804134315537502214999698347221907635090098099622411094968408859713218889948421316765707991444689133825584403224851285895016431569401187598466933359895495016276811038110770440450462454321530465114207964609806008084871941948157674543457096939267756865607962953677411838265417368318742577660930847216831859382389579295243063137871068978252447589256564156944746813200550890271828857853927402257949218642425570272498640261391050159636997637458275786664960837548431424038138862619324674070717490432243666823215491472483208182863208099940295898891219292527486527661761131691107586062350183306724683740370328611453039489519906614247044423478542381481564670947531602330355983733402808816144950968737229366025474727591027452018898863386750380623500744966751466635649957555142525948319494514970680635570250532424101226224821891795926195833640598391666615361674971274237291678047771180166395310905220647008080189730006955158334827228105924658935661153213753191855982794162759100070009354734991841488117966594688454428343432540141768546339992567252808744596558725582401390345788851361562532406833229459314717374868060176117582690095873213330692690046707644201762024869182367963667398223713366288867612392164083729439191399850498566116052496004032302854040335390134342205448163283048721136323812786164670938623603613062614690388282909198190034447472776323536349995285020888087241495357931103044562964919449199364546425752768760354907865495027167298131856407393636835813563908917157128263870824262617640542875089194388760847169695732854234881366263471095830830248435080427578612666698137702295526842263575142693707830011656629192708924743234705068349250863795730062068246189900920071547500235353996772571126870426036935190915941940686157814773045035126274489350224142952681966535720183932462693257072268194723141115356138757751951560478703031367834892645866876892199051474854487161286014624538090896362160960776488596110198596020969874831517317561779640121529258626374711293401487817046839950206329734074461893473418398065002752629414577613053563955959710286631935470866955196909124688227088042254101380922030410800588410860642130128897543170339445350726519219808775883379960154415139713472997150316543166352253722735822834828345126891976201378938536209424026158654944641679270095970835113298560893369289612547612634662312944841436642011188879966237701090392420063829570504358598358699854091908737483149013977756837426999929679093816788054595210187084356434190877644594991698076890659079810973214805208466585295569913550641303446271021658591189058087607672014710797324438010746787511058945475241715633150261673317455436296791980828459083678412469866018662518505440541033965459778369923494902119783804652876983482311656467158831164815021954827617147030063122729942168329322152883933950240464343804767092220661304199442597137819275652469914819584408773973533182141450437028899444016041729137046470677167345407339309971872613816453230308511771165752471558979841332700351058639275165600297462021241310836424577149407651879952739573544653700664897730463402622970238266033240450057605991726100155421378404801829547038039114737411850161766445726346405718915144272055228079289256585255880703108735309655001438730034967376391614699432091530477609308525697905452105010807236820506763852419687559228554783577041858377427465973099650399711198088459108192628924285897878725963180820778094782637842819344100703713382209862309323108711904633657064306553974316236527159794563168765130454303569014534402068507294762108611090302636206180911324224407033965342655319449176799837770677739342399698480933905826079802808013269844441075337101933926082372643166879615191308512034299743176107095511012165700686961766418556374925919943800162775257448791503172809691274776649095112020024117143636998788444338321773952664146722932253521557481830566036116153532108525953074328714727696439970035558524457332589475723891454308661129191593137189628643947291691897686212206724246193037815478332002975772867892647733392442122973084617464615754050185049195990012822902921405209613900263021139405414427189947885490473338355230103941825095387474162198321628992913930501405688520568780813993988933377710485041820709081265245923317258034916880379758580092589438015066153732635559165865260750979751379539562549740724745931806865976179930731940380796370818795771250524111812753499653732111593434242888120849723208720679077572592963875704588205513429122916264906207095283433118911652146330740017550748587419947060988015766689857613532270185979277103514735698705019299153269568300179748784274111457957577126769288323025269023244834112072790708794724542197639461045858669417023306427079324248458979423631881449617047663846291275771867917427758794511451502200997595594806519603162876679565947077700275049563575833292752948708272980132849064207801077143454914892653316659208094021785735056806652548793035960561284942650906000597257529278918304722891600585148109110193815474546653812003826224426025692137981390503435513838957631455882049211881685717454205104504727349033381986068650840217442753329987896038018794327806308848147097092123215085004504227559899628464512871675240957021866394071747409586644151867103650388928697581544591759727551542458394703249069110498605119468667153282329813079051308828376012348998402332304989780189628323020200565183453376637564736954210246628116464462304620658460979648005269120092681575900131384854565401383608900880810343714046836549874319062903216036232557161083232365025302303605193860532599993460073472762692148415963301731432096617228700599641025798138600118508139878600091387226929499198766308687050876706941956247111814060714927138695418401298739232019463029243149586613907661175483265695906076026423612503018850276140201132723612549535473346709673949987589749429122357344567553077236285769827985164043665467239871719118081614053794862630872116651677455727786646723832900273899990978185679607909427054161187526666484381840516226811926686919902961307609491588642773770943904391899079769820537368924491234051043674379483661101114523898309046006316254758771993342730032829768613118593340707508327666894441417960703868389948689090102322208407054485618175439044696538254568060054225132843260461867548985330436633645825959806490324284743472381737967224214393232072594590423155059673496560018783477676649844153475209665405330150295552981073742352752818569861347240086551353043078175179531815597853139768148712198294197598434058154719385826001999789985207349275352658402893044031491569373347522361946106899926860187834844714071169231131616819418124217096449282666485860467273088275294991395909382717829300319532549179500557259281773927371203831124229111756783128918071908901645466715755140505156185695572983135062216070691883344439544923849964522151962363207959434443422215316347806117622115797411935571090683334897687700288728329766570547377701507212562570935546175369408603462173904710712885925145132941487355086416443632629090251462377512938799960024019016960918997217015437446233234896147800733916100783144734765449208381203638058654637410861750548992946012679430497579644760306590350212920803267322915357535419504664660403938412179077695227233366455573413809848465114762224993205291818564539367955603056091664161588274095856910754836996805175069160911995475904184745729786677371145345859679563024975259614722700441799849478685222596224615453764059524457918168072819242070273790656906438093555283661918986141923700057821497939090475830622192581449362123450773124893974037446194766551285775721331266663516635987493954272742726346535879849860993635703385439598805161457212783564435396603892427991886473847396830169189666425254285185391862621305693951258624471792997268263133717363850734641103637057334019064285535390826236667596474233038256104713609748892500178497120131302079885138198434126255052040903949845068958342824226496804022208553673859483439576959181519095720613542890591264637640537522803598423616937870635213529904402603415164594312353799911637903388347029412466468799311792371227192863627583523249046101540443274756726754922068160935406344006120237389034970431472150178591348131969899986538933946708055886790114545091809751826380632614677077142529031707621138298584968125105337789985896343320859332452451032816473427011934204664164456760987629412004662687205197349772776138601830108531589933244970190729987637272787332907941208369345207077274876836848441491209835269736597809822510841633873463425193082730486855186838757594387598456020567449330434495408909817706468165222884592802050205889607643060252973576795097880097611622199148347217473401119491282722573061404431880722485741037055970586590454762179036007157804050594690289095819347005419122311163095908859933613687137571550785442945532078273825887066250887670259919996160051197774960910127443775176865375806623104540354386549013467712058065422722199638319010778158388238596905982700570213624977917724068647251946832793801694023856012480170802733520365981281144941595354309120968200358058102183243609165187355774607467837767607622884702058145576521014729613049767672240419132206399338345083788960127667038674237843136033087763541240221914591403503015989571974009850687050504590415766528560895637354542545772242833593281079472252608386460207999899653130845655736510884535847621437449483615842475572254735736844751362609384221129177032653335889721541066721561815294517895531531814865292475589424045132719191212521069430173186079357407134675852224514998470359566884606784935908394963517011134343800378140841925945547950950148056348177629750384806950958397142873166607354493581840380356418690271336493703633789725549651265945894559854080555481648470052914064193417265635573531117025337123756308243639270307748834521752877470464951456150136301395010398883634066473307223317125254605906693772489912896654881899776708534332938196320061448758757962929047656308012483255990822632899313004412581750949587623233644695779786085611380090443830700987996615053343720390690401435955584724616139342251464933681014971003697109683252919530231402301504898634167174238198305929671108263920388940531112080753600936389395348791827883764666642261628390136443930236643139689831944466414777837840335849457526626315745993562769028222184666112782935372667991926334200189773218497626490742041013878003510655534357857369569928910934286427522864657943824760971480160999323160002904445755734995724281426260071005094508155301885170887798290862529337855647443846468435040305244209756230605362197453953447780474122313214528470405685145324169734628315953466176581424308792433153303385590372701528345516429448540104480249273562089286703491092658925623455871378509067192377707817936813631469421432255350493007687306447341167631887907067236990208555273387281652916265488836368529221496397725157697645509245962015049990881125070491322054495110644176234843381209740632978606568556620196049235300968346019051516206517938722674668319787468300899014161207670861702926119043081421211525040498026646484715248807416212296764622471711819116884897880221167789557780077893146764780834506648502036198075521096403202109589076054718615026106433385945166224687029814472319359877683292301221707693182157026373770178567545280231660202778770456050434511839806904981271341969923824489250352657579702134178960782639063933410066233362529747092958311472131596900127721770307607691972423335366797302126381670816423777595666165126334777399177521667776840255717514048260562414574334932157274157205531922045728261814351509880672624604750390594309482905163887303402358457702786358591603934743324538596746896013410756429550878655559492320039979717449628452934872220673340161571210063902335773784282379128976957741816549145105055698908060853007380672492220321621946605211128431515279404371732294273252867152347117843803030151639934199823696160534323484404343571383565491787578954236853360269095476458298208021434507221739024989981931424082985116431525165957456993717695744785113840683051972110687835784767682839316516994487386850510899231959834287947321018042094680674414022468981803756791916254317235819365600117381707433410298157541364400932003074609360586882537532028177782879025457736282095469657398247921819738686485847688085747004343056122659670752886770407578918618189191009140994807640208619448799418823684258317930979124572838757155141504591360801142653390716738825913115221196497720871578106510799320433787967923342825690507082209851476535234113286635786987016639746179034108330914476550222587672798081926528070070718514202063966769484310991709486877450552772482142884338753181458024792118890982220015866138770664462717792996355155576463896898621533318584405922231700217384179748747740038947606723608592390889925015037286440176520359451848902981117090411848408380847498251780909425441025376294216756386264949122287596289927409815620411259268955030719188111104914879820029111263865879624110507114439702772378275003243166369135883909919567591462129954244783972917936037626881945234935420410305136614929073291199715556376589351426606021506182749187728767184155560531759838985287900054870119986245327561314401761571437775606290589555539432349047705670257049920325326329984762950976932630193094125771709588182279116635494782115218865765600637664781733525187050546368075935153828586415645025011261096861530691890175418363540623550933588978751235449321595370221575517057469353425245874375683271620288176596579689536376287696205913175456236713079448115862550316433483253024187671881405667398823791414958464803375744835081200602829929639934704200684765817664383222959913234235955878461560912224703238494558264278497929114060880194103775818904056878006276253073103305664093527029651128343571146203019285536774066741987398515506573928966725371396296898910783962146770106044050363638765107760813846542688104624287025347026595998910379801350465822410823298675380810839381924327350239781634010095709781194850234969012194460080234384760163708414384625753258928652233238178508022405047901368308290130430330518248200319578151606925450021966501228137012526584218970286939360225276293068917935186410032934241912839953947082640339364454369713351440918783341186336187575406644450460766514326661868346132624388098861485805021750111964170662872167820773303672681693712007287496900224221124936254047317301840834653258204841472717434546186266043794717176794808847597054718285771183905940156097867066159556955575972465321420235169059776963692802900143870515114054230400758767076863914240374480618718038315001991166299020504736277554350612114766102321300079436485574130281160657385704758822289355278317388169693743957167755181431198090787246126024518457413673534615327366949246581572367183022781995692272478073995429967032249975021569649360570752081227523044524679113104876660061440004453746321747692304094437154712787792939396470833531299239459041229168866516975784490910741618371014691898722735991964860494449740296974528359912786530297742703024879897358086301077746112888402575927772905898147980175243008083484998280779085397307156610297477376842955735849806501234965072963169130939546046837601293762959012616900806754586320598362798999696333461116281186950769119124018241471596088177462291814198009216097367644749135603228839959483955590231978342172953082338521114782905640988690941817915758780649290068935098113387210829457900353764931833338444743337210660093892807983040385163060756690583736687722737235666988222873600599212321984243962175655988639406056784897147069697771794780108839015333885600282204191139692931054427795333747740740384065650050999924175917822102922377639100553105289034215947203950700683947000366078907882092369419443230980623409020207925134938755874204298207678548593399901310019515187198932157402775361899093256775770205960209714740789172895107414601836553479101238067227185689461884304642974386498557780323894101271086189217763460254561102680200001048956578469050421415828361624133046651941071598783139324100790488057330977883125796120439244762034689040675534061547483184833564173300575715052444370803177325038982085377728854000178717259059842020543168398835369152063328313571807384193084760197465286824060718539245529836029464634383229789109679489002215360115468073239495639483548613797533967905318771597755031844791083324877455465938814097733251596208129764547472026816081460718078339517497598537580988870075019711152216464987500959923791664189731236693882932631571007000840733412674704046855097101517507307402561007589405659600159549070798010290474239283040469590062035004313961358837633309334976701848791406039287241958363766844898831476179953675984569424020699918577085071650868598444294692041762468473689907832744560668818774517905784272194835300875679564815842835879353466242567999222569237520728476936905834538880519534207347882460230864204890565349069760913602434285834929536829957555194893479720776769738567046549176594920159778077742813984092031989569689477776920507302613258610079811259655041164938390791187079626781575703623224294035800216043921569769506660105630990349875602134167918205179197831568229035103044652332269007568796265789861158794071329428638671141477523742912920781860661294950273580432909679514537871676976701369602909410717439644522551688086085718915063268179847252785312371331866645783734695781307441960357181532444272631558182792558833087274494571944665162548321367575519707586851140721714763394215135716055200182350212149327106828436512520113019420153783180664711886230352456843191579376426552613152274641902626155974946746423870077169645187108954218956152170465524943810853086459881182708879655111808504563419060934184866475267697427940177270038305497179081692475011212047982177093458385526383402696779715631877814642333393546906215799457492671539951472337677150251769200799563932085514357755916098849427835899056782753508959646319308974594817148677885678992291454971564863187249215072806234530809605323375693162058610522212872156384238419788356367514302258600050345352987242362702318406026433887616244690231286047252130828367343270825874496132334361717811836522303280074954172454535186734928357369177288370477697223621497197522822846067965799918952828588603915137268603050526360208401677399035535714577281100089094585370080556010006392878927211692653153563097101140449276392062319053672801288858454276633856716583890542840651776275587577664549774581029661955226757531857674033691935502502843139738142074367648887212286021358527710013637888955403535296249522570490682739948283560257586283765049844688538131967473693711815523047641023069279385114935803057593182789808615020032253142506672366422370792196443173825195017340618225237303413504647951474517810128665938150862193938491506545051687706739091609539602626819189691793747127148578339072093727302858799274030149629386953039715818870455063244603343731429564827276840110632172755657501569020645615637161131621325765536876079169816160114523126035372552576038264513513083401652374716405274325777816264087932374854522769262754032208041849033486485004899123739273031181393685353144177474670328944282978898494803356955970419216091965790507279940541712263857258813052502550957706335611244114154734037338255828778270988381084103826735207721336297485432237616540693138243205538799451726466521143866231126699077365860431417258027169866195467401439812583261524754612376972284234939216336180431411030327753142824655523284651381898799648710400111556008097351998581315926213291818987337409870311508799170611911072664672867837892591442548520056876706317001252133118814580483642855205718952398085761147295700872369017106172304536630150199466909476468335526678423361039732685311725592765204390834765298859100554458883655224345445600870651931384014560778834981732617980647099264350847541684591464620161308900057042041004050380862427528065084819783484999170794805096113330780896738302046603350882643524484024095881898692657127222154718200530331134613434038576303384226495625322014768572823084231578994466948805601821613419373712751393703333572500655588078706085800076469155818408772440710730896881974634271745038678881056595227161664596753599907728204230934195042008452299104597675411084566943486160317442183362704124035057291462025133384947778370832945687960583692316271855844174054614048225286535101884749726659596444557157088306141184313660894588617382306429723052184631073075443241616147480224245726944789693009649413974140128773216832236418568516812783161763999291566821741409140969320303385723501845432712337656535684123476346673775301097350233944182410676470523317696933334523110087480942807131678530184970639542185362409166509988257701293769804586081109338193200081252172455725731631724777511348928070849805935445762905850137846601527454854470958846157080738901938682895779550075482594931601660641353053475445466055926862992775106442315354742662516680456384973635320792043874176789469104188479431236771846975605026208129004022850364613191168197363815180661259017965752420369498504469145160300861525556456266513080116332945721086822953104731525059783937259622833153973508281682544302484982671990331516773585016021756814609559219299058417907077508729206077225848265356786131487435693099429273831734834131892252885232610566524340706704821778214847740870446899549184273665308765067975478242982529890719566029431525316176231319261024866685609525093856505197900873942463787463534622597364658865545952632314452065075072034192113521540316617108781087548192599365404327940093247933880441278045827097021357711464062853432527289825178102172914766938485532371930876963274825902756250358424547040674755551024482006754187808290215691882193853652026033470366529407850681572471198202288594101868680138802186786685409028256895950824846918305144530675045125828092088348838593756531606902851044489574060170025993559193480154188720291204040203370466987317413316198506226116640579712050509174558920643815847577599638649729746791408613856657800123091585382986427541059900926834554416165616355044553490601872451862657077705374325651897487096234319861738871428621253204377063379027122181514671019099440917432979177131234662947710529386019901645530042599563512027564277119667231773807291252866930351059740912066760774000585085694651993863077121034987779356813121152666010123853688944659318562448915789340073487657807152749476444435013843245586076988277439722089171218327353594412822947589428260934457171700601853397826946450894586465307194915594147275275124547784383256066945730152489937604911701132737415258235350300008185157686676220811625343555497332858458196336061819655580996345324005029152548659324772362953082615415170713355493437854362548721583569098198784111660931495237280425467719232636722923605277511302692910258478288632167560318533121510606457829888453047242816230070866882272019120374580230721147519546835809058083649304018921931914442076330082218082694399200357525726394878852267315684761007752916299816809252341761646863031762065249664953916984396094510035097480841720708730787968685868161883631023988207073430475826164990516553443560278564601067528907041176947251722743955546712562126626032651409600156492868033181694999199122746999205517364260323688157218730643167983941823734134669999724609593997565006150442441040208753385104529373706848084067674057239191000292683653187970640033428233908528445654554394616885037447249454247421638974030238446723846867312878867011676539566681876565685984234117504014631593068713488353384658900709124232214819985568932248319919629229431631106746596158266351772694442379526455727625393927339236494224053630608900801390247351443835319067447947117183362022395518260631370673068860338637901653994713382348938820709453067669393261505873393103382228972605503910098110566627316435679338025795152751873104048474958485144297696107705514533553804763188098028729974590894887702391719058740367154592649167582723809792479653561774936590757513894993488396121545659259878015375771368946459457824261486285378804123232113162082262186687348050639032190735982255486762336462984505660487015467190458194502987314416006573244049413603778729299730473633923370872372734772878086261679123653515805081772996231258328766448154425600928641149307049632018588933456775356877758826587679289398643382549739679205122794586896932574762737354712383703343588448782907878430506419315386867835947093875687953216133091645426549739427779370880222858317867840260254304894153459018048605052425774657617331151326754602009346529279157230441603931237945093238188464333502282408948751616272246998038063969080717738685348541228969036445078975773533302075079295936591992662170728900724613376625999287373918443477186176642401793228205406147230038578940726672975601787326096072479325843268440656478325604478480758669821970852725553333421307755804894843488078105075973074091300641678742969553751249356956629270579650740299156786189264687934745439427898929662914100060794667001680977411669514648007965921956643045886229727755053683855003725008021222960416406799852903564735679773348575512059026186698423008621035126005164701977983091134896033938895522264509301930527550129567823815410682786118135463752512863563649124233193271286285860192598546836855073873005215191695752634699564912595202955685321566674782416078636940010234446046748567216720922125873686600633433980384845110222853178001664732060515352929242709902775615947646120916047194428487474216566451335191984369939864023739922850860971956437321979326200643018347105718577359251189163511749133486812368403489046915331922903658779088660231554900427883113598431713106889576717194815474141308561702303153102248401815600866370972139401992325949717477940481620734616508217498561761694084393322895801429874177902106753822538609059867621575064071694422537370837009338344902757932323912962580169793168323647884310907092561664206044373029589833732487794200175849121240295344367090947300598709967694295542295295701292367733787775340233950590710929722990866548966749727527952251782511418754973300792834893951535236058501630137683584960243792829074074675200425100729695510497791650215696075186566283952095194657290309159694847669380610828794366839236829508037344861153231184812370013796258452169709240692003942004918174794868711364552494622987569498121066729448163910703072972031446281815736997264243840251404422967191192373353920431500348148988896283493874828450074065102731645155742587367558743362146860282710197548866586979208655859479114457889829085323322204822828626504607562902733704574229897656228035829295346552444868550783666030057794344462707897947413883079630037412187436997861425426874063573686837341613959570773287999509812355082547719449344452298915901263984172502023648824294351718042090070379981871947451623226153411377756515143762670686351120068908504103555352184592669008806675691014981514900581399875073466541829785289564076838086823666622743686061928911177063710019723877162915085473507737409341274949629456647877160169629708487678772686957762506145592848540733719374595703493525146045112531742958205393042136625009141275735343642727107217710005897285427568480878198024634193842284567662810156675651177482635785153909265057946662851421842068744111009757284596741698133517508245301648486689964977373734255082878125311769681922608385946727934266312194591639922991651188517246182851924527643315612703356323999946450669665111658364029799723341760432808414781278587189918553199112426863828106754594267995735099844489187393815022010119230444399885253324252715897347767028464603727342157342929607234983664685661848529219753637709920474869308590373295590481674443663741208192745224425049620357156060054419181767681398701996691763781946347974921461238970382164830824694115338117460147265649260973287212892085961213077137772098033203802272339305400527159706357800034915442937453186499082037455057979057511160411975170131816893216541364543141198590746912549279363701921738665908799378117176936427681613223563415609708262805453444718205948212142858033457045311702855046609364624994326571580901631611164765963578690834848303706505237821251072708653181816202640314559106945821785407513992654104650890789688427531785903325892139454022059969489521773286443715023110856456926894206114393421357224372786497210238484763749221260982077059708936745237475217548728486639002417829613451482168931122311766354393737728114968103622327077194482066764894365419443892280762336140358575427314528171174765842607484721788307785688337480278441122965616912332397892237478081899892198959729816446606061017671981197500115711506278194685746908401037994019678946327980927894671314781263398050051788654287718524226475417158612126026134628883420664497137991641536490976392568781688824332680864944489728609848639305606789654958993608677914670249707321368872797226096647584008703349260002518628657434633858612313996509434239626865519988845884152386996124595367726857800799972496495428002057866857994423900112578127081552647052058248568231143927799043429285152971995717514485081953825583855940767339110617425741393986855234959559859159751301491896095703513924806288145829962743610331176285083615820720041847475844909923717089193374061648110740189093879924888909670235255966616711285745047865336284657400525300987755031536511496991463903393345677347844077828753513324585219855412679693535624649796118890328659141828272494113652760447840541269793713485147442983640051972026991684637201183761829894693428269085073291822274252387280809640084640631235803581704232726943039782511136059192175029949505994132917737963048047820716090903691980022697415542183942165935628181294073689909950760775846248638513786766853155194678645960445912990499538391522817472849472573375715029622983938881738816022529354093197382083546563145949991989741439370469501900043096132704021851902650199920027242469129141162615665557278275144723371221993828973964009834929994736252425081743802281907263083923500309270614815627608099040448368561373395327482758804756931753315341588833729736740706323037598197535004703023742647969181952592688274501776703666868469752684499076945742303483959367394568015016371038030436614597295597193124715657807673638102144918515519841122813439020380717842398616915504901032474049075613325498001163910019538696305397522701838952057077304762538314508156532942625393051464543495514836151201372850783242758969580885330379564958115035729044656165943868544615547199682553409301062883439689733198341760220452970037789002288114486196857997200487645467333008950980559627832422879318212610149896234800490155919294110412569094004879474034476274409528600888591566935701291023484899951597500283261844505068295585495278866158563966297907517058151755022990132897540049419692030861199529727597382548746849035815232643122139991926380117760582054723198307437350170101760591989638487690575082483413731516861016128410521430712632448257317277559901396869473564481481944546917745909351444105352836729166458014897577184099599163675806771118105731312391340840961039311814200241756617182898990069058436711207514397434432418489909137783716491740527815853534847622936804335796833431366914382901158103686367794174082146072095315618843936483515357441113433492563889507988889670513810763232178324579246506431178164489825745773518913916254865468523415752560814930471626951515205686962197227214953718846206716778953812117035274516365117426839902288856475327621073721164253468016316696502293771130668416563917528741158307470150864293104331845069983856541457779889948692343384408037651923116072153793687054580074201400627606501245622825408032844214582996665831019187436085302916523357435078984205339303539512080577352580946930639959211255473215193871727724028423241365629659816002494631320735109614553007957269025680022328411986450952313972631502045494114715473166326930073566933682397289400933315385175409041527691338674309920692785173060255266400781279076083621543197015689584243815974793169255252924021420738268538531496205894532770240901984429570836534852568687976582754625570516121084930490510156465744660849347882782900201137239817259385467515227778202742406709831738196669857999185341004034387563555417664725223093394667948419729330740494581593697965221959366689209417519762941062820776320193818421424963096552450619055665364371347341177179287344391531119126788458434581624640731080513830184634380532717566525775889789616337344686472048787726922074798449299085570605078016490161340457244470983602605136306081598959246212163435041290665574554261180176765777699222016189506600282515041923258481391618650988083043908735479835942599453780249567869208608730149040011791574705250164969258185722195055307774300162490664559175292199483007301325272514384692257919767766648811805573770716171268870363757118619214070712650064998782806277093402961276341077274477411017858550064049990997628457032430639231384262940518043280945948785846852783779963014882416954668669385800574488360284170035824869028805243943204672231430364475967044094843576666415066492682534390937409122333420981740487651337371252884546915353520357074893289600693256666764082667486558359724077922456027390776032225265504230601775488466449613929122867447688002542264707440925488173120114521911341815165984832483143867335255708864258166442619916156943163940947030067174270353820705331955640013183702301287863252504692072548995309453333274526623418696677772353692100785051629355958712541189385904137827526357763847030917559392495378414651023361718333564130191045481212193527000657347682170807303982552098416509580490259875897736645819210109656938359075239335455004593684813034127111370552155958510475707038862290718031481873183995553793120337790625195891860988199199045119127343262915336450633667577756671411864290758304047348658423704672274068041375693371678120559439704526674942957435360115673637071393247356185098700998201768829204563383613051169009320110423172769264764016566309019061138083589078529693561192678460279646133276896760899462923942048745779410875884100512871250006567313525212312210315190725861646261570773982630945828989602859931935149733019670233282549566605546173365682425623231886739638616311153863519103083088825037504334017367180558034134630260585580561819720830409620153454433186785412858285668009375468958531317880366445870629272454505407297459923685355063718297280890659758556463914291606234059693332270625075400476157331193355620387547811079056140481522928566717370701322442396174106629193362292493127040677352822016897214426136970560833206641424944656131024192512590084143645088531291655462633618917148590637007240094545396049788168767264140069753055502308696003079364386351788381311391827916683723980498066097758500263155886972108339219762400109450256859461761786266629504195472533622380660882767411129925147573018520986121932580528551037476513525517024856745302127386183871468464047872875180483914188548492799487138317605149477980200073714474583721878165684478324049335544519389739538983954497902692212567328569727541341246418165200527529140458659140529377701638088340904658508548256963163131708067369100511335903764702263378991263261862524610336740576896797299250363267545442006649574188783302982245927276242847507003102118791375414437659387266018277465159497536523004746966101152160628693255467940066948191285615462379939141516939414776036049701675601437362962735047043457984318878427873901904154512145627952818565975967680253345302658214390275242570371392543437362987381761756540716716033214666291390753349065695378168627523974993691093915764658046095575962696618063708274487447174188743902180366111971773917222070103798428575687623932525281458730714572410302656409281916902507042338476035941624671510394950530048522973207896430437432874412618073774364080851545224528238958374291332164096464050874155737791082053590162238019515794137552169595356672847362557910563528332184485326867198314963245389323065405334376967829116151259585913441470427380580059016006958864019824396798279332317931497850791928088621306686686308785711308217625676164162552284987155123409883041192834864139725673523070639701813366628472994410507087769519225519949596336401081599976194983715626859292503499635012264504025929228521319760095217266629288019442270631221639953625886294046936058135839019591166177169789560321662441654622889866647388524952577193659124734061817910356442039953346371475852448115966392707106850915016718119142982174031648040062584586265352648648999904975889585793501583864229174987665209019167684535287446203371745745679235795891279102781220694017117605204582553494785662571707507430414130072076824173343234335577974493150585278160471549925820835318502289819112556903347022724775264962902733811452858053946059706470326256233494574946675978151123634131103657844967416343817909487352981264147384924013131512318134389798664919908612822101650240930108325056634676354881782981592895967944732195520329207668632215902656528863742715729201481655112797414872892299127747398687470748355795986053709864785787566949032161907481480206412485714416538360381519190526916713485097240252574225979718377786227956660966574457689570745258734726239997852258133669044703514752469811820913506480003753790051554690340922932814669296196086822004510914069051195546839385222925069322539794739421581224089094761522166368943501979270469526689067271305840905597476522880885323595962432831978543647838827539889538736917025218751738955451288327986864331473125401229219873998673104736454378953262741221005634807333881663279215749524292389758618730419236547803168029745196317670260827461953723742032483722821571446948874452529285386503963057594109522166074727878453527517608588589054959216211041875577359434107411527837739051913797668030709807584089754277117289278992171058565730135211743500178254034716027142962823362912067018177768821237237801294373890807686828925715277537022312715552177699816161191680305924050360089634891250105970528242139509485156709764256094068014165040061554331435920586094267414931656551709642704260089325794477072026798395823217394863431987756121854447946295732700963091384904681174018254351524098910384687675285903841225508520469035778765812721641122585494168185295362771995420410190333947032546126358178674095581151002847102511915791410791460896172105940910579256414361627247728129026473614605388868540342111723081971989186618346499836554987547211056365393056608805241245972286771980409879383071782870131995576486240518309203599414964002500546287074534074976948856939409649249140809514909902746670959218786983085144453124771527232179474445254883809431419725069251535898271972238602229793691953854434791672687479662220450561535039233340261636007009472906273339172650713133776621461854859982466608244714558407776257510172287554537356803376998515001514881411648567135114048308082229781299184064082243123245631267343602486385668655872979245740788581358402049083053122075261973756799914174095541980374581744456194676478291476084177959446460237411325240713860252672190259416229839089808741167609596389082502025393659271697826567256773680196310221571725460248659147136651882984428433284561658575932368150926765515983878054372481996066178713670527923073131466574367805847044212429392249420736359400295035977001908017582033225988955006557037110076438495270636418913241317106440297933356589099499782891724450874536340776853790187587422143723219639519330141938376821495160024354193898094133244650587891244725991830183933910685326141466943513450688237903332206198571189750264488576619934566032236217805672119423716332749106345018238054295574803258937449741713458377393109184685514339466390919171301491915350785599095038320724452058626628569582322563502393317168913793984912081958365422933153115140110874077796663348315527220664628820919579822919544682823313939119778822627724887161609685296629523672760021185695373074736935147917427151334181879066244016906509134950838242137384627000977576944595529277064700621747506861605179666699370926307242822166594065541239638940156856849454807391517539256983053697089357922505555453776001736046719042255970872828879841721992659261251660258462151091514555436255264310449251224520803926425549367389296549853803522776091471507542231789952814372457740369644508573311151165504688700039544728732789931558855967377659037093408955122632244988650947120620175001858279989824494802901782801466086379095794669556969987882760689176858300983943915217695691698109643188791374359570145045634620638197578012617440802881359646124395541677449612601060751023021661326316064230296704167609452553071027410313346138795938772159286460824996710563057804666050727673240697162224873557324180190794730388831358719148464504552265500024780180092607026999934559426765536504994416428066964958822198610307433732862133483820170251360299823956225194484836986875219650432509882717367547123668475769740762136472144811398226172310630026327396341627830629932884401845113021179176196453890448106438125320267999475132003253447520100472772430658266221047244945610803401885388074471738393818833046878423659100965521223758403244217547208716772740891126202704370785839172844623435255473959738582907853549554022875343619500932321995016507882906359450304646171926257322024517593260223358991163776574189414999762117850721177502256378719656811743943661440974987890942314053058745801811193139882773785130108696604163737524962832017964180113965695498596100246373787566020859378571340332118082250609563766007084193323287944777834738152030002445158991788291993156742080548149601043900455180766412780917865635950784552290648931807709212914876437738562644770712255381134690476009654278226509602643896681032567765132945132610035991369724860320394543775512982368492409424502804399228730118196850289034683749881528490557596484159315090650543036936381648201521539806027614070146837977166097344301226706897438040361607008762466310292052772129260862831899722928161418551899061865037473881811780227513584947125142377698246688427318704353067578950926010320321585354759328570645490441964743820878780254855962618870078100587490515248862961979333264280814940878205844868457893832821024937908136776398532044605321837003948472886678321924339191564067680863208916827977003450208547088447382824726793135542056565977268368275220415924383731558055969702611276599060743096560763160146932544908225089632761792648110767436526414821627789468164799257962011816255601930650043770645864236059959281652662103346987789828287383414711755042490067918094894479859619298769516570317068690983826049018223021233184033036444153275150591046600003074730221508155531048353294943364530929191147184200057614380328050776046312945466878176053671280447930523238264629658786083012580904471125911523452990332010682216273980671434408454330509127597253534893426533780630803883945949013145326094056808968448216350029242574044389146908726636545930655906960889730179594422923943310379233947574439954784050486566896738503363382789590512190380350637900454928242343538767759344451339949108714739837593762288394060225316035721817921718494705143634156001815824805160827480875678117825937550249011433528823560436608070619804457870354102618979978540612678845678652346640520783359327197419265887858491786759247649585554346955111492639344208156891029224001248438687200994397734293162448062935680240812661700409652326902630810620691099649063180653636105750606393551824736646494875861442900792782065344172497770278953996621159789258492252949230606819739826599828775753599167009506981590544984227186966756305655315649947134414390153403223908193125823568075023741616356410201604306830114492274690801007567070247345833573028379276287525023027957039012325680522864226341411569129327976503845598130683181529908375789715579695848842663892324810080590775565197099003286357165998807251176676491644197989390841386656487934779300920670088078213332213137309083196284960378224275542287955303864565750568242533813423992812009616012952734804712902592251350182923399391587654890643292568232888175544995633950637110158017966497784280631751245707129925086882556801429569272427565964393152021103817329072065192108370889187408612083076631351547499653950161152439636016232579240912354057241845412669028740945431571450931380400921031621116126543872060369914611850592297517126336393025751296709055533501823580227657792897989377341700595036238837900089431755926895807082925148330126097124419483435524245787058165056600233230648531764166399501182663528620580520416477487852080510007002426464655671381782161058154080697089631603632509883673241818816826568497299904577273182272896191926666606238770266589169954564458299152908718096278171886606509100002507287553342885349753078768788161990637372244483931838970568934388166630780738006338805529726566072181412007800160938788846247990488826160511016750995736120879887181808950904243207141038042300637095955737152289471080508031789507566885702585547994586911132985999581373126934751167325622024864335989975700264166974216228573956468431916792412695617133436927336416236866562402012120421764377666075855264033404384067561693956725074277957009316960612318449025759145564068496628864230502188776129589328712121349219213296932763547370726893834747311552547482026052137375070168885515139247612511355381253774596632044991254272925279966848210316373270771859998805964662348088914019217785239220279286062605892859460522366487780499393181569090405698369845205438770657355183954756854731548921322636712194840059657164947749974044402846383879551633574712859084414183966426668025903082373703610091980416526844334590023486551687019799391422586418166771002699441197915203417672376183134095025855455759947917908037601652311107354650224935700765732721422098396315562132987329051251405757733817650881677971309252607583795932211170463363871205688001587881977630175938157082821472257330464354450770022430715335582546052496372216716892047361003674724345212335528954745368108258734602690311882772331062098479045341585381073825347169409439496976439303530539598167764611952893518302235409474310615161559640098063992779523624582693219264019276798145404915351806005426158159481637393334796859452890106814520145560049313255279460163180471470772627365292558162884236336715860958612862492943089466726857119643096411521029950368441671573534962875706891888377336805812215416108893783535173916788319474183169069159738601433505598976694757692225702085593057493869137457364914702566045979047605901264678494728731285728623878704546851124269070244067732888940761448038457489612689332713161212152023918900564203346598747706882883701907714424256262473545670491900909534284382166806139737581700584503529276750443446213236041576693020496268821435254622126027833414307042082621135135714579189096387747009569832949419363305862569546646643773924674360838522919508023927437275737815353783036012305238363151659975622386975711292735883209859265516248446227733585914758774695315469051725959600936143150627965344261734444564846191622987816434847189617306740539847031015218845263220250561578523641250193467407047249307892498993026317502164941154235081240795869721917901278573355667406100089440053670873682023506654595279034371578799718757684457173082985111562860944959832451417197036883482631287217053406332848608828862115382402224868070067450121591990165246918253726883192963585197904871060696410562727025273064483099073618591437996386683624179228418836859147076348624650904204175533996282241463970182309127019597440776475971117525721088945962945413534570068980073899627910416593886109372638034774439470994957824314990837220484751504932279283892875621006960787883238644179726813391375571452498384949148083783117549159836134183349445524498827664611946974620108915007220098152140955362845973344619726712678407615135655363569546426128211720438805049055317295257946678780219225256651854582271500400931044163968543397999557028995778822670343434497881592755770558048583211380428326665718419810408755826079953615994616913264012552452827845521720628637519068086825885491297099418819953923853615344574999663982501691675043715815124249218718380221009793651646169805940352997976494618110793910392063706893291683695034391607913545771363328579922823185344849979204776856474660805476320963554705863293201631188954737610039565281829730400210933084824901915794519324293357932256002641100476904558500598125071571243455485183779103112963077251799914395549334145283877000355514128059591841707387337004836271673942625496165067406550286488784984261639365816175309183900682650982243038250189109806037196682283424488911814842344199834523174169213004596933903870277304081535210872115427900759249652313357895395767864938813487198376136576884478845681769549822507628233037417687424320191488869757323673192430421018406223561210862460015141688887673895072113033933279594608267540902856189838948313846359911679922635647438081519738482122017821475360470484955476113307174642766576844369970922467930633518243887136015028568978166968747579326089497011879508728311779291864290039929130412591116926284870581321825935085763167631818496404537152569763961985982364943822434211402969357911318949881140618710142382731941722932448374457338995108514434958236178185558177542977583440024225763519264094544231031890371852072010057923126860950061966406822697930137693983301062831091053966029730413657798470250182891831486143084119792480911259166449297685639629335590784536629940403731990743530936006933146117542913885702025612133331122746898923374328095286546927553890571479671904023789750186456513756800415068365799957256095519801498532806868791832301105316684634013751335681158195926555305552586006629307355656274949799962450757876552287790998842327358878929403301960085140253036388021027849758788431076168097914553227660031079019768444245021113812525537859590455383575412096313997503426094333005314515067962398728028156554891460948634456503607931588425560660105492107372631222704939722151698734945299231247043586920992322757963542796586555962230749644731566717189477276991557634757590363815136323356309622935488223162374647655510685542528491819686303208635887066907590319079132821529694679390732190420405438164964411693196318867138804854771118453536171611183581872212214238291508979372185736272809549896603271444398627158023290412188253731731649210293920502165478523355720474814995842351562392296529777179552500293982459340206790949413076902691408301741272137237009750200179025564861342460286337873053785743583556701835893626777013046648348822695076130426021243387307546533804643776716350859345647173371196907883483140193321432576386399193457453429073441234376896770431243091487595251635754513348027421234621405636192547525508299100683539880951275885788688164147818706030488172614931463674910038315655195138106857643806982260778470624557463261537389788834763402463696128953000122062982822797451976125866971408331262758680159972046016071703715318405038653288016719112585752029294138401147269232740714482252311616053269521133410795755194358546337253440959188497660550593280668621522547542699556998105391323558411376211851926080271935407685433895272059995088160367009885484146630526730161492340901629941175265120639460760177481328610123869496581139261122648130969435087056623948500363476087758103763308613903109664562448113684961061566405371227732956681412055255192002248228897360718294514816727311731690588501621107348395061808139675264317669933467613320575428419385308179945596401176954613108099659631905789549516429256758325376125566006482874659270519047100090617056352662411747792804989863895645885744381517474629192343326510288337632730347157054033604786869368035200319810602819899456792609557545841883094590318556510202075090359898175533030820885387830953022977069656413178250530329304980042314459610041751524447560499147396279500832974251698839668121830331818428206899751098015598591861931960877160054752731547762218366706761125110786657157088439566643035784435393037948739378991428610156380410628781232276847749112431077145977244165220569428489023624922104938861054456553427191885893837467689751041372655042380166615364538730789346883079797523542595780443835404965921645209654226812354027772646020797061685731103579090756051876632469965674387805073084752721820862774151764596835252539911387251422665118708358293590943966632800809110636608180314163196965982031534386231546654252605742487946288911230395379470927142875900315147035492403688410071092679265120053637237959959496231895547472815846528637423148057397438653513884004588065052774113974230747269296251189766613263317376956111183704025351531220440041452899636661559067258779121271846766624401069582708099715997027930412893716314825846474115905977091267424677710073807730626923335473904687780318264101875235766881834351638093764825191875769017002978681047821096140378011159488536134283107116179263990149858994168455462530804452357053781422114331401519411124561172297095393059817362393629153077730416547915688365660665764064437595864380213777344143527123331493647838185915304634668171926741050124337509343441290152395755074373490755487153725706659436824416208424148060629818621019765892455024701152174046942392350996184159021749019304305040455341450766426675325001935966577755668868401046977520965787443911159262947449076116466105410669269605781445000506951679591549148755693840019424686914471430604568070765818450546390938151785212521553432970907850669430309554544514358030749842515617327097956214479814263451036450019544595996271929872290319930386545503819276657889511569004739392173780658820381348277875754204579398611650781798311279277238993156322503883006364308214975331019224961680833694466152412548768170907061434602739039390954463144095128258673068462762480694945000219627198512336414930284619471446257960013577601945971864711612384351173019043419969245755829605296504285961249474318211317495393742965273824346926316958535128825072064000406453116768321718586472238843656014578171024547708065269730930817017868161309251908477043909188459635574963433419047569978763285504171213036315987429799908591854594484005894779534605562588905960054134210219298076148750477229006061117088554707607019856984887177217158411294332579848152305238412895424895951028283600195334098871517103458430455960891006729564091164176276197083595400840590820100189537819275611945523856692106245469140267631967367436838995192913015806104919530858021338068171401624591148048468727244477206147920186736336254433762063895065596298963792678871391095629730961804565561541481850978369800530705948739528492511731018678770810770178517569675144251901980219809129406310681186064820940896984549040552423639008760080543030538500038638990960168515457138169523440190876306628150954621612113479157694009654194862620072651936504744017782112139678421042829816604180511741860005740893165952918256715313374111725059183686944857628975330659772275191711487296690867221286947219755305729188812198347312766382560317019145151252233313561270353979210291539955612740933697880745436840523046540608419677813138185085065229315507006679229331497917470359451686337040922706491652214194015027738836958588744922385552147796803433352021054570760137855726438551834115362164628588271335272083522522212931125929878281345278839080155886865551097728211287805527251231541067334290140776899183830657941705198805655579048152156754188994669079162082579857828366743009308122410905748583588591700117224340817913888903892641441611369339928267621232000617912852908969325748764234248640927169552404751428264908757769128828252025653755480261436425060653763073593206869107449130503378253443599196181259225286198400181683726453598366560857457020872113316807932676189635180652702962901910752413290507962928769602616670633787010073390689864106287020723904863307140769586111923243470772605069369119557079500879775075535966961405791941604718650046717822100493955454249331150651171417820190661384135639798090354127717704841760424063152569991954828089593316431046710018897044752043871289303130979193766476380912468354893211806430970099982110188616091260059110719055223783837659956220723276861646094867543625029620715331194527327172797223969596728755457021139743296621777929251691922772802188744299383254856399722616473531501484559131452371712375300077860959477764183125795573726802433150346860119650381938308281847424567666638136570899997661829366628797906745242831011630296394694099047537316885582002547346811747870541995181467665973060913980127030135927772951233560388893529792208785507258551817105779784430774167037341530987869299289651364357705747838178856803121778768048138881495409593047477366248367638724345128336376573909497145219194040132597457296036469413747158278262173207083802321207675460055225189797636013895365633557718908017568981787127959361138185235660016707953243498594071075320978829659815203980438571068398621491466245637127567799010304188208530816634679997359914418858307024280908080512537476624138349524847019313251929778514750760286102086057633182214650367081909275589090783202275320023530033974859440703176833711591028357228534524449156410503512246245193547443685967545307722730247408453244497274336826600810294410530822491445427499667447926339362572470107418932286577348749140746686682379728126709636540070594997625297563128787914006637577802536252692576654801226638234650979554923292308405764002748588506570949764992439910223390772914781557181269847034239457599910150367123536374232229021730667348583443292403206655054978593282927604639973141182334143827993104281081718990935153552566594410198345403048220520799678289843787432741318185085206278167695141252886893566656053740860785454774654494661348479240920280507433778294158924735587561561142428744576385749897741509354132921255435351458972452622879154053526968148080613397164407863991897910126747047240740819050398363337030892350060529422274111177224245529704290233659833108081619956023012019451872725888299683331617004278307335069278054040120280290703543136706834793588809341560708284704442824925872975609804728562607519433606428883290899627621125291427209083659734558998574436623490007865417095301332280638480388357269368454532102068845063989528081051636884652960453490846167738372372441263910273135589827219181667481585309427264919291500775145582219257226997713189773052966957642942419394187067435092022846601450007443382891200418928184339520628933256019821325927117052314392309563784532279014572644164046560510456297230436238296216440884939201376534818830449230615731209259339214411656340226699019727893029507134510076642281695511346506707376215160897225352172125415577215120313166006214339864208598293430122030606325482683493056924895775134471295033094212663036763572718152723218345952923117671482399424504578487823399113276671309598850243240442551784492924264713409839963728688373854737454658724294296352668113275971880086233418827090548884745811521088339177350417357002062404555522929959214304822830703728534202717405882848477384579243984523327376218894385308017334803104499639074254933045546432866129002593532053834976122955637670467904712434027554418829124010066621653685680723298120133301794320980340350417408242563477483090725785434776467873666040500225886432891377839538334174097204638061124809368944826185504812157301590732031748602779252828415149760059361363392503711930155741762960112226797972269066303503101202237583427508993104003743758006880447738259930991782297083254971445762526551223747449165640791920442002653107603735755574345855098365951051796451949310394958035050612622990053549455798540826472095550779023545943036176626331092670342961044785815570240255880987409791168219490499198573421924548613706303345154884046137554375654266719591185194178427102120409906475829875357727749861702935819815667979756013562329369633856312350050074124873401452982541485549251085604054298805991800851539758405477849951869998664057003726748014386220771199365791859593973966574699632256711719090306881332482469809800500275267296071401238300697775854261647164650817743132337287076639281695616343259942071116838302790509801506094954293151235661354280608499546575798853054214823565766518660937508766060363934888470233062252227808178206883623774594316146957692011615081554626026804772536154810184622158440820113324639300301498390179582887270083903712166578628203983910028154115068459727362244151413462644030310761779836282923705136780515532088763208059999072672630889155073225417671519659374348954626755389926611449894884691216539879730755679100922138123396769010890811793447593951677474980849848858426439580090252792897092471473510102076666241294083460155751118795778896233370696942130248928092975934593605166618954827687595492083597832850561188143292511020888184944378453845074707313557685270174772589626085042381148240892911722259180244646589523647801872842023833611612458041921055801664064557524515185660572258478274603069591304521340373520700151679892605005024153411425645187567828976572913754370108464348141906522985034160587992566114966299122485076025817461446999801515488735880278043892301898930317377900216725818319398310951353573646859100000405992308502247220700440273861851004129561587383040942748825750905444310317286141484550139879323434263972658652544472691968337604036365237381801612690275240513218165071764642639434059994286598034030847924832059485647232156112336389654381018507909751438672758861651755606415229914295330482488607233020279785754182483349021915461276569686893258232328294788513080385817481932726095190073145908545461028851346874203797097012063499668846125661518904329054641715415260998484024774325365101001101368774298339641905272052407918029038660756493708448503043515764280281214746558338072653966149507979578373946175993479797532315892994979310785980397175938803522379175607947859294324835222009858484857463651527547436957374980277146370877925255164648966788939041387793723974911971023823458438559717858424029453535756288185780073559078081018958264875282149312233590536718385265938269447513575457763372136677125897113885430927169958499595110677286506196190408625614082987717818273499856655055267295720468505177785723666687020750619846758924843492011172398490873223692814716620331695583156784303054963805482830353346632979691517571778779743456547919482654537755625418876920507497800743033714168168705891905898448830189413050662922573184035678420314580151871569552565257640355561834572860381368115542700914242818331624249618999347972627433557617328479842410673755166345134041474356337440027061074856846970310208807017232739939415680660446987868448723717345095568629538923567741686975182162583181418469843090276059352805658572586304734016429739854066102617489606044787112192537470425320088953556874342219980157204655991474739868289845298412896846282143293291839861928220623674792685856278793105669412553092243798231684093701322714813703291098890569409252036654770220948956915840467639941087473084816657365731020269064893792312481009647584237568794120144478507801205873155809911680141072121814618269662584084537126102017352948901786717346322316998842691973098341637375483055779688165946185907644898240359515366840626378606837212825149855934869841647522050118726250560977129372417327440747109858629556108724351037968479892330318336626790820058833638524063644725312546074827199748022374431741885573122510852783519500935948511958361906643113463176572217837955951673444890516645060349726954538275537907370898418665224706107955145481255718650318881894921454076212730740101025628945545976033615457495740360008737817475496091471398653701370785907133298265225637796855141618660965604284681229984963950444713408476593023826019688818513166261407776895287855568754784381841087516491850795684292399096648781996503868293381800704945450468484441605832015473018579867719372504426411808414557582092712896979512656269832959078930472664689116991761459962419592678543205355697983010801336566084487366060495835187440562527905167072581403918777392040090923203751680197315018728953072785701739276036332676791673490850634886930496356521568791262054669291989064082531426726571950890057167918245878287863376599291238767475723237807622592839451521589424519200616413906070102488083717960795758294608079533094002224419044847412447406406588458636234462525792403722191151338382033955726925611994704867288407013771188254578261350478432590430928681474581499259727998549717792984507412856157483774337968425080358931515603406450435144519072420671555433639243336536311744125643634723247866514180731042065514571303995961280940250624134195077094251725029523184056590089610757016034967594707646349651752841777518959119880368354300472377022119424112345159567628232850581787897729868743665792206967207752855406341931522320895037579672340429961829011864868152359849215249321220519500231038960605265501227877450052111259464784418698753009538483491133580375744356429097025414638575034530073341708621923553931289283209220892902182569041698206671999349700338638621474449112939947063283386393684341444981982719653508678157728232965895986562314913753374022490021504830223074647181608215234707322343988540306434385681753921511622229299445450438655811334023153838284527978479249824540068139363197423523213406585002408837559289309162019492402260774033301529012349903695040567792181444046078588792910085687941383802532396765978912165413068350025204398459759581668197035996209404298861720565165023452585556440773903812805320413393335209577405221386958149016642219395657299790546475404472177001785614540844580779501955876232234088285235863052564053496029443541361575752973408641928219258386798268430717780356864939363430613875722761580577299507873128361890232489317287922573888992521531089275230876151046954852579311069085507324296733339867908851194840615740165107343340108988986596851396581785401711550368581824669990082472020758233126136170712854588373232156038948288852399555063372190071204239442879685897129302638254565760612088773343886298582810271682727703288002998494629532516947038260884827354814926392529875083212678449626206768468336774959277673084943849374427553201525853718283197808152019586976519686883597298583037499087188862407272914025806680977525131401697949889100680649166791693067920321717472380718858809655632942037454756429997469625577522039193742990840498658746510427671934200737876687100857879390920718593621748716726167595127483080957205565440595341013295730034160770472692410865173553023228374757222945841846254635293906169613817863637262058731278280136585832844778042099341314654051873680027474139831598889400383573295927156713202461846956386799714813926925807057400882255581232622786550337278525546270392091313696467647228044516514464949577978541627304122026614113370417805127717049443382264842813222629784964311152045370400860870388521861903879540513578005877670646576037038845810747256084123146111700209726756223249660345293812582415365748384485063164751863086461482887775921811313123783767452269064170600750764955635067691919859361946537593140635661654522140255443392781236137914543177513053253257310181524296197762248367204146698797495541130410898428110379162901981860065253979758301061987921563205739547242576257057050384534955530849572486953530798759659176159063714700952226268967002324241327618808265209998091936080193115701217638883156497643395513556180890237684775813029465771900792176159296706751958733865186158696740723192839334653592383691768955759777722110074666194384100746291263940821529132841626306165491239819988475516893549846842718025510981603685368063205658010093047647321399240264517948515463302551982132860321090213164162392726305300856955689165935556967924432458800019909207954556569685865629281263997458483863442207315599679438552747129948756303343721921397256150421648412348911687418099704435473692409612694333564647163052511263568154982316551352197052076602452568717188743989578635055075586921688536479178383828134146927497343009735719881724283146865881347785365777376036632956814900826387868791567083101586687578427998404446942636631219278238153666703479306842400894134099106401046308967665513904767504457492493436228512488615332112252395243838937909129780787097955301112268783665686844417166407719501656846813249618441223428943763720771528673292044887590429886416423156003993931333164874457124375382917339572277366394629605683279089365542130798323161506413964712226100904123178663536818756468193502720586493910494197085635787423231611238186865603267585186013802340266456586941544318547385455841036278118253016283307756984121648041882760821599228190191771401279935560036814132765896391353032669620270399866352415533118236814043373255957983622671331948610673620671845076824520088729785913805705312801662460682440401586038939787289376606209439960058579634652273254342935433372199228525119587547423041811078398037741866290855160015074735237331231481386149925959142691554064839470521280717248127035313463493057321890202205819361937209683721649163890386089723838939034080893685739661230304947670873601184126237926264143948281933809712917758203945095126373114402914637433114931945112792089761315132294704574927015726582278827304056271305491131494303466797380318726431236111862350183557326308571915450144651665299063336584660965950259429914736653965679129297233880424857105135465244878048166444554108941056067965537062355235934286795860457630395265458831794293352669380944995517857567418621637500005420846978796565257970184320709693631818178604578082829850556364081124829081991900681906496868682194735715436625131863359689250574893083765216977444378277370588392245699882228563470450467875749577450885873219000428407939712744210526542139696646830358953212971281901153254248489752311148393914087876726634359745121283187752240791100284455445629657214012117907420147784390705331614312213158680326099092933910201778428744953254732163685902012316242183017243746645753961773238895107203482062667759098366420864478309455488126782869259818241638758585144484499921588759114368859449379741999495817278792741993953552191973550792563145540410759685996682807496765373722311232303991352197805974427889902523817365159530989945306551914442195997474417406902748124622762333293333675806526731710831417098679338085713994213818378749715650724636286321100262575002152573478768263600925946148233135774012309674963048404784175164895159300253709775692010946092054997281136422628349682334495384641161837731660743403251713718564541839970240871998652519570968001359359213229792833090037080750501747183098065888300241886294974373995203395405387592808738364945478252708989118631466791375539216046567054864551642378367891944194119877577998252859751212558373135202398422178969831191334626031788627544760408929140737856166824567688215314278600075107387927913096493506976385657977821456281436530157358889358358401769721057467567202591512662156017169431555804868860413325215073986740200884455243157020035232651517917366270589113032583639988259660194867271600697707156503082095435311740574419062461413723649017154976914913245235497187653484638560979611787531066088319980050854575316281517652135592924977436347636790941785073408716550578489194677181261195899066970140343177053965698917575846509142182207825921948516445567848141991364387732429869621059025339306168555570161150607630953821107060181752933585132829817297647424354461204141222019245801977652813854912135967079693371454526948451077811855426260151610354385037470292078292418215514073380638720584023276797334979215398920124030304936840629154387927760500114966445497445521807612823061494743343653929597060093435147630048096919525790481261330010396700561676298448628749593652644647356306355207661379103431979223952524628584070679148903897695079801845821400037792580247545400829467104714197754105524758216520015406188371669134025870137925717510355430219252773949416822391012921346334580684285663629590624805134165989292496262469400692372106877409310331115130300663650629107700352257062901853744237904120940007233051418233450719542010351179210639448736930216051269367408171520898131438072494390601634009424877906431190138529551020561347967971384810368511367496093938793837884426546966572407909299712509228042363550338353066831541528089904890135770408377787477466248456139775710369611508340407800319987871457515224660259276319232429153442256721394847316958304201601852340570035068372031637154455966581319673119074073490746307796000047114180205669608315024124656491856359150588168044093446896780462960483317423240569239970546828309673023358515361506491113376071069669268612413153807946326598046773027626215116775405577193863366026466168053536129466385869579760190413573038634321055963950239793748225505802495671542989017300089117180112545772304807732207605145665127912115301546959759420285750899820856859588557610085586684593701217827426678668820961461641179877095145828452627223574830563839632879394878532552285297065188920353425257726213873942749225900001520174115288682859652216046873164921789465004117709391927668290798737411389981861451428619640981578754163029125074728401540929970767214258977020534056958882416417062788625155779510751266054757029543126966091564849394740170645318263859049345140762740633487422311049108346774189039429024562013671597436436933276120225141699464002675604929545846801588635627876756018620334484658459018880382166594854321460524088461292585329063901230030588599420867983226453140265727836300914999858878869216738843353825011719247206030999611455697664929135904331191226116679405584084657201922359333495825548573947041889688424367140273634412517106301846058178516363974918476112721868263866708002304474842136059436974754859292049737788671961283536674610937974423776138595483106991256166806477839253068597568703855412242044500690088254919524179056626485437454290370985760026432475511120373164054148236191466417683098751291635987000438291335069148454152252137698928803380600706062630269610690373409017672864974024263005147901899044640948978779136948495522365030354192904081054519323644564972913697173557029293278890082316289594548708735750619565498857632441235202725510485492873901852612906867671398995392447110430376417393590056320568934929304416731842382032238922440244600088611407099748930643257389125422386340569533239692644721195293899826610193475612438678436744154262340923994650691841726938996573609270396097436031899443568079828709888524715101003621501274956059287511089355422375273959147209929657909183163257613840834362813822776066821431934054336998424483123863160742395928260804236104591657771489702552517003332717734980814775966672786805476971922150729345328649942484182214508219423029186917816358526036009092137050654163466890187684672963892304038358410105445903031589112593565031878176544295628475245895925571693102813381670601005005489444154190878635906227424038671424192533796705103953832501343720797076107831458201875503608542440463272529793956601044565651936817022377288916482199742824930400456241530728754502056600307563924287017556200875118668525732221886086575661205588446510900595270190101532671455679365354489525548769602781161447469141525250523940881502216413819126782201737919664934820201535936370411791438008442643525370939815108400818632907014715202694935085208836441522303883724965580799054142943937597719078309717493774629755987394932029645594766457947735784490264200480535560904073324988601090429629579091317284083468035874934769872846633498088309888240303955925432330973321490422209963108946917167082233946032574146444380572828636859395750873908360076432426304892990227018508844235535382703933782475690235819864710765585158579503342980833869482439295361462050734251196601609862162184477472469053960923520039834589767152739630637594335113523986062540492393613563005829354220125798351204997994505672761439548111144088197462248558136859979592491645796591410947450890982041800074131337929488785480576354381758504702822866760595517136748968021090775334598370301322918065858280799739119223956492096515625603524918722440276044882617898673085730519790377492786417438466446044179282965646376969871694068037969588020442096535307625289089823784911315666653270452735027788777960734453313180112156868705751104724568561660440854809152896103544296424032263996154384794916422067084262896271417143575347520263290168727230460601730478368423786915226473975084006553679326075905773933471316026466520563503102569227355589343337267389030339520893140802332110851965868143992132386043798094938011159656828668836107616722646176508654034435325350894950095473773869227267724523604551909639869266780220284645734960613199796187823964697691144944093930244145632295972627423272140612040443415114579218674691492673977989320169467063449244268386562552189432770447058488128967997625053159727534033963806501585216397458200940778866109971040889495024054805349790309361650202978961188094523415659538722546054514692511833874845712925489446736070323213719760910809685116308669736815552687965786103958827975776792810093726024842511016593220065847373388250137015948713040901398181528987414198908554624703700949158137603951140921300662372274749985969237949981597291287841289387705359793078830259405882049171485182855891398450688697853746150787983909662932691993601794260338274178924562560251788657034177157396117941232095077820545456570729303730498388779103658652222294389554766289432853492006549540408652842153762616840481335588864683884072088747664978560078069412855831371746617985432408729222738730034749717392604779384631593688737848704398310838422987212405666063660301177716795526331137515114743799249752381706026825543869364457089101992755538706989543966095959824155191284390353884055174996707891828074607740809302535822138501436643887043846931935103759890946666632756740284855651823614443140412427852317896154686054923691980140684335732346371709797057017317143600743810502155429550097286634659590176045206109075448844588085924576813760951534466901127568622898373730096929142558749759281698066805344091625092190175535210195336343469361548492650010590369672580009873863813352184503559269037681853365118397177024602511129351189749935486974037050684239865291250658183809039398235475075431295601501486708671963409865325635710374269277019323751203209657191579890332761537733949453501484432173170200242449807190479686977349221575343712320681970759479820893143915409269006933879819486943486271197455333507713177694859701187743473350566274592198174133351480762586621450091854805536752708958828227268511031766135415440095207907356130334753328323102056579804137731119349997060312423567638670954710168886821341809222010036286119692395948538222529883806316196700714031111484166922951623126446092676121901256409591153333371643282137143770679680749027514940348374622637376149010985572800057441248615197563141372777659541538786621396665678892128805078839678966872185810369407558627117819041028303276012570361050689672715885915791302857528885445866473075435966463736997544253391996710668165529104233061396625001032414390950635564507778244982246674498338516564529541729275196742593269825147241380619165612466392153542468201659901657723091497205780853548361066994471261975959026565535669568485172436596964407354600839027161863568846161933488591741634973251929723798438095460819496428121759890586848877116166542369757644009712914905612763071661691320011419936984624361904926333622649743101365969844058038769899802180438506588169637064787269560079353104102542768837163335673223657453822793062596429008701598907935452631455023933610522819682606181524935037348876332743538123393793980207762190484038975489873225055459387644344426947072233205419630118854776647679638387399638770866553584350940370811960785475734811629314044691789148619940172575579698127384754839459271943149839944779221756358239054808887769611200436074551407240635262130317251155312501417970110393469646068622266306807608149565978070330841760588083842423157497057412360750025888359710588075050692699703199015723832393708031761465066149471583620926602640027633064586990953282794879652676446147738035460076089657602479052413732972671273376206972994272051021510153452422315504962546777321906193465910677933226851625896961389319988300368757276810475917793234893368410801865057771470001214715410022316419840398051936641223606633879810769470751566161448331617617429186632972977142439631765355428438602588218679975095752185781671904553849495001409543522728649590733858416353775809432415066884934382221138877379930555507413999532348577319138890160581325334721491199647029258593833366485086803397784948796163459834301470929835454453763128065091152592319151204074835443740349446857590936776530943970910989738901148121778202496449908309441540651640659059413152516280432862063280590872860486345951187738193599811255275181508002639917483602567921321523839215649190629843408574694083317823197385603380261592530509562219304636298033510071709077501697570002979538649987176934430605316479866244038827203517731626779813354609130484988462969299156498111642896436966710342527627838158305551706697151741024818810181533890273032705320560801954381713102589747916250929787252186277131599555460339023874398948243094859073172261865811825850778174084960693709775886880098571513666759775249858047713140656091568298835679134653992792192604801356492434180502359404702701182038184140446439247834797902816810469031556352207933517948474877109006036819787168063674618650347778942241438598223233111830130512521561118309551514034459429246218822846313655397183852481374324780416114715910942714289872620308880629799948115144041930247184461409331823805052483972866110942564984018001334915542890812103449259395130079946087010105635024002289905342199111945148874570164720632577114089431072298418031400096187200410426752170391490028105191290707754519915976873003370488151397083501275957309374028457083224181140370057613406256835811112313550573985122241453443956484963579643742890543920807029555682197266514264650416765821116165988218669821658907489742316099025258482657983368775721523121220282624548797640149177245501474140604081944023079770922726325201914837092359429808655888146788354651871608142811738731690913328586824531143784069489777150830560776275366445047030088703413829802875805224867887683967922963685026638658397083296442694977013194554400418070019721861527441448024350392768281775073764271643598420668097404337451485504119431671155103726382782768334099534179637034072627704834462312871743060938136958934694179738757271482684357624672480384676252238808739666353851048317970914328488796819901088583013795404445870037751204578191050295997891228610245902285768482745780616485463638253620720619828425189682474718851243649750732350679159983347670572577677358174677758582497910072769555059117522936403409342548657447344673707633289143900211776615963644299726739453976143225613129351728067219792158148782180165004347779198289371633328580837081846585404527482528704916793206429012006084320792686805072050647773985978144543495832248674830922063334598987460957338427339975041220019799660835861074712292506064501573163710635265301477482246067616944966279050136588705946951674430072353245524374439616043590896598571802261076906597952586327319871964505939404741385254494022636794782140180333656630474889494181063562084461828664496511902572646377368275213013793856449990165970766893393419523475690784198814552230124401137553535223914709902328521989121393313380345128082078789797419931522569179179805704564153218828276164545475280415839376207949717865896469329183911304247681469452278211974425145457952574994519911715437864947901890326343767301929680909054182778945600956400242529108914281109740170307259402047998114290215886701845435611773597098877549843254053898470594563573377962196852947274724723669524381542076754563836789939508319484808275370719632415956831837532607740427683261563795046640649093987503559959694907345484449753475563037618738982837680051154660070182942999778527301326132311905113488392641771163496225840588333523358863851661713760951835738933067584936693276869986938921330880789656031978840567119416068093388168405374376112071773682057018708117859729367258982712326733472808664316755095913672978675161787196351137636857091077304041436089910255270568669926787745146615221294548765280575295117311981434190816692753919477307251446051537706261942947522739316568082325892192388350453098600471153022690836052343801651876322149847476890267755908841620189517978024126548101232744111803020044361728067370897323157125118243865955135021240775787254230172501081829093797952865377337563503399306854733571953139090362301131123687362535705344754003055954947728785715758332856618440994725839978434097244697360707427254677805954787856152110167663237548586467716916831208211151114971921686660498741866701545917003195736294087765408479542167063299056753010751864469878101186860169683474396210890145414288281353535507584039630269512900488873996748708009294645227525756747978526059875474159183757413366310357205499354814499874270659655496104036560087975017932208267187824954720764802313932826366865263892082047815959303810353849449013756158476854342342436761691399332117433781982051737786247535244285104588119698795858861384956923045228769675285283411596891716423141789559853909548382167475062772428241693447754096229905170434341280330158043055091542757772231221151682797951188546763429247771232704791103384280644524564660906080469970596511877285990610449403688077711068950306865102971961203126758586882749768156978668256391475048499071837756213302810173133561117457627813398784868437319428450042506368249524894595842213886908140458425010265841187921069033150074751714578685625395221044334213705467343497716734057324983834555692878400190351538898328492767728584327206098251453394186562045585190781531342166974522433020592500896229840723175983259081464956697843321932126962535503657796464726278219679351886112310596863243959290049082209307945925548289773855066439372996181233197192366008309260220890541713140730722817228563482513858273640962011450700793678292753730298833925039115284246310060038811623572177753174389001299390275340446088575994683289260125861771439806654099924966443016791531956775916396921726761227339164724968473980514429600012325057991351588578110410575878206951435199470843004288175021730426781399063067270886065668134508210274058062384342447282515511977714192273480524357551570304329243404977957803857301227574167516923209007748185541625539098379791243419204548714297474505358215367088158143042411391998430680513852240795014036000003843668141893821864090048677539424076795201801886566151583259372451331633569560260162214256514867491016457673595282141849806879598650751976927153860440838242435538819868922618367499339615754118036740503113433711465559354017517349942356233535078637009096478507043273107511064148468447730095474554998446784811190896590454537654960593270784346955754454595854001891943853836695466298511219406429934094819796852163848959542564421909367079020015084392261068921270971047203810658545633933233017293199263001444259637173517908840722538035797397373639562588395513338266778673726694889104835821409847854214424887163706215637016800163899411459362108203921091813597535034573158294937581175643613561790028070264032861525366518974780671780954457667276930324668672916116439590413246532919770332595429762126010120388219336493835512554770761514679254353823881763603711357663951195243750982595212786799232077224058769571674508030181493190292387134434733587722925559816342069136538266782799840340005168833971140526225541014517292367315157266339728107290409308076050333725716430797429707454845535540126187273816904501667063161160876684483278146742572280245047678868037400967740995914449293409694043510782768879658043110035611801260216317013298198819845371432157406098334854864962734710844860296464379526871495950785767508684764789617274832382088718832881253623417811264497052697857999624773717557981145672860686575785547093469111052870937681554222411349232954142480649997559437200279646849512808844823513376484956200012010614061080127495168014871378540369596356559797009961449074854408447222559157966851779646941536246163096996612916971757321663415714632972563324047379430406142536973877146622563737293539051187745764548520839417884621303477182205104876789976805517255941630508458937924049098978791256892063265916985534722764463768238767703095676893244653421597394934348351720923858999388640603192970348289935390683483723380974590450092131131856112588108223667579104402530054758778799126866481889944379042768244727348823111758621226016349759014246528172261438465104129878174818603438937323114444709126315140218165816439248808932945158685117803365111892682343963831042769265604232189055605685334062484280662476402230693684956268514978362052014436058788018157260800799078079025848557909183014314828892350108648043848121767651381077202991479151630114555680218508632948657023531328484941223601195897138088772875032507348624805473827498045863365597061696524010415639780304591013280568261725626220896521731076260246101037033419516363390250794993353397982729578477165471663823415649782536049874791205289663647506580475877091790563121973349160452187819466712190577845121703199938624995369696194778742503498646080252473614001563854003635226828358154356928747064226836425181469822434202991834162966907477967650588471183659975028019598925669461417772787826902347962494052432661717069438634991820439820011601544637514372895510492205670150539281108984609396290876955998000328208279915198785599018662723613584321692930346258420002439909902774389055645966078388284987198127962805380538504965763560959361503722630493956462165655014816325115926409713755529698858483253637630484399494645327101623598403218944864697254538879320563866991215263636480995519432053591344127816408589894978919541386488891240577164353937035584579065731401139496302429873598563946859215450248562374704154643792507342449552983357385084900027057922943053618622099458142450991657255123669973787937954527191521814862622812317997621311455964640458417034530577382482882160261732823608126269628390847008287281730185050460591203739142568180482453374802118482544869763449613129561569256418276324442652890335078004409992532277440978060262213021195766205730171526757930659447182588658704259293684728089193014831563077873196803354447917854491155303558002775386794257705123237048311584572630628894876183695842332928125527013771857876424445788502180539696700396007743014937696771029170676756089294216837313273728387090388953717158646581920197185688007439333185534235311435102959405859821677759915051936451249756015748251713710236261211521554487105484279537756552327553109027548808948984280227306495404059027194099575227939498183253624238192691324307122580584524268667758858217030529938342105778936391262216986595880580767819162001661638280213583032294808341693509507436466634250222376724201960014596546842899138934078678361535453818322364072475840915714606562705268911950512713119064173191929461623683030602126669562742502686083857702587151585559891319971491231085448858852181031449940280149052050752059911058355868266523539839998982637525281474364679451968753693083249346400529908429673290385421778671238200872344838449108847632471830317120507220373641690669473700368110280629308042105378448229126440191778724301027565477832832250214188256845756369028454499629988748578450198678621947693597965631104962444506119512728850269528215331943416618011779236842391265175569759788404644679635083182082815334624495492790568149578338606009246546444487322760744097041490300094004809313886756507012909442385482956537339372092312437100271668770886800213376314407512893864387576052686342056541474476282297343717046888897930620487607887723171184353214628148935018229012766691588230156516613506360095367975827546823911252493199511243719572802988614831196512851251384645962319117441016571665567951038847662070147110853208720473761628530233793519083181082741762235761358613654546006623803992340724554347978600604831189517934854727344669087789680246556548564963106513821026841126804822286429445582979267268076105270195003801134130195582050641449479408906602926536702968630398034246081499291610044337892844314226546163435377721618581685917909507993804595406568464409597009051597211195282648339398770435453560435519850187299954624917918123946826325359531481043721619626235344213604129831678830503817113495232254212980734650808047068285449314358344611707735572427669823252166952010878668798776634822694546672214536463329006574089908436475753518054465211943275406569903063166748096555520975097170679163827909223857132423330929201503836625384149688818647376212754124956995865468214376383279466622780919326278432048224307807350844117874214911376977623962190823683626076001717906944108975391191180282686246546541404532106524728065692384469304319590313385411843565675154306032403247499595808940338695415887320716043620846704837574152820844763187631670623933816129323509208828535368552580380628107925270324651108081566074251589831731187277536785327208374227603860580821687706496545724269089318434919096519687656727612265262105214566452385402050464933440842158977140341720656537459546571482126868971869990718376943230586992281155826741525277997088404467642331610565745950748532232161957484367091452091891059851245473065870588365198773885398180718705219436262817143322610042175899036017414529137539673751312244431139819767952349892518633873995550932869807996646186835802801979471660715474296754908522582936268236480736370923519038640040635268044746427371507530867695281490464160267355869496491807055339765300305125999646395786916061707637101450431556174808236436141449201091169369993625708847205044595432836719211834247241096518510332808486025245895429305897603152743782758060900028318219714773610314604198266364351966044541064842371483829861160276168820361089964608761567075549571212079100326560572977915986939048814964019840632464174935745654340284859247877744925620248389789648581339710907335964112767074764264801026461737260991096030348883369960788068874316567460218669443831027857309245932307721908805474972831875675859361193227336685611727314162233147239499082403715777106530486325166046381928325969084575733107004255817014925810894751029333219828608050480598073233685662987927706767532062605242631812591169635656533247954816435798775549651793176419505708150686660788438548218764244107914994621555643668376951899407580494790862735939240765824388872664995441012257645733164408365264498930919033771202528246179959333950928732048360058258643433506793898456003412075428189133599946923540361615346961949861688343475500262333161864753122353368503123835105669569074663038435929910439718750775423914984986587661606904300485201575723296271252538046900120878045118909804249941046807329364529029516428827446364669644680914348109244637292409712744696388573242496979827011772601515587204359866475627324238063405758504853993578635861951446494686868621942262533716309206533840596946873411546324574535641407179926565696136771852370456248791492824734279266925544698133788718862302071423848382349461486468381617581776734414707952637504942074145724506658008616155400304241225845340943129963003688352227059183459448160787097916834398880716234461663531730079897432809108235034287775050811870149292609655336183794940121932083379721227238612501946515301718864951057203665161107821054220086127070659877717325923223562668901042848320891667051581055673677016503468813255456495790477765721592502213087260845954429158708186373004596845148791963234770426985591092121442991250334089513005932649508294936948471508232847682251279249050466974974278185377764149476782352607926164207362594640033613607753817735918289310243651038014358117664536682382874815538421300681632842648171782114062925432182976225898712180331302299050172422957263059861547994190949642712676252096805491221396868862187776990451523916317578167461230450582898583349824045548218473449002438685746261292350878438575834235115313501808532096180724463240672353838392301588581402284024695275830767975691729814268233924881196852654491443739129789745861164478586631947685786902969710387299176362804412686164741666538389124864189086564426694994841112675143496294486358213965021185587703136913359635878864375404277680016548313137012402746727504287463620602397336760938660261081583204991093238780955524829224980439191389437951106593359797822908332663321228744547498503140089357002862607370985766906401153064933397491443577349057562363903646462651983377233969746459168030841543537534034411210030036978462787198972305067108455473627134213731888988035641289112044859444500546543519708017081423379568679088979946290335266681273513018544312929062367421467591199365514754471806764771148441267416460128430227785585178210463228661890610916264792923249041249636771567102501276022494958129298263872054056514172043303484062267780987798217631908983231498932935171423648416307438972237372155066695955724905049603482283914726548605844177968553268418778940002714379308257048832753285370643041169836337167778686464917298772187601881285816981054675164310789465252977859886534680846312666624657098235002082471890080745917546685428824114597133408112036734131034906843428022746030334331337587834258054644560837193722957665294955427177705923186684914739759664031010576065294464410004646992726988018711218830439810606171756736844352422587077106274606544267805488611242386175186034361280393735786802893814236168560680904843100337948629989632539095279285323831348311996271255300450032017886108891190955528849463832708314082614993358490686241154820155153242846060797851326009399941342406434285171692730301046320570094547727170193450262035749252617212672878958039311906967199881006204487989694257551572422202168692143684099510132196133235124736417973620562285696726101176093029987380374771725546028508355717697487391501979334198861015163792896037833626713640175108266844076929850161362910174429218557831837114496352011001569289952659538434792639372525807368458896646028987189999469615970207739686939164811068094358244699399952386309570071680010236504519439889743685419741302387187790211150728164275175858413700049738736283956231552263032485920638161120389001454266420616455443444605249366629794907322762709195157805213352281040729385184753128636904618918162011632553869333681135276410534732143668993154222656104740708251240140869952568521400685975081653395790491397053750742727468621422411471061351851448432806048273807933101893948266938304276266150162355967464965159457412137917279594863543170443116269926006804635556651596325772830488041356996115757484023384011150400291559099268143486227058852095998398467830283778755192601455947667695200179238217563007508454217552520028957063427523278989745235533650664380247834430849373728763126628414914378370798500787646869498009485491433531862335371211507507967195918135455923930510736916480269389065312096120241235606881816041099042709574139633059622404247570871388734433221001960594002315461034583224125167001933213319627346204701484543612963350842636863653034165719784130840741996570104489265726786000125811278107639429892411140899517656078538505625516939964705098340934631301599065695134027348700431465197188564033410385611803143691510857140644941747222849124688502278669675924445344799139441079740031053133008543957664523153643856719115407455264806811220347167682200213088920099235769188155811624873321406186807745138197805643485261235194100161148144766715404331021128198883479910568925199996708538958231720942859593358339700609922607979521330376157153225925908106518627634773753932228802407831979078147800436530517087429760641455724477596417665132470674566609877043753712027567836301686813736273626406199402953419918877949316637080387121793616737202320408861757578143886941782597275592920960309465099992705716032496707881599285974708213191792056352429137604349302568341548967124650048988379255179638066436530847425760914802269330216171729492346826541301604783805039564155457998638465825521975681751293199368507710367840392133442930921634037135539447705783498456626624834690108441048203570988947404464441150688872747409894508320863763451434293182968811336566560969607821145004197934285393108408374369084861190354129830761167879834566159027033178959679380634678777564976923842388449987879122592910473651824371581655523761024718366172674339286764327353371113122793534022418874019731870881095395445192297506198973473958380974977372081264629249710095221990062629993379446065404859449424321963857227597797466872684122443440328996102886062491171270615106177432186336307166366914987655767890284952288175040381444593562746908302826798105087304893157439492170242286528111762303546769962299033792077595022973828244254375257045306513648658512538568701979561115557206238151786177090994816342452797129913317366387850547982044949688948156561192080309407657373399324544038440256769602317657843425883660914521256681243446388310264217009331237200313295557055266085109153168849291221652924657081005649354155610812604035248167601412298456378721090083721421586412229651163295250519656754235302728469308955965238217740480900564606971255391647807971379313792335242267280521692809791540899525161009070345096972956779263797462758099924205138880905179825928508742386989899301839882486440683229033487536836645527776539702301974269855480133006832450671191456898987818379929272684893804555178322912766742714327569314177174904147087252867155620479142918838214160785798376848181302905062743527579784734708875749072439754475272124242388034298854055631341753335201737155149070160272645060011339769665387713770633985220081805036430449986160320963966122565251211313781437134360206787015478531342933988135621515892724922820616697868943406576040161116036722400844705366216662009927459379886491470196888722146313887436149660334074190947103615664464377520603727982725480059803425011209726936531221176124360547472594423591449743785523252723841334497389374236603185392131234773480053520530339293918585765916648407748959246200956597478214412244447979470406085323783006869386083657245188152981008440432390498764130415936946740217606883044720247278125430010817183289260127677398285487218162359674063315130027826169149685121057382641750297318193689543648400380253371752694426681968508126038196950683615325790743967879182598645280385526213744566543537580048026015715452319228235290566637674626192759667683030445241076619659783313979385100092058342635555437568383365995555253794929746137356578687500544417049355926276565001583981867107089198410973403047109721171998355359213721187193541533233366651480126274083209887750400026534218497553454829600243396963680076272733542782636660056907016251165247836783775015704632856521821336761735613160787055241535045841991652209538746473310241353084343324467168251023004772200320763077705765287790159411957210709005341478907676276195343945490530652160775736264819408845981529347192235360464637012865622027043583804674647691442653866519570307001917029373519955157050919975139053109694918264304936046781680811186577313318229829243452117342624737743591460152439404420619897996012667507127494579351429741080846293594803780011185245686566897574561842986988436659334097349519889694892259503996215136466788028350838837664955879888652365896601627224205867132772080407458624233967181321712090835076138845364386359586576411346906256369643100860642496203265151884023551311610866246457646752013788426695889780417356313020047886526554323244313772227389269065708480081140295041354149095415465760739860441842633981751349345930613474780498281993785169433710622299862959642968572714181110683450284502302651046989607466911546720974593940477265669173383018364278037513281385032760107943150837482199400304669264349915353301098699272465684561973698756303893325598836654968300592710696085725609658313919002245741383558882991273914162096735437652555738529894982041935682592184029013660399554634837109498232556563893705142363556678620066002623359382236127098493637857790953923203952443560548386184743799622739731861018913603996511809978463360909803089612201542814337494606670294458958634590286651854650128963225612860646798349542709503455507194915532530418609535894187890031471151616914862493078195094455420014153514471878680083309207535977338281511320823781078079473241656462545468367372598318506476947391115117576378951767796917975418255238622827825528839279662870675042874411286575836187414857102349831637646147569806994910249016857928253294078573589222245533899253177978709536728349853681194530450032457686152109728023270060380121276653611197419670627651151952756989845181103251284518774597169602512073573029116241272301050628946060002808500386437122913260303201708951819714845715305372766313936676607291521341396995930286356843186751292771445975833878290855646593341282631820074005004700218124808404447724271245862963752725983127440775686897151855230122014847080511445734342111263130915056828600253303600737003093407610626780729374888424146968827051524244897513304869227523121252653615639050690035538405377061665638666894711981872851944206483495671339972778957115273890433314906189379332691421571290968949580791694146743978737062344167291308243791302547590660486869207912174974106951609776608775756967125573006012772011267388975558854435908627686094726013284564789870447824573641547114665634372531923417376332052254702431209164988847199717120967306479814890861514849782525924716377120042551835486031247968231268449037850290988858768466496442135161090981063674227861517501509974346294370444542348229518087875052145165858787319213207413673587808597826065115060755999677035159061302152006598586029245219897293774745066297837428919966810434480741672380405425071798048477339319028080081246168440267652763840500963598346490651203950474084649930439844161327447855134283382378354774061766864328824045907021636481951078630431506670071566669677078898610669471017996383325842405027236988644931326050229109816532220089483929803675578401853359276090469787767967662194346046274703543105179029273777824647796393293250121360573113999739377636085109759903141290637793470735267137127148037410465578735368413145715191727338933247622993808047394261707135012047504872881114280680071219092987487353480980372606677887308339816314492574991119667905338086628219103541123584320476106636535495271683381863767779440703215752177986114081898611121852520504399394901936381400074588336959143821940108575444592358330790125505583183955411903310775882954785843920509821396365834986316027635496684939897089393689245452992395588959256506449922715305500933482009168836232336112617130214776143179873412526034883036189059738170492714398516523663418590144763015239751732273246104829650797984419274203126956190695408704997190682449477414047875532654986841569597311000919978080095864353312486256234490148842670029669609835806998619018745007872483683370326341648203516995365030861858914491514378314542278791824835002944994666138145370603591086537426846940233052167150021920434705814074367412861984137267657880234641674640145188567338255281200539296094989091165538959312678746678574619859445683470889968899410383518655459984930315120280825457204019866686252302755063786571676208685985813550392956262333056674887788097282968324909460658812194969519366981043054416502162580846224335482649407634858050317763009598658841035399686888701850846314939214835087507536023086272231974383869645497134904202982843971005120475802998126967788747932017196712604650030689869433223404464917754944322356068595213075866627587311366370088410068172155137111551601543826816208765429056055847470975662987106993280919669116621681674827447504187174081815468439383377221099663059468315232477165817397038810361655235407387586431978278956755299165261075588277338880331132698241589276679122238080610773706408439260817011100645509352358180270580644009315082696372097168517582607979985514421677122630753204667883444384887164249591777358450453411123137401266675035972176503529378518078554651511878991351235208279532729941444490029243690251132483561680655943590731112523214027874253641582346147005022479931333258643217316542420805697776970910430915399430487807854333327440768943221265027653561233358891661495973568469935767834808192735545875401475164818662172400341961852336045320375701846168478594518789970559155042257579359953279171736349807554716442349288005041379250790998553560628409578476333153505298525273834457336444256208210517507025479963801545841736469545054174285077228390482507659031635203266399684831608906334094036395207353659922440808376688985497829085919732875076199798242300092370910820632656797811217280452772038582012772780949040567729199292756474016168157100554324203490971931302162090427171632771339797179126976079208589062381826007657013189320371482188888880720461655732138971241276375824581940724725825000948692100131019063372559999983912862025546104777248721583358823392180766919488028005973819299713464651118090236963490687563799826463352322623769302735151117282799711242145624407814348688207655284070876176467226730469772423316039553239484026964925302006545725022328918417884462907001831995211470278627039248842935623730809948335950324575001965082338429207055953395557368357184992967705493815054123172471731796660246578892038584263325523888942745179967669595306749195053065189230270087159555691476333316467734601953125863457120419723029957116620051295325585948455287845418646200241341493280319077632330381145939419568860905618092061525726493431247403017125932034444800842694093003788864619521606310529196509555407621948977303344776754621091343088557643666744188816172340130225076437426171741008131326006210757008539171457573671017619977929275602141630266198890436119379976114664543704941596451122258273334756401917184355126971750894799254219803991845814618625561540150942251983291627040014495622398303359555851840042515673474947933495297021484144733083702452019475294342805149927693675087960137000799780686063902884762932556569082975992025699098211667090106763396673909676938280882464305925166647737735827171704231076872124882520565667845013639289980657003710674236500170907549911783585652070052698027426148608081470745127938179382025029372617085510290277141104715576411626327526147797523503921701538771216831917145387268332029725075692014352357492875015310222072637175445843173141030375061578595374546606452897725191652085646193307059121608662890764247088472791733821358328867174360064680313589284977624559762356442236142268723245207749575221395253371572129323368268645019842358242368597015318817366552187373051017908680705256749488263420994284684723895757271734025455121089487321608830590426487738586951191291160090107653585138617522880737049397067667736781335734810558598548366854448429907714149433197216609207087619867811216944825998955798655660913822305439379763587493565657774177107572564125754998772316402489877993389140531510878681993133806230212707520600817104902435542406078941879193795077595754028939869301349530127789160823662417709362738037476436379615483093050492500082730843689688261519418623712985100763065117631835524456168528514355833640623538098172041023167648508940069270878856627691531552856802056761953415960744376897211942612987882130207458374237650579566426201361216946259830951680846224384447153425122688182453262608438476114447779627305701387052309671581338936554583141344880202481576341549018276144755678865807695368479760473533407916903297239829875171140441256906473889384082498061273346164695195314803276500355200437230796000255987324299168678146427304460449412859724778731846877413116751270205522456695298996349812418589180914730540003595636545169642717657070175570244433596031668044215749697362368522507394146635042386783380050997456678967699934821284328396788067880915207055137308113299411149905915577785619945893725764884439302208232772483131851023720449388543589339924282165778574823112671462478594576077645575708912658114304729365770407467801872914431671927792085976980022946299109473966402459615165015109388193875710296807748520313905669619317057214151900798856936802933145262192434721044397656601316818149310036647800261524627385876516358099333214258929187620744626401500316327366714203544128305993650590106616028494792350249227991060348384101832108361314057506617025415452542693959571413599250374729342533502060905848055947771313180443247518236609163320333429040781962691176235796858817662597212533134023845556032842013524034465034838086450215762600244421939788321532907686025616653385842730733112252225357634668429457855516063404166644357965691519019366639176891435661580935799418282374488908904865753372764195327319910803403409895696044101183357071382255236813898078789629548215857172838395936892442699375882346104874914082869824090762956837270057968604869883029596223334697017101596606291736639760168077457423993641831158375826311517053502514639844215442039384816718484750427538423490082149670791711465633387959871952644642380885732902950965403465117497959764325169282868071916494498918147289992850666842243700167456763816042228760733339227766144271879880183942851795823080974794533924827891045478409902821235333240133524337350108968122572473333153763323230881356813182438090360111680032561649325351708897568283127163172324586943403906720485916472158239103541275880334269166874446228577488251626260286962222206589654887173972657830886895952333807401711394995085901518421940620699942646121425398220119989594143979142866998932310946956433942614299040546149160294862109994430138048621653613023854505596833170398757988341744768187527245502587161738008514803817792097462325593965592765335302994650272975747220306538622441360953055577973533547878445982404356078753178611075156895979116321525633419462080612700851427037152583564510177887808274615000981755619706299787503829647166368539773977279029420499361708532932461057164089574401421611703910843682137168386848906309499152877525701119324206556091542397259131351038437134942076437091349496576001081674951515036191161590930545683958182569345313016865463345492113021506932552597425340769384273227672545589119466648355142478022293973752506366513173883703706672889330043249397029306205462481274827602346018223071519896474551932598501819318441451819133576497987087860178569241215868109458970232273073743970166458846830554522404181230590468840340772845401151700315893827399623115436922620774790234609783399771993728269404920885933718433014033602079920002917675881556752806330463417049315512321095123823004274506967661295866975216738428417998306352949998624173082067870254316019221834845089511456634614295690980740656995253466773829518213923187489611848756962844121341085825345820959713329835666808776000150949522589310572838919113235890629087240166180459548004409236240272379951723035735941451847522440002599978628680316558845842159895043062583436277883848448581503507905929412978253783606890859914733016702808395757561702211813503042448327197748202846062424750218507313940684196587405881532297305204433159050935506549229599277864775733937988621612291658576125338606226372667165627232408149628322173023147341210052629760944249609932216851961030143843133007310702652056053387197605464937796988712595228773443485657740812713516327528681212116032646894059311713089971006582852578441301405794317874894216097631308648039685327406732129193943202192979574983898624359164950084783310661787255818694993138521432969954603437631891201181651401394532006834705810773710358592823506804452359504890322983232866243786688262126500951041181804759032168654693732100277096331528800282700737492435687583332881488671184888927504250010069104486183633823504206157692052944600600695422928623608953565209176456101750763534974595765915257567676636262566149928078906174004542682578609984729762721986623810314629546874191967628717441694691115715344074790435221765632434731177333942290484972528127270017468844301166401923985150723034742519729490164033037666274115207363168913472996540707840038467673126159458665736622781417687445604587736929765637578390151225656678660753940149653119200002264787007590998885928440044601371384567279865324250172148265523739444202352760673202876014775234982579139009168015769660317571667554873296323081288010199115611026159650383883381235289965667471365589161589433599848420175800569845812172318823189488465514742506337040136851094886549350506637707305211121847660481314975629407016458836067811218304203087520820762603032099467627239651003997977835081947167864758343027391277266132564319084550058985000748885240873610779448530094877517921511554252289925378395842814356965519168439453878374213684027681975915336679236075709774528312950141561655592667282663889810248383345354440148084432644834147858752494040802387397276911487767825431683654106407768197621188014031676485972930955640552139459376740227114153114262543320134759823539774436462754712489928997174248403857331682334205229134510624075357161325587065611804609055892727427577191053613042138376476423885757066020721488521319539214230149196551243595781081883550016503810850054969564670828624182828842712801206234249730638261048269301765720008351263659883471713116542625777097550851569696502659924906911827278584143167491370958287980316586307367921227109127578309318747833794335283641554272051202773827015753731812005419700771272060558476798474930421083543188309763866118063671509635732150692271713539917527922990291488907347678825990593809228582088469065487701129170030799510229667672670685586579535042376127520111927859330735692072410600679826992111640498624715756649269667412040502271731412783732546790061974580028578439218956889081554212083036132797440298295367349944465974844833804842390144900707554564036961553367559291504663374512233999186835620570908190880524347156208197108161170933330922554054350672134272289941090365413411767063596275122477885813424933091607403911785112955112505486020467097361204442185993880349427746474235658565294035348778123461434691909250491393891764188368963848113313885332027120547745392142079375467831842783881269082898506389478557685008721478143440247055495558929780138498163083802098238652231680451358925112262176765296154083830828310088848684791054467270444203188873788668222978511458478144543042367175763205166387775462077079324499668031287330515768437969870754313454601937236201767927583655657935471717527099871411135729954470322866937213001934023870224704743217259885506249555112683193946806673129175357118880853956919227496710238432711537674051499224394465557692329298200526455525605832718444376216662827276982629028969919062466618269302621331961218442949027626173372020528146940773199085787959495840995931315381883983993232323725474084357063392597877132133683464952106221196153510653355327793156743762483719627970523779813260647778502858654464811780735402895495747422496581860411941866071786540133622271555496111449136395573774732148974569640812194826308908166777896048042869863047042044630756470000056911601154659359245952454013320019726203019672630710085746275500057990796163218667661976416629742750328020094875814695011865842262466182392007826042407699303725992593402068777092796390097807500612305495531092165807851305295465204931867177817075571513834414476752102379759013764356899418292057131103857391461435801865011747620123123777015187467570880700149080809215240242038588700760478013169160789184270833409423326837901102500362738728430536004626041781249635136031813081160687552111093202931648844791247738951000317809225414803958137904949456151813227613731072979692961054786694283081052456794754243054413277048182698102058993171824443996769883879109990364954331494988528029121304451802671087616982037105059592520550117162015535546055666327185601810978698364949225460729746999193262765939028624203366674108212550802113236183403749227365463004243073790071386817866132307843703544073630956956814917617429898213406515261641301249287994092563667099417151580701409437815333474007186038968118200716242761905463370357735798163336314113327649645227675495685890081156750217916616447648896097101914923948493976064990294229047026250042107281262566445746784418840415224311296084470226406919030206433766817168473332496801369152527984745794950738540691646473130373566461321252592783248575564640366329725064230288675283563678937508417232592911282615692466437998715656334824845238695164417529697319214720607039872515989626562603198095500616226318826165800490577597240779562604290432437725715758071633334947834439426999158337193604441150331291018515923474296187196810355168209387158459413331446055671087116195985217070578578265305468861969424209026032051306882183466280573065393182526848963390694860958099461299789817486764180148891352501036761847029477635519502343652559106674341956643733388914347711213235810327782677805689791410971957410701761085801068551183710999193774252967019458800031892753355867977612504196839739867867881686688331121808264987868081975292178467003970264770277447149899303072785857737013751256126528556924578622845421158409040863758344136866251109640849071809471732434827348596416961143702014300793797760628999530646258840528418236684235680398860517392264155610931267151464724607862703415168694610739018918845753556081106022207307609904233160345869327407363271607315403006288962283107367622682650434500666025653841145269811540470957865389161234105692818270945806056066593444031417990813901738665371747301640861775077000208023462144094285373017677653255584780892196467010406565302009459076786341919699400930587197301530741586206956313982778339257539037961244960192271818021330391535490180840974450349042350192580345615514107412985284187221558667634742402422680209662042671664578511880339586342129865739473258938681538550505233867742612879377915493789002425196744932167696675609368997514131228653388959989406979151246501386456269741721339961104098320798405638372480186592301373976885176417586371645693141679919350584647861977712394371398484566961721581162082779544040236600936160392473190719981468113562889007411613029987476705701167938370070471672908522003519036378482275187158104258193953280960269651729691526468575600337206240612650252712342311052842635086554570199773111194865443265060548060922649139495579170770995893287069138863792129842058416229009564736383650905949403676117192330893595346766566321515804780071327230686513866617900621330750567963302251365037839470857146314785414466476443174594531576317768716183794080149075431128126614514725515982688748884423080297316830512983487422787880735314956653528245966986472963380710033342639980175442987037229508630667729614444304814431327427087323833290176335419095761421216917146339704491922878276758721130412211884328016010512199338838241509731154281095189800866012401672843404295575744580647176730728205149611435103086730478398083570849347871434747695245117070341925140133638883089649982769421493246180858952361761225217998496086654647836743308689831985645853427599365370994608708114877374724703423618093317558142330183531234970249078337314221523081886301557861012874271781693510740625642875976854515933896756080429582928724985367000220900689346079374260630088781775771422497538743357100222083242770107982533326758202266147492977406264757319640668861544328402616301809935395146518071729812883077624188833211162007450696374196910976087907387617432538959644921492179257533493466288515498380494927737691363281176279641246676902275501691614272705153472809507590871290630441050079874351857905003060797761317863311600090814615842894853392115223859144859606998412979054464194745056247525611394634465217719876329406780587172109975798199552278679579101400831532860102809882874898769099766882248917786919792430207255440058866563140101271898797984883591345750112898596157118231464344346777240564640003424017349152634938669944548892455834435058704102778884601300583911409027716520678973447261409460952962693124305709792897002548775837908758686156597494613016069073966374946255680182106749636833535652073233968188458118846146649892222041204787936902375741737838770821924739895149118667441902061125521695324193540660259073344655776411315144530156747018294013200497752122638185935921797701075934031178690240810626707467801051754263932086611701414889413573797026164720479817069273748010523328931583463414955260041533648303460279567779734068662516581183674980739395772108970707393096298662266886260709162451368360503262020733039206919819371414239191711437257713103645916332633835024905258759305955094528862097821550414101479318708760028344977039648291813042063994786803250623375161236961421675447545276371628558794524097394836211808200110439230413468872252330089492960559571939806000125145748216446513756635264544666611271385742286712757325026999417052882369703973647582654805590549996000402860330401894747658513758711962434686186184869906853422123424643717446298139944567449438693407999374593248093324234959714677850141198447413358165247312883800883421909950166443525867644470652077603708294199378384519593085950481013476125955702678419996818689012132997356060137556450129949559303949982349629258352226184057743897772533215674921749743504681035365292166725584185672541521292632612669620575216099587212673352521967360827797914365199174510283592418865748702616669037351489312327613486590187235826132087138938346238465987022833623552252180636837191992410201908006687631851678934249495853273385645496199492891137139997919258626382400829126584936894803710492288957638755288366018888277251803346008680109715471966850201552509268245453120559930866908151545802227502552736548787583701021099279876763357397267768087739990927099741353658591379134457859838235817547679858091989080119138085587718944177951273257282923845628360123601678016818773849457719964813207762576388912009967479085130662236729185677483085401717314471515686153783507740775300433199692083087656967361304223343085079299572603010919419218697870583861799945848987573491846801610212245601829047217788379902275558868179957949194791713077747381770413085742398236487467874041518751218857096793586143654108009307510118798945114630069848940663982428766689336379224959176337700657087160341625930712598026420475468342284982176811427005245409609857299347823635952733465889672200007436413348305134019876930910190107595505906110316810249234895651306129136281353994423182491019639551156331237679886971319177441255285132982847487518699558693381201941850242070710284774685591007504214946988883199721996154888051130049663910068917807345949198526871102891164112791159692980908562726443341695082716563540091305667438779903585253752257334162258943877539866944496526990317636362793514908487802086838150850748610622001484499457319947985647862987210864462063503053707424004638920845969529718022835412033085729811372571031104419157181094656867625752429800368287996485648923555911154013055175158189113803927845855199528957145504092421597782443400481331140351575215611775753303276737355555415433966012365784432429670136758286244434338019916845563567466926707819287927431736316088654163279701161538187916053293999996304231850407628237644477131056445407062206819292190036266253083158464023843836148539047222061537307915978405403596671227539606669578668160489458095808594558288990317327896269113924950142827777888784766157912682180045128334379283414497495812452475703459274841807943725262020918498814779861137642103154984931488551561826385267216606079741954456627986490969229391888263932045454813633237583479990362992941240598778821117353318957793885902487364985034506933946206978811728839997474021495665988190985496142610211376541967769620212937570573105502955780400877057443506090046236311441283861674025255422927869886270919713484672616179867209746075778545475594664793961277183929069072593911022910755470419588544563414254147269699520456977725652254224365441820282754540589359579540428486064737480705513912242924295769488195675000606937281790959872911649953176416072824208119083889276396335361839197363840733126735204389036886112588876983014146510861596128949885817447796996092035524215631043990034520222559234214971536320563806325522320076039912522052274135008576728927586774699010832380630908430568532064152241914615183467167702096317173700532522140848178211446965511921189254880987697119653711300109993204793922379312915259410769170224924185147803210875246718794099319128220774774878747642920689528719681114644256808525914806111907322448080840361464514857185252716674447939391788564613990222948887813066438299039956691933492795780891626065910893629946106929450857637383684031691567188377539653281740052909951186199161318745904609145086676786820123469609333060765957827286568231686683531974938102441554697872198822031141164118773741632062654312503004456063294430578017313545697867912926955852652159594166443150139918110633092610807843478246052488695801429746308333213461976105734553706984908689772649531746073742479556394931004467434118795167325679269471366040372719873168503762303461611388976652132866829179734053932521854643690231167429356905296310332009939792320154608122734802378395454115826452202675930254422870014730333159448736561000274455086501876191782668204264536526023332424685168814347503363970291706747018825935585828657919209683376022195266099978438839964466611581811455524508272031737320150146328509986676289354622634524094568861263224966146250548369348031527210588328534118892734608625576049697655681642218042844292402392791525947227801205077133090525114874855583599754969133172106719672192280557167817677010878628890462258171291834229147874023067234111998165862186859811361654678299034396674064040615911780761548120053427153467843563972014864732557947915361910587665448553108046142505374444812398637139960447133685323707974291473031847039229124680023801100604464203224481093748171200101682212308574585331053273306196694384483929797911614671442119656318659616376047406078333008074531244010431290185123811415445576817358250480013596519254538576872678607766170692798740080021796038696304896456871999815669298828770228845051792044948201848321523279055698655283959949126675631066946785721607068030188220790566120870856398719877394154830387852804323148360028903631520603656157414402784939024800450569398705768168678338839525121292464081190037008687070022090802135498311715316601268729859114209516135098656435343671575244803843873060760104827216027426546898315559178262718874409623427517135565021780391046045045600963642218416850662974213574358923700565774235968223494480685924851312064306122899416699552670516547964794248869571365187108225414233811139635901798611654589522423713601203942933324960452264519384351673926530341018067543225916520774418961933851162201304159774472838527969192651715179232121503534107877031650740079351155049471864316813645598356353849262066697145751864490786538072705018863633196857708117789329973990766808964869679004403766688768079094240785660652729534840734260626958923124257287997170879458711688351854873583176593390711482021053963414765989701509269326558604994294564887703988603038201986557197771847598588787287707642543137699066834308137854874945633144847519320071190206529264908250903822347325520389134747077574441753269843866207161419008332562910381841359097445723976938047171803558229991113753027874908231892220182821651464857338470965261437182371861426787555956839114200496265858235733614718635354190179790956716768637658579868812163542477944242662628708282907941230578028807719881074652889130764219555198774861977339208378296270795334365218068703564098368747507594169755331448032195226492352175132263085517590627120640734399232365864395634712843139819934344360071223465356590266760659201544236103760201913517149546847701383077092103327798637778158824751424944160064735846721841265956719266584520928828497267619143295785394192766560453684876477590957351751905555386888818589375824802434842604632164894902985748912290775059687103368034112271324865351577828213836717275571177551164339606735054654363538085149704752972739281157193708743032165944301924412734571767493356574733443149374101947184368502194528847006211984420964156269191050301669627752911830411148460397166487447894967144067013662014226180188680293650363115147061291525761129035799803078378833829793619668160799987595183043184894521054962827622681750749152796052678667683135402036613888646475530370296361264051989116719275719675129025549674781863824159558439342761977203542718852091576718006061533135720424474927512214575092935037040634703037468396928336134281236150828693300424677206178832162298614813366796540877522629899527027641230632897147034799835324186914678210810124155060698613095503331574163971252164901056916553763086553127191427521432773165056758714950288175983901108846021983034413442631759271173794277395182813959824246487828385811793243974256272200514628971373744997396388293800706063398447554935896826037923507315107854995434102291080905147888249745768283867812802726427303577033982300714927877765103247961564784865245007392994191233760162467086216137422521167430575641852047807143841133225791650428084307610328983822168258163978034017562908283269526773487539793976383964279075324330072561394462704182976744224698427721105238142685328349800603370895053740004134099536890644579733473275657142090362136715730398077920634175212181807548114812029198259964175659160192166731346793725191985068233845734407744892654033672459828683840515863030734516707729045664568055100683629249935595598254036318010935493892362760097712956721345453724854883622953206075006207236902187195551050526779739313525534442952228601670691825668674164835610396969360832659645491660493610562038635013466520984832541780007123506667846362019832647367487365638261013841115493109056584784513093525767816026801061530386110732914224184812253476274500748883647889778858256444715982956177948048524161999811920914577657447239825162470650609103936105474282395188446540670137720420952189959385813285519268928019109846661560132208887965044952238359187258718019104621550463632557997371063239907639139014918810532420799338041068933671200214118404957636736058149375628755655628734116504955933453649144053825728605505442676243122263146391375749131148304898032509363533233312243596095380374863376443703037815973352013560629097770008862732345333812574530756344028596997133454560393502742179226279111625381197385354990244468025556173459765866612657802960560334440292259084258704407575054239921550179821816006733915370473957314142199683031077475355623596679654215543890341353847104408688196667905872020053552394244652052807195283772400991540962542443123034225774224642399916305415087139847303631119632957048562453824673807893081276218091983549582949889585920154440055008800062264482366305960054282694018842419487820202776083175876398974709177921309255227131055716075218597679320310998859239389266844265117439589255775365175452302258722981789121712586776553264091867766806566377204411935765746010826960043778685588709792858853579613135044431383405736167560325006501105607512043659996468779017168729898240942210416504360143026493325064687725722736843253593865299034524491203391540790462548947238954227561788965374469738275572743954881407808845270759897940550988238122956482737111989333469674775756280709578608597822435857988237694210930536311521301188707466100080895815889643373772960537820903071743199937229160821937195724531273014938701844857448242123845420717020303236262940849892455515026694560132494691443532942088155059161564060793320930024150673691135246804750843525441672675632776144586588554563192634534648421315878363372066580606954821094915595436974718691166965401735139131498382697171916975644987370242449236474887445679078319829850279866269751670721915311512324230118832488730162708491440536051613091516589506755191448341721457979832455542517545314741571844671470008653640112590679985754883161142367166244775986328807256939152541611164333613156866289518737152653489867157090822604656919874914965911037355903125844338485921266373021556655620354063164857618072827837875026120753230321183223681389381382385417138986760421820443359644765317253675844677960163826196797802900335010662004676873677631375687826719282805413590570750636473792444900098618286910574671851957354887624857333296323851267483869220674319533176216846117549323941760890526697002402438670542928842109714734182457774629799611266778939251772002126435224125453391315715972767983614985467589471950313741683532385655868754636137338378327417615228101924400856686433473973633731303171461817562051110347071913658568947128272840426142680107364471107458264118744907115768346967534568428073470488820065624188100505432210283944950540615819869978461473060437523491762421457768358863802780055367300763441376944341058621774247606818491339568273535507820792792415594370547633508167179232068042206920722065957375135479680764709112371506759393096982471210362194841906660401760279327943364389552026412964007595847241309763686921853164822273972274732545922194074777167156565621572474614495287286278072314856953404739065503924403651235445952302806800862131733598252368566165231660728390146306616979074959900514674633362274209412286604001087788234630990883741442304728835562398028712321263965610560325811360748296858179004115033234055361333698994768700552930292655015001620325441249979697531253984686333579001646904755434498884462068335349416785803185979210506968911833852758559760757701629845454145371179464952284316077618266661149236182793352436138110309774227225259264043455623240593463048318527400881135524209111420046058232462729748155064532252751929593869158589757587413258969661125999710731311445802315512833783174753150199379062723306310129189543838600404229524027241373937324864398951603059306851064010270746363932994474604330932702389187711682936690609486614901329043414110115144444198424817359329430479462259967518490786874567655101909922139381936915274568076353809211188899656265721809926556389143454250572442218542513880426503072271774863069866256858852886480621154565876023603800109071223393641969704153055757528765859085120207621342131105032032117012582405810580549117016967820320970942947851256371538860611381889616059281478107850879581631752304141441697595335298748819871583275233552698223643846459532915378084580603663238521975058362771747089064549363045947969469317881566511997353738578987005163658932808791605693509826573738632594996696184053180394610561284707131392930841754966320605210538324207703571424275275879110663873060884252005979039621518689261110104876020608615188728810517667939857612194995180870072438722931002932398827647373808094533897403366066012909367480316016746729836804111017181705541284388187834314012252179776787391489927758096313765602883156391828764835997284880518209558355718333749270653440223995507700742794963196865554036426179131330140680995459449582861847325067173069936381865602896446616828616194909878645736063794997050860529940813570116077722790892686375004682867777042620102463932815607118831371476992521439683522501593362576373363006696423520353141178478015365925086129933682902724505114179810011391457771121912957484289539244385539570245275552784719923945895356969843744447031502184673443086503246727527723725204872248467246098515064850648104282640542918689479746176367139588904417248385980001415934736724701705296643250196557022622238864075761854856846080143110571578843560458486191585096146439052822722523850688600344970303398546408707232465173028410050750029768089857680759490368674413542081327677567714867763902450652870072699188267722045845611878420161146775654586052332295484082094036548586750159175370098953899563964197675377469722690750608348760718482394205615317021666582885270095197857240285256030875141828375202152067816730218290807133293361333479651983627550819601890811712973903671682978124836940615444732095306089037478005772015695873182507018086403268113126732961956714870144803162632731168066645454881378910122471244407681421538324056362938649753904895488163179245536452352080678190471882773342141432095123767058392116529500701089550922429501523235402570463364565818104045872835525514146987121761232120584508687727853924432883262651929019482829387623275934920459329292853324810026305170596259430135068077044122668871366598486290701254857440036679977876618799400293741066919957411173225067893305858106315593298560622485963692267799586690803268971973446856664363518589878020033431288481945936664317415478525194092178322708874755666824908319545959700536012425926884354142570431016077368867257472043498495610219362457231239512526853120368308483949992812529038955121820243508520715903207793184326453913798782243542664555287713886069742589947644958094729297155181686837397205638112297146704160482919566680203841018177943256719743956134906483901864159815770618876945279649096994496095058660372847284143748654525077963227706298459508074944025956812436853841983195452102005812249344951773101152102068180700402886483999010736554420172037574310299202651274587187578779542945006243348479614258083918232284758730628779968699842796712945425282172855157953299146810494131596619249471719152271454092956007061035932723876768051494420370390569649722423614252730731037338146583096351996454742243189969997190128541710028005625536858463961997310183957141810600354384136052824645093985371123840347584661518637939790775958754268541688278860566693655807813085134657090067550723969283125620073429017239386111895029178635287124723538473217626887361243801226815574345127974618245886861415321209112617507453911827933013808649556684040656627415443922862812134830842094452173597672980334396110941909231011461522707251912714960335428584967839736852261915734964990394944455486788746173030524681809681977208844172908518143386213962589679952958401450689941213070464532830776396198481849623075840341447332955006714560349987486567817532884301792445053739835887194224709967560931254371738980366198499347994682567761818981474474602671518877994164201692880586992917634985750589144924621918022867810062416020758875450374234888291887731165519348879874070171891887265932275783601056745949437691796509062440648358614599954584995384499089527949620039989771723444127661185580493547830901038655456086604866859610003169583832081040853740068849596228858214154220073924363018911039553774650145135775914026231076563377887812091560302710631066564628853903293633227730907538136154085627419865436172830243936595639811020942182616745661644818819254820872110338721235797516908252915339023677462351864979386232619070379867044594144039226414233011238898501506401662928403579539516749095070357898169619543125448516701426783026932729984783733997781468911179793710106628709774956734709876116776496276649637815073283567528216215902529662994482879560614747581305388856123533905401940921686740686886734126163927587072317831233184243120707070502348935000347164792031226771378441690342109893557191063013122983966860453311662189862061445514235689759851941439408016919694081266046880697978756969020745714901470929255489741199154370098593656668734683193270293684546168236245762477268988517704039450716571249328938534207000301165002715315758608520196437150168985155744318924744133868355588070718705045376378717689381562922393647484870761191231904447130498522456261122652456849111611718825992492085730275886726891130937536358556165177594083710150310113924383331853159281496619222516023940015727291789580831257238979772774425139554746751750649938780280308676496405443044206884667330645647060245262384634242301897902637773686046992502484987973114981644718259498965987663786320679457953648331046148352936789323868452858432465739827597846449306966831425410287002420361831473459063875635796415639321853250171666061347828341916775716332539468821679754678560135953145771588346101026798964027212913103507608497277546011648764636311608404508346624316487316998236137716488471722255024112116010253475602013607043967147957624327522185067698475071239690381821648814302997966266888391410353099150065768009726824121671590932410716702459860969757395799876846946537684732678737452351836226406579974198302894355304961026355445385505502681869200504733200279640362799082229981076223375030109763061935019013032307213841244678300496362815660165491449313014766800350554697213070360580097215094771041123647508755631340302334298664006981820259241614484147308601712756807852893524404843883326395550137078499086716618679100606533033455633197333460631930260305064064646816047669943676487837471520131337735709479274430639586123605563103266202058482763801188319870090099951029197727667154732822507214286153425380645997485228800788106445389216092880427676043134130751804442959992758633797034031624268147581888996471109015598511762273963352896437104241872966817449678127094141421909096348540850099547932222224623342081980170098930661313097734545434436129225156121524120098988740276429592504321494530403265165020510302877238944824341825566182758032062594558977067984237710339484845752227668891516053460678312441886892115312100907062880415249865491148458379017505656875829321670620266666725570778640193283935357924101065216374648358315604031341302793855226766216325229944126324312616260684712427946864677347774421877730310571876172334383152197704884493877251333436906204285066072747179848853298634588319473144055988843840175496485360670818278703002725154383615706199692539032069302554997285226233831107172526803638931917477792808305083542125531178728893547164635813119457765042947216163640902721574451044125145825173632425354616844095636805885297439741779447323166165277458072141083648314739719965380268039454836380634197738627862206149621322444465144062173647583052963377140667002598069624421820856633589868782316762705635402293650864855289953475354208102777098073719297693254426344164935356913764904224614017220521123763238177762684845684144134731641326435148087217021516680093105249061874149401270728452826808558863295284101113405231327875182770718286481976966810517912821669265821218605216966271046062612324226871253054235346155210853963167874562071984872183810908663111782614899199767376100356453251718647571419916095665938511012913925221026848346249149955456567171265932698584000461067445213879967549454889649022365514553294321602186012086256550960501489947883214908824900062397896090492794168654252651892810164471226231950165399647288309603450868583075869355643424529224184527820166890900587059315791285078194951194489013348491663278478115968923181295772250560041516232273568050195183477028195628196335279021307925848031414251653252896177647644928759274105869345235691100578307734428521147904979562054583223766113054323925898186871928579359292462884840205112045176253787050563619027194545465718213273246745776619774133155543706028665834304188414466831235023933628767874270267751065257648737205986544859077673880764060351081103412865054497281223212924891581566113531533359157327185631730931427727461971174308985303119426838424576348190045975325992503465638219680213369666747181813174385088731650743555842351309428968941892947530426857636902609061430427064786912010097515198249958265964200141593535314451628530856921113211973491761554120949937333399612995021046072049670658295180857839335371483851997527228167860756898755291559127608359529284560544528386002745388865414475766574094489513928119245365792007714760549863056753090197967684080583916374822503159263399775543482556190877209389838847874695519281851004783937955466911776643815661166772349320424295879693299611854144024057543900072338767304713690016096313014307795488902340199836195961291704098235671151484063628078417095497168607500177372578370869920631231606366326101492813005302677780468992029932147781019659621085362358741391176542587543760622281382945360444581988639388888680154254570511532767162079201515951840287901970142743964503275450487576715152353625507206932692288106053209412391203635298959027598845065537075753968152340035867651216037791719752602928903581671050343399823970312701180984283340375865339937669548315662796108846823434804149881036261599754752494145626078513975518508437262997761287865784233974741500766050433499110437125795032750319073972213195590364350265538202909961564248162675111612988271467127446476765762115109245765343758370109858286471122920672654075463215148473519396045855926660696679694085453149682222230097566577130380385546176838768811338204583983983272823072678183700197351778345712424321456659526888039174377655729764877484994253229615255304835428481902535872041227499628041123594449467192659115683447748522032533519580250275109185217007709247962336762813511418839878477242275665031118844685418307789590529674278590292928522070937488960197851753661062878359124898745658860814663579193441096526599430349463973082812523853627704824844730886141960428656769061924159336890999730385707202505388518381204753947182834272127631953473143209552895534586180238147561567502171313236673205369298640862798695522132395163345470985700189109332320862663023355379640446357607497413004726287151231249204067385082072668360411352391068171327917351180917063794214502727551331378625323799772068215252947887504496556706553729614418885074476017577920819196541217728209386170100772441483590185899354687111799589828764216733191793907803156938201163264300212781823898236080523070944397005652803614040467848990957707970855492857093519482913803403064665119138830180686219149792038410488298163436730202408871342532844203818127846341227180625202171948713598457302404152260768977015543514800973545767121842441095266952533730338616986428212211259674284895585099216680131826230031613273277143637954492284263449292047362967610180377995213553539236397477050862725061837348657706173745095961402776381887574017565449493665336693023579888793222345039770387316306626074958555985802099365898874039215218271678337014291306532483775433924584231574701620784860396565808415180106589049169212559030623495878894950159920190092583464471156162553331574556766453940146184175705730747145769630005187705938922920996378082199749420480992960575228470696956877351674642818277948963747973626119079794847891696590761805620385060423767755274961120486116564164103414231577510701026669864087365672701563345116827069190779668151006418932198582323855693574350936341892455804876845542095637912620002572253615646343294985118652329362355035048748270555491482755921264534000961062785464440790633296462292598588536328572463010590681304921931730712380440814736748993546390385645560769345452539450727890451850671224501099669977068580326773100552306917325167662284422339879997570731306227856120807159294231766472407180087879473433227218926872630419942503418328531479100343143846263393430378669613088607317732435263225387566298050662242451440284185157815897047582693269493287224815275941390033773843906400101775616167470108054373158395601231234856699016465885883764696498914156683988420762518790479130910672842643353679568961558188602116127513706894323439401238556700983354614625425490752686242987656339177538384272333354670696449672968461668356577361239213427217004027147630899278888584441156494245391540525351613338134937877379336774201181650312485194463605923065048060693332959189583554620737532854353556648462168091127747972140291344369482463586072507021535139420195897347081557354495966087155457891580801370644204889217322229471727668222707424355698490686068068383909216330686287385570304048413945276884100988570215799650652030525027583872809875427042168383889811692732430006013224697641533736273214899944780093911173009963064909289924576352504181054921733522628620487686628573123726304666029584247048956914308645851384569252588007567330110727504993653661711107708239166633334269442010745096598413664086177218776819425781447575422973983256461220949467769580519382164718646005607210920145687887466248399058994223015554211733665274442824556125708302376129049465707199865323896718089931839559706302567681391479009274208094158597245772417930777734305914367509940374395750022714093113430889225156039536402904887130807631768345571452694504304102100355283769435518931052896767821341880751752734995850702726726771273395693310162840138100190256077474900792470921668303559094279608708573436198516815119126713580838584821006457741986718538676305438542288743242863082904686152289766948619447707803268221229754682231074908738358393211968543594706980384297407607313316174727046508630411559765753199448695121651378004521464129068479167860331631970835154105584422889708539173938515991274750724057293198706891319002067806741689178569520639186073544509793822117170923177299886809663779647423704094335174353181261181599837236424668995662371549735614520259519959784419917988836657872463242313718323993080164971243408868169496590504176136112461017338133616910065247897833176493877483697299293316086621351320518956185212098701491076994223844593971211190948652736832353427618504653094755688104157713500102550622939968971345486747136521396981863239169342183454069385118775480068509631187042599013476782395159515436475963026049725194336115812276286012510124818959541597477105098239434157865475978758245649561369819277672615169138165437803805705430998958270732143745104208579814180574807935360414433278868206375003552389336905656209359906074465093632846866129881287939868870204699622020630706278500911297898195850268992855759672258873496860263916200422504062057423400065371411079375919338815914577543254787782879544353311362171643581695378562993966081143450130293236921984767727209740528472566742777169825836461696527794308745986411456897466128250190954095014014172855491276975040703946683912455752133084854792463353966937010622454396453625624116749935357517555841984316969926826716912601385601524072196968662499778130559349246943370293106538286637032693688071297296402391935293742250519448148208659518857860211404108541024931001023272281304745675514970494700134673927719981621595764731488698483851977301306600668249427265590165870804127436280465324654811362038968060832897351974460969712561646094403114935183126235187313066879519365124326555336382048316701822724843088430202889832018287379394696280650628350936545605106049987636962166810400770718564761859045670026464854889558530732799951876248626259620461208981959944933301723947175097352114094907242515215963120114036166263744131216964621408624692883156474940561751637101543959693111544621771344240252914677863731196063304163446147562590527441723841411646688933245380171729130674042657902145434325541430058367418660173181320219299678116417742212197364313941395908617567900088573361185424207990223142506084467703923364807464343104998887042771269241876919189686167254841250979179809735242857623542960113405723091983390958735162549932926329497140489896405033972616268209270921793899692512422027698862159227968166417325620092517588886645617268007161583914013874896698212951592700957373649953113188467761116197005537512146431419348880684009252816905116143429597936973478300255732143765394842510824991617642071549446281842502465436071395812878751390208302455793722562702901674199332599702958400265767382334450000968943818668404419346276287987810117671582889437320947488927541903718439603129037402797582715433265837771724508506198533444815278191562491739499412128250539069624895675287194079207811164926345909083977026903803593575875494849787439165715518850546594354436418170138517088230167186170315569151025198626113358613313165721675565006414187387616803464604908701083492278555570466730474799095442921177735709360676587102253626734540711729396029185450156128189529537794817815297473429015513992514242666146553427287460074409060677310597247486682648792879256823148581202790764875263205970477738812886319200665872847518976992736007397363748605884481194076939443884308940794778075099529454604670749441172734123169527288385845201859791359937783449648350172263988133908973575116061760702150069126139452275862650744235692578650142363013487022996374815882257815156086649359375353342898724524544260563446725445715226975358914019820853643660321756070252365896446479224753854087710082957878939447189622373103516068092180553308229485710003188199661495093466262782527414722666861764093131705657299112515820050994155315496158834043334743583017117103550576806721771383290102816189687294900215174871052882383848592314503644574145988047143728193537473528381480630036552417057899675983243743651084675108868717119926188780203320817414704945117106717940230145754177587618651766469659147350748285437259425236885327318545354719084068806087477526346506417509580670913138012900916973943275031025840831231840099760554202614775826167142258659449974830894123799520520070849684296861307115658399782557903042471761418835630970317834403035130401833104322470143595655762403512137682495812015139376309918754286486683954871296865069349458194389520268172710955085345824992145371846567536381330980503846521006578347382200593021595639781632627867290355092647717067274081244550950043099019437607422293530203855698276202141760429481991754821908091516996529599134603551450973647156825377610223332361451276455851145391147322190614102569842556423139797442329364929963035385467180878840888306159341464184236393559032904894421498099249208268512303478098301748360453154348129039589815070604933127390081677570930890834639355744879079193979513452796750972348031570382097752869808353027499962835931342303022487241610680767503388186753340883422746273098594435519153871566618628138735458557498902524355484883658409570568449292673472145918285718942272118549224793205037928066185321941176288225596159268689744848916740019182952607008617969060452857553290261064215622522202676224576390837761148451426096272456696255909274370192185874761968193272369539685393233692931113575180013115985992033675268428295889782532222852092097800130171490257870451389457252984893800038391923987953137639902303276972951935875796557276816533814791586732639793573701604124673875500853342587270726907186408085282622365066563136816113570771988237712253350743525033231657355182023992494614684592854277046338091819081246021041419115834215519050772036349454839954590654011974313540495887277877282252898724795726493537526610458768774155777509906637305136715094879111868320384931560753859662651827325967241223516593227466192828381888044676356863550174498221977575841522195410579212999154918641570834209338672897661962051714134293816532296397366057218557271329049310769883377367346704101203839321100939580175166700800980004373262668041850164734277448784484669579397825680221271610368848862800572789774319340677868230601486776508780722197557750852822854952781986118462556856001841839047302864170085312832949427541118924403102477917874346961620737385000514393858757923643631824855934837239136525602866742137892054973344144504053181872987465050372266824905073217711714159953038847674262931577667376226287822806787642330744937281064781929599295269219449226313933754410015794593558520817768476746678219056187568728195600542000464385593862606836885672763831319541118289624273280468445901733680962253291147365230191147410318743180544262002890015859404323053166673103186844774802170938263603871920942284169866403602974924267584227934902822273136394905647146304058751863060536598336397331105036126493470359370391618749777214291948419640638900912973969521355442597131093074591127918903934827725261027476035352087349322381214184908899785400655699749078989034392013150525913917619526857478737532049556291937353358347483841378050494389404291562181955702853363768320520469678579716653844810865555982813055065534371694779869441762198840040466743221235344068292654502924687778125629380861840892348542865299442315000396740660813467201419488952441089728711050663594904743331489575626855188029184090204390040475204715109375264167171404071451396117133145397372536358103094471775366880427628938668764625314941212321148207971139165363647168544559223443019229262187543337484346024644985993618161446829793849553578950961164947450049762918171033287102012924734274514549194704295710481189806168332512599856018389919095901074035711811306140147183398577541122141115025558162202712860130047405152240749000763163911489960027131606790183389606259379147879490742422787136396302043393598593637500780122250197291270184639423725593191341183860826056903121067480217043491605183950500416623362523293220917776060135416346953699022222194008851241323563711424787222280136804259270571333117965185028913731585889147517783002697061555702544948302245954813754166256745528496293488430991270024276007083127021988496541677510343605834004460994345816322763271194709122469593995381036610073615201249903298278599031911459895600011019565610498036472978957346617139628664425064462274707703416261180963835674363996107785898464521148308035707249985225971413828676697664655881154739250675396134498493691708998627659074386369966512593524939075065830179543096544445920582637276398260261679192751802945746713385779930435642163164458225467244905641207838628711431893035090599828379731196559877131619165456986400726825892820066702021781889041070965384072775311751088058806542795564142862726893459005262265353749906848853788500608205204294587455094900982086470229403045567354827480492508497365821982613117882942412109179772288616789236991622612620486008408770729208286814456937512072376642817666651377687128795654801224721932778956442327521841747995306431204174079449883561869949426859272601924422149698086176592573023557759804588535015802911290437893516857567844300539326550619015779939994285128501652158260499944919714904748281712966551750123155340560391155844742901400196677643196821963967605270705304093238644326938601078398282905433276509071733379001560073899025543641902723895256331833325872372049313994738461836911995592534128834784231177530437248314296003931803430736268607076885525846420326798752916197159786901825524279329456701248620876230761188429070317995274432006101831670722181149573381386281964912222045591185799914082798884867671866220080768165918292960669937734995726588552300969277040130523557015532968070949823435856451071452606511385315801754877700206028067037651712856643018711452465054953545484255981531739460551192903165923560191322379159558039972424571095326006654556384582106607673196420251257524124908361714273368186523961690983595497648802394052140253581016338485496002776698774089406586991492641394855007792583283753149658784259481923314329949387718134802211042265071300257570296449677313090951932609820202740558050000461452735393389950145067372119625231947226866384629561231496805736275351574747876928469772198690512473541506847917324468704241019501985082266233431031019261883108825258444036660577262880368401198531902548829093584549508128463592758934586664593634891946797607559618708749626881166190861787661114885236302596676668659190549350622686280321971142496972715065612319384691393258746072910967996867756639520890778001982388765442753896513599059498332072630370875247759632968292916564368937539054011021945244686377296143069696310907266687831761899064498086223822989878719424934227348183796319803835642319863315796611061824585511868426037528639810492662179273307617024802304628552902700379784828996720635639392207018877082332269429131933177279645457150040299122605525698255697467093031886357530213620247046648209182985869964778467134825561164708196534806162635203595325943321789047415113105174744649173299334745994403072963745158807666967900347869450890285562340203113859815603116036057859637443757278236804353721213749998518714932380206179560004270124892858824589639261400021921010637419197405159995674178812785306441645311464730469400464945792821578402976395813141315793137159357153253288829461067419006583681928608459655530248841357644915915498267740836191832036614396889407682169923564735786198955897947697246736755016690623957876041366723219718769620044247447210142457685391310561596022301183397396488257263931052574066301316952102550132776156121126773100849914406905545645146391331652338717372086906147428563720670371872114256398939750861433622117188129382210771768279982864387431542202506978875107061647913053281377345412221095690808008332591972214707562002746520439819527249896111653315371377500560754025902085780043980015637404037456942442859094524785095355290172236564622070002643044082209692779236886989974326082467536020609135498406886433290409651812529022490866045525598805439311215604545382329009376132229450345693936174000683815853831433893420355613904184126525061513729437161476442628789268093957581732888328337551502768230244121679307285507933455535350479062431800326004277184604862201667108631270010687554048272244915380951167313187025172942733979980139978760092786560941120733512967098007584513201371063450155598850858811617527787516920460012671779967129451691887723036616678249979288035757198466903656313540840321499356035425131715201532978611125234862996886985307083296654206977199135627971237300180071629041059032361160780664080625922559010490698100891805785659836091051857506279983685050329467042638278292223755418178006224698116845774562280298505442397221572545700376988423606140790317408755075025406109547660548352455023661875182868201366985518544439704275406521705253215104286742082334402919329546177331122565289443984344520395635981032599438051968745470599754543168777446730075576581418195444426100630877153589512057711405940263187703389446127174571468981228934790679115895820813092880176176149385389814704498517093193788704941365703881136974826261603579813553353073841144087750163464812863140338239411488972677287922985893947984790162632884421404778474336607441905280617575352162056756262224465743498235588083425692069329327547991290476578485362863274319170334496711488995788076451993675634270237358876779918314962607552798863921894302124119787376943008687519170574057871991855132114276308975775602428091875451507705596911761372149109837475757166539134415829178573869669296527592960880794671036091312070995827190704335116833005789693519471593237434922344175405716906820008734513817990442413778639386563306376458613784698237897422768449643583997645973189776440378876779102220610354406303763734135288575468361403038719594428814816828215374996006510364245249160458884473162678450810885805912140958564902975753513256734573390538545058340994310079473372344252297840870322261052883884552716308849728496699421533948697401766143808906046546745760640217179881831313502635711962757391180165959504654067610264186627041939233873419890448287120188089459470552840307770119838262639586270603916686391352457042088642573725325572491970373033318040110587253366104646841703858298888342493608428029203695590647578823905078804589925211359602367621908137866033294491847303919886309156148531860406303913518467599405741959057783958907251438874439225504499056041416708356212831796380759518670828007602141203745347141259692697578187291398643483789237926276283885501203432477985625573068195961294504983670673114651009577780571377946468126905216760609517147655832859933057312432498383177163324534913032408061245899887345595465949247590719668663109685301633362622865682057218789805203173705340012727488551431869500959076969402203264886261277464374941451144046712490266250240628413414199388811415735275995554439654802147258075861309827006059313808897090425711836369263096388416477750985844827404891631244235269360152671387265045195944359738700154481274590123813399233756418516310647748998118188971321194872526080617073159648646007820643382027143054149368668218711737388064619427664176565201022610641144552865888952024100780914219671759513322648289000727246751834278175943696907239887316044085769978601737815392603807969214182792638444429145397009579734139328080076727643713831662152550524266670451894660464831216219573089577361083193595609766058057434442871657841317323527524656597524814607138544606426417425229408921351683301475871042299233622489722513142721331284965172401213850536972127600608548216489397658974477428931728407823061958186153576245015479171997329210349661129376545774041288776063060925275730139646226294101377572269288315441953796695610704809579837430701267827469181141857260867616870908841468399279482947559694339446487061851852785656430637606389331332867555702919823395627736320738959660748585004031203570316409289308294428359556916594682206779282999129246778399596473523682357098959024830600403083348509282373501193683792087600549235487701288181855559429551141053732317506272135619211821110224430205579120295664288348957605509833917661827378609072830454936140251018151652392754351846845155839947268876628343289330301402721636115593968950469544340747768277867999125263294122803906694673854499164311832665363877939938601772628462995196617122026241091782685220311765232308725308129904386468591232465525063141755779064633732880218349962292712146151312207345806929408107171104349647932265298477417476963154126326827377944324624220398210972156598630194517192294203667059307778073229318542243203661852502688701509501547936556849105200031177374387761344970773222415976639164447883404240771228078039366191576155068698860714888295099557184636490091552540459217077075823751016705344951928612050604831311244868386106637704860027754264369524353799496457086884190647936313541650304468989910875177910073140479959919034149475155873480590810346517746667567589250905310794033595308400351183925581689401224684349236772510585122016904309361080679504362976476472004385417008897822181387108710316362645948728315653069351327353840487504775121504970745200896208121029622354724956409869899732841240295632011140904228176123477513952492459125970130634819318232239078629392004561098059140728901220329783810346313260027823636729921366311029861247611994040005642642672052127825781279434002268716089433266523211707702192202661975114568230397278530626524870428822913084665366982451813507744816787876968082172144246870331819433592613776972980805198370711466700199158265802098108839796514856582748428844084319621362298750673643277953014425372422474071804430413759293970611649431835460994154677812121982458111939300709412656841585504737829870980357247712505000863513688888773290841694320836883790201163330528944097773381280852554017045626278327001851939708232826005577831085397139667002604186440291044224202562974214304743947472896754428750781018567934538139994336725410897237156740557561842648155400353605003372297137691126395152755953156702654268221237044044428742118308566785055653937659842380526488173303259699606626459647758829605366646948157244699020681492699423816872400381303549280244498748229893982958629462733241650089605722901417311397672768359462325823247963883373278349754483750203810661028542530955993571679166961416737784762334241351663665206077058639151898802629849598988356985060450023128585203884712429284586591309657930079309957254582793696016412619932519345283585198101959732429202012121227447212349331613314753223579841105635485177923919052023747501713053538307061575286781931247520924851306866696797779617162329678196933502575671031861036223470756784967288325142074367133325805582123702974731514765466143323538330893015021259016008600250202906352270356555123780289687050297098120997911480837434419022802872874516941883138424609159947911921320015359279125579916561751219075863229578716192003024448181873872234440727878255663658888377643634863189076120872697393030535966526307702373824163345510522004337114938036740769275270956264633276817906672986838741267412821142474587113920700452459358683716825822508510106037011535375523306243039529284705182539007584815340636358203888049251173214565413116160887941500578206858942864797446748037289085629031145290437223834615715741051303242708745600387695131476229224630405645568426253925501151319281219662227784080566057505966196172335194790974022252737254995836885010703140160461322762019895506046747412893484771119708299940211959003925908932443744770466220815953143504631795220799175391124196926743070035566908844599452197620385613179585044012338312193704178245920583998338720974925592113929697525009768604902641663956756473260422238415484418163093405571212110146029454469287994046217326242906468375453762282740677796408432799705220797013049056347307318050903814158252224706588687819527443175379899631222840088592593843921217910316368749046566522197312533014052636835135482148614234931747333180709246168327935584555455446454116288294127037424577095530984116036750864725472478583974408208019372491501696752895307233059547673799658733732617619201118390539606914464983924320629123252413499885309437405365761636838565474842805998446766351025215739828243317326500485880910685301687555425297231914444822337005657673962799275658490186879237484087972061817712905023771571963473392409911501481408335340915138989179303700351123743978185124478202793879115212852816193095731845699173066207571187634897621418187873847486745151703151536391754217189535378166970787885675800557560523224210802465119586962562740858677106646786322752348428655669975882116660109197523878852376016129503927295830921827278023150946209385099905518201620929487192516603958982756227613121043275182766970963781393174567248097567950155840346401242013355869498086606895535402066284186946741713292952981304138972168097159408970425964813894955163775215445043167978682736981416715917937929842071975665629746894183575090282009661846240482634954734400528495976402160629333257344634131089305598673297883645334121183693376084878778581060491887221926440895781677295198502773148353824164214091372313005740634574542139174444516147457692983003972947043327904532461354916884896102674352522898619510630167611274494395219344520284451466463772015954260337594241037082683649047092069478797869774950207039286454951653466488051602433639357520391349599585093973135743739517900431213875330847605545681595670544456866960755087841308979898547427162632611525268682149643485254746689601189317132808199344552436701875627246876384192057759814259237916226338211312345774459038770330906238355511826858696342532902257642238139093436813527368651003722782310130647168356169504137860638255015186154123888773041414803126420067540634129158119913654724506832659729779815725707860974796222145767923170908228518618132016044296735341419917778607949944633758188441193224938888230996251435744414265008641114913076187201166302576843807271701112515452860439052607705766617866910914550918118588091779915621955189709545726965637068207991322850452032203309053688447207342469316295903456039200478096995274417760281977630203914982691076975596997142746415876101095922080799729700779074271476079680012458092889448095191504215795049359383873179987108650838654587271425323013284562068163280501100507967564848899537404492396132604055184339313858925265524722045668901121418362785145490445027677737503991020571486835754537854256994276598954418496032819813611903724857384731921543811752296699898704788743162346064211247365268093363988399489229495787068188050981367908273153440352681429361871476703456405208486693049304194723544752072532206266797147194301988838996485951772980691305610339885495996113765919621027625593267737093203818528694435462090267780742424685975551734918193031062180313007133393443176595821892933997935012567502062884804638761627913376477041584419264124673200180641845342139680899380160096586195230308893665090259611080465465414870285622056136803825300897625624530978957378624065636141178630502287486596550484190832067668134624427978501518840041534544220734327585111680951538862971629984779627648873267373852404170026359173944548818385904186139428613067639699447823704840094322639113985610970083577284116903690813554629370668788082942606573499344032549124359432369816745556305553552986073060541484910163496777625202816126787468266444342754552478221686782789016367502091726594549574215139028373543778986232495602666446410269935282605760555400720306675131032459665767747190291203935764573911522329098649034624485961114966806329716788697582583021261668122271808363706540776950361122536509306279057930118747596093068405484718708889085852433403018797598855933497304759325066963364565971968639581061558133788762278055765808978566543925579945172613182802968639394183369400215871826549551520694240295888507349037466340574657283057248319498911936730702034180092512130300697099999513248373346458064056526796393686704033442172050160312525089899852043797603915499590245735156482763134404609077763037473075515714985068448188969194771613054864076441086488235545749553742714359281273541891603854987534577412446131831530941793176831369547127280945198562795530089045044183518092845598545099233353674022981202622383455100069439962842172839805909662935850091203049558231166847595694806541050265987969298486378960610920901901328324932071015715746387715441037836586309439539750029784788760460936610937674798184896065773499235046420658611092848703022261385993928125625471662867827537011222733242254004752498961732726681201059891727224214557620374818314985410472080054436708494691785261712797350859881326501723649441836008600242530852440874237876273570992673059510697783207605874243194942393576992404347418120336557745231408087955027483431942320182895772288466925756473651100062643290275046863236864514593311784414515834008113472951952130252934220585615366803375772196681021605412397576871224583794074169114628082651320084536058892549096080202609354289996249559508868573317962932520047492095581807060901889397332156623215341726915314714240350642006367016714984580260163179332340402007403559107743447605876802921430149884064390054228407886042648499392774863481508624762865129835710085695508514745039901886331388432638204828485230305607720008430050325531446289878538888022723109449602342747848791195930246464850317980959156936218187733747893659670438450933195125216376869453006237363338216743214907863904865060798144666204481122855969466872368786508340506185470539312262696238845517516243857849429995055393766607212321978323842721062536887194056268300137405977955399067403632108784743784404007898253454730318212714916009182166670254093212719137235096141692042385640938872303556522774094294513980386967152144950538704731557457265699701495969566518579694459866141316865113322048698870180522156943063357750095313037128391039771887791537832467427613433814869663775483837331841500269503591661532540125649943825158882870481977167657205795292453209177044338177244779043512792670187660558100330055539241809925845250877283182194393611069677841397519945220503877293146905561240428050268812015722545787420765063212071005567565569603451368615424277361320480242397696168890659174762938973749046524006994454920667914006998088357042440485134442112143262288169614846653943854774998793869846699325900262717612659070402901579370201627082081663871273663202972991764192105419119791069612323854808740285192098154170102863803399285286064782254134447047705128923591234679193136842401873902946408653414687269412538334569373763519984129477007440719814631319331976417550938902852264925899727080125100797567732679338416022370581102539969066734284286530857041177897540569378406698071971810337316328255482799181046527243785301546436198715297146524435754590827367186932924268184734698024966898978282583566937490698877858030644585254506022384042301413265552151264246387645509460387445273929985903162794734203778446505297459715345909417344350007021718664615480079040108380635125938237940195660818304135070493597406157664659070066007797485246272351456854651772084263297801891248510932625475707750707157693220863494699583521337491696249642440054332490690329019950478130527566499301730690143545919288420970178866874675335845503766273990578861358354385907286933215572843615889010981443665951068281933595109741064629940844555148340623838340203706126797620439345346385732166741447578298772406018665601792675814753173751532404345053852108742640192826571871046557707675837047374488036712141728378021115135983794479873346211847212022526767495117759463846712923256384446467257662653894431550954931782386287546866359307167545246792931726503270975560541778079300566984979055737964664506487063506920029458935982972325571664567366648829852375486311723515886111244870683717594727397427244773246131866774443642093630074474121861986742630144641685891117128610552403408576569095511386109451283618879328539728301897635234037812040976601113557400003343151331683364517541708389306055956269769930341251547103127332408459109271212662024372009961421329922336388236337270197762392661607044304839372855098949859911869528933220484488311829985082070023009026437218848399157922595784000843088467613895704151770967009818911059110919655831984863456577421467670826642757087739844292199318352637036458865054729286971019178026116457833138308232514594428556173730866653473836846535472471597256865643327899766260431848140017559635616413470240895264957174910643067069456539146562063957970257995525875473057088725850850593320251295554786817811592296095459534170223212539527374324376017505149044974916391665019171640611761661042530496117675434562481782138000954071391060446764331913524109170476092698030116960949424798023767452652922026694158875632805589938753778332464227908743090448669907800043778356935505899694605656504249709356720512611194760552899908809962802709602772658073247374935717014275841795225733386481253161690854876374776556106862516442238024651319422314463958561814208905134569392636981874678236691110152104404963946993948571111223607880978731096394162035895989467376349006786662040854707287902352674171494418269751876731922559927998095095613564213141263329545448256999078487154571664290322028294374700453777060945786827638102024543072207544270583418677469570323290449377662756480690461266251517808502148354641887771001354659652182288781905689148076930830081705439770357191086823355072876507833405324013813792672967254007102777785047264571786669674329597838674969458859310180673094003578836903531670113838305710196022918838592859699902778188111814984184205170423689486964478115376509556881971894881669829931504029840360801518967441539833866086576070788706120643472613646488247074018618057291042371454763369477710587457465659988185357310793346219327984800672128163467971212721095601804620658549941840212314244054914418300171007278541172200714468097976713760293708166318051045378177486582765362491634023245744002406165310591910553551445000430033218234682108031450164150211532161534734987085537679166936310661359767284896514435022450827834025284737684303708715798878749526619335804424447094547039874793904557404549114292938990397873550746275387700849023997443329954351877606696249207953090485301969120577898840680708758898982671769139069020676529867603040917593134417739911540248942004137415246883142448450487842370180210675110638458151934573984517449058785253876475061742609883360751526631684096191750677620873455076672311539001490786605150645073361415705096871125664052296292163791765279248155902836364133106970577121390035164544119791474557928658686052118266455219663339920751998243166486214610630122506564057999266270997697111552561196308516051447377911618859234535783787168118514746704288405888855607183474551765358929612792455063400329766906074027464283361674282216439214491747169471326972427823319633999772954302653471923948593989348527994140171371169175224503352563262287313204052305304398364241564139495530827086494631031786928678572228361590941799580626648312419146475563302506211319264082947882871150790872892690647050658953453632699100196050791417293761578617908687354910037549407072787987858642284227934622254328240636535386204015974394789368437463018648058894074099167497189621960101804445492736554619133389448949950231250649780047879581192952432532513184326639674270064774078291555296629817152907713971974111379567857902555787565876681430365566724428540488407370115288379743251258560449184339713500047648283203596765518953476920251120656179394506232734766592977356454027744519978862108561664307102113445517082778155183883608035408442742215814573448087984284731146822202019983321481378199618163622310769652389096366897438805276818475624384681683124983011710589073349772650786883028195781282988853089371729101697205343710363069117888897087908268069495357599167216210597568876815161470972260475878622800331969774998925880718482308355458334432660385652605644659271624921292075191761585636184224360343304480016561046323757429303082853774708445227661357459099924026098892991561972807118838471557273706873258042841551559323773197988756015179182901264133990067090128839232058375723022960356625418451068560715705911780268401141521849996019372973025171721333751746625868901437155649784104772723784928559562364214351346504293973158239083794153952035822631895795969029812516020736613863985875789730183023950766687501998813089841309198263234591989289763628475904066819338422461386684537354957094339322673737426597795195272646913837049145239934975055485468114580862872965220279111827954673201993372407334667446982511115494004635849785367603932702841548645036450405473192187940657060046880321701088239249700986954408190760060941167388844418272186208465043132199426872097547874057565710200941634934005477553391388291404507132367130756224726206305658005514548991402121865287404018540144293824855993347642208551116606685638113700785586160713157803429942658005519138092318608541162166178863808597611757365841965011444823898251559688081451840837903138388670649065035561930063833732710632633186366449050823695667725280967545862551241607722358705891531787577599296922918651991038181932441596517201373693804521055870159314492342924090379251062885210952144512961564719370841972729932637775826227596705847210925895723647256845603396742251282182339864400084710482859087843407890676954992748153755440600901955814677510143863442313729098840907337064983037980098682193655983010836423405776452179448092109604669921157115684613757751184696402470504431698135476588504490755598481787773774808561525927253701633848635076467523633923512787213834590836483050108040046037260753158835272425652300661312781931866017983580740910665440892326425074169360911464998896939968002355473591939065824404419091299315284252418355292617262836613512298786657321093738368203511053167113377340950294729302776973435782930905396309276064525625548824736765926150468883781224973324339785745125244681645997149130293279808162029728675204149015192726620672090187129562156775008243538587340742827429206835196668042149863735747404076155185097197552488700181634966622113415389545280094100997767767961359487988108945400039216936443341214139864748806036430704614932521967303499026005395615725645943966056841222002185675128296640213461851653504387763375071007443013975456434131061141237879354777327162744582050808465546731586473460466465445672807412461113217310929843519831369693236037455170474816857041466856560714458754240540996971375972288216486129567220711750235110277865078793716966378001700261046655888397479238430701009721334048580092054425963199788758407272184289024809651885156559560682174672445576520671836129078990329798472653242664286923187921573798320987656741842979058397102977317225703072732160287109342973828838849425632590869540017809778312034486358275534994909797099799280094874571065385680492455836070116346084054162881476197995486079416448919726600356357274808025559623982309345096707608089424167602995719660881074650503703340894099729382758079573044561375557172548771015215348256045647179214616209682509570668449324752167732736856764161645533148203165682097489060292299651401805597882504067690515289123623788182228339543683750254718837008154066145896034725313557904325133403599995528399012308947059292955655679912292575997016204936308869610204005193334966983666719304222849216338148254600020719402174679905664514482849833338075939442420670937984082170201980855629062913641128036221278877401847479620507070393614897855784213310941664201147873422013203907157459791341927866277645562070042672364435070067122056932084615181231296617673839886925261029293688834521982756197156043542731191519891481771465386490935000981752607679592213933835329138203227322291152874402329791271251931241915710244714501726411371262759333793210351790504326471502800026277529265787800041176447729915137029811061990187187633532590017621058635831522796014891447100079583909338068372761491686093691303293669423342966168945218817830114023031736030147653044338574716019746731228321817629982820477885176552274146579554886945165390960143177665603103890326683592883799669344032551400901125106180189810295469472055031398552266540858180943242049168881919393332741557740505594158380914410155343184483688739448589643507951935212292151151117293008935687844580731683623153279821656280396102317987517230712614263698589295515706749396019072362220970382396952800903729258796253905871440368867094056490053514027366716545110543949582135883143940666001628563959131021421432190933898903734043212909299809931547724045134260849182157610309779059715140970801982312088542360087463884518311690255953418411474212637985336325970434629421032352497810678051909254323345479159835115042763752767428099742309367492750773086424724897424953482810550990013531697350778543842264095950310275283309978802865887576751574640414836212442134823811084853185839560017512856073931469228350034336687699229172118382467059004817186009348075376797914653954081161741520205378262982750726833535369367558009240263011879467970192420251024268242972254006829714684433673892032082470593223027850610914014461145230577147367169895002790994005552868386333224348219671337371527802662089856856832046481948468478769137610001843563653437170967577055531113913971121987713816254097758098262988448189001230123068130373767691640091016773933381994411740339079912212105489868380473856966380518942164244404492921884649303919785229640928812061176411743005672269527889087977395421174712457293513792855719217421936737177139865556152829133002148041272846990742242661056418457338104779142455425877811521467272018540736090475638428492064118824123525663145654714391408448749945317283218696135840466100261618806020791257841587310384131509561058912832885748144716829963545729394830528400180244786605461080837939360117806851350169646526435516725265844377151373401194678530770273830346404321480842663021902761074335062537327217311961408430143563342961988840211013915858621161988578336289360261056145333951000691188554359633746391051864926064410215469628313664718205810230103884306259508827148166363387012336174763446357548014285389472612225031212243201647282740093291607126761997236176397818417570427151803393866010113194222725721831994057313038689213370953404395408911607054052821096095710716416277141591354889484682704707453238783188186045958225127816926305555300900661074984516840459211935294951042322582184136851048822410553035699794381414467513579137469029501338431333760103658422573304447450136975140463302683402301380835632815579334671897624379821163135516746594968990124824802890929632953321581334996657990427513908634720783468075831839034617017607319804470840112269460990822485923292961507281761347554603343539978908826128461543284064736033133549969441118773733179594636473712411790486376853812739052392673398687831603183413126128532860053207128341477506761755635072632377320142800611116364429929035455771613167771984059476968159414759885632993040338359163103881028368750045907733518460190369862371546381448161809378216397122126690170777742495438533392941410254346223129447069562016091634391576567440244450574559315978455308624067250062995952635212064248356686997832327324009757820746029613182551112680433761623906063436155239656610299978692119178592686999006970824301692065545548483029792197834389216990117242256854084686571154192223122246898148680437560506557444943757989192005011165888153692203160870049452912496729063507245314805570535797181215097414328040258021175629448056131547881144983445203636295585710514386540865359112025521182339760801172020987245082656165459138282128877393697482509165184467648572275137006114951975993552286324321006929281912917183413456470478089056877812534727101463879342938969963641994132949206046855688201827533865512749215859330293898124815437715485608237770051327918242125964900160986402825107332550951308254171027117310211237264052872553354874882067181152885090781438160602509394526145532494941818285311083486648379968790162075369496887918737304861818203540092093096760004689128889615716378439668129816714267491857189180951891671770378694851569351873060323491684437694495745217469110994927957864938756451440057614405624498065619443041103336861215726315754539152895577972397647205905406405045146521280976434678551369933261968111278060746086484693467523175360385693711991261838697951620956315955489654729266342965746690237457748099971600588456023947123470648118365570843781661679949100416966550695158221848028952075019187375263049756190144089489307478578859797472389233854378711604986388481740485586910164564654032241099496650057882657479758868284289788401117864504199917809236701974686329691519648911468709821741394816598898920839027696113806708240293620305417509634137078438701019791829136389489455047011603732600412020047408294287178593132320509188368413055733079788312003968534411098940304067688546602811342104348623870922643719489602331947550759985313092219554398058538507649391599530857112974447361203811484764953985717172372147775799071045655179388557462851193314279580317841321272917292455022878079501728653819795645089767408479137905684275456401965686137785586662239456528819999829349468173296724415542889781864708890878818187707338385321435438294098921132105424860066701598757827950205953178099226837833719875648319441859948496634967375622263939806888462000334903857490754685998860612069032542021225014609370962279307513184439221459252284317920322330789686136073163048614597997172388394117877639130886750244187555002721379800882688812859881358712517182033620478998450061447872773172336422141746029577637102062262416942597419847028652397406965325028354800513655887987277133965266220853044500274966672292209855632783435439537329826894868964149101477680612705568720713055322514816667781067162035909959975427763884817832485188161197482979757474868738976549770443348849896886699631112625271456922069187179539051924974040405340483426496273002994957710751312024999165814054413495699590737963290763620147273463463102982768337846155341470033817430122903285446040681810730502035866834368565611001589428938635873158341900287737835036600922699658498358364981174401490800182994704213374579411075057099825706660945925959612149119788482065584871467147846754960748763082772364330785651458456640044598081366329310925104573080999946204773612110530712005501422252588346385337851482349852792861323641370290262823079614691972304586604379947030485710273606607742314829370343550533379075952545818307883282615205443840793862536983887809155387090056534081250108561818090528842803920200858799883592043463049759753216001743243923118669042528975932128677575888384144945943676519568883111840409047378212620156029955571866079859340267599572080276985287702017608852050304154154203182185632956844853361329412607554689212699545643875423459125755087809416974970005746434267626686131808025195363774330748645502542615481799517355142753947231508220648545286486055295339850733622746648735399239139570759899833337065250598980201967344373034338407610435829185574384258321575192670655153475994059317111251068210137794347700460535328583479795255837751947027258681454780135896966792281829208060686115551655661939571775965468774856366151156367764226919789116339246854660909497072933568009492607749908523833308876383316792327167289417386347310668291674979982697105009608034226657382277848932057423987647179908947617704609788173356745484162374786632570826465578162652633815463340237484456065552135395791085415399336022981973590465538784114577373467610956759244724930333882074386599095476931232329680704793074066617410056814817797588393527704868159424350267629560732063958803825998905020255850650372342722225917545602964134664875297818448161801919892691345897876525425502650304820215517796279208163146709460871496043640567718737718669471468800354473059149631419348210761174098273855726531991949159124834203392353059739352552832694707989416628959234643528677712898604547219833776321891241502824174514723392056174806886433299709850189547814792741982973719219229904930326131343830191414597309545375530149317566608416464062107242132978828803246022832962654794257253246845292263548881919822874897477235709843007687206307331769423754807651433791936929968911948232752998784014708428454169275448302801267329594437559619156060389850284629358034967298764698308934243262149288121548203101980726165581569434422503042276125766682009895485460931172273085341170771187510838194836276590223367876430831649115812010823803663618698908405334108140191503152072053937888444277734312988759156908468681373006625421747262524471772448991241435732334131756928283350301726698239654673134454839447838194251853485185241187592552047805728421795869973992878321154289636788970305780919118573894092706434095640998787427836050974417060060653004232388019143987616468446537753140689126651892182637585382051005136517659627456656293053184306992208252617266530577072331944370492974914633126361114116093714333437966980232558095526264691601757200536967433147966953762171322985597894377527682581412619709011510904196958526173946957647929261914345568962891597648132639291581867199215574663363551808702306390568750004446676740699128175575670545718064210384553851033546528506384409940052708605806540463084761987288326019678697791573642466685239641643147024059467873831020422239923353237255230655411007053959166903368973991891891001214480943130771580686659086803362070155360830858336064675149373726410014436312992224951095042552497032864339270646175987764711070837123377528740846401487888708182876544877033910686017469205305406315462828593621676800574841691542279778075538597633921773459262047422589304170090499542242820007415964751410647312051853008295753851401980359128108960029218230686323200419746366071923760137523232879085321738169802962627040495550041710449551950913795192687456424697368665388106314711722253952273268123131487219423113069131554155189692663480206314861659135560417685299592275784542857487724722657754890185026364884446717129955785500796949217935697778209748939338785811458897883579110204118578789038829875119603686198663997406476740468581554045332338488709288460367640325666494447402261467338255927454619291554420487618765488313645588533537381830266803300026642654141797338501926074625201824886415384852704381264082015335102670139107227782333988590474721535293798499239697207571103209255209551494276454517466501909187464725590652143490058836099355893735561919132156066085060376500442825619638262301307519530918742806158496353756621507131043789141692265458256536090752542615142204072800562995763961009838878388778025408401272868390369455372314659850749722762602332349334761138928506131962170717086211045260548101481286841470006000789535455056737981488640688882033813830058178714730163155413753663055023533133239086903493203197503060734659747578898037237973349412863631793699586250122440027002198410222211369010641667716948754941698348803852153694226323833547174643777102766504482930419984779587463613173560865778512556525227962820138586329241378369139665274333224906708296170697547506355414476645404622938760294210564975628585394566875061941494426342219532156742111307100687274736165081957831832623207523616331572641547957940168786279492227231591288329828188725226653156693442696153433240454789069866689946315885920831757045190634597829343468652110039778891812162228529199801131136730345662243672878693418802218878622755719850716884520686727158724424509435701718547125215949976550366868103793230131508220716529862881718609739760531210386543658194462034765572281905376610780963085731373093589466011112503883761495222282423159236295726319105381555503489811011094049227641275425541745488392520860817046588722213655509809920778776824249640628623128404585074376425890656525539591168941626456322575785081306599542603675654499103653681872007625960740648711102988746010718567170270695337784849868240393540382908698149703740049154579815501346035766783703378034885007287166019429915051579542922041859439443362990739613220013599684378448356157628632058272289067039253167752221774223342379785960163852430755864882417990703797607137153495336658359950823878835154868797658890351396595832149656131446530424492659184945657634165425128151240750919070798359073619491632267491726444620210574487562585911093796736102839192427011074189021414906868094063228228585822092830917314358821251517757269811638962523866210359295211021500947499565887765621287388646359510154182942783369311191347603928124393773455488767898684596289812788270033062960728153524155982402590854294626067202893570200116279001452994622178493853514301189899385211173568911006194062846641033006219296469106636427375360115124224637270887675501443537933761313429949346135356836739635926132319637881566691795723882646517451298155774956182254312660019321915245405100979020436934275624689831604236930938857166805785684099363796287845710669043254420586965218906088344213987062898584007342084403373630237655226663918125225026244419799689437994733984324655796935655479976770566262807862970543584016827012043432016147452991470426128452930615465603393635852783576868128937782204344225192788325863207011216091702053311994439842481572465580281079293330287418932027022115665132162515380859523097775685335915166678249452222636631331619622731767067584439607449987966641783847049167342143677981954892849261369798794668131985671742501511503215861949764513570898232720632877043733580556021981912138844938229212638337574478925348651315751215570904227155456106232150962674662591688782064764762490136578509753655517190427930155423650326330730317615946365110311521385720667688104925660744548627815410198154687337439838310190582369906131120999608645135669533800797477080883100132942755012796230647059418474015493602657978151502372229903349217539124625411686182162432497230743968996258569994500676463580195056456405163014676693801437610342727286632243749630443559812030337248318168397452044589739486542067027774769499709419923206791673896577797503654258291047276653868098914940314808681456995553049777947710654609474524014567760393857549075566472387575576338956433428339001659697320449883009542818964544526046897685998603568231796240398510895913455815710174758287476768649505394883982645385649864735463729222778972679937671017364789532387831866956170056107442240076003099355662016458385351176345083518377105035619222967045439751767122861747762844559843653072645013884191592188911440894300920614513369555607312482769624905515440409825454480267489441239693725737896038849370020159394756848430627240342677000100804609887402289512825587137319584739183110944319034034748518983256150551014070449843118535024205626411509771321925246144917549282058552401316496795804705547617347436795758080474848667935072844438954851557427051555046302111448159708621421746535677800934291540959003380567028338895002464671923930412347977057990390342890045915178476222122062219942904436530732050516276717012082654200046512005382143227912705046426857802410249140849221289831293972819448483039213463303421391945881553042858057167086917302970382384493711685396690677413831988522529527004185376509850462719758014446733928367436390162392679236710165468515544251227562137255702187727842876327820025278227466707751927266208150642876220120912721835826278613461324626792834510880757518999117098136327176433946147174335809661011649627840545605199889314793941389440734877333356262019552702952310791305173122226823191755444944632486254411659869550443400724700174561796868530915758230482694042427240035849507950693483389811650617839999708704939352420323756029603415939867970635412297715938644721201834009764730466424386482501518872075732138448039692120168644963080839234022765325079209548084720807062351141149954042142033724081423846605155595781953237133009650689871038546915081422950865033975522108574457707807487230367477400694791192795703516957758932003846646434021568432968665242287997703652377625236164303223015260790129710928262517290265661522586525683329235659821713641419445522087621075669194352726116306880432399019371229129151063471012584891657464717798853667508157935795961633639595163714563399349769434913480884005860394892141911296336219221068927429054554220785879118273572614098521476406361759008213990583644487639014447552419046159795824338572502088713559320398753567349147219038404195211546825037625880187644693368283122229994835986838724210230819622728968706115743762332183150696778929061673042287511790794252218520453925347389232153633720309162401341186402267950837819785312887753729722798518748614413293323563545193016581286596033427560381267055277451230534034725913136570821342982213538874593365467230253582562152632225905673545529803424284088652313611814679794193352820731179584099251217338602849088544839932244920958314214786539720995765776142880739782777719381146484007475983712162467689900472442932649361145471236650851433683753044003056304134354135407625730562141203647612387731210117981220615756309943167119700670828750800202250655021142599973226159496908003633346925199516965658427943009086983640436977382551793822012812358422195686163422747796959891440698970602555615398195146939609286155356518430139530028603586291389652556346489334926656016626470373832954682687670668428271194137276342854635957954025924405847451196763772706512661696845089028363340390192066584100050159181597174933428392108229788182114244417521933412132577799189960861188554574258005874721892014382922828704607563886237967571122450113481582116327626792792589547396657666201483470461773401964202671640751458129440777490660034584304584165523630295318392704213389377135615884723409395790341751168891419253242700337873280353543120110650444166049200977850566539090108456775547802383070242937865004234258400681639236766868900884225872036170977485753693337596496180439747727757158632789301934675925031048822030353236938328393444232091161647401145473784589561970304138347706884315041862312315542921348730709485950573837032919418257748393438543607507899617713366934437275413408752748342426132063851845815789079139717315545503198566450052584524592533579143731524744034768288075562937139515028159386118267341777168465780622910122203232499676359233284458750996494094343466527791335471469582121098900330951306145077072765179041790899478003037010823348366682408425633015270442355944455323340400756111428710331866495636512317255862608781288546537015685590301356770854617726788328206350105085376250737127715382514482093473423647081412064968228729862360817460417083669574395110152843829064238439235683598483821583799810233304625319884352002504245103577884416018693094998560441339024304013756191711631457895791698466779489317641881293554896373120751264534100914104626621200035830133787242683395467533101582247963119824407473010821762683798207805020090379949350464327656043694765976954310320503528171238215131457995966482053476594906472208592985155825877714910312643535047286284991602861887929490967963841144616585140360733762410666984978840774920904056960740917254110875536119007452916144425216014099788340018413777188577738050511151197761574084051941074642288016204192042354142749004089555184688311964073478294875529522563493201634675431419359929233632044219250675593890665297835763581492739710053995468141414388558853987681779197179865394044352089355633715978613579712133528049437796670514011114714222580527769740936111607765263865396489377132115746257308268890223259469492046974857842257415111933228333080195447122409919143317681357793560813254143524357112447688224333472779528952477601164101383364409266420642765334995941520078054495041892217700106531733289432271301440952836713575890391060928624501099148669552044781683125386776846544589924166881796778737504481449118487271271630943139854046149394467856944364867751279446204063239069871271102256114197797886474335889303154802740999787572986450890539826005388796335567300355227375914512078385899807068799487077126670738056550165795545826762684232241959827074610192392576612753083917206105265587937075546268933530704216595294402671181438930060158629866664060190381842636630311174626359268174028679369365512342053814644475094939251422568791043418759572425857396631255647860037481854071669306253352922049337614581268497897797274055447393111989293113322275248718258541618661207616542786400784093810229387171007054133326222856341805940433653171258258843261940480072171011844395006945486217366354710008107188635187818340418843186011836019256886541976461448730248873579322615513169468375866266717031074470016627880842782919860293038778377305442574924038944696919865090698554309572947355918437582945393470874081062134261211238191639645166990288467288858709785883352237679541920376210047570229868841452774605230334221589175331681245894003632434823433226114469680440487861127773730556476828914717001030164475915732555857654821020982731515623279910577014453515666996403589778737622759154525460344620882995283154118231631155813012185664307718114159860172182352262243185638235924497459928809766664524397488234561238202202145430732758505012730100417049286809007826923097139209852064482916993860851416079592891511639248773382017388299299841819072749940951387625680069206399656962929922429279745041532686409228539704169181513549321646236924664848843407665311738862055960316978110419433627409368280539819408654390715916935990080526117682551133069778150521973152113422719279493758925585262417383951107461945282642151517084581248612703172004724875965363510453980984918600890511657773619458679047619097287738231174010641820561173768325545931946014032896596640426408038078495926153305055421554776769107296638480714275410762999847318189477208625525312787450895770565990501983960916742820203277237237646516969872419121755080297675122254262031569800494559040899553028437135046291029058575790172590592466121274990602525371651692611384258205317742153836245450802732646566893021240849103786585195423213186388748473467104394330403917766152786157429452529957498963182238518023770734530412623448363099478798571197288588458109116302361140960728402991646418469760632367614852483700145178964400330099527578673651329648848160594054681089359101665746759367645204166624364274872839462549221929257234021883744415535486420865689275784966001674893383546850376806261590035833123478462899506025748447816001125982946238158008898621401230053708902834721646876316628804798358118732346415368377340043131034778071579506351771155678584067938892765813702050573680619686091375788149051739706011778393123646789707171032035659149845219910115350043975617696162292992036852396447157729505021874603318999906026693828741776418475660883517388960991440810314169295497690378601485692143945519641550786867080079631692185665280800091791525781398605516780764071780032520209699629068682386174912571278493198755739370235881031722936719552481144475755483392142207949309922567320205368588996773695776194863590124901835543631562027893641950942362784797356146662575027026926244404726235192778794568584605378486931566977897751205951899514217155162092420336342492049938165158606697121638842942334499821101880125505264689485205534491474479932712610227631390509468934643856757772317738701653744727740708449046836425220550777581361079143950349334131598125486541905254539533163353948588910143043906834479229740841046975020716667191476056461259819247402301909006347786010138909834389946234487210510834165345893930149853455490948320213196035792467253993073910259167359728542884198938859017767840795091410407032249758880309172118039525188948377944832280206437628086036608680528416700587468418355183786324688031810388845968346869677748762382183712220234802086168375830873780122000327565645375988151458839526634658409240822488244770693442956501120374871893788964471335380935080123833961439011285281963685181334404353120772991932346268878359759928616212835692762318383621697831153627130520738707008170696743269428656935420365659110998374323335944174403232116264581653694892553369696048679045173839896072458882299128300261275992263127054673308995932552536106762769974720102704525126929629138687922901615862937722005183288949510491108767803213388840827994573927968621197003605117216137330745217289738315537468183321673711775693481698358611472047924306755493464521727723854990803211805702768055302350887482499826515560982883845075200831653194814035284741872190667149292208299879910825244329910388035594661659514665398032583226481554211521641676082820242954269495906413145881179177296609365977130507268773587216694964839320692162083034585338137049133914375492783174597681317419826766504352793646041249428302219888232163922967555240250732281126407379058208133584419114411843623442078969529992815056786608705769734769197603456676401738909946544233770379230322156090185968421001316808897858671353421537556394481683170250558024670243862780508785582235527037618074349923356237253764693608629853366465759495333789185570280679095816390146163461606157116431461061309121109980515815034376028566295860411687311802522688466663809620169254072709670996608124921429656699033086291109228687966442790889600334980826540020282564786010718394534535130794492666367948481959098316885940254635617254996576522086571114588265943479496824161356855410598782049925907464310127931797859366011964509919533274379682812421449996579404418584294830977345795616224893499311543938554160374250439473368237144002738577928128589978219219046082412210316393864313409120587790342967688885769235273904188143791333943304576031381089084260874284515732648170189474432513329837198095947814624838096862884285755031642461377792116337509053889594321288846125939466696794841045346273721657011515386749865325463180100913121559947756429907334433318977168379018929790820019126220722319860764274350552612183561662433431141458530779417135749986419415548967995302552386499842642396159366881714935035655316909169163148796716356053259028516565436738331240953241953514287634826170901530212338406195591209593657983058691324404071743247136854105302396578079570023103172945492108117020224038934292696229366183105881194631396237449374994031153396378753330168325447846057547252037896793604496318566238621704108040343120149956953718650330515074758215531065875423450491747332566418577050047052835033177668866836746282748897781845132741985116699295015594732362376217975304350908770478786318944643856843529256405621560314627109109659579731231102266507705500637231828811429967098390559826883482919681948809352360783611145189215995853002501765110303292504594895706953895912741439556844368700045656209821671679810834485958508963528283827862169421101750667991069097145059715151672407930745055391787227299732188903707472381303452038376115047922910799357097610533021983058314966943957138757641167090525846925562453494657740434944103947671986255050864752776345493388430454260737722957209816344544310673247980694773491260544186872382469937050887201249257761124114272715484297983548583566299255218588035062855325087713854513928880260396937078293741602437975988948712419504221503160317098863539118438410222514566730747402086848442969695893082140901656873676979479570904391683548654587431758233713481149621604030585810083393936120394551894139738762194089569683887165879401342505216540936202492863847231104555315010484908440836466757378808883633044252320916737727588898945930198480202494055807590733729779624051496616879956239260001858948311752900956562070931174266466070557546748903966410832896666735507578187798133370647553657353022777832714582286606273931016876901612777272377940503965278828982600340839919683011678288963933722378818846435220027180555163586935622183152252983369282032267149474433367069386118585511900736996395645535716206383686959479127032218504449114051810286772970363830189788245422210603419904663981329255172044689347766408979821720755950794047202720977155295639454783516358419582246007300525173557250889070003130098227561140527911284306162799632128186582464083692223676875135684830401981767678355981980610152912879436140374558806209063454923212966521762589069117845533553690468415155634993213442195595553271630103962643335700251510465611432285756567347121120070089911949119438149961913883177383984646693067743424586690358654083101606323707292394528605026639727151837557867792832999807268295848760573545328253712591246547250064209084930595796042292233550307329444470600674975425123040663486905018286790511998626328756911763083500157960419554105047399763412891666690554760014017927143950120257529053423078461393701419423696720122182590945897099971488926364916669779106010331996949454994065108044022217184146381518788374817282890795651933118457702643962760751685032340068559493543456552895906462058171158358311631711139177979215295355736176437548509684962009393423267530946164274673773564483197016627325070612790252730364271058822558328265752826246658011954839915077816434568954155138704970645795995664436915334899490913594767476729717466602930338069312470961862824546664454776097688043234801387719773974619078389406287697674379652219208028613926378419423435952017712007908243536699521837570742176101469806696443579623538958592748418453792637829070615334181864405947225413053360883992968502491085352620591917879903776017321665110772709292244568476436313778385135560923927635457174342662485819632488111703073076914713681798817078196956659002964333719357952882389109668719226884774927749489801850381452813308131097371466829717533423449171595176312112110628922988929842691678955002313018871192998759766033404825929791337806657360009414939288545689278117457033512313594606467735336308573474743879757456908040125863125121581084165198527722790016197406790057126383215133651097253543967496261932910767502539802840954862710902607468898300052271015857357891225356562539673515511371822172019244295547742168691066075482371408145624177792823567900939569420712020274074012819228550736055136692926162163267999560656962674907395783145683402135140802274952358288941400624059738674758891343783671374139150084493472312714094790240881380731264940769185651830319443261245229169982749996187156723441573326907988193454841479672474131541339826856898296913441482378226977628128185358676377422218687431029252916284208820023340354915915678714704415732213461129226161186622631323475745736490960417910192557955713525922030741617573865235177880749522042372137249675116081148286827902614590225171897017991547748813469071474734308602924641792494201961547326398181388079061076664091537376145823663835970018017902463151259837588163581386015095210074047023279427157069635824256918431627079316362805342570820631032005713967625677628810525851651229797309453727245268398498545763663277388853781038769168184111717402009387348250215999121516968301698519648912124913752516050937346249933222573102395745471994484400722749790553373186861308568534650481237964168917180997314721993815218295745655550896960306830820113646287441549341088715319042497994128330433471949668547043200453670950252332498783332622700448805448188479173003695663327681880553912385981257100484873700709044591086434503807101559800436805903505545106596586646681649915808404377048624751574203973927502960260741609743723849830826201443367787568558782500206096913038813738830124249936273181187980850519916788272794450591427466986309950274770760413327942168626062774600581470441147313800593209533429374917665636635568466258568744084276266519074290118779178424493581392901483902209788323720724705160524074226240463478363779549491819010759513301163611602473112931631365405849160608591268929186173439279750272597417674996771850244495162812440334713222229794869860283975988440672844271459510522963891891473447316739528745452977430440080583643216040316634511520683128034359068486672105888231438425251439323307400842892355815764073482300378995408605333508365452981356118346156854832188671820201630272227261839786050179048016096271760873208623933471472807570894365823654124334079521111230016599230258789027424084732319441761621082234817048676119038027958302110845659121473089775465529197403571237219690047218457386122529862846190256926019152182650604424405384033460054208256926156667515688825223003137283112283088470277698303858620535189279363034515991766328135650370708655811299130095206087651163620026552545216440556567835093969861107472207970188560592729343850247436386882168064239700714261725052698273006998973146876287067431432976751159546460186941751766099814311579132297035796742920397688460854662875190668022612353623737285027176805250246885965220102021825778320533970223569482777839608772102456464283867210486899586704848629067375957839491698973188918913717047995193720440513669324791380684520586770492594399475414397277693679230594092464413125766959437899007641048734824223492137689472370718006755514852885173762227673240424004088421128359035251129464500948080304591016973408692669481146781493111937856494304332222761134464116021510567383052652928128062563177187155299918832330170947440916510842029840303277876720082708665957034090020162541177872592823844935424786903586582472092671968653372588093170743311379741768022528022014205795421738317264262985410393765672559516403866047992030165831997800376750902702355526847753984643170264137544824012011668584418815680161045542517554157797886079165919822885906900677668424017936068230577601039217494969931299940132799937297373181725215738097070166855344786647297860379658322867411004718973412913632725994568389301479175097973038858551479198560423821915691554724490603534005228135779934537501427570610297992402353600889722951047579317101032656831527113164960261916999123911514906414449242292601013913694133471184639909654994986579074287590285225017043575851169483420325767408014486089293305416427963037438532508308551185078279750698679165267526453064692278996985649657255655361582319240833334384840379538884632475565196046237727078724693313907536868891800217746851017933185339758338707641457300590092387322145042834116939228798857610418935280457770420392616183763462174179848648829878231075253984137766505952149094759498528012532168757196538553207608854693517424626995014916378891878227762077333082963853907770324264338121498672016748469792685577456362668533361988183089872196179423934108611448467905997913777572049581705101122898583655026482939147723438581497250907392564770729257101327717000138589883347275697140614481813651516223890880764846326844882393305048299298843254556317097001108351950651524469241161965759661359871305680076218719807238867543140248477760623380581646398798142357466824692896224446333586922575886002673544279547825815983501286767174763043373435834432529476060750983421912900413430489127375051847078573739956360212693372563448983095162475697443421245703264818107915244569205182001437143085613647649394852511885485898645278594451381140322825618798036506130289425204430973429783021274152047552270099458230193439585231612262949230656682302428790789597757915107725734512615051296266495937137336006408979643923837552873614450512855373372259594069202441767661981781494310904756032046394863699480212248872028010170444813738339690104088196662173457305872941464394781025712121447826799931089701827524802091413312811372933446039787828899954685760444645939668296292468879835113276336534964017420440156549667538531069062801435687023477457245802224523978374574354793476352630696784667450834781170027761709466716299011657605418226668249378468809940261960445078716269570859950253593038668111465978665821771646669448368706853384038013973304438512662197556955523676635408242075953371421971409850380593782722847871829051241495414604188716565896391583211125064367559943099660401294847175806934921833834099273089939954673714262848736094918798998383771827123686324729342747053661950776451110919777093734338740932637906994181517252063242510273422549289771752755632873636328213976899835272880095522563138407646655601897754116294959582545160507532446717261466169467292574929889688901356026023238994923280111255087593059744526761853659598197392145867598128304565686959571575061720199546708583350985534854890148842433721987488337980035897017002834477457336403959781019006612721297403865677834938395121358985111237232963944914789456314178115049693740175849548435594010370928559004186080112264647910172484628718206022633201239603838736528010015547153579207280806101577105561923728744415969684290747940080821175664597443623631653333610679006162120004190965287466390366482224181344625219960598981737164204389953546820066036159784517045430478467571197693327008603832532472214640833425731602242191276580483960838453342242970958986111711406307157290926052733383650716892078557086589799934653444717019685244364149282445332648196573534953831158120234755066308270131629766873142558553327710119591699189253794396194964435297546170698550208981544848233298942886970712324601901057969552860965198666427551548084758244304221662761196054004202847765449773991181580756823356996377008440120001123169325830687763925087559900559545100283443812970493933308005177364041436663476992724263050897575799074531193607404568147321122729790982348093235742402864150941383935317253860240674001119844600442915751755386222306600630743194376143576560319862199793611063980407430437362290108648174909199093895291103125865347787292286413944204688028761588918646712680836549797480476269895700831496090180531463620443720144643158047949506171684612359944248695449336817455541109203216348587884197015225995654471626870599871860729992196580441482903729805026332599195297899446613488397603964894985189140058270211608568179913312032555070530199359101673458444524296291508074497508687453176678376157117128768857470028766838377256037303247523102998103096107615140244107738032887720459334796086282235298936184570606758713441376539894018526250923089243851366260931263477260404034139841374414600088300414052943338032483751593027923401596753604237393864384170470473991636497869031523140857241760590769437575678668483715183574472196210442481645611420786884482224315054303001291389908513031009913298716328962721004225144726307215824676268402081718348543418969533045221787716101706723129438085498013622525458313685240221196573108879762868091904678003833619456426126778681196695113643058409160857943607322675934349803431374414360150333042548495619236719387091253983109104259243632497048460076217043019684587103816876043389533954615609795664746372197683199164214303192966296578337745857131649172199096296893850577744283646798371906313493815908324217716786074764862723288943801840386923526636075045675271517012778667826702327068752855990162007813744559398660711957204641092623765309421869326776465227692584779462560876486664913554398092388612947899526225390948213277535993077017240183146892626272735005761842300226481594025779832048378020003724686184688336667140671749114729990363387802271058511734367876296437794242813462079241689861378643343513937878597412063240992819284726987568756202650090304778420450838378052439268066188629658475213250253652455352574936290108209398207423767726800169288069083030391258092194172692178581206830115827164631003457591711782111125016941033913288232812220875180235575757897612926768259979114452015849003859707981288565570992033787856987688536907701812792769068458758501819282531859785770417173765731263389090002399301780297678472727993132608869630882000851781417920631030981316596126839504789222628095764775462007802155858128374017472931265497391160715310152283455922449579132497616356067652567089071180023682527493057550328550831004133688770005468463251513406091249157725109566605987020519353238776658548451340524165914253184595716502722138302305515070759176757818875926453084537189601650658143999201783383913599237283446693676023784361673055842106539647998567386864267417297110171366742939643645975436104462046192425622829049304529264860040623479698127072159956540785293430657039346409642988190525907629297488411247227409863788255183094912684978154756847563802960005189155281908559294700205953832742833369063961536575912799888372783423122128268633264179877694655815253621622188902512680562246294115890015176116263006606755493277158133075007660081916523980162722892578540503115303825253457083071124580404575601059460150180202362077134082117099841164150687883253305368157380201318110534554407739397817040171329574593695482398402734409706898170195461540617517213203154980094599359012734254699646544304623968644821702294311976225127583891941314881221289793217486299556122735097741734399815075885041315869118817249237524791441004772675499679322446262576348258524614058644182333661298046840097124129695728813977924592367282537964495904943903932263640043423845325108943912354322686945507581943031075708519241138681485865802742304479447734921319528033627249629857670309650595121223514729387563394703898872349448226529076997935319024134746177583645903508853142565761981971998586495722872534985901012019715449181779705537937357741147147223908732906845131376354120328600447614936565904053247335585441647166865364002171273458518169357530866845822493018298934678336746879008072507229570082367529465143227679713187320473428726543765769435094123328245526170317563993635233362013405462214133061558063413285359934600293741396570903950295912355013142757020973925603328738680080125903499197837377840280575816647738208951140703551424182087835076868087989739614681815623165524620007441073667576190851835291182419253653549092625940013884100197123504881182918349298022401868554099873637730395919555924941141851842805757727107580406887451173467986343813679887207637148175994287124486112585353454178420882081425758175676610488806058929041763100349691400104118200554079868769739856372461563546081822661165478575758669956037747093103435239298279680978826860242480606424447230963905730394640805128488261141371905023672617356654941025316433466196910733965652991796052977753820930497497279363866740405962262102373551758150422684614151128967225834558116052347301029452266531651904347093851312515480091944285419961340445008453258399027145588222443876025326367577913438868464051572752218005432095698110502666896066001985971379340177429822763904242334288774674690989313566521642611640180866781307346201345503471930732126798231428370800100731614311500199024706943982342955522799669418249099973713887499135938237581749415531586558676789339516627422196892788854089584617748742494864865826148952165457660238744307132450880359768815607536487689546461215160627092285009783384533751530339410998288120610954412564052674920499983916641602671645899935955148036307075559320933502316635730193471646883907424900099683980127403968780289134872346383466829146142728362913616773640845873714841639978401657518202803102103537839148413535170683011480858267563156831145947271868627979535328946030790612314146214863747148539173961445918808341493909110508205869007990894770598361773616179550614827111752727120728890723190600509980962954199726839889802878597313878795185704971170861894769841879814468510526893560531149484043752106407373051079619595594902631765426784603320861933321019942211144235346215225013910124018474724870380360194817757535988880330560509473314876938311671669222587264565374841728237126036469104710233557210000923266493845015445478890564092733289056439589640864400178346303111737759067809449327297482375110821623707613882648469570073187217188574562619478371670860368682868891746704322552199815514362814696753683189013528166116728959346878363006153762152123012932725678698882867541889216191025965364731562350119195841630317228910022515327539363198057513811185789540238817418408839982355788502001173962889769194758652368984863326773691074327266770248408305639008855337730695149507256375391489067474267258272862476082486684654148097323435220873789951870970282719959730188082248177108544862524410408615886993046399268766947419138313348656684089329096500105692133283096857507122151363513272690913721284619008737688348398055442787761786774968013221068450670110567132913500321581064834526655210378922417988165228544812374275707869450610680913940788600740581506370519387035615125063665088600000409476464082585354673255717369225269086493160641093584180993663473686609874626987796485490983368672019575463005677879408774787720920397615012517756143428124741151443634286183707302512410557925149664895513613198931454968879368710510189033200065591225581474093004357099865947273301447111664164313746778634561955979204001236400589328615405449942516538381374324797089036562705065906088879765545178858235684591747772218566329458061793198084926975139484392773881137108841933901809821070183770722677459465708977899355532638274993766944123227913675583160150306864761035041304983061452835211517108488235586507664421848660759359707223635447683285064991877466279913413194566671000032109331349975101221897056039905528660213590974460484424566616164945590593226546863690866753572153255821743557862240054097833895869097502805027033222151297809705190408404613435139608438235604547807986302029096588430289936823359977579380954899419025375419632465138632226749391096031290626443767330187307141918819903234021355459203429151671403479507254362468453630253494983704843795847442113525580763125062460495561820948195352313059276597281039944833525841762844120131177180611547334714088984851745975859993586705740024548507634645862342432949524557852636512068989797880025734403984911739055767618210774834399169601476372478468530426774579740674961806207165796703205528824790297872663514136927114047646846232276033320751733694453731633697867017525263645446573751025210673016136701485013423862069129350273099590017004966735068451802617461923606544896136591864683059327656848465184876413516006429788565389693047073087636402803511170427124616920710127971781337542387435079978744946108745732177611804221148532414785054283883205599596490801689613987025069629429125382258914906958217084527555846709462550028007636252438278043552812074814324203729971801756813909437186811597724657084383447751311882789573386087604175777187772196445503994077293599344929921569810462640894750181147592873676007019701579998200795162054029397737961783621822394870811065752685585800145058032251591179651775423512802459531462497474091763669698038325118191018918878956348254450939052887711088673298399116356680756379877699057719898269004894305277421238488354681794519993915848879977811732636786979522026122670299973413306211530235839620103829535731619732984503287588322772400744249542784295092065385540309677825931286130288498922446970621823550838862130620889026341580274010627054559711535481112895594992257333380622939148514107927458727747499153093600344060008291915907338599262929484711005097727170661863765410542340015912827069506036158948735832887993089801044620185588794557987685059106873371552676269701714827974930066700469750323283652064120082305811848483154487933058149172073989774078585830502116234826968054016451752665854832810748270373064999966786563468840545450495660697840739564427048249064765958861561788583569172514679321925192991928426231683782847879230201911410729838625860311774985370993898910088868819771681175969710499945468221637124082236358193302966779867458703328734403707650640984046217395182141483181142786821710739526634102835700802840804139527794779284183553015010621532768962962328656191528962700311699179378892772272893998901685653519426916212942530678503213095865775504658592662125713255679363617051819323316179208718412536068057362427378702677805870859065848963270681130800112652216509709910453718955006203574894479050729545864471743316975901047159451224598412476941717808762588187523854625032275549733794968338309371026358137714884438610064366972975279378018857152541464844430619066528662699344398716992253446017647251369892323664653253272619477612489838138268848179980076842442921219636103646134454712940916147513647227569428237316037280060219560858872233373477781945477614046093511211898441347328662228695732801514472957310793297186502460778105445341662742011938489284263239596311154131168942754339209855862586978681070289674264625372945516517243537758517930492514954760408550848339303693468751953928819720213174902427507212608415156815727075884347526277726313019248834016436564692439482759317944625299726784863948208722858035067263949216623601038567080172288692878810245333650266538595037993789471770573165528480264751262254401202756393009910327220948040851797645717734815228610328607089301250157956507292360334700815340406931828750461832481580411749157630698567041578260150381946139080406703215030523872552278419545189119978221582159459506872867595069697829218069735970218117445921887625547402056854313564366373979240964066467787757257210512226492874535811589201394601743940027773787720391670969774575821259694247326911854259729123705728186321142845208528649084974280311482920377698543212906372036068181398498023694704509942529305485603579152781541100161367810665232383267593160742162292888577949114333461207110831181494395583781350680604059421154694756993406695773551226155836014158457355589164843048864603836790336914127372622075336374085417416449170963334717340319883994128958211167387250571061329654156566667840839801010248363449564155955568693076309293031982863546636644641233511429949200334758835150770165750606811104066389043829701288901337465644638207246636531932806113282369131923511616461068924101870179691568738775716394802118975817631075452470708090159450094892129970884423969415781790857632764085031086739961944418666013393920087137532458800730711638762990012841820940340213480272338374092295554771435629124490224348335771251766161161402722365595186691375874146348055857072327538117878263306530739827080782225145944230194862090314884495526041134213303588612083457076649671991724141206473352228247537243218503462565868686008311314211696596911395141955635714561560734879757104235023624866736493120345637340709030906020180178758892463055718317272880315719517522939330335882194200736786540540051255910012858753867642887720164927995842281279669946613690840749844757398425751099759557137267258954180755975004132504194430575718170166107508192641960805220957039551563899109265369433310021312109312755564412672311359515235420899633475142486024139218719651965320907695384401018005830051437713553160814695344691527485227728743628466074044067004612763513278327837896339257686851796836308416348840229441000497220323591074185924896742617143436865982009184907540578204069141195492269843428928376229557546297479951374413810158125094384251269021811576780694959601157249449725260333696866693813637441509361799492809760903607172207234013490217939252497001032747812721448040405375649711705559178960748386325117641192154155386028172332823784598276498890912663339357173571665214401552933269078780832666972487017815523501305744368120014850630185313703829963966702985640571354431340616737276289837665574225098984171651946806741966988731535308207081845186006489576250304201830773325796077270708789880881004849563798591940736632594831344187479910564607844463625506417084486768956544848863330616601867716619838711553518105045818308835368172129402069289589602317042203580264222820560202706995866034716963953721704487861231733466143098381168388406243403697680240077896487980093326099718924595966591274387717160415202943641358542343310368816262288800418030008185549821436530860821279382421229450734303127637455190371036853795188641974307363064623238537445615236853871805404715765703223968310414084676377995765917720999512953652147309246800269008231717681791243339545521267979471591165697754027645037910249121931719340598626114231256109183117959481463925767838984358597128806646936008445633293881340870338721836358263153954931270374293035335170625073839072120114758310908612785609521414950872217553813990085757597577104751810177545415725829114675515740037722166560299989779023254625139874398972735145633619138436900864951921194596046577947079659346298359993295137924734110753825248999072006331295393768313408165339767037301219288914526657797286415765827654455527582053309213168410610039573441856872718286570790926834108803558624222438210272700029499491582076552533115803487893459777502814356537045088475679686042429427205256982364531511672035098216292540880402182373292720041013538255069311614488931566080691009059295980732614057169633015864787604071119743153765219815053064154368354161785875091170507227860505302565711331199058093364990873740921649980702279529925455803797272511978766269718275138591283820739348435084909858914888615361001038178544693011378380363414348216062559110518729337123847020492220390207113109800642154442887945274629886212388157576491667973896102408693107277966046134077393123079235415037440595347644519779945346611300654702040905599174860802135214571853220365084305234981289404171023002823297080581476989712048281688816452996582910201141997845841336240018138922924146345962072421666124457283645373005177897380922801222837236428516859610828024225589206869392651106820634829217560491077159359736216762994928140511823244600221660570670820642668590427382749351044967562168634055291936720933909252362996080085468992495114799438302090388375340643864887894175131008888194366808229879285875704757386771789864795302192689465861910107505451718266372989158559876922429832432106442098311804243889726196676397961688516978720754754494414629902650777076425889732872106551612480264894033698179755594862581885420259751553554750911446407595336974630126128497688535860514822006866728928544586615936248161815770778727638643620500339053131746155934071294416467365105071869310512294843983714139754325225640209333070212029546503752604627320753152248840804199886745250361447307301722055001046178430078319161563591768645432897401395889951057290790353931905355329976153161216952742363311544833201803722418109341583934772947000004725060620544697382305655976504955454627120157689271326939370183217798159531787255533139008466528061884046995772763171071090110549611469154085738172970928761315054579891166902150917232771700326011865851811731829558817724681257525000797822343015668115725290765226604523417772090629898042343384392124015634860231922477109156773054134391612992642015282030851762150555082747402234453437807555573610154164588582758724142127739919150699671835167240031413011627651571682150914580551473523843260292085278215192957036377946992869466114451647175406622570078578371952875094691721132026904868498687249471088294122628521634638350318432140344901220064372628675267342652471777125946371686461554380244764941501323798366197580162840353225478300151391742485549181091872771788905723139471594659372177091028664684998351751584949548773975238366390815654885472262325975831934575682708427587581220596955185550564459720608536206725497104679351755078372718147400013862991888042084565669832385323657603798303337614766340190923270011651697074626222011607514771929666671736339833516653108914333347030469388854874555307600260623149340432012437797504081063532991685350197037062610302720299136413090033618843579563015980840212430327024606074813623075621461788587774580354527386119659697133614958991356143506701528489900891215333313972827625613164093030625658509874634529769959977174384682502761863316904494620598488319894551704975647513118000668713276442290536680084500458074967546544295707208793347635784031412091958378992139026649226256616984164418358472974562660964014067896561039343253366063358330034356381918827563513731506056577103457478627746527538266624089573389505966612819661501500619195308613900620727832750745201049169956190411110194467624544256746279265908108389217934441660035071974745105348061050984428183327486745644137013965539142261879515771837638018764907201844352015469561670303683047649655666137581050283103466916805229755647162787254539678126331946201192624390766030846588402411923033362447201519072481240149282708268862670599898158044361766836609154317319870204295262845377318828964576639901118887870122461410625849682162181999612349644601968349315489334654547693484779077302413603552917662224485160501076699091697153325280568793390030422221356760285845956718376846527283049685259223625862292588241866840358193495845967006487679443728912130411267617911346895218180316671395894778838113024532437052863881494285224276917305542370241926361093948295889859340002833802288287014327139994467287382339246408293717229425975567180763277126770121294749320038444271501879585861446779849257808075017271481510722293495159437114175551376597438484521162930792028333316586927842836772165053424917276214880429867822072953114871643368229247152987282395499536621534994412802696378379703497242750545816309306601819752955296832328786082299745843056875596387516142449123729102079960089798759903015716558117877567955080825727252486506636301794171140082095855013365528991727582780829753409200622106391296809842590672558859233580341980443464471039139889206847336390785075612674407785178387399219374319090166246244460652742384485033652419604039816984728063545271731436593209285606654764840347863108957257904841663913590979776218021239502223192120241915875523085472038150025538982058345201388719556125018227752808546667637617108560704939705594428213254085079302178413621425392571232123725984122663714133084979661610336618271431350447442616189701868921167801742125711063929401270344932297419173703326014870019572658988410441053712549113555849103874495012464014232299751979317963174605682330259131329035011713887167810704366390813649483471453920115627317331968350385208697499736836544873323769957990755451934997561016328641062150045260469101363011540124035828776283594226244128606087599604360805042879029758693859714785491940104807681014658882024823396055938893253582255483522479699686653564726371486648444961400382353791627263200771800788604482780811835931649247587092922043783192212356936511335943495284116172662958320517282468174452551505278419256781261607301175830304957347538484203209485755742842632780202631071021510912629819948607216723547390109093461063224687195178480126231850083961261017059891484953450713376387710746375281274347666768733042307671511275552694829804460290867048345640323186004482405353022600701007186977269901240539286526348039011296986298026449334534238263728483894996329521799786292448267464604449178611495717205841927674243673632524984422350462163418694225101617782658440796402471819666508938862036994718647824682793600887156647671351883117213693738880456635859605275023164323626727099597523706479640735286428305658765988834300954825421950065637389241266314913629095589852258639758544185931457284596142115706540700575196451233667323571620574690178547143621522355668784888587024955696506742858604722091969169653919222402483358608366665523896852838311913072066002114457228228796177523316409686769090263447205536117179132691668682582618210172319400631082326133581904153572567319909470228635165965344462308703823930922549982868182105459413499114314151016775813525398314116925270385811985474048250918001557038757977168374440741442184392952178814470438033022778645822290717852349976247450561347950960551782602700142654834316640768253283067696403160666351765661302846716300096147954729124721182986657004055454964121623867951793783456203870060317119821063740341320583816286017424805959427465397183819890358364094862464909644439549759762517584449744187452330096916367818434850404440414001279566710808054995526056926668437613566936668220878030383178590199904398978879303875261651548237066012533740790386575061304433867194631131730689769301366103008277776228095812076642710630417757434623754410680196743855893323311087243602835121308448495918480654600604136215803254743353128143336474654341074521696280829269463023639877797349104951886732712847958728843203141648532958660130461536950865709877433143668133972438745129603731550667936864404626747572766854618841588326722661439603766556145288266778024240238922080407454546453491203525612110516432392233749999183843387448861773898303559416799551824926510737326274052046686008043230215983368268185843089217342411204525695197393568848517455869643339926546558673984516356005564583294895162248286882772128510614340941441163262886564191631377459914755018128571583732831039021163062547351568466971348554072567708368296654325132874141605349058545630491193649547490437618731363099892997619742023572441478491511023692312517273697647288922326137748092494828452764396998675030397464200659100294635471087120037772234556262411765676503873396805730942033717743262523589450675612151907735855730364969148453825924776527347611392470662489142182416550984425444874852280945953318771534147002651188114316937207829186117399619092258219528398783874007310313849462862288149947362619046529446944389182030447361850593955901911953874821031406147707841954366630635791438553022171010569220056224061036737650597597978544004390681521118704665633679376140181170387353803311107471152721602413593964775124225639806476413113054098637657824378835303937785587634523359181658763277148585863582632485375317299228173439979589194133994037441509010922800990529603998161213641981660964451872385476436787993670016086043213415267794432884177932393820377933975077860290373096655851675563537937750085201537681484032190542338041310131229598033784450654825405577708527355628692417025462564893417233068036930354053552380195319122584138835108896291725643048123932593062724717803055185189989506046167081422491081331751988519040983362094488327611286078618147177998285115077041719945498179115014624140063606919201828433185900321420804500098793830536775708652865579296381544004943300141579211104503525455680051656346607367422591419525492020709247798916260236739093536980065122639678617402938889374889143858782816622372089675312863958895309643977410969431870390771340252160894321816364519483237292576545130488611086257727354709461250350279630303364107573578641578903888879140642013939926079799007017013640048977816992737378514675403549848342088443267184636940511554685524332148922374386962080494783635574339476609882988182956217976302658077055700895174143328794985050502210771154363478060219322021465009099359752906051533377282721201289103461090267686195387086117468938069135300029781812865876129949781837912074242130665088687077653767712514039685340750986639675349389710893925378831664949448507602100417814291033950230685967957151045454587345116652101269195895510703071308288355233790031947308238719479582552832543198286360956454956849355184629909374375101503731633263389756601902566191487353493107928407536928392435934723827801808312011899742768301185173887268605675398582966436168275940912565569637466156917138207693578288618194708889220995894402622861938376165734125610062310811393151770802062098543230413146042244647893764097009819237837776145790008115992433439675210529253807819705432013046629305706858891862729032908210464721602692027813243746918361554649431825665492450625088053098665489620887784379576896395743343529025255321938379579062726459560839533507229175384355889855848490229885725982357840990169717253373331178049104363791563022998918886283891290599283240852049010637032903598778051971524104447225078053841544075844137584245696700685024586754379314879912432732472429639101401491758930405351772117494666959148013038779725637235887556883528874976542236844047980048781920049951408133558155976856939308868767843595210724145662934470032290985886035644621739314285201287641638611060855351136320680163884403701787883164922349061330828540967807262755495071032048329080077360615023709466187895314886939086291351359050733400546881352694356273498692804172955282045786543159547809114165212218492864312702594143625204992649046780516373383935453874990018645072275629284966492830654336237654388240328339951297076734432143839016049896582565275503154891000978522741063319231614841194548724858731040063600505856868558960217779783889861849837403139763378023785651666395060697961133316668154335952761010671115144133243631547219589167261545890343313213634652065473740210481862776690932693621838670615039979980635374231440674727933410090161025667809431564467086323265936377833144618575306658150188965204096181390539090759081434549366044940990026677559976615270275544625694964810713026434715190140219743181116200950966790570948144568943949764739074196809969454979017342959273200213633087985677702334996146786478106065777206028876964079858102212629537009576411880241042156003246856586667859649048727128092100947835307370630669593855353100980011924170661261640920769579641093706186773965705679452647101367203559059996227827532137418979636237447478303115340413173019247234034382571873849396628285585630804498534391485533736381573377367390197275366888577335691829525526025553095406213380221330528861075901641798811567056496355056759542796185523494145704889097095589422720270956691481147011960076652675251782708532930542434425954994273780033299953472695106314495961768715639996421621518861596460627598328139905388017195037130062415192618875211865058719291160656742481884790752703566307659751492724846382267264989351579561180904657364494437979363774749431172079523085892111138726391049690721901908730395002141622838959623353262982328184125097100647131061188631777627336213155935224982998010209349485221536943497602788487519125106061308457764399063078114308256443496639328867472883890096175549140746412156051183246371938703733388889661239501099704331972760406598423974292547493272241436347715473514599575133237636013850116528390534717695140799588524010898467763597522562744057456010045037257435511480157395878919740867291974255129625917770757224351147054944357770455615873377076651581439934116296779209765910136781900188553737972153035695111569583336871355785745733344358064367790243549616409726102119010618333144138871680109795924933400071694212215059909260560026527280031004946824078750805460059710382563194726816464007453440535599658423202231406530206332584875299904058393654349887748908519718700779956880109620768926694354073334999583284098632921734665010525321449860775233549225797222310261133103542371242839520849305912768363811192738325747866053576971891186268557032455298783679661140715220710652315237680512914442706941776244474932894294215252808557963129668432111083931868885042033235352560360594872042177108275067030730740455169623211318851445436186958454409274835294809870751287276758043059067000598634505970968939892312975294506655452421411573869034157513279520387856566173989168365475931410460792152308835151067443397828325166847933563929540630803935762017379068522456641750181525758209959943351318385464487176892873940336772490024188041652909429648226137403750987883427680978060681090961014812212993826890575193624615822947838348583850438504023825130668505881796045751454799765357934008474730677499667543771123104808842228773324947078906545089097310580387321936678460430673400687668966504303078247816839228485010468695152757832931606107330198261074410801055769340989994062395725314970672699960391331041268950054070233715178861651802604060447668243782351522707124419293165023000606976756383011597685764272834345850534972047964747276259234542161580226807519673502505727974422961883147841995906522526901482656867151137527710234140068945804208839022292124345867556939163087176124949304477134043273853515692271559737479137944138460725000655663957892949465773179601381728690356470503266060513969011455246706568705141296922131011515260313907363982525491351100448404730754930448506672078434108402188768236693937109965423875351182823077266015493541846064261048654486618892600410596151394887601906820616157534610020807647523939166999686369132804340544822295647610706294518768214927232895487208365867349618386498646129710478632364932773819448936084837184662853952815866639851170254152980876210231417988965062760659399326208141856863263088255170108985329734235807762438724275662894639452740353915230650747854694126727946998042569736925820452785522869408267167846572063807226026386525500645450283699254624237458818386397538552507327612359406292781897698797395933009449829261652288525433304939863672499403248224001273629687855569681499225642616792102962425174305460141389794246870012504976905126388368300372927312719498384964828790565700403834779555512824164908566161868662860610372056821957785961302536975554729686428568427895249784132571218298125710915409201064768833735210987806781933564258314380989914728166287772230051221392875677146673292407301819674361296252751453561008192181133007076457838296709323272401638336422625235379771974049115093691361791715426639087766529782786644286237959823823097997254574604668299879958704640582426461740136351629026404240404742708240346930491619386508944973557498959214256275304330690804083976563523721676730850861226104949007968367219447317975309240349802116488530157319054225489913042877242365147123620564973056753529934463653636093531793206667700277947847504390521100882001945444552471172665800661596385014749362165259742805913511450081108807802574653672638052044958609190220473446951057181702122692805856636862517886337519530335600801883475604835209747601730851620506104253974051921041961789771032830802332979683290483996758410062610761629015980342194379704670301784560726080096148474349992330305712201830243934512274349864044545495950262990073459285513864669223285357799383828332814681965066657390836686285768411594871649459010654749455697774013366550284841375185867855538910524150624560357661625410327591648014653530005490067230642475600991131097912342775250833746033819343451072237860583453940419233185168748136637280298315889520783669487936997887426048715979016402112741009523642982782487596478878093335741996958284995725738524410285560958935319733740086188033239112998700821065446867350086920540894279719895395657418355342622150683606527368881491749398605002089561702756908850922514197908634946032342732854311434425115618559032641822251962354032643147713252426135032008406361884138516312898151031206074185253760545247618988447884757144354445122162240157562219856249068227207126093218934981408174722093788920158122975889456167522677217149504633240937428607913220151963599954843921776971668805760874273018485956399614134318882857160331583089585836550136175370973311166410553132016766548516827919872167064301843905160190793967428720105079071771840470669457059123390895722300419663186819147876960089850002589523450765757870506978224919211033644371075140715592918307095627004180036894333287424219075803551498972931333065956700260976813336590959294589383194719760654837658816689614840725593266186485640634832610483300693892748590511042417371062942099148453471728720053076306024358928657712298009247888257613555871193672588728192970624419952909648697752323068998019067447178619969613239577379314843189738482143713365815847905991136486880236385180521597235264388538548443411085790556833164757653004615018534480970049972709089456080433893530361458523595421706348781080738157140248171544398332840036631188536835633487457169742781822639414376964619172660872951389291079024577080230107126658415651854626753594062208211495368723963662007916353970639476893726372964614297426844054659431174969192333450100666482620520864970785781050092179139818828133708371713908683015615542395189274703348065208811373128077333704729909807763996896286928506313562732118393631691274379020577636100173506451373952736680015804347831590871692196365453486233892915567704003573463659555301810097508623677005177997753706114616595927445383010150680051499127713869001231234976611827689688713031099517482172737256573658276740954267476056160839625938021318623291682782873535846968059422488501649347593058022136902244846782579595013130757127431920211545817939335544003327545909033856929094803276125117027630940424179827837048155621535370103765419883524153256590187933055687637792542597713184960206648064458733102883784646268966358726390504145041871744235808455922149095625909383977149576870295059790686891944380607720155222554503299253364411321292251779379019824441062678598828733828762392591626430178984838995516344225859569827501291380086247229006172029382004312054121028275283110304617877166559176419790045123376552818914558425844843758333794308373475508842989923359385633352727074890141304975693337412073390306584998816580464519636957277343935736482256085696747790786346460885369360288511226975516310654095600620700605633332198797870083023233878581848438146846170494856388519102392114714566651452090057195463785663285196725798884850095381303041873149615442754471703124265578987880193510886509277792382421131885224560253606999946043990030685670919371444452752359833745047378043606506759960005088436017165707353284911613186301783785291165938993408325164040903455027138716054354216584102100141851020288358309292818759923413737774861398664771302205981178612885790799936990106427079217812977425530924745155535280268227043272196377406355628489910630321708568649139817203105506330326213422240004853134921041525927043468582714763918016763189531367419196943823798416457627927674376915683724653671659089596401395877479162422049285091330070336534161401931531256379629004259112355739432419362711735210614339181575460217164723493864770097873370382112922249065479170746021613739649039870694206590945674557171125916194198591111408348803538071609288550962501839592219441100973578946348122463518762864045992044085100796837560930220808166072968913136510193314532857750933028633844383539899105400846462440828527503428534371887537724576656309460960311928125434039459260151259627456101731467219412357779791253655050405855794223937645938716513183114400746376110210351881337571639772387507301152782046895006720575950707931279235755525496539948398163509317266643946465647316075467309606262404960019730937736322026810569099002900168158274420852353423022253413710829264743318211482434437688598210502965553177586422999092365549429864117361911601592550577637779086415449626333204178002089209082203054310996491844908924661308558753102422002677334953956451969207879115147718593861954757312832661086363412594057499171978691589854973331978221854165132537057198415591331104698944416807588132891501275369022115171391455213098055418816748295052715974413856983619021816681979757073483907034031664805426837079652516753542188826859251226049499462434312879835422266680021889157731154728325491722999860277517493665165659655849213920923510468847317024412174046222452499939469404474503595089440377955646120622815431943194843572783836277996163793941118040647142491688808984484537066996575945446312611397908383024798256620622416443422673472302678962305057543780937455412393510958291227757860368874558335796044333789412335779436909758701768461254217883062775767420702812915875999788894324614919272900007452120558404041087647192942560953690988042023502371537178040087536116945626437269238734777464649636096847694016249034086247339502609959843536337896655290751201712645264556333760578273624056990090872676691619363653882517573597736388452525929151839889307470183350403152648249527225169610008376116690687245643022869286969221463213990453246304895585811683768652068809903031883169699309612428764898461455397599683218976237805943062228741127156618706994599198146975109286288672914457521592029080354322751918323081471769110441057253891563746653110541036236651704450812399533261703435861855822275245381298167511932345867273924407233995895511977539408010533982409344215492062108510656112518353845495652554432519287590324471098316258269693780615235771251190845422868647878216491070669658746821396968955700272067748381092456766576546928037697334659395335314093153690651861726909805303054379680075256631457432641758848556809542663906286712855040958502388387944455564269307909977236538479584774814129771697594092433177810509117250022679053925144557032315906598840097546218645146965140407676190974624086696005911292997185502972862525691441438184828633456214126338764071103807356175064849974282565763507087438021094592977362862349657753338169287706214725573315956911770361615701551232045244143317790164087176175332732677615570125016749050367505387653508500432603874413419499473141521952527455826468483702591971481176005544540773318985445383071562653013720376858915557730482616319932122588492898095163159536674450625670281782267097439462720968768418944997161200353039624298472081032736169404239399878520467139234193366218301958007100685593214204336360638404839645797188050366604938890527652551388234528460548079895874576495127145906107094805940808171409278993524578705021289638515973347849820950243039973886169675833454253685048015210487080635217529549801657739189803431291166561755374260977658951974916928515911580344612944871920861910296154848742572589783515492605031510664686612551597509960246228601791863045545976963281518372027853651226620064757058516745293116545601126493578023331309205827747758052356058814587806241360107098299525511631746820495591855687318630243755637027854420334454426631118217025293395699464711720753499737740583978734672289272882966017518756822263967865070549558922609566868404087052750585427070456787107182611552646887705860197847809666452952511357167026255530547723565884575543880204646581748631425352056268045554665909606410867566389569959916692757545244636456667736993637380472996346644904388774276818375781659924877429848431454222460252987423779507255191377186350298059708043527238757189199630607804643563493252330618940587581206582336316004703799141064455653460447161075992392374129958490368539287336827553094377642635539595057279646127953855761213832302372747352874711680579119916251526007466928392192666267998329390326356690597370648131211171960515812113931703014464153514536835444068729075646911184618985588181155170621389762022803819937761388945766198234427747189985610116159600207638980988613716462702786469503477922068003344055140807044625439980233412533983808101312732083618114025236609464826851645807609666323574577131719576854164401840013936094438900885881516497524305124463436786630901653744332041196360376803392560180269527290427253154608362273970318616057491468890829002021346624281471255568421515971267746759077334378094423073361263354518454202464137985485664842473634593886091981131300324756640667527538620006409439244398642909632452184149855036747315591947448514655070043647527943858927314073463132693685312416074579559169426455304035649469333058567963660767064905173024664888175165418552859300312164309192423568792938240085712593081698492758886326920265025082338437498729472176935992863969125465646177016709523336396850778251780116281490116476216802345687286472532577490865456029368695825956942793751518578267665636192682145818673478256154028233648453796878061712113614121538453308690702442156695393310302552939161952162403318632091759469530803483713967769632903907767937066411401952854657069875664944347549897664584528257926928746900389733199436330378802264360433400055733538676389419695651335320420442353797980842724825551734361366140783004877636439088095780855758418844044422312041997975128791311829065082544091126626107028122322043885428401524562963340737994107312929193854717983678967062822291618842708160708485305204081604038753642472163758630979301671791580810669852989381256102263951474642487358798735513699284573307984319067098062417921389742067003616556317857137267513601335794404244055601683907638519698530077583982138959916285020287970360788027246382233062216172657901605375422697515409406061527101028685594097112261374992519295246755398700237491912342928889193631802276982898753812592926964541169211860948806752597449440661630493589551006892661177199398353478458097779975079130578955331685485499469635755730888103625506091843666169739518884849168603244907863553223276727795429024932341138459255146142856091314071185664383764242779027839110440835824212433731822520651594333059032676585046765767591989111178151184097281216551316379870473478377337263228363517861710250079782939026883571981100053917769785247375463063712707210679490282421570414543943596573004323629500538642277691027898297146337162646388151815629411379474486604778130132310781753183372540543467609622188962635359304081544428747992291133151908139693989904457706867308739371857079729002571799891124384684511072809076310155935158744902425037665059023556902666501586665716613987931179426556246445436572160862438551461683445211627659437455869533531263724456708238537094507325154041742072604308442104197301302008663562678133515648558485476736231273767014345308726935606856999206890579151745637325508513602548357304348198411824359587752741316022454891332145644332345564339126279246023567652759661794166087062278760856016023676969505752444840985794225159577404124239571029039674436477939838911383358761003365963382088460322813301120536370229108219289916952054647303077076472554161234123258347348662454722273474262228999159381001919765090228836014023625051124538631506008587725464966606711036437151201890103693051207148332370468868677834045228519077381709781651575214153434902233869117806423236006048906245595386222612119723951405630221550141931619038854384071859349602011745489152121915129833425906704120303260657700909533513057112247004198583798634665807868378198043870656175507838409641937919036617422020745938272110637751010761829645634935917923551688880916344902774884756351525396030438929553457939291605534595435940784994768652230826388645849280854588559005411368225449667619177043297674499230512009127185560808234385419794399484905221079629840941498618127467926329859818882298334535360088250829360219214392078608202247392178063032114258005576453477469483211440564719125943549376491095516605426133725222162854056336646981524460032251696689075556680471095744677917809943967729070337952310947554275245807439236258085373522739858383132650777290997665158034209603232711365786481013719454969857619795226215335005492007669534173728078622504295270149294365285352267123254896820829938245498606981440766420443006406718556473495197367174915971705216405257001587299536314315978329939145050294920310214178661414952665691776842757666511180842839126961042408939105417364069712183960440859867844269046974233274476449155451247829990779203309732531716799076874932787732157644253624558711041868578238825433872842600235262243698501533737918094848370161560424175973619024339322107849966424256265798584008315579622257374364305386393461087743213241978040367920891315394540316344483799591613110325334184156843128076626073583700078432619792381699136238938781004038578605384977369218695710811391709432081146650078419111484354018384533152675675103468566305285851456236440088471055290882501568017838072072589248598454917834160942597131827356442461848685600204501017772349574631258501846643892920845799897768189423495957063226758280850275516663546588400944927918330518375514675649445564791187983767412567548644205818194695162034449194160559916082296448020000450619953475011919746660635567681501331910445598431002136850560635229751485472597320042909429813028754148921053759985779713025941467252127344187551726676286375250413432732199323164810517733331515895901601043562980002881950533551416439227522174600646538172012622979068950858722213786456004121271565946437889739048415070732599716823090436535116585075737456597566685816396783252493648782911592274476054276655258695071338042784430324501580362518591898453940031139405370948650623354488619465748940810861890084471756694667002223684745353558667803567017743704723087108144487458097065053426655398491482696229042289260135453714688904968098605151526698212692913771878542639777719366116638459786375999813187650325296098400063157034398005029021072565693188857405887252933671202448380288348232590970324011472588493586148966787641987156057545315974293622230374300573273757978237385083274117763840368444021468739645608618219634037491832409657046795374520034989320739770672870323556864355397680008660508183687255106085356411453975070557299603044270594434209140193275027360507647628648481661455040727585270103884480396634538424169817388473873739185597003297907963191913122998039162156335938783298998550399011257748508638319775703962460945742909945620682183338008120409815849087322122429789101558241573008192703306264247850008988862560159210357626334109857510531554458311490249741757153468949273040808759134628211876917010289064582464050576415941502547139123159153766749793945321259736498149736662602699990049010815005179776323247358771574847378268637196965666666030865111861631666152755986252156319854463836753289545181320718099626554875663712288757524134550006367114728025353368385120415171691503844004013676275581897271448212468749698318614907471202519863136751207144775414249965566361822929737662236000670404707248517520964445266680568165665408935840779590795694185708305487200762064316562279828594940372020677207080068909515517439871558522932487495285347815504128759720513939974686760955922755568787113767818083144688247026130656917571529706600976611718702140595102918037458434636664044669112808664216582587326713098468808626857028932175856881049950566668931359730930336511740815582406557566973862020699134818882308557786291161207689993358582157048377992556271992494358100443271350452621337603883399343874861385753007746774828700720880720397891633892491078844469301163234426245642293806948827038121034922100211581736334819795658385537744134855633018579960950166978624450373611401148995702864731673106259695873313903094359765063646110100530622039822310840878069276895747732085131761167865237405958478400619261916113733394089941326548713460471980130393392479103554678193337954048744323696397658979011037937270734505370340352855604637801282420893365110439575696793948930938558490788517094083674651684572486827065816393734230306705705255647301919132319899280335337662617548343559275263285639459752808705453909235340214382760054153757617423638102681284312900917208201178607249305255879591116132308538239995561894569529614494727558893932369652356863630844365369401291646487895900402887609978163456395511125532964591331963847313424945117791638744748859267763434861360387909581141604646489866844655344222800206134891729141850503799298733878902710191032743912818094732454966901996066254603417416515945181628065396788996499809123753350713125756511969791394377071732737811653681104865312506289234832833266866442940466731002711035878557791017184936120545230648410774335246096735119268905061060770246878945455982711035972170264927238119559480054272658150329819729533276883745189472241981436427322852626941449657356006542593980390146155935774193263900300514628541971786073124985598615248411284341097401560922771404011036142114595386570654697804991313342456059807403184683800216323351970423779323176698836715603589370924393941162803049066259154932704294961615417227017096458772820252045073575168354140662432385486755835049717337563579941813504625872592717429086381589910864519649329149561669002151379685134582399341284474214515035238658097787576380620657074160035829394565171629467912337109426206889434858669826904968182930739883106203680763143488751304770399542433740558688842237365701945539307371808081828115011112228621015759800060484708103800698425610223207518153681483161100320479074418698907345280409601063842314792849197143765744126927556785355585474000001731022326940994802076917736766951571075513354580508366920557962685318832415327805703057648498129247282559573552590549780362218308757674258689216267783240776250497256508943228626555890384488706693361739101562002913234078501141196824786161606754540541055874165834182947181648461007894387135952212835811512940544444300038621875502154944865016446593312753854408640351666278261690860835313090222681104547667327893907572539910238299048282148646535916967352740687861372711820205712863276760111669440587476887279550525643240501474710861778807542076698314277402403652330911556469742365414424512758512073500095221257314409541779824946866806143813623924732510507807828359853694180763394829244571164479972563195843552857998287223883624785011635467225266453466174617040789033992795703968449048634776700578143814132549826627910049783154600792388633504348750359229246441849639066324590548446180569639380721756715411496649667404875232347015653391662045328193799872442532192318510626038043765914313394563494009879943423860090417998868569098792028293640975333009058752688524600553646367416503549677628662237106895168512458838835266096570762391873269126220450036033924352848960493479622158835401410004574891956495624189699203187264602130661502790778082969945108461836244275846692390562912649539150510463226979529363718902896813074364930035583330027400921253537303485105687945588052731283115495045779533046803935247767606898042829913924178109573234094920260316395564116115977688199837285724076875577869210955732425347472817983030082935876209907579084005774874509732267745789116759633816472144862550910084719224917100010313262488618908856410334231570652187503389413121746870287819840087532521231891863436512453715033945395611341324547402688734706621194041067493394500347888698871427580858100394669343869843446522821007604479817829133703456657788603287137339196754119432373788040656416586970526249494385906876441753762137138697547042147900621470906782906881326059272283200550704708565499438661400334724751595524553195780864779917011985294222497562421060691374806151638003318331920197784861535581291361759030590015591907289976560296335196862237721421046566181948459408422820070444276455905908444237237252160413845195163126672871693299551348249789279734997293401750121298028452049530063829187616092403191414876924299998281002932527967288416382202667517161786492909402968499635769623854577929889129621457603511818986197771405332994815758784542556420169666213815315904710928611312828347815519331110633401874167174906715662328640148536650957303653732678362920918437787459636591838785086316647901986895855074508898764737995980222929661726659949096795473100771588245952455632842942732712687128699161742158305995448461878367492210966328896868744978551166193686902371543830404300478789309285481720135564131580044452340755126274854467058121362364337505186939156700871774104666487469154313259711312622699964497019684411812386334984392812193702897251354970541483258752745175153882605771874991538620989240862659068678708172220131546140627676425311266652001687773409252538681066965920582199849903999048994430642399229691788388709346800390746185267027449497960873512614680036166616004324999072188160786027156013843061803902920282043137230005559917119158597153707437524452005411424816529489212907143101955963413049092989206658191496823969201378345116198069748893904669722361068663029811352977193882171351809316589173348083748509470259123640676541033899486821497656281997657321595397509468693633272143278845042914742986491776590933478666523255095051643545629756680456254650234392693005838623821312752572456807676319901581485282748719371794806484169179284493285729482562089359138852839869926258197308156119958892560216569859385123559542432817020580438998172220387227786592866489259131671633717359606618751610248447978012565961964806610350616301917890692672779255162352510436695872265256991231421456590822773451670129211733738098859166963634293456141586498179985056239540021667712053612774219414910106434979960253588316739895032808253374310132321739850456978763412217391335384611331004680940195456852997893663054523059358192261634474037286086841549592940149093225961876756398657493476415079354565170022864245942967617793670929335374994880001782554224654147014974327611234576818877511903381256204459292095799852792622407275477934799559242046461724526404479082824621235455973216912463072106866784922170595666361852117209992443340612031519964284108497449127163938389090274517696964918034561338170257836262363040351874709685143621668453630941716752877702577510958240028467068987658586974366768733981475910301344646295290204877991252184281647177648430706188490359517646706412343959736285256145905177848092066030900324374737138787759413667516504082370179133197091451077146005439447645416545382099992207304550722120513455278849431339753798910475456525738784085214588664491295471584041114654609694251273627026872144053749555079856953779273699413134571687725150640459005378955560526614776247704394639118519012921398766032573994607118240156953440830416628018729946357795297258642008011121033375519045754054879385934317757514403807792320515184144461124600380779013685166911558098815620794628161925501389520373178081588044909114322819904808096459628215973514402880806896075373320984940619629197644180165731278024882646177447539362926622078873918002118033430263061863525248189605731057514243338280177501333578695692907639448699457356803553700937588900553499297250229827750572355456295381299227102703856794860861619121889442647128000394198728270219491263343373270211885964456508878186321425908688090018446860289546591610717544229819098907115468829664774681575321059275367664388478833265630095922640635739628202231165616790952074650267657256049495370686839474243315920015229206167734594569831588543448187334332752493380101863170352723873341471089178346053711518993182241889307500683949801052644717371010183800512080720643049497890788903974173868512463844933545941731824714759485404561256668236708011183916754740135286148854304216758424097418783700651477180816259566335779157051117222965128169485578810795184306869035070321821530726042170988523732331510150761256390383458401777417766787375279762607519209107120403399896037020153453111316199859705893764268233866955706487143958711085137637000836845605498330848566187751450602553435497313063083961112094563519911673763001269099183106189189890464122872839488041190506732518921251114854178896913595664071967119153620608051340988941759314976691388231610321791722374410538828554781592067642164513235427449459313478329597168878503729629470061779870521941845894681299128893214908032382140163718303620016766565388133630491307674277241257398127849196587584456354376260743571673814026825314944155509296025028087765771377234815123280696841338903200354296473703482748720139471203342624821549370237191640533139858841245877938323487736535243820898053951062398810426884838112509731298491599840347505928880716265618215894382397608006057189316233764459588682256992025831107395336001139340909992853606202338863736458995287869217720132009375293425283790263175666727268661526676079577953660517339440142390462724657443105027863643494418483220028764693006944507922204286125271566074919935024246448125506300799870600580717117671545883161630290154170230294379581147045258030299227221850907193239685550677649390849095701152477733019717206320162546542779519189496852966936024717468884231810956625138532371680170850662285258755739543624423832301256631661858651492578444658388325704488246228221319477297043338276529930685345997299584779551323950634338867580676592276407598571826461369700717858825166504086883845511759205623179558524709313176022470874800921396095739758862455566848572757109966376023932856388748100096500177239852281857252998574075756120200001373291409443246867738018459089536544629712291622872261146409118414074078196987326938023401960760381928511022955256004092586263051325335360728531927934041167394419224574678978640130875240142524530421886103597949945080162668550236292300470245540231513952648763732310897904886997554925498684369339777877543574854181362691143935927983377934636166625385709258962018154023102029055994923796973329289425651952833950489670754667193864024854276531745080402536567838685656948877431982651938694505593457253792794139517647679824006763239873209377453183034579596168635166696067749744494498275250953075460022680743169802758338045528051060278709171942139221240501041618960959355667704333542596278793540113500195289581440073168703731023627388946608924690911479999630135439908830551592180795812182890332393154272635072228635903813204569431620753666583242688805550987064619211169260763334337651350758955399480471337277268398161658070940238493089499359162102123281840698057068078661810045620599492300081219036553671980210617952994418496781578272802413305640218616269631202931962393582643493374780751274218953347111905612479376955340630700426967482511568906274511455970263874464178516376017465966697666362144759816066307211359138254702395960268643876257024270878657215702417057011755470718326841828874208264327840928461596824643575959131627940498082875342247922212455325391492609721545884830320899551721167888150932303122179544799116098458453343613421686888301134567409231838187132051276104687143863880990910407281015315685397805049459952379337100999403048102490609622243186748605332930771931999918631060716258387663576638624342300134109898436123231058893969748237278087298264044405315351045558123208387241060347622825799641733183362253521878291384040369668005867941306369794366526913605190655165306768650839612184503510071463642975775282747605172545613495630560347439516533107175997212329098883540073896827053533524028842517152827954964940173961399098437916564558945740357225464326218026720327314683890028055728328564269909186780322019410923850041736554366141643747088759328245909114143759083600599956976637244247753908239476985773374386208914275039148839558634077962025202462740977413005604833599748789959311411477727861153291044220742424906921166666689913297694070464787132256498761218545926198074199199606141832333621963889722589471174865604670277649858940363798724633965577661328688641159610431995101257382336626280295041613917342391270182930821362877122158549069149058917650235050199495139193276208047947804109760893313959931620907549225951194143224582061317580225041525193633782561333282758061568474567372320905909277930782510743139565713823282197886812682895357857154909493305331093821464329576758403359860571654087745449044729870018854411336814559893778158771719699988408831144279265216288164881927608522885506367132874703017085978799277025386494762081667886703220441171467912382833040588045755467311363200596637102158023073218683089763021159782280382540276154455821921283662492255484707490582057007904297447795639870176081231192489796595066994184536472358319252669916627409529567400762863278685353821346295696890114762614358878738002634312428610506231938504846824316389616326190534689872361443533451599156836438813280023875873363497655941208937014434229013912340359715403326263282102929517207388409493417164591190825857849453796861773984355498316039011213092463291346702995402280034172942406841662893682742850413981535110622734516040315157162743986160098762069798094651034728163254942585517546741607688905166097065646405554050207754474374745563453513141175611894870629739832910146008522780534578136930602642954879081401913361829439809719024305856635099347262707187722562081586516387406754480501826750559549403180497724215104984409591350806018809751660106540192129915270733349508060808088846050770886239841512815282813593894609771575047421663869917383802878989533290631572557116587240736609735262699202070345237353049651051168327687779168935332539635948101604708065595556406633898463074720334066618900653119043044809964837642001884471258665499853231456206811848174612456633699055816833628886877635394898959629663801449389779753827727435975725763968981126183467231852359214742753926448316447877245934031785055747998498830214210902529354126739699933598268003431356057688089900853587597694246866694888767625015118535727929851263141740489985951057514312704676638127427436203638779188600735389913107446457468474601079421023993000580761005172473036039185789376609458105354266156865941718907602079030855718052642938043926809481841686407673452627543310857726250846856967086335712244315678870664103938382895562795911226911361242745136242117890725217911197433157167469381129941872242033658281670139864146411630362453579944861611403529621756884881944516590386353456949044555534257173557233369705010471125839014233933348313147537826761800370797983387956200985886202636356807931063069124912059640372223344932024835924239772467364266045812932989952326274591552335008702480893764880062626769397628281586851795443519831175092753931067287766201497262669288693626764049043147891596783842090331079877082568885662793089892870259166665868865063749944734626758091732994925382829669218823360695449389220482714605261736013770599978816450100535318728789540340486652036486509262060877916323428798540118365643133257978211981191394936259189914306667963054434383355320305790678302385853151199383980163241913035108847746966971611587716393893488370301335327352939998647261801485005628888536608445423633283954111030856981381182674899598567403015128040739835615212034219509373762185521716333486721601127445949698903408340896885026910220306442014420799755156851170412492668483817935884794645533224255589644286423177266346392307307699540855011949849556575471059354277996068477602632190904482981504842792767567526922637581851263752648297623456494525813982399079834276691992059187161851271253159757178466686581424343817125537331269608236058166167195466343269402898447189975294576859203497659844210019310755823414785449759375872177537962014114568704482719434169354400920725730453971882775270499113050682185733726443254712482867705288685484599852118909682852852348252604473536872971489782986620362689537028109015530066973763042950057849952816164791984281464856871119100953733218352623614420279576077034325132067742504776028173483828801132903177455786193914777682848901801726139120861980481885533337029675863103589261650122504629751277257772748423753719872590582486665193791031975884050089982664681645641000767317435551263510097846884530107640131924475815665563322737406697925573685234210847698776671391341573712203042814965131299249822427131320485544064993409161135161652521830941421099949190603204484886635787232729012131211507366485501810994664496296128983064097763811350303038138827174225548874335272849383604647403481989996017565617040648810875265691207678165843129953227515797967983926137279068841010631944432864395780348673492683456074442767156403974091783028204672930475698278891278874821197112235891606444252007217799457302658500176721266834084054388785734589303306895351209821179525583212629961743322029896140274156497217782148335286689442299985948666023319735888775739384895310653461055558076134580350015972045170360252665169540149968690208492731778581090400944713571472960993400187918155877010240462913307814809455441057357630161779414593327914170638321860982801382184119187910554470369911029364633880989196985770419738189339337290875645282916461613874845067531850597334687758979837763696228770206167809082210431866896013525237176280575242972903905215800788597037260681374821220859807177833509215678020340681836857798704899072109929179093938654093831955306867383435331687409517094405631729304217604236456664891849702530404485805615667531369042325147809505527953722073668243139927006530808674048093789045850461977535276968041433691415666429106721946452060572332279985728043699533031926297803067061442994163089476354719962221025293471546678864692594015337818045660348843295642324108723472261447077596483279403223187270231306994523074350774600010683776136322895409389058488629990259626493976217381435411762954378295297982612514002208271736121620094399515149618440447053363271480457565725265171006785597360364080478971062766369617837483226648210997493037735101096232841267836142530982846299729239816502986513561905839822418324138219167715851728215273396435005510367457013386009217577892944365155524036900386057381756686595543819556039084064239230230781567474522592829496568884668773872905081523111695220814609930974093784586772355969289480157115940624068647132117838664833017751540337640551541347010578163810899704332971989043125701974344948274801217311989972404189008800497200720607856904681569853517726699706070583319754342167170696739021783999093349037037496142345607278166324404789655341255243472655337342459307179407616299359865463298259344179333848838115604344311283082719617108920261682041500615298331516309264863683204222225229877139646757001590509901244649781426079382516368297025799138388006143936106497475610016898498841434167988990916108060917746469924338407998820806291785700600752811939021847023473020022152989029945210641462656068407654462474600451162639682598420722223223487830395919095390588290831345834410341189528004607051680026225518077915996898152022982820394012360960573114429756217127283759502778516547582752716813666329639692649008171041173086764939579278648193382122884688016735086471589653566672108199832359568982999797730725411175897968323189318888636898694805909569313895358668018030856796652634622293214579332533995287848621951360237809542561123323504597779157574462029381894080782315415553654816969985939929536690919225456884418398343039685160642839072979174090176208750956019526884839078866632978862143754970110816208919828313165017873643834106185278809967618597559030655067899985445365007409821362049082883382586226113308189698388211817811369668738178711141749018171074316637935696953259376635578726290815630403283130080820790011674028538222022546847078531125002378765290178377401153660079483219589884615204644898809872391178322849858142421297034327263967953479779261963719149207321752657347351970684420143511788020758326637617943232804025398039758930722164761321296660683011815285604541073512116451210313128628737847487030475932828108538472044152625674665770942739830223191187762453077812540409886504740590702116185536973083908686725819699977600588078077242889828850029900073923904497543031583193650478998317516084430371104762331439370062738680773340372816603894696478024004959828534050829782305406830861213030773257615706113824799811418746888632741479290282223792714339075488925991236395793512714819714894651827727629019777204270981289489011904497691465545610302603949035393788673096169738605888621946217581886988235126395768645503972722687141757313010512573326380020906960125985036389885694733247714084041827210654597963218992314316546464475341590842569730900300131873979404418753011292865617571974836678446238170630440803631181435455589348687402029213225416819641422827068168315767033726813869257626254444719477830848058667804104621071563776394962159812570165509476637505442624622388946985112575828678348698505342534494262593209039651383721187569830531101595277953956754209247296463018305731757647053974864613867341561902352120798737031923302584748709116120417430786537390854167621675819172701113691678822225517048366777459703442980601453849332986268485189190154652741609242631236168729545737043155961929295427688787184452724630831570420690281378072970808181109132095855076065452623298131302271153292790619734848807845386896759607350161839171713987526466773324109361572842239012537236751726975374234006019112042421960774766964347973872452561455730810612184867478628705652069151220211643895017077884969186937271368533091960643063016920517704687115564330116043641772106665764014667602584542201014652422249333011926505014945551152638745857416370707708637947095390538794397398200745669729788648902734967731159237056679551146163687454880672653313686061893757182628228116044350455174566683297937547068516915103410657151295867586832895869378934715365543370865948896539229122596546812166113285627294855844240595425662944802737729139174179906066371448991109421912991442294589644534280793138181512042792271836204701564017706522339077039613564787777298005134693445817971410349029716815016301332211929500353113513776718801767227960120576376050916035546872802870930519554045961287127677946752391804457594958116284181241835807407109793842625680966027228869241619065059754287950096693512666075570870136717738884837737402120087017112487574286965886585171278593036845881106514680321276847020749713834268836644727303386291169109497512137323015039234574601622918403187964253104773653181083567466673228587111842506577985921906814793233928824426090970326450657814509613694881664586723560401374854278961904617739235267320920928294820084812429563375147022550408483691653308614996698354492165200837288360903321299209288424198139575518261522634055395732246079753821636934115252775125194492292191786602419967258042959550147334665671421868522464381370579039269004914411246547537756727816664833442849791944594239756721234359701937474872968975133386428339591696513885794897018199155606043458629770063695543546652594670343354116749374527987485309718252770214874210392820140232502992714989617260670138569171867061285105085416584266274025563065104799123054458013123139457733036879396392436129706460817826443476197214335185527838777436258282443263946608822790778605701697010512268270837623638986688777229251421347483515733122834974435498513612840643345116337642708774991434488575437909783011379054271749890741116276961252052537318727644329056826717554928875703817300119326535346244895529165382884453573179791866795796053940029409155710159123125667377422115524063594429642383130901399482027814773108452923788923492150350478306633864263634690779330509323240719438756119061881110191739453903272879926821600589047195041904503805159397896714853539130930283345279950277778835509105950780316930938725865444004711709955323523866958469375811676089708209795411583675998532699775176301589109593962001738123023229548847104179125165503095291813405542682469340711288080725465203827119565122779161283399928129447355010097829530225528648192871750577543635634525949439259116140274204102355090673060042987772444265748395774286975915681983872192299674581445172497818219064504769655094242744960662917474440197567258296862918271424664816430801016280358713372265371777531925613948057544249081711388265135865927729775098516018232761849520867286656063031119181459218411460434536657893145930567063352946932930030016771884783079639617644065590199926897073852383865287760956755925279778398282541320087979356438333556024326488034418553027738660527042028621800395746954368330171603042418218023663161998640602526910048730586194226702467089270773637094293980947673502097952069403322323923199210268219847916659006695016547571268239922027182647261811285718514440371373071942545689868220394704041102741476034855733387116393790312829987228272723661190524576242053097452507429175432348441156429642533429113920401321708169263970469860903184456750770070697306352548792724407651986145027539052002926113159724292201797674588526580843330344839876673019365055866602935660824998006569051300459254594783170533269055028626430488754759690801419581305556586177848366044660351811292082034514688491285738589015922201427191994079521279911787800461109328964437112240257379627745164979203230729165306025312272871163618564104108358685795712765910517225098803464339423035641693011170292312834489875315213253566127065882681107016645481196252623297073303021018362336261789192407543562272194272692165776452489052355625077892957608338620170785071753396898763442814430312456701844211851378213743474542278056283601112749333313114795033338724130773877839101971996151127545125684220181101231875812268934341287680444468910427091307311248429144898790365888085695779146136515798996213136307747125631717556270967038258463904638689786637375419724051188576358546766955712076789555542520753872346491703288440012521288050941949463888378327305267880056061581031465659582504912179847807800210462872861876963445066149107560123261993080586938210726960336203838078697827882679374809128737174013237267187751925298693556392230650956878663627127313307448113765928312060164888374386070663257750414336978822473742661178063087277518475230214648585236961489045389164629656944486170938506822187846578687098037172531127995138686235519468687596211161253060028791832669664989074872117944301949580419360302111428107823898997728879239129859007250414531948239954626694493907467988862171508136392967208123391267466337501241896898425434028630984615601400286099352287846194226701110999361403053175395975636407856640687102846486873750543713172142013033931590929336229390876556267293325562864894032813151747341417794398461389674171363278567758806006240002815777181992673832456952148213520238033409325212605199205384619144278769133645915282314333622456206704884817401745561744712915844582060684843273790124819286764468940405798258162473858876372157730096952763360374552011161715431859428987800405228013549087544781607750638304978824685540508774445433937974732504799488852954742142457006049101935358435911575043664558086150068889066134842469752314930839582636567695072396461002868764942436654709187337147886288262635077780368490550947918919456420500872355266775686389819874851784742804525896806394398925240143255047320659065043167231061225950477053092661288366429785606458543500065733659458001678006159413828314508385239328367065653825131359571434060213759736429337100097706161589957352341698433465389043923562021302462397390195981023156515872997387893943306230799584455296506092994541278971981776592599428926073951619658982332809611132210903585460332414264722966990585323957167076831584493426630190037558921439996362252598390485151616837853080789866966944813680434099183342278022668073927542560864534144235137370742785741266316304954925113218985074275071181953191015943028853751670041490893650800911765133571101813842266647942642403759723797080573766212712107036845993921138482683657227749386315287654152241970344435941056753002645133461775763852922175936365805577219305008415009079372929531616655225294830808078075061001105567107180165766630855659965206065610140014035480521573850548934982998939785597381329519351581778871472234750974889125532334775662617309660041183674817738635867124566853371777022346063120756750411498879582865053072809042900466956922997094680717613571702480374273776843660293121076231386455221028017350963010222707491199013808462289337375040699875828616032775354925316583413813954754277897090690677067889620090491319424204567795851122019298815627433350319628551387409920839121082648321022238348389782774331535151486898261388256079221546429439353595363578977323296368277202967939793868546773249616819724280412311299140553707604817129585621293493197748955336635016374365783747530676816445443260683089650574051484328260960577825542691258769514423182883516949548616505551186708420985633517268111959234789635429187211897101752189141611713564634191692147012367085194250422391383627524367181262521239620796002827509609415645925798971101907218256629170658817177077916478883404277492857422436010563402770579157920852910962640287686040290425410061274807485610524087585567319460340858675290242435718946327493589937487785224579561800311638898040526572586053717353198304943954595242192651707517119557630840000600711536617240041350363728426784398983662524805839781337830157150614058398119276610945191161742034697147231302910294368711017093544165686038355957425355434255998683252464030480885804386165686490407797288446053143731994158897187529620373892182651422145924320843505820634668195279959291283309886088624417633259671577174765859972440785553675530076576484014083153912115127035942427632660760270090779116001076889801292315886685113132069241080506671368681385949191188942161274791347297862245867073129687956633657885851117873067650299446066535896578763634216107500626891801612389079207356744201757275800137018185792078392077554862159556976969281544571685325908354549605623392310338082247136531073541099135634746889957921492736330409567151277771706439599138811686968259214838324100578124297882677365388215135542991294034787376466762559810007003817403233218195389691652784801391620053307120144057409266563431175775984664926954726560071606504944049379645941934136371944784837211720263034857455597424164566690750489242199632018684829251051850000694282478273782287746941918712630591311298806351594097506746821306779879553254709081162461518595443333789227872703753945015559228041924307141065256638525636172820322093468757616705688185846821585824489869985642190035272408548145263579041282142712288633834713541476964035565470793566982688542771973594282015225462804585575889968319966937829836854584349891637134731642190019174433243674688735370170470727111295588148677053647923336376720892408698915375328111724417376097418818705551522685646652894549493763637461252427477065786455472444537563724019851499710607966408906761529191672389732466022648942331320485091300507781284968286301241029787925412370734034952016689343364843775178388644123168996397703478062620220731467770593594288704788070729380995040884381261022637483354451619609150604489157555982196427991745083758634225765085992722974341858897443299220279792401821433156732283661127262281019470021303093178562216961967707473340087782519725491078698976612944740862994815891402164643360076290535471867783663996247457175091170680838397865889305163371753708050803902535880951581206138621993581169434372693216893237259219815280676290973146042947243502334129550833353840346640576567678933140479106515983045952370503720429395225814370447448810585605191381359472506413870131122972943264319910452627220426612024366834640888052751970837964074269338156204599634107762043780386998210584397332586692361976559194591823238517125866875187279430665485810124523023320078642762404221248638106552862560237644169610063952375684317034221099594302645714588291002052858503231527988142932721334522025027997082698150556123478423229950923270837769796189456563901523146706581630539677208787898146596130062879501017769123384556947148014486958554071247768667583020286934057067293180482887177394290920287861812872276370667205951833907463200796281128046205339813279594169515822053905322132669510224180579800260553571338484251458350666589016402236550130395105056197730567831512789633132313524568976433151437647155538824764041551758659678315169055369752280427625710417206002596501968768227703166825591204968732980437226039101148999195156317039677970251737781086689279977970179153569586090473056642739659453200713730775062936781404997048071043400283273123649878697618598588100264214895851043553397565473865253089257693496290220466512691414318737910068423757261345125056757916446340643800704304735147720146633236200514901154224903561152378584515709816539522719498125552704101385296347170601242701537630348563208667873601742894851207754838059665765979211862350964272022978516013229251587624886596507698239429134558704803206550469772897583599782689418358382731433746826092084348111133544517079645001032377476380103675652994318587664682870334711010190491812004218877608513347870929540426246729845623917151062329673036610362026408384655412498894947636507277929134375040010169870146740326185182320049452318008528351405289006539971598189322382981662009208431237398532082583807741857456322537088702750161689237106863060405802670770515221812176377314480270202889097254998463533595427547003209382562106531052789051668878945678644838748219198748525116484493259005221354082909265968922652282185150238863213398923113878274064132825679452878413645366370753159225940143259273272881439519076193226593379818350856364110703195947350010626625218461441338062346405469446145349408998863531753828259383788878654630377125994336956790177823867226977822929131893574716511352749885875415105751629121270469502748952720961982551535934082907405275513360645945451775558473112001740926367369301987431365782184591872172038145497127114012230233200643212969389044780982974310157738966591725755126774614335056395485269500059024340469759921348674416311721613565535062706398725340067953829871652005803964899015289952514635501387495352672155751872798256656039083350188762823265146675034407179845717339539508575617330888391242697421292697837739496929514118460977053037894736576936105627697410913250713634930675256951424489047350015008087464120011882471641693824850063366867912882064050132319467813961130171620534906340522841862023267910667859582157984413148138312242592209985715251906986212603331740997206615704045381152833520328318305455037162643048783890276770986429876892721257481446966088825921207357909398062477756256342446164489173418461261021962145074698975832811008539454593880083203978150866574746610299785799893795305478826817187661111705251844712188252094506867583419947028098695715892904203249308158842375136936945718624230001573767447194832131601350200843420954558909919182052258508103910026039565005096948568673459981525351938481922143109800152201811442460889529442949165092936329001880968667495126834268727546353344384665186359899280543403911473051851256503475762865664695051337232702550629520635240372740575389520773309012869793175910518093983181904306309967687825356616314598917510922801801394233102385577291688201680604362640625843895639319147557136757336402427983085203167806627837493779723150058737628785886321188861798226005028105264174428419753814797484070993475747516929722754269181628395648898519373467382658262529471564375731846449190351324947206113444767693384961200326768851407026424997954002216503154160414583670946617152509142833120304389102349334012496790919159413479753981510758474129940825719874868946537547651152603056112648275630186497158989886845923536165807121806927469259920754490917976544568603503824682942569879962487898339959665559975271890268124798677012754121550312466473736829635914396737821128425914335433041791537171759020361735327152854682290808709262705770788766622905044560327354154792730811916528455500816836561624971686430530912304960991026596530117561999501586975007538260243491642520948863328111987999190637432791469536722881934270024957323293746822617694750665386802080855908155260435969758435663867604934201058106816251740832778175955250270662492440398387473692785035166545290866040392203301935754752175727385886297842150515570549719673971851463407511515061507428769082003679257268878578502894818976932109462966725659860892431970681675159805689645173925454028088276854438127816900776081359018309532941673291249765267375006889227941108088291635089780199557555046929812017073202571239204233511540592484843780982956309123856465907036918624100497590986655127110285402553726612295088886078327316865808624345732602923614534400101999461391667748050538316375235954175568260827022141945248214627143270355745707306465205591717891773814643913099974702169434002947556149977764677749205520964480657813289622183463953205359156693158672531325375520404071981125938329209993741940920586047206114796675511611956360683762081852806569572201241136394633235296289675845468034091942161958542220286304684226823023400228282735996966900255792755655711373618037618396590921391824841701060685343503146348049772414274714928885579365159234435688279020545399638831171919583635635786689658230496959277183657004213390980008249810333823781184400937916619498142586716471145125467969067727995434980307323904695985618230749018479859736469797170073974714279100803409334899671842406303977376941092386319067689007644602632441886271632865573457933482724948120355769929604396781346684875530001792524783674798236656460873571520870527670965416698318269742745352365018940536373371617652733592817782371635724380183697981170030675348949070558604645658451924328930338654338768207454902866272330506986497752612271107747167113184456081590463026043980971213322283591061613566756768272552267844165367704979714372032642375973698725737243058529791319756374776964256567631063394113652728945273142944604461273497154944584373755767998127101958648009129213731543742690688913729659124405099486778215789505141164110452437573651253820515754098150233370670755054969843913351137888762094076021001425304496524873781817050040991182548329775724012527088302126880467137828956175589568752745226812924574588463613416319260605841837608470133737470288361178864020749603298444091208097575116840263826816904618629736160741821303396001604580013165815308102824318073423494067718651769773874316656551505260425050328827205830215533933531212318668296550120299279750644298852596767891376685589094722353822706202897457933759057680887200317645871379660023353679561685476520815249253881560556288699271597544175278709199088799673289508433139555060592194151412820820436710738526805360720313482822514209005665875574615046172306425455506146151292230146084326078241421451818986767122714635688922984596720893290555641973031608325441485549902089288658835170269744073923817577389650317549209499972636586810378808468278505520022446076466726186784522629034194335893694321201137854424737366473568907782147548552987331997016357587364066100329258005880202175538489717077537875837985606449019296910685045573955183385443351961638596866844102461902961262650162070342516220062788019108224536128957910235319766302197940164630594481156311216874137559359652801591471422826239585011302411918351177373730541196800808595126894658139488813017323080624097333300677592838092905176931637039621492152838091275914203481183866055648852931826510135223314561887809000613650995546316875298107220833839874621559166262310795783129114285583535917413164729757395444180719452828261355487607884166992686037532267916262412020737617993018500844343890441135231287247076929607787417726236897334891778007401670406293626325741892557604311593849595006133041228061779965783185355182079697505469674651822957984162116400505495632384084602611416049611292740143044376456256082291309405832564363046531505545812753255619989922271766734771681373667629757286948131663756751374952666239056374172963685875329131051712122706392765953282208812473961193389712796726518340855989887677713965400460746344815419223660423020212879372230922803406098269661755022390411194335951628267543188947337183120556733983293656156030523345127449555503398927540630472556740416137097051537079979073688432552126690538609623340904054063474191111467964107762480481179421778357466232194230777226123180278711798513981921923164020816232102621365601177343993418199578105146186780524211116617053179357468324410822021176971607359622560838754418474076728618124778041993108506741629168920394879941177256516973640191025633987110489415072927081223140787873878382539600209830933683517304293181233002394716067097893162489581908066458455829411978269504326847531369821616089593206137090323462277198230080585694979682415898917477940258596576556372327226543189815535811703269995959416541144195276073345212314387681959259131341285807776469588886118097838344712820353461973693923393817775582738776056125671534804604728473699983307852639878230691197731555558133811022086782440493212292709656188033103842125554833718147349259164193871087285521420200718460905252170628026041827670582645853694627706894320906184595699304112817857546848656348862878958026364647787258873538259278184112586309586735599157199711085478022770905366257717894909583894414070538862641106498423033647089082142172957222588866006851576447553513742586111277359274132303087145060126072666651235674852752277881917963082945136938979831504404292021553917143573566287557795084730932484872166715744749620884517134810229807414197794743941420638517975881717231890721338043946616056227355992794516959726772557424300166693780506490130148644257860229552872842069624484287486544484096257076599707442110429872515706710757545286359905796991186827728838897937075499925993817619795575574229810423041167206985505522468880226009029709188367888816683705034890312978658945954401456506943802915927857295397937711566505266964818798310012719746152393990291494075299037224045846162245050648754348568252678797651028009639300824196738420955784631288471877498008054943964794460065841370497041025261660868395435763774099579929104193668590208839465653689773759870051448679146406446780687699910904514746744469318382445069694404148179257972189651075737539694689976288608251207454907160390523189664743244716004473948690130904306609425569264474769043357555149037958478715597056648160706629269096327307320861774160334592920973683243055038055644267864323988972071286702529803111348732673002221263852242748778338841497865592721786136131104497817466743743747761269898148068613126886798332490355333313466777936971861248338932858479096215436144705831796651940887824310814798854873749886156997841231865611812910356183765258261425923516194076018139818817621967025481125598655526903255872829028440620698693778973399956001962004517867974459661217757812727872490339812943550417161397845438602886423842290761757393229917193894608741055538621273408464734331892464399915531878878741378048495597349649064482737797191799839771334148912029277981086776449720488847423873753249297627664518684236778187966037743837525559201331639599639567919479259491585008468427830719826727631697119733874149497216348031861938892564199667772670479628448634272219766171474523608989490659367186776420943208755037427651227185640456894125408737204978227867899278334961708773219269448850120098950676327975126828445193303338119156044071114405029461942676994854242056261527417013532941845559215556917679896266509816314026303104371466460100711719355984687914189992703072258677927372035493135676072368486146778092038126863961621448060972643298659468900988750285308764206557049059930281353082875520759692868338896167319361755067057985253805530680402681670619762269624525140595820638517226746766476222829044298068937545663055818048973591626002240682530681590731990601540099070948212136628098359707849724392866276069135950185394472418316741341669874653496590782959198800568272092744283921630201139579490605643408800410044499976234349397643401550225618096075813079244484169630054301247964918242924854835028147714139698841534332591689171687895961414233598450024776124470482800161350677838149535086265743102503872258596745784767287171084281644790879336670538318080824732711446596369097528821556603070974662311619469406607368175045117411260737778121123626105340066197249900015372960753150863825479310531251118300345413346323497437714939359460226926319927066534207014882845643514925984098423490290844404964227988510516195307983497015048527676227478229710064934037614225031405092723140375738783206369125779992771596103096669726717980463468394833834125908626844973848125898511724090245251343946601968113700689414710929462982613185068939437683065792397568450865844766574599934798102128859493051732959572029333827213802616338844550510840689024702312899670706589617790520853086869303973280715259593271444895798023357652820232540096511489176994838440222624464824894992624710828616869911721291048094242811540947739691353307450975181743202409670908732355942653121617494196403453998079690780926620372768378816404116889259781786263038169796418660971592891883378834854107634178091394843743132519039691697738398059299862995778084191190021763880838608066197715870996227362681070030846908759217230299348086688801837620102987141584140003375658253755702060415227558696787217172394385277500417021723243872356554674038581325686316384124939031977535258504008903210560898487949301172412960230385288106005943086243713365874467505845797306308656016389519485419572497040452110127285661377157407883133010373615835114409395301729976031021029563842526779642667995825228848809460079072449328323880100491409460861970508470525223670681153480919247365337454624870422342448004753641291291593331865418813807661202174560497095953239664137092505958007543233526591237439406466744472451778358287340714138107648571059942466219648855805666226217505148929821019921655059118324832474220435220258766345896970509515139449347165489505644071225219749694968444348143393440378196518903254202767472010900451572170041120299123871316802238526605618352988229763410176773840109943022136534695185618791214024426708966564462820961592163644894327096987314736394338455609751267861756737662560553958892715423837999468373572866354731371584823241611586918176647273837752480435176458877798609485631274179185218258108366439303816132177542260256303135774066231033105671218418179877199944628047632981980204406211538343847438965945942864427301896686605705127886113166201173090917027106592335458775808165370380521971579868860806321632872417254591225417508352405188700790818497500417901052204699607176227951448654037735593976649570163083464121879326500219462313197649892623496026029320204402237058074288643773641033899789129206814069073863717086818867936889703532362892927223674508766712406508748172964609963220574947219626050014280774590782072913652021817539999591889500645378514856004389134707454698236743655710715052409169999305206368692720106701639928943014504190139620965838791556563451050810890315080601157493026679210054172810761828175033519235797600862171463314838569677595921075362517591954540437985654563784020094374259704909258640889475809970955516700903258510542301386919340048100529430809818988220824249051726244671556211799954573606399812602376262163079987852947881461204476121597096350802708044662869387636951838757346885656910176883077266278097318446371689814351948685369906269663592329549979503866003574270431583140046200580431473495878087024060786987797506750379770511062018187158364649768342605038158902859861972182632443247292470498081235264564235225826907052620909791381751667485469177151095827584156827305810157827954383496911762696243065715624185151659821683648185870494789278989028958038327544707256251379124958097258169515979801520368433512945884236419933916210904243938936623477559461270815673298165770551144749938816617378777715057229125063395719376335883171034770477018976558416586768860022298120385187759652599700181848475176286518885474409913028566525442012702902181530036920539034970882870925580043106654099707405197434754831388822744025876011887945756699006563114065471366419307504126404598279385063375484703723045760093197352819567689458759749155664220811194643887566259803036548312742256989544963338821119851102685355061638840365844171294133882464602842002608537395845976192896094830259944362015654221126458952656005621360645278046382375437162797788002880565614792961217641889719804324867119932983691419239459217559061665749971886545442711485771105758101670110741398577111483300569009056512079904643472905518673650025147364600139315105978409036551088842008305212915741399662860494881671201976115450385218189063453916242685129111974081503938355320960228452231971261139409453070741434036397910795040235529755974387883698814048472096745689444784150550171615430205548750663395674115817304232128441160194065167245165601224399641203281734409759165310697071928744210763291843659504364505985217006304086819729078287712003917699044064801818843643041761920336753925760538555058278516689184039158340782218822001648642396281788196493130283337813708093891143876420280516539597966482919379333571386162877068264802898199191111989209103479669683344660713971905448577691751841531403983079049216599476688427920789698979018131350514929265303933854678319893088934253768262067611091964711156852500289870975725171553436798481084639160083778101819495065771378266537182051991625684703530257938831831958796038133663821882677252992953248422880612826575716648693727596226360278573661127238315502138820356403851719072015380727492953608422822079445636085746805900933951416617972190499380866967573932826425110694541305886607518932808829344057891305743950941524106498998224749815328490479601456994434715012832223692009860003333396784973636407890351700600593200684195437116351227505624799781418639557855759047947205313948627805950500712253925061289784193457081348621308600361031247801075075182906945936811162695912415055599970703076389160238016577589308359570802807526937888819724677391079571442694961725592252380645829459330085724002411565816613513009757669132374589829042231519274954235173656868231885945068336995059567647944695191288372400502263916380298151572898759674293297081190039658143348607063889977599025301727386030433399488958730841795323792932073287456617271831991033750115411940719667963298278252614007585010347308925087335759650835562134924886566714758076537506620024800872734615177540857201797854365317799372603247016446002577579684877755064828215029281023300833226255171587117731523479678921860890005961407213027671458804692116130400800689083081831584848601431519232476314631527438141689496827947201337454358588443698156423966944087154533787797244882146017224185213080495597797454262108196286544576145096670409052704451057025858366253939351384982830144223912063565795184371007532008939979726478922002164152363475294014479218239881637174752247928836410534745125105235840066488229828674695947213532303516550297354453651264082762976116328078424351202412325997428864262679226330699156964090682036255952819763782705613514802522049414679406182744361235356882575913657265191617708981972711955953615594946199176028826286988568130435456445976960367421892370181969594134050345216081069311398921787305502628213610762360012145522927427287791232244614682705230764546480213294561799466656928201103226664594862203281636907672987919320591292078765834042866305752999131883225588248650851066946140370502974051943258939417317093259989817311592515935130416855190563132456928292997258463271725496479392280146596762872012199334209718274013752488218482091743498127062784382975840613667900346601523428855421251720812092322833934412446902112511272223069164004209469168879609462539320572156807848142715655553534559881746462798579385543466172720214571871550860585231674042005285653727793689624176664774253264879565530808576592550129576348092396810353758277405607809949503238253948179170370585706591399965826027445298204291179627524407003608680383226587856815697612120255812908779854142053163862233881290551932578422730301774419437855317525988631234196829223637974437908775467434439895421060127976072628812797344679972416301428179832642297145912647350163054828907907715548852347645524130757046853005587486174522016968172213277159706160081760114237321409179658141710761227286932984171195291866016761112293901770710055226544661182208935672905995573082114337858440362958905222076150040891681132506975668527022876782066915842112324379162789452482222740583512764424069065158792506075679969521203155591524102745702789664517910960694954899392867382203778542527596999849956974564512200567413584114747454693834402341295751515178803264677744795898115438982938432237694942773323529183638735943236222360058559272324709163812555600904588831824293810154561454651224351696164770053105543523696658672246022858451831059364351372460544840591095020339917786188694479539615718086892476350227838524859573885608881260632375201417551371028968507671551078822055281518437381567478463241928098475150448650458277350431618249449656239330143873062678828796937473806098798566906701635927270621879195783370407536278372665946005626222241569857647420153489236481126555967711143093214537606660500468767676561285038756759744426443578300412905098088145656238687676895703818385587838150141043008436907606166017849699934401737276043081842871650485536715970385844440182401526781487678828483009237686701730339093530773159639944888658076389419228970746709070174661753829069114613172520309982964213317316047230032393331441008129464475162456440766709124143804408209929194945183145891852589378403839384777452848228713868363744749177767995602090724412368431656260986792076357424275435846285869920026956646704610501024809397024194298080881679695860990128700391704445845030657055029032135481791777383325343713300638192681631067193775988560769602645252514527817595026669005905814643504853232619575144808309171669111172351574752509145966577397831038154894837425312000258581293892893568877191540795009926183445816352577841496288883681856273630649286343244210209009820681937836201104827224547581286626059335519165905641682009881021208049325165689106858527885888558140380895370148011129580771988942458914112085604528520657929331395844184736173893792383145534211893670964425328058129151592548682767115075903521978006321328130599631629912906699957768613803762924138215885762106915938762033417764969550631842687403756735650222983014173589397794042761957592078425793809128675212126295139851396343546205296676905896363953958734131886849133164428415000716387131003681248489449833311001660284089229680680953121530722004518705023526969887219227425624717958500748654846895745866279568763995700079673862810011940019399844719756939702476078424315004539782407886433826988701942627481997494961290462381681063969929016137163242727084621333086047762699860502694723502003175728952264931382415536049392100421680926133999293860237218469166697675058977418130743587045785639521158628247955443033298981826928041486788081482026945406560345604194431804023417533912354150576948125260315870679971101152489431161571488813006021966768415006337959408609454759529711490058162654520633288119081931809020970885919461773166687749441170255937143742126805157609951055686034505863318162697887394729786756612768046721108397016553446354785936922497987286466792059922608260109427972190573385183069781585067871545826565268293330802366689274577516290700929901827396264030615641090863362041708439570312207386833569618622250529620269662288768555775469785568290955612185800048472439670634023620566891799703692900401638134367150785989860587722009139727238687690620552219841063068514456558281936011928460698480384717211276411766244520989507149777801992783417795438503397378871030663091657267813889757672374919806428428601210950998136880851422732643680571469154571031412378238043728736344685886035038438401421441523761866362977517806880758215202326599953142739892646312151573557024375146284279116850507764187322744462916074005710963159549365281951858800931805212666846333143687115696937415621399399601688825192694568590943783109504102740589657324537700756595718740051968573786429742674491822171662182514618926603396921867506656482241980575607583210942348862298035037071719476869021710437869069068986129152912630227620073053389261269328365038251140662194334018552705846042353983943735594578496001670200762092720568774613428140418714035110040924959464593299686557055497863621289016557166779234013224107041277268694102647497072643856407289732574446598062193144033902547793623058973512751024239011317323682297238515074431297329625961060712006143183497223025526507264786297209274578967610111920115223932261316378181118849156375493677649771229796186472982016345881964177806209322947165720598457907050734434400881990979806490167979876763819268317968387255323590033617148517984575385038698813736590363915562625662190773763606405216008876956764759829574074732381072050696441329533605492718335939241376705336305941660582882490293209915492171281874169118818622505762439353064782721618164520096552782466211358447411956503302020820707491357608722414578675028102878931218758294432767209158015293397285651065179693854649584102679132376165311718147076241790881072247308634647756805081092183614893918302333023655974675719430336612911342037085233265901398830980322615655771431948361275344175481360884067677348993729191810510946234243790467417930116006973572156001444602153444851440654634893082524055076011094050878415322946354213924292020764663809688620613923852243524612948523567778434910022610894888477205138685816433606855270008659736817528900421538250115695482880330216015946065330574280090259022161177485938256647512828878181937731266818406768217640298658342645676670045371746083614256791918043964287973343353366043559059129381907397542365704919564981073714483305612050198222772854040936692415879378642109702624100831217355691086222457531412283818452436438853161310004794539007751183217461315341225950301469633048753063106723243695540232824070527868490220680986931699782791528933417722342581125039625193644431843181492876672612239201917420269751268355157801868930616541197776537118997515262595600021425708322504151666831549030521319324403202402880720653269301001173892043074303405411324063968322225958284138610448773342986553686392311274373096022942162578112136049066612401798490353012997274276299748765081404793014557339327701351222206430154687012604112621880504871425322969362585481443819768995344486091053247766217633164277914286270515879758736184701012388473083331521961535425918368169106616282454254806494549129936460299510600796348648938941632822472877379887423831916809289015324609863368773148557831789385717065221122481919669654783717956486155873492680091996447731222089660373603122275934434749183809046122522396547192154123908124396451080764495908943819127894773709987030763165853211081179760585193614208206764998183608435100462012917709595190315658684768780564423275228417852892970467663907377597400571898731362934945644497938414249455538048424911790114164310493731259539987353463030803043153095914408413842857882602898114156426025449137261070904366952673048965134862201262900790495468161718554068962168177133725111680956254584617105905819460168594419258392953035389705339609698506945418263066241947484038173180931711115585681753552171822384555837077115515022837842772857719118380148658159803537859612599402170197920088328522023305287805623626965747561490284048184126261912637368404301314601116206283949522567036501667122463921307049103855969340606161656259462268974028697307734719069956472903629341780276227665352757317391731135926819757773758952708742404875975852754846329936922073636665786582469379646340079257649921785074464146986003505960054479023641028454674400876260880792029556437935374784396110040780786985001535597055027042724522779591738599326927860703834611997842207931228658573654040693494210625976489473602161201282872253956485377884657123918704373666334498473448202356002241841570502344521842918201757140872005707318615051248214389342154513220771456156758303408575296864061685207530590047408545960942311716654766092508081258500742377717864982040268068263937110315269539817519926205168132564175942700657517901028687297255558853686051077438450073939729168088423874461190785514830455302345582133154811972010196821762939699906092618461913803488381695959998637392069837559991997520946839119151245800217046972891871424800776270759288427491781341078236104310494968233900366805920570893682046445822345573105947250927096623476404522220347790650502501963248276589705765579794482481668649855472741091872912949485314632056297807098577357618466792114161347896308259767738324917118097053204769409027443929462195286320735804334254305574622567023583776324679648572553595114577282772226472263653962547157645255743815776778085493431420116660597738938656893881483248661826398333171280803108539370994228978097778111502194946826815889776828134601867636584315271579328788899963387305292227387320830677376944957086489222624856120055100476220422874915177343467145612064491909089844692158626890026057274209850929467299117940061240705711614181736179103219077250280433957863509208568270309542916670292666064996716525783640350663948197334887609334497203345555833991037086354087386175778209904290628376410810852207785322936822198867960318836178208471752287674433603943081642714085997572873336399598939532750358721629523261013305324943502696345703931446786479753986025880054058356941796516853821191870755321917988621568773735448339015019970201685185961193831739621164369471876430314102602266639585536178446767240350156553264535548229312013436608331487421541454210278686222531713700762937485894365330344532019462473117004118629066287070063400297535711647607754848554757844761521141059045247382891060537901067223724587589480077791346398152029273424384524291729233750933431316580029076797740629450093601513445540562740694107117120749732583163723243017039473674091057717794687574578056476871884804287945662115558905731220565879443326289369180244309545250810413994675250207070617211776907510359103563754216559744612209870849691343283351972625690053105347089829476180932172825222978099067783882721688756201849071825736677488315582040623809384807640581154485664719472989043739143652284518235851362447356904607717434945130373913255400132882423527770445705745738755255151020812213577612250230216658125695253691975026908764825087327438251850185770936822687325562656937551265400879801884667108363983712565017587234040975773145047119397590459013408123369871537590549750287036991302614015344687742821734852542920467315086420545136161384079347173086244533016340010324090990844617960003528428636227830735553811923043865969525184822330386487085726527342040145844134666388417534411279639435623654485840570756951748828222030056632476170176023845082493295115692344730683123790926910184699526905120553536684326045858462974265479921564241551945327507613395974126945602147945915829837414292062058262950412281803910570715976079592583637125896414263260919855290357319694522677263744990294984639190145176450420133594158878619960783777951469651967373274262078886472502482036307899661708011596318363606944389193769712452535469952222730137281786991505828236542383014342852461795180879852892376696828494082561869093402120990042061439499253433581473140068427844326458245153163214571910866972093295263025008250242389169299923558403868788274233173629885785493466907540614181961769995673383796984858231304779452654976657207809661302680590617066191693660532973930682438160872724006269157817555358346521940423329075884353274332839930606299467726460869653797923085426575269172422573996951872721191407465678145002501050481139453614308810375657807356209405331588090718952294381783587620364124128392074246903198521052963967098414217338278137053616791593004790607950509823041322128362545306002681427727493092253588838902909244233850009260279836425158128962606756917000689800685192221350708972937608066045410150041740894649633408210805902606150617964901253634587950425152063609194987124198910661045279604098207622471015125664323805617610709710833287070977819428083120993539350176624767934760972583110334709457792067395643358342324365398141983116891098067212067758505005306373719987492317674102697324268332402194923762286002292444436103728125545546098064678311458024034187345846574082328191561502158946759316029598512895072542435647648771761934930409771979646822152814906635846360160378556379247158102195769639453300262104367004999991916666765771886492316774140404387407069136973425698343823640781655231272752994366229528674735028367978552954122253171647439917674482528180773264294610618322808901057610455285664553292862414802387387421304544703603447211865534588141055833798401025852969855520416070844960832805175217767609681497526415710836604068784414162094501370152370600872919377346780657242946959963686533618246807366040207092735681554308395751044719000253299685039674749863064066953657539643543243000315771664581564651569655276832927891377547879866138787585991542801057859115119214264321560978741994737184923288002426613086528069078138800458758032155551123473647651796008991597383390121110833229060945286939303000664483300168067439908093887081607548132411557783892603508585980207020114068634938263404483830440920512797382281050891707363816298725663811853300377153545877755264617098732918542444416682813377088824788194813165994448509700505454778888301605170454075435650491046698886833212422635342435922034500867997462890761586253356699000791488556011876461971913949593853267950640394066704253428131873319364282982889588784841675971019378058503524899605628162845765372049418571620546986664034349513135816544244252860402555861325171290128344533265636849896795646834625886368194972220563752871726639722582879480672974289340789221745260756253920741300845324906241871307910841607284156144855188146191471252615573299712305478479937850305350473300971603795219026757383583692871205935473267712999328307763114777482341804473232486557602680904409246262226451847309016909062161936020662392181899977989510550586847880317369010104610168632788348766049723923385108105579914720274096833810157824270937001921813454874867953620188352595074702066555601150958087472609026593269861522984842689860435035579511625983752128713883784767323973019800914031456617615811897385007525007980522703409830587199908199262664740742962687340603103081486560051229140341730845802559589520334140328110595852650983066533916518886531392047341794144807900821403644021103665251248995595122352732214356062265742133509714634629765833930037389037563415817015865598547406218345488640479082973675505012702872107875709375091904940305721016009483784285626172924081354502353354003569085762390267003659555576975728171066643540147574143503707720093795267675867950673745373704170605138373972917895728505736255530478212034572032805908739743884389899767020064077720220262509459232272221263815350710822533574769264374744682237102360664924935107917339479909702536793640704228963832981022650397491963009520093445338856797367324690632757470991247306371896532200516608727251315343172160225783396506167468324817783532403090026424274773468930187131527845296379315224207356732798202454651564707126619185857089426675851299330370480140703399450500032391656509049633226410063021464015774068610257757235312671894384538663188437672436730841855601776453339427711049943249715041198960267156690158527285506487755258783905929233110839598363139092777313695002592145355874210512850321233077690312190845412428155170260095711507649470605748208735871429816884359021518241680515384832999981935790777948786832396143608822002728278143336176922791877441343892548906326682710526153856873737479662781389816069084713362750362841673123803544080510538860653977659811569181085342476444327433477353498021500303705044989154704480315623469677918615479519916190837500984563284772565465719142997324330573275630804074012792271720400847048622975698683347937422303293648955183556210118551172524352882888902780944939261352469153701279027119528510798661767650013622636133401911012517609893527058859313144978607903022273823614148918745257080268479436061358088447418482051808146724969211358150478628546179711580658698934998945812677666728603935819990406785750471682950573071229957581048637454515791801461800409118682466126571208727713005695028491830090213823668400114105009526908071200481630557507946641311165079775457227477149006393048867216088500319659866609627780311244418240828616287253557364720932769555350087756702094373111864577302244726447118196692297864619397631454487719990316166233240370326995497184235196958955966336931416106142267301359242675867187430280090126981354667406516959907708289335346314839444494757295896882413538257314516846478111992644018661898680164035603948057185985511625498457048117873280565754905859358918037209104342192308976173660380234475927454385192769634628111568767947498430149369183771692666521884514581242115492839047415047191259621115196709442389877271290384470992760075848490276058650082074765011737310370803346917576373906711970436909417729596887233786029485391131675920393928409338830116006057251311799342226400889246353576033850958498934817968279557708387741786947625673868726192605167693549895269566962814850260412519456576237240786759805709504986626456136246753959821029459779589215095644920462310320477461665564333740304697231825008981835312457307546075372717831798869349714628906961331224822715180248380794929125126758529715027095914583134841890461159027952448523025234477239645436922999309548989788479800750860650387835916597703118808920948677876905529296649566313926137412097740876891277929221055411916238932197852723263155475018783005082109857080989988675475966286249972664964357627981981200734901299328228110015456523614983189788471168274417625161297139578918718862413792154924005902462364839557709355878465794674062050565595432748266136186008122139439438654107235099470294436619030744417178215676435706336928439531881055624951499423414367152911057896904762999162143562506890278238737418638156791577296884417692324726733424798203389281421803497511868720687844104564615186468792493203076431683508322827190286549130987907276736096131865455971761955296537842349419332669119968358681324600194641426740324806818725134408199468525616115183391334335076215689716121150665214475865823447713860570823879690267947574201899190481472583603392826057478632994668356929849894824871330126721314008148886188977216317120920952303249816684849753804079649341637530010816849437655634226773074554522776741127678523446365381379507409440009190796363101925480647270804901493726439757017830112227694442229192778572804753471715932092391196036941015340269391651626624293869446833825204422090463094004043235624015785900020881199923138070907086431336360586225767369312586386921113138602794480357361482890047240596962556161707185389808393366319851157463726413465484560193733246516794922553289580757816509293060550325065399755479710446539218492405379713925933427767542079815832265125863415147096998262315276138111068112687636872575601694309602637884305447597465626001722879265023544961003476104197246958079098708413814435855927872178061122476888029383120406777678834364211823587059567173007554370915070931676149266327798558129949763635533129446477910826338542840098235905856598875250979557060304057350162869047338846630505802490305609195135050375120564609532520943934727476215978603402342221095784601198803643111422947761255163004055552481408478351109174749592053587989148618461111362992857438986773424427393215450427977847391371461623772516352794555438315451991082939173148516580476580341731759116431586778989459983722494854212135805325688036187475320540576355897293860987389716658897255030535223199275887709637107370875602089286921109095295974749209425198999490188409869671449652729970342836416622533825657470114386022944310516038373719985791432193498757025239192075833147113428485213176129545937243202831058001975488671310957891646662633109151025448307884456044003274894227726326472936253819319082752187420981884188638708804838731572745513952877267799973976077555900661694774633117120690350619701915289076640171392576251686840639984379426039771103561190684798640092348441588561642295305951788727284858264651067002327689187934526330841684572464511871664186594194492754960759400056806806272272777211726460198681722719346596566031783878413531880140707735696033858370828853734038009691698642507915694180768544957735320902974708153513328941438303155686165091911676038310848054297954302083266323897591702663099950627023531616719774226764914668813263979841875491123338875473620025083397466706160588415372479476626323364543475562101652081251900786404646033599523921735767743807351451271398791859861628889125790289334245540728771321859063651035900893459605184998666745762789174603484436011523062741703382191217225062236566800873298851646434408457658694130200428046916898572630543588298384233588521656855268640992589220547210176678762170210975163590043881713709381726052418145404516633038085084944913067091598090607422249363586727229179862516237503621837769157884862310823304091242455308699601719824867218356507376868347390053077755472916264368246368821080496109064786185247400806790557549608104065478230804800161370851780358432529466342019153545008291272172130171222257889834164321202650524030491480126817762106157773729763815398561580500873483339957090737442114180440155641889328571125400248496306959272001716958262925613916774011702536761389713060238490622913401908819863734343023583949422298842242784570671960305848400340531992072064498032442284279170112140895022729202162947383349790540940167015827383359808159594473182208374326732619751308897897350996953172696083031064144500885889684387069826572512454936599389193437389632323957055667197651064140035803692961084757109485771294971051090417185656378919633267686096084905310183532622082580508054094182960513719845922410852075674858480434437190077111436551947144607947487093778817647254098255022959031119089464162664653298204638326522838656187673956981304106164016967472423347217130327328237869648573816937761336613748820013085525040707947286012783809918228264179581022134507059246087055834774334454254515759964910988877610474577110207455184382826959149648393953274143007418615607719561765975088177105637594967246025539777612596959408868655474145711560152762724712234888271660368318404482464799995179620360618869304291443222077682517793868624645504221203660276491151573899538332301984192694653884627234985923248996141375391115835843751954779762717843529786507715639350427285931349217692721290973657060304024923826184115306680300906158396031336913967836497787953484322488270514738312580964811332704284798960588599636492029711148747683459672348750023873168260969982193128044724266683417908100311486323085123321765070412521956429060769404940730169930912804283567954203582336297191506665967428486492290017301378723703997338280197049070576555811955597071005374857857548020370264716577553618889032391280847957351729036561852898270840965596052234875070784637615263409645380972242324134978536473691955343677357169576143278753936354378367452948482306776072952674921993530058919079028056993774741619333395920305026931995943467830771637735744383758466635052914094987627005958751268834830597699611417638380832108583865564047079548653672343626785695944353460321542456913594102602195191218478538035017816358065344843842890923207008855755653855505029390886832965244137863560899426637198237297148776261129591880735383639121615156776586355165260188085421876943706845166337573917150366157388450717416821192224828504891424739652613049806080133107012170392336451008052516405238239306027219883502164359471728356348645790846420244820254179807474281380764214606943413297814927490914562961769662645139686105139765418552383604628724809782450477293974624515714106762678305772180961876078427735769502017997326832410874548396799697274326561869647236975994947172871497446073196405486286242765842872293393647828092779272640027701737896324110500662549918679758179494110213541798065171784242951694528205302412066185001769784862502350976529411823787587328647948802500684100298028852223225850599685638403003406691645851544329171090919902893935040506802616580494055806957986108275994608869599202864416380951371568609142775297460791484630091689851741931768743585060094396505378399922401763522038526508880840532854690745255482991709325181056687488823664167008650674773266015374725156546235733204328131992021222511156127902418761582746399265682163934274493000101661203100063809580175367978186926721503722672487687284378251724617080220334975964313660814731594024082910208476709713748439015712325122092504796428389390018091036474314693347954951771116153710044039431890092236001957479394462609544246008902568871385614124533144859158992016189087492849458340184586684460677284068753534837908175271666227071208533030174758654475508630533650190865277991499152410509672917655488258428821373149293767396572380765820334347207749466085486828282478518531261133932749340615314426844800851062871057206262243079405802698768131794769277077321786226368154790060332378625123976503009860984006663117568496310989496758411671735199334144321728490419041383142957487049035479599169915676571731150087894185884969129049502372239391646475841554222266878040854869310272492793622627294196876344360246983336456986035573762273357288245108485013668081926184243449885856865206283006348014726584782224192842243991954278179941894264952758173724158625366110169949532685858706436319251868408145218034910597076901788463074724688111195978156702886612333614961166957768153152388600951711936783309870841694018516315904002745033463659218275170592003294756989061225367926208392456796638525636499750002050418661153641111145530136455333897776586767192474422641297214719536164973652162338731536495712675219444519058649450195367633444223235088118136033106570152851961580528668501745584990445741623475354574306568322011704300722283495115768269024791175783815354509064245049978834789200027001989291609689839584127662081400707948906039218734036733478252931699979411566363146197401018176115467032507309186068836998222491849152117206724620604705812481811035300192317834344624848296402772834535069330256413669496121298298245921193646590979269437292584716511762868033839564311356862531224705292138899786450487510309759662474795943607279060907667120577754243099932562698898586052817739925572182708729571660098003980738244829244798305798582756596790300663337246834444990096399928703656385482933886406671619614963677915058247676102262608505501277067294612218908422073606379081842650104796084726723186236700480928328283470779870114151372522679024180710543112856552513791590099858458410158742946541104712523552213244129886369879240745162064653906123143470325932251186312729244047632903268659751051729605443153038165623862448028607045279962741640243644290692926465643552766451758276151660452289055948289700729745215787034801654378992650282343392892455663204481579166097503783769545914548664573656605291730759508913283214024715333802526015623767485275211160830403800997800367225126854134538414331338519495028268628906022693959463546799650184635912969799695941894508970866812762534837423295742669671918447024020232883154476786385142783916442498238980985978113841235447989812674450204499802035415439096267381284855527339073748869063127978779464029896276324877935701446755307126664108513086606939466915451139806294865640229290707029449105681105166935575181508304286810526510019495922051618447361330896703205055573654260969268662776534094399912281811315603986096710140388180734839845796961123261590238824657875255803135552096188247176972372104525482027750127318775011894210470999877343383630580123961656626855135271528862688739003130459324153547986245098534098155667441387630375358015275883844000805249622210220411873522908650266540676643901270615290833616524138239370623701519409301525263177971142565204448975897234373854873465395258324155327795847391139433686098162846113331933768954095378707881497537839779350551631526005136752181043276386226541129052094682221598421880745862808098689522097674215280121215969898278932608104675496091106205931939543791028681841627881526381003815582520969222604274131301970521374879669108180362387405182426476300665827278540575784622899062003151832152010538364661633811029476202887801490007375986126969417392682620171725164150575510686260241454642067832519973016081535533094415715404565222533400954801566907182433661011098911041916897958478189393874177206616482727770141392373555505480663679755214789090944988147586884247173741352376380527221452167380059724726095807045700449801724304120081089183359501263088695819796535582483919186090551844387050398744707843943029914675104936370107516218755826004043990214435781665776823355332286112950194393013758550767693761304118482311501884411371905366245517302092711608436896896923585463155034197114223606240965358992215284385255070212065235164123521210943125277251972644976546983242810930226106442288382675061202316854225368340476998649356332496421718542612194507498621668916243060592143088825497692071804204205910805054606712840526212176315178808252104604583345362103626254153927182263316221679606814916815709902099729418632489281219904734140645425357138186211861922730491355924194689176626570808354279838748924279783686849786896006632218082257751707331456015527896185695333749820560801536399912363205971802229550197303263848366800735784588064468305485736350102016561843910789884779149777369859304872898106509502485184915557765927721653341914160314171497738877824845689900453285284753448417761002644846495502734296216520766115962708965537078143349875796611119072197381770834114444247706830667255610299650659172228648181436538752723723464951771680068155209847987072062846632992153027646796606114822150815151604915746276379816097681708052001225424748238534193245637315093785435871934415123631420804626974508873360385497552949385233286870811653221539827373081206166634193202122194531714841285715672464490248796209229451309556282353954338081298824979936451929184944572504604907781514242704457633930425282776243211981662107387477153638636517068249830052381768155911922748581197343833436831121822290911867375203361078179961061899972124001512121156574482727141564001368581345062272499895820629164619030284618603954287843365573444446201997111815152349907919459546268876531117515678626865050013512080742064165521435232611497307003067205338387591809884429746264592606661406032061185270604023460543015497408909527442746230880518508569449858556248285149399741724525183317643412959792112304713829068716271959857168172799008532135060053649046404174638586893531582675328360813929153246563878387599852844992195588034618219931108091107168326920326514748877820083889506257513758034538528522045919328771620912980277155244324549129153059400953071525741541645572099404785528705166682448671482493482111539720040382303550694232496176126305141002821129408515600154378988456576651426783518333814668640113372041295104088491910128514300830883062637147824398035674669531333821212168021216759372413884929640000605870622803916228561629974757092598644216230858453227618482225069765439065361705080479997028943062479206532428538328997757527869105285501537051687639479463536100147682656358780346562173229403410987135374335977911690004791707912140136061549261543674090391192977924308256240501497801665102571783657469112375175558939157883562033553302637424609491049208419458922501388816000212254871263093980598179107371341829693762165286259029716695386482054684441541616950506423597542866241927366753973679456753535303493509812801496674612259911184764699561303172062978868439804569139119353118474203861265898127526891351998795596245138521823399385437275551987927310139020634434519207343229931037308335508044150488631165437001547667339417295788920731663534739430723845996368644207329263671275632428764869641474733144226734751729271332036696319903544807500833507815333516519499132358881511422143008788249912123495079499480565043478698609967497687384247155757188016481640299368134424482205575932159824746033449828483553246592986368398893371772645578095044401700924591040748473223677244124547493376075937492214651067676651223638679673397246551868217563412086181432778218803391786278544386753319529350331829742159346010454805151711185574480878907228718239462852453420565024699834601287614694188844047184321289854371552035916354796397579388038582338494360156839466097615922203485769574159072535595872532237829704243539048306330917496476100753074907757743486074549082691377261431909122951353305959577864750897264921527150563475058514693407033018909851701273381340079392165852646124796992254521307735954756937807700877774498176731064286200915190526478014202054508580589633756359492737513397630047646576905718618002359472078514882593996331111320997896150431190608085710588834817776786657906572963388418168072812162662380131165950738188195146833562759384421764041937851399151667390486392198976650571243755029819259546562861397763969181509765989063271757630457005683991816824528484061329750461489364359619636728322877110264045457963814877470007443816994547477067561990884884559572442594267965634171175171554224411323842778031890323536801282256488590381569044747575313065230543970620448019762901892857194203304309773831668927353906892803695133075208714426955337486096734120768478728428675701281177273405258548658238827140726590772071564019677806238616085735291633905300543927041687647727626643451450001246675044012885001258303193699217464066969867400668442616160579328548085844586862659997926264374173868531563469553197325574430348417654250670284473167258946203038160859962714203810084986440661549698983432849535987053672039867023521130741203971918164549933334757388964653960241803568219109543322408626675834998128038805358917015838687982260375421051247056912360487362817218274216806850852980320994218775528943668694897157619883276596880847791041067353480704578716236367183007868904441030124199967346900616795186508900269745185130874023057947579272379580907480844989579805152283204555676293486712958016649053345815226830662011025063348359698548607458223846114265256872104751741282376276257263875374989335423919398404886130318262895615588306399759138849832839521108345533786924076732251291030493216100954567581916990829995504305501751481484424639060333945720585162525073833812313251540313982708828540911501236286191869217730710576491935453798435098427524094955107397469075557658569613294906083463550621980753892861752231876029812713181571096043316419785119915648126964748075309922831395655136525510196816183384877984530863657038154355698292974157458728975371704645512655277286596443985445650475003685734833440569769062255238907991244430566968848936609355934394523780922096581614685894613061946486577471773449090179209534298844336391630167930823117168693545276208940098677691668000654447814444698589929648469845843187832162015334020921830323611539536701918375328199816478229267379523838926495194977275537663286393133129396639088830584254656952824922464225586790512130973363453606389568148401087444722417202773125671745997878358083646805419560037367875929524627751749485232887038938783068055798489950352251262648242209754677870282326292363286458652270074778629461497127743757602013471522956856155182475921678585897375996980666829280402639979685714575679825754161811929363255720442320958321752558316414709896263387511187392649668042261689634376826343935844340459792512959028730186140051982488310477085258010382425528892156473028037620238575432642311695001156698903326275293640769682769516664623496310720764400953782297007301233653688672413743635414524645041820557814005556852706113163200074733248694736437300796057857920634515911349825083604809338788588778288525101429508901780020728353122089902186931026121045623193343972813730844289781663076542929488156304029748164200822352276684313804788328015239416984332246852412360692033502272323665913499719244848608488845613700002057964994156805707699321955793704206004412492217032005461896225983081976446541471605952827242109518531964453625467781672710972933910645313791122550431496314399314581423373817711046182492986184797626046202681248705721288233762283736143548240493565692115538799488078296192388993415461473940190940181987170512151314609469256073268756425070893284203843828007007418232494234654348993230480360769506735540038050178790896024055726816057613294766403771757115465048349420652050163568909061110648754234851292432064611981885046308656455251136933810258174742043696377652640743611698168492608741777337437830194589521439403144477897443673545909232125061546766125069728722859366057302839191797935986407884774625263322713035109602705168703833436129194264161538603445323280495747555920150374280492653375926661632414867057940759254867312126906761783951543452702575159918362624406845124531893667439133006293899838922412172546567938385906203117012982466501065902782843348995233522919513518835506674721370323420807679773898220026623356701467851415027004038598296725058012756117893773790241797984590323022329544158084993992368938484180819023997942632097911078529683938432334361596555982147855836383964186138830656602094680355681688638062610138766553636159373488864916189198730755980621814798432391646900892283197277878682955386933901721216507051433763635855594061394985608225498585408783672630402416799036833958766382878099134038137368374436125222649934939989353718371124310637015658880839913621377468563947291659513521666154875787919964763457790473381256887324945750833062905939203335588905168874254812601584038661942236795253169012669901467445325177174673019213514518053173613487734361132354623167549575114249614678888267701075865214150948861945728117207285976350229027546530568329762712966617698822706690705984148295985950912931378004661786374438436063440340206713656838633929514029513658929886381933633626770448595133659583285037683931887974079547042953263965246244617134395196875087342917155413427190007815052345648363810648175463110894889557409382037007142665833760078792656172062374437146247127207906064740636761942379666597119041283576131879556584172741440554622679934484784217366718591257809336618690395844440206842658365828227672875770249026510312414251848240768363828992969072056697834056501434253734822841395407014781238106624220560815730419080728658664876429938780043981444640750595551973462333937137008613800857327658267808678528937520553978986143680080038446191060428349738566373178406665627533323247507716852391444071588719042265425393678421180573475037161415019828917682323765098553419314385192462198037197732573902491311184962335900163871052958499030142472495682206060455873534574940190556727665141234525028722411761951857436745820514582541835703397041797442284775606669886921403014607721116473978693536834647120407047259346896307459371005433898027210906760026218837723161559724255700741522079844922761158622180025713276350528561424481410533015986770751266489381828953569614805772692410292869173890861879144014501461779560149512462206507451479042656158547172953318355499702793960989304408881626088139822251421837864402661178951411801850304070059248954157068178153234972244258453828083998275681114580594629322170981973909394472020455347099730781347849487175571235051519452077485809275988762958961112595671465325546697449366019061883583194827163912346942749733617646915138498262747121828011452957170747764863492466830061091018473680525515665504399913095786284339368907294678064063257552009663298295639951951459637343797127914013937241536480179927117407063168800974522759931405287431762165862349041232885946025832401272918632507035251675900292005858327626627029982362262821527993779702020994384766586263137907922372833685925183238317590118172924333695753507459312101076287349110983896540252747563229870392395819546603300768706182594637406452932913380236185396510314351029072521273560181985369047134112099136743451709702436427213411179734961004994862181901513035583800099107780617521797576734147282010586158165171395173232671969893384885182128857531451680374249711253533358455830079307011189103786839830672449851989573608791406565969549555516659186120520508591359283966765247968492407657934894531500830877211919653569133045955347520218288878405421662653168235804595693073473416516473674383168903217096076348530711969988853810295494720722487745182029827080366790128655675338998533203731356326011014506663872425513347685381669531821598763012439679265873344469974217809478257341078633585384305005785379234791813893719013167477335806420876345160481247597702938532544307868669870500170967403639364233548693910857942850529304468343995034820883889040981911859862293191887586830372786780564412611229788113917622259938865411833356182286129306744860193984006999766544963016983567793055771305209615692178048525619607375888794891394915738777892060107887888347183932577892765183801649108952902527201731993827407400957597173551254177020048534123021053609929394192990811591637610912967709696080748805504592639505000941422756209898493643133594424751458424700963912831332209577432312438748175151628232734436454808671258170142940382905134228976053415988379565296886383594705422822686138981404896174524425237255699859485419626899943232288420316428159060893195974714365301218884296957838447179855565468884766838699830822493269346190770197242810049119345203281052475366977837918762987064447277916897680005594835945739204130915466765987258723804376538620138567442632703148553866648982647753681189839631569945285836781760406655151275258923610702891971392979522330956007915323298283007272309107084252068944559795234131268012673007571609180915400317690229911256548216805227850688429003943330992064055797855160211229700461629004886341343950816035512533998510344643679672747526313752993690392581735253545067934815459178297108307880892684906689252410930885282816275378393467981077318841400710327904719132634064114529714432086662986055814635282401499871184331683214912476263049450867644949507633436662575644920572223767544630591007366378183684491223276320172616700255311357029468688423236675031611200628512340596236785487239213879971431372180830139114216249636511856850113778434874364449035523702516567375892211663700780246277273460499198346467566287209909837614905572470956402313103279408268818774708024012982926568420144609935469179710176880356478543234299151130273962693416247262618684232302884898758733270243823316942003281549107795545208448866840859564253239860828472772002292744520808656934844500647940401657389824261391932630395871194688383489916160288706804364857094130512158616929339946102994379603622737748724968846497884936625528509117651874538847497162378450041126007761920901822321194805002832274189374786634465186648058667798476598679960833717910745816416541369199935253174647780463140023424281146458402583072347579385445445390574327857831530421010079255479296991484859526246878831197578299532564474219440517281465831190973870738079269975765954162608956112714239535530317992154717309007798923570733714921939225190531367339608793258297152768651722460586840069763983586456068981041525477626812874779036304939703509144468557350351141093120061482712731674498155995925137956579900820102165765666860971553170530078420407526585431031910299336582118267505247963621417659361730895114032070417760899779230533985338247906162131492236252589121169744722917077004817595680802243890336126354226605764291003885399352134053409398299250970559056552522098837084835486590276404975717195169893158680813164200198549071889274178530669004947855426123470094455789342762970230734445543860508256736931865512930989078421982580976192474202967382765264221268737379483269477167026673339174028439876458760003297842743751166591676886054282087631637894503983774871092326974930355962901638267954206467916573619899480547810588809759947490093777439657362402238309248144147444274785795906739474503576295744487331695144146843619946421239001769256749429019159813208910132263172037916245645558533039030195481549035754131925912947842698639040216966196910120362186689833574152383615711013318101760231625029095183415579281480673627645881126125890912031101113940730265406592089369710834847366765987250778710152607691881652131791532044590292121768962891021126551762924164386979996867772426898879733230093388147226026994717565284143478413910667527742926301596795120592082292413633185908658931118893312561778658035639157756277082129476940521066409204331961112035693787852482653912524008094328123287752197144458152371016003405036277193959719390614515551821706574482535101110070926130710001463062303903082094475988790811165056763518071369612558522921419053618463284264850683346673006068003128372050787081884107094905100874171115730827832902229478019107687301671852051977869133560498340498850984761858840056742781517589770807372964489864743106221578932475437546191562953688174288901615550895775159595246476050801766404154293488732408037697946063934197261808196852555383744534254178278625397045465618501959084613463493328499690228347949850902437494432719212041264790736226849736194231785809902379266917424648498796786542701260154395628265421905260820315016444298370308018218033111607848561834366173341552278479182154632821688946128294440800337806503351687266576310093285745942766894598683838313277652444096047216171861366247034984374054975057411401406573230652732219254482330927809169466928102019961071482307655814557461539775574104492981245249611223068576553121632998830166055903769821904409107996002451952760162852271164822527261724203391679313908948802120527284111425493058803639845447138462163876085347528638834016242195627483115913763776121318058067900695357459066213497223984956198851570293405504901590210081027366230489585611212656967764409255652867079527601856566795150278719284780275665193374033210212162524470014780587816048637199242078665043645488092680444244571053776092453785698416906623984425196649888867976628025037499835084959735228508123234868749234874239141520303056977731253972517223319266439788009398903111778716559131961390524070111831843343429800035492715207785866051568180758390877751465149944959968140581545244658073725989814008891774677552061154582834095309804395052050722190753657706247608289087656547479176283560986392176210650784702742983863261439179429656062914813459499365867973261720569912000777500311568142994173310824714947238944506230905983570312998982324538802085942248830728105337495893329612910219731776796726259835627688838350795029888867313599383231001545473323534226925088988507836671355435512125758823802507622793034338475310940785633535465504883271261040811461221215286806863738056320680011792767560665850941243057437703003075082467169228507102482880985865789366535769285631848184241676773515865559568743656045705072337517216539447595067592140141129353815847350805918673579151250106246944740416626570350426017045618891279801225389684138941684873266432108783978921921970135140055893465823484233448656345594793798468261139084851084038291155231648680992446897422805940856527385962202145504780277090305167841577312938644966924287658001159425465258959941733775617494498457530882442553663451120347446602772655107502211662565739426044130567074786937955735362158969212112021297663538225726281009136651687280712040635520961554858932340489547273821267654501322711892170655182482556984425925364326775444436630480746999390889678935987249781782002184382780050957546712714084860958439941206446048434806044957297776312200186051238155918141835429544635946915476468617089796057653321962917222404614411365478153679823063795160387592946891809700404969895417868428266580754144759141377782259382757555363780852987403704001234056908553558465621782605351696700771512293148749712958700777932331097637480820281428611975684344575449605685076862635064609904626831519278341466678235949858641847660038978663477581555122575980602840351574057975454756896923975130804361815947983795663854740837885692358758650535787053897140595418420623926817620843207052789153852181811731419673082705236052634670929615339530856038040227172232057394764813913636972111728223195209693853079731518308500716960127399884047529107289160348386145980923037827033128035266038726892442409213044765467575786781116907198028001848347436528764958993158859085343573227751621614488873037805512275469253483195947881766192220794582086803642614694393736008697033667221928601606164816327408340711754357382522263618510920808357150697981964283551615678449496245704688163667413748326462204423781224678019961399050615730524867139962608151188049569823833883615946591431833858730098899489792442408996564024544386888671314359363989871364073954244837210403232053297145487423836236422323926131086991330462156058210408608341919621666821638169491181967266349887339213799165271795929333025233603523903719336430443644542100639295018372169440178569970613410546510022214197660114134747424793084831613217098435990797261161823373494509373869309610020877525864649697866164803479060110421345954365344391543019453171112008416605267915968071149890925664901309726885119177186496471154627133015122525949301723038723558333422455070435754214499689267584716135976256375222972782205124303646878714729725326978145751828198675490928444832743587487176280421070870725755908946415060038645311625096435328857811233508153288725679219470398186358587903327777534434771812313248398263689848124165402137925779646988579555702630862855914292244850975296398093696139857566517820988958904985633499064568899430205342279952662568380812245301330457128531222614133860466913636649004609733135720497584831839416652856528169834747797385010839334449660386642431740376452463598421203413827373742210558801499152829625733820155384112250250689742056646125163156710482622280864534388051391138369609524692180241212746680407276075864998611944761632688096468247303860929508030408759199250176267317458270901206845228436522629775863474097727094121447299235650389087050966213623614766253154337086776738482570122359200593841402759863007432653959258744404906381917506808449366892531428297699531413938067157458252260983283237731144667350561410766404353440076266946789497232137351185635118174975302394224352251141568213371592357851566460617985311206158011289447285061313613603208935143905008602179556451611700138068103444484657785054796134340694454482843568788635817399946807199232463365519647194593225417862785265729423067567851963669350476892015099120446858370374163457894581446418862120988536817517231336288392351575245656185227508321540781939346355679849315494864891918992422892998245797499211467353715651330673618982810693882029315830035600150205611967017380088966967458355163577464545193057109128957179793696465805891791308353017431218970422395545198682148162014984573728875372497497176125550016884305933848927911952780387663100232675875467707006140295185988708327098404922741820217347890801439787028793483125690158563562393881871556107417484898934333669099699081026623100853931579463767156887478237005976452984240522807949884667547520716400199633086010971099327461946276124394552681311212563089153164052108367001006703851571095687252306652442403577430838578008461130881554243809040887673595398459762791153652594009614654587786399174909828829497463177633252331641282443490403745144804938117056602473037923784854675063791961920530366358771205961134526632799289785729163338150253560338285047282216130069303435437742752314201872796651668068443089718290146494844363852648929767909699306701789732473214551593177871410469049481134255384306772118319161329100434579391226267542187929116977008887533673177155760006689178503037035735107513987563909525639333640356966371821348454851765624342327146267406375194030402608310396460684403472339372370455621144716042040038620755236832108984640825293503935625591322638807943956422929558869775602882297520573734973637772814461513120679997438317831065977697000090641447396333535061371105485541000953918467107582635633660188065713957445738646208042379277895684127158729580728463838992963534139510618546793092132572146154837244174143192444732799473939826413269044815786307930876741053336816044826966165025281004923333881708497072172851052608527874890111701612298083636299349491798070737529899073091325439281319576146642165270187849538993612102311843060896210616451554745427599116583629700533921541990071276906262790454055286343194883285356269225692325359703122962170820737298063827733562022390934774105041540815837469282383161643497121495538143515069194788249662326938183264619101647622708636755232934984596311919571030263240832604898396867904414130148005418928492357418701020768237839633688870522666233235555499053558939909150377467816151675301930123585935318838589850397851256096406799954978612775108484152350559851531624936946163547225509127100574025249074831408245503085348742162711235281531360959426134478415512264746452551687589578470717506798606413303995405405081198658410037646984551845058985799661503593113952887081536194362232456303210005164273646456967879584808169510422625265411308202418549218622678829700623596340636357529456862808212799554858296301853125239695826606407881637223372765770905572027238725159395185519999943465395077255205588378905080894822361457250090584770490537884695206746781937918180484695203678653506416335656447959787245389856639377429784079169605890006448800047734251808562351568289580662563425006555383613239262282829210807434441683599799360479841399579710145698631484251024797191758526821815435100561207476565920574190791192441389585750888250204889229140123605015764355590490890208255847557167327281923056160759764355409677936684438145869830828932527696147608879989543092797817080682972983645776434150235763446276586734657278484934018732912636988130764558962683861928873460993475516306156113876778689122623601072682548491955951081840251324595085372366374671187805765909052308408881894875597844399501160112135474905940863488992998658576464541497004299963746913995331994344193120562934647416582815602289862181699687926550092875558198793559528371637353819382067964672524065315644191267943674353744600258496127490007258743384241569002447275777674327142259482574954593452964673386263316412376311998676340338220982392774251321142169579267283617634891081269564528521689731450879569959038902308410739323659598194997406143553711580800004380416015689082713525098483119583811547648786925360945270605250138053661374668018544390876798212108293259046278184206305363753093717824442076892411352778610209153974670491271256754027498690339843446827790847594885212514921825117500080783723519622595181941956262397756767905618238652648997814392157030317454804422113240914418227096918396181175327359593878289359617700157998206887255718689127159461124700191256735224812457664610066974678540298734745969524286361791385730670223674296199976601549500389287173587345766716460194763874917831085422853875741766105621162872312530918180743304884774530205383335675695567589117531857356005958267096960023971861897771502211900133399348286228220121606360281510325191814752000059660995983145116484520457924969009922956995238678204080610684566553425575842363742920751126274867129465969964410600148701926609682928036727023860121830192447914596821921872238136804135940075808126130433523477752047217262198827557317271362673234303923472624680778376323052023054790316610966372252026180437277495751067148945448474988663939894557935139292958779134992197770282711293592056807767487790506341059085036770165731165283107395948156032893064216175789030824721183702948034057808704254279623744773657027272758165643927709737507397253336986813334396153776457612499956095652581720693167627639826687949096987448895371497057344868348830324428179401240502332641202476773177512616323486539147848821597862318229966540112956453795571027159679945652961039310895892519516578632852509335462075264198702577266300827636001505929419612665628992371991433590605307914278132915122559510808277677946177068751938414717455596897529259952981659728035907496755130396834108215691080212653084260967359256317906036894942739176163360134296394679071287570937607288164645240631485940096567726389442569164186386761942576744278394408493599102438999456857763799355433674306387910675487714662394881146848150765349974324044952537249489117274429789348690837105186885531125395276639771819731482564045259018786523056623356263748601908449889930483466327309009591809215036436413941816989427649092116680680939462226512497536928161798547327114284652192825090747198520147351029866446768175649416873490012836094697887459207871920916725181048463304526996477992840353895721492314385364257907533518156944925460951867585249151849689119184592539836637182913693991439209018547721160647500297903611285424931592999219789666054113075315485161887320480678535706029355512850637702781440437804295383058938292694541469703737669325588054811023781821818519579282815152801766587574912194362795286258636801159932437589177018818159885088483147160707451471191979542547756227537671594342221613841922113888661436577871738933950931279183322761298649658726135477512707209744013099372111636304397249196406722875930524960504218557620213660853450544882712163534775148890689214148108798191915010393941014200266720968176866838063077147398839958697484180761471590336655972673829669145979065182829526354114120307910716370339160450813590219737653418743994470172698667104491742421547989751063284101824447425408685741273925740939253657745057006085541760705708099877887731664274731457865653011085909031062725537999693427536167283073535869262632773693738732135700733162008090067479974374916986645224138220296224363117243707210931924208276452510387325372208336512544790529044294337034153931166822708344112328828324047460558392103175912269721374864221492135028263343558245288505525405139805178650288729718305405955874800470265637015732317676749286261707117535135198376388009807743205927679539941192450324605011362063541988346996525529925126513294100247259148489282072150962819820789836663955454590400257246582052331982063965167740382831776589250791444211928275973990812870535973598802620480665027682731733497797246769848390550362685458921753270430613570945342685485967931122594589982358928802896289442053053075145631511488480637059117785200818114154382555627988508997227573849637180318327597276259103120554673469524902812906915685040452530128746901165276678375594896090941552049583297611961112996224258942123396795346410162009359529383892894947981083485271214653181310992516809006067877816562686230621150066646000823388836046981321439679564670926319887608615901678286811626993501564247473062205385939464370423205225014398468240680078735386552575471612673737200458315360780935728178039849816241105270404600163784652089979653731328273366559909559721801300791412548348981012141678545640202828895032735275380267300392848008746904054459361754692072097090164924861729643160931146265489337792669872674746202233996274293997287641635391030395152057052035049799565052910461605488714202247982114036176080787525017605706667257975273028088349807131126771680668602542537265499687006483491634161539791225825044688535098285264663669178978301742111840890679733138462426633735968927862173053457067731563352668507462171987269453586245426088333883519183930788854158595540142010856764383560158026099893508275414030748353967812165304970075864131689145496758058329769844521865575120240635634843982445109425524739780085720749805399399395917772492980382205207056517000547359557077852352776388765991938821781346719039973085650547031684857397361204291225216255889193378675167254904984526601134188111926011045502978394642274107698363465509911446044041570750883984782185161500786813959776570457823792228191247699005368606410963253291814291919492850345174044893785639052664362906759222828844788109334063976778879810687527890834812655976756996527969618324914192428462761290558448070003527072304335737463084437006937900426399917193283233390541732085240948144650027067074808946669013143680309090402335900268571524536665487194107350402371691513480204187904862355452171608588432055077507098665766345258596266250546976136535354169958105731599386435422769437194085862336671590692153482129889512545060684212258277282307424182310968812154762451658847424436622113631885492872589807975301361984723381395207244690524146719775713307533481434570484759423112657923347432791468052639989634566217469333055675492072304706376719642727367949912902364655719180231510795849198652137029502834614071054180379397303440103561798668762596773661234380102015108765076310368008527652126708191775785315513551826066617142711600542363866919406927519587535833882463058618874369572888705867964445275460394246447454168480346536692795923385931991260187631493567566667327940149094977515001443640936348207228006543411036063706233176012396006283561975122271555628457163784172440930568344072311607994921626075204397774298755360125722107930873950829812002591096727013110927751738038711741781400612107338123318969939537785759554501495136420791972445295783194149999997209045970217268324926424013921755448800880427910314799342938664514294965928081761804082122449063864689921027000356680634504590056944582956434894861049060631820320341369224276433608859688869008631040408533827069930301520722869927495564895211433075335540697776006193470809260689386634369940068774450161636031653611130783778664141359366716050396820152728957397652099946112445273970410857032575347014200391984969394737410256491498003838285026765178228609496714505892727512625283487139465473080651793233274613449960223173261499381711278263025105295529120242078453852700009598602398613211904988736615174482754577414690854526407925076711997267738610565272529401842715483071233298718218647633456123418605604431983967371453618794089797557952902778159067212103723963457819538326575390617387318375279520436284067732136274320354741041532918447641023126988868831857307974073897688426775408999038631908384332632737979239065998741178478264842915329489010110063702642545489027562466727607887337379976585845538838907078587124915521970675683548795760542769465450155509316188185490443032313032494540769820912798182738374054562384461062946766310238279119141064764547972560343158102893451174140645235109306146981689926047585477094080361084161149669254458747978090562567314120536100790092400238040908358905053717212187407330896888659006986617385037916410882865926955079419823052579903259270970490677116602209831000695978099382635650248204550641793124566242620264657809870031786494096090937958642532753587230701212518718698333708226927920686975452903172756381595068032965570294262565398563520901045555380889696057703830939632582246876180705075549051483225001497739883453072025230879827020339299513569149487365939883971153922056045829596382946507661971120063766683182631969264438784837788654601069648965702244827720541226689766611557605436673795738417557241806596356230423639731421118617552911202517329610943576569112164088020598698311458751174358376840900462870599062470262463659390559005074107812072847745946758339239260816301382011565641390802969374239769396650858178854436039425799503535611622073646883447333847175718183517857818790816776020155455834172620712032001134904094993745524251816786139912426134560564276046917010868351885849765301519589047077465949276702149421476565219459427207871496527426417690062503380620796673353743169552184836301078836790044891293217027834774912587749468595843759210480389700461955457866819061686007342950578782751875300848225871576455743937253152396211146669315875081593064448050918602550137232550594378422658489205684069918724579360109716826503642020995156946776430776479810681796884926238253505488533507604419976839781759699672545521278391187259843026951917304732283861645401188405964182824994302979128399593797082876767911670435288385242805324442633400946305245375808639334328324165132064640719464342392713233484021092556748469723726419473080947060258149777757951839465335804219687776035614614608344866496292660555462521674549991149790347551626924720281265130937219601541903439206438698797930904799077856978881250020933077986951695817756933388356840344929990238666056581601818355953330506824797256919476417218508040269374230649624322434187150149416318603622690159930015779234606684553114367234210964858134150441315322003689455902258059483791257824062448016440531967453462157455571599734345636413446283408783155321272782668942104905327214815460118104138865013828515726689006662916014184547091570646363047527093801926081342407614802581805751431221212957806176766970616092394365162070309473270913451551572138062924348339629502841061491101916797131467623275016858895379747197322387368246889126814614158684275201415988132992462364531520823968206682181458276105631709467253840806594485960768325346820624401912033935214950342036162263892611288975387995783289280328555215036715719947012951669669849171165811589508225513787699140640094045552232522975663745168373651441967685068511068643503134540225576594935984477343236587567156786859199821887818143930101140306859776067714193702391063156810765299364086584386185645060308352957018419264980298992413088392925201345071214455560111464706847208966690626744880010204606650598517514001408281140124108356965245652038708057883408937220337521141787540023966566094199244473511283766049676254707982180589551749386350919197188132866076942212414922823374981225076360245095371692444525098364512837510425597394382507369986638872275330859901748389570224918687621269960563638045403592867728090832401572228142553446886022229826122800284412435960631459973154034263802723724000471132503609215728493767725781498445979755387575801359689399279313121901377204891404283907258473573426540313268222596042720706981619539788679616195830439247641067691490671533591519806191963879743240862614424953311164803953804761842975411336293566931084792299874356310640108945533840552001190075110357248162329092808367549522406755754067901813771634209269603079885456006182101898365478222518164444116020805245241479668035054571277974082147545450213102634129486291021393820085489703357831813091120480365396671216690624129287982079247599563313193763697875674229965269013999386736301866760694318417231931007394013386149174728233144510656004294697945416871738469397285350778684971684596333761507728142131014953115216480179167817797514098345158176096046977846272287437119112921987298506112376297717622701086264329832023100504098701807686504030870553338735581297079145284316120749536484124179700272598416240939060520661261595171332626420520192731204776794526194472031916996015303677867062465841983780007591525663716521895033616098687582408510684412792996408868096501810673340237162467479195703707844652092989669213041263758215587191248197284498531723224229563079166697777121388495045646403133241907395623814736775297278319043576858246560372675601397891580997779428959545932921520081634460255811620921620080379316460473776093445709019491377108089859892572209230962584685403602035796150482018697083624323113432436697811176977440006933640875507234453005518786169239137043027696208130170163029505291306540177928526605368470199820645269226835419086913095824604813278096964751563905235453420584174549537439547804445314530067945415709705489066707843312661035490519545743739588496594399984527274017383568662345156695773603360877758930791258045259623468604787336970401231417230508159241767026007781826163844472889118722895357404217233778655997617419699441350109022861322034096241651654219948325103146668952968373929381961644967472427898957993111952168632658163161143978877609709426483136806321643690488354502769454644657911993088347733707378420175229943733468736234071066812340460017099681954991195272241244233310258982300043295313210537911691496851074921595433579472093684402314579791494179692532900455305675397301116720701703941016748485104338205072681363280072415394737285148761211635364545375976253550967689051326556257107484143421172790768429769952094207698707431010974770683623684779437324941930227058003854633027453606673692707769152045949667008680242217428975323940677747772591868158126759203244047590423931888439871247674928320264619267363055726300687234142621838415425044803076477444287917175685964572006896824510667015118091686955879135077411484504367922178778145066155400579587058195626182706186871411442309968659999740806642724194012267930661675740802451636127741354169683653079119172855192341397350142911517750852402979409350265434590204319498962626566089007771258304746934620695711158387964596973073441257471014011640593740588968722840377259858231921519640653952954686255549015660207263453979219320564017275945314744027746346123304754025008998958890102684474063246779671582905725377830459832375391169596535844268606109929049927017787891954576312387975040333975452505178046402552312848945289301107487771178865676047213431030667638341431635494772256948325157955846875639518644689366043433033192312493294586101723133477560176498773091201798349314993918190251399548791715204652092136172489978264311811563214149471574787340833509581246818770641823950413683813051213562043998627801318479737559382309617623574594821424400473444289974735779981747609131209868635804719535082825641831185885266481561237803093010307477519463635915312199394543735743383506842449802787697181734380225787913570545864865511055840686107669537456899022269941080091751574108265325004644293728227235008023946006693600233351344877271339993667445949608040143696448440141476864782169190930840550463593958757132385173303119788181225672216380595488305324530103793629210885740736715214864687400422216261264812206726670421423790802141847567142838965798895244370616293442305200296441777772152836146891253523492470879369351752740538828649352510075853383838546408216993659870332199272885464870510928748488472662135093367522199223233089058543635557418767560712961278321145314560987642571711307454105986297846095550778119475244390130856449887504616147650230646863764808478033817547721936058399230862278018765908249381264621047075746134084978791458383856210502244295233699173082462179408874932828110879604717179314447292753461760966777699822927094538428821246423318815911550178343096025655644287917884974531928952320178971034900419477332647663888024971715828310146528550797763456942712198863717933729415685123602279861619442227052049098281172241177999228099280465522714149352476189008708857454444787019351841441215356770808988191739270406167368876664570214489865798090049943091155642913364605690069894233921915452456556372107229709430284945041865685505386153187164845866730791316433594269575082959088838666641603706340732775072594406219647704775377197757840290415318241991965204407857436578690453441023090104737843975478179286551984136631565335141954942796355611268515167791567345699895114734312199082355011664813696255289540655120718873690935885413366662553491214820766205201910709720553911556996601968618911805947889413054070157866316759821816769195135596829506415873676403974349691187123607014516608459897547253255097987293301995176120323301810490950877543746098541710809461782544122321736424296096068026647201579937122194148211515238540969603359107956717994172780712488043918555529145832275800609740421670690898171768862936347729019011627707347565785348227442856235009254699024484220340000508524163326591159840639291086843205407888245425631558820125768196560305477464188730088908687469940655787590961750077470860820375161821014543191616160634940280208041931790117820825024243362920169328933267928337602499453656478631924285510966332107115887545413760717558465133040562391653386906029029554326853415087731159540132328642534255226891238455156190872170645084147068838035579357296487601749181158802220857351675728648992870229279381437142685347829729070685025269365699122030225123473461572141659562183292341839269213630434605969937348762462324056993472935406820229262550996914876585870957862661845828655053303728936687969040117185080060392177358762348077707973244136057398938732189198897274408434311694326668468628088255361072141480872643948044709090933344466419819570610000836365049641897001405769200002225472499252116305012293723693268360841229212211010909322298291715644076908738048204819169592000713854168953091952411272026940979227703071171714606434959914994275950600069189917975669463029124527519910045591418752919154952162024878892281446924603090647732054816751583117179447372786794771929958286046364274365923713098707975431095052708418003517987066752413061506674105501713696516614336305503006041156667523927959685594046086787002995679135262057314600985340198578089426718258550438392870883817957436057617473419918599886909341860483186957755234347269029771363108611190549581747182329687445926502359605321055844598747983908253016848713743582418142243539146871914675323780332191072644434272258407284737937085030006836040427450921635078488723880274335760134166361184283937149592389371319722087646072219511455353997853873943569962237936210309820628039050198701447540015349115135498192858090211833199667044137426818775645891772464367804512307605244593454085203854239019219585437698485569779741320029164520317009477125364609275075365222202380287008134847844557304659529856248651006305747748292804811443590972145222963522727251118214307982759706825944061301196551203592276033644779811572491127288747414242232219695806925533905770116983774698364008781975663211733272993873421524349307265769784485886152332446331548974019026727207284370674791401275402096405305349085261588334997763041480011603662837843751274545536849185080012819170005032191692912615943870269649546835347916176785777875671358810358794483719968523369589465235142495389971767766380643543326721156520736730714404741327294966527895107075003579553457254508910060486993217648283218609531784477488235485467660656890733669510568456214029159823332435477048202673723809339859833970959819857927015831521705363648839471677267307269001067975795361541684752529416669206936664440675467380618275069159655910126637680394810023467864926815063024245833090509961916887598712481986557742624103408850310029200371897347226000491652921387097263485977325428576677712616591684516447611007613259527889411294290740723253770961799299842440200759686794303009812834265274322307118022056427732825632418288453243351215047683530888187339744545672445018671819632125516037189980745805261175790531903410480367082402845906508188787466157906095768013909666666608022649784838903579636630322710120455883400813576682555743665510786131131387992332347798179133933152307487831663307852488825874186205157147705457554987255633904107483502549245984709577045290390947161462451019067433225322448266732078786443551263037176707334584688010477559221048219948208869564956858358460887313933488395292932061766550535239667825192288897895900327185805240669221457999390377478236085691195576799444823315921752021904328042827983605429160333114881464563719658832682840769582145270149906519767161354507385029181473000785189738658593508011652581950876482915819478591903201760949347002064089064256647746016481824562491876681906477685948358832006396190464783370543575995891257052416404248015431727238285616331998023146553783514641458045715312523461458670903903504476257882637701599656609754084604315322184170676965759933289057790951852851674437461294040885841218256264464741299225806973756488512291038597524040190450940675409687979011466316262264897938719837713333646942902755586205727759217608575283491054608233685231044082007773107784828231836833321023704035736061197855833902677254212160720335564041218300744008462196354880799956079122027265960277916859891524443473988923487370548332107446912875229288890528156057874053727818383213059591392119815037528280251732800483799471725357620593236596617862177689566978033219101092843526254208943568774998945072371489052730253939814256000487155761762020771178423036719534327198858832445393335955580164540272082686264754788502129644231875217535887450003195672764426576609246758408593352071736897268992242564244213200858759025016020331868889906703574879001808412906520328867000175384749172464012304251946282331441600378493564998619866322837552553226088335597972051770597971293970019843500955241056459032868970965475151152576286278636275187231806622747133812036337022851174165951290645624367287670200234789621094135341673554754191983051027260466565329894013240637445107796409402179749589699135817043974054422839603390092691856051928878481930110090240404410204254712567115424901862661389423645427297744583269527833472607914312012325322727290735766288256406209016017362049101934924786169983635768979334778432316940033721708957116575135223682875530919780852576529500577876299392301468779663958174328560377025831247995956858852645054992217584220735015868603068786395411858090197071494007099501844202061991040000566178142494211525981999382699826214160522397674973288610112296907153781847498862602054383010850982251083889040707458114646040355029220954170157884547910804566617113011022307557789184863481310719662869204517971435108383891453537248048899556662864521622835143769900437579831753244690290912482607845459132867635025715428568794970690895247571593643715541915753272410472625775023993537924827406644133453510993847412728924028972640359984736489277065976243044017856192655248442469033545025711603661208968602480868224160141166876925465451907497330451233800531641317794412274570269039779292635751248204911686960432875576101952313725961963107188159536595341016485143487486023841824147430477297195821947877583336830749948845967163496707983225984773167012723093151381792742319194068000242833449262257108880717283553165833678030917028560138231728613777313094345776789454493229856351674222788426906395546456849912044174462826843295528722963675950284251435234327586444973481450160063312329959602032146354175625580025264896046244353779037774792823826522575665779243017033522147503814691879927174375143436472269381192052825764663028597084185722839578192105109181937096299749418587566942225292039596983523202463776295469576124094255896229235272103514961842406109299632034423061955829467061915592944738306076848557056834692338400830272872838430829221995884769439176454711870676707033738955247296529549041320036234713121523847066073518080715488548771441458686642468572829094277134684963702862534281027434031967449291731157563375846766408298254296561096006295012649658355507288768685173937290391477287190889765666025811121485711339728392947336354942103722587438666578550528196165816244903999901813591439262066817447349144493093877486682119673616761036860772920509504008884822262580281427498680159140658214216316959169934968251602642606970429214207143456183341719685650217767494331314811777598464669858018718436862964642046717023107203303069862623156756641705437190270589098350191926704152473000566240278247519268880678639075216876548895101429674027565779753408587965673938425154761226482933657360416081297801137989812770236635223029636312812455915498327166014538952824480404585865296838000613145609700851446638418605799934647554133020003874647948296072056567068994138341939190262210846699023104602545019712063597268538602596202153131844303020532773515657515613910573516267828317798913502750039436591333141286383879867115439244477388228602290331025342333685794936520556311964439383603022567497709267224280066579414695644682628995143697746348988663093125544797452040985004505030572505802072089036250111301930474013538671326305329921295956671718482265190183755651931799654268381913203708048675930530924284516474401273010525687516005953871049111614915692914721772497169677886635591376480068026955895289873351138341260409349890572453980427421543665547514781592696761221735476215885321884452550569088563314909213471996659514603189225550393972671924214374381804383600419594677592432299563240559432242882561066972096430518192896182484644962845607172078736324363698810891930770235134464962022961106708531577511349500889683162172095957629945835410614166094764993331275413431030347385308022987121234577612557483692874152214500766114200607845218321737644082134456464185453160399250355864758602261234616943178304958121720810098583455086294726095457845065902645129925565670626184042042544705209995969460546371231617772993747671935100952517258318648936176569779554517862243447428540314882376756971956972806036432396585851695377306437061303930574260826865673454267912734406529049218709404218939034545207065469269557231352954606122206129831538793084578463778090775077984094910914418885757124572866989272880044537991519147344178566219281590156352268660726596080620329913348288440716907167885810640116300030303261393946535035375250401012950973460865627601487366484575172894062845465743223555135696104882010940860642945480042303934531759807660912102192372046432109761240670598984954762517523727458876369213256560607747599343898313299012943944661498255997410432466898443592123572256840605441679519152327626535209424021469075882137087860517303507530214301950391909188408080228722081290249467511821625704353589782734556800439137884867532480104445288160958851131245651578985544414089899089197075697277903734203004187417230417363618960483442750459875667610684670776956905544015598812592223742712235131615913861656878042359500733100258457035954097337072806524196071534711373893565397924772550686908610036041812430263516531176066674506981011354833842570118603712564639602912741819916228668244844875986313711820579041289979059820716110664137432030341488318412048019443532537782189220878416332227968697069764645816736416232646048637635058288107704088958399296770558537663729311332886466580082170061960024586909856122100090746196819797331777112602044704113616034857592754898361859442651520527462580717436140051230733610217997694055226275671555747006113774381025189401654091005546171259673459715480470371336236350379854103316636006812820713257100660040689620547966358169469270911857817238271371356451797702533287640480088704811390229042941696715414225950056085395132456977559929606035745947519010182176105731150396779790004852698590976897811928672134084918478953506453428079389618064481675887223469175224155432134340101659462204307116638458895600105857256950232769498143436701747661397416318042440010246893393490059478886772393556526181861993062472393896425785393395957169781748072876229277184563230950195263535254056529131814513630403879086873609849312360811772633038887630972005564526083078910979415941372125335042124310343416955835727353713593132439487590208532005850411670001910159831195463469727565496778187867846533323137731628138758203391465628234669827864224346667529761909037836832461716378211965182549907558487650477644364033690306875647169754617662013671931256634832311776477153710084214158367896492735390496871207591082621933296658478623070786291364370932500214329228374533248012065775073894472985567525783323742432500544192311059840067338453209930642841381574594965037491043789786559515032961540110977389238230253868608584707566339651051731572936826396532342090210916223296824252914972839360383428616315352801691124807561006311180593895307596152125014804419889477802294332463989381065313412311113185351491565955883895591319426753390556550932382916921194328068154946498604609456795520023080300607269126979238701519402438571858779913384343749606193068820051764346068217604161200250767645648064347821256051205684638828723496115796506542548207225843293311568792419876188056373522556999833744756731810793761076808113756923845616612698765013449078069365792789516584756727445952504269594561224084921482909263001529150917542648039413044033016395490060178169349293903966045469347536402222889248014079775064097077009909463469374217420002309559552205726249774433399804597205419113602047727510534616043843034619495691043439712289999621231619767466485477205684878905350267766695762298797102438275018593895400542242084269428913405086551265314320903146761733386840699009270979768916942502765329075281571351352417844133716518818465499459915074203281944132878477047017674572196801559712804525937368156296946610525236739933391976130784805703978089699163338370915341466916708131846272780389158997384454678120136594187492537626907549127438128263172249460641123001558897343922855649969631633957723588116204413944091164078024753065966551574311113118874280207522159362979616281527014820742738864761958317033594960799382388937757327053801223002890996075779656885980104079361664813987947211682913069080365573288129825095027412602849526329450011647935772633229722905695199862935995741192997433867761038351147723315742209616201161266100520434207594441389743531277460145395187057414663839681953064379948726429910429667854162511597901241299084849273345096188447203586891508886561836749827240401471323133950277360278263310397779212082678319459557365692539337966395019838146909834053933787312823740341118067802281969796609998055719472465324137029367005877854781913850640206011858263397039426216636518719024092108675710574398222366613231911616083031716824441847975146605425927123197784553922104337461813762651887843481633697707620494158565808097846902065623817640809848448732984763587398751014573485600096714262837612474927770551236985431546254017053940114649614315100309777561273868754708480898987431226094822274267713239998343302178584515656571646240079248640491165996924778366150940877692475462328878988100956137771779819516439830794867085814455035542088632535831578248365545226795090654718409352288961341786567248997759401609534410998423131654828263502293976365542378609807326830867869794108918658249893785055367143593161839300884943489753597899560551125258087069392760524880984695228460851593613824727989695766994403827750233286286327829760201367728619714347494819723021687178140475066093796963337405247819636717820447016397573247685830842420132996492179365183643250729442745495956989628590939029876866475400335738971800137565528961632697889649904373903240316242760306800491446772802876468264021234153404393029044043716181013746252213307648012082218100304681368558514865996999671515749456140410313022790265889953259098254776815524084420902093763673411357298563716912885440574901830550124531092001023894793155095709311847523744130627420721303729915526618554828274018704676207446758130514794514110268597680211940743894510048750585902780646484531987071677675514351177880509725317504163282471164886953805784373039610217368494110012955978191158759783669498427174005531891440820211479457310480811107950553985919543773939604518557716817620721822232257510365426151407431080907278048599165347615297810981293839376046933197588724515613362465396465867204859366723184623049018582978884709327431348699538163259093381672508493344369184677819580976392467010589072486619747992209648785551859130433726122574589668497780888248206626897794148314114641549761584513942326784736948353942894771009232226475799125425624592396727779635520437873235006306986789972945695642427387737273160284103272299897931620962697225125012875107806414195182173245267362719332631370407807885418428433039049239188538835817504232325154386596001107414415591163521064121263740535568152546085004143369653222063011401206846633116447935461221780059522221087116404092156117177560326774945291794043950797501035770553026884986121147491570202690476439740677592890052816579114799173065051915510494524046154316277408253507192457414163605898117321274928284512455540006312586563625567494376471408091210875872240123353932911187771046560967189228752489653662373285778822760340093371168260464906311803856492073339424136581404416343201033499017560437835746584942750375108055129702149767507326038668432391097861083599380680830011530427448167428683340932461511797936422869436638347958662343215460760744862057861967501512767621408522842201862575871765150461686899359110864343411760438160750355749330088664172854285648397208813897305819596996800687337319281178256957275548882944720261566634454501532952461234527269718437880635347395555183850698992234885901084534830828570519776487977084739216904459951923478523605075563256807221422507582603410757635347660797671786379358804028253944394239414044657994448715887258878825906311518162302716582762197755985099179887129803848036423636591394452106191280205733076710892535837667670815010861691577325046732161749288617726270187632609741099833984664363908404397099681205738938037485330773267911055014814180472633565708917217046920125993265430621436671108880505259859665904292768323368929112479134953059475207988801370845886460057716543645764922792593116796402575782396932323637626406259430318372438663046730583302427356193067519582440741986567185804925782545469523341619675874438741119019159177837108077799301097837589846881478409451521867931220525444623244224515879519918796955006271153438128715198214062201913384132803916252237506924347337943248498563149397980966105090836551037739360203165660707796955300183103888354089049481356263902525035278986719422163618274712995545853140536416869369770709039445617578515562800339605175418103745752951019633350585011781833130783073594090963052771044166471637866463097245847070504131917736708634327874590586958017441151482191345989615654853550807685340367892872450728261117020460784159902572290672588048426136909239727469218598213283910675878494765928167881895700225333897491922775225789036998212302513337543337952036401827005551467768819133805681060984181293376638800759584086271395830138860450271682630756902597021204619737845628089134836175012267759794480823279109562777959203980103950613819084582103147194885632157602826985189452433100088413208679482641524238306441815398388089739383240968596927229914192794298276911332962566172915362250231244703746644806816474300261683171482748135444975576120482710962492610508070550750105543347938306045819274214934433943964719242653863462930875392340574592443307296879781877440327021989165101427342280113851091197033333223981543265750715925267911637300610753574471434789068896885816993973277003529206960428394195013463527301836027055836010726991594712383026958515182227778933572622937657050362715556499058264581544211256700890272080020794193521234709179475675669583100369673913127186814030925862063874827771371504414507339047973083889389494223280723422411664493035165549853609552750075410261848204503742619192769066370435370718125532939815885241959035124989078141356616655551060470920794935401861418740060408221567296853074588499694385745479712844754726620333176190148379408630034521749454682414231606457865065906308047694526124640234944033487334310937134464424548796646113525996616776000334591778076148054354385030342474421152882721717636446917469137488047593155490178060074652832643019137881665922377997320740304406971093484119252446207483127149014784479514219333369045692477542303824499072667438047830787985965073735976213861401226471903401429928158974186832699892993820539140523727976191544842902778698175509681751011328807372739491336265813621019353412556530720166946087671019405898907526620938240176762517415933543167761074526794656633049987752374927815662231773249442767863980332342092244056007702771573856180610971058641829414571819255054199297466729876332696038322044959295365388558788325829519550784122720008561403407144937280787938205868391245774988410572338356295676880045765312468085086107823548921420022430795267372041248524518128739691573523803754782293949020904723928159238480780372393996592064216207573117156144453851122231856882206675668844882530145866795393704393129389732519869789661210960087785800269599545957101511095861142624034653973432706776753022165184758769608365113614901372432030027619175137192937765215042433109589026199692522712502211430992556881232455071606101693864815299549912206535770445298312915418922006638312029734043597637202895715885848424844732090275779825221090255520684092621908375292411294283900943046733400627259635196127860181113761073659026561604816069089471056864620496725164640495833248860730140026101390036846221994959136774365596487832745548928201836104118243700544995206738405718605673711686539552363251665056097517614922599332355427041494224816285008306027537302752545202959553617987593031812716941001714352597669216764897536553187727844614652280612852377225407887709489029809678890430559664059830725730520233838824522197164682179387569153993943640448492541923126277986027629700642803510090521735494543962169111573350807462620313738784544485873601743108389101714062846327295297490234722064531987915168699698075648553621060895781323593154138029443153205821535579314909170640450330093554884558774994765737064632987376492808095430832818373497143316177746423936400239748208786041813810961393413492392539815701179397699038801563978776719734910539245870072031449282055897825890740682751453822299110986088220273662657639933288186458470401995266910886950721065245746444726211637232941141175427006223205634123156493766150258567788357883083089364796203330358999002298114369570946611035340009212130504638778330768974023204090355277717126965100864742864720931151311589611054354741038208027694621563394403926344652725219373755391442234430078520140914256675904163514741059624028115078624090692340751650035333186401777671701468154387129998472850982998787279477279071777942041328414277428081157422436579340818723400452684506528333388737679069649713567236205751974906343907462759833355759794107070862308634467137397187845389064376949891163224801742195361192717632751329099322595972883696952069094448281255735614306746997954426122688627620314047947018649722818695799518664775713017217696115633671678568237885980283986601158589522614816698740348197350339424881511745217627488297995117184722506225159982769291984576204395060275328815122200396463466520933596344630086246295365512840619891608840440230825283478554529963097212659897892538881478412309315762211029963838562034793047843605552026048362495199688783966386099612348888658147211797657556717644076353903554642288517419940501850465482517263062244623864373775425277754355011143168637092145787011853719657567334803371990471931596912736801809777584779171770958529423893700111036919997294181098082978631453562310517017235019100701169529625308691728835333906582924330208016481737908654290483951210645854448932071047141746258704350936163134248076345003217156639472134272023219783598284836047920403269467561841627683223553669095171298990186633282170457272527881338738223038366409066518193776021864634975827726436451060629383702679940140610008125147191759445360979895297216837823817325009611126255640805804165935433779658839698866816664129645395468869491977118192734854348340756867937585000645022994652482331308395168072054492634166433702119819889864664754210120911925312034116960526895392425457190301409244227609618102655071687667320574509404020771780255335051570348748841520224851057312758798409603541868886506763055897613129222779157460288921429665312829202252964629960127163604251696593838128938049933141321628165891967168937882042933157814154705239673693114231325884867084813576745285271702902367844131177775601687230766573241070085028572631837306224179558503672291935192564902228107620972658023843313987075055012346184604972444976359141966064481533211175166696319111121290419072981540761737796650617511200842276162989265654518710888425593837246805697315706390052306303099569041504273781598302713278735458102451043559646721965286480596640051070972537676382331944753639429432565705341916947609883376072911518542045904311859952543678497377100533942453262047938763372227043992624184567231257183445445716343263167867646680426052071062042741384854098999748597745521835063135347425125690447808419376113461754281042217611284339327825835001150575997507172988541369742608937081228185233163747997211477291444281268156071463958495402502260597014326328141970723395308229276997710750963456867568135893757907872009506215496010602551901579992292054816914539760602749473175756488779025511067136436497613317496002202848777238996657580010462042344136756207405935799376026636211595452850913364613468221585497423948229736152414624588528377568964157942072352559322285576134638033896634716710508906495940072317190297676150451406338821153808960841804603229464425838935303430792525637123261888273598136777047718627110058200287900717770556587157143006334060517176031703182344209718965477314660693993186735326920765509284257009173342367015586556725174191093520618087941003508959257678700047125668561402483027367571730199406679340216594695889313978083388352040138890618786565361766577304696494340929515411611031792750394359162790054041590692799082868627265664548450848278769288944703364119117576384850723770198970644182721045131369257580828704018353859092731019961481571870485392014320353060245146166243799835983221596112096311925281613209481082483608983772525076411858438408760032325305038424908646815770967252882496308531712744245228477538140484251905008479053777000809392008021672381919738101258666539232273060250477017043600885104068777824611906456674335730964214393388289259645413816850626891831251245499260551021369184428837407408913289584015111848314528554000112016754565254968246487010194675127044100792530016040616548759126097562704915677642240602063888575464561504348208542222207745084154921094400312089098929266164578620025432475603064997583050300102576078342979751451562175024320563000214928911214786574436793005305067305137823541384544016687960276905605132083805567840534977545712325151797325188218501145200166839696537566682218266689557698999703303301207000861370950909258991733781355432291505249848359362578792129634550872765751392695002567856180801755670702818904723009809762664261453430959735514282897745552051924449541494162797394023326754306541331712417156424243413236292339817735392194953785621404839761897373927897881530803990617208006472249957305454926575639745882444010449131494994910798160471005519865468332125191132048817302240500870572601268189758523807736303341308507728195125247133741977025207772522426427939590399080920500256021277411254930542421721716386355923816813132066279064832164034431738562442632932923310429041830054520034760846463984331021712212799880093783423654711039593392803777953103668793978280107331537289369343681589327727574366314131650600916407192666775513382277666171830494609343531592415973828930730463666905052728722620550885864421796865453090624332055545668209158470891088821274320960923351022394043236320393327139887256258912598851399521970139024805928531727593144044799413849503141043539645215775047884383040326887595363810333112676014397711621297241429043182243955217058278949995377077921422246376966742864953152397231279225380699036471327096925784277607234143342370889130894220977308274639402846650027614258210391831668046276028811870282704313045715726099892560339922086397838839324312075446099927814058997857725171012787190971374016465161945833711164451374476845183446163241284711506037191173339302577555525139380754093169477494152746288929079320374135134779218177259426844857648562700517683248603882468998772123091948939959297746141621564778212529692272325527110027146033013329785886859860637165923187461340835209266453561973000444467866521989267544082157593814577584954774739620137987431346538717215035630771172077548521862918972648997711415690063942517532658594963851551016783429877407105085209817418011137618884015316967230719179280298604727539049910421604729791262787348564152770001855199805847172207337573361356482352797091477282422604916015633322209735639457722925345287016962372382070411708913285373838010613988624230094555650056696878974249919469885820897255240474969765207909156949302364343429015611602238158708822699711058905589417940920834835464659681703004761267231767798748471041053562966953608158507612224283495639416832480168596676221333337898059305691562325009664809206149519979686164374451958416221457866843496781514509074892374027359126412902522635901096638709970312179437354021687298187153835434991482909794511614740790351795437488489067982305431496747703517773616291845955292024264002027610240205828715032621864380063556512235999577539018165126005486380048254405191618200701288958080587626016148707740860706873949191773657130907531843956945957000823051275187025198353441176989559973244299341361819640252655112510541972674463054942662355002271961261930480796289863464833913813761075320353512758585725711330703270192396009270690757679131170615933415493082640386033406578175533514709117154083047649792662970504690147086515471408303364590026212560825919001404457563247387030467565406630307506012622214571909088281867305563673988476994944541221014484735868602012067440317816455849350160547088846626645216977028509809502825584254971100248816577993716771781879500330642044394482042449353922599475445715378142336820472483904735249371349254468615611439917401699991765835897754527431283265926180173793165396361288791597496042830540234169847921463897486392538647756575116581254614610174705999709383420366306313191165059133695796677011191907441342372335763813128987388002740599113762002198194211579695539196320195719817873155603781215413695644751701883551988688237715832306189124092848013370078059101873961950789972803267494183322036127809444909857008701136927660286915825184398366087693423568183162246228085211062760386703442712951433161218387042077769251178011660016102582987422819604338661429788433854044651974394316204223966564091498109022941505243109970307053221522438843553013489889719997220612844700372171760299871176157109643069713748815880998041328264663480619104381152529461014908544673348730403416239099325553431871958250134808779495474719580133210076359192713832463250352814778665026243406912912100791981013378778879992108708045981811907825878730587566372139351628240912440330183584589901910458242398629403523549038116149284666628127503700225853356728398249786703258385880207508192897505802823681761941760154781202352845625279991932560842044254698167363679966519018896462537247511631387147378318049288171281953511076991164222705532897445862213451084383432651385266529081802361524464501323518738982153920072704439939264389891552560038321524498422232979423653466835072230983252278446938737777349713129373802530467770787493462163583654041834039491128843674805548738331325054108542747282907326681352381818478131642211393657861508434950003752054231733637842247384188683663757271376500568573921650445764986829798252713225314573699971333439534568599583502731076156708311412485495299973020460143875173459238418585716083037974972676554243903612311432712598902830447850773840610298546276479693014389958895845134044730495860332892978414429868689177242765607014513142327031356031031862793868163590272123483841384102534409724994605153618574597565033666800563365925567190736629083205217330108811799866040499723650943696145031787344235797188423386563866937254510090649172757993336253821051545358671979274310148508754271273275942686450008887220566963900557729390048277366140694548218055003306126238670790021529595454717259250438621187123493816637493285083104951478166791985125347529087732791819640204412362053520862975880310537682993105458709719341522409586522290072368408537063123377083093024195971294036257240765804235479178432353720315951586976764934862579019899084759899125516791303931668190594244599002161800120493964232977291514714373961185670315684924180963904046820618097751726066203991873993321137811965025690279231603706907086711380954624069936200444400577903091058385532263618777963020667921085949025307457861327032777166410780853527140751432054560419258062572200533093204535489718340861760350580150718701208774608471823886163855971947998089971720640154800118904270754095672993819955308243189665356031914311855749165837787574796375441850973699625868011704311164388163457799425835075859279064903022806458290643345518013287018548531519089588863387133337018924612008295903943087076195173095065707288435556214326922283914105261576169180175724688738831437881673782383006079114219506694670046767249599583951657554575737576571239451842471305524375608856445344953541665334757839602220049216383558835451329282283889998847415045176022134580863855480799309534614235541573231895002523210851194460083162686880385350151095907169202845773355476860530473977164869110729056289610157953659533967462980952787254701240629314073694112947067844774613620761872416318843856801322728909158075302007841699194870625823872958506979871052912019879036345898850052039458389319443901959288349819099286992104331448162219885344079071141201060448969921737918433959687122631282167711822918924366047568061751921269095814062315636295961698991052122277405318338914848319797532987764770509043854587320036605549307852976190481944501933652868606805452299913720165100660532083387670979033471275199191098237600240873923181711756325465026012155865502615862256384818275591773287312005270720449733484362413488860923591972392460978482363435304922314690618788544721765228798936729122217972815088110302041097121658936271746154015977809419743766436698046090717375521787969454048835366418370491942060521918525657586927405881230363527724233469676417667348503609199085795112421725576577943531539216277122515191694957515628870650830220762314887583119659678716419006052432005381588767953579213877266374390418166018403228891371429602266435807621481075477790126462399498527227363023417760326148471440259981599011662826965928821484602411974720902641920510392192497000420558950047426534466219430214232012736114811501688478489687599933072390098627330014939113268477004032385692524527552959712803320558613801404579207621198492163111679752642767268949057335727118166327278738929290369582194071431498598163010671615730925735814327838021699707768230768328454141168292827716471281050993724366882507505292956231278308050628954172187605927365619293526771649370594780276844655880948913336270906575648158696429699761873822518426489155593015731330794338602293753325999047445000589252632575653699867872340750807128615174621491618535766929282916014469993812650950685658576793793793724352794624517950791691354895273701077716864673187587925844543668024277688679283238645423082562212062698323515905194763266547425641931077497154803455171460447113636556170795709798554612073022309286526114014810875248184642727551276161193136663128395871951121619922427561542966157139132929892498500536310319610353395657660705240097629581699028707430984505457885320234693238872487526073371447308085073400033939161694592054618424239352404770468900171695908107752764475420408059297656060428825767192428746060347544561887167872817738157592617275328058353061091635940452821697607525777380203385460866029639443295723600047449257856105492819183242294445485628382644112720389478423032035063421329004980341497321837470342892377523713622694931353682289925826311707588426534814665059724337289430506926425063529311789852067512629389468432094837100897883812249512446211209632047951442077245971843332846374565578819776196571374481780184539034041176746476030142999604784620928358807705016625064216620413107829102527278029215756167729545668837027357228865790709389457901880971369647528444428829612996165281416829892492149528082252477567722203722008086785771213194342229413656681590008256545591549973456660157021503672452738850693839469148811242247876743627740112363663880077716824721096650633415686430254874880775655396695678876378009711262105312972929964131116177871481460166301328070696692383778683889459846822683213984862604032719005802475237085725099854020836422281929097861379889996958475105155890068451268848219586515099829170758318498053492667670994433015003832641400917608981227215562834839902993946729409511468208696010789822007553250628120642615580316956327584789542698822761213653026428836332119646775884184512775135057650684608775683026293943593556358781529126741552417634221966838949303565064593362810549390274191996451154949292880157779876401644214115894648587888670191686710301868167202309932560511674229793640219818329689457574359694752464969262845433684582220926832479872025718952243102861362426116196011069341549443838371309718004131435890232222192224896045289152675450418981599485047935806584134438476544641460396463501157222647365909124709508881636209985054042291568936531613958442901168361430927133102237544471699638528275378848145836742492815172864109381731820763477051145038311674077959648370890297458768953957586115251643032492757759633815259446386431779945196124290259750540699493641022683376164003792121967313029047112331764445001367994805870223775378266763945975755577432780038454066846973917672852208551907444516340689879584517323889444756982104058722769523937876495083670591774124580263808234360299181524285495619721105211532054895767620318221656048565655536582833212372385274025628807595822200510902983898987382395916378987023466999580150009647650742704167458619224450014595416698836242963640368743769770668522004401433551281987464724706281866800511696841466163771237667150452673827887168502245311587625520558730728834883689612284450537121278381955910977074553616999824441235158534359439848626901939388265998143078892108055624215383764074909208641505959388056682697961645994265264612612176439666184114559939342001750022069329887654181125362882993010235444326080487535371443209965576245766048171118086572557792476407665569115219711491191320537123399137897578780377676683304020119358913134196726556032970182951477046770664198517321167170829751844574118212857923398645465165201232073077197340211891408438424223681043323481983482854413577251166230863874096633102323661654255398672031908880598873885007158974080845857616031160942950278710206492405665841105679709680291135427781235197510495255458589539654083258578108039295211449878556631031363021131587163600592488991859622199345081311405224214685428921487494232386793646505227872203258183443419059645519248218710326272047681440067716026230585664562889861131177935732793307955674934424579014485072917569969121129002072358875792175953282505575389038421428413522020743416636304882150388484439453362392286198479601626529744227736926536373021727137244583157183292269056588652983880041707793124943825081099794249908496319958537606715802785985977765608373053443460037321195680973923190071956041858826607922616346184854138254845494912076861433738779973077953587904151618020185989155253792690355878078123585851077507730231871554681488148954049868679213907642170543886419543710609665167328240319039427282588351738723779926811468921497567646856337184605764755887001305800695805217031935835279155564625281548889872340470583477841101789250726676492462320775702149316711270093948292527031314913060511082088194007333758877496780683347207551579696821333944542577057143039738588148679582190554660426469079553215686909387812738935909659451065876147942023221241113153699154490659223002226141084333482202365770338536607518085416779587116272329089143718729688642737839089746752373757214088775335212124022171703564984832682012628050588477712537200115129353957712545848649325674612837270786811201461600117630114308489382763468809444255562653692303771042862508413881207304959729480455369106299805662500601618106701608007354918179421808793725108838151827380358151728508386467421799774913013158318160323216399929633799969256228311122295051074363265154054725269584973817956669155022518019316274542976234852149558121704915860341688214251987706500268501451444314428492086959261868804410074576188437724316540885489483149889428133782099335336685778282554797332991585631873557770604466975692265864908963030241606058919274931840478378064298869623512576587077301013162107879070676854477083544738861166950098856151448690633401520957234762417778420630901068362394986431619629979787939505678850028356339850049693735431582098065312086777050598352939131276147987821444419732780156826314257236346207494488353854778187596816972516912561923991708033450424447768900643232098171720287276100154867280750123647123859642033036622146782484029333464610402533641130807304762212402002062386216527501489280857179659228672109502561148459071248863410822665432123033730861622220514099048052170892283158827025274695128118762655155334985379467742908868513218052072389984680218753793010360549342611331195594522254123417899711712975524523689978444478492608762175932521178592248580824665003501243740492030882624150647792574782548163923278367080850971940950848656688855832001740468580526009971820097809300573574803225950851735211235047898583631924028621121315644183841697656920020865922914137484395251337261674334645816018852799467737514314812707810645602514714817834754210720146734221878671140835316151889662750206930885206131293091054831742510549256957283749282990784558172369424474531462661390545655965598778326773947571781812790679038207475179683162410002545995222399083387133291497325006869156825007031016834482653243296081147470976384545985266186140415544085222298250758975811607327795493981552659442370893604506069168946685504296484771770069989168738304696264503379088378184069491994824290569849865027967482020413056695682568656854004881643142389097598556796597628018029214546713145321798609302142757950976423452812743111622155397952950798967988734144053933527661626511071108168469509233488029306965478063865606494391253954055749898075732644440423556794483950388630916704530644937978354898018751989583883133573636204359674723861054618905531035904522038471086313192518791687932596089783793200589524182891965810230574650621613325238922974901650561653273609502628225872556384428524999527336559122860911398105279582457311679026256298842687517064450633913542273700724674817445469778881956111412376555350807323220627938624640028815650923515012779991359573805689102193808547953481238179070030026293631196062029463022830853525274445637121748075814862652893859751097998853757729125575469850121347457331916837787937634073977917568334070066278657274037984248008893688775696823937702247804043859790227044455673659621924084181486987251074802247395383331431435054582709758826954993443196611771045116829173475293411897247402930802096018686951919792597826700032275111528627091858423192189827571491871858530918510384501350150136621956044889175817790511492048769736104251831107971301385583314163840923588737401409559965077662727726400834744430750878726735722064685592769441080321357072376270206449570828361633374450026268789364540477929417104967351647663959835803290568250702614353603785257034698508213870951857016363179786064209112047385756554709929860760535101180598280345320740819968999963138786788962003039774879924143684107415877125043941211098560908256146587495077304802762508095896914391194507375498399652500846816996431196826319157800627274030183072874887121084956130309210832795899748692983743099516416082199302946279772448354784241934580213994567953630356906758058513043093370565957501938354709321557926019952883216581557075377142974926507927546295612485947881611623151019888836859565765947261962333266830621969491292750701625322467563366854552880521994689866751570919447206303437719031991070590916808429401566070124140270718076461575105520042722098042282138994235222932707607558309287985273125661413718507580748744322571799063610619379487575467200487684119465569042785239111448328000731079183575394711019000809071421977729111378884035145746100191972713573286297997942089641724354159874868518911950276890858279239657217026833422554208063477944567410618565072645334498153146076254125602564535810848045611843780400220332217744365745798578578797697314034607436221720531472913609119534291859671648514277611637414826735651285375063341726125526044838514473117822020767953395594423054736310762051450611233527658379922064367244869739441970808035786243774123495077055769264008338201890379384495572825843353340164214952339066196547069997450640959599486664464952939572160504102744580988655890074342402012716681188156822401620595494017162674923549304292817812511703867851887256763337591258536733351042904730710310675072292817087271400583262655307282561464406065260063365224928651468497444246529117526828874680346733585129413709364971148266016693038243236918529716843477197357162771590713517149040237509042783445337833940088990415735079589492660621910473352443470298286735253093639070193260769823622944518272064578580350356484556123554520658697607102523312078049612458357653019449916519814156762572402918223941682422277130152550808584785339554609478436767890067197900614941953488120972157614432847534239080665871779378627967851104320740492356913850689378232126120184639226900825906794856533870377883884182304411336222025691235657148691904852003373526298071631958142308688971747650209966955367493273365003739479394020717146650712240602390650193842890304583187326852012831993781001546474671454484871915657916791059375992347948743332278728946506222734161265748515079506387907747712408752765512054475792849627015828147762090452054597657041953905808453242292192237825995091064140424059458634366254785500826558408774257546051449741354546578142274275301113258235487073463205537213145262125707987574418761173546689380982278466327549556373763008187165010730400972226872532761442267071726492267881001973121806346437422658166025991963116379609947085612676017971698490645560297823699530709797102676561348569989215880371288107383974960733917884229983394756247355332327974802434076411743402317109538240056897968245043825160426730700388158989926463136487459361687840867522371231370209514904541425169870539222738573333930375442800474930166818401103151019073793486154156917581824439808840920491479188146721728917463031180696884885397720313375220663407238974186275833466299933242450338747463266215824926599801353223270684657776968516921019268713349138267735624547366199008962790632190851016658302184356268214749083375039371642017232889599585679326150602210438370003771854757135329982930833920326619644935581745867528541605034517891381077354987836854505960368661322530500017896675041141828716203294639052690923521715929107208675704077408812523914407892436149743052497899533173846418723841749895152862997968245812528596081423929714531078653970068492395233674447820653789984766296681918891678010815654542680112732499755483652797432932700594533193615765842050632436642896469493503950172546124286557965307266359160027320348444409867908985447315986599190579481838755991822837460521716653674156214001927452276291905394435365440323705472261102686932617836192092544837825264302863208884482937725756886340662230155691138487508806705439204825415128860666081826764265691962693644552873339572580677621484316162451371884544668433115450230939594895186760979569368980014507373085950945276535054132841675465711843040988462023924282956276542481058239219838471597617932215451276954592614144515651789718198769029418453742597510780978039004544007549855563969865680071771469960290804062838150771292712439543598223683259476747929969590423983513513797887287518899625173638241873693025216996567449494041541015148132140652291358928678045688194950845556535771709817802785642676335784887068309444573796298439839274512426665405379174666666272179009912158907133852310037231844091348638829536163666973991962875188355956009738841552822163295316522727540179408645649606760465137618245562914497945461630461832396658794231144638541916647255978431930095194073500869875837658449102993993211531383976117218279412763881118641673694407689369871565183818820476401775816697374989904857141568361380938028776168766914551481356307774358899326162755373468389117020364638735424474850144224124750576491136086973095101535358634717529577054536169804315629042226600444587564367839482936074253350563586949743655926007604842989468215760733291636490593142548566847590497019621711279299532779749503323856244350476117151510919287239707744297609538877124853267760116137654805873550921601012486814704956117180561397438673417703698421068178028823275563100965621763454911098939345241086038598044121362796301670595345975002565635407707800631477817907700518197917474842022813561420229335749246927288375387337704213832813621992182890910935995977724444251902213993953153266599694845023857386025483865712772572235648919238232849392398261378211964707477731678210399801955668508412131218227521571721042101686791431052779283918813110732309478290260791842763562873880417278024188857254858017708788533102755112706897947677530961739799191771709624532045261406958189719993624425815664402496869715155019302366985020626157884576229061763499800726746937135302785004960457026367137771950416676370858724261378877149081171970894060793583261932109998293371177975716850084640122037530511726263397500177862307874793109791875219976246951500796298692100960763966641768259376735006481863285125467354220206060669526536524246101420228543265656108890781042972388127576590689856355069890799387342886657904435748080656182124521692276383033237603201964584593613336926620612900201539134732194698458736326868764560383990341387962413784524888505893470195145304511033260489595467860431233231336090767763330576598311308798498052985491524351691885316583686356676117769067786472094817407918667904936716853130880118810733266010903306303404548115746731718270773918279612290293988020918809621882551626347123897709473044559942340004484128780352875767097847939793557341457702389814430450890470592234976827523234778496872751543642858275495181701766672480718302340270572801818382890055550785979788923768687469714151513618056349467421389237841517741113360526309051700894409851386225654005694389946145846517173640772872215831546810621626401483755893016374097363282525001642747891757159951836837590381908187284715578897632391232243257410157880830598175541040739857407515082056444982047984108778867812709420569333102645952268805750223287018158340149748069324198689272509101294999322101298151023787399564210309544786778870086472283536337185751278745814857608936514683554487806151006531593078300393673029009015101905494466223412381374765677879978269644296453414003333891088347623067651322946960012423814204818789665179960246693605815539354059392496345177342180174456844418757691817568268171128050381178559468662030392323114270305732970530771400076100677978716583964826020318919543370922566244840793025951431642844917182374303103098951848736265679987316801212504037414207567809434511603016422342318117920576799299547831814088768107162406884065750222702461272959238941219373226722982821579072226069830492174200527702613114554416382141231993327199977782689338079363269865464892650107226807044009448055455825544047638092880385108804845637054979559085460479452921824286472028234712160954739481048961432132160009667724058660714323906898313139125849445653738387105714672930691982130064571822634600127067231227517229259736353223006608257923004595022027543786921860468506432332874028365602600570411440965003212060260209561879103318741098992576045029646155090287114807213183826939952040655224077322158730358823134955388649073705889665184398148751966134389702856065969444008378477887061331139424874112028896739842491426186219733833124893629101139290901983760522010431891241952321934464579436237978112090761914624255160401205705259432361569507210534007800889460676881229162251406435074308937826693341606243286592937991742172993052093306446217329619791246998462728825308575908871314942437573052329412326893981525639173638639754890551144251478614650849924527443351835707075469244703070301193686477768127829927588224579232974541614094747759738463426230663449290169854193751529688024100962912429262894360756885180375347853160719931869211142366860373509463333768819596992924667666149855507176214568461998992499563627701323961437428268496271881449953900797202558217790028897400822438695843437889662673769647812579772983365574483424347078751764394319313610241616743641786935703413138044701996308036990710872749310939441068880895973135155573343919080691974851240938372865926737763685677617381759091155495875909341753648589433935016853659836228523868053732247519395406580173224693494012011460020266334182632100650639835439865468613352042029621755401982894471668658387505714700172163460747972014119701095742776369164836866063377714893268656191838131576082048775954061070313227891216541386787436870488879183387714374964254447612844194401956616260012827954319784822940599707630093902259205341110673548437442711200309793196866588979223757091638067012867733893778532069945952143092735703244176625214270842128189831367709135735715011675531402271763760452979116802988280042379067519447492437730553251708344063251740909302726458242103293157446047825592931040791149971255049275625073486722182020102405736555934251592414785060987904204441417292483595449634969867415557621647875789554284311301502367722044388005897404857939491642406691896053243078782737059465994717372469729380559526611682344918820415372160027890555375676806456471189206374856371943392984670794502116213398215980086991142155401440847901673073389889421579957739151694320379583832208996277306426789609364050722219838741085454740605139198657047361720632751263945243147517566426998600606341620360463336920266813361027898753063981534926547418248680610389056240198598185570092765527020697367662594663775918767606965071598849766999692313309608940287839468862962982620857389889562398896964713380958804758839171497375970818961549042021014566463241053222869095997133929272023652061707202960192137417543936412837383579248678102501253203324188156610777520083654548685450010020650342739728349370640367411317534991198443325611091397969269174483064810579858370812605768255696414399585946894213930701027242188955600880534940126306726904014830045065963783379781860588046221246547157355446909680166415066356418797495508579754978619383950346237871944791621037388448309176451533233521654722636192317423935609454442924091816593508537715489696967020182512839301298807844850456900378503869401287838675360235882377372147359207176045582196336221250780634447422835646355270597055582081995240872746600731050927960876917526731636274812139445673661055200470804160506811248837963887404486648907340458805842737104737607602019000199973516289071946147381581906439620996452174487465409555972796853418024386088850065871898813807087061103642061722905868279120280654182508824866012366868208149917603659529554254056717090586999558890963424210216631319558418064869683905077799219026366002410067460865115589367901829827561814018116512913116183697521732224159041636826664736428495071639611604755598608811810090300591590509737396561520033996652610596708395927543166916238608486416234270744089705385279874813581838151286976450740453590725329961898334079779491065423449799411551202373792797222330883400470147714769392394950962049145625597007060815890096209702357225707892147818832840153674060329775434944703962363238970435084983148427161494762310207177502193099635937792995709097395933331660963329558181528186293221523598781248801849451371906325417001024952419059709659918378881523833474674781829768559099720858782873904858792689546859707918562537904927695121276730832325829230043060869468787199953810078806982010023934639374616918224546632092035941528180636182112006607613066148510086576063555820872094173072379592238540865562401867438285116202603575912079695323422171208819540245709611770330972311380674722724359442493162174173475559803709541429696341807470607892035009604456736494387448715760111038182108949955440543376285610596424153283385629304730572473898408506094560247305972635435256624854807374234411656336813464356800178550042507614190717092539937649027015897329767935886579626835818683829167103307238152329837336823654440662979976109811614475753148574731799306844996072560475640473898830671758326876113557091816398719816253825965990493820371215818591146994792667244214066642324469951498550449672441742258798027486838366126031918492840509299613252461340256912607470486064923208856571882417211631284633632243519474063373424908279821792315765544499471572228136390076717577347684002155369210137585257451447058626686769709894916928495976016743420232815080656272420187303134924375122710570427230374961999030213836708692721860839188903805060848523887668668925979617225813786913584651993262104538488182987787362225965825035067727415554742320312254181352955665618397327519574047815160920911587777915906895647090412445369294823363812774669651583522783981316824309222391304808630066887868407212092494052191371703531377868937788523059981415593194662967936029974958392340619708521199333411108302372835010523870587464059813467222822318467544537694388936303893449146508733400891282385779979355254895028347484587716363595194623703853087157265062714043181572630019058513843111065821426021827531466803528870360093154790787131866884348522647920210477193482583448390002747019467176510856916548414848654165139671829864590007542569356965562009209890901848575303436831198844333578297197370303111998298670974163965127421820781344460778552646096914101769276157365189877200666758415308161721775308553926227493082663526179462156424479135049132554695946758611990140640309220458397046319771410164460846698636289538729283048055846564821362365190729362015817098965055611197314223761324714968957166238675399588351741480658025601229073216002610412629249027853147605803079734083106731995966030991951239675523578444965567328630731539662099778169024400345413623449165939810923888911896618243968338002290561926496297791163454990853060373375740107863711036311395003796014092675548380411993731497171995523835198832977421621845582220778518866878165966058399010437482648258945514424456027147237053735475843816194579055322491524126018032351611585024002863776178383378007684458880490966662283921036274426715076648186570235675609646529076785065299566656211132752318225390922810577968257819336262457495859325644711113527851064266650218717846147740361613632634998207363585415185243406142006218773353442794347946766263544249295508421704298902291624383839215481759119570477783403472229215202439462930549986124548172294798583092990301069329790244657564300082715057770052597637065555017718373941799917938828361810952764083715799489468972369794828150405301139146117863680173675673937591676487157925206633215005850920667266650509883996063824764804649281843811466235414682507284634161304783294461969774161896552483948183261205392367241768787554779190055241928850066795634350085142569783592650087372182071756928086557710789015941905959725348291991857254099585362044040675347162883264584529322747248660212643059317578928180001372811498148189317812038034923357670977210155312637992072561425760102995743536964485431508228978098484660516651708384533145569178383538222578742708966174444031378000495895479052475098734315811980134576935744061244896504924018523955105995805638481583977186349893913076581052685563020845470913752553083451562057677454698921412390587670323521295193351753289705246899501204977036167759316743951470895649571721439999384706556892032551981262949796016467399090026149898327789222972677172258969537744548983638684985451146028553109612957112644976614303957986062310095540942269954758419370171088921231143823178381044726480902589235586946590764148628994707445195456134926904689587461228948397500766960898960360035214899670223774369198130238606584124371504516703019623182393879609759706744581535902939512492690176510641864457781016952448351934330899921607574090743631609420689845614910221299216515663984290555753682689678383885463456572535096785012653478816133344853486527228495254643291209521856657174555183715263804721960421069015262602004195596254959804388840638609737541384373117655113316032884956537458518485213663605802972593126321408589202417376849388579727254716311944541101602536268298649184183770326405889277131712809928989889555349055014156909956907139741510668229776533134420103533202934211888886445732511899479547249003197906128782565264747073275259173403219172377301189972147428623415609520426535680591212611395168892515055464561830553872290638412357200466454553210664877554592471090122437294565051378148366467677873382646826593758243076009099073176596548719782121556615563304558086236144116642463824706453391292795126749888495053314441830626153927556400132819957455909075850825100439613566725166483384711013743238377672639836913465945969309788556179752248199886737892382933979820914969810763728424367757595688959763435063997648768764475745055685005580563168550083726807488486286505298791383159573707492091055898142887957851378616593940679437917385469121377231982001423305932401054358821466834202233668474686651379848690844589074792385453887605623562065580409023936306327569222447883645207457907596458451449444471974276162700898945711428071590994296615216871030131130795090481378963422732492080619019341249316128607092911604603226118595739321551050259279861273362118371105054869048918867864867033335380928329481079183535627076287838373143106282641304097220243167638762743545604802821981890727345177397818853928171509143393788100639664479203358674700511221190888808937751118845845024489272438689027918531336526365930816195598112840421743922111198577471516292362419490891670676972906288632528356333163188304067653799529587913006109943606534393335082669324858416354525679258587627751990457457557871132015118560142346911611335410725054516902745125320548681283108255457360681952113721322353246544280421110351595924369016294132203941943832432500034363950158396691524896556276534358992215267080172323657003704466704057372335244143426335608377216563519915139951632247523748365375080154131640273454118567235445467967027697844909928743127330674614204011126145788799081763177631007508821248092889263450512000963542648782588590912495538565988104023169351499723285693827902896849347752667984653198255009429453286318009050218332638924104249600812055036164081320824790541038175594581182593756690936437566337661767455897635025054264285819226121295809032173825299876701249988774416365170452665251359942477597588671852899857368363367124615801040993990846645848275376393693541271036976814720901759920709099134881197263974578367430302951109072661421890275124138103380025974470059743481539760587354375204342584938434448063253107222424766432225947781138235130250316188861932329137386805191825145370878890496747932291746864083911004280623536772999039310123933026641444379147841331145749778209690231501174409549134176635246487559703237847037514728901717324664510717882433628590359262879983084909983647194714587776643307879836391996470212951648260405955306136279448225518671705549176195148298859484587236257564427812070039438614217916280586200028558374214362858094909851498237040452117794355904838678966405171765790029381639663047879219236847278699112623841169426650136659173853183584214236022728275446352788571524001104023821955421090775004789832084854901682527678203731371004519471540913696556460099716900535426795452575149716824352131795406984981125942810505950670353030558845742822282718514645804609705121085159783557441412165250626892354617785727051059244697246787629758886631896551401581738964053072964456773023259804575008479514808858473439556606650988228459395520481969171397198112098632648067109791518309968415052017228636834512785204536978126265359935196288833484904345772245613128303053238799234694190653969967746524613249758702851004307481204433905360111861467265415724329183147982773918612440299698853149937408271858912554186986590276691287259368087637424816812319946775205692758157490428526425830763166128245270926599177348504321324757926936588718143046516779924630831570682362777642660516057120558696123410114542525850479998559936458348976673215640559016246632569715993535684781325506938425375673905713529239338067042261260995786826420850493944022331625728866571497795337127136865908137878499343169690917991845799826379216062805226655645148840833250617534731971050041926628168716525968404504125475788027698033976370283135723001731746257460587975167397910372078826452548368464578641473908370069890335962478494683789235933603251366473760310116514120746628047194449716732627172216946801106564963202828630605113462222433975692802665010284862223913522720998113285177418359203939062128684855416427981888955043043332497145466288650434828970215225265690308686262228404272248320470953560856462914298559526589994365995657844667622519969895461380908822788890120655314501378842876169425089296420887873023960363503695284110709410152245359754932214666431787133495583392812469006391948997315674504005551059969931674769008094201176759618646267956140603408574142145785651549146459958019570193801694935993275191619320086384235887861074340826907845064760792453089109870138847588490207469101095905733482832687163613693596058860367447179817783755421193734997392408394595466069624856409841851260109836630982007227066904236489026548352765976347106042249587357447877748251720630689268568907989605349206128974921179710739021546208100971863366101654755238871228126045759017662933508101988897237755766258325647273177565791393398229604932474683546355836442498872704059747434959494317772482865166279303496039679513382098797913851173182226641820690358173613453850672232685811913207295966883867174288791688875751124825634316622535458174383816537840715538588248219792231514447105418395637244616718436453381661450891486698695837620228553904673532668050386598545505767934959107946146388157454843341887734129862884590458827230642100884201152837468151353594294652446822424844993478302371575452837662590290807159317128727018997519300222603542679135602389788608743413869381027021813623420457603696918017621437502754508092325383892485455681817577920717794436500833752720736595740088642432935561529704698937488319229076092049354968925446430749868200225900828109165257379317749984948877614413436304203175170627271197046167855039761322605527744655313147032133438829408254165537513582871449567491733412596225612535121555032399401649704872674085725274137214443953479701477341036983049097874575564199299088774062844147645928564467479497010864439363602024111303447459612170602217898585459455829063330137252367847054313492290598502935191402229052364529798561303028846604516852412704653420988133741310226872220701641508958816935086329765862632174083980628225704501231295974511342256709387323709176707156068460441912649959830770903685872805714288612144874381453330061300528488123308198419493879923982412282330744076539452521691924129753593149753302108223133054077308588487357216118552721746359505260033652125469921900319434684226785984050982263486991289618540347696748942142685645018008765250423320277663573177244579140984315449126197808334695671836970423033184253721135548198274010153530278479253002238622571387203850752556261399386788209851671591900855841143752441419261981462675442250885379434230224364132551166729899738493202694878988180531852367511330472189574910175979330678715632055650360532520430197513011479804451042625558571194472483167076647626836768856820850320523161321313587919400168035258244545697270629450358956029040493804054368733594917958764389997189144298924830366760202102547266969219094879619548675944799591841673708353714927256748037221562935409667298993175659398265812481068660542466944417782176935041969845238338690470894408396151048746317172274113777100969210236779166566025451572034261529498197743146092868340646975322253804165847145623414431188005688427888460402633330825537724501021378896435791780627048396831766174682800456362838990469473232461876660628575583485922503303665460764896013614352620865284734070420385566123659075913287322765854981377874717038488245030301973682957943955656536249894627379549800922218932209854129099678241443826112475555683616402314834990801504375987712120093729821134066150527126429369126949900490367960443256777221976913697961697647384206147549750533428225947461517211085524831774634931977439563476380816497804736790728511773481089796144063401707478688947767512789857159822213431810205381330110251542577217269629648980346840583099816368706104161325583870696580700620408181276137562426819808723514301665097619957325118501887200211272717166296911692641210682217508373569410827975537500439922692602688645297690658401377943254910357294831294436207808307188343142790586293283259886577901809033631642034325450262904941569553332077509666891947281914262273493750318061130559918016201343230601138454070677795744466886103713350127502505549657556990970231053624201016276845309189798253675022593720930629096150713166386342634556798377284252914692314799489312866780596950672466617589008186253241635067533004891242268967156225207661287041450521401561504368605959840309601382854171268358783235981166650198191765116807470366435951505536834529964708513318170335347638354685593435958112036815915325104672832901864949835016559126943112818271232084232655991854462068585962134419175749405468726475439090931950493392251875274375328731495826698100648042537151558081314694590246708092934490047501488698474830376794217728464747987993122487205419184112485640665514836636780036313825951226657743329886921223120948024981402137629518154047784768409165254777258153245648696675038746722390495358535969145777034629207584183631425739063259913833918040089887567711277946831392195415374544160752438406329829972867666586498301233254530187838063602059112009386467217544184566689439133373862668569004460518109308254037566226701661915252489111763698463012614131902824074069342092681936333374242506922947725947750496894003931576298361339889909688447114154559691000594649451738422013400518845913107077415043815836248653278060539395738078517565231570370222706115806976284423746895960057362990203998566824929227447994548863304238827186725222164345169733118011351219133411556876225397265508848375159302901551116973609593542089810181535529131529209580920718374635272804540517226182060302312477221169336421173266878695748053641813061908539202416325328775211475711696912520843267680464058780601065200761923040278224926526899550535159870712658468130366900075045235424974335903455353802375237677831049201919188270629599543508482779636304222931124850807137418955626511561911005601604494432167720280534838129400977008674440450981894511216078532314144556846507052812259719099601568521287246000354991611794560222654519972321797573117958994183514208808335829943598619796206074582949641283292478182190099143673041090366042997537244453246086129133401915237198236506796490920495644396835189109678823293878594836232346255781765824386348168916585086860141430330715820235247609496634396023467150008024893666672595924940038065393548993329600506861240729696614813019169746978831103314928575111397415377099334082432407589568863385371623131684012055441494099482620031128098903546595733510315620117954687957964543496767282078165705713155664756799507147065256345329569291922939623904545793280967817714881498141730915456864523093463327009754992678153580751374929967136561215432563646003068135244879323153759980733318547934878985084749377833519187752065076807233206278959641706033266720344781601867254434112193717853667148508350625814806012680921922427194334216531387961462164826098154907935499344089754088570940493522814703760733402103939226818711464415540286723329813541209341423607368806819518777860228716540193694414739537137624228953013019119926298337198098170062536634923350659526031678790569333652453691120045742044479819933707233660207627417339850132040455789019135462402009312474909826735576344977877086601462452182383485653191778711314956177214973996237497849932948576275632670635521926384316259297243514269631854823602365908787881768197810031572198571310431716966321403551743488919547938645127696026538006307837935149801507791959327983877491839075832562683180847703512774443998934288001299534999092272191524654372081551592753699661894104983010065766726136190027737287744426040394317780064390099506087872120600841743842286628469420507836627029667736926272099974917155976987044236341723458854161136825336337698197216381921859798156576290232574937334195410650596321446717748790236169708938106022423563203589942429262789487919211030470763149938479311685398164377006833202294431839958944913652490385113988835717588402529216694565487722043743408803433119008894673653498860956414502027955498050236496456336428548238195503020093646051352758987215490871868207336533349014603590128793312189987692925867322309804096114419913274084192275005629011063956802008622668542467564999789077950234466578679082351532997487289975712131817830123124258559034048445534057329926474984612257803000713847176709707596984268219921234169000847486889277438633772966674891526606517270282397858483774535817285559382247904479955520152716558298611399783144275101406860486542281663086196464251181598498277021035696387599758875572236595541182461006781463743056466609240841876011847715859844395696306365466852552856360205137526885777953131434535124019575212150632183456330843355487509961252180134386999664128888802397589429532521640535506672467772592534634500920074500704161788269624416984315154193370039796821030830092554734106512560733900614951539648805343173294239683570372493583113937304886662811455993304748513580375593693496853778507347918728614483427410519470389193737840513679725005220615055386199079250462068024770463289205848655472012312730499026645974375959624786687757357327337014747997335788671675946383669748960687640231842079099030946931300297708264304283454853801254928009278678971261340403847570317652065972847808920537368650072884455844285590746923597868707546183599163815695605488936956413117432418800603097195446457726605139580379167653285978122515623114471079472513556555136537558520851827415668372931401400862441023279399132741262986094377014436656499458824409072899580342032240155543121626194574131900012347725482296196952334267259300909642325770247268954286196930898366119089440998041628322600653619193849369394161451605440722892377929110305519414292094133403050313561196564162546439854875410596395701552217443466080913744775169832870567053623290665629510073137654726840244007217150861229982770541174906060842302690543911498571043223521440511922765429341616870740793596038958380987218793173866795728688615694614148475049767426141086567846644738504035106256846349587299571774336614728046880924317162192384451074169265552999556791998500680612974615124067749655026965147004118010778634104613333424203589591756424936632876188406202145371203261830364459336600301026456541483998444669045703560980770117117782320131862588053669408984313636498658925503936282149423540868181150855244690990474597375047378126554575812032158430788080502505271389547089425913719610124263386504072581298748255020805418926828694698214829627164576641289296035572959498954345751162637558728962890838252626903380833631043330672044952413441173325195848539746896778640935699573768190796343233180264900345754936392243465091910921834357768257018494161839369874540509958668504665266036552301727442276749085546419824577069441467047202666068495866273130209546126771104649041091304328702262650527537047388833662491784053964816497502150460996185322553703883243518155669198504645520068517468900347835541776303963128294013125285307441448169470861025918418471225732996543230383631651134318586413126876783819964490266679816313598874084246273783646651684868465459995288721689352775587365411546527775589613564384865633705188296206936789259360386467954522132877851681912086485922518012332884032056794236418713261845202184167400799042321790716110005707384748680716304885112967919507811097733351122092705368545163450396082197365898510300328995315700890515366804675872302805940340283999697393893826331545550874724219921396547759452667949656597599290844862278040065480381839375379119903694082247479734911064649256297693990730257727319595493273586535031068598573541356786030219788401330048651044751117455840341363806124224550585398867854378418904415032653386565375184640478004770706478070061711905667888948238030218519440797779910877257502582379060672431438985773824243124053045052392188490656811054601665997609880144044202607085727064728342197675159182643458735623920353501093961836534150974684444688008286397657867908283297687695933161993292586465361957653593232157940573765440678384689815828114621527174829699179554417031534641711101789081418096385078278322895385789516936424410589616667727848797992182891849581913576629622705796443326126460470515553268229991119569273835202363585924916742927227806776866303899009331786475774471310245063630258675422019773963812546116769441510242084009510751519906783475843965247030644845895890393789297809138458875230053269618903630916651322407021879901528678546330031384333871662276503107616457129378988409573187488436588423672220867198331122379384266511472041573862587404041185312257016418329749149644939664938931953307135212002205003349525020393218711065471245685371435878721293015403985269166700205225099150897553185482114487720712453469999414711195225563700203039488264864188000991155006004890324781241649856118724405929195736443968965354866364530614190424195258710339099979577858914163387416525802688821830592200360942091829510226006820342544525035131792580091409287340863188020104136480026755070067607497046970926007159394630019511634082046968239121738470270006039886266097745468093003595312852979992717547127641051343250221162193682725421209151467448537347838842496543901555358181089736195844584413446967325112718978211604567785867950703195689056110334351996960490035246735806342417968580012917314560942138436878335511303162782767410928024510430361964388272668531414582755881856751586719876783172055989186779193735894436082009682581988843473950825686791027827756841355806745073328730889541378078169168473799855684968159261176985364580306279978372990352299390753673455571242926685570294409794385496232631809194962177517306517772555531374567553167934541495593579002406760673641364281559714827371999190359007454231450705468343473221067421018808017876276831750880664267555850231372604226160625410909468996018984492612699073321421998262715266009725709492913733169480744352919144646723916866574025486455695529187237080835176905790718887644646137197335754060450151135702026593699918068048429584768712339711378336843523293918911467448473798865329913168504234823000299980861039224119096013420261866579416521353493104818140591204499983893537434781294488160583072417859381129662434487086934809244530918938555714912072889914713699862622350966745528769922220930106332078206491787373978794757302267809164151290930998930979239790184674069142920012990077775936933575585815381144167316014712051317525923308453367633196804189137272696842963075898560366720393922428226485187854396273312964622407048007882427323030290335931702627473721932504204711324523726060032390607117826370036454843212458570942475915305767941709266082577785014802556172946389295157155936359951266957164583868213418881742595794455509619140842599348308102214332411271567431466924089468777750772044095153786115557705448547271090501885152631643007274228494554292048694882779970493785223306525248154385807565478584482245354396180078580028628041763197940873105999354429335954070926070133808814582365893430508493825331027058804260096334003046037858366732960056351317911158358096173909239896298716794835388777020053307375591300955756682184736092261785018504917114137279093248236092830016645921587820404614719467368929514524852172682431699586163497274140671840894328422483417411287263883394947926498124061225128111316575836838559217217001385038287507547576888851995988741421566285466773055641048652760978726825810354347174770323444754434449475165411712208575940825557718054673715488242564247110960494196331222810625543175661073106343824499732644592587531843031372100736145552549917810748669942032135215644731461328987259482378943225239133070107323237140348300108066242022133091546593908434175213618676847940980974545263488234705556783248215591407580056510449565951806056458826789314968730151767531980107268681254397772644712246469815194387066760232870496910546767142225290710843215225116331094714717333022384127758250344341022413329099454093411593184554408623942151993698200664167249673439921125846141555905818255087508878124326448632096359320985934927254335125433817091274848120434308765676580910608601682543976702154017537540375738747558617398288578992676658477642914071587111277128250220968196861920025058223701029964446607428490151431945780702486414807453820121196702075554425038638011765289575769984093412830943202566268010579592121753781991768068466817329325900489461085296350540291897237311398828678686437734019152775528188841561494727036439167502810203133905816969069235717353832119556004382520318523942499248346156912979856417088322146440617886481774158432442078448137758522943546761774491160503102724518394866546643149902062228252519274888121530182168100379422708326764398996935584221236190936944447907689899254001249248551766033679053706921131478207676054222346713049722972716121436308387253276331913974774528621466928083052119347167856924019398167973542148707354024391295127593520898991028366826376604873899493523501069983482708839477764768463576139960240622959655642772576256564089319514028481015662611181582656914110712710590975560614764359487686811621660104014392415709095996400410064817785173872057436584439402259298344414176342042304936345952732552025761114159645903985746110610786506060310979740580133661168032991702259749086729961910731669044111292390962479259530494771461217645537382294602135395736410162262149719038576387095588640849153517493263447367492991247722388490104373244547444554456582725595877571964385273837189131929950911290497701039231807410783446642050327462774715488874794678094533892093523412222980025034838715733831852762508517571976573379141636508137231290979640618749112278538892390824394689104089362215274490610163709442290407134189429516864276904905814420953833687066667567172450157353941951111376629985957170458700442899157005643304482946561231085828486463984293586428630087268716446136140856240130714678175222759450363131999970716761336306267648619058981331880855989047631815453674231881775311686168404927005777380938224083682435784348210193706547442410514019028236358823710310623665576064687934283371367004650132801481611496844963820606959372066910461746229585619010580307489502931130872684206029365209190220052377173669413974082047090283858069062062385051269925279640327163487247167212824992778596296903504401732508610151927039317305047965708070527252994070268504299406229557842352947482239473131789961942234056037227009825217393901930498881275294735654386494555762951430137261285056071638302350242746412578114607964353123096434177656478133561951336810108145295284071738808754525812630902196348802664068284032241796030176790433800705147194651370138377433393334314800285207436720284935269772621714241722015123714319778281839253507054041716416392162700325798414507332766395524715333799772390100571904104016068971564794998936092957570003726780344786712632333508871617134034713689333459404917451143131989446164893002381027881044742974680327224109347122626610430551310639195849381835005085727042726458316491735330117103492597639259762080759523658907002861610351408985780455060617760997348427450066412578505646363193682187633551604078856986186554509188165995195889675100822092939180909499623284790943588856211473423458226539146300749971292678320378688247179511165352170049724371153357011819050499244217888390738408237334344672905718551029976963386442999335196019285772489436194169987759301928532321116414246067372839767167288584163246589984379481455232644656238944732703084026123906181334362555521318516474989669060981293638398841861547231816333544799848071826145252693120012408816641719202170316964225901310692357199226815590944522883501142688954975543083290451852199446660428714996742220517038710841530613816119054071355483468866939802924902872535767057316344579084032772920809887332784739944168606098674900725970931107238246376807798030027037785206979923380087591915428952714253133552643003010134080309630816527332954836906075848436306270036295690433736556435023864771754706845987938736130521332935334641193970096794414343798079642648464197443070210860190635055441231341578968980329838369242951257781795832078560894111211395776912504336341935683202959542965663190218695802627696670392419227761233997037268928757833443039766464112989434981003385133604901953870141324616624036534381286916475565025102676493893775377628933870321046229399683835083820044509874999448217640100536113146088524121551938619090978550941034239747642969334731795034581196535194962087309372128996308455975740387000780163161621576114753373381058682909708868960346773855511176872804523257369829220913588679263099136790613450394364026435707153326821505403132438991077450081024331670983227488837988642342242496138941819865290383361902187191360070391977364336971984407762700200149370446331474062586833973111544719197175416589309628775791614987905648983525400267439714752987842606816485226563403285976952951526749097512708988164988706247063043651408760604573473913087979207296031991925369025189848000338694468114585076920005784019416206661083993539886136274948649138853749129420258960797640419669494858886603510376054138731932726751505412920092640968715234482397499517825370760107319601503734260490863554669587763082307906754203465877569286341819651888470097918273798084622401583176304970389191062743136733812667770494894228051873399458766561299324468803333742686415330852210824389405195938172747899771845631261264874285442753270804316308764039648593127750937749571316300807399698877688038061242030182236396644162915706516017810359465944788887724556637127856735834249509760856745522934987679565905296120070235023161504181014987580308940753082162800563233084918452222250855819722980824242170268564540287339725547614707402756248532393606193126028444560691015415830228403456150950873258524011401366187153926065852062076816006779868727792280550066380528823642528836106686348468350954442916979714725501770372365853420170174911581658597714217217827398208735088299287299746615551944314953641897698095688100727733814197299527269766915004133206257454065554567472979957364273599231369426794691460964480550309003220189832769405107940384556784114206557303343397098052203177512833079382029465298943701976465628200843962054626588234437588723559553492577057771852636803648181812614724681763023274082274561347074316590345503835466208151308025747221893372939703149197671002652795575553738445934917834456783303412915191134979255682388490518352418085099146420741211846377647575370162235805060775891632799009716604348225453740003406985106818473172998311225860255612332249546458560830084512668219657352331133893155187415792696279572102569450573760519127046315720956996993094955810691665119297943556300199438893563487518159274055688779703914758139735008828812756213160450679021229293633104981733220250455275574303455264161028781957883346939729896991754503065979791399094776791479671569318481016280500703419980174480616876173986659649490442049457481065397149203779999179097896834755703421638138264453130903016501249073317342683288154374364705057645724942137200560507497737934116021956371442312259477218587173184153328799711439379981163593273695186906521390797076197599558119860518502412653467159074223937780872312550071429161113692182149687817096786217097345450449788788060546197975097201945769478349194381513166349670438720501826113662989887651662428237832203969371468898501302875484210950894078100440808268137115085073995249809046876937701634225819521914215486843004705129276333679654053764888650702517465397468618862785049057418449390936100986649676953467254762245237669604424127922988175012154822345833771772679352124515418167451847801232059619267147840032908159343327497784890095813838275233390061866141929225422592802192754988570055764231307222385868778311238784602756424004486149429987189865377831896699822865638512549676847820035967911083897316114747852486724963156869320063689767119149394020684970151538958024066078415037135405431621696730132061835079670969478179104963366675037916252410551920470533072567637141297746966125878427965894302958422235961144750186799420516296406336092888010362312747944087265779008610127273817581318057074241170242496273722912489089878229080669663561758371392980088549845323579871216671968665620320622608065949712768140629618558780475652942435360533694813826640694695076114174440080363406306224828372168398829123321644112881377714468803305627804177038331921367438902475883135471950712685484289993165131040915145489417236037458523435494272645822537523822947019391298197409755330623006779057391252064818724592877049452765564127633430488631552468200056090440870787394171694311436936535246769251088573754448461704721050982871858173758778275727440338474898894740306321134836489867362676215011498015490893373974864445384996416456607388772183431065112721458058237980033931507754555104691398551812135544621515265068140347766759747540327174543735181765136663786602087552959920328667442538996072349010962294864578184195775249836890339966687456953100933703915165910464814508747775754198558242063188801001311754287520426072084559569345376420372324215214804351004919351996266756969330035699570920015898157387584449738503673764087845045988461120052136541963052321234284460230060424023258272360981897510025743106325078504165963783257240473597973061938490380092009910388968996269688817505435052623126252324470869698844028787896168534357388667081847842459028455307752511369628012717215281481575810709174276463991506342252498290542750895003243514718745061678171063791074280318219723616647997237974364072469508661381215797374591426054979415136224663742265171139157951229008027006897361287136294989594812517793162204749498326746789482747006527832338454847501034920939098545611159711137371382284325632322303132672572235459185300951379074800751447815809091669139117681208751859115010899827902639814560688906097653736261442308811280183957665729275620647585796631110163052593877738998987791982995417933913589125606102113018155355666494378136325243629534981426964740638874643788252715083325191920852963439082354191052495688782400242662566466077009266342969298453966082789581690703670373159171995566348761862721797991025073835160941040708084109634156118288795950615875276217336582442409711388680869778070003237709568343826665665625376937200086316531011856143835341589558271879061720427939860914213147665059933843499442096872782604190664033612874592217718693806491801086388597062129266805282573743836646856272781799836892350763404660964475351526517687972444108133005091071474840863257652959813803957971337387297193030316918341298177142826184190458036948140456864510321401510928254911277037505364903374551448742874099430990932313106526170747025561204798605708403322080150966569052820668515405100684989648015011201113773607187272169050891987239204407460543286478587676950298498151422171327128831449693859817258795783817313999105033092443613040139387129330528355701009464078901036858005482976603411816692810314027021224191725181744867410342316426106302779629565340152562424877919667846499331213921426825568583591026362524627802236112454392609572199136894815340693280789970527907844413542307279009325924925504710826968723085288050007629438489375863585570067079206781985969681605172386308988133079669495715133926786798853437116925944808537505712086088312496331605413372795991360177559441484560325351094328178181569215190127200427933805371639927238230562622254419908227968877012418033150651526663484022798501623124261073725566865318393213600573471844173267430262379515003732386879187306637671593984434729073467343952814880529483780514431686114344740036549076930894831122385919744356907990291736600149185722312897185305727434832647655022841434683261533601906956170194091865312890677082725343281326022647801418654780706471143866112330346639615378022463516659021248441439804382499308594064125771859644227368095073656384853246064042030997321121068685716659759103658140355527073440109792126306879043662615664701198777229776589441527935701363759542955086098259329962583099673913654843748702677917119381250575402069679165011448999866132318295860835016344566995964636547265571329001475155469885932831482447939373153902536921208080811857588320033667665323940118730876408215398795175820128421074841192531590468866890848515356643743014510942668072312161978682305503069636821833486629580346442832663507820157357329615135952926916540738913368979728507123270048290191822545445016523661357509463492703207267608145777206214584415931913222323924887008691377941297451700590781330140453860154029296841923845819335294114769821392365451779391022601160415130864657754024189754349363230059457437480193764697652709382789717844237799293383271615875452500903142923314650488276261328372389345763021142132490964590483908111185195896059599588659782917241417613454599328204161534301712221291320858413270266690188900916311220254437899897537846566992996591662275413566531773481971306933437054771063226574464652335358610482073562573984381074208991478372693473058874061419877887185430627240349624045014976106758761685308488127496678130065058444230953704517317476264070443662649299490706393069910103224503954972014727553516477052640683723185363915014838562862601611484113837271006422672027978522520184163231004411756664751534190495434100601967681818165094291112390536502371437109124776757451258083423013046806711803192458520931324660685664152108124350707411008664742544505776136519670246435045382967148225335468948401244618387966057129244913606664743386722828715081306465629933833096225822804415563738878633331719509386907534042473354714794545748431302512993962988650522651290815321143647311760565074981648792762398030622003268037158207443760767172843929445796457750796665146183634307413868167191725783909867738423570411859433636202667322403300352183302387693956326243567942809564456632209657321583906140745526227790619108729798321162039064846187642045860336724347472418381527577091417532830448311272619496193536080212969589572229352413887467223625610154564673292323039194235782893790232533868736026971805309037191125441152534817780625660479936321200243696505462661787450786841901032872692638198267033981230954130744345269768543763486562972511323683678420732807633325230987144583482682385094544415556021675531641753992312060514738446618689019810082191373691460832937128168753981481327564781120161904462850948864446705634882720391679634413187424582512843504672628293618487693569179272189498638783120770362527164317047056846796781460552372601313215614211824979010783899707934613810816712470850570178213234685570441404226457337209539567589061699284986486809261992875573079044372794734170551535699935747385280855042525667659351512268313212864724340538799354442254837257210662534626411343427002768080944367494300173833971088706519058117194619490829346077921257205210288348783925319094708164679257621428559668844436246731817684546151021767331390537683336851608980411409860672156720714080628737881057699303433834646425465911939544296506176455730124561289635788364443085094045262084336647825901861399239442359312244163466469258833289773401495488194589075075203655216516212522264397931947009352654899065847588678263046957007372995873938037696809019445803218003922325018330067472046115420149613847590704481839460003057334329321890802667158612088805961424036266488685220685208496933396447449276224037913111105390383111044007955766485774933799212981052977273679008295682186359142860205086280133728277670195972957876126573497306372061246294421775894723882912992979436704018528279261798249363462391318392200367811480117135938346905139396212204613303685447149774033765224524850073053251110401017821150989572357809968973797721360670209727323518416071155427517470173304684854449619035402306473291421940564603677342426594080634829331789756291724725022424748635520885369187431941411259145850223606609214152953393424922808741248788666323187214007066841092876715419287490551799265222306349668513159839222609650551006848999129302683995432526255350012985634682193173365922989603484646065726915074296592116832079605645889311290083418370970842515795853007676576792411735563504910079582151008928269917941049322562243452988706126565318952410606323096205095828467909864092628875614453945587996214963127033230514227685049270998005690998083064315320909648366064161496908169876544764849207251234686336177257362098897381680369514722044567021311641985605716071099472476122037801294252890525390955762408630712624155686920089719949705621342299724938720270078301728271315331325305237963805848643055880050985273216269788075057471463237637647168459282378650407587985624891896333265043310712698678243320132565333498044040307077349365598458932745822460839475774441534473059092322642385680220861341829187069818684175611606129598273297843323823228245093013863735170090434508624313391621428646714839923950953706176112531660341229912886166007006729730608493386121145140481847773720312967732251390992359241428199099264431421122085104295527098115004160047305394197658176620323807110510100405951595396724954652300633657963483465522564966068701720093037271729662807605522834720286816467488314458617496914880556671647749622253017613132808199365146968292020120700838622464338653656647000096527889811444332135321857775413083261787061915530008233780084489514924232747585694707866579333699658282024325441751103361232583108442713079950499639353787180100095597136637092294073820408390219846776117818584605123933557190031273133240224772140852394037799902144631861422040684400307720371662013986209687149925382901159493235226808134898167988986358865275965634772214910081039324088932493495830007081096779612497086232845244070443917967706865902367384124223448665372160512658518193862289886281185457224909621818600242306572754105905718541556766667473632057552435784331416669279146741519210371848058925876803736037653951037465551580089718924208018575840183695026599922140723333732433164925070496898949949858222022377395040222255824253842503745072976582625856753065130761991079335700880350125101265654508623624472311263944465651620351639757476844932472925056551436563996583592851825512039199739059482329530040700493534762278196955001428605302019858031054964300723624310119382928819889847663165652289620243670197385016888714367669215952017900462566020692234247691778788217577375984980974923056216520364636508451194108115295625123322255147189264115690629614663596616890800055615770700058036037856097302110723058822533081182326920276244535302864462312826123465163607403386324851054571935567070613764804956989427302412066897738491480437282332942963398122515873231811889019705571863943666782646665824799414532162205516514247035521098792202365509510499985933577956335943736212369585868249343421186727975734354827391096796398575297932258588608371531874946759305027087833727471074562868528563860671680199693671970581440863024322943162706357287507651045522568939656117875160711089319295475671885047365670926216136792682208387362971620813230103897319438854830431155115062191125789868123186246761731721490205422413217328492959488053840209573034481126051289490939050472873316659576456781034865609053824082317584087007070772026992696434365757598762458669262202327411726189537881644341220322331899620288958183608397435359108915938044595698254900036099808447879961986454448097197209159968974177745869028304630106252305107639135858522089168041451359962048091927880267840866113153844569989668733118417283831966297420615114797938467094330431180973821058186207484313995676133909216094018607129283804109714704195095637965051707112735037035530279663658961443771040974976351098763725160673579348270542762553071351039930461522932523264352738512521460109304244299383892066099882164210015259957467558677231902761003746962986530882337180298948502925538152364752640371997929781891275712096162846219087497754983130225109030605385066442633573322191004193537222228428772654147895742318059282186951936712384460893628647055586721831993079584611167675418747918856708728127192194558773903543259962964863672467799153838259155999647320359115882649384920347914096816572114638982306885350044039442320321356761992599167044788215956947911604363649511339257410601268002233452912426874596277614922550450060135932036019332991213873235666116677109254072607109099843939634653304564352047052434705873138579508348866762242754205482810715192492282355325874058374853799413334089803208492458720048082961187846327957278045487791369446952567532226103175853524477540265359736799944721970531457700133594004778539999102746572407925381580642860315451124277768417707085953641620808924915338132595976412409378433448116678976443567785032737257731499348637893341169152297589015908592473805119420134303813607766556176515210781058973189913810042090825720081341282519924077374220417221036591942811495376961452419513656860236378804835897978515494815239939426401114436238293667866962993152957493921902449911381335473992624160352904165783478656059636325859237099031052801597469014047069535388173382638580581421835650291803315188063465823087167736322426975346260279895822736553336360705460654837185814364948282457589921686071532327508616565342933779449641546943358232189604901823681351791125252377859460230450642041011712712572832751217597812801156282459862734537171980517429117486582425677263489873433109252321874499048525386720206483677444091562066471884377990210082695434793502813419434686907299369193605105622516569781085906182020716262171786490200394132419359736283255966124082517604347438852819024900368750552451878207587724292131172275041298984714470787482124129499547619600564002493399567648873181030022732059389715794680514470381981079695644992977613284583616021416837813887009751627211279985796321276549046894522985093751031571651739860783306014771089053424031171437188901985331624833223497894696908558228003030676465692768832391127503779162366438943724767100730003804929894465156873383713118050148009161558989367538193126996036478239821287089084371324778127540132323334871572520779353086691635652919604664681473537093645152436570891712098453847929779845672606188085526728652458375717751635494123548129341857701441092064747235777490357162676051214828333637386109705784620752173249048174437866763277336401782022474738607884479660351705701738453652127597047179707450077291762099064690043604944553554354807882329332882584356681800360935922370924428295393397097138849672342278320380568633727162283571061953124529602337159568444532730282629404072763284021685456023887111985223787727734302792574402637509836472194150970537999983258396213875787114327941973037969978384218065594233261330303768765374026389135634543045038857969180786590821343403618922036325027549661290710396789360845832383471087313427699185036300577615443363480409230934114156025494142286686233776794456432651219621599986285029412263208632678400236952067684359975117388228747306668109020447906644949263353329849376342253280509954141308432145375475001744863497781510016834363194661081844628114223629136869578453546321021557283061880933223805952256342067375170118966026100091014799781851199360773476963701280480246709336337976603469114621198753249603093414223744425493906973676036902564041640726277457334226120269084340496311546865767595424346654793809892524931087338313658507682384677578107120887220910166907454941757907483960617927693391153807641165025937076641806983253989939864562521578841534313719436169155828217284002215270099644983399735620421954190148427224562706574090038588323699062868441589267825961119725425680139423076625654366252335068764213444220505705206502688192963271256412160194307728912993554239684986433094457985474460723095390498713384745388399794971537098225503326395575437347205642819058701398947211018722516573767863760908729041322928617221307366116283241610164630540685900711679340365069702299473013489417189778484121913128624557228473817636146277695622818790595274687935723918156593007216521180657587673178979313477254104155250295184517384822680598081382913802054366870767702508883304866786605400421303887535075521599764300776749907346612086502302491963328739401688557929106233289522170569696577047073903107530418812941228329732828995651434376630448777386245459166144480235969795531681490847295399398086963188590754447257496238512035922042963096037987164660269065413472072231168984297926499138951794114217576769288092426303106098146423716459600233799817315542327777618090159543324902773520060257454430482086548536919823189232209703135697666031583301591771770587808970792232284839350660029679336353593747261437288688523021685287184892713165188270334868960639846181781287327618934463326642031708830578593899618459333996418806436805670594627509656296024012818047847585120829877279356438403111990867527323941387311019265711669577687048723887887653978350914141479061014361970376486063578586751590874137806685133135868268982765059170324367351972274172970011526774133699234784580826020487110480588298997138282668108544791083994933959211568977987760597853623394132028462961905702916892522678304789288514890459656286147749664778891137299705448198872843494932673534344816864628227855400842933371868505049269581960677749387673332383622071671417117374008389811481273873782392432514871090665281515774171867196813909481880414656467326490596383827473611224422261255885135572053208311392548672472100356015598083903065415756084097547562571144894954422192063934862743802887515697172489662933991377487113167685949347310205643968314842698867527937925478537079324025704421383974521840570852964907009793744135260216376135221467306446590222514425892262862998378407206669878062791069677981396905652625618583144679018763213041715336862588239786618026854082650198651785591880163790640374144516847556576882140145645372394688291223910429901328129941182444491643353437150144568427932264826333770285588328908189043217122473695122958036819258377330270733013843994990482936434027897472316454286006799621179376901102870631420123027798931284777492522356461477111497513936335289994739951471509486453295441455928471476958901970764329088265986535063823430906849616901747064920826650696932559985090597363715626474308166378410698408565926968255440973938292325994561323000842664151631107171244610965359439529761376966968391307571790820743669372204038504732075982139173250258382539442109989867051894376548006569668143621188079008381173042806027892989186461783381326498550905040702615740201724257474324663733508781475792452728616909637580016940805816098407675850669766755754784332815682989877068814879152368931429702661285021773514591052161592961941738199026410969025387017189019175559135283399877302276982243835218135089255376989090504897219392247975811261357212744117329533922551675059094783105194122628700915766465088974752164980148629726981995512898366354718382857009441184204476387332407964894287546985792208610325865410900699892564300028810429349299298275660925241511305887553581578379914355915713822421686674297683077338704109885291234803933955604617069853425639440121186629346532333179669180853856280457418224892658823120157891009180636232966860542555522680218541980245487909839035757513053867358564268870884735292290149683583941583245026862034028320335534404499698463345642557528924862794871503403296764580363344240008223835514580500821654096743283214260934303699865167502274964482797024312058176751840978538848632728092025264818431747937426301510079144757461370022304539796046380237015061661952626734415323084436803297581795899523112105519456941037149528243980576191341076237149624759147541239665615918496495876638875687012690890535147148582306475040870275118302557284316981455810887273731418966989648611854694456787649553785795473809664510013939934323241962590545697052800143201974337979962368585082504954364946985098657306005003687007471291963715957354906815076472157931428867439083185329297455419866874396506807266644008403671426897958380561165363167590668897366805060821564391171681355532004149192850390807138395049892228703012534578447672229563037125486185480887379334461956146122235246572581194340528661322380264573054832119162373842885627262689109015887179421550821058594418554283096585416706202135140747166891593777455029190020108685577800118356751237850355546754063428495990581662653545565526308023030563868044274295878865568401502593650426106103473123798262461009423588334806395350217306558934248558810350933023022467381130025839792998756949993067407775954551823866322441188642773468344847314998280224711565523181859231917955249047373053098979416056907042362702498631881403564956770585694257118305526692882540306090153030507789445024056196876751392648029539893114463243330687024209307533961401114788636855533658165481543138619679602682395406964647552955884158011294608479975180885126600144354728885925663707127149578325670546616647654776506306652486002039330325707211375787656114245777693103393690540700096251938460217894451186489106250754830774418140338648247905858177875031697139174323422662085474426775312892644753396953332080278357595617122379503783834030528608314389186377419618853641818645950879713006113349837697614811714742860535880235221865619677337505673308090225461393113186180807802245491095613954789808524014317770651126414224951755177871560591740263053758521649823905588551147639733999163459697361492125711290489772278273524319902496498063196040831006395622935034384405690162972637440951487953294222877636645936115858615236966404313705577995561677348537970243871463359215393238713800911455036316262894375768929693553527508206854047397248170190102514859315711228056590115652651021631103236597100326524331176851985552248876605070639129567252259641804306187018125445068077357590278793889149952002104167876896162724099130911513412486983936615898026779137063479098346884021563846078305157830284099308859203426498831137310595065530347549788324114840903606081996742748250630380774307561007094518515927760734094993375765824512767304431944702696659136374827638536649800795700682701171117086892020511357471781287643641307200036416709537750226383929703608157479212115950234777159320072744943645757044794541985118658818963127630288992149124433638118484947515046726343702311490566618251928634987558895572391091958656939842529184614928400168509844094390167855267306434483625012992944507197461194657953810555143621169038863042436291835629225718375634071825916678621427571860923767964594792188717268454079597112819585181237485215973338319925050186162515464943081513482219861207022501192276221380973660304524223991316598083190104979430414688082285358741778211568766537101385920101927278665116743516902524788502884090852087324239542024973444027317784388584717610392554902994236048117233650167045986358803276290916944743208066032751999504089092324092022063416483780229633196480443722338548738257579106265841406762032329315877640806816326189384800399535858984777141075169189110741847075263773371707509458849079953985463087259871065316502512916264954408473950541585599037395827354588215746432454682249408019650924488425664620638215232764795682118015904801312584067015616716420689431554240363838851401677681897127240869740197136015683362415404806674589414294440709383577610421270258825662875707927234497570084729016802385512135609715358662940230021894558769686922460949874786472234293137249520052211563715223385360168111803851397929102961815610388210478455896945764586317688540316553894725856094548998155039000877279297062894379451067990803945491727531953860955713509397669778914939126876336017448051692015119757193907639383249406591639533828245128443511642923346565983019325734053029723760270572398218283274911662294204511151509130317470189588953342721828843572682753582763402496524681004829939822468925046438084733826011060135528103789406637354166769071288570781398521294445751901450091056743580255001587932567774372789350844029151892935991996401180722054619506371801589392470733470909085648689977270190249472254774598159707888727102054440061233879752706757760243491425854529712808845720015307427057685112442849889728450938168466750682442981208314571437680561158876056151107597533672305223053419257878546198273856440238771548941516074421934655699049519903989310437230914943225634238259566868854258822964383704654457453672695791907417377797512323363277768307359352301477186263421583633437001661240295627543593716086892725089406555042897517205369613080914430975976491709622041445588218689393898288495852361946370943739338162913705454252477628185712108320059224935843195659114383094029585155451012195388135055924664268937836506210646721887853634026005387430381337178037194465659861302294546972107074292350903375671061773620966610697593061806309228134090972728789239517349383096600272214049938215472369120359517707963678305223267175180050496187558266184997474812563723989146423046069028889326150352773079752425300350763260549681147278034631439869245226103111140301211643683926755951473591374496916710856918207363981739675956954270229617798026779582197011140407000871700943186648979719000009009602228288948808380283396237911898674380318572397921214421376611835804797297529442131891967703605112939007246768929300201249779638077180739807299854800488177226021507224621608607457860109402974884215242462025042446691182353048139472033620718411858712938776882092674593015886567596080710102043657326056216686693730980097999228977942449146937967214553114617963055979610282988926623215072775868651391405499582243652829125198922829641214755074716010485686820618985815860311187043885750678315638549254952263227626045413180343070369856352005137395096551318534114413353290382084695452029577023347759752014391630985954253866995206685808552377672097849269498312087615421164058311479590589815076836448345532940539640868826865121735158488984487841450339277121758696181923086038156965795140037158783959070797002610017765603536550239868312370164042041692075493301556101551701379909406676383678356074107546201098033282081962274776886870903240673948026991577466274055513221134642673380955277459638529748533821402085413029687016805942530182234101611138490018256994971479038644595946384205059732093699040923304964792702623251641980751985050980810212494338337763188696300168243514023214881816217060915154428055917292397896624896581558764607046178560268276856645938927956916052387670693605296140207870718098105295460752055689696193358551848419346521650304466658305059450806394823468608148104356692335122231850862630631132865633237317239647303313934910150476350150755228126374171481674869920378537733818659238025546807918952878876148617106500203264310113396083933678043723711390901010138111130291344425116503979470605662996619789926632454174056156108054285373486290168691925639108034887751117829398346330370743887876744072284575338942036236922042383485620787306685206073603117358990633697075556039744068395395203943510917339012471334861128077281955421395679527916517974101964594767394370418326010231601003679978761638095187155489303240523571729870592142863996489732916980697276970773494799520073971876780119488026571308114850552051371796001922137042483298065540157689341559809545845914979941404561532020324217627349787353678794526433275950603690335333660061514735525528475542005559192232112917222768154893898302265878320073480334254584505513229757696408547474989130221429326641159539525962799340555551660790052352351868005566128021223154386116364828415765794061748696556639927264981354669378988771865679154205577708554212349797766940878464217558547168959054690659547915584363097930583762910045935103243935008928503804253475727983540438628630481957415769860289016127735320556528879147769770186438822613742830987028054512244298023215678666602400481126036840338879254602749736971804822666359260002561412528443850903408376963279897248263651607910879324889069054913332177781690614552806979541354720451430169893885317747118690820096834063431308920887797669086824374173480454433063841283031360351733525104665712940759933371226049382251831630678084915443018707645301799316785275466311926087208313776051898659318727311345894382310589009005248942685543713705513577780295810819067281492997493903340387659111600101272572958997454439783033030644565983812733833115220887950406590821229411706318258230786776533583811436065552600177195859705037833676219198101575630293039596696118252516096558007617068951600133019690973692850513315517930956851741745531039384346643109808293572718396565014916095739730003836392869815921059710875595006659905954484623045654784200245459780065860606897213899229103621980239528549879893833069407327860264565460833274567212019772153735494525215976452541118254735432193316172481624948507361584225185091718662635573053535359206656038608679499166062787980287476386022506377079530122791878341336842679087108249696155131016430508135114748380260765559081106507061845531212660212483332325731373518867925364674911342559829188938890075965980519454783139925812871111710157630412327527453483076872792335576266351822079508138567660316045885083759168841809076713198364013447511300848915150967613148318367722556474692946573088203206506089722545690773382673860634765260540738362608835226344198348124274210241034344274508026951585732531170239085796745099656941317670742244783403013707025178304395514448299711658615723999696288804846603258844299371984338783920811273024049081565535150504344143232958865642367419347748616827747274715360057729037903516403613039475928852419345714300469230778415637572877691559382490181803097347579914159621308484698471152854742143753154239288938450454727320764262356178548835018974407571306277295908559643183544042340478592604235501150583829131666904920567569415700334139482418038310609767371799557379420092439093765205997535173410269162770173274258382236202639100018725819350374666019760371879746711274340724735872102143671364177676656257577663359105275185647146664710446174052508571106720605622759757590251379330196958295758534561424637375742725915191024338957430859915337052586178157420184910924249394065528754230658725572729810059263117104440822802040427691358556486572705665004708474571139430870370409445814999340935898274916235883179618145136905457694504610046945204491022391045051256662848680117655774824181853140669387449497822503030398637541784354462100154898857547191911164979513590493399205369431683483371335444924968337839006556105634264653639119215987209583122297292129847286763081656078289156749691431112348844601912027462147498800130171781870326885585719880687948741121125605272275614747352257206613636149786310133594309323198803583868555313739718797357764792849336155116818924212020530297464919043704287130304440865507713524558570793895815283706914067038730896909361866797228953447222334863097331919048826877151333191066822343319860477027348672065723210959569110871003666352395698135702435961926356919308387878505385512432331140284004337331840042191670086700833663189122062844446118690065350520460890013153796878771253713854689373310700866447512945457195183533219609415493383330713751085819743511666120596122917763371433368216492207628519766734404191301692761383586656821982823889730865907776587489293993289441359558036583347986702651145863160753455665811970466151306070202043634085254284561103052681970140719925089036314596451207787941737938556419510064272108576027809314648308281654883147360422177479628766689301537671870780729875960649473103754005264534291811379523616851543248932336369075303808358122871030263504750019396341414295540811289235723810539400479813166695949677847334591083650316107516284752367844580203622291491742387978082429577019354116299445431149896079541392402995062333632254867096441058936344440217947742912289552960325376842793544901938731798487192767128824065935244281521743710731339786439955791329911625901947739274176456178017743706673625919119823384448461900607631683672925905711019116687312845584938986001146370920522319566464380150430108657065858841719519396036429906963778716504836602458453549935139617016998578527313145645034653877618855589495295168887426966783831323685011296436075339163347829715905702005528318025793163891968092148185891426418929385981074213053522626927446997426409685602810581837622157595127009895997103305888793957170929302012530043681932532763715368413212054084573068311197713809011982756465765277828502884409149784363292514572805700664351641108231686721974822524107651053107005423991504286285032167717308015240940978205000676226643307083679365149201312770032534782064336320539395338856587171839354936700656402302588331222217341176275072556260186068660884926760641765564314266713119366180136752403586791286293549295477467051700121550683017688452748425751965890972202056988261187154754668634911136241275955720371126085593452636783641113467783831757731978414606435635103489819342282074949953755761489508502473493754587897265095861403679890098579218343174474400806726384462814491006086089587162381885300293369501901088012236882642394390743196680713429798964463840097639011943313718609427730454439838944882788021241754466589341400051197706144597782259657904237981764747143443096129573500946812083736331029882824602856800194950495274740522620748030869079336466843215949439506363072980725223822148355896139762590147215592057735012294366780829830958576798967746589576982118232925035606467254363475827999383529771489835024805674710386649542703002721349860052684939050659189585746477150122890590192549545110044481043886040127804693213498481744555978100983898544447873016093327107505105512129143800386936910198608467469224103939933206407302640248124065869383967419719898353239341591419325924715777194659479053881774671746759077931064526330321094609126899183219406420458163944391609158639498478556449335672227248398682300708976258261946410958955106388677956109133563031098265120637753928690933218443048216316751238188245135671589857987719713810305515862426218496723615867062712958036675124751316422857934550359399692070365442238973247839412973328985629714951463937643291642234384275553368216012159582687972355655777431933041256945191102715157187715670689967539857443108684257647995244225756180847371473083590554421169340810358558742873430140472517442014812322078241593310178391926903464256866228794773222861713114002083872107668666973273349780125252667221271052776818040264809260754552492277857824423200674921381718151809835652768821909040356340914757487384133092550621850380365590564652248361094533486417852267274034051574037346884302866420623122102033762320926258343190881829704208954703177111585773034826278540777848364118133663631784864645064130240723806836751013296066873013420777666893439438955768634326816027877699947992384394923225826227325836712558612913077091465140015772425047183383306461531398841040064233534362280599704608208450857991750075876586102557158480221330916112328111205368572802349294829571432328428164532958610771512698675153487062395805184480055660809805723123391502753146156083116358419043319762942811375880655167193170393828327086527594665666607098340044761022238773811681663691143888498069732945161467105118284967908284504846819235626204613958349539000663868462285914089753726357457210681834585935327626198301302946107956713778005317443207950823143072151239374816100582093177528075183719481157915745944060293669567941104611972689840915921061522176640231709204157579082968727298782628577659254083188374739260831062435262352278672790181355625865557680058680345057542568740327490115974813331075441397948396210629911379544074920580870708721434353344838978777414501580923571243912751892712158623363898698259127111963919379331064674939589482307785911598894983620063869443973012319456532376591419293449956429530151830446847439295463693487420101521039905917309783122368780246457300116444314693590735013938139418715927147885984903418171150654079837099431005806374603342831203800695012626035618160508740189907617556940785599608505632653779212963618512554936126405437560825407781829452989844619179536633920732089269841008531082451861896554825990763732864953750569262807983899230336304956474677817909294286423483554846598021276558911752095664996848885508777555448545120504891259634605565069778187679464258815932605195406707176158240775958360050187133119753513833078080901317362360754960379258547031078471321997896221024629544013245484291471792935155104538434445808751796973628337051015078235230530640291135741614247534369626333615717853811403938318288449963262471007592922777333378806270348384916476955231927407950950980018887994367301476279559124913196432009877027309916991197726528700004322920998712989232065015374425208449685498427540075445112400129386547365822170382232378186116125013689357699525823457192816283797230201927869467824567897147375338402000521274361906164211007692685025703566172987908644519392187116429849890276796300012431767542267346588695158438640975156519609537406699540583923141342777141772029001313793954679375525860159616151694951860770828632819421629740575985925295135518642113573085923898974742263073081046553696746861625950965096731055528894733616759656415445090164542681588046781434704272003336579985126294766404456464919566171700344262115372920306506715180897591312047005526082943037311420812389818335132134076020920276535579918483458867011996003521297421763657813264344738261005115314636448578547700244055803596171345212238504524284968430354863516529499025017046235656152538814581565408935417113788289464366508569660722462056091380487796089365803283154235572030948351953307220644666637864431440402512111219615005109194546354721941512304101059014626352747857318432581402275589518687262543099863450027973048037493516847292258571210507857627951117039596128420823923498974780433820845940680536425615767308439069847719704128782787950675343954598815900795430467696370758757802714554114015841089944986500804387939946929512037840162917308976116495353382372127301965757405543681904021630040860361436592508743425142965932438104583661650847524305277125802394833515894070399501422468623001420922031617904115102033678012705800356595303428286367478197791226274526948302317841394705971096299599988174338325756673216334193240603861747092862737647627541926557649838548661264788281065201322969157739310410198452844314810051235352250704612932573131422968714151874048971336437406720892816972815549685402316940949906416117288978492547717685104003075757287041310206305430120014369503411646326014844237068114912463585123937070514454072144198652626795189031330739739330068090352584236276363726564178649812669790398845759710459942347529269461732089227664030981540698286193810015362334443416486317911869372716170810694061105418632675783054121840278109677689241638646752356918139748379892106470682816922706660241270051256901442218446125100535012824863376968225288257969427721265108160117223448384702094951911779837313829221934609698103294440278472545120803961808841203940214155365035882853129838926178976494931437751522565552908270530963096547735894337190395184331402977093682559693944568093780373711110418088483222390143996258074039528742281425613477099831593642821419542609858424678001499888578708628537946259900680028928996383129408558509314659333226996944153761759122428421420150507178501511214134481930181904109828144334563300893540210460116291054294212527066746013146987071822968341221818445480463507268885318173467520497271085022699010072505776354186057957226791534335342023622879477609471159483701249733768022547417497768553188510350749770536917648909445127648518595028275804803289800830184834477620946884804141909671037190778129804122769423322207696070700871804650109788887968080217573883889298849527628865215308511020041986011019309943782475538180050333723170384594833745492144552988348784426658690917212050226569031779005744131214227438550159474718665191981418789837494270649798126352008095136653574506456630646929488523311467515615571348802548409987529448759693102488293521527294150481037121915158043216858221938451540123907946251258342620678959732407495305892888566040419211590073312073161409861570198900600337589947068071552809761286400472764184624692018459340266763695042268026528698924794982345229142457236384550516316640962189718147797753948287034293823694941637761223384632127915861823565075012389818889107645616745544617486674887110465004200025263122493086488427536750562641123484082902513194096764616398852701306931364939564473544272649019808231310494456910869830898618023791455325232184271935596099175282944489306117364682499732299763992828397486768132804057431198466139306783677535960153746565000821836870562416141570506928549089568482674846204874626677210187781577383458460158729836089730373026966363118765692279168657787401690747431689881005149487134401359275913349380923654076279286942650813590262200972511704134440481460383901630712062645061944219904873179361027099929213315778750230991272254947822019512415820433237233344918126555671627875446061054243257879938189643730777726281684394956080728383622334319007746396227145500735911865182295828820006307974869428065059356059242665387186710570307628563361300319184250459411970691223447308763653842683696793137995467561916881880405484319699129091190320304110179517839987713933938417060027236707053774613605365230513117426483531309655063068098027457382191073624243596389027222431995219478464017051482301028327055811187844385704083255097306782292237400515685871163289902663866478516226028168547188799420865516656888713771251842139888126273895826949502249215533056685600266577536092510773906819584532167502879460052619776759385501112986842180572723220391490763785277521483204297507600554399000984237473603801280856627834561398568555955097134469574389949632490456320560175965792000780643407949358160298073212069004725241601845764221047137678584583209500970108299915519995597924847918352503867307719949449555846902313241706313658378652914865413342616380495876842543970369239040868054312026840038886374621858887907808627866858315596740706070282392616354069062290777022604765037897845115161711504442627925958628697954978244198467010776681276857029096425054905080264681087920774441792340406037737116806002468739230859341196371882942694068703364226218604712074883143463175170401649034310580931734387882364616592759289956096254516767885846151321903502579200458666511396307416146580329100671254570163505970072536151602904163462098614048120958724885913130597791013824878728596454040875650107456550845952806454370273042717326208165300418344492062115529199416563664506762768369866663802203700322980189958984907481153937666916628780940808734784970572764444097152956020644640250745667941294774034126496728134919124893007509472557168985567402478916927557631040777606979061351491128051515910028797343148576486295141092409574055555128984816180683833198461218709026005864403840560496215829108770241698700867668149130585700652755198104492485495747019432656636258486087221495972195450723225540976129000390455950530325829001990674346019874345778859278818299031060749446962526634030659119879879632912579588408005034777365311741590922576549246972666169944643166675296099555697280560485039212295146441576230145324722470684150831100782524022301210244660196015676223607364762767383755452818464722178893469031525896239533469722590203851223441043069805673181267464231132462635163771697660879336110168437641434433992316403991182525933634110862527858544462880669298364393228849757139758609262243044050390353712966854512438537608849200602195214458209356394057889146694496973108093452908360202694732574827818011568173047387307097395473901164830455388391588382817148963499953037842543934077498471831074832296661245476531286061730489973526319484964623042482466616671750862397580047496470462256189709585909929313561070146339099617118052003361998204392986140719464185119572956029189594711201055928651592883168106258096747657332646425304094405998377100421818358485002649243671873158704102713521589673684993819817174237406907851170698636069067531308710304286304588747291732424136801204954841997097644035040203452898481760445446454187530476191513798500180309082977079571463262890388105330402652834190257609550953647006284553474346799909034393265199845481305717673253020113629987252446506882325189091275366890470571180320081020392589015213053876709592705156312421065344703355488380666156251736200945775500349132803275553395622827885227627477051826848087059583849856866603506421224084978081649071307941249452519337137116884753787174275575726374660290045198715858211811881695251112112469055926186490386262906295069497357739626009267553221730463810905555075908965966293093206775476836798219293042209680696236312850069320993226963528392760506143530892976590711761780156669030731390807176014330666345162016898898155938235327413105212536919513517200550780193099339459826173600816475043608824519699513071687661696093748095377808277727410301164788724085816523289598369797887771747366106276497775769214020908139732410465149999855004859630792723901905662165753018116489181433482967296954782565263846827686285547717483777605424629917963677957006269994373936594599947396370294412112704485278577156127134270806496749422765532162110562005300148984091666832274519536452425749487737769057202396022832273781325965587744830578054667919477234451969417657146278190154896396264820875163409712633793133100729783614579660539178209868980189079185020198189787986781218497626730119139724652267013589820850537215811057540972476772295870532701961561913659137294594642976055799978946954675157644956382249500407024809920823683095074834265070174508737600607113148686309156831207453500730162750781334615036677082530896310486747839561680826280094668104298291662448904169788608875146038713305005977217722803892675069543009560637559524075662792684511732414281058544583882785954764916212922226114161839711728749414920482288760381224176232661984257910153416622391491206638692570135075233575573999535457635239097302020742453302516724954198291452155954214747173903589746180634454798475927634448637004401795157191193772685542924192839745099077986397873869593654260662499570190174167138273251982543447738028422615514882238305034186534652495952104259580828053677789020183556532082216221278826675408019114617058785271203196709170639060344127718053676079917719923714360865130404886604525585951536345881455259328321073549810994925023092100236154050727132391068548061901913973427998092638127260038317173182085441713051261842709754073110124556027775543739054033700104017948179405379970991785193737331589360045184604793964026345523688235088220581983552946408881249445515424892918365950151818908170645931465133329719166000149550256919681627871827333547720252672863156469512573068300199135683351286561449819126303013808676492239414280549200234843601981192907363762076200071424260083058535991125362918685747615561180171947167708592557191468077356669876605142571332761871543744441839455074498117078134255011009757057953290046617656583848734065784325833720924814083005747306345297646934418098366260141950652614037519514623323618688462207241691452022555172800032272770309126007014912385797980619254068803402351444788059082278139669476325088992532780991065773423010946007370437944000799928230176824737969042078669740149495088709911211021382685392905159668663484690887935375388356285651897088687656305309442761856001159046584059588604281784183504925277539108381866255186577653031641238540222248543293178148592620097421991563080143238459059677646073057901879625579628010237403322145882062319629485085425445484228975107153238962046769572169894478706661023830745290264568051309902463497170548677004467736922580050597338342042793573209909519633460828620983787508046735421078625056923544512262686714701422270948674909642360807080961748594458198399835731423717097627713175377435629277431798019341688745586002520453817560486434961190064043453477905679630710262644766662667349144213318945385353572299185267895843677623405642461246913129497105934384009073986076351707383388900354062890682554541261505180122801188601848955368756958786703424912987553540105146704588528560998125006243079301452896154275138509646801269519484845828423087492070623595668320202135400534496266203611250468386815038417060845995160524415804413478190986651501503469488158253195670578927194665121792904117614368926247557724375216438682000197301642102329256704177212470041302746791317972235190779372821746304943820497121352564490839629011209483778672280440250243736883222427075032943974872761563291347442699530680367120346674396782128078138210313251390505245405746688192644643891884535831834605843535447854782642767420158053120549523487350449077923209112893083727305331843668397505235757096637538487838865811307938273004273348660001449074909598106432439559435396947119249849999661058346972701243320636308955459408289097640020687252764028866020932092642754314568229721638505570861778048691170966329575110524291260250374293131863449221138646718396088395122965157905142970733163843292342479852889514890330836240678024370281055307071266771226603076514506881540409215529743529709190501871687326296207781690277843758872969114290123237847623947849716181987199576419657730915159438379715803725309195575495936413160265389440586407226689383073657375893451188726415160175022564209752028738187643340516410897662327265431742179202646052596010057656610179705808231524112565740092322663020611574891220511172251454922222704289773909574341189887748587516371597201563210569030459438056842627220619471287745459483610642230220455095593679388875252781187558944063236494482426124140226248474566645460448220677664118031801764377684365224622022219520373138875292070608894045785453771184246684491569657011122694475234561272952322725722753415712213888690992237216894336998673956070801669943498384173959981577495871399292091318214378397498622994288378873297473920012421312218704380431428811204988134996109511802981787053262734750053560119353234600035646403551978027575483775664109850280307236813862186537746962192068210487640969154829019530304571613658714650849585102146409632841254344858257578755552753550914414537885974465261114641242809071115527439523110579787366802168044745930110272030489889815996229484183099884032776389983371194513370470053321934542418562843231850741001440226276966741426851631659217657334317641234028285257769052549989170095587618122442938622595858653429824177003787750815455355262409712142255296267855589182407705810513666299327898120351428889315668962472823838506296959061932846336285126185036373344948280493509585172947350885927225316575990770614448929952311787544057252747039170040074676110160372834089207003902384422155777949826566114712522178165739210024788669356036395409460517893635201760519880709188098941987034891061394118850480826427771921724007936838564673169087394033729191589373452975153546927931253539421226270568695349506750340827057459429233012545021949366450011212435807595953258261813654609774602889984199765421758913798325107379488862711544263181221357723611683735764584907916612159675580228152090576812764286433892502102227796870655928967027576557445026553244097681667165486252047622297286660311668812282289498469751767550171475524516349084580203180660508854162405638671516589543232668591201760760495759647800360500039038309448456715986357239865644960593984196222098591747382347450373521226824433669618069898232399196148649627224451047179878885028741832200142928245158935368917105830512301704663000367739665170355641175723860373384169100135963033092867962570263358987515088722371079975755101320345816883127718831099349815495838547053759239619068321211239690032659222299682774798768953935589303208510963542872140878043430144595839461709152674654241959067394197115460474592566045620920616056985071574204379588765676754081937381747928835542624463631139340531212031250345066881918554831115325886250568273548150342174258858269864491213067783887955728989710660563052993510988717751879957221370439304416098029061794464357327926532871560881073907384941515170647474146512807375582647142575873439152058303687540837298651835411792312135136274924495130849724841999280498945140632184975331617547001149655270431651139329782370016175099983027119044849728421178598436166830379480690502943484819292072383012952750643448559982649876503415883379128141164433985338482941045051582765288017190325685519026803949911157532520086659370979075647072302663111837768711306722262808758348845195928317391914700885489755609523657681132270139501525805758584060015838368870669042547956016869391628824430578284261287683770807972689644329810132713316455282739417328573123702236334182550689744837921345989022616468884752767105510043776614018376706993307798123940915828159792561506045971937736806149363174385626270891527272370220112713801038339150762118281256945786523930940804425591753994641460535476598385822954085490683399841640559350707960205537265090190515393107120245183462643708915700884678477890479540968606886719913630687254743866084503714714084421181329720156908693037324110405970961087341638427071704658501662660131869163056290254727680731555012054833663823767100688424479139578183437956768299945060468887462104272256975212923996763959246122088638704750903535663297022587156378920485555065143681496117720355412156094350864978699025543350408802519030204032718324148572587646880022800994553851656941939358854722877519838599915423797001825812682741670631425749561475665312004864397129074902362782516848281535983555107061238792554939894645533102905937852371174964230303640159897294406433591448673804457678274691437986070367711147018880212878065853740712925647273047715761426501628618016264313151645766675897501276889642580343581476499889329952679540595325374245643020643168365627910410749358794239152490229582459539030241380412903051031945025363012492320171108627467692198555115810505153992155007235626386991092145016312274240802440245901251329041172179972155697540379167953783139453270911942677953464320078345874270551718582563286007238884289262036357371976393049928686172535663381359998921028581308574389645063683686391379330902196034929468008451744303958798418922335743670406949769457229864085906266443973467277531318368545737900883356608384823919835708004521645454368019893766134737370647660236134352602682450957816402428265913935083314777758675163641701605228487121860374759356531059013008896698642041402193282070118838597656705150423321574578293814542712049183469890738120894517513981315697223295105226052181420854513602287622092112551093063809637755809779136997798107062557308639610773417787434616656657799652267037163693067053661068211607375215258279284584582902982497823877713418028799936178963569146235934929418502889348818472764871814113359867130889419245686414745651350195565197331192952226316225008737824874297861690037878226764132680704493832318382076609894723704731097644419183890342035006061361694050034066855716049989123328873916451801576071704104426135617693887653695729525193191244460713720093166267996838504518643881023507601038424679308150490425074582208255634741975046760023423238601698757524793862995198785484336800568925789581766560902148712647749388852913320392354170271203142367077124554977546856579736979691791527937605646660904561439017512825192082407625554745813605496065036865096065383356387965332578801702893322085743310300585799939044262769199878673601629650930561831688441666211284366923000877357760770900867129752226572139723135981041892937248558426767324868788275683575663745701245341811392162468086939839041411482074132179839125112680987381792168502144737192825294678275917691840841501487609217172825589263120957804654939318875875611072099488587753780127319345744648188832289856156186890488061297151134912459795348462817159401705467040256353099877608027816417132841311153386768567676697451276172513299897982737861690653428960489260938399690365478965581305182071228781759508376598079862577175426501266814737321095083774779437745195838122777710523531220435830730642911828189729761415881230013292103042176769324150692958950828370997687389567582169307602240344346359509801100399841656488738231170788150150122501536695966566441078210617253042176545179771065407239516849117804875884886739823574926540284148739567275556768913651361248159068195919152558183425760240041368668082056957655159813621647148893167577645669991794441445181845130888758734893758733376988143162847401128084229553057317093442958558038447806055064952951721462886693129145968891067660184362523631511689798784301948471133735861360105711151005617212357332629580730175450748760893906687122605513318706740398004343687944037409874359092224051285499281490034309751307309560741653876794848011685122359878809992287423836613939883526251441641192599296951937172720588114012869304636995752807216836820273641832108527211662859105639905457680863716748448518816715308593333018924874257996965632184729306367189779570744395715729328877465518079549807151732047976051290178885926663566184222881739676536173789092614552935598534863397940196291670132910442394190213306014529069585118606908898775232429548431035888304674810919633949099571125869751940806756392639894808431683017952840811259129263002229838062104418457536333843382830460102165826519909099779049155371338734665276123604895714718989932057588747842746536540012981507550906381547139089500712425273515347267188613356319792231200640404991118225405581307861647719910265865489029295441905612212237673902377970852745182766619158646537726428786102897363263131509652494959830950776012204065892395431518973842329474233483177555946571653820378525987660123830802666337051347244096478455543246623644000931252338941696987831255351058257847852837486317099616285763830888759985848912479029219930769983117886086292520659836710862752351042148517014103350402493741483720414391412376682250683697721815426329882135376099982026235296689353798955562715822796895396219864485581562104546475026690108059636659148993399524509711734241049372944914343749403747231059913419247007327175500587869677093109211088906837440980775328358046801679712328599073447362177570303736885164884394405105307398108743532100081218688424194711769848919580333625403528814179762069419705076816180310477772398961195236416271487252716061815353246285595395769955457514386197266688102038487499626772618131342633567397443023038244239557560124833415917977644242770198184110216532793866205314645842241910599475488013049375778895855719967428247837812423935750966258973062068186933918086542262406371960970149430223006893545188568519620349219097703445453972591517973138458645447294776751020229474175286547316439501631254722009492090853294078309264649927009236844046461327377481653652472118802147298221531173687300040039922370307819638431485832355179783386040489207232920837353600062238710540698027248798893102362892381978921117383928552212405165435230645046354753790141009748067418574953486584304566429745527729625767341547668737286035288424635752771095650444207936783327966413092958239045927720616900266491871922019269404768498885879986879800021384964682907587533430401420156495666425768682932373904274570295716409967201089036493939632323818445516776067902309464610325766425023313333136483436134906890992230194652989770133570933982521449025614067203247404545106054811709320298890122089018474174687404920999584089705148733748190488891111532613005326356522388963018672422075315949492876837619110956202010007981908462947588222501613609346760432957933309969402622505897630294956866075833040395802194987268236267933555033257691912599113145703795149316641976228737963469000413612153890466104491933282886789508723441822872295474667225181990260271654218167617440960129855154920948926926034103565427870068955925867099084278272551718549767689368118184848961719329284748196194102643886960871778097491391542769567295266492998505883165285055875589713949869310526429981081276378181955494520508783781782498366190137333835631497953425238030144229494581981040963403021109641890738562247915178515690038995342718112404431311951551801197442516474330318610249382663611332536097788472806079805930597585705023389560879414351455505379100109182618013446752203429704746391746631398688442637575182499474926291123714818519405903150858704140722452944876327747492427215697136918687695717799602875754033306040758401567046143694963648007969375856896577720315862417093858320311660556685318194628790069961539226613295693187496735100300082376154961206071280286314550781758437555485405119313127775317949640764624769119299126852886703769969801020112203916364662618573407914953925399261104758354624092450263042193464309146287316745528866452391843556072597588114248337436056134172625308855530213458533158376034586396657034521483974240513232864194303881132209500837232057554033172394946036032268171941241551918348836273143039466606071221431428391562377639196949915774250757870190779789019597861721000892930438593913493890242816530412496424636630211614681257336383752390273052353758485075231844604996595229735595046850464790572694400623792449514066855076023847295387983926074946581394525555628095796676387946901326707740047817812593407295433390862635478460691359800816133786730700376322190672792006232910307889741735459103593717725515306904663339951255720166494671173099569601358740563221164313938638452770230348966038057770974887793990310078986519643315183331459176284477682917067867930744126575117213100544941518062173743630677305027192744848825749456841901180025045135197564548766048278470133118241428587485650264082254271525537472052035280320420714453541427047386512282779206695316480804425691677716215927807872597267177977856757012165106537378338925206559502506176503253274106324244927257965330964402963135089097261241525794166361718034386639290928331472388679789167835548355632026633459383119585923231432401992863187256509873971305691517699972563155208048186682196417776322195231806050599795143968267744441590642271766687250954183352230472243745103325286455385195792755592965576821005398404228409671442554826291674469199350361348356418224084726070374407633561193969634094667446409055830708217160946953501978025802177706802514925019307784866576307511127045033106385127727822817986067010299793555361431369763186910471592675688416222843574895958786122262036517976213276031698002966028253530000343714071142898446645354437674243213042734228370854853052290324830828275374087378746970901135722914743920370180029363508030559402555142261287971875590268134424040529763456385557555194746913500948104968676129034375946131696359683731291158090752339394362599497203038399592259209873877997536560695435356953135246764089762481175843826090065365532247018032530714064425292797509185756608397267819610638403322894654883130532641441972931582173037935592474164784249577301307148078068203802304909435431296033132188131138041055521808295427390673673015227234151739621271637963782289898525735302569593780688642645212932745165622803622924844463133685776348142518972559296559796157537090088376115130166385533009048379618020193065617560453628744217426378743477069272350064423963616805456963775680012352990218591376213684205625422593336604225369832307336845159637575203746823240726535303935572603629507734883125704622590721050499415883490124067018743850364813282109059173971142771191608757627486005682539819601433439419159142059691530754874515742422857208249732525988009180279454810592807768308981502052545827250508399419781142628941037762121272908070121814290361883372368812564756875377434636498344133185107459639106045375030756310394962328064506378609989363250698754429190859784589148007697654884236619909900057740030741810924556865890740068688448167879729291243861949976618147486277742880729832429055192881136690960538570462537537184462698537839163240467770169962478508557817150851547009082265858162824959808684464641740110559284727001843550745831457952014010596872691089718476455149136144199666312899475696263454103776105478985422306934307788936163919101516444753700710136764425454951774000093970053087027876901063203903885592236867298760689292111554014602940469612464245936304172077213773201180942731679486709701066793642600696761617176517204836572988635198008755494900756468121151313308994388959715646760061782329093440849783217445135231384041845908554099172223936647360532935628846180409211250562971320971455373651427224636546723515086384533722519236874231542714097199133424213179016949327968314061669301370533219359757019512453974946143607065058456647455788156544949625214975523400905218002438756585572437820724489588924983506006473140015470733457825869926498904661826297055949680320028871145429177877140632002824405591236128717690618574651551963013762361792532108624717858512923955762509322870427969791720619033839382283972136135732606581910205003901929084997793375250461432295336631218812614189375539984979789181978705586365382581076716820968133768718982809672239893717092981499873963399318921275709993681854087127173447974775666719834017308281170995824518875253847894619351043914006413468538455605718426516967714192240700848118643588929279214352878373426200927838177274541615988218085661058177054266735323599270063339871024031806189833011451488886712738850070229934830828064275195545824325229170691642881423061547549419155552059018344116385296609447701270892145761319710879922924194826069430564507489880447645361358453470447477162017486738418219598756968753572369210020131669329858074764253614423639379879052872398373420824757544270471232030169619960324467935011404970062314085482550407094993086844046488546379407763022476283805580830759601573745435441515583511871486094664026650907585347326162216721735082421421637090667538733512665796053010160241698654428896692464339406524371005877222715526146937378570686716116626867782459736503100175555801391052644245322292048372242032920273224404106979783198927989060927839720250732339436599438328157491947216312163791150565018852662826762133060107759089493692404114822294381532595013467530635045569326334728776081701437674995700808853725441701176389268433850264353184483917464950256274297269449762258237253038697696582089731848070543661004556611382689436656246593886790888610819816975263664517671355908448070238081323353401925460180625607489803592063301702203114967971737230969149812259059068398687465867340148740433181848053945472140371492629811792258340244860237458161960201623660571400084594426988590015717482648884653316761754148167695665324246034811265270318590938309384821257334126921642284781046597333458942183937683028007635807434929349974212490558515956290272241945324006833212306320241085958493335574116727835369254320215055216419518804338981934293507733943425896813215404863381408962853381452897674622046208367466913932573004656941017393898251652089725127661821912884276554103241127632462402069074315036428688847420828251644098503714817227129683701340989714572329117007302648497447597516695698670248751547763198498413476843688918230762457441622725963497898362613219897761740785471439383610346124442184587653665926629074171161422643845017662534057104867424998420372259829218756520513474527951877183165664249404502209076283611194759449374428573217350448405121734199300707979895961045653002418158194582669690129633057598880599468050203716300053054584655912320166836779507507149375880092394879190376204168336118715734995446943620370081482107638939874432273362722778186849721369838266783009628982840381195390224739724526267993116889452433255318366075672970409184048541117916647688851142938376102716607900811394320691858698416126589985106717667509975548385657583153895199601867184806260080352092471209870248680940810918421781400194413145061143410796416163567224149425503867248452446593290538284738351270730675254303339949195761368148017677199817722217749355105114147389305443153994365298607867721701569923415241362427529672622086653312539143558955404521201309234282271058067471183752194098145383113898501158939870917422346683113331024121621817627014028951542611015259778121188664211545516553360912810818469254203829632441616558675750316169038299780367636735608117412169754675392784107308062333228831454092522898596568229417865625060996276467691154963996079399771002733875128039048080699860945908238840845062208152433260543250746566584630497413757762760043690460313037161620976581693247371269134772687680949734414109170757927948673544437354061838839300538649744856642923349788506902781596846334982757470989784715092162298423715247454831966076930744216294359038987003600579696748901963742964512466653395240112047059506366080485176642198017159767229532279128932179758992405175210780108839412228007264081266537701745100433563235361682547369082643836815776613461117343528939247083271766870521392787573097315852256208603595241749043200397408637745874363222767576003469271804518870352211807337604285975012914761448006625312700554601589358194753560041550380365194509982551446384485336086770164522320453142141670558395287024176224810166735355164136816189232966676813319763184340856272452361376554321135141335441636720042679873914175313174939965696449854385651174816922635780055188983774254793894992546979213176792030124814739717609294387087174797403220626483445757639444808477433140711090959211968280839296208998143678949761244472127503575887314485511165997398993507473700820222407560398097678641638632873910166372956605844786867933020022286383275144491192078332229593923784013073020009996391033511757264873905772450508495766470307871737304344293622075986742056607694711668884447721890067079989817581589292140733428660569080912533887688225977678014642136518905434356479361445707948795341453013597063045939262390616130765951941643290848057745688783132160310865944286841262660981939024194640366702021359170903969238959141375721472055913179514383995398440731364138943913862865668839418533031229792313995704453601488930793192180415492331246074407384884749207875771025220404564113803498168613080787465030979918814803548290684172485558356199630179345815944496202083634697391016953067367063542601802338577725272252086764598187235199051731649973747014979773910583286455874708315377311189414934504407364132996321103435322773633888329789437112858913092556859573710354877440803154560829052608854804271901098075088347815083171728476611259269801715984518957554295626131278308092332159661352285001064656223032015086391094253798585251959863745932727042322812529296418336497652040890160376010981099192133075077350176073089588865786897355270032005883921440867188347847535139860207016625263911778659847894703034514377128889373880381074883984508318980616244206111196975460548989063568017363154716379352978643863786204508584212101140783687076024815806209963073185035573151930372872163194666485246447030798026631004946153089729435066468547801456461372047449779662051508635258118135690371188022865115230961873227858351274761204431932720777475972716749782046147753809472966195432894173787546198493109384967969027825129486321488383619412482099992533372514923989252558400973743710666960941523525430559966222199851031959179392470549233380596317119930229943995267636511641204367929866549280065852998139366702476779114359537287191384437225235375571688835736269342016214285674669337835142817281383341627239796957968565434806766538558149606941145485371231262671269828953836450346299430430737928373055386516053978872152705513999378043628847082146985887572761845758527999166223127864751731238111167015871566584620874289741895435319409419903750854801414298512447960007852101200561719125843686224457263774109893512553182155770003676374395871361742486788182951862043308879034473909420357021543726613681679074119308216350849598022740870406963350680555801077331687696972264562708427857288572121657666700495496539861915029563524213705472824847949510690633891849608851220900880160602066453821017414942411865852062557598672508442475289184411360140807343528344471396045900415561794807216657584730159502040623371540049303238385484973904394155750097886099527127965685868562853244608040321882668624869236771085689166380990632512656272818913498792123532251157638821667425073400585500801793085608846630821993484672358193119883427537129696738235788899595687589378250361812746757600465806878094581975822861900803154913689353066785937804045178205297090569910105283898235289038975237163061793795096033538997433549605273548438670714681312066420293170290191509911161642778802799347834846873555151742120269194780689294432602006259349591733941736648510029551467390344828368413239270022506226342610695790531395765039997938813584519833327786612491981822450363278904920979857616522832336917053092484163559221960993588485553150119044720472753412232229621891475524807419484334909655069089871203314986098199455378012947487136899579447769894085183129823436547636358068700366892332766974807251263240601275102554281745071459515981738910088986702797970276354658713082364867627484105018407271729112703753326784498240373603097448859917683468537369782209540371313790193247013835959870503491077186080210031989986438910018296062765373675790581721411239427651596622808686679032947802358411350286378889949906731544518499625088993198481138822181541817030410488912811376892798155292053128593518391201593382195260249605251508160747138107523780084073293221940280562100467460643762085605003622761101386737665553088518636433577145353775238419360937599407378454326362378658689070862827553926541674184553026630720002281438137937538192716485910339745151307078029606733423927175874719938490590033187655449138267212733259325627164157565673511751791018786558652161709273959568978654333790162532513050827328134752104557598825826387512205940974713781051575883796315703059533169559694528142232186994562815480614163428905418147147448063322086254612024772800622653874712376682442893474149591948189912695637586734605307660430520615977233175429757815551997397697848024915623652108146799812335725003533945281364166747893848367433122070707774662780183521928724248978852448804501526427209858153924421426909295683474348318852356361846908648788817342951086175935952151834122304911151249730692888968904652201888203788934128930110198398996741639173044448511285073468560915659815783345404288469743411679991565938862088786338294691102118941668256388332392506403332972553652004491464346859616779375660010472916556180600993257862929897689433247946974594600222372702262349165161348632761810462656838367436241614313484532536959999512992362710123128222642422952301492844904136374840385562891169496844273942496595039680674794454503319474612723863275024505801820568469081554710564237034201495506295099457293367646301967201278764925788005976504774796591081109033496071809806054976476813647855302275274831104275786552798096570809170376121903414075639479715738049483684279882253689280319714055776459541956578436777194103513193310200361669941394296976076892591020768095449161780743415832405988264292547144884450241483644231396364246702066282338492932245130662396836660627998084451267046512397015497460104501880371068556842842653787314656627836362929201713022753663227928924093703254328598481407523371185333772070846436138261248794787632650460951702178733315863419414512007888969032963492658248350191091594914302713948509541576036958923703020983415113564694798978704833904524631009699236201990195840820987150206777808771087710222970469417641778237306146754163541182139278131445323872520873408443971808869713809418658427016976318735585780264480462184283805993894280264159260727558433916151474887494180417446266955457932027623363127592727784045880076285839103838404907792882966865747532437201323798187497988662907767628282990794603369136863365345000782070121614268190105413947092620641544543066786296313090258293297545086224083764179231713082695647530143449469332604172413921106770055715707334896001132617857347692694384277048495069278664073941464045096439526317883465878310420087488453911188756805852838026861522814486663439693950846576669468795880620393790350418201596376753541423333262733204436429755552376715807021981714866882926829593812214287357006486943808006964860216316512121348283232552221806502786816981848905594140356818594886319110773788619668012944348130425978981116012907226725601914615899940314039680608591212436994896112373617636190208754932435232304312730234539452413314660516142304746106028752949509573935117881826908970246041768060882346088632090423073656712390699826963481443884456219175125334259148249615965244088837724682302016095534383228611857030389071994374710668874777326852526234507870312781478775270310045157160327929348155162439625529154573166081732001801766818739257820370439125813019117789625177442399786272003428664477765232541839498327235248180674335979910596680642879353159014542173143422310305024384676155394607653640672422045782692848518238189180031715060888935367033091044783015224540640357335391644107643786265806850643816548782726553437662820387644411553732972719147502075492337196371573914979361340814284483608085836356664945778828570399047792643707029024484677581997627747646909269204200162282338746915525157891423375868748064761066842035056864589651356042945675861389533596596320694761990745912061227373571018749666324008758091626749287238469983263447175535347558783311709947224909970601480210146051575640507564885646929866875903439095351146992859489964525927634226736080949891671990924655206691169973966863785445264012208912423620424516311740344629360715688332799863591850049077626915615527684533187314297650122224425620777261578681679978501514352840667954297896905665238414593699480100405053644574182189493747968933176697791024277291091780318994954400455139611805483840363041704073692811131847874504625932504243739323235317098862259059841113007436673183790978561841671919020500618920318277276657295900915246453207082940873155790038434192321119197394286083287751047768163334007102674483524881499456657812842957738675086910987294585863207911313867767123555287642015180870020635853706661794036732236014351134011255665367789299295727553556509785640574496962933679907676514939131837466854780814062141869177270517720829696267793458044039296107934576833705613613802250337592495412334029740167892918107126830253543603525767258126780216687507288793991669505417805466712399680569378165079339305717000296405125661706864819509533992513013748176301570399144826195782660183793549633242121061222797026986943844627428460113171203869246757283588083627481888013061823813921567409743095625363308325260925938680671643292840890729589850871104995191687263727224581638156684550987415494441994520807782378790950415595269626512776093632432880497011986320963017835782855955319068581523998842174175280923079730548534527655028832046247310708551299739131239826640882350415909178793822690250552648696384274933252651294368633418872227625992962385468368317739920870022835634374084887218526866649327277946478183261825991313830895373877115789124071788217059775314350107113556524584345726662160279326990725538692883783077190154053196338869429500474554748841710210165351852452702203158131463679447313666119308367552396670796897371723216845879577946272438917632992695959463380486113792814646598468794822911408618553361026111828766950700166216798489805753541966700855049567520029159982326481518767448432726856048695153261522894030364981090299190071539180073690281891197828700972323618742867449117941773891227065378702019867567147485309903278066838207637618305795186647028067859904730073404638867334814302704073477459452095943581538273073049296233938569882842487082675997146850415340405091860371144027940256106389887657121261913222954142963922692353268536760163614044837615364369160748139061850394815162239232738825170801363179588132137278791458157941618791415261224030445813099256531630789767218467948191888062453866162379660427988274102812774143581388055700413716819591900787287641186100923146619293899716173707791982797096265059283886208603130051026407263140596390288866165024337341272538580973891242363033676703955809212586370602018412191301924619375334249283475222106851825129540198473824979647588974830854551442573805457806196107391568835739902745414178869074086912653526133146341944098093359656250777322785496132358883978089457828607542838136750916623445586021155474852565129625200912174502194603466035670576605962498783739973063907560739234158761075776926745704936308412412502892209935691407362725125696091571775139625570656170538752178150296790557102463533280120983323860176531162954576891477694876197917612649864306130907462754032122128640883042500325895478996945639935213876116113731853076536108558082023957897231533360777991509919856872273299812854587380723907127171998903984240566253896695051942417814877473843596138898512905666502424630567168538025502468654234572179998307660045278073285662933485630507485958102963166024340826626801762008668727353023280570719835896091228274340331659287384914982314638849669226767667151732950069345883374429065858453729532032257831239763259176074039542352829176832661549363500383661696691134652985545337790794575419211724112229167169756301019843784234328429214250321890494560030145011038031911016419681900809466013658363831333314415542605904745495179692441885192979069869095860163733535651890379409184085797145430074959537418008451173008532601793045928318038981542104332643153713996570830604589000151793182681679043156608862290247965087456230674834158068864001037937184164295953107397815356113119164898122898242157930131645355547310147430915542689137191595073779177464511678076522105393242423515524097737844278516416091108361573834575766440691427700388016383535191636456763481291816342994677511815524291222189789596749557358898876554618383365263827023051258756799218425801087639155001620284238241301165921019957537465856499191809785670740029574128267008094778690132054257056510282414619259380532330422499010611728782753085722791631075482173266330493914022565819171671336805809122468180905699383368462726412578107121251889967781398646653914809351095477337940274169278961535791424735826473353973828206065663265044013063366202423536943372033345362939096175176506470680422053294148832378035760808731229924791022944489092392344674335598458492129235344566525628822099391127971012909947573635593138082644984991379901763667768934764513626120876670787237015480649263603390682042648857092128581281573561333386397558674629785801534471422667397366149977069193434926326192425724155615778169935969068668175991670785870729758761188167467409835477898455773706270075183630218630388479891773479680846092724433818003171070876403397392096172843601771398321347102143995364827638718638912065167464377584820821247469418562923306620299063625632729276466596877278665876194688207456064449122004576247286993059949321594763352272246725005278665412337258157319391150640826845102016250976419488358550358921422733438712802821420805443719412583204433494920816283793071855804874555284906342999652842195948267869177907217551831195327229633468170067039560649575174755167916844866391247286897639402092936439169093702783512340563136988766024901617118333370580680294232261213520984565615957459683911621697662714415380689729351829736489728048400986237764705939593802171059414352148725839049554742388834016326321271647063796485500714120838159442268431863921169876033491111106177582352233746875370324371548905977819460051252862941468751630442823727634096391128387452744300161649780928328764283477686707926061753008951744624768782091034668801566605855467536483039806318677793869872722945071639249902509823935850771610210502808925433557745843894844299342358038221391200838752914412835794753721341542140333925402299824134478929945364831948987789087740825830286941170628568700724510309539812932670429768462345746331014013769588538588700982444089783056385942537055037170403241122218548635155135522061996145485283746407185178525822323546897174721565116266841602193769577620956425737508533592713376554103195570889789240410917788416122921404602696255527317836444084098828164057414627309035796099811075559283641205899473319703365531700585199326756016565062329536672705991995620093183916984107139327837984955024602036809130596302278391689942812561168914911842188452368060098437400567181242276638133298210741428435906040320953205421899191468702241650627298299692907989783074454399277033554709966301327227496966977823080264039182214054762286536969563355694391275765836455154387535309580799674809554785728507004709417609219495105683244313414390211495672497309274853829901646125021037406576881216042620466264839793396947361027218592254749233309461382580320965424635837369308424817950019269872743171983703604712158871122808300531072841967448481078586686639510573292134854784742063756776414907229662089439753256100355695194533887709787921382535758874815258372667844383941968575711288921981481685948968208125976027318069602540886965274368285532263305760013744390384981417930076568585275740774980752258875818742515226823547517400724516989400351298767874626485990107284384873304525680548168129937417032055113162049848753605964441930477861135328754872175802116079690442889454745516381710078909690947683142157023727186732263626171070875335186188442319181872013719196494615220847100289418839704796490622464810825107553135284520377715640611802675723780180613031810742365418718614171276668923156620759449808307392384485229372553827041237883631011235585571585779039268241055838457028514954081229094420372594559327016692629840854247624219786330768668429340687599710859976948594698123280258015101219438066191983661970157978377274666683606827886315088843521499221543920396933860279484792990392818882006313537291667107737736149494586020975675370169175268204638061605241553618201973636207462602511755652004053587921985723878992884440321715256401079511172374119638623344516755227319010694736277580499794377374612893076716249513781731154277128352301603226423038084565214318488071301768239772243238852179005932373996486290971158610548123863855197096386986356660084493051655317811346785049992518889455496952793144878391525449062912431067893280304292669021989633090912494274969836339994433732242996570463265274571538977713745836102826428250332001330732685931595096715865159973866796744318444890522645027123526435126118478666726431600937792530928606382879449775899880399708490876720946177611794203060303306150256961293890503483753752829935437729983890972380116631466068069300714323938160364430093288483977206539749458170617387760434181757512684623154453232091821730870086780506555864813496294657601113731562910493657804094605228146211319067759842717124629127791352320434582380828998067812217136455313792919364719982702601047886208633446650579265609746216452688175641708702112502513006604863691477830756383027548471556896690454676695631876509380359232336701542879073449177959255596655568754349332604732060798733632650216330826165968917816125730336658959956186159658923217793470602559581192456065125928089003013551712456808800771246296897001757442900073661801367958320881234138339096031490023204056361130912468810847255190901852111407395933255002374821195024415984988052205453300470751371726573190445662206683790599384613674724658622892681372268219958720890050185956456673955051179415620996987312865440732261122518468687550053362971594780707760761260698455479007407580286944562531282783587289548530793492313314713653518306704834954302345416927086893632391002953361524290062795686422099359828420948947062101258431017609561289969870836142669703413820989288127649774955238577700961109684930205168404128077835446736592594823397699413979052886100106953932366510496748660926981499474158873232729407888135192009922935800125369711590137348105486999225960133802085969898121068856544772137366582298297869427888409568383071335721612736202475238819224009153290443459142090974652018603841493053127680263263384096573934842228334736419713302022424895196107015080724666890358348851339565168707096299026766347263019453539163493904605468977765758815229187069294687015245001477427570179605054768726814064886619879043959161480410385865944756702424289110216289486882943385854205492498077881652997101414555927618860465222949151381186381952720546885384331324723778849678802202108219970779225400409026444367724006264449137637021318820017317452959750306625090796104052430993534093055374111988457146609407016770250852606320568042359788359671843860610859216313648782855352648617985937470389087681841260462749708284966342563729541466196250106227146887035273776269780288401943015486358883591751928465343793627227996231489484941107780419016073584018378159486881210280658374110624069539532124828526463816037365416531108803917728827085390179762339416102774355192008196553590927668065023149599628858979044171803606622459116396242807459983893458953874288443389424373151199982353943445472588115304395120753328777856992042504909448561402399653855273373274339009123949667520794749156790256306718993135343576253569513262243237907090680042229055379833269412130772522454584246413151160488433982598537396766868597962617852410100309238713162006801887917502869426316686934273946018901424794161420490388776668541582670822837363616767532377329895290026858384283637125823320475621748611902440047166070259494325785052532088606576224729955061462082046201555014097565496102968950468723845119419415978515529596150881385460153666537137229408046201180595922579030236966016924276795648340592602333883737787637088675340457303930601283292227851461167643779728732672683994752411792228248650293961650690834619392071993025565994447010709624651528933555517426233529795841504873086245550056616984047911670866570575513209955951105047654920104451884274786437776393644547308193520166799843082122175218014788744186888483453828421792391079271350070101196026290027648165395146315380773880420562021523579810028865050512587666956011435623997548477860724848930941214180786845698028876495290595113545138200005836676859251239361390192999327355092812958659724987773473843561140455493470802357332385069775024043406800030659395098618271955756486948933094599901192809691408953973129842431413584612173023841202768640763337675436025777143906564213912065461525309340516404887765769730112754426287119376633975550595062172482445828497519163671751697280193931582042167266575182816290108908852839106702707007743831993386831959343724405110842417000218949107817068944551426155996302701886791365752191678574220889640186099020739457798944595664780963750860344478910473511081721087610779370308389288964928365386800954172428967831840251792895682911414701647998368060926733012680242565841456723100315876999253171847614793319644440323787061189939204177371868825945712086461907637604098024370582034516572678545499788413235695045697791038251071048298956926341671939524514676860374686405952544067815124334443813647049886667256044816973913366918175307568254863672568507456747857466734237114838794290270538943401013915878479102349277161159510097167190389508680606708332701146602240621073681200506917602762244414665273741404892895441864393984411460236074760069330657556280384156041591118780067181593847524245158826111080236991490501568662991816949991768220636367151993593612891420094119435087923291522455277495668244232071278332542101903351056502786737907391839637650011662421838339935016871840296138195147590633269456511866119110736812738926829093356369189140171391595446142638810085825915066978702102993110484422691853712365628180156883067792541406209467557025940526313587478708578780386307279278620004653090030336322390832423998515838545655604349604559385023544778314438940145805636213463593049001555033125020100897114317319996201338236921445942858015689888086676567855719379952149543301050629870567969334049950992751540106402448595580811528189272046852727822871393549078100721973809347974738779301984003246069500523197054742593474352053753915398816262200148998845984493189955050457011644979537801985013861614931331415624707162550251257362584029705594076578642890029004358339875027873702302139602603158662149937310238882778651310994570845148532631884681632349206225093969624952565527896585535198959007817007824620459312784536199877794867735581094989204639454497470147729704252152471639687262261635772792385837899632810120541225247216083441658657228024662420541050827966861204307066993677709127115859474051279999719450718110864912796967662806022473452416766672894093121780603106272973504619090542290780742372266005109307516167168136490057990001403983785886548227603518171101632983571506684897129612929459881541604612929516492247417274643494578117958956389183525148581657835967775264173751538095245000333355871769354775487777860694367302158604112743240503650372945702697491521755721349993573403518513818570987606416269617728615091108162108919092768060583420186841915355729522587177993479834778257444933841415681649865568906939816986952732659468020368608298534640606726634306676822922698926243564974783822670306664539382974390548121249604853513859670399444357240010994137969097472738223893512898014336743047141742118390120063159478724045292019383267039105170928009504996362618146434405995504570990406866161005406653690468526938684081504835699769198472776764457683355722381615251938521799479675993298659326942832733714874540584003664176854303181033612885007624556300853461026604668474959091579620584571448697279863448574912204549180640203527571265528121222386151245266511060004205487583953910728215496403134867407178176147120637040262892677692749379097737684236069496732457552259931091696499002390303643476748537397180988767506594652223661671182895522163411952496577371996711517796505543448203430494535383765232702729824786028740450190705434956449362385288587033025528483763898497351200221530051906488571777429589540767024561252793133567461831227682679978415362905688341213290139348664905123320630190483410027817862380558764865226591569158967911650875930771565092648843574554499186170885491846531933591493006617271496351351818432562109611540885193311435388428424710697039648191365134934193307993644448982261675559474004116786706437426968650098344564001338290636436599052624143737341149450514939602434618654074407907075304327345063437403207263351369563068578411178143539079034696523769898082217362305013871833866375051258898213781757222613975132504462772878964463581902603642728931362330573796400878041830906388204526340643654572631707686883158452185463230777643756720955895097427033872530776560822846634598900175298725601030483547797360435824344267705558492010487073895226179797824096341965042309067861299293111629964711295004870202326227034323930609652538248156671445608601357724721795591589221366317995026421173953233347763151673988393376323863596570429474470771415766066603715501390840375046126531151954295464553598346686419843493291730970507326222819618622060876290671396261401474622728114494324745768391394503145715545308157884191238857156230027939810921768337265662069353785237040464920208381363485127117197358805684776561094797887858400995844527632265908862013649570392502865586751751557176959622337487457090383870154389895024330783641633328554662450030813084191928018125292596393854300822312232836072805613135864895409912281868003263977659788582131740880877605036645788870098674882041187968335484892118870570038751077187125097396370479248206021290723381022106210656255528822283818230823590618084074301250356788612876604984642030194837363939987444579755690542565504372021431330196702556463956209161763543729480909586738203270240126048717359724552391871566673937028285389115007382427888350511244091687454238717340812117491402034912933489436782965705898563077136449159192581246689824673147602248967406520482850936900484244617264399934476779261751743139255354909995878011517449196113780122012644094675536720657160627327099503371811733131596107518338314393678032508375123235266363684449960963656714739295829347370357878132144943369838911985943769502977941672885803265615316632937062357779336849829931849092354401034086897387222929810439038230635210602821715411792417562398164951025751097104759297032311852027613473336805432782760932500810625914579336036846736117228644808825701926167738840156162483542380869381620401318097011048400623844647861184949841772888731827516528544366743256843615170224020472351890983246599186866899499181826253510948991424284197011990862570841070186197477670021654003682429098900910418305358047200007784990598666389064536955043620594245680183484257950746513284375692573850967583656515714865060640150796816938703198301509607839024389309122464089302531857397054246987543213439471077663518010440319853162645303974063515904842389095419679443074570871605732854689579339974235431375690835200001549352072060718018554879139290123125706376493875960944897791616308201688268209182496324131252970116039914391183247867193297490505573209661829963182423570256772865472881914742155364321562123033585095461537566933466747734650888517109335435295475251931415419331053116257212505589633652148772493707966328336002798525204767143164893641685260688685565956955868195930652201844649755961345903158590746787488603293258292525581557721505677974682299658672078196908744327188740217070574799944208144530816549649280024391092382175273517944830456154430530860650157052314186238605625327253213297769274549467978055167731277245438294451158397589767205219242863103698024421063924242666879177104574350945922043795294579381340879828743481481313532111395129391018759522859123260677302002776355774480742502997376579084959677123930888322949870935570329817728329312597638687307983689199368080722070133873461695766852838281177621182387932311566985433910221779713500797577892462665229431769111650597365984745640480234162686288871494132628421671668705639995421724889154604698231608411164650943049266502774244913414641049940412357392870295006632974391174147921821859529473661643337516685342276178793251758583162384651083190404852670471773389919735169585628376180990497844807525532541102040705498928130174023174413430930445602171254531035196571381676827837865468628986897655993940237792323929741729147310274374141980326554700739463050735789158879584157215939396483924639453933888862256348824829535915521218787409562376010984917411076793425901480549083717279446710679343877184439170638132778840499953408043541570585949238175628849498540296038911081424070135371477327617295068707478493036344588138981406262497082656482515308224650457514143999914873735284665168789848962098280731841788121163653009569817289140719760045047720977036255881039917790913247311445216266589225108378322006416033987286758698093760412214911256423116390446436386814086477461930278072270538968425059678081334698594481407039281307854172073797853945956042839381117713465453973438056681835314638973724021550375746345168563958493257650854727371857729614476300666045467792027167163817908220847046468816640177123111354233145550216387803081363467990061268235445326363392298400604923969454722196219894399481885352462578759837766886238516760741732628343362440318634040741836962507832499879280150901835118774197661602794922252017851079920372807902566987920192001969655708702170589520972179493994378725495360112010433584857282576854766997783218480549150948305898419964224474351748336772742553740627056898656250046855583604286203363024698493044475519341586663041219322738438233651733016359173819494113903607663970554520618221269453334807441869734717997000520730545635049023516707054431239573052720574805603854162666940157246058816444059499569818440495898620567649905814282673579724331517494902027295042010906763265230897754843142145488340320536517451764523932110806790129616609779211313153394372767102984831774850494682642416441703919112930184509676490646159783928835446919206041978145807198641593916986749414953341765898520720238574485590048160689398376115572036282248418688128879795939886868348093516679933967258810179037360727545919642533618267356026822685533642850444603328411753968790935011156530547786283578301731309926745733942568734813537946849972860853891427558630458501973081822173712072493581691971099364654733874513209320838066808356257601134568769833008754229458508421726710624398634964737564328437066183762548297471122309680603997456564490088587106708441771081053703145625508459902511562583992084908876397500182183605793357218937551390354480822322067088499459539564014956170162014144229416635172738433731566187511504026723846505683751304857810126767400184163560761016079940787506969647198070254030207572678162613635397673154654421795416973321317282039096488221194846132353019655025888112593148950917438501289151286299914389294022497424514340273901043702460746254400642188952851101362752040290306353049363078392370180346931036750910086846971480356072419583172212601120654739282076125089578848204070367552319507761160896467659863290468019467444193849055123889826228284361133623016656201024675776407972031574317835675592364283698125025391580485235660597694624204468344929647295404166794748286226005163958552118820880887326906747494640259238243650498651469039586896594582222190233586814466505647903356028660428682074456669392386363126696480496985318927338683057329710116005217185683041230053408069938702670448469702665202601077746170934460081878780511220356246582505325951060543374561796487170849551526701890665387962450124054278330754075191410847837536169570536040777490077323395186221507411040803332095648482570744178606323788391258422391723892717051879524891300720541805832077146308600473181654031940654354285713526501980820181227273359420044052843916124028111717189459135735522117912017659654173952995381509987135695421582774116770449050902716346138083244725020352028616397707718418684068384561359695645856869497074058609840290033788902863958603889439231072824123839279590520757115706907408611803349147239729668668260345319454929298322187069842354841859727728893530863606166304618167430081827853961354434242150909470889260341368928320669175720488855939595443995284145419130509358740148538968699480632108431376258999283044235055561874205947016804750635317197923413721382656810296495111754927636541750234749789517935074725713288514899224340868615166709851606251251329852283056383247288035562696866383920735092211968091279868868038428004283872821902287758931064997790521715109745308504824478264135786264661070752135463213410631190826695431280695696590245795886158435839407201460563956817781311049094816363168173319547318075469474342697812711441289050556534629900805535221249065284450275914085509598975598135349878106799106802369028695580500728874041747647510467565467132308050094293881910270876359195178983156084762834075115061506667084672491608407221041458813081868572012267509119588218761555075100791728123290888397374895442077153658972992975631606759473413558731513780464107786508321811746749849020999870571339798345114728621845932732363658064387950098679145105781666961327702099167276281846017494657693736699128716356154567680833947467935687600080550063751314689097953409050232335801392503160695874432509382792832656483352490394236477585867193700663203685349239412221501069757474418839589713031362565784966350930647647257006279336576073811476162479503753497260560308791379716969029822090115398328946170700733919353881532154196180293040839334158933870018182194134096851373453846747544572129624991385193082864644092810143651290533681533128310565270816075022697483625951273959319425023315216214910434652680150387592783598758521019511957855806938711603090559406419773677002072309869980271982279669103334458519663084062249513820784912795373761607227901637893663317981855243305743102135185315002809784171193805381703633679959432057235645175730469263107763622082892427764949635312525397615200194948320289388583390506605489825316705046554394043778620891785817395236261245897513097987499862333797134549047395456504696523012659387314067221319713693348814497524720355718760350443553933994482022479300120734995559336345486239010949576788010722169120094724818505638461422220736187644691089502967408211204736410992835150352169106246340588663752529949321848470468740069391581103340927627325542385069581768584688228722557902566686655025151149115096122476733602213212716775538710748631463189835398287505960008293675216869452359156298451641264877168083796713550472372698380905390181652469984849459844194129956438033580198281569252866856686881792933967000300096549480378111308461928813180950274896998845081261378254707833211153223464585460099078231733706296698289209557745507770937619775223347187859445652430357356345920413526547580017438700107926973645522064501127544150005953278368690155779020047067894732947060990891335682817059189477489348121261764019248162165597131412340314656422685602231296358309580396809813292816843744835972284638843622418353058505018341760338042208814166540137194396010986944261133596905742223240348232427972513351228728733212164564188466936424181489945350021864442235391109596617503661104496595414000329226872184532835725731320432919131188353503905317788965592141870861948779373342286973380082621505660141291999446524741558227229125330578798440323930684760031040625013876921209058158713679807986763854503433466090702973485730489725599170925304946921730592819512697189188203318466969655150869166241585651724985564983256451290068627527415173500542207834556671829262607218064005212026703649830014138553132604203229526330290461088034459020531980784252195293387940183602722086611794459797975035831351508987661718610351986844543359484427601320197113258418320307559123155510533677158848518963496043579844648700579700305557680270491043295804628375868250314409788248107830111612144440217916348670618286732171960955851839100988798566374975132343167542762087343561188955513618382046791891975483073427942623735661310196514349034568933204997018972051911899679023501010293167543435601988240818500119510208716296256751682018000304213895098776215330557007017344869857512687311998040799996347894272333029854990299193748812774447475492835950713852922483643440854356576322931614953952930417314892083900493687843205279640943734032654016253660888347247048590613638501198680022403610671227119778075002433757030500267757595476325172060159216399325879216124932142834000609469974303832492922037055912840616895918725377615642180254847422357477851563384442999165604919970792799377938487990163137572283474350959719072572035600392016781268878039673169639004553026260882098054875577718555579061428961716838134974211231140735779192196834254156283479400688376814755219897004555751436197721648674832900381066335452925927379681872846409655978377828202558483188427717421273403675791861340220668809025330747943050238304158583784367766781244961614720931536130567552170421184853832097966332765943154407906608955847123798628931200896484707585003033288117880906605799401291321550545513680516927438734861924845528605308155346218459639473144516186819259063601384138855248500573736038085047443033083760932401009463971043775812311916293562456650822097560488205163909126864582314682107605267815485447953063298837215290881962460887427232906883424034574525773029449821117628605389016971932363514214313806629768190043413491047490611733159339745435563340451592974421492392289439636167527126432255566967468540282941685578023837857297020466770448411473659117473851120608966246142681715822726003356335151141745070440921759984257380452423759974013760089020631612152538316860747498252872785808353071876467731072096683052712469218879986266153224915632720712246782254742272806644483101809348687661966877054795812630021174913440914711002514930580246809765153995986107501445471208657305250857062492303311653058881835271225110501236781602318806412828818756738110481683693432212953920562261028723872399090098385626038634878048589654101305730832735446415305975572665127459396364805379790470984357982789688089041717871367884747175112352516098551138716489708455500430653485455122616519300043260205431435331620624407481328130751670355444310113018959839066030408861114523335426762623918301683526417265109652531948585995060260953782308549198616820954445396932964326113179388817017897597748040765305108892352097998575270431092466977103789130443868478778565282301282385542658581560498807482853293340819470878689355000405576203699978516828588674850342924967317153830476129914800329532739660517324183094001478436656921064201587814795883653172315730738793057644833192144248683113477359577781336926487667228891067795151212309061557923810822116422659147035097131770812937634629031756087779840068044165096299631292863909832878273449128374183316968735284421526353352834701472276591378613767862556739984039033675041843581005079919869321023665685104289659967228320339016130495397126722333686733196645247498043013217191909535888069564747828945750126743791661894988085548590825112587649495958133878135355569449498142180524292257784630731633092178905281237606660516962264588745984673873978891651617144700311237196800942604391172344908872761687175728308800171554768444396251102711387012671578569326702736318653654109924063044677694432152812793618716229892876790767737045235635183282103692704813415818334010657457302583484329357248372501148277574113955622470568537173745233480691250173849184386203896359741325768877397716564087935510332818015664715998169797709317794493502630067154006301878242903370670158081131353500639640866650107611138883246937547803319205608780907205902020973151068188888117684129062564713833394799670293673463152223565647959354920180158835967915348199725011518884964984271814608697355639280003461283858268272761869685827165218004608068951243465070623599894494407649837707007634445452974567108766354857266709302716219839324289764674673466621711650350057419638573178528542915980258939013207565536247270680113025896239717579296039085204206944887625592216163426753095117488689593935910746862391139308116455199396853014067590923909551029261382129112974172451556960189278168826976755001715846991517422352156460057997327763397929441732824479927171307234603057749160348975289105818126219927873813414887104768270493229301676921946719216266650454854870395205277642947400611989400502445714823577535211494672021355150329355051683924495697241623740394235860697159195321416897244402925574628997166834831433112938789306249505723664788837168534314904851864449692501447869660151532652776788327711270557381524077643866255753599851608929896352360303194429743614666648388661357192827458215135960887621405044052050737025260199882397057490038377702410484526029493203958214948981479790984504334697245741227085429183040352194780121704240111180821832930808980777875161955482382579347188648970832796363624196666478383840348536534344688430725604034942113963655941152948525101072186888954731141492695370892166602436270785638794399602013234626677241129915649313438328794541763733705779528859659481438389533226229887255970231305001659526278824224442695862110797652516632690796135885299774516837076995005163591739233464635640352117796423259048586592482216675315715117927477927170878364138826700662585267441605841849823955545934871301682119659763101560863957051067910097988264198206134219571201786974577234932787769979190228930224212091014393237458664571515445205553245332193663146117282720198671672507034286185356655982997214535498796642052563328980429786140592500349845395135956558136535501784660490441604255826862285315475839239706363613623203969880804443503606201162612022935459017734112645714064869641147804520629491062686926856097838180369847743106679823872648298408890443337778279839693709733511903830274669575246049755607952075320658088994574949907410641362939450263004335106593272969664264155417085237049750926323568158651649844279411040195246375994461476320162957745951113713321602674355306819075488782934201328873651004409297787167444535406711632777718820528370491553340476801150334121923895085759783033457718721766176917997340493212197172442140281812188202032611704664852111671269391947029240302298385086995686153539112029309329042392128816665275008339388762726263950818280453434653746485193152779571459875758797747043256270042884622934182072178307490872499120477778180035363305086329099501579390483965483740853961479379142287387587063686203016411592446569384774561904454651700365853069131420932605841567525497291025357851187917075994682433100973840491394036926758142663249076449148353957933451790341897037338097685610439232962027912305456957600040082882543651898642953312577390146046167299967361081763666245291043904698473831495053158930694056763661535343602657801602880981007583772513731618105545363761675407340255200381937396571000861930941297748929332743584319240199937605272528047491744443659716639696094899286906335644533604188759650741081738082729794527706319728801382465111716495488360910114023808423353666233352172198555233521646316282838813115768486873411862425946792011789503345378803972960139206825788139137405558911846140104316296626074805531772249856585477244915174419840067740631534497825691407225486419259396865838228547731283875596343495035689848921710064847915460479004149942345689436701720321498989177606376490116362510184090467901455447898891150836279226693874832225983811264744757717520810219012643875364763199620109530200323185305903942381539622614068448902819624449157711472240704679268135297554639824683623046614011339625640663891971706848854995146717683968239489538232361578823022895564113482187887281548500497475012328412298090008872407105080006431481808042913323960933746703276356259797819216313314081827002897223571750277771623554435052662333112979799141231058613418903714221708911190713073231982651262293946546081236127997030468297954594141314415994386629278521325405287413316877882814440534938141445722257435211066846631011038010196711995939390550496156210716562380938259206783316767504780074535926903161186638883350392283261159115672907027734203762069753810109243435976693245517814487481091243024365226081003305303396855420238068043151581363289437346734519775279721239396380683141245270188442213117766266877529770045032243015971479016803738365125142221148680601110123758669348116328847317830202100975524181550119578269946264837653267828839056688355834903512193262677800910280341987599548270583306223144576017937463655766812036823320225127439718205280133420407159005917242546755180323976756011827293859559976935717375788242220566416063207940724647980735125445990957427057656116481355425136271255645793306449293422136393477021854329116778617933349121563118118143781266321590749015969867080556362038355026457803621212541762070842151766925358086625925738842198921159935305538142236388340560179328199496105477544403879816797773121430915267608270744137107591589151182155711080964192503400933953371217504916527878341075755382760022437970861043732248294381022658290431145953967040191681169812007902064502711167203623994365902666661850252882369823418380946679556975760515453319906927879640540651604132439657868959545846030496059654855042051340434019874665273200742515592092257111341070748890145943593801299702957421665960257909751068640429376592880706891113688650910335220882305742974284578788799163594918273943140712212315966999824817679001453298368886709770274329630635074696396558316307640297583483446329493536168789260871840742311201190384602625737463192752695737896772446831582870399690660934327812722087754385704227570375814091370253939549857642316729111459534043809007155433898078365665938183707138270069591139674028942853397485897719226116639442637622859573553357245749836773065465571512373178530676162772412170515182130837418039724788609916377034450932050943736884736860682943018000320116763554018762530826626026903271041206926592400536855032491209460011128630249042710803324996693284771551388871716082635125068953273109296575957274431949959729573892737050960517792311588861900398484561070448014041876191416990051042065149089364595162429341233020155738155429178060523549975869745980554584169699339133161384209049799740806327254861144349678270882560696694986885476016897023898432446941091831324145090850087387594637433784019599422163621991071660287113425919527010377767378029631741445938650915320453912144378661725019821259242903378691042393682842151923259015475186531696748829446821590665554807990391022720620655343880441071848760711030305291467631053195975930976635236622459437179195708570367663209745979477501975156395985285563213596232132065457110827758773647989098965117173981928592780418957341293269148612087030100783336854601944518494691638468803295494708619587777757242704739464391289798053988382624260668792791115281636688122247893315291505435191792558161331991422092111160286054263134682254262461254291199432796519335440429899259980176956317890587765460779926048255042176125973717115982521813147455953123891324445960020381769813529147033971930146649987595018011413575733295856137307895022387275109072586692003218575234959534667413174805569621844714200037176778084013243974321767682570558942842514448746612776668464540418330065642558071990657036567595511154170395925156818993015959936327686232207651638850530512231923710608015022676678299533237645391450611433703405809722252366536389492165704576474425982207989065585136066186824977696618137991667384371137107670999263324231914462535122789452036761384170473224748796179599522603103489089951093890603120837283502975716998573285361783618006767396207603722476894224423997653963413598337685395600544766741179222590098861178631089215125420935208485960107838356338540762883454515068559210984245174043484915530736471500938293781855824461117385648174519108964843566579572982600319452423989100999473002200651243369254162094086321908477378607275572414960739207411860434995028403153747710537206923236587721214736316491293153514411331595375829907686295360651079534867580329724316812426659857330517045813345520522998497889828354872076866035273285508743484676488821522163536609787762390619880219294328981493893900650642759580991191826755389865087657254255501913597935582923271669927022478278446313052351318963089226984198265940863156362654803743742043785011489419089938210058403625785346770939732653459940733290841903407091976546979236573572571844024181162195752550999379761509307632633977693355686843131950154966987798946758004326382830503817549008408863696865976498566406759127765037089029277628030954503818334910156055495334456617706766227562566284455016821309954920842394223862284924268476017097572967602109446106717645935804565458980847903714288555253605053981567946132257279245697889706552899732571783001161912341507596184581226265844430172270050596364206161454553411505237665326807108527298842648249559804302038893123898097771421216642430717433786395970434605793351030733275509017039624391758951918281545464839521644012016842535098003794491465024793948549851117159198977251303942709055272487904096899742354116818949441747370617712693257324689681781749701236212935232096265796594028828391433490966725459483480793470812621269917142008954796353064619011936945070379610986804814893087956515465529978297549348680439818943193206258291629951919800750198313017198832347494359456811421066443840852737192668056513893232777415175970490367135338864192623867025305774181471313829163933987156233400641133257346643369931095088892830772376243924765493516735457049471774246218034203475746620706252697690539807909268191062694953318873574113625692146261962954335833636710908436724184125489523090313153447155604355645110806024142119748270552855112933331031019205173529255239233626708166324237788189693739993830725679561088847230668701192641410549951715690055908529845787750947473969673078840917347320053101446537806574621490275361840128824203073141670933952520750205223985878591894145786321684819537616472436714142030268755471116972905789658515560349227248098616556136436327585414692890475548134652512844316187511825529072752572820682106064498657922125924683227535099390837101952347660335358584955785744638887990161291738042494952066831478426123297714562947069613833175763196515391675005839544389681453819382007688276091730538924120213364703892086921411335429436837228389149874145759679782766463062222930487890216825408435744721856700137889632529825467794827359358409515019312222850139307084118730576373805867612519548296566502464515402404984604173674801637794395551388897538961032589649805638603914154004273583906676570641522051125672106284408625002042711412010745181504705275950973579908624446725220771868967678839227639988993585844918306811614287850590629922256885131064176412102403685241115846848684940446308733808651516224013600862196025100202608243048428737653626330647954789780490847014817929467011599974011007436570621447665390873118687250296902728202931645982253036479655611212926177916357645473761793219955418368700311005971568530968206455972140254971761357905734679507732067231711523219722081679076627656439818807515736349837007477364933586721990611110915953080963798381843972397656714510692488240252674745904387806869772993545852444396472737870787852818216956038677765592153741221912293922431308698240475991173064180235081753239505322877323985449718462419405548335721136016784733103681834030516557894791348656574108908629172968712815664102989774707103764063419471422226864512813522983978872583224814481646410130727999599399507372755293549588883772491351206456358900398432189892570158354757442417401446568885207693373819742663486424477226149923673962087186338534583906201156857089522915440611736064274767339382268484352616324731217583546768624998002887646839957396395113164417295159130300743072089878041933673391104656294874583802355562645372081107843831025017883157844945060856077530391795131384786889324343928861610714029323825220958170129296179599930828670390699412246223424535072519459732068359119740289922286763939202860077581987609829963499508169019048026767569670816115540655364667902712578952011240705021859259083049033384472397757493358693457549815552496896860838694402063335263122888332194537835607322262883919352418929080555420293311406876051603735020523173221158872190400224766203958304708368909388180813922673273547175402569546391618251493966002077565538854499431502487810772129023661136635959062542002943598180495141234301010032774776375510840561175512494123977860217763431155949155702796108721101638199205458206349548612382947497064538043885231950250506551046087984601690370596366031724748688944725715335776425481452770972087272545140492459648288309460610188020765578739288519971455066896213558284232421850877549445371113612860781356251275687928639237809205686683646260532155375670732536562521901043012575796417175378338373870059216408924798160036388525539982310183408343849747152733203840657230200952690678540258821246835621825409959193461238114645948797645602794280284497292576221652984505675632380712942693240846664013344130343681286301972372605240827366538025524131338738866041975977292752538797822306356749733200298612651366154747346479738939604078189337977576481597942796112162409524335059089832940236003968137841380417541067578481928055460006449697330926101535010039245009535874573281344071583635778831104038147006017571583432410942403090315081732549137532154076707180871359327974264872698049707432959315052939842408891386624248388212213891737483833000720172899367942139863980929482897773830466401132140317471932764888085995548448097807451972324781064235480392580956983648631350904032179735310136237670385648576189768582822597016939072711281021593254222720733636282633206771221330013188775783847982289765295540983942661962575457875381385635514113402902056549546191572475442676159056916099115251803800741087151294085151030385385821012207314403084078575656825870922244325011035462106761101070536268327457814024415322616024256719274521331668557685606769388749281008600423583731088054152829258613562745165189922208932395156499130570471140867248931953378022870607621081968248465873570604156269524007092129079878589552420229986806705661388671661345932731322167546429808078981067504529598386977425372186612630888313165069087809097482226721947712531642392009678842892885181948434204319589670422784859455818700407302646194995343792174066155190743709692626656143105832910035427675074735344355934428071111757369943136658160501482441616309030076205244166585343475534627381609010974524498388343915279474002799590486416200271853179852199988150212346140386839682252031541479647364980218460579435082586607298201573868710183089944203959240435263058646475059769145573913928530731289254434209083508972078307473555593002831614628805848559450082509816478906864075706226596553916116977849365314179985188814165477057520798470717759776996061681676514904281890932977685115792963178047884557151804097856731233483128655996481774125168198602740310088900147934679482547056444269123460280529361064095876516582454327796132878875713242575488350699867043130766480068119802251830741647740393008953655604608481023981078689433824116903215057210663872514068828235731542543922147163784783016093082487888275813108024058850655652548631042562298105205637806919226395025762987502399255105145906383627340453026433961461650845245691245372865794321122340509857671166502615402034276887060973643125663987056501231955691187988903418890505254699119839359328929434620357582944216842559819767032980910933913904291818285550439179676174129856208374891130207526170418700922635939543257045234772805286113766933901572143077904833499234995780572051597726894608046594484170622533554808653005682357494612186921445926931241985007043299949787140749236229130413896278762837707844384937816307401800433435445639075377278716981737002487941185323397050696091967772303053005507137714581931082865687497665793267955459789409508612540455960565112835343649442909947464595621751160545662195556826872396633649347108149634897751605922631169729656561334264528885624517083401797904248061837401817127852515269954718019882024750426525605386556836191036645481338502834710109559472028207656628609614712888951030556078894909803240587267951292864670797559874764236286393317177356426286326227102040010879476260713385396125109617153028252132900152857373783159425280597508189060889756902898749924968641983576735090795028106651666063774208584339202156281570371400076898318098665375506280247429975536173918853160344322849836910960948822560703018000735131589251723934456510531297502863921708388827493692238391511616632712202267050440929364664222612980382529500617717339022557488146695451682655844939407285483169585416380413540181152244895188125839753488253522833928732492338145259346836334015198817609368847589162907916805887295225992638133562512819864796538905072830729076032012313597925484274947900415295010431474021096402316072787522770150714827573849565776625295073670100550234638793608779791836861307360441847611757734909383213022434393783574113512000650561420471100211019132711947617614469941897974132024533181043758419287111341908222266865630260832438927065611061385897938556003919104935773905872974745342408437430528375926133377990928617980825705572355747532094709418765743122293973443649541174368874132154020502763937385228451949929077429865970861852972278173323385246909683414105197350971515760152898278190085220039118743979065090230490375069677638155508403827108238392864575166906122575648269013821163659240362869026230041598277881295279460229179340550547018704020531145835448056912387643983285328797635554901798000112892000750613825854211132542030122796050829726586911488885773615842254154841375567253539563491623056406836141227129844765264220053182772543469333190252346315050011902047414478533800785637425833696650337054183081224968231187363294086784382852957493062544480983415300605265610128795874086105823245511332086325316989614870164380722125460282662526356942004960239714676733959431409572472097831289827628963794789708510739010338053631412920816369469228625733491572663912761522983587861007248823990455440576656258640327128802061679190477987595559197526753511130178067098031611793142324413331498232043421337557375218125660382620473590018595029492645188973591078218706438622189891723138466827173916870710054940346294321363572904259860027603794921939216454754082945922873887918883607765804622179672529701767439236912830499589964895293535876496321297327007224458167453952917630712619349249196884197695137590879514102600241831611583562256121817419583513680134275145298783373263727441752820357214977615275541798699358342827826228021090688707788722909155170058323808198307691192143594740653082773835859977808527600485341302504479537115182783864723595747830395327684985571613191838724933504114942964300700005734356716710342430453626516421403013326754051772317967754613622735133898032617941065292182425301599711196673319786515439291709325626291676531965341576937039390336090712139432171478965204178109419002020050843842448423093987767322647922255247785928536972429095989751905533525489987415970832678390307387995624832965901548993586842570300157394047349049901232299825229863150952637095106307155532896005095505047949371601439289085133431396568110764828397883960759312025456021601975802701939548509997320197040777150695483044882070343818287428353869697656421409389547207656465083589266453353925930953511846080309829683347622633051220860429468436503617960550687646835712725965243366663517303713154175801195049527483273498831600140015435403901007301594420385205078509740024770365650535610760981347598655147946994868166342873072101155501494648571687747797557679997303680657170676982218135712814631319861221100278573129445690917907979603269819212281008923531213672965138501382887558777468787295728098452736322862471720077809760557087337384521961043545788344499954774626195067526827269118763097813428002493131365094102480126648774567467108158643798737670185960050319748174799832067923308179115436259289509628614525675717163101110225489532211724452792723475781586403650248665973861458179142480453078384026781855560546606813197505519685195100504347767860630527126392803437543272663684935084711179845488582146200366646928021659717241045846356249339041477904558912931421644187345102569737345065119696756892444602118864459864403241233046730086157307927868671258200090324596037723746299779677545660062313827964375005867403796177690701623812445535718307322279636352232797099007948648334538446274289614451778834083667721715461998203230780939451575706025738474986807370737056048878790887276153290172280787096872147573034744185883091644944032203632413510739263707402691742946965747946427196544969659454431694171490332966333064852919660621147148282469858074863831408510091527160080058994243542540349965414122590487939247273811880818313801837341454332232159271471351391310478173873044798413428091133757644304397033031112353978190792453587094344598462344086783486502379926966484231682562700998993520856328125770805534016511981265906459222945942172875051647615775326720566786582237273238013704607663187855949052259586214447852825512275900979278373970047904552374981249326313285060262506189916674078174236801635793273327044568537646922203050402770403363448391025760094530882757317175445804536715829987436878857324308725921397499590957076393497055495796317995234278187842798354867054984910597955611947072535057726854044826465815567250258445695886718973186399716529172836417486421644434549465475542902953052138853222558685282788479867934906735056608357058643868077052516188077801909615138132411579465773850476549737237464295745874702688788065117381531575774513933739693962292205025829281562282122492865783418672806172863928987550092377487705333124592196440684831656303349060070980641079206710002233016254591849212438121055091806753671537007385888455825662542758310016874872211751506723099264870975391980336658505075209297252649453117460927447672706150308000297115022970417479543544198551327293163343168655924058761062992387864733513980404629787118395721975259542382293161773731531151411339831387079763728813118151372156282651080155578509552786276823807915192176072020801323819098824411239763760962473312729338155514787847585801783996032693457914663861549056713294107132332106048418541498538987668542134140054615432504698695300389406367431721600316205081246846632682828685283577350323676386994331805915936689195031789542885699451723445194292383657810701042364679599429254102200394365232037899016044426174847761411077766419264493972236219046379682945370878631241983891591710634584665004235337440101409423964951352017644679730970290672504340676015702771838478332192847410375069835324003537711734285562795007562150097102309872355702871907903996333506663903347769847125511441051062109327008062812921577272551119189979235468626938893788811990664633721544294414943592882468647508229154598589831190822458678835168551575332766244833917007902978210730146996642660074756683174146481362035520343565538200496253775718848682830040250796689390730253473141836417559711686487701296434580157394879428705061276587870276079891579295888036674120502634080949933562683915965040667489252984915010725098218963607823321613994092231404335700135556535994944018389304164342412036907194009261574907596217290568466158425704695169022158958227535981957636949758629250797176679144091924320164400688415576166907262282635693175445639896430986528770772474109382066818314908912894987210823793409423135071154827192033485353155804550612003839513651008570730426483475092369022697485174603246949907095613942254484340820546098586334968961570809310367104216363584209327928273001907350649070744590546257645809594442038741245440813529808765956015294939327735752744401270437571592810918378870005026948588662616120454095322946846646090286233739399527208911670427355288375625680189547458105540404072788685053712064503766012938955141043528613402561399955877524573803120106026828503715190764481376602130528639677907830834729320589271675156473241233341150800098166875659477694104272472936254365014226799200681493937106094109691030612547837173130841989656220895999723801130364029401333891451887106474003391609902385807522829422292346389803189709855858395600938393772881911422621615279353820852588316519857467019871698697073055416384711405221003475094085582665303391919619568879835676777490395350160343358521850692126844775388081843553747578127381391416582404882697765495616066858837246163073815479662489256784742698349081689449840405638906587059931999993660120557537269921011355951907734435499194558033002963775706178192816364607474166153870231479283533326512715553414571517463659920790486853402883163819155128542080598732283435203952668352436274600192151287707585683663002352250562006894932083970925806337792930994992866124234052513925951673186210484777475986427505838927723539615817080634844867087238728370051842711703045579043388697506003587925986777471494193501220654496313172159564949262111141915527080737823610812650681454796414778216037779361490493244137647620330757496148216261989318490485580535894214881999598220829243594485471852808640078666373659310266819533777706906013365236879706182054563787018170464438288738765380735553180831988486515230270672472700987168263026218891411516334889555007201622351142585503445042914839100403874794702974621294617268393081473239666600825566237242400450245319862250778873192813886645294475120376649425020629207095498766592270085301075749120198280395009148850428015621411467151318793717367456449096028856270047944421491974379758276475256741397322741351476697548581186143807813008264777034298045161033824029491541444151516554486180759433104272811785547614967470440639472902713650169836307747786729619205051069774790183405573283603874144876481572386225888691359964138733454160870688471777514186735822106546248516737268281786319548330269140161915889033840984172922862475142276507263658156264299073993933724956823209567196210182786521435311554687325293854016618170750415346149642955021666463064985209387940388145290902351715305730872246727152073006313857513582296002976143959939268194026551465495978450633608472268390993134310548488621698763192738102155317996778033049441536749059314238574228178972892689298451606307523284716359531379003351565996834430723208375342589204676310588695591691173933529776775549717642343675367473891554720867612993719088640041571952546817681024385081551867780790419975304630558464618750082337113404793329242314365306099674462019881604760358195011725785841936228605649901459002744643096536833267180954624997090092273033203654939174524658663968925985278790173884366297597069799549856084470300192564030123966392288431842549171120881456414759884585054404947658076971674834569623377048507970370130891492760880589221306907702676745937799532886800315081244518393432571082161048490861499015979242136571667690192462071947548971057202097256672964783614611777099369501425836007765478936537348777613230549207155840576291356997301054126317045105295603995218490051057626519093887997010222370484614979027657250449127276999266708579829391320669877893473022543935639465769762606448942107203276337498300179633520092723431329094900664062457705485985926708784113597442104509466502913353831509585318052172700356909009634714640822366927288932423322410573922681379373339684767710378040570728215110239093275425641666288354085288739823797065750426957776179157391184258280182984279800703757586624263657927955328433177652393442268349894233019506322883594695821796343568238446299032174096550276072623270888922365536180370611124212798575220898695234796734624696011506849567992242276120704883525533837112596713842026713419902775034971250568900383029439615247790318800491767955771023899086870432700686046059860551573750567708068315805732899225776037333449251164166605311763834735933214083402155876208798505351173039102374248179048092780745284697176810549622377244380782341663291737400316933751872769009638592663136511657685259832374211863238210648647959082595062262631899150381818061052193878572302948133106656809004588916094202174414574551664931402953389612410664547342125780495736475973954481495668253128725229955666241932094087482733154008386670031593542784331471228275057911345014155162952118866668918087240643051881985006168248836442065302440495675016770995255955384686045197157321706813284132195904529158979558771529702572480193276240550229423043127037554507282148837355017321968986365072461893556165973357765242424871593391477163634952243279178086892791177729836393291797059533664084088316249333604783324930937538291634051028518300035087798727227452520405779854158949634454674087927243447873560581078735582395167124463298190456046494908135487571514754057052837426789082087959077515257891581657559750560571125501850121926024630569511002426521617752042980344854587104667189620870878863906589675012509142210800329408238885100687221891383110620046024888935725763374776126774096597961685525185107362763562090267415150902080083104034472553008571725882437668565540814681122214650687159910125052028692118135899254052876949272775396183695350646903305101617568109799625118719018717733910196592119477477832573908004159332824594814013845149243546604335920315183170618520227138913011872187730652742335299237201077126115867099607499684108288168581608804683395374768622747737121245391898175276802151417055652312119202830875407841359966364167659545207217188170791907314879050070032076205727354437901153445268799009245484240287436216887004771345771382783756917744661014905674129760538620184325422926124983361841597532487348276880608523949969585005121061882950810715650508310846250889463439281645353590086669869382638918263086488434717552346763987302207460156937571792816674359557918010965116566832764187457853549056532214329502053090592781172321858189108301206907402887962555831276667038869920870569481463083500107380379908807484294998903992052919649481526937120778567738573394927274153834667390906101114952638754683946871159238264064676142802153376037216510275355687367145287074571662728042700871249863077289975201312285273553877110952918976869130921515616316028971290329306072496107613829387215874827931821983630182579952606906825984492342463038119001895829433301450369503520290461076687402089471958422832340973433976497699460345237939394420558276303104499795908634871631284297941554277868540372756179082470421496936721714150505257900856678553307781408232858454807212841173035370877628336596489160263475532786663663937979500311103792754663661216939452502193097304212705320320463399956612402550187815612107951091274159593126090133402718062291721148861787480261262184412623918738125690995577274725784052176309787812444353238531286947969453942137952689310722387037263673098238793436538427156594759936861603286258458048652323628973825455373966363263868786833522880511686888188321779411444261659387691212106712028781071509000130729070748367003566245295260803674138444966016544240393878378325851548640833059047056170453776396770499245424302805510194021161179801929329529389209820763968953675129336948797259841313437978195716995081284951714697555820899871903743410210548067832466261716187534333961666709235045924054936661122588869885917405236279596694147895207508258801075773287115747938306778385615187418130610114619838822173750431033062308124871140656289868618996002256771030916781765777277286824127484196183563385902744812650331462339116507264486784493400499919368435085828214825660025106534100433402662765734881384243625859250974484967386326005845262351602139750170820932643280891148787473480358777664245960485095717925343374006056310536762138497002056877704725607927569154853942932500204274000020895542638389126350389128827739313471689092711154839623237485841176174177268456243899374788982293784211304001531742900886654607997222887015510449969049371410532366242815563941004774401267156286035774781544275349386966045085039463863056411719832142992905603055537170360742908783445987751993599705583731715038470062038085289921779760432202869351469654453913643769598700092230446661413721348857492015187462935094978196878692372279024151530330132138586076182089922607791735423197726285713708641229974167257983328955845206708549305119571515390234749503275842981648254467456989626219040063829470953387371711774365087773033138560414639218878698806977576939505357660975309225771615538586272795013409789341005713142824312297233621127305611017515383687561603104244948856991781678833419707577013626632917186855076295186430804455555132690237684824951385564550441821857170265651993080470159778998582082215956851300817035998612182900617801114600388637969785579041297655351149828954006492186478484654571911552823632409517766900122763992402469755934523625088225730259989343138680888643777624719785265233473054152776892778870098399936100764843960966533817485544773657390590792104415500856450936926716380828882576612462851478308544662161462385554722549830130284133013798071991436392539204484850853610431837031485876256827105998004704643982939766466789161579840405420001512692910253636879534093357955817809753187536847072883613721927330460040905675679155936300843428195088200532015565610041417342819191130933026897991461165266000322193185826375330804975591278970672641276392176419225486670543011232571744524004350661413711556169147768301250121736182663161166389233378503000026591806648463383437339156261406963170888125856389476418563663569642656154862069873443072310114642705393907243773244105831876306534602354206773497215916368668711771096500261929096962023146838371419850160131760800274698118900202796328953530296590820971930678199416132945816879227518616703097846708953971887191698798860693326914640246903386743037040284944088006744083416458661999835511065693543528543488536449280306716519479746575945901960097287719031517491411049441372436745853982888512476924157713289131588271132496276924398101587689951336565359887048214932308986229321586601415360888368513463376575959074176021847932866772607867710967997972120845308729065381456609355673727808573464838212952509175995358897651233462024826736534797938485997651318741404452716113246679331687717635706398864633789150339373246967187447781618986089650678514240243511205942618946298172841485808500133397380471284402420069385954765181670317305333210161663925361043079327537196879275978448143366389798815742307156690975379130922979301855740837997342415667428021297870906616383409150435933992204271499200875352184084461551859245067404275050758694502583740655097556143694784023201052985323352362260221861670229217181761727694976299210467512025046780624102367625072759093647142599162873721996650428117977587286141810988420939958562260243788471675214641628687983037083467229410237023671162474514916471172585676846268655190858054925173587366949631687771636459121923226022373821527937631458312111770457530476380107900532523120168901913814838947073669052186113869346186251629416206417698150213799757208569034230694429544371203603823096889815015255892964378601262557246858415879114785789476114936497907709734420156609845804563113465680865216853951118950317497491291428614679299000702854424225871772927220712914085085282181256300361351288120700740723349457328479849950860438311645599475574815493316973185245992536606341293725728733485692816680451203826392134520785628760786277550300521085308909180625162574663562057644275438684575315513230460679141695319324878912221291779673985391931952137759497527242007202523285277260036704181801269854257173846081763315337587141601451778058625472745572851591481510081079903046804223797733534097818600708583700718926337805847681144136753024827734675170149817108470348080266858923439876287115579084525230844947818476986891216848654067528294259813265731512238560254411212159647727051140544461103165297140075195394208891017880088232064117869481277681483489135909567571753503094443262013711663323311185708530832625161178014551118012917341660437386000589982227288454651774397005038392317651954334390483565391649546230273603977264289702743240521263722619447829706666686129802658569260400330527032058380666349775600134281641407820861921489659911485481465275885079298591931772918318971156615414822518244332625363986250436107558159870738390267422804913662774081167919712572345344057211554178387146870662328781650073789390164469402859249345229051806295361381384738661995598228832486751879186398630933120009813978532439720705109428314945865899144043625525340860172039921537954422925189653372371579604062715186412691022300388773567475925967247285784208348920845374163046004718816732032763496940836846286311450214796573541230698831913593347312597519999382976171799881611381354342986403730186054255370192919892003800678393722854853741649735655512473179778062347227731893075129352119516926613684202797220590486026733441773394791975245942749880585459251284736723487911738352768455956977202154247533984672931492583335398765929851862593190252753685560880959625378522171141294243188177652087213488249928204938611326657542425041300747544811878273463761166606507312346645662861129909766353862751443416052452472421597310596113106286072290346102144424614722030240154520927585354635597759066696341346991003256215180478736368242411359076233418705340775136664240011737198843131411783647801347362464040348533653983447335911348192174932277216955793338298600213890859104642336568113634319177961597481984385876617594884418754845868317823863142619493508022811196052132348851203290459750870593069514496337076058395843644681687552446460630290368406622275931826196710234889565438797175880765076315316852321526862493604333689627509847752357213259986778784097001048730675915712048086114569193385814356660653834391225297411805647673278842908900491591690956004337538242942764132278530706157599975779570976638011447704473905119297086029834575434196092322932965176831901570073571049413137949922938449716771505030351204970995051435383389808796556018249292517109640159719403154551102201860396110631108431459969358906608489543464460185603475768103657531663340561010022453022956997476629010582493258467057317459405035855589853801853828531520393781201346320973609490938185349684854476904401139181444833878845540141471361526528543446834774589694631041965301888270141224509204887965194592079108400900551628103170888919055984315602972990451407650339269313912355070786647908898481156213481047435969558683134772444549930895656934294998043715696213950210754856101426214315706400156615689466609978444990174198460350662481532450786933735812558406999081075562101351660596165023588715887237872129442659844533527087899578976047381484866723921333546031570470350663824439866786710376706508345571233422356062604283408061754232355885883250244574264220530602452851415883116432125192219964066037310610002235515130052436947084097728687956683959661285482674453744434981021705568876707165347917006913331920773831401496749764821885317431741456848153984373813540095656259592386900797503882371808876462123323879550373179402340158144800742251680452933172393644465770593642442984198743548983212165845381340414703758464671704711937707040854068130587965535592285842802548888536049435706216902230333532263239439960646408790528130655305277980772338915803743678518024959318610903772252732421651920723840856534952827067341107608909834312152414035763395182540645531716306306836383092484601986415603846392472842590636654649420684821830426297467007635912030947288725204812822224939519204768016800697232079949151543283974573791764983976829615032523138836725177526728891727783900981789237978260904319190500542332579839101936594628210011840210316534673564444722090339131013353142214595824991139898152771081108589024169375668927208056809401233658402719655431079071658264301805531995726784015991732754247241724372486555888392815879516363513357684601897728282636671482013409000429417165853493155770899079208410768224306577596230135644960023805644305649283019424901137372163505875978825275813859670477899661019804269539674241332269998516334918634672438464381126738284556806733651323885322205229899862015334626795651440922974895347324881972457764091603925152355890733576438689105416426851741348271357094792315569368031172303068586100782275661374249016366378352139581715385315499300498364626131091424091838289348151754646809100515373327857684610862354908969274120213038222132972570060484697126174786090734099540291404448493454711364566377371540061175319786481669942539529069627537964584703846746686866712882458831003221357838337614035695680215902258336884662624291838246823713715941060137640363445759509768257777143785738784366958729522982237193324869473830031055816107066272532142429020231975123645932720455687922226042498678231099224799302924174319381922770081129903703622353857805750463298985183416157488850043770086803767363606644095719401589722242317591348812505433693233430396595036570726831174756384379510221371609356430052692157975284836138859418589325734083127719807692738811148005721793779781236116590832239814913992401678374764620793994419953449717417740164752859702809809860512427569254335889862857343477721561893536020182805813230404848654167210459617487907841115554368443866465518105638527848872781853188189040722914022084290896976643331066481236878142521942940380841353385774984366176040423489401916576982323378670674149175418327722453196395954120548237598851830518665950871467134827185979781456403327146494681648540075486782618759205735739442716357540780101109303754474203786889131745489287287252650203665651533798395055191722129987654581289118665929494477255137868130826733406746565004947744604064507584614323844789477344504365096561910239314847593581209691486500153972486277264948174990011414804993486424747035666358814686297521489828583543828048181456054172064078087035996095499328491900126832845212756443650144027517792307950318150032125657832586628834204740314111159523061074904322925954789037829592616943088576177637318989785033652657898370254189336035036109748537379757787212417873556030028506910087627220867091970506074884431688463782424340393376659207165161632481564004926890892881673039473667059522779057692402088059926192100148550871857264520430342543055740274733304349093276416201861319188283799949598417567070277407713631367701951038653678278209913405358690185816307004353612021718150734080320804729262878942871278055548895445756666061550342215829448654377484725331914888295080204598876659037541931734464224491862211338178015394009734651717672368313035346467928250924635079790516235298194138347151641359901450262545951790875710408976121065003627602097872571655194961794313152456809322132502406385540043096188158644582216389115059371339636675143515120860059476955010529232646392674078911906408519064037430335986756730296014170797016144151669726670140912231693820245783742891562405797224071856625299352073918456940086629254969051091671624208050710024145459200072934842442802277881092583794695887778174600716609086056423621890839248574263464509344475709111071872495443627904168605456475894786457429200679071445058069341555497756333891368738721111393213264291115763371082709240178700434783031076377589567652893960678423339477074345344839513381405827990397816567656087284907701071250805522464300254064015171687635164097341014823855443124931846535797624643019246045108883664526180190359735460025383611238258040138026860934892194086448190241821285022006745925792137074332578989606968875952028609725220245524675791444992344808103155643152235427612372018488169362636934445790636725876935100867932472650853015849439241608287256689963999544444438490879297542424858005810947652000060398387334806021253995187081164640155341274251080649455112531255300149467043959932299237159484133661940763634530373327685102579683354174145374149782108194249530650470577051887327195637315794373114066051711622941944027730175415262262641495157623027755748163657860300635494942707202489051483603019004441331875462868456561867518063330221930798981220252214705459705106049523721480412829956293524528576243301128105016016071067598363955387601362499234029569898388847362888268512774989790958458832547556185292736547584287945439460255854477558269906931974844015613850438702037462293178144208102766554361226199134809884144071338725400739127135957214538706744560455854223092803782187140349490247636213628391131962535584971930104145335527376122608312825967715185124731606338380444840932671265825519489585893057659019220349735797212572232375803619677161261131917612261913659039581049076357383860870934703022143938707938937059396721724133984036952799274063491869051959117344272983988141174637666623049951399466198335423220055698586608337491679715798336938112623029054202007632658614709139699780221063798145915358889733822730877009181802726228607221280314810729823363465771484793122833654122560578620397950721010242062064943341714680229800656202910377155011735974358136208869024185514163551838317470287403381606975949482961800065005325159103813262907043447728382656261933450545771317410842845525608872790736232339879695417893348075771949198396019028026244232309600894771324630551310394585567003426639741855311864044706966824115943141129115985939856657282135671696804409191000196482585003902957488352775708167259191202053162389619023226710863483895113229324701235570342076663785205416666607022408676379334055682817702958346445900501760552275323292779683186990727135788506757669441073850371403583343790545336853847249192542969111794347474513630197069868440370806990681530819356038128238412864931092603233226084611801275401349510371473447519150766130446516711644702472360898161274191366012701654399676711602096175729632077715716043433197217275861904400694954453815996925261716259723827057457063577883081500845382274470708328403965928600831013776207174908175909283888700438634340537471352984760436052457032381688212650703826805417311550820930648390173200056092047084752670721729417359035729501348318716260127963986439676708822643919351264896273254936685113606244972560720220438261562239310307784396336348712030897877633007006949203802671278666019189899909802067435479971269100732520344614032120686901908102991455092189083071960062811196377825761315630814910461830591509559581361251209224828496687587060982243928739713595828374892880244522888822423274746420647383904008446650837499587553276849357636397401454781572668507956532005010393865569857903612348238062101705419363808233829109485142152599719202956364448472573089780263496977741393920392205297182237689632929264300368468060949411272670040717057529953906632410130830887276073452772380491013291059260821198533074531400148728419075249733082833195803439430895133940841389892893037765794247518000524690384471630987500385004911433968774830701070684636706581525614588130999054196265837634544114853066182671113823078071776974563226871053247293180688910452889430816175538103493538365300117599428025091135941843846134153194199051035500834363342065986918592079213674480775816799881315378527734855385029130247894402807241052838896791621475031903637727861611902809996391331885185514449671012210921949286471791333250454572185678389471984342353093981683804820580391577333482553598328495141993162926251344210402364269288733441847402927703236052993484194676212396062317782640084707678184113439258047798921133769212418340575979787820154851124561459217978710773350406648057109778437497600067855010440725859321452240281408176402787014481887436611384358524623416907404877535933370509871836963625653673774884546550971119278597847748081577193842376072553087691167472730440028824116816317345310042934529288633780985773072477857839222607213022276743578021722700681453727514202353326112397396765106308473091868277726254597974777102319481951047556170086918306782630846458536235000537414964671450814231247317249190071484412822363136871432474330196991837575374801623796913001389711071455664150716718292504449496255079590151599905372937553732869727687904698225939447992095045938366688989061501776102947810675856800394494399057915136149144475687997741524554641578961197932180843240528851054713774772445942406250323701895642768591373895451922192574667381582765422622882827522974449903262072241586163209393349408579509540824477705201802737822924646004986646507970688913622387324786340218477695998298633617843472424110323452884293551356250486807815622390488874077519521839088973675102805925277637199924323280923034354081385346360962323049120980946279087251715565206353421401298664971525033480165254390342842633122619661576537049952132612148113116049123287159625070301566369256579343486990098687555981010722405455434966919300399150620840913547493891991487502450743355224161441524663382614288844010621659223020184246339154872173046807080422203795975053481680560381575013035898466647675482016239054846242102401460933494703777296995888349101518218367451251308858288759686925459491130663228198964528787012879927837249030712544748144860473886300770290154048992387594736476096554546681931635878235856006103233233454730746950586237345479556782220905972957693187831214079009221405485485066946326488123462714038789541853772282648978716459800887625415146277629525653640989596277983164040080095896136467616924842059606889482717930900236175355405243070224666926299018099352688332701909039754347357446667429507951461531978437509943864789141889305996575175179492147245383888349600465585337241784213757394083028708197361926808953106862604474898752095076708027541150036325280086123373730795677979715054953901108122162440053898164851291583765478676298347402300313128567277098097356100258288843794342116687256536987527183213974204108388070532203434193352179950662126897370816715893015609198965026608615801808884670222346109217339098611095796769251596052172561023370478290776479133396774381060325948848129491239849719319691418785230143663883470250446843807083566961248949481573693259539921988519306351564180055268282731889392218126388442573081483694408374086976418324782218852469709861856784716343866474373912688208583474518595767606247049411738624088877166673526145377066749875058168285539861222186025618498561430476895636158468862231660242579607547895519314301358892517869049386136516291777662344826558908660836595921158222728237826333634991190745717255542772914721338271867729848007720086743668311918152839001652325908091654451857151058912130842751891346173481312228443811263632411220137583342217515761262278173945060706818415058084014343764672592463691525284442929021391633015935319458135786570286917156324767683892372963196438287461716625545705394417587836290291752904841107619695064457365267251741341842445127035517311111200909825902571451233185702580292450832335606765262551317589667603224261516502000428547411817584937335105477979594641087737912879389640199229337380257039465029282219706933322117898636539959577260004288094789466968110912897784817117335273463422984775771171105166295439501989231112992037409434156342758719280042042056798865175064200715481003363112471580579687883291535857642641686127572416940315151092230934274837762060757881538238892398277905196678313842273727466356096008245792067437295752908165704070868490586147928784576558039427505572250912600689802953619714401224353872632790782085051253922230217101692836407927040817090715845967905491869861074024022998470132338163210524242420541239880194560222067349801065253557724585833580532644300840653410714709602398783466968879966129695413623182878376360614620328982049264832775938332120825278853852202241420180724112989689842964521411834463751042569804927572101602906137587880215624045328952633364814610752443003519728442706442571015770758691746322573778252357314545369077290423649341191235795374422332096494234145751120339893980997368753796218804639944018746075397232584302180201038856558140950984935138271306148432515048405530354460255305264418964033601235740079535042062964276385221215950039420665088045204477581675130232834153129261497367493198049134680291664072778728126107309312904642039922684429280819677296523815143914835178007260797922616360214894064852242403919895497852974549528624126160906119393328015621809435743437734127302280220852933153307053518553979371196494874672655981674596871338809747871968802304578677850522101293573863851020159909916772562812862001734464212014976932777316138006424063171468017441977734479130334600278808994458697205883182633701971911262809131176492037116030581120766012780188857138919266142568292880631812005390273285878327898249414554793816269215816104464821642034992164267823203159333638716586107985895336199321192290754000132726160754429694364770941988710329887982723159679354895958990794125230301116854639103496542747251343887501466851909371713374944759337232234547568648259440699574344433679979002914393973363739674442571528091633883997338506666721612328446027460605620514205627635324064270214727152633530471954052961886765989510602816810451665213391653775719871280413854903558791015943142062525865363841493946142261566919462080244005569548132863513689275360110982791516107521100448190613303310337453859984565997441658915902184409127521878204571087850447904639515789736241251691238894349216841573144348232113847953736681715618253475372489959782714286874135448632530092677101466844161000785453639076940155826284773473101622415743731529623595368488662066958052640814862321021407187741845870775227320222679825335576574650454108037151825885839738193081419133092067979365482113089209096122945018208557774313846027175046048987314465762627284942717603827530545203609989653451009400966121219283195028836141871552496028417466749500487623527119076480113833326661741916342904482549720724512482586076504471873323677669427647332631090202352385361841194564953242427996014005687247313157616664481315387460030440398257350136082739873219137079485485334109689646224499667087226674494128539720725594189011721926749245702724851445973199683492077246263726322206060763133018123398443856762514608851593196079257412221343193609561845295008792144156933269751820592953836822518222062399088373572726523189456082600323732938804269044574631400163053189060773945476432143979963164729212323838885815228976502518417906950246279909749357513389082206159572683300830891371352231912358995553956318427355907851934938806407354107855153926570253879798503121883433437908031931930225292989582064355220140331315960487750285326046855912260740350853472612277257532440912076934543122057054748147933368756500060440136926722112929046830696375081754235527114851836088274385343015846845452258597282968898840784360970596941848513718645282654387892723850542861030790235269264501913760438035341135887719037440959718652828095336363122899772197948387846377677320582780281848867677591881173811581182024354078015566341625285480602731745474642567472978339836640585855643998664057097847149747343082110816852411374347584637068952069529294666652103798895172588371807653845421302249122480723601055745130552202350415235600277489841731375605451108682036928844216788393702021967928995162205377157242551849477239278712542932217717255462706204102552247308240916469953406465618690920536961120426541320235218228866216106812981883028529456560337944557356759676818547577803194693892414151125120370827445083329837475697818056540326661750379710739742980557578644348281195918949503985518276093878903000215371722477976107250359392505499592446760858256108836930033184500449489235827836853040623898492020122440573423102337626875671176115467709917632109821622404154977632651214869185499380340246068608056186161617260717909501367061769187137674987211084300053315874346239829771545442322510549267277980702917563169513660122542069778194088621002618189033510756293240645007457951822232592564773167807367402200595140447263787675166442610077462021510218040100472333761047135115080329114963847941469914107918221405254144522784071729430056219646769165001336786785899781728974403573285341834336996170981438146003950269264193943350275414402992194541205582204923474724660449980561882073388680741465117432315080606219672275858665592803753266172253129269785762215158199294077778139573481570324306411655859710558146029834709444970065794235739863400031585885696294649838417906690902718428100696436550207079119118388018316221466094479960945496472310361666941123277055249722722934026982812577839359814686000042624845966785882244099454996011680300906257620107672994295463290176764988951914462992284174081453021585533342429215260015725762364415837407931740399250549257238009575934438564214015426072113894075598305886354572495467286087953781625163239645676677485442290489700549836059007156506976661830999323987324555097490536026936247654528184562931991954283637974738113430753840128519639252075246641356569547166476731876904565279636687675961569769718868627444124110896387903733728502356418956908177419007202483845217118943816694994728535497264793854675156331923841407267864361451652499633669862280903882065378751444572166956325785037650269685312068294153741415878882791889310336462958197856417199682247855947730266079175012039490979666381714519927753939329133343964687948107228331834825562386638827105210888728316746434436777618513847897148375934222376003650115638401349852572548867630594243236296659861786346883373422119026270265642544406119100233146532301852707819950044021563562149653095600979702775535935543123709412789082158236109623477211828630131449846548557008630513119895458586440249588833490399932836800462257544183688155552431216832774800629024129603030288914746090300508654185112743714487769259233825549507535984214861003487058424622109827988740126384876046507617633820044207035809905721102585118430311098426570040626265617493297293729820263653299755752460644902438764983052086069098547772755793594263298368795731351874405805233809183145619154495101802195190502476093969375119619376996514747748473924074015720733475906773556760059703548678030907060187532972847399481637595552720880677280258736283944157549928966662843439913155206857255413647092681117731831470356038481986942802856550690181456605522319895873429598140890516456437497852647586950307064510464217027164072254593304573845946741171398016664502433576541694562813078875832254165794748520581965012360562468927619874020809646533129535500076063662504480855764192864969385021888179729981663999341920831880272521496831584735864689954111810595381021865185505079804677615782284707285712637090772521264777169790217602420264841184663069280224000073376556391295986876787108597661338705380051903389408266981785622935771722469382122466989914318261472078665509209022091447137647884443275138710690085904125569325257990236600183102356975514783727889044008402211835179465888984467334681981784950508580930891586349461709064268283270650877066107411854986577795548314779026360857837830967683710942963004998363205820539660606651192448181686320535616582916998143911547763111553726321687022451377811725623106650166036218052601036957379452115005377596912341579425903720523533611662992995484555935630676565029350884079987403422686309370950117446280377081887981928958316462856964738715967552207876374275401055535595689809414129581978403535212334446786299037359064555312653903427238696356449847701475450154029858379837451631179597846329385814953857730812441685805732012482897142980714656791199182876220950521208355719521582058899405675924877277564695300913362932230008019191450718088025970886516326441673714116966911800298080952469027953870088740137861770306419991320695047161096118279299438951688700421989577148601538231746287642016856034841002126421784486899790856326835803890818808765645570186720243176810137291260836096071546840737343741140910658926199261231556551502088193194087511219632533017574945128568781756445168558585425923904559304169075285021727738647392721902648281635444470367303868298038101239394995728020344300352159447608281058355565784662575569247837992572293622790045409496823490461250304098520055028626668010928553245861722734148955398475237149128975754283324187416808902772313578917679417232500283624942924337393699557031981717156279610556958906908829806288339538036566629116742821115576307684602310475805768550237429572173909387003265103786788942887700207308212986190980413353429286284227416058797063875452476991661594931626768685448889399393723094802159679350950068490118155480702635591674769262505595167590083551925985087365341296206443607419463080206637030637465551755709412516319207188736755627016600049285315009157378944153836427278061814568400456915801170504706774857922314207085746103039192641013313197071275720085234915794114354381263450389173787889440806064214364827938800354130485872513890932352361343165121176651512802781233676113674416315629304992647964131456923940259540441011399824876958148703981329628796600565862259613357124279905910085636627987141822629740190569212999573573870555285975262858241934752234133286332063541161761812753500497826620392479091964840391612190693731896236961228558810730937241481694139487103412857880301370808246755422904903565231375757984840124263882503997042900607750012391318316311401857592809075458811631997786342123981528695815971113946596995755325175746955675526521562121152073526346349190842316856606387062662524959664402111153048777413980608544391319239201070386380836641053950857084319951268461309839049594214425003357057554068959822453776676414894480284684305157419522322681863998483995057983574568094093814146786519744310775127810652094671808590197440460213343533558424495737057610285395900203827135518279828883106096302116256403523270257410140915866818182475384526024963704802239924512422628970094087385063860604109710831017108042230017046396847182867535401158971850163760475652397046383009547544401577520903000280677025078338710086021404248997865376029010219592017414768897425671829003669154449103751014063311741744760757765386138979344934590642505074690654593026158119710797233816122743854908049007411734446997029341861009975000499662341685128886801502413337530447645373815180535622856720092378193296550723181356205468686990728423780548709611542934121815044460122789415796614698920078671895598586996144591805713665939959726302017401991169594318463044244167592959001840585797918669671628054876314901912952124562068044203911094231777390855083561019668767688651271115703048850694252577680398739170086405771676903259571347530211915953328841484110153292539239624123169014998549728782485786757658396003201630492856825069708463501987321162413575034101007363156492465171767269960020179547965700643623250255958757237407022820378350860801156070186295217794420779421996837127698191913523429339221812599817035600279608508393457004156105887137870331625999125096672423903660055708579335731605026264062398447869810606080502395702427393823006023177934959442348584187893817923014239134847636920090334586677324685981100855705845342313942411657205474584834560617098724712513764258491208899873724638354890625337626208776876916622423208285342687538174419204446069734024548958297578124393154276595956986714220825068827390154087915344484559615439832264045686253801063283668776270664087309335009036326296184373308904922724253630171899317178229740820349459146079332754652002119557633741391278050746177991025487018802547007220612305328574962639402743062092551925883901622245223141591993838220622604717090142238401850020418029779755618895677370160877811293803960389793320948717120383579913096316016588739682709762331448308518239822040932881984220771493376571838672794176277065460318944065142110593297128759008716591727351672643298063698378552520073717606863857849947691285478722696726398775019552347382256334342227176627310074946138874023238310451571670200112285518564008957480522800816996254208549367197345839965193167945892576500997829254347471361412385382051325659641825853547113397863675948866222427340378049078986489704919423539764320802869644622174734566796161207736657920815406458284946519741199028330495108670606850798425283659913557649762743939000922996119550181019607228047899997854794652346578494853572603190861245900681327352459419975611250754188841256497120518300055362304907553824559286187976609102319527996968724846096367042515576941051443540448189270384845302817737444769646980115514210606594801338722387681654826492263363185142828220601502802416971096693870290978906043038342063671660077456153479941232187545433498679102416793212971438090103718296082153818934855968012964684966190854635053897031228197768234370475584967501112785055749698298839433278329703831093312199716604050389690958069041944509603912825943255483985011164744897320543456687961390762655997750436731310747684714335376663572797629751598350712205059560524046608091538019855777042026057688023497691959741502068068535431893558034244580525395600215152728208969822532488466530960885147091581996575494491308451940902661672454086804640499375161585763952560558253550701851905427932875886120275949968487310471078700426741881800867117802802104612226243277269382842616829587660241330005649205499846796931727227126276746981730379628492688057595727971629290731070516051019852474317414663210202225738512115304510885523916025792664459019575529629559210227168473863466408480911009066876666128757424662876362346872594355864327905877436551332656205927654644457437742477965920315606331876741264974541865091275486958694827424425939086053018830125245610110007047602119822377312233452901958816338548469213927021017548486538606968523324989338521854018761203422449262142666918059732191022865977236524087941150693582743067804153597032840181712118901230419869922981452664291480574610612863912264566977534230659580809215274773025441602236638097825000838329025718349191089126881304566771559612555221307793664919912770212779917741774668319324875662405760875489009480652394344831896379997785622818728212725410078245448419949016875554502542906452013532975668776366182694923889035935318240634419807491977956567136668216173525319456070832971417403271128913971752718418886059623667176023871196349433568854488695185631659156604938578523059549770805221658705686760499485094593434883981620614374789224238722249467391932823268652326539568716115785968157651695800648772368654563540085395800106068930837461879234998147006040388158591141654558694783761400675514545904723590988347706300420688129759549535876215461702518424050001563057659625942196542845017574420019029825156328604681442010606161259662108143270817878498007750514455896396902024992054315266618911040145787681501604016721759295621033561731376823857481267309000497246406081367999578592110613289185671701706051656291778775005127853185771409187356095094807063478489529107643656385575881905728568314096127416282930023558891404332393424930009135749051263970097979247288395620546253463290209756607588817338315684399083875420934602456529571007496962996336520613189134537936758981760750257725536356024758256385377786007788017720884141334954092843857708201487707519751560038669059496513644122354594738842480953192764479410963368363168455042666007928846442349785133123212169576334425773848154979907784881447922422285689390556335106916661766455195613697002277331734605105819189818772921821985888574216795508530433188616331571785486776674771767435856718335642003717488378787953802900002593552283882731272981020794816384361810930339402396311487109936737886277590433418204349576489600286892635691820656579733638561356580023012597319519181541504178962919785666354023368542358353789951357982463276348712971147692691785497068336324458572476325842787386879859340700406731056403031839996653310688270788920374890535828639342051046908831789917592279738571921846748690176661822282172803872312671279078531007631860860896595047927331419641749780912421394969108099999410814307081670525043421126663240533670268298951406801852424040223635788845649816981020946456623205375147297649617417767506709047804570352848697474394485159829434830091059218556380465881822372536858585638822484864156078881060749236819816814176861160934263553806385642880213132034937425053698055991906814647317242161318969517131694208948615195660651505672347058964986433692968275993007335521634220955112731486318418577129474693653623501418593270008618901759271057888399434053843358263985664460070637521805102685024967083868843381608419077409068096029906121327978932263458117663460371641257164841039165735603287267656442266709050698575737923397924990870676352269507237279503543785370565934644063187646577281863186795865731921163947819607457154438504920246899909316702190665018994649033121359728911361851299138571270198501473871063173121094947762373674019149923792648353537971731156971434077999668505849542860843517737156253407058570407984531123222079050535479963007442963346071985576025672521081734994429574726909367555171568665177524120420928121116408165059836789384862710769010704121247716435923707051498546960959104684448716634151664525262681449882253763807509093152890380337091089579513474943499707808386766019567083467377636037301305484938263955067033823451878907958735303542714354028735233448802648143820480835806398292749465532675667228863785109807040824328275287952065621155750897329899892675321471555284657569632147233162783030903473003491501515835599840191164270986783998355657733633328789770891806966297795537360015532002872473526201768354252812208426048201835786365417336973981133059087235055031843009874582863713505366510307593098534289523180099616482670813888644824038517748179925829969157387996032406725818854531041392938248850382775072749848660471373978785214924078313560541495880381176487311801686451390572225042184243703976681659714603518182477802876990575249850694903149666464140618244191372203460990678430871401992524832482595105559578483365222857391537995653200733112776484558681522596216591813062369323007513987952318012640322708818852513854251647960764328676554387343698199029517611435392250927028682270246145655128487461861795596765900173741106177141767220390554956710643968485640001084504345588908024683034648748357271456493441234000596275046015564079539239383114534457151137158675069662538361407371008632535798554541335726856069273171352200312447064763825249180327558616122708300694336543791035222692431023899939989181858561060712428450918062679462506900911772310406145204736136865723973612016546030556208331755789455696957364698276035944635411507389052528884296942606567144267722815508195110733992587288456250872101010066231818547975259074350868231018266592436540192652978379200941374604442829058714681854281635818671660858637287381471687740856092359301107793598016572317138915200143857848055925297694937314939074794010344942121862915234459673954016828869782410027475145082139964656531153912899060764341481033647179713002014690270789443414858007947743668464807739868367744863865778276316224390224327749478973740757387515302608511683602572613014966792823328153324463384175110878911371350645656551807937635160575443597064412828221973318525039862248975227062976412824097098393573524779507137851808942845290099686039489123348544334980863173572596935871233866409432164226105356345951291076652634111409496305312477573051395186494651331505991421614514238397023290699067653873138295919959397219165194166958769860836748421256906238875644871323641856530025648267184746806980604620267586466083772757197513744271873385945320110826691490684415483341982301901046999216417364018303347127942912509462590211741908916181293478498643818642861801515998764459885046650190437010080916638890882307425418746422520883939795681093899831076672012393340592928704210235998078124152129503031789468857765478220781240032738663570844525989242579768843601477821246974323235010978657436154430802773121237018339425539657284995914266470416657536291325846873942941953788072746622841645466158805470857049689597368285009047262117730695928487440989945646173681447535944476981842590138357268307086538952003045129898059129341079293674353577340156848691842509786237274512380959655846018446175226241679232858580512139399066017108745770594505038356595621505370595594894911171151857180877557853567941371486693113404666640001026286981119736144200636766422867819115754624598525235773808950259021986456090945951759910293214989527432549115627260677865167022691450680242124730613406835057235147760328212859928864849189354329171274840955812761732502594715215770279258440197379039931985255741016464174426446062557709697671914157766006057338605942868525570375214295298697970473238916653597029466534566020566840477911223134874221017585410278238732283440529383090503369383524681511376955566440804173881987149324114117751674327183677752979182974590372758280382865921261317347091415375588175054429097048449129136459662501984533908385438796998668404126928023729907951058760305024869686460137426032784458708029832422607564778594121507136637712684540620615435305190803132484537757982404372923271471124051917751613779478704682613238022594212246744669761758605374727369656140526820945942362917196338511971840985634404195181547174223752068103117718544695599773049633477610848181987498436638432641843356858689473577190137929884308228910937431767540738364292066285802769621977592687004011344497619444984408331204648226425479596542255255113527620545819694157706909336335705556958511328406390801474046202367625176519685505353535418433703408983440127628320110464351327332198437790578231148006955839569587305765551236200295645797870567212289557313429814844784450629854430166818928160394067571937778720533369538214277935048281233747737572045930150202633083764032169823357374150589845702827229438763248782612854198274670169200587704818096520143885334187391973933410032847791922188392640343126963279776353428048867463272408569036386136247787523549754742710049838127975115080941488822913221220300131344520090972409921194785453409429596983933663914993579735509093323217480524335972160480362514846978949642005161225161054036036138648529114182141905467694333255162484545278070892481636115461014884677413162417147589497490266744852965478129096788244973558327916079213225386675732856163586416497708348739327451174958826935341926285864172813052676314728189035333253862586072377661823652989846146519367904166230245305951737959771614184055020756892475405189320005755658949031165050408136779908171042677915683388693836687391771608729933111068047588702018886521781129569195756110295912530749287472565106547175153298852311279916403924961867376970963847023194822974941819520172522610383454362986133808379707015162075054138527592594626902287205752997464107131401579823340769126750038200982670534037866722606941757282118310944936363845685482511522785744742644558657404410212229082727385926376542916198138622971183321849237198941228835923896425775729782942587378352294711799877637426926512970081005201579272976170422740269802586188094546163042814565454740530031805675747758896391035190406239014789985917494568316456429957374406291895794292608294268791629538486170650218216658630760561225297166752322199583756439615184094464220789549389213664688658624472555108399156010934078021918387135091225088045115327783379737829998088285488552198144882201648719041815735675777794802827278539348196320993567313316175098088675612730038211042216119052324895481704212736548571369021342533727770157051377720175548061158773059948593927183230622885208017927734436111118502623802314728300534886942631818337999319819102139301773735362391654927179725572301684248725971622321426558599679213825180313222804335116499936168606887982837605815152859415249912387844759959262169349708408541697447008169665567600939122480209054197562774442937736755062351048959216655371396882253803108000667126777424421215322550114463787832986165633289823574741672464200955354618178358369230759485264854006405515872060243475562414810883289479605115114756717904806013023337788181477399840100617154584750372311319723757690856709003582690481876771584238443487826996412413512277348659768397311362383031869534890101321436780683260235200704447145961228236595353211747461871090933536406936946111478014154266942920051138469051724504923185782868511088320783454325247056641156752861554039739866105655397430687841022082832689824009255380583883738937316262335775973675447302462394367993344086896809181429163916833446983950831737438378702137147316431273185135398224384929035733541505426122328603290679153597274294202935621048565989537923202045247588563325360749808522125384150875478549292536046949142728578212148634124122794258499546556874208703697295240872330366168300787238139376041013453592681184494857115926052285934442746888588361220990914723812804664420546303606098353631654083881703415572826201019608384498034686498401257140995912259470111248130653325379406447270179512987823671512254772604809378621681064972536819163247635775149925392765792699160915583291376237171758024925762940719747114218848329854873613278527208291070103072841464421152059517929543054226410600564059359780416354933854463783113848816408342674735786845972391887710207713496204524146241142587008675114186402010024803562038634075406380914148126176940647430045376441308119219130155862504639844191941720626168827353780414667470437298434428437943686246603712803090268288212436693283793188291094639359648775460940369004273121689510783903360356433774895680530820357146614097472487171819069253367593039073083130316835433495940793880027384050398284708291094329126143495646301572948653805320400703967892875553342965455317607080796409182377515904717710800520687591215322102276706690860631856793031711597045085875433215793949761485331635418572465771240694515121755499920550007418704628665007713961955107996591208163338995393503424982451428223428938023148573532417734412964737551934358141385527647992581848319455645723496844776239664640780359664286450351499219961248017176847926474520318529874935696969139383906900762992092049035444459811758385535295614438358618973785634314608387820089906480192502589675263275813076969153464476654109840410867020734173469282700079726509687031079244416986536497322176675512874332457787813160225685048943476574422678708890250440352198089269077756210724343599955147040827481361088375737499216884352474154326068818835076282916352618621449355665911197191324692270579358468986959336561484620938978661315174609793384137037728354850288422915475547689705355819688503393758443505814754106400538028127039519289429196504501415281596042588441043237509952346856423551090274083930366467955403997868735014314207714518971072645913492988717017716566643736419991592866963550041253994066041307030583532173158873878396515256687498346145548122732608262861789620824590407906219963098587210893388100991797632712742532645814393191332074702393983160196748511276086839424724387381530784667989042711350623074740346050560770218723677752871490797957457070062700883290596360830873758580688312337007216210185939353077573894292150685393830040286624440575441927728497391929665920376923193988712315293726726524438855007609656875263080900770565810584862898436685949637055775468184999681053710851957631200687933368466810889399267960698366028456632041936075308861714447928936093497759754866488343841190729184237916695879128804946902879830610975203913464953945989715247818159163767651052950665722052827518958327497769626964159089829018685813173262764977151489456857351499019257788003139409743734453074031958371926048598772953876217414641673224309724770164201399820207377385543308982564546910948236344801320358228837340866138424126538497223195893573323736669708580898849929773064618825568578988550008648284167354501895088011542288452741658304357020635140978271700930322689874584539753424764038370952962207193277375371253163353069503092285180114947158138026314961028922402265453622576895929480827396165270010374447277511154659078541258736445314783179351893674874491566682345361122461904177025294383227772548010261611990469261620574108300117770856526706574331064736542314743964615814950654261189959381130287506987429423890742226134153152913570632701154598939555536516822719215228524786207695456115462677551603564590568771518330630150722336227816920685827718499169545795190808921824482881711489961591030377870656398481430488953863228458034342427283566117807900055846780182154144228096494943316309635197500804601854393164285182957024751583380923618362419799723826517103790881755696132614671121130419545063682776489909265116235443278067908744913583376192257505626381758316223390641841257947691537105786022928127693336358892864157583439486602680818936397280482124168095460867813018861067473808625370493350001611306266412147937980203808467851273950707515423405596839128329248724780047663731775590658902760340811721277804437318556332354175839723268131794012372706937309328434314857869562636435593620303854263813543124901383693704871425535101861435668800360493872322319973370523219828231846978484336265025223197115283755567551152786949659320415176822667245599606877166114881681417507947413850640125200539934740709776889809704579038221618591154900975972385085633456491877496214581201449239641777739483545472239199727774941619370949962522004255902544423926809406700812467037308402780140088709178571224062849452389325825039533763551015100491496663395051242903833046053520238362974870572137496592776125415459429752878609658187949192410794576257823797741924984276845504148601292634091733472489816905690161113409940093440877950540134435990997080840051792314326515484697941124661370168512251815768916411871956763362809979714291106930506830536028702435270760468701217436728172075566082682730230323276899923382285627752233996726705187339082969848892196358283557481189959221375112899876635203189164813526083010320703144310798937190899299027199694529507938761978730786013620757304339342350015443441376001804550946038866282528714395536246137734224568041132656128180113756702470111029874850549195058855330445578823568549963851070395702837643196974409530608657943952550720257269037219148777844943857930298239216154608395941156510694677249237176945200412611435977085340013943297039698079817203719923149739679165280366111538935584896724184333095789239230970211774990293690864143296400996643873547666427475827158037876098230472384485302362731777769789741880690366409208126301504650803339524232397207095154756833464492998461678993615464937004296992233017002852217381161084912388536771571536231929509633442157160284829527541200151992541078025357434699258785445028680927532119030669056100542479167322993301914893106334937379975600631934277514366698470705354619051494600707967060766055428481907610809443257498842546303351373818081252488717663184069504071331237409868174953477553107320216864690393426803550096669302929865608729087498948360253688910464881835364007231505507227592880548907653618424918491970681929525533325104220414657852637163147139982855461756488830367537717028529849081865924113430175372542645383741664092309833786277817770610731339525322422672363127147810217222913814649528911999010229822775455394901307636246725903430124947387495387834591913408597827894157185852525413509954150939078936241641818276965243880153315349421185959787452687503429177364320765333110903391625638557132971835828478464210604677702993395708217412179648820502530033707755754151901573364724380303532859672895240275958088630485485599562200242616271911790389115332657423332667091808289476170029179112044244871906239384521820926550868220316134030311885808008384046542517192413138438337145268720843862669062075640953302790092915864335628958406544820967493110765703978620887787341019797872247237764532794228436231777883120786011158758282900018344545091390992234628515343856207637277175471526621229872514170009951580853766490516014451340222364955487895096098594951532932709755642850759040670162111822143223838730334112603496322687262126536839765968302179975442029250180336563863379327595212535608008857685349246336116549546846149210142841934556679141248081413078814966272878013787110012004297022454134507006133313332558263509186388938303136860090142054681832938647604900413153123735603917065114206125885358455531792661640380243327682121034404061072145806401579640430937718518128929014757899620289078930449607849564774948484895869148224037210116235669105305797525939397560637153480507204357895493763630548770767965419141581753127392969157180422625360516177960491467626913515601206427405577695193769881449503195728324313035641980055045012091896251824575019821083923725567217517460794482162933969978260796581665200539253955598751478123918204250778761451679457910691487614891598312273481571799149716984917750994989196495536453598704340752225518740949300944021230488652895356586509072902038988264482683463754634758167516354824447958407485727946915710394131063997716928226396084658565984112520913183271409574840335244024353328743185626029919811072644498417407904759740413830282973215079543304006006457836267864238734069611215064429010384525099452035989603119500736604866320319393693069128223059902532261460641690596950466238508556889247346370418119234592156924668898786503776161759961295010476789095189938749451421235202562247794653050991178953678245046832835373144522944108472796001286226173537143504944154858330144165429197123252764517125399181780621143670379156928041770527925259518032128861049572861738239335185327083940999777869429626750200933271640198144401147041846715884941636002722540302620942535925415825655829476108762871999993615985780193743938595287755065349182729531516303621055438454353705551052671385087694685936950530663812903934148565371790936454855578721657123301529803444808367190636711210988248708400911311733339978288581998105307700814281894590834657020784251329662756558707225074672918839376837023995640174094420679765843818205885701727289039591941775620479420347186274122049046677377283300342035113782281464227273938047297610697007730182104543539841641482323236847195665439772942252686017978333032103889870423955266693077103297961754001026858710859383099427217002424163938377861065292717278451873880071850461875943950886870366776984864612567444002002046554767414184535765475203270665230078010024095741022048414449335639444466533742519037466290143622162849932187396279394786013577112923171811375422360062152881032305113253805557785864171483808334098924755078942293990131296065355098731335774223113268032917366390678840531756148615560744781784796174801557946922454905918114921201556229362673141882275818454954038603707382838755526068952527659967231039711535295622226154844014762900019624946968730801438932144957178224830659852784961759793177893739548373698812741854509529587221226614739257072003297806758752996228875810433428796523902219187931435834972689479709080894322197805453476708836644780590096173089909678329578587382228482128514656932552462598406308194539385459035249629885885446893848931300032366159011557946414973520712284481108994710037792383447290017165996874012499299210564921351332306821553025454804712871543048254193552786351515201625948681667880381551896962363783907387415662301957272545632177611605970592816518868894615018632321560133796488231980356891565777414849046204453779808867024436215399716866625622736847409295813942998293438492404206550981111620784725743057961455067415467498357461064600090637911463419747572661096566125693268254818850132284552486813401808694380837514619928656405173970696888569759785716907606912434120535007281752992519141876076396570327934980665322436986152607263850317293713542468791993287269680688131569901941197484501267601763492352197633943171164325087096470474014265813525245589582193858570265688603597306351234698268548831376895088155152356276829222441487580516432519087362397469057051503733782300620534543127126150171622830382174517148507745586825634851492591056000666038231630402738697072813410082675508082385482775972924454100514525530475275272030389085567084675852742516692628023106267635954461406858848866152339484127220105898369985498223252722773843800713538053993363405027705211073384558737494390550909970987474058329694050589734465488616229022127773944373038254242650733239592534315407130092567027621812717395471267234777821889580523170863781233522669207584268489507913097655404041202490259154831879520362153150662947505554289344807381680267316705562002610377066399642203366820748476252334894849181242627450988967931862782371929074688414449440474941032043846484956895719370632133436284705179509196933105252500334798195640203155456585520331552503085316101417277556083235387726696853325951954866276040895968081323683549693932557866446957263956503401240393699888790025540610065508281536857614860086583207745921392815056898291790551845009644782346728551383046108602316569334303652341487657179575267219472301291118432727305920832587977242428036287657273918893308936949046604130636469098814361460751126472408589848636598201520506315375180489043244068703072413675443080504749165724220695164563213938367382504874704530019622053257897705205060470557513129891608729592092889575929657275674050399618001116513708998631231427874227521849297513184320912724913989616212001780284259890136106655330666394112687562554250776696828125866285364605560891890643998882412536211302457120080764030643207949254007112194245838570125392606862970708114435266827554431662708666136751586826426911941218316714281294992785745454055819457404467102702627698028689984465768642812094685054776147355824459332978491859925044979011435002092077496359206161920640773782128050922859451112872263280855761076909731088476990137707738447572167532882003381806182893739864258301442903298254372347058035418269787622182817845320031150491778051352366304709404485647926343574128810113233412541162779101481101498616287624605414768395139598163963526996220845844887019183833974238156883449616433834332014601934280598022387801781235745860337673271920492622621660789837464572266776127717600135397249107926775003515393518879947296159080207382072466723117733904849214720308708768422411775579124122423106415298248134914312463267385932398474956987036987910980905756837659318232494918289040444014773556955406979617856755335042576386356089677120752667232126342746272368324620848899994657374500705314307085252097691797348309541187381811109164878918017815502890677286918490370733311444019883073156696241004738626654062049935507749679074573805970601644755420299700836713353125925309722848094627272723204524423417079557167650004512490224897093679449561065119696706229102096970446628690325363527279803296968868690344040059272959380920145733219383072358141948792630059965259215572082048611395688939047983439539098194012370742159234567109048015003656390538314087721248594248198622336638731194122490122376592582753487936071318368800040073590664175223111131654275576979729929704150798392209406007345316000019666153613899102643256990303350049450463579699075363325409119057876548377412027671986553374700300024322326695295031768647617514163778257621312877015931849364037468262679649230403200969671511520225033623203193304887132984198772591749398757860652148320364583868079113487517337119449025282987581604219910203277664677653683461624452500553583652719029347383148907424571444677106709823759233622555289803072687607052641684098441621448915278653911079793099317738240183124598883252993009890487996545763884321073188732368031319229411231685255655126989844693446553807175334027830665491090345987501677552994653729890609872569222185065122414468562355595460392271867657507280207645153677396813946294722298391414133863636295043759476715880903258992541938771711566746056386627087526764320701941594106848232979482476765251875500007098756871113171360712258321775974714807505219639082045283487779933162451783636117728671881635177431634233274174637223606432853617196198236083933994408840346346772126089379703489846057611187521056430530015261470908348360058063029430888871719746137097842511473503074372294718471819530344286376083957255140812166267894102710138404099530212554050917101227143330613322681884171768061448335078899353161919029231542477369179822678716467841103908401917673231569084136978786721267291829627833953386286606619849043389808444893890737460748398404735843315072033623361833557764129615458377894082693072830959230505960603275004721876802659871079190011301927639523989114982770041874645546238100968302908596543049243726172479813375885178718986928162400865118524201582444599770087928970522428631079320693630331851888830522227832311929349956053188233593416175022029590679292493188925290381658158250668239133229289316058603731845095616264848231440579212903072004518060364266323333165648922161591449538234719702819076822609656915572053735667845435142532735576454076678121684550380794364243567501594560502215957098251436207710791473637481022844436597967053070843341736069620282607063133907214416463297218671961630329002800476573618276220465111674456288464275205175727856885149377622947268950807683666261833204695391442183482649668036024284771658444278161749367018030003584729313723123420207991025022859255934034310968822550700992559454571638968660374056951493092444474176829886521994720112597331216707025869912034152271375130548749020483735873217722061155669722367592848626877706529536606232007116735857655370461433325693437073285357188729445476940043977310724459642396906729849033758862365709176645985542847749430863803107864353747865832874013088607944038499749503838014629023123328344255525700893745244869398786312344874176747010670001207388003584540837971287613313572628030980351874445363623465584455772007170831705165690306377712041876374938913685232906492913118595267908423952281449925129670011699569623893024878659337288332087824148937408611788649854549521724883875353441438620028076806977734034853613864594932667063537527437564336510386706134066025058985887145636404605552406768694072486363460717604717415601858779462903395336025059217859074258889745608608533575403315103281033458045424934874169202746051733729331955402284307231116473120449633815337736060925069603504925486312652502800987995856726293188268807224107224249920314976545888643784409697240474923705765954202245764197093148088751744200321464453855060100836472940957413065022291992239131623293016100461428578628018108619788146301950101353204257423382850205301717575020580042174475958666557174855036591652348491873310798999716262277858815551920750187311789210628985355074130748612983351638000655907108868246898037555114676811436683537394903742712692778501797818540654361158910971408200834363600086212518121984877442589625430242020894348310558429314904730157107818918010212086131825144066488522668260039092734391824528949352751929986622289829481208990415283938391411852816169713722381625793472698265466382900764276836884947407807727522283502284748663047430608076114531300323051261070324108966216450402642726056520699794996095589841483876228333653142261459332885246835146829404967337777453384918645425503064276896609687037150231730330505391514666909927193515507244151770595727442394759622113646438787442076370001684764244438094305608328219096199646201802931398027433177312110669125651573058370304350781594977621427312827285224392305889020574707838987507399749632734648935523518318534965811244000716837141853569846126911819209933529969001232543976596153546468184492672872341060708954523620731953203388291625022411741158325987864001705693541511928544179269077731176666996601695553831168836162186878475009185176190609190767270310900973685849212541434615013360284021987788631486834018632992987043195668522119952270690421811224221696888263457427900138265880603703299526920063593660170145656049421404170874687051022635286628189034908398723546654702930656899879215578906097759380810591222115741277397186284977089547481271852959942810716701427023193358836150471970384762332906883978712364478802759949196027612233227019927013808202135015637756324400562067299618587143823966366911733086813223839997018486997606540579059041906939597069251173394682820700987447312736429675984688359965925179434584601854581872071979149707889441400252890648671040219866322880027712990942806725238995683459618619379685772332352902956069710823669671423765612103834771574661494465603278151923879137614928463359488153663245922244657548599392389924519329647509857753083081931271814543292905861077315858603361205570951040188797102909908509244148921163293766485866251064291825170684259587407675764825027119594243551117462709951735435973857373275053740005221539059730967891550603577252060766964128746643588697737412148919779631164286963157640285620173843768965930794556593220744283868494888710268552092269500803514755312121553020113815531922888178758083615314045087013074678224808079535209007424035093396847580213504336839652311705387974351471751579478399793107658289269081851959615867312703241869903613705031689036069926510418884882148843932971708693276387193231596760223209085010502568002244689503849845500083838800249199779263708247125033062090751863866238117751754357128655699570783638836864057343370663181884470354345776409853949367413751273092813389391673515326273956243737424720498504411624395559023688583709142874612125031452160993704664896333339096861041142764323568402400426071379086332835801753616786554462399653855450330653509029843247792488506785039707049551427695827458401283902491805161242339114844863434490691295620359691706987081466055507354098799480300558888945168523619129025894603653450318763244478891140213626910977114933254488401459717672181776877967410749202742388299574546982076836625087512998300663772336289875713171476041699779853457900233584230528533077624707101283894051620282789544925065403439688780753846318957765754785280655084075999770023476465738966460754970988693561473641873333326868219376083947273319216940461397558199619428814483577719663020836219266707383814390629133913201040592517051757389770602064140344538816965893405720469695694880964601212231231016396256607236946800514867507486893596149643113001704712825088695434986793704597263685276500784368489866014646312901502346064583982940752130973928069581861882989019240432914318586678135852167809831787517744128351340885355022649950011717183423386396747350576457459711298116659146402099820168293035729143291272377172125037958240108641303927720125489137339198869870627842653936945745090570774872007985256609503584209673000564205614613508478876628429682219301304654561930978388396863377496077620850111153448487901159256345308945123142902872573264235961343126442195728511696998145488463558482025005626825223019801507910274819331280168808339781618335465254963532610615040990518334551662184162724062166105681386625449367343699368991081876699747128415953301818032353418863749402169448221200922847879190787561989662758051160908999809080159759093319515410094921671124182246901235958312755052565193135450799296332700192452454573010318081250583684992545047084201435767667855790478347282105571832780820414220446859561809781455773657751495138191496196396833718610462856784995973594717084816324363730513935954693470949207821624033857695104720833834425545367002712955208598883173472422851376300788386059307646669444950919636630700855074606541996201294659718898338767746669765385089411618594429600325938275848718014162853521958822107829370922658873648177342199630968243248540578018679250752818157473973318074781158942619981380595365341835900877918893714507569265210898115605529268697115429631283983409344903983951420356130710157176885267512347376089334366384173885225133387140598797724180456677242482173398169675146020064395720011417066665179194203254299832272764765059812460900198654923360003174788314682593245538979532172826704277474062368682285017727916545729343108071265902933638433952396694640948687507005600252460005669281948693715245984220491764210820683830170268313675358135651021473294435576049267480627769292425374321948372737675076727043954713080246067191857941112910775663623437733425864767539508698613313455563594121723064305335820606671685786795206497333801081025211751900074087380985205523802908243377701466744511485423553339912083732046983484659619319813130690461971013407104114280316932965026431880863106548599186515263698527052765443926007782533766630733537332002129498988712625263584999422176582421548746816411229526912119314621750414802904803718550636916073996065866964500923772078979242448383975206281600709860316406627720324361637854544768413083595049884031158185257762764390557680274731130016185016021904752063561177669487743774731941303786102964661434688845539691960140130127601019990406200960870917167846065829382034180535740007226753129784602045795585707148060820316543652300535974282002826770835996066141310316340761688382157454244192166660685318857352421839406947237751939516988358369088221217576720284794572923940590515078964668827312361668031880560486597387320282505487437676459477364332856889140556376272039278512265048073512470545317379446737438275514516670528121220818976900270883468845892132149380802632427967335968369709522998644964814273693213540219810500083059886787443710083281384290834282864549446827885217173009782319657442135154344329598006035659458831586625724702963946026802436822778569218260263912334137583244833340764826708825486594925147094615313879073260145718018032156493398656234105145283740672713201522193415929080564913759029646612683680263062344999585259731037517634538401086498656793428008086576725423750168412829467934314978466235234087640594021114695737797035755604892531072447124087163683978742120534607076345509073489208422209260492570486046505501345254315719678633735373624457088677672917134400866394168161329962412505534685107344834418728914632101558706148320835733794244947526448655638599253390936916151081104056074103641880064723928974869975763504067700137842220641018696319057022673405028014878408419923442979491851295474802220855093087752685814833939691871887511782552203301459607051612384907670351889759547198871045501882122363493498462125513128697751072949717336115602350250140550583912483412536740174378436984491384743657870730105640899786069309418830012181661163871844052791740174292493190281167547380208291256493062744079121554639686830560939327511408814474025240612418607774630581095361436121700815620383584722115870497619991171760821984152853478565562969016552257096328611075374488380619230631828763115818861243522167612601947276317862494783025695154440884222824319759232022255581404431051589498817099329626599497779118736088306002264223020036780142560238191720727543340109337146329120907665889213111117071724175814157915819607562161193690368675751189374375904142452150056136244485516691270262207540556922490291994320694631085619922770577704558475182018528515672448508940762549215600054191250254066072008401715680292616134950031788198121154004569560021605714251194756655933023372648040271727603576410618993411137084630659899286602753413762552461040037191359447806221876770676920497352437728489906590436677245592648104911247989083728728032705313772494571329104897906212547166462476016823056340721218171665955861235892916718574638051441284441950771482452461897817813388670846722627035315019577362382830265704852746657276722021788686339974612501231832410134583804975329270566384307002556632250381129692423101950221650840195931035715447543564831800850972485779292714989913966646526160049056608036623374007881168391692677920802454229207831106233347478687932044084988776889769050845924631885191160939551584919574236582744896117701236678934357792117755573581460479882548918942797855253037564260696715249960242897520192135002505150580624571064133597455407727842473430100465418313773675424999019742697526338799375102448720921061067012300195195480063869736635697009810616395569779108220748514977520649445097617520073451934092150303124906014668786366129822028381711253784900042324049852519708564271310977227421503213473650054503951062605448139353960611196451055776498572158293102808453919100018131305504247190031228785546486571471241414372534826884335589448789045194407627506145332258382816385196742763513103623904286949580261783680686841034925355020898710338055361101251623715867119923141414998580142573290419613479811619870103179815847032951283044807095572154949772250200763392345230262396217147012199042251433392726233152706664256960569191592562446327994670791190322696221649910055531175966881030401041737511210292437860818547100233282308852105003261994571244219421547760190703584848200220164230196001768139640909877826062397717226329518514614919554003545284310303216885470250148965025522499330273371276393054655118299349469244917475169792754403838792115955708648709711172331538521680076283317383219807532637982193945818779020849561176651214922499900759862275731589077384653277739330219808696698431280813642048713759916435167048894720651279222921470200512732652979807258498910731376414122923197049712300199041492676911864519889039754010467886896302491154735612016344385097846403189279898043823072269853436452121805500683176256942598974367261976806767368840567737230431978084014424543875665887593198655229959370443018343247667312487023714876596228551134502437008788868863073396815059097214738273400615269747221261459174501919712847190170671404183299635886172629243135443877272695233961641492496322010680317075345703675432500814824938089567815666415750767182454804911210049996181249308929007075292322492148742454752534813645806340953207116480786931210110385559056339037417946844789141867509905484499035278208598740435015896901552926397878658480696562437105935371970811610075726759844874460849366148924696963574496756188184971771691596635131865672290838758428896962640163370436607083181803378310522621491374985652259583877204446853630357102144072447461557546487902867369406696056025895055393756012629191964581231094770147700674329875136044108398613550487549525617337111078905656508440683482911078183624202346036996413736290367584752436252966917105132721947339479789608202622960252248477182928030728169318914102472975364445834110803809701847528083379679817609816089014907213457521744641067041236692877229765986690517663486348874428997261421630609608771182456142829404780574341559309606653290353924261698437848429078444052266645794892339981490105788752461518321408722397860730356141894977456503502251784139172470569766473288707726576590500074851390400400629876586785713232458746686503459238305551704121987415798260420751448136387222268411470314427834904039912654700320728002536354274143210049404483913974324647076945974563338754620227996454170081119818841561265709092033170205691416906104248072884543244318164933232718591263265506370260959444637958179910025788991120219516063837228184238038679517087889944056524525639810215344524896517585177590821618762781853705128175262575557053039167828194375700694583478798084664423473596202665749653153089147365077397673403244418204578839971091603558072508047370024685100176757659259228355497780574622327352128338228795490431299975843709581345197919075929637193019235777827941943577682004382028190469660489759047986009475963687195040039930130564153581357413320725851410360539781580036281175646617021511973117792761456069731144136622888610048933825096654245355131935765026077995785826070836042555609256953242255374686404368932773245667410096130662522578485866511055782745740993649852962974070012594060295857036632837784590750890880728819660618845563816017787212335014421227366274381119866626352102701295458448267314923502913724047913303139661137380470396292729388526481666134725052202311253506202845923677170347131524664467859166782979356882410252231507277745611813443017918842473849334628946643585037113827937716995737755437485095046344444195290355767018307618078819164083927084049602094179715795136883101312369350873562079824502414765051835143154064005302641194244260504785067703609677602620719675000271909906298565932212648951114657924871880081930399252073190778442533275049233404163098209950983956916148659273992536574930770290180001026835934046860287322453446270566654827913805801466406212293539375660918801291056231405876572255902177062430033106478471690836819207091701612404893702694976951965948338560433052227659244211124007239366063696645943754914179161709900819032988474808774184786790090674022736930635030097404731339571332825031512401307582283925306448239237793527803592536441851203440147851074803572778310618796644846722614588411128394571749308104288370330038007811221406604847898540466557406329282270050143551989601863511994413162353502562883462457176570426186264853891230423760148068121157738154962340591733458823482220331378111107904166808944042191816905151482812356873910683719894135364927755875452470024376868110936531303061314312373782476537564953018178654480816107664002243810593410978529679240036626110853078490566792101985645080443125296730870231569749482036315800225507815735000515320451883394704158306542706926536923246042597489836838318044624747464143418836750415357335159377860184276254509808932855100748993134557382000897344002304068577665919842625363050549338586933029155701059243229422506608424280560884079848880940698878143588884659383931356275031438643054824035554936396520528756407753095838144804664269292673801578363804665019903827452571012658157475818609373624684403879154929633309489280701303861774612822126989503730205251896062075095671019497381398755779760474661283766264740586595822059623140735441431068285619787880275977345849117772685662844540363925828080052027399032354179206527348678691334500833151112759353342215639451384128605529711116798012056893859644088118041202057269137310100082240841273091926609830996853373406789221867398631627140383080062396342831336232269654378386739818289890332351913610640508508932126161359115213590081977385854753309954890672122167376737971307170242629273214781496831480174139497358055915164139378308389616529597927768284968037684975751480438144640253793195654837598144648663120204727872025028434768567102566738221327238621512970022179717493067197647414574593758523595607185130555721086131349710440888443245213274301260654324840281508278438796710795400073364358768613836056570298364059880476472504070499628953703621954599894384438808751308843874783261711057330798149232383825728465475708034861827724130213719507437810160485602571252910790098535205547923249120249934928208041743557947443786292582913483189760098626984354462976895138693984280713571325577898440511007109314517619732563884253237842406695479005661794826877360736820554733027379229593372212836512011659102837205777434981249818940100376533970328636702198386368776823209670515103366940395263827337362912231853420913029356770645125463416773377018509348443555398644672385021380484046889984329351745814939996919384259516355502967449156645148082241868607624338027418110877595459506754236782734708634046679726922440484991745596409530484073575939651881185748557985187569273693349108961848313367988071841709499742710703811530623400246836132691981601666148613898665425280062146841724313817292382160778425344894638018730427132238084485303956897325869656174131953022773074618712409363606548222694154003949811881935616834483046827929574405528426168915255748833698283810615786236005070655854511852975032146798230414613158846284863538763060377684278533493980697908925065205747372407332790427511024382552533401512927894173056532505734439276705759883440501251755370947062303571480754042372077804907452560694365043422821223298577216433116523820922181503166208532351859029741349394857667603723657378037338078174640677106510150000388392223410841650310744275740918472140852101554416527952096758644100812673367577757205629062608281409676064181436108507630602462243072305370816003661818882024656720979130224326154355917163198621394800806839163041075884070306724041823286586465671632368693117304519053948612684644901835949118176222512602839460437469367302578824751448931710684884564591976124590078673790419816436653601861641419898499043314301731475211070928898210769080330485179506550039957731175135184505648037650483945491211284446696659504353197223703771476075011373586835193687530747730796587335830059384987986865014652829277157254826167097263588616286418108539049357992758591645453167241856047142158923808110917761862652270995133112838450295874541981138383772213106393016197547533399195416912074773823399816090597834291528083980226837848244851210705713509787110839152834292972479635187377865424005974365846841975945596630751402233500760321967598869897257746025270485735318988342374451118078262364648873145792430039386107617168459539538715677394410166352264211929818605841797500468730109383915722686847939357592342401003642787992391022315722159991801946632781477355935715165982194764979592736555811531258620278102495194043403514237301119737396485774766809065919343976621832087711637103687421739447254966348547709356313779796074102591306162674606195514751539849559156941208818235281523850384612104486590314766229798263291425015569410674265206252439170072238450209354095938193475331601787069344473780202088726409445523794125037180655556511426145602676567572368918480950534650424528637197225390279981317500477926280707336922925456536791639700000969563880562886737633392862261515572954730539529609572277256837840262475986397864233455096880885932849838965880071433499071714291422370795020073216238479295585655746242391173975221431218328629061203563768439929617324622007902720175626940640576044635279916663030969023816558045717820750175262406846602287352930854361515911914983491080639266478662588076906001484217962072439140377559103270678786452733882149312471988576152570158553051297197225087757025602527275563725361830684785194340857133048435201309031241943825548420047207503220384320816211561088981216305283242369598201856533444003516968439701548091093671174422932721505274429743766342547786512119891685297226602380631869228005033904733165808356059483956840972652268940259210436729887871147061949605863827386682441270176491872789337461802924475223703490596854560719375465505096614693150675749983483688304706429250029903223086150622617085661185314981993082277539620349366398662513748273593654135569402067350598006870815486500803056140015863060155298079601889144321521160032908357350938173330432744332472374338093113865993166265953466027625834015080163805831732912998543357052242539437211468580275359166987039626067644869892182868535612900892216037717323168124038992481859200682843746017225496196342925377063948860262251163859600907504960498520782189251354980403602836091070173181891856257363121591785677355631130194188296888224946042011285902895248731018403561723152029397663929336391736373550784206589581412649490118177186160846328200606373698548143722452219231498376180607204062373861754397527343969376511967453169558023924078379767479233915256956144656285641102953851483416273708804961609252600076642567291602547268722233481922853698332905729267390380445140040927009744671758380592731600965231351041221093449810110089433091618584264652918023879930988785889743797886617431926656653619887081538612364907603816080906499315354361105938814309978557060998631409443090610636267495046963054432691007411215132623497153418698782260086522007663223610183118388554539745804838253547240347905923495519030267356335114988750169829603072982147356742482347010968609786244140249471170231961182496489519715107430430455748988770771042888264466961189868719681152738178048664979725470278427108659226440505025111352636699435445140905352503306693164274175937655356594243357695359678658148277178463325343661912622520849754665434521389594755552102331917992123368813244426509716659466303921148597954635210361045617682810392077186215136092978100258720929223978192449345969781165146556281485193813701829928455839665715831380821717060643717332303364994512768968625185748148314752242355388747673269069522579738488006829165185622960743741605567559867219904311618766991558462972492854886285679573406471938075141750171326940920627425502189004223672042361455811744761166012562597244206892700555335394510226130695124716933898563477885528826491031836071803169714506575602205908616130374949354837451310147745813475777706645308718853131355032522691372453369748593492744511297339404151454886408238240078559955911577646283969128774671077919854164155405860398304327465620654834517407893739920949538470599938630686657945197357223586015936379732334172593904510437575165127015463655439895006983446630124020103870576748902648371313885801637873007821362918592991733199745466593496675217290006498501210776029117198775769205208630086192842040380591544700191110693724161126816690178775931066522635082405217571579890983165093634312212757450240663179586260752671101380019981649871413350920151715128361055925057823310832054366846543324329892702715113417838843937422133452546799134739156269613547081635020682351979376407155043999341827900907256331217373022558595204489976957562130471633639795347386011179900335454810925196686985148718548961370248108616151994304262131054201020056448093187741740704188331310630617694951157982419705001984783931100565895541952851501252216280557072162470807894217845716123834047908373695850397618089585707210792648953423049994449477615184325106562475468250746228527266282163824427034183726036848046949761198131492344148396548975597562197410566681074453423932679870169834387463565432296613031862832743245560542546735138413348807598100420547732311565922004011005542527197185686260349876424592806881001511211131826827216215290214299293653822918939502957688358656538050926627707932901331907337650926129628710277425986116461104052126888372194391183793266133279851011332606088483836312116930680507756001365646992851179229621907520807958592614306110637728601060348077982784840812759209411766162595522967531206885737081890923544230012453706843418815136415461103567612776876536619928395918074771109367003572479861774590837113490644504180799043381829926579568250060656296134450636781082242197292729165829882587174433759653277316099261523255962447009841669600287693260703562198213257107826727764490122253276313467607219850651776547944802226872090837390115791758083873077838368859062204563538581635673230133782902063570523286920258254450725620710319784787005572107294503863238694020449691093956474907952385011771963114165113779418712352510113842485958117088324023488689061927513413476512062392790961845328465618258371771305095857783532759370804114705055685150172721446203924752718539220594026782409139402116476770973536405883762746094180783461063150095861490666549148250649540679791672466112549930620950488015633354312118240163609477497271003626137664273826775560760532819555667819620422712377628285556984150830792357452769918863762187660571148622039539976601812809512210499914287163822686557155185838302338825631747632999913910706901913410310284935549715079975261857736410380203798081395113300308055051890136583351119331455261181903311573330820157055648302669788232085330371813366411725633465829964596014127541183867238543879416325178277578956233561432718221864681474372425529334791146104967762099333175648397022416864408245508766033091983555270122020780884692679633474894042323069973157666017544341248944598250081036143621951734210431437705149511515043137946890477356268708260008517901510402340834371593978409160601676752652060311247586165985385143897336599537416043323154968276378969568869978703614331411556733781425229933782578374486386043259485936760978653692793445910517369434322236720072630891943631617792550009227931844022901266414400709282199519952251205346785188761063254750091794017354809570856752913707190986823493062440062118779818480134749380545974314788169954040903226392101464067793621815303403225582526608453689099841003943375489842975458019924241102588680686851432321980768497175395622583136565623416674760765261521272164727964120383026963596158391909606659850443885963723054043119497062241436189932392270874621772775057390460107206619038207385233903580130307214653262948347076407233835042935903761831411946093077894455200671093969327790526523233269550346301455108131732123037757198177393685792583005347957583673478101915971329179578664712118845874556947143408498466899148644689269159584919048072321136137570371094645559404375504705542740464369057127618484761002199980093804721307020995635929444690392602009130981459545180954616844602552346823241174966362372327382937686538545104898337941530052029540139663849295787691950679528498697024664284776134677803481741110907619258448826967155956097695748604615119911768292158250094725500183061982343210494686349242841146983119467337146243466349531560986565786284457693826871181592068067742005152302943678006015272076962726784284213353913015263059950237918143695589855655566979122989715635282526172666498060410742536119580091251227050623841118944743443327149620755972902349034415697886492987585652485940918521968946969087774979459409606323336502963580688467494236050286663230645714843876127731907788222276002399108029813084891733969572917984527070419814111770427111156646440865192878601731748785014243804143530677000185629101712245475831758715009304891727728285812784780504279872112009376919487333322820936346987931455854185019594326275470220210069300990123444148441783867187834815614710426482237172001659771621456678579120935562072006030358159726806011139236342283904851345226644530500779094500763606363832582542041161490820499587717510536835576031607992070954226122120565051862288598306433320736446355793783445858234023261040313589481063253722680025739811564252681659087790509491146031780886667248779869763798674451974416992024522365103641238617858509223504414981928170959683437282643078500429506026512445076737094114016200770440212391824448746680572863167354117429264104683055951114234296139119880061148492205436048521331393634733774281914635919496171754504620264230913043486157334834392528694652252505416160226041338712523929786129928305484605715409296809731793077802021564780114170250149109207812319246673414949872950890771713359539969758259273390298020650473828240296253704614833478232081920558522433811347470676234725313210059219201542175067444701802987962368868054154133741846599523138381387352609613836243272161333016239452110171548966082392392548756656465394101220976635708524650538195752989429481849016175642495555170918764191601554165179982630163998553081836072805222459462393539328050505020401576698062729080793603920519022239350276756056094659846755336449711685232151408796386548550356976139832627009739289549731439687015291469351538335166261992921199567056690151582779755641727188808903170834800505673968137743892004187299044247278738456036340203379118436716081135891405649475339719521916057978644903819959877196231864195647659569392649348834300390343455208480358858747319417442030838120913122960797086943099872994772068602629239149312090753020560263551112485953714046250458017805565677052930959530740513320137640477110707030058491235409934447757911566823573035234379586765947754783346443755405637091242223655636621638768616573190730989944568697938421141263316476668795743300291951331326999115958655338268276398692990251642304387704264263216746266082079370091581353152516192712022474736611765938378968831813886307900807648776773063963077763321348338613929333526626189421963827827536922618263956287023256397493226768904694312499274200333747345653651567123872077376585760510311383612012018935941998256658463143143790986992076077980638735887595279658037523480865459609424269452202550179756723067342745227331367969503327097579262202278010208890650374031604867531342411624662850461107136547110208465975747164277368484007824724092249422370275309939710378963887067417150942777899942798348803624023366313329056422887832531916416029631106354509739313670225520081433257328265592369132759822190891547289519190721610152951222157602905343118515891499994293940530674649931375625948051302094166547725088371817730263197987985964971461707101905302051481882593348194583212907356861608781923722377683001546445596394953401611174293502137174579137590949155973366525790237066830736881167861505909945876689146256756665742576426945757251907727103778962528292863578747068366857196494917634684870802322953385370740646126392947390031620731344055024048910264426937050442310985658616348623103856944140393418664514725033606643586692369375452382255053135100395233310064252018823304362218333750372680160578819747408319226694456579288423246218841900481614892103208982857558511937512029330738433714289587805973276004225719317761147295379486560444493866407625614396445544111635916591467184715391072998940807267181563150915333501972255261620933421256045423507652217722755090387747377338258417906238454147062079595529108964889864189524219184325658210315211591276368198572948577546069754224963433573021414483190304440354560564282669174450307581041071207438373631580408594952719328708463449128878570573960453008452721041496235151189323678689437915352230435357964358433644682229392095453232330166105482874492948772445297024556196574620241453392832810015760904776092511945044702140815753414369865307743808037220661791958032626721583014626129733465475706109653976209145220740949272108589686326399309888712513123437434094187235560533374527017688940770246144095480376083258299244408778577571803886061589706406360515029409332284713806168842439132429222137730184368172854902386338858401370524961040186140483443895240420546346868262663587956822567560308455521830995923675550682497857941232142009273690430763212377021290524705636711956598694535572611890770985397708510449846306064320732076940909234686317423883926161169022407592762251413914406305108883910693039919615648534692092094291109471971969371766051163519137498509748881889271175967488401124421665190857285953883615937829827329521035684912559559908432209062118514903274140819656717331655192023043042483031091954661523605482223797647117238949775407771301824994808717468898632471834818284116026672896163551304220982855024628161857246992444462785542264103748662095495084911828525563042193926549909437468818153315156019942216662273527479377556964401529294941848651120034249540135966426796272894492170223919240996237303665666553082938443607992019641487460972755194983482114244532449804244594454979435580799312935687989690352776532621030428713408004797384909346115201703891212924913983771563447602447096383624351690461626340872711999434483908739349618608437521954502476805816886341667878846327817821975325974168153050035107728614707652718400427256985287796732950488736092923339939425535162893528789607269642605021938373784406275718324575893835433189095364650988817838086707361752670385444210030342566406673334096356426063289110289075224892536699780607910461282291121195759016893946931785380131676083346057919316898353007983650893215179075939431330796738569884190921569090929220003768124347926962024649903273171927118765052047439868886313921993265878182334516520625346545870169517698016867247510826282418237964770568671083586665132947237618736791779355513287811194026563479865869713122251743799862206694873297053351752617121435955134879262541242118367418508675895705065737244263268669185050017032226272576903224441693529916652235373875034804162602622385519106391034192876653746565356953695332567487858457133409355970098260280560543001893899632343864921067977670432737274261604175745865185489962433433179180703964042164034876743957439307532769492038480824999008601290540440799063884023785916205469141548981142034114988200860248485835985173083956686456921425868811857822192397937695189855298323619728375419039252802408098966162096410681905020575407921738904039354762943027005512261132704550899150907627539140377152362362445280658346391159960093988884247910715369182614358360773299719151437853476216442491945682625655768508407743474354761714059339317808469101328932332505682513615206258697728347500485092195088788160291118001417514270308931573494134256062543935114162211794835538057129359772532326561906147930494540210720990817914204638949416895963915298398325268797586577122153147731524397880056363369069822381686632497192990074578130474703649814847132121042134137049815650707428813546663614789526847730917639477141761988987047976555781435273327217669816594354655639576047337536922250352727417312583364275233941426642815319417517403620698244656628132457655133723217714141831330927832275186179143296934282082698290465910913019636761276753159340348584628319834556279885220279698819957442872534169722872030326803182908089645466275073742389664695346123392898735325485776902744702389914395098695548149649829605004063586003827172836626613626826064952676722462502040793391834756987828805064895668918701913311693113871217720959711062709458634748788640534951403041092802800009303509512434477793170176364909593126425952906330235101706307393815614271545341032206002951426897961885085369468334555989412958938567381659455251085583644120274176026708490691682176277310524317872264196220839613255165594969728024405794032397398617506055205829219267147015378088567940621137833098744830963706479117716447542461060581766973352560987993675595859887116349460884221984567221022970690646266002054214287432141191847087318012580024028089997930285168046702298032077013782948102164105734769226457864695745902923157539004214710770336390368680071079523709898604345272632920779610378297367968899773000409804376746921164004956252117812969557103288990251587233879434334488170390654225141417432420309460516572404690905676004727010955497864423622801733368040187670788848178892705474228187881845604229982041777361784692957968770605516769908603221477674610011361217811899650149383570956128705027907267997333860942671003018310123479446964739136292949191481617353178360379534180337019627389935268353600629196856872627934799406827261162923599141053361283353960504068704094701661579223292531501547174706285373982853492020141210110373883503322960610567978826314146571092507465339821313601572062664621119803367893057668473512823079643260721854716455914733411355878429536430105983230154503566372725389598517725801098344600625032107583962883551345646630689209521345034821224580036099693453170066390439844239945034495079996622451338629513347109183650289615376297194498555859604742708795889931279310764568135106851807909611051755279422139843933337460071746131802849453534948620505220761504199006770802103182005520996421883437171272889973859268189332019373565575063010225717542523353926479345277646719308281966407140165209010368134729031533363165342165183302275132609009259799613546514711880960408720545209676913618190177662081773928124751758463104878530660303003954078838476228041936012396325041194209923335827972658349249678526271735258750488749120670709568423271563884529549079379912770952660510542731723169974407398598424194126008161503635155092154651823508358826342881812926101330414060049905281355265892713114467478806148572117951514749746946973441077663184250880416940097251916135874973541814879544894636994368437807913314505247647593332894830386376537983187441928834484470899695924172929074537417889865914871300130600575013858844745019932452526179960989843357187415153879620842089882930109728446307193296394817855964515666898532256025431076151947161311365235581288107931349040326688613853537145146516212802447705679714559035341087852868542407943899217676482326240360178267868305709472479016203675061291973184898149142426407147753054878350020002632053610210951711763097420721639987737839854879759455398447303543196964526048434493810574022061365980467801390536418103527223201471969152396657374657943800945695859057091750442738564763443977297262804059714402657524232568960881834696759876869390171768970406636955752410439575212936883492768072043553063780928116630720286153253454773424281944606949058385684790212756644323095987325736752310393711216736136622700216533247221844553892875689542221521897719816339395195105406483219608643510519570281473949790143323301183241430508677973336216600693799656124500622294201912250434459788183381706782401942813954266670706471747006035853299817986786313446750508237957057912737037155073662991559090890094181998317452346448971185150227561394843284112634019610109133922068952960949718225607211263971833792620185017447976091047104836574334641468072077914050425284402799820223646060459749980728695759083385468804449450551284844007953156984945989771639539532050606349077460107213657807309264368845892238843155754446910682874635276922335658746439354517025985804897715348501290943249992742379817136908705792592646729120454900795195920574018001883003578468002443450578048896797017693532198823153258717851291248981079640603466139765918522615353660775724995582058242119095018421753554736044015604440943028827677216204374711359282108902379234383737819840785401120047779666683291442408325277250126389812899096004181758554587234542605915076529122961640831439331262669238116850080133586212271684751997283029825725049556796107600837543912304228374992400868874746138879239585294077420967106177395991195048993292483877344348603821355147578914789199279465275411391230382724503869811736498543119442205510543054549419957473895420277118773315049037495642806978126192269054426050595377907072450386139840284364795083880240063854119641952675849520287868303346728519052196349719128884661026831105851875153105088680931490500445976669930407332080976852407932000398937491754722227239649401229357583055624926231236463843759654764563950215739436280369291088324672832243824494263887284622303690941302707956827784149308553597402681717719917215606882262164692020366531892099119515684040768839774759531494691988690478692712773212486344372320846162323749626031474924654701437065222557073745684358130990808514978705201676677779137799773378816812189772837387348185424140282501875082928856433469988978851642830121877925899399300061392367795883231386344909384427697244388168845978899476808240262239255551877894754034050321727515987488387706275579024465133793403945048943071117930755575597566193753654980918797341751656307599441613078376368245529473188764467526360910274677105162648618224129200199741114699917789866499102916874902236597145163186582642140731494597444123752384443498632887242277614439509887864789854920115470671523894557122964980171614912879480344320824810271091398688765131519582627653624030522635876414874467781506130784208253762158319065292864112491414560977698668402693504735730022386226029610499073956705246189865316763047805290353945808286610050898074705962035753317885275284216446393781788571898875995430796638081516139750357266892729332883459120371557589320251269460235286000307654184333353343468409503512759667517058625818745180057841780937501268002335846786860323668811667982513349450656293538565496187252855643756356317126846675961836212590504624733508147314694332954516021099408775048941732959178077952002888795156033507129989072079348762439575294525973152383616845544490341879923287546614492655878543587564471051196249868546561438921262147162389712770315336645644241082394253147977114821019670410384926437116165387682786290831969688462714196528854341781586293814500404558660234958592021038336802550807510339199624384141405621067498470791640977065422628057024592000017341081610883016899937588632582841097660554067792584508203101112095271785222176677675053437232847030010189733596610908124271536392330537884407410032708556838393138783436589978746339988556825914545180493872404278582797824078831295637760884727833969429016561508560549899786375237404310693401834256661636574689048927498504789224447511897808808579574092478497016558778677823296460357375573572721407790530413744821336511555157942697298927080631014339295178965985186771708111177261330634303664298296015355178241475122624064924929207037962420139510118232478270896754828366601644239543622500968549828917225305542312361555446907895154017956394790978419792106155727705957300053914833714785159628892434298818826758053034367357984436305752133196408933848795415414138028972544000715923680265036156468425400790108846528804713682968604275277497347180000872040376052194798165488348081915525338031236919429317230013341362078224906739663688631918779604909422846863263917620203279330407122544858422096237093812649859525160954303168676608713477078177936624232019792216102838975056500962909525738510979187866963006527831600963994582309615823657279384222565295869605075081640454450983326294833203018602387711176572985848860097419902805995328264931895570155603062587371104817204213242638961082048360617312499617123389439036193223020591402557627487518218242827673833301396711013406779370132426724748353095487246958276658358751193145853660984062314662137283498989692052038810910210300255237403712787528219071799774899659690084265572738792900438205311081672362637898220478625461028701446433412929063292054800498935378585063679399555839213978327754194386257182086643171077161785243752872249084594784942797752379687053293968741571846824014662121671068695749335171206475170634731225821748613340872309767946573939516178443038202897841100666977826648198210435752354110384541779620666481765098817606636160450386943589950171994843120323570046371886543075529104468350885765494837101065338979681745908484483051038264236707892013113881395292457107573505611639269968518909414827251012592045845768743247105274608704383250341661699632521241397543848610421521378438717773301636549341586112533821364356918393594627174550023604457785395978916211850030291610586843679070440994422497318023444390623937267908990382404616558877674379951324648646912907880548721648581915499921900059827254378044836629764103977223684656579096293259565213812663135948931702936482258428008232210145726919159465075800937087299919213940621214341310008235292112714362187868884941128847705711352738278887980630754590356427021924316720120841393670372310988579246124668882091837998981908751909548666166158572109595725578278263977332325490951136351122482930355912889095269949098331248398242518881775176598514506570906439066034035212697551380913029160992316595307458962606129244425727213253875681391183642631425172491907230635430115839609420643142290218243694111609746091840821818884473566729325570697946686926044251275348465108599930212376627709331382678596279330663341927640490027622152432837327221330719584212467956570424281670589105199172404154581563190652667099669965722639558408034819787887910103393554289259459982765153722844488476021863322434808030347636495343147741219409299386513869567479388029217683937451010786362113606039023574283478580485777335698041927653006217534043851607423718703956714498898847192169266143075504989603932517770218806979994473144820792444991421942250455187017920970004488435221824188939825198987756601366269895127380240628986478153474475249876218584836426368480218677974996152662497512796997523105459426052655435580644543481129846362920531264079315988913259738210377643439302824985079328342906895361708310564553681678800625759678719899090802268639668659529102740705541367636946301589966157531964961730957380485051698409124165648935599315381580553156293368451825755510991672938300970102354301499941197701541985345218107215534778014532277452060908294710591109877915477057030742419602094932326489573036342040980639917505776330336145133887801532272122058448906464596338392586596789977273874355934579248869020893787050657446010020541462951492170584711834836684724795753161314394611998154690352949540383311939772500545271775541760006896510228867090589990690994100275601727128330578915427891280104869398667902912313292089043614490649485534891684216257611578481127861617348478276293712480426002269138865804196461662683659840637722113512112618137857365113121481294542768080497531801889474012903698023738839012065934808555466319302809934789749834150953006152704624236479028241072336138420693635477332664865284285273085520930958130367920849982291924966709799796264486199514417579860847030594317207017454495047085801961087861528985789663583418747568457935567062215128752726398883839665866403421869092008462790194609927244478253893306537778951114161171176227316352680031920909318983674999501637740373366769408685896450288062328718666083964444807093571276147724096031261157820140152083389010914079588481994314958947658008372390129364976601799089541002539946338302223913491216171723155546273497041506104243759065890304729933161514816321334146171432438560843931686360875162852007431145822929486064652577471759225543489931518068022542869925078277481207223584930479523871135109889790986320820400546836160559491493899571463572383294775506683601488918809491066056460617550830286277823194538216699534969999119073861333140929391579607640874750587796874130820416850579050320585328981679299938201101267666718801766700480559630019937141394288225365472095160870999013115546367566763325304687420427269895940820541605523024746306051599130591567122198861966959795648475123702823346110880878761278314825452963441425173356038811391410908708277869643932187190401399171255651863200410615024534671993638654369164937780986120594291070760844283023983695350972399364742691344652689603768802191327171986753961344439964908068454282764028957847800627160229510667978232487281298698315743029697799661981133101863011471367393665315784056706660863375279639102768279928303495994344568147021354647134914572393358243418947362096245279538004180441291293215926566478548998093092388149841298717108836079522600021539006161506420150420470702401123704298048572971116684488138356034591363675224100556335973712857795645346050040569550451837363153437950882482841914721584734308807236020596124503548121188060881475226095641034211781853918011372753206525501702567839474994154195076592733136645946905038837674931517382889026417712180841596306145529506830935457183231354501187279802680557651666457091636964042998076657859119203339923925626843045222502349787048552691417882269976491500049574139778632463417124676123644983838238140306108348433351386783374646336042886727973456638078792535373877438059431222663435427958395776515215566925216418975732045328880631657627777504161543723423460739951366500527600345901246458344091945749039242920290122614644726851744419343054779872100062923333929650393942888293837202647125460247127073676216745412992692632909357624023693566288646907363849598786917295515427265820420219907403112975404408329735884211634746268185633974782819465559876493653103104952726524917204656553166261011993108654495230512455591789989355864688533941393939622179101929916220418446802429107126960710242569871668218457717371998116859271646723139880020602365266457813930858404985336425716771158606843828658909680202001518503110984933132800298660484224247481582561446462496530872981293829761300065719890748947533768328870366799246182924018788863490359456154463870431955361459900750575033297272545659283935364134807742445790962423103351118875649732653569748114672616387465246656240604796069040990720075406956847458833472044005554010690730127838279112676410471073895505154895909966497116525554840778420370374323980331746803818440276763381377554382425076277471721297173357165321075973893438863941261729477457109455853558422223624243740278258955486161443890259975635763460562028500362030652475585335153731633360996798771954595459567350044738973565270028586015748281517426061464441501585571788991025601915335970182715408356768310684884433870860011535441444993137060375264590021878850639948510259401552834470555104747588418078598268864966979773311927736302409811600212531868575577596792747938487205866023595169863314156684649259822594792255579285481165553519222038106144115303982888625435533910425329345110963939045737591145407255621385145187507776933494328151442472880431153614807308088389100826776134274765834572907772238437370474924543527953559921957752339839499766853850035693255526671328008782638469228345404857106557258366028748524103944111238188731625678080093410003756443290283859779779147746327945439855873816487258002043224413698603172275596476715797124607694502257385943303042958504514559186850973876495150177029183570901327215505791138157358671225117488613930861597579069698721829714709729622320672118401376167468072369108505771136350719040839775158717276105701229758760802442452118277463450007383817300431003614078680536487829155140210160229758125510945834432147669034862232460370771589260950822437242765957710929834466415966212367653364577261217826045678724129940945682779103630228203191893829819203845433540001266319296401730521602674054744491518521622405372422780365908790993852501458627739256989103755448443363746349116254037517612104802793311600696256660522370122876385516699594449421503585604074892185080543607372330628040963020525335477510441455347322064390649047223974558797961461807357237716748753071838894435315430606211170845680519048433731340168570986432002636341623268724894694700669388623549779569631695400994425448393913515524426116560894543429614510718415160539573967213485925518996831862249605327704818186348402931679859197866313076694875716732948651034434487445204096975154861621359352766327308753264442428723154433283485331839712531743594898937000033808559259885153403407514582360030493695395032468636939793641192093577450980124881268656895547139760004229853820945662726161331829050232885539149174994439797014188296547830706681191958238900562484934318900929955073721615472523349606692259118380386640658256814049940025572628905984135684928610029554796908021971161606732922593896496719870131794369094899349853818371285643017809661208312743136753510529874205799747559575704199367690245914886905891005324478919148212933834693611602679257082530951014980976022663141109575725162276775620785230264576834019251940826676867895416331855736597131775931457282659876403469461608709243493801540570525732489450619935212175010352322608438001865826140521513714705041457505233746683688858350666247061295084780206115367789252468432821849498971798058350790536392220862605079448968169547376225102517012435029022645540647552126556273867175271027812453456660195814170112295203969339101758429472775402454722796890366355818691740420225071160288732178076303224797062652065204461562200511740101510950414330722689792247930752218189895842079935225376114818967522917243288455180726464851321556380693267260548487875269502257620197167885938263447108449972974270019005851219988134866807697222226333275519404279765973397807043055703713093190199952877709725351054260974702570523559782260229379454645606631231688098274596397727322725978200488754022260677320617649738748093218055663808762519628678454213808093527963974795697228712123981698864440713343987530597228976097629257578674378248916466177374609832791628446626565985452769698071328834267327518780884358232583684889647950536846810936377435025115200485790583465005173763973382499002734236872715116353287004837911679230925335097170132942201799387556170217549765910772518651841646385938492487064167141274194877150137247488849617693604695840837408648575013694134220218189101349267468566156800552585698447514917014382994130052039275244327218645992027549453352320950309945846854180560574079882717122253113328912885271912682030572017057069636741856025834739480404290467106756037516291274096871318044721373380832553597546132280903408077352560906346673321689659921170727714475685303048314727837209141619854520664201760610510650477185850037567085303828148294069244933937126553182475300713854917031748084123849973916942057478468458099327322984151087962168802913759814281200033219862913100175315316748723331061468619600403086861362263334904229724544104886395833859330824136085364018595639126516623667482016081864548837294669613726242189870541835461006821467457341281559119693859709051230019131935242761238001439086912210189374353676192542224557923545309397538621756725577855024435826933064927090496220312929725429717312119096325908948811414492705540657960419407931076863285725255293036645782733093736314231235138109357265999752743672336997430243131760769564199259265411992339192215055170613107502932775690426845125763652064297653198436083926405796542558428059071900908187749105415664004161595116168426464744106688484004438683374046153792828017697022588876087045699073651405438529534454013220237108263369279975819384985509765601510851028903570582349952740482053243788823056545872311412042873478721705372767767722422426941247817097026381100855365868799292544491624160810416450701199670963085015390612230022714285296307666034022615532191820985711657073100549549755157468630211571976602407191577839022688895940322319921396518032290624381612039079017051500916196046912577092491389262186250934179865158825968726252692970749047113689146770850354910560920467654885465224528751528272139493549836559814481203345723377123248437838717477510341379731522542002755576789965168568300275352698052212644075051034727081116468352232064934207699986680583123008431489699528782242631054679686373571012516595030344139251455456128588980094670091565265834842731543866145181277511662508499373883548020124448549921384751773456414479555976553769144472299963818013807369492454756731063326320669662104144864575856770354324479108642576400303487361098051241214346351338378697844188790980707940757208276657502812792649140762679244127532020076380751346611971469138733590652889806102833381003807396988039820060548629155463534078240157034061097317312430209249258347594984553592370258633973305230270239005241311337806251255193635766429643534495914454788367730147196971399834647030987634878018049515566206319482010943307985374321205097374424824490988045803351992437718327005133916525523576024404520917740982606703985143526220441670978358961247756120913766308855941416560707026924181489454377203078256675122012131246704500750684791095133573519316394337990870340927513682777549428762393287892585175544344044655488005946596118595265255753235517760826971780768806022480582981857041514749730473376126669702941844305465520749684622278412114219182481807748130984611226805695948633387094341605946149538159794990544224147013500771147401885479583194245333859942268540251774365919546241668752541449319644180707044783266331843376671496305973940419772637617767918245082401969816410708043091512624260620760215225575387669646536634818683407625475216844587002295898393010794468952261668756544899276826011588374448819209379469108693720523214233279119969872406591334297022822130512657313340203182532959775672581726298561598964389947598822307760393783136174833094916487946904265626478912389952868889133614407909419080723736591568309333415735951045027789035290317526864619975633601295068680233128121928431342054441340736878866128274988567739025183114339458334279781216142935318216134138805222355298205671613628810210102630902605130830237492865738350952571430805824390938380690360932200263787262118686348355850349542043592494735299709046467590433685537486532108094235800230441687865121461076375032772315254474661946398126579323086736226447177642157279841966509286032021518541051332741514258183470573553802869951484553131166612820609983038880064060374467722967482906070081504710909299167078380828121874647501542255980359565076826464680776178673170495129045929098463921701971715422181231175069609878669217161200430752618791423389309881479018924497146075710408496727860481798395516384835929492861853498843631758702419828380359254953243155207186585593822961696101164659299389428955788646657911372031132374534347599814695817338429921401261000432665419182586179607408827839469336738429193383318180554979265238013911312987803284445203000175932239664975108394712641022750144256388765093813779149247069529697464268803978818104667407919478545091414596925185919573711990662428016598958742760819821352805782621723291894190663654922987249641803002983166270685147520939535539803526857542827465949036891902334837004919778267177176313134583472046414710588425354090584813254753099246758714171521358007514537481962340186968385054120192478088453406584190763506347362588963050715748931432320360928157826985450104635066595689392087037568182953477876060507426561171477489510770360611566471371439098020551654714292407540728984438680882782942976397634580696862951359157920260296686916250449048676903521771120473711321588823991779013131233826847293246761872404064999227775782078267839147562478014495976405453396362352690170286323203102022873833539559795160335381859104938547338994748094836157616172825854830411380623378412936137625183639442908951291890700749193510503707782654776982495796776143295390548927378490150897435550236442215340174692462964904697357350388124168973129316277868100662723598460638283864555091564887499151170008741741674225038232763771978721865017296985907908291594313373967439857621733479405172604038748341073341420444638594098663233933945225690748018449683283279045511998578452696443976895164502610971993400351566071553287841963320022031571571182050456659885868696841925774716863070935435096052964879901028586952802526369735493474682353237093362793096352588592426889997137002613505910895489051531449710472296089272367850684627811092265994315325079376648910093504206996308982418322006890460966299236282561045542415167929874231327014600296411182834058071562862436226676024413366715789780512768519480422234822253379222317384336659238284595335343346507983871409865567863611695810076705813095561319823149557971651948004548914367221608450679691395683478274898624129292068274742853342873085436821655623270195987529939416898673742753604338738270804010852890070434185355562829148648197761260001391589684964258504141916385534276186678884689899146875621026738725679625700061161522509804305903244422009636994282245678262537091639364521644512839871758436529603140858838403416832532997824545691128340378016185794306998605485202815995645900690696159149774608925937779404433686808312325196907472904680843554746002891642127441287686934975637603985919776201971932155323549906317389129097144105823377382355917385962424091997985844049080859167100720464364235596899330535878659570037782115120912112645824041414120928956993860910039975617309516681756937799176214089269013502612467384744068120282457769846269636528718370825650241106835521120436510886443303685704003592645197810017999059362896392640455476512188212104183241735807912021330040524927893294307411649516870810312082326948246067296030310299748745297283309772595626730062000171812443749000484763824555437546240162543649870544673002520915805070429252617490908106287663819813066921203583655412902406467090925913073398204739722150068772340294144856918763162424289218981135603888432439620681308363777646256468171782282962782365864504585907802558534552360939196555637119773651539886418984258758250879164087983147002525191618599320994696670203492113029886558060334414326775477534574417103361491877814421758872923879023290513201146126264643698935186678636087664445142678497419888410706813651165531551837717254530586650440794269676466914888443225285042039782350325390822496220366208472398285459005530098182087546599672030191298879208720812045942389110492438233075484081360543414489241776179146972789787059405442755055681552512271155656139476957588774383953119217657152140620010504462037056251548373459520403509489170221988857131485109371404707539030066623277693791029454529826481497656487827861179607777935139921612098149642022907683814249874323801495589609319014322983102716222661202134375602006914208143148879721195734117625360222666706289162017734596553716808465006657717038833384312808016692377124372539623961385175676402227718419026785950285388217447521286433862354849161065447659803461037616802075938529701532614775845903403462423820289537828140696527776244401209465876706715587303616446504784121088441964633661340367592200858286998599607910028811511865468486209289711978545873126538705878424168763980510758070524133077330267757604108356553227808275567441163534312893329281897612813793055640273541222460496812152364834011869428035661252425902844475030093920393123446218620314909494496676567002413765268614365692961163791911109793763186923781836525707876325872872671448453262730060581992141533252955367124787749111329602788655686171399231133114713292001917684409598679572497922978068772931820503676105829072694598482916474357138268232505057479123233294084179880957968057421285119889427309817512721404254790224240231313569872942383159453972844660858859258978261225690633972064122139013276221556468481046796992584645628413607452857150217310272850251859702650375298663053430715035023316551940338647938088541121266534271782886006222673703475217801129554251873122447647679202976446932548973083845411528734748348463269303927673386754120114996444836134526531528253374254639914587131081822028563935068436256442385982658619063716449310648125919939911570991196540900372007716270669752000762952263149349075366216474077451314651513988008908544993816490979093914795158056227028949936771715603603191420577326233961451046525587875839730841695367366609440871835830593533781413327403461716396628170045237398688600665921025627605290110397104374812644013913403508681106662778112195613302782159207287312144999229002803948307056954655596434183577428320327737652542699125281464444422964649351006739596175084117155165770508298426061008186558349887342198169783987884225254420686510671577534579815379727783143085114493539267712423032888892739940097221140510375661768461130069346654923270765367540387296370545802171744189402383461619963491170161369872143559855610985428635645619744400397914377330328345432916012751712632136343801452974701111021395938889195936186093020137860670288259273840955640506891723153254819152044611058978536921492248803777865133643286212917350173199761737317883638145313075599166000864802003916826446964024504021651734595365174849677028548187623755495821865912480364202416948432254316976486063397324401025640052886427335404631171591053385115807652950287941439061770501203797898680339564288088171645344204003885350982251608026290553006995701647904997039137973310004762472810580828753314163996956253769425767932892498748907571029931408458741053134502862854275051618134061243983222602555965686654396418945345785133372403866658919361322760824204751920681932777956583533766579836073659812930141071299999174941282866258389176879283404434882234209136899966159656745032142486254629384235159563835496258590171872030110200740171141080164013255605154123544087000768805990885713834568857186533791132481001175806068497092633340318911073737144636672682129692485082036639489436993997557197059225680220405076228509533064011860415987686013993109000538627456077973043391412710313781572832425968348959208558759118153295170935303777344564745417160613097808158519836797867625293186710230742695029305476119951199184541811006016488439640452553571465095953827409296516823087324387354941729039400335495980013002160733962669140395271930933294464530985939834663099494575826562969503075784288656921868466192539644645570481164933639501377535119997238016923101379180308151691368615479884642867169745506158271410638448138606123079416104019044896594000525948488751506824955651809338656130349537772031006083353841120995409773963685070339732879202107515773221259824551000497807968436080763889914063228616219537327581858923530461966820439220469084469080325595829102119514320073372752015961145261898231038183424419122119701111831858305281441226093022559736246868316141557170024974445612356011609799976294081871530642997534605048380562114771329506062460888000037009966011915037711222627935993767553794661199264392347683610978395956545152890174146366785461371364382024094880793786519270582769448941215118069792127342477852286503519289118856863453674062957022661370511231694167771923363972931777034941246557048102490236147831014236500400314716401118288334473380530734532146405666287654913607644832545855488125586916795408407240582735066837103944230035728153242935215870204819105400041530589913093357262972113618035430564733807890328665166097743319923076600796784661037004355464555504643389657202726079911838684069189657744133847474488259719569071486048531470838023234991455719353628304572097493683961629011639800971163610677208802389330057650076741025639752568343749078233284144721625874315224431825894669404831397584483876407126790477740587440046440890888469855372420226100159628451101291474694469812079441541903492601803194543509495270642707601113699085341483726105266665664978196672383205093638271228972494463245712468748848886144207995889091717112815853004904629545742961076809270341136606147825438338367418174169187247042883351444307147728554334059698416826685786432761569788163580316808864135492144616635944849300436505804664294072029471791653345591389054046058753198880991841504484087297000371929865025737312996229620649843219003525105343108413287567522079229124997605262236160777419095109099395998795813765731222507871398719785847441543730881376076851165836436879169710565729975729756057766021149317669019120520422960123160829272884443793424553006076729606424262875059057126430624393145961463331358119811523432247638140251933978498482910228616926083986367822450351092270754217935540629437026513431060711396515609461464735692754375748281803900229941379533665387649405225389965168509779139069575846934884006518902416541004029115432548880738585064979171798152119746810952409596726792545505311255293353274217230784974142445321527225692342523990805214610936892406354614152678356284686238690131037932293566183153677972137945203632328793466247972956834585306440378279496650060520661642058591294643986549884128104021649485681573393017497180975266404343837272801624771958713057197155091803645939166218479430682792380731250381515114698547049031650189574691444368246173870849850468375012359816996234608505562159506989308392007044505793767256758786632916079938935665017889755323019079954315672051414290495149755948311253303004038042400030741726758269791792920157003479918999959605504493467943616886824634108986635389103228192718866011858764575154241238120098803709137721621209777810110503926983055688796611543918134589658170544933223651139824245804051892724214590623017949882000630487016411450269457066264265795106044239974257722325341339759220398211289091919885440070783780865718042329861869537933137150131095607970712565898915469324247280352693227634102998282868113923051186690287654684429326379082333694068666397403816079916890600725194516144771522809204653836402103122289914543115167295747708224863161351076920918173222011599907573410437880090698880022942668621440871026938382505828099131863906453820465417960917039675340229792719897220158849687636796439957094352807420400355154540514105549143594942794190691326541095799557990918332613721427862053201239626544276112354200789008402165070011591153161316218319463277629901109162202848111730087544959418443350196460183659620393766320476136101018021315389105230582542365917766082964978052865106740033909102752709357771807017470439265721272736147157961034113122740228507903745845695174766848620031149568057268282540474920643838028241278314765750493606532579681307123507038252217179583948029225420780650781188949356184491164111291196502601981827178002919125956655767438544069604196094643176009616957173375890584929731425672283666796513050646628361488116408324555984900391587491740733403371858710465555045980692062806499843515510948786439983635822889645016168520118508188385068606176422259281593832650347067751385734208897375699607163318951648642202776207332449629764567205859529440912870790175336754802257673698906869137098273947031913893585303835307441136238459269630231688240751711236362350569965579434657261762344766428588675291749934903985807603346931042688527659291264673759930569623928389064391777444793001936779751736431496436593255104163209788799102237509069748142373004688428523841610356017644036874680745189419904390603277093516931059981320257486768396899663596201773053807627278198488285202724160658037090580806423381485285382824406840531469159837966275478475500254461242630094486968774365545459156619047762447800245478692614438948913479864793199934518854400352832989412500384813495819345738807867180305508636645677533602498276623672237403357957056876711571595324904477988503051659766360598516179792043222590668905759280339712857619713286595644734412850161598171581592701688387759619592380605295034088421262857584245367508324832273370810482097450710501924357647145360622422117278799875631214860566728373546137130079035022725369940772706234221909411350239917971900949368531835352977206157110238805203314654348699416349072228708877469043484703381844170997463909941671722894505574913618011575724456879765501359499117052772932535681202368878030400483447770692028150279366195323857856238553931702330779797157012785359259007783885386289490062872963586227767306251704882047488056587521506185984141648761612432525768974680525681511815016581753918041470206166446758567182204916264152633759984803134760516751026380725543661355113690060337497333311483869220088178604068336035117260300843078975498366985062722161061785224043150936641402348562558855812666321525214138169746613480912604872583918076001828155553889380854066530659174023759970156472791660173841751981715790305897951098052354190254895340544909315173136223954463416869183942954878479497206002623579637415852864592112991424744221174665446764826604630536980085578441883296461166655115552900741394196030754807120757689724679287923773483439906066611509542099531996047502422601287582533306967659714972469376346334773278831746361959750259152345523545815073063326006929037135701456796004268834111764899154170094495929025044504658349842861993750911428730096370523576848141134106491336242719738704496055285667186712738833947108253818508174978684656930968952467430291183627118004419418934694707813038621898144020602069520288418000740303197195891845446219516374139915595206244910597957873441525068738882649022021936626422785034672431049011892129501946961896893348495724226446906252818057264249605925559486120469928109853421120184831659356738856194599557586208864246172723051608142293575257918090051248715611752908915211592360415713080642716619851850612056585337771165229410323271728797776745946180081758730513739411117171863001239748555890208275617561052741147859317456338611567899175606838860938688451322463267400816035685509285666459578561676047796075622498230619630001428344153585828174494055134774354667621857699023371571313238451217858104745643239106387057422485503826705123076651954232064812178145338026482738406779319596749424968265152247728702745059573679891119651685199280470381572519606942541245231662315615164201373440578396366073205562609985920165729018617109728024266259052987905503860931543400866796524136106897525501812530718499833395544729819290615010583482145436921726785627122273203650745541629914375500523747739927319177216402447690351024777564950405725683492773827278153943649085406454278684916745474074728699951936829464663008000462788296008711659296765677233716911909932004402351049236398734968864660152366080195639072562794258134946910083837814595149095524251014268461986472361208716794057699184508683492568728169123231600974752312285146704469212887923025330559183896716957418620149574940251997234434159416041580771910754167693436322806539256199018544915824114346660349598170573552742453891569532155042413863410179873378163726581623374340051831699695670026905333084698523206242344631555962961536005074717467775035603580652118265848004034459154922995110896258556386001152720605359238284860113696588713499320533438020414431552930967649701117079519424571891941416686736292942259550031633804504845979557708923231918376322800329772391414305760390338175519136542261389085110905962749503305344206369405379472577722818974500529613276946652984763327083063606918177952218595811850829888730356834592833830318542362018469324618812000469476927377694196809710185897352360295702093834542872052697426980061968765003011039909041927498696764445103599663555560571815127579311159249674847870220176562817374230554714538611899410789037181952139584636711437853293982719624426498406414373751719439824740822090861271649733264563094123662520047434007040452664289092657849985385681098580189169415154481016283968691188182549700162065852991515192509450864848052278741890665528864086429606827364302616275686475259419710618154485180170242175509917166168178378938340592481939258021933329812309920965533287446649601851372477989153971401147378768632586904636464693289990462338226702297054648865647856886244936177629184454450649894149997167629948255881526248554103859251267346169089985231483783334565266141914125192729482508607451511525354895408574614195823781430860509647267421489969979296475259671252046158410640322334709538780656106973701593254494312522533700647880109677394385070487045565318204785418176520679876072414057540009114428999428399838073306325287242537883335727197750013813117994080045488619348483941014832456548542220055760756284839397114541776253214886444983299788840573308524211492787555295934953545767579060323314331019066281584891709415356897908254724640308335888963208768339067385862222588023801068583535510602672456798345951630759111557144887590463715102684913316705801384060812612740603961584940540715935487036794127327137953430880344877114077765089507241242582655027726724933854680669418201873890556007971762213351006663042592897241354949757024713654925286048227311772292780095484424376019308715464696055746855851094557106356148825539433945451510517003378291434730777523970420979225267669774233903363890278361659901136849086511192986027727066710357560301798510312276306171475365089454683938412217042205867825799635644519656146647403298791942356458189631828660421856594752164365463921136889731793572499663733592812733236926104705491124648164506668043046917239832592039497393761026074057593140807935961590035114537677353783400395805266485558354633532329433409072887851464603143921727472364717660730314938301706422906763198429029278385846441277196624598497777577612973601256019770232347986210936569732401365158290604242550491620780082727375932019888219940320612761403361338057824324626130713564201700063780442345627847729744976274622372533359560963786618773672227127922919422867438556820441219101487418113611646439708680540951280563805030695565074703129622806760982569694081296423222245482786965468250128910209585852840267701249591357442842557747126839260882898329719458671570178802994119262859898634470080989415518168466136438489793814825388911369804491798125625308962323674759006613040756202523700950222314410517164753588326886592874878696175396743518240231479914880602691207442775309830247622290212469507950554643206230707033021821495994664666355511723815539827640269068075684583467549717301691932705626180842158195663749743481707586163828055851136099499984241435366287457586731970948442800048983371775973636890294993167885925067721179278439386624148053911287283615585745199315339229379310823414435348521541218595963554831166223773412776763727486871331347796863416340868486200079147750398228994234624477906923405971736889475936597434928097798171307827212716233104913963133088828654385244193051924141436016532111092144456865432428151167749607778978298280446005540855108938121309103629109092993956982047196402295334386792578598948527853547980171292224525077896829279792162686450932011410288052919518511913118148621268644249932868593370396088922407483786996476472682352348740124561779142329259407995012652133435892944535148406695194920047415035111019440599950378820846248248355931755888856581396522995319978929429312495972018950079226096233079033892852797340789352193286446878537181734625922273385481732910132466363269155972016474344766761798633139792082680485448071859524834414449037224019594418906980780065256904412160170073298095373808333096351069844625926205286034617584174215660343537903174729172085783748807986378678006535830748659056487821337260057991403885813073338803486203228252262712644607182819597282779825525142113164999999854680404879241015274815276107127628644514591208529997744248781966632927615614821602677469355546744672290165842433492507448319643602737627859144713697620432793178278973803461250645147349080817015083845339357258432344696960151364237863450829559701796904396569012229730116417961945249675115077091710188248551361033886854683341894394607870092491061461653582722009238925080620206956108018813537234874215099801372694351161881797459251441343117131694871205690272352189154570126816465630563892008456425690539555143993517078188425428420276885699213793928624406382526612258993132790955985779294941620765073156412131017564191671974760895633351549732217837663756631877924637741614570545455862666776146843578809846904949144993533496786423516064778576522135699803021823170237198896346008664784224767509901619164858819897044437093164732542458917402121378381654024088019592452669180381285054132622902017446684807752228846542842611250030078605519401345099525395944578194209125488239675630135714157144217946427400083292351819520747230053540555084317659315460591787528748670895286766330826844106324121187812578423768786875825329079266579946507970189105460053062486932875889346556195221451543112393259646171417745205542448193025205463789741564163633265720458296162235235445150086283553103761409868605383907135772941222911078522459474461742412100044733788648237140309507323431215681115111097497462865318916568930675806679991382406953282231762543375769516840065548589829493573372521480703700756943891118906290299862539042152182789766026229128720780446969900809531744048521640822009520801334223690221048620802344003290502655801763299953946831417728641703328962453876125006252352405755351026168867190723590200372296525108795749531616207735862004802978304263643160198116479275247974574166615018836029081213649493399889185873201764974911466695690547921684879225244250749985461594319515101451408557992870634240095738687532296499052209036859543545692409085324558582206449780871466567725417638342114047393120499926392057018222982593827035061328866853936047203452045600468220106022378769002759615115318523203245897035123195424430710710376594039445944960984748784235531968334404816310004870182842475819764185190352125050391610356439668607426483735411621333947037873483013708414393309564065075182343032922870162525731727836349669110126557841692866074173020047949538647339512371617835967691794949525260352856813475237964266323557419635363372916721780916155372205821759437235695526036279326223791607519555881668882059468865891004578166372177769771487266760127038965816702825866692739536224869392738391780596992525635507434698818227420343263730007082071401970773027746963453020185924995607085026106009204272242292031759016592465501975459337254433456083344294287050288882541188401886972212072601453662924645818169851600568026138630600252965028876525873027777834696084777382087927791071803837806937443074410798842570929613120721315768026510892012253451965958620167902641328556637350056885201273308014290602442448366618454285043184357853724977554085403357356677654898404872221373586157395788509063780180712877712591240932017628886554027881807340814127831072095252890136816233681395799621475676946044786128500078220670912375324228198728239278979609708843940159366329512812791940893067035554918090696799841207006793101582633395112112281819918719701044695973148352863196405613730676597906235849033674615688349825258527671575745094055809690858977167990050172352090648635633569774658934712888551469189523770561742202801111012007171578916299554104904798097731292655832238129189024721277044226874905116754660208049148398464788768517484038194996709320213928064238198885051590263118046715747986838441662707592173554832486418673384042940892082945050251732253920950185226175859659927233459469868448867374991715188367289211225934584335156320352192499589362945206441306905875812425753317023400166055813585493102718021338930823647982111113355202872845873956391574435671271635629485764366944508606988953452895425287001742979929473849398010521778381151993427117568831142224391532906282256290723080377279280095087576711861560571087456930839587923947833655576706684066398093907146367794900947201994962103162122760748813240774222519957228051662487625312523931131180991445834801275536320773477899010057527580693199325074215256315184620415172052919735121367239503873669935213768801155926335709889466320076518971659838869075765082143682340052997499849491642370007896604769444266961246172811918471144219757477549878527018849304245856926202687313076358028357820329211516660022574860644409000945692665856967392001286828742273870649445296612719855460964174445554161311324939871626383667427981073779201772872000890300688076257569501684535842099713764022319898513295430070090646516381923952177103560886418396885088539186893483229672171532922116895359658971648485086855383856385917380906337097669163498169140389659954343026271446402430082160070797623749572168049954249728292438298775304600246040047255867219662264655242908022653148067750212758856324656859232106717269144554200258938134382285907463434756303265499874586821530136455243943546104878550267970136771949397983208588045318361305450545508256346827366668676613564519030427285864294194510740528416727845044590334420798648943435135183637135030623507483173835972122606774791546486511230895153386524673966419804210288171069210191638146068776077058747048446496318475161293119638447089763824975073912616445356739450154162009299161735910606870647924452068265230921909777073916003547269818403229664435393017257830292955581368994524509321339307388876200548518695846133210202069031152788301209181104270875568719399566220337017095351260204429185774302308102708280519301714820762878201037724579417847632830670546063940238239608987221444909505411569910337650558313594232688857770886367673471232612736157838808545633204716038457246110416759743178719705628969370956380447067060497385538091377196517530440505909660217342703490282767711862311659923093466349385245507417151211594618402583969943635693363371813342933424938753831323371709624747791425546072536611171497549635960175602428662275452494931512630981872627595310831408399351794116861260998952548212522304550092542786286803954913987207905741718863905749693725542675665159318884356615014676556681497647068522999408327384247334566120308095022862597756735877961737187286304957452770585377330658264250853904376279424858852795348683823487041813937106560612665897526244814367046273470757617835080148318006816674411937684573448040706800260858854308643928780424879596186059177277398575938415020550825461858113168871377076532280859986092251601961917641186920715338122534133471487775793028023198392015309848156559542001897604562111684062686259657221132408536290158016226150855211449830066523946733233092350359931830027006852555327809580486407755853740666484115531296763775721991043405679210865129070474094909487280810245306923013956996996791277281148690792318553443916803571229574633638274721726074876712832854289336768556646734993728438305978076131459334551097557339228059805444677342262254556003698217269059645387736670447120662251166008550487563291366426337398893746184441968538979444529621153789677288512908758975426502188974237171198605555570530137606870465569508185518992373554674612660120386921357341754487046995723110429911559741533964410670699161579459316594485963743680615376771965876088141408207595881385143728459199107282424571007319099644925223502485600586579322845548770097316893700541831402876379797010159444993828436843084016836814873033924296512513454879603258265583294846073836912813658543551457789762803627347155353219479672257802961477463614981521935027816611471156092963118409158852858251490020227698483199204234356113406506938464174420525762835049975203003292296027703615567012803890800334051292481322817717692953177715690707108996106881119912102342013157705654729112924994710304164478603310392765971905259899310533198647596962801483673782615211895454186326570265026210818854047762816238514133575483239317414257412322427999995034637476992918421585112944515756813741280332813291812841134963191018819435923808629305521841559894547136465705474249751019027895368234856712146043453273355395899436745867345487476809601162197902166856153835414699907289917164268543789604602414904786703356712620013205830775015806573275282109090981577645516806454325128526589569013677237981108237060580807771137400895771836709384890722163532935292099367605707582996297239362887487195247625994884436697283101477722601618923799396056486259918808159471791069377411264571184205978535366137726810481564960397574625335597120343179076442945071737707041146494202315339552872284245885279507421432862699502503042404984901831635858232740916052596891028380349421691052849288040162389441702683100502667758598338589740640356792416646207639914643147468266091235156907078517920723149475107188430494815279469642755786554010932998319136873636973685981550538673042761311960472190613516041992974326460703048801323794411376096849056575431760873838899168293528397835421168998161319110324073197633379369405502922933076605312016707580515359817114562982465655459237699573207438270717192925909940331544882200602512515437273671015797382954434744799918605724587686607246004722180678809116795798178143583145264498796973311345343971554440737009795932847991817619737029958098437624253792201618072540961947376392407843498262339166040281814556787356235159804858662688035696947268003158717500196051278987837861350884728816915857089933901041599012651109157460359470542380911564405113360912652175866179048317104785007402966280218027307036629986115324252944957094091913128341366122833716727068756688163904474591632411118069115439927339980044165195536234001532363697656858524278909871031781912804049234091439213018811011256358896708123357810156702220870525292807775621130348420860322215416936559579377377651425229337261109116528357973910424009334699894130567918425495275626180961865336784953254409315048661159585200388994277224165182816762428722148852950692208509338373173330320338607241361406315081860364502450081450785887767243961522804060514384410395214241402258137914704141927697734560454249836138029285678656501702959199871043392426382021021199467721987522821141123350048242794287729883344306188862700491234197108820883518068215420158991666622049438259134839491960963692687393999116678620304992535125793667359332094333638365645701936424835125686257501043310039524598056689612918851494764339167852509155755663976782021551656596003554971146426068416966764779894787542656888468753450861105949583381064853755988173123378173610647563601851380545638482934772700468651352577985306085369530823268422244953506794691238707981495370268511557195272719227260945404469142017267410942347301130868845347266501255365523039408124118673606751724749819217021302726455787276496302427276258724205447953297267949931138979657612036556548253990223093875400672193942903373315683853346603290978534468962284698764900075561119015673477024112511418729671402546646536460986815078249486914436042488815382742940954825437147507818901180510390995893947262445336130451603126507152275132678568896248935955660712771329980875483919332840302554947902120263751065650211742549117381072114657333975725291387096206995789538391523002996220428722130885060596989675908629736655744879635469014051142917792357058777894967322729427118027983868060806796116933933038145964176593705388730386028453470069931351747797362700216900337546708816045035019985963241982865953313965654204357249557600585197039454377179946575962901393221134191944180451281066531170927180097764909725519847400576973888637800774648705417664735791499685021017181392743036768965708070322995608813048266084053059835024551910892076852264048280572982449795836009446419765941137475853633209900094659925436573707939491789798799772380265857280241782235153461315377226182207693918923803784279987478130085336124087270570084652405689489395706596469179131224658822474434130056685142966579760873123092199189323301509951331151872182328948823524848758285581082973289774170434832129651227172269268941783108856478056645958482648523178636785487794902847871307480300012545657898833817335858291042665592098630669062248286637117227958704368446152510768642649603415523998052762789935754739615016582007300638585481434596000058683179513779692971498042227291775162065084537140174853975842925210858365682631216457019564860976434111345499668891709192296911761128223818007764080852365387761498000987072431820461128130956770853353534667748043438050760218147798769863661270921048590352604693486227455232155165944798367886283965486846589140389824837480994439713420930809596218010696031329404808818577136168634290366425683557268077510911143376658976985274722909405620225267104507683507160133559644016673119857307908605804799237593816476925227801842996299071128618514426049824368780349240155643525983147961499859503729574033541803375585096662085854144853989450377991959965395308806187056145489127772564862277756295753552489241850691932880530503288404628195758061842729384501985596832323931496289683154666313252776314016402088197789942257457795077009405304703002554896215028986491092553402032784666226483722712108037992184486204945058277508105745912586431630449783087083387681282603099307491116270890853582108008960304064638050966337309378350626858961113303571892859519777368686525586412295230457272485005555634874650676743596152568500878242880707159769199737834026905429396647431359814459999187515457646887013933271444764647736440033221003768108409949270481987491832092458530490573102115075836630986423938108608279113071628421654911600040108318036542350999090469537778264076016747516515945644323235521725283887924700002768389501562937795878074533902198337397483479698097943345101739486189864750707788141340851334052083967989516434575895586006266107499207617799917081888626000735716737319475367096847303090475183883149442118320591755218682496186879831473627305807872780318260922597979204888960926667220346234029519769769906736658341592548844865093021044246507788250690194065019010336575252780713534407608749808742224012684404044780176427994237979689879983009894609756706464906166158081674755526768964352833847380774824039230998238010263497303210222076299182043200366112552668687148321555727576770248771866819898785424993137047266206647503429216415980389293061641562876382177848323203120426767574871063284672251986793481142429662081465945551029115058063357976852259334769243362261822920999425983462742862935971036736502937766403546063921226084110685997490511433165000198213886939964045140963050514455517752168728020965041999839567402561471293118505817711345972760204441863919971145933627258345807421352599448689851640515205662768260081909775713634118716512320134673632566844790392416884745977507896647160631895291281609341105981134182184939584604318326028006535654040311209805019365595176036916956810889024846707815509548691594955370407222113356198157150815922152055142273596340273833850037647945110151432682542671712711489838024196892406980863292476591909025140872731039389755696787185901120173433800427945941389390465107726556516091891836114598052828345557450268029625432621041205286620680580108946771156566064982384714771656170135939335266761093914341070167371684253948159446409504727809036221357102993304819633182049051670770622550405484620283975167564025840206600692999264736041357421314287287221896471818143227585693814510315284572675311316201351984482882605781903027635123841893130180005138608685039266886090795254983942341750825157687028497974751336489543312273887853670959671278736552518161408426330027902857108517589209044368531072483412646035893951619707623198612569689515466563871677318220681240044260478905508149232844367985817016273521155281356443786152866185143048120104695266148432589029812816651125522611769360745787761252497295009322411900045480257259952696362565404891938629434127270243792975339862056529095337179727625055572276236983478742172375021664795443431363039214492147817757639080445435415116557331348231155211186257557209115361408892563832466196407660719364025569864100471708845349113386318535757353560207616603970429262053031100432472391814315445381728146171707675954005956414657014162112004905693787890821691727612431869434042522867199543673364790976316686630469581134745733180226436392817274235236123962050366042008461988915752452063367634676359694547800971698257195804167578694441349552036312276188670351712810044610385829461254962851024099807746939557267067817333731083717055647603293474416410171084887456636178578728765485824909704779258581044426261251050827531883929136587568109081123916891295373970585618858572309875853157687667775529604809635727916828235709275683412422848607898256501117528360819898920247813567629733401631177934095687499502057195015514482644533445015127817320959724043310259337337948226829299589554825139787690429050130408453403523076469445286424048494520154937240640464905824870083312815524884035544992093968116916234961299673478099653484832344555569483967320098882217761253662729469906844317330911375542935085938751349481275552177300814842330957883845303601289724103363749342500305291970710798524354042858623312079138143119368998199602283592309952253062914886926604850732452156793067172557583655732438836006924462322480698427425242208995709336099348516705166654970427278352639918215635091385044756506780799783186341184256501070086304569035441184205711426565773298129720015415400201763355528424475567888469162605795558465379075926018041237076228812647918754019075205373665247508919518109274687447750378139659869791652185651177169723599064115433575918805302915632629525712600263688133764275749354774921927329975697911384169536690026465517101272329712070338266628126231347975997573024860536702455773794033921244048798794881098077554321607233387250127250555498843290386768004104249753025144643360476952416095229488051278485919771682290775873652389324064721067879440539941192099456602561033572957140299490737743086124998623601032868837133683238077703159547636277578149648338075620334992765032833020584612116704015947938827195190282330011431830397815277106206530435759676204427566100262748330736155242278087843829358316270476111962618139551324193793177344439156733728638119818466746843379682768993824310043800759649005390860128230355387582718054233056908030578699669813244662054253609772915133338137496863268485351675172113497499724783250992238306948741191900320072582307180824833452867673023927074095890909491704573202633815630307002801025601671500736067029447207023253485912466465913054838848929026555170167308869315803021111770416209018239989956839152726785827842683399654434142212057043313162721554372533357909427303284072112448228274499821363492130020930372772923244914345084182860752925377286175306987208591636493153247323474381400685110249491873429962856327392740769322890333578670631879957219798542753072695844750116079629529137132143074770318293916390485385205935408987435546746929812617503321901175644588540885752457425872204934711702016840838353061663490772465781898721855899606414137549324638104527482146774764139730859148516004836767606575848405663458712518717544773292042668173909695316312487080741913535974233896998170410629129083224695742289726953956639891796790748518088650546123905975393697420857376262349127267806453953440524686753321164215432950234219813186005984615325889680736906118662504385513555974804875866914857398968172273756809348945712949396929882335034689730189598911262021903337598444043983651194355297817041467688004619212546297985740723493158338817060348928933636989483410475256486716062333895738838136847107127745683449440386837434070403819400525008528305136382131656674391212307324267472406005824016955319985397336506449028076018987740034982874371422731983211602014146922454161969268797976375835406430399873589827992176964331120821154463473685031681569452341962725906920405090891324854835018834902188347258263479420622979249973980332814786858695532881276525428305569998353088718951878870457038079812129930975526020305627892683301058193383895823890489258394014667291435907959503660941787701370809981041623522911182245982914915090629341709382984770298966172291215568046954712837870674459433580163498292502653004421097587928184030561009094330570373541432661529609912907371188584372960363782048859190890913286499107947217020676529190877687177546436662789100421680811564899805119181094055362035547183063745542448757711566382712025538151232295067825082328453113849288984142523150617165951847212847286497747638027738966079893304927325040310986364882676467116596757375510743193453386101204319090824583374411803224779509515925697529226370159070629768961570866111910716132910203534048672756763572951359272916266151007342822019948941460978734753118370000915383383071221645796265561473371791827935031266275429686766255491782689746200781824076359144741986918069518622024775422768573442114923724203332190075590067019848466962933049463892260983046649021273403121043926995147231253728748852765328196580018234572917169205056823728293483744731679590260777390772414965526857793931525527385219032757307516912287838921247889365331192262788565197193331470806058941887963266589570526477388601177365185591926093077643860476513634469952921402906767170482068025825192512979314128256973559748012862540201651622988602085061930354602901556611401389638796298540439961761118577266200657535600966986047787189532881302256434724267538624308175021133569938211585934370630555232328125375439406709834402099453520453310535785445691611172042866350544275170091773147119786609077541775140981506276920345083025104576124891297800455662630028249682944042462647908541110046182746822990461504279957702994370956862163644093146394811868176245640014427597843215097350978710657473526303718313471103187171260359368413117671096674076678369499872167200341770591918154914372581267310449901722745330800872284278379891405910767540700717329409774954883170685882258103219436163688245052319887096921132723067208724959756932739520499753277696212650520595962820577197306741414993333314639538794119700211697954953563431669341525416722950269872269286417788683529321403103464785337482284648252920622905037090979327864071731110275378359872043324156556656618442263479317844696847727747641556027438032201839375799991429521116667764824394660273459311747096690786270727100519406213935392754426962141474182688573338478891085181352485229463670813694395180149906883972654298280441059954279918719645453557234000017675658118677358739676813155781014584311076736815326729499177270722061088391530422179285230121205239958094460634437468947390915133781194121992822819227751156523031859531512964941098119557943096608599489758290041996693702816683385904281481140065056354583559221359594404539853188261522779611164616012683298676916070671434429678357817593580651242704904080046917291294345624385866395138622210523619215688013311895569508815727810699934541148824328028440526195333833622378489459843803324448202655071840188973936517516738506734622907135091185263747403524365534462336821179650113345802068016742352543932688280820728721544210801118237792677586181413046062149361824187787439062838275948528235577921009504669710409638353742572324184772602434218785903524366909491399665338907095928159596043354397031578470586072031185575690398923857082763385953264631958062738264878580498764424904425003163691750025398879864402727609071085905058712952378953752826954313316881746931808809435138367290981243805098772654271191175695797855065996780677085610279519623717771148025696129341815657248027493590988469553532963169564628147684726302656456582671691963580106865356796206647392440045111730248606672624734388811038036835041095589225481212787379654201655741009629403676602416235019200564591159429203823431963164102526948607176352366864931184325370257006687038707765055925527341322113541303037006736496991717407286886871318935725329714510885469905172554510877448229818220224576082538183320336131566334028596789928090066645481947544290038608124419437849956371362880914174662850613548997826619176208024789689907718774686145156969434553877739319727947898865184658560520594839821425655545268727554992395004819414580961897040707504374701685568852437955623430501136957299345983411659450841945870591117151796308356457832404752713458578036944774134982790909862294706762655740229914791991748756079498149045541469946926382292279974597183255482118815419727492774104670616248418678840039615299735380551833025213980467653803315896279571738451724334506106099606459220462354739489790827857647111632716964044021792691852053940518667230047859431416267045876115368497461714769642493367690971331233247353772148830392172826989371569141985702422949927363786144146391594751221585083209501657882096696819644104687341742801357408002668809162183275398167984503824644691514545711951716258361946220228685393790384431687996026519486141650042639697101659943197677692780213579949140577571666999994882272649603546901396362057059765099329228133624445666785845607671808891565767633340776660364492106464274760590292064919829994165188943648816690883721430117868562982604001731494742241884970467949172526019544402746877628455706374880229888169259253534638451039653068597255008140764304351010282433823270548385469573236585098756390436033383462346682544795953957959820995517517468531930852892464965133109091376383871891901565354164013716290875457205083083150681654026607731004844539936137055805887894547565089650113331990763825575117321240194917373478723604674488133734507549733138463614692508780213137149371050356521090467959256751467915000837060003687594823476054010981206816595446414243924739592061638387597712725146797861024633997481521926895492036272846433220866573399099990054236098111148513214025795583954669597730126781159821025509332565223141895929032575196016602564655390609872661653791198673365302555364672442417347426323286634749886329355201280860471328116507900644452543224745922988927666202593437305390342683738866653703382613071006646707657023098402662752834225602154399730360639227187647946276226694857875077900520909768935371592677334187687290263836742048442790616777457527919720735135293981506817622566799751104369137833331996150616091120334670127993593743447149295960511533452748335261502049429108582747780338599872846283072128937130573389425304064529023281528151826344549583440865134742102940483486706436682478626091135827393050604372640879044087388262505663668580743473751908804388579080196804417199911949677375850065536546450244556308560593675832192866422269363659036566086097709566603809301982912281575151281755870811658315797756626640684379272612856433005790965676550137030418759251160994997282778352206454504118697323705412251245803763743962775142472312849127421065360901220968116463481586811753624767869639289143909459597274440089019687697572276588806069072823142182394784502927404598803651259632032983965117011602798921113077015319613902878769585942052779135135702192480197074964507034167088827554511170176817798813633652638439457126578821653838805335821340948584660286841275267900483266738644770430615163649971318073576410825864094988750526854669352454876727806422585462077907906389215369035054727498739771499931574155786462847488653048760894251848415314599146349445160970073978591440017423539620748308055144005239203413424888108757429215921954313813378601056060462547740422851207486650215190244068352109831721108086712669384436474102067810399515595559873579528309890932868774928212453147079941759775917363374213212285817530875672283392914226131783567642013210791514078138463248846649146414426053223991043076150940972586656632752516547470267771677336485005872743354009816595540408028604217600935420035349013751774435192888134876129014880524619286337164433959404495460676556231187190224428960990560070417324423245928125262108519812897858237417389546692745405782429646709867777485887088097091461963519162223364781226153046730599770002732255464321078886880732795625528258727003989492966551823034876257156522157976331469665768368173922263325346563059277134565355563245635603119480993449656238320565514444332516756864935520214413043655688194614764825475880462657080600462107098847359029422484872776085157699717266836362847348379873297064837355229146153227546335901004729190311157014669010573884680700487835664169373094945985950041580910272595184485618865459526437406843256089082081628575985541288241666322717756135404509554466762611939981245309308223895368663522275083132663243772341792644482726268362704557885604895895944678593479567675048082934110624994351704728733433975388774494094246027740817361155074227612220439354864419622520910152239929403129579994593975796958567564087334533937813731639616356164825238278941500077188723064315785216378218324725643303181807444925912120311919483963197020933412240153612432167846491830080145176252419269252066948875360718501592212078665474674406780787846959138875549588331664255362364205383030073679973681459074556195038559195106560182477728698689341290554710764178449479755421645215600201882093629482640935046420366873738506954128174513445275251396682045029715040769762251837740929036592822804846762580356206047811638712703134476150840976086255030275140075877932959597108241228941352601341562471106581051215507185743726333722424385708243186567516150920817898165875218520727056726690244724912481637855022806676881514033879745164807931740357090090427407510060307381282045919181097484563141010196471362758194615074641454677266354978017684617831832812651606400698037759331700326505271907007283661021769363153232260894786573177833418473918691383214898826629063650280873480062680692524863549356277304592614983587891258187108541278792088386809155361222727838358664860356866969212843920248415693593891625714229733398490263056135787962894190602114449887270641956973708597583446496046828961927668686754954931716893065822202860625705187221873441873884157364497181207138637176093831776254947874843703137145442108823069074214990147387278477725074799010626201469856316958644735333415256192950543504710986279874328804495460552047826790882921127204719342761386220609458728172959365600560566224424280942863008185001998801601313159291961771521543198282150133945896436307706599656271323718669941864553315301522143072351595365318612339659730259533755281630614146009644423658050196280292860982970890865651198940484223397383935324979622014648832069714786428484465577148755276037163730542759242343488283074096042680734062418996639780465080913944061115028458103421015816768079254928832489283733048398680129875260873552907348101213350539941053923004136648070958575271847970551498627575562949939318807469644466412337544835592368028410567716604491049300019628639602624615153589382062098731600752209028732946039664260750611474963059087306685495110358617641918682709427102123580905904879812581701572580184378298153697551012745173647038523814042057067738047618517964795223556857717920591896302944147864980780808952359652928046337672209323443048138802846007628122291082669084733543680481288069863677678011201204546130945630419608853139725708994638342450590021067323572275041794337678937650726920508425845775629318769048943613683811309291722878368996287988693018723353678611372393684394743563896216113692934136558957072939235522866094030345449598932876367350827525000162139586507008167227430178538902598514216605345163125734780557080617034865697242437101419823434607237719000709236401038168730095372985855273756902993030577608546106340848672148540544724602592035026367817817466362651983547190950341666109641285626358919288455187530049871734197369554347212719216874071697982068245219457563470369908850645639958688126607638094242449308288171963371299675554642841701134316231699007006305652495336314966680321364162658028666749442698100215153157417667125557770371346607154563754122970422427024443293831353254793684758066387079243951516180272768121932773865499451659827832717115898281944894318293759814508390083754459446480569777161154332235213849210976766528790606659471198468529948380935324724443954196606891361778774614343288408796255029582689061484091298109342782274451165971729966071671158856004168018089847552362681855357436890636645557245701308255263611055922811457274563877663798058766008103718454842472529911909465600958899075487739932660780010160158390475976458539063257233693088223418280486750874826466090620191305453282209795884345962941846232009007932054733705623951859044656344202610687791423382936113559021810463577007968993793191365590983050064113479481221914451209618213814156219678389822312289924750707447040298193765181727100296443151544681935600285483584744697667510683965092573329824481361587502580094896144524875141709635944068547474915746694826304564573769730194366860219913401116795795391864803255146978673393200145946629387191893493747058289180248356369358507801398345622288422167038714496089386461431262250004910005919935082419409454006024720078532270532884881290630572593698965586643249039446407587940991878096197855192442909737305222196289901440396233144222524517107982676426049201654142016352508305115621629144293814394257407589545925568160493535095368976623622459483138102636969188988495114978817800659866079906514763627637793183940136969303165327607945908100698597665869439895694552820563528976132288966189998006360617001325290167947873350606054423046135313424151277963992731355316971539978351517571736248885912726084161765637174172335283189740480923603999223477630967967226035015049213758225924332204570830859584105343011117639171888646509726409939726014301240579693719094798716138730070651411337095983546405999160906553602224221178538134210876688831876354492481124375326437685366317539294217942591883540837175434666649555250093785637612136117423696482279600328003956597524066498689964239466726023140833952159076097200822075800671014730502870985266462722179711770193666549230827127789040485623109461006928396749312551953168937099980145484559922422400489312712942913916000645775485095145349899079931083386607156923912306211758967598659235919203163805378047895490093736625354132753726401948945134580684384503264291739515491876944426379528557321930306605609772659338500049843548350817696558994270703723878938404955356330787174093516441565959167665660098573321674534422587392393611621403143753800506581410813043236337174960406701573508309642040667716503433655633615421234179869226409124658785495067361136129946772398012896756943315745287794740730635565358345358415514408784481580254732645965391715223404248624654590571143722635982619263235449096564617763222083577479569914766855452774795674838382893012291277882789465246489900337404977592473385102544825018020139532763823627010068642987329931001247129281682409411402738967838187337505221461992358161600949537539919232372736370663586900345132061358135868159978574335427883160488048034890469477904990933855581821439054548963277664267953873558357922257041238101404483538312369127091984691649800345112093495188307979375967120603108274414668789985669634025668955438776800418444157857914115020857788128980960054842501823133848976503772435664073306213339570967622984295868293230520904964156031633688179629364136861810502274665269052640411693027717845154282421078670304658441925410092221217657375640560039249692613251428483892165880293187096835889241861543018268720819616743580232369882046566682141837077311991002072160657491106626475873956363882415065235297273220605268396526444731262286803975686808417879675846178905723440828502157354664126038012403903981357615085708885311474679866183334975745851610619106006884664923226521916397016967765233401379470773135629500044677934415482702745442264890151209949742231138618188385216273212982714724918456581613708752724611436799200885674094682463126066780368793420686228923293132386206738090948321650402315400977234865124682495748838876957216923134001799313351431543642418978091120772571219857434839707231394051842387215856801666288879979964370262704756530950505487997376528089660377891942870763063988284937672875914831571940084499754332892344209469807926274683756471359820254378026661171658869888146546094849509939388296039398177065129679101536268849299739373781805344512699660377916155312938065774172831996182524809935832174487209977416152479457148303879333888753385983550835401330796262129938019793775768598652612219530305893900114141622953183061377415002965999484526516911409259083919741761983871541415629314869525665905098197215895441015788828108223022235245718886680263250258340894066096168446730593322764328847018497967514770993044550968212830517382894503714584240029531927823907217342150195233559649816756659914656086185685395273620445992936503309727052468866280603267951894027120947587028635777087520925278194895217579842816908087594531750356730071149580445647565639587634217623782594102401216046813645119316070323699437023088740176758045487127497588972666762282784044647232711214081892515825672250422570207612429535515618812584388878774782958088354227539861367926424777433613845603573448988948037181351406624370389145718247444075217107484521778160180082624856394473243425394822985382652779706727934188947184842512474123847988481557645859346768594218392558850439402607494276440521141716367871916331390644060966791650407360498695982998924317006217400325720388154640427609878967447920172479552693362138528616895809268605646768524378412177630029876870086000574940062942714939838770513236417649027173214001762859065411242495518939968357164877706012050528126174067953744778787714398126044404693905571816118103303577424521946207873999227273870110866018227496522929089411846218772295385121302027971063379280619858076239489155899201371982252885090674088113926999410608056112081890167450359734123301173782286028315302074545133025040359648725204652871893955165814300176932524119059953346480154043916186070555111855668123329986839822908289628162182595738110901928992994889007109903775582757562395285734505389970756903186086274965539997059038959178100522835238598627651194819357932783197921060425049657457762015053618954265351665121802283440981363948691600323934700099065471469096121850811428611770256365619230497188514880578983801925323764774974433822038737827465488090619887801876069124875832395287945688964445990141048126918492924853766085560342319255758489786146613176732754089238650747564749947162111303717820598075440984861739538311572429467213914656060394321234624025907677129357960567952022648920555602225434363087329066857171986203564650281984623802521578704810908527975148814004393120436572685206111071392707252315725772577951796258995019869828006521792210912147754533578873788148213257278001649549831059995598924758946569753111619833363473467760774235099055798748634972097621071750277099962105891915554292736638738162254011614929768944294961730801487725116782166820840064367993008883043783127474654511179269651218169479876074965334687080128663163058080122613519567308121623720084854235300436886436718022505854348307280009013035681508955119763177962622195912812953345489640554433638717862739576776710767758211659457146520682873246617102476776931908625714986326935808230304273514606784195055839629466138664525156695036099412316973873709608531254635829833893346861631394707026498924754514095783394903264398475173496562736719519473442028730734329916827787096033301576244686449350732863321098967938269564544564137938737262009503275204410309549788382669143535882388493684115563936434872891931270891753519300257650116696677073036276058488014418542050906160460869255689686653110660167810037680709020618397693806634362347998929744529048233933603629591162272717832214094007417175092467375928496096850267288214408548213765551064326168610720785671923322889658219294540014068936369651689324796784781112242040722246178104905212613212827860955920422818750762738219538873299460304686674152918037163755803253997656915651285908367808005389329325106183426605650769846747161203443199039066117346390561707919415278976516080888829438604874573629652656045382997739747857729753614009629259357885790981876759453469197227660189693909681917022873842704196823565303081213449056424190275687173488583537259261451632437889309247620900456230350141457669840534212755039762268158169675264554241702553192826442586746367283252958944771750221285368942511707047407612227823639889173483392668034340427063402841637567832283482767508288171970474992943952684539084378868737062987586636785002142087559598588430381766949086807134508202856921039814100962178887039443538607221036722060858095469001479538871816378425861844973092044007473810583778339210013398038813225011011101002247473123037085577395019996387906453568068429847368367592059590648180752322171344176993090044161735100163037489354893832767229556996754602866474332589637657657235403979697422433293178547395240128503458449372601147129114888353312968786541901912174062941115209153154869698728718636720630946275825239872832777950926888753825235140465928180175373582751502039727067022433633490714867013250488632424217442899804835667575384678893572468871025439344869302653182668393137039290076110250348792582649846974922682172687451503360880437732700012215816647156916181050621898825968245130306413459433114034086339921350360957852348532840182371618489433898053008227468226501804377256928574196226608264072819646092445168822976789413570374325545560347607565615050089877396785872565175469653247539062416193518819776437874673181849168227120686879121986063371231113035320528910227414046094134087322216848647939905444934811016239250225048878378515005480617689989057321880527568264617026888253069032763315909111830753408100192705331022470187733409239777247482847575042073869857654488380548174836030801456910200286445348784180290246342531287695244481786940344150457526018063795815509813848145210941006046872248753672321764164414971778656372029070821916147823933042245497666247329576577902128068578402688567717838435480640774901524586594249947930821134623836455361182985669666736073840536653564636220258852865130562403736778771617078974279234799929425555189519008424784743424393661440825379483534466190779982085004234570241035862708570432392201100765357548144523278466179543428238218404625949882840722425657034134550177390621532180331845952625564047175603547207958109332928050530036272305462224418137153693568694076354184745493594426575553853714881103852071484465778807489978204607734704279110252233064076166675577767991438709405023456691464731661033361800236316703484967930003936221017825441604770608334174008963794188793062536589349453094151023785912500761784906648285661145018540670714010707797384550391893204659158649144629189319648237638929497849834007421789718117585008561778900974681921396550850939450328777303639452143589828518569714976106002024525897196199206692396598020554255520607682537228807530232036203075952354508621090774906365420634392133885433681935602029166609297411091860671945792077971736750953219536993527396447471607363919841126773498639034639937757505244586297139953213852270535114620803706760738184810918441872242470630325204910231144614277793720169266719504349940187867558487038163143771806892187052721018221287310892284572893861502601023018122760904731168241344008432556542412632980267149854503659717526090610604708981362989349189912458033622179157745050915890748779370627515036590666439057719394187423121746071729316171606938889658625070129946808907369476850896909960225427457529342187643349178176275303195666212520146048142557131404114634413347338904303853234792977533583051505952701010003020826865592640586317770123024944637825553465713200369547471500382219123203422384757307237605519692886461646275062347387327836899357397705663038168188192008218000782919513366515440875377889945244425862294321394219783057531027919969947939343924283427756043611028242562726318509100425232938992077238193962869370920120912044764531328748810749417505710676358846061743661495235723188793122647631087373470924623331250803704446364445340494581227962277654798449458368166053946905041570316725136335434859579955270868462403447986355958508174187742927906327485723732924211253228242237685113391876531209567898836880578768303436270035676958401924299066664895404265734609127618605896134634521423380292430993232979751650629756781159618897396507004007381369811336448746337060858528447176808545818238264715627803103033216738278536762633595412043075756905301303084852127038576729540483891894949207307105241672227984942259167865701776837150410215721283041893604079694659584471812024674088379401189718680488489741678037843608631487241060650174236791630922351291378308614493539956945631106275457540385486605798527235035953383440282152948592546013064700982061733781128441440111802862658974756492235170763841694740437513237915427863056146829940480529152613211856019366206433290251156016490692376303496541643154623277230337416133557835110918613153181082750763480753969574278274083621368650774107580980323640127148951120025257224030381061983226935041911480725433629801602362001382744362015122431111160796461494506492075254341345850264837826957197080319287319528482723110699258356794504173050414299225311940793438658811983972166055630608867182834192814315736314449311756182456872549093911476943062024089507460074750483340488715700937984731314583176131281169600855308387660470340092328699183811353485111416979002728431847293758284956554322171634573365646153728406440631776186319171887820139190127873054347441460470554068680751979317050687967493058667695580276665497874425872100114328746454770419717043156040466654472842561739351668213864302047118640252168980912086085263238581365470440756975538400889198123956291540171660697454082792000764392223589236638310979830163403616452231078922123460379807120788775349900517255086552233814289851955443296962222094761099544171063164884917193059362111613981390160959405782879353080717143817540550056214825141962587406687537733449819876929466117637801845885963634405372471934064867170873258367286979902305165964942897460687862246665188814162901610242823190121796097477661408448501914959260976193354556414712590091758953016621331949851329365187745979069537191268758060208067290100872197930047678588139996604432580969146945372368024670873086299386129079557036960640498690817006952834808629744297572166964246839243027821291588882059661837037274359882504962909135046769236382994018733301536377251515296548823570348282265678901035496603932844459609310396508073103162163064191386402405729693268867078576324919570137298044496249357840085387021911309158021503439618075326582687631853157276616102462783777010859991130771464206391834351404705868788217106428307586116415493974816315874027937119847700573411941547165913615844775805096474203460309219259441110146110093996292046991045447173300392163871557299622032675565216457758500957864164420495845023920460643777069022546226852895963792090114476297980861836098006374917754732762939770454499889927111240239331066829002345172535056181214566381716245017377186769413425508367994934694792496979093319537170829530647924784566039230025699353174509803188638499795719546907581626929900407325294556487370539378095312193995365315052881090023452705685785134470707089702023949860129205327139692775867364625725094776720958824891895189430710466125641806071605232468416074145838025393842393621371565252770381165534199722453470941425308569842082717352713352487028474122286450037630610196790235547186543994042844473608563650224890172569309123073673030282135961494669750521205686274081800775266674599325379738740726500292527028118035266542629576176937978512849870282877974294822250636947090702057283929918938334414086526167083346561720730149229952504780061178629228701829910156911597192512968573702932954877970124303858310248431933592784869025281856899306305387182362633202504458702531712905938863387269744108300959519501404581570404926765049790316718361963182419372677624608178437479269108686261620063497714396903502912419946943053943388477103706935102763392700927286715029026148595886319249939895917568572917690524974864583254042509906809198734744853758988725076511520191827497957860568132396107015729232782232646535125694361261391995917224946055920687087226641636271246914816842442366609508576234511215343024720208193619779185403838148671456811672903150568279941563615391580702654058798862256377146189780500350281259196479735634067073871509885089870149532411309598615319319985476117866923243581582080910446407225891211017610467331736320565335794767624812645840394938099581579803833364363250874082852711548865077587090940687654640463680908692955410079731547426935404003781983693116436505575075913112881802996151829344633177723011187657284556054875513789665227095470565775800318023167802222043087812420107845192425737234150376374437473791704669143859356826904060455907211263627196494500724093991125255197398420650704194763207156317923824427852128519965699862947223336182570250277188327889490243360045383900295412966458823696347424734938189763331314478602714957181042417233362826216098706095044425606286547954469784682199051912256321095007971885123821411837174612535628889967943216337586940241903974857122647788607353880711647271439034503427272727634889788941742624064682341659297491845140655494392241035652696304536802492305364743146316415241783177402530048074453887754574045158490429241941336035905776970955089517469469380262198078332099040153649498266251778515953462574399396297317847015155424296836042544052406224780894340088522639484088881352752951525905147932119040497656192020686411434376736404879383347596024392491087403169553763910475408797179776101316458842449979574237168988515496009823789088467546785772284369163162497310757515969728731668251950477848043154484591718804840444365047685071797638894138521424622460503307938548160021364173431966308735047797353852852048207903866223652461608637317083109050578180925914260956020017311474291704784687214929294625726463040793236487655290763017370461617663451596612344525935412869011491708225008954724731051598142206268723540636086464624885016811521061221849159860958478248678628559819894138168647539588805258201614098945309147882847142467656857572643642129996004970301143761394728356523591602123926544678565676456059318174662049988675895695993672782037328605596537358900987383411735783936889281565045453619369567884837693961906186805969514035751093085225458562619820143286801695693396769997653163675605660296090761005724051501989350096483287645551594400470517376737358925044565085475409701007104623031650817094836651089399152188840161156778751431477296569806239383606637101142586273461235382043335438040665258873823826405730141120627875351972044382520641050078989355476567097571867109641744954420791380947910805564466140757155443314939357636994328362610255296461468641162234949968499479016282819884645726094973820757139152812366400653607196872943626011201431335248791121083310916377110206069480923711226688485343035825684453341051694974071007691644114807551300766080433170551406370927714966869859596795641575071567528382617662034047064447353184188844843924307201117286398747748117408631484396096111875061045510844977357084196766361853926468122921796019554951723661481265434453714467105362136021959630475360967524229352918608185425899689577670627312965840981636479354724401748568889099063795680006205732282927581293958727825550654258139529345870987731040237779683684847678372931977847135356353559981320266350723908046123192724656426262351728317275067993785086984222486773091412307652828070775859279668260690285586799556268521029854158689733323328272081976596140089988560935266264936300440989151086174908351064217949046599388778169444941629242427236680265687354907919839528060406055854535203443298475391118405047890054000870828990805833893934451478417985433717968174268525711059727261638552559607462528307956522447236005493422070043029853665665590606995693609583162242966895539227313397815123918355056774474504112528261766192994508926351390547418683912665090962415420197731339922824363480996810829139533245406244270471232821156310430601933801451273590472709016250119067718783793373917400269463603477114206553256275361967183138497613282045750097980234186351805291636361468884054955775363026551735834514594148941796224465393165304242717306524649347950012140713297978505698729134656846663145421822515206420896197317358445826389222684796942142670120043382610004507348368873671531353474504782227344919543836946593556442105794163334278735127935710435529522182897462511759638400324461331566541099357761177220229140271970230481376912435311307320858478166722240399246717800548994021004637004593960240110483764805626468698311006064402443416296177029508059093043554531428263294622625335876362417870351117048194506818672484799475726754704039717309109928372621548154057604018472995527695526865411585368162782476923671940932104716552287123644166664491692467629762542088038732617388378644272290285916037361210393046098946679595400273184716067847938562622341188194146818680024252095005160386005732446904957753617211449874362356163995153964960134208593491691568955437754121395519282496948633616833093048917261181776263997447425674868661695918530679106587922961723863770991906108998171336132951658160418232256199734366088380099774965350538673595306080546499775288401269739014595773593298899736196249203700585815356195413009316889052645465413960317303762578264259570579112604806251290876596189737214492030930403247206253595127919152646370630463532901121966340188606791798974537172936559896630743979052343539318241487440336293187933544055338714169087137754113947989079917607725836873626780067474246457694363251050349180190240351206757590455817642758634875021205806102908004859955820193646763839968488253096295826240963289912674145495837058409595342204208341736488435140501888012008321200083980385331022884911009304178163889869502793548510402517997623701112200710526124643851067289394907963020798904135937146274968621814061608387824549084449807291249782595970770407796387702169580563949529038968115894813690600286658104742010743109809155080298630788129521792058906874388063455335587911386102991376527175639158191541577222667092993671013726740846786378221326427719999391031391134840512039240943990362598434266582615957647376288623532659008659482162928138226980873996598699615441293730069309603456104623549839405248046015706474070370888786634149899080936608315322972459608726577232665950068375779405860485640858150728054344439780287990676801030773404452230123620601897743407295307004694737326838242881624786726525526281791233796122189593074138787797007097357098352405311744606832286334072028988390414341567174022244219863036442067166980240149160609366981960654614962910482924418282781495852424035990280105195570223506129171994953503357649240387433963832191615618862662941834953449095207655129096179910975984591319534468644816862590836238666484987118782176985904293336252931398735271818007802341123613993409744350205293449505963198717954838216530087116057802401084344264081800318499150044197429654219595028435469440189366693699221383395198182834358837242301288482420683384947279502549439748631251729021959041778272865299069333998330919663704089841608749515453807013994297920645184337155171508742151197014487514951123332313681246701018399646599580431629888158922164130067050060551020903410976075726166082483710672804645223570569089381013116899781642316604999492400828048028346347704859660223618391898437003575871063570983797455763802023908112421821954268918711542461564697134054845588031070880153900739794525655708077813054634067718929835108089538292750106558134682959329190325928775770334468762860442850045693608402822452806646294895698877119930943749994189713970073839451074871826833014694777317383163758932704034277903531295309799330365734062937914857953708932032155814155337250334638071193249979647178443638645509762117277894540666717197689540324716342189402000044474133687509599825564783323869253735356865836761946254128592316316416769137656353057379182982206889978450469898534312125609738262434562878746574829709484032398319299627621348930268143337775645919200757115447423863636081296985861376893858725284425802891437606427566340852499994753686514365777071120469334136700088414907830718641708152284893290214888206352409763220169801967247569260349721823189925772971428500495397450437180453780614082521861648231719164758210486785936888535735907945251314876197130281668818820845217048287065207561405569702916968827999904150515783982112207667711042291912921532419737351987210658819749799540513711636421057890300184905192886020168556280680545550135332486903811036815933833769246300345518879825633177437854616280558967073711415514880338552267668333035516408765651129458955754064411949062719148811283360906278090663790629101448204275332736011328681457473600529600754175881124097582841248902633651829418720682439118087612471720382560345443163142559313845030418309940699638053138823507922801312450020294988381025231655339006547927416676233180257730137877321456764154553266690417307539934414925084143234099720686864098449110894127250985231135584487667282142657833907998232680125100238738078473436926964827715730081881904549967613955373797037047698946691134047544615688847053298514172005802806657205437209753779708385149934438704015055921196287587320202932975743859541864233344153570089324969683252397931876248368623531036312852026378396344708569287669610603083784387948620102068818124595913587242855268251281673336378590300813957182618002692391570012209634849772660667091135585604070929370037614619803666535004884093184476575967542785304158145490749844132040042910928038266454988338157517815562820748184062792738169567495128712272347577436168133086165544271350581639583681594223103198139832309378912570150212644485450437473803582823879032703109769466099377361446964738768386718376930368066078327268436875532764986789342747556124246912673537755225397466511063761807722115385643503043093947674375749425529208412408991732139406121044205881946315097301084594583208389274451521247514421695305405661884045077434396821704861557275715155763128731337462843668779659768736912056781324241553712042994911963137852083771387544559518330526270899649792553762317637155804817797758556724743187282479291856771515525441264643205883753825025269087090985552402315944902370053669813823004585439081672866515717892783526609431473656423271583203536204758950139206538031625664383494451111431902350144510394775481704880059135248063762839969834088419086813566258870725034303668240395021807861296367482633261596469114334095053456622758163428205744837368812973882014302651519205179556392182728659706378158768211193591389206194242295843873362109552746084714651680352039916981980405756237055582678829931249363858245474272444094116355593082859882524093621237141450321245343979830473825734303312514300406996105748863507902872849671507558777240619880735086758853194941273186805209557804058591314984360759693531625384195725712202742027157918183840947970999440854902916205443581758094435693345576653993259575765591896260999024036308913873638246938031627998700609032280147038264212475616677560827661992367760870718253139428604973937101249687073726561458903076473249805519213595427300022688600660121577900200076013678447162435644953686067462779581322252621378233384918450625997417031705945795461527859109013848342054077728215839865956373025806416649872539793966062795417626863573645329211993367843359399636186867591146719698740225534134082420655048895701798404164622442121203014461240705625063415543665301061469768006372898154233010737391613146457711423999153467153179520015033556499351462659140839447780606071256613420492908642683069346660766854713272854329452970695815000052141238159275229717552168360432105294511757832608327507715737839102544338297600884836367966613335213858398708607947879913443187245923648067123618901581616394034131582740392497843188379390921954004854554116752912478016487781005137365194895435197630075466526779164967440145306672053658446861066935512742110870254589488863503347932256178950449847753805000048363990810381090998424083044860747263674380648888095747440545571769492090119339532815143790232571599524997618483692728133224322562107351342261694252770550772116465038722896122120642086896144268495470433332337007172941625743068052039577916137108232736626275533601583967773318189817473230686679684485232643094302108167817487570723059905545587387945350766387254741313707526111318181631756273391613642393018651369095586817568206766948142658364295203662559069794422120971400057449132617138365802691702334044387236956531867934220080104222258431615419120302341048491949433460443625931315491178296256767942918237882300860849538425739666856965916550805248913951979581474508471114447423227034881254772352135513882473060997428368725729932221318972427242491086891093060349071021688953341329901152890922402721510209005281585354239855907038555723601018245733552485701544439659192098974924448175675161936280451050635313387492036236659415625889549878484687622816535112855290091656098336711637817228466294318675015333862632792392338429963918684366396676693488015284541974600321038162488110987350562005248797516267569547573495821251193187423535060067048574203379335222654876990176583754535909250648806051055318841109826032532925373880459664803365723756386556117025705757929458898550488841219875913433823434754069702796056145794461364365874099467580957107188273728900836881098579475351785932915626233477297562918978747033241931091249360798158574441698545734221375264796465618675846732903858980331433885512841329844845271065289594606869116308649943038098192067963589828210148341158238600447564501928213596034924842764864546170184042583776181527441806456886968178979004244426017604676234781836648477285519707870169562146231740547119091954595798289258029367676973458683747968423487939377584695846687220948076200618723554632860440073833089004384103929107588307786231226177388995525647579289483813295219511551137385508560701554022811982825891802371415532100271037538252963820211398253635209085265199452496793820052848401786799328086920289156913372977784432685743012032920548811165797133334473142101567975266008222947860296743428431011130028960571073252090896828079043231152792908568597384245128316090080260262683980144493663104526416596545616869791524407840971870485772371741555065082729152528089170090504660523465875416318315946787361543451753068772438754981536718127959780785892682664147091634079304571034501541986189421480553730230630750688990276987361552033171346167856303977993433259111921278838086504472680502961605592610045726253504406544094503336920974862874010728606971952423445094815696356865317320519399852527403671341720125068239692339861641638754874201002668181842512666719645208878996790111413563437519700298054258656109180185723470659906319188277819706960828445447974338583887942209246259546384966721382382110867242379507228808137590192942262433036271453331014672074662067795403613849202746465050987318260293810490365341643998177658436840894687992894982918580744294109483243308525861431920269310993665537764470314661590272590427895743721053085460834215962649644551102583599610260481137132833486539072463402941096001078889466304838355334222185348030823230058277687482337826921911816654801258298721039046976979694924881395020426062180963057121294818609088857121275794933032280673473272764887230028591030466406034593659704263279570665587020130253899654096556950768478800455688441616827413850069326206182411975549535221937591495468366855955742154708014065051104243686267870766398505735553489761373122733800225580717941388090233499090929417195852257300942432603081310223636501230162792060902288742894001858131791997550045192529213715733135125738191545389732257862133226813658934927354784188273927198216106120917340648766591469979238675875518101812538403351165650542862089802702667803793224073823290240875447872981757499797985281956657986061005077084297526309627579210562057262458182401440104975616723350324498271257306838216915194021332087792963042138870875942647385299370656000129422337153316969256979223993374091640197861908417322465972734468037810603513148865029779326526780174849751144989853108538135889720822203048691374150063454380082891981242759195839528306854242081660389837834179482549703392593434542294328614388607252982950787772467977918196249453545619245753562973064996880532504892617412807862894992361735219105093791132355967410477054327231557949814226245803972619323165894394094022731825163076132919335359925691540122793118085605470057022230044022394044764231911290938672980026411209570363120503852212240563988716914421427792056995853454948734546936787607488660044648500255519830488941632359351359295074391887696519653472579670094080698478780894981317625242475032228811126786587801767738105825513379806129619178113322689832848493392688646150774675440606068750315393285575356171234088812042566788723842948053568125972957197923830341860684553180857852170079953116277903971533683146337457111129886018763564896332289290762898378627104400223599763916572569927534629442759500652340655326484079530116627404637367141655959932870463553301624829055620490862345279665831203054870484328205634915159882046932280313324419152323110936512365557423545379506443424069208545039560175758167442617802786838767786957662568671611334946999699765358514325557853893260763899116455330060024563790336527489328224735013352851613026663816613519702928034559298297761917053841274333750897680592452936255964530580766854461906586625525294756044238981195250869665310459084452192466221052035043522226147383955805995793962590808129062950134650244890234101580607859026486067639731159806144797781701375742496442782832542723305262289074954113172012970269145597134791519037962470268905895669064104081871603766191537373832323178622979686370836805077155914354848076428916633614083630485801611889746276733229190178883988483605126611744673054127445907203482894639069702444822587892147386501107985974689990510788636804933471095442960591123000597295250680138435878039808338621494026888145384221806393462545906394625538474634457855590813281550029911901936150311901392422664690190941640290364978684045362823232533244090984130663053719492923677098273684328125984888295041821346082139536881460662198344305270897711191245669669150983114511083283639421939959031022491382720857449806319847738565326090620678304646850014785408925651837999968709311801345638869493778921193621668962428133043877139054363006831968225999092880983632030270863205792252335683693629711756792377034214275615432716172194019134928077202630199268584586283764731538539815872040959228924489039367355654129185052248412939294630060175620048416120880193110932987587547783361779534643611565144823402151814226377070435400722063679623813033776778821955351381010426839601875994335702555155470989366586475529195559752781172028269695674096452878716710273564735708275622757971867637222570900497042922655078078232313920841981072145005776859572615812716133319292798757857148834936920797152342455794131887390587386422461031113184897171521724435059520490555491675647490362683475406469345090051449634507276351814963134445258584207183607681237726545856498151145054496863382916217718262839912193872280324429092342537557900155315589950596095158704136253842828144417845165134990791748621191487977769664374642206178899899211835091074793785236299165553004063230324502606551588514013002998212493534609496296910848969899281992060987001289903896801775996833484451903465897752939359425193336469384951225659606023255126441776375882171678180573576104539688040086311047542012377966571025931167653463742173175552641058275733216756779640601368846352218321476605304655560305020238050336253443482174341001913676016764647696032121075010064820337175794377149373748114581030659228697527767061556075311320605786719561113440836326951533536979159824360287844682899282244854210052653788693303415659925300584950718889718526370313249753315018814134676330868974655871781498586492647681841468539248332758979257730720573885319951351394099392932602845507459818153387071856906901065781907045088061466320176037454189235138621732372283224124046909638995519577324857924860286518414809772886160402253133400430403674645639153160386582245702003692336719013120889484635745730329169097867033529230363224311311565030775606635495375686384885208725544528329513656656158038948623217079372806473426169366874834249415440085889123073290965190570396046414035553010219094032222701284578440780014421797187678708831713244226356103672074843062756775563850847361716631577432490373160914139490192918469703501348107029383652573368836022748252871660102128951235130925222167481699811297279505830685982917873132399120072219946520270337026351266961836864305790584842779452729111961264894724681940273236337019826209311874093981152385005241738814955163232051290188820412405600750075260534416811596594679432092815232884627278627939909990410535231342992231788958776005148775284340406663406462127616043850013974466776275951550404093028960273822202720716797816940007553084989353853881656530442848012380446964450808964516895515692473742397378174488467873007277809764595279293660841702262463655995387531186386459014332298189028571832850009434461990262023313309667666277504781947503200191455410752828067818119108196860243741899229668556436511095056469697606288309056037167865481893856150602102085358765611137372019894143758265753738034753356388168143640313341543556325200153172006738164825441637904243121057958660350435050388888483935771090571423667311182366305460982798320398485855671687464600280335262611015589816726482205954832061082751237119640139065378100009884188071446094072952826553073664885956510921588337357078549448068786402341291662171029589269321334476235960600522268902514346437751330717762573992990279407339557133155696044762262077705084401101727673188540852135963797957469298689282475284751002399902725330404379398698033256990687247276648838621810013530528773708479031238511095612784957369981117385645649777984630805262424650370354796639921303956597597754199509653238243114633879264692056897935548801435708012903867341057167012754445650479431497226851209999871361651168230260948331392897871771104738450507568542257763097548707460237473451525036976827902650990169436072467659131677429446220580957812439714018146273407565772078158215886654871222617887547199436299787327349304094011593553963279711405691465910726408225041578074153400987921086002148273531929219782913208266495515101852343266855418727915822362611868899767391615030070917375559546040457848999905784001224791611550459223699780723378992964690449518513442185590707686250657438919291832280593671652607973095684314009559755160736831027040883578443835124522968054570840347689843872635203142861172854909661358643974060868408089520813988839324867884340436016776493532130053647708156974978573091210646053570090799951326397403965289867456023281599529399850472113994855234281350449485400264929088248453899249594240513316162987132331177331679851148712510946930791975194920784227758752284942627508621850749290436331481185332065485663512240647591267309301908135858724583435083522726613466452897585012979695460947916625009610209884815050911190618487179501276562607555728239134001667119353967168609607448662167141535379031382302267644363681064945171937399814044538857230712866003308125731056787328182736551961668859337733573715461607663814546187585448595823535772453780515867081752016726489512830177108831860222242044693344524609328640736321785055806530630349050185628121938814790384541006662895730188817763974931876806374797443038260550385200412525179368013976795277102600564489525833509841702563686588176673265745723276090219354027248209318831899614416745214270404931129180378599597536896685507239199808012880154709610704846881532537268102385907918197021887374774815903791486275613701552002246905005277006184883688278122738120601571113096598113186600785363663013971474875004932010099660919949444467505230109732312444433789858442480529423739126151439316138198186313774373358582605318760254853413775375351146814039538833432111475288393561917182287231430633708014777585261412037002636422547621256983318235900233809127710216243635728801645971440247045874215910565595450712914402336932140203378594319282897142343793867974751782729561646931146873763151068544855405301941651303652246978088567813919678638738460404128256495765891161557795926953092795616921486034846873101417036649624062909073289879774312242368514800402505825634576887262691493968005148087873316106922486237826797481315923650072287155260521203007222643615136660351790883347334765517853499812753516999274796661854192386899092222356669347878274873736885113766217517714742030815705816684367001223404573875300823325101847751551657523328430936976858743218214975166422025203749309194716569623055723194628154982188742599351937627456360998022835025519060183388765002837710548122107634987508115868085088912123434406305474666142660008874261018453644673046871003467909950764920868875855235273556750125648583174029017229981098217348914280158990443559722067221589975239026029336587494772519739120335874852931288885992224555758400126094717049343628761742329436172932635344673103552826003991433967090822340722675408268904211229914326226388389098798450595663713927261555076725611247050024879653010020426884708194038973026514969436122478236998185013614733759462559081644534439557342524625522932540789377616581046199552682709169214181793694041221189044366122992635688399721281377961695995246053617599517336282018423722530683295680558334254184557451791807700359627613908101514398507593480481468555966578146085896088617708004840869808556803614123133448914561471473379394924713406027540671835187742872704428181723210708700474760453898435000543656443518825757567075741317570773988311125112826477670216473649419486425435583882917095012367583417887154627106156653289812567168458240402498772989717331448157936784915967848792708714466116520032747437703410672957922300055951252353452621480350573351609575957867523618745222757465789494927941757950275798867429503410274976796796235016192226517220965063632192586389371283655542603853038902326952656516029965271736289330440644686986730359133061597381220569521648790483288496188537949405839445960818947809592744696326177491509259517053128784153627773262171100016653217861012296992828577774860286290497168282098356260229931895060157846825930073078530723311527010436113028079469294584191904104452555071031855681322302862467274420459465568072180335586697594218430019877895690543796701815140870145228082480132991125476026752272881857798488556852002538396034670142646537344942549780107814329700329958905985611519200834038426460918631584696098474628844696739581810135669940651551521427650755995120773757002717737762737490868800265606245773264043536235490568512148649315879976834001373322221605461745668162482320525353258961230864682702641101366536405548665977812264963622019806612386966021074168696934434462820034033994406219296752308370909403180035646500842634305635839319677072765490282245390018067622435470382918520847956336790316459711798133598750122595890056838805212916473000809124834238214309840600852123464953098564219446759859684642363256558611545148481503195828519395960506055982446549059929206389702029192203885877103632604259688283771137353750623262433793640169606740721789785244937290661594581217321909302332646233596214159773592195216575679105835565140198125394716777113695090520249412735257066781789965398870262321952924896545644585692871786342215979331278627145893321923378383416073614261422238836402380309597720485704117617293684050518216220934100541348293168033236140684547915473101427887413592248454405206287656403742655482872450687374057560898371407308233360775444524077645669287336692055915736626259350426997982964282800221806131110455474489278012268966695672027763135267638102813428948381918630163561355460699064547062176902770622652681894569913185883347719027766331584909575238857435114306187351194443304825833070826011022688782987528375091188381428360219911574303485224901952810173879995329641114774275593592554226660044244270295228695533792498556109043944209126182805510010810539192724751340736517112327207613056861570051683913130596891633552651783234481362532635558520007865225845951764003606903574869784545455330383208847997730240930958112297171347628559267881004519605989684642107419595433519128839521495881534441971646832675083350230832734230044861761191050584084409465169305299976363112386453439657817592322009074936566700696800625360419279250018100734240793476405728547197303557914763550906057844368852448957926913681975196446448956472617952379895988961541075770675300204387923391712847888556427833209573812184705324735158178441179396542106191654806557951500530177435544061685540009202919358691182175204990781060467983006717673229456599042759468511353677527352982233563417888752165199156569471999974641624597470766297641367726360563105315865395257432688739033790581241712060643263468876308335094176435573122824142239278185403823517938627003738167614221060755000719365243943167647248444071191019702463805705721853330975130231584354463776911192486053893621343836469412144687164992231443325707570152677489798973540819329156450976299134019786366610821560509464590042760220537200312736161385797554236550105927259863493279471193132431213706743214682467928329198550622053680092209945121446636055424662973435786138988967597229263875879885684671500004047658922709483458641379551964915939917211893199534853911627065947623402909984725773099844558642006810692761589931616631899016758608125409772199355573958204990568238260576007625487419821239816695804452934209367961275038424849055547441592604999674828946049915239655205377288218483476673559868759906764674447555482511527762134192360442524488993528944346504792619633650696870416488553552721505354612154274123790260975595397737780237268237616378636124093131430695072005325289780464588949246689530371347637138078899193178572260948921064172183956412455345322914500433786891990830665612786410766772360570510313974294957381974559810381636380601607781108462005586689599428685786526960358171244262767866927414507575078239801523446520200782921237759723450732458649776822402440622793071053022752335089932604660995610943201270399852873294010135938635005933069750875316989536222358692571633677272149163577436087326466267246814061164091163038930432218526944550298202915766614936138632122780517719387144798531668305384873969656615619402650122763179323095654338275733746701491684932930963482741325700905318294889463811428353703529587721090714031098975389661780078025648806896803930964948973145727477852410460047992366461605349086268722901962216542080669745795633885015402089997911402615039796747038611191585549175553715587651159168803709082479884120582742439525107986699662288170828056603151290039323944222755124042736037580940667436716540444910082876574718910523100501729744455825862155699264046642678921369553325635910298530641883861478988119403127794234048081949698602627114382005525916609880496834675278758045405647829745301651640038187904293301880908961261883278301016806662815590836185089341993423449781549538075413214850706604006209441647198744917737887938209408218368759356223717544578184824119577637441338761769519524421957923492451756792305082203625359090252873788887066415210804539626887862336865483001909949692485549173838524267609982231523753801238586032080070514374477564022675410680247874987827241487386828540599689886221868586500091938354541421414381272863823095531180876778704526234058775608698761094046480531165584456429924064399713012352150975404292684075415354615379919055149896541351794457006433483041949685733625431303287817334166883971864659733640285242524549782217341485687236612630746053454703504471259252932187721836765763298144931462568353037112868829722257537263383532427560199383366314480521101062431795444791519090310408250414994084046232557716523557860760610685795348127376239386072614924804897277432904423780666956277820567557678432320473742319901603407123624478458847690478087542188499917512221284589475443264386571714133251948434227722356339956769439277610784349561956568112210158504847449271784270586134690452409858659523342213202604954512505068222757245384621863851711154194494893847915160867142825777055456285390252044552994789128348053385662922855484016548541572320159273804089918386485262977273166240681956733377491652489423180412747131477607507448142424929186793314203940244627674750614593260251313736117795288654537406161170002731344184810960069561700060467936386871415094571364185422584421521339267107392869555162639092786355056853119978759808221885290539614627594223627055457114996412500379658430143036876392757273218786787986928488769595927124604018981341895650844640410944359300212081732100317230199862912397710598802386507613138789896078491306610524475725433475628473883361737646533517056297300242005303433826513026747208619098261473326889940369808715697256783211024939669744362053078510438492003741188069511181961382710920753407339776663148379694273833726220121738336521556626678684722515597544281942028714614761034133646478616756569624966348920606754688321342342802712127151736517564349315054681239061502628168938934633188900909027699524789044097773458704973913984175685915580854714194763726027180231200088340693523195822768379672669176803672471178741059133986557436937253275432624716037417380238931184031044115886719067769780550455096727465174202938871642488289947503151442440496800321404444574227506356359140247496030936375913836888885621332247502162190478911860014219362785146731499341680144924867341076439048270524563979075552259900341931346160348123661595142601603860335799131781097838383309733859668626286785249937826507804363088389031846515252019363646882424764698158664876492724738212490514415913493586414694662371330239636145756564902469390584537480796013941238493620426658940708157471793866199578828317102328517572807593717187912829269744810275511699508809729000693178830966041115811180941682955375658234933503058344127380741610963539000534805480703665083885528760640041357161374007527654670534947518784962400549714493754350286894865823368316671282692480780350580790887979126215095934272908277588996092483910828706157113544118526147512422906037587468075083720305248423548204944520128223382861062265724581872934572728033018949015858614423296352954669444717185173786484206188075713183259597507665921169284439147522935268680114886462681839318559995899386021493360247581568590115006248130002501593555791410601683583878292471365438845001969714277791984339045958107219756507997437343254297351301385754946695505185590034748569214633101549470328820470366181833474334423325750610475919658652698511909863713506971135650645784162725813237469023850705080637689168952565148757737820541083956461176703382164917610639852486163001705246204721868968109192130547613557454636345925927183619098750875637767587749907510048352533923612227411395653478148539038774060996201816217398316626097383847837454392900545719733984107368570196461740874723191450884215664641568515873023691759764202349282907399499923181526668878523660806433450232811293878636107421692368990787019840131767420169507255315219548472773469766236012511988950649416728938146767248598492359000803592753131549252971465830797942559197285411682376842348649780341440058279231426920038409578565943283924948447979973014201234059512548883442626960457913889431103859252425596351041876632325429569409420625668336838049858065918125896426123717037617016461230523245931042040320847129259173064115811498777980532925994112197786012535092452810167010018322443521476613825417112564321362045423354595454460271113653594590723251462292806776434690643258543983074613673284061333832333047067870921449292760813325972566467813144088030107436805909255356814814332697469584244585075990760828799307685293795571263434850881939483765668601881323620306067788902596239601201402223469596165836017647828027912979133748130797163831835913078134571287514187386680629594888683461751283039167539663942161535887274544618923791564769289103358938469302869693279814432951258964649998731816013737640248741902811813399341660637653795601082340650410735348912372668407684838105498891306678098305638902435593008733692076768097217858618445494629869665005488033542493792341971477478290933481319866822211402958269148245321097100931584185224478478338559388928384892253584825956014730524906435584309067825786889402949797531061322467943404653649074401947601052086265967652543743997215558825688102093346326919295686405688454134867596743300760454596395368524092719016592472148592035409571162800948905624497213613841220920138070547730654118969485809799023323518889405152717799361238042893714175498422937096831485504196908271199671756818830105743476845393096705398836349756146947117110454797724082172942738827109445647446594439517657685778032866922167560212216572036631334084996908158928637468316136495018394487303639086334698421579182615876492523139317053699749094449545253586817376426569453434029489114953796213521737895348344379426631289916460433286938192265583762025042324500363899278615788560806232682667971841829987996464399522820521766286621231505772606697339433743328285455957129770913302519296158140009156811905024785713215838116401218132945636696780402602876607864888743890977656966250176421697152870218311585862508838330414334459766881241883931420893249843449703307831904549110812768595031920318993087439668405156950427102579421720378619875637150150462290246626964676542321681532037970775053425397884128851207440508840447361267007130656558577307830615534602775024361930244948372818087477771899792097665090186064608890593944148559273770802986796319593086336567162398957991067858933806329225597468404346125530413289329805146393595697462956305457961995176728097992419940080758491190791404589557114610209127671716511426524892172989336732617868504804416456087770240896104783480050309726598442875404241006496021552428874035325763473389184659642386808553178889686001094005068555655585587134180361474458942220614389669666216250596849702947356432334484769500180518228770790442803401268096343354202267737633957100052567883305928467469727053843912268231760196298041456270787612799896621198096522378935225420238290040739306013373014007260921485072943639493585116571664262624590935702194129415361841093778896962671885703063684136269034962582692037408805215586410487069953373424772123429911924075419096329217740132815600167148025941074094191181905788156102729120916900101258064055229034421188393918453798550250743859960089948862767217187493458365879391966728807475239287781823791409303574666203944245744135630354341668592790994117589177755394857571687281841855836800288013848525656100589816877080858926989092039898440247833084158013716184444267702379866444773950323360549483149879632077417865891220213818921403957215081411528626302475250546863814172694611538367196899014612179547854967713957327396514899888734459638316694607988418587614135672174569638701127876830444072767453651144383333347356410954999056129401068721059481507984313570686420609230685215795499893274189015648174797491432871689843816231378164104363158043523490614049472825097554251635096478370151106869186987359165501145054567330247310374510621083650132992769296125215269047759202707603686020704572039655107791932548837026223536745538976597185293286226877586499316210620970132903806580862617394364214499017859291377700982784448085794603450682344470659264269729275141540610656845879624260474520595748054966251655468878468257617337305859492295295675645028489740656978292673156366233028500917734077230722988864405653796473165325629772782628076848495115197699866711785250640823447947928293758539021375749834602737959997813318236097048305895473620716744459773417626215228857263202997142654405579195415705529684077631803360864943867890686399801559807731956489650511032866276204943135249905732162136793893411161327440640443622185122147015864907987520859416544166492913721089043752571657227891613071271718564721919843511135041598744600888839472428906754463872228931266115884180200222135117317280514845309421514236337063778751597279488046492014344274564610439890482260134586849822307401155726713196145262215184823829433841466277182647566464873296700943030208873224269194486523757901439947543392128854689339623205454752295636957340698322732729958738558944163037311631006298488272935455442941122677613817150099318579360614801280542237210855095606877574583028628456172851064964468893974937026317799700636520307815548374325075060988498881704384541784742924934409401833543062679829463917344841236300473152432989577802836795093328904138320714979641711448214574534194278247326725962973340907656156125309042577231198689959102307532362997935204254000472311977252711216814726577312892880107716204665368585322379927674738564303045219681902244741242492538100490351240889732956850047447303938922138754952343505280509094287963681133255582505891831985175360393873694772346019870380023316059200128188455642347116331215347125370863019818163134205137037112834728605952760446312347984324999775692152751549886168354248428121054752448100420456133780958499728624690074501141394736544467772542808022178604279731315595845803466034334523476783677418634032683159057512488704857223623176583000014811338542309519400873191962819395211859718439349438940370886212321556557238789946332662844121767447193892202232548805832388424974488529280507070415916257439026056720188051834943099654441578601253052402296930435899323279881337239034960224469110035569494090979223918444899376336006993925906585342257937177754526451941926118997752305976361868663474354395177766249151536184568238596949974245311170454593229109251642680205084009106774193870303218174229686961341492191310426220616593506837220989056206318827345821402407422013382654133443663997736435162961005418513724678652753192973885221311837693480015232845470284484820061666219283726595194443328217170733604951405718956827765303192502331374456150177151069440916166874758644112513904145213986386602990077442609922272503255071756721979469992596955215995232740443960830220407260439617610007328419322543833553423439196067783759146091803499606995140098838687538338017772111119662787095292429698111227965627415346135939386684800650380441239253514067782176854524043719549629993390149616606933036323592567373384545080228125915265252686447651649660830903527953023998064409291175562777739749014118606231726553335305630879459597147719511694504520091983228449068851111023323475566919621896650241377666278593840295052695762466069088490407665376791452296277604637880645455005112312746390877782012356737449743078992407712357912915581438015166867717718743519317301284405291787447336118195566146900879368780758535601155464323519217540671381391378703030825846465958921568210878558718383720452261026270040430473175550720607256163328787461444418687420683477771276059594461743800869689913896349620861527560915654110499765886637977865359613003557196392432677707049683616078390781551292942385173030760051554943617132283805103728929053379727466392780307279451620266529134116394904682341175609962292915387572993194538152898689952658996416821397648772001299892475326215291445798938969576064310032963249685082327050139449478930914767203335596719615867728530121302823095450036826220140725585787709951516844202828614015284446885578334715596627387815289666162837086269706733449006005806668840133547000678567978496020481971074170337041100657565025035143290000475138704727301732714759893217973071104962399634050888458063485694695152450239768781657831381737951454495124181526685139119736059638130857052076844101245004794577340114972976833785719841306177054615079199683952942458323908488331783486811931880951236308563913286743675541380926676379603191677716524667647619029786477811112596997036006806440939931814229000968755595384449462555762846307939381085870274716188881869868516006496916445647893772992042163032869733875356783425971920965716183371344313733545113823377255887377499999746919370542150226377482508407636540219455764459577926394799015325884669807448951733594691146837784447816106168113008652538293377992832368811836836777100175345675511166278240273954524633512391890084883180231958064655118725999285118646049049498638851262164155561134212249021921478583288194020766372141481688576184433406360233443092146137795748610273099199181404801951886982413433026617311747872969420480597083898743251669120603310752618715273779646602458733463554810958236055018200732392619610748745473551888759271332899546847943317688119053378247267374889020169483337536844460642261957800289131763881543859611845632141600321414745180414822578720555562045177998497405177292359049895426830254621083105937194389301412893927567595430094880915432369546716424053046756121765425241860057352439940225452150668926503942851754686115428715261163311448420821599819975589715013799321092576846217964031293740949525372542739095714643662607785637287637134579802164822662342435469777112170131271977345107068296292358268562226135944614210915111391830549975072090291108483533939266432959655729260332754324608642595727247049524043276692861800047130292288666320604801849491238415663224400961979628581403333164632622638475258661282462841058894888247980953376414231864875094913550417419875265876257198477924978246800397612361690897072771673321655365996555107208143490365603975420858459664086207658156841750619120924155798261013200164324523498053882762738686994460162459072848706667207917226452298765756927074964473789108724889466221922068795318642899292349294181572465226137054359909988558085451300479698861143453413997005236548662913116097404053201821384520525135411485618906714309938208683584029566486872476137628503107691483567831897697064723986240632120375723809953756827559218368395332683120054283783392491332521428093378407096837899471825478741346031323692531253949306916869140532577119698694878287876197519764955708302857332121173578021415076122795921842316646755826180737531809633625558167908033935973547957238087303813832495661338813178354038689289791226110574247589077411576554014387388521724861730069531836070123171894962972968875333106715150884685501585137054047682976219708167694786288548248584699232579162812581458005255164275659896017877047653927020840660365522528402231982008530785281545687471632489730747489597343298766507167281559247221902967590588014226286003098822376355366014853873912171920231373703450236160337536603646815551426816480348308086986162760354101426183642103708450731458558683650713354599309467657874088604469140434300909916653290885642526817523624118998724283988298188167217823611884637536625405117639369811516621617776072429258948314552823061453728800202460272173311324184246769917630055242921980320140819100527139175614593958262262241047063086829077758860696733307731303127398394623580990881337149520393095440826284706676323632113749857638108173957872927676887860266063714353804847897579593294544412184103225384042670871530417555505577806743382210146523026211508352592247516434300234670269143890113428767616077694894358067604401711577605647207049971567679595935251811078228816363529725591873580067058943466393630199940342287780873670741057103661336235427533487252954355908379712765967249789219324757121499700561856453174209845671826039923098383617763670642058436632466318662251359176671990053177652047020701287195862252657936286579082910959597291147817041031724141320009735528683369888791306775481098649724945569483157341944690016691424784311118234198876653970790537717690506147672093936973720077138376001896055413165642442230343309915518148241003376643067506762468888957208846589513183425757539857750556563500371734657260102412229819346044671917974429680913874373154506878180280256310866829638026164650784975936097456866278469521204524902746230327989497648634537007900322034212990936767875665381320910747750822842161343243938594408713837118528441082262859365424333401467841231614369794859535912809663797139604080711591103974169653163994396137420635238006920952643760975599497666316594313675264068453966274271697990998950399562663598717638274867835291327400952068557998729394700830507020467823360341704412548843632079749524635604671008707165256117707716867041047804346144498495434723381511714612492050138881781762113888566032897548494359973991017707955097859558093100048595749824054270002681725600515915297992331029029347159016158319527321476776597181736441822103449795335741289293325498275401779814856306064591812006908394492310194177658108705974058435289787213162382510284974665455278194294867950963503606622172366307671871771210914143308282009045837824220151708976572941446265304573525869774237291777915386127782771443570793595145507842811682877419360093248787811532332014072084103237552980290887656713642883443230896864797146138776923395110693252601453855379786726442451204011522782612478476370184855795514761194792172816180680302683754199951771477197178786901982869732552057027266294731818254061559391233841273512706805520656042774058179471248928176300694759773519076049747238650911825275198113086903416904263899798822979350922710647777099422978932000400323972944015471511229502675327239139589045915494044377159236167458699561701545584580722293881234374415588647735719597558868610153034175871227668864288882935428766988231730326044353906152499111622084227325587607717700330889010274740601707479658994623178426665683187531482929780440824478981291401551810790811181162268623629682289008735219830182832603514704495815951924025635820962833018156659075899034647715880621987601313720964643357206661246888355085367595612623044976774217503049807655841688216226516535447954312160029324751495918421176016721070540317490002223792324873228943878028155596197866359929448406716006144772826962408883717201836756568399037072699409370982174066802115945663887228855385921299164978918928694728644602084545077087996675582059525200956060408196437858099657154397704697932465186967771301827793002258800602197139006653645429020021370345029871870226618249866869376888083274068576441587966507532849277078876805324336878013552513514205536078659554956870076791280935542340891691592248886101139716584975909073353600910281888341174579544396717309741102667865080333533696788227881528454207987309385286019034554690400865477786671659264138889656513214747513766588931969927569887945677083793923081669174576642952648135915254727510395607903213294980542455128884053818840961023683691791805076686903342498159802451335869308530954092224904302000445799133949934246139213171760623088262325083226400980040648821986645115890222160916702406546423286559402836320453639635572126615244218589187215398106119923254678884815569935931401869855660394946813522205145038556430475967974086599319847184725441468548872922882759148009103151132143676479750721910623201101698456159953870529256885695627403391714260151854715821642260163800550714970565381397977739945515587377037083571333891934208905300348162187819372478752401645313269307833902628509974219065186633952856946112779350108347094425758549557684754134097503228775385791651883102705928610289886702979242395560113374518943276044502612827258490373113089466560940867456123042612540482005545171465302093156266110698807272249212139255510931244308846404976675691941508592222303687494715927606762995408516357860513143349813885724456904806076624648728442248358316661779104740543869386106071505475696344426231042672385046213316949507488715854320578789185257767749618250285878478586500533082525107788680683597575990314219455706914435988024080073997723844889482710664442817728406991269643958370502854674984674026561347443972174741899466697736231803098610712117253912992584660337852660825887745415032342994650664823179488916547607702087103016040773412952296156865284217005988575105492381710704015740094842160754035036367031185697361078224452455122232346085313258449015276266274547365659055860493884590194761939702694520074146807966133682821738004239935686920278931075195377786716558273232408595884156317590094866455537880187867028969416215986096219244861178175498667731179074374760355114496996206197541392772262066004223763219344753530702758559968756092748449905693217142669584130729251579182701703897357482444009721433892210273010121429930616371442446248442924566995106271434133816434133790877363788405696653002730168511350022648327760260001223342297490028214367487740166287690238969898891208922464708521002165999611276566556257065164887380663414320030537842709577188606625223706182773058654960212533604797874400699479769285090847746294492575950521395783744785666828117805280903779041203931676174975020707359364384810882394259157612560112031463996572498550379862864990773695278215256570866532508897349956015670580778776041845428167088221181786797153193199443000733008009283067273812985042160206107767166602161566081361664095861247029703516896378352951265649683799071010987437041956238773316523849291340867723981587141343438770623751667037478772061033298578575723898547806328038970051540901405336850599822645996120089513320467180443936804835628181129312910023363582513025318242847384840569845771864669189117342626699391053462455938702679569369757438028977715948633934640439739948221185233255890816775110059755246089161184490428082533703505382446951436006430166970440440471568319937351951312998926112428478494107773553996143920749263069856717622584104584178449134507812794232985527093300448122051041547143233224948587106349707737747712853636968004227665718376843773990538283911915362040540871260380874543026647583614649943730760617988873565372270077012018192135887894530857541680050881777577124884449900110648349957102864495742362994127501342139176307162216677694258071096019591715196604696798783557334500353707677583348017636484809284818344407307991416183494518230650621936310424930856338831644755529886439556550666929836729619675397254510076348870148551194663119735222303810938873034312465842563282260131620624117178966709300217933199199449121894191338092145436199587992758968882713023455483659887992105614916117340397490948758193035183580064462122765311485819546115551824363347251462133243810588627247046282284247992185681935002810538903068534285568782831152881360124252980084963167415030225132520845801934863086759863723320047292476915229987372398469250586707573019755134433266391541998246554485914676947671881971876482391377996190957906943316006766613782150315800771394231789183491919516820364463292269361707910037902626437393855250850402478885385737001086543768806903537630261802639420380491870704668146805416068094175812473835047100040238827129896020884754436015889945165753100601908328160601407742948480674512960650106701861969468702982238310671774273035058752545101240416276653280209769865647782139836632523714581929982951113013017300073174766730452139464597589072281325157720858187973254963009586114185284940647496543028690321082636072763831790984805599735698231684146570073264391521759265145948159386112558670638252995546789587672427628320750083575559599701913057828935223027830622834703263005913924482052040031783219032497357308915521517593804552632446923308389945819542173026101284160649561496959194607941099602985919599369506017297352604917722849577449581382585459928919318008169158344148319158758670714167590193726591551411467628524537015188160733018029933296239513421980351392231282035277203797004432376682711787786561494082064139240781687610741512360923706349933328653184324130039694530092211256267955348380994851716822468041699665210705056741085308431541705377497805173693668604197559878226536528415436637185738045240721047360308084606372680431094938567937275542940491609491989931943601417923889939531285213635652171242464762459040759296572621605922509683715913828128409726743378786274478292483926164813109706866705415787563119835222525268339585640474529477301230827992489271670245332450637455006581512875265168377968228052110005311593869113309376019934713859464033530071067739342132065955747593393241421030087434869905092797256641090775740007358268520537791101243851405489004972605384127131588332297451798277685109138770761186800596906613458838233017537367623272397432317318941271916300009883640768025442136945329068779798057952981702780224359874571900603414908351149724344534649425823024181457904596614511577533589025652710961347372477700024779040106569645827636079458311690707777324681444686258943050140980794074766027193712649574572179888263217493755117133811291325098730864652789469121329854533470625704674759639612152680713198033825253899874091993686963140511858805428356380152023844461585906930750880328953276050548781804228483725513599021541009155607427754860504611155047503046219556316168153662557024107015589027536855800913158203983117267272774458572665166659881756994487360079535806380610467513873041864072827361869869320394949057816361576418890873627682288635366452559558235521026253468059650631858175589588346746552070214768242209882795706397245322517379348146648879443921110848404334487717480531456489642662023590234342570965923454697902367042877148316641675706241954031194765431239252499181966774462658795540881933057876695335387057427406225194551665270979074500319003982999566312058551935956418303338609346163355829004132372737809411350448139270837300125610177317785978008803902466495613734819649694268930245821710690909281892313131756272001056583824836021258470584464516135442571681261005401944457161081312945187096926563980169957521770232497806938864859460861049615513147049854755582271401571829173227470083685496351586219158242953907394181385898404402066114583306936123324534861016643414006952244962271144161096793976885711833694728921982394284373673828997105525271649793995062027130873162350248446455718457278397396111745551200287780717781544630275510464427915983271029060857936133853136939465667861032118028823035362150872392773162219337224682156225834646648394680609477175148007407633233722731678775896577775685036150422620347718850436888418713649848599654583831966570602815808959913178123247064592576084824175684435644436627033155929158047751054206080327582297633882085382008115300198537717298379647119648645615670219362071017000118158894666201035246228304039988871618146501967797791147374756040280707925327672358497258295941144066800577561495862388157300362946810317386074404619963917125375076311109062301003452869859053877623113541347671167307640709477976202387595212749924949412538072981749103638790970330751261813341317592806140840721344371586308011595603925840275879426843668296364133978954605117223714719687451634907672691284098214620773144258265910902441530067079658340781424372392684967089880357848930898750336123214438431160391508673467790646717156999576890705020593232675598090678508122943853460918249030180150923188226340108329199282638293784988407422529269034561375764837582741418591836782492376681514832045594849271657136588696314390631967038634418947537126379847825725298506426758032591753621231866748182299396792436560868666383389591016342814667214685216606357350827564769598958757358541217520019906079904874729253846971431779459793875771679103236054958586455851921472406068147914566781028329300254791114676231867747371170246620608378082527520197763299948462466394840028061536515826963704341551915667147773520258547991562984893780593808330078699774105595137242131312585333866544565413961992634472331652235789161953622491169982846804789620607090992401888741538027117252822383292098470067076011363369736561229827353271404302770395509430178633838031956751312032449909558709448675162290725584384456013094505038109786158554882132799198600425456258004282542173498051109047284747778700072239860112540089706494880612025825312776481063251315479377706127445419951685390593149337868454706951898659604012264056730974002216569633495448942561502435219689901411312945189596354527838040927814191573147622748644366151264233445277681230725516208926606869918902200378628442715419700872098480502353198907238237800665253012052263001283831559349104935288936927655218191305443940557580099783572020648743053815138729239337088193436303490450133250794202261057291230792667989352430624473072280710777280832511256784765959868659706467479170008179377746177829944756965657753599396010334324789141405525708588607131336614893522124219967750705389762600413029364353898248661294770045188644528430614144359513272560823038059341430829751677410612259078719017308803141882854375889067038012898773535789717198577932067066150131921656755094759214740036004805389198181579152714434545586366051356682165054181857796485374412308043804672480580851152613606389973685623601506111430547256375624082361204382463930139284901235338055876505012775569817193386153155236017777398738036436679759413058108707891273949593674567405200009436311956214394031647461099977280244118002219789530364926732679155392614499634731107368731805371507827452799278132642297364044348504988713013403435944506751610319253861193815374367659128409565184686298079285852317856400824002014373802975288752107889007753392193336101644866415805156818477033617805509752980958286762958575022952220053448588964247505705888289198201760563625630624804498438547292825641014966753324121651130114559341430523023677404000980579200943788843090180321448079760899992426043800956892270794236163849110592149234164404388689563276208886177297690184382459185410889584873825370363809183482041086881043700154038945688463905345860108257165408185282357873385401000926519591147088649481812281834562128921932641404222103816630789468465932250987504325785440938307392724438956528546320043712895873978220474220636844463191043848431984837224252353195663667324139415622886024286455184070567349175165395872564537854633530471124160336894287326724013994196829774232675599136567361977661160292599261425831560707609857797287063234116891974306297812573404167825007064318555198812062383899493780489605538543857454261817891524160836807308759351408935608780577515697037925912854771859454967247204077560602255474786731413038849411607264236945304535883893920911632689401032668529062188523975331542162755307617643123136596148970093772984479317344609111548865562561942322086758823881762277476898335103626265741787790784996403727497532892169166091555912007888089917795988246708946345644910957968277558680916601879994234363199467543528291437607149616012113968873195634092290816834702724873417654888406069591795816753130909347882727991129866636599399990878950430227444870262230425717336364571424154919107002601962169854722968759294253843001334979205613178626329158840583757083664195482516075287093521086146333434133894043123802649927853192909183932488215895854523336311437256470099919838704728732156121649419814843189777318628303661184273757180078759297135797914459748489918633342632159703280433186431861372627592220334938740789557028363567800586543324197375203865561293990884894787892586017441162985960111013245800040483171750076129259328823766028372330680445426520866815061732849441188513492727825652699535628628751165905833540405427728554595054856096971064721097026349671641330371967358588063894249770743680177165788185898133488869518371682016506305473734380197770401067315897004643816347586939777194472504614263192858413381570732479513066564298216779658395294232704396287322420652861059633196673123881244592966737451110906184873708760695432565649832414661916099685405286753813449628586404693561251947973675148042089943072714734436464021824785470889160245920501215552839097959864043506180292004826762984015514588912923657704413251465744524033651630760334384818411931163275673926095352274605247036283143980957606696042346820684300334040201805982274557465029865218299144702591773997749934417110952632090042570106219858736739995793796883945980240579877691757371878366552589417275131024304919352968498905957171078036170053338183391961208151249446105475810739066302411034859830925888743915317000682936028352906954153883365085305364687658791882140730759933607217982628733590457059095479909692356457425019947077501831238388082610333856488056234060142582082738049927484883221121093349941430899287864477053958630413021799902390742500471958006912618029663067401551019559635962765218619484651152501536969731498113970606872179362607622076198799634983191135375325090832679319445713710973017040426186488029872953290078932370742942749704678618247416741143831629526281989455164388486520942901415002869850835744173186916253078764866770818166577943845159140250136224316268506060433445679364058009734142850372085936329019939626832820898130735538276782757049038386145753803442177848871135535855991415480435190794488903773759923000399378579839426494541808971161942796094240593523687499463200876017339469617314198696454149036288838611029394747070883766965794047738884200355792238102149205100954580832880666473982644115763186170681814804992768762337273434109644744823478654790610729715342267631354333419437597529097862693132324150233003839557309377325083177229594484255615702065713836148232519403995561863625218064716627810994737776379794460321158354791335871446909666499629037285210643282638297414452381095774912689262285917985793110239182638357609900914648471364611178775443502307727473230810836892626142137284133576038387836481967940327474974264686647122619516914263375445771231463548707299295763759139677384689786412181533664516156684105719983167262251743770983840664498634885153573690029589206314254097603415932970512663301818442924564356530468186859328529216183104973891978126252894186051180703849222788642305386085363891248670095467330828028469748689706357850320939027135830908212913707371360876134239811060170508425449745451059918615340199693526477310752438771949166599487894876777496795182363425804008211544759232018422389219296624523979165791915514157875721860250689411135531525098750741034337783107169755730270818093683720390990004763137536066721147339306614400181377053690587734971159014906006233464987570786245554221516795842280799673104972884412786838084840553074721810262357727000356779658685715273158474019806596053739000863661142516836746297700134567618849323816130341650150444402976137653113625778597447756251493066669168035914801967135531804700271052900161998680962823549546317039125028699178054899923883156147777527764093415604342096944165155686661536556796303906847067025280084319859106317863660529722296104532046029658006056114301658683391795321187936261341254333861339270330471734693342941635326494493765774023731004701739641582491229345138017439649355326874396022239885745202255239405819952279008276634471504600625133813345278526892474560444203376820011855048079360008000452716521515581274041480581782817292794448456419099355976345599822522540756183372257714760553757438590234386243730183192663137923765237848709462585585254974343529656747672654166583410841523594345046209626118519402169854279380981436849901774702848322097947646377172541752332908393310322414029750104559634643310636036432655697992610435899093152938467213137564332547545808414250719571844203554732312192727496373868310567406071340154737088383179203015113870243342289342443130876158083050554792278495708074765408609706149464021881484848556376517175332037917034509883154037615642691210130068101888171689410023901004312482064283702035722802630380401825962042828791291356156824814203799921267144410397569107521962204101670769268153637175855500100292731109103065054571969507962527183137476720185994923285503886664089524540156695783368595408104177485222679673932899104196375143251010387329158064412985699923498225908064374918383349134710652885859217275394131943920685841994857114991029248558046847291578939367423409087159103162958401193826939026461345523917201878035296415696689807556347995387820122506568466989799093335637269508751157335172383195045582806613278904748584334490402030779068318002777526338691662780611781829615529735887273294214985154187961584260079846767443862337449203294582298367734260634048176469964075724370306291073812342204014653159683463618309519970322347831459429634437430175712524733549497503714484843116328992112470872741240054979825516946693833618604166596984157899134162585890790131527648192150839060471801590658493906683186138398231433687689215653459755404170737453165336485079993027853707299958313850984545017442785916689774971482467044565915251216591074901225446980649441367600822400903563245147829185035704117678139954228618873623917270145953611809922566793731862928139789766780153138658764711974444755647935716273982126340326194299719756785338468410259198276883545483393672725722172649921351120368919077363938665071066120588990360533795097022396234784529867018608490891104089048491820134268289567967788549879249712673999126455552894609545054914187024826453326745207626932258043360116201886240229426784164820742470763655448649579656934305688178421056132814769101711675964641609153664043633701522743932961113662660142794651727246030003505727813913427324675110373879941456874008666053990031588341468366136119125000357769575606406099478962419685969740354006416260488520915955109979461271875601876845496899648733885247859316203072067665916618815019299701486811227971796352336728351036001445860941351717722041527561316028206074400821160678725014619421603840301337701516200138631836581568311323663764809860249485380196698727224079121259714142784175425297292621485585548081134194053783903980782872566896122239925670603917754647499715495794801575666077842837542173608646408220311680741652815041643841580547896259032861245251727288364970245300481094218756355786352033372210240126900553710942496918131630012804194035579762927490422770914675972976396810076678520499295371999373317902414393594102164632737862111553782066238158814201197755898742731951718401136216802128344865100264777878982202525595999441283367868322193317171814748030013423754819672796195048085145330197447422645732480305568699642467652924678205414415077284466389913594441596154943279113786142870133835445760304311466114262462380261991343274255044057379401117088032700378404021985333536615779700316187816293299865709644671550100756457232526827062122426128495510852396136759157585133289209146609423276660764207301888109847820453013379710204682667174469696964348627699741752649856024533013600042268060862708290795082461381979401907102541509473854092829790623518226141361266394712627959479389805971565856618033142536391221488403515771408222562311177450608657500721363814940791360704136690783608837169797999088302710258390872773203431836554031033652407467335498216828453383118385406157013352615494595983548312109585983684434828641049067448658221484632587226978985885777413405586760713357246998558010084031404562710755130959183457873209235633501576972199707191669997812382558109316144675475312989536347872675502497673582437386106212890368158557249307855075070341082282838398169404867411473018946409451195755531583866507128011779040830879596273675751062736502302412560186531949806567136467411436866111221445745261748582541840482562458002154132624877572731255806313380736010102637522849307224747086444254021840102632487550113998476806949131685524639098125778338260039813543466467515382133353180769030298771422804125615173487045962403391442714818147830473133357151180276756318957432305950397868056102987307902511673065386467813935237542990206557743263630960838800868749606804324210795441040112363221274764467187046115643840712822721744894614550340258021926293526289960072021743024609413957000579253774776232773617175007720339304373776669852015955023701456246686422926195682338374718201992068374601992288521536438062047084239325827465326020399054245506240093110650772806449085045860923585223213234665780685184138616640395167314559638054765952127774256896237633914181116272574835657245456849183851379357193416571231221406015896181785101583269158962736033388969772188821413127462332667620196858440823753433163468974982561614612950285871190986551950875490070995421943440846525499417661755097198158920970487928599673715802965081164723956771274047622128109201530334700349473460852506940046607049594112659630705105219033387660520858754507697209218571635822664284634391795327231725304635075653209523232491409739083555936557426853709417646567888250645604478306157989630504201691305983955379452565135648724742121544276356947794537542529770293468014223264035370295609588014557230819298265276374573974016494290861135260613762512901323003816254566689812260978423551056818755654787670510653204023483884507034672497574862531294496316243130285266649811644328722410813030268264538334484834869566694151840958703751661297640555674529942471009688248650298643869816348863602803486421305223971360198789925411691512937374523670066346410622453101259525767624386780273426315962207591106525299347000402206702044629420667175373584433738048072463165319375856923257159796679096116368159081209252466268960564095408601813594280090848183721707029648725433298436834588417567302431687124252588991665556801562246384538785642211700691693727955737722956493691268139384586985077674198377516150215665603438044695558158380807149431952928056933413613671136576142928593201652560967015280587627026838867512706970374304712749043139254315644132530548868357394518276737451559112495936848741630990774393425139734616799593926490335805131945899612709406672081586883298895020651494029394924443593019463846861088757078878054398014684226896082099583116522822725667753851526579118603690295410210757435194691776396815046865879973479542701472190082410179852581797598553289455477709982561400967307198501021426000519202417350403973957689164285767061339020279051114764477464938593603234856859383013135331439250278567277580994444924435938682895754431327699387515362595439767781544733387367963199031093550132445332885475264194593239793929428925446710367344581596638254026385176232937256815214755880715816420183960377653583016626824505210144117935249096872321284313713356871291342455977716521188956554617050041094753839144624415031690322116745630433397295953288433600118770903927509324459977837026289707175243648523499395732809312744577830564256964688509089238554726796563021138918312321336341381721885595475525741357061713859747775680166111138652476648922971069697150833733548482234489538791241714576156461183917713089926341715755469757695303816377534558163938928596644957448034804479074323294735491870429776429481285192114936601794409950523216035351501920249814466648702375290566389455756930992331773446153852683263622167024919531607388640103583254270106449305899542433907630807432663181158172702197055016065718261736909790450937977833439636123848411657486501085962807141188415094160965454106721369120102188660807281587889153332809006171395428776379075411731524637870894685609533478435155722752267413736193766119175537679541163008390241921584731389538919691174338533986191713142954907397199743861700170320229082356264822436119183152246631022696600077455212250619124680693972876257853278137970338172359807866675230287812409738606733742614802464883144054370088256883206451677466339787207010611055522672019963940752951183581536191735415764956294317737885674638935928909254110575859408917053874844912381465004003394241609746149713561663826572574667945731878055350210067960407700909439991670592322658607542482630058020306888746252296655903786405891868739723047810342872407317755254206013672423614827492659901011049571109759839214617244290360920225922478895940913106507704277999480001211682495161574136343441053152535278586466044411795771572863460787792207115638601100349763682374620643142400420385481934126550358149285006339515090605727876921486073737186085129931691217874949852049195878639360216535611509273659742738997114565883699609945357402997496464168587076699865148606885282710792007114990063562387900414369850350373193219350001453870868797569137678102908630262718580221693165159209980592460481270468223055268883971028312226251963991714125901630726206083199391005792051455072461542194839955577984336703557262056953373239400951891145024031175104399779561021476393601429362847560993449653726911050935815151964083343157611987437914742625933695124126282046609090979834629471160716618777023562068578532375711367044026278087911546929029960654029566921693042673438275724591283681787089164411171925976823497271601744909553594624868468304041472743337564426086346800587436616488863345217315153800937245989324470079434730306114262970617826815922954458679942882410304841889384438426659123296579928632124570938395310498498997684445674860198480533787798536838297355988468417830393448235534553041467551948550216729441592135089929294617446600067946378508317144313726904282347158023010208876662826654722455096946728414943295992646114710775166647851698798690693692823371591287478640206848741109993336738979329037301089539018537017629256499522657898454171691682417470670499524881269267024203704291739372487281136538863816378597392341014416202086073511585019010214241421457162419155305742719898838614886393154611582249472841811303506449762541937272413143742031159855219389861923749168557698441274650669165460947156646374000000836723963341008512616508054280006147947076351987927068110732891713552962152344452607461984314837175866844444057456155765543281151087058694084944294382044231923854638233998310820498184011337749977700551020979301363228672686332618673046468438324478853267577195428870568416940724709621041285770873674965887307642336147721962744958694189123280100762746706192346921207298476642902649550324546174939161477263373862376092424696067722838004874419078607961772272468642903593838195281947223911227457584010651894833913539941104406527115796269815932733479870733355647575688452325212926775919549833401706519934892211208176287335835579462811988679479589418840246050855056727459887152239069426686670555511604263306524774035854801366314337769894871691696328886894002679825966043672867375974325214698312975046051614181680192656542832947604693631000280339537591088315463003983153427313161365753560268866351267756540071152586393326796556985960686059592324138116888140770953598343233062632246642531766701760758368591164489400398702990317959133807616174387054696344386451884676144718768328712792252740899016479328234670246822383042328748628247902468526311837555189992755063228460211427971746104841968200634804842449266612131591870877877816094744514009568979885408774544346574013288673524717084182724027426912147226483327949487317159716882052502862058429949293693024063747944091302553442138996645534061695706184182298563544753142123252673149612354623377160610752608067971215229082810896974970800665817988296619529140292175715187421627010438379306874411036868339736823877946878124780928840983656179654145555401758226330297524089737147678845746316310972205624996520889801997829934995036644757229027334231677690466048585000960235041806166620902056572982184902924086391465428533152372141022712140768489776676890508054656626610688121039763943519923759540471223878719460013745952439892114421546986381938034805462177407007789576804978011777792479680963908173861065875098993834828049348712259709996938999936775879207204375444683258529730408984146914840858843292732764732267384209730657787533226922896588024908727414131919803186216266428382450782748004007500156622708367360807397918218522955728355386724559987112688406621362056201245308896953882496554990798507429497053782717784340897741423240045866102780021306968581971935926250346790212201207537168179583377846526168137793620424272195953749123424276506600275738825198206295927883456880350434900845588380793989969967847971579791145122076754761223310435221882251492471832583298837307332321729853123315898233637076491715711872499519476771738959653597324932456440041698536251791691129038796031394157646343503277863412823860631123468838471275585564632256463911943254949256718763382134711605615593759946882557287954279864034523691220807060503609029472572678486748040675264616899267303464888869983015709348248860614470839766475229009959722876711821693509465236422162184199409716175522694621864772306472635265436443983080874575505860978287898503536257552796298380232965302725299119867105009362484771312275523166237960301724457300977021359782966157578251392669600838047839301011110030273841568209458554071434817939396130986220320315590014020507498947356181726571420467977922616960996423084552778072627958754014629208387179179596023011608920895713553213906023328101348723324192993984945769367424537782447503935358886869246297281499114420035075267515730316478084382605123066151132229712209306659125255560085073339383446646292002300370498946722870854130630535008242583612900409961264174218676274095542181964962740017955984265932312510225355544963767888308194187337602060669435158930954193136174377938931484591787740050242126911592915509784309512337081864313584627557025284683415512615933893836300547658704684713265356779255386845516079097976172908763707555239412304495741541089432443846405358635839315524673941005263490574292907701976216334272707974164919782753239006387429778467102338041724798927175767867235041027677920918738758005889672413172891813255524362973598434690114428062368562298418169103558880147191396939084299781609308519739490160274365846280777617902544747185501823509082365231104170959007979721297399192431707499366028223151260744998135140171508537012980008572011064967750186434964661785342233220401558261557706362173333456970469591655445695117600923196698979428063924930744403099268150740374303361732215369190330523058519756138771163791091549660030729392158254228642478632433610197379545881994210284003000966247581242592934610337888326170174594921306180913145945623661800577499035838838380362741609843166550409090957582378788502162750695906547224620825909255179089146890397968999388330680286693694859330799675895693385199387049765982576781386805017192524503656516574765052656417196837799936657263365080331155204850912079024213396801162848536645938690213024464677755678208007892448884635608200667570370076164932057994110778753540201512910410897835515021368327009267004124736726643254202500924712616685043548617279350633862211222374277865614163501380579854881894375172129141791348849819866023724866931592487701937199884722472381414990702145624323833871933357052181449522088281667512233890402258043588951914825956347132264634948570454057482519834371153932301309533724428912667721473138907590805061885947996420462691868476636058346488142244104467606710342189258257970982648702547342581203754556582277158504729887979686529507937295133599350325724634035250982675200595006943493280174467406823994313547067545347510813450671138712703956898541391716889554523432997970817624893553291280259480753355126072084287175281727062994363720132281850004717213233763059764894842359739867219901841600944347232127419564250137501208673193843462348218798168825347260969138803168214913893265807949012364539604628042392639062093366854162029407074864837409892924128704976915071929220065665341888391337810705095377686985315192423729535959143037077092377511427666201919878837320710166355967821752488463766219685103005911730174027531280460577866720461692011077969603652277904098232162484324054520070259638933768182680814591245885525548999512325945623272629674660849087369096562336468512229460433584957880715188072100912219738172451803146358817009850505938822476819590019291337522233451653499393657744256223014448643957487756992858861286277695195053660149007777148528942891956667719727940272021571405572795128264017003674289855809474102948881279682741351236275734735575488058861902037641475013738468218657120854658067864335493060647569537366228778340768412753644967616904753977732446896481996460832198870807545955104472305851271807241562720862772863188900720067888445766417432370580828454918964296917933626989110280011155733262773696294316762730738634156381108241639766513469534888347472672371041761058880259942805739710828714451039700541123923540722634759152151787470417507175864270860203530303037661430712524895609187415299707857975609425579754773829136599315571301255310237949768519686863481164493428691336075842869075952629246315515677127976969233655454765501590373520627747519019017739020135785712679212689256051151885245123597216470141138957028389801277238904281764834860471693090897375686019272799079855410474221883932702481060343710395178503504179216071295361877408845719485484288369851504064698613340944365661610128357699236281561111576867634267949843126712866489582111315076817279276057285970145616672150271247300027722123992333625476336475679497713744203465133129395341948344658637502370221821780189576418992994839293796278530638517062471371215003749495324406823477059788926574903755109492213081186044793205960165116123531116479383619519608054888618807306117093963565417963804130534166885632911051690134832421731734792644899801909084106889891496475311682864314052310317891421342907937532136749690545345895489778442459649499208582644817685244144966797110028109262022060856351248450515777045555154613884341231065817827473260510764551524585894521947944372653381886566592945292950188746257336567504649336470240813401547995675759965070243260829787342155823032194695049660019126971702876889608380840036588493640746583467902515450778968834837156941514344588467630091863490822300372813174833582583523978255192248154383073223524295709845444346643041481212850703139992498918069619137490519521866849613577494675281420275413627091773750701588761529812404704259844861847720093444648117498071971311157821858903541491121752870490713237201250343697326677696045892140773070744434064937914453034582844618356017987191874275477265547413456045609520674570610635419483338038083747202983316031293045681644419496004191625675933552717841418747213658112955517522113219198824049807738749885336852137724899409936068209773159295542630760481512174587889025030707241869489253569273782647683630626658417488760552490481459347269709656202475333791109326375226471752952130544822876069960751303927008606025395470882666100002039746497229765965369134164868510699518673561922821134576216003305740303052219243839979276395445445572615490364250744134359193918679018766401755152241447535129759152278548741677131657871559154199914440612437398445428268414983213245912343493648558323143734497363945792379732722355186033159182396921778109451993528681306427486992407280122158427507011274727283228690589742156459649522148397930018548951070082904612954655983337731485032866987440929150498678904438055977776105461908393138329943158982746328258609099298636637408948281422962092446559339140174428597433063294178465851260989106313346413052830610522830364147538882814126151118275925715061323477981994335924192923388064404131743485984138934406890918749949763159230097144045680757302177541397050873655957223976005839525977238216005095220300178518076805631111791464975753383373260277902804372812706802467701448534231285115153031989083518563059370492113782873700470658813938401273239218220561878066660360400238823673877318604865051939369187207838338342283981249195712721740382954908721342840094771581037916521480773944890485145866111446229748432161630520756296862847397664436834307333811181664640562407374074369422415142789046317488248329891971762912187349010462559360665295528712954778313054775213117772848375566618296026992836306563771054896440959602936510163664137433910705912667160762872578387967149564987639615824648831385458005250852192671742528958590485238459274047106202996688556350664570602353817329984474610383011113670019295163129400168916342310372738587927666705877584081183884495711316054076484090979549435679883463917654167445226111299282272637913283938883975209575034440002773405447719245500493590663822485808993743970958034365477318049500680574141648722468471927905325294474793637467648104089955437934853330125707806536404258654168375288075178574099475808436916081538572376157620359475951142781056613750771962088140094097739947648008918276590020328310451651459655635668575482826091791830504453783683583266284281123341851296648277851458462297525147029666874662282704760643487077502313854796844000744631082678714626664222346494743492715278472546329327293885647999551001114452800823117797403555767763695247284880206456188269018408831089170758710460423734994726762245282483189015159171979878141077411399004291130346156608872563486694410465189692085343201518471788079218458404276738067971653255185190463619269757190692290110945746438835458598110424192425713295418152093429293782054880898977794199818833089874060223503594413464852192819092874760739975261419119655554082125086350525969260036445122469502956430234249879160646693351576095285940570147076348881319206873149584908820563821114182274550938762651965079313080393648552938742630239593216841065971882437367143442178369972431300936046690269394675950543941167694800348147426618571514884000846416477311635644882418415763699869327876986146185958049051120432473290130284570127875092863978228439160864385336415302662651144950226996641210912292435069932369234319610960122076298192691740657392134322496098177913840576168155509370961150625887244862218315746746261945743956902955457619874508987866300901605602037314939298858855761948415071820295090729445113057729356114186996021575063702714250818833563822619888777126761577486242703869283509783533663866181006590948381556563578516067290032872063232822991498215485337574823039858457308426411432771333723170932320129265626494429048755976047795343915965372503078281759156392498262295446804472558461571640500512229076074931098756558868527855136371783371641653252509543385809234628143409200879858823137518531825841874344495184727624419754060418296410580963232865150453794527427843195326559459053527845205682560100781435911129985241443310619244190617063685875800149892184228389289432064902334970032614667477992807932726026586454598204446960653890212168917450213612206041061013782902934695043847323851739339586733484683436305923539655448546165548057071146975803789465147113577587673434574787662034332802968089671005744992998899364780303856553084436930927325442311821804856573105283534458363985712503996338056055978287393499445507830803139799948356574915950230841497518360928074473010705767604425290280369096894576616452191740631848177352963442531468735678506091737129210817105274028012160268213604746117191113059888411604700658640324217829601344948409112790038870204628550156775296609420045021813035525749434599280096204182074029798885577434588719818143509031313584846274260735668646924503891211628389310533707011877652673101276679263516722651677366561023127097959325262577223570225311712742496967031916273055259732194924363683246525056288793666204487473566554885388999318227077749182865159973955543765060561400618836686499956659112518473651843515156275650221108504616660486226257597288518535246328308346809826433783497120577595646772796363555998609191797840059379914508168128126517606733139135479072225531235072697631620427261616672633149842150347451964040597262235509194026860857412219272608503241088158955959041475082722786467990600776484105803843281614691461911677836564639955365116995312000780865179389902718597429450830873391389477326072436917321103207284679721242119548910380495729827781435951058224757437403576150640738854550987880961809064932064349625719427700865024621383738067940635211674813903915689608073965571252989235737052243009155463242040742336806935283070777181398872040447144052937472606907368141355881657558504807073571563489094921152962283423218556374193765837128071617104367723447762271389987980558965444648828257725406941262306463319020970375372712749824773555737946946747188354454051712757156941851261236942503189554097659793999117087026683149338067226974149277186740740432393668290624904768875809328381993725163618055765596078474766554902644115421727566722362554627241647309271091006958471075527775976005305774714876574182660756138703417482732200582240870823582631329232313999969243317654809013390542860284969937510420468676309658101789320577264332062729391004009773690814389448576692178571963651369476776689930324927854291917161952883715997959259397548267946310207156150548556756681259447612935253133841818133327610189457299924243610315812091551517242350541125951432875109040914863369791352194848451664401183925920409340613142542323120840625478706196841308496118745981856374746487639991222495140011906530372148391536237745399584614457309696397280130472308966820541842248308942404144825205716175747674669212415323646615252582999746820964988152603150331170455610738066526824285573499843133421356915640092077327328752892846536514458181949355406438647023439237875522546452818207976397999191783675699801411278971214473444065496072719046690223276808312471114727363500754192993530098579790159622986806551930006540434012498247419414774899503757473404047132309773422505453627248536190175606056105152889912628668673371446426562998865362131322035664397912743919000189248983116471315476958257059795535645523615560033921736133536937343260742821337005739680479952973869564882923535079825242529997815152617147929284911808352972080408916765942199338545215382131227432121172307644018118356179733565668051115229499811658625623227392837619451073205050747537761513489565222859072122003393265425314050119191385714604655834384926877896659642620700442531180944004536027864531407005193804405661486414112232925390033185277505083382513515086249689729458721700443484684388617358515598558452932239518684963101961528749907485540289762267390154442555117244521359106872610805989477105775193943917832734404083675377621689999655894597631557562415587424076557119654909643271811782143239316955027301495177700666896489459323899552221902353996517264497204711622832631183263651691343118637306008395771692410104414841374723435695112852727699415197480984743523164799313923450853275408592370316995403120508019252388829287023718972133770764987913929422017198732629860953377927492291245843888911803577394077219106086158400119921515104895322144699843542156529318428391983753353668735714062996113556643963656326400696037381740098616833386752825076152698473178422973778472037280620462241468880476926559666709161034506166063047443991703893979213346708269892851778673544042726396246850455256811188752595573157720417238885514787684451672776861368590376857017754906598569056764827140375126399488713715401275416132223951028419748716748488833802735242718807554602360177501477524035177732058717324680950629555625154421674471519282224379637908255146851933351608323008251360790528672739314287306758537488660269709228804111387014184552878410331793954015964274139967832425779063409634167398856943117429674044022106907223951601326067671250683261279276565696698406169231866920762522275236353683238086497922351849708517770220160049930270476964987978881061711155976409557765809956433321794739619117127136465005629662455453690600072759720395202963623536534708513806305353631120071328184489728054986462235149211176884497531846655163032828459312028810033670031465750994318682597284806157669046759160645596931105653113964771544214009074154088462109539625280528483523789614586932042593827924351086456833034916718757893515885064802739529242805413950675303054247194260988746260434251687758262608913487689640140405078105956107409336141853955694629073857416847210440890090451428443184502304448600875702330990577047388815113312115124314009159231911098408515490737894528176021799636583116531440676339922715731331801328559979620386339988860416318239632175946182687125454650725779730908912186574667379025056666731191929992137941111452905472704454880555315750886108426980900066279363879389683347098124052106315009511089207977506816029461221718715460828670109685986786586451477025908863616175387369481956868110682217114957963425854298654990088768121908690384711458061218698791711116520100912021012739933015839521908809515591914431812089759218437487185270779034982436887113782168989145255258808475249816554936878448833524652755294425966193000873409739477075760537729044412010248323835740171455571390413265036906247193907685261547313136797766580830954634719417281455096581965157309264703052468918158941747034977040169718472205632353728477445364085245295320130120710688496015773260389663649417170745992469222140814819289366317783013606725910894780405970490522328277485687099909723001405149462402851593874885678544425250069035319209513895477665283418570163317282718849359785447040206603389574065522926840414358289846019593615664723957154585840781988630035848946730316107730519285182865165964482677392641429275644358509514801216741098903088252535492466631166125577375151909221056568218435448926584346832195904666894455059606810824064994601832317071989551853748940673279436663555000645987855113279959327343359321063693109927454545112523115342893280452605907884200968915320827266606303148347969906322567688228157924604334039009594288288787012088958209461448136290404412929461058590484768061921694558736396432909216819842404924687864604733784432182716841364994240638712563662005653129319656079605251575940445358070647144648490266475466539368927568849804520497047392852469366480172833793546932289705174510340477202788054400988871333385400152520407877713493289336928509034565467368023345045528927629548554806714933414147821368552458337336784631557269908417050680182711778523369558389226239569487749588369039234029862070861212091971725684573705890693190928580848758926545468300523840105610934936981043002707010338083197953447523170915070246293080285814622244148249811416606325192193858471475951432276289987620550756165788525983298648054257632332411951220427867208693400153321859238288774842550559585050996851408906638293060770233244502074972255330903229336207182241273187264445936588058794468537620440653289807225218596311340087013073155996553755013267818569834900942812177780151570899909136592140955796507164657050160898605172866249691444246063433120918600607856442400729487891727178954361137550637524944061379157768774677707191804873386905239994798070401209748465574197973081195832505854320332450509510466184813916850824938203775934386737138513927912853591968658130802658026751837409856399940067568018989277680873695417722226724219408680732420948214960019947422070923389134050968556467834311149733187827625992280632115528209549904138656091010762476562010156653325759957101425281525430606947941604581920441071710776575137489897760301668869056403499322455814126463086018007033577865009856772109624926076450910154655672166880556199510237649226720104507555552765243326224256822833481449642095182344557578850856932346414778856251423088044644751205321705289691717927273356321641974568687403910191171693299850893146071239845259994951979287646375448542116798619846561928047063782330240214269606791869551410049902220689081735393383038453343122413989150675757288395821008579060386769029791335056001650645739010164253483083399190309741855097883262664735002121247906550495856634196356933248360122606596103701941276696023199134948376819323926217233214460415407186982585543960680730004955177906916876806494843893564375084464307746981037035105355356561160034296299132743011623513006743207519463582220323991466995692783826176575944827117887187781383255327060297072714224063000485360272509107573949275203395889046866152910276079623732411235569087815521162817200236364634826649777777304043253010489753634391160892571579540033578309245809060301961256277811978033342594832118372067331494325792916840345705890478500510761199127307201906947847055612816547517540584970536934029875161914454424289595508156251831649131386455072165813773102057966003829607629530856404943266700459567173733019876686795939534930222669700106733110722623304969685222693648613771127247952253788669249999601580518947505490628111439305566475533045790176445672968634262229244243289355251134864464216568754219319623648360028114042587662703477221293541560012974344295139156893137009277729004634973627120322143576290950875028947087561400431996492325800406192229409030999378787973454596696864494479944523069921709585837692280480589314318433393989241539084647384945341144128076276348582951154697393408740056454115077702591137286094081457445647215725195082732116515521364237921683024427182881662046308596000318210011236687242247879996891598084125777942614819066491685363188289736597389113321847629043342004913587563641764836394849092247308861832755926594112761382177485802823497416321417083470291974424300432364027602432545371571602761720104240497014613744532297444023964771878513634022869464818689960699832044009501483832020407685965591168981367059895849226848525180176024932365867992636740708014344149768294789374662052041003827709861569894713473920657772772163214763195975634431531814562424467502587823751578161966021570404668427291345493649969390861878044362101030962188612638261951789701469665003517484276679306190337011319714466876220260322716289224409528440692885515242561032943704062045553223458602386642233233974453454061594336803105074470922115348507620837596418029813371106111933975828509998150993926395124110052620744763526008704966310050682468067162627314564227299341287215230959488293334600913498039956071153135038440688873169050922409497133169040488998734624810255920525821426685515920905960947918061500096665259526980402316141911410270790480621895693808839436283241304423922369640488425796218668936400349559832139928840709815824573328598519271138814682641407217773043211066108502423856309400206169974510800479951222090380547218136952058125223941530888926921651556117042040938225038568804991840436419514091829049449413319213290795099919127148251742105996078849756341267378289910525431213548033132165410074117932169114499630919334635435868086696099935321116499490387679356533719694703997552047045555455817485419370597715427550823201029567342183364178648508846108471672981496887092777707352292488593842287601845412337759761676151757193677503134681602068476276904667408848895360875564265651412648049029525066935237049367849352084264687193746957598611143981208677968923201163770671748361050288589013921249680633118926287125416007691754598268313025508786534772666457860525695397312977492565039853603179805751147179662874479185767438734857249126094899633005309796696541129412501264983258667529420438995494838710097066751649808827699230081694295051819509343459804607426253230768872713264252382001381251771991714209575539051302138034379454973870193167895099269446441606010293902589917858595557456995145861562107684558196927338528115580317320813038083119637127143723544545834542900257734815433803352756774115182350201083543370720811736664329610528274015065487352482614249051959909894967450614891516576841335387493939955239567429079153602362126250785058986907682324766900910285997338461203985598822772448004291192183941443303495982354382826195355399104120795786415711341503232757844682017058978755854189787309689609161098592377958130480646040735090040601028727195517960131110081659050735508313859525216025658016795510724066308833665882173377642237111003472070635237834201826812103886863876986100046774154546851457958230173062668708514178189259547511610917324420351686896447680821968268870102247155123085165348642628610224533257715114221236695946189725377268849435788818264570674174007287494371621899192463802489226734115646585120085357950079300959605879438293631859222864247111829709348387944514293872726114252680364309787840216625742391005743972111397316002971141182464538898946603354808294131885520481347229456973151766922946167296675826121080609863768953666418208164807612688675116521924614058503311409543784454735112950697354065722814070101867665036261734823759547550996007617176274816971853715850974622956687027496924972874005238104622989844592874941775647499109380558118259381744020047062245716544280517016620354855835088092454649609891812582332770914160679588820492981935432207752199911763824956714909407336012719916616266399614248626512826194568167347665224413103690022913007807555248461635067787343259342694173807429285111416183883096246952547577581183311719027960709493086661267573408789335340204137013657695255598166248167657410683475346146406770892780243603671888509858324687479646587195857148655724689397552968628588719564006177815942241721757014552362221398206302953855488340003128215367451543233782299700941462210397211501304590255367954420389517874396568353474807866327920315095840506134477016635497363118660265681215889868681721810881568477703588725608041059639763414354579882728032478272221777719481776086233717514561376379846173670940467681606786982065234182760606172144310879354666509039537846751488162573770718418285970831567070085080760911664781016641161823347182446229083776794336621687773159078934251782228322931337807500950089272293375941822362499862782777064898725285208738976465641477222613202769209279801907999538303303803281754169676712912607579290002882948574547526307905631138830138122999461413961239266304727029960213427928682236678253852874562722261262457931286204109852898415660692733398761029562812068857313499187531047710264227942520452595816501194048421643882267395287678865980022396046527342610936206542089502267252225780876745809206800581734678268255497030327653607502189905629883721808732793971035931299383143254364361159715914169583896932175326588044337286582768649279569543685706585600772785184693013654506651498558002776460203836341986938367552358619135634848451666938819392244254573864102310227122684362551890678637038703820030327840353174223563090029349097557993167274566982731276801536583884083799092533151882632092663301694402332302880685269843610056399676509985330365221198223877384724433231946563306921264721756150106673072129050320982329093706055172690828556412621297111224655781338611862374223695722617776252196423237216033586960241287664822156238316271597694841849255154697040515433256779281830969753470936001025127415018036739640748615962521207411520554822544627208382734669735086368016438674637755748941099803119312309603238023730669523352815057478130720327957399313421665802445358752546388618016965284713874535450890721676463464701942382683385762341540589901361461135373307117011833234378296251626476400556786871060799501126242096823488424487993692165257567757209754093051372889755212798203749446979008518815370041060178577865907610621432344474899702311795188246069512536776657854230447078765860984774759995744943726337093280630545183747846440876288664791001066201330611604949418373210510940315611989132019248956044773138028049375424824415680170934437378783506537127984887821486104321685337680179953797212314680426443692749863907655657427835438624738321672023313420864595275928920174168535034483160508345297531272595956414664250873877048302094770477733073680537202117985052497646555234243260030036305543492160602073741151940205708856665574280497291747922441031568621720543081299428476032640851931505959601271719122450335207892180016355720668923018986449801059716489257497256429724586872865760259216302656731206252747364931063010563979650318246452501382105884426794431623313114558127858673839662870375626173830123948211665509297128863881766751358403503685318587899934791024486931147356429286981571667635039867557294922557939221967163214504871514243916905656131036036142815636044699281354582519277269743822509512062382973918517084116873682861244518809259119716170781364316598894970662841073930637145940173990471122084328635424229830098050098373675516993233632718846582842330834630587917842052949924463727395864010158293351959407822482412895462746378087187531302052047456032268288745627050353229782956823553367783753515151909614678168186102836484343578006390894485100568353531524837532812564162455771431351644716843135365020948573837088510884962024045429615951599450742829060208165338368702027209381774408938359096416792872645814068959186865341640657987074918011938072177318876506830993791943418720655782471209631182661850683181997933555466255460402510854668535483120039945019051385646117054915593849708797981049020806736083653522125239195147757966979589260196622721159786211885239743810935776171841485773487449451844469767418902947349568786884946547414763822401276441825983943494554777720124103936646088606421925929498643449849097250934327841070680464674661461738521036483694004263688407131838603775584717269454872132772740243192705314436089941318593964937554929277747754166405987109500020133817485490527673338401138192937863871515959761800240106536178090133141751088802599396829577866998192128252451151414277670439197983462502356769614393861959763129107585814291799362736493294796545804275006130411476403903397304190261805380148172934032121246753981319498882066909940064206515889205151819542883182509444679266038711609236838999884045457614383936404167441630815799283635153969841736551363928192338773325971457020888046017009842839436501580739287337053531112918654454493949921524020306484623438454910364039789149562621928295459315094084895734856745754143231372066494547566450026515183807669578401716343054449015534856421869124379612267351169180884719265007706454387766579603043204015161205085687541772115160744423657871795832276656290993666966079082914659558000032822121697122569469043448446988313222690099013403697661613435640686018100004052907360245247428521912918563890725263697607516234732981010994151584958456965244164752321580912766068442300247219254128378550639055798719008179155980417460489236038998450395611561906228522203246452466617812091534709015084183222286687731578506044841355650370071811598325667835250704334552337417105742801589756226722598033882408034348679810396018883296634815953767075150495284243086592876161085286928809844307474095109232201813595866083786114744821597210511005399117924881026130565370474880554042016450599515747805743884468723219695991408079348011441253701423096622296739852067982825421533273866165512948955335442251343948654419679515358875612449085392692375223040851534808927920202473101753532133740457019141132603226621789393455846438221423806141512570431530572552104978782786808351530756903372182161086156239219469225140792832853261287559439014432694649866044616368674320994837096683781658637143032672509227520447503987811730303176731613625842803476585305922328079896827891109588100568520972759206899623216626058732464018633409517837511628400558307622498780424791517492245436154451568242072681598951491100838896131739783711983946775264848885137011014773522631675257846621799651132368478101533362899763975440428509261423021414249788898126329316749692336695304171293010369180212164720648499850426275159292731878086960998860168129827454202401030005141276599824041423256701966672063263868139099630459910744761513728701436978953570788004277257836714999823621387462950703621532182881790736406503361012239678570009156124239732630125669734640367775866351210551173091810508366359049205725353944606312095419660218221750862486256852066269313323777307380787672613531665984014796157480117907053971923819497508835191351926898794444759725118576844437474609166739185071794803530768168047818851656914823958768021227138181962652103205604080610024742700715827789238988880759587212895452759993089752957922718097561303347378411396393294509563326340909764766936128078275623630787412147152218303658506351520000161948241676489804339447988930497770524741629407763241311144165047898068693408615417347734822653132706679580383705655871431436436921974661546516503165510044767721901028792559505141740496735461786027117661141055320538172489054571453915357204389346045299517528206864662240117134366122141993252417397879347884034447667970614473457823921887241617694487113073717013802117648821661070185298381195553992679208455045381345949458363261600871254896157368976713272799247148142624432247195956799259079693326859090031484437412150482621809302239637911679205189222093281828225501807434520827306859193053767769067826807034483469577654148059510387787396355303421168123054928110383353620499336384362211022539342811109886607879697726123576114829437088039882920388405248800663437674783164799787108281522724122226611427271576122862294449251813246599642797605327570415441676319255817145801853534924059535038257633091974691025238838674970510242072501154484497467329745384323872337861779014276415125929193549910740639281141319915283714644907085909305105512223986204088730946322780699561531944197726088147137778886042377778462188040978965310297741797149681041955924330616990988024422788975289856987745660012166675521728584108297162308426477303555424043558609106291712086875746571676672411543162334991431422117290881969595125126357136029703242090615626420735302147696528229383550033724727796177447224061435609440766463021505792246306508387653806543699890080486356805695245959752186253140493296331033480660958831622655860853143289614204094170628511583724426358475414226236760598035222052415389856186228256018959498705007500365793076681585485649193137531329060818265525621321749437047416335598858291641050745872205805732466994357823600111776649919809469263253940948209925949740719959877837451144067559893009208513423306574922430432812430589176875356258069571035138181400781366817446095919196662286433021591912774482846056866199154720193448894065918705002135964992381273642807832691630402441664019939976644740809082992746799935611966676152653768579067682967800721783710757933708395097819189107623199702917078857622468298487722921805718768414314900534773415727240680602547862549995159327780605618745137018538742596494680847291003792505114152724488172171067337630178831805347007860900478674539741656199297614419750563202950168904498998213429913324687170111184424591909179243305305847228129439319217844967191860167707656056219249567532427003277806818951041996328164406109039676362062359404641115961476625616301979699254673791834737815226078370157809519004387064871691561186562875172220969724074562742018123582267213162666862974981518330658069238382201470320453628537344914111284154391622737594380724252777786779634492772889457054705204475776238322837992057122793391838162432091330099305629895873452811261002418946176367057458690748004612439898486445747832703760984562175354156064226352804809893987589947010071250079037448497175140525779711599191413330534685440351317695058679606369850773049936099046346118531360168539268097561397878119761661423217059215457592920080914131626057293715408448801203280588379054895258121696104218513254736663713824604068179051477081363223317865124805732827043323540245519099437848778088224179408806482899734580206716819595897785312967875812111599380968436139063545445950659388243660688879648582104967471781110787596799224368590735183511806363578316624283475122492380661399880181493457175102265089015704285083400703451096117901012017936435985475135616343792821754193144293528980721010575192584068840942713166815839102648676448622431200748149860125867819284384186401699019192392562885444926435891016411033933357531783268395048359670813979453802922496932231031665267459740273123886514123936263105150286183364507817304379596584693679462275257992605149058068893730447261370058836370862992856677941189151984881564495578982225393259839022932164582944950410036510218950431996943837457291873877649086998823312136780988321807250227429527971398083039856295235498358789565263040650670756239205368693745988863116967293215575200014395403927594129896600635001933261731492863637072175859264632300383585212891341181418357149612467728961160124145482140742914219961533133201095182565995671495757831674649318335283429484182941081259478611204317385115467085930916424450480151656212811626913996236088038345343210975024493858569404946162930491653876209719109777472014979200697602447036049575198030185310257202729592833079973884330424917313928523228577922351184107099594516214053391263302276211410237135645370903605754356595098685293878976973238914003563103286811650981911200302752708092010848533244478021159358550793892320470902169975796575054481893880595291448900562324795990203766125055978495658372571811541612191180385527109434000282135398710925059470566030536810124962602186866322415147310226189871576292816872867497545712284085488618603159561830205174158171834521965433580449374119490416947537197488975948298595300701647348763559316719907705010527576355238775331176835792750763462530142821512553902408917496518371663564108299116091853388075971396109325536015227933433470633166894669515234077922910552024634438716973988537666870978784115565943678236100651558389982605155976030469409007901668680280420944562475015476141964106811061989419979400619654736062245521714013096994328723453279069251678190480092591700706002527722359367885388485778548385446661285264157014221850708894924753387200268725106054200290712040186775803298506149398561241756525301178208469990081645874693990521114299322422106712734684133590263229979038246205143737702886270425024333506878290755026948964185195216433198194990632005283257640649231614796773199502274112834950628514428755681774734105209537310618495578858503164899856412735674992057050035918884803331043590360025697058691668063372658012610810289732400379339969193323146111929234394578621950053525491396476671777940087920253912289535268195842264353951448763022360264122970180730699829043090799780330100834356907173133202680213091489769571955154656364148100006817832970050488246118680418473744938552259545998000907862206279792142163831816532893047443233790409516526380680037361140722237913841098580213576485140624641435302828642744911948813758876252678271784214315321493318699470337060080034388907433531422151099201344402277175362327185905066407448961987550656572357470715053331730190287502195468294232659140319336971456796747079032447086245022727495287536573394412407102419568651363735625334254826078667042818900518744656667605725749711438754630734363668651432483401111566481501015935848352960766349129670537716293399415214076729451289539904128133406051849689825391093807097865481091840869174210018827911789364247909825974743081297827601044538592438311542816648317290489286410104149511606070121020605080945491033872460097634836912964124533410102976265338854070865445718801037803934070954136507011361741892173553234667113335119420446701589271889711602956116293472735388494265812165250469534639564531362454774813995426717521479994769808940620134121432271213235452226836923417321300722732496793022815550481683287500486142680237176993423097030437223320465084987811071547332232277911479938457972082272258846133159265537235776347883786712519754682594835587792015975393230663537276799727977612454838564863964070983529178722205124711862997024517182620797644085070000238528538757315434274938809037626653483498713926103151034424407767848117742688325270677494434046752834210579818322869579524514718796187154580008520098157680575520921526387927781808094005827260351148239068026378058484342979569043691541986087781387134619668972866304279826642703028252526289809062786641323709335689932540000216215202394203914179398014459233725873153104656975361125429757005091637955539871604389024829413176411568380840970028381859445951813443129669765006658615535755986346193693761926181287826444729985696849629258259022295811945047250173532428674683012683967521969165559668856605513341972796321770407734025195925138799584431082066264858268901602659098850454212081522852815481753336149090159753737804495078255999869493897377513904777871976058386290608595826533430824412289885100377369866556946883790465569230876063676004330305492104690963224066968499593568184491275021143110727615663763301056265558977186767328641977115219138469178928067655528552427376810981181467356221254402489833955370212540951075315174489942478002590808112719368491455295333780141488541139174966188113713790388298727521716800901711415130103497927056349290740357817621126012469577692134808852718991503728397829975614769610164605512491540566654651947425750998073943021707405638211322431740008115575455044109856745929160571727039904778984383053423818513533311189735133494888637527597410151097796444831106149119438593653063286432077444191956504848258225040065891954820859255407939362789006904956803757580233379943668579866352903770787820600280933989037994508444024875459037990050973880390665745292148905700548532591537117605409989709270957966250451592022614354937420987290772572259105235735732750878133448195457213444776953591960132379489743895945331737893127919207840531214121067162859731244481136547793251542516978099083200270023855843803481214941377485488013156642628449026804375089595062295815709516227649984428634588501938266959670468512700957269470630717074402762548320581465012378094292044225792014885701494573742198433852799763961631388968915299619210138586342228450143572401917716949694606287776280078038414361884266481812205759612815944318275983226932509370704847870996764758867471388052787646057468947807459799825149229505048323388441271647215513138123468502239083003874459726447067108387313016022504434286734141859403525519026078397871520328593217179932662774443635570277510509663248095895115779307771472141972077356264478921953211118904946063898345725810409285037505302879271188269225732007565458904340500666514879364794167327041537673019163251006028014111839760919654276762662646235328389141160787072632934104252026638499377276374351797645079987253825894717152018709289027622203043777507551574480185433665065084548167363286374026473851140330251403601315975062581641638638043874244975682752693380400523147918985972031709721980037014879664896800133137735840969390790651804857282664916807343610314650699546880896211941456195228039021028621929162626590549249337455209782064200590081539254475279724192570012623245150410547421880616717427839224876604343329280192822777111096737923967519723276821182787326622403946111815084824762181625859257502136410657345981281180549297302103107967598185408552738291110241060710152759991683711203343717352522912384299099338413733726914704496613325125091342830675671912627911445484634034363138841691574838097020650317987383294737285092591610138930460235920583625748107264785503159477918645440150018845824865550420914072118120750404790950532404146153065237109442593255470454087706193643408019060083717610396250466281886912033233125837443359339072218671168441225219994946264826417005343289286635488145830227425470104162654308856778647421678717043141902400463494332209138437107868554856997872011111071893038754144692719045739570228683583307394673191889776518509399490816365850838897769981040590706786610092838760410006619329575701924978666812368369939663187025183821009895312307439003732010206812153606484296815463329727907763019126043990538944504515339688381154327322558532368081033339825170078175346502341999012035047130248803798675602631237412866395472155839737746887011555466530418898412798782760146426003904458034998365308478497928611619020631702274587428623178458717194684712888290510415783387099743322488040770117650233154442510824379694162049011088363187982148507679751310987398685758143580424216283887981138141388961933379228067292242274959677117514475799871321467066729377611404667909870359396417441949322341190462980094755638378049395011154707548156292691248092943016718405558549148360637267511226405852094459315988983226115074866556146369356851834811269896481066404352740201020895489533261121135164310663028024641531878041207871749421429170062106177339320848130677795634091787329309904680707497836025218980464559339418413854803442625661585689318310707679554123553800101918051893707323961949580342065493179166363374107117604559286367446784066101593896947684805925589734659073179485905836226292432695810994209995223749790989730325909643192445970305829219162113233604416353415227575601067794521892078397621291655859068570412818077400418926920617453869853745581498920710971789351141788340147131331222159787432879833802874810988871707671049786843371967711485634653377989679520581852537493179167319803793075755984886220998208984293256955962408778285403376022656841063051160748739570505564462491724509312317736500789640530522341481959992956330071881153274399702095775319166368490773580518878831772119861758994603699472097229002557870928702331511700596672056190151841470220010519303501360541759047486933520657137148792806649790395325798725735412925430524020567451601113228068169852182279307852913464396094901820898088246902785612709676384280193257054128276720403153727467988761136668372422909357018686117641799174627810354553398877582308970953421054770809316860861834772342626234918652755667660436020703079292489876111538069020174651265341562118801671728584348917996755336952803168390670387696109052647744681224481922031862433424967567077351892212932528078402093529647461496405369048093033326876726796249411287905607454201404421632774691609823207044179606169872852518435895836098702776291432355341508139460219883941522622732826017753034035014589481335372345589590589672616088286797010796676527428611495560307597145381261985158322971318269589284422132735636072517896507718370299024561687783091535232482627629800530993904922776192681478353031119337748909479720954872246599554980659505502575062786097444320988686764549207906516241017406212220737086606887240703710780436905352910506016809879186397156746636170837994994380804531055662575053399832908667833282442508270602727374370275106195568913336343438114769498063792204460348513938438116030217915176288684346693563539512072763318466187700077361291032911175473530653144880887146375310302609089678121150619863426072274267186632480993351829076580159222940635259268769963720713241259954681002198303744402272106033279781372496071818234972982494027892937853679799205424078618307539710274453321841254658355965051706351983649692228730958310697399095527906252261632307476078635011927230845497312209485777423726393728343234615898218209130384356975260720839798024442788676509396860121293235629949014474817878794900679818343176314545870725376184922706323780866822204984275536497267036191749747407578433752817349004833666576669756943773428786562222332837135148986166634464662289567409121105557375076025443207848201279144452522090358526152832315967583176380025709298348525721055238864133238803277080054388086702745625277973879930873537377567320364582836395156319989422542462355798102603316623975803629330402037271428748900847592499347961270088643491711740438250026005118013596961342174122734647876457275407148035746728558717880651155239749171937087976564546736358528447500018498153429042157817753770061449071373378304700747957293936449614344475398830663677266900840814394455496980324873518671928115533405032595650715355884559260039856251839038087863986852692483034032733865297924248385199189535760044233679831749163271420137721818559089504928670400244585220031375672476516181544466376571944228101435937739843804109982022574457314629953681317416958508768612165705902463675774824180087135655982762829044525250433637053227964986750522546160266836591758569490966843130680629649411059928778001720276983253836214231831693363628023610612230640749888261998872769281366274848039585505129311939998884949988788189836084069677701636756185676315849985535279530577839644647780714548600517582895569016948548335973289673650047233043322802421345219690881213685267117618759704787066566931084815236933571159250297647988753976158619727003313640824695867727604795510755260535676006160390470530350244196083348479670329307954031511869827598058815497980397297365960354729440890347242896068859613223135039036398460583857132774954752707254561310571614665526732893896592175095754911290442490392887299765069959601870434587553941230093448522264136537709895581683930290688283322309144542152305887261072016460680145945004600485228368213343326837544351271142326594538175169709058568714938022802757189351943488949511707756797494856220692511387953782117330281570356661909727958199925720540701924896850426541882714454963018387642197400567499812226129998068635300648294724058674672904172087655729140250946037876518120683210103188807797254663172816953192920289051714898772333574998273819043582400909505087326345965167072229620984448092210561576484500096407306002444933494766683174066988017967836896774782949318917884531557060821272194748507246436634749584594033035522338807719132746734401318780824060520402740989227230065784723209674275921475184129953578575174220784092170056237857219220304879032865617084189798307256266346217907744664722401307478117814932472631147403505310088180378768417019540656037902132382845365018298892667779527267357229322704365782177735495036316542365703098788315825042981958746410360937328318226083367926458224128501349193983435805037485221929504638191939231162270350521308839841191038530881037393170256427180883194261617412727185216601133771319153919616332374259243412427713059754351233815183536570056773584138470376958888113735717142781233098421326076905465512955746071569142627657127288109195986414951550925639985199287719087106686886200234301375158239870675837020343051664202004418291612998537175484378830168455341966703623042274659058982378889531390512652385731433649822601903130398467300626037824549852166086985493405856057813678841030180943801904783476194687472634596003770216031088458470536210125132434402515065451622344692313612052919013238395724749491625489915405100318704621645173365094319925147124939784192366003052276190959320667790357428551912104580949556584042490403788396526428797198111561712864479088767024448321104381302135895974854485889264466847163518965153617864310474514214924052165990595644602488466973531890685115729568050377241960552133639783643881780894486212340387116122624255605283325328147741811740923168529417609645976049626373390833162917277893587581440552279209314623171670875103588043352834578572826968081307913278526658078266031325962805811422881365190392178841190559432631000257371224194892712643224350272400794323352520885175324875641684902303486898236785234853936633757490227820622825232354745518268000876561400860372299613191503210879167797434194402389632763434734532605352674043086320384903576773584296343314434292284274589248815944048527671578229326892988793426723652662892307825048717436066979287853585571700970785227254401985320228872099374396655114036346392859016475857662360828687718304453457006966297729405411151307303589483142990718290819215591855654299080381747139386901619601630654834101708684298080549923034375159420515751770318484407219903344706376032548719028961218260951774898518900083286064466630535341213889136367302795519392231061309047298446335849944997824196370886897483993216113759763549538124690227121600896921627765713478012054202765174806570645958337537490779378267554395666591235254667357659295514101935577657129340350035144167143475446299187739084390293092231691381772183750960899162403940881600813077267307151757740504576633348580222095550624208121042596391633154398849512521630668367180583184532147527627316987745835301408761342475784330627316887736729493965856309948711841760283810772508775842326035847586657343189901592549786124298805263042335934387319891921626511897260225354691181195015158013346339034644731268786098802754534149770312421345526903160080321719349338512413780969982240403081062493129387164031787518199266015057028931523829887135398170733389144066180221751152232780532901666188344296801741251939630450745785457285570999840646342359305457079297759827276717421031801043125379935178138270480896622728381558540694541597591915371355642595784210072194320031670088589009290941906349621260109071224936623427366944138686465752787999367585902437318550427593389033087145314673550806035223621646653276674670009969246674208531335784619115619898826431461041766341088456324868197284509041304516862920336374297783857807092846779652650586605621472209677427675286877433485083895807967637672801433157370964367984850726978437793848575525741361103817375328523041031528339008146415562571799620818291271033975043251372538961819414511517515701400418999069469980815932340583051172727546799124224724126089124333200367534234843446868274664391652578667308306140138453631524654817148023925900751441095273305232258594813178467992910920289607537261454507388810061927523888748957954867466288830765753245094924310609646416067552245299287368648632122602544453321867501925170369750096340229402307258494307603758534614419025688680136571963818791577793954639610540086919521010962735615719895881514407111771509626649583662112763181146882041261536422202675823945762176991216806999566867161174928646120760619172195083043151696312699737184683359191740084085123294492393089968310112116045608366438567910181974416182653125252707956480600547817248532876564792259306691449016132976273850841753713723862595180280829084304619025614400289382433145485297542177708509234126437386641671874050183669187974936993093295327758066584968395073784902848905448780331237022532714864651895036365419815902391667779618630208826051598245920142663442463950245174088436570086287131190721879895984820299561532014160011818436232688173859920456247579332152185877494088251897224459253866536327513612498902987576605808861181301060811717396554071953758325658376214824087760868328130435772993317975415361494035311699026390558352059362405125569305342466113566514266384352743884274612124562719051965250457117151883515729753956964811695656194100518275469659176584829625309973972236420337692794212456804302489632452705185540188462583477096253367949847206672557821175931381079367034930646922490662832761712399468206728051752236343599035228483895327189058888574212785331511746596930385814532885318340728933073284276747730119848174344335182740842797546815237364413441855762344874039378164282832535338765346956651447406693492330250715689905022656110347163807026206371801545392335754785505622026648463428851805999928402981847522173578187067932861610531495807111941308432554048805689537237602880024956065611793227931467022841135504307337622660092576886333262904944917787632895973050494958895567244366967005553220076404284601334381548661720710621812542101476170386907962287383934635623656795842807337289862025705256226133016263530893915359273607853757984922234815959913104474665805760251600319420917383305799886457563215369570386678676254894798644963798821476462279589239514573328743270800670041624967511030121912508036194648843536256566095110382650925546665866121528831594554423455517914988459606521493327572920577952074385060678740961169360706177653701787957562970861434208852506165218283951412396141247264751316008048092353767757248069901793352409986388456657644755690434574081444704822871956895799201863684961032953032090181582247665280053347750596130777063752346412019407403075692939202831499590322196311832700064559555087905530225252382515507375157067299758474027481867868348542699797811571627101098649275702973796779066412311588585282968589100274210373349549568458114371498574629207471112060264638951369718871250462452392434867203739695828992613307126495050980801311932651248888960115819251481510416557116114846767793879946038158224554114813005978859146294877182870750192398834620079120201625748814675000282760352170797511290969570404253909719198214560780602790761981815699108752834487709445843830997869780278263037588306636251839224374434663408020223028406382409022509174756450179906931049997696047732458641215810865519792194256581705098085955847255641389208500293000618202743519889260973123537411089428588655427390297061842377419483749420573311782545987655712746481751352164002093982321099522865341023645341069890966802022985493778318143890029404929985221784603836983296758139407712495572573560315312746983213308355010043984321835067050055510616170088674791521194002008211269742265968429444333822602501103997838491901609134043039198543997893965628417779821093797733242650161222752665831919379476722884363475884453699698845170791218860799948514371941502565408342801262995646838870829119632588361306331996182373726480608700860279912112335981795471571558394646177499441840017539170990338328282964717399380832417078117667420347207000771308024964825616167847600560415247078642276660879842891549703415944509828149681481283187054846757360646956467979262021101088323067913093544119649448864354700100512587572883125993012894461676575505792769527339793364005698946775067336932943769704873409984089167704451988854711016784453505024464235923104740876127364364794603993809919086659702552725005845459601993798426272505546030007825377683426113646691288962769658883509564797616632629246589929990644506384170829843667053881598661471281627469786227508197998551025871608630917526604451847074311242093138282812132277754359562484438314151198116025419520366512640554990615801116453117242502030200566942243043214491283166892515696466706745724954297010660108883673881409608390306458322484033252609035055581423427636108602279216858799774321049955143994128341747030892909798468234470864015657278110126365078377936299629493377800210131062950510696603690261790412852466547364544395544926136869762818978252187268747768007727031147679579288130037590095247866686101979665324837493373927803753837124661421419253733442996799678609777666235781918271843856559286713131662946277223308942741913536828739489620672526848492894865392916090288639400954431450713434453343344399382406305544041985360097100210513976712964559367489010959392933280662305982315470417861439738941203178912984171236418543216019358431734056489993714408027969108518450426300804549757958970925011142704766787216714213635847730011670574141663069253461700202734336306500295725071802894745803181631936349684612938200170449744724743110787226762226630627812082075417509926007490100291323385370106983237778465182478456840791808939460017863754727879321158531626684498395622541595433728470086138915699593627761159989490864683264595994770121888403311552654112869976332753310127738462868576336075183768785470269119994998273238479760881604894324927155954119239430254263438200319318808297636692520046409735328189812475470343127498425181754329507458717324234736782239540329338840711189709791822396242607498759663909879803472566986569854519910858770669777468422471367851637914392390535945742178886200195876097740403028500880639345510847468161354312089874478145665856583919633128300348405654572758116589787325762988517696909814921924150186513710568564712930502224655492022300158333259299983982930689408609240214881385498683544412646282152394002359874602290105300225904317963046772489258132436457526547881646988727559728119121242224543490434266901270924230459468819069176989396095684396250607274183410225907230537712790638516314246718042710102708269219796351296440387649928259164323870900459831758939381396053257003306879130868535309432261841008259994221359312037393693288254408471045765954504808226833155984359055757303213136592274308500437095580243661975110915054109501982819795716580940760349900952005892664855903755475116051194609516492336016028080180497777850492051325255003427986903998214189102993746567473795657772523514239048303908167212086162086761660746956780471276622326295575035689802813980654784216331138642130383148347557604311826095048851235390797301173472519950036511068710335177996935569372651559279705936755112524591382148688602841928060993719677327629620414081541491017756161691821012285984042400362766622862540795424639749635872042627068142286423860161099077198975060004613977663528304286305187232238917883221788235515460833837117222563196664390953618116835485201167250211354515334285889854896309409635191341889944444875221667819395507743129985251088489083551062976470818748662409956317129281763296171535371868891486348950581267828707765444004798554038981930055812975534862515216673604362395248073307662347869696155656998513478866272647453756795951443974686547343335624331652246536239337281596910864239292057233986438019268241428234889876734483715774138253266380429976079164258944141080907907807328905581154446428948135511927886523128383891511811992031328812278007419414771153758451411558803259103466881389423392798407735501472977920580080136404927182599141500859852236222558172389683897116649349928477734582735441315657572379038427637494862180089705584890417252245931241452707635689288426604049196548668459460711622862740304151718997911150695428085247909109115326813750871503536106818973510925872370412516313584052584052851078774111368410704283417457642285015307786399450041274084962751011798692668661795952758166568127669734087554213309066362563580612258657328765239995898597749276286400568228584219486083177519169700689428039235504215430507601143588933871059853677168464323941083960113321997559966629683587246654750019041080532078046596165953542864157200988433321344249793467158758357218867470284179207174633234895942519676774570364364581690170951126390686438622005090313253130010661490175352802336699166827145645093009769770559821846296895841168829047030402487002119912717519102301841083194910918708892315316381392565178904302371685833056594398409788666850710110368501092362734786032954652008085561110727610361164731340887627559371661266510084837115203415072644195818963401125921736753540401563991070613292793304867241242610537284310817865070770846776741416866843621787629849787857138181477602404040204201809551019842033521213506318978446819808589953659646537558652483479112055339335765579744875647178507760478704302614773228703802421909497239969342010988413227459864687367591513705233287972194883274502124859844252929224195466723279353196365695584332555755781433647111480143092727135963504323300743556071495788182076450666192569706791819892515178506793170590296245890737048549578638278596620165108520732288777010761232020759917682321587465661092061880128168069597375999928996010546126613117466269447998363802813936424146395504458469276602608074354637893978712239520236560625810478021336195660474682750475060403571970575903846986941700851444794277471931212613202170562400888328992180793130834299905356489563472164311316286688657124246312333659818939527541705691529257854904844040794766101863687956007367238839961614040722295589993169310501896554997382078107634109081967595512861260369035149354593952499835974809781142514963313719868856260378579653884284566062296930870483620410498185456703478538611477931983728370125599156114637088353336035062684847894113345220189034450601910016858274976066440672117209147246605980534218472276259455349221847330106335130008763171403870813374289614657387587461795937194525890627185988586556211182593961636005627883734477819805372949194277451044288818398144287535716327627477200968644945263912741725821926177208464759558816352235947137624660210617107352075869466816555513101937127421053060841300182945529394002835148674975307569576411620048273680918815137815247912099399309041774036374737569576171185178927600798641976514046355907117021021050460226227524788511495306797807290242561203052415830645097171290095951703086472096552549728167975158388051297837273790559362389665158081973565676967334867884301304506911426446495691770036054683662925892542052993233146595424014693809450599563078713653959334789988562506979165883484660971690546626964057780287333569931537492717977929817523550517128542148265671962388425192871751321926754018490108977071058075119655680121219202991501494652336326771149191615988008333714255318285440056883876194584946293655425632135613247841377470142816101526262032510524722262794163614382922140396913449212705413458860759424124993432176464839984981772837778677264609964136931659420573259474657625300793082132215942153374395146403084384538784948959314175502496501670792179261769588849347945461679718936070158560102517681802292127633656140192299002101472552618638504200167164210572218810949416024128113383841605290928117853516457269625309134408883938117551346097577704397321861087879563066156300187552104397571154422523899585002464359949444160337538876619206200328199141227035700610219295319189397656490388066571025396553488930481698473568654277366012771752887677582377538553494781630994636545158776643668699979995885033648955471316818655642882610571332802677355372658743607760186717481950441764341724701403741249165962286959198340025707659625573966736680041127080477038457585282291125359397812811758474274397819543968390180448367818738154770899091996780188692958907006656444798864077508939404457288150604090253902480725359861583294758465809998078216234193858351849295090250079709825454927788438265291852810996412343297132831111989054004704628995026772114952553316486700447136731390049913847242473689256378547839193859148270811424267435338683691257834647843182730753258136022235706858716942712599414486785494080797962615033714569965790831076757463065610720571403935456500828787063291729561373883277379377029252400213296026755696381006504413150044379815811103792287240332301211745848164831127132872931982029598630783636576518814491283626130270017207325495323973429805218504680465117037407649831659906119212080660012796025570615615041934263708740742347893844710694703692912451365006586019082438008540360913948800877806819633691100083866971532855254449495753500691169606159009494689203260721994003264096013765623395978051663025509342633338314944232147212671152452230376058622873878561671982620469058564258915193040416108064520596559820544283386211650508228484623837734947421451758502294672698656042630297942530077764412004515103818753954142532710529484443667661662643372232162516709648389446117359277914527147380422464282247811859711745248456435072593361682487143689567551438820549238914153319294335720541965020917984787797554474528779427869168553392007506167329719748229554302427865786940068488009947850130614948546867116256860440737474198684131714259237443893020665658273354238895534886075308844345571602536149436669236114164128596403970919982114198752712449972005206519329064447444663632705241958242881134635516608202123992873603650849763191528413357833400501474892715524160065785171690883812533410177884867613668584253579501382960295634080373155168422609656060462688370049896185966953535411457424674005086502537313103690077721626868754927723873120244195248255432870125457322267349054608454283449112300131694026373107435472662335424588883794932098180323727467848262103125669551149160365837464175254962311863872477023315028379407685432630027812617507971339821880297964044949758465799324875841155237466341683415482474637733045822171430489737381235459220133518485565384980740715405612053855000468997456799067975879196505596733326259673062877658743074276767756834894860620265202505532636955728009405095040846996628637073113391081758497413433675131514882413645680568430928748840427191907226538074059851129740864781158817360398391642356098077542531171756984360007944375262126221631713593204856254859123048694964160821665573822107073192010165433676190329945112733320730552269082165671396104085480813095766276509416226141727244669765206733820157906340021314762853629808176295238306621511982798441974728173094815466386243771372623911934587565328301290210720643943239278515847333018765973782361037246537280806323559696117535671671904873440744239124822523096812189701393967798970155800657608599440815905837251460120768719766000662757358646813292510354006363098411820247593651392181181863815306742314080862182856276462931282835890608319152420553042413560237715366572164817401257303555407357696874282570433260539941344207474398677581959827778272738186110465661907133526493770798771951423334817962248264391669306857419141830427266660772572531242416002760035546543305731983315605618833362752991115956798557974962231910319944279373325769286047999548672661469811045864638064597686686899431274233929285853149227194469888706453801529609880264313392888411723237477247501362011718278558746602347666576767942877902863895752787839162066757414660074310289154865091572343694932460815534360710767580811425022352812143408268689977008115075593071337995687195927246330933148996013982370397311948799633853952900051972353482237744464348020192791215361221688782521753594853168344420034208875572137847982528702080909648701379855967376375267246912000787428334720749765238549980114002455803410882531866225480213583340576543012785849092019493162463456631931888665527444099294734930021076929454169185505620300540255286876485663490823061975737281305893143718478471524584604654280538793509617565662814316908919834592711815679382165631345605581177551774879211988830282653524141395483374601563689666148536187620249133383738315896421066964323747613759196810347284490434094004374236354307056680298342002585807566854446347184606769993582905038002534451279195372930690350939712980833178454015760372028751360273770294932504211969664608297874663669421375325019272829979927179624422942348717652056508161558952100293470869812924256851772323360325561090142445068732920555698615028716952798596896831100190309914163906283873857007848476605014388642967874040917534978795564043908270583311126087290374555604911711792685757835270226910480079996858081175257841125743811718444686406066470159707498038292907804083923497625973368083006424742336331375387640999343418024097872665165326516442861765473747898206331655801745336910842504681823303673633552401453170378862549334834332064804561368754672901682643309312348827198544223001693963741828604744413636600110667073745070682264135447107661270191338166885432412634542167134355321628586393913187746761947787276473816078732583285049325059072960126804657403225200342932529276223152296626246441512677233839436941017731696533263678119145499513629732226156740692749968308867741853338788821650441295071510957557127088918714489823550997794150184799457191247872677321551944840380028414586929696122168604453208012590112904032833408155469786606095862156108927928999633801358199042718028961835540668032061176007570676823224933711721276741401543084795537621846435351001665195262785405853334534232057561415273016969103042119755216681727832046029485059780108489238367248892252886791275258754128509499166658302723499044704586148305540565768683934470331985504221788369301830254833442692271646588692242731298081296154948108296243239251114035540969722489582496434445003662395356898465369398977235249911273256879172768852181334609792805273702587215623387517509036569544196515186100164933086940587804200536462396884506042891148195755146371483877624862626905638712878418079312856562255911040287500021226966605099480595023227633538351980968221881987006226364107347601002593659107933159992354091107523171297113211737409058985657714354791206468582995077808912894666550901485690433019917262934934510228313309364825651111781431043429672417485853743659555772849414283211526781080041529960410966470755656558990531718316685830554134144364143912022414361455321042905474234780659338317369320011894527469570137633778626775213842108008738560731373040919666941983652542382109642323921944075725807061163737133163911934856357444215195576602765927587262617730572944020272224519432112304629262976442152648201517988524905535806292024762854135092878092818773897435136039492344665414952823951974890129204533855568859733860185015339425469370806676175836286657046410269027753972118925014118408395682516363243916627493038987940428113439607791171298116257312965785811609347998768454782291555242138605957180160648982622288668160016702748553571809152550541415417833877137962108558612159606715446116046171552084890095420244669036654284372840446675324128069506349981444182481637300523060384561300063033521420428605383430122881191994692185059603880684594301560345854821198130400622521912115190020415343078136338736209069826654295256155889350010679566856895391817393827660544424818343900985076031051063722082621464061917017180248767650959634233219875751201018646490314374527697807613123893031138563422134308570192930952508182928289845231641883546488094326884054427258977787877934770627215435526966496416080285244822534198699322117025780134569687315374129855069435474654252715093279553886714479710698840466292942331548694962380491958162126837722091688323628710471435404191280272180196182930722684035778001906622957430512450778368667508695315713151381628659846603505729337078245997782581843044068712213000337135400592308689332465556092290410768511225475091483706687107266287651838257946540939295553704202663977831970629060984384405211848208282721135014099260972420401481382695705519519826934211935283238556637192687716668893703292574349858902436284269509599019606709412301794705733770175730816288269528215438372351986447574768094661538803075727982405261474426887112236263547412454791714628453433309960638324598652763116549474217726051323918186269024065900091538630389644458916220300857122070474448634207999193120840048593194829837145236639046013260420058800686974322990413606301616026848789737500562202701116203264066424596199283061864833842758198650744091282238175643250337914753271904277603076168892384987472676941883434119000375019717882819970481666655823327711127381826401505000875071524336554843751307985963598822707882019164476338414845075932631865432957041818579109702553303380340118014281306855845857631017531392436470006174145431767123040745466097711366817221991085927006179822336855127238826083475536439233262848183850195156461910797528601535631320221412647498713567515214965521206686599913552807539801645940411173730913562000862246361529697183113543457047181611867647760920742571648924489061333034253899674501107568993328463436332437369224361993186630352599700282388237477628584503679401520218183306071723976165703767812399413997493731920961051713815012469048177847887723224454931151730774475888860657300937749954575002215204545765859531871093109053329033597586324439104668311259340255656632249219602833861149841678420733199908184684106816343194483029233433850684552036125616565633822005405837732595281425745720171317562036565675571370976222049982712997775463264011975101607733131548089876043377711877999760446585797417621181392058794546551070281490218050940140359743284016088004013945559770978303432293153754051612925769320804218004535100000996944980318854340930033637099302529780267718031970377123187462872968457706953615828179365886191544896836157966013185769339806243055546766028224305738322944816958209772341354097973530237988784218905545282473442842514551383143245784459042526756300494359908363961883563788997336403449749299590162785445538165502749404877992600004624163210062963495101336759509374909620970289189276429568566296712766327750785559294539072425867367626695268606784868458159831003207178688608157252625467089372911572548254716621646444157783720841767358430872430940513553031085499891085886039391632683151763895637669134448544922904312152124225874557948662283235623555497397599315034975971753508259390222485312123581690486066050666488900144292002316314475402461537772105797970623725465964579467283127579883969778395004117149791858356067052004387754328598364684447385056714943116204726063480961916110486155741451024534507174991732346648580920247104188944130974056500670152348201464983199131431796688494910537198557141293946263821001735742823242446610721750405251580130112418439815865832043801201337015643044069326681598292671765998820228493703969659713772117390805953823219378811510001335882705632095618177016716053733461886646805552829160499961969784613189173337637017211122026848704426272932539439862572433281557062589849639646328389367790180227532361657526589125075161352296533328916017601592306685008123514826576338705313031220416470971827476246839047775343911522822114817457414130421044405660660613290291246071915816357575383406977275020798049700525842189751755974784002847044620205801902651024696670501956716012627232133243839358446173081910398387325181724478680838174009196659901428108566462362246243606440106000977275229712290694506030100986610192681328475921198311877059175067996177089956814296829673912863051590769468264198107957755463666925577732375629880058135933641856148315778711723347849893033526102764634222657725851740140168598588831031375198733539216473789752312545634163045811858394321467740115844804404772758853928170036998435052307760924571585056400993498938566019237904184238562320196541619350184327816738845219993613970950903100117905183638964904060522487344138467302506991329806854104274876599207913628416213516794632614972394565088665722762260001012685911648900808014319717831469378778190236453959851533889692109794597146197493032992195945752438235108269931971716130930111082159780613918875268700602153293008622434792900172669514868318397288790441396823283737282569664330268493672856602134712077401666400620443870084405909208062765104675276639912166124702305542640862461646271176832914330600800263196213491554416070184233111560340152179788725954845686551959959790943854974090179667303597684223566098355295014417214901018925096945681027240591593622902373690615875065444030548552317523821743603176493136484687950328107374115830995484233106036975337235937010595988414782665202865523442623965416959175864510083398479443054466017487428953668763542268427294400567390448823796868751197453757986957623197044617097196857630503824433103388597393862539440432136095342706397660553114105068668055091452169334669528786731832277592355009884641034438495311734341267673302891335951136157553517976511459336841005565976461328571052611374572519240934475854443882001534686791533520255054430933382455083191141247554894761297528170547133529873428877760070325491151052601731099126721874770625162142517516622018104522936241195835319755768518442071738534186597086287379572684217978867316153822734513215561283559366713553757530434774538463266112651288044722155434514841780579302150096049336243863909709228184262103230618500048596274607521860076497913977895802010766698756882871131233372314028512121640124441790446000761000967596365880761027586667184826158913843113304004385845149403979986918846676733020806743096337964640722492809906177114740274317229440663963068169935273146226447230093685760610122871464024188844753574507558232752747508830896160588437496884173322732672639451582736681026926429218418618868015225367661441990125506464097307158547301422046155090541208800712350550987395172771932812751642989875859838416081731746524425600155855564023402795634268384373954302975286739892365035698271994746370430201769876131346520545872967086176672778604332588964794143503423473270426054177674757400000812384139599719028938457281745605273287756377485522611005409683880020724713247638901277067187442365339477157066687943856072325553465636211981780627955891237483634139872618018507737867296147364189110149366806006732703122199280264996401092154689139957689556408379540164723321074898891516783175148511727656521167339746005877064804617539430058475532682035855243166161274356418055996491381566240877567447342152278276643282497369550699915873716107752986928108263832741400659128184594626136523724771819732342772541779809715166773798020529275404701895094047325593358142843756870228211328573572724576853932549357439341833217326672637903346843478819206664474371302444228502798926774163845138213072440865996829010208179720701302193886965262958855325044125551461559178759238799072734627027147779493875916456519857143208286665713767301617246133771690799631679658017622731647021421576054544474301707395313662280325890856825522865593594184946065736750298382420532606563272669783527218522937493203516142164006260147889501949750088873682730037235685516278249302105265883379211268281570898706943498554165845176699744363234587798205291770930721143852725481864422383952021390979507945008694388735575302196095073325620009424908199850950518420213934712617866388986639474186775759640376270776937290798692491003062438851630478701864863674392488396594891818787518197311172265817127025523779689488360562213668886332502406629448965762190835675382557357972608443839908376023664023428129261692191566195625700662010409153775013422734277917640144595504558668852281486137925955535546151440094136085911411596900618222981118311665780727109243701171641962756753805351828068319206271593068392357665519616158927421534569758760713904381078241382349611332649482480530981161277009619511053479809826663504596874864156738374339691060121486596918409703138823038520997840569681797057599865055559720282750634036520024126080295500990799768157932982849614430684645549578886011718387484628862685166862192867814986772390464270452289424340579847602172370448957489610225506471735511338960881006198773266480463074607600117725329085812672244594860308362464986682871732164708479930700933745104858184703744699196788614585208333025916111950916002165604267541479121943269390141109694338045419175443298705763369455654752146508982836634668196311084437080150624288425340107769570736624173972586960247788714575647000513207795738340712561383047349522080332491783679226923948426937259966815643825609435799186435950637331624347404473112430068232306563243009456480795586628409335943926876000252160718104980406690129710156253646538546648303368396551960207728885344512525817593849448537242715922557136007427523627628288896344582301839898743538767187318744741847197624818622778974241065895258394378379891695615403132265973859506313879089307483294321551131348527547916323456098393714056182583580091087023217357823586252068300130573766761021087884369430978468367817576476623856797495453820876747602373019492312089345712608194278329297117600580225541116078678648522381714299532951562362437422789712919751823702813599479211589880336534808313701117492822684652167414891221238284247232396380765328299050733336099551010881808459583309348617509304392483580713436993847394777229452395697160972419977634427618477952976503530778947376260876173209676065336100869999911627537868000308772689310014805173982770592077459499257238666951509546435850138478675516527965255356173764566516020208566448311997793202875807387665482391031032042288090656663934035304609019556893047680216199675687446535883185350099750160367964550738121094557268244616317740084160073573468274947112247539191245455419737467751781145530427291725559575168166914007887743767758215090221897288006100634632329958969762592896843584965465034020793307914741006051048934262707691776590324349389012025910636532961095269626501046714188752904376616436334509838841911719025490888054438020989484076393785901296566665527676754704608737295368740239071711986796026710452278064810964565529365498491132102614942918296311808456741534762324170525286154872932170051568324727254754356585914991751484350176663511731955575237228330351366933364189675502127596943996032702572355149119435789171137251131084275558635583906741903809279938471150439932945681505143735545125852760339213448019129172994924035624700087240812239277749516275656291649544880620757493212601025555892379965901747089914626836347272364095194478545873698387221663476341850451353588260602341491624225974250709627602025503030099766962606449384433863152781366913412201246613591919845836646273393987964914203886463951196419502310660317056164649016921208236092099553784878295379814351689788691830783013484539061942039875913814230224018989651879908941181239761504626487716492062454930276663035964081303724358499447695557079916820454747721687722766642505499651448196041915264681250390994212404201119099047812058625730428777970414035159303882660367900104092876305483831875788165041592919717990165091544743139126701718701278883388322347934316212946831819113892446673839608693124179529265057845765568667937115410176786889265941462466190808355548459117616016468564189756976167735671360821935244364714742934331010330953883435747880990319758096835025351103773934650027815655880655963382784634663584504590455369578862769328784532718413292786696761320171345641751303857760219156018805241024809611400843721832770361261452758070585206588606245218206720337769963384286997646745944280177444530240379968682786898466016737257351475814568574245415255438905824594795759473070404602274560893012521236743132166513183007768003215692693974952203227090610083414956205984826579963944213356355918833149380575872015822222458746460893751881439224495490457194028802803537740719753766947137247811232242739845548957537450190836697393728114760589534836488678640732277523252502016466413133958602811403528676586787138770277081605371558428699291265326982683923152904766216459513955236950568173600956482291794614083119647760604792919758459214056413272057704843209986494960565916239429037710098758723080345117046054287643663802828604018064450944077166841910630184198802178736549194372138544298982715266599367498731983621904201562448238637575545497321846812893017071764567544330398242955396675757176666229555774771852814822080856478936195294114914347586500695592262632718173453808036744825294321763810645046812125743999085791674252658919402945566606474784670199118010549063316577281100260152927489955701358835001040591567724585951416160065231734796009861058368617671977701486550768311491918326930895199144770294244293276860569151209274416021730692784987383313441965381854531883349081057597720801464915886918409575227065056833072246149577171713639697980029431289260144161662035515062894703366461871604060865200794344184269321981932165512683196496993042602457218430300786112495918351157293207973088530644023314940910060104101568897184782559873338587297965001302553121314038135238000216621734025666165890152961376671216026122973416253687064837023542711117011273384480114315616857366061096443706199096771210749393484949499122796467479995823838037856218652838937632835100204953266805909615094036992099214410546382766856426769473715566893506200270618590055301573427887856655918930555062632114325139558474724413930633890080208895481042784199689982803611466514692518874509720011365438048266421132510321654845632063697779799190841356589323500943435621519592901924546406521803158285034212701877444762468818481797499914087810224878038182354345794394648272451715815960099111995901907530146604081239208289427273300141110039846123171581150190381836549113061387769176720184752401541203647547201180583797678510494051756162768135303771024999805024964750158161649532086241819885794856673008481730266488309815769862612834322821785779346982123378644524123055502319538493939544676065640049783417902785180492507331127938581946532364947665020186462806654625708735578742435952669393277753833966019678028791692063085707349915872551020620481442319417993993406903952875634226651706351741595267939948455693149810964075959198229722438941132345305086074038566494977443343094411721428351081794830271590067546482078210632037503262646901266643263656749823654466340953448643923872227572920641840106547349531977234008251230229381139321518538462530589486280247263737143824446101820649976182623153562157431167892605763589707191045003528091675509275016453060103106186847075930050961769169239211286579921246935333468746496388775554764332138669262112424633270158324188287230502327798849374559845325235139483458549656775116615203821604631241514574840832745865071820928753583758288426510155194188963907887372761560375557720983511137845792142965703853094288244395584714481003334553033484931335530207195685097924491242908009123095796161638174596871782478600221877917141823557710265155126358405550945770972022985885839877887271433155405392844524720866149504119193539300920452370226313048151343404203571156257232884109203687195756365746089331792373552135417381569653355972050069402061538311579004605647293235277424384813790485396079287905342701961700839798445010404385733617551003164851844866930063210985136176576899823631695186328671083575622307106130891988244282362045075128471769734153134292504912221645548652646511877649985301679585054378382253796846181977585069930948452338797807887610980241435338968937497834932814926861388906169970351141371819328998930925764937947217925267945289025021370771457890752917998505654078104741888343279951817803810100872845179862562249951336547045951765233255231020156969706286974845830985587699548854616818606943643789772442183717119459864366440335081235265583249606167210376141907323249783256899944700688105998163669356532475748712262089525000524588485974367249868112590647929689718269323168099354307699767505160960148924840870131559524691324312098146365585805918011891856604961040938742583245962640435230882311548134956118909898728755347235613669518974305478353207417252421754173813840414891254282689009872802191971621704676344706886564775261869244374578871115679080087156650138539137622865240762976652278215887226308512044974267038636985152881269167642893495739727345932262228534153375624354563766934220709319272961373164204003061840794379557639057265216809980347447260185754044747516347635095332705689367979466072440675007268577108385522949675457377927370508390513784119647238468978641675220926728984819678233454152959485588041810394576142583208177974874562631482728211638055780081812520078429302679589776512499545930216727553836348436370334156874966296493802072677488605681812518409349832005915471053762314017487767160950291170481063073111757470812849602843112313264985871808741813550200098460013576545534097950206899497336957977035443401375841946093425912331440542799792206935385225009701451405859266171535381514617775358954032913048235834373473883240891844472320607102986536788264718219400561448758775031241011702093025271320822395482002043735658302610029006591441837213482116903930073607296280411152250990931562196354241355955551996535341022991935690631244730111884633055685730295911287852972980422854662385092486740778149865007205956824977841331506388709597295316187287883055927501694821829622036778429716494702402550143083222143392563085117732290804075456588755515872629879591917644661740190906158429485285177334459734254138517247146420450204760034215016920819594532522069926272816978176719357553573869616558219837710722558015085768519692648320976814705206558823070252439127522811366642056349137831989103776900883833846822044254907967795249665759626790628890558964288958932649227381654525259101033954518778679828538364724582009482185346962297393069503808403109173061904768761464095251906936565253261206559806065000537917791335609396394419026054250962352183727277429563358275293431653758943879883738929584031741729298308876348859889585957948540167504264033581180269156053359507172696882959735441701381301526889018221941923155290455238082846605265104695348860025639575857288642111135189773181312573271885478628788339196388784895380499712569583420837185204115121512214041244926313129358768023141455731514819183081010219577377414639548415990042035977097443533265889328844895041211281791378758514725063990675481403440935655785793784135793643753117569591827689584770372301742191854167439077889078304618458378473944946416971468120789491197931770055113397728449561533577214082280240230866124716098760351090535865866858489439224730830667253136487932597932490942768523550973966611826681579742649655779709433390606201580503369607582108062698614778883958745817520070020274352917099779985566714251230259848608015755877923491166992761911318061307368958531282737903592882754453820559979383055704721173905478087980939680843452845347592456209060384010929728724862682353632695319823717750009051770853407609240995223604378612468812523997468457577870008526314172539835234449258632563350342180934725486288052792103806884019652958898101721717513443328660150894629905720987338090651158856369675920397887275228600479287393149369597738477752728525387666507098289289241646554710378883964131777685836363172065698814748456094168261898805798056775110738051389343655698815802991066818711910170399571621686530718408841538483328401692552055925354014144149611472282643445443449227594402530065895861773044101491166147429700999345217020568890583378059712067860564619206282540302479195107707402438998404697607545433570391161825601528038943560235296935045489884386480896109935593225142310889932502577365504564262810068919336860643087843985367778639751281619932592775959880803348014790460035485230919973215416991099928018977303455378095156924335743232729018139394138653133403080425386368399958671355510610353232382894018644469103757449296580235992785631190517606864972879483339562150949087685185788186040760127409020771807686701446181927999501188093435890708951106570550848177957129602982565621561962769291559568275129579579770752713626768425312974337538617702852849142767230765701037044959117049357647067174158606971617910877713437319772948941540515204121843224207348858825846663227888043324032953046147810867810731900447288618992207717690398257879283931378759257162862237285166926398961377453958091362410884338437070155913470631606583202930572241027349787080426700475114794554878963068728907217711372746945521559225493035391793381783538006279975762646799057292595445900048573247938459075829465152613158219800067428508893521682692719505969025486111962523346956861310069809136846223084015977417527510156128243676044349592458559336044049808080375667781186225333017020822148591492404901554166866267614803838897252675278015013016859644723876955861660705621611337498993737898713317707052322755173994072746645509170060416698944886868474721706882242870834050610766856463566503439116494301172145588404955760361866323330994413800977167850261251941921398006314640475511488904501913283509852084391183472215559128495612530645757827354782218171708788192566402374460467232570378571558733384999192031660468209547543398661894499076116720001322625210320754364583831854670055780651501992111115744457907173541162668391929652271733670967567367141814367972342791678657347471215746831031213371929536688734577363268530529408654163734687896130336144896896933644591678661211081331242890813256493103192839253461067112794313058362815053119949378959295807732354761149184563467444132066220822600450486013110396447120552540664008194381208855001338220446492623373836879462601302150328950800682032257418488724335672374709117210437178293957270550779859473878224996301882062114653966251612027323751976814768280342451867475153706418777264286195614324799578207885680878849171399111163133688198344686431194113990455178199943764396912599174016696319547592229828105718149547589771600830189093805240805659263214063434244444242649006546344665093795874790630606975026430025041686768611079206853051040728434041908776140190077339058585350776999606459498259356673201227348266929656762427927548631545278907401949219928731960572085689438482605898427453948535742777612728181747815461898759690935907542810978575505572679716784470325136793437663244280720478614897547891783377965709472012403420615221665633191164019550002945640071424428224917724854559985974395357843947853587686338218787305499199039390210592895777302767624908640966979451623142881734025297369583241530579756804387723322368883307065039052883518558972472401881118083647309335637438932813903422941082528580302388395893912438092092086270387483107791330162840245066314631490793329389959931839663761533276451147712222162510015372510050871848752366787904966824356220517887979074953852250559453110243668001318338152316261040628022505870326315250518533249938054976622598227394731788102252185345577545232269634178348850755553874717914471643021627987293090666073373941159948169292681470554274063438639183090388785222168882896152890436115821929943140953712977282467366262981174269556990305495995852474005444584294801757749317541333878820053667585840537453636747831840563697764461814653465195930193922265076162251768759664220113247434885088172587949803168374098192210941077998150928292495257447121541661335907401746899415130284508351104229992715941872608954783064819144997776313560586603982285066481554740811179175906777023565918873102096532686012329915051864984832286358527733328603379384522111762135601461726933538930098748248953873964372215059613587203384512698766111330850709277718860866064746452126521151583779598195847295183208870204891094454615486452047095260056290369504049811624299187372202992039661815021100707216791648851028277485103479873745668975680935498963224215421787326577294207110537716673579804849595966519065592960650786861224232739159377380464210286924503656360286832087137209237930944096480557633880748681595281955946562366416355490966557517690059585612948792805355922443325551484591697134842993164906405563270797684020514490472094890840629183581484260732685606656851355085669254850968267029479741964365849376391837835816340528125334171792359471189801561144855020153497689417119545495715259070287527843645448074295275364488009202816998695659968726187712179323993985920100048537125889586060612648194950483892556991789814355568884472330806621116193606862594377250374716255499335254952422407430605731076703819831401029205459623164832432971285063704587240979492611427570980391698168726442318431200789816227805293014997251390572216167097196278971309176730144370136832266847282054514649086197372781950900187828627330482747296277987551576772381265820086889357884511438886346516814006539673139414838416421240870625427653135188357606056484352502285282575498498989644045365696128755424621080680352099257415186365030498745431066089525638144384803885013782270545436848269688383774435586504965478358069292297706670792931533736917477418409645813072258893276149772842607091702948987490935270625133816633494641310260202199028457652428877649507855919964997468227416607406807755278968417862283996769793882068815111869841039408458576660544277180882846063014000176961514393275876326177761072341353344619911093489576878549997847312871377593704633503654750088147787469066527228420623640326158460443072890426991861876005885692489533690207226916418110068829227640088132830415605211189026092727935249373512957396938026698333206473136399284688503467766578487159625792856784237416143471470521858980711313682090682512796754278995326921073590803176758151746419201370181201175942091465047720807921513015318045242362266125659369835386272895357891553060489036520978156361934591380852280417575167368801391237253474787305351034482425743820349108140581418343415063350886188088265734517974481333712869590852754514784654877930434972125725415632401298345214611018594400515293509492645341618132684818838630829856298049430227953099570719328909276341718986798992096799314564420493550753094042336877175723043546425029564018370809579072296062665001286463887599343552364158947051261242040566003769037562309334501902273726033425529133572546209308263705262027669831633903515963926888121263706453880320092548387882868978323027572651531626467937881964267629878658396212297375862308070045574600332968225114554630425953149254729750672714566517274578566641745632581480104694540805575483136323916478862945794724193401231922559341338276768697710042135310182634237456579255012152656641419841358280719078630113292389398096117240573380510695608200444430088100180829769109799774694197584967207127953528367147303321631315297992851938077915019454537715234374416285259773911233411522438158779495103739216888894284001913708630974138011078117673622770606906974829328044059351925249089508351773350782277573019218169357381455609161629082078527142260289629001351680305426683792612806695471679053132870346604144998370360226876297738067044987618717522331590667166918003102064453415525763032804032983281278420342356016194906870818287324722625621583873558077320427107634577787873615519439323318235222490964949064974255684578530015041886943273115163499428098451958463209974003085278424634115385204291754482552281783061364491536337351821327172083902381328069304984801443979749574006899675453285109242800753073119919281480538960261245382416881657180326976687641464495470515308304740105690958401306728411845757617821810580692379643441347162507967149172085088301718091773819707323104025308808750985540241250123581283182255195349121650091004823468598104013889166754028452597864764603322019162753562148052419933972175636190859932691869470385862050013551316934379690848103619541918907908638394053084253104893143858418502112683599967536700434307070992363527006614222866622188666459628342472414428598173777009374696143593670944199873674740552790518415459139499454027850611411847555744946640535968560489684557721570160538911127594721227063010534606044834810861607101124105296936985406280919027774221220302064340832186289950251519250347042379308963074301266162905596372468273367571406154544126186653101603610079382567358858410161892598437913498012496433476599861834518576279839981761400708505047937963287578041368049581457470409277117149598000037196302957639081215477412348278705204295890906461548845469182056357617071190692483537933602456611616336681988553043189144636096953552541247108512396980997979938189557744408142863105511851275615012146765923181910788822305101018753689917134191797274774229475202077263148560031450174384389388165742816853428735523438729765160075970765681913770723454410044217700694761803493951674651855239960275704447310449349813303466899601317874962575350982415545021397085878057144737655344095090398141558291855816804890544289526715046064727454349829111095188541547825923108610489904785595879880058792958843698847033689758174178131682061419180291272499378731557079800671180750231484575524804139914729165473886302922466942384748799065972540190307849419762221330990924061587056539737980853557822776373433389586960085139701435312218139694827612212543499637962901495642425012789775460471842131993923840457115025603843859788887360481390246982155343470642663509438715751924627058402530197467401131926373920416682303163752914060678638899685167843173541751177567246983900622698866058219990909480665816128503807577628491593160886861921693602367693446534326032721778762728228455240816833843580116311877407379611886280704834106394034190976830589561719185739788980238015549544098895906859891492685604941880744436957958354837927132602660058037835648333111112076126426258865735463766935049495494525662920122899975761683218713848989607333546918073257788312179286291967518141877959458065119412115654833014742934830650121798572007506172701557882329779610005783491299752555903508932463084415947452121612503665082422712077152557635219407728435259076166997224236344380786913776004945917942077578737683919464939431329491108147994687552102559717147891346612106523348891873321421713003591345341075288331929508222785257223019396224756700986260821836998744798789926449662804685159022380918496066388256216024236681303658139400885128013597265225572579486888027857837530894186742511520940298011084546896724372262918836599953053896168058450155689835305518669920804591258888170175777332590063673614762411204815016747638743855006008717530413709731815549813975688313715548625495970351048658684733780173463619210173987421129989337627024066568548311521248790644113555864559467753166202501815679728078362845794356893265501872795836172586174422124777526057613138994583049011714163651473503174626760316819403721280398375546864365958195761223004401566816915449434464270373214998994634492078134769659271896525048110934455519323946519148954473668665101347126043035256793984023379867485628209308063459183240497152898560638889965744365074069496449122730424675897464247067393824120559855552971445553260619895524793954807578897862759935270677882464966454227878777655562916657085420249595481944759394186297717742342888455714112070793983058914450603327774563848600948263765308064593849283776417333245461642939972175502976753840787862670790180998395048222544876796774182381954562174642059933445308172051945104982001739465856253439313739584035215485888353537920011322954835068414584721013072737763800138505877099498482242247498597613463117555415225394447683668635432455012942379488801447707908532616618037564084208913535385193642118066786432297353037328854863955693656813091006707592122988237684548841899415800024441122013911439408449041296729718866720119133620046294373096808597241530882473803626364405135222619813191722977291679425880981071023965165529703140498164722060935420704236622940515392053647452837816158358960157899698971871404626718121962998339412450890232589659558499966487298713926996503017669073585406673947517376563655331836007779337542432972879320131816691922497190976654210950108641026428790004203845033806735352943081283705620255005011765300427840724909677440912751629566927095511180746981515841334993376520430060824775310823341943514834318174230047057035143801309988678842114862761548892474407828841923779976775615857646838944481298006036252089169866819667578249896011319385889454332214267945490620183751237593961057472737520176129411710981303083157146064140756578810043780110148335642755957433810098095207095193774083870718098505134002958919182167729466355971488052950058322767929962345417675612024117094557346458052292285872576072260928329762675204724468470834399513505978027445215523103753993721310567926628911341472697952337022272800625028900194661993483159781022544818161488169917397346272007058610750650454558780270500434969386807216965381319426129909260955643967479265939328911522962238944014202556811391992036960850161439390675446075694984203680784186360490072814206430712328008828552835156378033218807983818335829929912622614052818727362424124474988130731567688423256741015969142040265002002554728276805287432460725048441970125791357534352621681822136356042909673577571128986742887382921204734218774511084043405905022098912003520114066782687801897187662459012869784901151719713679497611059834775295496056501678373006142408747553187126324989310336616019424943614749910183097670294940598069706028579670676788759185193451045642964691393782565943618943192669497194967258887361948132290263570592259543940272646098426567151746703028354233214499418939028512049680805586006902461968843251250352393750305487903221519292739114854758521131169314017578699670459162699472664285373026968184408905029857859499486998210367694938073745483004421618801237787467430193818307637516414779904538118785906332242590707443987175684719761933984571657314680623012930905326700604641628951594959276549036889269780345130425559814661674194336019241781034268914907174688369079486082094391171408742939723143784387454569433589218369429169429914600210576165722012347879904364519906767556357027807574749662568371580316867125475395717748241978751479790203707161351807700781352651109219484768187956896318201338374233668362794497296909494611634560944344668100005377216785957669507143633695009865500354219109775042771207650204618296008209323486397695149968140492896345151610083338459181429427056684956878691442922421999914790866340192911640237669078673271976121025515352569120081513190146509987171870690154220177946779877386687468883731300368242047436508318279272567771574548613917443347614224187732173241094453681215497212988473477092663835276661565755723422866898180194589058134920551958045070981850615129927432515073958371946195213823021076832073062893062613922539403954292320517294331614214741124636844936422632264438369988426622965504063262596947218210480174133588600285721275074008107143719685164519607663804098402952860165057995125050376642364979202702536326858379896334637795574244868897232170847043152761122840916351805013272539722865749867001683400588120874582710188911194063792871184592559818513292739013437298608245242335060159089619718316904155804063923995948825590411377432400925770918949607373644037550987941699502440339785813692830464040270728679940243574597106909603726023247179612180942951997530490439930570030711679574573858433173827724871920437129809916169179544289653547994120143939174749506619812365511443345192845638054674645721686413551851189383340926670626482272869000868176713553832274129544198109819792918974591982147680399395191249270230516227429170548186070580910122565083004343446522130861041906697668611793190625477453386437254800263849107921241401958860202615173512065665703362324825347799152369870565309560708085366543566030241044914158453945900091969225811658194092885320283122583201560557179089529410196779961795293715339494606062382772508307618500409688209621710837218199514356039412158453441553863672747123806509264046394244242236366812200192975901341678988713399377824862883789352904381982253125373451506885880597415199131486604490671148907477035984596159572255190500506254011498631953256823414964440001000442447301487562269255586039210974535080318437060993852288008599907102392210931401616173857499679728324706039302522026567617672608335474374600095178253607628348935515684165984638654476110462562764906310670772429162634806669354560617306156394185285465933328409138997051753101951831462063293106813375102758956560772918024544420403707755085171332350469442619111485278160579791505128671777855850526605760352164090332815035482697071206515995185279067417050962960658819673449997410291472872354048677970488816807546720530612215928846765546653663074973314729241224385952830954131304238026083720759285864557645403977218997059719373008645332555380385166388693507795539519000097266745319164334782382390401138915568485103991285842855593521751895718830010691855859276089168374306813065065340593406748235959482651324661772154162635582943481329572442775735243673100158079583271030879700941815920435952740012772313710310939780462406140485082599583398196925575415545658573216305200269636821496509825073416118893217160066674424721338388462840450154536462581912683767365715361895523972904709773937842076918229039690846288951865707076618158612244067452187770990658149671038103157393509030248037979501887602127404991041831736408706068320580379742127193593397247731530517619262715811783018099461393871175593580811729703913824292491043350646815322814141767114456475532722960433842836956183109407544008957301999362375710673379663787236204340790888188272211484739074794382108161041676754785967128095796649627079163663491654794825947055508276115953527174953311418527583103613146972172513800295893194887506938279002310861597331005647715951544162228403996383259054477537110909357530017004966259528997425778086229397070972842691834621839284467312073720872292878633716333145823819313563837538037909558027565391533672493929311992557115872963598532710587382412656288064858830640135208448456956033088408380309986185222518305994082915541066376388133392379684285899924372693888421670719801365589946710960194718448566598321299377080084472464200925623999322763021298832336111130478234449502638948723099592913858949452023579528736773282441586624544295991843389239596674677127289244857915282782066550352656389388481543238129394783175808114177882284921383671628233222504892024987621627101355146122418925723137516223654709005499233413798656664624610371132194710056915034370711498271944411828549340780799682126636742823192792015432859632836834682112787300887004141530931693679976590748362321743270357397371696331288367844321121138425739543564737121652866195143751091705107816989242860075296103624575509983652228329084081991437525803087327598745830461325066996280446082012698531777043913357097836491782577291265736989418444969975434000781821058080384368992801612972712999060067265161062471592483939236146957286506116573002437403637736995243161604723981015861707866589842355302172823868602996665095465966134521288820182417570527947757860837268408150913211338657550222698336538497578152526500418928021423414262968390067316711520079074392254921585219599938864331902032812809151040541808422604805021413120419852799006842794123148496567002342097749693386172347985116663185049220687325737539573513827592778869021251608032487432161526049354051556398667646402848397528798787338182906659989765101385774796212300354093179702184854518189092478729317582747914850591033908274912816631167121342895774391063333053606295483122534677878387653667566861962046417396301416411427742834890333426977547470642601674631434527738024397113176404933561389039993163346336512726264639320514491556505260983384088207195128652363024768177454943614772230246688500734090712704958025266742625937680637771515366649916243047666087597856956242430663769378327987701190020309399638775626175547728174949257044007291787673741897694717849995040307677756716870794271980975401150876725934292096560357924993995845598071952785309368915836029109613595629432537808518007543574026430691785358385969217310864335094650525175596486581731013330332325714048270648736386099378798160900803575091214342413884254827329995568559567604091111905934701124339952253883519649916960701145908895769801910554800228784953712146580370736491459217044959934891676586401280849817433255775708310818260774267534124854634414959537165784316939136362799872801842391744352725619779089928568467640313114483622102588861817939108593279726360108661890935083907719666445168531966570651901225569754292511200589009228925824335255486303269722455145707986711367476467880286644451702463597659847820311677631241813340227389515738711467746504539684624286010254160993872428609079992505048695493826441770758735326228793468829775365164869269488309307114349468835476261435630753244166899638153790024440855474606530686295647884953518505215014517052279159261003435896745358432097934181988903809146081445336832770317248111477983961163644464470784206447821158785165627170278397508781854932080905105305814064447560440282856227445159619214312535310746873266366171226488674112218909329361236272657201450430714720928929345024614301875640411017713665795435527530294309713547339528793224336452295267138255958869977290085003172648782309921342698474278794617865995745166813624197503951232386500204657648551831932492977508395511748274472837647205490665416439031949893290098542151518255562204212075174618623165620208742070703476790094260010248122029400472055642771921398767940845313129310051380238131436056487803555921614651879853888113120361800135349383643848615279405264293443532540552631535521306523447708123158551519943686604757949948711967768296918297634143950221749539335909876429939532586363604923533284393254004635097602566058028845600552586458801372031027602624655802743437356764260661283400539463793547131320572231908746704730197788655906724152145423916908457066276390689765448887253577429533106230575030668644044752882773488251742098716485287540676481128588630057440758791596344424629838232759061499156335626135079187982234349107844394091307131040192583097034096498818526579979089628018276722988051611350726782601092842963992272084052739008176780245901146795324915101624022300784198806665800508581062034012936192797814746020667337594730303680095989906169519228355402860092368757548466183299426099828816178073676374120613331842797145567050075321203229726188899377903283075229418650300542576516035426809516125174159209614780634695003982132741847525609668499534601303246818071741926327050157680525040371781414394469785011720191355861282394011362253648581900321918620700328406676691494418669828945958934167806950867687009872329641320063463142966118122812339097742023473610013058190191810459633567152299159658527065114609305394151229191016100668588911278591033185958628870791492932061087447244761923576970392083147651593453012493591885227911594638202241578704347640852229125083958679922241505290705852456834481818468229919233044345526411569209544256106064287115177956636420329055865066021480900421891110089026777403511137427388010768923888526254180951015004133702701113019909126484963838794372867952581245472652277029733034725210094127262105714193863759960559657481445063388586168176322535396655485081130503489994526341574180560044778331597187075235629710526727825787757765487217417232693653636854876555906467309556636722628341870980835362923166351168235029855936780555560601782809523968901309555788066929192728911324702121975045776630331721897354192311472299345432041344866764682000759974801518080649513971471998446986455993827096811335029568340351720786393239252792810003295210346248605048671571391837510598017851191529628928310658141571169437018604870195768991546898692648286590005922901497899948523301763613502346388905436797907393543872698463398614008437272632292854068268980480883470997333137400195379792970126980364054766767307016519882169830843660516041605600196546580768907048471835049012412564375231859104015422646156712854039735470661995211329467298179780153833337362142459587862441799154836665901230638837728632416259967104274606364326470582996542140230230795847443309210864754823279840197857299553898383405887234646367451807975621672806081836904655373701398970270535277258923783804162954608851374761949719501343306265219905009622224002767130168895024378509804756634033812635645461055878997721563574502823003564247736485286498117885779924175606076709662189652071186021540448727694029458147729886841746005214998004696494910056147945267740544688923879244596114996800026045350734677399460724465295621463725055701946296787797778557417182669095162247167721573720063053095337248274099066780603122598183282547285991562371838394359129278560185122401424937448792054645260634930204073114114345913633931346123198055212302363311886648729595009530156041481657151262615351612494275930056559203607973919867082419660801325838458899678987767295642380453917077261328304947848316167346208896588167231461072472680618076121061658949067624451331442631235104475051930662048259626351296811800072940932516770403084226775552663231968282042084922659109438338972316170012617615558416641346684986675088115632338317747932528083797276866458022362755984757360036931421722427281857953184414014355208120560757095707798581334155648648967023980738688453757114960777726884275950477234422142149918806027670802045197582021003279705361626617065848892116109027944562765480186533375256062356016293792740633644072196704518813292630051613542363612538640326770042857349219348822549585363660631093148275922696707460116565832870709582604663629258576405316813381474055823907020485039230545017802683330540127142086917772527342229511870681953573696316195586894714842527000068313437549283467899482244359844826544669663571153281478542859245638582603791054549306696224691575184446199454306610475765527623562017173749668647390017188458819258439079203937215682150667664858704887067445328077669499288814735675170246230114204974413647266132817832859795087043477651267515262842437766289724611035874599820902035892022362821709445487857101647880138189432654446841870588048215364955275548738288647919884275342938468524240839066127890232938778613357701950443316355328507096201254574420337939455249078693983709474352180136154234467332659817506531172424355090031642809317826787372425638318688435421676730446790459099432010308521554475027497516170584204365252611030912088970070013529421983921267475283899162420776084477046789454654478142516124053691804910442439947423504319688003942116042842752828128192867335206785797752524690047924350020821227036065327813686641962003008897326288176045473190291293027424941162042692252595397098127720726089191874418368876483144292111659284807405361662467002288328458204158819315674738030860705507437011532721864107771817831586050376653967520019191306374595999815633372856697337250496586589204097410914093710597850220027516938544039980467898970930459428499144307680571489489679575668154934099806186127715033532768400351222465026909497761467111988652531917519295851340445456256061986859603429289450766149021843057274784745003770839353053804656043978747488409014828343675661863310812236868932492756444704235431007858754806514285539106021900621627308714501730643906917652414895269907331395356969248872792097146450619344519499168758631013634199474729844979874802279425578055129551321352467798393328341513049414229763008553411298572785123413271726949768656517397837409704981168226746576879784308967963887520265509612680306841361465527175402635687296211896412096400963189331321397395904153317027006171174245217392105977370300185726438498721900089321746181867724571778187420261852838629030337512979312366118204467852344826924961934877649590280996237498482615486387277185603930696987908811706399133151006390626372034351075203982116174771955867858818019218514524862164810373350594408581986893547830082725327769911433828298301959367986466507732162626505045436903045855270388701421957387376422553015028312370402064164452976183475152030009641627487933589839925092615355337466101444301094390963238209481949479607861982175356544969425417415990144901622557258485160205717574885563030054815998636753507523182072598506660365909041447528595444454566496246427730478377291253851280681299936819669954382115621030379217534677938939637940646334668240324333850466543037526505566632672799170990589874247155955015574631159384013259715888212702786735423962230351907539765105934594500217435644864469673479840073665005983249632458471382929658366361483710479769988227086040055105644554188873282305374291381721117883108479368008597621579031803403099552759502325024344617539888651852836916144279375137675348537641025665250459720321384357423881770116995609138634959304809202488360118595721444933236301286376348094170577533461462236318806587143795247175953529880161259570439224876140223725259278431302750790973820485379528598478563313032449874303010329782243932376577711454388053056338753834042739629987733942561269854060264243525497978760844900509810965200347514277457328693491290502865386534685461229686631637082060242602193840490678149081449110303959553401499274059383139232258096017707712721240433297587423070728781116567357685253249916410348902861215591566136173133335914556374274372550000485827023759681443109791407849914681278802221177890503336118237002902353531011174817809560940983250737790307436038833282897499286911442528096687508410972858916444703289568995582400126497264756221147236532706113872271386296116627696400654277178264196210835732655205511824954774280362403961897148703999731009419318231304050870587204596636177996727536225466757908236513463141905069241597941948595739321870567048019474975753318266744563022003962054319281407110067545469111076694770745452464906944134482676167765317385028725166220424640857091105772484627752516980667355917362719904789439951665722195697439844437444097928950374591755403220560799748042397013029868480073092440289293131290674922431480703804587666848711356505808154436479441840888330218491468516198156376324165179356450876106212854966205313693364607040193307883397730783006448026872430872799926836839402990645081382886142506294581053516519996940789849342280585873688491530805791912663727546421284875061834378492512495927392961241040651008469410210510653029114432933548006528142325741746894592894220321017019520630207613788780968407434566555896499210034157959006587528121725940203651057746045547016973091591295407707299134923296401656931431685845608168673478187562436314865762435880173335882754232441919011603924430881666365529730658838949624508876336133874704929705883090154816362255152464242739602137006603446676992525099467100934190230889951769310152710776857975667588762268259640412547808150360235274879834233164400681590837266778081315474820847962665441273622618702723662549907773163250488017614222494232702253597017984781017094322286272776501059626860183019938111273243368068101489626586337054314614604034137551484393276515530839699546732811264786390375973866578731881277184953307933243992661336795783725449128437148461516470501595571733312651334764306757893506399483345780651264552697527125268633032652590869175433795407314409698098332063645867394650097238220910125912577730951810727421586084374878371946106146351043250028098649974288501614354755305296536959147681837804613777476933527732577390231559058353007691596467981312335438175811162947289388718490780206268144203782689020078296870694466289648731293887068451753467145729462725801205154015223535278006543603555834084551384650182384519012054364723883144918215468651399440187728762165080846786857202081209626491117691391678966666804891209077247277958960273063699327756221245660911423689677833248509204552613184529481351199923304097029928939705768905923367537869983103825983414417381749825178156214987447220724801272400581596600090072237423319081723014614559314876650835997090758666856506223485285131489419052769649743199433798654711633411736562172308532740322406892749638269777863926887349897538290360908554228638517298861274744051710167212478529067915017733888040213719619954810435451463614081670729526940436651888194123241035136187200084111089458061341780916147269607817693884850670546088894449892975592224812929314972689326949838961949200252690672312490066231164181408174960433798285028258809638359324459748174517645662832859481819044519145426366309237713190770003294823917850928582042389549729737680146188104028917918287454834215888618960341939864626785620117753887759683295328945995270883276923972522606504627859245598640482519135910405514921678923261871288274900012818657830258697031570706743258293133097090060940901554950584532009376278686151888301388379327353994613824642612712289901769389809132181725447205285100274909479825760660031376770222195880354109253985725254458953585513372771743815100591244613719939484182674530134724800991975897519221319906453183836234864276735328148885726241405448134612430070379208390728671273552428876259754682634255282273855903056892202134324245635088779094873061813289485039045625672407741709964286869651722349800882186676281596449079226298523285395549314399884794643930317671424673988123037794999225501901693174803455291074184347161581734123277354743789727837990968642722668847989077733660651697472318674548962336092477078010739695931489399729763455327055726584792138974042115682032191522788825419421708796126981409512030364670386654890574233969858037859298435681943034001525351697944774156573296370514448367469391000997262402416597410682921782886097502773298834995250853449582663698236532855550360956245670612049442092550154482533085614282248739252956644506011600971992127757439283535713907750394481913656680705849643774734908177302968478224249489684696037024947017659424893518416889517768624992344586162375948784848094009514505996445123035215644977794283073296187443583688266456492436539969978864913590693460997206175890174531532422262742499785919121933485589770081694348470801131527195804865623889407470987514217056492396806835092305972517517569343301634158224704177183723473535350417044117863841742542890619311006996867725359469538419108364083259473212007726568740610068840091169799929760958852632674492263794348974045564723085218700821701762619202194422333635111636435798666294891899116457757929175453756343158287271424985889565971320547093830781048096837391564324861559869862854534631355123568006750931183394134799901576437366752878234639741442511034003273944692428754418613968437713873456974950006771797428984433755483639405944512505691134644559628327715300092284272804280746131283241740932808569514169798142593596647431247383570559706583850028385385596937174561582107110160752183188256053536864577107489749186350605071634776923323096046814173766544709750137841941779059081696928705406281906001409473251900073591267188727011159506124587430437236400587646369775459015503379893924613715355723624755894452776642436345914141937721457339163691488188565655494950197225688697710493275720809762028363579853391876935654618856628906565042499013625228722955572928840615679593063635380332903012526713279733502963924638148947012842253213904623821688185065367869657161140466768812742457921083036138958868448150039206021788609495739312874752045130647979898029361656202440586711468728065363617636995666992466678763131879237420119109843757628950710425674186229271982478667794428859382349034657793028828602733901310039171961766219009643302061270102667050198124340523875610194961715644640171376449668642450941811671624890340494066654373961136654541270282983091552600560377883403188481074050479168553544516196904062292125381882425227536397256016436945548117862132645341345054665417056915385251406865533620439278883708658563688298296380790072080320415248438731665257689590874875961169608622481804318728020149578156382578328378702185773477995348812641564875630469686622788122204636002565632328852225995193624661051800212045598893616933963366247268122592277396908957641792031719817899946790565980905517016967457819646600127788406807439023609148683815581249685449391764124235966369662693628667916719905327826630262460658183533378511423585749271024837222156706035614169277634428954552100190198187491064135058316925979337091778853192976403810328428686416644786624204640687394244985827015388876863262314749242567735905907267166502178125137239228724507856821944686501030088176602704251015534455250859257088389653821807872623774570350853518490705682599684692364868727244469309538722547165702320850410100939673936092703256711357360514506315719507628523358900941810809579900332433614236554063367355011310081870465071460138587433161613597263236507552169006733362858958506943559411762394290140452256703173622988530300474949563414520169010707301600881597274215733355750726176474553652227783271059389185483735282497770852070477846456241232406573053065928740646533172439767703863291873945068756428570126142734113056220318250029891023927705510022713168675300745021029694626159017444313469883788156698353270999791303021416159602735925801498435173541544055682484203046771368746281381476979834452382424300792186356691131405512771201558390838211592849394376901752959379387762764866424540064686086116543430758487997522165957292853456587970579093378227789678548964654666510001789502007285224731922929459311571177679052694813321448905642002473786477476438838852240158496770797234200323644724018047888792758630708009498823842393814202967283358385715344659892739788381857511813579073440112551026148025031006771113532894197904182753382130463027753992445926060534284000508416871048266187072449727719761449381617994095868768628969959830268404603338967551248595973130983300688172207715000561248054688941725569038456516494879428486136237808631495879617432921544904258893315215659741843345710732681187357233698776037605015121666636204674931826406911393254991526679482483493998711198257393495956127513194983625782921143501390510487560606620189839071701155882972502091816440502180598333886804777021522483125046272295755553085768982717646884121639956962431255902070619474205927946692559346134378607635959510309602280972776597532560090256918563719888992232463083139605434007026655400235268538627092376354119077455183666768538709155408430481653684969064813288640780648045587562946603305007520593413009415213451210945202302784285480436392120802663481900724820230677306099021789949483057726741216255067824464386465838827136103219560417514267469914732693425591245905477499764341006075449436354977726578558284497283317743082753080257538758371117348336072584730271218752267688614078264434240592886017382016246570686804825485125539372658990956902121875668543597340573204441391386506655194036807406350483240867729804071930970746674283024795732120390177948311342152387845696515211075491781115388255413833405117206532353561668086394725623639698799946645704414795526403622118846566625439602913000163656494331672955348363067146604649502903795809743290618429810317931846209322878076844025798467232384361255177377366847270255100395849755260399446041797055268698668890307900995049253449952159754001906542157859215787457248342266252235316786489765840365691579202015519930015194672254632083548983795490188375819018925597610728467286350731610307081084207873538983969599857749769709043198328217011550031238119932134258265627723062351794173408602931551828327802475212379807332812206913709704341486218980410297999568408949518825166418226604900568000910446515444105769236396339117783752079436259382834622352299028672734213348521990622465124225259419787822691538698021095449828678251243481074128788647524790768282277594883728104854935316129554338849274966046253434177883906334698148199740179059393220491665505505947099372667342074713134030172712544551715471154058280668326105759525727285507523884162920538114847991625772345427941226120930191460722944365803105878279727211217753400256305203530173405916711464364119494715398877483329460309820870892911212556295472015309342723881758506210922518058791524651381808977339747395911475295458338593529940101633342885982439917952217613801276712181577578308658400694279158691533573196571887666466297811574211517882311725331534657757150098909320964421445627350172872891772684863616769120349875007321717220450011050397030007694967993778134529500999059610431115379391547276144495813524128867442997899824059443663938428419434730158705763045007259674475742816799981152868733416865817741942368748099687328491640333302825653103761172148836694844296624336870105505793182182384901119097515120252905059886251278679607180216622006545625328177600611885593709818006434528254997379139329860269873935836540797308470239472639031243276684626734072737891532719729826547738247160522919384534522072192000470199835785130623467967088792241756378373015855790691937215574591763395247920473072338822864269820594480840425853294411054773605965947357185561953689047112578008701167016381204027934289350425620740819667243459243682424261111663869260842090015292261879867178526358647894042200161699857957827036650372305949702977413714293887988965429660135398918571083201039968322567084447883085793406000227120342838981687264928943887667201751996502256737366872693546823362220964400629183483476214590197199441457622404327815806250579876412729971406528291083567369684937941259350696184623670017152187120114643283307821679683239801839975321113311137758510573036092352550171432440944186076185863858256096229204346558573856424070056823112362942092449067009796230500223914651687642087257981072020267858550644245702639971005391867920129169864024592961606996721873783679799458130704903749373104548496681546839017340326062770649354739940994812490493411491457402540500590768693204915861686460905973138536358040725348278484282030168293519807188594610754285189746858951312888328619071793057748859360244699194094760058689872971020478300490973963322733968131381020703495731147762827954825140531501451404786612748454893080904488088429537770087049105480427498458668768638490253130581901817752197717615770124473998931695227832666618037757420921759767159250135425036923680228174211155820975307261701440193883414590375624383900256312356172595057291029886089334055482863128798836092300703800039476611748489513542593764956553403371997933728023971059090089040996085312231606628195508258945733228113625114975577868100190118260214138830727481582934454844937887207425238844374508224373542477537605830349092560269655587371531559386510034836834856177838606339777967060353659861219634639882478633066170228902430528585476584769750543409094130185764254609765707910965791507923568687162978385388670952081255732516092133574480695809794115903172080081949878298282525965296577120934559092433346151403518612082031687622757893430135274572707922229750804841063798291506775904364255393257537301341603957838623831241684594331911380263067655639971263621627236599523612381945330736274760089065918460954219163541211515311601895971053611960299158428009094258117865703774282919979461719355962891621184765136999046777229783896611618524979069648111221288853192728081744771609482849605153697692707794487912689278758849224854517094649352502958875956822909896952319879916886158250113664685404165393858364179000161273580356644443071205446114440399693008698036530391600566000338858558457725714019487776252568370789898457324044255618071356872540903303120179119934457458528142296831053578845155535697419847972995360813995931444125514131661409409114049485312332658604221336344734719308591326704940738378474384022861006893244602407242008249945321994017391230512126622272001397043135202573409249082184723198944809572128384614238553274887637587446053446180941760508656530130979343444009345063515911524286233759136971083612422035357652526455018069415466010102969929732568654748991088247781256471783184145941035224464892634820041805086161107026006089405526055796097791851147586976253650639411872582968058146209940177810422037494414905460835998795238836612522187410610349128708650162379133710503724336993482704076864501681509737435872870498016775327319871325099982415083232774498893929122056003212157833642707171101126202480814743355203924398533742117039889041129524443117175850018813957324272225130944580679256583319202749795287970736767928453690044039305911635967764662319290627138932026535042722866405953288403464648591211919602078383856869537290190540496469436221634735530611803395149600324621905992725252361493339766761201053464949189438387784300874431669322899313474223053094140719138393764743561290838313401117456082847563716339144827226950458282450285226490239169245394353149952751062905650523047531317312345013029990136542924098792452351988556406341938589908855626989556447130867704298784900414682608820789859760073471908305401214531216530323255858001849665726562129591418621225000370393498512131377649633889760820210176612643340828365285975621931468606155640351822744104561633531372039451875474597766316962328446230182371579321644127413741471860542617981079895084534470418894617963902368415538015255340575330223945335660887116192059198818865221755490582718517462187584930073844176346693879522942056880613982259053936692707069774886470467098481444287134583264166042784024013634777042516929183227959062693811643504046064028912749685937880493279832908780774180225457973552381653065206443652389123648723349302740896481179759965864351353637619109173829018878967295719239988149302035663315297629911861288902794242592945654845731294150386934511569690851783165262368824442478968363606021457504986876263101213257372270347033967961066934671316135764403879788931137408300269292792580061582132748793536320222198771506486973391413210349778488680698787285660399459915694239862287162415811019608782430845995532068069755648541301909582385008615536042493901303281213838619653602256967209530299195751205110065030917844483721997142478631985186562871102420241455129704132892776610101398612353218098084848895021195734022193773528241192092396932435980455812285618685627376281566171536199348335140603220687887330171844825721075598921510432174068192308069185610379142291882784231409710142705493523080084470587662300970766645341144096636384079620117105707860718510002715003320434906868146530216604699902071372367873960551819946630674477820344871732384501981267073351161711626900756476650504617020793773224796122873573428668002764328996834432808256754731071658794267520637676493262337695184405128953337703138901740724102631608024916195801747807601750087620961935193873280098677100814324695136225488058688193661605460749816458550630295311499481973395715037218902328604563339752874337465086290994864465608856869161381577043526004623252027667332197643317348908770505714524034933060373226019996629555995961652071954316165019580985610192250635353317806504105074483572482846261479416959153694430712528373139915706602415886828820663637450349977262220123363539513244001006638123457280713099763831720175206738527462016344525472134008115382043665642897683051411298569436957467501607397545265336753230108603193619288324696305646823167329279883940809412020707044954317281348557074511079610626270372158338020862636603553654862114411040816837887806205350994929421881088436942054110433290541284713348399097046264269479217617065911780074161782095246741413625749227280995447779213488042436680422131584242478026989849428155670500156657116663567968694173705830456600604252508345152242758962805639938142790193654151946593220014875926451946801712650266196970359552199530458230927015159518723377863668879494678267064319794229152059033593625381333034977154019811754445543145814174508072138989164766913154237321090443532865189162554304845272182770963279867742242158298783867686777198518389543272446182370873843386161714896862970031639873727824447723249039495091326009060156378442725594176157092898578109565775370338906107152668377509455499716797052139414490829411955233073152028866527702616124129848663222556638177108995186945808430946961058097200101587578388517447716543435152231830390393942129781772527173550960111506179936544616725670070637978148174225420587711901148617764328792016539392249860506436675848820575084354956828231914262911749470344895837712798896812377977228928651987187305662211586888480917675477281489120361816687306940752691845749486646798806470094009565179732331040957908384955035158840185589423323110931750454030519104841246311000184385317088042949706544923417228825262093476160477940275909628160707287690212316804500021303208137422656368617276459813104392866188985541300609186478699832046646588992238311706558178687944351383986702450788582214043189228275227873689284612789302947366685257162741238388651176373848597209214932055654105148818932406920984969638921088784794400208596387454316979958559468469634164794747302567984980651410739841338678540819592376929028153261219483187560824916657788547999444363439841631979505091599949590517764122482611547133984923674272643227587871713466415783981479386889726639555191026078224358020537564800436086355550532145798317681474339596425045153147396120835904609942600936375589827572664611755860355253717159620131365368564425291147892083309747331358810827038136118578159938187159833752421773077835925157157546402468785962750483173527433683988153048013503357500238583268744521740778947605647267790924484298089584939876713228044240059738909925530715901854173178577857117277390167649391083491165414305971686650621453187227685704697389474958442046703921140472623241268920875307625480907995590031742996051819989295814099775518713294675235443466132165050967841952560132807703785625776780358477996457446769798496627412685350728482201660253881525623680427670885338802488328086360164574671032353036390758803787683725735416798247533897934890186430799610424197612288969561019805836519529085334571966392510353738159142396899642521038754462388684717884495777753328848426652849286149760985830348509216154074155148848130659347563880006882145139782504424526822710524230858208047816244264380011741233272544188070140390701854719266978519694441273046211725623466340593347864531560944017546218787050839483007797061753770888927536173940573233291327612163241106593304050495522712638357208770675477823993300650417055573569743276262699864918989741567038107905651704910856003234724335221668635191375994835095526680403151653095238066198195943206981848048367506696498232285302669609161691774164568549501360750443181553778743897112393199512154794278587151487101499623754290229440510010655752427566592868015312026649241288611798783261442914382405474960266418295179020752749130567767439809802031053021293480709106941189039616483272795677083254898184434820759723890328787162890189988308619322644208047903430688429336905018830720240014811828354072634022179771071173974641200522821629460155249696048372546197185771823588822876989000306962040501468598193921726370156364187955298697794040954284601864378517540505932512673296287969264769349575303608767093329687740362355331280831809183298003495485695928492451394337824231187618916743533537308519607938574970445268784972848829002786001286450683091933797595325244304833903945693703503397124571673473623914697930437283291068989518542647468624458332527396586579084924234839399962750387742189813089490083945152672223876687526297818809912001280478408523115780687449200448022394178204266145601591892036927705859977405809703424752281509740434383370259356997795780057705055715375927496306072189954428875342576785674237685467207189567531834785582417955788243051345910306927309542127107320475357993363254797072749343700450721768570061948569505496822091409947600572159863631448418232426582773286888735613235197726780239378097042078338552440637254878822193385809186006682736074346765462865367751531176023761976001126564959402366211956750185250339450373938597627462046179672411489881775008477788920484003901307503699844670182132397348748664373546564342935602263285224041370761472003726793604234992869432029274129823259490406661265191958307036617992379423716069575225790751828221228087471460650712080358113771992027883341364967569938962651084390472891114220766088687192288538267251470513241415410763747462979656488093344616260516910491901139512788427749012854009202940072181447442483694226194450987568746704363012339365584949222928635299736538016365859746317236071545637263204043418784606712356838692546426300966115055051468904292369363237201476288738493450522596020833922480764667291258743039335075049172202308119900788698040061725954690202658764795729964665138790796483265700888357001133172681872331545910012477026047677343912070682471981169291127899144048367251553836196115354787396814756186582233964478176673782738089015314047065333223738615935754037251680971072198650494727243741047106016138234988004124863463067656841019506122673300272513284830313187247550411136825868317437416450743111640881696460749327425409292534625114218701270406907545144355412533692865787837377318415312722263439190332919415673124715713289730027999924612750109755142265011794238822342741664427525480862206798272912600102010862020815055138279860951051566827535615130661698532175271401410291841830228887040392706874105330729649619118127287663652901258035788095983138816716367338513013727956128618892337767588229149775803347206609695811696520703222877576151212185769006206745231538372656883976086867281012426899766189606390677160516840076643948679606877259035437992783553374466655963746365943998044313126590247047269441607152400132834099159428452966014235131366833571029210544029857831226239188691621495887753606112232431295735068245025629434775954652915594045487902611297346088586836392049042347054162014206934674481355190073920256609544812133138214428705086277814820615682758216710406015249066881761656023908750764438228308736104220143863123301435178268693332601809856150850243414088738262563791133799899039122483113028215857942268499962231420033011732609357033643350573606816800998358141208213544734444556698468906056668183802792533297987301718694966283573102083232669066322207527292071929004654111647686554992409501187701463141148543785060375913930800806768392374631261795660637790812540867839087056305697477502925854839786727256202844964650371249307491645785462536671797981101911732255091383369502270468658625103407308145440091721567105897360925538855297934568826624060301242623680135005748785949575863278049973150447408460446803146595210730214456774300363833153338311323155562400280702347678882775591698053381796186769894563149234943465090963240169941631155630002177898038489784517018963598403958996281361447504971310014610343704699861695530288102701798904986093415955022529599530593671415873471092676217148139860806287596014206184657188845563835795988190243467661778813714044623724488455933485886086710171849425147841240347993121613557654841142165487009491912116969956689786232602657491299833303787163754673073549630357349768763389078850060948072403478269051006672739265203094950236399331615448018807991119117764398464270152677222748337614736688977900144850274678207485301192587787232960952213321538512233429378846289654547204264737935020852089803795760928403457862991126494559353339589134527574983613225855166401698249079747003938765496102247854118875962180484443249389835903709550895706349762297237376039104803480043121933783535604181415169785709959846591659296914709386798612325832294740595323852131109658900749234007139914220640463380362009573757794382568943408200511434876479624548936025991847988395124733561358642751258531192257275857952184819925169353812770531686210341091666423133257144607450484718227580498482882800710983291844946351414416256860586464736399068726867999405066111178132431185331749566743753231171789480756188297549948978082856185898918103298255473510361007805048525550750616034313770564667488210359048085638651043541848887737594011383053460662822771195011559531191964607864676908280927172361799323944849780095374963497584457915286575222122594356370673490911941324465230209331409185221216825798450029808061723731947720812293918712386325865869657106909761242690821144979145403173313273897762449739014456956522392509928032025783332480661996578103825224059087540375486867799221991961783993861760810028988610849498867305941838370243011578711087748470051777358173817632255706197177472948989043135131182982318207288551556047663863761175677719534282378288080922421530621345835241133854032628797309544936508629849528784628340778718252550847828282485900510930143961288652749707618793404665104421906844828378477652228599693893583523238158825800738363864299731748928118322181501890986830504657137215944285897799962006136048216057087105892809343858119639566620754247944504961957714291689087443826750027221304720895858419166799613865085762147192401671942683628615062468330813667623223507995246447832787358477306009941367312145145232658624790190597413253969832561237715606640356851412744713090798935177625682915479277549980368409535782776462497719433501171464801321029375889608389170878283156669574232247738960862541669048673785615601669615848305280360497049358298028471236256518654344029957249624738873159649413681865131665490645709590690593210159807415371626302464818329032011223999543103983921684294196635498609401679392248501313418140719018229143341961512535455480361816776012536895873152364773105813847519669203112526282920691290749694563269808936387315738728844497957372184119558634748028449663088696511683545647955857091684206169907772137868616346253449437789167181563871734466398831505183073100367272736402120369583041640783630662320574518735919568521459136263892532591249416684358750870070317308601991701806949661908673533450935117724494162802906156159350613846850101829855204558722281355396748818746941941454361771532528263715854013724867277478796765706764819300247231165787920691394972364670462233971672924608709922680692499929494906115172311140685336414906163843314260181575545240466982183507502621600702715441651604312886764006084768069165455126568960318497699977929324237559891740981133763547036922531496267226194173871964808837570047767012850774833571007559145443348017230771250272143338714734809498283035863998577263853321372120134781162825177122481525147561072806469290536097212920872490675814680053659765565976754584167261383574229256350795137830227918050218406331402579367243080194289104488570817805748860804852478866029432117437778057571198703914370268371631028197891053260601929427234846045328848238081298127817901106087601576831142978724050682885463439859533272562779929728504294366671345091634957072744204098326320115372794392911341174498130289401125273899212562187229227408122580205666159368146673073493768416755362615684524893804247046829796250839198446560912512273982501332513795487759769939941129821986884861295623352880208728189898919530414218562779311364599432747748325386864868958839358570590145746739142405850017088389873017303251429036069194707364881130998200782047753552247870980168597624773434360684987381096566598201211599818208858257922898181366754508120475438767193150416782217032913463947880028029090245600619877918754139204196879407625161309892485506433489784164429436762616258685756467294970805380020709703974785274687293123731135267388451777325352516304846908877116246646921549469174575374485160913364964111910879026198429457428886118818517390577073640394965486656662271999465906876859341410065506801102909479595795126600135148162708215205958506637723423162408407628339946306788052571760607784677632524076349655410776987146709817003473589610279907023546055319961325364792873858989062993386399954564819575574900257213315791265071719758545596533932108266225999019049844277203841765027549794862988543277770033823666278814699936829529339637685385171557525347425038491811194034001490787885026446279508670982909656875665281277985698676729672021422273391992924457678007335750508098687918366025139842966685992241531096584259573029226550936718256974599039260764116815721853265171238202011474733718903475474841467814826020488035585031396886401694016056684659426468790198985912666202530105483053276153363439663269724423281947138800778986274784570601596091477700799678891310761629263597590269372764867419494762514788972595627512329389137468827040752554848603258074645461937405819928963502296367998003596729328693908124500183770748758443323666638759418116957954722021028022910771420271038170685003604357207996930452833218522151693117944349524443627154483560776270003115049641893510706317882631031355207424312509813915000328506392054386124197662545250006121279090734930662193774246266213035661063149422331323525730546043231450656778831776789830148701039597038405659765806222608557556428435033424111026999796227710215709367813628403603507468217845801293888504829644914953019867104276885642299714102993266401768389864083003869748918858808927566409056884357801327633026564472598717099047075195590815808660814587606250607246108345017840111453778097918478859117235746922144356699173233626373486413198857660395060516636131920338447448125517355708507741372121865307417175161714275758115459216561567773920546725913647230949111892834459061397949020301427167442944384355642186538328528352619536263957019634511375204880710346967517572541843503259209976952061046069834194969527790807631459317992605405440964925289594827250680840076963141938603165256002352727036466970823170268514609790444291224895877823120548852692366020627386801444576171988233191005646063429187225364532766176031346368895420154648161982155628096392026915004230200905183675446689304950230302640649609864034091282844535359827580058213544761442609334347112618062118744277519285556879868883345123292356361554695553097554207223300104468520571015665895799768224623959322944262527824762578947150156004166505397726922585979433034271835269072249395094697235645061709291467187798734198786212081950711813085695316138602907411224990815045665110926039042442619994847827805753545296787704540058306727599821635324303032966719415443925313874614488089315511554255778341481325483967232383556626278897951642085586080364655794689656649387705559656956132264838584996631011034264585229201137764007590790189942036648552136462816978301570612646104248263286368986329572316642107469308948011118208920228412405976043657229982491662762447339881423332727417673169386305756446886031107801111051681054842098655367469272267219856861141105492851886804507681195486853056089510670808495699739749433704079343783700022646901310086376028310858864981568098170421713553614113450836528069602180727542683545234160197193679261411280272141211141519671623992248469076939895763104749619319980811173429551714521629308221450651855529184091345450046631891826970669737880374965527295094291087481972817476060364292636216412911520286138862840606783630597306703390852863769507047355597390087849733390961650486362699790591649837298055241158553478902896089383824689406687165491871671723478789574109292013627233644409991439768247511211585080450764356710122512463556504195391302382757652166747420658190597439299940171056559187118629199595586522689107384933279000181811822121706924519164283757237702231792350860166298458351810981275545085221601186503449514819694033674390299004844734530292541289536068346494344014194145871461888745642236456061998046506934872145844399004047668138019131671931701029599781007491206400476827615063079898799906491324444137945432492855704481468685087772757777141431766371392853354259506482606537836409441752044481299529098988690677626326328272483309543957720279053233568669542661689141502650799327888789262725294540823859266580811139360139579712122108792502133927486339655062720698370423871152418346849513765640010250311823168847210180726716476660937374701050080627554439836951644980893308503626881250609103932588357404854074823316419318486922468731257423997052815776491619917239437627774726993625360213653478581165067770690332244479651997425826765665766487111400760049142266360282533993171536857370273277049185871154589839217692782528972170442236390862257255625638513791821551000847894126082737211155757411595046672005025733568627896115461734135699139557580495595893872925370212084352807750143278871109126209433815719733980229099760274563469776104863044544084106122019747232290683038193681860468942875077586540463762537298732917008386086934218031647666743509414702822819593261852427051600671668261815784036603718994235365658700772187878027260634457927563638222882881779411729569873005025052023696363477033697418494538469985632479577285585884331035720255696450919276811552755222307719146033291975593674157611164786895200761736545985683908082775111174633199082917486601418023966770766980860319527046795476756854242624524977000055419866957192125901413862671464027437920906489764538955992857945476986749970310009693445363964655673643980441951065338939172566059531260648643206719423907856508108313186667371555381345295537547327833038057664962088442561677758172880136082520602648556029556333243753364070242048167391432435941078827566571770138354743437128418115753370272580573965809336276953752720316281557580820751364289311879490464009912122822880564487699894450974063940679409946849820809192548889292925281961864661856838928149039297955473075207406643012370887464947505757847901230945233304458257254058026192421627636540364654658742499526381277343503175945841993885667401664636503934825301678740169750195792067009783199800265167089120014341780858460714929117962465362857185501815681313127036022682686235643827824913431939475921438171627217117068570300476723176687853410109314418036025700968281352716802313977192117983721571594908999089404865721701695242866591345015809054015107048030984000123643215114935473511095608801934524894266220985392773275845781123635693192040726507747361593990590825098090404464442237765441314801168526092575930851033211033229935368605043485410797553431901611984604947553670809507574961221720502506033218339237204504372361926386434484978500301775310802979428323860049534355346758696763205765677652367501096149195724758059388277845520776821654229085510539029969972993527474113904613958835488325717520567167119687981183330198849555787041681139180342357972498138646925288314786382278162329518715785067684886368965211447809378373877728064470153515204603233007150251753049677142195632419634878247960172658021373487681854671129468605338789832479743990129893789946476379575022985808995777110578527269387729677097936947908264406360779945782823449797739953949352121554314438557911598011216685369113755518608492659726145341700803841589187140108685432121560113224467052924473332273151467755239249747774657415207856792104626049026545477786634472251510425725465858522158922349500305191806097386858656315727462145969322297241481328274714812612124240327498518926729172307789127926216047489228030190063968925297607054557337187495915346261898342408306586298459456025414189319514257416379263943930037983780176361070062281654023363005792682886300266916609387942688306018433181591365903774264239528185399772879221422811805252891995350156960197828100768665170336816477316857177949507499201418694296160315043322754673993797982718638074529374624689122879109074420545051893196243258792829722031318687459099356433481356815878971828171609750150450536765818023364385758862644436189325089716274199644525570974611416841963199810090278429818402881368393549924834705425993225355990866352628796796310598129994377019251694070997565478306653473514244080313771364703975941843922743068938985223454428268197962399033754445382439932859105059971276807244557705883579590217832692118664143511112310686949854504337340443499068115234004398743230304632721702022948185499370691295839055402730686938335194251417335785181993100103659006490087775701805519288926113720103845407750321588924915880895585388920294675367800711067589128438144510441127346015801972547885170309154389990128586134484575285926187564106740089123585500903479807199392301663325844728822393621033295076409857872614230338085434116154215184307139092632108490097926539223970523243875499981735109471569305260053055974175367089201977579324528024689834792610106935862176576151361565133793838543627146840442160025171011334098957624034216221005465154259735058048644028463815232814159850973560437341328926686473976149566899103045715814657229179187540127406754299903578236963669777500778657541133519234040835524682957496181099767152391700140758693546468241847339907804544709207474377033730652870990701485837515661991857997630327982684282172454896418497395095175988373424151563736987183868684535260139244880939782883382027115274390047539787749918577862339587682565800179333921727230015623799583766089278975189665767679684765818312496183573062640536871149104414229716101188321398633401118521736492102209234375589087194463901271017432391223540158153565430068726615958070234054742732480518498412468588383144583284313147333257289938323884593800854007412056364887882377026870280794106348051512442039893953130122700232277964173232543735630320174260879440496913741225440591900571159736460282070812514684351664533728580902243754718306557765366949323092204787288213672784377474792815847529616265042323977209146581623880096517129142111282519042327138309316264795403835336776969161771180488244561163279419431679025066249279989509822348029201877396993120850855940515650838344455814429870911496622025724813852023500139917235539200793779193682459809070956667715306793840247126480621415450224239336002104864222181189435931970800981826001623981410405907183218581832218856875620953984676759893840313741571151564546443568687227829852506210769338282779471232586595547088890792710108886452026107381049090314156357936045424977191389623177444395098992585042694166828124020992716766757573820770990625004258574894613115231463204015397136227552939637625720289723022862991404066644315435675582877001419925700498629251089635752918179017807972714284994341749359091838544657388429174626132873175140787674059669706366476372392677336665159297410886501367359898072012129784627605248046789545409292214737182294519992090128459207991949395180416479935471927192792681266666585100736447554179690631913534124924976739305661910990316167616397730501019646088250084288296948421513563584596433927522200503195536396237590645502697363207203976412381098302769448210788918405843210562904081200269491471604788471625756689261599016779653117764393106384209197107426640525700156238775718878072208582459504375033435979041348110625011230563043569666151753827814988113196911170342689668645199478130295889263784941259337434676604449459951818483142880608396438060750181883110931362806432992188186740094221192123210086137736305733386883529708167565768194672834731514793819816799097094097510721532448905289267451132562444125447500045376207476067408537415605528943855480939301353529416045343150313507517977226319432661458013282049822400192059632090464631059872027241731464547765323499236586594401119664345056065491608337338061567886241925861499498229083118787009627645355241803582431607003506931156428339403970537344832421320971322148262809147469754503389997230468009599336044267511356889554329806369582971129009386425282707696545450786987046376928460954976802127440369135234524880420310245284092530879301649964089449704139150341176526707022978747480882436957979429696717779429123899480717158906623367465302705559407751997670702019564608055025732121511614248809070208022267381085235464812690621974751396799876103680539351595828896713591055751596102398044354966934537644258852224765946664351650142452803074807877110737018008659183391040977229954241977577055385585388309790925105076488391859034930368558533242075059674948050914267758951063692892240083381737817611497071281269914405091773678355406377595749623512478859437727217065999045989807048565301092452188892844844445789433424137516428899407820859088344409939780685207254284127210328377315575386321363697370704057027475455655293037557491900190611280844977931984642208529386688579444628504918431439328450359009528007946455432194740555793683900272470920786682578577208922239764066896391016372823313112402197731282245874049659880638510727607334254457750591267606623835075890181985000062628658172777940683052304517154972464678404895950423244575122053306185081673409749824659646412904738978084829537381542354934570807495628061825103963858751217958646772938062373008445930660831285925993411801966458411491648312347627595015123247738228376585703824418378238695209011642302088689895458986868544537948360523467028246006126404762925042482463272664914321027526783895258579963609867581995042791586139640439149577935567239792951706052526127931414626551148643532052097874493728270445718307382831989403134030490388709303512570641890358999623210823165991176502946240801108755358969876310229263086310980422989561205517174282324096976048318301571451203957477741707750461517804350327945980861178048663630471043963181842347783341760419652659536464166666431393293144091917364499975336555582988231052197093384955348434363569681796701072415445724885194992445244842594811969537801176229959129706925633455360083941650283187715440783767694189412920781281982170850768317957421984227477388266748645062341434807710527413839156267167628302766291525115969209599484191436502727345237521493071157757003105231471939023251875659861769260312482903614778780433152342099920666398205424464290202970589008818087328294812476886493120758219973741957499120716289161161476776658315489613569752539754415869699476837900604405438324692085090286470795752001142223351030493060115136556386612864569596808259330719614154729847161189790367300077955774997849891738154889067608594703827456236515563104647236801690317392567072524344619991970243457536610367348258507350163628026099105479897263511337514653535376653777537337672114892707959285534836872946941859570087062158667241277431173194824946018182607078661349394062586378034271616189776861203544027407515137532116496471015888200975316129796963645724531361185009313193362215706404550598179653828167534564222348513934131769036528723248659008464549548918861341594333590597863391636437799018512316646777060460022610439754706169313730316023664945744347104219577364827158143045040659476594765972706727183696116159577970449729426888145065809002677689807135590481074277921759416659383040485000215836589702113441052329162597876190945853740794778937156271988512509739057671062818897148394558217474188829151569759837109035018131975132487713825422997244718062713365131612715976583365088487439286284738966126095373809715253276930527195903388782641492706095807829949489998435808270451445450681431273553044341666838257943217469897607602331809774356965242990088669842693688834294691963191876873797389990364508247435356019398028466274891995789809186857673450706723108104270414307668087550589004926860191663450187561964490620723929433731346207165820298611666579369365427084771615799971077550464938382893986202493178231161701341876944817977477656104688687295034408720454735824161432987612936073453955778432022957958010859681775127482155089076147671208902308421375323997637174926353330241078037478344150228266121127062676705479849600976833054516298118456563945895767370389722029462488373683303105788749230132974638089557932653321318174885268187410940991323877978432361494494684628695868926608852566677107208215408914860813889556806900268041482377236361065737792077705849077625548961345713130564857341174220361714334974480093133887984160307126576667477468326733686021712486163822932891878081454877644900646581568997056279570805264468115815166899228953244971711464542758184023166852707587838906166134850291364614416294226374679331801594055342733448366244464152756819800016286492161355990772582098575267358882249630747344215167550919024894649782142034031939737303898034215935497168572474818108456768773710013122865601774692173279662883166648338790106946620936313052281388682259726047689965126335516359240097721381770488510096597239556214882162511440604719103292187065574069351802352016656666763839329607304168725786586697678384044561186939501622734027834735886516259927592278669160541009026761251870335379717561076943699102197322997949509565022328406769747888362878514793900960962784791042308526224727879838797767537099541086097022201091276853107170002200238248949489021819717477375009378411331050513966462162513176592287472545955374032118841207573333311899958917647037572236348301477997007364246486333834123440310658628779193178648103875713712967690144482216178381631811322603753042601395911423931249566085490126730381998621689570278744119240707484043993798685627260272611311207192588970903552538226085092739874404384183865224205140626421202608267295360185554846251407618833623797797254405692591975437821185672171226436429515813666152811479213292123124749923774955805726418792877938561081341899456500073082568369140253229778583899468519338074875914224555848692503173786544877509894181085189645970339800007382746042273789523918060309417743680436875572617943228982842027802266643122243734600159601594692640562181202698560403115092096262712917800697375187557528180342293208424379258877306617768629973565704238706285230398864750437176434876406600152631711604186148925892647447221904402442757284768564986697147831342841479084464932725703958712491872978863478959669605120478178274836803873278252729065730872739500247788891688873279209590146270012115845934406925273483973431824593649060180079407824923329036076746883806862382731210908812875658301043980227631179388828749032972956554194662086710469153235593866950780815869845117150864553558464411055051516732739164486490051403769022628234249936313413139172367835192659484600089309454504161188816859527821302205396721676008284486238152794936318008237745173689392640344033251663012692195000690580002171963804541082748566212611702332712991228921039532114465545934740890350980667699708235064382369956706658969282172618150539147269324528476331828066458519841458610706742283740076015345261307162442680329294996444480345676641164480544484763020250000081111133364915244903012223369088656320565543750979940886234553854865663930396439797433614387120653537108466220241779466397512594132458031048187680895914520666760807708218876311874098382684977878016881052220913491478454560809048899939312929494086727078382478698709594548175974290141846610742538714552837197180792667592079241095621166848331083956062060671679442225283374272462849285147493725946445471997772228061539626985791556893527009827514785531262596395688141791249527610683393546149514889680033179766173784064888725953010270407389853533487343905399551269203121461578064092796154373839235380185346981252010845520595500556790002938363668889647994014400873653529871710543564334221869383817296528303082472250332936508906548080653512268514627955141784324494159164250970400690250658512277944430773530507363073455594361174039535239096045565552167240352829179794607823841157851204513542564094806802826651615279697528810258756203597528800894096289086715334688056485389125719814241144229798285901459995819485993808674001150948970164565659506862134728227358012631646476046244381188960028056211313981466529675712824538425368661909622895638613240854139181238003915837695942234567854940010847487706289856303882946473900266454161395352416961870842718275589152391431036629249932273722733304665174925492660365070697489949860291214478407828113079559079820600678636229525525641086578951116742885126415722179069415630998413332768920895055106302604556939145836744734575741666698529601665653397662302729184299416529667798241619126065284426314900531923684084929542436421326127948548909390581373157857421484443368332086580218129717336097409616909249774911103184998356874667168515033287840918428218248849031553118620253233537605763645579861773381242746464193744166521390974215184947666957170554994181964913249394378618714756968892543589578301193760329142998392749573545941711438961731780766680424650552206146654408938415176025941101082601000199956827895128528795711267554202829795247146576612571448650424122681792355644089143434203548275315275706896588022213449343294959544371784541475582144766862145747900638565734925804093485960760137426399297484266829021211793773188089651020074178053862795074806633554673279422410579457962570780618890868375837612778316566593977966896326616614630213391496474967564329498416528913584664696352451445790322704103576379081262863839430037582492694702883196776328613055528873943639081477286865582969253996210681015588909061980730006072087067375775939731587893613521995061659342456691867130051158133985675702095991951322205309603326920713396377218882284134114093089129255433569696442378955216876255211420092114634699559802946407752603917387280813499215638200596452643612882707399504491220654187819897787052528621357092989680959762749801294860894080372754586408906457172087683456129440643255746867329549512444443143347766336580736536017869995285222684423060296450579736196041939714339312029600584578545044076977361845242591201089682753928340876129221347179359544847245675517988365690800645820291603331046568746585528014631065293250459688458901371279546997745600872225266771589070214156621692661114301749778404618357088018449721199367152746739875378966515671668303866957159696698059468877847396935473317308737510964339116219882652236799196013488169065106179652182166935802580512124631447612814405597135839344100419004957467435567763630910764635346585927529658044495968548146041765637610109251941880957035435054260457525868651520934034960046976770780581317996120372681161070178481413046926530943778088829079748968354752616993783978507053721400930739224550830775967777461939535737389561130400588406513186262233603629898009244483948970514726353278631840057383028261173456291548358636059156059675164321685393015991535716558082281136665548812637160403658405924491706104435003804627922935477947412468584703078364150515343767306290007634011535985418944304605714500692660948245762976626465026439157252409202273862000435476347825989205972359038615413548952182936473376345564761648824785235359996663422189268479523869761805014925755971726656009738880282073764767457833765584297641907821137650374628986915861728069452189036927257505972080698119979747325160000068493513276852455346609372601344702036504631306543091779069168011996800641987581796865905951772687425566261530913435780951212745605937215763227456034080535844738972564153617558618636276510171572830518745799290803131795616759699384741529662710339016338995718882654908970808133495981711057102609505539957896569285791960960203124170150619769890872167026792982199260820705227629938725847718671880612871820334869820619266350548455327202820830831358096244503167131184013141061562431091519145193401386478564229002359090071699102687650885670016996870067949217821788897159137382244492666122028446584629794603431607122310930972329780588783356798625561275586402049687684290028542279810049209206479098129206607517825892148846861190612694517854849730337104191303256396409104834598738949677379010167343689918213141741817172107436541402431656394620267886686468690081878375126175739715633987876340232442725846049472638243268081379427166089746385568316160724082577984178117507116007682824597314306674644189871387480665327917734103594634359793872553785601158316236929464744642176874481864374890783903542212545064320258566839003866119244510436448446502174417113031720429966055938917122334131592132798026160381800609360493136790006954010565748817643640057859682238970961799230632037344880536747320564546922478535282316968958017241591999056141734928797876510868717420972762008889697424064674641348001193778631144607905022510562956112406017683388191071989347074072467502005720200102520471338711633310065879967915988984232368820549527398899211883006889167987596253909986555465007542367499710625743359185040851055557277426629237365530675717571785567418552749092910690089466691399507320079430463619550673147709824200884106388299779432010084163817844474671822285546561977629899376280411355941296250581834590032059514372175113072644539314952577121168773950023792302772701896059078959485281832266755918764673281684526979385529651968418330685236911840725073627050734543644031528152557339575375912394072737840205065988400198515726616626748754520625396593012165766406445847342758660963020427187393148787741890951658810582810493456196599419025663999984125839624892691628304614295915057645745999161882640480209798494493388038122638727563812695983772214119981128748901211891540953563791162477685040723149352842989527479193224170924281750148526425162342542112861891432707084715030109706127526018954021923321312533952052870715552765701891237004926223939365573399010787117899016133302671380954710356888218238217213615601404407561501487148446812973668966088409763879165392310613071901173943011312757232615325070718225373930249414141769839122176823017993422493862596594591593633170105179797826277513699924881111892295948025387238722006238208132763422909846343871372449021420557405782050612237233922897582818499819647810651317858764961225215616401207724436919283916606572295703882471047864711744069315877749764489636000567005676809967051717646898733557931165867666023509753709314050316076095841504070121702567468407774801087649221059824734800128977204212356810450849630422975057874875901445742992509507771917574141220351697123698742942029580458093244002989403944608970127709236693641771773050008917086587511955265166662358075216261429826893335856214404642256588653936079476175053833159921205818010826338742952674475793930245642402197355504180422651322424490619911132307658069191885758442315538824660891998504234989121518675313501906890714665367057755911873996695248797466777521135623825832569572965057875220625163232065657069831938592095645975469255036826315584514505764200833626267899737290933565041077503203573260230234691750189699307603735195954077316766854189372219232980935103070190985718811552877285083979052243374907245223763008859045322666336756969641034448290765352937130376374461383820157356655221373690066031438058451294151779736174960106578583033128673438875261012412184090506175048706439488478326563186414650767901735158353849705447616347891610168798698919304410415101240992448142061794435756855396393163012718536415285399450810537494247734594791151657371734447027519727572618335577640260746567546056134877064205298826104231372537985057261784311757236710590317588116855155342344754266951011864575705049582289686614347097815932412329656670486406030930556394110341680703870440594774275834615554533053734045207522361392451138962308803565821869596017493877664716750535342848937206756887264956683481968867758883439692379589429368288933090598322621463518701463337142576884676400369571222698903577987025373924245586427355052278279553947551326405477369303597569987159939704704708988231839866391156196859350160664827123587088997795550788843836656656920566253951126671972280677272002442602336269901146999561182434134401039066182904765977881643754140962029424442723271005755640559194077150160176232741444856465455766838983546707481161242451106225223321227690918010357189312790345624402470232770129884958671966888976219023180773767916124736991665650943103630510293691697111466086202113955294241290773107304980847604379382102987806820207799724747032664058611057536090162847452507972787945527711921332960400278271626289843728621191131841209415761018958314020600217275174962516228773007328977001643411915701460774664280681027543726855432370868464651808719586670581144783961748617194571436313873501331558414005184770794068839531199988817347140797738974666228475668493085491621208449512994107800366971263432247307479690053130644464012248945995980513760259312267546139303076764602810135628094008336389165962526110927181650270589263908806738320345552175987065183802095310687061663444273626466527449309077689079125679676332809440744980395377323849480904634483704791908552009167348730606591312279070824361299570616794748301977874534089289234640298942222529894072033447745582986569470631919144985991197966776326801728166193049582546828231789994012192189004896453521452373352985421361525531759679828095561117083666808150190673195033052641843252027158378854719233897358507145708915102384207401731631764166572713130683191753825920584094355210601766180929881712299976502030707726369545822031363960478821562877389947303002756023265410867515103849332082412735384188593059216508911853983294712036389558268524586773018523025774073280232166598459363160001989599960278422753382339855145352993916333953373768202018655918950229315292990850966386929568422987988388152177318397979104006901003983995307265613061592730209968851245551181605586534096474957519828367397741628157935560393737067792279021772744722939779256467222261706114540124438554104211217243111880491407496470684427599548642494789411043300027556696619677013172547580731837970796848613828374639835118239042302446456299270616691075893464372654079709989499489607269137932276605684192458382083138893240499383998789536219872844664054493414548861811068653811440911750541884253625977965530197504422046069003416226150332719391150060159443418667783848099924419394992205096910910176663740980944770712577475056592285483328744811206800649870065453386483761747970061191331773536216766421761426556168933931609750150766968300613045128765574232144704266437109080839215867333262964051182199669148783357549712985813903613126267512767904530283204968426401491308670930802956817503279895180616950566259740493016175686261560652708058021616332126035314530940368958085051690346312589317171453448010506747726348100526680217734696619900001887112235042309920127935876846521807466154942134078013817684750150549489521437258941506596049714356087220411110010043402419698530499502501383628457762694487865616120519281914008929147897198464784493534245554308724445846819848420220244142350282198676159323348641143655991353384263086076779353096746730756674735285252383073865125919817266428668461468943101273104387520226081641097607260319588884088535178038786750650541176447212464548548403472061236442692372076363239533542290471488715851773919981492083635079953286357138677639837136679923365686914599329047003537331088362895639915338717456358280760832942639436769670593497236458514361501745854600938449496231444662721497775225114380180530137909546367902729239882542620762659385080039522473553453337337467774876582054846654654599808371428227221521071899538656294790372576299133821022245272874558913766522821053552150851781874873949239414574543761130894175269975619314528064168295116927201039279136062065288209179984601180097561205646829035931151708150053147130233443156748115801568594032438846146273704822288747565337878443906947090117820795450023837468790010605681756572225968495257888560278997543065356651314210245633278470665570447592725286166416472024444256521568856298518507055210062521312725857195720577664159978315024672579695924340983672619828338932328166865967054602431235587370582274615825080388422124560945656008735457842736360486145185694489978852839630000950648404525789499857872548848141902713946315452859173027493054570153371835048180693385095349682274273850979070781292511172020488404133445147848095578786969020303023805733210042021865807605688153605392619195381038987060479070799107831494633319684062563643622480497491180862536747551373548672588001088611199235044708525451039415474913710738102116417436364779469803950694115905853635519140488173525647157384360580871265556007941337191455149975932727126940123140236528574939396186105326122136857536168356125464190107548782588992968468321367953220991588347350809143507457246008400252162122516511654603180718211278147973460691399308763876859372219167415907716936685381905460153599649176863102007149779192334476809157827180046620464837690342949074948682445937515931198425444078285297022478172489856205498455951325886278863907786934688337216932703318770877989195524362914291614957126484858595736955778039725618549828383685362741229074905449924350403859937210073012595248785982324953342492280938360610267346282080686387865912358255181608279763248491772785411345831292346977335330151067592576984799033956410938139858268920464417333084446096351131342498841494388014501736335366011363180183444135153969657492944320986428374392817842970989675580042828819360580092341823988501417949790336372425851312759616331420907073242522568477032655928532764815494509202277185820718695625989702499668280819262460627233803763656439419798897489424132821121962495785132104393725627766513752124115805786653950625657700489841884952096746819397832802583945414062469399805397605486431239091107827503742161676752517860878050262452055657353417127732035361626829871905105051724241721237220293111146150764763656560268001341877377988803497858608712145594239011904394824255166668221751627571091869388482645038942942786593878539255076968603928464896261325990743970711412867682782377584024572786630353593082382966919000653131770616225023678743630799199819548664887503346608436853021427860595776834094706189645737164779670416275021836740642435215436813799011831717945638166535898668994683725469466814259528498627423052123972218543612839291261883047499272446126122262491357985298553284023914864317108534779106042230146142974360684235807818042636834059635417491299720347576337620415415496134247891938033210041483152048791083796094492572762120280948835992420232126547223201607501709047042179601852233473672023291947006979936588690355402937029090757332519805171843772650288289178945489213925522941976501701572620511965093765626840273233400500294245141855635578682034877442086470798255911559130431199459504520774390515531563572564336288070022171655691824959892573873366919054898163255584369821661146969607363450948944253129131717088814014373841051726526813543531461263267061918226939059503931515623212506660383795805307285964106246833234304956827806038790973815249585639158903839026492594343364769879368339952808503453591836995822822602083986291716406008950931483999383967873509548203150490318162872914476592470957162788153209389472171251594207435129984398044349659400556372383483430699877323815440768809692170476576406973373311568450752717550290327235331915843220256423049712843092682430870290773008199060649604430178589681989710771208148708178067453588190536586939556028349526275205587059335380033540874877468331687810279387376622467093169050032358934010260358166443721464372774361988835134664790369544725145399702428156873001225907341514004084715294304774231886994197527043997951081190702084441194191741111901871942026170591988004446060382388104794594340301317529495096717502165616925758950940207797264177663093113974385704539737890928849961367577778277562155760902279155283540076760345937336119077086538858857132235084461319116893649394211988677563929891522628042584183650329562762443257193322676567605119263931636902001810521212414865435872572386664491127207410911188953969436267602510639121548537120253410459952978937725196843725554280922041587002289187891090376765370492763607232293319244682779835805181976407619106208978952468706964566363576182453420091036263907956324694888643996526005550869502749708174609376469996517142706763197555870221354494561562909044598755620552503182185034902045564400772592011627903576877585061908953091482161355564532876623085391058187438670657073167269606339350953969497565559298385622666464255305130811348370091752467432984065607472042353420760659644740020785209968825990928878985396036529594804077742382591171914932909327710888835773737213617296981472811630770145336410072835554855200434559198740113796555300465469513511017090004632357401045565697486318436015777000930555836581959692319849071248771121147984183158829663819677348980895226328328157172327012759381490450294642894050081692822426747621206178155254108057157535350660171472774997367721082778931586069509409620907442412601721222711071355381735123369585473498926286903674947077536577760576318805965385562111879237129518660494567510697288662844022145662860865041514509490111725315053165948861307772151151166577269266211278877528576506497030632042506378769682841237184269560559507499792821596405236284874409230038630220205765826644580004518748688527288290603105988258657433869345826355721502010846907784588782334468805471469429427344655950793160786048539786751966554829837263643381945023896574052618915842136525164872261095801492242206684523202058205457088816730574295773418933241166571963185031046105882975253124004432379507674970785001743824645037687816545075386561014707925085312816203660017873645610529689149132168989534237377387714880520706976685701538819813101521134931072318335038595857387359686825309741145316013138555710375249396843508519342136203058419677699496562887122962800039954594038652992647811744112524829538879412338209708788214431570979814084112737362241470497694288513637267639406241893551838774236829712353530369972901108833016428663742335038306547450856886631933874674137183890493378554584369183082529332763602809182248302873546569149128401037203479929514310956671182597697440095957775243479136192952779434391092157687152863160795535132118430817510187774544289173635371469748248053130054827228748443052817315867018715163306358736709704358891500218062050485686470676397596727958642509330136769811094856927052595926169224687769500365176116320301962338659327386116467269568198838022941325359292708256101141088374222542924548069647104537065498692453057729301191719783624291698833748885251560789777708885578405206860328151436626564067940519731530645582813395477493337603863677087684784240769389586197192239355344438773735599931074997657395866632255964272893668196238015429015219866276551230234745332477192649193669099153786928699217049087505963034166573210743629387623130342223302135075660619249629354094989523855852308564689495475367560763450379984311075527909752343206123595240127024289776899782126583098312014064536779040584213185186952355606734255531784211429402082282711668137078530341603846225292859783606496677152170077525036024542129027320783309769302204817628623964340996564006515784343076149166904939551861753669520704341379883870476642501374505755104326691789051879421752072020944878796467464343953243793390246532211478182977839248664779387360109391235259597954352717054519164842960881498032500223865268873200143341872288288960989481850578995388765768939414465872846454923028479413323435298269662172475535711203672562873032070383443946656672449380875648847158505056960282665993702357081822361613622996215819023226204610330870465583337618056532945027206431128962666796579622193095350869436017414665620642937257046381095148903767156508404902983237073672606615325758519913862573200898333162292522330726167338691732438602125398796247378802768844942569541310382198091364905421950886151494901412019448559274365851223718668688431648874331133700813072611069951513227014632523286674846224520143480919602205707322787496009325352977776225055693494791297208694942949236883041008086771781047445079270791278964619505685562713992059475602248897561822139558701073708301936060686085210618124270856273474943328431556072274189821453370231485879273045329694218358017121019489517744518668230015977565473320317410547026896108457510763482584987469948616855910143140899296473659737005449724375123574261973292225942207519235896758911782332226001141137881447265267009553026929326197280427302492569424347100810014107857779099099076008013360854356029153228121131348472152719778915492769948646440390683070724716154445648752212271681681733595800220318116862212028510725557883355789682955683165538719450267337469488605022285574187534830345616998810719404576867027270271257699508760730928122960030357784728631408620126457407418524426121376257950459568012139104718897086976799794932887154597941626840584068264451933780784798456431150195142637001556384064726116304054471141848289204770014505901726227931358555277281697113875800899345383267776577118348752091256909142805770753111642755936182072790939415520976142102728403404679994235002412176130055516235789818325731208923167319624293393307694614551325899748939255966510779330521703891993324541569983050609744791820751285958562711323814025103066225982268154721450452546476961205525767632830582611033672042735063423201094916225545694454349180236403623583684874598727598812924169288247767619262777538363761237855304671951666014595592194040281882677247136509200658100091937383655195553896682858457771692875568174589865585773693475819604610749366892647424395703628331787593826486134149701970293287909708894461504922947023273825890094650028070017097077610812191142939857937586678621080338079204125711814046497807239839257322705537225341773094512839917190167487621421908837031424199313982717798865977900057503321826657672735424707262913397332516179206480660636047337188558035732348967510891490957999896672639945599812451740486346863066501600892016465324291258111254792296283510433842950408855987700064706021709514411671460937909452299418992482881876509892626023911018889716621181909187087178942814160691488428689257339086904456337904433633920775564358328179363926966038393009798066844896425876862631676147569980431059608016456589194945001452345775042142782407964018901749551365532046513773564091121852115077782766321521946027894022322720028906886550964409439627887920022941612577937464744755032627643783332934038458134155152252112684262843208130257406252118943322456222256726508653140052722944783892373581106731750929661237116686264395028836031051050843214690410015697702627367869598524972951902884485290093251216370982304217483754483944669685845176137683337698677816045733721020278577620783622666792525531179203986087664546839111596283540435725378020824610096111856898317245602079486400695785925357485074886405109741336740673764074929314138769786021782780959334261538031079684430775460126457549478855596784776185565777140279514565780501178292373313360583674928498215878524439842611698979526480022241622559447098013853407014303994889236278318170409086356807362081073509837301096286893051287978168041968025922618023814387922081619246285239774967282834459810302861480295093888840965867188084067539200380764100080346729703697843150718985464941585443422886037845302405478151385813891932600755776297461651406567627313284978440826156261108593044944811306723955591465845480753499678988030300643003379534627383612012191659743471822963331980520638879969422234242248266385250905737534468617091924782323682095290337703027638262295431091312503351199313002668442453490109088847584978451607522733162473458630520072783512930224995911962691307566503280137993594470186588071708360896125401385764610910168086056227507542770010571833176597634836633924625731951787147395039232850674682931161567181895263149790026082388456768556142203137972321008945025647975156639417529438839094725574081339650993035525848488155189136343132060630830128382988229357424898475292577754666753324620260348540563136640479434030466407107782695929668252972769782058220723019656478705718951486657717474264147152815217594010234493877796992860690540558231339871988041182759971979972715061509943937870167077836387682246537993192471485196530732548069817739319762932829137918248712834729630329049098298171606114061782320767695980554768979275289780166574725884176613491126448692259224378418599995969514955596184243682600244592068797698420582207430329050378233754631427134921729306014860587955007523639976402751685111601859464760549772168219201588281186272385295182608163530658136241373337825033033315839887767701553281706287117939960821210806889520264103653368952882456123432817554029799912185068222118022741239405156567769073456442784351212838797155141703589820607017613304442991119564004012748811790273444317053789584868052702945923588413821454560724342498680356447325544719019151641784797578424611257783555671110487950439528570779601222229754806256889975774374565765077759822483817590189782788670291375419018970324731587878773139614315130425951434858909485139485594147291533196389789923819224136314890899694393959122917000512223761251982511222596321527377184070385489436899729147189047161968616958756838167409272419509449494760761732201045815843839252219689905570798050557673191040813468773681261070804009478623201755572286936937282625426524512738448946548420680078843841021344805500818859296904764591569375417709571501653642258194565542854011844052275547454383895273052288190618573748279623105457042655868274936927426559800384986837505814775173719147934153419133959670972464328019803247503631748781565974940255613399384256318544371235186719617310935099706037020038932253009174736248495379711273251460307400666488156335955789108848726336499519599993509993211892861121703713238741855482617846655393297046225804358709666317944034505227639320753835522833156256282384987128190472395643660158511706173012511017908380488578697509776962895863614117755007166898493886794919167003448717803647771606787703616746853671698856393827814411102633612270930943866166514384424037864411094676950069154749524450777794941405651852620307408472551194631246571208214597390239896832684641878505322190139177602134039327646793026368211751460598998657718580327996191315840111741414128472289908778368570721105865345858414710714918212948608276830568742390930308057448363079480565623938154599453843413681754502927903605589692657031228638337055993707283700087522391642720646062407682221129533635685025764001707034755774597821601428992555202192229116067064659345984905295191198923287639832501110627148968841888723972538845979025437613296815641410234158665956387220861015170722212336364378714763961021815463275594824307100923865942576115103711046882331281017023549790806148932416085837902838320119884525374161296301003098795489911723732129608993430089674624274265158969815995918662914562955550824349536991996119064700601395963709825848988975441860090115751751749550197995051934910398810084609096125455547964239374623941182548603752399594883595229154147736079307089444630748897414994551105665908531174000798346526822043626685104266719896075518380278091043563513091888506169618016958635596237137452395302537897573250912020657931975142682185912951024261992160162415232052423148334329220843470876610820160690350798467112413318285051036642472120706901424206221755772906111336816554990423648159164638731437168046222151035107315832598766274233315785024753167161920834907029755766945508698658225085722680147804478949768131073190741921629720460280302380595262588369621778450800831773195776441831839058218233164476987352882524578847417377962444121418873367574198877641861477527095787910405930498002306444736609264282333286172281572408463170966387629099223173778856434450780174487376971126645066179287176566167415707041442876649854308686164001759575710286685705028016014158064152015193135896844763984072734231521064529067121753044494550722191324602542078563998648091641379270701737548230333618282489699779785874765904955667974658851188785787130495646057688678645485846580012158717007360052430081484997080782886361948095379779591957813791362470482301950001539650298109481989206707413757322145442682748137738375427887985107457540574723654043205593900944159203561135313827561838341641502334599484598091244830990494093971145854411978557883140953029900244913846277059477903286476952081632928010794256949739785876031991398871182766341541422402476233927000653785639635489448812727362770469669328550513476356775949430426973261040257306287359053312730210955694262413046752147292051272884878783265476796883915688322196952556602388137860027865216016229298874052701123811666287291462211255205668675142042676695099391254350504408365913670603862143973863622587935162217422686591489226700873866151904435696457893574302356447673498993171554682020223800028292409408368615579356963251453001078677139703549333915529029524295084349016285144040925141385830053837226575845929297891970245475485254636087929265626404085685079293577858832416447084554899009188391805019361064012150910511733537038762661757690300224791533557128761772089533744915961394709546977115642701895964508549596176206158457806934690786693054836747917456851601983105394607391283581458698879011127173897460021333147416090984915549274565400403899886847941992953613866573130730108640545568572160025332481547466924285050684443721938885442652744268699809586834769936343047646723941832737913921123079548574685641972433394940419031228399314613391729085546697930888992335986337660253310358138767458313606100356569928695422975550795115393472187489289874213482585438944017530344916892773859635359195573872378902623082381654739707414911725151883103972786068610098704930537415951999230659185535330532243807627831415650194572837321172044426955097354590510824164914312327394818786300494389740278974466233777617861927275444568672151226799802292948289079738401185603985199138029878666590295648088754438821621873938035197482036444729567357157236298182845304913511647089399912881013673992747823514187706589115118526969362005350271134387836536696793888451446227782388046595669093397505460008768623322119071072852973533586442025887931232234488992053103980442824897021023388789070730028049108619440027650791619007468274647821209535192587829686841016176191164965202422852492855012046997619916815898351069214369759062124036756990727395160928726311230048202039031401459849413948537373321757687334894307753967707962988943314130327738589006020828452112326334122223979163991410585764382892914534428993736619217766684086325558776600614329985381889889101777938883674027792529798772757328875840936078469743561808564660861628124496826611631266746658934728735120941608143190315764103550261941973599947595705665964202779628931099253660192114209462942825014702592785780811654593448104176441736579786063313711911701929785062756121492877085659374193580710601723725272732928882447287574155878341906093496888425114939620996428378296309846833819358140812738981085479851452577627645605208846547304979909345869941167014919192178888670621791035938504926332938052116069156761303439952416863410025517347841764964786292622302140229083552892803203529748135078428947635226681192978645737135154532714881364179604400350778592634294526408660389519900003113872160857472007527311207716338839951089515329279048451133515090280191652741788776940592552565010488926078024708040568281890065329328853399020321301818892947453216375191089700859270576772369017721795064511391812766754862835059176080961375665165533474012975932421044716166575346662973416330282880980960401908245338770422693357796477722308909586569839746670987124330179333054454238480341328143041386656852619253170372712156979034840219361675718808684695367767601124122427599151125030710800786915891527867629373800559619902341043741546773759468437004898023358183567691452061689921586399219274743513097376938175003710886435286787871149357780736194065584936607665686448462563512655205890034266635898522833489212370327145986421346435482635723203668476889888431436455627714547707643652287949977201033223973797511873623524536969046784095635651614539682507757857459585996745719717800676063066228873892977288840587612159723961719955766409666013727879245060668686383670215530478954598657787053774720303748936061368986081678582691281389175588511275384246731329189350079421180722109755497409668202961276928249292409509470269270432976266073341714808611612179127059282946666087988051957216955969532344679338876254195836947271183696079722694903260367818056858956346148554527789194764000560422287414975192970121909308970226502462606722935530866796940475072818277661423179324084664063266584476595760433612417788829682733602420416692966420717304271871383225370023918594698881715659581060176511575652736645211161004660070530573417514948376587730946241888858070379583092843781625626248843133961101628139657669455465741921899691844301850745223093792982935785980318271183959432248002079918404072837342103311408892655472562100748152890102833982786607746783259078524273881581400578927992043507453586472007909724993361095309751830639483784878283789321356107892360612129293578775040627771241843227699881503057245092080652898334404090304602246559786832982202085147621099984244249064516892231061435144614176493852421862946013940499546147489745077347352514947601909166687087099174504656998418666266442520838742994087206673102858056763136427104745361565727793498498822405852459696857921208729300806445004019985048979206234351215388508951383663765816322539477346512454438129662071992456781538827160048539468065924014675376806410617300735640278684067544448115141576416928528975846121077506453861170095520612564008050260683941470287011907414342311460781974679619552262512220320691050011899317434810962122153984949434541490387196573760483765150508172684848363139727963289256868077239998069235971309412655005636626020035857199290682831211759015495704432175102552943728337089928640913816741338125495399854990811463982570069837430178979043124795637036945096356357724432254504918943829100979536596461671048125204461974336873148388780271049553911321030359835852672156483269952049382437035158866244875800470677267450666728344586055723259975970949790667103906572502385598762325124894034415035617142918384728417457577283648021390556626653325751877384736747351657599548807808445823778802586404482465546307036764198513517388265048326288831854571418525589133050106067480709143860256529903462740961884545243515871758865860281838031274504238044999286052500449494166813176081130068243823584297731693805941433033645365065605810111753025537395816855425191802925568528283833902886575656826223031814462342992041949343199317059969389867574827447235258465250883020389923582173905965382264252323686251971087293523940623998651599233437050568676322080885117424906565082276280681529133094117864696098033711809637705809674126000594310484110500283810811552453672754720253211497315560088122952996217531154139566310522155753842394085903794154054940331141326776158704482975292887470979164550461997310569056482427826357764784548991301317163927552911227322541470323594457826295181551369327414131006165920608990369571394262573187956103034082235932077128675200552859074600448106809794853001740622269047513840078899987219241457885538176095882652575938451265178404400858794757746129601006449383278918284555328538517675656533304711649565238659342525983548589840709291813507548193981644100109376288934819269852899325760703630619157600513549209808743574589757308642774895862102897882501549708161902584989823751577086094639751655968227431675355522001826750562236567304488919796880617315214719973496879381562815088042189973737208302553945678901616539129647793933369383967936775453098698454710876160065041987026528264334716717462049020577128630569883816261608788721882615433557934656628471813224490503730037929470396402197865645403162166244983437751091258736707385112571726687728467132475235114056587588333526019352582218707615357227530480205425177297075912018446530594414690626511174300946466094136947660452913566239993886947483304718472872989746917438249022557764696857346215713135421441574358590464294844638705536043013698255238175805600397116442373904720210364442766185416410391386620746435316951551296136834480617079904687976154556775525578564823900109348517252334206454423128214484561896290355019342771001403162430763233756940718324244991629929858088130198657707171346565370097665574144361794171483947783850525368920142860191201777246997935282811222772624278447236774252206245350719276903474336629061929999591586914490348697275955099803425667220736758354451454118661441707374719155405189474938395075575163448164378835335336115665932892443535596615336151896484763880034500799350980220423259129886631727126614977779672188666253407902706537790009141815613382946993344738005300152250588968727229409267034439092604682801928519945407635164485197698335417115703940755368917984517908002959284751920596915819404208618163001198707542748326944551176920650699011406397868607332961454045791436707005506170838247871658671691864158419712866644336921772825787358806533689959364064079459943323959745684474025942340366590228487419154101715231493044154299997537967155031314849687728951335280387035703708280802277800755573252733305221749118091164831832960146107524041377551962789489888423725684510486291311203530069801736388910497824849610601883733620696921698721292844593486898696536799549810569854878341161981351398546779087292082841187332573572015954891600892447343461986549049817785622994953491448998973957715712556783610849578454328087686865624967918094372563062287485005268517809080503595262640359859664454128315121340147146577141393440140019234793953134090751180060999633031809435144697673445696095286246462806187440972577293481350026388798754551560520832146614267098432005101919520725864522541778294731453375755546153311186385773452923451613076864598667531620291036316225453074869039778259352404402636693403301234431601701492772112764695349416577378053286403134796967639606691302183438064040857153026333259900166433620629672302423034741187148801747732794351737140203839888606160854387382556613898260984246814873614089614254436778823706424519515048438347856356528113816484219066060964308056299537500134416792756188751834153752000480452344925410803581563682298360041041780655936712660428185020411138881208566271345394733788519117471417329905191287422346836363684873099411331385398225128259301049228884405550654261171211293978364799223019552887026705543265775296519215283668449280308508297390603120355952521555603022166313617379316796512779441787516693535001019725313951853318946955083269058694788678578115908939666230082201435081085329688618607135715318537469621927116651795281054554204549074617664364427615445430974636411221366585389152405356363159858255530953366074639593849619416117842600279790552319802839019877521930823604368478413902624205263252699032385416313510430888642090230327308764743988389746746445208249152615653177051840777270293929409550027095341558734836042376946267038403282159679221488849040982281574934682944829182479498570791797526914806657447648585209906420943653104925024390075424282839144222040146300431150270649619813303898190558341663720320031746352623803266329629709567625412931423880407709099314113977725483922987717280486592798835627674084128654030853513175333392367214693165101616045794121366891639754107728480250449547209988674207090284156088253969748456216233135524764214830159199122418207559601043711038441608481462343397791729069046959761119666887889037608519170263545406752554763126992196730405171166140659071496365011776017607874170888044547146819604160969420744004263778695961199364184304804263362537435846660186710859296821888936275106498514203485110314276953774565125882136292693703264599350370536575966845363989848235931633014402855366890613707461056056778585229079396810214917928893635594220115110277620691097872405844577120358665622971570729882828411223667741762991587995357818292389411738482988060117087716550842513639972752825712113513293549289422410942429333883451727271696031851947521023481458099927759473482171833251901316880114705748447856979590742569345351327716222797151850504889232679908510563250998136658886139207179528421837533118938635171913641092390651660574485449021524986298662970360455267734674562593826295953624893231506323852141866223088631985315907389686794528423573180001624852062106723205540225005545591630125419574732495831781006288905954991594697508417681600022745227829951690982342907281576432315026951196750808873086108472421653998491635857559346060569179205348663464159648591172356029960976620227855290926133151486552124709592202296555548993914071133135081558575508248276245890696713203903546959692933931859398665601107790472035665228019167036105255270267248562973211008601381473245891813663217591308865512755493424012288152825248435937995337979688963077825510283301787537938824269785676211051755404861077517824907076189930590816510306637013151457070622418518690586257516095816095312321813554196425433434189067114169099195310427984033316355587269134561666744342375470331986853310532719200830018222754222153337091041496729799303355622746798710940784988130330477059256701456374239067412893850744441583692120678769144843654549757414116241709200227346202435810620203993747156934195662675566103666021672707509933294447332353222366099986106489429143607992560621866978049203291522166650457165680559945327356037844716182452431348071152965859281055226609749158541619951857595730724790413369706432267250023739510156496721259316153641319797330294053784365366102185810809470554478349333098916052702442578181875189422897526025392801682616129013367134926659482248358919478637098733805410369986744797291381595351181709224720476896635977410701210323492701366819386639357132107245097798941787822041748904907196713764585312209950744686599118864578765338874734091879970575099289207889384647276061976647612293892294725028854776898624727612111050199450835181796791984876692799056453495646563803607910377081645587919080034693481229489697954690801662499982671254203685588788457838383972746716078385297530853854397379313033759658050597725654065792086787860402285440080052575449367550567382138674217299773497783330583585090825712276617771334418413297685981644328003345125035600916054569246354207887548709069741853823718901740914275191637847227125634751668982518108505496476203129838731271442601700546940905808144217253226914495457685511593210182408711388530223148598604610354162123861599891220854282858459342204975245678249548580177710455930937248242658243215134126213364997171993331727482230641836921752798664571524891976681718166611749653637022980343406764697802477101441731807886082593599325650712859434170467949855783171215976988269779605230047631979506111199526701295517643569887235107543009528269548989909490925670229432040015039021111168447443871036395796556234643571476365291421749088613208960198080625517644876830372078793058549559114777513802410680565159961104754676896226383178134227677723357679365070509337130491864252524906095052237158786543636292908908366862036827190362217659362158900839869017799644378732273317266885301274042500094601479746539221681515637969032747171474693310028474018883621240731333021197060652022211953384814288888186663642071754365179413215467771779885337317751879372846703700539131403502782731989071369335270239426070479476957998524131170682313474776263722309174285368202163446047329048928369759882634845202620815590811000650785622508690756193368167777471653094603859544740363637654118211078944174802111868204813179045972453228531491628977458054925490491203684062901559119968897344021761769556199968328215731539036044844732772844927989064208387728973949804035080630718721094569479899668456430680786328951235758875934429912086084601751139452543493728970449191948309471495396042631824294206391494560484516295628002839363635157994313840303046879806182513339824919135967901134352617234712238533382947415182016070724414974320336630422269694348491339125991855903656830845740716899792181786835329470357551789067793112020526145021839505933302764531135526229642967695598627292814764195756502613425532018195504135290784889680772544172835413281686557702783687120820035488228547811702126514334603900081692554174656956211146119783292015379756812513554213609978211428481561618491013877505606105098054582911455321596375145401893628857950152339533477728208944334470306592914735473197648236055461684609538672803700447890391748736176667839075385714247167986817991325431768444603036275367065735359002115152876539231138447673530200952969105494293870982898326787332960616858841878598162576641580517347680068938760936204105324858062871046953988280080416203049970921849598760529639859584010517413839492577434379465399533605440231009340001693351014530825426560537314620777767670732384076222945516577529766062452578839812360052562200146905293508419018524262293851989856777091639156582945510076869318592835801245857962010073977118589866622750506145676959983866369630009561586499476605666402969011165586648581122835493172574606899027556656792038186467502870324989268140294967161468294422129745802816049522538009425747843185567737410396954410498796895512334246108738266292007026710516897345953139256997161410257833009129112479329707998077641031693434345845459037748373631717795242209334536436905237847383722654791013311352398221763066446977311171719952535206600459671716230403492455699085743362254373630884064317823203844660254489562409717846386437324597223882857690189536140203583973364003919765868562439987068326133151222239591434400742248652301234487345593973490615974304315664630616626874498017366222508548918170031778658261788487960891593117530746127987518110038881623540482561823497708802742048316511776615365306448992479309573283129711425784874103915984604924215363531343311681975580531200383888105633328648889321670395008419182616839073117714847171553496591776325697106901720259682767085633313891559302653298103830704864280675826238518390985463146005170561077637664477693220050472237319747478244131975631165814670033936045453406288417502133432959689944956223112477035822037437076026247072315795011011355260836168571582385798386577786031650239256432531089776042855501460624878769136108790959148366427122710345954670410843165252945771279852874727117228379755363716517457443516383673398000004693148397943744217396318635948564118108196538640477870591279618745275182786754722271895230693111474442290825815645915198077079472131300455256712573397000445094097751026732879941132453872786727232702740175901358797800470058681507013394095677312679888757541049078489519927137944178672758234586489861418457630096702681074544635199075331826794289951748882621475296969091017698271248358747182188472808427734126165260320241204797144357851443431928135589954903201437184908247588407372786710371737896539103779492478768928078960995156965094303480801937870430143775487019619512255387848016592932576435465285412883277895351479795835873320061548089884495924802690034829376398337457340605685006048283321181077370830577641617913692251163254123094498482042073556753678681406921170147142817966299912735335404121524377123625217311942434222779048351882136420101909430120697800311166645314538887542631254403844959962163211683664386502604603915221544578780565034314146686727283730098758585984748164785374585886373437764796873690744707812967214865508391033147528008288654726414349796113151777977473448094004870359317823693679933138605208551219227365344248442261066402452169205192255222549580608485610557312962324555342436591539844484704781318316864639560468817220727462251861625900372704713158231357868594765074313697378714661976528218078941015635510900619915986252387609235057299483085239442197129912235194922029735038545520502833049651899404286454393534953767255101589372160407170999661909964080571055652189815610997061276352948173258784621133609668540177320882201835064995839549147378807704493888016273466930042667042744988287971510529288005648309874801426030722639963414657476689550786163728051161793066955075617458361009560146418455946521292561096945882108398685890078006737930162580591184487798280673194972543044983454970539350700876765445912638848473294447945719527111933515201862074298546630734219255458977614811499156363326696930032069163412564016770856994442717980493476014826452746921459410207849854379429326810380676809119754137973273299604143385709601238309071211321248381017317150895109579081592126994455120849793429425225146625966998592073781511533508810815875341875500195656553068203206903859685203962564337487317309017503232764595197794357107992759225549027049321783702268361058536854329372745657696827374972211597105471150241328388232299518866935632056977965996648209233795363937245763970177347405069210832330634091081231032731909768268841605203373121742456025589865461178754777655912595426398094292383800396366586394875690132074707444167393644397969114096340204219147421338123848865830444449042686537475595174939832110921220812688494977457197709718542605417456003537787731220507867344747166583259802203926668689927106405240366763033768261637887250323649471903134812765889993017566057287355766319585447430253293009899233915309536947725294356022257895909191055911949368418652834336577882352517817533409420860760782817419715120423393827559396692835909816282868241779914356019806389251224395546884859103949092467233441228037315970156804140666771916038285800960042211021340401457803026561898252334116071753043927258666729755857300208661169044645627829370403502878478325480475995941939903349272135414925466386127382841581350139820654854629341399838644249359680350975249498378231615057678375601476676594738889043033939234244635305222581466733040589095301243105825878112118689460141187626103267724946818764343445044703050397110408865021029422958407658671888652594587456198266763324308175637583384257969392960734239496177101686796957414283740424691125532125659352448722904753234460963729724316693010395459394948396917925372307383848802858552380191321981572244818454895381526398184824156419409285851703726401418507268356688519721985309244184308042326719266085969242812061034087607269684886708988880265768457304779857591430855839803878976515150376910017782729242698811168832225486527234641102343553038911327831323604177991254457059375745779343601198655277813016425357526366619659998603665181892644350893707867953661006125559036639535573433772365618736680208402805382811241470029798606800654306284618445371149776251895130445835938327976644035160676781865259887333748697558522190068065452589774549806653987627810074344588567481236240260558446497125448533456746143648988490683269445184823209158519154234771299431031883700332358299091095710238519032615377292615426571315734982867631430668168423421196080899455017165319244362611974656111527860731983258937543472894312865222782990522248370148441436127745636115132951366699466793998090872244126359609607358742957951083709644987431067375069758473993777564676223415263068931171507057505250501367623493596761907879772450775854939524232234980564461259699755308647342516801159391369004950356174004955402510710333519042383258859131490953629160258543594131304890492446300977431184863542951217026415366146818111622423592404465165843957464881178056862917504246605769913347455949467046438453987813555594393528987411519783721392682572597170724173998810884872801783697648856185507814136794912460527768946641535098520102377696913644291213198117061603128271057582282442826534806013006608727396074112073869537119723033319043008662065742220724057988751331995163797338968288092278845779251803634908029968465742047580726572604949842806277482669186186154665197704819200625192893198738030162628270248256158300241529025298936680251319935827138596086076074219629654784067601402651673833461952187953860050999714995718000918282095817976277426043631345719858203640640519377655388513675895649564823369224132282243409978140845233914282161503500880895076512423008821008634892108721511103694276538686774201164574453224733732805206735732123902652517791074614345051200162183572145446507081083552067511034654591583671926303657811568235570991391720416625300233682588177052614680540091135040160466952976262401157744407266099873603210032753796678860225969805946058081962807406926634442188635394272103074039833545394979963661721828242860661836841784472510554695995657224364327224422193361405380142050033601762477493540280804997749928676216241713803068115338988013315611035858946228614025185353375255971041125627582043701905838706213370590283992882022290992515552714675493459993160343792052128547190476653840086839903124601932793180587788145725854480124384900518401310623210324686217468971112196151060407144236989824228895305828437623128982773409555326826151308899095845892753680203668833740283934699003076393372382463271015229757585281833909607645428446319310551068619466254789264134275184558560158213799459305307125140427064108872957026309688436659491972353180208036044961275096227796350544537594633555012967562901093420507132592030266546697565888624849734463810199168087780197653158804809713408910058005200529987321806440698496432821650565633900532425693004256938042748698768450864507409175179520972314850900638246428015234640648575408167507522217443698460817745990411210212857823585465348042668576903207483495267140819402573540302853603947192335197786126274101359547502118329148759842848010010814174453019235536515395948830104007604549971291378388547953556610989897148384336987284066099457883899269422155154619007547384086227715416825915979212129973107739768762226334030722631468449781757820699751705804150913262022437446222451210397799261713281050051525907846373443883851042164143513097307606981425508399869765089859750485712568461778553403942901525080927230698114532701637614952993472118224147406873701399093928540513772672349749111779145950098932608607051630462698354115148206484524393112406365260182451911633127735708428048127593842658537358739650358697331347366497871144435024816488925465345207412287345630515174930620962820150997137832577001529805875444806063082095524180910915672257255218970828589180352203223279421224282289600866462796504217028353823875129257007415280500331094055690935492334152525625991088864833895550603818118076704191575624149575151262621903522448319643100826488463449700713906967231697381003592839328059627975854949413474870170885363573403432644840781219028511347477528083211559188773855667635707623236348553076731136907738063458426712661100159439409289117199544412110921592029754527064084547819344410280267658820427479276941031201884740425282283789432424279248176901495401263061932872568442150254314916384101270738067252110459172020948048092416896527654478611931178883724104282714407497011809185764065811496605710466416232158924139752286519689056362905484300382264000681473094572921400162379938442839945794777241336024514322891863983580590905572557865283231436362341556019856083515376615246570355081723416271559974212416194030729141052667837683011760377127398536337870383044396633746979862910645600398049671107074900474826056083577369310332058455431691340067567241097605617743005919205016367788875264838063562648196498542025824555739045718190151067602585389021294465557745359012198091627267253771011014728326777001423889380099384353011730931667959172691959376552820855745709718543229164863345715187258284454733066125270276642183525973136044259201239934057446674252437784557539797585662901718315285375686028002201745439256707284814433945782163367133885551540285416863057204709551033084027413767759101117927853971925266852886510078594318711823472875270335777191755338415045129501084630788802033806257968924516301403336124922785165190081676725079986925420214251251841439412738536045793503285931148241540101703606730427567335788425516043684391198365087415675893236462278850905880843497138472245867482342934671189017781720144280565383155602009568057767421637247090215546057923657792982607940373743065380255715961819219488997231215736685773133043856288170594591832394745648050047658617011783278695903857256139127058329987296681401535680032157943357908468568392154966710028812829199025751192050671772886936370066799899629181917665238644342548469945171620454394782813028016164132724844430899159483345786022321304587190807851783136304358633376641065087948292096937134145418867041765144427267009140706632815008332795648885085211899009870117965951672813159474714550453575498008805164398710033890650454263487367099356835422686790847245828156800405761671630651970799307497971942700839258828882292596704237830981800995282545304425754192544040507991746244802241512074190936058633275783447234677196458098492215758512575745248547609504632337838876346658711907067042563477597858447062645064471751642679510867830045546894887629022792421809555393860424662376408498032748601941174160274187741959738174237808775516241683231824306550664672095541904664258309000881738535677475540108074918155479207941228611864732056433291642456821117653611413174488178653605515389826314665514864828088391847023113440402587202496631593953342420777012834561806409946435155949964901684001582152067403886040097856497825262276598437378854807727769145300498639510456160380894316701151599387276857482577983389562587557403163462255285886788108988289381675959700302176808961023014220404736483824047989827115064975437092921293592477171994565223360170151776119648728330321154393708421626257837327519329896426621319118736606949938032185388404832077331561138055158428138857400674765640045585152430148516829230945043964113086039052476087791243254240708731379979203092257078596702190892447118151185287948633753208644053522131306962438761910602232966327394663241422919577398850356172965985113183701442080703665448590792667783261205849408215622118101146443619908856008760450131165879513656403699326274724647397440963649211480222014776522605699789792052117088376225560993907788856165042619635057755473253642624900188018031313893303809006266429304939176076956257032292064366770161949134616665478092717287976488619662723298334309625606743057778480247314945302561232182359883791450832814420706946295132692153082258796228352762075286953177276693464255844238501224582647129130099703691208907893083770722189932012058354213887010620272561767838185448772071928677435063961843918006781638833037734615438972649625793467278467879385957357242521055995970942975040345646896622653708903507766639144592265680275066368677477566858922577402518692840446080111440055173395194695029687806171127950282816301203782742870850497838406075436782272380370146107801426018843406398962002914311448696662034346348357600670674148473615388183319771894309944854837064516961744219850054803979079661709042935755032250202022810819026966786645353080850194775277766458248133652904302941727612678836268616189928955027437024076453011495620244941827986010027040401624307442221695025385737843654716003492318267669937889170411537519213780549783621520927110071899339745041169452272411072749098038058254255781557286679852009878292355234184554948199419668043188695149701965621958695463783031816448464042604692251804879588926320975408720292406948779358503148467247000431720287168227693707803024969112734999272420325305145046586904204237932311151942329025860798590755312301016787384704466287252917651058880793184738242180903040453996067434611546059947672741814635159793386179422899350321504386799403452083866372545409600853733743352140761999944528074783648816350997733657801976230571843149886599594376906185782322072740956440555938463969116117978213903503632660058806871963121423887750141562332776027332483584189424315907349250257316634528805772133595942995858617964408997412829828143319629113456297017644211554358445653414574886955559396260991938133777111901955299295505590599870475736497217578532475930952986974079195896781039165466330778178474103483392086145523331728782593564742133363186409595925470435487022069645281616672773257810407685380411329402015807476892485507756199763098318896645873932930039779675898702821799649378606251004827331492118437026816289277676957051886343350005658577472827323393518486035412837785253474036364570022870035529497554436204886617478611337183895866219074007472889724161003675827504822403421715459129807954073403349767664828308774605956735999326769920573248535832360648078944907508827616251088955467528727032633309533942038677505987646528607944355332922217352103053829844859354146192074957335170888052353869651081081478908976310895991834540478590892739286021325165645870364377073266393277544958841699815002767007965439526105059828856077116642933494689329487560640476416495141081726013050805069795443877899343777581078353184513826506537458564261209040814897792969981355330429829387875225555842343282647459064233979729327350054003189798587381864326857111287210920572755012432009734240163641656260427850274160565605901971075764226291467371023668089637024381239661931425183569259178076795661829497097473007712483959126203643943236355048095398778931188254722664553562650738620107739302279347274116861922813054547753627499068338746340246154108342649371284331425836935672156572206742970930967890022042912817565268883721582969545132026736452044364907325960926030631792940949320023060349706224991445713331780744353577609849791219386148236010801831945421681500953723901075979678221850609984162937355634062388896890844174061085605266609113583525669043193121900823394561730974943912953152253468939604190476283221903923704140624206684978001537075162988955601037587374320877964481909497713198563371672949100019800530029184340505290823047613614145318995056056455330106300275766070966046358730362108484827577053831829143796567546840976221747429840302366483734431213738883182997539593167463675517028438897196404815447186318700243755233004183818665601275189589399147651270858918343510601134224400256460195887374682431598636495781123307566061436374996925939481907717866767212046140345085523475309566679235507106520296658779647244821480027953697922000010601550567956695507735300329984311181554351587075915292205067907644663935507428168137505442208488075379527116847916311424041616658455607445810531289868123370297890074694385921808392986309919662122719964235190045175258447609246149596757524177473460808703276381106170572230546226300754882940106025644919081664977939812349313132765213580599086223340172300693116272274750956676408739646557619451580535253920223912581664783612616470072885921525369758708887746882166317983491499695485361507682048218641167555452546547653287598654676610605442415327808443580225198124104860779724776065975467706893100178697871776280424889258865118500269316509162608872432359812098322544929747521307791389020835614953723233957783475311579352723112921826112457808591305373599201081527880585584929396426046969781747303162620647729913104725244601176798113927699268120345124230055353699944898466590453041173982360031603399365854413136308449895267290349644057508774229973048569786743130113181700722233056369093862729525385022865550192032457455539455729857734485477171963721201748706142164744413404875524038251879358940049837700635254890867513070696461909737983890157381953369899037154456623434007716706411280687506755769943623792902918907856603001244007819903030227159770081665607337980893012526237794649699533743594067425841983420756820972815257057805639326070571586863079041810845373121559409536449702782921191045741770413609014088011202938940125007765873177594766755971925703181763968049362505973327501964254459406751875844731400962477779740905563381854087676793254623059507160118963004937775950178356810392789169665338186428587468061709935434132981797407083374107928204077650993405202838401716353140961118607329234088652045071999178488689593878714258673626933800862814445490056973063971420559523842312085538315981476022194794821494213241696735462679455472282302151196905257992132599234552995765660759685754021806073761987776593764069599251555675002108961812990312681437246679655644255582036009815890980520399464529003949252916328878002371172609064235115663829251553826935918006340679527292368120006676076588868629935540227997488655504281154877505575117400102504834481076904164614947139010391177844840755396316192311252086386511777624826984669394817860763294582996152252546935339024464123655349997252309461806293826913256389852739665620025986932554321812966592115977505181999727994113173527538047527122401251983471338647640454001752686136847881607178194781509530499183501787319396154155129792149891603565099782031651571308177726482144981957907216403533725668470583829601304555284694644184968302474902761049533061660463433639878102946146390738923700101410718833316625056104172709965207881876483120647137423414853058655022741492232275317737102819033614339290232449589868608912216807692458306881447324328842140831411415138592007949729234514574758996785517666362890781022877908841824888314621075654386755852816716631762576626537150956427104990144491897727951672306445954883672530725748907910596213885880445734011558024998739604555956969386799897042173069421558754460366028256244433546837746645306741467957391927747825765616713144770266729893272659119132935408966516690207877694649741146882502768967972044552906236271449085601679926795849204445526858752660146347136807609152611511280962410893950672538655802622459397128435787508736595272030808226237282311872346432105313737363959349781943340864658298216845249316005666064365167423830303354226300753622194319389291370951130893323779099026261888322416701215550008621177215105229288341358359558446305435000418691932294848425753579854098996960348533091101976856714160682657552141225094223275435725269685069113247887282984275371064585536062092132625649938744396752118990491556917603304666472111875573790468097650378054584676944703848569931866896054342712327693783179441435856827458745247085227786028214093785642203451168915496563873059999574469872610533815277107058762816983044596865321980011844384791373610504508354996362295568332793053592077485224246769231274231285855621679208847734745903733507684761705971175152588674128200830120721224165089623571186921612422182541095072034422486506787956817634713224154813696470206649181964450097408020050011596245797208380297250822742178481895440763322727981630252067916851116357745063164851187271428666903220508502661610162216777683339244758353669201686440929410050614268916837801047483122379311847008996246027947868099727100728115168303123669927394239576585717206298294484395130041734751878652758529833348169558652863343454542692350199984570987017128008811731610723398113019278465719536856376431733109416271470068823995363295607263981873367772381318577980766780995928441992319189392803760674508100341430738561625416822919150504220464714056936539637649674771002248075070287883427874612126861098011919010196417999336553844659653392894294914110357459107673749861937256411645970403369681926725129998867300805743867934532548521558893627195209121473311979891071262034104875849821054433292405678328956307098074046136964026603884896717930447894301714736440723508403123094299455971162917288873770003186721091366145434813903513365719047224951019636735229579446885072110764393739236137324034538279832248663759980370324841361033282595667128694075541045369249390242182940161855007425336139087253082699702068451810068625356491582803810423716825597987692946123035877070163466563657776692793516315258115735577701642594474537547043490921195409499409935986807283957802664933215186774108551017654818455895505665501218573157243018768229919907327717691717803313277847368431594349801918595013771235646993915582069428114053677049039273968821631503700541474741059869624545715021039921596298291981573878820768915013732200154186215684189053651041893554971658356287663124511007529400068862045286127838441630483700395092922274274620639037149295224474420493054632423554536723353739675169204914856006938587040390679172305974198881805064582817532368146901752201090667136966641795077549542665099937573844620505161568065878997591279600037230776116641066877432349311806066593424474315312858770213483281455782707882701484444309693667239418990587471967422026356208370972590490959360532563825623256003437321377220039755484444856128975801716624491105987643672915997757042637321384760405749155067177534331529995314355451384099522168996202445173101943295049834926402419293151240058229612700229921912604151552334135393513314697044215589966297433405619562094368712465213234949297694823364376316504942708241297462118022838158675745593422591976715130537199601889534400971514569068385298933045154795672244493807265930513844598836637962931051007658890908810416588867258114464149365048884943886149028286228428415403435553855530327425841648454316076222611109423936874697379719683841897527569946432808879546944363924696821864886286752446650927614001060922141659480523397577184996829339596968817405377300715027740291301930330704082164178212849195003940172180120991075762261100478304322145586705494921247483345446836083326254937417811269908034604553429150722644638798347441646352151601120789591049151187768512906273262438085862936826706605820998834816800901349439431394744931937667126149247564739553714335651453554433019070772318073347969193033839591574852421883902643816913977340493341901648331226058386217178855837551810943455417523096428407541541810827070062881348290849474295605637850562606761774311328370217691403141570660040620553093379910758540917778013719543974777703076315241697071366467632178780582743280622786358642880679245145414518918892304311164724272622669309728685873002405491069324263495764353110204555658782808070450246841619933347393260367179492770919882192960412971277732893271965766666186360362824465966362036873952279036718058343058033558015198425220929515373519001762995862097223165156495354136533335539751559725308656352282188546204854976273912081039708442225888297510832424708159435342318960946983375672469589076427944780534325504708348400954540341530790840952855381108304566579517842784456787887190205975520828889612080012660531910065663485565023612255136235289719720780155550883598457523173432097144719314829487307308135245728807725945423313891448412157564998851276139140828019246099419627117114990857726199176772438400940151279603973384595930072725614486930796775166513449219202516340181724673643395318368362010118709554612134071074448570916219618025341412104688455194752236059464569947537443896817109653025040699281032843170032514672074261161718677544888562057182708528897163391464907874723778606190356430367731735526868142795635842044603143478631502860354569197441768878694780148411192452287842575096732954604244934219243832728801110155004601810287843069224535975140290997275128698175953056112271731618604804630896219661540618876766390107977253434225974316902388869642377639857207320893410798992089027708434086269037546806561532428964598762837210611966383704587479012118381835148304552174994812476432711679713211414948119939336049935809418241367478435115339646894837351089870907802413470872618853258202001671439415440418555811117652921119399419431931737184859011868522204203856659320524066086002389839956250462068625325688364851353954791450275541268729866192699300856167217588092426242429031941290618596407256155956037167085616965611608268681215130146496082473235893574794375004717933503611320442822375185676236479538539765561823304108865166279553456322113128925892651175085921954135197264313211847606755426878540020512710909751573458342096418839679111665510238811748408208129784733736957734875033550897464265134481355937884626433687260848506091222002086365600235716428659210758618589390547223233121438242462184518671997990347123562756852217905479124173759736805456888776542126043065919055630399611822341123563641458945803842575015681964509286638508593822209522886888161074897563479107486887078753179350931405464467618512340682940107655734157571187020972259303477948082336313157132163280826337156457686735318049789884282691510777514177029387867755420978230061519683057468181046766636052346333184957296176287748608089332248952649307703329858868479764319369672653899136292595584857843187567569077682486813304296788254132349569316523019438072085605318881031659444735084829376712183740793585168530702698472326693453220251184699963871198496495661052379124334633908211527261865540607738791903634094605212153979836940454618100613191494998260409425219154814532459972451281326490321615323363072112936110505881279721764772925287005888189836900995787649582570898647185134736164832696487651507772138894931293378238354173642153224304276134238120744057084950804073721156124715238182265753658295602647626871320036999487001251397201846123106205148512802666644307095671553368798228540848902758757993195453619054153814445900287758562472173505764740047424187728350609022821307849462889091869776216342756200489783723861314090131326790726229844094030106848934999054280160127295234139875061482146990109707772157783098718902741656056849281473614766605317821996672652770510222127534263902310466356663949389310605262138052506655059149953629291036996081402650416028349338177969894631510915339611756905676810660201804473399278326394066716171571243756478448273625354150585630889051210901508291460575156008581220200327282510878638797872218468647398139262619376407559345607986817589439387072844209939606227040665152383840443567699426583899107438883868896259015109599672677307141359687855489022915954346512539253621657036912958336690046175735848649440855478615405778783023026995438267278772464178128201403587855310821887396898649878133710782949130261189498201530135156566283268617985833358666427877629107629163454682594308927141539107245890820087244505023092949168613538858875589381777397860040095830444490551694780709356015641643552840532518250668817765888970246826493032805215932179597633237121058753662392152820325854300062615062772003521988154846211288746279420700892131815642047708200690386751346854176009443784281449113677131261260853235673306052352431503497460955417623397610268764768111650424570463276254465316221702454177889065708524491941460369382684436292915900436679947240012160615137481554681831698175396180722961820563542642245953145226869151950824223891781238686272437604233587963799394307951128922381620419009639912294628016062673378163893667299470208545325714270402673433507977454418290898232317700829775179987929382459666925267764102534653766251381513478584545710010894328310789608667920827985321548636563445977640612942234821499794384472144221428511208526323228901877148957579547427268014604315298425974317589551658694934953039244881305324149721545176336910267622912650472580819970869811823125808965668096461077995195026289055964551528715211417215020887619969873817558059356085995332939030347601060462290343051359791284619315929875767750408846235944755908405469210473088633172835832579165605420561009967208802370230514723891604790902235618707288060447451818434612743616389121186735421255803706142551799528913340908968880885196349752650656406760054647178919886265329927994847144975138567458815520486219329916052670597884985810148185427911568391537784100188801605668556867497880116937808415445725016609741922851389681420673361818698568967712679393147476558979228293585566754256223734074026077056056992045873410776816437181664746484930413233105508656019323339210951497201090626768074948424622944089108739556490000850187221970433474393239792500934237724568362979479037828591347372154667346555035315361725636910104565099783843365384455857709016326169718793084903771729746196799835809975639710145259211738345870073570699790444645250511159572323621089365327499619658750043438724243673789279005292313121460455048705722026884403755670935034978875086657903273823540749836364901420503716169910837329928881684836213881745063751117519621404792874755891609260269547341715920593265235283596225998916920199799797170155630644975890917152163515217504677204799540449870288095720391947599829029531680472941873749368218915960536149448633220179207578340852113489970419800976556803968157623100563085613506573379885173147043011739581223822944084056645879557762494806155878970132555966463162204497105608659814676074982338999106730792914849080711379682162127148038508453599119848688608166574342138030807513181675448418158604476808843764231852022885076298063204377160120225634105203490947362668377770148555307159039426971817208447118323206864451466440841499110356201063863945899566093313176345588766952636584753268014031887462713239110785104996927766562658460322372098671942408710782975643678395958489018436190845377746437650126138125518066979898961927709000159615827230796592416396388423541135640361805021406744475355467335925887587633745316641716334396513530545509928587307319313476731214413982071051815758270009888509860593744210407477428990954983459811962513619550948878073267645015892687626150308660801135340150706018289004653641445430159608305068438756737395643736385409708509417568481685494878417886350273730025719860630094237559502673194044132701362637917317069431171038800182807635998012709396930218426346257755701441780198085027202473797070503233147861984368068076543800281110492656028515797235510692038376939401070125107377154731826124871006379181392388938470305130065762827119027773892204961736750449373026326922711032576639493277129319940093673729543305102588397752913394648754212444475381230359693536929094480646573822701387921895152947920761663955528762829228584794243113856601997479356647232351721314872176156952119280993859310063360027264759871143097394019125409359324889825538580364416297829754879664542203228710048252928505908193639451583460894527824640070158225714154289065079460088112059718511906924323852193368521986443280001012407259605280975103292630278204808265679105694922983214689530452705135765592342040696352361511779292051470449233904504866978987766920691256349771468547524680600384182582150206439060797006576813139479576793989637814374676151767805857324752424921182023934853354060617895843420017842598842648847226327554684834593504571747155561139482115380832060126511204258219057313972430247966899378349384155172106867437658265418835921465069845370493195165738403212751154101592861992288915942509317234998715805578354850812426220911809659545945396538346723639799833973489066632280922977744958298898655221814691791782822327799929631273238676002184363663611680124616637825215281684682419913966036661160480915565985541114759981848572012610148249778267225390301208123488693212482582645922108011199724949088934930083810925991222375218027191736893237518411527718199898783283061613692607810651140832305649907533840641595814681804716266018052579732314040783851487704149911704195227606825485666751965861212114859376526560509212189326864452994951461655535146706560206759262319889991863837368049629964181531421532517722265744907543728077313495276177479673282640708901614634922888387762653721070024270221955114386407216794677380687616623618517973325403889598397765891310679738235418372445603008110384295704572951895583385851014099573653496196886187772192469688798852413632536989921528873748957129401877208862735883029324877024443787429537076109821044981527504239604546400243823212003681433691200462986741049858105890525004094053994372380322836066389029202341950561402320901351232727056584891042079695236401176007846982679700102331740625405789560890713389913143341848213892903525426706669810654276677954365362349681383344188413214758653422972145674658743510461624108412813862216048824862738709669050137083845228244403037188759247594370098005027516507765758442664914892723363407911002683054913990448625614711601040976225384813921575821351006989368512049408644892283148907302265838069154067208682429196378495674880017655718503413656757690878648188188688567606904799791788683516189138454908566345549126601181869576514619130207920991960886296222828531911202313775978245086822613388592703133596318460700945560252994612819666715565336332721101175987164490616640164427043934080677239481455145073098102087547541173655327627935139818213144512081564838299461730417915145629154649166544262271951211352934353780284913734171113693614524018456453548450801963888225009002252254841234252560150407452685567554667599952087855553689934759641037383066042164552829952631785515638868348862584391468326701352158652828955944787832062460337736952867996325722101316883273535127746233053426704701742828939116937170232267585867301717918179724959377696945882244516019615069544260463700228241498070346065181753286521505697560131194793527602851273426368474123157657044027526590355670870931753210274920514864058922873840504689725052493008662386178411297091554621476125557774334995709721497711627222183771050699165783299318453318630280096079910058774420515240577340687427064087834704655819483098632895478400278107942339566550908507674329685956881558525523538328697526096533258367185175314840036427521543154641722646412030371025150813734392686911481197926497958848315297750304219588523741021867602273176899560578557540348600901385867758770284992538965748544050899335714318192372681355972181886097534566829792769958875564087509466557128001241904971047336735308340591474611620663019437181510189628931862657713766267975574596729681056094954106503514071840658697692557661760644374524574156396394051381158698452615024858504717543853848459208863561256380534048074865873583690545369518947869394681850440947579571474505056642114355092773794779215586155505882762187830182678089947493221646562353474416869251407469162967232669075204311466694391517519806211911240561205267304438086021803371382752775784144270456982538884458478578463864627437865328205001772008733787468510029339887313969532811443173171371597231296861360228853295527857228734160346100945283884905942348102708051856878453676971174730449992789061254992712501751893103112586969901945972770078191959457263153208162945855199310272160155894534260738143776585212532635986720561847493036172766744665946836590757635173271531249585995889383303079619514460540134329964304997815038728536974125183687495815611874381809370048143614420566129232605604541794821055154112694932361491209883283564891921084976148564400859207092213064119401751171062771962517794080155363802929121736034972567114271280823251393625201684223059758259145658030743981872834623837589727195631139363791907442478641966238806007834863408985854411094479818374300637713704199393478807064710357272712386887388707034255040936147775973754280528197421850038296010716254251655679560348614876826158293288725805459144859205489084155540064354913503866885107736730463170768053881933607898693022929244622484046172895549197228332234964106107494810180231815356573444901203405063458646327426760474330099680035823061086753819972350787477379413143422993545987605908606062579315442625464892995526898775108630863462082041580048953300244539741227584944166970839153976803728335346811757568464903465204791132437506254233502765904059205252881862968544027866834818083352853303080156170323746550393782828479705091484578586413886307815828465434998493409074330115724628350037548324755362973577254094730319137819533321644397712459996461569575469608492183254051085481986910748273236965381520417495937356720779769790108165323655426397545605626510230063399349683468183833118113044511381601324868981445229817473295583766470147356648565866354353338000940260762764018754723056331731878637793623548178857984794089586159829429308169200562327430038189918155562251010630116974591439516115235476158028601530853278992917093140996756169326608244434693209090140520048897974154193824355544952772307169407599504194695071815478271941995257044729414564428590420150043863088577846231705388612945746302685517143601047745448875566701742742595708978832488615548781641680201055449515080484015208877848583447324152482187715428130174267075466199035923417330126614744802714358308432297294737623327675127092351557589428111961267948838275965316810105498683725852324056603389600873850910623974765247155303186182174007220069121500334713683602210831378183001187168469572727534681101785752216994304155708235831372777553468211485254979585710446099930855721298925148700121298260824151366192147231061878412606758325086663723572669336447607549269190260192869655338422278339265757623363890526067191476448683095325017495131571276691033579542719357216182222800165920547524700460168014471895073183061944299630003724376247227085376555129893128318603360453616693467987368212194689582986881697544189615936075626217970956326980931091261566114094975987588447189214349782361846318665302736560940143438731320968303907599357954413081463328996007832471275951550049651227557597812367475704118839997979970948818328360096836367025414067693037627984421708704682169218834489801199336387368081647257311614800088960396044191837807155136398937749920730689381461685036984707353173294561716580969132309093198366618077663385800015579227848272379483827692771501478886717274188716027607758480776604310550262627170990177874692792523584945489450942150955295716293674175499973437136975334460752894784525914305464680413901048143916128397311128179780514870441208283392671158291028867237114535052226812782160137779218686722509274038650499722147553327431879946998543952119665416006862549567662733317616043849140814636824506763754558384862697952578757198630797379915065131975289437747204656385698542422595862890972355521719383593911654773556740547854299145648216786096095678333876970728548828126146183214237111431542444724707334470130316778885870105155735763238991059731400448752377495800263617780666440586840190649228034203537578528658367556087984169042498440673321275680860162107243916413952635306188408575614604467009586780063509150982282202593365933037995876064666081404777861803698347716139300619556051073263369680885910145465371656145425848899002305157245147786879338278283041797773749381814960629471864119940909928599497302251375696889691112711353066366627790012762350222181433962507094287487534275957350314497742092855544915335073286369518125178671531482155332177019222756443586936319345256168600315649837176486795475641856618568874872559604973978489625461636186107136231091012227764817751174513374939635460323746606738971020086548764293131822462860376379301536363760298531283025950876248895140793344584538695039616662295178290988553988038151380509278483589879819643686962890185771086154185116074079012340891107016823767570266974720352712514253506214833874169449082068832982321103261728337782684450251531513980628930200938593156532138262436886701347175945097100913225195116257833237502602923105899278318761535344366477190644315158746393578301698930436105271917340594081516006139980691217702358823441159565447181652784013279617893326315779536994846577339755512145525431639385365000056271281186651956346278237331872796037362124053049784442793012561087628693371239616230612214103580201267535747556647036642780808039000721532521188123771618333643547641387680639033711905964896839253081867416830772084160996541884421045322238496302333160767360907276822855216958746929832587487592173788638945394516405982437756983991344883181512521345659750081389927254129070707533767485312028058530215664621469766820802570261356943990916074624931877951435493824490750678257189282432262216171993598556602225116629500605129469643007764546384222847904495939155434505862598567011521357897832754665071073431935605247973483099401293011251358460751724223509292083363739653446363679232821888600648936790580220562601328140287553113356377737092484296869313622522697160947979981450200427204133415991357992658974951853284014587703668066862929177438167670220290642254426347715683800482173823930046832784453377785606858451899397096094388227825259826106713523414540886513387473650252455243201378148207445513116373559789834742787524927808128952640483195007068739220688343554006365900764252873770894428196779747065477876885239539019652912651652673510811252282238084286422150856184240700196566309346756834527335449700573682131972506092354574224380470878910648957209236514975940860601275619800645865031348008882405123332435081973855751405369118014668427390846131470740623546136867034666949950508433997130024746889954738122723354242203046150520991807170800216419340413183363545765546759173385728429120614848421330492992979235473498336489533451233989160775014940443456519365592753052151019542728104821390928577408732113084395474327735497375888037646420717911034879101134701186961511697605186134055630183781406448189959500933984799090448674929185510832561841563252673676689248089881071650321709195401187249635088294592359422183367260417038405914817104475706567160747139459721612469108669400877416044506529109077861574274265857948195666623494463708511618153763734872914241057475398749052175826307341017400433838862039230923956429566283395896783842609881153917914114305509684499577142686426767650461141464939157111104623396505755606043157375175117685465102807090416338255362500580528121240532734830037468295826667314056820241956784776313288587277286089462975040945121354570469880165285949156139680918342374146113129712857261032679208611848714726394146932492563972268976034842521628737160338309467267000329480140615383568089461515848816268242256559810888151264117257753130991996406610121644109320514925141495357832310066181604444569474827167916965138517909515860588597785207695454318827338690301768665325873248529367142359807537516204482426270615995842619636838073824420541605924335440180999432022758741309659532492572732351154749634754075536788728676975363284730378116663230783236744038913349616904411949023832361449187913049780693189820227575563328254173355541291809820560479472672714099967420481176235701861509570776477744021038515190445578643488599559812573093997566290846799050330715594244238074740028794732241139805631394652467508669308736084513986175514503209822451723051111337660291222021681768365343576441956010960524634895647588626924566386013013601294668617777034767536980611240612432199600022596019849305903320742816926315615175062723195888294530271490444915310749577340174630599826185395679842262221467025917517594325659347377451313906867818767972724732268932365134080835251465638630513901821600230836092782376719126410200759475606864620289585503699508195471234722554704299109292723449059627214831894240637243947203692474971797355937922086003050424912751075520478418530452897169817683657610554495764895303031658122981165140974120224562464340185572496731201301331274545074061868944165942427170081695064347002820075799208640102429722938839656859687404588377977848581951393900057166875468128042730305354173079773207538291489677439410617339712446089018460982582800655962820677753511168981764172192044109834650363534348546655943588074110302657104158234063795350454612160574791826926865619393074302206486202219753075791365175830170069928647790800114359355014653562530307530733484456465506170533582610173010407868490454785434769711024754322194164014012779496542855734480793592126863108577628564837577129588897287118599708676834544705338940687005392163708838347555158267468497163919794446275262337365304934039427261820650027912693171031712522608383719731416578611964117376640009733414083118021805243005876632403525020400993872759659667027636608994700843668858902618329728473011958032110280306249907498901394953340088345857139386895971092831696385407153223853063513902363817915240447430352033170999300525544448588418177925973512325821819946186528981848388509279676851028166232778345702605184277506192432455005620280000036958123095641311945686051827040901926230096969478929601199587434821941200022427813180702598066415060809585146058312694181383227207392892469519245422393861556557480589301510072855837415023091735236754964886199774592594771825326596686510768253229365234454766286574840933966416875510098099497776613445507509787885240174451661910541245316820305667087249595709670080750658582248788682934698929041867009963458015780748453189556022001161631016123137647271605376268449388160536175532811048341465871163208643474262895521736375551377282839449750701230523756844712962351817150515732281134151865564971885744623394733125743341846790404771304124343934980210754719767764547578476649353582082828550336487323525896476203857662186979552907350461720022720577513167783406050679005839042197803038824386230076171296340599301419236968894274260018992649257248330946880334294248044233501873093012229193385437053717972107251510830096014363797474723190571054650519656633713933541487619419028110887498751213960439211218402526241893865519511539488465311610790031902849091890112514583092445431079731178162547853331881703670567336461144656289528036613468587655828768476666014662051805925919726411757627457045659480262861635220491994677718058320819169466792785752902707083411996072598802854623363488879518958658815744785818174201061226852676669852028609051689068251244295018072011775585774899936404459098282327278473216682689271847075060518689773754182213546517442266099225984780907736003557501075776408967406453819611202015042538911417802021526191459619692067318640477768820410411846425852969586190704406553674757396905699358190784725386724137273778574630709746587828271865614237979889974261925328055518955578229330162816041653471729049930119571951070861179497173098501530982616427386511079886263391921531032230323165862579175009691406485906079637174713160380308015109830881016570603832747248231924333121852984056111630942636068858763637928188597099052648544992204518402800893755745210549961625771938107025282094921477834229377200138668955191394647948914719848959668414615959577334240967838218796216483060895536156663397189248300720805294406915394315261733421959320971358750404773372561042065782933288868775265556324402250114747390404411611786908033568441333470925384966880664178071877453359531663243078108468722050777891998899552708468365070676757593382441411106694142218740844432136941439012431953581441658164541589477668488922432060066724619244586216418110396895593400411427857853740837828134152321462763912046163638002906672475080354083635196576607429507957769530050238073044976221924407746210167895982977027522766633446781657628109343463799833086116528075616737385255739978074041291580948873351888938920140644247391308498673595951518527462712017165127880490754411201777516106202017949803637507422546966898906606310334881007869639429812512931713004345135904707982849521815049097813750313903281072682546095121717105613530015714634881938955639860604678326289041102649761555687253313633277096527323088506568086169833527244059301213056804873508943404007748828961860735889199272431384675790387959062102340808524593792651323858595709938342764055558585051508532956498459607968639827709783518987769994732928793229039170825053727803936051838617373944485328634742054435373752866135408904508404508744338539880956358282071482795783817893497956639810732219374150162652186101081838891183377011068944914938872419873041433320068947940814990646721875425275026536872855915429660022324724379445309732688326881821842674324797952204275892785425458768301416670889007247098320722165481148618381537281382767985086855617951847818125426491134731669010270066276395950515860316107882181018310761381918481874299018131110233043066002930644568078313877614673755167862323650928721829868598684403469387129667807449997888703770721593380189265696233183970036214180397113086604837985280850793463534799667988478646892150811527652242614169956944778020249979899894330915641537047204459008114943254374511487431798994318025477445136446649185930424778562124185133901771912362775046633353064226510714279385005689161254782009101998822839364615971039586149497960934817220924265565260568685225925879041900364704991340389647600356195615337780765384911507155466294436771515370599710521067603514730925923483463369382202226471125363451393714409936701688460116586981179517049474211866741137348612643239791460940745703731463895998282100963294570896215746013194024664754221502577373746359568527500149885973990383207919266801222248357667899609127254796892506363484876445351287684208426808456309126579016095440847028582176239820219034168679501905750354537743993540211469199392119441332538060424499314974907864274509776989837307531846742407539430812663142418183115985762438290180799271273133563100818905843964428098481923071963819231918264104512877530911293812364144838754011911872561956922346896231564017154985504789892629761904805066816262339204916671619460038525492178034813861831795107594264177567107671092073163176681933952856448504226961284839669110261808371053729449299486419274411521138157646473145574187112340853919256792247906064419948968636653737546700029795284213541180071652796114721666720080030576882790070061133555213202656293719580619898385255694173951733003787727243461442592338472084466558324576071013629484337013459714717833988727175573945224049914419582919763969388267682676510669204379872670153973706861567042738356539456991646151012290379108109538881343178454810890626386038121129582504986997410841349334757243572175878469193336139376950891401112127257641579056468151744715666836280284568829089964387991474544109395713133445051723767700016902170706284865263268697860681798262065348642779355005938496558220880068185122435875544962902323514766352119461898313214480591333068255092075390940863048874464068758187515343098169358448029845540750766581901822081042575551171659867283743424759012158791149212861941873694829921889187079687138099049413665222548055596451480111926456972041593502101851965701653650877488264342175561869714261296502975088885774823376635676459513149220056257084860262260105749434056389590698525039620095457503560785295715705036662160371627700214666631620454844494220997529553420112814625231956353349771440790020086282291700925380645319739353413126901459688457666352717825593072055065112111036293405383949385915489976838104839406116101343790010653396654489253579282092145851224343315789325852109189064245544151610506023345935580737924340574745152887774462460661987400660868495550530177631349594292430346705398903595149704413120820455226070197795904064933365183606983844107887397771382657437972845486224044355284268920473855167505085375478401624124376042532272226542105401912638537129793638752916213857258404384773959624040091242092003089803573668293864526027024881249569135343028639921632451410487640874880716154704280006081680736426528764217295005354430445962255141546282522150567924503360004051963200068145748314531868478686332709413122184174463682797073224211875531709435953707430559989127734260095467227330959671341603205988039599557089677616373033152295247430410207186490452667016316334298932754527009189022621821566620634841410825121584092993872245977714012533612590261144022786098884343016621937961952492235808979527375902030584312441183737237160960925972655962927201501421542381430132076894595640586359095792506675753478176450306026341858415809019236509929851266599927542686740613149438159399529992707757014485360923846258903305266908620494678473186035576811167755828658167176496625699909671756468902392213834735078658681945704621055995427727986406090698454726728641916992273882865049052724092655016765014637410654934619907857374129552174244091537896570772432790436194486552977234007755437941666236539445900741195550000046956173117456072676458548069544839803515487284640345664805931341003914574267752135625438204271260732203517254180117448813301906302595476653826982096602252886472205191813719360098115800233702599099983612993857590042332441323624538041723547474727236081670009898751079740458871664894697231512987665757305208627975817063025388849058083209476345353196151447430412316828196667094938900425164965377302351115686946051626986946829645875008728720970606923125064785047362700002078369130758476932043995165655879845304506698531691395740870517536430396585638463223755969894247284818535031388486137676336438622275067483374102146386347306000953579579741814652429853003200862366264014068780894190810720726098635778875008327720080403915877060138557887234835260356649917402288638944277224586889757447395333761583122843960031849682712846024807231431170298403083552787733286608261498046974202590188045731867282685398296798560085987933166912042132132361015823534568953581789868238049519469813808277890028458551802705527685944819276588529761459690203664498142441404603775210662789024209508199836934343715056062303356046143343332071236546772483955491007886941143211644979936773978617139155866571839925266892013018945339402769241410449174790851211254190759986718284875155587080536850710475713486201854747871895768675622399890200772261996552573030219127640964779569542058261328602552678814020938557752295347402526907078500961047090169263929259648269638875427773853118768574479840756149275872020650593588434595881706881086943843686024337797160500996226710435994027293837138567583265541682969291193618324856797243436751689679536689169662354448844992354627471772685663057418473354569383354244397878400331320682005977254146728460057641730442539851542955207087875730504790658729717573016938730099571158643983071811815005931566463165739709790435630575649134630349573596680724950811155609869592964406207219133752969729942504062362708267566903431035285495809987539833916903264823633840927710726259495085090805253782795504966570913514801766247004848559197614897389350588710635478782106675688288405055727454601483063963785908206261183861782794017236091724949159631909255424956361981728486316185039061457086451095436157477403330702684646812085362767357401400761216636278642441433959021754853676613996470869067513981958631304969246041776204284963855407332504637288788623491172609004362420266506390803709154459706140360160585021662591377360640593284765505345157765399629587362053919825836338124943882870255918509951653137524568897278082155001816418093281379764822898473303059493167738176870792531112185535529267771007187080066342729704101591941316931093742810776365483851818560814329043882538493501600289468872364043029976268852824080178550228976455892116921856220015554325811184984729157206406993543885433131897247208822342111079624133926386244894061635804915399738596024464525734937553323858908003981759577119230179206402835989593875168518702786475625956748644258661671619649707848841423655154203043505922638583480214785073093334258748312043226581903382778257029898400981110338805166559883811365235051391613350397153211351661376213380471737914783733829988755088543114130709724106546098120354439706703209240292290781055454416640306451041154837273332250359555080732152093039372057367543170977775038690368501319607948635829170052201233327528274368270565672921399913947530817270795400357326868811118882825004936323268492933184857647537617493110246680758054608375333245889736330137916154672915765280877584659360092066969469706081660259403105517725681752410664690537224346337574363849891665350781833039044104125040096653839037347134789945249528937597037515688629566333956797838821020698275979057886543895624274927294774041317385641530186549722261572417618399809759767691067222918159869349630829640902081564068378951806576087734874336279087570886499179225245309879295345736819295699277309134666875418039862354840417257840714546545908595397049344596331900504351671424947798564551736444762198060963198562306848390509512091418438636083775292299516702438606109558967744507362353631889161131789546225041671998041402566044122132777630237683035779863355481288804665053701343669726846955491143998651198707789934745457592513585139697911093099229681177440924336312396359407563234047652354272611326393146894675930205407273045969135488284398695341381864212667470314476464646040829139630674991507209443624627434525556339256667769228653959597560953013332256964752679447538450042009799044430998361087254397698048008348633131471673123305857966540261553822207478874565128204562523200091201676471368871938029831342514355265065842521130510119078156751603891404540792308286263326657115951984156222014433566088967563298499400105805730762969265986873965051805953846823094017673434869492750795029033216703949791118747467221053702047196760317374799352798181971056426185790995832629431056735287206419898276399232613659361082937983648037591533041093933031768511748408324467201446399238214841583256217890983977110417628909656035995294868274096724363074686575182402021070578184856630716187887322062396087164347205468585722362202304435595701199366315279582908069120222388090198729523329334634007604873714734301137613064963997976075998044869839318130161219837031663166148008795307654726153730880742796253996614137982714018694226664608090920193818811735597487854929678930407398852531561562471116195118065615969453150785938177315922916262148660624069503918394722621274655079174743244465144423690982529869138520996340883978363669252724947779115504833861927320239279795234715525664272165288819818468728291207224385562343039920094389939651030923742614540792902907391927575527187834383467281005396394559193021660487229681688812179771050809335411622556343929389058490755863781850031867938878952595779038128167584053124817361425870450803089012419548473590164108691137959102139859084302385664835420588421346819234215553146939609904507008960268640181343680419931657482613120821933247090741634548671701510640203555328454530845243195321563810754449124910030606800395036113545510366084645713637817528625877016914726791551503596894387310807834353083241885748033809509021518835584910024524839069203395658625532088687022227557633953333337161701913957036777579633653175155797371722829563516191451778796272472040747778162430230628599456811667328187008194171634739106376610339681238329349252860590043560896911971857080032538800800506838407334094673288012878941159409510585012334924731557294039844737508266333216522125829554346722945756393927098265196367393915425867027144944418563530590621068810720520735218143816145927252826964289464632106156239780900955262875082013219099254389601395980142530545014510857269172155664375199897401463658639090848838726616936047217512538646044919456584368408874969826383085465297172001180958415924110746004960929918641005471262716127783213744670388090998673240082111966570197453056300425253180814803570739771571510474728596821085647484054615751458119511444468628940704968104439752459427859093470583597146635136849411435897003076525540284063919424347422956643468380762771311820076053719377902934821897008492663427334719021069154909103004586932738315828955077946363979411419072264892116499145483258087225445873240881315694377094302575978414397297454987277615019644709278730433426630432932605350515847966367333085674471718941491078204803909923793600786881432390053870897850900393336032877717316951428767359783242821946411703556942549818424172164465760908809232654999145509607707542655627803750168670076904167070310957698338266502677259779623617124413032061009818993174778108608822304153615629467172889116278325247035151617317917270976978759171010346923624439773495610917198790665072873740079893981808079422671107154419412108689456849454900521227530157016959097019442568101200542047960385344810627118328633290753104784938703832306545316990789296623729832588505004902959331752363259961390462348375643685742743271834391195926956081811753770144291712542878730920001303414676299853132696518153883519546835268839110263355078058174969224037384472887568715596777184117171047468582124794162881151788999982776221142059396932420437743852545134983377618080427208484836644448710804051100745026565439548015902601683863621877620437020375978127166589912798721518469067873404983604898375500156452512744119222900815268907101202071795691974617202588630609428628313102358803716024225337862854191041388353506504652092542447164237746831316012193169738365491316659870663998319752535191870513838188700582253321107046533766231764865273649319871998361695721425718894756865270252163281299340349052236660061362585645726807652283417977776084811603111715289906468869428348728875749162474707030006406483991597192994747573317674232594471315920504817496096266925464832728610171256983037002943788592194703186798489102731088218277329476212290800997789437156391941204382350741338325339527575197427715564293830405911236434310483549028628819141293969900190975838005370051988445942277885134212214192536231968249331336400104230517684178549674718029101672790022036578515340945927273942674770480218184362111703814997462296172123904488562488610050256829813903677586216709807077821991389397781134488357492772013441350876232387212243051447662456173618024001302131483837609368401376208497144079754657924059674143664655991090284450934842858176687734152485449909963286285917696837861757366883398389867338445706204153812500169175575010276577907869082613739784753788608302228112086827663402524346272424390303545578761458891304660395281221603981238457473294649122701299047433245707548567159693605617476625446936603709203566776463360774536037204174633095770032224236311318268268001035361982297568725787985041935212276728374225940835749578435881204312688149139818522351326132535508376861912300737389352636481817090817803423859527212812375833542383999455069613447718592627784213106847535748731871528893495907261062487457996567935173477303482447360271551464819215215912660858509817370194326783229018886214702009228214618314103777662104143915344240388637421180115047417340155711452059579943707406084260504031945179221448797838851686790978703226920770427626401417488489772964227624782729584633282703959460904901028950623118821178086568069427263431902990657392044373013508451164265883344075786807322673132418115926457298475814534523887530879426104591735481296213225781896743353347103741330939559909222655656347892824996913146032347165311380208503115094210574370836795830991759474590809464528179960801716578506033101454568951065667256744031476162585601496934550573284906254722188275873226592315606397209959618264985669178767110876371712410444414500575519672019815515470619721375764696095431235916085871038805067764048376729970095829327985751033309053717131210975654898569615253978253446974608517354351139567875389992771353971140645985710458394105563028871049903917463799400362783237461216513066264987008675820639136284015241160514993693041713786129485065053593490761824427612830973215651550784955796540544851819357723402359620343344610020278861727633537335004313411557412945407336774252520053388171101389972773227075633483767203778410412920210240562081384178701193534757127121458819433668284886580102604287141026131109022385263720618044510914982810564685396900765664521932671195012954617221954562171424455198657128633618609222879102827077098146098315179762201303094033149019417925365344228526260450208967649738545719060815751610534660924608026207983215746219803048150723032955954400640667743965512296848889038517095868521236092284589571420764169594376876408081485865833391421012082256734405150075760455844328407084082227831780528472430244865578119815395654113046766353970591656217081732127367791253507162679184844488798108680473863264469295500362267452883763238494925910155573351905481129650167187289179208325805348528968229987102108086527713655934833528822251840146835178238116579919382423290684930490295314767104830370398405913494688946775675621510422072499352264549743707214471989929382239164828333411613808201140413454198648349327750930957140340703411514623433888234809675110219156405575449424391167890269607916721262771321156098779483454309488013125241575022784509061903032746827020949124231845229913369317297486897114347908610715807717099697892358509235305109732588833053894123809870400622001831484256989251956466334002093374461643054993853078553221946796202300528201663933709203300181550964562270634130936266585373040951970007711084175819622345871703546513980034154767826187838543706540343539717360943344342085780877356189086444539796177386883539155353019190306546330804600011200143897128460643615514469847416312599269931681013776792739937983086399150508681669577132943860009758173465589768187777788136564341557332313181812861924875527986368662641744965478064679980588057332161460967682675318898574930960340365694037820486298475994014791333734715060957203356955960080068536317649420791724864431343129594887444715260570853702603891731736986048731905944505647557399957743046852442368631156164611722406933804349020371751133215441748415223630740836400018326338694348620524902198562861563056547980026810827777534246887166576337005831524806463824774537671743560415297822306762567195269556779292033508820106100245545541302316949314369132264386063826794307826194534999715604549802952564117705815468371997219516348241365524064372496406427994831166102523036287200975747655802435575398263828916683101009933275581595690457216973544956478978801232845527697537399623530004877446117454789835864612001035574900278979513851290929364575043509445997627175690406597571335058216410593657563086029660689983513623569100572012207098058349167245414058796260461700350505275637162187938953289007262837602967774891765242043205540523852824111475520282852282739821478980407344976997578746369874620392723589300046123098003806363495545631924467787295013830107326028366292813096191126204900221900845317557017337054331766114282221350579919737494477541902596363725886835639331475140318994768782002737219429066620929502686560591818246567346395063124547314798159617260358746316634449072470174506375440096316713378261813953173597088631536637702989846482425446106506619628081780061535803967585798358398784581944846531875436864888479566423489553351478490680500055838566708175984792862744443017876365295789356515370773328880371477142234372300669103934143648179709076257516931511362336609140412894422940818631422891599134088141513872407692008966065179480064855198745103526127408613040783391606999787965377502144665728940212765900821755164606210981918870166886271490502143499384928451934956965938025992463439410401443337173560385342188369611266694705754843111488588364881072070229555758387535302180475081546673176962638693772452472421776937769439824308399481010990028654303957921287887958433392610444792662278653773705849137537221443081845796964313863029242308566655500544683072083286112335131879097616678338893799596065570312133972666871708568738392570512735203196917665501697746128055089472504329622403120206755151146457938663374424951716623850862774457035105467976240668817946234215082383719140600383521483187729927957422120635036193039147117656448659423851638204805205708931432617469830072427092754951256008331141959828557203639770447663567929161741700695883778323929971088546266335091657890400147218696585993976372895556114065997790095050950510589238806745826011997391541877230069068528794536689635474293337680731428278698580637136340456283443692670328062112063009709690415827983449496733766731234572132056375230674877559129341790121716654015961014641366180718877004030734917306254185587859067198289031710065066932342031029020518848234594678319271650674564993754783077640327471903462870187105167233393633925203522964302117327683147568722774950124153198881021935217914440650743170779514723996072651598992824369861891666380464488133704393305751519326796627172074120094688036880807546721606793268638768936852969039985337911390782256864837396950513871262735966039607145448649302124269695944145685257589714898624995815657501620659472141490004965637169331719346462915731121440542284372194333910474163491277313273447287531560844302702683012522760171528517136786546180955215607254147895052870306468387421624968520928549601956466292645280940900850021343910616249900534134367519231882610855505497205457819974738899233779364058786504874701608186413999590008846780778545988903470808291179854763176894029070038785688893441723318208209954814551339177025651343249609170817312685336486622699057810327465194475245540861535002344917918896161242171536448195451330081465166681044479665855860091125417586335678304324677567509384200955859086114705590134072625580513152896118403218522181517966500153560786054677062423075596357859877952445600030979674601028378571410672477586918494323283435302399349017589783044735834441369129195080030749821183535354367013744771947570696976246054443550004459277536292956240870370716151773270070573039811178125715450996053268103624483108152813091541890745326685782589896528042408510729249458111930236663427111266296252506049236697792027510550426061562128632106686866268633601288710606125887990505832642409281110578463566528713139765618800008015372273843130800124479721814776678804958562142594463692583754947282593500601853827143300011342940135235158721136564644374873176987417117886823989010344913130291840593718808982148821944492647665596831901939769490465201067036404634861886542192191283066833316845506483866045672028691240935706507204034178666160634081765370749329069611973505707921939839234436724413798393745599453332239875427538390238797763867551893086272896573513562081350459108473212924259259803803752590067054928768525772748649317031433309282019312590746174208778761416332447579090206131372747009064350044651417477062613159996074097682317313031780100499888888443616653161109875023765037794959223140512974966013995493457219866507772573200542346692671693503442415944750308322637999624606060976531772143806812760970457594907383642844161424508404736390986866743831309623274526367546930813525242447499607470089253023817203074699390431646950449274693508525217306719441178289509066322070814451294273053899597008409030018240892190313716543937611527748771962709443423647325881677730725221728088296506496414362302647083812087703493968678366376523909895361551359267872648794722097283009485862513570805055670985713281559708893794401048407203774519844114508780164128281005956409131575105017632448102211732418695360245964364461954396087265748442073162912058379013581114246385294711067003203991638024612478983637864493754789810480177562920882522948488161903652872762891570525602128873418453867569286595769672180005508941325904806245772523200705606032031499226593832643292899989599530407081283746636491606971317746908289724015107069155376639836277888411949634331594711577473643845074695508503743111621223074327149556648298181204642386911753579366732469431849817662322980170291861459082662659040854478330565032938672807327277502733436978891339187461177979025898132846181290828890004727955866932516301097883746066767106979980114938982566853641389985365085981609543899010604064706797365288192045510278495998180621713342550223012086236005641954771537124311089546165646514048744227378035343780708075071324577503216297602148050971887690964346874547332613840631214571785146331018733198131313137337623110161181528910481096943695172409779067509407405524051405237088613461345992825143984544559776671449964507913545510051416162779337796074263765311516455857088350770591654608347024821872887599212097908652553479511896252759912564303945096028871798614774263553405768321007395990086063696950274950212350680064192943817884588838920330492876565629300699293095990238252793489557791263969644502726134611109824535934562808046723821896296526098741116434651737687210956348443152041107420623333091618494040715873532314214437329031117420389265286418657637273634936093915581856050894980888422216397997422380052557173517225159125793267054161707747528257860827801686505550504701840891226632408551256122013627719627783859188822867044805567646880166599624485599997588870228940017517989264657386431480087994957017960864780874045652835360174454149536265068784948365619111805783488746345458044754680763002620980181669922519040060097669103132246933209647570026951913958927562392081054032216497823666936056032917632674034843325521299992491687502746493633355725001903695601922907255462364880748752175035472985295377414840841974859903944641366152607288477721622265412849066083503097110527420438123124906905874688725939723176284730087407049717314900454780566745288620960309365826107433271190010031037398439631642809244344772699232908934063254051859442226144996130137729450267494642290228995577490052997925600745053060259625885866548036788385618478461476857029396365706483196265201508762293461863074447218543962638438464183283733501684161085439025063095156354643244054656059395726781992329541605256090484372371215427875197178249862443196493879931328960114149591268104855538391100191423486759693305929015086860103206055995949518833100521824052837430103084563566206546832212812945471707616698205536649056949654454280553682179231182046357141807139174046078268968241913257261397949907715574703273093385066196061433338389244372042958727737820043867375220785209449164056667408086078913135043776295015922280786456082882471681248616858004834058379454521099741558903662136665366471140028106141961494297009170712032759487397023793283916124537281580142639241383233269099590668895368583968960412298469800529796591287430800397755584637000500915460269723696663738474353516111140961218439293115638001171389090405057187188392190197639110678261826948145002997805300949236263663246336229693692430897524150688942924361780390679583443470786307300234209044413445274070640017158591502775521753215878366452471439562034027792576827411111087861939363626060659774492402137551570808253952731295926470374039900739072952000649248414729335298821007486748604446093322208284282809039880015318545439529865314382970233624478838319985683969031533919258648732731777100186629596394766659221822115713277186451821346976990679181875397582032055674295168240026821788340726860340676895318744882602822152084302447305913985622133071519818924075383367872701462376030627415696016706545619154681230907322006908960017676835657538926990148015608267296600171046365307870352998421631014137030686119795873381964337555228124717528812383776308553568362519376843245705370044403639774629459777387663704595570204436446323978959458204998924600161517883245223070981948665973811143237447069383124163845144825807291720039870215824706700406059534430329019581845280505671842092136516923894037576067044111547027167630054989957130585276901270845658233852966417487941543761002732143555299391357281074875964343733889441753909995006122150151686506839624639283777593747841322134187730979642979729059829735551080475444364859297268398201389428854538341099275131037609577859997360889483300306642767507281678125885554369919171830265170067760771211535744078665722592339969535008585794513319916136670531314046467182222735670914663343019704814642021817110511059860363112716383157205447776387495935619510712265277545535379643660766454945344552669395876635005703817741191200835529240365030802583683854616214308023163033255940666985357670607590689361628372539121821653659937264309356082679354708762037488510208022462804936589288663810312102249146047672286989060964530753443451675708756908107995529756102666617380768274788256821835599931352024446329616965084220159677277109454812186166997888890615688737074242516263564918708321296156313986884405829208661241587836819609487783014021295749909996788706399565313852650488707489339713037299312883144782639780715666422914581106458100275916031097182380073885403923250007844107233905297849873429412170338323242592344121682765977005710573714797800759275557935794646202405044395837022076460250816548555461174493959891856320755133100571587350541469577581392108118732357573615310012419676981683716395432134770998650442481090206061859802683731243735902030804292421337474711317353920390147329952092145945050994211281570532792862027983705217463646914162123192814838298303823925052425678297315101893585766992959824307585237394034823934873972988813006673964116459721754354883307523963377775856079698332222660448279112308636273279122169776172801507349575204401950613155867745018574208328833878111904040856428499452425934439068316201344366194559234102027590308555118916452695673983043394640320209343513254783922680096123099055832076482986462020418401461551268228425277025979916136330050985118984173929193666687910589425275786862880275064476602251089585877684881486425307783125102897166580934607880602724500737029713790835551848615645839538800087301697940212808601095452025298038264418995841265060472325317222787039750831395699834843555630453147241832779541911431057911232026759887188480565740885438773932831845820196288380358435646908235398523181863991723474735431731451395276008149454631303463073434990942325854162509699185015643602464137699670321623809310214646268772949272352009090371444617826198487442369794437556641042106120462627638347791962682688813456791870399957155563955844845319226884235907357707338638233449753651951792176127881609633079241038341752145886417240216654732094091650940706876175982775053122258590007447712477871165111875067176314982875912966639449677957852355243081328815050517046047294069920138170137625449581075301795822217591953726213186562998112911162778008051368016116547901766151669961697457399205110356075228969750274681538296193917727896087083434309644858407865009631702451133458286237189994977201638375175102907739698558819790003786688751422364410018632919730199695849765547037949158283126283693768903682270900580640870214373146884656145552837775611104759698733263893865282556169209075037474826389377040553123172421184854520270559051481152949987504171105452827957403406636321419120546530147572853718764562310770778824361195555961811320762760842983456635192043759845439061032234010930124681497654876865332564649719176354041192072459580580905567458730785151170670911758757196892799802835136313948837767294630804063431092798761044389782333986767794548267302734886674928143913505739727165061594033539555011870468455411066271178872951154071260608946637126328710637746474371577713790247052494281728735397003667465080185162094498368886767177494197189028867232678706023869318610863694780105531346972801619129407216409749059749310486823904956454931241314708769018717732833490108126875915792226213124020175548201427226684611002226182994561698713895807383359567924052798534282700806609346748657348747612661541191132977628011006265693828068965809923988701711623630936062955210723666859823380164405013767068693133749423563555654223565748639256194048154810840718345955363890752647153076733953520886600638409112030173571471352552476336857595789867111938545756646168635529699046741610026673269946680708713322642366743891383524635224587099037135256822557774560221253978061725317665053099643718611426891967192971982458784926567695215786789444721170803203582170772286858297842611449248307093439570692273985380512375912158043755216832298468173838664823870347259441480379818436658938857201410426955966867277739584182631936540738990145825400602207323434158086543300552646180514387980563214790415363393779340684604960822551286211514082275367733108818055078040451529380229751655979967567947278899241910878880221361751496198083655882821154196699221172396846432927230457438318365737159704343906462720305202072992734011137661361472075100728195430401647066334999952372429506082108275452822142047924124372772234714427622853308979190332695531673963750938677712869065044057357252214559006427100868761761452922598416965674258919059307314404862350787636239288033999207215007737956363622460700492409430365003261570614253433064108615721639664388690571257829492059296158169527197950951936095149849662071380276887945670499600932631375863479414134301760565778014569653027886901257927481247169793152405885520831602426696957130181884659611444765743016488117521366012982301755646581476526222702602184370754509698842541659376370196821254114020669352451447794415847322107177097713953990235530475596039570221525890684579346441502938672092395945955681463001413489389125883103339579283295664881673148546026957172887619769622306363391335018164017623585407524005019415371171553705118091594692116184709886675654708768377372019715115086970075371391257272606601590831951879716707988802946029296321408263686823932898888881537420859297331425243814511810551770083345750263558254853143245051727777443450432602982157437731325014888829986312220326803549802486614301820735838462873260752059505119870688413905263575359527699196475672872563881061940565855552201447807793514259202592625612385084693068992364039522980132048921684123139615373705512540495502325910871713978754583691330817569858429897706291185510540244220561184404130653649154506101143974924817210794954607261460874863299668934626095231506592764796267570146984637993439857361530303501935945124794404938767916656820894535262294528181559657978553549539847995551384405691979512513258185057260303633470061209707628714959344132408232658100105042987016615397175182105375735834801029718301784539600867939655134730138909852695506856799184617794352062811344870588304478571470656895057928948040194664304243467595642258202390743801904253695532482353944472136784291541115918813339639217683791763893711418022802689141767776376972582113849377812156577435328115963344354543999859600257306964815681765702449811925423677390883707770809940258680032055571561844055193975266297549517765712644523186261627029583389391581522239510969795031045914082009232259009780164472776040791788169719870256647806474043789160471929826965709485396884670987070060469610022417958219588789919108890978940675177456019570846920476831671933267831547649618004221763842414036620578955592135125958769199374036389885018468530902338475966147636151406760873619163267112263031479001417959121059629151710172401847921774713285567116653166733057149976164032484667022882136768959707797015329635503198633336274938987671663605746286594035941830396434383269007638501715925291800710858731858514374220140503195392323091691026172581219385503600205029038388264565508462108355849797483389761240478996938574801370018678006396249399331632078807997391964487931845046894724285656986265992060136451089845693930892251506238234305556321128304153116465203877283438083777525979611985210135350283010704347822971159851497714603016630417814959045625323266319773064010121609095690828948386699075195700969644824504784851598918481250977230125600456133931089752252605057586532395392044254588872734858105632219368137191922709194900141379738267790378557437404104073723350020196737099984501392135440142952577581048403072623873494962437738687034734420201755903852157683894210174303665825876722402322628570814536447262901670503201693538252111409053120706857189333435926839988829819135018605779467245724714730187610916289060025924839677386722300828200544566573054301398429079825690364895203686877359564130095481638914729127363435774874568139414758709881683970507614952095336296113132385395827679294147517202009983633610853518303835378914689218309001986242912477797108876483894240166775390654572799523719041024580600583016646836638061879156029896010384287931278858262649677475778956432259164502643007595558305008908050742305976227227672436601413715595754876345103183781242723572559945190005614493747155640540945352831970423915156026028554735039173954930874618088917765545309143522287254062857154370575807638234464903692695177823490844706286241679979825510343530231788748060590370279275268788922771577592838619206524331975675330590748219043090069451560156665651017069743858096809386349225100638063970671443132647834913544157029619089497567053235277484795303830468666577351535944863938575607994944411402944743689053490727002801477984057663010615335487279989283540596669063962725709946211698270797901426669534167275120103921038672270972194007277818812759198880868970017077557503391413874849748441871673372068424620172070758575591001225199681487989776179803623400733528043010601944494783953931299728236479788623719461650811126502279326433494765761575793529165859436941568529445211333974036277452178232946652846122762012265166700946711332663883849658197161156344200808532149849262924379153451991320106178017632112415274499727512477100361590914919438292632922344864276755847053782525564930451527327076451484182435060538711009925535404871669781364821789014431902518381905799136272090656057279258415323459879451423526078425257214405268714095936560082330104191461897197574957817751018475045047175167056374817520463766402819074343716361879635298146965166399180294659341487264466226020676370764938949676044352819532978073159791872373983296153539521863941043200417550899694037180860896084691249902955471360824171549137769471817928201655899735677644006383677131393816226777401763211716413067871433748179313690126953280767541651437549831381976662828552028498050312451199837865609114543065076297742168215148404996420326899431683906574967415129267476456592748501527138959846471112753935487169725386557713621450391777738966316920734502058561487494252749904567797124330966142428443430870706641718380670454650639875820269168691888896100194471983623331213121002501891894823858526578363919251662777102983309932252390346173128302968750298732243544570465436177985744670160790758143470231164040705331727743253484484163893429319213033469329108102191367786115232463227753805631031419447344902543671572232935957592743827575297002939335676578848713212012586280035712758737830833584314143661046167987354689040064000371962688040401074558592188174116123198366071722252309248067671824704504975250071414578009063357878238272002025230574797631690368080731434820429311063319936721510238292018235844268164939745221370601703587163972257780949516032052273012119349676215657507864900091943770298393358770507867005582252506568245181927482538672316139700325090430149335100424190267641457544048449085696229231677955982528022874318406081270298910685501870113178832645450141030618505790372400760485216326759800778974526760334256225123815766294238125752114838135275768678966700264859477582531632564409659423907983396854376021236558192679144542800683400344163391282506800687559838607110522788353225170633156973446857043394284716373620710516055107345646418217031161251628135871218154154599347307065536882264877683999041906455408627416002353699314330908086693875940673000529003627499806839583495867964947887005626061465049254885724649116562839517552625739346911135731116266143496069791121118857564668379261647195062964865060982501387684820328439745662182568512028031815868952023620419703297734005602971886829061009783854319412458817489266344704845457071898464739456846582089826914137321330211261023705315784637405363146172090148304719878927065247303888974582595095362919348903975695273309873859342271305951859427407855152560536111880407631852487965522597554255211265193027393280545091407855844733178314809523042549436269801728439872254557445264351108468843102998564481293781713048728068770845499704471735666614460377743480741800882372932356937747924196533055398593967967125478049299317434922529593768613390474944201208031708101247652864779505252557625499365217012183050581461069201358060948514098372738610356644500465948616605961858607132524377513603681113693236280422715213658021735860267073541874520965512539985491394292952911784288400933552393229284977276658931608526619808430753184400147727458743021853472110297442912587372831873651802864207127138163312662180345796981781835272186831692577318087968487136339306192246789664840226988426297016808175171588600214095341725173103560892581477902306273328131948657763194162966130437761354130075282150767223609748802497782408810934309401208482785982226537883601633835768990464758934633872827470419605266563387140237130359318729862335279142031260118556934243067712514411451255004372170950388696391718500201360465331374149254798725748458970388216556330257473523130980425471909771973528470367108845491242876838596940953566143831435051414807966143614418324482101217484779906479226866317556413858014306746980428630957244289814208589329303444358764981915631621345437009918337347327054883462594832520421429881918814568443173660680379351467793053979067212950795057054929889672245556939054396110332329991336167133569589665092392264678766557252748156642718464221159107004146657328860341439576931119648391110833782870787342542308274683865987015697745790019651008362745944253188409957632800868703570427069626594289960056447983173733221990567407103885354580930938244620869754127161818631572276697099552444854010553884549987023426749857575889182540829639363832498816171563899131396014398952743493175505509448415975976805292289355206836220983343648278522518398282253765108222632848012802512467100350358735626575287853123048484660801349308052113039734847531248025816984441555608148172992889413368066415107671801311126642221358531722411939136477717755282627039645793968614841543607930491236251380228909707903901538788955987164283908823753430629277000922884739869943614256478386435444589473348033267904970372816246522770884741164280329281376849841681465298659276878543047783575090938282280198905907748112877295290383174824660063122208817759335078510083899439292981346909420367248333789876036538120903549124038762261851227426523084609766787710470317752535858141057472040282661469789584125586365088152048874427999305983756888788533845856397384783042108635775063826000161756906501138038202857644563984793390305592710152352951267052022734907838123300687325659110802162384268195485146063262386412196542411999827829310690110774850269928306950976098764350696963053993046897181379818503646738354348049762918307816853490955913777256309473620487220133456956016795701411481175064827799652783773000624108957886644505655362510509771237326630052882639873280260942871714007625643634296957172170133805548726732645996236506174004584841533106289876642775359551442046185844299612371664094809650567268732836279836004464169175335759315555311692829538042968381564483928071390529862195167736787337366220376013039177045081446544529276654178281461829001024666585253050522231649778160548458173103110287344184114450505370142258507639239356341254372050928650149621938451116734086185853431089670478635781787960221873049846936413594950348723815440421792582537181585524438256417881833727185485727512182757814676076684385542096304048130507299157260667971386524656811426819257936473288149047272846883935276015068087168569264661657463769276607040947747958528696314637149197188010536283212326632907144839473831939439783509324848663357520344311226265315766017805282121097426939971413999084622828632008521781138337573059510609290723306376355169115088260372901651886436526747315241056509978997830285344852800204090301379751286632421663095736036179438521675973457720702838695881155652022200512950874885128562512744635697075195152055181892842447597724386560129157749751338700624550523748661468799411572999308523591567133053730301581417668773769305498932672733368744160267931264202066609756690207984407011477660704485767404764282506614579347937519452914244965513998276608870034270656914037404249423565733379268768663681026472510299372583145990670042037431185259181588819108810840049285704483630244023512791048214141802438837072166985811962251187966483204488954226692090476928825466855742366661894181616680232698078845578045076355431125379905014626433024276344179526669101838111187203852339130701216639473675027722252299503502803960394510497402384545707924903707658548420725976788416202244385823442928670663725333913228648264416306956070435258110269259836111666631960864678290342555775328053137982901684112959082296288224866162117856994022337239763825756971399175439394289771193686295461895527347795368581869426875414835416557288178160764666112614053592324003724885593560978040148398820965586224227591676502953532554225498224612130715123932861305043098959870807687013576025852318574971367047383688182805476025348805939089177630044794515680557539772206293603128548285694704645479340703678731565725182922220820695766564633319627406733728784921962829092768269631535905243959687830623553481239298531456945909571511635770590849187383829992270627467446206896096484935823452466575486933955748699986922825906887652278604360537398939657532345283145409252859130490894663433054070506775491949457351112286661434674879868821558809406287355905692769206072659606205893675458441077834683801218721741381899568770265835392035002894019984742421114321836557851955970778727985026477881322011600982332054910993400302358268683602524878877551534596129111717871226804491516575492363745220450763124052688444537657005382715563470959529081850252170336375956310409914064120833181728878079589453319231516689984656132046217081475891766885715343183936980394937063701431940839094210725326221882036476340582755940562439666768096258662289933236031739348623789509287174096360883770115057317000940066118346203055529021024003700569432759945757033406306795093859302794492274560493997902974566215771195426828820469029052954670003454958451198479741839034537110635894282141777728115475839152401081068968663797308056776644399452305376261921681580205476713592352568294712400806691833735657755935550009078538041238232296083787347654566041392745873727047207289048474349202239299432264072913113160806869028624594850150945633043564617966120395353411431569910879485118600741587610848802486196483968347734994773874140585106628541307769058804065503048664937931240389178951663735129189827102624652601287456960927927520474476133395227351685110198048981256492394737338083519551256808424991388102104730745359243420499742722913668155957498112685255569443674136578643183105887385270023680879603911512008968363571090291457682534027991184222926502991205635849239082489156869461272081839358495432864588229014918101675381046220186326415579275470375850873643218735954528519991525189488714632884352253197033386564390089029048724357508255070918813089650589028008182859065274141337799652573605462998475483152295747907588079301414394552713784551134870915524260424532991961730098809716816243961098588462619192525292542092879591114935667345420047285174285441140766877358740004487215507774187352489336407551662911990038065713589854914649754323511902756927015508803630087945037957923758815483941694604030554899213162183802529064576562125099651492984804737694750208548037800845709577883124532414534796537614855840626463434696019839878110733928673607584035998349055052886221406867296547583190649233101359811120921587020736021225887956840676778131148266345720057930007125994944184740281641565195545169948610192916993194906924510566297226610465403395918114047389302191529779386785309887691714144475630751699155448218643303809633380180474246842186008917429994081788619087841413722137403633721656865202041047014935854731216718645712772318680319207247680402028168210478285458490160572866180354002647267732535476612738077686700265032845757728252654900380239058735420331219236513564548325713754520633269425092754560416456551976540339550599660179765260977212418464929865624166244537994895762028681903289067617258698879067795947423459747013115459847451252831249718988592115126339530781303070830455791036510395018006442383191226175715074064940068689053147228379031301013283956859139099970849048273476655998816196556317149988514132024395236925358525344484759458173440222956770741263675737441170328193879566645391230226861333389377808889453685397681160301154036211720219206975872219227440775871977013791409896194093507189102789244680811764837016261697183260096010649290373115093049682813512271630352239444950699143864223746273946742347164046759067350295323137032563252959156634753867222164610686714878546942840241893002878631885178772195502876247550643772035721862986935102490205604266405285540451496459530288186171890268699005284014771371539811243980298564041974491864166286058916746974661642181147935758514272688699736839308544441166216354837033170641106645531290989859919557388108120487345313888245990249023058406304124886390200873457680528785164237797837884508669091551821846199526251334576958229263041955768475721478354522491018387046646828707199169852785784441020542378747896994175707227697333940491073439001673012573669180522986819206131939485384368381120601300681990548742815151871808090115693247967665142875920445524733128999811040287195402805737247288493593945906764174859766517571590789700497738633775638900679427326226384726535451641992884702295693588998127697892135689662121157438945061850518554660971648458020809554566154508739837665495315000528250640222537054099714071465158725256973643650876432642394823040109073438619982482041852061779930424650581045166967594880370369773479989746403289972129138064380155319192057408171957700434036966737634504959127776549618195989412887944898678676577312069497579516906803056430092165657813012670718377766693989023946069615774966327646342200866322626118161645666283664095885537871620981352662246656659166591703046203377920475738001579276954072244025425145060298823440830901404124345898108274999640795671291343771210609240842283105861610490799407447994832270614699588840377387647245107752309490957996412049739983503498768401803510160037184347325384289312848146680354055446063978398289082266604290148353169566896182727779681594759596081372640540135846762047699231182023488818257901187956212357742749752612533815241632078720444235611759810816898756836736147000560172828585384585326354977625776074511995102992946929505622887881663448665954654101970305203451113995254959041781780371509315449222466888185696553908304159207593510188062704473149520730419927365045741934896936948142127638785411320316505394113484383880180349212623676566008883534419863063091511355258133671871569559554841918867540037728014946702499469747131995653160837955792023140415398895188016586866062670777945338826415992036817127267686397339191002307963316214644144835090735137928992117484177043928606022143326873258030411686176972569775138045382706044736837677050571639445888450912615830547597355179272731336608254982387381410024924002377046329560916654391883071911143003604113187267721216791171605951118102254811857382280205937135121679943933714749929746591687294597475272416355182575451687463643318181263716797637624072585915896900673008574751255677891300798199808348127594719002881735251166935050890782696042809495467568857006400244056740633764585523023853181678592744662860770691008647710733444884537089279033341069481081619164643398698708205566327874186676346532206228136643613391101799718694400887919569617953230984326829189500119134417851018364934527230871004159814900566701574944243628620615637033244495041378035425443129036451028993122147098040544932825626945041499566187934415676755521390293378678737402070044209379733943603144780698172729241329543862097787126670611806220382658887153865545080742397125545203700961829962096735521134825602652611188132410441760031081125898213564769777266525689315467725960040561511555616252196200212295807903063169205151991860806094811890749303826352243445034924558128971072809886320087132945762945382918683493445006761003097587747636620603723180862196675003427500069701857646647653286241443329070137296374851721053227321146847340094288347052628589334883963056875788627753749697715106147180726528775147370549974154261501796541111586122109899034296255082397432351681259492949016967964978748277444757444180886956227308336961460159767512110213156306494404998944331205625675780963998711855183196371381181321560150869520574182300545860547583949567144263699518800598308383362588769508547029119311395875941273995537078744742370578249313051037881015248084906498428461343741188106487019617553463272839191478769799571662945151989797114130007462658723338561798769403748695989466108031772106182681882799126894728575114015703255259768169395625430698922609769596225442009480860440885525322557913577878641321221992471531689329060918684067341835703874791911731591314217749283274221234594378751941628430967143240502848558655815755882140306295666877521040248750887771469813213759865825181420004901117041797007372009237587778778929559649494635025248371287172004923671933685979897940853672501107208347891859387567043792446436365266013095688848838533736031990101167587178801070019135559697828887928831316001741579799076645772673304417575142138408212670332423178257378671281916349803198784655091801624597825115768549835367809975868437896067528110271424534605863007682464212226612281761039084559436270949468434852958480877540298726646845601785219247174941991805746419144616776488469049919917642115209588798004613817848183222099884647451878742497926675921260283240823598577977195888572902340154693870510272336866657591541718021114169596216699356448085692345647011838413712932773360728233732256872872188625945036576849188371594362663794110040896762920877901693641543977135989695210527721449113932133397037312137741514564745113251389806656380156524074327353206163020750528503901472365253570502668821504760322402631112675573758378910496291833935928670137499878565185842158093722912719675421739722523094807284789657741467455352019597100356857183511757548691658307535399013159774891400835481123316562982791560083128646790671569607825968242710751668064184869054199367130307103913426824491653483433842069354717943150034528434721470528135566254075274817330168167293112626509199469033280455624183855838001359892834969190612600214508625100219363057164991680116503342080423974159575128792879131071778065325470415217881871846978798077511030137306525892228193438409125221148140337639878008099049020720185609302571055646604108647142000128169641256654459247182132331639579286296003544328349666747020798309119966467543100747443097976252042702552261045814531739217203139381564777497030125866672429495485903833821333937054248837561779321060260618594861963357479378570530965662223272906599777928314388781708361171334362321527015785547053105744020221433062915944341042759379815610789350388864054663335885435370197943931406932443879786365554647660163021831218116512638992908173098102344674774804849734129235911768734521120178842653963285723348387020218273786051247057282860336961706102962801213711453242589677250571675152859664422984717130913532623224142684865666983847456251631748901702808231105782263612282025324806498939155276478615310248128203086909120993035844061877317366767178335683231518128277825030903295115536067813930140333131120588776375519463678272120099448656090678183333445361427861246863067714441281356236262883494089534404783790471303101219021158681517004880977048487712173721529354339913675886910412303789317093076397910009282980087217018163031828701206939936377943210594144004534513872866111194383871845367536682888858291441139285721649522728483744670476739935636416458441081388424371420872232065059698338673499726865012583308825021335975594755758121000952239074706568251873467553027362090551893477633177149278441309075095114466041182589432022784581968119165550092792953785728129875405061876335021462165775302293026589967752000056275145482835678971392444603354602872908917741032235545110218985925618289167335134722415566009457425866453462476840509014769080257075301358792751490279051575031832353333921312942870582127484404005999367580518861582903045632828423085376536741014255898353789409929833358057817164611126346495504942080975932490970833498826972481273384537257360288872876137517840755774346600181844959858568124937985135214122929031679467089512984044551901976117850332956904830048533145904464338393005289983645222830130982193912817637763618349815097609167532935670385577763922885969728385094417902423463314699536512393478044854316164894729239727751588078773998619154071393110850954844213535706893136120905152988744703081279318251051341094780812187503318365530043431431780125705656742141429316037582695671696979014898063671295489066014950639835682683370891005909144422194816148986465759775355902538110263432333287996575321374540688009371375719320503305580901156459475894346433874620780176570647172684600137348850758161223251445745310203132303155073526768250861046661574404083323946921335477405014443142567739508047853997655677699595068577996226992794057857518105219220072177991816034865128536941084176410162406147516003282514246730036325344525323862596418359836198680775254740702651738248469331032035653546520486543924278067603208346283062346083406979249197611063473202448618992477815242488374507723497930120769513596173313954841737722917569982081971056746034279914600656405912448676498537444601688316262425973988436742174744797114135445498639355318475435735220429713409289434915592153256074940208102329182248832871285570189074010412127065747250470508681863986139688105982384882864995928688541021892087018742089952141069702275264231208664564876256924445674258095277464254266819953748353378604967942564279888239441129297686584500977595136687934212392380143268370088112653719506987478672653236012953225229610475037617537233880155237717100108278815694636263131388679452623073648856624562474882075063676477890270687591310471817564147618280411212052847570684736238866654776789520157522948101988552830781193763689570943390715760008824930166652259817773960941020510952379018269697159582350811298712614021593060789290692702364309245517768084702556042102430059464693020356152564064552431291152591678424385099466116896582182097386381118952980338460788493528220300791798146754746203566658371667417719820340402486528916081875574465706754933803754184319870681053444975728554538620133672577193981629164760209535795439242702921608465978353137498925404673917053231071793977146811082642344745373345285491507691941525550060583401480859882949577914708155375950486675906949975895627247676691542493276947431885397113350688277180502446537232277553163102495527264356209958580869143146643594247220181316896219888115057518933744558381517610355739995963713926947604569037192813153599136191689273199643634759736481234214153101154192716604111697248310467534745744465494785135340278147264827734527134245727800117903359137889822821398526274938945312863249226902503453689866731303455655314927699953570377298294287136111561021721115018184424393162804889517311399683855612322405481412354484886164507024832397513790646093684347375047645306676112339950135935491780371821092500988306573443082198433752781311904426796716758490613111027547682985976880722720910506513040033868666848680446656527652664322013907834384574364005017380520050819923701792761809929388840423788346688014524126141237767160291856674733148922995737007638242950859694189071696108831170975236882382998935267286477873586122804245783155181897129471688578974374743788755936676696523900465047755529201359453904107939312551325845357094206711736646717927974820469553919083095027670941313790663056903395941081276899090488067783020233118194373965172955696250187855205372727231482015719187965221021018640155243651840324031386087874785621989648517057877819392745148233579989242046431994064661373429393637726191108954897764505807387716192466418953415486103465059340480627176261837579101395254091599260794321204005742022479141624093184978354180874841793870032154503187740395410252206391386616597713784318473274773899078539456738329638095333796928843522694778401634635216470470024277242124663638903718793254618620153432666102299346984014474359633270847652068325503079299650584429486018581854787111567161159144160542747552881741141241174268180433671344351091849412771268720159820725588245827251229410531561860130854050951553067333296905079932354121249196341074625191075909899399349519883330646021909549140088202399210246612637676102358390592270913673889353217582156777582233553164859600041838345652787991041180666209606128297818020355630349383209855997185180964932125531267461682276217403771580236499748987404755240795259252744882821610560988640351791484819323433624079954113754163059953140621319288596985838473610484991145323065923953145093754304544349745466582953663766894392080080477137346381977280866014018912053574735343760630383066703589463705017060467243108944826980579117414183147797176854382743935818830026985501445965790006089635571195785633233053489348132586238560952388746180896057928228194741832819237318040038903476159961345132294616805976474695470586762121244618299028515930323171499020118431628222207880704747239867236387838080408721565162315375328256092884104002789349953094892827617530819366777131411999341046195527384001133647788281054376125024253736772365419518896253153375385366303005234981507447500659434004720605505768076770413941454872824589973899541009691567042650332552259343548543058619940795865414394285941369287812771386737575490142241907894696501646668341667780146637163828348359431773049286816662473208451087794724573635741059118104538430900410834633214446507714260640922905326577068234759479786780082496963752697876867669257094952189291517701948951298316617939475847574509237042976896809597548978017453630605506239517882259372172285295158804015800508335637724332232482781167517722418358751043453826634973075034792852980759232968116513251060737879353264223169418739056185674215342181124651312116045786757413388974826480429609059759287488363098648600617852441460222627141408592676675838015159315762659174262943297507902469023941609357370189241757518282545835206034253178499494225507363458524449116998149741106889157361212570771994248132154019007524559626629706280123211796528246442725968438606633774916540525969785117475358228691086176838824648037271348716123345997011882191677466190796066753007166640905931350185845559579522298845742751712858911763970460228010374354470153467202640075417388471373922082489430962768051714591621350335619182524869082543515646149476678867237280145463735714431219848144424994442288810996753286587787118447577575133357602364154993789244514240048890451946089050993912841608359865800032559592626090363194647039493251649217026955006016021646591016331192628076963568380422428569566357493024290156475591623967771293816547126444019977563744532552369871784718352912928995034965922244947452302779721105265129546464823383357218449817855797431034699803517784615305439151669796538476155981674871386174404935240937960322229364535743093999514673111033159916844136898441747646915203312680783892224713307280439451730882263611700765018369475169205490113567149247356780492946144731910638131057619025161569398465692949216762481758617576013958407564834545999189319670344354742631463724939688195918355104130354377268942605592216722374378208264567806124685362944352966877790465263202157777254543320071999336795560874183561113928624852458525169019411827851039293179980578631032563001686285414488370316228521388533016069534286760774454142516815050064871332241132698427422149920601935414116830802985714607643910663972514550429647709390524125144544819747177156318261408130444977948289441609812275152175786724407483530370327192816442404701248499429619697055588599552224429862149628838915907155957279121118616185235483503815453949102687919039175647695392440995123089606291791584239668906293819490037269910521188404453761955078046503060989487645881844558378798736036312831927518664351066479193887493282558950755569637517177479073439237824482185501368089314997005452477017939676244503351972585428771882871141177642203848504133535508563438575526902362712152201607070687177290090635011246688307503692208983396858148396295988544264107163522833788588679993794492554925510570937204565585753695631430621345245002745090148980553785337796740566423418955512673480259595733517406051222638947706515473130186698549550068537688027993285162380438526269809106330057465385137654548593964385736337013794902003539121639238524108417909094999377008986160981074043279025110476444301696924602805576847158929801062665358508775629994192091583865509465206733198694660990177232394343175706048848687590275382534385743174091284972795174916286757460118228853911514843739622724234863948262103070220710783915101340305132115665423294638680417003674260697237718626391895461896576646203629375164846579127359893841787330203395557518243404270943946852668075241661871432528637067057503661882767229220355346939001387341693090689006438966015609019449139344045500790210155170732310692253703235491055195596242077084868081880389749033299920971857987571108571222037516362053407182233772669452194998958646463520179955111767497503944141556318939076854816134356507428646172315886441929621465733900333712094782267460504424709100702464749189148044223932140822604004273415190297506404332257918617226859307090173722447766005950146289323243897819247329388156301756654309551788358275716529073305309035347120100134842071369310461376375775750843387683221891550609889020862065714079914223947907280365829630512672683924974378112294462303522001631913188094842309689883848809341410958429490367300441970966175126974839378182433226689930655539831041190072202871281225652388515548274370470913210935634785853823797892360402568480659679669299250735900049504449571637829430592867064859690761579433349511966041908105941857770481054640747219802925880025115600076043273336857884362333454928645139921244169148868408116520298469145231406530689418764343432299304656693289711439730695703128360347636110316930018294805787507394307456782447077279710003762131489157521459181785471760637169345230264239186232186291893172603037872602568566564836591636650704844036403988574756030781123039427566543608282817542610938823591377016398898146079767540388169451856700417286674022049287432598143688545888332394807643907022837158918470377266568628368578336036800185902001780018641758544476174393003692378118712479292661709442987425524843895888125549188205631944313732955077803836476070856164542861308806721845009228186780714866561202896956614395717001147226906527196773648126513370270022383965776323189495355132981674091099701683345971723934051459367060284303153236275307784941538461081987080464807256146984630334765342629227480742501570625753754026748340638509521779286069141067638948378747992457255876762652364819371444287638169007559695868125492293222587570102893469931852203696569519733546730266309793597811154636104251732268919125373380592215752120764150773309892329187774597014201705172916774235475686907211101571278284939477776111255083026971620320922476272720774201221859378266854560668627363326780704328838727460538159655100857058002848029023344471106174697774425844743308743609597129363472438613262411021249697970622491287939149536185547460190678046260777299580551388298292785260934450631580227473311342462943236566587488749718578885449661010658349622350335972109586155824662528291817575252458142112931455468996487724236528047380142655967749440148024171767434071888165297685420875533530765137839836474610429911557298471944384538384414451089542361668989321298262820843812320812551125627616871740411524516710979344163908249615884543730944816214097759311272585816497005174855195542238064841433089670539958279522306938835881815147225627481583323976738567603083159922589509160556698830350760691974413529434982421291838968124313667570491224888668766720525387050659427270813090269123796582915379280581117331957057259886572129310474313878932373208289697600487034251271645349931712554455024014622992258285436363322082091110824018063627323721767449669828974613226139869556467662011438387102600136123634632581784418457305046277976521407665589551429709763802292074482181023196216660572836036552215726480834152112282478265022690904031172872503897536615138999532751223042523583907834952781500795926097619229319372151848890759122972144998345389658479792356472987258435201995577222640723983065091457080583056741936517972914555093310132750438289367447230386147986547503386000863331711442643079262156483837517060759082197599043493397648674135954021590521084344793165710123512873418505138162676442911997594713267313164999317311702149266244051002452320873961367354750366315068326285955444721181308480919368818839521401921835586081763628691662489300466975384222657325451716278614335842144440726827648198692793328508734709728993305870437865779428907078031870148411880139987636882123385890229107254063686653247767213286068490443041735379458423685587993406412273438588676747458507978130415018134321639940338587467600487813440958339485572556143597457106329850062346074472681931168991142936165584020542902564230370465552077806285187148832552064843627703995831267652960398248702698018063678681637546702288159750381758186922961208442930497001942255700725270253303932327294840047854329398001606488515849790769434588736442544820841676176816573605787473887721032812515883554443790220539156360126894114034190036381453069250604378184199180414242288977295922105691376966889274425228799585839684814575995719325823260209321259168945372299059054253137893988820622143609625409118881886364197620056144426141571785135250739242270860431475204723640667331087257675489135173868799397014102683484474232002220988926154813571227168816246514502206443093162812917428793858221477140600535281898698559721530652789362391771233336589799381168378744502588226638321785196303973512202276250380059150685733046353223880064611041334763820694350524772570782841191294538285523822688556821725590096208089717736043682667438264745559426157893878171084127367908166545181654863982243060590242372975475856967292519348547894589174242319667413477051410578893641331784800842577265068923370441967068509396775329064432442810779849074721456371044448993703814965749806450915161740701616859365605885498513651411334195400032955339585606054745988884389558870510681843853386870443047869357504664715411312858466586112027045731019008666829375646429416707292937980128846953199936025994609902371372728595126055040781836979773911707220046697006255076268204346499773674568914180519940656440878013754394968738828673067129352308583094626549375617892914578467235663702581152310506722317311922977459108418753367471544148943776170916048076913981400807248522880902996108372662909065902564757444188933847897501141276202981413542891578669999263539651044918696843928943680400330109186413414707611417847992825098686482026311549421527583009949077485623742731880325317822671759116376664276482022245066606419393538796417633929226573202227636372849462588286825093722594614247929924354968692772746307648955444009786926433649601664462607308922481033332546897024847030650849796254859516218732867882408514665590622092497128221932710885011904958629788606235299774039812589173278661065382622531800327087973279938035166031867540662246252307696047927331041908255615242573830978342545415341476534409393384538809279511865298026676910077618323798125321635256816849876400531598362792845243672071033818986428992064251232057316528928046682407806326381463256857557209279280530336545748664673632192128138852777078816032561877984529312348682766405692963926975787694064580565347808055943719821485974677054218428508555354940678598299935047886185336309415670371513314179452467349539008474148375504667399950256009952004758194937607141779427473265768707374362431998728602467762047750152969223781808959802084509528306293039148318080390127800970812147660251985591358364384621735600652524311804171929255045152021547439700827577194509698297327623603772400591426730388310205598455356259756253481413089824998940409988292496848544723281792352138113062875245602313585170837796307599610833631633411186986309618267474630064255972082865093364591810351797874256963582467477623286830613540796374280764874005399871394051526260369102159607505150768385763704286818459843048000884910797368515956385053551161300858629103545735467266894095056841024036452461176146278084260833886264107228113722350170091797207154659980068851075314427253913687142927678967731235239215450632285068387192705474457412444745017936961207004476102909935020455193516628379323818183177481856963300369920518537177251101337311264312250554139825932728233102357414735034433384168690331486832184990469275620412815458393908308267753461164064059929734771677160160906876035099618816396532374276424675474162414216825111235837665093860603528757398862877895608465449751968414787060748550528169309833971651619213106596825949312885534312950141738909077049717680236727871554712336264532747809335778905683009422741599796782369976371675244733526668810799931817887646092812628428690883001197467056239360854463166869584947713873677496107490566110721834278423475142799327423396140861014404159593556407953948027380888625867576462081400683281379987506019674146892278476559579091086788882162819955721079650124053690745309693544996292030030058873135725203529547328003699538728437114672009706453276488221732289158816297986145006981307419865299839126950142299978301031769005979516997679472347186249944482147352902806836953055105346822109525949450137378920558045255761405538939902242283507207084348697301509988915358582816121407621911038250873551089376792880977170756223989140120227154208957650476829791454969863071345027394169898593419675285973017928801218903282467862511380302057915622354880497240267868907410623659069597772049803097837254991372273667336161757669840754470696467879702072147745194164541942123397467721486284794180966235251243943932552057490217524484379045292302521617614744782288700439505852961609790392101734600720965925198605083426663232557814773477300270831850369165136232921618169420340696969631098118582243460884803754967734097149480966090604616284215906946566318486537863371896366187434918357088534195824522517859474129527391259063994118084220276310732638034155217801880275012535251988057963947087126662487276591480096996368357678652425849342641827923239991022788548404275364690055532533942313291979435680964686627367321329632160171020018204808130148126371700556580060424865855370700282602725297187490413691679412311172276740024913723454292152035847065959193602290137772313781649939341676581545763832735357609496402882782380678334406870930431311676953421291216119917352010753960343354792892578924922980149820487524507503412100745160111992307057587443236446198443269983075349172174111045204513807499369120622524175453810494182537875915282264510690537285898760778199388017581671860579536391783017390532870782996899362954104866617916365230116321012030174511794153055207531276655403996986589399329326388565688152155636186353271765952561831488778364798004281371636035023738708240751206221028793557300175819612915558258121130761006350162467849149943102380228407168743694419211079371861123070451227594643613654712453540418266647597237769241168439092145983645937043974634690466715952795725552664636788359992453747338644257669393408570570170470002167296260047838431030789507973158953398898238919357861670033989672008720337435085129518268952281357020492438226680496084388709822539860219565640593260441952911863796145710302432377934580268891016261374532000253832565087086627159902552254286328369063895539700402683242798683019715092253483271374616048877476281837185699624793898538431924824211241848624408466635857115332834636261974035733219780099008291885898873330285843173261624425957709291954077697949792009560995988753348421784436939931739242023604945026071577620681489814947608295520626717699962141394500349008354301793116957066343333299114353385145372193730142051831153167267843412174869787206641811434632566117971301291356034405660731131637089183575297291610445295450092918758860592943892514375397179599318416791763552624178097924539836691084681187650760813203409638896751635940263454652661039884509847204968985044524181489845760385722855772003592103373998373241826060185669736981841682251391460203547820744487099037781353813175150541595264691680412129263506666314411566539960586854779983181517678131624352723260149446638932566159207194017673968908932742711304281064729562541740624282192322872724603058227312300636417463527123311913922773341006362175842431844777333934582548299765155425399551071621988592613038260736091319191221371082081408967357466545268948777561237836751314184000990885186442263601534656009987088372654038746091374720144343578222812876255763872435182538657096870739972244773340703996841154210686827507693993809507762095441649557982983798129727956862628132142635880590307692967859952230195843510886016330601348608906295961211953816518248595151077955998598449550296667328294192032505261549976920882935623288757651868593894328121268827263850815469300532018567001698409053958180892921873638863965387917928901319740994009393144207500016861782812494421185002856626544265824923441991602165982997570600778722693180491947004478962347913472360243001835702891158393965203633555196174890416580986229369473312472452326626396230088379077475912901405460359396616755400215969681790377876227526326706536466624510340518335402697716223421021513414157822757696245781045098814875011441802170288630295675013779437569925677702161401418134333251437016663240353086971946707725054738667157124645694143515484920976818037398176559473975009414354297050326557367262321088516593317155037197159840489150791520859314014362079460828220777819457335742923414126628479404337774906676497540588246547992001775233257031773829611070833396852780086110757320578854986200712728454860655053261862426465031673580173976283978627470911194077744040625951557587722161694296706342915323662098671331587790286821250231818027040507597323119621074601838131878328272562119615179141782464685479724403917442386099408496597153732883344111933345026551515474810477318077342773439801854357158457372789737545227757833714576245602177421286326821388627990599527797710585575675940307707500690209250764696892691746484534227350275466699666289469581497887890688139507890459905311369859214470764240764698862369496634871257106324755313403396680926561969595577494571462846377228751048980238513339955938540955044704548903079410584967678870650994816053881352141566988766993219798666916739340086884586610542358022808922518053197839634796794085092828049319068709258550118687896189652478889277478431644312925297396906980901251602221523860823754678407782702487605914220983225122581285804571337594491443610673038694204962456712962479069422597979000751070116317165003069137861271943098103963655738435382651823471679967634609274992295083142708589849176202971009400155808925224637446131095576904537863992077289869918100387846023301754223290260488026855386719688975346573505708184012646943315847948189978374672519197640551499582285207394696168583256156316619109537762723026488367767390859960982902994191586388074843064117329213511157649686398372911586442483622116638448459399059736739990998348718697365101912774536790440816162077539775110951135790411204773347977563871639874030342320259260789024385110733421258036660577867533200389221719732431639107172363934518845041620647850958946598913874551265994312832746428215365390047824060635333723919801355233275164814406875682108419927989901309911058681212563106082478808332810305403946918064679817338277510299376800610329726362014523610549156400402901790732267011084466725703722642087347186303570088976482613514104628480799749012156900366250831482984601583053273741405000603984779528895013648669729618922224400187793866736232478607589618009998413172570372828431049898979231041663694098343823876072128583290344011349716245976186859515769305348423395508182876306376512712266993851510897039698646051773613461627973494738609271966535380566426042538836139620400458283200432609893634480248400983457604515420706489866366275998820645792966958927004084144287787810924859109155623988740339435921242682657219069702040106897040371832251296535509268662823701505789224725533705625513718781281920377061237824114320304387923243491750512095137774543882406516714814931131657168992998682633632082546903180384195414379053282678408827345657220839313468496534373582456192791685021533864120612698082230051525329053553166417635562738596402362799139540386975671231986674486243078592286569276859046779294449537834231775500591688938595140979130798918622876666579827648409872903676026602844505449007331484422375983940184841273984190702496964829545847626378386497624300738077639400673845222368526196807246924703680602355029021185226550448520299288646717074883916136078757252844999953855244606152380781297909510174757217180251926714546512624518300686921400760185608389126234338485012893744714467373827669150674225660296278576948508615689387982904591526347315868848312498926704884930759917435133676405058123229270279190178144705230851925146870919524718702979574344489449036646909801221973482199845465012335283187298812521016915724466334016414503628158089089931413916125416516078312830692551453937939407776262662051403526698986769265823956041681006112704935916465404836392210580824153924629353612032251893586544768581410011998440623228614176749487533904223368220087210111110803825631605490185503803197419306321996098418447387420293663644161355772913686230785910644238896761810210636281571144636513448615607724309517709368494159773131064214308769186020482479713353194432495307303582458404049738010438653260534042938191458907392501643394680888459374263748123294142522346164102032843779870368129896066447853967436959379820846388385713557732808719494787014501556805387849801384835825131688280724352921312943630652453418883407528120245569773469842012166661461645164452536305679482324155878908971859299835096761268752984114206318017297293119376744049825097399599427391755923629399164932826845642607553143853144662482171297111638103767910409497585293935718396358938146791781054225692651000839947972128651483738939701618391867253091626382304437787475171979171608315370303370437732299258050275900208348840682571916396767180048840453576062637514991020086009324398330589702915513371465720715620819368183418060617063943127014825007103272487067393086738796380934581534049815010416343423407508419132739929480511306718076570216707737221465168581909898811009665066583711943013009767686340814434736669111064740908455405620852277167314689950239301220345663651132152938879212749697116725316889111121812046591546576755741600856944386877026181988290794802037712168269220389561248020427110394047311911961336402165170145951814039343884055739882494749753154897816692576787879595169775325664560060016728944404266633013095427947747978870141137440676723958566062211359972893752823642726845988583237472703425488784292148554598171570793427182933879767265856275110292980829051380220033750321146164767244949022847785227116383910467067745273094332436084000221902130118585113827088156934526277670160590931238053648271667265003321241233201585397812677549572020746685907976435834374455302111582288622615672436051078638296541862204810933503613139195163461932461507455438756737569876357107098670268585225050904309330649229441844361043574451565138993739634396164081067128250912172253107509024571255615383304381034347871503501521983904654174477796489455617392317081855722170712010571199493076414422660184339567272218417877832650537383131424573878791659038458442614776463795210538648838369195405817795832668757234573529777578421624760857302469472049621385750490880856049682397579109032851191943931904946426132762263710140180919644779452606725491942707450797457330928483027574213145958676012555482937771615280080498068166425605216967244655264582834110617728703569400361865200165302521117154341774687127337831534575517503114035294675705015736816049248252565728829384838447624346308784193305680111601380212437953511728005746990939407822777806430511448539873307478707947870723516622742593408309674668678816911640864275783475546146399776970204840781348780845808431177848823685726469592493344817082172995203610872171350255836923339832423882151593557273690082471058738263473907448919078447486359053545784677624285304994519636865464523026290710370936688777533900896660316310978892232686079571123101838236328335349841409200776560893560583098073122441626280086046083299360585699818446233963159525286991037975920004523434615655972934039245276986291405916510282728305426722503500667117873231902951098274348727802074615185978948605819731579311880177450473221926109432797046458789560874668484330381363813049027743148042117768388215684558640411334986473293841121643246394530233387758141158484272601635827954950086922624101023872160595104820774008761506168118765316623883639108766577735022677491763129711426481914983095545668912492209419732979672683561715950538712970308638595100104666664458503195214818114119998216638950631255076285085376589692573147854731527867537006316153800402449112194614218553306044542944262098830221216857798265861093117241273315603289150798664385895552861922614276988052475524518818874260483282281080397817871293906974780876618992686606712666519878980460988205133697232183847382871999744305189371654033375644066424838059585175021019604353443176475147283285742886601932042570982037372708629819665098028577154574830411664612050486231188307452473440181211606845012519496115736023304660885121832421877260434986935260022295559824360056484211860285516914756442654753580546251808285136917251789840165828414586802931512874279034193777956103867768680949680273742437982977455738802126758624086946289856565949343719226833370254639829723631272677603620054122567664383199508419797019865598820431367754311111513355134078977542410436192583165649174757037620994614549995388226624825567732684473900482818979174401855819309071889905903364465573194132922230958343517999018950254298062222926695948583711900825812300616564399744507192134035599475722797762395245108130039063487323917782722678384918469137913875227209134655501335939592884352594147056198004934784771962806091995857579635065613033905663408940483615959376595959512567218078715529354800193140192053643127101652425774377051891612482281918423114422892452075228391704455739778037435651334617469608330182886387876909583659001780374962025521043018486141794983340050801038728687906979129810208891920101935238820752303823264423092542356375400663348594737681566287684410652832548144227546863526705053161390846775831195628299260042522533715857659923183056188275267670945212003209512782659041640153141306727446301043769884511629409293540517796328377478312597596893654457301453094715357120892981310518172391347618133372534148295638077647553718910815415408794029099005360587471761588360832489160870530759317857288365491221845528738490436761657170374501807544794108118217608370120809770038486178661115616388031051708143767198276401654095439754549773743106145968876768576629186651246771164275505651304901234532692570910291677332482713035491580362309380544252076743704250960212013252687141654819488960252436613201915204881746321665708382579910862429450383698109913624848099649676899166357826200558363466556065874607470434068208072967083948411755877275804187894446237838898080046552143633804845164790600855974338469082219988663603870410498172605522745416881396866769870247171751721996027381020099976980077482552199545895916636012047887568451778012299411031473155074354836474180618649490914790224606326526107435956901904290476003443067422747763519883977880954494795343999367543897016511742100018506818590490193508262461183680885737781764231747306947443888719650144448282907544935358090265871540342339208630381347118442837673419281328884626088841049412088076838102465387531076782771454208924419135664615603799593562997705110541805577981380567058465064536694222108131302912849621449796417453067157107859373871468201791463925050682353241125540095443704131479954145884160626453172937050009581251581254097171350430450074518256356813534144559529041570647387433216469180241214455734440945681816083272048576875613242212706387431823399722722048544763725247447876215395262599737339991030593368380624496951008789585555587177900997246555943570246771629220725722203134761664120246582455586699679930896831417223393108447487966795013414834647441329052021100061351661845803759893582312412387817438158065259583997840404708605721484603067918086886474458398125179700665956285220201926745729769336943138902498154999803566171814758189805944020108295130660753586940956876035857815450860409773328603100862750818892474432032367110137914824100081323546884939001299985379807953860413550518861422531745315887180080221276182175528139854718511783161605970316218147068274123996112891757858310232366739382143776516552307622221180693211656804012131008081947452936517223674781639687373318129751255028047072831458507884422917896958484204116513438867038430940418587591709007579551725944117320181882005231331138037187269658013809782201248337589556754910276191479972132015339248281565258784525171328044086881636299534130964227842728638048405029704391692765603422718234342059071773643717377171121786102986333853805528054488796817990996021830303327491878348999706551982652354960367213907635419170998260678516432658275139731053029344190778491549477499650390553452565323282283896095872168115031454118023857700105067807249711685256345391122185933906948589862387615890801479867970024704175690225318094568596655097222824528693569746275635992519587567062388133456489274081680156610666150942014027960308765577938910129284470204968383477646626099586547169874853475186672687237769687980393803560865105729917858779345404112610371789243708687783634142486217258614138692701530029031706741612242070531745598967259080823330842978869152645016246712193594181254226063659565571652700212944952022902823579291500383224778634474043226026010357832904828385796811744279248922569054394132512626078573239461897227100406463624379807455646776970125874553852829948430235472274890706056327879900917034797187572951478115711675669815996578927593024214319173744199579415224692134667386869951092021634998022995043505211838819851182182358044223120791263884137470619276197961049842959539245857040089772917989519156255200349608545614895585887910977846167748269404422006404791107496524985893343818778573956242476699524058454983586538705949517373563943226957935761593130557620901229495469504045315082605235782780676350988070995000305673560913601575466881261084392529363170401984329855682312542841707434126974110331449455348712517566220634342788920042400425136419747539389041523645732554368514643820689793018309334338862728042511469112321349058959921778076391952602452064091763941822937426716737375639017334378790384427909321803582744235663958322362439679538188833827219475023251495013090193817333166202767421128880970965813563518923167098474691796378240069317435346971344835411949213178231766062639524828614085548317502331465734378263912492305737953942291766950352647581131968333006358692648803326986527307524033541531845106883470096903009866160655853139932819777490261447114575222733768695727470222977347425219191779406383872845675162966041698312702432624526128736435774461018312667211363925740575783391656465820585113316768376416964663445557697326552083313793486024672374429730869738572121339571363721174015463246836467428378769734342031970551282351412108799716251927936785084925084192408335363798984109759830913683963756323138909985881437101462775764370593916637806466811339083055922833608674120457603241175953959344145747425140515888285391839199104910908719707856491365974708767673494855738597310224922087769449056297020240410708036370159860435525835107120396677086079689025036816468340777844150940286071129473878332090928471400637818519999107208236977740333104049677351210516585890608623038962217038286079552413958836778359589053831730152789557314088774018955375103372787502888001002483555680473204207209041918175533135777207934136230928550786232300509649384939915370009798486930456031508753683562089708366048480438003120874429706333286612720232295436761981096880594588598626772749168839757691533301871941612485955542997976048637080544280697860179387991906592238542948217037574971660032689240984218935362266133098057954188229735522955756014023494285267554518922635823206171506557003528651751687407516284302844953164628952666552492640155705121439861591825444659396443774077694859792361869619978169748309705973179360857112790890004255606419085617432893003851677046284384421576183431542507930464243588683884368233932291934147565188813470499357169005991871915786746889941032210106822678487110346932146613860038383985292901206340915803673637188538049943069318860817587039179513821552064842380772815903929863074454894731958740177271439700387283987616645592976278277281084500324580153101382205172722846379731297146762508145387696025340969319317536963330516406215499906136289769296886696462505846011219106326125936359330456095492460175901555295347611930340668543411092718638320261957660813481002804768593621078310753184834679394020622275858146443381021896843555944110737985634470966286890995800914431708226209384075245060755932976321675529394212759446280769438103880915509611635322744549463599748290358302085312774916463971053524778926221424305705032072260318008572281000309688953846481144605269616358760853895867202677486239682442236439689679516458679015837907607518861116110035226545447430563468835153608516603283397564731525951508517784129189356119119748158845888855291502415898436198959498086420719684966293707744347863088476935123756083305899496457368384372346044159477699819156784162560729963505017931443208778247016969601535341902521789536961166624546232931183003849531267663460273429013925244312831157390343668164445751159639857605947807470986853056637406868847387361730771433997629097669137342758744275280338418975436376430932225717297475820292168172478815186496411804708785712410699759117215873792351575791989978986557938008934544229978462187457457124969055093775748934595276451742859531987436232161505406498991290072644243236261808964616962805517604634430887090735862730250142772917713749588072381988791787468131229796829117025197895287204134454981183067395319776343498668327237415719352515213505907796074572972983521440731990300677698000410078052403744861059495432479046024301485201661114321231969123130317842437247127923257655808021059099933832211024306669956431802391238245510724981922594168448472225972648756015024198076371321340242410889037146306990514299529992491921879645241163737626503353912392670138986412724729754884467228253841233953743043645252325916120092186656894645148371046504955903709251779731151270013017548697655010679212416790118177909094185946856797789567072281382617416967803694792784383466767096706119556407622314857368702990828843473846437374505190372067991593097294896002217395991207498535776828430540881825705472495056934752718207880981601770620570314634330908638405081641024213035470557433545019110178807563913777798207186416593052339962814078890935441308311758482010996583693343002922681552976990263253831087164427283838580949612338572879033956238845384704776647893945433238854926945983104123844775546911772441587334167743081544127227114340222441916302518489606167863640272138634772314708684244567354321136368510634543478963681989052113869635314559282284950690404250343446818153124547037941441167554234216794589383625504278632223943694282266855567501428380131646851085834011892138676242243920130935182920825546399324691670923769637533547610648362781566285041876019362692151244381522135970038453262584238636621140549819816009972850021749017703673042929484569505854544742654523903833250484895568950345194790138137895354793666071685292497122428251024849723847577524533894020267944076613158612743815913013965878694925892430791205491297818772427238403830377345085124248806865798298000795231144464159640108961367556415366946396985269218491326337337148099211761933524498411099722071561431843977098231613369257107581180047087573719922723633370750180752550068333184633655910802344912883131915276997229722063283113661292524147393815734431702027965848285599650953482372563258059703556512486653415652756883189584534940108106766774102625330021330555009096479824365728300613550091676008950845252486762715685496595352641090624544672604407598890835483093110400936220675246634031543065518541067252771467389246196135488265718474161847885606788588351504383906137795607175861624865759406902558923874337523973354939316045177267357375078890793237261554266536690594039409104263933632496714724162248935017464636856433546302927152334885835437543972020063945766066958427316413633528912114467448724145850107251336780437655731874767124504131704480479973639322186618977737089286598312203757984023104132164258386794824431108159351818796586729803323423429735493163382066120987749212091669996084167618450394879861224200622109754303433105531258074876731269720217117815649874751153952756220844279585950127113344638107705024208458677338401923692556990515601125157451542570604598520292603193137394192152437682543472386645980134718632056697888413590154937104735667686508845239009536327617891439228187653943600347912839552692454662448432801895009661177437914233357848175251002753672499005007901405521487734268764196990028576756843035754820933646449179786206641338138838292836728922618192425435080778154152949143240500878568053878267587557498819932589155000668526422652555917067030106945669622996862265384264068622897500699490388371631680628628433297579842984625666271382350063244328771145790349683053573984125726113669845680835348985680628765758152336941505373098388867716557375323410231217751650751337580591766923518555186056360838672184366317996335884749475845328616403849346403294520310079786813690870305459593293876159735124701710752875162275468521637719683682560274595903333434821911133338615767036050709825259972904096219224785354559892111083153525533801909893419323752223134168368235065977428567006914358311259549113657175910175705112454951930528915272250265056303730057206230695391906789263800709500200275840783160926479057508229288523141875076960230503332555548086362662167925233855059055150923378394764172333809113524344671019003769539353162243248685615450736612232400253193483365298704650425237935478219089721713984887585549935721824856275568606939334187982999418361193593473883360826301167568331350584835911004864369812520262020287219962282929378097797939600406779283763915391285123394063475759989483254421368959006810552791036670794906006651229848363030758189980072202616556017847819503946926960953274609104649940348327056353842688942863073102605063905447587610565196340632682327600035284307007875104861040674721257605467703823604364692542507217246784660334547662447332830838675399398157978663910965768035959631746428189630227340404984022420377095252434883337161467694275956149490479397219599973787417334740823325331390123817252737414513368483047537816449440350450918605813140181448133514267931594308578165356123036586345499784372109467615404403458703457815386416935912587170603519059649381179029783708594778819253600504953846941948665782423229430376601533583533182733632804993441348296641792772053100381323294863046800152458676355767605116875645639613328802853884472219642320320198589343541679122965608617729126378911209372887531746691904460361081379114244445738501224064807239960321945976436004329386529489064672265187125812780541673251887539642677604321862661202678631037497904906249228510110822396071557539793365870715250037792913269433478715402393837226364119718892307340428299060356050334364930593144534796912999764264338299745965194367116800062712982381205368194105321491224139670017657990479742702971067608590652053544459477166134625665037185483330286360718558131074583253634138107332426798658089953410269610076966821227444110396131297447188264986233130035465982953475925254510329933430598665296029604308057854407146237985919931805521352925139214602035662165742153876542679544789049491892304999010401949639506169748754854498457853037935474326685422799712688185704257437122458215592281504791026780064621202730820596133546245940869714827634149972558359255226262936706661552853527075680352553989212018393125373683408522669915937643127562939283123472925796288522626760924687500715355604332686583907653861730613167493583816177971679002460892834732936514355038037104312124706860079280975844682663389909617595996427274304078786920820419738534157488785449988756842465950103432595563786024580510546800220415147308636178934160698392376274934322087064649615067578071474659771885773686503676753549660999688043774319913178877988860058474551083461375717955341862949782433257576319970017934679330547662094650758765519821592849570820529200019644068971430809262549582102198181896071396355321718287212862665221557879712855427573122516497660811226201698455623395900443136742122002065801111845180765925136245396245205936103281831500763634481024093420079348307301839525604160462265243821004668024012246114495885802542338274959382168609127699816586194393813234883363463292546599538697648055055488641309156497471062402335846976196255869277638368176286873550028507340904200856250978427257903412796266431837635532882904231237632283836892663212359315955429790429427182642083251849385508737638258249334412139625511395593376423532388571495394556940541184199709506017896159604755377168809996183328932210362105567542778620503245125100740336442663729644079975251195940658856612346029291559732650099413752944021696778160159439488712312951569480597931638381050509963401426374171898970497757193547473290377233632466421798793602848487504107163908256414602366952806144780376138921173049368879817712755165944562964076914883123826695605159083065098008602728595279980052826341490843304039397540653173111205821148575240239178748092227361273661325869325360179589489538747395317737843065198762325107480751537115221347769130369787805300174291149554716928364951437213590502358833088022502516937383463716301546552121680627065433288660229227273421679758021860589498981652615075465149276016569300482850636093528864543905622885963663124985928529308907449280397473192462719814256013548265201076378865337176946113351957337885939959003752902351009094194401010740859516583629444238459161653553738753710135061322834469502921026465804473984112019005045576153352704234542477428628083714273657794544679970898592235814274278508620646994670661979931280621009644778088775970495885705060067592926012368794919460847603401902882807837631308254601695026600656362747775141831205670645450155739698268556570459029794520836574681869925481375480539378005098245955092708086994610330355783837939140636328530843478424494402117346412270853823885511074285977445635613723128457067118180345241077620468668458866796572186279808231084162605416729419080066614755752674282607325625064525334109952505058403294063180432614393039131367848510295976456611839884567634522690207629064305036064145477668889726025984948403113256911716953945350158092289622369259844011845510111977698941831184592871119493584558151297911205619860031250926687307740731026413316914709176267363814512464868062921239334635737226967534451899813082193437595588509390622711656995314418596547053395535071604226833220798972006161991411793108407808570711647342970583849325537141078261078428540362219159829047467867395575780904037426941840608086285137316749671133467378829172112284442304571807872198092629852732911128095504057005538231463138425106997426374842025546522932103814501797192989878682947945156127579176233503634732292759961822118676596015358020602378167337305460808687699126378796534768958021908762711219054927609810758773726106277980269133394436298305326458687821619951772527591762595414577525208692527735491143572117509079072140001657224424138648006408221091607565533914972649353932924690934335876916777835944341458835307454173964388119691608022059239676982153882586160427807597977670263386399267136814202254237050763826426606491717448416630138374843637901982131591357561982113583811767166720774541160262906705880665681373199542849313150834565944107870459771991401294987450158641641646301794166005898797056668632768869280289356855449551119291167234016245860133484002905660326184353123956678949897087851546867012558537621050141962980395688477582965449270156311256265222639186101927363918416822003369171994790452086359857434265141807069587564402367825021044117762419738946193766265998636591840969141893272833352491946536613374560279013424958910193835877648800024356156679899188770220540564993999575837135938458922039904249064881376384026388286920217649285801540468494217964884773374682222837553803658075176573717133148208501185650117036922810560213925270065110788291153928153124789781469822221528538792857149489531533259443951406785544424503061851089137603562605885248245683692408020924815699118737904855236233740191584930863523609503431861151514947618805727811854578249374146429406494556064709069730062388667780004362478237231622611821133092263978806276266252779542047543377270886546676656727061838352330574616368033109014746983656955785687788139906545390103361036227309262570015799410720427728340928819182491531791801826250463941665666812976982138648377088913582957992036730712129896687723746921037649661397473619666328358478965398352804707447750599027154819614831264154430840009704479023237284978492162511192259104904806880643797536776958306285913987833607317154113857462315057219001705266762696219634184749797137250377382309411505405007912995226907997955532461957866612100367517744460773807269596331325663972994336365180361154678679872365143107958328654199321238149639071027009859555286656678997447556236269408390393932247313931682002438064561878476699488457815012158996623516132228913425846341734515912143769806643114906207394406700170057572705037110933998487907643714063468387466890769845264166865770799374392905161714169889909120751258472341988454336106796402437337787692072964513724158121473092274892483813035948871495341418181017350156170931959755261483398775924984877877467586541207102892945101351293489606444049802285484687449229450578269670297885213646801833113729069365270919820711487939730452232494492580642967966529343825165305166094564886507173104447038279903248140045087010248434215851238965102064703065121633715905828292160517977499047702727037053185453496968704436291606870565314120171281790781474913346558435843289167128246519059324976020029644959074368787764226263640717156575156014994893644315883538026822009596216808948598241714401485282501724087259849970468716984163506175783428470917802604456488598854988718926304610733127369629908994742103397079624932912757238925299433546403573299924414561904982961322261181362281930129620417872628788140254808663093495244419607740168870501405348899338448854279438670828920803539376175296648310459616770282961069099311627990498932759814240296663454857924641746903120067232211172173938040927999158949099475483377964520741070508244486985817835423492234581061017168778930594765870959718992899939037382838240987279594553125976620848704191594917080299495364986865229244964376682761650102462196204010528927771925804260316615617853418158454962103477047210157328002859692779293442641955778798221238661205936792268614834665704670171411518063781703750621387280046596270969417025578516019816564058685959006775504771446927083905856976651073167223550262953750550461827536446574805076673101981070621740322116298266268353295811095120205521175826137387725837770945590715722346018170222039322386419044401865079472404618030149388836845631776725737233953746275843709681172320078485457962563530211952308819024773594474331437956938768371459398152263414126990893153397906346882619978039031505441134201509443548593349896848949969733527524620677256459725680285850148141369847343056778250803377944962312457470980026517191198481945402294978874623615023022739015029473139723578951319386206656506565367969778198038443469826603421782024188433757299012338165862556982388336851273180926718207200007272449259937000594420319189698479369987387514888449422655727672775303276377976451655122204897944731223329768302042494800764267548425220325256284486901032715414188673752339442611506683800798977979583225179929635871290277060678336751437831680060090139784025879408296236498448707387347841613152810900543953473696355732019856381975314902656176110314027687872454544594638944571671606153735399171707362787226335032980600815335633607479384964031338733179296511112153098813407475770389695242868532269516722671375914587165395205725268586328102314186219434401183023964945154508201029480517734908775183621911874582859138549894118843860794997737576048895251676829326400453264974955223800645340472391868128341612141734004338257536431000901757901563900998804447607455869572609139584933534343520572126757676777150983568186693875155472392851237362580435130502820037253062212525976339239588913978274148942447636243286418605532116147031875537439943006818023176057136607992473711333239093217969190789859921501672413164764750415671134467252407254721295764290010197502970146445268643953432320427665944897792553887307271406311902766972863278284969782720061391455527483980217774890568372739505962645154298442122318086064372155492135235270126420724735817846985479358158548640547012645531027454547667491220055259961382231465113046508390370815341497625356313689363841191914218712593957373131220682172990800450741325932423759993772875841343195692170096738819459373036632426666127421802536048294364830829739792013981798356454342649594878313893798438126218705017858349099052064554610146751541715943839513914278309740327458870973835977057804422712888477868632863716680829811013987586864795599596991354719060685379284731437097540809006568132772615822386158076673448417102963186303352413499630854353895963123196447863528817989167118536951646706383661049076339316267365584901840360874391261219897929028958584594228507156706979364858203496146306862220084048571876158291541947430681225564346666598994257880680706148288370504811561268218444215834032621302473349882755949788919928949847024152082507142140806169329630272952729057030441026497906419905990002084557898886442127778074606808362513075846690152045335330360928322684777100390751021703556605346905984211970587895529895337534845156212633243419369828003334928800727272193345288696327904786982215978376839016884872256609604347543068040782307292222453517208659556087965233369620072351257727929934077801326785940118041998091409994687493229254231180151640068968870748407879104155630627394899213661235012788489973280976150271548019329406011338798966629494235990287938902005766456576071759813314276206335197668267144747654292309429124050270299470805386926538029714090771667020791097547214998954287075785521297345534747530615438939282897579205120959703330033835332598068638219670852527461008503619045351816996215903586318785623837785583337902485620139446899167436930477977620862417299980360083911998452176028975042588606470359907662849984710376472897489218223258544419680138472687679481418312489006108860990545319673945852102573246448951460974925976084352185828449075982384455133845264214165883231770955297570114721675692554301111315491779589619805730171552534570668010631608984891958415951628838114469178816279877745769181832075780692858624295752134573766941641333622414917874512093537897372955000332803744558720503531421710616453203605921768688639515952906929618464024773232649324014648843155335897103410899508322533794149401785095417603021339365920102611204862659956223211435498999762780205879295787222073483008699690801783332521799590262180391317872294006910662715335164530885918751487411804660339093423572721983161260519934676229960102530406131259595960575913324198777923906452125945227681537502683605457920425247381447934872129977619200680337605555748038268206780155431574320487337526365747316660868201050594988194630471736931718779306943153106785953494515698830247069753953461473301903614614851622600406298735837948084847804947948142777691444007551000439141649095899975575980029126314712199189794528683817663199643847448298528962634098930147586371451777451173284902411879271348302602587045471654626853469460043072982757022773854538065394378903530073421546474765135269658696165482929896928583792559368667449502207847448782027282634325818634669247139276325881946441713114300278169659114177564334441745034886494307108683017366372151861034846698516182919906694563842190538044553311569211510829921157876954901302481343859850940323959305321202591118313510997918314922785490254526733964596729479548726157295150515509917273805057565915483172804702518464857843656947349367543686503014956869181876919120470486141265365713688220425072702455138592087884008573290053050113207144129019490176897071837548204445364480587958313357415431051301101958291525960643432884808028467271800375058938694800660546019496893843462333377408854321468150829915638349429902041467817923121516697385092807649929535115958753291043652623382729939488113784144671143785209625044750977495439007382184771479313035278493794544621447658834060180368938731211934461190370217611235685846513727386153421902276813793487752203760946007101271208555472692828851790786043466680246613598373343813566579799544396344171879887194221415541032521780499284467945789806617917768531973350922740769295079779595993569538779454264975104283408467175993815404910083316381569545629150081937351229028971785810150361627356662250645018238814396719732246134063130087311992672161304926084929410180407056464709833620372723242868052274631494157708367519592172204174365450491710461575367654074071753984739441163680974221214390222310568924036569924365021573437412534095881283128802191373852556579836670716724689198013792436304941942204637150973950009359963756145959703267754339661964013152725492561564823277594466319217043456649422199370777563759480353044987951921806872023236083445754275976446620917574268742908863279225973027500190961818368380953119001284112701083602277644995959301219245238628063099619528860932839550787292538854573541282565625270426356170215594271139035629273126616214893188085319216199300397886493242259861222442451728077196641948118111854327064980317540977856586118758772810923096912133465081841824616381635058542370761339392954891810671014780671196276025678910650797077714840881632328620231450027776424519644300358721013430299434516858797941584064274562460091486151290872022213001119226251517829137658704259956156182650045522181916571196209087163329745587373456503981112881670385087009617795034329272319476774261712239950379642414148637474999834913659728007791974398531230192784776712144608478217930387476972729728037558929997842275242514381684529121324652088725836572608528078357656262127108841852203117306678701223566683697865314265690493059663443419772526972398147373522519425896237434009314672917252594793850701714708474674333583684228715764347564445587527148872181961626747406662228006925947802019043268615753222144999866173042084596108947301588315464207543203056865514274584168869007810162574380003170722573751069222980833633844136364248978619343217402801308346924492977562012681077202006756463618501714613941545521143019854543112605054094189353285081314607729237583605731130355959758089606067097277688770061838490904645214437826149970021681821204181191392841724661847554810963820443600486656244866632442526026756002887063162473048106220026997202095038446071594709493547767409480752059864772533731314721984019694573408519156189341281479788126283122295636630549886395931245681824434400482403076463122566480705437054632075750670924815739652924702151155065757809056668700548790800890345588339068604574817591788566763307549907369164250551501718431787133549726749750418648182857565011204828613982199302310961916664030563170701725845841736982616934090480711256138392376146549575766264835843358734069970411181797802842132850293588812484665512505215138682381098694827419954302025768354529530200193627607345621925286269249431158385963003144745554520944934520814247392885495059581276033701914183271067739821516878070275954761430534199572235954384293205239549374659196448645068919626483051527492590433666088539558048501533576310978404799086887150980175432046396878929230421283261102010455364656435908235520366164654373557018262463999244562441698765610934541956306262212863343835474978626748462224117927155506248878358485515193828544459372990739092850381357110966531434259665585518079618885470523066553083248229637738224727894674759042616702137940734314476291016928075192549434414815728582360439681330079304814881721882167688359987362169589303528975335791490891376076567884212003506176800175393023240214592785458356158371671268467181578404087367323231259965711697560658809119736948010263525287609195447585322592191967985473238706171276086031991590022856260016235074189412039032598755627048722835432732518187909815470657070496322372675306685599909588904908085236882440114730482191213688428949139140918262745257494972043841617590118697464813572490571584202829141096558699261666219193348536459260478911760940789440535170453696982608815865773121495577217655068017102552864478090442848442912024190574970328515638420347318895168938692680011212566459259321056133801014810375235873935504462280760171768594070218481684167668900591934830905109119412778594909294915360287077611446911358116554909756182219655516220806863828980226199166341485927915202686726126892805720779788741359466937632351274223238884497862423211452397438530500577544089284952362635991050189544423241166080941714111721090618192826184218732722913479263828291345712238372991091746155019805244665166639129552181432376106534119375103252601157124459666087033409825646612037872447870427333832275764334156494665742564584928572209115122335153536142298074871096989037562765175126121784222655022068623936803197977220191684143028331705742361303966704625731318549965261339406912030199377948429353177199743876637492850084748623831392863349756299575107074949149105310638559504348304070041830273624112395090831593007129660905289757025810965589511221802799825287286154325055643731682049204092865336718826101119874209072373556890322740427973747059988919575595926911710719091694496468244546820995719920514813381461741774425144947768776700259222563188138605199817117437395914613804876122986933317321295611585023542108235680449889368037758925981584931976446666287004806414725841777708363068528720048150711552635422731789506483272845906549126076775240162998390556480337204676750765359752773237767376249051541704084179927956240781829438908201284922147048031082526818915215654077872971718892341742466683118042902134240820892562733229597232729552172177847909175619029827736162306193853775841616219770353675748033145063903980316589556427105922528618502792619680250556518644357950543510105460576079517052770162488206977032345630846783424739520703580472307195934900467300892763149895842765968372729940650151541967703023915063797875677865446263788986436171868948386752081045765902398233506617958695257368305637370170983243663542835844253166605606336672396050933496240410783117003611394266427308373582581641274874624235208358721387806309010291688485207803858030228447257930250766000109170137663587383035595475717881392812714157449633899002740688137591364299890956871331867030147128246934057633492074500502168412380279068311462589179824571034781809128948079531078944642567083648201730341408686369698394167071619225492372939230982703551413460354460763987042729621271130963952542894980891446858019121014594675832763471800103637637892677913472734130633704904718704182871918733521840594660625113561684850244951894491538576311649849187682982372410718680307896168997303290498823857625077488246514723271343649106804920453496204625591852024533952479936376913182231524454874241749409061116001847709236867020365596127641987870365631820650307351217865080284003065956996441657837409774287947931596299292949482641152995216168735317552581294268354965997443851875637202192540638101665572190493620351609506176011734693958285698602519798651307227543920575071709651257816966260630822931822915771565820274702411284168214782276167591946299795529120643566724773916919974854977894334452827732275747490190486605268828690833051615429866316562728795833260212222358902381841906582185530049813262324594670542734900310895112064814224790074571897623652796792010608200824948175727160201384261863674503925263394504359816214296244108666419399011087980854017024185703687483591253043346520522289688148113560843627972001530559557490115439590629758183793632710941551819349210857834930346692120580496671182347152006302939006434809227657754099293447133949280185655105952456808120724399234255298373260258132980646216275878372599978202460283482630031116053681399431167609279647804020852788524512600356089871480158757749853887938439755275956454044181019599126873835973949424352896548235853860127386649117865882231538789909162051987868091066167870866138823859818200815747398550292601550171801556376237785166980458301381732232628635835136909407798519566331741750637840421546753289901052855429964595705052618833335861235784358839507912299864501905727190230882836745326612639040789011962478947511066681232932943419940899913501812995704343686373932592346907352109683291844027184919247884989473934372584566222459505929345596099040448940743740234882923006061790941035693735082960850535696581003213628570341974663293603125367661265287292497730458701656158927508690833566388055188467601921143209916774442212933539578287397713769993460322882453544940840223357034926661294365088597600022446400301607337212281083077377110615920481315468997023461477859254084150928366880848405292442217648722092600785423815055596088188799136734725039478050955362912418039313319664738499262887342339389835505723484693589338544873019100186225683168840143518353281747423538242785175909825311542716158503779333580136310519968615738052629305822256621436052426637718300450531740759496709211719875241034781131391831078894482658391695226237048940550634913426881598838443068934853922001102258587898416307670898005543895051083279772604776890229106692111446479451610497617892009946902449706768958840268346728828205979614345408695572660024941769315026908926599811452586199655630056674581905593980040021386192801154775131862362503547339855350360331183434432736384978176089819306878422051133208461090435519811815931612515667246477811160686138865036368490431897764831382710345974807034951791957647715353161369655660024021101448062133160571587055590835697249157734445670958272047430934699078169994036054072561370994632727616136713476655801669599529605943505631252582438785897457990558846988041930948515093825434289872031821707944917715608003191644322748272311394266567240069155629987333427276688833085154196360739745885071506638994682893756335201371917622222809695302380742232457269122328025697938684525536066302038674778579503678064460846292519329137603599034411533836017346802404955819042646171023334315075647532084228500862867265916994691558659044308817085891668348394809389643172040511836111748554270568196257242005376192862568807084605315220095902431367267666723567266391212044483341716852473719211161604237624984052469424105243186319817451626862749104217129796625837336912354952093089134150521383600017509942443112570868650346869658848207056381182711777978245345350952785555347368804523492553239552890674287447724287970357410916164902400828159831382239862747031678691328437973817682502215092440946448505491386832360144206806142615766193624539875780182103209407933002713249591338536267451342079520658402749892494876453323330653153434300562298106544881479265038126529066407622367042694375705248971366221043304405303170019737053050485287330712104270317794794808872892402954606974243976537000368965021034607236850759970026184835817904647789115097476720519083120070074033365529591543948667988062210207439953733176417694948050746454603718355831504203341363103009212350941654333207860200692860804455199090871946419215396137101239335217286607374589836132257478556603386284043541393151459245807328437276568372763463579863021688614598614004909913166612817311549260915205496585229783493640616408186416799182102498430382728370011280522660726821766408744611996351955142482081338821222237979023841912295391833239231222330169702594243688307276223004089216181138370921546659330407639176193339274823309143043682284417240244047717900864245277047581909273386575580695661028558589663239212235666155292981984348758105204882755154394318679721091498895104770561884538664715284800584795122380024090031924374220521152226855505591439958390780001898986775132157203826328289620122225295654433837198830221911005596198653551816996792580690161897460262035303064979546158659962774034128216539183665966470814335957233496474569882838561499627732845463025579928709400717229464113770587450129258450353721141758939688081914355437193582703521051990501487539445224577382393973475612869284261084802848221903043700457233972551240638829195725973087397893710927498058490536358469588281080765224178104878851577524666117232862530801598873859427881152735836313690054943793981663126625886605324099341135752172308772027182700952874395560306481492053442104567537842780754598898104101076257620577707785948903485023934339140105738182296886938709858372876515449174519902680391474687590952982150835011873772579285051898460732639633910176725222054031901215767216963743891881603021011831583411788451557400552073660726732384195544503842847814005036436803089410849040430052751297508849421151895789959327732958711190620705833886029874500774961810627912332903537008947916445992922645343676858507561751137886496611444160580572369189244990071121585429454541441372627811784938930435235990236077699794944407917261576712062371467519248849061275783768098938158617373255432169114074045677227458727658464946465603475814192119338595092204206520568455852093646603179862412772733294073709053205634675774121963455953871465102121180722819941676658691880563556181873380085796436403341363288233546009235398440244003840896234932664577623262689303376443825230654644396303783388816955505477259989381519968321345154158571513949221710261631476740180346417730102162949571625824045330572534604156918638448191054567555452079997263646694490709654123375144442851818828985846775515230247974909432317259872325287625771537056004952695075935948173695733589834602810800649087601133295459542291008030338083821194625546887670148890879515147935812215727720869994841796623365446402345440964040627717092014680846179948655020487608874289066914452408937602152874178259818397306217045425205965284481362207605964148529661030641839300191290528579771989523624901751646245319589021092206564673985450309391608272485187429859291384414371800271542002488749128230763743159836608221219046393344882848534544517992899969030140834530948752061350572552317462457985667097041132606774229427054865616333589016740376434316135438118322993456265322334265826248849071871837325631022455802175783524686591271009161668358634790572561795731154131829540218754055183325351272323683724396663673377532296330727919897171303869838632998258106049809995753214868468123475416862663539245942074191344984458823671484720402588956414313216394246287688023725666640641662626480960968299188348379074923738534778767631795869617262037850674265047251992984232898184139271611412818813787022765481703783705359539170539633113967244459050816225166333994533499496997047262711049563644281124816949942136870356252298735461410654582808875926408271243697026450115148374781826425171010729688576577302938647683077779548674088214215951851004131527075810558610842083008211641195247953240159828460255579160353637186852280897535783293512012387676009694517564311121320021540397855018841775602373511730227211883474117567325181177674921352747635676793778057519753607700342287705908480851828927224297465774080844662572103286426369838163916283217906556161296052430642599044397079464236861146159461208909553398552157514846354633439360054393830138487318985530988841723893301521009201097249945108917520646461869429008191268866388246222679953112458214667932047911844424124528677891003067457221963451701299348907894747344038352525048999664479518096552533903818451397312104329234769592740759309839187287531462316454542453885548728779551082639054382047912563235399438969740353998797829381887783033453398351503096068544090647118595903553129575909460113841578453651840644393164843208450528055196336859407592325267023890630706131995487346702123855966337910812682559698531934207009950742976818658343930144558503851997705073531779249461084162946953831056634336815593556897947596017016094939535769765196469606153101400374175249343079301321265314427407760829266178603533964628718305523194552851002384490314576486369990126746052239764614222408645116708994396428296366253378614485343821762013828383372616986765452416438017306152318375009749548413541844615912421688479175707492089922844740644805625939789109797238429613062107711111794615174911124368666354958033391201242201213798988080506095347854000346149102715445104869372711472106778012772326005666015677087086825203838442609105460626104700696186787224293073802460894978934886143394551737503447139258145079165720868940136191334909680503711151551741583681495261057032109435562133398338325378842824641292208128145383050165981492335776266113569044887030171724670973031766670731558176433936170207879831956545804080918280034331425485206432389068919798260828742635318002720626136440381440398815830705312969979130708601019488356671837895494842724664917021139902434047671734292514591455924351386531630336148169187534718883240010779010780970493772318971013688790298620037334855343272359565300154009921149546911666881716275546945340199197388129612971146571724613920690098214705627783554915744805276332223842759316621926539634087210375782681085317506100792873875841094721339951656600560177632919907770330849018303806108008392861267156066493406778426918412062461916790556143273658023742338914789675231209029998572239747204557340904497105096347741857983249304705485325567336111253489840432573122753030061304282635105157935535582709458699631235809053352477002047560018698645004438903233869673914546832567870906168593319739096578633739829278742240940755570372879300809221180663726655660952505239630914254212476013227163384206203645456090791535146582326777278003064953319648801638348692816803025886748703613612806942281034400092750195249955471066935684935047434537070661612215522602992258331824309847048971750258471883116714457951466728606494524485312009527123250140455978255965715743589484453839820862524723122162880758434953163003285149387988613904418967602122101440632813808532816500693654821647312454303872046055769608087934099980036119141425189969943828052835663328121583108339219844541505556534460484097664436095327442880902252119055377357394865043920700709635960436292836084809127472618811076567641524863466348223521333029305494303921213565693807992575637675355250534270740332903598889527551364605279688100589894691724571747930668847737344087377022609964439092282091901348035223130057443335695646316856838293424307222919646950524477066946427762941169536640856940629575205480713228859283732437839203106048143816598890946511515761616731384654035302558498991006599478346866350293371232251027745842815878568103637136514565090079268279401740293360807428925053718041819162938937498729637160692048463325979311800005572868589652655377962539649123608578782621514229535870201047974523688801704606245694862462495763650103366292494058496409006015623563874748846531977634312419002806538404902449115171329744674778087151469747818324420568121608088720191349102563807421247042033010799552260758851433976542238953524240087729031861930019371732348733173056161099188020935425102289909918238556833462702921448513790361431920702517701376237087186045403225366568702458502834953952839554875737473650336221477897842273610129585068576131789017929021074210868176183431605021515438192365849720419780291746996902153825286560692653101702852614872534040367616107190285756813436337658222890172051282963465290807734583493000626495359738110682262426413551441370771050139107998867373182101358382703204417596705830585501993613810218629209403501206266347738864367270634406881773342244264836494110361287539213466791438932820850654037115726977375800786484778879137884473158070792117784578648778475086071848338923770318972455959475117795792204150977538110692032972350256654686751578810443799374931239259097850954999032942575415225971619741674540221916711867382224091755198725573980020399708963352782205606284137272219978279227291534685300132972424675151955430813460649994837904811454357068832519259258725790952027099214804244009911832078378589008941017594744263380674086650831390705153479952055348175281610485362604353437677585282721255792192769532445390496065740538459379248627019627403419987608174042932254302626269930181166052924179374573017307304666819125769643656235036468000663239420314459975464203073686936773296071144732534826591411569648249351016141560109834402823592810901591733403842850826622642099142160416947223305310442634334556077331128664441156143962194394958982643006821826935430245445347552141773126183354497217031848207110075278129941303205760500991524251204060453322530615123390930207635583718659501930736415174853744953483955912754552087234168199365404050385109017305062512114119817993637396924336658609780246563509614334136450155608440286753218777312906391248920232389860132092526049560107941958850838314042963804247174558425234453979026941937753929889881891874385072771055683110050993565196174763073577651615555329949394798475601252334027851523871996444103150526089019024325500798177810158911862514993264430513534053556959379874772549718171463246701888818781459031643015354922282119014757819598565708108583927812128474187921663037772619592139529734319831778344662336565013335135979738713994991901305217749689549036249857592712297347919789969432167217423571120308980342907259761216003798401257490812423140605336777377498020220051550088514605958763257880993178634722424573038727991065226124851023506056744919814160252352645007846731540728813368082110693443011331686546876080694860086636914986606227852360639704689266224566933213684231029275630617314499432798986389669642453706305514422806766286717884561505448351454934740479879168645306057755322412538154911552993271192642221185000849570402601791009633457995925532275581107726111169789682793996472010938803793585324295144794654365937021851788445702338573173486642133614371548788672136617119090866103338293511948379946827471646470787612124051564996194974673292105838529170891242897840633989371562063120637796865681584292094104389979222346852876070077789765849919738616530313082911482764990754978058037879830595369543146586290576356923416704546430197009251794552935824960750936130805566470112074842767146854315666903039388379404540708068131744761193317713951380251897902897990236028023180077441388777199585584171258929881212213513060403369953252542446040399292901180767021115096593549566485743315509306563808363769896532700570864083535699921550123943729765928567990975919030766281876265737377707087124120780915159697525429598533937653945750360775979837255036655773243617712237114734181265238642158232178330034425548970904063849876949538563832997034046255759619817623701862846748161307073956712763891119799221602301381087727617574942431866634074168292742291500478954113401521443367633753343738267809906748840612340784378582624118117567589956251918423962615851726105367394472735144905176640441788325423016960306627868059311374128524242437732483741630198468816776699986912972791584264890316685166493322808285843715939657368671941035673991883714114547400597212312347237083598309162272470127563923090074190280834860643137414939251007062705676260942886924487873358774772786779403616457062796261674215690360042968754892979989924716401309398797686735878717218448638606300337418987629321836560850099939562693493062102250786780622011857056943030866303245919672953330833328981368974768217189991171726840353242387401148094675204323633373551289766007776130020092082566472944199072157900249175607982112939572973272019801482569291448161036830668088373551879936086194171484052211743272805885734409833098285988940385434492828724290775223347130140394011623065141764280812731121308694805144286095122915677029660979918306959214938911414081622537804119958726572182782499172329369381429598427346701438646305358330292566430229953297297810198567661063748772200583913617798410202659419011546278374944899931204581419856119987477156561558011447075725057915540848238337204462226141809787233835225002255515218527884969259304626996759442901356058043339870254206891369551706861299903425425934305076370191886799217717832015163666232113112695407725775683966128822811114761450731517539361338215766589868902424362803066711013888644384045160725508595793804040143205566024024823329897394444499526648658110412588968162662826200175122132946215398425551984983043495561631304733105393693960623693365282081961789676595662880818598008710696836311071908490817226695754880953564616406661171994293811179767940367267967402370219976859909063427922623499437628847783049982282935619690001048368530001104061417763920431070704986680882235871119947550273806022919135990994887375597397713527451263915280909080981090249803205618007223265776452825085857120329447672820733566698998324858270440180349907438416687463362497210051625202760722408519380964455900496697360621275424088574697005015368191453309698182040370841699227221855500260150477838205154907882682092244090179365993834653398104006512839438567798410026356344808700074497669232208523097161419777909291612065199784731904464093518931284229116402231925721818680974359970852984402917555796988753590305409051113599903831979736789558154680782597619882679898144438703386238157166972684120597588615256433011800157588007975829927255819196556860556931577039746740330484045878010855685929995600877660127242662663290458488166630035317800143298855109120987806477649263310728902691887456403699937343803841260043439444884366860533507870267444122045504527346478412653136682820771070150831980237020655410289597206636571302648055460660227349000114768886217904354290451711784926255895209290328950930260399509306213816722036832317565005005089898981508355141342060814825630559286429625898598498935971620060571395611155089856150734949134745715348487296051116481827325098951102776506199013556730016302347423592940362305330304070189280113412314772086132641426318913433455050318772323421194798148118600685320010555871025813974073178859965029064739001429429804795204460235805641985095978707957088942890419850291762679128216423533879394096318956316435611592089942746572689981118930039768847410321627900635252438673457839239486727490710474385365572097699393115352489106210445194066931852048902169117606048388307922337986122593930964684290244275127059225775936785936317448024651999413548217589517478596111744933666883720207533166174740019739350011379422381924473672434985826335293664191183130105737893778035831280680084347307983763719296042778370937971267051632937995581944341877776822694308169330921847241962337491643637174710235996628678780200168301413688757552948047867838094529307115072425118526486956685397107174723669186670534416725776807922063391996436375543964740733844392591816197311210848469784117908042933282157782158045387101238911197127671752769426908410885329969408379116110869930770277012696237456545840915126570765245114807699351441528973966402238553512040142800158813121630685399604057985639779181065179413965919562938827016502744811098026175697691616913318697809882777399666102748488614724832232829221069334690846732803282327181361114833803873928427697567767735410253906753824566024697298484133838840204432315618324333161168176846551639297034537285657323164357782624106859598175478379376788107818823009342236212802454329147427393735766862163924051992307364423063124250272729755921925926371163552158560746599310878236005559105564566735165614891793081948327884061817322907682008684633701706218785462859495038551321452776306203709579881294494536018054661788052250810196347870974168744332048267462755115386681125037516707441420148541067438288471478068323073035396541147980164371841613501930649098183903983118494184088405190137936620448711947845339969409728227950722590145773655162852390122982343532626615191201870251495300593515844988201211383856216402751917689338523580877323962664557875894645250631022149224476018959573327346963639583081062389874065863015522620525340956237446178270818811120865646584380447889184218337988643805018690283507373536100419104341268102410368271081545581737510987402461673176941773668018334531073524091233967757426683439234592805138036824433279862394437175597459044903288239400230910188093304079236550555063396079246876338973698246345748599962365501509846125132225821944617111533226671669496374929047747473247054726737406907406261229304591883194770896010646927807426328849763021747307393133644710177557162185859554952408223604934864494808744648543901659148221802439684254003746249830957504103921374080284309307876151462999747179452412027577298349334815299854421207151814503264608046539443779354492854544030193027007491488236837166173022620562342413279315352559681549188470719728999830003107024323019724274322570709031676513884012155284748618424806109889477718305758543866225433634087107453134060155808905791790300134521713820493583658978056545331898773828139113022019853557603760317786650167210580757331761955166084606702845272362263148509432352466707034980786440842060350893120891839853694671178209217576851018992131991980779590774192649327379912623051801077774912650537434558458613472885859321564637953135984526611422015105154497036762458250421527984776942391039149651838044425026880495437589055300358083149413518345195160147604599181131522309547985182477379843593728265022048075433590895912980336565186759859018544322896477925269542429915110304873175181573333952971186139720922383673025270388279432888990091225511011252832891870888826368056951464032918232395659344771518514372985246919276600260866029529712796036217032490475734709564899471569128187863123491333596119304548884519369229749559717476354363876158203276711638095348245668703077588952514140933350148411166317877522898265556747863569496969438199031579096497670767768060525003009547576365578533635694404977202407832411490598241405639030854499408428388916816660918046852685882576262787131739458340952581076186156591888791289200081478058638971329529578652850831951081754426934104132570187128629241629668863102781496586299948243739681417262238997019073536214526446037159353628833190426643378848921418821941022003219384474804695555968338056442801264556791988286973512332346393195893421605157726066329696968661606550302992161940194048877853125822396094853950890896774094775135797508704114104380789221200545934527072289414818656659284271616486492073179160759675687501720379021075388176048582971591201188867995280438315548566317785337140104570150360978403171642759131936034821042261761482212016476892733220109921208893777234957881560227372280244410641384263619001658162515135915056480185332503428803767506348244822390400946395198878282899199642196498512571738985534107191985232205455981304020693310106082878828693354596103475549183439293122516540003471375780235011016217773060914333438199905505639353823355745691200671475057363268376698361972425460579843996615520739351929967910816262797026356898807846623719622187370640467550524737635292256701243451442045814958405106279231025072130908575353355432899096425793075936248450993427787716089566085502880784775175647496262037920519391250012381635478648135030831523291226995591456529335633091870828341398712499236479969590667923574532925049835009705880444101521545960901218100148519817614429339051135076441728236124314951053861232333110468924206683579528847063316641780858507875516077643367089107979783598176978983740849711208615277634822877392788841089707024545203660239977464544177040671199797988188329725920600475164955935702266350590687911846403573465046993140507376603349505102089297748845130321118143022556747869226754476043543773162876792445556104158557252767492004845762218430223417672963782981534197127140324829501586811668672515300043063672992167563513916000734487870924928119735536165407744816892477556811597148314131952847723989171329327073229205019991996454126523585005913897893360847185893219373485406044334891409395674707692148606902621279455682953617441360606065010525430991411372230380887597670811895728254844621816352882384453492023462696384336406095165170679964921024821689874254369940901398069695020292989288005160451995900628131243941178098973188025381423097130875126416373478645621188144594330521513245305226301053323011710003526001784783994766485246600378557883416974131964883909009399114808114222249778889909250619663031292023380971225354707145139721643493196967891942565769366859906587844609087658168882136069657158505123457484266932166689024855135858184862697992590338482874429724435944088182480104778237300489535418250766263647713961920059968621095428756597431448036152813656284828752228777525179757755203422503128753740184986584970384766524109858789138646151503385045467620120005264161553940939798616177829649415253682741994397508764956844013882911734253905891713900761860085430777282497630456358687943083190076070565499670916019473370163892455240070596545289221260397161401705919600238448304445723137387883626587007148225065478836817477500779468772920070874408434005842920758416515193419476774867839166277650752765130434295245612501647707208921389738649999177748884554281090308863668450430026968354952140238012691794723996671809477288848890228208963957504048810134527381396167272155707986133895189211614226905393771413474579290275140646678648147191623662185116011392049049538222584996931374002876556288611873920697325263265957597912534224316021678384829180378674787331973558160364981163727434747183181730924028581874025285562718370313257077506232363468697522654276516942861805077045949702357938993302386587416487098779468187775935940821633905942290229504444817327405099295708129101002054216942119586052044383791244510275902964323583672911241388759601981351828793787075883800430467298910352742334467797040042417730491370740489987740721239439207948470616885286994924331306671691328810763417515294290993206553841169172751555532159970478177821271812435726267775532499485522231813916685848870075517161642945783574673885882098107651644806917595284456635472474375370612477240918049221959892828437289687697421854809911943004900185030012381593776067594787936845798149971580553455106603412675755576320455015533583053291468794611359004491389903522310516106063550495145786786605826518417265211109589407498343417199011714963588629041779123064885606427088850001165082064861575464768660682994189791730617967250970147273639289336316818666122412149606252014741430477360419654249297870151594660427657290453105028556478835256215833960601143990969474050550324762822740418392876772021607260156633510374255066222115326568755020831357893022885819472886129240902360159895636231575454899698950952408753679920196518727958977794943469738035050725953590033376271530605469095271855833621761471833740865997710309595155476867855931307870879442522600787070627569803728971348719651494854038630974105961058899159471526136031845737846485147899981627522013434727727487686273146969398043676555275667897035394045430773627218690660351688048238108492766535312730910784522563779292759037271258874440621990574656335203610433649508133612407298447535128514751944225502093601001318855827879654911066199334805169942948481965012754618116785398196946803732059231206000306965157317851518497164818601857914762351681915912187059860410689330154823900119822245647354281254123089456500627249896894250922076251484745273019652249831417484141612321964574114672846496329505181549333035293707956608835925834864236454527341286971659855014185974146359205357980873712623430285253816827515823499146390298673937783791000909735191092213133805530068726449273983967724611147850801298936659009753137686671197605701563538337877847341391637736750380299892189974786317712635334335043605526734042533096989340695857914723282059010375985312402851179227953001466027006679835329874487793388491081071977742152865490180701872898707417963395246746676250621901390838917769884154567550820549031736733740554684845415541261835393418770180568875672983078919794212764331410855950396428137622103485793690208182292191147024180556334660067889559498462977124132190278603897436955679288768686221796717555265581355871750199045298351415494266426101834568618570540138391206359944360078753735746434370084152862180701157784919852562896967547339629059825074161603999334948168536276833514739760160296203645823497967814911000834401294191588481895840313459300737507538910341501791133496373769340203172974451185684062675388919373126440709993220180125984976916148095892380026976013851695807435025898226379110162089740306779112631223701731604472059452756040403164777421101140979380520524147834490276119684497721970461720484466431782534643096833747041636330024843837977413681312974880563029364046919037323011959186394495085144579199039388168694697198268231450583857336767262109531196031858127759435750129641693435192545732622072481477743262692796539445231474422142758359171407781495336401597775708336397925786120147073254977227523824473690186798760645324911901666218626945924790949536317993675250862034625918490391198860381262730570208090385212868864807950045308627400026995222737728414803311754219140304688333950617342827487378604973016060755423067224395878246896929042611849445391387461181365618378642406256337130605878241142559660668218090034702355899853528661029329161268151508047337060897287387539869434144315726552319787050470823205890865796226223512716747374512801196653800034564435042564539842472426943039823608627021646070134933641581586599884291344898983058421664688002996892777882423742936399099906217517812967203413261386850280847971021676826664745996267696575724859155501914732690208434917221926301725183737716553597350868730157967768979948871379824991621320161196820433258212873897992268639982840418877533151417179865777440512214597378728829279020006944997536912356237634798471759863310239390061473445658532110014045454253181493977882864621767948957853071219329964242594160448130835579126480450215345608457088907134227961778117606192110636387669466732981037954373995303089303552364373762910702899053595967270495630192690269984053902745446223228039917018770791774892015434239318914077029578005503579060978366700317821198055240643221822825387196594438761516431620846860597264202299671087271648480662984480434336011422902255967471427885779339498275088332929912242847552819214295206848004467919199496017333541438806211201096915130931260393093814370972907336171079008807200546690431003517516658637918172183704048324701983502708776606075343209105490226276954244894831102508462962087058421669399104416156314449397368091068910650134538258922354443562652722299987265806827788683444736587871934877236531303525962672017179989641010469344910756694631761617450151583531530005522108250479207960961281773029720352153457576078726975811541507292718718147267285754097267619266285720128873313765056058502549929286317934600776521997039868703031174303770836980437881004741477689306892258677194563448510211905471545042941857591505728176561108473696703250928968524336267957373174208241973895093122212932292805430173811671036600998848322214974776438277448092709339626928506299427968508640309372937528708674548946064757270099161137361267526280264236350422892689590067792713934072592565948776887628282450961719649585498647766270305920423956474514665933626664774914474900828423804020466705809445445665761182006308954477556156040912694161250280479416925509808609846562170758850799448640902825897810154468307898421240360475538036254307511913913572558186794281691441643628401865001606218399075323243494913346268177614857035390381457050664767324413680429977127044407537372667557219721056585591556351961976877498572127947564641593570930986904072572835753477341791185913130633440194423411182171676250335212227322185594850608724236006926748155226583494826935663036623009618706310186718650766446809507084086067664733600912580856409685595424025769723224919403508353735341906776846433675859472282933252563285476359721312775074630730563623311417315940887124072021884274519375743819056290715259204917919399897973654397099786629727629778990841595542677709852087767329519221850119395726598035985824099540217420314678557664240567333450471695051389419005150163088768901629055271145742675202333006918613495086381860323155314002184721746894419969186224232300941250595152117182614130269278331340019290870267898314474363709861220521521214894684056864070488448201846340912541196425306797820266261200628108088016087276342039838429372854668379998485061962507156789248241824693367936298371965280983762174171397847502234970001255507077406354492317132692636530909981052057310845960825617016791322831900909233737941608629030341509075956506821960377688805475730161897800439685398832593126921130814521297990768648974552011663888772356644858721981852524263541619853903611386440367609780669954977399045982148860844920579897085616293304695051876690951785275141494349889120134714160045103003661895671684221533799319182432444858158214246670839557971056001266064762307656956306484216828129704844908161153992895919189056622821389063133294709097140825087704611029397510523287242179315340986814332945686066976939535288596877074001907124742577668442938850109358024408625933214869052753848948987316229768708190617282570648779765537368579192766163958673506818928497833487461578967855969248440439611098572356906733901592542548294598896303119373297520703682195245564347412623368264754548572999651318364972006002087221395845011734168498026955520504800865831723876794186286231834512115820462355968908637794639668440550121657626066596967996405071754020592890954298011792774448303393271248037820399595339346076461766315329568601195576941944249965773002721796850478597573514983947550310959212853267258401236121292283029230370077033643146264173958171797870582131553885606400074235112105840762895671751028114775007562348679345506546485814421820571290774765445010034289609528249456118560417045147991334309087255051894929615611961117109026441734564592218082295876591550443556148224429249492015832469502580971393827150302184625354855031106785755180136773459742434421002935067681231162109515941519053866488902933590690064147996900253228029092079283018898181607184324020214977107775777586425526128898201941896610798455069071073356899150671743128949913427796901063507761667008574647943061823480476574664788053680311194433848383606086216270648037052837701187536570584210635557342592595192032994226451042548702486806056157004665566402711889121962160527880176796255906732980604196550978180913191994101601584891718270287826188891572845829240298179723004052840048273813565751011999205936668582836070618064251371279328198233852321363812038599598171402841262346495784865545044620040970762020462015017627662113812092154811880401794934397362479559998546444465751058657407671593678960722705035280157080758189150147344180424139642279164746962941861701631286484052862812839601901551196598080596799764740702693293009212262299510072659982398430299739825686014104794164821180190561258407120083320609496758551046274268022939774941310300398872990880212648176285583120955165553582586934814270989802989936245734255875434112538758825605785737814538525720391468151300030662963232303276678252887251960693945260014276679882260943428329091348848537210170002027300649010572657665998622244848585353898404291716675599724646370507716012570726918983620193193397161375270273016709893856713620624423638575767984862398806001121332057881344832634400030640441561301661950205529757048615526662621008072151140228283781107959812998528634331013373460935706001659003999101464735587745367611196459194788182537918933743544566792476724235295633689742139731581452572549848932897806486071648188811901266086960478613385449926737044300033314316503605496816523281094842033281413341541055420873423898749603345267860052092631550704186377760928779707299410602768862418185562962755409407273705833403752469735118701619274062441871593982333108655187765628169285595229170480906892111631825480667363840590725929641746201597472233246741364893627625906496133811473665272607953439432522848343632500652331280769714073578498196364795506542438130163248008406818999084694177096388419568609133829996269164315034861543998762038675986605034337497449625787461133066772573436395406360674982381410644524126502406971223030009623259748513825160930688150052411861484448668340076638018851964558058909089274503673980921462373033689476064027103132824596415025105927027387567235017015054618362192527521840486044927492962891346772968343562142214290710695150402847737747791042145480976695972273941010839109414861019993893127791701929219281783661295813876548578005944282199305259533553672822196339181933973426700401639520301094252945766384414559538673943227485787540546840050220867489478504605852338412733760674656225357946583354195521784571130082798546193450797104277052523328722852032389554255854154884207344074281287430632297566092246474630736887089611200535781809135554874555508736100339735183612768970153887106698975672415707989351389266780943145570416517910796142337434934541127802667697993809264043859205807661406576985612659414123120005542520942695675697668313344322890362947085796937734536763450081706020658876947286534687033225828201945293868346838902632776464953178964826156726180029814302062044672011222027655624577860057834531222110712615887553131278666806620146654278615628915669741738021337901519724035944529645203971088160326502869201306041367104937714480864581644046878661701798431609614528270365046974489144966964758968935065996512387223173289688065919151968094439768298554628647341705774454355952214388690277716464577850789603678095173263231333386818134816174153430493794760310653158885302967904562047772085657530080283652675879324091941678089276957033531038259592316794234571521527561956713641385492931489693178290208781835772452314576027751682629445523825018333628777345659988179662545347576357648302579143409433700598872082096004540395232304212949408344107170077219653518189737948506450481165819980564143223914713868843695228953023409248964832603753729831297148188804263305450303662476836803562785365197788443203309158547014435059583293998268143886542413227845699050381695715917897212340067108414528038514779295879221666441433342108084082871021467698793569511340696263163464823408082620058221929903488777155050096613977888498286455889171648615841032817820478024374047034859892681568510129370792850806603674899827216156880487857098012222865456858282099501614044272693588705524492952946839942095902570307679645561849943645542784217213114421471492565499966417643265574938167631578039609772110598755650643237389729419651258845908110500293171727044168310210762803655558265778276143512787540558949728955086616389378660703291464638504061496704172255196526217992337445847515233449492151842759599131384601393722829976305703675366091968245744887787738156880188243465988713493576563849543673359401328494765416005286802847914514619413433456212987739074600692363702548565817897201896480076802732909211380198024205912328783558160872063600514781141182467084115359396465729971691346770398677240103307787037665771279153015282775612165437646422299899227312743876297743472978491899764045416096794986174030357121326915264106398890874484651269485237500638582627924393010267128717181121465719129306401451658542918926406708397911481265398554244829971822402637416361275678646188618747532083863814180625030674511409973067291906813442406727137605506692701418942551495743549140247203149696546477599363988206835044932984993604141161739758467237004056547933971186975476946503915929793782390162702597418198751236390120714366987960559781343529771234579689328748781444807004677744535333192750349866051262090440930660755345768209624667315879366986032771030105353497600922079707001342158637278569329677461874942707918836343227898073809645124236935571271590733901878719463824582765347022831715044150127333940089433165421644432366548426237357797951102355514007979618186494771725786644936032737169404502807187838200617302591607196980289441144744090861133562275619241237494754491822296737224124200804988649090542055349041149493741839310748600814933872701159345663375267393859651952042050751864731061862213134622411119573769088475355586126492093814434592629046934838619216690157934305650894909951977594330154480589761305082910024895137203872457962031059825978280670708372328892912904409222764077994710469441819869293134774843404043288178736528567974614163936740976134875606306975350443196209795100367563726730348522741575258012606726897409175305070376657630647454701549115711291472001553166985657173430315266601381747794482736651434063114588255058735232182557271747481456597222981517489158860338846609164224744901496542755586962080104464254812472542827063537908109925377173550436634071867451215246913789795053302254812529623585351088415333249552207178302419123669095631834110125495670160266223379215108662995169922641762226568232661949995739873859117125469047233095206375287710460245498777442361753007440723166602333394848089738133228219519275294086015155392899208478574881407823848706233697600063487638203936825574747967654553018241206766028128441984381168655557663737003028276212479365422785282933114714085010978151511867450986542742376212373180160337005114613727069076278166236188993220379740960354089485535574866008060156631798506982007179365625787594845863481633447889806121695957258404953550463650154439362810061089539896043789210293949687512703616365359213089051780610591856461284211430802412022767056486982774771402112473525926296793592177442798293908385038802365782758569618658030939963107117574889911034490054919514627766459664118437979510942437974006632580525854374199515450246169190209462144045682985675102030548630211526139245543600523666059526978459643873618909119542376275501411493378166676691034227655273404430491564078735506844003550194268203479912118043439320171806644461933229018470935248977522912458325538342083096783512086654234679693840846258953064361410153493293550695170336613043992025236567800629621117729473032390892044378037095332876516646165333030937058389214406232616007983930355243646993736061466789579429409869986629628994897190567101902279242814978364362916119665420860801834198368014723448549391263972989613738990976470615236699542998388486383862628963003501225859660952785828575749284055201227167264996027714885579122330989836744296618480519049987634119865071208340568902344625130155947086492203526850062872362050239377347826371522771178633722900917704681675186206019659878111075960537581926288826333420478621369159378106052097652197726690683559382283273754920244476018502743335934059197451764650784846187168260499873773364427517626558915236481729158372048024528909175225627793893903347465233954667243974735383038333948344606124148425567466975111880133812900067759536445693317493131909912629666774572334600044694569942579262213195635119960986267209250165775798404878010553096571532076152870819552810432482198519936913322105375058213676474822252660719854251214258186141989679501672192453903989660658252036410763059067444914575792666355888734219630474663933149891371018678556042024089664504778308097261490810262642218753855749690975264823210488565291980145160152053328962536331452799674047019980549042035134704694444216942713478331385401351190708158743934183878834688264677545489601870502780423456629281967894679954948575418514738214559495125833525575575133169200219033761582337945264670206870779171618280276080512045502088725671646568888382701670497404135284283848278351880221231630133019227440474842866590519990237708380617812886624991499640770547187665942616178862380347703028978202630202160652729024156917006836858757509015097807287074010034694919569977561677702460952749676260311391826133745153478484146104717622707157378257184129289061304936455393024352044062882138280837719968358794647729187105714923161709401856625583986987755729355376483582579076962429491027732463453673614554863508047889729220232167571541201153813445914877740573044278800646386933401991105038494051750237063474688032744571073045721663173954534579920537929507109132088789390907585316280338776532833809181664128224735781311681386250376306930129265363122348659870639161469986670516709299015143017372527782047434457721035639499949768777784165441006051109874703733869635478111440184750436914170683587360866683159687536168971112677822140029723164524817289236709125750282146394311975827906461506759372532166355772383489468798052029956878682448904401582691838305971908050915184644980321510853424055415085226093623204615880655265031804809157561120128856364741144450589711069185079426524222185066887810074537679053381783796311637682151770807582722363027728320826653834294198433830188511513790418706826046390099438102722358980877450602330327718650350388155263253961871899687955104626552612451545892802980447685275960516887805018761610872548318819494222176682717636363088568054028459562717073526746910668191067143148146388942865191096040449016882973507240335519007745477280497905870448860506331041268526287492965438003398041656181674372154035229930922830345028347484801450585630128792743612968495844619772818038453979503055391273894656822201219816075483716120226207154097926503558872452181494506932818474606604332724953056835451988936499982243949935434906729857511809484151193618951534478210273140175123417334665184633509847188119124707052434893166523670876922907887678973079542197436978464376618820678722347481839416181207280966279687992158910906399525060926732957123146013891648899718980367741685124610047319213749759473828413202304717301643022150596735462009207136095680057390400830236927365082159952256261799297666408875293442180854133838644511648548593246461898068992384503636058917971283583765017624290642508487542745333509981028428918021520779861865812550605928682902850534072526067325435384867873173565982943292587366796615036466619323147405807196462410598363115247647053270657986173130452248361376281030098489443483656331006932727095282075066809456778062992148648839788489779809920096182435790058606359532105235475613149294888339374092416056048309341224141291630704441375558097897764588180026153475422250693333987819938651032056153826753666935506341423091857260786890246017145064666726641676904499363016344879316302428205333821478379612208403789638337393012743458080689643245479533114124896227545660128663228241605037420043926775178463274739312976855458045075559868562049645972953329189273059383326199592700770997606098179345072673566330117081201093962849593161414139964280833760109511295135671104623075730004186012745469042757311419683341241565224898321741865799721243809294336789721089510652562487043365455427028121124029034847240556843222519736444499827226348151051725685571995134391341454982341405738753874217631351988835180156135361284167196382350491641238628351088240037874131923013743750783420082980932998132971141385191606546646517641905431947555519139613978417555200031782346278224050362094410256867606461026475413622016089938070401379893251930237259350534596002782838646649846806481800146564517056145983870363883168805306132085029447619758232376185803664538514648983893679337771821374268812300206516224395201315647910891981596048728129833413912460037178368560667405397288688637855781089936323313576394016288467343647281036017007984613271724810021856582360540845001861173990330885083512254980386390993764809615301055521343541145324345861117043740057689192663068380343067066225336008081895104105605811007757858017404248481486338787889184857948872403374804076962127388722134262185448259569795298869682576142300204467861087302474219392305858673143798908412796658697624153435715982576535448611140403363997783469706373490359906673389606256133063067949673740131622172732104986910257890439668520300623512356597147475926134502911870611844817448810683255652132163575499528914395321244012198367038806415903752038606425809946032601637255060304604553657523623485609871600396171308404133629632267602624588625522158885411422768706994731509078603665496098626407625199000509959721808115623584059450132175849391448249889747183450237103290232090163553274643458867867883361559934365681024113802232056446944504159584727601234239954352841683542776578751568465932278229915516067747125577551852817011210602855632351108897526865012697436080134098434185882951183585362953350937902080633662489539829371489266698087105676163598654320894702799895433222969315489545674715526136209994493621044835831381149064916179644166566451502472622146171930551098388478322800268710518237537458385016687006811781702955976736550755608437300182146139895512242850388153623362515302559365635513654829116373072800922443031550033309092930763822053807235439495601803603299950631054221092363583987266870645421824617877639739592220641934057769831008575678039164566187927348411198213793287246178151916972499180641472372921082331662300421827449810906110972621681897730937347824567136297760803452419427979446706416891572069543135332255076425448764232398872989966233664931974819773989345254529222805868711582592238273261840968789394687880553923427687643156376198043616673190811675031691777548180134781334380646426981518030665044586319895793681736682367588597810183108979525591618450965699593621357361284197688691278802128072137784983740941042024955213821368443463424913667155071810216423965052415460653320644810183463354441989837324653296422507812317167858332077290457277567125127347612188957125416708852077426964158988511951551865908250932212777911074325616673018444369275228148085875486010450730375228172441731025535962142888033471495384168547627078998044206632663984323496118992872331458841851830154731371427655187682724540762350572469307078653457334187164169627092374325491732464462760818513041835322239068247385725795832629988485170163172274971496480277087813727605994158040834715462091871952287930646278209173326686956970319253440037300071183122718170223215015829940641701807775261331996748990609382208027205468867758849838176705563494284621304687757006220043663236758457758661119858425481940737571732126643394914935180713568296844859597075888162340961025825839396904798403179492554629881749588362727017403309421096285810923816595112272617227593474083945968005857863586689809128168536777221448210270758243131136943744051682330838908193615248149350692675765831562551064839441518934110904481482252880388831461009255543687800942513480361271512406824395133267285782188669108132935466218465642344879972065155856356374304992435788433306612648288258639177099797524841478306222413903158144243923931885704662472024785977307035472493484538137926531043323782856348299419197980935578867402669828775276311542797990371943476092969126472289216876757327583229268607505712353176878095069020722903149617583267172929917140830387081759363058849678074253642903747933464611060386819470249899459207477127961403884113518350560539081666937923085075098470312273756760405028556603832532301622985003160585189769775363744595027980150352041878432963346619642074996537273521772059979760761362608718262787428634770186232994594696491718131157449183534926011118878514733364619575978287144917331527133762926811746226687483358459890954616431738749983937952957439638022596691223894441071959597489286265929008928338033692761267032047444057336250574234096055551565110368505897718279900053381490127553229199856151605802795803916085298381065070348879630615982269935774124667697327241826480386728861668887411922806185259933411826507620462332786761638759581400510466295416867576722038201293997224996399193391419785126291232061104197510957752158522623902748897731366866901813290860641863661596085680273652725030239945213956241325828136990757745137230490465361901073750108032410515566703920255910514179934631383155774302387034990234326231495323335192098136960042537148093641302884101191138552239561062656503541114960970363408438209029089737822412480738090153559103734973605640341797777267240277838194827130875749076364859226438485821324487965752519397652614040494250883138515195039090381955789255720978687750129945522595690951041985225846168377236995949571050577055915529299161345667945520582643533422666107670234283651129627614155471974895446546551175742540127148441467226101428063485688802398009117131462937934121637350729976921020411000187711583835964686594887469732851850621091305851008577138990586139358228028690650920058730504531968506226195783198136066647613441313522852327092594079109646575822612364989106505228549574181016188082237121490848829490496075473527179421080851234235911918181270137109377605787159122487641461986047331572770425851475673017000135606390189968034400860592959034560037849046985601012856457267560607556003520570453016107633961906645754892126506478052117475117586502436712581712944142578676447004116188550950895458666909273331660255114812070245005004953799667759032235570153538097578724122658352961646044656554437166086838726850176122026578801626701242769005176218586231252089001387436027764398530422063153429596567850397533183833220951326496653398801832396280219141818107699505112932142189825997975947155900351638480601550239297092080097487584096014231972933720133981012705242086782664977331413607469225165379711435086274183473078532129327541591875844826315522691183184038254013594158607858034587485916707442468042045421282706776067283317424480046149042148266038790547736311459954067240528782789087091798696190380956576863053932861089137966749008875911337321302959874486364831220290007066204235390439880771083691480066718781634805631860696450801204542021668391318572350603675644042828835956237048891933061147437635158139148404378833925050191458018283135218846812353618857984831838960149832798915199026463149180155990175385155546341502552837438389605246799440882248859477660519357371837922170711639718820640332351041063480716803745505702212436370728022446130295015707050741341565713942229397739382897193319015919240473795284601255951317289770908105492905900720355625346137047673660276867165344689177338364149417636845177883191694967605179317864830617092231330517818721479475313529132254757652417320376501491137651725057034755604378351979513201226203413285955162683872184775589566142837256389256546074522441322711178675713497167100353475842363549308630947675961150663467144712169913231654189621589677189310583043105387311610059491475519512340480852502884983293422172755072258864631073258822926133085210785695330312228652692340271490368055770405945158621512546720235054005317800140598633531900318332195530655415261103941868425503288293926055646186238390042007971567341422161035780137425517629908697525132598471928095913410902523582475246870087797597897289352051571086458178264440555091876768816516589455504710057309754331240861924814792810556138367880485004980403633730878983422329283706879085188125345529898827591810930915216988967174734401671564318539843337148042353145168007621858044770817734443975217936792398634517118250251486137266150282318672196577936252558799591897520573465076486977046246689749589208753152454721891802502426416230754261591090063256027416855308495489941208785430941668775659556314411283519220698974599412106976896307661581010158869016755947177119197561462240279485011388704749580814545688896089931881899188274233393205654139423515943480238325483260274985075261361368217147418924699270104590683517683078361848915110893634355611478043838088633518465855135069896398715536005961287331908002835890918101653291863262622940440523166332992809600190946166805189986833401978703386402793722926835844381571338339685540659442864378825561346259945385784647139810814615629486571464290661817418784045770921883297573182278878417683106570180664915653379112573264303961368266587620289800156896057234481121799027729423494383006875626635836425567224328936899891581789631220445386200007307073315659225713928859564086485950520209583592278618182819033099754296028843509580377627085356371902806974762861764678941058825182388543619325726584275589577418252950604518166559042226211021177061025343585823527979831283097105873808579471592919071096725451453655432016367005966715382727720395820570965884271551963148737062832927630453086289829855949205550540074481440608507557254526653849030449054652057323923299168959071105437078592855196789929432437846051168297756034658866621847989107073271902964434919976007075165801483351458841128329501671194688532574980837624740034789782934188917373851347096458153691092335204424107723359509140223380411311375509288363672606769269606498295701900657224400628201104829406160112806327061987325008438200000403929187509023923160413779669940028971215708459326772468636570961502146482097550416065354640584094829097595872410276112594945737610815494044320656677638372934520754615409305985949521905696606709007904538643722888441492019458919020111873552013894665121058414307807537450231391047287778533490857741246672513218651988613038767297798495742432915853673079787747265207190732464639196688082173472636547866539389705038318888014872288000604870122839624545370431153901356460549836935207435353593132761041570398459327902486317947638016880961130399412255256716838287044187710932492415576117771030281864335512801919589810391229678332745638179970793084560243971777469802710693025056120370803870456242338701114302510193158075359931700165681935681602005996579460294657072520251433111154291016536480100149186828371955662944948976163973959685392141559779186935243207596535095682105673141679919461804622099759108013337278567581026226247477118989036634520052679862007947272718504833361000759345976570324853849285853371832535988045183617214780987338296755485504561203367591683836069268877380021797406837686725215812354225346309022042890794152816256588680642933114181759220060451528422989442349065271629899958477167915671145098296610313604654021412606784671500496334338733786885245813429266576414805242114767458529807957838516261485979773954649497997850544128037247651541533335185710663731842593703749151949333050263501597911174118955623021958458762404645305063234630402122731544810585415662809028535551294885553047199349461833668757587189748984590940418164291817923325734556358176865787399709816054484737040605952024590660882888433387661072304806342882241740208600280338356406561829075326878745428416450853603481581356072628655099052167544337916128337101409988994226948547426667493338592396780489087866720514593913236451260708446980838347831374559880905340750704068944857542590847085680352729923150163148863552306086762694553788547275539599102898105231073642043108893365853044562904047908866734146007916542905984196968342595729013422221187656252904293972677942666695450311201355194469132143763490914492951761343299073603074914741728685065773575357952432141156856136554752292930625739900582319149803246791887128830819234254162679029847266475371911162530140772483587025638029257575409728824345133301895078063429869043655556765367836461928339123045218301326503850090866755808958239926614340050074161326260287144225654827749747304926475665628807710899660782417856050031098047518238082243555905603658990936940159916105414642532239234232682493824781699915011391319376404675165616088924901912732378505079864792228664718200150950593291790720870091315844580883631156270810101571663611185077532714175026282715232912186316403374957170694463604053305888689011333340533945531656637260114178008543582123333479004097007606145592996018724834102960220687680236669990378999403149139469681808248205309538038805680443629753035328117354044264369358730141496480659892630587440689901092013216958424851428598693611911999145174896141962868040364690826279801622771101171055218546817599817304676425328157814826067831105479803055817340316144035760062016684760633762913223444725970810200513719705978012995978311136316132318833413615664622508445000402736641026149715758950823556118501650164360038167026458482230046380446378163118393200586550152253087152687679720883103379410030762201801893529612600526126699052057680179483544465832826448997871724017855452231368890145025285324520484067103344808264877385718405659183099149179122110930829764420002789520410520871990883442588785721664253732229724019137120194841829756151227513356840888537324569453304308930617487419478241560675557756542285552056883119895620118896799284700903837809109103598433368724983087487613849383682983930892665632260813346886351908014741311123490571130086904045016265077460091661512600479350905916544247323908584584737397618590961473541206540475524720379791623318981863344090434573366180855250550276957986269941139189087444686954268805092363390942614993184360166383320428317127575051580020831939054583013872823518160057199217663988064307722170039275687976914736081616312014091998955667173883763688121876025023517212262633982305618307578182467404931895946898799153393747531496973684350060144466771746420019331400283920581626300148089360179029861094831008883001935853275152576468846107963604152985638906897044892133226691659410839236932244689058708669284911717558595057665055891033151974285714816513889938385426094783832492990256265755712626989555024772618941375604879619682135233662443702370686302518471212579461575181272985816838697894110892680887299863086639299681115829009894077330315999525740823419960699711188650331248280983368149509733727310664729108153339418545442007716220002811330008399785585403530728694771937019312493780386036990779469415105504885245290046348200876209419976369240756809550347107116989738546826353488536664073876880686806914838287480504766453169976307035349884576961193192351386731377023565962948366007259853551966666047451910269241900667843730725556917106222667126536998950461865524219777883037771176868039807247419055671006693339012230637799421235835118500701138565761148804170031544734245407864434001555853854201132392360922305780081571515259860993516125669513623727833682653858944589021491429743851904323627049258613294852126353397485169456369233486490842787817022790651360732916171499692811767042565803669086243515570855244193782148636010626802342446097912978899285289842005030950419785385990486554644133163959701685236001237996055646191694917871669866710628432946810888881860916950333875216155998467322671160140454788250723022254192279550252147156231105946637910076342743998406589826264371276888127917715126408361221416106202810526824801576263892708185853548102375231684331511570769339673876982621209666727679144096025761532445230042862080481591186468303729034330907458749286824912279484014515302879416385163485331804279786596675736674107921920666619665155687563335965994207118019242161564190431162863459251538828216619207294380099079783800271198710635823905815096879429486885518378345147147744801922030622015871315257810156758763797264945510968422787774998180316589265044836367865654309119326934618684547306402427280868281001428006874740379999324729212661832648056280173829323928722265458762907797177727474347870592840579741024130291805675405798051729546796380826096385427181940848143315576054680737532600880187668263793810515713850139354883853760967332919566740258672491921523232410531403582142211027288891430023661726220223878877744753107100617108611726626619165060028297307418931139378154206440148348472052650993888884016260377321848675619947966949913878102808116457927760962221276559931232437700612163750440868404441012813188908466373388527054214721216480363290845772426813917909475365222857653208898702838669939207445792014622719460734859112875427097895672523839368557467767232431981995042581363857333232385341250923681534844883412776160383640708113977341495277500714703812977390309175509075528869096561983072145946092748546714893226854073475812879830342040840032356339341484372076251499881405741463993077487003341275748619579290104466288529923833132244805626703381373118389260869975707408006228922851406769402859940878456912683723852441524950799691001584871343267643047116192854217437083587527606600467852743648449725510710769145317186004717709856023001319283018200024389369795238560408567358172860299369682823942253436868247308570184349999063138864750031284140986217162626827975928782160510060487291814027869574514380483943662921355518904823978208574151443155279389932965145478242603207398093193392663591412246978725677171250000986456011990636236669029095399576490489986987557367052621353448215485806284997570860426784963732845032677053534962205055248125663682160476301222526708397174837498433638589726457332875966756408498790351192925410025583069872307870210551450378518416432220062959252646701860832777823889055209691558595716262831734783364230657580161227255877865748286038511006853261597347046478209328967536282174000571648628834734710193888627494970376233140121299538690482346006104432216865528195325756439052616438742083330722592262069834956422292673706943594968674013514548834191125185850223944886854401617224784286639883182311650850330418851048459475188409347672449774816340015179528573685625997645487552915041541331000647485450965541713851291281101450947375802201009724319115837557436465686612521613483768874524787560666827395912930624608346908168369871584263303058665982842029937074271096668342595493375088081587727094842942451050227487081427277795179292443795035092897715713883768679859039678713752388060762576317588726856995202279602473088037189698063995770488527870361772684525823153954872292522291749370977671215371122006298439631758371939059963935510805769270421857408894249722927274646819600259565928845954726422851493851891043113909146237642160495773233929293776925373718174906006433527663524269955331301436452128441457096815986102537148191141793511930857837856855612673674571471210379992529391944509936525257018981311795523420435235222280881963160894447213635901333222758025522827555016892457435468828841737696696110825421809531950488532321919326757269036152822985044547497523970113663699996852119084330719477334420170341051419885937419034937341262691052295658668796405800759051277410935027433010322214354185905921501773704971653328554256044575680506506863467013261718086707913293267745727614376447769652298359518694869715813153071645423629022822410005554018429655910375956517998294351253857220179289835154850407661577707929304955113724543611270315011913076924220009253378854317715532206787358862356139235194523992180412235571019696707536585646839486234314599251678241397208833159669567506649212073968550300003089236285869910088295773638881512970223117975654800069680225059068260810009424256583207216298587751211500258989631751151037471948816815598831534481876121207510304413379975895084561538836567032930987385550263587915785352516682886221258717307992356647748048589837002364696620183620409549473945298314451173465289654919070480330388968771185573405588913958830042746941285120671897855457585488366487874360720081423267356643577039397480088984101401435520891658749126209526690564775553159007325540641143268799836676458085674083911090480652016871360301200879783765755362991799496342249622049574491145165171129343305718005961062839433529409951436679510746034088645442804895852850738359063801240807405077201133475989791480857446531563530918789066697629999598783544325924918660173010150384177589347590062945194989633117411349639511467798507404576896827971641564976036190234088063808705743495049594073500386255282681646913002801437491182612722895513684439195189622217545074432845584006134589988905183852467519125411124704234954031419271374779047464065169659054164975186686064041399707324869978829555204820882480476224171051433621201016297092599555870274047055055940036860884044487267786035755989408509003828511611916950378909967010681240879681037473963479764437859380668088204685934221262822141995793640986278262868274342941816300402562944673264528043726594091528395558298206529131307604021779587750278164668133419282782147827054633202940708908181122060863014334579088565472236199704138236205864873238093729890819862198858248508106949184441749047340577285948646945615326294582822093470260467078335213553649973154951443870988412073150161755181337336405831001670218201423609276760048324142511939314082210562380642549293079557410506972284559377981743799572431385390117099907820423362736943120113058029159244347270078080712592688790842473262015884599002045201554768083326862475852970079004709861533107161389078557676756574531164318332007486663699532617865842534496080795800802444365574544770881917292648302405787949555241398059057219013740025250275749058966280705982472745451443938664438602630071006913718818339888483122813458988823086301941769112970149759651351904883480179492325073253097188267249588081245011574868873337155890643547242945407297868709949049031550719759357388568016385645973065623974976421448858555729038303167244989323660504394646424465352239625184332967902079110129437885859791101439846237766618973524902616598310632828297872248805085137659915693426727680670003898955462735829907207316777323861130840003336693017079431846894278725454532973212973620504126119823114888542084765378336751445888369536690414220218232290112203754864014745506128345393223824138310438515615775720905930859537516249666237462765860333953956700600072887675010089763942684853541069312301205489906493289645677806750873092018207705010185633634151596588798011985395772921164518219314107537527643166592930576559410870075634505850427938066886912055256687871198006299964098945199831669735291735976878296931794733117183021818927718276742389458673684229882072252708666314653232509915778532266471514086367051262830091435108531328832607095154897117077247267802657185469022864029996598500411981761275259676756049944164050526165664421675787993888215694480351425691680453213243508877798059978228601846348802218678587425232215711153103181570670564781799016095443390834803495910989805175038215596544372356499139233126457812551229037434432653423236444845860508303103873878599807143714056612340358684116425851829609457852084749637514515543078963128353251856978369407414942274545435162603197950259115423169852623425866634665068991348110432665537475707572605215182599903077806885538244905188415291074162386863696946063796856216184020304195191731593873617371061884451383554514295567971060292968634463802907991367034079216854819733227861343016176550121050498023324059897352265055213335670876449217772883467950755352657851685055400364200356829864756346223869245870628384927390916965849473740067356904303585376410636776373460233791564539178380150516836885305995619471195092444016441968392190021543460729486836122075300318940060656494774193698049634400853669463375489398169234769556400561637390587579951446182606034608966810794634807757110309051991223241582011666084238683067324229000270630029081444269992226407464363829500358945457203595932399467976706990932813574197952163485068930658607405774705808467552601381146619560632716450636653020428963352776188898195098191911731232426278697023014124203791865791059576448829308186802219065315883396073077610273480366077676546990045370423055229903955563003655800982697512697904977271556130897158329054549031689060545744179404883598606692867477115149456186581534590517124179731680028187217513003657568852997629231616714647119287449233029696770704561476334857162709945782283141502411824432828921534845018961549462249773507177441214422070429893708823784452602404018807071711421305434156904994979588686495160264534731285704375490601682499833289174853621479080489151792958271863005780272048714566740654925065057656556133492955158594904915915629918473472394549996715365416162434432702747491287758883834717677273823505598730334409551565641635611880172786098953370239215911055434823571183580294851325829360638805612404728293537338254096480454776269317680357544011071364993630539234116977519208994355185978951835644407151709196396099735530789897693819023346179745651343821083717845695439024470793260551295870088985233161319951048971006726536203048349715082951890378558465514526539106948768996192318164690632849607841201494807571588487648084193542902171601475757695016328623560515763132585050044229018969722810371635509071502449692053395841534007893161779716966237747472069420035329860543533190642769070193253649586169959263218555478616066238315365696936503458308749588215977551382466661049695532793694599314306458859488704940536938787170736009864290231165278729683523418373815185430162476915981903829970751061613348342934170412168274078009444898616259155075283170620153923937905005748485523049099543276859633614239951090990166299225160822071140400054085971672153601956426414175129269518854480155550500227343049805170039514933018144676677794695086190576049519172226135855743102574512487025656606983457175086566884356071147638548338639186585436779074791594629621773315224670138392368284463893674008521484720009949470746658641032927304087527641685057137000057455868836576786758891468229426784991346324063678183689205843837129523152730689627099433517175374039725242295042817460393424108282421300070064900019690327110077234779287918661567133408216182331739120985826745892211648929045257000536697279215551435825477210940308412671853657855156647943282555624757596373933848722821512745359953461149658526202958641770981390083812874241370245172170428101302071393093556010555566967755922837475040384926149968519522649214565377005510009358411209426215386239106293004113819259861855193701354745281624892280763680865934916232100740076447976663842305804266007252263690195508878920859086074434876829356752217183975727917854630727005276041605768276727389213664738037031469323310854267753022895327758060757899289292053308818407717132735678836793896108405963926195736239445091036125029635439612736034670801037198238425352852498746590295050977532539432297218989561987306231975524698266507607624094235744441221628250940945617566479516484624521442342749204902738179920342400686012170490805326718029075941560125707621487726178830284212424681024332760462023314964733734858725271366838262531514593601068925939465863462122742091044866187600591732134127646671460240178777380002001154634352778390499637778981921688972866303607826158005810722223424273793619353501442787773370841561733169589821379273507520339589367912043723625012371574534608902138108480581638347601780023459193882121795550759864096760021605448239994459273517096549029036567601102175390153386828163925080756447579718725428524415137354446952158849206490841358613894989753788038455257100900683813408886675731233876000615568771887428549767061026337639260166254987030547347137935307156082264098170009506419735978157171254761827223673521318092008883537427150075286975246504581495088142158787198585889596852031751123530090764998462314686462614933062322318071910745389932605176710456490205233883319896723833978266213761628311235085649896787592707433055621837365224667014268693054517233633525086966809381453432121064011853805397393162334045903581858548242570212387950551706845926844338457211995868853024747121409786954218723273906826454825643916782851688680296773267454309882732242866523891051483532560223532223187267111612200272363529870487799028491567031592752989163692376521830395507110475098899715976477782854259064860335014825048662015660989608648077866585245486056751652309066336209543574909300769490931206446538001376979939001219856013424780084585431598121478530717601920337938557346349897680568342980451901821811268099981048819817333506022242220533447682608292212327178767133886596231235774024263770290255058927371873772693855438004549161776336969310759328564716710606014086834481011953295559797259770817344252147666234631937411222830232847400024065646657025286452021703607501233842455431063940872159702965876958911393634215882287158221786083056583505140754724415814588513791788548202100915851077588030927035751211800304860297493957449366866051583581682624912134546352486162080484101397046290146845163019159349930053951336170824458344819593370075667045275410259007526010150373725570643718496792286957722401695416803295747711195204842818036942485270938479537379995759503992324050386451569618019597482332914635656826566079198809693441036130824795331947544231932139811515319575222237656681365801689458015837344183931652039576480246894590973045359718224299063620970904880992841107793568716501117106985463129700748928614131488226342240876191480175814251719704001283511611237775488020481726880230278503698274478501449098793304458806112708661353451179973634305487537302848631378112713226094876699385106240246499394390272950471073572737083191459154610187869372758585748760474925588493064633170747424857020536393851706233572485152395820493416670874310210464407050740075256769673977122173856362377341147766749545918159561095915000110858332370242268048548700940999572375393879796078849413527118404962128448433418556959353545976470790224899133975700563897109913711137017538187899232213371537670395406075033804877373079343838799850535131497088810514603405061643857819153889959948144196035245589857265045477210700508978419573865566297585201527044360424564009498436869762271271987258391645233000280444072286139825053934980942108426415023899796097633696671711581023655118794482234654490427683994043906502713709638991803448862118949809609928550740030214727948294244923814976894865138663632171928530298601288545620360176552035126478099673924005972490742873141575276548888068688734767889097062840696445793179273770675515076779036244184948778362641428233385052380720293581611348681989640927920397361205422351614496066924405703303501803419106370249601067713644467619352228119060041421654605834492105195717063985605825381504083266887401129597366686253057652802251856820730817321827694992559187101118323899065040774563022059125587054852156377924207400597629772426339501236690064837746296001155048511222097647545933743088819882433859126392258695929663831143993103350335561254966810910956344044780149533180169829834665229279345352996554631325542747927215122432957052505016329666552344075251642055554802000335071754703264952406930394293223160485433520368095098297011149145149793465722864469619183741091155183217378102002077467920554348128360988663102287521893932807149879843067074381021729301572146899853217764521264600500183981688689823867049355067470323733983668253473387078205825522009053560592185557885520683299780624000901887183962092377628302606905035486930594122904522751095003063756717536907515284565409767350274865076417431249204129876425148373500079662521488496858896916364946192455229353939753276323961411357221339764721695969376722992322323230512707963559140121765292520714041801719207324061719151084128565992268898356095278453897148908108560746755143560791713130373440149950622304326347677871062186528548946207796473915418081078609814552276691260697857125668088910226376191533713034945053141989076504016722307376102668948388534501043375191183586287783866679673558332498772664713048770086621885472822094963260667418529888064364462879903142038075148346172314004026253571111845000028520403051943027967671938614171565243298438733113279767618366388117571822150743354675780235559849960828003226240921345533104270853355082496357221300006842133243754752097076339788414808703543901603264513954258648456325409777523059442327623657779428236890957036275222832426586023349546746021501696879076523280888848587350478039342310218760900046481298475113243230713163321842666764588144672882770081497162083096298241862781227298063020249973880086893956585684603669531163090065935003652143919994722146264176403931036119858537410282956235315320613233934449255249941917789259331187048815101393958735074676008232459233155126261776073206884387842825671876728261515108309955129015666416602662789114238460279296933011224319716511758817606560490572062893767914278772079487012453814698922703121967719643143734429845183153049002308263963003265086724414919890038456146026742177880947692177917011953763999489373369360314617893608546598673279185464337510300275931325993553744210468290417600022137457620973790182814458356787709152397469642435680295565697699051075521063636321740869738240718320385639288466073120492927414698536193090826085961621778966645395052181736903455685226653937677126353625857222085088813143196211854784623328158320106128262263269777310972836422969552711885913149712890309046914469637668956979247290819452758306950544095179731653965443795384896007852939730820280327807249226832430310517631148683879729062929867244574933667629908245417153758787587590559692170972228638736909136625356782767333596045635136949889485819458150107724160657790088229040396756006026412101974120986456329206392301189394372830404781261562373096059318897442065248992333647876758793584577373762808450092191532516191671958918134033097625730781471797369204600071680479323992035676630024859685768810123212243712632133364285849187432940343120607668237664719549917318395986110878013712215258117454474127911191565320522874478522761971496679192785729503982956229671823678982029550530793452211739375466855382212864678525317199381334308017702551762438521233869675351305837236590416214740168197831033834321077798243363447662531185156737935503019885165326065306102437670851215511585592862951242112999226380233113322243351536436783060299058971691811952302677397909636804396116209097672516062445589562018668351568039885705421575804643645361281388382390867394616812694305857525816768949284808022137454336793868116696584381347417462730593558394600912916768319511470999505028559072969347278022505934837706855770441198096082481485067528310944112398737767016713741367434634700264152942464186722365800035831240080248151014854248034850174316363225711232683148058288012985898619865050319722332538157365749597650626561489613393502823220801705257273439649847958512715679878228184039339979550901068243087339205128711381969817283846567333633553675883258065259489227340964567105590888238475674418545756981645173460762727516143125537007691882224742084124322099088689701619827500594297379935899907305809051977126304822062404603424355525532884222207237001487148972456969519925835223049041590136513629871164336235838673454347861152978211417511198439181240225915741618645455055854596734017804257795912198615700095687025176521294657879899031726447755796476368014087048769234709895206916082304636456469324744392419231265494873482742071683236464094617883345610573703397924043575394057898913657291811015345348320681223757480542569400164141728238686735181201118837327303625517971884347440116431995326197209057421356781862229765457159872303631997746832288340913103357548382255910256440124700706437849492510920163101200503748022434606342188818682320194296108765082689154624148741894821700929364442771845839360631175788959506379880496209509842903226462379293176313937581855564493055570740877811330702482789457353066712859071464999818348861386571233216901564949811403367021130332173250357356624115785883956064855375134208904906931340298854606565865481660707306101627591994462965112858566224244059774248368561411038796849542331250317976011317305148420173292921456572294315405454403858071013501962949340069097249343535906514120771944047547446237850012345068856721981287750224953300575673140023586074039747103243606828657803788954490142123320595120057907815617950995765951876508123836384442365498822456223822896642889104990065539382479454394834205985522837229059551575944004124291014058865058819396381559021880789676285844669066826305069313204189545741538214675419593631719660762645300984081878912269356324325412910867953881016576096942799157688036066035052822059698796939937625344236275302362884422464099348319955657387859225805157583868610336443143198910210382653267152542697406082389265739075540458847554830531724547760994432668645955298156768601712654882305743478924014632352268951642961087176551887392080492414532304032677530860749169202040110508791859721242766212147170581036892561719176842661819319951338449175261156247932920198398535798001496040549458965247855558988037333360867792384450687539781435912976526661693995127870113946849503270192815415310837103633531858055153853963736801614787671695707586557382305051024188881458605420217080707353257947784203150705383357618254536917003747627319520134631616436736396158379464468673988256364700308180923597300148268356298367889457708833810265468430196660268041817506990085143766491825468890650630585097122441407034607629476832433441990530175513453257313856606206466582191112716864296956448211138846580058826560861749876178070061142102514540461506058459305941681792849654795118035706984232909023030108408456827521657077730585583573495852246837659429627019616535887937810037699195991625074531162940394878686333822794989351942497563535013716660106324640156370102052442681188272363366612668059816122053363666706868412439112633573801557755523974892715500642680994981023129764325344038533654666945995152002424244992004740839032791673904801862830193411758648080147100438886754618387269560649660269745194030799339046871279305285275517593456706014525434807262740727792946241402673064749305504818241722249792056515099914114553836545154710913053845685545846241613296413889541501605774137855607292710007934895478108682694493348787386159580250333976964996804204562252697119319490988491931893624930432191853586768530540353412396061387211273658768187135874414587377112101112717006669325586480165392370037306659285355200703266806738775261781819303994672811652384923517660781384632139246679758911406731136110309013103250937723921305536400410083472076909479765834536428495668485668700764206327166984901587516188824855715955777630925502733163773711609875963365018569465705589698722929156441631570465805442452960727939560956533722668027824504941711046089930471380408505553530266340719377536413958339570377419969738964928980843982276318816154026585093013857323367910975266969162069168837747752006564616526245257891750160480781994136549882380096851052669230463245633169410469743360864260655309031643113828341780343794972797520624779023616686592726950073010360463276517611784166444277705717849210770034047368293056569386282342713309020048240885561295869295791623063959749325342295467991307406489417401859234595155862123634260834192754666406916595841149590862772399989231074385852932446625011238170928895760299935518994807204261865782768194922492318322758730870539674878809555226706206830598201459252366333436391763655905372151163958890250432173662794102290515569704720273804756222069514000698604455924200071901792612762840987258800551880606161157557890332838262165020005010301685633214681348041368909169439919683145431359555820809378274641800296432894934067835864418252828829433831202444646186506032313581468838400335822548661593339910517325008760147359264110134303339211611872776582311662632063832937511139176175239167617941629236918001837008498409881151915643442544698256492979760855684922013754592876836655073247810752138966839944411161213815996493174689641394169843193784330012597371344294473067171359415114391851859597217982386022276183035373352843062238806141723828925215949130191883365475091026927914450089463505868427233364967650925783953765530122570965759518088875545667011873174206478539564013708263444076252267807726231292620907251954178562141632604200549832799765616807453314804855736456401101510341819990662599704446217887448310280273035539882281231867404285830127397172624661876504501004842553970542483636582722106356964787865421848751048837958523758465504036624793536541654047434399216007842741425606242297467481870113321935838379734145946779822181316924396306766344386618969554596913360624253051075121726098817696587549313934982604796126415109011323193828814086514234666889985755417166986551054221847089324867108391821505597465502050498663514197588726058191331503982268594036519302959771880415376153764456337093558804590828389433802685584159476093763746144118241820657686951187172337104563700746031553489700739414354406631612499615140477965473395137890336890182289063526536768919799998463196101537321254049323259561968533756356885968413374917238025602840171579596465451336136778844548326546308801243972420140061908639753146085564974061378024124654901821044179963212033252061396000412888765000375476955827234700252206670007261039068356444504831641350474495687035659539905882594854524108418658723340910801154950834044397404548825273023007544952652072885149755446487936085651281093619601422787303635116012760931811365480553006784179411416257750232146259758636662994003011892350326635568147300281216204620052904151268901545825554189336068937283422910420164478374579630704505745791361596739696216518479525247940817827695537481600692573155971066020127522603469419607912804813105386055861391557288183720945444741707602402787579868754137073530482294548846187271576982390761508155922901691154133918500495759268765036951432028209641859179603792857303132100802230217236505564411170458538071750692492986584629489976378853062234383200606194994546650667152578973406211150712000845904743011812648196804316404627896985246279818468067809994155202851895884937523883185527739598965765658168801528115980707966370509069386131335870542559791739254091967729947883565890870112500106988603227980786932409606027161275499563537412812308968813904510647231581903431901611901442875441110858676397928121733106330874330676183442315281376949890412104453834484193312030670195491299123679272304491309978298834252605098009920121536376293834363038457676210305180399925804255545291710505817315702783038613745525091604442753108413289986602409349272116798881208263764497631191508549239560323649944135457768509513235564986834827617930454323097814524762866456326348505417513014455610889007662624724724393122130340733082809670406980180234531577166579564480132037223094140647523292202565899914741219061760004212227488223476149412020451965373346665595590056113247346316554358242553672463082711663624752277579521897802207916728281679368501918636454957002867381126439026017824554773417637624496255662546815616274482002254059774416573253594008598541976999271851911327672904286962480205832464944173995642411847855759083732469801543586450050097239794022643596832054821781342137909128910987466883803072789086089109537751110539423978991131155666006273373789577685946563038065304705130245664686610397957895614810451839485488278979433827880402323604726038194244407786052792750163990805063828998636546132093919708030676625161933235636429613341508511319086875840481370088410137004348111946765323017477443004571060330365943870854528964589963265888437660485019681531496703227079545216726174060674806828124926780618573464821049708599087044683448617257341400212999147431312583772435154701276872493560240579238856539682095628086488911311914451312189703083279264880224574710012731796668221957969556627139887722548671832783260431436977735104969935499648545054062154962857007355345599848745210893846468106640090497311865641655010714818259435145829032880809949170365565301409382452237587758023524869896090446640818581147044504667902555642378805900363660425627707638565300753533763852438929406949771801182820374357002778176856023123286399566197398673845854964706202887220570862315547446106293264484846440169529849746156160370922298053519763032793479392114476547117900057425070592158557776610843439343733215758537125261844213555521480136606398641852415964655610505466909921198154125584541775087604188424043115744878702890162761130501329724335612828445373833483045046523627783408641607663720869926308768230523538923344807337843577740400281155634807280167890502765146856229646785006757872434860315090734813589613551911889678413647434903478364856921088800479220653931000946240336078109531260427029983921806492789926106628834368925954853308626427777485381435746348066751687842189811107829290434494119164951949743965845411064714883103846254642616174122718058488864869701911504145043258150144118599776387338628231252919482462964153876228687036679311543253898648707237586280247760643606407489745789929303507467729576810052292233572399634436148866591489882404797484294257881635560980034836611560658135705775358401892470392976106692364655416535793646662430307409028502104138327274309211989447028766185595495951808934592612915596128284348292884918642303742894138974088355825038105921980657541836195207811366147474134716428905422273199043238363501570058592612495947169870991846953726633433198223284544640740184566582670632880999288186060023549011357705430719079387523357556118788755453415444908496751333644790284089059852017167447174344577337222818820057952781053509288133143605636083002241522930622845686882881248656831114855225306206397447753544817480096894830786215029005453260717527194344853268173547265806068438681043677172410515265937392491902608148139825635374031379180580205476882001804895863893079392272308633357182091947208358966259808175867138155698680135958939848651866346407691224040230749964984821031040824114958551766659231737562461765355401353099105071808137295985217673327207931007755630115859831931557198508886459836557252565812599011000222179894665441304487777837390252834583067325462017717434883088436787126416221311783018467507475731272450309673862176053983548427104152568707093508827446543907887353642073630454781624567875961523733836858495977813044054972416802606879932459444583409659828315607612033146682524517696062223646342685370534089846771448372933457205508218711948134285018345598208627253112296191937808913508907921736756126904299585658584665193363400761667227629235107426806879547173662091245252378791301284292103943954590342833907247215944267103427116242782570548103284152270016726203884714379977527612146198499737276995255995822435558188219312997609045105603538931029031276733086671852561835270206033997238150076475310811942670129755019910926308767085598484808056470857271300438957335585386947363329047200457782653955408195340200521317960861395541199347677010497541457126791512352525885580575299770111086371576752601657401060449841182645676030342858040730869537466368881856477553227420669341048795003961265325769498560066285948630397860504481177027753629905057823020711323369788098254995829633110143428334884119678975480269509142972500513844939130847136607091410630668676880641445393484448795568300359695633638159455672790998232444757534536625148038551933034938853450505301179869945325209856935745742070618339403950640782913602924682827561263107717325512684529120129246811586220518206123393582249868774580732108404720762360683546673501543497954533276797306520856247239123057652732228520892088488994689046354338600215835807946285351823231688247552848731545947052343868011592659132290167666878458757152314016617751046676717830735790924654071446083778189361968471749869544154284907507054876756259980415538709942218217085722795189311794358492675176102538568819090340779925979181340025615997288482953268735305112821159393559996142432373507290691885637972598925514854217663097703133876426958403302889543209885559880573679978908939003471920935979325799595768887633831296676075297023181524376591440739540257999832350456609852492884069822578075802995854812465589184512229870311758118199587744750180688894393364781342914894677538532024631668476234230149285818674224033175160727124925645504212071802819125175781984859230929930965663686681820022484892447708371106326075975208812808113417232562795194544379668901370265582685373603518578153434356834344220331421121334621974388894161833724227100988425847635969840922595176553445981269867364997244511094684010787106409828444153472608027670443856412600462420462824847012514432483457615088986759185634079774938204945136810388046034342745344743406429213714707978855652800039825729903046270926677082698882564061871034062434777338729392377148592081303889204277162079516934212219830291049841953395989391580794345884770192590190754721527162543431200010910461589342919475917662898112304598637306125985818846841874797409280344398140310788440188756673539425133828275376145294899937034441558615018998536271261230807692106193087538228887111249926153320583003796262515081244937860861487379561734685009700140767259050307650022732986041848071690368043755740093384955965947449990736042239286598313564551219198372469323409755700328887931998850994700346508952148931031321259874619874841267630677323096826903977855471191086506985283270695758153343366782276575574943135462044507628122369022057972766070313137167243349446969518492058951377927341494774425859725153203554682979268344713699635647597273275673101624409502135413087138701734402082046214618332523912464700505395102983888001392721504286960296323370858742282658235275425366214289551782680740573950173440796331707214770299756590630683883530604612476457008056389714281567053050810353510107781061700600289844848368104758804494451462164323233835671297239843568309459739865839110907462518637119593458190167719025088430880662803738519774885095191980434916807696196850926529969891206942708455251067845208723574435471156382123586670325549213782863286735539770161803818388825516100053878875292699897755974374725685109139647604323210781162728162233601063209013989724349334851694726346690411531970678230664027062002530590401330486651327535038016359080966392862952041665653751449558108144007884901978854393760794517815361232816456130564551722524401145512294110746310359134069425627962124271124059701553513083879473779105936635467300349287334586954586558077761769914241507243071497433655410121131337321844575317928764526662446674466246360237830262146015694914458272577061102717838728050548617938670319479669839901462289852768655392388051794043879305845452074783653045233397500920622156429105345260195227188846272232396284536192947858116006605489927833516588423987950856489061181279146411778564223571024849142796447726129496518960538330967868188569704827025752356819615291078931300912063682530387420321701468200827215574690999458912835150501661593993705886983363070468956827355533040942205304227915228318339042009761614482568707594359583202712646893184539908791311775468449799511771857120769480806102362443098877803025695166711104012428218908412483415559687129947547305425615753414760993145276424916859061238205771598103867323653094085284425174230740923974091650686773034711331758337739215281153133783463671674966248724012464103788107382933045655664919492338261774706773587212385095507189597595207598495711480101870046173246378600508318216511810308087320759530359527110736800447765871240590933140468686694640677196620905776229122851617689715975604173573592944554580227621704169677693693762099042010962447489911251535080991096573625329913346245127936055571556635806229608014803275777869275126742207456939589919928839709155752779687913191132547228845183784839208495010557290668123968069673115507708801334345926886668024089222003072303136695661889802498965203815063722933216463814402038615034345533416489222496416134758819431588330159812828023882016997248021088506201062608522511226102343452056569393391495051869191222778911934289205293042993735196201575193727267983552161534990832918800054852312677447071941019400590152599917914761972790842365807630846320080605610617135600754077287271245634849284811785857820602517381868507844779235006056404547101588221224510463198301552469245645399988996530113658950045098496752067620068768102102148998580927379359986649848457818189648051146794688751703908727447078426358551766545087978526022945631570208230133727994598823060607657666916492922168576910553230965948873950536957753311968186056814048572443171445840714710858608487017778680807410424212975492569352059634460929710048706957445723957844891765257842943619446376551903138893294640663341186683985372172573357316771342469592502537597811488087357930575270898987708776791315688516449435597035836877742221223106907571093194666890530876350397884788870310986347979406190994297379218568796639378168366883948494426105133021163011638399716391000735762775601189593876525196689674707754392850984174357746987981257234589428654575473286060073230534912957272664927277002115502269788071377498367645391011886614013579578173312712885341394822126545439410262924158921872047566147371448012330220994636061160021765877009646081768873165670033977495128108023237726926843219292480461939626111103472567019264733894364468969644910519995516111682679997918375883997272969407500261220947464671454587266539375335062332308178213434852055704585520872601190920061933100550791570515275092001760751700504192575995262083743890962381779630580734140110979785652327161397232682952788237257405839059004251270041566104832533388023164290266114366393635040671261415578397068566344431082960522278117606925870465621571155953067425859225971120189713968235395087798261794289000664515568261786964853891605357406791240203651923406934372414023512954947346421068972671949168162640655562139050622193186580648599426195340163788305316805192504973077782429663441842676152485081158127413905036222739350266139985497262640962059174882229427822982254778930114664283470411668502529103679537603459482866692478574065861721142771857746538226578231365123312028455259246396379059315991863904075839087401485571093111487840328109087198042930529803521131262765833369127478497090333504512666464738281167717203161730295686295674176389267649599578074518035739674470275576808420877291576740788028081292034995575661955562856143739473208893048192549677963928448098176443370641123043259081467890837697473331405914103327936573184833760737845965859305388672141314986613837139954822601204751114547318527432518280526704094616767446571884923953540696592241792329926091207679205481413373019627092441966184022553639130163236631785978791951335252176129386492250580348151459636603760432729020404131399706223187458952862570102635529810573870070744562379092311905569866091122757408836794924310814582270441788904427146331106855363563760762259249715558129742790565138274845527491668125262623801964895312065914259134138738328263843777295750694897002164535122713675061282468868975112109535842816186264589296346621430048100084387423791899289234191271816194902600086099955803950082234630101843617654550318215424316799871804396795210912826145645232382460605657732644128354221462389011386491906882439702911425320989375509958526548581700381210612926738587828664223203115196407838760061684019434372305771809219322725226192738849833700640840479255869613024777066151387237747630451443148875976240169545674090116364936202756468515899820607270041608296252384608211025122987096475110685456715782822898511490935113697169397228905501052173503652276587774526862393354937375261370162081207888096905101793613814672825031025488168001417687560143214187613405931524257089667985540167426218476910607778302379736107782044266437658392035138537399716660800376444029999584750215937505970204575135949341775006263960720147588535481063678615474344942485719661574358467329311909313356399013455182416210367502018092896253251736824135762451159567060341852824355504977089024361801336167726546787555352487792939352936958020437632005694401642940641391782735097675703986412001273945482892783997406971782368184632401136969546502166312717348685201195938819288469824543638386145334438925941015408988567854593978025805163335659945075889681381599418948664907203828030822848880186365461173674323386275672004440563138604184945150047695459829478223027498686561954695162263283624471899706487091101042625718472907472440086432492333240657750659847110019759825065721245898637771119178797917551373347632952684309738034761802569341992197765467277342363481029542077514827444235462532696703719330269253689347316621115693513986891735338766133659082992401400302186935506075917198472685040708085973419229633117036549928575919154297673773797040403538061491762014196524017696504832445255857390421606064719499069199267730999272428204985250321324242721376387291848642535009240683593481419423235212414081615498902690834578019676483435310975639044868205544057922788156425854991029740479400839463250692499142088388574088866611949872464877262192418284425030820458971832792032185398609142054510589431566178559486640484376863466092931805768192190779993137225718660045960885145462566060048191152784613671504832487834351005336587640287048636114648836559867601681324198426997900496917591839290486390138735664256133737972674453042412193150974965314800961449663747672332368380156427873293321539709753455289962273942820704528206514257455782687786429544778606060410708931226447411258127715050620612089832856667759905537869000040365574459298286433515703456718074970267671552094640091365776870150821004396903951193300063211463825858589569304904032243018992690491039038457268685134350560829413457561900417913872015396029898294762864442523465684052930347992813087834450057803369407889127680828741965065492324150922610323925985328107286846815628996545566101422915133146217573553496947633050151459018713472460904886718496797274328809094193354594330094856742749682646129823557009353503872872674014814221613958487146424245681670024600763300706992573324871958182610687810481182928131840729543619886207394495032579037786637146737027073812672536235425516174535513027284895832957811960155184869812302540255059415769380323407066681445046027141734627606538184284325657020624688731284635732693480272696078864396706863386009119699706423691097614753832118003187994242842631984802018512855117041370821799351152212565705763310539500228218883259300688385230102456292650854872329842537031912442677768071944095342714767854232425854976912140092611134572294761624642534676323791483507836762421181817408241070602095777728847649451030127077173660958599158372645943320203906457089390700703792518546807609024568825314044825351517719751595709292893436870569003737896079922567752118149954466837526674336955975128511247403603042721822060331553706253452437705210155126755345830265733456528909338294045500700942367861423150043773249609994177744531577077762368348651150277031496943195581556273211904501055599409849107420947365871362588329295403338063784333593746459682432912497893861511307024045812968999246456047491935345208065546113182236110188240443496349051420580263344238946942595584187908235862943189157521645758485541997066016211657596084528378048198314191166360032372558717683928895125793694134716750656195635220482185248690340200679317185516591768036003524819266130746810686714521779077814856007730873010221254806714135507433296145268114767525405867074934961361708233885647868918090727938116341118442516991116717560084044894377315983817768094927442454349764284420036621358142247712225049071635946800439625518502435384906565609770124585885629718125772145708424093153924945144833649267931672181216845139691498983517858473251269698612896374698085648041106208039587840594302844637301786256546603855102346916684165995643765343419709759242621241779634728194049871735408657269086910908584795737603584125892169607888652836564157453773988527490855066887982547615268143799679991998491635712783073847383148138508962492400915063661933240107138692439906730663748867194318076323496681738381727512748089598524181711050409770636369124754435891184605424644920468668754042471006378116584875647792276561994545775544430401513405157728589081714025984869317901908576759129379852152912317770672588151027910078111371195584371240089038186999710517137687664455524612922425821019185914115828056298958535676748279425431466241613331063569909016322518168925872624879048073562140947914579847409632551639719594632393141311296677940351796079664449643933875240058581217821462099697576118625471882229488901504706621730156526648079976061860049221821115751834158373560891327588799128527141393961161996067168376892409338044697484874233780361897631704447412041200954069197796316794087903462147017820019208763013133109270197734408338799559317723513319986343839620482342256641491087611276191017825196950567807863717398990597087112330392780742458174073270547402502593146877404058805327559824938729912278621699516381871418787850474031657088446917900871256418422463926009181851143817957216327136505682223089045681214223260672332752088062163848890534339777020137414223640279535810620352610096941137485455030379649704033189491905884367391084953116351709063284362854571588847552165525179243102763705368521041844223562573935106718107609652575309228895337272648519595852143297654074806051726954423245921451272550385096539255507442663155989765877637692915478148226891753721086494002708835917399909746670104319810717889383642548114617352348685289762571550782125482339250843786897368146828693372655428166215801415612499318121110789911342201696214043767422682661328399223357247398475296259647740736733818524537427111280194902024575700696209724707937275529870454357398142229414481333611087728322128692135859442684618183053755436911399758853630592859482953850985615284366615918119060626788672473714786984047873325389284111138070119332434583009598992111971746605209519895487756892399433934964538625674148736531880152144657602590050296732534041235258584619637943756730297206241055896116119119674793800196975028654620520979762015742677360003442973484232848461745250618955774468310491636275244715676831959746149561362843067654839707128475218260940388312844448823170773297415053766150605157123008605974200815197071532291894291832498579808244993212946004420648218030167227748974417631779857930124426417440494792612793080339942149347949845121926936213907059765028920160602355347230253045479875202532345362947857161551015536943141757833573875788343122826314498264941213463448331482412226077349694333463134490584889908647421165272970335401535818046428830376392483514417865460648004105440899157745346152899911263601424545164065431313912354258759293467877608301578793708045813687528492667329209852858278808889297660554169009467340841950756465706110461574833506269911593243849964976084251641774793650189629183074895173817792909042477055969621981589163400625643542330014307767000549698254758575837417994526754737678789184022098877520167197930068731114759441175068846910861085512468190923409063436016888799807981869805984838457818528836843565760590129592861367262002166451273778824175489723611069972007266202150338212594663423108556069032886846314873196709835982969714818635546268925654152646844666116957441847382519967385489634352613909245834472500172641250920134350685610236176878155460073134206259091453790312253344344398425668531633474863507651816061713364774797693204298970566775439684801504441351063700865136555772689534555309670191488047785199833328000497095238679851755543552256826358462400561014419746342801786865689944060198477890024899548440085573149647932480631332467800770810634537608508881145284454795932679081226175924492182544927514206717007108657696069562989441267751734776715827854843830175822398438003034675467792914680051473919972240778714581014223601256174711709577459340626330889882890088295915830008435237345926271515401304503341314436669495660416369111170425523140763425518181451173914337699120217864520955862519469038100520162176096163478350632675669515535358112269719879473008744455753324176400727705422176442012300039603071271369450597873077531977329681410918320623252895188414367791466364768590177095352758534671259223972742525094498785986889804987640689057340822216895567655882200388174088040308689988337563819685714862555053044194035388450300197654670844891111811755360330330070741545091602284156860492577496072627128415883188048641285624548242423568792098023634545661472081654017220563261779442048675759631000132411980052978065030639458263415034918546987530271231260136889918214467730024907517736566350501111255037695155929351446337789430562967888640339009084212885028190774342253033491681686646876740145512765364550914088521831019479207628710217017607091381227056352710149760250422786901740074234563041259394891461381616084835788645777121718564834218553480490899756054470721899168305552939474567887920159891169245711060053819658478683930110013716563186525380073624067038664879100208546128072278130198146184751709661706635960440703348464095927662856438241298661351787238759297840721749106404581053158264473202715507940318969978360982745738495080376452400688491052218982597785900165416003072118960703487788957368325823491764767283197924793160110614673337915191328544392066641587576542139374828118966476664924785881715916967810053418726766943719755800519328014924397029427807764739655710393070322532519663825183762522537598127867209698333813773796020656806444817239202838018032150888783883517224687384069508377604341060989711785208791109435636927163632421973688406196440745435909774254856303754128484821037854306898156733586717260702624291670968376869205323239348685513758646458118404350774750276382057349595488905808046685527741925399395218900694129968518753912959968428327725392662897379079418184625964239669314225036366210096513921693260827410544417278758790272328392266938348861573462675447402002846161017333472457992721560839944912261783176231538861037487042100238785071711122122536569575532457364514469825200809560301205230989848593858912080085562418979012649113389645454970965793886288731942000745791670015403348444691973657028094036457467223853209724254509907913785270249925459723428816305346726803663026180136594967430443645934341174780189333253358963359658491080256447748407935804768277648900770002087123073249146636658538380552750215560533478542312684192305823904759192401766921071815342720488032112488495382404284122559919453465196973848984375278668635576614002416420253807516479724544329385080710951694510130315067127332573953612523156456438290988375928358802018302877810015750171569391257019807278071895824470840310748796951266156174218683385082363875958884453001837700494614012918032467906731356673329251039289134429916087524610333775951744949519745744410922810585018736054127295656822914669358199071859625686646200570042664244890048973934933916589424616825996994563808735195197888563725253009600063262896838181888500020463456940322240102650428169081211682919247215522395352347043100504554316915241020701962765865968687210326431915084284852679565699228834369518087599477427806520465207548532930665855649526903317997817769658790487268631288793717151510384587995921307723043633367958086756967030064717079351421880963871929637475689468931513298412686533690951752128911564084143015131368554462563962935976149188798330651838106092665726288740554098943427212083312025595284642785293978701186422815615727687731934258325187772288505835793971969075831479633127068894070599927588292046448420625244813154710273627612749192684773075636218522464754283551302436070579600109562920982734472103758173157217170947690390300947587264951655193758678177949352583677529011269480433227364284416339391956787948490005828331245395263775931876792589509352724568550300047233531125440766767322305804540263344658274846912895971844982485620337292816857827904589696020562219549355016845339536990699475590792740008225872789139450434563525500201162177165115986994814858600682007646468504584355657895699840599246826892182449573932132533833588122843282396672184656087318210627033439079131268135704281826814894322944152491902735497751034932266141889039985391052944326524462642267474651999805535439868525199456913533571408879736366536952700153300001412834650182460882278585813388419077896539731192742716568263660694646262087423634611340294373622860420495662172739040909204313704328473951986372160603457713644990163583247313126441355961485396982703646305530685335880095112152458464824771514663262781413269649595398040392813555453237770974797766227900549126243467886369680401803209769468401355680370917883595518790141432571306570890479854691954325562142542251755831368564354275211855123633138536219914351359811920767018397034531858300897060733770219165846975772244362382868032358593765204156037808422689448894503917380624534152829474058106464260023674717541052140872653713270325980107672264877260034041553378864076416440832034517627312833531562230770710357935679695849423879079474973094726780616719445641462860437040636251279403448535516953094409071139059128807275593178519271754830579394991666935024001889511631118390986888390883972177050468361133874902638116291224785478894846680821509319636834086046229272745491312142476780034522652397051487157750260220222410327288511501945757492996538188256899458450488696554295387393133611958694354475138035406524335152438150613125101027236542710656509718232374414838263755935946630573026531554308942578616814437142870035441804508350537981912671745672269808172035874599634974464193100201741356887079580482942114229715086025330832821088691831570618023061843431357381652723526866937910999661679074503350988250413982586278365446954472430249938112791579521202171506327685407573276479375023825522826304488006920029340899834237015005842232756583163212132478413410660692965844583452157437761997326535743365694683800738161171476371015104497035578304812600476357299089863973758298680069859100579639217354446643463703189201865392886020819084011792288379957103960267945273474797297447814249491074390910100679420477953509810446296460395860110225557826929202653211567613476032074383668470038250680449712135015987641278198437785492366851589096770343845392410017881866886445367987252395278216509969519747468367483420737354792020044089753327404384921507899808101406352916616198510003676030043666702706101715773785185703858405358061798510827903669709913111697173492224046372769081618863490385741090245560342822267412640725701887704706852785771721269071779460835844217312786575531531159585098997518598832046604808288888545190485247577737040088824552991376952222202891624955256215101623385428072928815602294586228064198369895013693386642764861113787399894519620669114948998612461387278066419754750605640032110891042479097007946709401024019487764688914034651567929839458685200980859784093020292366893002560767088692719781908096178520834271353327872909716098543052900780875769927112011213009174020268446726821508349915613567722543596640737359911187958074230810954380153606712733992733301608199403203931101351203033620376723574503815297238855775672163877899243797985351698707862346442145938344207703184286346808123746027471940676302432458207364930853307714749574313443138290209432606135022857367939536848606607694496068234360707272568767610726671030953570313989285458021882913150509087508154907848667335844765325059092406805928912478743395198898475589081030525499584877910848238740211195307592824645759194411479569586755909764482007121428844011877296730438363737914212858072369430990961202865488393809406417830220040473347403833477683219571416897177053372356754509468536638031234255068436828601780493850581038350815982906367451023259575098923452667892944505507668611892716004819055399864340807113361569772656788270624094310093322265888198809661895337786540514299639224093049563656005589599186270065324858302229205136916885857144805817082347354323342614120492757862513356979179636325464597483891304509694940019682684183017873861365443993532206953769693870799541967903915312278905326872811109085624031103112584884388201437558686381879235320666521732797318813178448999081282352316473066781501751576411691542721128415562527524173838407231251766573731608534054777020635124814360389857439619682369493635479753636417873472716865746757502609624618424053722556023626634837095498499551507962836204965346894426291754344604738600186394768236662891342292626538886997618345335932988987660148275768725457852345004891853669837223128723895534790551027302715471781515471502503979959942279584428414961834206340344133540771207778104307767646249493584692447194593656645767820279232147699312765306854066198191236980671527228260951826819967765019546668088510984480082127931607612769715594253575443624888781781563852600855635955943377962454811713921956256148080672080051800073695045703974958871426442037813062003314748808945068232202910704025419675039825989853228244560640380074753953597956695304903553052241675692311031339741041557941431355102422926511765508052680689761107824631639338158425083617912561527934074254479188137802680271984155048470979559745984081962373226979954133688553709282542335609556926995183431135167328492503362628522503862072003402659705105198429908905727578752607263647835160844990405236575204602518299327741717238166437084334673588113881913658949522504784382858167085056195629699036242938249289186493571520135829915998633033210691715935556214281163472125046216060135012434698962452193130477705805983979281025505756185069636134096370629311386697180227566378046654701772812453081971426367214907363797714786608537236960613831649955436467753043097140938679900212850804106057196819872303318355197475142105595495971518278292047665957292545363959501753312564066980524789651193060706388492221094242913026412041630728364957519941025902108830728964245221149735463027693069180360392353908888502516033198442197140561261485694982730536900256751268295191021663367676823129114091507679011813353237650103578264161370880058124703629327212670623810298050364604387061674695548355024334237909186586766420101960947671033781828136960963633962333188938442544952144743723361911058587538350825995051772039528305228947361989066384864491835837399853966438325833177558050206273883439849040662201318274292137669538149584744806467365063589709075593756785949434033096694748980282334644018065643308980541402662100839335792891098553133880300717294603244960020664054189729357471259149525902156588656105108298062789505004008959408749487521909227176389497738226974667513877578790973718052320750033006754753468777450153382267361388458340226052382612531071078099746539857704141264896216260259298610679771774304389168795573410820501791161825968761056725931254790778329449886794264502264557159876306166127935957016765690825991004981237607383467410239630228566606990946058470030062797483889348730644840716256819986241646765340074703097746064469662757869431444427054977688980815206698749577388912076352499605035697359577119898902769480512625438689083852256038052260315852939890247210126714488180596847898641801186667696796387130467224578054900493309757517394900345052412857450270270352496603287375740483336358361076615392153192219221274068403730376633079884874870072918566476283416512979155598856702202690937691698822025914731204805242517166183678411073456802240537954785608702904896768830592568507234369880540185943805547258171456450028993189345260592367519424544983006980859445467996893070459443620698847670113217004473332194243186114830550930323770219574797510896099892286918407896535004185611187469961639767564528797111219591477228040139326444746689682693405572205811506287730024901750367535869662840052835774430273781697580120909416857467023429461303445476054734068313386816372408996601858756159334697474983849218007621942359637406040263606058104685045973589071907258383246149423869027200901348388805216476279535867315324373207271183948040359549944263178854661897328853419641072274503972344693803824781822670903098336497047260827288022429087735524801161443478912420764311995131115982971352216451551450198629316846911808435157152544704656869518775225267763103740130584309459121301490990081718369497509188575626172465613397207218701526310175102132587923815412516015543230610825777469317226906145777767888512213204888477105973973845179104593142318186496408446165194547097628465784799114105003399059180622092535834327497031871102785693050482243916061111960963100532317481137330030568070814172897443473235147122616488401774773155307429851468447295056963725125969613666025005489697307747991810858822340153263708543190686470907232601061511409346792888960601482077916142491187668109457756731399983236800759306740917177315955095290010105146348308437435289235756568212994270188955536333718797567469136939955728876354359636303207800094748294334076488789048230414335372073478601743358408241563304974622555867852017184353463541988775793132789091103421046959437392039617379525101874757949780165023384765966726523096490474861036612092724174231144034890134120279424981964123218343259290144153622711167116456257129827480890017768357368571538518415297540689691826362862601694483618734815548525968131773652935857622462333169398341164409615809145967504096774669639830286737549733320090857446824806252724283881015243592004265976491477931366071423771243147926153406515818446901266059349694903044899579402636785615736402474920031629133209104210309943118154995022059364168269736176667043407301068311625250483302350100786023215647127464217756762214253261482645017160354544625210853761266423710071563644467902179674001967169771753999623771943097442367174490341585712622755679043784443006132477403671289382120817224279032922625805207733479272489852871508815381131941527426105420895313230557282705793549152318544755303588642977882654019584015105657775086833865883684668826841608641373936486175806658510004848359219368824176559129506126950319196745417563796664451145162081420255057249632733110108556964696564304308802906262463851875236577518559293157240384692362918809075789006294128817422249887618849665949164433361506122262302180908469261367181840524168962306709976329425073277906881513156979126517154971765674454547580598889750796146321988271659154401540361624058700338843645183022515688834043746204250497502288245227728495486269832757632555746554260377306427439596228952245292668254750609802498022061499337469552803509120580328270407741415518668333585368484212821513653821833379161355608131512779034772858248429594946704060865054665521948240537352138144331249561676672379834650538426945733477326103976733739755826645989469088498256277027493162935919058914966832279626744547551574412064193026229859367378033943980331761521509445778242633573732108943756638255935688662708561242332419348323320048248312891212914691312699014372142279606554303074065063194621077485453513158668097306247507430126788600207323463819649371606640820128826789247444132632869144193728570525048158639570379723869896603885952129741727929846609459696764356335116232754648982982181728768508475976456458443559694107696743109711868118536003360545375128780959106288215840310058281418562238998830232064945022308618164934951529003247400970322161874640833751520052588325934741649354371159060854859122946933502357988014070920691168518634534489816051315644070347918972062731774615593188211591664714427159764937236435731094321173707629333849187440777283485341305882998730677334899325322636246380518119684970762143779330354963151430607519395547302633001006924632098325016592005838052339498033035441082668082308366369083636907081864145788153416747480317075779726294300448416056481885151907843194832741416860488388578531590904157766465658705416115388083043714211969203634048368100494504786267365062000921764561192257898753083877355490767001692954691691868039830422809097593674828347509164861802483484221396183597387336594718778253966936589253966918869581963673352978550602487155425252155868666209457423297351195283686107844429094668605626590776998264772612183256268417623307597635836640804148101096481828789992118759897155211817156535712243129077008075927332927764936922862693223908018378611303515061896792192147228757311544044896279468885734787556805138692259736032992516052185312678486920539862348921824826264186671106586842633809982245820587523614104080996020118600483218766987268074938054281688375186553763080381726077379972930015721640493132366616526359101051898659628060361494672104993200041208490613662175255055282734921541306442567104996674850743035838947186417034027089670809882779622986134518566112835455656479162361676989399540219398617229742569355332994364786082596436855563872703853594288345971904936136171643022387797510380654059003328372182999241315277010053067784147455245134322737302334565481690815943394338539750426986111265648535188007024808400485850290033052905889035001449723273614645170521326120893644283287201460081338406039915163703109195438600174739889985245332283242169733234851828374068245486696150854548270739118029296239257497507934447387628976005997540718398292044198061961643927497779447489884754068142029752882558769980014906580789189737356055360302731942963668749398240196521252273720141373196060455663558269926879579029977621720540767482502415523071843067191606225144436088744552749856930972080016955954243947143530354531958178355865887261083369357658911220952686534646846441499410697756202264731092232630961055457857854366884066934471944013992704773712520714016257655819063722794784672381703737868745932159292593013715345510575466056795301385560749597726819451699399203760167110544263631443159402361356166181240873966845589383905958229531291961909568405005089879962937700291791845480165814080257365176875806040490820099851547052457342725954410030348652562526935305448448714006290820881114999014811431334079883816202426218240236434788876394424612152288563349154369308558512768006048595523923649510915267066646703893927810568480715955627774209013063745550994965933538179646085442687184721428863883251610989157173623965349654709374905205970471359583297263723067488057568487860527397284029919786394101178165369884280242848203459193077124659778961322920461429442358970287058171524565540592669663151851653823122492561754603119473229069037542522301636250277448617916284346176734728736963290932941943556993089874174203528142471198230328433593331377012827607916484090946333419616845606525183083751217670550824570234654387873413714485741604110408513507323615026163700033771735628965441931565936890743900071211330281913186639994684270075124925926649365662159970348221947372122617120121343495967870936065831011190690526963760517256467966058174447708458134140237977867926531299486140880974469494581495175897438038644844056111050286210202467032590077926680236909553329672751648391880247075583180562097319741926234888988508500740340882221254597395199101188713003132744472255531481645578283527523194646025486459481017010703899473614975837077044362789306194189983964872627932464478592260650247933146599569975561861795174657506354389627856894266442894326146966461644538309626393985991489486034121666215387564075491035332721955354282527583587549701937112709823563547657725528848744300819093461745840757653593210406721919264721389057870552014032954625552575785681571372297231414152030428930451758910124952683245754109025631774961123626345551327160479608121326598972310029381805927904138315504328280122551413118808818523983414368847020134428153002529282272257116952715750891894594696649476909679328814531320000847305202101327601290943631109871887527267870386981859331245210827033320601245980492259656482725540931095689014083238236139274111732919870772786207717753580631935529623385744652267771606300620005446069266894704516137012671400890846689379493138061619184636871146478707263341594837624260728260808507096572789520708795053021064470051412215389712158691206748555755998158930441908890492335893555483826915854717829401564467225137805672866054957839657332565203898520863270125971550279415637231866489576480342925819074139918981067769498693843575057277753700608352024672529884314670445590720868359512372235637797065590590449449061166060571576745616453918506257874422803160835490350208980106484915868789466313429290335272480251777428500875974610513490560486614634082272074823918465486605318248329627426502693331981373677993815186282745499984671719979241477785150044584933479399070640859433915854062234660776053326419421687744066845526842632541071235214039974499441667689394999210522538736219900862590805845447784111572295828681596634936553554251061903003447211300971153095856868403460405060439342212166119143771393780141643929764625792719922958971403944531118248083417983576937083191039941720090307800444861404363805062467907445517195689779576931482499002992497849218090904165104546301210060592883106501518798373126491697336162573190668145689532437268581582670616106532544722670716802305491792996387279232382793101572231278523745775716817655305483114017782975337415325948816426335272913489438110904280789098115224989415884919578151054366730461104411634050559112930146613229105348943935940503755148076547988414958989818457616428234327407316160652703671136703511460193654696311406611988890570683637600952664064839561874150538789042899709684965156544293474730768225721865968568938085777473779874748929597864981865381460689278759877115435963232583974284875410456048469944759279285657575823100074437728458128239528949277897291376309724007009204502129024590790303619549290432205103118676359710065111252526699357360393396902494728291636293497480318567364928656068053366594700506275218228588405246166118425759732429058007684905953215077338905160838792409512895075139836476571420137445027180611241785279563020584967403745083001481294623863772909876713354088005824457881836799906895523765903819159229481341995130742660220659104791006271116086825433606235935976196944741538642216913630923905588018513701379590554594801802593207689377807730466687454771045130841761981951511365985176212106044933825763532895114795533075360716500662047978810600053636490830563068578680346375108991019362690400528147061602961527661119988649627512469508493088560167029590455951065872446170107349117932881259807588579366099297658717724781451353584070150212070053481694427586961465054726259242255449407999373288890878055330797845167635658432760319055893394536198600792637249604922198685932151683370924873108260897410893632192625830104463684654617265872602874457052769191026018273613159819624352453000882648631126665530708544573292730852029003549701221385630384045307670433630556331028486420374188741596321616727275289934983762627775287007223862814182374034372024720639099432742304164682435929579790199209394470381347005548535924469794366652998519997836507841702277384174964558220353319972793425456129286072066900852840539124557731738109984362863685443158868374573251184700861661683729630254749258419135980931721138795112369819501467598006817698411945891436645396253140307064323402308356083480996262598607261436088441018702240525350597902076690605321093016697813549020990859038561350479933686271638659347790648052677111192860329657886778903276632927097026794131719865412269626322515797821638921805777223183173365411278743144733666764603215711792387440660526193221846182072449172444683041316698308304329971314723395044677760855102859940965891517519203975025946395603657257959571251877721649147949790015048184463304338337201627103865476553829899862709863587099232598839101746611767544294365205083285327120798028662252587291710395133737010326756602465076521156005700326949058852796538500807870294184526976642754073154461663203356437455298915349229523994111348195849137456894536475505187833089763557125431040851434526540670666335999028048447768684642345770927488468687386612095006351509819873621134601559600251059158769407841205634053791032136790512666231035683888490892814893650620731330344454645794877280511178660360143620623752130577921565586694950972363431433279790768965586388740907498431852663138238975625254139448345752479643312351501567172277132884476479031711166995268344684669280165682774319551292975435231992277982091711100537381692414349426635857148323583519530526379686611466794379285361315311875920494282928452664580111304653861822833336779416308236669697593907458195912727641919946616767551305335123317035672383199051750889560727862842236950530494579144115894232592163529549880804475400852956039035558807882990620792244297399735335771377879695913558064954970261014025874700132914155971470067307499942160729090516230747166050491502325318455725569710459427031017086006186064790050271368452713498645346568874168713810858036238635730044090769110144606764308318725998712835852045274455665627933421507443699742375994736338222509752630491747579880800100398855295854509590563083230976453756971401725703260099721333117656705074081763710255991825719777154744312892623478061150509984150788878973130185598971745255406809720763170151782231891271517690309041376380903771747654605045073733308489651639946557229474398225444744724067086841442220661413207543376036900809423846701134165304443271648576957175378171926127560047600373426398911056593288950068200036482634872847835414212040396462949728908690822245984320420678439188908101606819369207067475688580368409629880195984734476245803828064200799914622160375917855602398186884564164838463978993801171097116518858114737544703931075552607394103731694443404776723872033916557547370207509434887718341021464557394358690906218875568795655225151989110777914230580615299747269946619406521621622761714152955873552556101622977330996889800407671111558177830298012548375463571678638428851457835561881166147830168772081923716253256882171092663291828446432164261297181086667509420621706733731188158358621897744378365915545590471560512061495367788600680546165890583194526960521578606659140444659326347736544603859804723375965881460923290757011253495431905407822333094119585768380542784552776661451579963417448079820685949220199595753224245469122864831314408127332771597798430337585718953980486858437412878557333615312018399792059186184147896551097374171944163844905986734561394773277887919303327669438274785843183402088962838367266349485351530083450340340731373468244937049072628397856327641897064365564040388273254375520318350260040809274617248905312833420662441651390729668262037295634653520218020342478861778627098900045020908191994235521317378620757366222416730609998692947510614370094633331566762219774177992880126154649910734158495240979413140068265983069597525037098011240426671667318868362009109244004990014866291016568299775953886295376880919738181200153268200336159578960008552947986940227963488435240573900700226577895175295320356319149539283811726775428365963274751517834176295770779435521377981670763623448656421624432001146293107262378702623953118113621019784458233538536205083309128318909127147151794540652183580950626953125335224572739645143106167822164563243883647870041068213135250374698543768796967303328873044735094602276621929825104153857208302088360427440693367042901645256301417194632069298032286813739390262005882067629815314240016634489092823189691333800761836306311714785234865602548736514528392726297518496267757573767281699593607673292782081767708699386796158355151022589438311463239802908797876328975191562038061119533181599847085651365959154533254719565485715384822941370571096349724098905249060526409214866818451388144711844896172057864994526317544496733868351325010265281671253062751944888729715189362784853657260855071007474617218047134501090178032770959954732034455629084737091679607247362482176238992183002803987900726433780720870183615628521326485432028616028967832241609029355773823565293145174923678356092762104002811255135279395073717636003976234874700026724429669948349671475399141440331635102260857652438619196219719872376258160835629312285540630921907558088490880507270173775017651063024657654664216659886630768560876293046204347327198181281599457503918257592169783596771028942150234152665653011441795623143844939760797509474995416754312584038305976352406315870329174436001599804636725133595867158322814212258015708142945302318062398149635643963776679530968001254380915980227254816790418593259771076352793747842454825499044754334113630948919694396709745475525213764725019912904653992522287151027126364657092876176350594430704032677114854511437691358136747900522405362239907478086674006539625025190989219508217991045142494488177813769290218600057731738342827388655173943411964627978849886474050430686716862156482946614714996584682823457450360776056932261695294363763905148428510509911422887158368633855352467966039833338626658342885329352530951646447543969750632214882308746659282085313282163567610268076151783321394500593138677321973666191529908222059184129385969636397321620029058213144406826415723336912342551488276573491780466295624285851262993289928688343684453515543156969665540151849007875916283488248470699657622153940021562805231215459504505674245177358413585607495876797083116042935816827026131785293665281296999157211243520351654198085048718527023175774377833150661075150119562082107661092645724601141192010696906955420160375563005710212637782415586064751728723236283994542306346504133480386176682488654834033674985041748537906333428484749065743863025740801727436407177016089756147474639735306075198231577008124447144313659731716831521484445200863409234952461713782508665585033944017043144084729609234338176854768160443518788996846762050544493693096415466876129311256225401810727704024799539453189746607913345371038663044239075474418405765346917298307082735894456515735003687492791790791223239272875920032681449643539723390654799470566137696446329631105397923539664986394469809031454762225341819457603746803363094825894723277540048316598344823637249403355163509119152902878099687248351789750758919342294424528652899444991610499962117373821622206937555101809897245645444718454884219016968514897766342463505596351401617197338264728247504667656439981185518355865675148060540659024040080431875913794894883145682493303218256763642608988143240738927236466750343315602262318033554169594716324517492245048635409569677788455538648787902807542569932547161923595449206904061297959511978355367761079491851170382047606214425750886581408975458315089649002309038408376541210718308970402822508605788017247485600845891978354267947383814221328958046511252193987360028969678143501389564669365804367600454351313634702928894207642343087201994890633859014961915692864586346307763389191881933089517062623277737229678729650867999478524179815097700744819897039554924318407505373471799981406095908391834995312863640401098019178903636111022915678215038661756598386800990446283542931479587634635252082319460761231146693940406464853766601596690659806078726364549094788923522748334553969848998838484916204878169138268182399078880798498415604316156393510199136104396163195670485147745488027196376439018392865920392737911678774814171011047470755530747900914251525995558476530736236197306739682056783583628099966867666634378259981608329615145212801074257772725664398707175102420210136614486851201486187426081848327363633510684639677646297851836633353435052514711714390678946264983793147609644434839740884153528240101225442064964351052040850902292888211429415098724673936926043362884381060426073802526989803236703573078949429728075404514146089817609396627099456407853581360995302862365435479876069542095713674135440273392143519825389351903823123577029965156090836260578215210029310924414354009364997761486858962587244468285239655874600487060195675083514507567042253245699145636978184680486892067592008128818945822555265497366864256303716030583696001603505051272971018415534448195305161753592860923126840451670692334116113646837229806018199040038134616756200954346619688292298472545052472008403983296527661109074279407478636307094753989491810441413602309768374820085839748362900296709934106251420698703944199164624993598988962574372331990295410042376953426777105020813969722734841143127306184991385988654142959031342299527589670043755271160252885241483825362625194499113184763994419789552661579981270432651791293175649072783904596251724541204734524204142084284487793923795155894387618461648595510494312492796184155887932903294635089343972339452894830832586813253771545694053042057514071861715326776581388341398968815232854090299011960260830571403781529590109939152203787324789331579714750936528545889683351778249182303899242108161814501654466445207203838739435449953639584640786042525439944158614330517082264153251683527857757902011718836722493974505961247412034057096343053828144087700654930959780648120459210384538755745845494775926470512473217194272960717777074817041384123490569403183870217588933070052609532581724891039372535820692772541666377696293341535695023249797065929130474832580089005136397609564966125037561470254315679273442836879877267117793806697252329931472306630187736174893773548979478645911506219608433208275071480135792864237315926364955202549894904637744274318059306624634369053249380835839826947339367419707704737892650718384533219952017566064963898471745119627492273104268841716033981101798795107084101252003913289167293964312661116407518980484506299697704571870615531403200581967544291321005633180243240348501976565816231517567813801660525520258700880676324074172079226913280285224673294422807769061572597422590254646915660961113898034920622314455574449335209393460887622695119546174235945513179913177055199675563389927535371602961490684279405513810835075129686528306796627079174229737703108023508430069345134739629377950816385445813522338500601021791145246393236472204401028842901338189666444060197823703708090230018378278613269417648015999564213775229699285970830925914979994242549973782910116131150381721965854266325262605568518628443422587087456886212561885467760846615765519827555467459618063480978834183075486451017318297640600768438402028563026898514487707367357178954542118209257286413179393027448709535246886546321047933255702831258244858306352107742470173273137496679725240505636417056026014843182254757959267612979859248046458203715486836128415609246697545760580940433341911576400493504283689221115486235096276282249510058222308669292366832898961840068521724900178151646985950691124220566583283497232999287692011133413714059579028994676130123654293780781947379227090893957035998155109673881415639495134269504909528222709181310296267912126218438922688853662925825636348962151045562849718538064476985692865000582647144823695479429569069831024659403013149721746077840388731193801399447391081443827777168533272221870054140839376590704749708743565995132605097705841345913526624137515770647358947148536615158260767087390619803262086535659720030179781036878685342830556577794321539402503616549250175766766142123540549393567412695988674557710798915071536450672073663557828735657178246023569855957291107653643504920905149255489556909452671031547542729904260241406135421687466031641316114817623462161000091891480984370548534072835186334877884689533460800157683749055634860494063065022312247892314689155328790858995106965230348101640351340857206328961419182993529860708836326415182433900277467773218725683939461028961002387991558546089010226474391036111562548870481671561470586468601178169433953604414360840513580436192825343853164934418205034154341964975835722976307576838584532313277819120825853230128939138687462001181591688996417333551091552740791562418295007528066350011655058654373507494548879597776511278367825618475627082141414372106645910450283460875037277328288225459117744239094346678583447375738712118903293473273153553801448056697137485564374212896643022899478241439676316294079746962514861657249320437668345008048277065219815765852474072744035970675819372568575218341056045673331575579747263798096480687931683547589105116386186404545071369460627976485298438988286481886840173898448990882218332798178918367955215948961517091895332255535463770247740503427983920073389722702849996364964891586422478136655890744687949569861943135237680185329676608355272191789793512907353672399917743713069151574330250445076982608812974921219340632156963515966432418312004957915480739986995882142974882969223339951699062352447604425252149492955265846563133161337857330862150729757767643228227191793764512143046171267953708458901158835384615579198197019936146670080735184402941885650914004033937468811179436635235996793755499400932821178019067926313253669799163286825593333567736521076815932812307430404181002837575008209630335357132697941224250533596836897193769144775209790952567157757636584491823324902633537453450680900789745060268216535169828899918546040804297643789037502046533716237779427439586847944233738269808709593415176346452192878952294960574816810115796514718994230390097077548139369964545415289047848834650339768267700108838452864533554905796237973194833571410895081397268661606192446484870651219972236077914949186340400016571266505696306424783103118831118668680887272423256264486613400790864823041428907325040400540590396632903667916201527343818630976228113834415282648364594432437058925621007217806480592901924539622353006134790305949620162577077472089109621916691716665168079122170301685435303382163661927021543049115521253942947643592372047543682578396079756787424823806266493812931527160257101946375127341937725952312795835960105900427086108296680344461246508844003966462626658888750735050620022547785188329526493944690045476499964690730077118639161803270227710758476748451671121711795818364358556183434555705940497800313085454444570099268438700610934500947820514801555151329507155692662943139780466982854734648397013045800528010459879774562435582691575895657228602227698925148314443812826996545066595491238805690501982550020124706804527758834746981652050885594450457905729892346145151447916879904651747884290332423004123237047400127757416774608533582443170087684071260463946280448821028632269206108205710400114979572373370709244926960848375980069937169567261121930737991763304355658522528705408422468707903266342137299897980355873447125872224884263905868887730538733453971189908965491809226244726248487010633883671715075766427562200709378212796424694209521653004259429739614269683626673298008428200423265904370131686334665397987277228022981384794473220708260111574046633557685530556036745774269232686504043827428222386959871849278500894859316288856786510585145754042326874236591323167162767615163793239373626659416574484939898220651126811705449361351421574407696963074499533403765488547464809635453125096219183395139813180319410459092480119856428017887512395679003589088581350058915695280877199973360219998342785302636480055147839328174622810426105163323591484461120110705418537353502150297315404530229465996224842655423248227856825836169169587252183090035295523851542838352612473034911907385765619985718273850587292247349746027588683320417772815520441634782786030655663775245297354533953771299072525106485780490508053001651989542968355094340644258590056938947509600897582295693411756454908313855359228872183228431536206151418006476216170569104548761414595502898000773828665292216791280762202122777811463778909733628649497915194508718882253384188131671888497802117480337343661535497669686244060450968365058549241228717983312695681277330190554011001434033056264736822718766545706359606149287485956951312934640619865367299392004626824275710081368395512880715531204189535658934705919732441185099908666084986162750843639560473335813552261473602350067548430708771677202863775952645529829349386165480067924479238296830319320100979018625587798416229948942662260148541315480851993589661695276584785774896951857408925832992156680695284773258247008073592872311017306657040970125444317703352441764948688174175054536555819670020129815976982244820646990861715833736558757473516160468356736842052728748353806667993598995231795025355984454314153077665115990081122923908158235416948306941517178317901497229098338671037698272753389298686878399395768342993983815825490433772158682937346153534866393912532102657767790183692303955740524599363158180314048912139356933586884558518943586205263497839531346634640984644196589217938536080677170159905835241427782315443287103732681129224951284118184140115384560716882444595846464911362537866715021421809065905847744576694751848116016861008436673419613461268345041049457168480049690680546966141277043037613231761553343244561440276732872312573853070088903832673542125069289192472831074683951174557910452393120094306475335948584296451312506744024545705790067887907608646422791672551249047896201528011969609397815707650640411055525485732124008130572534073588286647716500480510000317657674803291076648328792563643649511101377283778933005741161194575791817455204396989195047422105943113290326092113175732840898181116402653658496935453026013463877463845875423118555439154010395269037270399249700082265006972024479928329218999407206910799399849312643775048613065535431140975300246757822744200720973770343925573832675584557813266625121874775697796550102431595617592405574814551180040532325167987834985179700569747994407103440035422645397219804845074476655290422145820807947557314019133949652263725171387870710048443235250224093061655332267881521788757156621602022684583705907609351391895578131005655578384395139929840902910711645720807499127813218386715863506112792378631932698577140953703635061982375265138183450998780749088051833755798059491843645889431337625301734375023268515402110846546692789322486788638809046380493460941582741462290883776212803307177998396319467695735826367152228062594070139988254230450717201456949604049316465733826900054468952028684597675430284081200010639427065639320389926023178359059772090144839880524510356802815088070267444399676544477534378490136472461904080539930950802549949963008953203603245252689894640640348572974056150387087234311283515509357772953835567636721345234146011369858623088540953072033437169365465706409059815499478734842040421242217602421504313408368968969463937019788785612120150409654281698363893026066881837011170097015087906745242847821891110106330864317919143016043817223893928307048527010561209170727095099471015231103137166737082092584483611098489007134277447224715878126685718732554457432783041590914456834839482107166242256214983707626521353365091779911075509915527519825756023897185130967846458514717297717404301251699563335963767764980391872943232865077722757036368149400394550411653485991613126994265872166659137251899339356154416579889061938838866328646375615568147328845134809124853649922551569199654307777346697438955434102038435525479559668873208209939645367623195134246907629981609645663675641256059202501154816225809003966744966582402376792994563569647120941000564266146637109431772887507816102939625770731440371394919330494006469435041589819410727392789262888598933358276824673895352908393831489631706489194934500118982905100974900112859013458272104874001146299756697848933896286474821584843972083886878068568976315921815119232879979891485920064865904555145824303866121390765458712341211949341781729128536058504142471594172841270477813916421181274268836924804882456390835083881966126940217611691135642748198300239477088835045525274145011774060866980597899870871310886732644719099393666589221706708199600107688266782647400303866525204661519584124258663392961730025500785605557931756135567253549565964589920691061912889128049553727050604734612687515042362802782616227593334845529827557605110244822343457989481870288646760494989619334285252821787866590357354609566154733359786697007370094475155980705551177761331381285815656300714402136293704822261650432162425825642222305926989626725566159551848363695639973088706760970404147296039047580829143187556616125505117140520389426331946125822693380956391395936484551453717516887781924155955407845467158349321833814016856800565434304805930198701553479097495099066813557564851609469518427430013706768582473796421821838282375782937537501769052027469333554121419450223354387273341700385979804700469295282385153825317390098668739203036185691630905997542509564738587369761281110266071612845836298385010113807497142322530060750821779492912408601024824437457858365976513137793151692002935947497472797283748219064383442707160456346712741740690481261260592354405949238388097853954659846237966525115469648727181966077312268607438335307237146635154147136410569377536372804822734896894188104214406677848490035902784915907824931213201989070932049786290733363266973506088514061681085758191569278117877160958465858798465780296305116674840275632396167429418427024847566966628562131465100749779108655897763584350375202279604610339039209536619912397530214833816802791160609575986207981776555044485006796767510423752309592797179095644527092320979774903524382720985412081061854103732349592676738028226491315916187859754278514573511533984619725238835471304678619396886500084205112760914757355011743616389861589024411729815396898494528906895577042304391072458205693057751616237566648602559107631991499080299095363791121171503694003760511126597196012430622385113405379956459578417624921594684664240845467641907944151926784334703841831616044522733843892756740219383087448812567833106298512668896241077369362582586686715800201636156989888408123745349537476707875272590956294847120546752799654623079612768921018847400854107387257029511875814035069978239108701388130997444694121601861480833770649866555996494006444395062172537423969489663203153939140182605431790870062739546088957634571601658218560894200441484900204777734552585725251912809201605723104286866434589952178806400617755661642278407408439345657867699761222538143222576357376249132311266737152292275809499834865637697627833730305972934925872640713143121282071722165366795984080603134145277459782533392306858347126247760676896895998847015863360137548493514385632215152924275854977230084993847456832967686612485186290622747644434802041492409755095134563144102330223677215184072910909989602687260326136202441540710139524026457128048550699642034804654209204279272706433161837492946376089210676067470823748333089592268973316384632777199811538924518316533847919633587201616180141478734010571133566656800326028298544413366293944411273754270633787092083543099438901067028669836006518376769567232725896040495061203733658777990827791524600410584105735024010913697860698411187763150370098379501506814884729861302322607643713690269075613492916578594256855029585228157921374735954014844306906045090826229396247638406941926805206937095075324513227689831679918527692232886191254622608068726258509997214896566155610541357528985005093026794605115072485954688890822210769253048570230246619972349403758088704448123960871152465102734864804229956954890802206670282397808938496755014910686179834631986489042314082746706807378595773551605923425655646753251641243905822940459584277241852263999058567732982788438595131503521717535943592452974459344867540698402420342674023692570375190752632872911288687105410990968237632331527245599979826719750436994465141901921698182639810363829329135751547935051251716889146713114778359030820479930485856655707055602132528860092291101107452435579119375358311978278697744570553614469416430949279729687098163237127459127730226416390354646998804818327600544146688928591651440282959150822677430515508595657572957805002218782467620481995567820562107341362886737249816088239172672931055310191732732159592829265374434665813791662845058148105045715228064080120487476228088406727571693505937900791997282926565894808054551175887101842161552358695636434876910073359473678887409222694834674512215182824634569326745348245704601485682720753990936814980131102588353154301778626728268771651456550949084142825403774901962809980834942240288125889684464900358895824521238868561928512543975702671087907312886857026657802240132088548172308152333544257887130475896608696609882083140285820602137261428622354244738937320129143543032120313505451265649110832643353281777541065308161182345876988321762104022261064535457871539706736776861707478824420789901262565715086183087565397010556060100560722760075642266673830544069304565796684877017395011947322295921898810869330336262679135337781942486489207791312219878293370632942688295642401675416842036651710953241073310525217420446992833506289834718728324617068558575016020510316314457647317029739066512193432948404079003578534701563189379016342946832144946745354959806823090817722528267605686790722946556354066756668858485151682051521388026117868652643001341649628400680225261037205988793097162275634835221270088497076135122687542324401856325591219233111613410943895591731928240294347543007120909617054837843029486990236994290098318320500795189458673155806996243283834326183811911445873427380707672604204617700130718801214986890325277077902400897988345910396522915367630112456777701520843135879957631939951207265475424891677530191479091770318784012175695617800726352654317315567888498562171258843201473976591235441875152402350045093836816045740428331463131092253710905710669775863232792477595350130910146235117464827956983974961458163592150127550104768437923057771837910027139096319318944389351303511258621730588532649291716252334291702448957020543327737294819392530302819735534719066590863120614362308251466889225634529676880205556135410921153644505612262182426837218281369594230261335623749428705483537110746756718473734891874435664281355321978129390657466265617085886219798031896327868522084292509591558659694533660354090749811688139384112838205631094786771579327985004204552900077530591365083303951976402380634151722981855959527312689826447044896248336238159893882638611735702453808866341804597956841815903052125169857744168070255195313286797288653520403644177943001551646807800116853467140200219815310883723315592807620423787693148436130596119486069225665474351923457094407289578499118206897122413808228270293367007563444662670565284900604652436264377986875229361303688368496847559130841994461283223423847483203303802700355879243707013784127816766062236981442764230230289867267858190498247782253185391327389318659968181818188133901865859055173992546509991506768694431011901245130784815726238543931534931271262549150799247507991885311216969982339984680109485146290943463240220909650705841428553161378480318555221560262097722051040542834319814130043283321065848847630716808563411441404613887971831096754446272983510285577919925204079626527135651252182050134300860463917517027894229574088964068330792985802212494035783233554562998446657142384782270243830790603566567055963848790287677953264420374321936455701471225860877504148852916016789743845857906310459619199834131113452433490479724119993384806814577680328925171326306168847003334351453033884161212184968078945061505647746636040606616186343826536988552326597611171494817938460599093472415894704750425181695843046833144927380853675615580283791033261722344233262534365137431397022040781738680242102121530378149214511116533925635238995059445937352847007055074727470739821764033351367605379883674680450753642240000812012559909932181066524982939542169947398782819662402573696908160590912838207407813499666004746740280916601326009089745292809004259176149940830384369566891073143529886200368628517972638319423949278061807044596595526671326631643243399354769713483102411250013309465227821776471581794385552196181511502436465657484480351502739755085822819660701460927972743596076808727392042338952833756371296365748899129635390141234925416335737738674593533211280331041471422337776663865613147858887772031383328416152610600015483560673589345988161453415847408454249891443629302428264062140065173616917902248534320114291749511608791778528007009426530889470069447509347670632338704677481466024490601723111625036965374767285008972976175511756956533412032602249974960359313378158408381573281484203333441816534245338560314819678911605456505958509024956879895370172535955360999755155278689469849632836539628768385302736472987670788668772540982754032983915247970511905682951624249066268280580262115359195922622837454088722666760790427796674991112185984816404147144542623166992942673043797146310255877170538022177678041745049866532636892876778981157221337052858321708507795123136763554434944831177084254138364281396808232907294248366472704537323312625625262537466840709814536204434067366899833508603525108907079028053412354013959445578018505337328227523068962915880492680652376537786272247551432012352600735151524208859730144061518884277240259309258905761235472120779903572378544990964385940501398967634501618704921836319616686594789832427599898411875147107775583374245269114901541973369755738325813673467783323322101040534993137810779269717312876889879970002852588935686052712080504832946180027776920289704951264480433704222225356296753493249192052803154960155974174169516750709198693590904668135588940523116530281294523427459236649402604543274623453543820687294955053185991589616142308968830355879853901750051681101557459675196834441827698356751695263282515415290248139558147978995755243660675697474852846910950699021703319499852961497580682517322741389207486629369540603894262596515054985678654111134486426560858819139058643360922115023692909565962445481924549014224976691634932196752513214514190566819710173141391939975487240501239226605171689079696938837682744631091358046260346613111241822346857673690491199285871696806068599036645382146402214318526421279584427152815069545337464640844229707719058409671062343662312888275837013282208777224207420038256820396506203987654663801721278351050535295528600088348622622447998263543179957961971127160563389549571022622873281832589952436166973150993972022435997559981365228303659796346467328857074109136958525936460334228304902834125986136855286391664472803307519414596550873805808803686399751751284835489400798306377461831275583045698932278411522993363891268663491023181515424888319943630052470940070529013194281564096879952482130899650489443720445655377099880213031802693220444119707345165027522120485367670732057565571979467406754818809924222563179792165977699195863491158380387415923997636793751749597027567643138187964182234253005498234997665261195424764367730659502742109891629253369248104447337235518370491052416941915406408503084679839357589082069197084407509691374016505858933430806990927471805786157619500053293895393570274202317461127602199729437283967778627314650518330335969463025379330909251471983559282671782016371405510396648744468012652887968300937220377708784851361937016679107988964222249606730321408978623404541076706833398042758994594000451265174923602883004080826777536849779592241068019919414444253760576991299239397600371587907444254154693217253598287322737658145904183483291159977987356857008116580213462020482988841132927454287391542434608250634372562861277183896459124272057116431456779779187632733618329801939982722283996329644465671116477270378156032295110668279470793345994362749303500140111772251174547547315067524455462813701530548444222294375997698284124814626243318525990132269421574140738332128554257536348163374412266273459976581198859686633957535310825008868804420486433473123261781478286280212445916640734310259905757329624601572406013682533749042989887197729764400310186263497563893047993897171124213489648609607180217663500688027279713781977870508383194941401485470988304995535182859820603677447437941046744447248872661468770442319635610525373428939647539512416464848358736544400500437550107585609951573616242723262111446218017200425215964624765961489862215803898964859552291076583420655739272650233935759660487491334753080264438726672633715378671562017649908824107509646496148688345323148242253971447416413732552263917404687079379373590723774024581331852739190933674160227027244935232372908996646966954506329442560167095255227199256412230050267554187393195039050821050487000805990187450490893091844277539726997870303470641258512326208975743891198145745138303944962832689445560396783178854191896617218195069685543386906611180941693707897777215029034339327164373734035538357802814156099608262322942249041001721918721336039694741772313231342366709474772834811450287986884977272541145204003575579399762652529062467790574403796979142870907385680626604364875624823387734795886412862873134599835698179648764381486198923981744877013397150191260433253676078543845346389116002618138891297848217736641727420217051845274385982638036268353380361508305965125787059038309935032383028929881424503135557470104628799823435133578476305633545809924675454021237390450661091699658684766213348361406232753451800485915490441640489989041613948057468234714250394236110075773862412650400418138808823811741591693241460383750857469096295981492229008937805901868109834997384957042763557529885150746018483683898918060570868498677647732851849608130133950335333086754170304853141468370015246675130513269058075934722956356626924111001625355997201246948373736622385677631423161127713508994440482800310896250681265551124337760851444141496768036607008282042222648574061233269228371848601830939246564350727419660071436664630543997069612558638172824566538964549518474086990966901852081781510340169188482839245483438754075581763084899546630706420216710299854359400357635962266803064200754111538793084591052413610901208617844840940221638543659725403712049050574478171778129084556672157562349194101172571735727649177075504097421507855585485976942261697240790099974574391403480405144626688375999635281222182370526366405559376301273026891600801736224166284954401099809326988805059866330495189956489714305634151209508153174452295238645775168512554646887198927038643136343752993078920480565962363072826695773566667908363084361073759170273332525878558916251795656851905810586396789140461158471669193859396127093935112539671287198845046677953814467182045593190780255459865750587328320769709139374703259040181497026064509174607621150210822405910169802261963027885700551518765715267256866078037975066844775236305622850003050577944353588870043702215736744753722299655900481915152229421268160089919526879092371723367767054773354246697188147749009005195272590013865291255715232378773293983452808166359388120701452179481717756162490504138163883216397042988290668851364692082824487821753441271566025674452958377660779607670066542985323810856577993099072318332084293784921030915888426628322123187272116168912659363847505856345854660477316767406364055308562404787443273420619576538093211929283191214203579746137815411683320127623046475937043280907676281076468900522180324857123472793941933234699730167616893565763840446940523551161205941007119711907758296208305218863414571492918808689803860904635372458830148246355828811157141451076215920681529699590844042003669378909737522908451507453805782653355802280899951552596243311342196777401770548041098964864084485234626088496717241264508294652840774573125619153665258372595831969221990711923673390285860217112712887523576977972255477565597198671642848446263634902386894151606503461376988322047135950058952771569419609700980067209426351890664104147511663790078529665347478762218963557900491355683860511051103418853571680908273827727299204726012489869732025173445181433126450614509161471951713800471017280516565847901101544558659689037942153939913843398336114522309697946541896127285755592232251389374358437709700124872856550615201204766664729303861840337500086812182576810982902921820815984612798455831065350883904880025353096234123947580890196635414613446254040761712602875204164368361605406311931121427344413382928742667770170459626217136874840445518788197424075653904490954663091914676898003800563272821648115925021255850178481048135363620763012723257045364606126525711999703363379054196083556202835156360098740663142657040144846093160237729000835536914035910088454380890967737857645489399304098035744107425179658683407577421621666627407034603785423399591055813759314990655975615121184665550795849423592147425250702664994632753358968575670214180654881040812471839403378234866772934657603763180117884007682524598918589763266090668847090557754198489027056249476466943374305312077744260209334782511904639736715186236516353725311466249174029302336109663492495305342934804100705587878215815254473352860821673650972026093257708031754704085552763150230420685215680742687471536446955263184359274425354713710901717719800596094406106132961116314127096390871922493951251448299941332416680280969685906262452937380762022718549074411129314754526402272250573349361678639276324359438248810252420041657567782064449337935867399328253619037575349288171119531183057881394002481294363724816926345212586953600331532644422921300399986194804892879027955969363177083816660741722394079583884616075289786698223181088611660114879750023111577689210753447062402337392882947963009213954995036187466596703112815569585139407107217507779815684748394673406140027128807667996280944586165473108732976804549168376240055979744458913674873398634220335545759771046593565234027149373783370986797290740848597488976543995306166319702931088753232491858317576303288190302721461324897714903794858941907984916219035344419056367004539170832289761834843362847494310655696762823892827029158352740342799050774514913441752050482238684070144168860564364133622984244445591037594064500995489346316135258304164656226069244343432377887300896723656802208336941611902176425238684139924118993445206061145275366117506107316970632648776779273137361255650743239823620155341597960227404233650712017799098004381703382604577157256227409125076558917918999725554275633729224756607809956305542441174745654023696331910682588028536241051925628584411846892173314104940377320184109670093887391826951037558644643449947031435785367147237037722681393893881534761867750514611549785712727522318247890755189548527031357079207488961722494704574127537458862600525861710559802941160549994773680391933352928104443229561565478182847931986912791740062389657399903393908945705253337696263676289929968392795684238661384439998296135342127461196527684081067934663876096937271413186016832331327042138134392946217066026567563731006082938075405506420961672340786515064555588745004044822480386978875737413180944398837916956983244028035692314389551448091973864954111349057620998147739291929043656426746069406598746105829276818707271003289073331358190737519149717617892268995194282741963535877481672340715911447926576041568207589639868416838320790326770641514899697260475496938573956434467186411925252090326493585150325004361556805088065759880890472861441018420453727915467158288710581854220433810564448340653610196528616562146860848165832666185567205207460464558743029868680139928290003901501697512713710017264079537921593168460455938156001682765333150609035120749825139877469299325398328803776208283145424449256077989215577121436666724047383100962687163186838227351466618980182010614709964861979941026352284984302461673041997753044420264741096846743063795932422168104528428849977631652850197638042274092638808824465339135475732512543015016012130520862342629032330134524626358423107049913229434305797355631737256129335047371306941898612275639697893915949169652712259271416828615811109754081794723702825138922505236983821050036210296162524519480761034590128730609646881006577007664821748996607049529469663666926556596043898399080814520400744120121735996466612637015839363281468647791274657737234179213611164060699877712364620515349682951447218417720899503882800494852580484554128961764273172281048236154263450052615194008769362400855021326548282560950962527223830174196188278852078075312474595125825271208432051670572587818479214343484377179159991542683571652446119808212317689140487240023370425288456145607394720725406236745835139247872903084668201764829447162486348208104251644967729202269895158222599968938499237456993657418994516250536218531563170812650070103947186032311464585416909673717143218407055162615257555861048972549938278448626498115097726446503579548528790145708613590513779021326180533920444489623291320860749866231985470422102285587330777341647640290957509919794726884983625487549081584857452601726003420328176609935645028367630902112000139386832199364927224674765020453905177649563166731169290922756093338558269786300007559605959140783811603684428954605059637623344848426342866224824326635153046740692428963280649321474623738311004334027487716026816463476304977128547248924274075254617984586873811680680132763748264058758718746142302820292471127504342731684758486095649228623150645611006133712604893817941341647527342313588639007528292405285655056457169129833294969179381297416306066343682269012219270650885858838697258236540501221159379534703230665736157580974847957261203756730365929934456639587147334224531101417952552805744477774932161285465344919817066342339452602105595877858832406486555417696400798519953166303955230833932618169415436058227131325086975088426047089587501419550151664432278932578579816722737645026608337923168060898349995253904140472606460269618658213812879494875274596156808990381263803990465373585788397824852462421806831365895901044818159601208232337210409431806899026830855291302558943274121450293332410027312369844509239781634285706155788979637678146357257191835593265184014340266941745697399809596898950359456240120965915180977988492749948904298336958381335011968202429565118672278032178639213227961242422065901997684747082455014238128100966798998227712976890006777861072252841750721443832655758183414110747595403207234585326137445293664719269296560257570183091053982709192350054590524965108654035847435280412273581497772881362872711841995217128704233518580797573703652366119750125746214836898522801092515176936822945774883057908812748992715528382788121364571726309657170911024005085426605793811481016150049631496647583493374869643231742970295535660011686631903986652077314220164514463984715021923517624475907071422102843988552525055890259114173083075932107935469838156347945999521201461890413482580074587341419517896015746818860588848863182303817641086221913838058530982147993147917999608858322998290004224114902911336275171838362461922834302339918917873271506226644619688035448735677282693585653465052207401257410801637969804026385254370273550362951153061520488078827147499721009850940989505692728648346522606271752433475526661189419574479127495085507202294185568310890547574744889368665919862860511774393491211115638085614435742991379755591694768876929280697722262016797877986953210151549498805233923207412322403578065090785833540721937586951027296548696804868461575524493224939170624643541703971227764438472903439120110615501931698720041997846726696116035866877819268803314137855955178733942525351325125278294131996162345753732864248353060336390412678018497205507019800416290522408762473272879163174156722006142570915378003751283652773768007544189346860987150912528243015077608606638317494184438408958156100021805055406180994111734897927025919154017704732307127762905414182149146303635778841963499184143123233900336983811604276476039577894417880104018273029823827212158698994142503774794899464850394483477003604780924663699470014222554130843798994106915499656731825552052430587931230314804785618586871677179891437417834004638898556066817884250329512596342027648777942654783884777914333580605535850620603483191276141477538477009512273135935162059957117440747008737432646307743782594376603394325794625022837765545562939383323814309180513270254727058055809170009748937290839770857213573334532275057293573998936475041731810059709723840222558159824596266458095098011900716744237668819531089306479273822743544566252761440856496029721237941485899074009588019281855379093244803617995656468164480375896889214774447684698950843894769454073196370215110885186354487809292810459463850207723651465562812359767329567753996311861739343714237480022746831648267398996755409233608722149270010046318513095824381965910347217975539375282044040958992571245505664344255378365814112731562947866904192613298215280834333563187770900788916904638912220263580796988636944823053837602358945260793798381431869633218941789342795396424264768120144509806602138952995299321629557353109463773627805632423110345283149115149272963846213181454104940154415370913174223831880629671210739955093532397484500424255399537275098302529893541425757294772966720036168701024433751548470700829388918935123657822822846660367208465410756964238928603595681903613818860613202959282699603565543908093342705839511930100573750035853719898968883181768325979494678592531414979053252222664180256564989251580644123200770880147231163370907848198480801904783868730549177962760662927450859304096832782985317468885264587036414529628924701820960386059107530975722129726736947594527184654757416461964227907530096320524534450996337432830671916133430554498096556603694153341506893273999636901555032101816219395352985888189497074261300048509485115230566072288468781576494193255030421608301635228941747581466469734922317163157172967105214129981148443387160167330944398135529794456688695196301504892070742029068509856725788238143734768665131454955383617427232618096137506307548599015451236006096175895864131107482484340217310213905349889533060965648177278139165126698739071301883584156592281054126701617948815302972417334011622423251392985862758624462126168233914653553856280084758661943260695298270150124959516638325449001155168288839247728913084590521741464058940574058774007452449949089839734313902505406104579811856172951226807520516610087613136987236459849720873629665329380801536284964483196988468524637119186123052165587151754069002250656148194789153367725839011978528139713761676702799038862263255928976489682234150852498048044378693583225812376301147421145323071305401560814988098485266485098690418345561282032662078245979130827608243211132294559880456324075370600127760918636766473554070126540787792608905501819597849054758065706694516801505579075060474820311325014230366384558217034132548007542635410940150949600376308182565076264117071179542664196266870389410180543212093664421751073412641879874577525164452516200871883186256191984360907796416264001305174620214971762301319220610533206260980245196101415171464388432986829293616242552687580372914997697607181505907268696072487423170959208011581548437825392768875214632583535986818658517103611583222834537165912147196610925404973517721399126212517701909226403148199142243799439183840922483632091342238453357417264200280346537992371866358073559797369613450815100950459147810263697820443710561812520669276502209535209857416997235952312098429820325051879729591829156032429285520461983192729815250932862891978655132028614679075243887513496266720507299138108617940206914309515126216074135298524550226648969219964055756112478805142927071452835639886770913419351492195201164766431455790638705312767353474671152097728633896797795794268605384182541199121395676277770599334047863128194983187802428725659445221451149986297197720823666389604876973264369760230723582100339858651628924943242148755523958892187722542239397492424579710662411018715574351492830977141680957308911530104315638497601306769678810838880679875136621804692448906899957075506806423852514442041275777941079484852803936154156641923515277143891191884890307491571143969275325975692358999374152276451865251698948207447882495206199993310463624680279209351888346603844590773026929134782933079682058722220789508023312233151096240104574261838194652689153285896250991351366112814113851297384459627167082613589004164095560655278126322195088862411720341080838724111010833831004470276272213782867117131316336274113625304377608920113427413098113168491765358918512398506005152334555548809870103627134986304805577853146018596509643190416919790381774102517479055292246306812229076119106176180009669385724424184755253878069448563327786311367309184248951840288003733580828838199624211370525913730066816639881037631658949554806917482937536330254338851558162688327183264294988628809426099802038267111408304876363998567314409951778566659751182727921498314945129116143550369302661248877861479032252094702236332435096376460838196369036429584555964912612782263798753424169086742769715904628500816175825152894809033709762904324507156221592447115486590370108719531651745820224552136918732506544504758356400976781527843320015024386066074521455034487567589378690009221351823334941725546359594375807750971010205918976442288965852112628155464413038173227474504605737516026923251151327570631649897784958014010919511019201770723231573028326761964619967898167444219939468033859273341134361088487497684969040258714193919224814111216794823527471456730630166193963537784603773382469448463580215052151629171760247915318542654936355052484085393970836611950103952211257806320194281130528748912440894297371511710362210916752446156633820506681782315886662663555005480738871873947988891501167183489744204465202392439398592450609700072559888029928729113746212336845250769153361119721751397097986694765554443346262653413645063079248142318504535233456570150497493118328515392105306875889886798683400263344454664329202983188025018954914778632255877704475521785589003794022185806422002640830659146813746219429207862035835966118885127315564951539116369220162627653470715389477012020280909858086398841809717510398001325129132190161447343420841113728121150375707117033586002837577478142153563061263318281422474799907815991060393491198789756816247124941253960053070839739860529877134616565512537359836225700205180797287055779675536930279980425424351517742909110665891421948006280659283171487516955942991328294403978823957017332832586009810201694113719074256835604379141709086976173923749635664869941857990548952764031611370418075908992705622286059480423078723099514503960104500839694574562287101497827539276117759708296662160208053251350807515922012004528766126801204523179149318783464503320262136530612791859088477182255153171324095409967402944866954111062750662427352419727432945886300924260160951812092872553135357040999744157910741897300579976815781076926482957497229402984105728974851178368824952972399187646001481005249658350490164860914785371886260616993814195309129205422350358042503919136688450697942554446348810005877740361384084161885646965570766520686916925476577433297338572963636073668977902465104989781451767319469679843846117979487534105538311851368642368820982338042241871292422809341171842073243155079261151673998327508162492082745467350666593005051827896548657430770072418917123820801170669182564218105941551168861908606432033940887103248927480227048630345924925659637697002990141851192229688624738428816610586710361671141014580548161383404037714128596406283397597258714649974899802110584349021679012869512465034202599697873896984846396276965007256202729942508290934293179349983046157580010799544196524438195084847890570944244114297390010579111624781662083655656800834645473705673190589986293515081057974659983344686367956878579540082531996127271571304679440890358752842177896243284174108108765719758571718162368007984712363384058383844193146811062885872448242481284652201818582210621522853439065457372754455762725106937231721287683583013742086741679184956647616528223245015799471919174814008934138663496452025454594431632305797047041246498650540965981595704720183599309876045784105862254297317741012824985765490466536497909154698892031718387091251682882785255711453159783563623157480582281346177208133326998500300604214983112670949821727578234553858769565921464370288105097431379784992091574350733304678810084439045742427508529609677676726572125224311688302842953161266742032189659968448453334579864151099572305890771713721957973101941360339023298654506110620558488362110504836168598497115506620506608355631220272091295544303439988356543672819611842646196099324138635443448645031640561293469286641805292966658159727295474166021564735363226737260753249528871394594088189602361606408573190788774401994247715866762975887191438580689505735600513758888598781500930640756173429489127571656742151612973219136401059027719368067763613803150940661257228485690965255315985752206236903247846593018949964166714207091280594023593093366930245106880137216859365046476815609504428245284919761050995310773355126658419608333772626535292924372170365780278254516791665147974721647861320445478450611414058707944712678145170687332599200520700157552108357355496196866328743065627832308275609149935891491064896324003894248736425546873245129338107940754443016368288766122871457982392569702672876966722357372182967124758287649353033149023339218149139167628447523567585424412661832148181060991871372230785541244066270391597734289091316332696984302326405598055489457366620379733251878775552231754017171622622596284522327659167909090304463595356343098659192469670243087438851580967295904319282627087833897125717865055967709900283109101057322116630604277230628993311482683956487232297681271581300259044506068131233617647038201894108985806360928324747089793871015638095335483402591441193945556468200923015023192482333213009386922495662738835161133892065166763808830532430311537473226864647699226677302896790852668551316779376668225963303289797765729460817308126005956752442715304327228977228329047679754971363395714656924820210467453361800728309733760684659054431266273206193358136841457445337367446190196780267756548930897827572791562640744054261093614958602503866643432660686300289384618865167106402866917890940304829771720938565372599600216812627631145023138122336863963484967896804919571965030282258833245406141932893937736755344184011573935149485173937915975949057139353768414988333206084845120682976076664557395588452550739581010363476343306629115374613318151036524104848410435600660666699499315182345698852743284943972451430959656550460935248225278718617065672392821883068861305131471615177899083156339337561727916894951996522013044301344402658289614540213361446510583969685154886652988712173445460475269004948624384364289018129324487097201373797245286246862203775053851285534625684199826066099161478719876453857924445394700191983535793663107365292350673421791877718170436785049601814196250722893907168052467914121686912330358569954309431488676260048345718219634104901962400363395349496418390188606251962251288787255354540438138142796149108532566813982958868176884537245704681478981590719428726902945090789581754149352539121942025416598854142050552340572937913797719349765508546076651875338325182713356147284766974429619991913449267235401606961747851591778797007442580645330525312032485581583536433902395565432327695657535889128570195515809724332836885010934520627846839090764525682311755456353377267703074364328020348241655970120444444438762097323124781965645850589707555233489221677567267193382635004368811868447698767287837525662359715019691257832561030759879737217645009887584056364049344500992444957851337438728492521493507392827314715859176731730375305533879981330464158561855218363291935035452454922100350779806884303199906190200676527033670615700040961464044635638362336640671684672986519492107787665913641598497012644422756236516570935384123603288252165138587435395818975834736702661989451851209314300844216812108539224835696378885714495574357087560468256082265339549241423552269970249254968280946528741747691319721079100573989052722914554948762613179160288217855691834544917551452611013995233559563447262381191990715196764982993185393318819165499766403824437977569998609554252182523907141085784718364213046865690100631433689723435769987212634173565946613061191736761243240371845419265245203009024005224359355796954860315314539857613226191607269438819240104666523199176750225809408368444477994355300575889011825287695604316101337252367691620028474665048111141279409189487283688775698815839680415698158253131005792116995958911586476414530838948711998447472068069646479445659063866757254230844393375101728802275415112231081976128620101670291850046203346691122337867831362738582170145704051050809265405498050770727530598909731962099289095942142153516910801938728624336204538162870456694570990798600548622183190329164079534985269127026837239002779506708729230324695761128912049700331321605224459511102582409962342515402938049195788264081342578750186392988871038615773735040701445111826810247649641508604610871756974978620091475383193723873131057157843731816579627113815981403492012571427727534476661173277994441303851654340735157719944680458253657069262447409796357974622148280648968770196582528083962621830420252700043703616585383635332407605229803269457194842281875406749557265494560206402123057422622691623907128299586635752174515421505025087439981487165387635763559990867833043489764948556293419348106053395291152093579364183738770141113806788010060933867372174154380252451297218868685318973482474755201379885512696500829604819096943813989715156193842526385094000936781267977205394154612033014822650866993748170435477753929238546107972930334925950362812837611429133966104874298836466446015828406190642194391398948436234517929813039780387484170877478061313801740656232280456207167842903852049241247193676841414762608941314606465417047228956884635392077788283675383438433336698566181274693801619007197012147543059874448136723355774595617392694046405845279371707132075078447784319847300599893660368498341914530433589794043134115853115562867358835130735414926798944352543023190302240307658680544794309491041746816467244063218333363079376351978800661940616504073651196044422766543611258622831153995000895581833054490261937549919440017077552525463391926268937566466460035898295522646030934752078919591731382810151195740311451737628018148891044938190088345687903753383259269471233288033288048950698985784165045218650773690602113714981457005666502987276436656651446488825892218594804085629526874286519946103337031554159415382091078906900794143785401119741242864505251962773463737814789523289180206771954475896786765815786671110254371378295302409696139738189688726587191872832084309544023978471967239125832697712553670771853218375416678662773512143526129982755639152448586079981785343947818753100260949261675462497290735800807361526149078914478197339436683555046759700158609485452580097497145885005452060942643571183338251486860029972558023469470441742584048171231007265803225606781070396444873815358805318582252068323039629939127729756491429856045227526319552016640298997323488682399894623266382357920887494317201790271394606076723473146641079709706091208699280060829317495702170118563464065820099647158065838757571043795645283548364874739955943948256477786895424788272767848045787847238143853197841715729046807055349704292867742190222838631301679529972204893433429176734902122845629495237477228712328962229307509627625629070567964389429880131387503239312328395706107941451973655534572500226609922910334715659943324689425591648967728369942008768302452630042426328530980893697358951001717208113868627664346757069850467442991087604849640550905261217035370109114744131176677538356506980240769306090127541191187988896209981898677341829147508925979067942478653529604033772104302349604581144388006769153542195745447348743815054521670065063054761975619529761889658622586192861545447025192934144186872133335128914321915090181861531266143144222274876634718223633901392974028881233872257196000153287299031824667386913559795809797976695127398632864404364795779429389907911770513755778025499075648832063834967203368671279925907383663319945001602789019166165957428884889974385558944898163752381239161728548774022246952876217698077953388487964495980207384864092652645314512734796391347624302065527643167991922007860953971770014907036203786105320105329824956154487398646278903993931274320590388328391682741768989545593226076959884636627900526976219008359435206260502344016981953947045939767644637795254766806600642170909522499066585847428045304464597203629335151773460972173450366265583276550713231178596449110916732088599534446424766000716948788006971655081329163435313305790339505030196477363052544739879260089502490131583633678752184419146635438183776664192202557083556358475639450359455250519152564178835330964329170692506885035011481495504395188233338892606949856090884983502470055504580424509030733593433669069934130543964524322307251382984316009342451299359853022974796660867705701587836392160682041090406814519158847712015116677268342744506761001776880394377956902235963178379678828070774483238023012596663319871527108925821601853202847065065111169921643434882868027473146957726716762783651880697206678958333921962198084436285209717006030435920225543598134316818586284425800536335776136377034057923998659204507124943229743439962382003459370190393863720931139239938874318752483207816828042510223459609010817546773724766399517876669700282495820418830033471297354197027560306835634349417772690107063466171769441789068889913967843278102611915460751551937649017624399633562637593450264612468332092070204045229850955032111950759990054702980942958286757606829311562287667023612633675745466406062967881982496286398923606263372190922429818590005358140715368409970008909029644025666296735156223658277122478965624319234288838582934343559248905239525997135331599638727354515958241177287577765515533081199736600076379420176899263715034972606045460936122852722295853893734030969021626764704320025800365228140060276517319580616097641263591881829483126078122351353777445950971438770526697749076408197501929728153585740169511367518262779780433753186188830965781286228457102032860925149057267152885351686388808091621710626232741761275588846329568869007401024177879137449122746555552731773225141195278246251189975615181161361773497108392860885131971388240964810504803785902537565980988142355265253899456577116540192240914752383146444686286817319133854884689780679619858033603886115917347776969246699592691314056539768210043136498833523057982519404439280328354073320300505168647259034390153551959372785238597143708148952518496900388127199432897343856093782374171561459366892997669163251514121977435830144442578582924319160120688730889238016206741887888989550344152055398335054852213280970325253674964611851014933341964616256047202617278730720016028744063108942152813093986187350002612204707200066786816666804504181402726501285451358286444559949977914188209739077355699372400246895858782527966512077304936715931962918493908757356065850278982222560119810274368049583372766691793329162082684221612067925723914181197769193712205248358528961103594379283810976628154807822607051977994003172433049634386214381427667997718523917008800852403289339762268918082601176431156758606847730418949344145893055475851511148804873037560258575956754896534739752001368519357230831694484821183544272708113326259953233403077093803766068380762526101768537512450324150104808942816469641638604281186777030434477504708880669221082423858181698581076051806958577688144091758835768376679341865276965808927952716797362076240671275988519268102660521577584927831361609858098961623356158627133122349565635498862469920218412044765482414851963451791831490374209970981904146774447273714512219616340387198777585395405820210210413908400735060322720514522929668128232739859677234466405468257843860147708076228998121231990721233497232625221433947695453837576081670340434655545170163994084261425160571419489101970147791038935808263642046735764325506415694426774159876966102249589406785492677643501290017535072913543580327301428478840945310721842156990963849664560145148945563599703051205858298071111360141831500311770621642296751811869320063414855917671060345584213158263274184962895121716698670890165556263445225000027924967627806138882513433451083788291089416924932000861671653450652875283151938158895582074572535771333092588323715923949145074821130967944495310946388931216810024141967973906359338942480320568333946214795964311079263775886777899423446216538888233197470178436365883435554361892217466950484516052495194190748223957714422951976939399737850280915085854194766972471595269715783909737589938256215420380936925060306323119820663864492131918423727069275263473184607488959506610537958997787782742160595962663599149759590661550419541705734864844206124071817145728760032679597207240852379551926068025337724596512413725766742451339802720714383621540625306355539071700621904028530380165255905891635050048420173309192197407699573014938000498272692512558347947005998222985824188518963832916360274184062958193854358628094434499968572444521846993353075664428165178523523120686274230811584490780175476616323682722587543543983508772199425465708142194653280782595935684573514144359565063083131087639166358444239729262491847565198052540253541851402112785298028899361858801012449032942550572510027065426288433484042660486413861376050932393742058698449583633587172264681292741829366710191060046994934235980132432698478961215016979721960497438977992279316486728476198023571421376360209774103772471026070130232337548784441747402776668116768902421165551850732186600423160785657969394475405743262615144985233522708359333775926457825333315543056838866175570386252569026028625985269989408159592816680123132601151237556920095281531484412955692470836060329089081202698270705499552586034494023639274174178525639123344696009073744596855410450979180701063714663234600749417533631172532404759970245363605560362585663391548905630734089052091768549967599908929708078377676008794062951455815145810128766985304244220509112923593783203430433088026132345042829713997831768273662880500759640344015937562540551232576698761531033825887143765696886317520587650349693926761942971088249389512791587033912734266279505286362123361473124786076677443594265731129710962512072928273150755336722601289488989047759595670346569651118260901822901381770388033163620445259388362853305571837978748561884847888056716881864492756292874720822041402195230118158639112366760331615445501914936942851177034680049579289742629701201132790613652110282739906955956537295454409452416333630824029818792819115519887478784893174718417334326466112617426485686998799016762663725093106081506176155647269753459789260242540215685618087763920355503895443782219295732429842119906535808147046124581331623961489591201214829429551998344196952930906568718335747295883117117991220305829521458288209193307890210017741911981365164807645158486844868527457880628088645231535804609815175836323135735831295119084086145156053903615483672904866563478281837750342553521722811876585297021542484407101142736744224305654969848308189089461190100503971685100671959442872406392260692123358734265962818796864290320130705114990500640917886510782523080732816955963443793494259147489409309801349481951707848361166312877031902568778821218982672210352321410113887344955365837448248717219255799943296292924177183880331678880110417558013206227244626741360146056225492519777651342766145366691290851049184335102211297005825481564922230925649246573100106249144135494611593529377352106390584184746209234318828435496558050169124454415193942150616205458672908883874615454328057522316991174248362373262523130939716905175270482533698836889388551943946482395343107847481179801139273893041538028227391140012577513808657942785872719693307295148796377227121955946814952942848436164603886317920261063265649931205772409086202208264916248619123656950829975197818719715190793434312453853318715756297861611678320794034778553265840143719868945388660459554306070140711835598458948986476475175759928134023012881409125384763832458837624421217811659159149942818055889319187332666770783967780341809652241834144538733720073525842108972766006515119226311620051474670885262624984136761723701656969705755893204757571368995523974195997434446850790259594828833570339518676883447799550495250590781963109759606811367344317563933130054058058668349438365937682620929422834550633596916478910037640147855827818516860215993536493700280195145796137610569771783657881446637593138929598512387994504610238328720352158306646232152206917875255306342375686654066601078332534242411286957680150315964259994278842837997899337012397366313993569668233876047319871357695276375576824003815164652840619011046426386989669138700698200116108591914374099310559792378652622495825466838863234449327870469984147349065287730597651892844212722465368098619645236525041083888179947902825106345899187690350755273916258192610944157870616153626111266993580865994656710053107695000420624940008000203039379036208412518699007735151886916461827431864229756446408891236655302931419043427972898017136455652587755623377160300412828618765367926743531969065746351686076200856237045968243541663537469755983529568594935778784629489197171675973473634987528044303583711877299857790297919421106153085907415499119842348665914365770935876058394808881124579637970321757185033071922956122955000105564055181502973700858149067508550597075431817709388027151595017060323834366436454529910283873697621387954175092289296268990492472030327491218327764668600282724171480469676145638901520103950310890743913312964774536040104005014071334799421160750651994659268857489106857440673764255010576895827725068627403286663187603894811263033612082885568716354426911750917335603356428537017422624864965695756265611919826089068811804995303257085634541766275181866862458986411682400380324903889890604018063207212402620211229261537257045541087745413265700756022315188094154781782953166250788412690651736694923855882469965648572378593842375620662138196469351908670312851437407443785608538957631788553742688968135655806829793402578742077533661601550048283669666462549959738531051395346416684421682460016016058999174381335803983769466890815583582269200759908051182392422176294765932079647428274151943715129133620937477190566600553036657190741274625041667820347847444183909656718963829758387624679802075804582529442034748337360313871676987371365070341927452104141468648350243829459980857853178128575378545182662850446059914901562692849952772214873346157465211496229125397446971938377759209996065315657254261324721868603790755132227890839265980750826708607887719794869910851834443910043189150037632604266183599272513301723371184704810608293971621223768233734173047512042630394554289760048758469807096572747445481086394501322543032956658974361569386284872687890853063494653452297148922998593930373376226498183368727339861624704281959446608915143133963101398036564185355724442349633740271531313470926152169369484050494328575242940141005281941193796010483871077254916058814380472892280567058238035941393193342573070540909258992001737341687287685080256859209445313595317720406924218616365829713772916435538262835649476347418799338074511118424749810940196919590526398792782813595090854480822975100079287563015928951056423069462282174151584737460169374338142632047189424240430279596468099560890866686952961503969363241988670039791245438904483493963384192236663991627839773264143847605967874075981790953503101291035149073978421405202031235085545586175509376230636919309906073730705837502478798384684933981176342415244734893109318082893096676016788620316661237398256522768203186267503078511592566381587491556245488110588203628478146066948375093337247458223996533091895785587479272786828726060987820754386714117125939789819739599878527514557287497383312100459657554692030263354851529540673492329649602911007084712740490897189956929682886466405769391437801396147107230278275093487244506732514519630363295821804217722941332349648320810858080241413216636848912482107425489869824210043911887555067275673451841470544378385333943843737687374487813130888987705366913069421085311759290215997700541376618199883173009780882851228539823703352706058393226862083630668740090472479367106656010146168682746024348191011357309708858390456744947451168834209147655771699869490019764673767988789503547741842856217709760012739730145292013500304686074224567484751746067777337195602867238020615159277364596438247530110409610454869663502417782491134937663725565083598247951978435301023509722065374904384106820286446103483106383379104990206480980820890864292256171337622005602081405597294300466481870260367609012521146090063150726193560286365114865841836167871551644084440795512111244463415110499161391070345914686426504226918012669371916604433166821326267031247477739807250942629595071397000792166765745190353541973580881247689522453424558814357371310685208231250877445014824078435549216772555844763715305400850568832344081828077193773836228813515967969020606130702231073761050313025130699575608044831150272576672109494924695856874271336140839210605271348349587733135353150527460439028122954022254782889627324067849609745669124664278228511474602111317345703909668964283342520367079937769906525073320518921374062681202628631301650808385970446737235694682158277382346733112810344818937873942674753329688210248848439385199680456769431514032490753022878093152547439462759748143094472425376765984736557633849420466642711162137281240362130517649523217842070714918287364565319176772185382840966956668089998770608084451500109409457311619522734838011283669792182418867957173674871321808377381196748281640568983110252856163814590870946853226386119291983043147607971510873160469210024230350977920928369743538956297494964408023825435249684873310426643817735715837297654448384104343983876561831490446905668794484206091021997448537677235538955571564339639585676024621537984064940180820883511444360069031082218023970376413529387596584206194585457759115506246109439801271979163238208753200146204294301192716543621725053024139001037433810415247994859863012902100886778464048488851330270094097948569952264788565845097092822835611760516487477172751242480250579704744825172732477946934855456164166084597859063214904983622409310063395519644589741696259083980037298509173898513583803455495829250032433501665349288549432107483591315288227721604925643254044474567933501631788837294645978863763263277882218430310267528192854441853066501414615994292240929090369938558053269206519645968357059163469030100704757176846938676410194267547108697204085699411496825797263818739729915995358249365901230459965625482746195845304315025582014026419193335264894235607822727256312404346920213975950702612404264197720060059317604033037717185739762588291330303295660086663581417042826746348861986212764764117914947290942842144870415942412199060729506020218145987908746549815276197649566130691730529325800741068415254579429167821423053612885077553598802309663749742155352257562787484940649575202834636310413819551266143704001577244006156012293317834030220246827058867443844586179933163586910194806273712539384582608855030776115343958828541288100867940722400263449160364040355133173497727183628765552621691682024310701044843255795451931377603568027114359158194026654228632390886989784737253231179844759562632317003890149435895900004547033615901264827126993100182777823118233002526010552509217064657069707380110415675684086796776650506118227811103876071362174615251245185149957584822293008226503223780000270543987003749104729387046030287980970495543056008967406157020899593315605450233140796941716787779190669530325893530330306185093337286073867203742298160171024478235914548158375351600467987570613265651930417626835440083154172620468622630202480562863452026694114303213468040095272385604107042971273444120689797323249425420914899426329051351828350872960282291391308583085641078317246851783609768760276215955247463931224394475867553579999396001733343788385521798042722369923899676785362063598587397773078255071665076204757676837702158319944058668001377513812428218599598758369341948553210177140789798255141283181604253408746691429534560027866021722924870108926963124642384951287532641321999017364016199406019960338164883719896825467428306744862997193642906332457715450388666719237255473700640343575010879390657937852158495369525154585457293047171772401461431404287957987844980484595816095590516328532809246358054569484460949716577149268848946236022633089061616046283077579265782404052765206548838507922012867005146658079352141761225213365705667633793171550854606767660553342962219250583764978937950822167760350238599250297110893322821725941825114396815905538869757261375215972362622334413546334221787902112094520351371782672832547060094316969609249284067303666820225188113340898156333782685744938641326366121384547857915146831189457066268551128459660271239346811779423232758218055732480713410239506384117219976751619107533617248674129770615278455473770438171002292060268173337635782237937969898719988527189649743566428272572215699863918645828038634047184007611947112592345450362518504906156877658254011483255770209282123992496354743978178851764673866797636772620821369148289680473276118243492013153142054876486028702625639140221447568718238370097812467876860206248122387766898603203874645312479030836590741324929294679869488461909589186780312066716613346455966304145870479058070019897889161829184844500624526226494453158814729979450116216127401271173491964953878703988274885583417689115997049634188164414977316902432509516807929074059991841790891164941133171226735002096996800358202788693124205971907026803047429535957179995514147955645578717488232334870888948932194316083401519570121628571404698727523536490721241532909708419064244283570498282676561307008446107192406379958786315607787032004216792397057508445717880274757689818514815753195903488521713965321539200503878231677078820178957124112597200857722833646957621644412208017877529745462329582849285885013928655586251277751086830921268048174044121313547421258847267356839873117373977864058021565844822934340833841027489793259944881134636786380939299538651127521535016406066770642591346396998123128713028975897557154184806692490421131581903574466396676077796660282673670649740157937380992373540078196601174902296661854210587783705384996234998751949772570940869370545611119072293252117750000040339537561139915499093454418585334134472507064204623560239725081682178945115445180178910795468007123921248154991194497424147122239826073615061906511418704880363383238673502845664380734769665579214861581452274851228440353204022572224839269805272101738322437563271844481406706300362493038217907670010709328779354408515521109084933518686158833343664343612345145560060959772419228992973578124271928333751173643636017819124079400684215308463393838121681734451787074050118773229794606804109430067863873434945858615213963630999688042627839836891943558545496222389853843988271371739650992641818922940481265896081446408940109784805966914588469741904267344577446216456024963380180835849299062220932620339342161819391339016387706838163571160465984610299835639437013214967268094351375600118658183834726049060838437156830682028154453803240936843502894863721734782725810258798646223112240631027300075762856030705620423809961846956590036354595161456618461470407039456308328518288562919306586777837295024352894152454357712091921691037618736900383597219825411638409738310104980045507508207075906704893330932492666884546157739172536881102914749017508667122215223002048162342445809868259051732836490045351443972303934676516848259447616762664683851114738855679024752471139009650695182743867775864076807378238221062432160483427353405716605471418941258243500144105970768222094079874635316446481634705316768047903000194301202654132428257544860819157703682879680742645871083104132798037945027007634719025608444265628328135196366523341581443285750476553601157102412141821527673675568002360213128748212454556701302443902955816054574271660909883474335400696638928583839758219254979943673173138705692027215189597387941329892065921108504342934423596091938954117428546083738435112114751297194001129789672072960601272727941918333653546673154279421785166916625856613266558986299460108713666444876925864971501583261520812842578178831032148064185313762201379393265762619563300945735953041189241642908820116750389299421485506803783279031493282605654020764633875185856786901317138255999575670063840597797054043038561664055081894381635682511901909042910779048550528206834717614586053287268829892158357353963072144814445145385405018813782021914071620734490871777531483364906198440931792352617559350769144345894217758616060984192695590302888772765635670550354097488764277507741594633968348348644776328167144365572492134728474509598203342069261680387815039797802534908827645612212807960098022079334165697084358853026578558908028135398849612732261667363155806434125474357438189038796567660451583234388618483437905866954075112848808511363035606490908540839915079452396331924178090909880914438142649006270281397502311956619738529072005347695227136442948334224335425997307688625260223703184149667573750972683606612799293944959436033637759975554656780792444692570183319466466414866150295081899214081804167150147191995352728166840654705882260627750151443788244756301985741924108408232845616331481444276347075659393417908080817862531575490545111362319836757128156987233105372011831142664739072363788343476390335762062123951618884305894508981648710710964061798934498594218291224698243587676475826353208696192687739183005164002159434675344519334630939870988800900701711341052091239774235994651095925726870499863429574879332294608018124473507496863555251729990707572300942902468655723865952141124380611461918395555525431918990941732794375562130399399709836922114736144110347000397708245384120348769552818212247575842414011368292338607890669493364906024577743571757564250452442059776027908658763739742969299330530048372827286186523205191106043098275576779341126291882232710595556314942869657885419204300065158592830668498201751884944282293680939440001541605404784783795517804072025858099624392064132866916258196139215100902999385249576297762687492653528742234325712068473704559779727747712476394991383642244656816704836114586832731696655711924446799386241316990715687239336950038558036911682310886653579531028346594013467361317535084200842991434554363143053752822500243086599851674755414904617376964400118147659701202632394879345150173897878510543660168443692311182623600406210756647462448712711063709916575022855105105074871259108701044490042764597562696129031482525813660934445682553089496557124656709004284641543568428839570573113058778652269545775708669715321861756705096130242813121374556439231354945440632848484087841085869116209208325906083593820799356861709544144361751555267630418638933668707560787376648598794273273571791774119637309776512017655751797286290030560564438414384284380017739919490955936278542720083945437187916180441566469604070744676955333086096583897721675806173197190965059496571077653173898407136428413385720341658307787525410821938008996218923115550855865617715931812159748703304937641932567647508211131925018020927132961411064344066545998404637550180081590541198944490831110077569048035145517036676595554062370033352834879517210518848444414828642252992087904116025212371573144541296184856032259210060991506865898079631423725655946547233858947741230303989081952709067170503702079830453099262996330770625631308830721455879148145237989554989619743822710863620422483929196051132685344474715168290125892587397002245518737575660245656967811713089272326542813059255577187704217119149145153265060834810376550039883407372416070454120868248005193783717411292746398438720513167360537518411586126636188808757606097818637936127238149204031470598697961648343683047645574868709930060916156816606126558121581838587145681367527449139179240961737374275923547332861820176467805526606633591740533491683142159654243498052725284660553852836542434805248278727800002018854308060147690240374605243881038408812074820992664584244665054269661170517912316710093567458222090344998795095935016379483595455815358377813467666856723396946438324847731327639854192351955847138085348083001116419838625579788074590894587766577390123179143192378680883785400953615715271419005328434828716694079208100419803091751067389043999251938204798937952527924991015380209082682725665554538878239086386757945178409410423873662627196751216101397751803490487363442327076340977813835023050117869781203409305943830800195818050229218297700473328019253858015069303851405676268151336500543486580829285293228912001000145572847404222302442892625525617008277222324558148355818274991465060458710858022593063324495003825244610122201939683173197417496497214479532242735739678375131058798740881369355161452716939887744815840565001613097727668434174405405382605098339089236956860650959937922534752772152434084627814590857451540232710963963769571139160781903886680552190219242559410590772558900630980020159987420100897179283332070361699491443316484821331697163531570290339022019247918860081704134867527699988763794085477425258387047971215986243680089128054953169197948177738257380710537462929938593617972130959069556971920673249698231567077340649024649486507294632369982280741070615001060472182168785098740157440291563307650318955036691598949462115079049503185899838765189847305850879817564351686194976536634185778313376769688872084928315974286666394506928565654553425668416213007467929624855423397432195960504528328718408352576148868342911527887034509342470364810132626901129040435928224080507862226921937901805864186427201615947189885445912117332902117627904985327376045789213461161467918607534912166639037026049807579968223778814104470610238006271578436195004303146234671498458953051205417445060457850198619459090138703867335185733848569900697829203741212689795377674342688716919802644038977950550154183802160976662576996111544340896255968625125042674986266085035152246485760793355058329815855717227583211389119920570443427527405545392708712908321455023932195512965754831332566685107456071099396023247207869934634434623928736664991618348334364541874547057670410637808719588739676387495701004010849357796433898090642870036298254237726165638287499242167781351743865154669663559274054967536686708419258578705190807674929544885423472426090586354591578839774895701095267105684895953607682942921415151726351117513283402675021388475465058367221218409970029333534995771216574653946968147012476007250013912677096357113590852069250538140176235323269665491540071582307633035845442181038462177700255680048412024871821654808009632532767269544727559201516615777605809447353521531764174581597189871899251191202581143588543699352571207936566393581369109090533122571558127050153759958692642002363214317296219462339637833439022755315649312672180124074227198107673926381674042293148517032833024311375322668618558782761415340944878653407543721551953612816119403340822273366178928181814827101719678014283651899952681899537415517526205780564183677182983475395002402671540082736190403648798272009136789151010905950186479790817303702979839355528365641493396340283171467741829844051053372146164740853845298227690889923624155242723180876995316605122538744707272706543583142721312916678061943928777805472090187945497764396324213454744105197549223806242430956385949226190898664596801984356702265382453957864181858231232884150765216589204069537720297268632158184935456988346022892927964790841805370794525746425676051948851068064750899152358124646850747719005961411400061809277140277584055046408219863053682549846643284212401512732992339705164541999161337173381692465285595334424440771467354836627332726249188070015625796142022106741393030346191966125715202842177657992760205608914858623718768998795461264844299039470837395502181217484090192821314314456428785138065102369829946797829694114884824869296586788190071481741804949745935171924935077124400197950695803267577855403023816860369675769504552657593292015984782928956679441271435267750960473874656449979490373190787544805632891397386051996652334328707744990258843456062801505183830362733055481418718373741169724395129088824164330226488190265866183674410897401204305010987588058333279834245344634213688429564521474320720627095034681738754694306561529677074650532471673134247124580040589419291660179662299699690579831223166462151591433036274503349003759223173968068628230391679489957827215790236105103871206024361364542668960853160351050468878694352660219484901420249591301249509556183895353591028728596842761746633435244982366285760590953855363766514752436159909429133253678073667572353922877547685772446619082586158050109527749985601967548495307756806479037428293726505477021920511629254647493334799527313063319750354014659465005710076638511522389471288516144455777338476185750410448431537545007645961145511400580107550912652235917565969632709816643212441953010800669202990545342805045393427399779108496911243573261838108460508726664388027533221997799833024016619184737779920835744488743571398447877644238999858460494751867924866642222651528538891390237963641972216498888962512096145324617381988301539469986187854331742439064880981208758882079631628069206292708030172193894587823575923702502082625374323487493171104652141232055263236297388461918136022246494976898551220650452855020751150730383912209826190771603744198999210635088943359564061816986346931154543878470828299948762161343652847206329278647345662131411118333274384503073990293323628830346185841711622768254291140031929899415682289517273552503295818085673552799935968912385664629975682394123482647103297696231557894189072444476350614955830327743029809040060924440850689373342606749218518475811414329896787787821920319901239753034601720360838687675767655952897087331236424091204537592288261316754175823092250509266414971453421951034393806705597966710733835512842895134515784256021794811964283325735941403860298195944669127225677102032700249623719611521754317948617942042934716528098632491048616749632352900798987259811419003886099374754308411621419019200122592725638638826250888362714409879847636051620930691339582463278245379984064579124981674783709098526143763723032886863515341049812776147185447068562282525672376094274649712194117408700612566914189267241844534842554607123786578516309240194566217516996408352622208453444587024048358932372439635327937610537076470783838441681117521241296035688043608430906676132152290791426578356627590058877982855054078871911385530872216935631735788295106774443884934157447803946345383630119247831564463269456819502000490322538263603188534575914079777377605628643010020096735371397231077474307235054755509494493154970953555197286630194392510538343524142831177991810630581568971241585846151471117928758055782952360820592911901501354334900402426519059209232094183088578609416417524600435845415922968577544644514066219696698696110192239183433871126151621527627646801427673516374869855831652867002102313651682997872097113587262768200120031314864849788978061652199919819246161099900743007044458898041182262506030179592537946881103445244472610055262328852114862626709445099753114284230876969925894015915489314468274737852819577959874933949946659217480962710102137291258601234012434584655002417751067030530700554316997295555442480300038550044058418738416821995157836694973059115237516216953320228180436813424713008261197471232444950494214869241889836485456800296661326282027114495105474755939790722583541087701249924365148984621352716477489475057726985544821585211065472863751934483838815245354344696241890285882302564535744434621733892859575958094194224361634605218227471210560044353250384612799091020958014232229554802524083070187804621386497185613117789945164138515755474573128871255435933974671946208078639138534728010016633304508482807626493834483457233081790151757711081257219205455996051763777579622756586075358361341399330814943067756648559404449365204447115199937737407419709666583686602126732176242751616005362137635925507136282279793894978688792054289118424134593472276313431373570006092461590750403687674119610694808432716423048165262385004564268621509091539111579559109063593977045446233398105414130324187963050138033332903240749981706037662652099891693419251112326660499168828837992435672569012510707598144364213918331770330664761456502637332443338891430736459608597133480146484924408979059023171222536801893649330267454688180173452774465902932484546882188611128502561470184550794327961239198067354527426326342783007068313261543524298279740755131599970725010434591044849284062393994912338503763251671740760551593641577326154462654044192500231286561965175157087836082370714557512150397354583474417301964650207459335988707962715847959387154364296664455205301600880561897714666502941461708801800751192078349267204035022977097463478235124474225997179435047860677608510506067363689894159929656704977664711536949899601519657032820968547612623217968944630386345942820673265819136378833332898606557655740979496346644296289486204066511653145285706892632679311349092601731124366800447935494142028284334213227352362996495819011263562118384655534798172536229115250815617833862494260012599358502962222696059545842184527673247894574075793131752620552192575313492245461734756131766072281073548599499571694345685481841745857835081089058248798721227447106874059530369287201814697279771114906861968445617498015983219351244988221886262061444687192467088926544455520719800302756352800032315129581219621596910621788980615256587587565152256930954453055128645577239462676274233313701286748366517887148530304097635302319125467463714397462057822304347543831666585144962674020126336767368799218938020701143471038802189349318742783993399526498013056764053099184604272363446965306716490689096206930270860024681495989478179344902388039696507312501888899703508465909095819240844785333933612629114318776793940822782799678215740183305551472431942715559246540773958661278276244298982835280094561066744700418509443683883368136440266494025114203488308941960347563216015566295433012740514054915920933255097150223787110327318572032844927572231450418038443878025795013220872097112998548024505976169148902261267005240007479861788644249449651098829908630562065149226778652850933583672503494063841301529665444753799019864190297780767201194589572874299818394555801166361818911100179181910538427173981382389386329052492336762630721231895236715366229157839204332972286235622385478456267838087783178907292391845171765766005354992241479380072268332621535484217255202306597924703242026133855078914570218043403975086542687256228935669358258857514745971443996545542050437069922651364199372148502386919389765520357830627822604106717487620112669511329593694444010690752706887887010248023459473963273904882570257193885570786342183135764381353016121545995403645455528998392399661295362422063555560880327761392397882990737151002103258614212013797749139480269111438922820430391148601363429755200411646651328145088827899826605035098752016454418111108652761354949043281842617733509093484476931972180864813651565767048227916895893765616795818358167155511260514853581658239045934014762185373074205910842493237984346986171316010867156264235255654137618911186669237763166537236726836033027091353496206437908966755957587464850071495174834475739900861858516714475888892961111130709762073831153885171711976572036983101826250335271230243130976367955715884704296866871093980040962212030071957969707460165227156121894362278168894405310419873976536846761527235098860004202226392761398013187971073384273440771636218677450977251039738986756275094585496905662546959039110184601053217473387553583294936478988534386129711616687515345831073311538864519743568929335186621521971966886155069628429646081786994103428440349803961877134906639601501771355257301682362315224901453166225321168009424289964974517974622099139173445906468102530605279457600197567394183172079284507330754510284038919063901263718296077809803686816464345332062896097558008591455004549543821867620020196412130177571674135599728617105879413120951458078405238093373018431460125740995437552261843354882986389849552917670437913053072429808796949669808413173007994361059976904497117492310824917662282286150144012085098719055165468816914118112222483602534502567348677062667869373825355936477355268254956777670026236301227924893539362271950425087708050962618787093704086162483912319209515684734394620690777345994454756720964068239597776915707288129115773593026151613896133890268346774686383862680397200603622582214149052138564427845440982086377382308506405876563014090080432573004405928475024873529113231040268262061042033365670619272304839980216302197526450772155161913576471822322922611345870875948067374993712166124600171093205990503566559586422108261030333039046173605102980929169829929171191936355361205129215451676408014541659059207635910739549427932070211255744990813733114616788947310099546986017908734393502794424958418030744587457276870212608589869478758886682347426258234433348553307204372726845932634206937268207482725160961510347618203783986504599629151657843897277699660012235280218111935413522530373790160948772957910619332321907485626469928107746043014614615042018478660020631267863451928763076004785833188571332415117595901725578148189842666332714095017820225138833380882906898694135646405377828390751611920163764799493752451031873110939193883225662118943516657248071562909477397371972055317061695189410397322889583207731717664811516171349469253133890912536321986032922544941180067551976483526277904215808154287388899954269670928858621115632773213216734044366762040913978054242954957680334133602119143923039912615016112001293022151024231331967054444114751040606964571987242926451340123501677934142589288979324308012303122645378186698151824311494682444882088977562486432429706156599509660829417339985812850596433425262693819380772052947188065076005639737695892351312539394702170418734058511064707694245519065726566801483040851484158431072095633716402879640305428911270171572648035061170098738123406581911903837119897488236604074690086297830543085115886227565722527487644576537753670351616871793097576484725025934951818955500251687569611403733751402334024993556140653641047710264047801795062389397531449166932620934519324933547571579929494864492568149916589923091917647902811944676092934880095454044213877700432039427891547106071022935384323517171588781309017206206585205612706946575136816963912762135238733931477582934526207813933255216229847112548329164436328112551844323646105658770325926508683487994428210337968859386480304458672043440587157284106514180344965319817515832452184856062224079144881215958961683417230877001631470158242377899476750736905933097478793534958908164537686350276984298785651642166336493468669408739373699660345032321639446618770512909119911524816425420564126400122405542900926362927687131453793987450037241669304581287445041289612227942781341461735804169324979920779405295822011056497845010915786173588472542913954773037769597638218059941091067730441096642831330935990959925845556111404886921071996910394144153903311447284109311595513553728700942903690018538820746144192249817556078198448902916428019748588984050485445155147827494966681329899502794837018367691934999915297387559924395962094187625526584370017258146568805236805467279668050478982835614612528542554584376622546058873070727123195991592497710424213808516505587143184181235607460861949495367308798970419076297787289355072067755566399906933046318578014382582414989968647394166293623265551048982984007212190075484167219941241953057371319063855960479560575295025015637994375681384081562314460577173559686683648744412574483811450624802230157157252788240419744742487407705719264329421663000499073805367843184926954461701462163216636881320238605949848098987555415168706781325748245355234335177653523640987814772396799472098915324590520130539203486114413535307710595484204580430034014599376221468695297760466607641199399593611953924483173970445828082808405417966685279701685096937486961956763393731700021366458808733553896773785513010313388057445662479140761550182536597027996615449418846565772766006503547497760037257683713176644872715889575781892872437938722057086168929550591418040076562869677693885847410966335635168830639718980367051865221165677174638443261761126922638166819815183118757665284780568033603889444889400425919106119544558611237902799453750376259965416591740630307591055460642820723000847971665514833660264061008204046053750326374710844256298052139608745517087083517525711771603128998940577693573971076456786959293667111581365396065734708451926231473674739528395161861847615464488246721393648197090715025040229271122450179918736388775352207357214539265480366917215660322854296302353580630846267572562167216416432443891356752138147726941439839824688890707482635750868734270030049698302511121809378755449551272380247997970023056309109258420020170343149802367936474078747043948439769376574632251114672826697661324061994363374841004229078697232376064715022649562888803355696950323630648025360984069248887729084716300773656323550694230094346071057261029320982173005787186350651818203651835080344372894534637730438256334858142760884609095785562644019849472054917868064668765202220478429764101528181301090758445423614434982378034449854873358799536056786687973892778116575323206713761745668544321930093222528334636412545644982907909732127565918801140903543357770371362117128331021266851769542495780936100443730275647781476308750780043633012130928054416776810462440165556173808875937368549814987704444968050438689049640209262227467370103477098622312889300325728967253808926502442321458513826874398774594718982877742651783306674395240795065220801210531784655324606556017214487131018068726279756251668405268892563808900304043198559761830170018388882364947505854501639165200352681527017531887631197283840918338675335811424152921029726365350165607854332198825731072229991999601599284410372471408259336335601585973981218406129128316750194566800420816385294834463747698155861602921829971258739852680754678976656792489831454741115373528216304767074903509358867263861006685464707910890310629831416343929371406531303522437094680895167107853646102829927170952008860561988070262529186286615962885053118144888010117337342028146240660847381374740926871720396978317293931108726872888512470385330658197248846582123208581591069215570471555797237857752237110613442564011026626415551832230776844241311790458386802739615316687347861282383255735703694398772920965945813858636715210385740199185369133152148224541015748957121852225598540168116411986400226557363158219625066099174441399225556785116836775783212143688340918711221006010748441489669782610768320277110621105623042531854009719599161018393346463831524560999339712678486902904302582337830003909166541977908925806281899145558189080936358254775177202555572016133942837763450425323381494657697541829443069148866491988270003971538741637419913527949013730749145192962399798735963994834413759725979142828077878744051317358941951680800870627258210573277327243327057758098542344399009580412287272310564130991371448193354045820644517608976105747299018953273482711475695385391811463965034529486509731068150946775583268384453868966637734326767354678885414335057758474982261482429562276484325138591085740399922266050607710062565961221426173085729390697329084451195924257552879690831895063863974331143274081847487503213116244907063051879398607765152903258526896756301763082100289707887296517249374670038663081815156428689810036953431643066587848175569784781243996289192995940330897141805990952193417279007554483566458976497637314351675417995386381039573351438866195613964761468156923245465138011931011818128382777393112809571855585696118628712731880762996766276517155301609686092853713792626799981931247917512445003196804782454695214623984301501264504149583018920187151372494234730604622884250197386699857151041122479739376419111310574732255330391340275855976678236948233210108649722602187412820937726724468755912657574357114483491890878091909915343048364813756280011572633171422411706946762431262804088200798565914479023009577238673183339999459931045506215077825559984120915578267842422288453960997636843471222474771746155163798255240589543504134301431219875539176056296402780330274410903702585275586029595665179893986718238149442323944589041930215212233133824677591402596900684189659629546297624718307340528611523942980606976019277208140025359716338824070594255807848434949671568508034226866099624748990422189241972647053269525385334841652954923860619242606479438532996579512134442080538881204402868924842359265689757795078673921804187935995207996785197320542297763928474327501116607733312881702681138732110192988704839260935145746490724195350419020425009604406819379624253397534157481265786185447901341100765225883448308084203553833170480857576736328534387304112255577564588882481521830305536391106940851901891286448573738144921121130344453808324859874690685945387476358143807545153234396880109676520293030614393628076658143069637366905002057742546530272392871123109073941243983415392849650246924491934631930391172435788374919435686613208178900997213667717412635726918775053109378082420568245431231731508235950974531598484785200463686802976462853066851609581287553617139209795727108195219490166276855558195291335325393886708817164776154820946814953289261142525238819285482814609005623275861863031632219020304610494648315846224709570458555856881368736504373642750696129142163187016955088850790873180666720424117646197839095413011125819144333052587179238706471366423773091996375969925268749231984032908536114178889141362056996464363643401696464939834136751431520195197364839581781673326455527632308919428238466855253478582208553607630554081754710707307526591229104516058766336937383574709353096124769793778032311914217027022378570844586094391865539729254630099593852844922449295765828390014142044173499921507485183226314770418351023855367963373108475777307465252088184619933516631632370996311183463881448327883220461311970181454576150524724227367076167008575596268963135696211388458856608660571130504993099433029778058872822225663197753933522783288926543079321553731744612503529340818256079514721065261583322006372660363482333542087387648223425348057722698217158028815883640414727967298826163099456014052677517558578172418837655333385873080119110653151004631939034461168580915155432515006255436134557974758868050409522945212111038335697683278311249320122687628689827917900213964284978316959646268958360243527055278139267864813541505406616835883510042831136338826902143843273676906607860765742485636972015074447748560091305474179711315549922771485136056842009249965142661681426723691649149984859282722082197291521950568550798485082863283555431319568735160484788257486050363396774914960205258290165006004407000509473636231333705859274903681571537872648739414538665106459457989090303264012103116915866147911182829433293267517396011719668763420920161397543713893072084759546665610531092224496446355172628093421876663849445309756438442311888853683197862899357040223626701680022922031091793688633760406256832171647145322740830388961741374443002991926974888392247348931174467862285438808514682870573826288963841179645180722858441959820454723476615462695816934627660818345392024698803397917790992084570014761610710858952952017454830347292294851711759247418791697320035572103984543389386678270758557971515412663103738853141601131221141062866959244434311810356993455070799368370159380295522385876349107643154402089203637918467343945860990025822909491496833439643574257741494177588307288367425177330741389782631590771606313791632388904704794565912468612701576724119049753924013100642012848057031888066878468694771252082303416417367890796571831803200813423482651727777334501984456441909044057661834347426778425302978536568851141827939842206044255120287339895586777585166371679640816695909524244193537645066038267602347813561159133138948383228389182856798808755377880348784956368127093845796969239281906729002467895585772508459433750885349741122938011324672666175282644359321074704615268672021171696803950472148393691616174967703420458823149941729951278703094026970840573473641450547744230416605746002783198616965404705804681740058570089945647844640904627793991298299767840918066044613410651456087355633903123241638571242549010752733398468899194941037728117508321637905181838312280196377275240272750412834530821414649211227057707033899886216278476324469492055309985443891478718610005861768705700915835285031314844956914778155304360241933131231261339651523902322116078925736058819953549472386503849398319670328638998047115410614862367638960727134721939651393655631246748669567945311811147649854557407555021824744827047906147489482817239601780005519652852435667930474390503980266865182713625224392461980787588694561723695823333096481084049376225551973198490172282182361686794692533477922538560503488115094638528215631306874067594279436421988905139742599413493717024728892435256518026172872041128721773392265421124686963966279571131071008921207752941929771806423287195665345629727541317061471077530235169960648751817814794602846680929837417337565403228814298466105925171130783711185940049354380107360120575405387825618079372424498908189098642419914576787443925185534656727345415982451222806527707831977166628411563534785697493791037982159469806264784261876835158123916560279340211678424328863507011711779498471796980282347580835459575687417603998998873369362330302053158220134818913438994124402555170169980417988673340239588709453026489219704843745134974395606733572886167704464581029433173956779917574818693954031130786387153906187140267909837781407782108419698213303323521890144969402237141102768522373395093510917079075925968599092334819904307012405042504563155457350202515697908571482764357751428808564833379505539073202700049174282485709084028087398596418922145826264621271160339749529867897586256788198629574525073946835900510500571001532492619213762835466290501322425144724844991325835609065427805283349654753743624525238191169182602065150661645754114299727490527704311874243853062064041558326415949396679007571875202821720854845897212934241596591661317747479159058392211547894143504569013852356589056065281582798073994930573317067389695523351203856023329961000431386983395225267469168350867178135352085860675444662020814159450906766364086005224635609542429664794281464684480852199934642602775435228671376480300822284705414294412038045723045193553681760261948495982016752557293115249199961071892736652056614691010235579963142831551573700975724982673981788894995540781325044366735755646909081679787135508771775123955704003698814070058157586893239249047091045842421518832693135463764234516731548713908866590920223880877362982643651616703640631374301880888067604272282253498008812182312607354055374381271746044562275257519371768869737635614046782143203842681849495700690416206747455449001237853338924103809053240401448533344533546377255870198933845874764360458406366563545347967029522810905932665004220794189205346174776958518472107973170594039007020735598569207152780135647997251105619646318855416859718784139206721910448714142667013069154711762215952459412049559339730821771228054319213962075767898609597037039178392274502685937192461457094327027928338227623644085060945694913321512482861507891607285008369273867164382615078053168481429147334669325591463202008943145978112106268095395051548054017746048398608635187101064813784193298939878118058990445213952529572054261637389253633055724216281871297168516711606659288124647236329630951703524263889274111945496238686659000413725005639989023588239724742077135971138815637389626020837278591790019743486294982717227936246799857999458807591465843978066616445243283860532923128553037695047813669706620356477412764119806609389291553913319635843827685124626935367890944812385199898080066314208694221743086170573270385847961806620655350640180640016151160015804753738010808992638203857003566430340761224305974999986723329826607605017896598351375326548265141694848761609031267528656653595477231981371298781699046342912717264371536191063148327252499911257371620699321726008345689209130375165578728449829411277580423657321584510764493233543200673269226050124964882238579426632090846353767589984664348712378323031155753310351635043381328668000758072783777988638294979914746202494485248483051108955127919209991817006917512651869243407554497044442025382110589651839953294767164232487970577382446973011549946815619190615746693835300004287372506345981199974563263140126210200002653505661096904811158934524017198814606198020009732750735075669232318181013086534219382091643018465376584487085261609032412318036268000417590206506440818029075591906816306352189020391444801785082084199608548535806579118643017432473281727473002110681130941799707161428664680932368365562521371608383798615172722606858000757833708597336558979923324755799108061915928873397905097012486380054898598477585042385718433515251231258895039812489794417812262232552093507992646233279799509493192349503313402674777731809082203369428185001655357565958261971606922950955546100629917201021675486138926120731936117518406540801235784428495007434116713130769454346706540729081681243575543941859690380616459750770816649747044174344030547324493361426381814498980632988627920883809981847139826447975299305097995654631407561169070321086788072910490496441214628916038718827544600247375631302343330886969598984883238286166569208346343706654159684648844327825848946391797354855054791855247457732121492593832661278243447584858314425695129986021511810979368482486788824072672068127833993973897036162906065220106357189340396032819448728323269103421027332538552538470665004221958719945259940825829852511753677666888286558712233097880251860797105583539951445606491298547985412252586947311929470933655932612521621974610816372640264561230718637211021704469520442392681028260026253094028187328508998156559770224805626912430530099258742123241686490611530574753882298907153706320626870154113450951125345639349643472616780107729881063705093197587809397101596941305378491951636230488143489073167791808525940962974901772695734317376704872306625158793114028025332428042831473415606109458009312410242314018274749214635456674503497736098564203916310398648603502215380237616554959893777772605592945956421996939520447465093866747816959086571108457649634525132547016839149224117258860552664473367021810288028324878874855123773422593641721147225103422708001488658903560839597262954310078278985938856034541211072362745952834861006940105094421019370764550587436889692427106955391540599342122728820953977255365473545196229150018482854017631586534827820850451634586095346347503794255581743979486509762317741549393773396385229699304256737371665847966388701701270049269037779564713485589527698546501255314022696301927735537491943590460266444664149395718169224999266505883724881957447887766490848180362280046941822572278039602767838521476795243998745438311827225538943505082901384167837625482916705334920846957757429671332309833122990674714378072712043091861121681545758711645511314480023649011688934374429848693372155439572171302811587259313040653594286029079266502155129013921667197613488277407000138727126603629859733239609064369489632561444418612842548727184727897075321442798501265489816999155884049201277501324440632223598334770628653801530255032037093325949681625352503014405984530521845104650898664546395295231178326365175409767016407698997260618704876495431080521571992662017748494971989034287101661254339325591347229632517582109632947533041776438001644729989763433740411337513077312681931652230851755342613079373924080736499314284920528275804079486654161536566481760746066019492201517976730924557440596350294363781139866827919434313967741407974234272129270665455216449866168630611978615442789569555561476612910354694296772226471169264549524257352847570688011059908138560384029110182955042718540030485546192717139422540436118085147699916144273860704169287118940087293625067845417642717335511981098672962713179318061245235230354146231520703271740193437123951216282494779999361380364818628049756692585357523183615901903360640894421084217631979365090096505834213832846211502466979538659263502900959710840165142463889853906942704122278137335384806362044185426604564778700811045421721035254137291239921839082662449526388848377637806349206862441947485032016250124381623172376152858744481154224604337418426603256080155123161519020706102307801943442157236280989797295216987943559429212886438997226697128972141171725086864260005064125175244244807631170030326352879253106016411758199063531012539482858603077571604363142047149200279058639332805218588322507490372657254693178151822437788703139016780785333212510068554503681493836389093577960660062931747303369985737293812004754773022518545775437860964977079458060986868846256460184260665727704798410713112451913714768203214047241805758053371893483159988186352320795491359430291232207881015485901433342225068680005273781198932379088473046636478184266957304251339179782338558164400256507473884370207267454588417768847100820033972079904039083434832672687366215491864359238279597110754326584647730912546256479306662410891729525347055128561535237809506919373962916115769300744644860695612426697092220433667230709232848277325457559539008149162139367746556878390203322131858971822597759019214128562143464833162964965106207682589066318657984853000649699806483615022415651888816473208684276977753233843551085701077237747969166442509168502928434198647224928338124839978659338940306942587076417596392592769500244866857201382107670500116925268924462152945775939928263519930505514655668720699567636116964635546324463798439812627367712300927061270020632584771974006307865221836675041131351088165145767406451144921846281138945011495642026782818300480105336818484444390742867020997950117011545976923265037846462495595449826688735526429114907631919319105511995731278862973937974283897406678342489400581031357924203301216487824377579786096151564419671746625568320209147690456249352191022939020960182685909424933955246753346928254857128038583097890531464029054348001121100377265164674550623858359853585740952179684990565112007978111426600219593221644487184183425932988640998715522325527571580788653049059644430185396730945401918428647379725087490336545405745078335781352143572598155807268439217969391935742351763612413356577152006712819135066295947792456611909462424526919637085575095547438710485209106067865463641958841060965483978427456289923053489673588947137046144841402630933511013861823757292209336796505362692831671100673042306407341078566965752688650729571482082638360427352136685010787096721127478506046686947204950691424622640053730645584305379827975464364568215839489845474089935790028684965162068175940451942884578449856836165844035923520485689402403618194373811193275475271793965456381010860872205164084298596085803602428411141344982700839405992946552422202699383855487654881583761496550565114274838365294224590287222773954569654465853576766863344524445534758936928774580325697347933100889603070411226437683831280815335833628733559882873324263977927037603220118458342665145286860855731449070202404513682249462263169848046895446218334669846947701805689482039706499248437219037823118804250954018152289905226384263830877902573384843286972882614064447399020143842165088205180053144987972720450556138582979448812612201867708461092074057319542745483816113952952091427446173969459376438101227403434801607651757725756905463726498228047291627794183618201336286399598381141055668576455517195528819279873162659316327317358236654838062901399339717703040080968990514014811663074346666534150224302788649159363708427232592614614488797811878077372756672094986790900278508156651357304150910673688230359196609989367429043666034465817365619703187142067074739544261809844141198576560641808027150821290534301831941667153733139962903091830660302019662829550162550319154318836889604465828435584530404723741857274445686924067373976725153446577777469985129837160326533203465850368328132331987953169304291250492861386498982473462192787356733474761676186438455600708190258291596945251527233303474670528412935684976975339370379665542827741906896452278671678047324029947579139931962922759968418080882540838797486228263276502069414353014482823200973797472030762982698325172260157830635699244416566553808395769844697464492498427635303493005382979411294980523719563259573575060041123916405994835786751905013226497021949157324830874849925450897410182322515310109303449529178897566297492676046477450902093147278705061065720676543859493062142435207748071701257909800843362563973667237935450475057418063124428594174247295762609390821580618783542022129685587070311186038659648204877366601344246007697328100941275295096533228796187868594115173291334848525853706058091919155178884703916465887693391298554764719971462071396731506453038895008896374948998176123050758081848690517448642310941319243861082539883725368923077483442632829171194658936784636918980201293551018490957650592703879315152697013734537944494562885625165256129507597439562416468545695867774492148844392552286884799273756489510033524369135094761067525443297285337967943259848747336835263650904789412765356491287905779701176588787782144762907197263360584366139959878493738840420628177935819785132396010876947268033793371381179210044878778121906424169368312290576172770543127124273170598511520491132447509012669928717045018234724911462365834338061892289261230464896457125405657751226258689248463611314488456900139912975831952685660113556529818375022129906174946863677955041336983391003563807512495028520624028514427057230980189958849591669945871921326658565577685736093974757109181312325558919327653299772125703038686245185989943331910102042291010742864754951360504657828837832286030597472916612288414504638980321202817647261453552717207556448416856108338988019606163631361096870084563372510554776790526764060866536214597797774078196410189892556895928776076796209517036979974198769429057978508575221512422557213611051551768606648621053900635466953815273288425085320481208855631090346649910413472251860461844286097931642900189720568173750109359247148159886555790941644692819275555514086372550854924581953957350495764407383876160041829222353050971986668287704484882727509634721093463489389077840305719554205268941559970387337980894372864921060295900330104171162796307739594170695755303997271384740451359141202783586896191758922839081747109891758256696201429268782846140658614138587090708382112321978919258920556948821304590388399357951823104821653829491780415468319521095385025929915465174113779282251404307273800077048493050919140584106823258469856605453213645930425052249631523668833530601359920198363484762436695397804031588072565705869594967510217715364625953903749993840202681765807327930296739423146820336947913950082556427405260450484001967741082674972916881348366744462428977605949114720282592676915396775546900100618234702309238082221034803527325360838968223279343906862146441831368362138842506218466703590983697979350857734888566477687459713081750018853529367303359705994429350021313940339267771170580302247926263356114405897993858178578396679410502778862451345869568073152235541749737549603571732421481576802118062172890990748976499926587741248624659640459636518998714169691328267038607926410895702452014155630146659176477918731331345327199019442325841941767756011478666332499483720207351058028219811466667901512039648838517974091952799770034717415150919085503663918570254297347975966463399624592059999855203936793527144817308104069031852534339745603593148522302652528848833619698821129745647820641967529597578377159488400589718761310100147098774377770407418200742336950123273897419741719832403506035982438625525285863801192781727601540430327342516282399006559417378670171147705737176795485266066502153069629760669035744414605906840995796138774494633916465673149169821432230718567867029394322818347982285668762993474011185328128549341426525696415346597377283049336161994418805460016092745178985533201103116257261358793034243858471368597975115113068435955658141492068221584812846567618008781017912234585854090070910960370294760477872003711274617835694206572391236759847354316934881124722273446074050738206100346826357084060582868797167391696812572320302602723216292288934849616451289064353833712272725864213406153768316547259937283805658624768275416080082532919664985893441322411701391377359327518989421149041357445829318093585098862183885535734750968870026773566024005075288190645500477798557597513630508351512924152782385156146027721508603452544973800779465108406259512332299213874048478185898575640903766258427580167254224435834424717998593224312725798635691189481672510891315629229569740637002550566607029667088334449958473659102909125891681220725042489942385754646352841571905710524201953461171304035182842114531124903484693064117368881486957786459669982530643157871303848215724769975606127055340169119282472983467340247396483792955705679030721598567088328674864828581807260361196296856067523436036286206754018278657766722505557414407532061349377500356557316975433243486931581591659797411466390050295949270654965076238407024612648016037517489613401369058683599054505281195299532120211884267539218877286157816774066486917805476383315288648428257516525388237570894533013158606795396293615122595190026423984812500463411982767341809796736763923293665931571206591769382873088854246459212948002892683404987598636003574903821915381021734893430998313958007543676222698678203867738932675950138761572369615319218481411108601811130494158963017582828857076597089512255860139134255304225697862640131123798647742201143075642276469645043357393145490068210283387663471085030165538093209836398790687497749149580821804560389395772387191686765415547132827495597957912367348864702169387139451862133438588690174064025383979009275777413047901374238406893961425911736115899030504277525816749136734756049839817067775415209815299526650798262555756506182830840915504299034020382872559968313092440354998829327429777645252739889905321319972086001620811443771500464563691421684221926743257332259716497041620712831163288160590959655015615386891336454616767258770457768034462098571546178046632884303914349000722709890779173520155415102978152085932537807608868493440277856431327578110146702733921956646902628682480112256286904041684845540003736837160954737602827269235670034884865397246836426585520488533586592330587935813863872023105867381469305117286782112028224369768222072038540236635794131487416424951462557538861564296969377876741456346632561710172266552313208087438858208638988069982877676795722308573638749526581799827793972283403599421174224605292222854941633388143313093809808377174400529050138464627282444695923103453907505643643430139991933440883347488372537308312869080038698436045345772819025492166093637161697069499264982407135266856374539933270060088861761154928994884505598827829479996237879930675008266850889206249549851021936655478336049389031091128928786433628605763513970456027445394223563102115368846590912367259691818311122238080996203947369554516191638491472887802297461685816295266624518493380985954972131576154048066166848783146925753852469271493199319125437433176143781847725428165581520187036834905319982944904525433227560761423136711431328199103191073441774254445571334935994468391582850805955895158123820727609916560430011335784853556568098562395694752550503576611116224926668819136904939899927155718246395203180501648369185531422509439652934518578416699629518354581418757640553472636512017517794269775648597781966313219576851668821833091108978547156207461675892151724607449215021893182998216786584376087103486677911506016819903352442492712249648695166017550337015356658413937568457819517870187542300484557370665908152512586873189797402445132789642548522308776533682889777274913194026400707270551616537464866483563649975994838098592307791933490700708744428390869077374278569314271612689568307710888152605960655721001795309916037161829843177770888909069239891998379878076659130285318427254540954273568599855875722010806388325559388152224512242811083833928127892418755543381942948524672665959784528677896754974400675170117935388914385101651378406620894291058809040844593723894612208899486424079380784709741653583613705535874833785026473051820880651807138596600286279807997623005526842912601274725024995850908476400485009475819730546103417573963885092972527264168826163865316170055375755382934755082233171984300886998732313773888096016566742145382632971679010993085150575180090024706989086345574502987874516923559655433215027273291616632350862394823198971826714797814576504015877208357030035332300608880217849434194328713639590439804226980770540021586649825835391678266821683142421448940955605888413850969120976432902608354139871225599667902643749448424850554573265421366409354508179945314102279296153947407547813127750528010097007885730757887802138687763148075318766668604896690401114471108505654542463993476651162065464961431675384292683227109754671116259056793768879338055433604340452055610796947142546229707644417239091254723472416981708536804212931463558442637137323887787145701429618496621216597082935710707118222246047649391663002708420865653861111081153940386818745346325724278036427593677256203072149659726177329190296362442818413780137254047547851983581659541701696759395624199804776688150352501440528039883697317578002534370134646585383452149794764131002937623544732643807728679629229731045685675838521518602285227606285195106199704771676603179162780807403842622751028862852256834262362231471862600805823053658441779052554473378257704434053490281979010376176985690648918947906831352299156820799586309501522982732477247826138057751078897619740995775001184061397540074352118508008580922731517939610555212173827890041180339456002248807629825720014667906959085414965564510197580370164400441300952384963084622908820172126231197714312356690642175069757506046809894386435619690316824215696836008267097483058996515109090286680157659147791748981825496045462564563719400959544698394550795605574335388316768757645964119426313399745759941360979515410247308120041476070014340235119514195723891429761985258089279367866101096644855324231495903106006625873554673213086706700004271014206827663350790408900635831211151264182007230145545178862790704567627013580996826194272265830994837363288035024039164974467508621430119825423392168278250079459608235145640580802985403203258978862646894994017484133229241800846337163545327481999577380006355528016940674403101539645990866312544240908972227838520948599342442858069542792179994804716048514599538425180651765030845986681267778364270453403856988716641097200408912268738739490567108780688114011983661400632965841007073608434363673113785296921228470853639596864595461507122563108312395183273643921460700536546177559369451120816853743601572990913658050454993555790281041961339449720292489925180367079027030779209496134191614854618742712735552463368424171478382615958926377723330459690237877130173449305636643557537549927139419462857603151291132420510650416591395496021123871305313821113730338803443461357133766926603582770209332179563808629853128167229600442605894359905595717900587618578265366823188369206905432060055628359331501219491748149782957551496947858530363285624806251646010219989935893864210461980763450858993417368256560686433369257294319511042475147142229002684235024838391153182610835884876288199894685676653506805010795790112479468448463593924863351113235413087361766327572880431798687901502168088764095177951023559074935025639154206916879307191830686146916546969410171396200298179845074980830288816424627324950819014689972302506722753890988890776158377616812478071274026627590311238970199326358688806656718923125240386092996362093165330617244301701566151674097106358462672016768804076084540003000946045939197104367205881577940456417780837466587658428531187311720787476087860245366875714416990264472580924309409668796995994430859016355610543584516725304096131985744340675078184455654084536487263111977581953049847341201646111160145858667554498431239156670394840291875433835033983717765909197482243731997946727821635722759378642503205720694468846989895600582604372378627258376497611984645392812073716262537599584670049383560127377392742606537133150811563622079599591129514657915109541977677016822613520445066217351571550077723779570577798147378272354252338813574274217481472047254206987577994420271170321727778501420212852053053372620683661066060790527874771452389509183896342682256817897685302408200777664264870667798846207644436709955444399980545028739670729876558905531269499939319640789108484406974427687400894540671090349469575495610608773706532443778450258875245949710029389179738683114564745492061373052599869642299288058445629709613250595580029384352768071906369997481458970799140017948024964143019067521221696226022085357804365850636435942463363828757217884493679202797293032519637324328186041736687329985474423368733825295541456826629008719050668037673388106094007206413163007397642153565723294369425885549675197576938051292825182070255191563506564119078638492257323694468340768870165440792607682817589812488707120702332873696665770575470995408281380530390851023696391000500181623118658286769911002669852844799814921618046194624485684124936603612522009870500115144914701486467438969180834687040485085708851853597542407452012470203315711032763383139095086905489948900306057017725350282473650703729132860055422299212702819353612451175091079851651896119431625373820121828950014095465425355787468847522676205792094017004976152064858337692526524011907219510830581265958118157815402159924767913555357661451360513009043377865983560105783422344006609405634451843432001842443165260582484594345323006401428806987700756677334435549925440670600116035787482799429490138644575086530872536834992221136792606265798734420106158927716918654149516984762800300052929537905247537932323905773961049107932676918296784097012994911116446366610234866329126614923635923148188511791781181882493385098423170317791301950383413411709911447738198544709805607028872885349739932994268369116888348808576161950450056648793571631212383753450311328834158880602710986286382098220892780299727713490934975487827907102076729173682445416345768386103051073781575204225406582583081088722299247350801784867929553752712557658415114380379193753759739825741541675437469605829376847621383637533159990212384820498469756606825886808619547636628150893350590060985866865057869005401508431733121378459415611774204653234551065224816343807876288323259714839454334741173434837967660224795267898566352199584037971037081002533839873714475929033525974507646515998180615526436291041705207595354709436947165967005002195155472091489414239502439498667288758504687781295089146411993571680823348879387143870056826660904305346549732949688940399370931570808485267298166949411060094956845449619975008435261336629567374888207692797262588837236693954093095713639592961221962076982013127720451913914274459162535818093601929489131826239322576122853030236934956757200498266102579794176147712249092931213437669449913847823934131701731739758862887435111602533436662143967246651559141864436849587574877194983882001834453388659809513596435870588605040562773135313084173697181267184551271101092159927879260535815231736391211652594428524847446217404974137636459001816184998433060530406623401788527971162812310065735302425536152606501986168609270610695907042147574719394433646530677667438076882064667393190658877988561481240754717330180293061497544601372511765648237658399781195482319075356330487774495714941176487022840918801462060447131977014929299292255760419510737727431909767313171196184504972742885391200688894666323625549865688653759463254159698558638028928249229803171319543543629754206512844024141675805707430706848574046236694015076694433620547528466844553747313048742011331212221831340013885054143938727354942627704014957889775386614522155531856844604053178144407888116716982642969783392031333602454117050778339398591032552170217419448642367591801479152615739436544242371404763015822698574240652933493456233164851864369438957698375567485488894921278854661515533267423960271917233348090374170251632900451151909340381505541677972798667728269577250538510879380015683556643056066335752835803247702202804572342770264555239227389332385020325769828917984925113681742148631171909481797728499067569948032285238039944700457597783218325598545030163465163180383090191840858861945092737015390677550252623735482166798453260365067680856846674402440289279171008770116835780142511638622705058595463291425942713012320258420812090048305299053508042129852827315925228936691495293020292153214441488850091856970480143504072290643526597789627238587953313802323983256842811286554122291743186807874382955968772392116604272284984047961259663056348389308317706201396552432293224347580821193193190080183486664413306825512726343575787605416054357624305651119431376008777483675909281883897001601832254238854257530225650594840576532990478073200170548526791145499276335860621212774624715072544786538778660072190070751540039945253842230324116279980939440160899535298915237440004404274972819278172673899816103801501679499448329152934955881041337968413342695868616348477235052569428950819810468265311011082110406974808522717352837116859738111917337736898830266127212657203395122289865050395916571701562177161109762560134686260607240189889344241043431797129362370277984454380138836242270726623644449954023463883914373527253591424355917290361208215848811248631781346628886852492739318899658745376423750714768179313921253875830423636795556723330665153656862809902934014480672373367723436519062506278463656788260703318273658405184549728290424945520244954353520156224918065904550343769087853968081650485896736272605993978293813570746312417804408945010799546297048635448390104977964260670670823729622909734804566637311818519488465314942240111760748134147793619248117746004765703155245722646392321966984340272296843599924174858665185435822833209859364159551080155353459857564530966935984264622646938082934355347693410493110993556565667372403574273668904569841740779580736700051726425975389915568217881225648818815193979527332936679455572051253377852760712630942904696657221274542583390469450944578093103122449804042666519338277004847525558364525466805815372108427800197436343905832827867267406220996646772865434468983099795743085485969234115928282975481647555309524464658808220786044561711124667522239412877361913582168146160787964419089811877058487209245526474295190612805496802780155958275954733301172080041261805780857046529614275864469817133765181672032147048895504759748325630030886614556784738218968888031057877562050108757822204728196345035085256643601145131072339964867979106269097580563962885972341973684919916892181897479383955212369611034085480209177519120008137681042909803964254998444319429154834151706277480099160387639180229392405117621584447743703586322196320476696397781184193931977093435913515688408725784356355621383242939053579570407985714884377739221520141965828880208500795105342724320488370990510586776548976232040871221682369630157974419001658283435125153139077192955710665319752159985559079727683466572470257417898654905190101682143798679895690335082896530079085163336911072758025758548703842382681238644386314192553015085899781167268294925939163051799448837528301393886686559858376384342702857573181710568430682394662481865655358907005220875621506437352297670310845348960519189287159108026728808544148706638505087257863753768673740113665382453980425490867756317328795692789536987525927620162219130505443235554640656483866445547088379255019891137222469120806678390665068685153346895127886440276088072226198364208109997198531360984393151346825824933629330451490458248095798354503558131375811120763901161973085479014604552044825772356537153041058405489831259552336978876628125122235493980671631563063183262333730988649913014568784936245472076297741684509742487849324908528418696677575717207927627985917025639657817101576161177710554843815829852284437048341362439745628770023862547776039481255510209818701672138265933408284529485460147079180767757676523899799164045942343951919916715522648111772337005006489834070053027640999754703596444075015787987160030091302100475007455160339499855849861478041678262622343154852235499235586519059624441622037598717050689619130820633386330634450641584285548659039450409104550142489647050406810624172387034709774735373994444899830536628358747480022281114598120879836523128038888523133465471892939355610229877640679344699288139598994659535437994123094399197699606770121797281076415719083262124811721346521586735995695287756851235379008517161152528018306900198270612864915046123134072498693285364608808305293274703340509030568975293309719445603084416590323190155735030044438469678699047646895756858762231161368956634921243300172412618683097648432256735490850903390443678104688306704361490769426424781142197599839147025041661331428663399398475386363987779459305254628204299478817479060660858730034168035653129814948447037909136290856511591008321458388214138520330179179383067318872323451034651617905904684215446880381762068696481564291828445666033177545741811086441958208165160179998498509746360346104141455701576316285521166517473033139409679629490223623395794627065486434299858281348212290889726042338624737618291213502187918163763424773484015785697836098626471499090287712444154892217035063116572654863313233310125966653264170224871426107131199430040371092673675873813611460011471263281585796971704129281353820334098055803211346785461352606191982178322282998548832760603180970827026739484712159494189318653227421768629279562097031881476024060605537905074654115196402134090371555236255166237908566558865738532056432133923253941841702893810907376502107729158145264302575079168753352964864430294049011993452710074170468979502572917286849536437113856043477590060357643818344501795753154286486032805327114458033376942545778353979695278890573709983560769950652503266138537063691352883307801048890703331571973701202971113595802425076175948461471481490747303540116521035199925913751254775918269206092409920990709605416342114357456005879065602481629922343028470643515574749522776511659169680194163001664295380677451721654081178070848709521002841861511342800323121773262771461271279693486247353401230155230839036166881614033627680534149322100459331216288697817576938784052262357822772770237887560852325427864977623986769188342250177263431038142642314593496572165527770342921854134589945369068466076062108172431060670900352652186911920173762957061975608740072429623920485367233106628623094372692507855319970298200629777444404232672668899579498848491473551054939057320720241643549137880361886474572814087304459825203809519498146496728086012035378774612503112826084995588367941995919160743298319058054977488540311820335689484176311493520935532833157262771638669946866962124924938522638622282254096008654418466951806758764505256459281326280407358159017186998681231549834875663818396814022709899570105581447392272503416580714198853783240089256749524819654047162619474287787273598811904076732080915115953974497898863860342562832259329142897765472191342692726829154173638455443522806023607117384161649412670324608821975338184568534147266787757178143091871662951495716655718413839900962588369251504764530127436539869259252598326804775767840524480377730351742601298195499228741033242185349859122776536646268355165255674587070726363434860258505641180798245985012576548672072405825778193710982144157108143253453256217574205094735771982940758851216137805293931611684191707674077914293641207060795453056159345918635170855158242125878767762305596152891764292542164595068700324859504660726693319948451909494357371777061036710096235851592679237346611206726475914919955537318055929426441810163636556762081342447273928081967386923212248496153562314557568302149890813554383458106139418666095651240733646256702432872591338365307629380664507168556195409276709555005498227281993851275196437049292579819357206015789678816790519800732864958462647129897615793229774223469967512861332201379113186446043510101498668885733534802773176261673050623734518940163537819891566939425615921537113920312720528352110513654200054543243376212244162922395463407594087548610098771254920025266660052383784094517396076778770213546734851678388611217097860321675429467034670740026865720268461308615163236610913372239462714080074962088639940582284628172394546600170779913127102538816559489991959540766273139321383760483916330474755000371409938759730619859162347495214312640867431028538367587293509512130620238808693498568628370229862580819266604368421611292874073312724304203130206519619357302676743313058789436086921842028117218688898135820894833632007606966219155281023188612733650043359485173997079071943902018985414527834514094943463406385200767963530657217176628988618742326725465540821521876569808284402626397914104172843622070626910944092544313135487078642106604351259906555270526454652723449942241650109909654415003711118514504597375334490499720114848825716671696099725323300091456267655298133912243403902471549813276874194723737493093060220210824594795474656577062491642299141406606482105213567360542210992707410837555663233028509050240638922992123014482674195602372349291463737780451275996614299252364608173376746718517483067326887784040331660964980498342093124309382445618342718806176880543625034697860762170799232339402068929298174525178093049993390180484499750702410883735156663920540217654643148580142072606798014006698082751417333032959846747418720643788037730493842544587869403151416636882380290113474687887734291675786944351536093342200710224812422124542509452421641486947665737629239815365045378422966432766444732585388865068313091182098365900134632142709172986241682671070357844830966144091770669689238602187833583333671464954695404220201443133844056619396873121380218387856127218756929215612033179030631282037308877861397407503031169196374535267838210492753619834808181851669535209115024247901830168363587827893581240923760031544579986122240918982251471765624357160351701279260392370419153115372330010334842660936761797770878659065309066818854734012941285082600799753595711324478160908095831285941948264033079501352887444016623047477001815809388649930904427590621338304405418270631689536767511866798481039650925943264280068820641046190444011059712237691745769458245497717172846694375623033672420970196595700906940347665340116336451396246783518796781386554125567773602471343766609005492062239416371888066601583507119609239818324640207716509133285138955630872664539964043554592651799924119671214914264876175149182335313172687190208226650163977127130183512841214073221749298102872337716088968778233966697411071161233197127688172870506781791340312949967133692206116211396691994040099409093153570049467398193450848838517467047250390913438307457013169302101473860925806206285708193662177303223571818355863688951647485509627541817287210490942202039686345466949071209269828354712580632444779460911583355208577834926939245063018032460921518146394571571378070640241186993018229817690873541609097124767044246537972167667052846422975331855528917464395132951661424024251969797285370709784713316928361734180539392505894198737394591188535751533249974520668673760567989606111150017351730656167179425263519862002027069959725178753721824324846892869657969283698701539331144615124686544380193037657285481402855576623959608870577445733826644156043532241517840439798729925507570435674876425939136086211223858494225138476506461818985259704978520087262243218929271774243469412344824417225756566833753471592083886427665873659572181816780770466918451139761012661349531785271887191310833159614635645090814711868545334913084733950612363572717394580562982359512988401550459124405276804400851769138423745032535055064587461264052024173666181717562848222229531640711116516312270270274045279412260652415031505139890582063575588721182109087204493265645543496665384328256405629266130447363876043587371089185632795589158218162211282279751976693585397979507133299218014722093121804610538949123954063532514402919173350641898813536371007710665789920883946752411062857395886870974588731140596475442715482766319927620435696206914364552148486605778581667024422983198107813022571270653139173298587683216694314469780507393672389840732767737092873020825329956945621848778850073420750706760891180587968397788832942544288223967807492580584362159298635620458412710206026052833041976162172489622900587728864297841375328223725369913731126961685063626391865308876417681775801981896755101079422086152479348149162747149196320285756913146793867092780472324448057619687013182150032034188725866982876265369024498575119590227331921320847003457307815718480956597199794334877730648024339208412688157334311634931124333894992072022054375663420344579294414761158469732990862368593069641864168272841567123243267570350612839606050887323425129811139254200896835881270227208613363097758628780706242894443500379155254623571390349014010134491517153822784921979056379503138218408510268944257474979561155718394610630115466874754298243497460574801252280657318986506683150788127632028794320368279785747078857638599343973868235549806712587543748317903462335663601180017034166049081763250196221116997887798694794883997933148911432180404648748362685882650774295645955474129528143359157332800930125777865385202887677679650180304113200001167821435979812088211852982932311830514328600266197695846112530224615720717692957781000478467906060072448389012195312095298066841584821066736697927192468450785897083227489681632770642365721596970840493811503475976031477310739795104546641407287899811787014195877515166491802638838513584587764311139954374434754050393416654109584291423837050822591981808446858294565462237299821065975489419069674244341993989259204924572559239220561540015005066608725131414512588113351787216546996357439740514220134381372999916515843224391506945278103618339661812571816274993748849484903042161544068725093915102275262293162196862025554778604479145690445069399083607116835184576441256574721761193703193923800777836165392097893928146757039514438408168672003583418736253667202972854230445949246404594682041275768504299647756206106524528848292513895956770601251960872688091328211890835664145262349408721901274076797120168741767982800700335078113375761592596035708046176409016189415092200752149686156469441729791297697583581292861695434665758449716477959979905091696611054245239985637768483741162941272509770372362709123786715090132788370054799293088286428540198954591988161691925004165025448613808384966178154485098862565577202820946799716950983233761169831131155680668302330497754321992269732466411186175613967644368846664261484901280952579949469255532399166567824391436245818773763455014000930543846445717727717969894795729445808603040940179100524079093056011896898112615593690582604220259509003990416793596871737870987961850172551794127572833420147095597276661979359468487626676229220645725964070728708697298569560582790377480948622505094019810117121456539211708735530882752508023632344097284975231331315484014317846662847219803970872569854750837199446134234998848620159318582051030244632102451939357659244856811405304556171522260825238179764285548099043584721881737992068996571096701822687763474763002525543864141373367715403334134295094876647909370940046423555127098410335691805626105323225117993344192605608763439923997455302655986711990278479101055145653237028627934318956350280532151329778029093779386134038531374917870703238565112408490952584823247950152401631071854171891777687205659047971524242661685462924517774788933677351008759861472809717467499663393441852448002402173361626808211399306302311786085275636685705157820483945772243602362136672985362273792722736374045171060048932487868626320064804845148996827809628039399675382093538459743481036572397408292286191193643297038998093905846773814358735334072902348038000453874786902976755633537681155790382741229036736724346862973510391087124086267708817334548281686417818471326100174197543444522255836060081311339372978591822270777325355541272780553159139434178136082622414484758845832264718813386860291648722412872804434698142890443783837807011434508401821873011651390652552157737813546160092274757916638450073272817243675201810031127903210241685651777967931462902568127150216048540001483284108310894249535243435047946189664858803291192654613331828623661933393106804456703006347675606064999713199198114601989966273189601939130830391030787432207642472154570105378092542766774405668962675579033822229202165824053846562704070837974902194757928630286766463174668483609336268135269225311356653356541617042432164188236072398950134254910408872216857811922473873204948292102154075309654111349960636929903545568004744417700832495745682798795535756802603021158550006490909982488776332286014427068412842962223563406068946777690550602409338668825866050334451684356858380561068651493187757851743367423862632961304683776220290737181253592906297972718492732962106961661479635771243841580680778706599343803603255478827853452227247653214696141533804265555640620728029413011652436852967577676731109409313361032028300519569097747095254745863351915218732877459599554037993739591666950138268266388853244491267628770649111154487805519837714698672011670498256934916505796626328726267734820994634985434010086184300481411051723509917508395862637214765808700360718240998860175131258225912406706873818001846320061363966779129934989484083993984986479450069199843986536212255075535915794659695810169026471155181030146531328815721468612440205346720205400864198132357087609820347776956725632202988065358348563792326008705078318499093577143514723310489124440169213754936906315780377630056765388153878449464592919306827893226492765151034664814412458752973326164720399379042857916397252351619232951975207407788324107360839497099707830608532176048133897348381373077723339361283115113656418202308874135734414183211026719387942148877572320610342447470611066137595465097831396560480025039538477255360281513970345132123673726723610758659104715035895903638779680029485595686317699168809635355416282136602804573363299905661095574308495412185212715027839552117036591310368810558927416458431704914009965896481441304801885021948207332568064531404226057044800317990117598245130116805906469253476112646541742182471046200640846147741895131796886662507690167545220668287924233034319013441781982198635369904694811564421446771883594615809693055640955100127781936561871030063018823440487669311141704385525428911681830969964789273259879201352140227762718137746095731293828008695636029012514904352617777317080276770748656779642286217825109068841249863104622902281466550064313165972484356642498049956126665725635850062667136476629664245664037841594866462136412169453578676820461448471086896795037976130332062154958640086043346780106094507957550225677972265928941073772339833244351169087688261819040740221339851446149335834132158831707957725620613042559547461746570830868323784609439867738801039363120972216767609961572518097027145486850834076480079975561703225203326256748111575464246185454434202612996260942012411226377315186457717785314790932616948520142812441354847668734726930789330560906041345840402988715798440273834806226054892316876378275726548929866435730739233005481016488290685260123609116753789286644801311456305245266873567688506736262190131986464691778506239715353285346185964105427351173411699382334947012618385299838312551082756020206695108543813043688096081907642200577400028425428062822749359411739100154035461339129407413567484836540945451774200801518271305915225313160292699536704215511574199008404199906226878183147753911816774845093835295213007330088810483196535062737229750707527908091807575887810637097694617682600180597135130041935307629707015636152282858449563103786775326431139987483388811799182449329638629444838728894909711190048890214273071202264245321441072184341129287380847830725311662564217056299437688452356225656998594251793853139861399732918649575634976432190577687060379642900730889762821603853365127131235854867797589488812424331898205751784443667834064823116017007904897210771120054762642439271201361734910826683901546625704764691939138403144925510794080583491908785518370795460226271078444914075712508241363459983018077660531459145725626342746565704211232930102989870982411375068833144121014509799704101937086480438321146892482989993225877011156697395795084168142701617464396224496233859872217290567849198764575076605849287480631725774004888195846082407502027963621107776156941456395848144635272753817949906087589534680002445950522779734357145023908402802334275305864628018129788810275381545644299283680074600720992000508299814780323885710161608196167160959254118703070986564648674432492120259517046514066953184864610690544532226401759654731405168311403741836846745327668376680076079413213867005772719675799141105743323549621060231356348508158211245986166629393482447213378674637436387027060024525945152350330939576816088660611159042511245991856858076729716435687064108500599359043593707310763601434458920923773741713196449881322234736095811583169362041132167886917938758936622403568352273917070982927792348076885341445942694225572585603972076245178568773876296108740481661875418975737278278232835717834261008083256364754781482615419566222685654569155842484654000291980404288131166581107397584651796603491505428276747480259003999542107273935925835825766790697185593011160028757647595934046628318242520767347910028993457268464705373812312225462364650789043086572053512509780843218809721079179751873169867604146168956980709147113645805578885804284111634931104306625786547091484185038433158580143737917346621476728568816666409765768786066350467722337510971395910386323914042808084844391293679866439000754307651130170051166531123573855070735727164752875070215982653133411269222570373606389107515193889116204568106771021120300485822656649285357748415690404151065589037856308831802791495320959991324933324693017137150507428396437929779222389977572484135420457339477219569971549687793572685634527212999169256749625167529020053812815996717011849962387824971954580500235898972841096912124557663360289292360659854944205584692595230336734639837150640830038282577493581217649912513669316328019389275581378713640486973075854921332645088882863712687832821283479883575347259726887558085195679352960975915104049876351386164773174441829737677727286846682075108484450574533499312519508878508459364994675214335127944469012044399160082095239074911359647144082049832057746763108594150894964075347038927127115684545921595894298272687348973110622800190166477374654863283018948334392761418863442764140841874523209687862806394421594168814237888436002537335991161604851558660008563781624901523481370424688904993206094921885868919297900021350325470723793416033254596981266731246527343391657294856276779064181262904365873114102225375428003013372120071488347988673002243384793773456375447595334356283531273378630359687462274647540274156161487425160769146113644976154395103465966906462830298494293469957041166216188709942976744771521072878113747053675157708855527687317675371700224552406621982454655711405450756523563710233101023298536908145520719108789503342757179536706314826204903833976350835614019787495202965248718842754371344935280121369079096299583505435791447807893761794778864166081414246226430278996090422559296055318584762320321813111254012355964310064410453236512965729234451060585788670634453429138210371700905929035374992557516566033247577613927995039667891896722375265755782941346534257609483785177450381527824923790625438492667885877983247613181282621672276964775315387403556605643430961364581249122678613127579642812428265157091894225669766426903565113643182482604675200172573378997219158117691005269895795765255516420582736316504933492691230344444844053970475529170165497576781706570672167656176140533474499668311238675240590661404530997595311926627924031517861706169358110130606909251086224222892314146688832904925588402810627227123679426821407709493702798028775446426285999426994815105423320251185762530161679643311279715362551268435720696695168642575926398742541963325239615940032297337670760315646295985786995571780366870122348599949317021585415520647631846465455241202896377524880704699803927600972006225236139058654249017322524180202374658907876531882119814578566835596552444343483281094240081964772411563492070708392696112068272911937833215919689289154680415234802235564716166571781081434517882545402146095133667299024522912868592804772447015326829381819258135980122933263891615233198444006607740152139155059777855444594148527779238083091028634434779446409628885308729383278169701519241983948298087680498569735105252941327433498099855529702188682656162815668281727602145459560174569068419077366002360835679746273022177306939459431439309395603669262828928586632932891817784196478353602449869629538078935545200613430888579378054200147229943911172471233744698616927486467963700234902895936764181761020063309034684537966973040406058504900143004913316782982093810169686480486445914100875891160749611929701507773730646627816740393562213697918009691060903780284089911039214689545720427751118470710502210798300749149025576662153359351921647264296648525257756527677428403965181214404554240074323658724152985225127702025446100180985298136899620955501986915895431374123714913613475936285284261338842745105387065400426359216775891651638999024008603949799971099317987254398320224339799042509552832977557604939532296717970393593079173340429238204571828078378962831671819811971498661150118255911666887986208398845843055593202608398214123076044929652075302589478697045743450964243222416819565979401399720364958765436043901918180742351578771808654208766435377920808590888659766546601821487671138335711730372996867365884935951141417101726965897757722824950783825476869552705581749860970313562455788760475132816847591289125528881467773296372984871661802094408825870799549015142954862999389735859781571070179205055777748661866037464081815020858616950140469660073716034391110386683759375181839376521537402231659755928088858582654611805513598116410927789086274908312793241308195307546903387228275390129052230336815598299924772541090917770302546983564564084590503251079079756055818341468665092383661276783190599800238732201331873496976628648614101171699786756491308445587489353757342310644507573411475826882311520058142919152843770918766210401453146044954880548166496883339966886636296418328079751931797721166465936755672657727119013092912441472174532241640816539267588760848045237653202947766382315099960519677203520888287911158828094986908757434341727694375102182637713820207388788885356454234739858280351103838701465058376135942741725235716454293216595521852198831440978114633241846709959360291560174737388929578788273177773882843718971251237980160466648890114017147445075105236922874906033686154486915344548066791080105817898203395433815510668388563064259152119697133282445455895861362415532199849398284043453813196521888262661871515132917680104944834014203168355781906307700749193389836398886678438049814230065135269311291234365706826298636486116999686829873758569354534225550566391592041776071321656317358336695550486858479601776262245153141828622202245268500484514182292263210796282830446087869895819414678826469040255846199476158223790464565330090579006090434754377512259368037564511458192040253035431715385874094774321395221172814106187227824018823014517902225363252067857324752749635073554400496949943896986506224225446854597439168552466660999440297398953223905015583292910414383849117954505171324507252950142919000183587051943459075021896162492422490173167300187154568564982293334756264052451204066227284536345700237400597926779169080336056531762496024108767644623306668594842475347610756707415784313077163871487567230375302514797975624373566051134659701545618270197330528041590279453249781061821780211535841353579196426400048046284122282228841740015789184618974674822828052240165044325616165385112039180901490445627818514633954295073451831395216217921986658572095439879687458704273749026858668967304589278341699525555855590606662412444460793407974910554813608949486983871387245601076928803043114275272341488055567953312306466417471446062359189957424546524204988211466583711428064806520009610546124521799477082238939530672166562643296422271530166924415298606006507392584753098348551343696369180404362271621150890291276592591529677908869269646391498523547568594216143927135261880929745967187822047200078243128638651001495303576509232491810420290426487500670279652008724227630164962976776255869442724073604490090246115517654104834106966660855415311744941934135703218252574319442197528348711058080100590571996394891126860375865005128657120934502497568382179332155483584228878280924337564743767438822989493690763546314284040235424362626683030531781049671694580219428857512783549320503690031953966457904206164721000265530754947196723245682183266388109447324712673252569551991119536047013849362829641003616582462030645657288091796687247861854756958805134648688081541302410071055756496822116857131778595823052987601996698447277058105003999805725822393287555097112878968920116971042993856252192174815787436823514457519027269063590965300522870194057761368429308201611208835680642349233205449902107542684665054079011708350741572720895822858110175137478111647056439366924273838118364877360296387375986523952240422261629035926140470082058686548027478287621233481086914577812387777228142904721354915849090191172153748447912661494833177306097267931426449457167245681136130817470617424401202368357788532050920666622252059120809904691192935695224299741378804194488514302124407919939420495797098984238304778009323599999898774585394995392921747328954121650334466375155104407989836182706489104769243880909711484302129375644667939781211250228234789967347945363124067973447963958020618317339946741820887487437948550457692983861552709964931370371297427527913227195271322550606013517627015603165315311111975699776089311406400676445992736789056645136236724263218709758542462637047667918142417315839190938208334689466872625228480179772729532791022931078236987306242838220925209547608043708855162154329354990640852874240807266959566343478235817092354360764048165650065469528864042263858923400723003316731634087654722914003574922374515044799655179010071530930706087156203313602741159847171013832499419831965436130649263133345806660163557275874924931066067019623549111171896497445668058408163656256033003996683852153196112861038213251191013698005396381032051450988121790068520387552070631447757464372693960486371968791604518141073006666443013739413988669140160907252057874275157458064511257441759172972719197544949432053010489822161535075554705893094397259107387394254391407600436176910343502867823625529492103983046704431471318041397819920403478408463213638152217614103677352159547771962717585552733082745578646839836576298864151105803602340244127242642688616773880178491497746134514447586903743105577222541035011400219585846861708607505395092152175510326139940344958015605764620363053309768645565008878913245524433018640568036180574655531912270573279762125805413819235693705214108407619235908277794535857096650352014189078886432631726317703420516915583567376234560471264182587425729080452422377682892136283362414454007436299806200631956560121966502921370597271415774691545443117690780723702729019177886375773198280848883420460377298091571589092273514584105435528527235553214185102394409610859379588967059208778406743078500639058049607715707296033034770235168957132212314950269305472790926134717443555300666249807807691598264297329975027793026208622625651070465563480249474047677754977572099512055455785829223290977002619595957147362100893064838606612897859039646839776217067541517928806691814073960170514797979522402942555902230974074033209414381394838514632288380047728791758185851222639388282239419624849576908905910625183221589011290788000204662353946388679010761847259691388272811851701980327585639094704190916130575551873838311841563393679353229306969878088968805026990664073321979199944432574864377436717702430503921325993359158978559024248336179483065997291635688959493563918782794413639957628417252902055401836726057382163933341467259257785883867545227439347269061599863545264231914730048394308897977538320503117733472392836641061698649456208246644160334602524125836221957286327105424100249210407152052467363015621272264218092866893251109537003304780643667039083986303392230109821013861449111548377384292892769978894285735412793135933249658753554826419544845868793628518000343906357369997849499941105488439719400954379687193134860726758433670715577004271749139665908270274303889899419757989851172356809141507008679975662762440288506938139944479046475757404052557523037623644477397883228854021740081491883619855794452298897751059155729530669564097287538347885415165245059217402648156167421751825967793473672816344187596887202518625383618666433265369745973257357030600228770465298130805774455653951214714713956707085898152694571163744461834348885947730636291269546489045799093192691847774952236656391241802764418624551817401784721009245794286503702768225377853875224947093052745876970878225996766792835166070693506998646861728360504923400354110020684289008227013410981149879609511121307135633241267322269891010307252988918227471081786548415526194514437480965410829573396258771906649405204479093422106111374947587879190078997710565914937122730495994233570454990349288506917161149435350685847166648045339704356828627271347400045157769407797748972623210551431485234114984648301948390363875364479934238627471964197376922488010018761659422116479384758576412022170965747290168315711203891530820861501034749424678178088453742606660884318532565244967444942970622129465382217668789622528421305293488720635069468452239880089499076706327450348029365292840327283660861297637194546863460172857361639198495708867143897339160098985897032104567309704040600322143783774219499228905831989867625121559575315578341904948598700967365993917789438052770408409254918275180986950286414685541357901752240453715384437587488681135011363675966643626187615715691753912777771213470823688363586951715357926849999002368523106203950759282874648713578720968709187763613997735272840147340344304246054608854801774114473991277211304315591622911522738416488517188785451520640244805249588217996177948782426689663879126809706925909605861461239402781059404006080325438751949710654698449725161655231461789532146660766878268041188509159557035306072815449395935602673739432303555421255565778433027534622284996853900704794066343029998462878991705883755174561041939903085631811907278061273225960661480275701623255758963265612131994991733857582708319765552358858470185772445929764982749065002878004670071519106238678822085220595433672598487801885497903294765184821384799909764635276093413005557779146849062603217638596330507127574570190466510485426533468618973608545183696815359277980266043386736452121047599733434804071416973367298382119966268409585655363543211352187923075711991093744427958995613698554962366209267517388816303596876570256549907931459960505309544257914332663996561888725822525040000737705778364378691066651723657864818979791906041346173462928385094470328471065317585161776869884054411776227869760902726897751014985772401277395207759272701623100633416803386031934412010963544413979246273213661406260703640709527011707327588881371451643031029917717666605685464203987584945547057277006105264922532294968046858055492297315732509259298572155959938755868223625600297617687276688087628527229048477283825828871351741680112772794092878241956431886920355483578960767826640868149367888053908165779573058693890445132301058919253545985410349794145484467902034145322732603929048936559476975806010574302307235312222530253399096317597026253684088258459302386059260004525373139850651008338367106634769448597656983802492516210177064256849209712725999662355370287183738288011226861851317057398476229763782518698992372175058155790681406278477692632783533625731074731404952312299115809941971715296953813800444178071602972105049666724680001953569264771700094509533343588718519256971740684527085613734540039632981347694283992934326475324988459157488260903712071997131106462902529433870267199423601842002026615977608116731396257161344072191275043482606964283344885408897470456545381646920650881019740227568971308158176840518287932675254782964813252972779953236131163518249220414528211175910947738613282341061784645440001719957744569643478490054521989868956465851579225340012903616755261905592067724797696653917119257956109783689936486857316849582626576763468201786867334171735025697568909611176119301610779035818664474569377835498935119816244422798216053154384816703219920413140488799187216032399371224167948434960324291106767451618550587233398397502745655524094389791325776669190214612740151380256880878569347012713584939141274416247177886388088076687305184630544316679589260084878595800944094839446575475296891525209471148709119077106237481026469367660007486525710972419545259404268780128994999366648730172577878341812750493457048762398687512185458070283213226819621812463968512148957976202043519022612878406643563971834925467926348586364004023521950640916757256870980608855322705253222741204223628720847356651165564981698358540640038092708443287352887341867514783392302612619388008247277427007310982529570438712081367703908001577183138566944750398624826692979940532253319607848948003761828942000962128591951540077286096754781851073154853453165580216088844061350171854372363708889827930176669320624881844693805904759625580812124947058458958666478574034583361077349759206091984138327847283762592004271111793506677525713099757901537296072225283500791585701698111501822981670495637077881608426010404798857006347853154706946654785209832742897625841134245179417803761342440500278926332504903614963291563437047655749541059854490575326108048169802681361119842643892714831234738842636937055622769064067723354351469222466107863869450112766048007477131813247560844737756636034735518928658638880408033828489966129475434751380262948431399632151397178369447487615339809838135972543210518119132118542690860229252242448271778946872617063257411455937914185487331679495611680627289047212437151288529873660604560556646893938812451931850038257959512948951636231204678689284204875618363111871276643399668658316917715689054706830271518920211276843289390503517931037742671106208452055617675105674629941637478424575239999574438175629630876166249942662595842859408238603712199013151155730533961209999498327229027421272373643999660695441118524670857477791549944136855763437209014289776313476282627166039985618761842437704297953740211510225447912127334209601739414329150211090317650002820486356607172181873515324861466264333020908906296622999490243341550956511306617636723944159534163402503727050181225139222052071551108156051531360678574152406327158422074864860497967990740385027139864915585591548933755416906204308237770144916009223227606627613718607679896857578515640079811132830778232687827284013735527756065572844251338660144967963733745814959077620572741688235219078003743598723967401045158136203910340852599632355849634167264456298142146149293843153289447335735333289133049095218854093789484918684433196350711558062005885169448454614504997219199980017282385205909720216833205645142221262245911596550089259289242065197093918387106941396744415916091656375959843502199603707179854619188932293028401150748317586923020999155740001105727339152549832574995628430578703364801421150845759163207018804956040058521130798417609844974144229588990032485687975182407578490123572307678607827896757548965698484291510608463729534330680422548511304138037130598796464016041733924383055452746263691143992872247920687146601706833976578687779544907666469206650333046731642692618412307184014563661870596343210213339181886653228151607284293267477167062611980933558210447075333607693349591770344413460904332524710802818040236411865887453790859308725075915559406898924995841844979683480399857308173366147282922650758154891156838701886902275869968467165348600220105425955586256325333951948127150407173448119576909807814245181215043915800655274319382542865521431778563107203804244845246971099389684755078959089925257818960785159045015690182219446473776697359764556338280497821504483285595002266802189863445226732943596906139138490534473120283653848187762673939004326469008425997920757981619422723107467610572329547691554049298679389446074617241793742350558555494279931133232051907654512007244044359914104381693144030731618362748837206499528442017881595651247304558373872455476740239006286097258718034994344757858970843755581599320730216135750216946595413495549652335303877716695166425635107192720494292849176495684191251540208456157223968972889901183076551484585875339426061414825017133490779225418724412059480141133709548200153793687578674190334156584765181251533444031912415728345729687859245568480311795760874540431458608234790318194675473225392483426458122243873052119842944001516425802020084919612339190725592984665155176065450047298401032549059300892036368796100660551455966831374549595502624865863255189811109717363840909393140969189007175289585585146363241874385352021985317508616034258203100549787892552355342882916942757030818443440041757497967753144677274501932760826680856455395548077163645550772904649417151526155724390545977620198411949044167555777778807704518969826569562061861539161632211602364315969889072645501089892044731781334834448661985543926059810277131569425371793763820663367809217500914062581334431945271117737790464922718296781702169869751447510679065271797844277437317744193094206610697374792659368147988019023833224296557473912738141375360680464981405528861934075384957098016202771691502816012563764795443820363882946108045152658136137387272744419672672844159333300277792603476092271302697975366288255803039577198371034673004636380610221941165220533770001559832512591491107631982845415480848506101617881630829262637699917876128153567348555620353048055721870218920030009166050218551046077239940238898026227522603317261389899075082034434644284313883427598229541588011955811022740077381006667362253768795470828453246781935867195168335761404751594073107868148620246156234899772914994257918211196653740402610464354825515947982603943325104706828643806341986362954156003053166252367311200995637777236396132888689638738268716973287961929234758406362119502000270410350441943243897747908097385626350383213501418957071598633398107318391735535359902544567919778946514884319819020977007286920185064276806475184727844803130474033165326343270676928567123430286279396036582218797006135258143109696341353668492182104136933203394953341789308494680433671269471777171148852835471820999475098074713081389723437395660009819394239092274877160245058942070723729417139444710127587217526618246378199904732879961645787156145825530527406682504086355993385658141356575381360146907529137641517392836668174438107551432114981685196152340721846281315612726248151824055647507773243452188967432547545909186567805920226567708318075698080423430008429199092493521738720833315101753762083114029175278428952126628416904424130090021312441949586116814774055887054062773380773558166075904923129086994326156111839805435690987099192639512355619530962860241150485315660773621345738473705782530572344923949722568485465675841644851738341891275115548566474447604493165459873937936032728887707113073095106344165120102634027843406518682156357786059973859484114686987816042243123364410161473785456862805063253632546561596967673792217003012849299100414781257575383045787068416811727135476263971037398425327535095604262754545320265503505347169479538596375036087330635581225963338491371361679901871453632527334426045618590060175295273842367272127829972064223142289912766875884508243940244552753997705718830289445854714781458668204257384456256293450057747990639101297497030031798078224948659375174094609686802037459684629701137321219341923817116752303866171502792018831540340262716396340414802160675219436507282211654796119140905683036470057863238413938574747855838283999559105878640080218100630691978898496939899706165056149587773696775486910450446272116399085574080845595147217101253167022181229897230459235940740848890373883157539033620634731785863322311215519040264434154360147595407441551820264997807406804056761093984525716444667129746646963187211766419193341241444528381935278782358882762364120657364374931317496045266353156927415431350522143266024921367085529435749089701719930813775591858729515063204679231022108920793997287097757934492579184515192254662989810016414651365182620813489020847722539016527489515411669938824095292781340794126583394944914452152653512253021992632759510117957904418547589177692689892893104502772487811271014472129826816504415632815662425078484081734586154955928944525273377792279247219676597695551870421618545093590334590790398255373495581991025808410219028830550992410335423638595242421983391372423162972566718298851522001103295571777071345203944098650206910718961761491969604657931758119879897134401582980385621434594130117629659564006109689687406320905819312117783871196348082656347691069384093251927737281039201134766026226392628526263516844062970091077970391355817653806351306916911211613660875702276546168968011618171831892223760540510587399296520236041953006990585898491723609811068557148348883659656346641906733803245247636729888827738860256045975520925300742337422284225484581240941254147797736617667781211385175384257451666239995567307775837875998539379930928274983673945197992097302778268235922108386588265814832760237502124468712021982533309580303232797121350362131741309078955972200989227558260824994326813577957513748911005201459477636788286877368823117848234802458976754207667777200792650293416492201094933815420564106745502751214632616368180539716225443657290684300741332753444374905867081541082451062027952008798156316965930243813855008206127528340947377608085265978802566599015848914706416647576890180848950484403739603390277324018111265201059491841813237771107631978287560899083179346912859809316435099123459433799456294132530550236024390671609854502144698799648383421850036138060001563226173560657654153658317670321946673510016486459842853434233842032187720093718761521576273050819829331177113769962920274274248377906096166707200496448929226112510018262185428936448269915598012841125778506175714658606393041830150087365498342990030327471857570407232637919532326884638085964054221705305384554565435656413742927341304178110671969732675336151548525770308881423900752211831558926412503052315616405178433728584709158677003675719050896166906309128597127416867372190068466105457837594975325257871034119796423300604292274690822420332855000096548404872673859246041396890616226160097315464702355102333306598238377330185911047558456518630900529462206175786217348461886544768898113939538958935630327968995481572767703033841992092903148573033833696492086817337767550702475670813071851539507161522229504963925506851716184273065984678595711651284917090741017249125576212804186621427879100661024717344257828945420780555210171903826731623560708137575347643991480211271290510080772865006704970721091523994350622572186244526047972682223872731368689318097035776460174617455248427444471666163443310487627797313231212415105178193309297182507505651982149593260108395925717802175307489962456470934423532639151662209620075605390356796561202376727640417984010590262304872656329132009906885505403441948101215473426107682763213093623237400132260483661164737909985133663945418810939555621932208066714269490291944218591808817207459367170286450678615804146742191602317449084315206808655625686998871132887049541425925095517574413137608552212351296489358127384865232166523614313849257193265332351849814486887652858298915088050574511290591381112862878430550204106221675830341032063403770345643958718029898061044560988677495213388062055491815333187156729857937478530032207216888619800626049299051249210478962713966998324146733860897980788867741713348448184751014114717290828743604293364761340779286355012397351323085388075893767008941562748128577511837623172910714199136054189972795806473086903904586462546119118909876648141416982939486035698034253413821386948944403133712144304101965479404789529171397648322696067768823644468604448307986781949735734795547491960301879924419813537347434611100350140864841628567007616572107988648396201962327028510632401379915107383489348008523233100586344318178803848227838044080196831363424299133243970983614452404222777981626521813026577061601319112607807194481522066954882154423537852083302757838480621322681133063974832331108849531500796981722206673527468428874462219011451224681931701552020870415675043007503602206520984095770926644613140081012027099013873536352521259231760658476581470719904784483132813485425646290899325261620320475888185849317153834012100226922292710462167262111890117385709545727214726489480153400679507345459201663165862843570673398841455404668252395362638433799544753553155597953649793775586344304464812050055635351776512067933515327873284020372797620201828297069269481247224033987320248524058326959749077608541769816251435429712438893551717139028164129201037604622553671069870817375084808616875701551936197228381636152486461763110048593669204028601412348003258138011824067563086082477906030240575709040300054748050073969243389912844538889740011701897310712606057747094969203695313538273633465029762434760015592570976280754917403863431167606824934134468589230496598471578661759294679716208805606285238852651951680369655977952416231472300929048433833024283889175387630512262393058459078796038405795125845260739339368046771482197199985032158515636058405915541321581101108291048119787116783565310106908895122054229990063183128313028838638795296724502168171102578580503160646527107641489875021912996503567875944812822375258820914426029713999021340907276242767810184932043332311127605313510575174541747278390645944809085424980220931378315127074281635841359988511458053920985939152146868437055842613275982507034374777555477313880251738861609545988641614384805269347896349084607972472230948013362261242065684835692194460356612601229753307854660125172691812545369874625676995386957248794067558417428558706013182554167828441516531748056133250739159306952201319598906207151690042747101445292598190766000212196592946770933007761275351857579148609367836224019001817448419184021810184395635097102931657604404443719574804957788672274487471547206389939396383129952454965876346304775857199225218087723069309452457102297582922461766964650586084532321789212588109171283004408308725709773442294586079225712460936030034537516206231268160297492308818199875115616500841443210368559962759336049457638761405425177474244924010326691261706589050772221512277185655881478770066532381377661418669343027019826682078359237680145839663391981747778384529607687422569878841044814136141539691929474469968801383579550674058070035774140068915448869499960096687802813770465732238377206773986394322260763675905946531832275547926595279596168557604357298326475227694871490514808047718449916314971417983885063761824885383102178367993618813765631587196844690181435717989151737265475115797071733168534298702596976192337397302613564310953162434012299482049062287912751452530725369725308436066030490463011266697301225759583381144403443778525565922014160968085167972981181810894385405973048793202946704086423271485163683211962503089105149656946628324188643713595925150493444411844987198305165883336041163958608168560403671351630254591605420947020520035017151415371342039725658670698892049146712223905695551682663386423662762080754781305108752668123782512087328021181637315808067473457238896573304038083005456071345434711631131763214687374946657592425730689314086093243923543681952626058195183048316747969895151374639890067149202273873774367323374794657504392125789319577115561545768750180161144631601636242526314640168988374623523515827450639585057848977692189921400493616314874709965463910976898598095220550215436737435462331570862162310673558006954257161879185136260579633147770487481823612343989006368658759300586732684500739722479153108620211639669559509136961358516291289892911450153020494738460189069690033780294295126729751157704014051051046857606534057485694092236646301696726703963886867932774822288275422846959093827666659763523389896886412230562764375236355070710230535812601109529862995532708707116461891542537267702160267116142392127442492150676662757442041918732306942489325024554521102514095949590177555757730310400618994958920786778571589000010270009612878734048160120430915726526574532107874206144516292822547084944386745794686255214563575611452263270597971873185887992778799432791961572809282511828592578600514943642443121520842294909572788806479097832008559197827627858101245184769481824700209619775810138658269257902242951099394948931382556199248142662931096918684379400593413526414037347034951052297866688738942278644578604173783224378030267624085492971651521893501784123674040914814169245575936139903251999314959997246698166738788978318342207847686101088128513416158695901139832804996981668795141872350761689040237788998592986434861732008805362978448878794217469178892929920529523084647476414348816545591240464222527505612392375192810690088620295347485526957968763241502427462827502203669117580652871571977280533542330015132978099395077140441109476842419447167960179541958179802768631367255904325087293070571963231777961999939694626732440336757175198548308161252682345666931179552221418712363244703793799542253912808378530390679109050729122792962874217542605641712263864567310952706679154590679075935048371464301814634693276608261000691226616542043519555503834445655462369655366249568233407828868466804267679218983907361355229001227576667172553246960329989365680693384451926217898174007655719412990341473766392679586606843498243570499378924300095036995503077232340150996293162767199814029497060979511007049385016393007340954449662617520026160130522807311619255994936050683782849626235738491610363228196179956571910395089028511262362353684017662309910860099602665625272743362053177090912939867819153681472961136691298104592954510693568282347028511815153732882189798020577645025920351403402615272446278891988387487458514582011794629241913374995601271824186424682695337883796693830939191894797829730982772836472555228849524733135625851192947715521059393215488965700214084700467707687395146943713984077185372545088676319013980076327843149869809778442408169479970096146959956967838620127629314686885771179431274174737033447016304368822617341024268552758075249816935958931838096354983086968832484952999517505561153586778053310757925852172711341046944996274098192274163778042198136747642738804159614447581052619245805330856775768693847497007047871398376771650495779182677266942012065502449342838799179996566942287571988180577721888482824830552630203575599552651793414227147611853438782709255112084979424473780152858072236467074216899131489101111473968835351395697940354410391506835045467804784999723959008014605139975021671552021010980957867964725452266896689671104722230124969790795920939600769978983304347604871956034854650480033894478939691266510895348566039449926267353573547325060679280387085941830059831498060943012744150486972967921980405633851462885368498541963500593852496329412855558037753121068010754601101678515446962283197917744507380213644699573752736467577434273435119675122531998638961810480917404486703245066128218147458531904868467175647337718751179825657504600059814232950418382594205117346078324501457064036472486311285473479595013891237222876335215607811890225004339857160217274780190170356687769902683353365185661390557982567634327368593713643619718114466116729701907630898439441049832879410088239115402837567855303646431857688849925957553515079897621795945520603581512576412500535643927767601963012213660630910950728402509797725941136038733411779616834062347800096065079574957899931562594855992814334314715766257913287239400128612764562588536940692701851818000462207519008816191183287010582515968210159159420015066910983998329465348537670356699862622259960600068145488283531804220581908657517669653023863713571766212127731577211184905993928965329700212823779001185732413242913081270464834581813818938790041627328099674488436828555706231587990184036555805309791981368974700812053661531035029466094999646992168449832990401319566758045556840546269334314697541832077585615135139651764711156887370563969329491947352751582091969329827902575697529087529656953342353673998664540076196524378335634962281384703610499192069554611387504878737438729584194877500873976130960268696921280182085644027122321970605295251712644852477704453123915667787151746315653085258754042084730792958889329747423449381070890125708389935676728824502227108324191659717172419073293323369416488118257970338457694200524166361675459871298251097335268551787947870831000875952483967732447574506514016324145737322124401257402312461982137487371314115359167288475339635821847466871127054507102806380965650110676935641643924706284522869261010479650112021962735275740957688501989027972061080293858365020660401284006410735976176454223862433595064031587300429130688837091243253866481616154995009740450555812169376773921611026478535735829885400411547474573690667839867307366198944360410112272257040713271633364150552958098052907402237665074870128324423695344279080722614354618475505197515262969920942162291153623554044678739021117705250059582207563682805206980811537613001925996682519451727757464252365534601185169847648806842833037777542815973815373872281192296340254289916068152789393420399699638043715663678865818089357951319348452519548921065153898148922747758258348414715971710645265297079716575691001620324186986488442793414415643998697691194622716967424588609494670115797836164010830691543208687473133153944505030822750120872847445871965288189724800583963979003238167135234546008555109147125297598099552564147830403456671720789952487955742188050806553326484603177939393477947219653464240099345683181603457252163621924785764282471299229955892872813069106665459482219056069454899738909896797180968520214963741790761907653958124464191788023399023517668074713938477866995630701766508945986081113159100673551467294846320802723454186285461598496917935650238567694725676767419802935397725105851508550823174234008626798984028205236581709535645441758521028538212575606158337850171785659440420705016416733190273172717008757610112396754626720343671414254354198866667994136606232762617116984059080853399714706839679431229062337769022061334100473473970887873821654192719152632363868630819510476911453446862078965623458884914249115874106590231974615015701923136625261568322689153916254860554094439264842085250387549673516887077057863249687040690594774213748673203261736050886706742893563297800563403297606510824127810464349610744958653311365112426036165417007113513313259152560818935551466925736927851064692151395722092512840518492790986515019957981389924660926424595046069231805209878496045686575634198791446732352851510869665816226851523637341007007581402025554970090504186465078245411102985335560498156400267000214054703688714457527615981218270965386719018500846242672181012573795811129540609837884469949865900988493258466613469350171903035818701562379599164140024179760807349567420485979629648759191509513977901043758884792148809356442123929557364451469753237298041596637552986796329094588000739425800094541086032220767616566258415576538801153725172930283873840630745582905189178591177734542347462533881844668375209466080041937823275299557360002901943063588210576604754071077452836044767023281101409564884048090100507732163729032582912328368545053680031141524685977096822107346003776238134960289610766595527561713777874940633547437092774343365761407782998217584607988847633703840246666395771410572984513539384753198178588904705473106827892334382305968149965087411261972004280175545945636524223013999372680986497367610752142600180935141185264316348965963212227936190397122602392701179891807111133012194017640207389579396276795394650810679098760085627283429779134117176602434361739977520262305747731247280869005738585159558165355836780767086965235817263396861851066209223265192247971220685391018583170936892494597676558062197734067262128119076178526079427768552563743074962859923769358958928310638392538947212511697097811739467044162182513855521605471493170027474573666519344094638339019775504448412164487510931631523750187193924024668248414280238313467073008944077240620338227007116339654535135707456081763294199031890896541795257471552086028090530338929102340636031075878674486422982176301018430896926609344523853195403616692214765339679791291189733103026544258889571416373742426132827428239090338253851855449167372176456251282572040177997207471235209494067672420611212557930444785838932093240657999584586431104911220637852639809751351013870816502187819554701655794095679524519471987601871189793659308752056663966707331103971990079689686198602332890202471983095033221729472352789379304831961927283428547276310475695959787261664736016534210203268201426380182859729697958893235580514456267442466796124730237998732993685170078751570025584773703588747923208841008577190241915035756738137949503077168725026565344378211253430177945037141526678945977138669959630247482965057011038770744905285542048719065235655561245073382313900783974447420702668386252980090312928279484844509967762215152488285018341616741837559803497950993002083258226013862506959496648528464597023617072049285491656676690745361447299769987068817145170710381911627940611056749204802644959720202075256982363409972276721352493004689583041407541068883889566806430344794354918468011134394991296054808153507836716552923721661927522020996654907161860454961379457654842741888384146765606576444432795022044344392555470341422951252339655084864544982064989104327764258224522721793818203571795079406828434620527711228251379882584462454449945267505380274794116994204136454673823353605396363263944334319301755219883268761031859399406812428525497429549734138724901826947862082567818628141379815335142957681364203298376849606855037644680237023515372638918668554473143368162951941480740597603970658481695801670242263363039242862429412973496467583515355125081101372022655474776183404806521802701371282841754425554201520122813742643132399177470760536596971133666601682116948551741521199972072133516085271869906024726232724207111416266672144642106369076520324763190183112252983413553262917369673199293835743496473573211404816741526145232714865350991893659581009762078970435948233969591825386629642924752322929393389083577762636036824824309433871353871787651307162090727268111577873344282870026932934699062372665679487083950780020495376090364454587346980844537716071278575298476780303110450944946162955105672050153822300848734423129585382737016948906186545443929484437399338949917777011285418800142625317313312034062626327271621773062072361312294064560721324019612264698039353783410368022626706086581532229657427682145019111025123327070699012157302154277902011438967117270136982201671365900312265836260253010811496309945941549534946433544427629235582796506048834085829162348910778281470312274668717287510217245738664669358995518237983664216225647962756870669782132920553045273839454744020497907234656915440427548932004672993805327964983878137950061219569726830535086319408886125007414125699894516818514393542335829379181151784244509874613625599451934203764178797486960522488961675906901198194833228306389558219480316542521300070861707636603088295248799473809300691851869408249728495491380507277444884079234398379447237763175780022129493462761717235744193665905384625591493068031139296816414460503089668465856786766217803150006692636972552641555828903133541205019713613113077862443530137471652106369396660649788926661624988267489084426873568748352493029205135608585019837591787382055003866754323556329516821220139493513360426567564991562020098692393025503630181872536978603077549990994509680982822725505269523726798616863547798143026989039844030018268429328370862640206984458722339728725905876124537714986491284914796383979948762633975456065711007446749332289898620529698001749475890835607232120266221013663339748617531741765095061080791479873741908141773357884645790361591990141468895107415901695695832235632141846921572590920108932943420165403628179217275755152454554956879553099491879043398963945406422312653432061885094133379133426092434539369236385753196893542079825317452216798044614771184438679117463562704721276662806404877852933949979646089085511740127714836492427193246384397888675772103344797669014664104309315300505008409759474998871079191832888281392718338661517183227877630988583050244983427862893990397651349999454416450754634974114450453173274193362334143965321310622075704213832808936392027699378222689241376234585260187648409976245172812570703477368213111869613297256209435445429080614629861160378511354119681545287509073329705034019500304701213298529343684037149134602515080391563237484637728557512266749745509159509273692716354205489451006539678216504540513668947786127969521980112043643361236340770424511446142549705990576446896039129036972536458641435639617167816625878564059049991526696862215856477833166154344965094439470474651973077424343299204001589325243069934260324568203692304390594697787334769341775469811082829443971544519270101332292956492966060443399490364208010666875471387836789879601161676905416924689288725569263863800364726071177242429800717735217767311610638527902144311515387402841770691619279981815272788892622090056336639133406021315227550324807406666682871601954192203939926897796246763662565326196803821596119622634348167765197715823377368436882540610280268197170145266694228929970484033113449655004184620655610074918249151390146547798160437917665617202482475973593666071191897707196523136112823546634789341554990505906389306906049077898211555350918666911526278438600548214869478032916826601656491110609609445951576766579020253241654535656271098583606025681247805685287648944857330082864524096563283314079230272664765589591236255461999692240893957103596789602165206639795761017552056022093534536867287058262236913570078075138497627008574748694449007509860948758222408786462136291462645455122299773551162734164753887366772330930639044291096955715319677785689133788249910968029434145745735649922349771752005777947029089600183511135993925047141860792642335073563971895331169536667978856019472182339625709251199927201658760950152479882749597963708389778526146737711617602019427356234573752049419436556775848769798908979661215296940025844642446123539066860404219728261892763637608987903577523798978989247200916567154135046252896044942326436073129006520488160945681587522894983447641120617012916004743496887785402356207094087570063367949846376189395162927734908238936558972739732740936499829884157348463718201138769281917300510489233809421008624283801295832093435675918022091268460350609098917938862380908455939869559231351649919003294190744533148391979628014535621655294742297058990461172053429601224414953226761718677428784761902576693320653112381513784245894203494104952776718754059877696206545276170739007311601948597875766927914726492137206159206460646496318614999007010230625320377917342547243734425087243198806774645175419425924461366811818633923681623277843371499765456201901661516593484405951543583541120783148841314408473630229291304794824303735476046079508136679398288171280218683174611269360896069862241048142476270719299071039564762436475155995102808939657561044454544558190930548104978849661331856829479167670546501051897974141675463209119063581510277761286566087964241418053656815755929207868054669355876265365493677920137822513582938718148950406839326699276115857178954310570978419897577385833484225519525513027288623445942293084375767663630605796630918336850810948311749383308055784983775930994607419774051203918899888977093492526806816680462413171951247137180479413061630997226723810240973523478077992600017625396804742944980868098699601274038044950765275686240298433989389380061788947298394731527911558536484643172696170036029093324054463007295147732678184779350677289879336914737300585497820610150946928242661359142764408468198367807749865536974473943311738294113546825368235128665574368154015868488614398048588714001095230165925972809819210101783189718771242940908331364896107734653751263412991141176324255628414165116707409581965277347841142386149330729746537490093180481831042248307055809362232299092678762480706059823268784002904887115423005054950376317265251624117611693671978887557413668472171262306188431688365150969828062419631186347186099573470399665292234042334621594016075258953850182419157734740649758384898041190287766575969763109612650015537992849423918289864183678750314465645572574374379851565242642164353019723325683533880317330604633536903990298039541795271595865850259901526866839203975134516885813236093052775282260035363681395199070809928029124340939043816337619469606474959291297179380223556899492769880961354541883073709975569423401979990168554888883641215715630818392089566265194793886943836147928224423636971747013301162452733936623605448136096854150187008660394054717383963663386249264815279786518979226688937345662700245505624885617847089722354221550747203365858957166694570503711854690128653627838279355333953680839073722792026724967745774998024863642003070164297639789186560798882695578791247862280643092931261789272277777959789576864546753921089988758092434419727739627506660137807908771375646308624169883278214008088409329005805136137812177144999712842886042934405791416274716800050459431829439143436034388191397045667108855619062381110089977476685191304709344999962579512695685844489336149482175158461021446602809922361118942736688903546971158866699776462987126958396831656684347932603015182409328276856518717370319916720684171027490385839954755620007798981976610076483076682431033795933697836837308855742877885655137198453430405468103706234241841795783456443859117783318393603464524429579208313783605306996105913090552498146208624410368554257823946969414572653317093634676891328757489102116579414702375051485064776253098678346210518597725304658159530940248790010712996121277541389978197992065973024267790849193504349849652481493006465219829881264538175042892955578652598315385085334332949269933141739376640366677520417420080100184847196339507801470444059232385344344790935010103986991976685927130397581190089761191914301832980954919528429748360171643212310951228874288640257326268051957286307460092313184375303849524748458889030502419445534345769363565912222137545590487772514090680512559343130412988900887850471608789624934336104089462619561109865237712107581336223892424748166154937447951256643523015380562794192814198990555977456598125006650608289452805979748317476095207818179415864324207495473933544024797783660100736230854252711769993842086302910587375818420826914300706276117689129548587136065142455418244060469052541996616920906661027950633549206788732760150360007565552643676022389277587282496857604374830119594877080565697936483686725489613057337108196502378974252100170683525569564921570785819387319210421258319999259666168938602543741520095757651240740666581532381044427412100837728942520756805216288481181613311093228476530735503550264545051020319481880737748387966969077758400475046045999672646600694061816054308437968408740801000157974377335839406099422607141979428036843880343740347579619090670185959217932145297830605680355271278996584022074066595006508069975794592749837424405829294342662097164045913952390870623063308444737464238983278124325090332757748980868249196523891100814893480833144295533936011534508395504964858386415496779673185900289873915356523134692648367785967597803688441043784474685254006026282025507128161335458363495240004308158837927074288744320089196777751753636664357091153164206176471427005714558146558690088062085931529089913036975938842801931700597802362622463291547817803180180613215064481151894741852247401023089952313167293344352636382017456201480056143977849288490808522613198901614830319470831709515213417800142379069769411781654885040522428318554107314336611954010880738081328393116582334201931234572400674870889732946184185934733633323888220309916730441690129765060154302838852817763795847094450501699776949618347519890381872635229309248441542372789052069469336848949271309404658757043652518237886137657172813765632821600027407461654772008191834752893891610144117786788297132393956169323360250246082259812198066910994103389378324087606574475193336347839963792417634007106796323986243287141516030539072166428729007292814313125290151027791864340851728347128907736896334266002392911757761747699706661006289756372479529195754826722098985825402443983218984088699349436242609045796846814288583199510049049275663513669462332278672919823253688193959587996592906307275776663501975552580193966606909557077211312592578680806121550954959207591181936575993217265841425445233143366538241542481146877169576547716161376336355349769556282829629644365199768963759398462022364930818846799203115481114438289739211362520659954010505747563749508452187937954363210137473962520581132038167300310433484167518911418442886621225393227719319677461199408508347893200306486922405161886467174140522423336415381550342967209831614881480894838776380728062598702160990399285535392607495291058263867549785192436575778255888742961811720534661629503286381018102508219867447668825216804264245752481019324342864621496947898560394223558204451055520401240812268479863486850220026345586866387924725898377568303888267033642113823794914898171258061447804470837684264955715949333498423537182551179094391005175126963838380017402804303799576501162587635140739916849060507819862143657331358028455721777689670103558430287014556566991478787270325139573202772390014594839504866428993438495101921882945259275065527507161437665515276835252594920495596040353377205903497985708412868420808974378251545409577872597467543426362578940780796509254944316121608726124349962735588501335861361985960863251346716016832555308942996785066577873533591452631850637277152540043776287775149463718623646768951037954425962466738192888277012476797527398147142390687374492694719858967732082021163315244505992605745622304286365832053051158316097601593170974488660981031202885119059841892886548405995782100568582882491959496694600132908441878060182538001821927378259162433828359116135672665569842764485996095554516947322922447358174561340647050057650534826744274517605827614150853722325869392060670742142811206494438811245661995177449687449100250715218156251003112483734250479047138786707139569994428553006585232116100607248547463991383979537461687534911090490074230455557216383587714425955448415966928301716658782760708632529604058578104402087226196786194290002940703897835423483796477009337621885901234267322061525717433686926855279960481403979829851893990426162901294108004352946610413335860663922313049929541389362028080992570739259348096535750520503559293521022591185458222993731590432942863920690115419159427083260808081253056177806469053956837795787612647273669413747767393484091435270368505045012696938633224028621817220830738329271692776838046301372847826860152767169896344969356324595965866538365071323148543462487184148407356840602557608701888179098385443552007357355077394213658706364295187308106528866303849503424951209750623958784343565259246534935319476852484766752512784575747252670997740365547841849144348110192067911714208340451333967267491256629466123986727296501843069129529168241205817004484341476563467389083919296709833910720198909758696532639168496137317405820015418066158588667832313069980919487300898272469964748035348160726240842347500016319243367607680137627265140775699236746217454427436442454439301792055277428639302753025278444483015365765600879731733511384201567888028451386512090719104073880355189431926206257281921573435833769979991878937737612912187733225664354331399343204951660155632750497064857822432834946955247110621201949658414746171951247688900019109814571635587700326082708798803342122811795930988518944426260753057379575725537868390444914295297790955635394995306326245603578900537339649973738834332981868504926513973116583566559385946980642902325432454268155361236391465888185798237995094761387104214793299421055159710781578783060537734675882513144234628694584543882349995593373312728582754872776049690666948377141452543264761128999911811398967252385378398589469723079097329855557718506152967506195343300840236049969124319476478884765312677505788375620490961642024605965936026153748971844218285184322586755161257298561600159043213430224488225862062342767785604194304498615700251186795002321395759533788703454718231099746512821571776230066463298842005740871064139635088094115866986494520077515823065899079263893026003893210767874353800432761723541301969954012343753668172731879784130741605243792737828426566398025852995229111215566000541305225417728285362681397553684029608341281794977904721489406479653005951132503932725874650566725786051837758021004891464592372791789879415437658309949728608739167338493090631510794004296552195795194263476811118359169725920879375639022563231404993939553012353643778500664350418643494324862824773031061669416384144076081601142544216368990655082728756821632868693263332224523236268229213170621401136647476279236528963825929572985063999853427592621554391820055780947463506040930660222630568729326962147131805756267122827744115863560077093600801340731175103683050380002347419027470638816368933007798434487683618269470114955554381489901214163778929534673346217164252026669439421549318457741487630890637451411644657253128819568397940221665724815769454200022747012020894960130772415115981807954215503694821925125491092657564121929594964036152311132171696178124710025209327929979010786988540519643829725503446705056831994984327912874626272222426571846868513917438533515093191489497808680746614488044997334738741536079413153571223423872451150494576431404367630788600627779054425927765809853003676746203967984882611804659713257296299698348851497944804389671918840377181113532803981665573105587358869709535338504330281617147783781645233882117132192665263635956790478467372426026627064269121601584215177015822685185982417619438833497639274091960367381484737082482108466927481781233549353045248494089331610613981158091479618342176826692408541037043714508380183179527342292975034820953223592337882915089682377155465700373628815110875724119613533504283733093765863445281598553218207601315343573024769571244697516106040645261254434596279731109189105978700573137238546041990871708630022382392793876636283046398020454294098077898706389438509489401245740614160764136010638298456820411183339670320990739851085868532515651282709719377096386574226785636482146717487523603988346995238265443397262066558726161554099740155091080611516574269784750006128344141636477140000640938732506100310652005331140477657126602634563681618217290238242721361234246505610723618252284308921751318324950972282712712426374557723050557777065762526031115928211111486239677072247379245739750550428502831379055498157841919054959636675399590090583014027008149590861289007172872933219576552087926582534075306184560640787787828443545993651658875599930546379686328287968240652124434733572515484601666139700857170410190822621784550796574812256486197372066330149497285949614368961335779597688794559882214447640613090427522241307409195018961001323403990272786419629456027233446345221000374288999067026576670072642507123014197734034359562898261761673208852155242793594792696713427310876084445256987375911239808024871082069349695790854364748955797741274714529964100377844316663883691476678720703105551190999855922230310090814411737606385305582519128757611249867700552720903291311041384868854757268873159983862841905301902509463962964440923941734883052569582020086944198717937354514071978748367538035836575395361563636318477481796713389604487395086467974368923828350105737697274008373187455879075276831525210758708713029067355283148172449529150313653946572314009807239282329576692129487557141175279390957227518549486157609516622537506158421279390688138356395915936936701194058187147132126579909499704232481994732262281545126677373245460828095922922295194249371361491083002755431605657885566304363745877597156979709783512129792819917601402719465353556211147351733681178935805174591028228390243834114438889307226880110703271435842899284434672453832122560439993234498206853776429487722375480227633876168089321812309741727840899072865131204684078086274867415406827782252848188195495467731786736066186272318256339027878661861122711365668475904275583869238246102866005337852533514199438634669439331050710997162975948092082171202228881351784745036576500730278308360751416460710918479856908342278330156627433781314832376125971348594446504374881164497544952557053311178985872976450502875400969447067184133651317115051191225927383128232465530289597336697092564545004988363877641166842675736777579336192999343140042589533224238751404380930116646233012306157106904252687574998694170792517079203557896842844190278816878715897769341569148951860314359443932164211044702251385290448813999445473663049193932043424518644902601855097249097830554576495520208276911038110483263133780330227982441951003246073999393699963944529685878697507951121453178895442012462353188896186622470510978097248358014054955203480363862696684917146202786018235797242332728529167629040078032858676916961519953014024142662037465322958687705353958354479250818811244471331587259504918287419577191339084938119883392173363774008684766342340787440112932325370522564466624894875793100071083707985985447370889106382902356068149187062352886391402996991424332601250989786138805679961587961179767016635034617935334710531462648202324209717571335895067361989296749578385388259185750839564347819034236479762597590576736713171800991146114519380385120867845832377983124432055156965826824547772077452023948027070761085459551839622375275715725476347701639678872820677998533408880298048208309348040131572718282818997067907409175271472610581890781615863959792525033135783673362468358993997425117849221827232202365650144230699176179023653049517624886413302671524562355029715180864250720497519504887926324420640346234735191743328378865839535218429799699270387161881516239876871056515731071649229719773831253048036845350166373720319106421842285605013073093989210499421272712127310507517268780228136996696627181308933085686164995960231057160794362127008715421186419143054099908725050382439694586982238628789184178066045842966221650134804317230037582199890252463361145541276293090659934994563796411445220947870308358866188514378920369707258639875928577214825867371605034844417164278381702483065246047226074392360283598442125056295244393926423902149880736857208708641009843108791512793100595702998156253326737111384244529484855444556106423627780387533105987743384519229278950779293245043972600078040365685171393980304770972760095771001637685416343803207514675230537326336437217009750559555249856018188921840327888811348965501313003020167866997733350132434020775572341126140404605898305142624792736336123331185935590619110856623950787176025208464507361010111564584041597119373879912955113858270664744354806245778073307203506090532112486659973386852505224422090757813818810687797393664384243083108345336705664100641763514785259431835570413985582336778550888139280251899245407813909674859340215949234534052711617688178014836938523768263718928433555938225032165956124341227866836981241004662099720910111753710561006605552485052007034077400442049024671001999276509207684808161422788242732404159252739677803415632092226515963431971168748040972114226364823487868143809668868628897377969855931540250257697189591104700400370475858297105486737862650689547513028170982701099075779812081099325146091379340497600452998292915094377559104912672789257289741013694687778673537460543928611892890052546987665766290115985141422422424142767883035110151153199401121838997463017037136998603661942489443422286993300031813598763578315795216310544610144248702118218168568057983318673945237027751512433063682471346112007975222216535246397094899185216454029680393124192588357573258001826299953509308805950726234332007682761465906714124139558247262568371237100316726093469509511344232574022679661710938937898604502878642266371769424462302651136112561900207236125177952875484657593693340637957322749962626150933739805151105701546029897344648799943782147294257806596299007703198084668391938382211083332833992236783876984809050334312099172105779416893088244099123092416038774523128960850513771789696282884125627386977201268557505636043995593266181170992662945916036932500134751927834651290573610046397708670030049600659123455779805624862180871982503334210591701006682715574348595487223291485031619533647313292876494884299396384622247827539028474994586407590862406274770844666846385894868865381682438949128567313332875743549368884173893368468891992611808749188066810047958464164106537118163297802797434417405839199388011925261478977997407536282700862521117005350827761281053733250480486599015830187937936853015386503488765201983984006995994309439339304795668860033526143031207894187923786265895677494585609352414052994822397652071171949833285285612295111058502865459091149484309034855420464106314447350513174236112307215985364482311747734717703601540921235270982266901979641406271426853030743185329298679272559773180801587963214644487417880050614990028726240818597482269315969596301488835832078527844253385226150949829574356099421959642509620878463709686774080282767299063633460942201401356599544968464124466915106512026377833706457889590429605721909092544085456112905351179560454655531786352260128499026542642696204201955631753730057271196321981423268526616344583339483458785444254884009762706291704041182966034190711265904583040289692595819663223207328205515096145363615177856857623849119796548135377610058352476938149577837538953670549871933999280681788016035046684351939229692223908179778124194093036941049343799373518583646488786304488768471652557083751330848171285704472726845890142402045751862089153460698243191984227783572545441211112285199424977673629091155980333296475045744463451397890600794007062381289650482603607130199552387925254488696799990364407441593351876381446895960507246901503653589054274492397264950003178541941240788491946815268374044920031703117646763499308440257907746437533528345800908903818778963344117957501013340035363551636563495220074942050614701526995562224635746930447300946475945034953126520503265649632488436242571889870850728513738322982618191546257439087883263461267865344794735959751882779548774165502169892086328701276966147844827789287700030577218568101849262007383754071939419563063131651088886183677875539525562153675403054863111607523579734088638993339654141687658248006047519543097738394898543986762496300948885116756909871552987087134479505159592729396030312506622876444073245626651742288599145102152152598772424089155231632460054710568209146879265864444157313110797635730709146945037264450493834036690720686129287608111118535743478160410272395723821132870476182839906483726795252122758836756223003531680556165086143098618252069327180604952975102101578710239640065519995879457648879146652142598612377650359951596356262536218565004525324303909596717290105856142239105889970379818370194519809086417448400554106460989797070711817901605246285172995145093354686141543533426278630650312267727520834892401796578825149744126460724026771541048384279631613174213983763029459210070448432536092336733268913058098208051564773612802254476605643841643413925585587653946454210836328456486010642812069247777977263534807851254188423930949058672257422383894568383645299956983205389076102674067094543875440235972835200343218162627748079511374397738786643456310973787657782822903527408273964609579596141827722847743281332725520960584659253338478307568556519189743225355174576499274531633445299247567790850689035567620429513100642109219949713687933188930589966919287172659682080262212398996830182560615381026587557001666748449008114693139571479342991974431848027947978820811641643014533661963193107991542354136794502102375412716338329168819029993813371398139036998042563522321362821022951888091409804583050085243459857564362484658936505812570081049741059219772872610712016716959282047906713995056896665928321941120580999244281284979331050338436554618190990469625346804732769366088960674454791852132615412702524968097860651163691588233450586957053235730104929551144251952315976067689470598911374841927601953185340026286294559033342075636636259257619635678222746585624511930850212705455136050031617852022112658076711763841694478843525543821146455762724099882130844124026220897604429540288985784143620563297101924511588387230656067397302146011038118774864373920433089416240359577158901726232500690434592356535275810077923200122479737872610401065125136237168405738545582048943011684887061422707387129541170174927809914696060082803322907644784297088652641681234792827271063159202244748282756624193620394069655329320645800137140603680884897824475806448107211470270591484486043019231190958551091665586623716899770328003559637090464082946125869786819404019962586679445107649811285466021237524108480805567266832888173565771505796406282867920213049606073043666511669582263304286331509012724074523294991684353177958196364758800639093996893661160494687965504186075827915234828536874403059117645240630330817364474372328699598214146856226090458134979596547993470566834188643712127288079379982719369574671439487493203426750458077995789832227375272332159498083946760881381439764752023460274577959970855002875610646411445881418089799889161123725438702758271524011268947298732177765395785449839686412432966768592692043988071339400146873482287482504098242434843756461566830079688611561011486689807576920020692025853207019391623429242115463032980941498228166744576117802984266914510866641471665078577657354514134816829151046321232826425321077898670652097678441605386590525082863786812078789163181186060793953872780345688980006946138298400280085671040831012894808675143648248144877658200166311911197045674420025803936186487439785534193279727436079645318805506850653064411298908736994824923826081120048053823065943630338885008194289467615960577717924663233308092087256553891738293252698387530186979006672442801473695206936709924562918504564191542697441154567297004967245680228401823509908446267795931840907653303428406032086899546244018704676368447369318308170340489582046513884896762512398657166979762698806773042349217926712332725110151007432508807504543963284915471825741093926012431763794371037088395735313159114064816018433273365695771441845414195637275142044166811743779830364026070993295542492684854105920610693719922675580524327344715950004415650519157847992273325866227545628079034005317929357597560005928968337480554357952799774292577057014101350366596174038515794067229419224966725360413150695284578757365664189603138907271010340099014551203539655783044836490529915206908165717508496309048407694297209644110949303916558851071273288591135753737224137862126315182981735143299612148594566760890158009430195330320478666856545661070669094795733494181695064431932910092088688207274209236224100401618290690423711958357352728174617253946594012099209979562360448073213055579683649005802790612104512915389784961741935152206768283366552169070100862678608577897139205713054508926007026328877870029134659384628188898192951832211434887436938706191679459508195450381379427034713352252393968714906122797217597044093036084555121427059097505945335497450415800715714637888487220946641015396504598309027741764491891520358470916521989089882516097372251169929192850822301573011499529233629716993465680217095321531089958856809522602558541543415829079306222156377632556169570542121457793575263710432069400197833593599877373844261101223479497474318593054026195824096079128582871602529825283029446564514249978546799430437345431663235700848964152377554826387164136574845480706909832021565188525228524508085477965931103681969124303330286475497524837737481370015687003002120572493787904747981080243905304926576016538717732112564750838557707375397510672480140499994761820074082307255127046774706582921849519018714991714833054462975187015496846591745576616694908296815549551839297597553044652208128676900353478542787481062785480414134010997906296006460974326395547429004689129835542825872522240917072432446517988949343408838425874108861074441243775680956553627847056214322042934161104196224060985607914846013565053936294006793554217793090830564215164996961154914260560309835418633949771596497693634166282563840491059400447944337607877439564647350936089579650305088551555020826390652952596603518129920610570408669078105275052133924214896509420112505368058960158328018405365541050624140448666459514417081218982074000445039767957641041441781439775779890328858700751249282532957051733131928362816991709632666541278218309694766918846549782293265392574560893896563655708307865505116509600174156515814037817272918109328606297589425999905856904894399008521589623363444288550588474766857820972721081783615462094901146950496488602886222102832599588205724350609498102053063480060841044283044178246376047203524599466666297329795107502122195988449706530852417822180091896701974956556618963531526157742592557701046783462736459269010737390829668598447175728714616016335339635768217893325185810458259861949109957491981016003887436615491513031734454324549115773869970452387056148112087157892272346778779516437492819799943897929807252734735855397716447293384102158390985884985051021723476918959980122862426695611099731730709682562387586656965545478768566185839080615209346083080916296620656141391386299498817351794046497996846399823754362317073918307621567428211556746153053866752182132398597785703561884148485886972042210338785227121459446911774961853622788085209085286959401379323674808906293758751094576428751613569040828367021734913049677105565545058977731771595175439196383259138131690971386145911443075805293027091235036627628791117090685996174562700373476925396271232127061410790447295496356605133220762955828612606340399532414027518127523994357594229542371914987317329287979727713679786491268858049320805828927751262352322076722290867645990121740652578150094240940444810709484584736831218431177291531099192482720599356587978324626280951741069772836531033840964100071586179554857899600563137937827424534234177805605706921694980375059833258380774728130879134943649284895457882346389357112376454924551103033306919290235097499652928286542471503963373800660280740588005248844487693313319526922271272170455003026007228843762087688825938911943323072171150213395258337007759200694320990608996289648835861533581145131703231902742392026706018843649538448560789781661770914832667057244575355675619662241089761175755664951064605926004036078398757741738217441445051352953490880020925981676618267597907730064357925266262946943776952140288552579037578704504412585267900047124238306102291428132009198447975236576904838462278703238005164019321791732704032448001644474926324027881785839618699931625077561367397248661901856753823952410389245017918611582193834448462967745611641169922054285875124943627420857177421732380339422450110587536315062992309082200358902345349800515905874860599596450174440102192676674780202987088136451124162914628638048518745598284669426670589693301446248387847878735470256813738705565886859590190209940001820771619089941235034463538124858428185006623460487065683690232199106204728795135292541499025382394823023665304263328099697906969259582587971578545211361617478041200922940040868560154246486695824241522036465723148099476872796349810313094801618638558227214956467382432123095052411745458132210970742076864520730457563936705593268128412696473824422561039990386789344413757795936603360380560939067240348263652067629246444716134354392255777942919913582750926232880246922003189249063644099179141156333371626430383840311541468742818937246754047533467636344015183558859139624769500707727852134464933215510705615562438870505965798991335553531180484240521825129029353383004614939376107380150059848774258746180291220248945155697137274452239382206274727197137326113469007334620262923799928801342925277741139625809303138114867313353016214421344606677126886815619187699927649549514210440849741050385231482576107731011130848321736635439187527910277354650152546327872002800097748355691395568638171814917312057125754373037861743132648562175832896090529796116218390294953012271413128593248582285760585035878362985582282722791377389163396342241420314976644337824734459188952177810643553026280929395391137848981509263657104954288670821268151212222937377684419599823159232068214875425577319040494495238527621376781853296162152211059320365919844434204101007014921547318735363369390499321039869137078733857972684924168974948058050742432149909395926601773323579113634684820210105710292185695002055927980708279637082130794797676561835572971814903090987386865121028005231288518315948052565625380941017205768622402350671674036106819825311559476255304084830628834250605148687135152687209013018336754259331662680972912153193716307875102492512101760509962514281290902799532124810171460052129147753055315191054606742849786414778399423779707887717186962939230940045304605361138813086773306045830599449930120396240278867074756039174447075940762544237589057865328953767728965678731656249049550702232325874061181062167537598936877033547293480956667442773822179922804700961488482902016702669265596908193384900036892127336966528858917818385281065711637842450387550878018431376021034770820646323527298770649512644012076948391679719501271280209878380606427116942972282991000215743716936891599050214307511988796202734420605250247180374273672853610537003828109469669164345841386356086991976484247810886542624537770251444515765839954217898440200355310335506504966483821916220930751336225909067558184610395733438740401682990146372589973782526710534587640981984197708640525372111297462105923088837212718600198271398547141381115901880212213352158410284345801270588838112118965053507928729210189195563396861458045154800531538222244816695810597483456888845013400665669927955114681628873157955705824658938199294229987122815425242694265406035877102005506809343567304170880351544330368405460836838984744737535613529400530817426442654828601403659737982262263000468159100349578294422056217328965913643491956065612845099506978544629936733126264945975321816070971489726395446242470762503245463353246135274542645049385193849762421709984082619222488111809746909317747591030486851778180097648284938960117533296226902114805169465823758513938004531242663564207494578915359381799886361918331368226455263136394045565253284528787836443264691604757627217281319003834136046926236895683930310824963429145111791256989409670723820573322099049391117131696085234375940273869635277566585148324574276609013052145043833301012525287106508744699151439108852158763878348472674591181282522844825784581077258987302389130582865442408520877826194631343216952156866978823849955175942322905870166044816665291710073247271096579806382924005263619022614475918856889879111783508557375733772321528692843286783777774923912336804971923804047901057689084270719705138633613101185563348398866509228663133618956768140685089522036695507875302468613804607253152542835362455497393625012120534436155617901117564059911355419761941593560548739978561451352407813747341905852573216366894963318287902383306882714980377675594679340596064651469178207094491889670369067104263615743037626282914266896317577082049835135488386217030125294522270439008170382440350697425523463292901508089818056735279673035376548540985663638127239471423033790609449272361146722307254570050536815847719024033910533944570837691088533998820644833953796282911600532879827557745583735014430299092113758844236835808800844587418276866034989586407353800259296083169838283679153584562823549588924706170322470876709244955663436350635143200465464592396170936380012227742590702280232668601740473836945045139747985631457747315497005616954807455469013235811698671185139402660301768151046643013691415416916789160996945104112009495557899194489285414707999948364016719987204040383148154559869884651512158918334986110308460881189160248089199010205046465530879485442362041671111007932608994665667585494122701307137933249073731001871952834783244403860447760631178723617688803165464490634037209308876780501609630308152983420283676673285295035923145818004918854212450066451956644788791290863405574459552943315546537146683839404517508855242984146221072228127483298911140712643378652247200505479763499854634890602156860810328424628401821386536329156783712587214255418166340384799887507129875143592073320754396529733614621471937054427018801687764462659998610893929801013661331385680051340095689490286445961014066796271985221779833026824283836604206478223598988417389576635036129183539529068258339328175815397972770218238053626104629252274029655291107731024463057414266920793229248927552392252384904450147110974853524170490425270329803285696630073020038837118424460515782170549580803813688053206001050769968444889918252053326563745301352506449117529683718132776742870106960999344835283535959145959117428100863032224958807916246965003344426128420525704740793044749304261657395011118407287504674263748536419368808816661503777881955923806489727018540847730979425188429376568214910370950160133898746560953040932013881020696232937843116451132318174074428798404726705911126345454953709674865706868985166423868768639223143971473680380144956780960622154110230808199278975981781049548595674309708708408373064194919786060886466463954377609308129523325282507591277961906801608516219298951773736652726743582788206122203121388282460102874394417842654797635001088511882116066808609382843792199282526860761373546177445033590208559081882169176368441260539272981134312164216845660817598544027766111300114654444356605337407903695397490561982097868810096156229761504534805239288693594750150722939658301343440521751425769713813699502878567145197902506626032094174789292401673573244244741910047327055205874710333708580602890651738956679264489538980781545416794148882724352999579535506363181229578594667526118439578754915971437877752826670691636878464996114448541026837279669298972015699978056481948287781281117541665678202164270023542167117354791679306460495632086530627155681148639529589532171675547850812309103657979842848340216252062651481702661364718196974909842751585721142040382084442008286302185560809993567567008857933174838779574320745315118869735190321965235740420140667841083967218692212392688288585921850743421684032027673897870470148900015207693790870857873966355093590541193505014991545559204818580888113562983710889346241388709834075991385584181743004723433270295474555286905927678323301437507995721883479713671805013789574220045246785885448765806405972150778534023658081840130962617546635512097994026902646182803588174681098625711188071108023417454630302192443224006459894504241707559125193594099918795000179824440204879970133023162744525583529495377065974042857494944427260478281914135106745776092639835137007605566254212363014340055661232298603146563645301501546477758286603557459358207037929429395225793267164060467294440974318859904855543718829853559261128738859048167278487804214385527502192181055584082706036988146592845266392854534929803900165955967985966500147111925787081996709435297864831800481175961068056452000079137714296866260859105595102570508125557684568184066091871752411877880462102346938467512425476593949923646545657520558520580726483800753514907471542871353258134693630596211626385604829170861985446274174648977564889671650058115973325766769808385194832839040509820394744132368901642585377592965198910438279678455607631920423742867364554890316298355011334596187623859854486057363544068075513078887428719306860027608601338609523428198084601668500679767349135408689100323300490187240354819139219017903704535956471344484607838726235456968902820036780281310518758832914355476831356400255468706017870455775389885668795708254831300593709730329495137370242034576309532991514562517218862759681903118430477852775362083108162610527244412348236783241057500299658944705485477883965596644195072641501485164126824244634126429983444783393289216186263136725522699726760466517975574912398989817280302469622046919740394278705887599834692139148011046336122569383840339236033674963321475082862111608955621278465078543832127914242383783553826059313080946192752275869592286618467614503624521060662028215221992653855315836978169569522150106755349382345020658866860250564311114735419126392529220741383260114762455932295785024914327963496896436569670516751511140809180816040206613947515303310073199593434579632037045278709403287990085774531510067000664255371642004961635518630435142585237044350040751480793481714315959148511455981702195610824738524094923102431404393002655836922916826465604495513810880976691103433945680216398738367147333761512560154488448225814972557860773259409296468951742177877722953723335339457011335965700231025962331838087219910745843477688788638986870146947235896533843149977020898610086570125647608277277888446614871260753994876523412321487631928059430422529072256451424670847342195437166982701450816830083824838879629335744728621330418987459842412707116224500847908241488873047263135090624060493515864745773238981936147244380490736172238131750771812804571621325013717934884217329979183909932263088937869291192085579956245328886092953483375510543463622440508918786427613983380373119116440370258878763477596026790585095702916139293885023670225678945637288646149759846702384253988309908506395761539055308616075077736832493313493281831773151679942698244116037582014975278807242971274950175896567389153849272251435705186493030935178522370607137993607448196049638811541828057564196853772979131780080453721629949379453687968755253577016410275932319945310875523736236492988241276835326406497875445746071121829896706358155343097521017439761281054903175165296441427432196754109739310388830332016658795976422387754364889694654451652686004618305881094099676636285507313924202675086498912940785785764206295879302187362222537340965262204099053182913099829073116610592342832055948204700504912946003110100062373262828946641857092002221810636796532559531000668521129875123132407750799688667523859753726615919559099581928019201229794080875422226468061634134061443128875873055949315961316761020992795719443425770508427074204258308287052615321484971852539143794911278172683676158278889319349222785632234089886627805958072563233604495225249156069873411036695949525576574195934715018271874641577526214417304247315315989328007176159830059692335992617462840648620726818486869678915008765111445286653618441307828916226397940682162770133491193369488689158205188706394992273803790812649634455919991332645577934050214844178985093229752629659365655400391514811615769899796074114775555858133435112597786975406468978314719058017516332561707219069304258013537220719732994727641887351857017758288857862398960560029378824276458060331563629250040112219630029036347196178595243201729044343769984819554818826253502736539463313550071494533620145470806601077989616642435646349725788469459178065465617336467984764205757267421563741689011034399147498369061088361797250194074311076096532106557012915363327323682093475736706511832322458471115582551180235530613469319227712056062060439111211126783720753875060350339444492825312832580818363253227983301414717275655087557615264658219028772297297179956999028866964820444473648231057785897030103501639090820439040611212165389913577876531617781000088061349071179165982856627936295216977758382091018383137266389408664857117824923040481876850595775373562745593861183126843329736724217648450430584437748981527869689578618560894521744525441311518037563050496354022061000885524991621086045161308610065583927637801271631153476881427273216353906903408283435643265468818021748398698557880125996073248977545439889747949179122666337107555478751527498454570842454425123641549201971758114056480235680704270990428627704182342962223671608649822937476836005882755795408037085344217129355910012242937343656117782667077449143121274070046711540647517539235043427739743301106568787620208073641374965454380737759357789045337683758277830066025423913135212100585402383647304012456605778214579986916342109664127033200511666617588885402151339014244666702982053820806916997592254102172023215988989711476673168357521501943496846821561120912528458107980105015877149118307013455889137244390082319240363897157009663273810925842532438140058742440228262596869632329509219470816051018701991261870173970364485456017497496572170986766928676013240498747464299387562961299064269837300839993119215852432363528590732583774584630607992402457279943650754674240678010257239444184284615431368687256836735550412005955541686791537096615830842048589544358111247124907253107567050376650881436201477899096516521303311523825763155223273547442607153401268164585961834847540476500070419000938721745337554842146636481320038700138627606579047500832561408553696002165353254392666041888986978597430544111811172887377826095740023656664326775995054351246542175807306232960562198945089423187115232289505644607458005608531604908457828807383721565124652343281685611490049170972167544200259587624839304589114474422196393458579064036307207240241224196259067391818252853009190959163321843559658661819275824101242832803430169797712019713477704614402260556211584123969070736968654802441975375915586296579784327728988154874972848364798947553160415590979242986374499068789010750344644660721264641669093093564265638537677255214275335441224262246046688202276271453873987337214067710755823661314400087848025127615058957884607239286569792215183301962952090029235045632772240692246125789601111661830946350238487276819791324654343946941192181976506578562952925416777924190850678996329536800644973976552837329062133573439855706725835825685318414835354196411867603458238888505480155637221406905980282100689983906993314013865768696241327937806192241901083579404856182968014199668431640795183773091202291725190361023043372360442375129898636709993113293759810609051178081055329658199690905887803214681809423473360452575154208702977011808260408453487838434384944915301757629768423553908936056760690329289506935168332548152454187943482371351210648615946782223435382098034866180055323302614921188525508638906004997991115578306007846946988393965121839934052240484161176854366515627930303163754165753788182587954237077246977767367044782480994576584884372390622745818365526124096793960132665782132168448145124074316669145556581574195704745408015782305613570512712770774741188993434125953587800610658340835244887943576509206349067296597892513941279895114489074953193026082205452692728947522433091685589741928728364360085664457639116827143185764893302394603607402356292427322897439315775412601180882584665824995883578116377450774674249934566592214899721625621326715769222427899027939258325651128473579453479504795946977639957141205929215453588812803795260274889535050583195387018679202992140770340913114028691437958412382052342845317587562837497557142351612544082257357966972971411741028661951937449670428298634390244388856922023329190557450671444336352353969891610368570793590980179606694362271541910163255332419666547330381308099765926510884838840715908912228468145862541036051413231024290660065818197957815400199963166654666113173436734364196580940491925755502464343085787864475954733768351377950583213079186897035421654608388237466119003047716945731571989420536211392876358042512189605984950667477884628961390922843253000959779365083104263254051394386179745781725767540795525353205411492243428006571096906618474855700967451427851743177268835434993286732525093129495878768627354434452341866662847026014533754544143549601047540957444650382836555556814141459650427720834768960174335430156035666639617123835037920788373032843569520336624761716055798957544372394934947846757311055577106331290794622784492782729483274855397257062693262265964235986729699088463251606860157653718176375647814676092235734019063483547629561581823027213112405433988489622406925523697653227205825892484435378931334064240713884348276033429435169023818032397257119009299966479839503817028710682380716152181722229749112523799516586100064374335612624267791707898507016202786139482887126154180058602344017928668762927326868038463729430690688721606961750426589028198425218917321736893335173041908461531375066758783425147254326095977551393208532034001683975686689947512157190610678321672979422606414179545249736366701233868980191285401006191735247177600202921539806253201048187198068857136687059371184085509290603680331958643151214368217481140051767801759699815441526374991467203625974324261446963715343868659598042467741043140615286648324350878635052431801121524233514158818732850604669079521014983246127604097839155565378426227067209289987179048140226330458228468864066988779073152972708254539598907061939610492217197232663113030465585445239974498551294498306451331688915260133488382900186689999875180762304121852117350664055634939510418740785577351588291276820555739453540746674371202542844746409292328684154256482783472941098837489824040240569982357959586804712158933149467451862020912447260956401138098695416259131154549518557088334730749141384889369798697834129598826916224940606667876964655396259533800109599579024210397620543010030240559653090987246811829151444548073752989627108888291912198044018445999745319425898012196180751433063867157791295191275303466282662820908688901766771673771715929276672568992130885695020731116389597333664037724558274897251436431835678801413948162788464480907237384069307596777574392308228113661363070121563933312312206134845088874579248303268603032841326538383356723301259311249505551061139350347556871569007070720044183093155149187546483495822757041332554145282545698659132883045634919565183212704083807963924415157081632071026658391125481883579475424794731649450905451185259715410491159995039246999966592264308834662745115126769498715239242372720832198763507232973059399511057880482711444572728028766657416699813298499210087024366262812463405375446708356673502174562183097578177950330773952762986865222661149219273374474482052115707289675473639795424201379905646859378453028425729437056628569517595423075672337618573238521044027504071744253972880576856306089383097072234691728300880637988072185322673168326586886686062533511709340732809476896651514118607303318787373066018428810044788675499075753823372008545508396988197594365821558673110363293592010652652229117630394093038507199219344231288346778637078136590658458286355433610993011428263697018374795751632020593018697710404707389451609661536141208875963561056566772573436889534532183875733398156469941624510381345495836257442587643145047716447898273372233369239113063449037811079199712685448169661483199856958180539055329375697738079354293718748904964871975963303316560526110222263729203429898608857241800314589883857689230560256202160393606300878501486311507312165005829204119082147189867482811161960219969542770252938450349138699473912182540770287497798083466153300301243299076571804128433040645738699270086559890325493499115574602994161027893519143456351939983396335917283496026174801198598462401776721141168971000781957326789900388505671216119387494039360167730186169417288106225294687500964582221288374365413440393147016985012735595369859722635096539838377630954823480105993835665109900957961803464346293403909300111747489028177114133247945801641020370681040559337182258308250995479771163712886293515670610400940541881155346343179975865243106001238258286992488228928603631352069993567431766058768414617237528417525068683785827791406718230513054062999040950603160337169516635667434796299102363422958842223180483394703567617314945388387616650541391056300002313854600648635106278952834070583275626393107027696484628934296247783112898812945863617328859600113725956715304138471905973986606997901974259616023998135367620755778315502193659153164459112173814748490459570782271047497537556699222028979341246649211008029322227174991213767171337317705925118541832415038757853979857497906269253941526324748932697897842662818287796305958639123042547157918640034994150999442808979370712680437123146636695147850434260606991344866190996617307294510900579864889923591832606427126456529525168879697876687292956089853802961840706188769207498540295457633650876155864846370104009551899007560449659225886994106123100988278395385813491861758217379895682169441248550868595947110921357731192563135502941372021269469712931345647332149160600979527564291825389911149707441878113236548413364437693378981923759657381605224686929493108782438778538850684961898289929706805700100703834480575034907338396443296401639784288422177076146174192875255898902234017387104546891436676479612102221760475977688412538594470236241702046815185617064412924557971150835001625382499119151545238728979189781364926336744995452196867630546905300446819494692038968951131113398777918654659307883264580486688499652870506919191709992832068646691176459885392093414866612601880049026004523366567330607436007969851485581255057641169958230022649005322195594431477751830789640526363856268233643179254959881333499883373556127812756705988820843129011804009985299235119847175491161961726804651547309056364543133902774647652819702264899177591309451030401442701197701772227871374232315692021884358834992097002119852948407592328465471526943591709632473538049329848396803925447504512714701495913238562549525936736847815586132112188046555734302502025732671267013212295822228167581032871949312194805077886894202311335759024426941507568468481964634577493936718470866036412908300595674985726802737610620931602613985411653455016462000083849426711914304699617175937945427461882458889384696573346378868462375196917437546980999684487297981879468294890495708913290794227471823065614947726605135402861450707079271181233078942600569235050667408333924131160661202305396717018838486859831267641301151039431775029886583164744370295368130697916731693799333382968590070702253400525649051161985024243644216485393161916665468721984094096459388376200278889972414795239237788143177161611261049709024532309978908784363095092375523064212419403735428266073241032731254327861378084971712691282487877610366082833901318354041085076685441497356310738188631435218689757635797231428699218201011133373805620935668860786412644803659070146117758832608830384567749669196912172659214856505214456353061293618711656602513708904841413151667030672028383660868813415211150614789983516694874039424319215102452231012151569105364198449550268520780002943920409675239771260191799208289903188342671000726640953666458651743922258379766404624868939002522182051501727623018744940380862438896774277933902646877678346172711868113045628656330740405977139478192370699798120115446033920507416385582500933926241570167189462639207751741328450093747040825731438177052224746420448115228590688222619705470662940424305195681689589073644578726461684959687742369511376801961350743087940669932704857334053695395673573671443735618111492074538158965401206410115416626583535152806001476835945584212899128470954529143738648616972748023405497418672900506748102263761340713059139677471544524108061351497732492441575268264134744639214637690137460369071904788041617880798565049191884861269035799635038036832311614896350511294943812088918980257241974206601838489660026496998213757654049748004690022116275938685609921285455051535629804342035366864358340795333295817438219756365378545920948317394262356260501574689098372958253343225075372871889007590848160951710376222581891458308084701769907046276322111294666317485759264285761551172241074835843247531250288073982692480576982879459384347302512940619090366778134221567263455076944695499531593027494557143003115627344597590761744022594063154100474986813447190191462611129472814114262448646257275831633247881518265332681852844035459519467418308002452734060789367650492785753937966188378632296218512269460218653497181655392642869497784425498256422518747128517662872373633256312435963945066861849395522985028467916684446478297653878172724006963824574902120330723468904286379380987258364016558144853542427043698716884576792590054063156390957819345385097264973866890488337410661205234030133678352453340456607782400338422365741053839576098116694156979047423313615788178833987047783401883187884585045667888928152481921071227784902174686603493839918649980858107098494544704358590009443010247158547574730488679161046384299772808954699268286041800397163342547894210238368998393799086157090966681615449888505863440502586658276161573473028192283262876653838241862043139306192064089915840963553938401183469544277618532108266063033588732384976038833106986864727373087371064296060655889189581798880440492033846776197064463560062825765520197021183798231242304338512488530316397513871426361890473863048659800149390078764170491573544039732236125073381152030794383245031072183005281962887291544800840527140254037746101440649270633537034740971605769160543744479399000051447613623944579094057267591632218774521337573229510460417708987918052974877722724302927751089968159235050165316244735984375350729351777884178806424428548578192569813592063281120997733385169131919377226754792152429044421755005258148979516916840030325922921772467875159991155000365570971301403926862469781818519968926236927515869026754894631252921248242980771001365920220541006755940231435860388346673446435093002034772975741621824094154573478703175891116040879401805695049017721203456283504838395627148014217770891321582192778091702737940559352071996407745911525236469937915716569865159629490738969984110932924683031505582239709837376426141397644792746392801354395249295809288212407165325859566319666219108026682308381036176084703085732076791920772673987399324792380693508179012660833025054962269706561552314257633004449888516076163435588100865656669405525085135307385843174695375682771621375544065129598665108626914036382515814068295711275594882256699009307028753268041420412527258179348616395877297915835486132151355402153582059859708873119533181323416636059716437958633749940853762982298200153651449405837221752297194550127950958891761954953692984613198297487358937304688753770855179148538030288228081251733993860479619798494995033116767381385726261311658574334196592861003488956568393569957606701302622820688057724701565215981994384544165757588453800053644370834409817903678194924019624543378427879753746615534369001125622850766705953568587605826912796343073163989771242502060812026387833443866398687055383799090013017983748874020966774508883792177463053876673877791461503768441787030409339180764662207925241817160154179696950118713222302371646283397933637329416460837695572205666080857722373842028170957532960000313895229557226841189860386440503121673051291103749748575717454320554446801450517486510277246184914476408903300390644669803961246895165122233759048317770905739860083094536372922974312806864783866329199372479119703253779990861382429935159641733793094767808402283752281320236310143845782622260895856060911117895040521528739149614985881125246231542379168360771177488561429396294718680808120101836894817871740035976328411350567666327091134786279618284415601906850285248635218234596811117192452463403617482970025037293911228927721997084822232942908945237285792386372085230304200553068933619478756598427512520354326336357241722783661103528327001271514405275488476159056083469855118355795143406093689233142097561891244715049703086239361077107229892814133539779265028942793251662164960446411635267073440940712747055531356990776358590788630749660818758986606056352329787122651388229652703068588354853069889070160278774022122273615178932002026105717332218796317832058167494092547860580110529383706030025436136471351730908272164211544066526349330269286701209340819445895969413606541356189846248526625298043948422210711190678510315218768510805200244543541698638566492487298493622183172347881454668376181342232512271885226398670861022787948252338144908750358990151407694007853935359644045556501108701186434890597063668350475632856802333252683645486364829169844145739949178787175847196177832231964550420217984601427041220736621954598633696541030646605991451779764149926818569379958736663695443675777926513092391988334310897313859714528628754022095424980197675366234894284362749827105784902810055521767448779420925224176904430019361170752132837217739030916078787222737329016312450483566368557672944878855130957030753689632191482368179776300339424153253012705739369678641176321527337797121577396038390234587990580978752874281138174261387715506734392332457977744983080849482618310419814509477794153214861783368805432038211967154087457685866885714062482888852711247160064152483426353600355345448999826466474253094633500569548746276339353368199512850843140209281383341758063614690394842292665702988680238698698170552685321361011274231195256428160220279262647669212330626774635980776462451079389900714678252244851662429187115802203836352115518714881449988577367172853281746038362107333373305760698977136913273978996800957126504952167171656476141268630650482724649404643883611905459596996581109915437496314894906575688906323439984626113444263612535491876660586985785789429718311846180294688161324950269534758765424544883040251755162831064314397819538691093081792698921031597262797808076368136357296790457017118720054428110562049122253451197914549525248138815197954086880424188519112682868510614908312333900405874609497785084813804809282462089890374231116944795051869841218303193667012698863008406949529842237396402582788213978086032647048980666424469481432230095369166265369647204178697302039440888100537784257930171030172317302012656671131434232681494288723274099781650650168039533713922755457285507532602325493075479592980379290199952550295337686290608424280393485059374881815265324686748276289397285285211624086439806711978917774844684820025180607501457572004419406205504985271529842889021062458560242630509280484499914304246547292517353507957637418529156406269192100622229585118700607822696424181514365407819699251781477839685809519350912745286694896562336395559660355448482661015175903909104988679987197756498351813099638509020002984051919039018950053396123861100494071217000973723267287800388030268727159874705149736974288067328151169980043573621565368743138324029059713999093988921754079166324557296351350014669906055225052341069368474628475751016750773956095492662211644093662822224231952552666065882572723556131504501590736427285460290570101525846789618925594763141284720717837107263418203750444937281077010816581750985593724145500579172875953373710538644200837587900776853138940955878178899390274334696981589875243654306380579943432567629649387640876220471880325448731759318833048165691696337338484507887673530455347623735949118189851004388888571935584892924170288971460901854275240520285555410530950167340457165272351570491150912931301041807437311177777262603294543836613756404248095981562060950648015925221732692783841822621222251118245882509059672779614106921983495168049326247438489533013654033392454644932330760527831141697434024319576872813116181765564589603830924783533288035455759232677252842447558301635215949294030019415749353744187026343583773327299133395619536686816442180612826652522297201324884860600783085342893241033677938115132787497525318418058934532701637591277623017956195022129905348166411921300320244202282982592150889570140391002325322868565493803114675457522269953123379344461744368771419441237584901787937043801340451438341360350142969139815688077820712943014845362982536767713070938507449794526846389193093805328024234284073168487240681114418589897884946982061645906149954523707488615935278682704194491096468039463307017747045400122875410046818724275761274517004552961247378089274347142311701892511622496489841179790972495614760993543284243885520345420707276036893836824742888876681782146307121910623618702790059253921592748371047141730164441119389715017675775249259094512131390538420176016176924170271209886577020098883429229208810939842962303754611620912687753851761830844067521124973524098361284092988914615500937870400601343107895643246471766382058788062246674798759779179616438459170266971832952710928506033724973642284738716383193171101222086613312112233824638738083436995010375196154565591815106121325414210023105160685993598421366544504372560885271862252115441585289465095768283680921255714806767265245741492462461894945662872209070391596038380409571929079234074202067610675047816309620917627428776503801462698432171588424904392086523923155329850741960445223805252779369193204083488355194122234186301151486536922231093617954496226550957382366468226396005585669990141215185002051852289038675755185386459233816417748547470966282455640778860099567290469384114373974655369030171955804943950174208843998611844695074628711567846335127727160191905026189065680108439220458946917825090135682060509739898193147758958714584373996420267520316346540395868788389546603784333376330311731548953595197947491667565470677995942578762622959743453401389217236420096170079056031051943848449439052527996753681135327676829810388439928430576343640441006263347553449318828967936090104803712956387902623606500910507628026730897928168061151680876970653141196360305564108366956124666281691870659385792850065471547146054902728843900057981297851302470742221542397316758054370774605903713113800722141388886119139201252393592583538582576184381873648132257539281206007008785044995529826205050436194320142579840640415103447654708535035871078574037097875522896030096547367572474480620770749905127549344981490711929634313896814556748835730594900057449277719107550493219780755399052982933594462812976260734742332457365792950861882439888857835718350836195465958366708530868256349577579930039809095414238813409042269759633475353930429037870949776863565183438247650307104882493638501391240949924366490985470986695338206158748376857308563937851576290411576932100729946726624284242986195727305845595657616547671140753489880588994844747515951328249819290876241721248643776674392946314995322125761249451116985783717321222685595322322705949102402965618380327262847073992392393558027920676003820771813148956359417094049145646690477671130057708292523160190369586615070031388318759642949183523335926051672911901332499383082063906022355664244973369068573778223308527682795328335202029847527355545757676480848428884708478281576746040177921505190595039338573514091361519135683275950509402432691722325624824907065606355035917918693704647914610010354446362712657611488538439746062447439680126368550763475230536324054864169266139979206357592380512034171846276730460951011371752125320482880938336127595591888335800005109242395482184963966454740665234086155145276268802737699707013004147441058072854446886448889157658005483588319177285579902584694747132898902577442505052172222389390944268075611114575990758517412692955296026120627146764057933706358288857815589813659760101898318162594089543693824305031474796765043219240767064674529614847500278331276860677280075932603948498373407400685264467801318107809628453134260105667280075800304265231873273908164797218447870180448113300734948383219728645357481646296842976937101390450581689126670371307105087708091177504659136914210173069749301275852418790771803710526991568345026057960479464014829081132604424652351262656422925883505954832195208943033564244735543414839189143546271291853578115950828552982414400495294867266501077641749341193287575150908232046561047773782924690982554682488218343047882640537034351735878738004513494845537149860937768176733601256196247255289200139711527901648728775163030291388030796825116573138588399871314255449234739786286126022812322949498757179765956853909741752130608795833268583904261682510613625626378746117611064045912211805685614771565647807644315149689957088345318349830434377859870833687542728556925088870479380784334802444386802526062108623075749857047926537594656915231011321102366948249006938657615471944093576688736723499841460793560326722949311203462287157556306122701813799076500809399075667114368496346176550397713605216241530347979942287576287175015797878507347788216082720563854742343574960197147571648841378983003990233980386758373872406516545484352371182689824207123652390299552388376951588223068078725950259436936302822720464064315801810820112866639234176384364156703792521552824880401087071899583690483282126309866007926078338878962418785704593014372809887157703331566172425804348244193178448564156126695092951031918072490837809838303108623958875226731877200747394281623072653584215837584556957123987976359191243948634774143939082657072299660598066769300261900710234623301231493577716552902499067097769117460875784280168909384576159505307709192814616126547365362632063594969635585987490199229941495133968971112849629895188842998153418618350761829230730453718019404389910586161895036829365202959674618039174853713405702927401302044872462063867261702763810877265342477148796151660827678708086818612800357234882607113563442765233731762840278068151561961396343046645687468260189882963567469460426711106680542613354396397675728665577484949341229963448189263594693306246332834866522517162993946818213866954638132681453634573628021823861070115725341587361216746591928835306353595166729218303879616329838417440588197854633729536587399603611994352370962991322443712587349938629280171122788265987837712892023665140818096357023597983526557967807454050603398570546906726311790696994253436344728529980627758955196845764700350198995211188190522213141328935077808543723150109055228974162154551213110697792088383386688577778328695095534201375020843837303206676865191346995073792786897918990261720940100554109515824952021602244828559267231645865193187625208395422074347726103873619496657977427748169513666352573258254988463487967241950755676090595298632845355633211699068713987890731998644790105097908954186597524569324489039381656623822285412390666188249689686801911626003388624900105220504200472725831271292489906138209119198864077197902945630360855060390161720179789286471218022238953057670940436090031656935832341836205452986869130840711921618805712889846105794380928724952755687735397867565632150618855955679945602250126803032150341819567353247110145753002365249114312124488087830891244395258860772432168002398049613849973278241866036629476611712717206835895188216702565713522467773471233637323579413282849345232773711217345954971805073016868346329106429685556936119934029337907945625741803230513154899907457183567760220112515567118661792640848949820297865388793831204810333605234542007906829944874001716862995751869540355148229099838342055127193147331507901312689428925873329162997958752674585399364714413547609757874884169919858267367327481786226655012624744660158191228640473783026527646721203562265688842020173913627138371214295905169320273621556494445444708240326290529351651933556289889214706277588147624996210768758321451720136449315439827615232550469194402967058541555694131236233093814963120489212541123401140145020346172342072228174436567070573629409555845953462136367354707430736231041010226718146744815956342181130532577869759255165219191733699946327905634215274304594865859001636573314111900534021440296002856163949875481818944037048747894223678084815919372501481493608763661173703441903302005587104257099136671216880639053675179701660500782985117648618656257385225367850744896808193529079216220786509536070768882548502303799916270262233827688512072278781202726818938970779120913006064390308329392809930709737938093631428646178446146573024196445766247375879873898622611804111252028651058799676114934674518008648056772539056719824855935452987108206772897206376413000799052088953738126703827907795768591979794614429194582648360600011894818044567546520950382870643628066848563540199562419060166387193564925005228602919084688980356125418762845382909061827027763828887565872735941842549702026908740472090559015060771279546336296769243503509024416077679929567482030185785054077331919400455692255301616959997971805386012958341060973224187535964069161733450803499260250560021548507426524138411959704170922954343227759055152415774175362704358061398019203392235402341278547827886169722042852347802554851666496014226756950435120863827434353875955096410345811713556144424950130892994274668000810322077430018630795118085029547240024032497189209474479574491306310726315182869160986824389534577418698560375618297594546804653900718977536055162630474469838177128079448264346951436382443956462377869717004151584927545108257225077473157604193678004342871170779397842031754453677970656983011763768020168234952730861633465809847868057337858433868697077219362136766532038129329448715508673507849715718982237829264464138339260143158847758189433073258353912727891721914300775934120839211720895257483970894764686902975611545189839258122721142140771070489381654548693002688393534974588199153344023259301345822683765040418878839118876129701575798384805588591739776258108614491222600432015882357109544540449723603953706923081274302970451654805155910414041078719206817847272515054099210821620218044859207883930232216413937439209563964863825117180659709649170125860391957396602133243402765152624331040068729832508461842798897413545493708467320338297408225866451487301839005202357366053099449179906318492979039617410830401973832213855794490174708206589161655433995593503841752527863901250824089561425972172910230586734007354703157981762778177048460426240668560528388402858810298224647471148462655621930180689945797051503839728253207293155677026384954269927917229600776960127526369857063718063528262526926793731687105230298822949465639877815810600218026784728022849617720211512999128500733434690986167901093135978754209732991338752422898636606794956156107789563599401523693310918971987952616423125463112572455969074748992277360999671852590216508055814984336666731214404081204330173044619772883536756458327181170260596975832307335428540855348596633153022889099136790635747865690728719189437508028043222185703175756023656896756502670812633430755138675546328728708233561416925670209723098224147370598989999585682362119513857461220546788636087530690582084851571731413410023701662142690431323731447389542299778930871658673556867176280243407802514109326905215657447533955517994412445997935442571072049576812141853291774559393221868221100155055315629059982043563640676095532819725005358710822499669595308424570271262304251394899868075591700371694018077164031735796012614572088816636351348519805104486328424765209309938832280731491926370197021424098793303988867623786534026846754418107954201400719795014942423143530695979839464316927687592228135013776664886245962102405413634549945835163918430687097857048431653605681029821322944144922244938378631241439071118637674166600512547209958384747915951076649294351091740203521167290282083522080026256284703836230777191507799746006016803789452500724400765755626256033140717789123056833220753955534027159245779048876572826857095695377268974913948157135501536681767519136925959304790475889423977967565229396200846046284962438488469068320296860056168925383854007205464105303354675775460637042093564914627962686976542832045818912319481784715358920137867098666264550088073931366579256317167937559559705479308341510811499799587842957241802485858030444333283827354894692679581836049739924328986468402205279746985493860766034420720849261587686421840360513431675580372763769753151327217520176799156910533391913294518846913142516557226831545735533526893890076094411868607330964591997398064018849157939010361638518080746611391386323466833861448003783281866564319178631416748165495047810154456850090237915047862901802274353941423256088868646603054464435345777230559816490374455217179933042524924430206501785142584021571351766545896843714009634918761642677592654687756900512384364796077610639913574002430888746990734703479237609521666169440485079277119579264095809604612445693978507239280629887741170580953988933802871747443561228727197317263472536524714560237228575866350190380664519343608330084784628553448302604927781708550111716694798900966022416282223681461831621726503970020560909217873480888810971964538504534177514821217576621309682761236344975467045104006641257243403405620709800979535504491564065012165190701362151217203655459167124299999445003601236945193505322394949789708601292702108766159192342579919274459525598212463540708136065518558099335579819577469280146797459145252140598301353755860138385112816297080248015402094382095135615299636518136636926927275190061355912355898847275169654340822342160962732553369185897202637614955817714507043423685496011400020408774256016464568224524216729105955341529346674555345726958585621348673944444942121365861612579719119580099723015391830709190401902642926845293633659829426206647160349667734343684643442980474343133961170839232457314208305617750669819702737203637127011332372086832156345990650045697115365216251511615989837501020544688400446757372455774600567379855200219498496519033136235577267006873365208294552350279662551408294710417977019011584041789313111381858595050921808847400967825036071082128595030962963406133606806790773504289876783647317349963975510603294163548681341026353938084676139836538419789743350251964290565951014661172636098424108889772782198738288729779455042757005623339460182244305757585000692182252420697394803127522393509650407128676872890585247254216820470662715065482028209513649545861099821396796140706432352692070915281216058645996578240213832498424221593095736522708451864651348083538214931605532935490116665127471091369285293370161770210191004026402968570806232789776720388171606515091758688570121046473822201695564569818505017947576621323539950062254666317004525408875859451804204915392205967869000090953020824031178307888834266644447261291553044545358426955405334094627374292051736715334862035411245413869403818096992446650401560119339771811081129007419067691204650467422780233153573712341064831006147623731373415307360880898465407742982211467106965797878927217198182224153992848289198666402796187185495630317846934400532077840360234198472164598406264672480588976024087395833980166088701026783055505957400774290857724152400792378048641000159902307791185223694286097881943656345921376744105025143940929235017416507721270357105391281530431877216450351874596038931558611314637877296740002843671298813332375573052232896755914995592309881157417413578136274931462382090579638777723401310526377853538036726290177499036728490301612577642908962703561328577890303543537144278627179321787185092002464163723739822534283598452642552184076874305494606563572469532674393743235576550999752935085169932609178677473004666544580097327146557246800822377079541682937956516633755998464114593303016019075739363429029941397479021785333718492770478729383595554407983632946834817507790008401720645670830037053737173387150955193837228253607947572308360268095171967746198412681044995731080120384537653052000443061163159347489816898488342350106569992159375721773012161550260344312770743875080882775811652063207093765430988067855641921763871432868765954176791392576244479281599959115519712891691693471094511572624871635799543951271105079069381781928036478981702430820448559974567963578771056005368883024647433505025067537506728817025437471416797863495235364119650232457078982924227931705411645979606904918702425055658423176914066032525187965160630158040038720807066382752975404480295468903205982326506586597361916882483607744307117352704956997855335088963497476099228696260499299181169235216490657451396832957233568108480811927814411822055685997796528800477180649234772528909608257034133197828694474499217166666574746349214217021589646591209640837418632961514632340112003040460466066647706150322738506073901709520289412295612667583986804450215518906574635156780130214110576516301258384145353948047697623333912272687990958338418409452265204860492276222316180238181157739089574558213314101419393248206648088138145853471891073661527889949955932428781776501850432665554593983533593992187499807605188764721020406298510026360520399918950158026133313929648505647941872565738662998315791629326565937958130166485189876051879170646183008901309292590265569615496010357827597893630193132027419375920695294881211308242627490389473262283324289917900484542069536424303678762776155307662334725781665242586517745295203249440610731849277966643459398522669470581914055868951203590380488354563586901191007524662662174558922517472758771865666485569096140827478107686341655001302388614476802919124782052042053119028443541957065216068863293898452527748210389708744170919237225554843081800606303087101925173535971098392130977930784442561696122446222610073185753157819503065070182772270101676440197403826021422087774981192880909112073139369168434773818086105449521951444464560140576734811756569804090890855811859477134965170968881897011941257502950948140817948553325253791412989715298119577945613458637611099695609856030764619781364151735310713380079474235209932273916701445754733584886552260773553630480693689905154937624610512314483208706752284902792382705477938102556376822868754741809432054451513397862911193299578127296749590932204063417558212078994245931284527022313704181833123767992635990102060712815532440920617618207756977341883837571004656550634449890078948946710935441981870368571273721297963107270802277352019495036459432932345742375304600101334470441162511037440509839240582008605297605197683080140333114604988221642701832070229509660437111219360949363093478322006198768822502233660250688894336338949981179467204005814005411727348780767466807206363945998443712715089016439360720117212967777163628240732158615881176339213475760758062591094897888625848735587823238665780053099668765476817980010109686022833885401782615665266794406302783337936804338139328097891163410793933985049867743560487307672065459212422386932622968729511536446546170774173084364708190029562689063908331258819921397228466685385207880863448062147269315962076057395803343865073913237062579140024994361508316426817163681097042906656497916019201918162401658780740623131785889229297688227290128053906284603307734057435084236576600700908413818783097135815607542268099197949157307444436236764153706239482879520649454138855026781418310989022212962792579873880788852133547506761839382793528515573938574044713593213624261516031628269992400636818308105537678681938779365781992918572823075968804747519209209480980007614590931845136253151786258936306239590632371661108143873730994098717988201657536476996835153488745096597015149736973595153277563657691551461883251768577805637769279177185480188135408715357071633190990870463261874856035703683589576839857626296467053104642244162093569298631402578971828671185855723047104031352422248568254901346222493066528627034293295406530547240293792109579435787474348259313759595172014797201875046460600229716113661261068606128696261992122538055557158781512950345089713710503211919001100725653449743584917576272704230399185202722286957771350639405218467487700280992767668336454788462106063476667780924446976678938903392457731257433357576498727276410741854114045928253898884493749961284040265631377873886440500298469141242265452573617375420460391915117297155182929687249911835955139297056766772276005891904882713208247515496075371344866465030114107230968826486926823941491219430337262557318730639879932469033276704853623237575742039662535338417339394313026723604660689964253923356280698978000213362965169879008794034596166385043220372357604450555858422485187449069674783901215684275532871705429477199900907746964463842025207805897072076488602934042566939001527060599351131755901901618750274601685963477145427775971094005417987249699221399545345807770962398615602931532829227762994926703599457552749828247162875634999286484445675169819958053557921183533649892449497969741647276935984192008155930073365196332886647461618123793093815923234738961316955525410092163753586576108739008734885248762898716034947851098104621381837597547917301827863487511055772225991099417668040058056800237134812446198529532009078386387197846261010753254751861560207901090072817550018851631869844406839665198804002293116011256664530803721723129653107152526969224495724836855400501738730418556626335821159654253837215469378101993469183859520751175355350703597837584812954811957658457592671465709466046831745809109079824659938886928938270719357965025969631004680319536361215493307386091606078829201962359906891633490166441441736846142857238047502339534081773733225573920992294841493508595223196675469332302750136971916325302841711563566166471183442556552771397984141492100962870947552984381503948187311666017325220589884166121318729258440248970424425251662144809718917239152530483147268832174785612871612383846740101337344756535054764865390277910999626119146422693502855535143416127294931386403268334615523584054879368683555647841750840534660240340852071388846717688857290951066436783596771473403586812706002158266711296559773310405852140273322485202701663258725028361897527149218968683159088838954665460526382473315962443891556539405747324023830291650946325537518816603404937631398855184847145319269099772690354480526842475721230430246676350033968911417252698815786610376364249181863312914816047653487687461746537925831774941150113507127215490906076085894201390951906101339686503282468130033149037543525823216450058377691772392048470627518749686211707233750543146563599168429487661664243403879544178844857894217504209547712934771784584907908162937258631483962941020001276859981655934174904113660209301726856680355160061720098597214755872721798102668516543281330891897616874076963950010899366391782322406995049202006417805113319874623623906875235622870735540708367098867906105774362671445092449133794518051977954068211701075614404095080873490840099436174174672014479434337122638466740471024214854568356974474330634753557875152549494086276214439337559128034838933278276586091512965434857108719871803267220996242259733245222138431960434298128874114016062600452854367564967173055466580222164526809883504429047231560270133225468479475592003674251387945577922165666146363048501663341113624891746884348838918905126499021381759168141199954627978001019496799852412025593176478339776190461032246483711217907624151393708611720243198851544991068173315363833997192940065437366418337811007388872621519895476708704836670303915271606626560282939230121892345702110574918955061873608658375888063731349514770864365439886234050177265960231455107346429218698733687042266478239641839317582631619388114528951227028015711714100396830816393414613343762862358449237635638951972579688221005686157138987357794622588293937559816870299595850596039071897847752335877957810161252957897099782167252678201511382156810222580450035713784328572424718017076984000127684398578328000928871678071223751063904759734775695255187680424955206366223785954358138372905308890807176473368816670654349280533244396756710137991774687674225413474731584854585472634664126912181191827076917784295972229150156288231300956531690969112559648042761535093332054171170670140945139571397423991972823632638243024494317658467210662420428495606878976918476096650602379199229714677234156299368505462242816367258784886867166390498056734416055099371462996487367205323651858979360684488312274612960674600754077912738044918227858291079698062963100636116129428619313884268821355239315177302989111186810787570123958839751684436138792330892833027260529481317128956296662017069408000148936284835586117577606938739264011125292351150577974285587108740980357898918601042822771908212449751837055161823600695010418718230084948864558739619407891523756742475128360964362939292545161627062055502564296921549420823038683216255557774819771959968921061013997229097655053534987792502817864784075770941305184957162425493871570354167453740394272843804767545062456532324434435349506473043570566404854015972345985111516008157717103107576320505529428570285809551279380411673950425033074483857001748080257340136936836629809382448989730068986834422573385218145623458540135038964994093677132246772024894601053862762900320949411834320523371580044801713260807379763050642144835446871950242744074409913735938789636212905020527250895432843854717076120433320187335041431832666601621649750537954839078189037376121437423052266681601198742278333358541481599877980232225543174475585841312367980470591363539947867024633535824422522141396323818188837597841450781736648096686564989367644137007084058591264327711479047892085146611246858626518143893684846840987052405181098726624997237902335163422906353444809442649193722012502558109085136412071863268437331090618170680458720245630141189409005035386623378994786619472431086559042063426257233721300805988417975157773235043872499183565839236555813995468220416973048558084351179053611150431827277093753672285988300809620338242476770005354563993191212533411308807376516858809392793458826559175524123460565481052049367946319068231445797376470214843492670813490795124313075925445564483193179715910008091834132097683781591061893700725220216383174096501285117756135354032711824672772781658441692599940989503670262552126533995273552002162326758063013939755257089665694240365647468501609913645319779711045585731855816312815506679228677188265384194217072242755543804623737734211048623931364813948273360625038597655195475729058934822757501715691556298854050127825869336190113179609684405671819618048906916085573302149917403079477305410908916185670933034102510506564398460692185085082633377331394967944258772782283106190330923082645444242666960152550921123215991870584854956214639513402676078538612121319012220698110435294262850027129004494228858515043899035131942553988209103097332632014171243275558671575749029294934998569532819951770295712022951526422550334234039046545909386557598085511401826487037209393465049924505544950591928321172412714406788468386259727401097671271713044372137580852261053063216801671124813456784518804943809396667760119347203800348901902259396947382520624044332317235575060126231242208499773841903183022649744078093481056882412901766742344120066358004584554137003181076801328168383361000664716504763439333037221179845651374467446391394913511413109806683558196521524054792320044494547373570385091958403306325071892076155005735196707872925575526258242326735564652962231612525962230073637882668696683644291465746220482339077598562916475072299380505786875712859747462825569429639544893206550772585412207968890830995206366016644352542010676669118047177384108813286862072137248001388179872692777500766269993969259346170543095760901887388732977320347132297001192885616804164390592864155741474657907785109282608693272134569654010929649974691715726302503360735334180617006543343029287448906927691606111306795829936001311919481956509851137405653389726534041374925148222776191565680329822747935613230441512104051371909152564244293370034987390110058565192352043729303275014508468282995863849983451132502380415489793972456753615400652166751822764855309560818358974959441448405645756834498339646718196065803206473932462795857262775472276330541663054342081871322696885072776018520513151733304222896712523760459916490433266903230303490392678143351002963725604902147304610287948283452713922437148076930360397283205371299107330239328145971459211116261291675772317718589005688808124865663177220496858979941285052271896882176591872570058737050305762636443499262804352538522222168226944460929727196782678506130744362463958627800606806928361269518967369547743944912426709571100425104044451769486309138560063781363289401559547324421751227314877992266667513142241184099403080345478470794520088477703935318490534899819480057717469311224597276639468356373950728264290515162154354151499124813802972983500502265170096063621216449750549158344655277286825579039898027944054475694286140532888407470453800196741025137130660978105793243720504948097383110252737950150129034867750891423306474465578836340023723676399691631554056799750843608482429201920394949273094727034388219068577534410672883884453994675882896855675160937251535307250357164745721155606023361707709773350547442240051729684118752050958781131704341859100399517848118562412851887312763718576573689722669876604785207915111365392968522943079114944500238278660871387578754391569834996147279723731489847603510011119356987933891466452304242959677339394569038501708328579797921137222716883510218424744175074112350161436841914540228804761633983489084419244533132494590825539790216690622762906405251478880570489906114740481087356991681365049985879109998659901416828963739335637130276144868811833841880803273234083980220770097584724037029746202526695933858675269563474786910146952062476901278927712555786612853849295910171912118108901209338207577866719345493711320621267893851878961791575032080376648578591431239052268742032734018354068713412520012745004839913985756736440984036872255152007844972288709264104455852167642091348581719847481408613618405115200539723798674978761207184591161454248668763705866423586626388110619505891592599503341322787560629941238849334498788431387566395161206316158914857282581823650090051821113506741965794235785349342133485187470949262166854394659580228798531568232621489499997095704332949542203628826357373651011714474767270433629981600359942675763994024923499655515630590953338875911966783431834980317262535513647672737118390053071143337035748726503429945515474362030894907671162278080156517596420348857208130777265175218024769694043099398038614308961249072966836197341746415102895218452625403801190233492336550125956320765226915840676767149823629567974731237961603035130739337346677437537955041697626396762855160326733797395242931398634318660993695728130890739210870332912513625318505524372545753522763302619888767571624977009584841737203464188685603539509746132315309458405881012973136896275434674120822797066443637365915180777424226078344661813037658853226624323302538895846839953595692196768500929571311292020076861552886983870532287283547065153623973686366458371758970937789314933492546430700097258411344599295153124360521512118715659762912562167105860031775968834024292655270456016453951824473014182995330471401767449733434843325947524082870189069343994953689445106759338759756972468746367443744408350682051443751584927369504482481551815615781998278515011111093944903409493392151837324441879681509036462982920100345010702846043612368506060400625012242926673582658446199681271169059430461298550503715048449888366956926976479584190666840306405878833322070462351447178859326682893791948091549545796546222128842532182103590871122859634244974685227994197156500787907754568910773404476342072461669973669480816233934761367726345539668484902767911715182456289937900886392456956483021109875523943571365158335697088245501664996901406572373145261629361489223945757823896184532761511267298600763678462738222664404760571220424586606085735708561315210571498198043260289450583328474950349761081914302969545264690014166910023053156985840515381115531496498471502901501137583359817138299840871948185781943539295363522670298872975536063104534829863706400883461517784357170820740603218630591090603630635586595613550562727132917236968067854638469734938245252818847474582638842375688536058822422870798405393424000838744108216626296190319572495630365795671369249046840325491529082190660760150197158257627310825355427651847138635284309481779509891193194840384456543565846871924410729204200756310999982221107955752361343909673673604343442784281476480328543667266908605138647231245033049645244825558951795686609249309622072516532298945863043725953218588061091634817330389065497472761143549927071023931980556689732330436702679312333087134475668936929530530094599643395220077060124514162931894284141978143110264668734034680999358260501780880921237690246321534529335782160411662814931946195940806945590714524189401667353555354956201302083837672205464138553487483810145868931934888295844699770775803842996874790506718911546056145550148367444411346112411094852291837368102629999027345680054688020564625123908835818726757505096358373121416747328966600861639000990096112459734431760107603895238970990596402584922453089968253045426294456253059707464500680009949324841298464749298862885318133070913316715190748612963984195331961867642805769187924742691803010476094588575783373294306826651756312789499162091440391380038683476025060851831498156055535134305835524804033559415893801476358049734765411574476584127121708728260584049448331313310629118006956117683874198013246067520478930058757539444592618547506652154647140080405579502962567808450410459370157127080096165193237702532068029643946461672303868783197197453652411723297023780617622191364982037737520838877127025521873097693987914943057368961492078043982946881537761593773450560598953970426547755961498037120895988644761414634513418067746356562643975973285534412192864948320945107593825596129093922875323459491536616125083942078137522978426224562710268899420322898226305482969636858267436515260567613404319910067194526915333218477135662595529607140160444364285718446020547597541470724903280674297034972449134624960313967214184826681825877084364951675165495649788038530345543190633131217941703966974405333281595435554704693545536339513103291943089750322299141829097378318801160437437243966050688189976210822471176086464505976803126895377426909258012329623931482676039205481345056116278943575499288053363486735094759336450402428813370085898575069164834345744714476184656255661593228081027194334442493235444391887588108242735541758484862942396913993930371902893505631296021943479015966206364028189396300340638862363475062840676713488996717396038063041995779969445189574665811317068258273479309902616581015426407173701892572416547438242584358110543578301133945361627324463263482372686900197705096819005981812300762525720668837947669572199945862780283790945804676366920302451099956822764134979680772725823438815958146046711518028439952306735137753949989001419486386677721745339971248998051691609467100435308803962900178335490934592056946309610062469717916470549617407001807559800956679732915608194361832176265573879408607202193926874698860462727813715701715851778738507359909773580356994783715346457223854795178763094609633666606607799996667757832891817845715820715131868704875992122107569494063496095627582548869050427247457871929802705751812644785502424934712529656381255599912209238098194969835849875508121146397738034998226344582325693763606413860581354703811784740987474518896198114679239745344287300674574940349055602964697799271073471965730726986998181145381133973139865606318653853249633355567932686595897445070512400998620056983890048302575051972122104515361275240088432258644116375108173941244209460062018502271134152208915802752517065595254492060000325112854485692936379240639146804156754544682360422050048616662770179294248861563022011198449435407775804245516188536913768171214177141491725553141535490859811791830753633434210352513747299797243283603862692354901163701073367955297304369907189709465044541815743219364915199977390000391049080308014195596676340904409772974822142235727973273364156352327370394005288838689249549116123549627171491555532456251330476410524018455731059839350476567894883426707211893718130891425656159171784569744082182040316913594356943922368562481325576771367614724027981335626041146845875877785493045317677788983144515518330367166145646639839099232004616565651381038571458374111470832720986055297388875742194516009075740123162122728840948831965849461235557601067271656978046004418666919366188561142264599829114726168585291252288278103250431471815365787100854961173874637137871498127299497915726099021832020432535555575245543421861179889146239033587164343233308587936853191848191738453748392040399745085340336871825657723793708379508370574633588445688080060788505079685902782418011829001465514466030044621180994330902329661237328328613545829499245865726605871549943516969129358840807744922726583083074057829434004419186101466476275995198951212491912615999151434249945573305973759446717291387193217583863211079209388593052728854697179333558065067226215533864603466631401728344579000143425702823975948152801419699112547793472770288170871614526669089937082709279415242389130770108703585194226408283519375345333974093472055330262787637215591037748942862402157816312517610235081024010587053500030796606098168947637987235010022685983539586483190670096776477058669541888789453472821167745880551577362361042634799659406793694707738066949830122093557595168663901992076413873537566565725872668372322864246751615016016106348845672754287741395919851196313387487778837304003341449926512941731497112132634366014634762198391050406522020896391472289308447837528224028933160136835461971460122682710084982586405852236722101295572808405351937521682595501307676066915649122202347775200161912268407369768966714693164385332828438306492036208182499816889217514530286535874717217992373187905201893785956760429604396441202933854401301931804080374262377837922872484284661406912078805038821716024547601583161787317865246011384061934118447911107405744160489503140912949126839695502198936299366665879098086382344364960982154028822972574579815982849087573926783540910113463688908034468040248099656140147647054625281174286143003596056568186844362140880362440022684480774150388489923289600743794060149306355677051160478715751620079840595760346776704969441851080397673605699676643204004907076245733925988145775942804772669262357445503983258265433831089849072414438965261298776726104919324839573335980771434077498795939582271565130211812864089130982980673236589712458870852885439595946443192043811233870621931356139722621641420926578506908246497560588862817703546470276257311165116130200099233771212430665842904395066463894614587591130944236291994436030536482126589046676160900435066116169579927930762333752170381303972488049689305780911457378498352232904778679153861090022901087473097239500747274103271396422461783731355417090425609954307732835235639850917424008010749609279493154417572308191232643335172959187872520545771997770814596114056278735997684604755893627250344312712618977921364159581531709652951889877339257761775360418262878566834816036878776638594045575903184750523583588706235848128597118980148124306946943056136837279463497618973820081177760014358783676969825313735095428730955940870086056268904459741350333425420676208240802253985020711496611591912620222326121912359633508914304707928352711503129004617269148063844330449939587984320265031099147776899129602328212547226951971907626709623415178891375496428636398219267187195619339714168431349908091862980705096682926448847558539677506395341864412565081935763624769622253751288801439419425539139349641363365157722334342604157650281945785513139795147477957397928685909737477791283634384111199837290284365023955851709322495431721269148780183941892434050582318090247424637420394904262754825841798302351973152811652287859448353778035591438297662635271566690647146662389840064724651088928967571272500776308981805562778989068643373333110576721304959067012478053183219507023316251635589225872666914538766441411308676217648549212545549652221864170883573142147316516933285239506141142289874845627624404970393260058224121623573917455509953222594132569302193725762096511148563964905627933921869994612076268642170171932204534567884432989700216525187320065699542737685359831676936790882140793058002545958928727335160802891353532820761129058995588294693238498620612650336533758602765690165635286888112000878095469020648009467760735176969277738672410673629608090997282654741916777830925835978727702902843771290664292000493777813387620420375416004124388091588214050368642824082548412802901738157986100934924922749646171869330111871452858136601038730948035180639895756361699992116417899176281350175229453228736199656828034180708378341614034203981667528315254235332516668402680939899020763678557857475473312003954576423812456307913567092631080854038131379970032200453754328580169539120574072292216835133290124852756270618141902653386858353550553907507437821854169275508014588258513571774558719760262967910691208802431762128778882544664983113579116454860876822982904083463083004735405912077088728802633891511727080728331186527283441671241142969035156710282902458986239973686375158753268667704161073390754356881459663085981200850043363996688260399253953270692307525356603210617133303272600702422804577026803011997771052453038500907892265870259112246628277590540133523849980226852691767219674875614817740400914786996783641244876352338305881630037192167375783726408755336992628274798849157907067136283505506395051562517837450833956701250103299127491762280783476332800167604849643620062358246896946399783836059494719759483152992992099075087430604485762334977783749529185950513867091212076906376752630543790719996316676797649438110779456312787513349457333959734010564662507852472418316084879749853543387126992728203703608345362176263914058034552961349541095111590675391388868627307809280971850510041644029439655271486267025281489525906361891090443441383288497391716849636538544214735820043292954974414991830850791850616472647734493531363747488673906824995593270618006309008193881497643349401702192249959355356250633347114672746388633456515898836672774140024712280743252470412700634336251526340522844530045862416687989213147507291208408343401644930432881200367768109893789206076635450708105643567909775885665207097540997776638397515171193773684203571577905932687736638325659847464283008984393511717028065751947764764012713254879555161523474121271617498172417906576671940123559801254254848187630960073173325303769995437284913668185478739828767131636572833124664082800334471854395973636625537022742368372832872640449480699648962993704538648430749817668873865955726227079812780913586374932688637183541087828770349143942327747658125156597021834504818273089338382289087126322287661118236458094411864392225851109509460970376006098787335317963781938973200834117678307394841999623175319730818322515018054517957998234940710097198121216490471627310809236168454255352123632651175932563349739816992324553850629270558061491839619956099650875670829057712519303071280899384464248536408441363132354139396339403940077516672149447954660040350613407281880446024433406485280410317019459831124608269559222057701664066444351985783730168528394607453785712004126939048698096498465752427010288410676521706956283343028741987222769135995445882663213953525230433292559088837342619730482892765632929093917655980804321752089389411322645678973469630798865835793217756319340946694262044864301650858145586082221284581776374019238561915104521746769567781671485201187098760919372411856593992675542415465617871292651190515218988046035360975216844744350807669963374726923382244026823386488973753428154193019215437137124064217955981410501382339573215610788596507348358009484701340312988432382983230495267488163197555501232141582558379708443111841950889279158983338406607221098184456920929880413560843367357176489966883427530486178945663906366477442989820747238077008025657199846756845445608796610129911823601342951573345519140618819508849590139957429298197674334646869233358577710092484380480253814241490269095523587627183216970655008055377339569843040608238157603514183619128648827911422808625454597887492962868175251691500455223944145135615308206240768947137831529033450560762195166643437070487015179643989034716998052971680090697964793555448132756160464361280718429505568627711125451514890085546363042042276883080074302770447044184798492161034628148359807453427943507815202856061707808629385806188994663828016327496350453749765782804370933384025894517793378918709353924982051876911347663159760483003522600678181055076483989852603388731511263732857637004750189501864758967580025019124823406603671763188161628868311963375788027104990523399327062012081222755848363679000692619882545868757717804823781769180032081256934179664560446340392393013511060087124281647425644299512167457216239264186431387621528535168081572543472794066134283913692635405387686251267504307925207557462858208328901741026659751437631795385180078162256565766845556905421743979774404073467962468319924745026319861719169823039941977638854994513981580834366838197855220708781257661938874137008057587514090898340910334409889037559585721730418170637860963053395392459568925109896194434187998008156453727538913204814387856373119863038223196058184313278958039870898599832407737952350331083336869139075616259848454391868507306551482937374369030220278013733764023232742057843167258287538434052227263094319510291104687447891036218617252799008563691508700936987569444721428355527210832840550092075401307803606229552629378654550422176261154704414374268275862880663374593295546780567098765977626782012121811314875671672413305379568811787170328824090692103541798524145808503395202920712716767099956271819518729940585711314169344310375243853201536471742928321872469991719974259105307739705816371109491521412835592441700398608822931956917380845792325109455168355607376510373623388631721628555006592287929110476046163901007671972765958699783749007887959088650921744996160748754566666722299579811221275234060769714523968566870793173869363948158433639992277911530951761952203931825347689920787246905922769555328737723302048629537147946636872360840541994330965541335141927576284017064575876211029532245424178484243257109096899005622857830967331913845765949834926649953683603400016257588252197025929185836677736508187222535933078781803990475905703365078054551716708327317009882654010994430778399974779978491219997867041735287062464038707107903405027414918426109574912590470969012383463312984073744497590649349704473084945377427496987261507505354747267713074443934205925652666920594973363934947926890271940420457094383657620217170333405224946417744101850683562970547978308238899311274825833842771455613738310320012839460095422441325477481940682987267645355082988542658962071785982257682695826054360674429800375428506347235764065474655350581273576264397797090329638863261939772758811477082906271851816849873448856611217545805275755932349560469448604627128804751158567558842758762993050546907984415125928864339173910518393578568432577793487804927483883707800378822550217841004540316693264687757671886495314769377574123936610834671473707074520835594980452067566981356259628143931557398880768562910563730351995203331166608632641383111671553620023655512494037304223654130001862952789796946438120921897495608258801202295082745049828812780040658237897551971642959194294543207154108394020882822475221323938984195127332943068508846536251928443873085955242108308475442929876308931627212154925162082232629691381651286822993838828462185097274384850885890720308527152636870840712738421971727096714851556656277649881376853213620464588442068953305176298067630618678569760395592231733672892662219350548886594929492587367547387336096057455992377655413657731474576098619961452915169237295240671122618828795586630010607852050964152740378689498291290430077556709691929358721460443024887337899839939786317028008762551690851452542002728238427528967621186036491167075980067509297173072128724967135538772894044153948924213453392160350924014784900359953416149393830823367075135007349468815880251965527253683178077144373937924586847444295850758819715308419537241657076170517142163248532582235980165665688935706445765036510506464191877935947636466965255618954720972540378231059005239719794380362328432184139397497634501888682570396247178996830265866950986214106065898925828125217880408197448562293229453132551022632895306863064973103729987954627876452205140250279115454307805550719145112295026589048590147424307842317603018812172263869186889645239618908466221287947106596447137641523664507054556337519458329707631132439222890747312829926566848224108123455875674973936928849294731293709435306568249760289757507303118576644159845376365736999907228317313697047033376254001202040000921491796539746298549267248713660622126111986091099210105785331932518873154494579940312079963193017242519847107779887851158159420412065866738018499976025804531720279720714961666901710980479571548928801416053791974438946260858324076420769811972114390333426742217551057034282192381875356494648238689851749277179328186400731293582921141981153816413939752237812569118540662101146885863506393218213227080772136968479270142720129463402828370340446239151627301319058548810621142278434985436804247078452931789437018407328806584478195523695643742551543942872309709218972789132315914547022478711857448632657428431614236629192961761647098884879919485735226898026624387543699218196940943738223358376368630840550264797256810584931974124076555557105362070487979028369916375845538187639075130135918326843625789956935310680533240309097581777743368769166120573547565670443339893707635418143617174432400242823591107455927744529288437505787979090504063939717857959130836997392699369467147226929253634641055340733852849101795056182458974299868247279628548946232780306037782850474798890224067631272633462723926697391951230606456852727058112915631945472687543911131912650448830340889223853088322916353709954200899429037325005885924713318689626567145327492242882501582610421796104082978969680944994348379096684648750902665331449047593686080578288382982295495797705235527157846044135373178808913971807880996796621152324078087032746427787890797780427728925631560874580295238484591804751897863280835102192779176238160494635346311351291529117634573352981607361346619871062781820631140534976910027305759533483751909352865434308593524211421033793876031716027884533068731715040894009705888705712469115558083441136975697208314907478904413374187698684617470992796438955219638668550404976039184839680155234679296668323499706014827206941162359195356358434906245800126427626340228703239534042033073249543893044166739200368429544220172344881261214472362360466424440802097360848356576538397911919743448715578506786369773118684534951335701324819027822547699168105640050047911028171424929172146005388874542649991861877463630781342112207795968010246395217796929712943286790644600528246923480745839842181584629535762185144515289203923055918678216360497650891180086729953649665696834851912263135260359820152240717272938913584689160949515494019870504140119830314038132325990901034707681872832267774230037541010723016514529668900543277802894745052223893244216524720536983443881491390003143809802574852393935046568260585260671316782902159829525032625561835843646812405910422297511470771957189338696727927050409582009834476680188817505384984293880771521428811628966126006172337221281797651948346994577954930458552800174582574858028643494827693988503350224409803187888337346912019872315510139403353302543876832952931209852572283453274725759648955802741712138685298743899612491080166272332344037032213881712338870299674027709251026497229867767756709373967389501049243312721778650913730462670710442570908342298831963912349868254414104390922537599815083769486323409293642345054657686007714492693260067852090217006139872165372668414028024107880921686034029450182623961775966535093346660425654835151096093724903200731386093525768921726797361104148975318191411722935907916395264527465264053007827124868071395491069409014673842874655301604345917915287506883687866672855412292378460914397999744652265012320985903990616193179324526487528979565614716834779780273088612186603644686797962500683707579713785047837881429909071853409959834503970856302981753845472203706385654353565697221219930124785829325257159003963858135763018877293962268584965726058303577334817220464722511502940920491721929509578311830305076344362701653423440200348787506726873361735677375629276728174499012038102816711564493036794518365053412892847321753703835690169652540880489169782404692590617749147277778972831362777446475535873620470689343986807221466341373179253501809935025845221579892401404446307518641216984983156440504586162096833130579918615921566659976274541337984446357479395017020594225152396543799978594886521828798735060579349578066308122311016136812340525142051713375606255090472784386002152955775304647337781944370671417639419432171639563274857105012163023163126911752015215675208753768457274481339270010102697745909853059373668565621319907843932592105530312458413423094210996340639026784808499181967031776504076713840584463411557501389335103460994692240597959588192370985437964062789610197097418344682038141095687535564928535829162454893866422945163224451439454304515378377338875485970982516977556262263376653875766907242333374187503018774452250898384408278993930516033100253026888016601380338502574677829547300301276143179557292151808114085695522366713963639516432653602783297082975495892266699690365204477897646295262457728721469896996541794883168472186565746154993138948649703855301705990717086914038234658489739007346207053655143247858203550064382310026687349340264379748130514569707362178554150343022830239815542478242882343329009312468973240951791314463132230762671074063133345652662371329838403683931856629584566969139360459351106379147147437458132313228109820840589418062192489323555702943653865925407268744735271640807840267444136972316515106794632036391149767458370662582710895933290358212999610369907326583145719098464729433290247571402721430503599250446819900906456886330815940135077538684127296933742931202893422221477315996962397146876364351542795038799550668711329075225399795379338468201968395498997212921607241421303700736518262602546149674676562812896115912100365966201368771134879043520698563099154036198678624094484029598874142806833123860077876227693266597173176248187116194129943536183779327060842314800805441064802609750717335872830226899704772544267840650114077281955242462453665925285722848361554136955578196097039292195137742826197872491587044059393617441259645558683591699250192090132093791791201551897071751520775983662507907873186194725325438300970510377301748631281084370423967032790035690274869961505282966692380010556769764251833868694845125234851851786827035622169230419207059573800268338350445596482984184756477456876647526220834184085954135705215468308202954667824867899851657780738436509480407203393826267455090395421458123041446334870663147895784812595450152256569866750330295685328156783427835273442482743111793033762411709879996757667461724208839232929799991212606861347556154426509096715778785316881232759551168509190681710315220519838433533616616689623609319349661026188605281549521511617973438057707963707216925975616015626255307547648783528550484083735282857393040171987448089632974725861134050781150267512543296397998363819699561840305402345878235808257373216077044865811790157539696550047750018043934569425053520853313929766057693221183859624704696684167870101956840818129337007909036786500891269312362114832418643444473744996441554318541373900696957722756309879807281703182361910076952894537131132148639766626404298388367975900660127120517129976280509769174780600336660774052837564324038508626509197739954552414223618016047378732230973805964819825300764198242754571619728631962015663463073127653526275021823745984822288790160655678587321714497587592285810364655051152572306216884893413296007921525171381249621856528172949575378906854533620165739012997938703021036302698379303143381016997346196185926076758247739094483726232282580424236613041135368781268042619738701129545882878446694215340886549611600154966124202656126324155007754526557134977215523947977280289134282187434221577623131836334392518882544694744933117103625228685553069235386890252020521614135495665051394362824917562557050039634584562213013712803808507950721255004944745781180468026125285595283353347865026552609538979793234950804094145884579471392447935349479729288509553508073067102770297523104203052641290756132207587914363226091206675922967499408815881164324258522126598884944738605254913688029704963430915621887308030717801579346091711157124595161826286598780776278484923002839592405368538301064677759385289417639408549843456597008759240315016241976161505343465300652062374581062371334649936909378386774098680624331808443315054756828386042719898097935823883592117199201875385699585277814234214044777537998579949011451625518816739279184856927031663157402839233782694168646441434334759158460201892626440260566182670661231001032895074122383235525813693618366772777257586945712704027915556857748736657384239538795322934745482133757612298253722766907118283709356760864636460067335057075085562756126350282979746659120272901395584709750204054395800245036104730579365504318163210457155973704052345318704251098652937371896959292900228480109103566711452463891276186664155419840103982778963401381631387761485949441508917237442809057091779477043689282185865453342761008947053910249137409602533722261263934638145215285228939492831734812231225545911945705003423887092676011744128907493238873916598079978131125551320884123428115736754938204240950980842184108759011704565728688811863199342659015821703675272376733201058152025455728398902830162991549835940425550359139913424134880594692582607881782068569606388758956403697327003373067871495122774940673635787029960335157089789862078608397047071688039043376873629167581856097150230765503258753995564307554439992181572469121887148010395328485835492361944731357970342807121358771241775262168782193902354674789203865202697991444995015138534966623945247241856179717698722474590603507103062615550611897815824511263552013816445326570466469070657948319423098745791106418698087419028592277913261146432318180997490416385605431926332440530451706499174051820517414043546166402296051729963050278386601867132954045501698432536285636935323603689113999559824848875959782000955324964555781979879947369847740182330848295781784140033035965107316798233041770376541092779507193218073308261096629860261079492835274932937874782634045877640377082574265151169130908484906661708378408290094001636975942577259296337044339364431316074124731341764703686151766212826785232461389835568786002040431734637959904261060916896964359483091538636429540156281940461925624445195622969860127276551781442329496062156825137301109875464872977514066913190892031327878697909539636991694287775166564377411821123028209390104232173985104403690364594974391018456010836622748475475509967742778425173236771370851347197050796688295512749916151446171269564202376552993671948960359224236554310795000381235979443037726574216538229467324731258726420346576329872607250455316417730084668720632718945195685933619623596616902534915304117906077461370586275477851432996472838297920705623202958200784713429142159566861450149862217203427623680905071049926419061833556731958887064533792317773323337983599131819013669097662939555561423205551278259326968752254218997080272475128818545827227156903169663243205866767905670081313477581181276289241857289532735241460144238497946074836461756931002586778562076455497889282513072097940312137064409135281378704560024712645612870833901523695822923634140966892041486759920293622761421962025273664415945470756825931347494789895438978070224206950076412228619385265434725169765769340523029447781243667539863056013226849520225737345224822291523964794946835521041334796064642988311119129310803104191054837261333003635781835673743175124398373075876370497216909856718924240148171532479402427609295607816555496370552635840173246145751996324279452985958273536397201832791552589079290763398393977873519942805827201511456304611844108222167298260942416705053521251259457077647833837525477618277289593178499502322903812285218439319030501143881132675831465193732837905708771377954071892169544807669470906928205777420454601711201960780098653948249672700196436023096871415491217777537899974468861198105921388988424801353165115698825113606134180778044296048959056613618753354978961585685457086607656898744625861839339360072549315151893907309620648379643386137431640868235113789648928802796180383135483548898262151782964789742826397435993011867007981788764830600747500037400936685472849103961165045545885733747169873729288616863137002122922141825177274606407567041204096819695292074931981150716727536332691855548241636529030647563906246791309823688771256115437036733825785998306700131988084631293211826686268113570842163898028886973783405640064677849344740767847936324711173678825155697441278343464878795757515930597711991770497485362140852396351477891617219905406111332911514786246969926868523118015900822892648093946479105490286686713632539316107311310366137535339165161142824243187698633701259540780409382885740030638009181753336982928156617892600050081612905818040976139493159165852453932739378378413627175046537254588147030862763065865308903519286508743187970839628541040626435649392866180012764835436570853593208840684957071768300994314268664275134558462180911019691020929260842431357853727726154198059807120636290702543912613954421054650893986776007130272072427169201927411655878481693646121356938874630744221183633214399629167126484114302933643431196764122844541253338036789850452106246088488180918475630727286393426666079941147408327000918225225953408462972578456073480372600952720823121698762854558960916470552954227026077480139675317520611890115187625542482912368843537155581880422827879130543420816934403629260063763972937641997594460293771296498653300557993807835362871243482288104214371582547066529251313722273420272479779245564367685415192693888043125327835030140943049464488376989887215436456430141614168982710317342394455613289899603430733003568986941831135667571380886508733448641316639447520524090603186642316874337316679101147261450963238296919764002770772441225835890294961114161409400346374466012663170760148916464189651480063130558519156547184195720160849605609776186366479965715447403855411844426676238024332823212464176202520480216102602705961653304977485307118620208502094405590370446098093168156905809548675867907362786582581802956284935625295058153232807970304052072509600998138719036705902269713251613222069836996187569216930748486191665820055383622298646562395595073004503318033887694108021572700535852901543508827663706589150295678598418893235622840365378605689797910368359019870195347179076938221044169051211872348578868711183753522998184603714457946398257605581789175508632561116725848657960482897708426626704160803997542145278692058117613963904494628483726404925146018374037484517749351555867845486223104759096094666931313355201249868530041488435491561435699210673253585563675027140570870288336591942123252746597334526910132602943169619295325717535888001897049012319245227698389437956321491977014935085203951969583894309570784422076651107901115426409588361459568372742907515317323458147286899697099129596646251430406254998299729335570295770143700287655269058774289071290156788057913263388492024116422372766654438380710436393208704092013347649121357057281910888980667520539597845939732540013023307218363591178228893143818057464801056446023802973392729644251238963965497488754275634330978935486653512960219791328897881605836621880108961343774016903270002282537152986247124489756698155468554051682497666859578018987836072443693989013245723032942220207801597947761454846534701141424860238870478466849055425182299805404363155634140247314759100922427582919361686406873201864869153761555249321017447051540942759516338362198135436553900596122415013297378132323321949490914065976761426217077272565279962358015818600343140513176077396633775930720703347532876408290070794174049326498773533976102646304537551456958131294770894793012149524783794410094515335652799627198888962690655129826622113238505934591254082443561442156250472271967199425118855590614913942677624415563191330750446902080478579804544119724356062769398696184560372142929814710158317110663102227469970183468182276302277687111294834875824917826759085839082330826104909185928534542327214871271627194171357022451500484666315685263311642024114581524365158197946069963276821623431774835347451748991938840889738449767275030894983041993284521188093139173310354401334249714382586461699411048265003283947430846582948418221553460516962976963298496804895055233383997751057295426478833659431973314901661164641656093936613440147036358436353844588245768096569029431002990779676719329880288804834050028368746677770725807990455599805045572771425095423402301713067928504842409769669571125503659192695200239545307109317614505883786895376139553810159294130691182776652046677381160125338373275453845776912041753775516118128867398764347356488892207614638019990740122075752314303743199885728359407175254586495297234479035885156440430661994177699845331998663965195269964632409972908042077603510452182366456655833932223772770404626962455461557269089877280102094507843475653638654924930668323739782193824051543640077287881595054839934533144005250351336027182666887269039034481493999282840866016993359342387707540885262570860853227869043462189898867416913187661111370938607639801609831613931602194837073678970803659464673258414370466886730629795156099051710496731594531606018277084065294475756076936587341777409346434389784344260015975700921363921587889903405723438598536608691746076214725154536264281362481465101920468288355860368260057847883796224342267847214680257817624634731319694033593863097488170445629070705411642770884794762737129298912965435889485288569020514640757587752963746381689085872176977174812152837091030784291274592260190682919312466809840470514538054276981925573111562677005714598019634004767180858062094140901718990203413033979351594146614965932050163938035545590213043287286894957729143416239254707642648055350497985019671551333375310323307671797960604025960317095678052253963831676160989773873316878252188180320733556828083398832835206953541297891037288711058477228319311541500915769048398256620954852536864174944842130522127458693712473306399760010174691771400252293470054600338144120855298928199573778532486041668036780997232816509541601968756603077902853869117978354406923902375459769173951206034627805918179225074846552151753597871006237456656662907964627991011345422755931024426852597253960233507372634708590718980144462674768563064181193229331380853859756217452869384277137075417090877491135429567430454666027519956822856252615767389589682331597577749052064106390770139604475994221728284331911026781351481273738713704344900388146355548410176971568363888798716392279420757024187712989602384666020061585849817312739764594281491752326656398095973584995191688319425824821802855969112659511089211030307254507881678289199980923591590891509631456431915640464706001719925859570010587402897048959075211692545124553432135637295180543622488368698838357215026808486542386949193647438289881591917806416100874377300683390822206689278289358539676973436496191012486783846979782418287858985070258219756457792052301847386483721364181105952483339082005133362222646030182127429776497470816522458443712565803678725192865549805872013089523648289732562936417001272982309646043354837659489891781348573637554192286156379311203690328939835822643311740002977103079432467701560196769890190408751414384048658227561529486685515843976143711672941962906159138415199903515182523730502250275447946234691146497061873211795633796755132454867565255054335044090672834720048109801017143784432747185717323593270966166330078553664103100877379480354172294769433588896589876629323035281239744580892760604082380670644066193165205680241182798967520212563211510481647115014070225038705759512565618312647782209977976788113679236218037845816815353177440628467371260611398950479568545776959518796430633891312274822959721434497447392303433485868367158476435531980847114567576991461823738675912842829717593541050669099730134901009337148525232165448322134244796644631189511393359151613661104967163552388238505491397466897086542112352926613308915189308487320810346355742988527755502805916069825515885272372312817684346021434998442325211657678598417725510069447592103595502012037472716927762800346240872481980942810281515591853522348310034544861951644875019638040134038273171052080268772940418375572503758875071115012705466279595339064469251734546329389195993760154524464849287328956356495928582598862792663227201117566770368912190762193211582324915873658564563827590775481961239273633277916461390581877786899297057580942124955344862815004611065064868508654732545153697045614967486509197468768401845662035741427501660261773929269783903214715574499675570866868268924724210083099640577309387037319120828599034455722128409990125135829741245598122127467136684369602392023848380645823456319762875422795678454114507806862084668076875560325989472371390453737844465471672766225175543373514535031448375240706679232262161420976208131351399564211380849476196156373169161286320748144720896985499952434911211452442611647703410159274283607907932514183270893413232490773807773896427875868235248333380764957819087529824256584436891126985879933366271298647671484655696680729291956654682264817595890983828754671952112458373306409617842639924856762766551940309936264181035028655913710325684180300477983688006483705374554236515867294813673329072595319559979746685157766968815829737080531011488845249354518650830425312078929109649592436402820680488042470676253142040674921075901323550508505256943839271931991932513868200574996253985021016902136499131526058016783894082753549380670992077133487069848027130046537214069363849413169175545203902267263764340420401146240007092502976052629734135890543697172185686555094638216960775879946850813874524708835382268527520030830913557858570196663397972638341567173305248360994571588082526345144789799132098378743443507757119015085527683430806535122594068313716384748297852417549007596245200234149605315067986003077015513588754189515209374006819742882683454540386161360720173857929403552987253599553391050114019780992925111471569964017306217912066804863142118646709176797617533246934960320556183132082488310596630001048020816102011090062090183515417900837608058351723019999515388767198157283292290202913577962415353331491708265946171068301276889426477286481094746604136974042935918852095955088281271488095785528072846516593882940804061006546966127663637529615207660582569529356658081932618573043285193636891159479796300395016698284500441001667552992073926882033232889770655599366792578816113265933418608183093583663868698409513987857149837051920342918104473182288496475524867145139693911819509048979466887281156301972717591894613009701370623620499427952300594574291855868813427038110274106332432754291397688647444241808287461373146179544187271422157129466007079752523079908478864526874048474120681731514630140707188692610178040365629227066611318986393926747249912579114610470194562218042287350386303559061142114744715858475474003382099224806676856802925953865896860254489129975594555395813293110030494040000070653044269037502308966318632648703979755023034914427492203535635194488206253320084335422079250720137915693147851065314407991790695815808315031655022266963972908122287660664352932518802345576797500340177702653663851778162438371231094980213314756540242148121083919137905608388923214042617864168397889984571794608308842161470800014567228945576681848288392692796015582600781207233445462286157098365631663170245627662312626514836567204292493990214281609799342911394907562821513821757991832020732880740758390263661415687681445381355801068327748744558443832043831113422164941652991009770588246639815017134710987972093316565334082242160875494849911202413598544657983960506723849442513059325576058933374509391301403711463336936801170814051904211068622688924415805918720847304114211051000024968449125703010039114127127780728593951216236502911604066022696152453892161215392266455755633813660291627669178541410203630605694743060352102352401453751120336679666504144274140470806100227617156810487250190192481851207158632006169868310048507369225982795212569103022474257929827580536916912480817745139241254438495135456793210881207782658339140587339186718995784904425752842426779134308342158491062634633040556142106977767617593910365106875576029004236842815976220371670225318718949083314620881727418889188697925890589642166636417100618849985237471067497138686496191467394274481393931508341812480803654947703378506855484598247817563621260709762714743912878288720084490541186157440396339867198179784390380132251806058597983951541568147901494938037715364091039515547574028002463560857886402719280895855621991070035542234295193497723783312103806384397489944085913289521519194681783977310241853014194974151256007331377427462297764210888060652776214985485032290503337249937793263329952518489170953424729956007731548070246917971240632736589357832001569920674643086666003087022493598814366522690069355366644898839926568730906687330675238480951827205663508641947100283468597290470333925492032614410507383400545731359575858018387731890202080830733066941328437391726826560220033423250472593965910400623789101876628301684685767924027781209461572051185668202840057096455216347183658919086560554322962566645020859412060320655926949928137502059997764757262075020166698770926234891977389572580520938403874496438627688163844230835914846231932050732766661083134014855752519956535742930931612840170660311361151149681366608813010419453174199060752582899111317994055911318559178657825813715020870693017550439493884984703623992977749335387820013987213147543728193785617082966283672810298907485981090603024516830829081185685119137931710396054145951235659881707337067805348116843084779882072639456000805442832717478772504790251460444732967549985817810528282539526345960248221846255394544061200403175216154511776072203017593689480002098828689974427569170412688276674456097460426656203695070750977429892865409500277385109945787192358608582997193590394137241915223246088859817897368211991843553342605920539508779614316629356632872712102497078072288248151643364165556462273845911281408562465134527420406044248260893314135613931173718695542336833398613853492277843634302289585895734935550447568220740814919574396119992122354001013656887161535821281742817498536032541888840821291691849217064371643720147668113454814781980218242339821817966226328177234538074479877696237306657536912337653877096590178014642898529249099823462612629562148205631905698694888834507948531192451934359527940588838476121942325430036852547386569730261021587404991603814700079073303353889323932278282149897553934731370701699892293732694417582042489871838159351693072337883655416664185537786425671148022616061805035637143993935804113935332229699397889174404484617290093702053169864817228469141085614110565580307059524259821860909022588964885190188603041667809407806514001501691421802803695906953702077222414079863967949076176208506919324279790919710511848235380671468654501018988488531165610801641250586895477164413624927208102001462185688352341584864577807494369439598119798382370731455014309326760819123915476684779896118460250499611939342128831292305252626129352673082804544076272103106563231385093026584208685642291071553780371164866119883128365697063685802675740983185418875522227835565463127190813151849008347492987077939810346057577841241222495659487528618907599907428202502939380706543512549939715076504190199274920603560119458594583526853731248846930938811772959184885252642240382888087640095161324983162471847214120821037161968024277340173561355275172461530751485293628753320724717691373237885161544901636114429075055576090581240878035354316931919607377783784436181500794370221829089463378858721212117979144474875881063998155340905273332799062550931394897740308736041222376928742861730281219421307503175033402231238222680940950079646578767675484169440277440113065963911153487756784330371693913794545204272402115639273375514346983265410016580552725342041738603286319894233456618200702959341144539895288990841088213801070516758980975823104369544315994870849758911136507811015227218919966547338765235975391472167862263512223893334867904112671505829970462541573639719270138000054341967475445474753863663306439993347379694170250375701360876788518584169783708511231827898795493078943320646598924563840367493014601880657506558411673758892626360484434313664248830365775466228561704307467585788428339462941924872572116959382979282065874119368814609233483471996952947557463511723883515599296902441435250349498619672502028258951391328721701215481142900402659028886278321976200033289980282064895202346069128751576122102033931262194179872043059051473406671672429162594918274294931087448952015784870773095567096391490111978205729857772941102072034154170631256668877664277613960850713222406489644083784794463639375609137471469476493947382347775034798074151197756893178280104081137345480463387853720620749675701771606183633503497769118241986722594259910570677798459875314626512375905695950877424536970269283083983854085342571953129258050731801400433626648290799044068935170568154063251340835469362494823595426183789081397340399872376823671252707713798379904297726629899964360561498136176258463633880703068759589425995841263213826634071466948146676208186138965962702957937294910639651941205407157573136520525881429444805914030091973019310225057510725650518165732518998474565960369400248618874452984421556044831277159018859185286322348543096703546799225216257193329872630763650395840901643059966449480821180668600044428021970952005550343128546733795970509009107211238462492434539763626306512069979006914681553571684973628748571294122148384029122985115735338355801739068784858442711596219297600204041379504963731561198274692768423884962457542614385588026741623645586779232252056099389030106243528288378552326189867028924653933189851605138207802902927004474626917372910960085155417733794743954746941934170196768089874492581033412606517082698079403241288613466105445052856142709045694017239974544300804851398319916130733985331718614623327340419939120629121258598178993337710229265220698029187560206132772335369689072775716382506949720525500804193040893205620488207912452914074295146628982261404297813128061097201249333826758074118061367691068126022615441810395165035369695758018633143888758240393619517319460623335744780363224829438266646968097984891527488234842195099281187719865409531411840089572572189894907617996704165996053425444513820695739509886089382200579840320609123647174123793060962901305152726639682053078276657824712299436572024240203798859795248281103167836634743284506657848113402402292002736149302878732034717179454774015730059311489463488793696308599200283457755567040075821272393234980335745280304344733451037820057251868467377324008026583779706592344821263795544133191326322611024457103978395711050420136697151028834972295852183257341139921380923789260056912550274678262150569226914161497302207696439168988926094212760923806785383185885882859566628650789677420709459428345629159946801057509910766199898461146000628522344972831861427137325680550271154589196259271502115141630034465934339497525450491867080247901153160038490071398810666039903493407168306246877454560395032531771144377623110709649467505422343962328858338108716623656207945620695345512668148595609489060881249037126784172666551617324609021679734867271930372122918816875927828683385653058406585693196271250510533119146119509432927112696082923991024613570639758867043616914893120070922381861400723912486605248069701248460227512551838933562929465590412292404494579815054168601775728223211179621050247323169661926281615174160441675880650558901695229354342901664061777612519920112047015631987253513883946784206873836765675727082041433947150617323870657943703312021734719297443536375967223212598440515406960224566046947352990310514849571389163542249381536762729072988286303652564214700429731745103350589405569977725943993263202428919940365326547543322961058202392611910678129697426209530583238096604352280433472744088027970336179373446567859692060698334027673075661299833572678763028552327051934270926798731888507791055129001866890797428634061384398883286018940727448563793119395752278068455495128271323076472107119266339030793214782187600134788251158002354505437490440025135713016266403748773809185952691259966793140142838336701931843352920795760967415691931609450369459255707390417414616402919750030485147593425624817557779936286403412327810198361642286926627404421117122730110372284145628000449134347933045590459376395716757030624876055758803122755107465438065873658673485651741538994743293135079326807962961849464117003168552134489700752970753245526940715111381604729087215263163769315878876003901466138909283567487713902474269996243278956069297653470491222146280578598325713047125688208134143989843904172874582069143856105035370715888942143709824925779904440548313629993486919839855287102318943746191527449675766787435025726184996042948278411847860950038349492853165545266831169626140170697327100070860208907084870752915399581144956755526223454701921726454618887292000655869025643725913362379376883941683405494298431786198852508426037940819062152587579051486342300863935511487911933767715474663341387153290719610174427501192927118232877497247073739693138213111264289522153626741963732965047712632811379607667925935453966555844616803449040055376885002606542906735453234300446447643301103315089770809110825311809521628514661579231914137505543893767191757682212876179280947865969090999057750455080814489813761611727896098294288915390222636866903875408544584357067765301418676289255236171080379686695972156471368312627497747744493953537277995345452272800210565436387312119237134788207017441060818723058255927356986533819304111661843641789147329160716528762491461828768601303182770684324949562899242002439940182750559127748005584877349863081361135452278488211123560364101314571558800636676684603976440088261852221162836680439036576096777735119234630638279673328845445927083268029046472027680714865419872100929297978390406553257610383996736495467995450903934688617516662295296892388289619106690202053424416089946748913406968914250058353862816574772964748672803221690729645934443634837142494754045391651925682158699465052472200792313650180110636318797200103216278875084899421468308685515657876910622140093531875940382882071190222787098397337698631869953564289121558640824475803901729444016176724936199625059705802400374935446292195184025165155234463359256824266519677714536709336404642798177405229434402161917774828268800106870617869710126574868163090167448204298625997580924388737287469865739694789030100498297111178425152950607655102919945989218999189414549817447748863166930975271591873577259745991117233492801455348019640762568778436622577570137959862259817387035761013650626729235060830270610967412533881829974094822499625135124402406271760175722524606781824265704992327355227552053594806769730579610557491514515114763884710071575135954982632712565194964888840179234345025902712264672531776187152059701541886875706015195755277573375833990741789722541431603678309938268377145614775111193918720786011197427070967729735776217115984452423053285957128315096359292024306498119707693836293218610354066305008865112634986621387108571823928747903492506658831721881600526786525801408147288041494560336143159492694250478990333548233419249516843416093421907304231245345372662068649688301257127959254782602258227880079161678582883912511973805515107955049258788330877592432937878993607783885295351239452231057741464719393313639733917710964016171155898967018380567074282667437286281338041154060088824979991084620147469068780491528189850884862811514718798368811351191969207636969986757849797293702642386311989141067155873429611726077358762742947975170172570789249900575800168021427169193341229888485257972107750591012668743470584597348123259570084723153028391008190343370659486939127735376138015845297853311026141806810336412719851847621239364801082294863245744726064793583859738315842105142029213977474963478178485827842746916156946193570326485961890260803579436508190322112539710807905172973147633183317656872893023636402065759770616276878848589434737039785151992603915174943939528908244405789921095535712784257705689837829168127277504717832424190749132540218479143151963613512796765646092849646218085823929471360629527372388991322699594955762070548162816275780752206632519129411622103061330092717333887686735713011372782347853468667191880620810776361973523384662810601594095067868197601772058122616284776815481544344466224768013712713175876598968496476192739372309382196334008716468532513710465398373618765160169874845690310133027803988559968217273207161531475834684177851753320554254571437258117916179642150310487660916127992743672602340024765159668274804841283691787061598260168098856322766230400760625659619788799332311820126623691105733120601721777173380843680825721368878874255140096675195846298005741706621606975929815203883615384509820679998868335673345540018343404734339860703070097550157300357016634295913282094571626849925487043971197659622868979592576909309046542825395466317911216225833077006235880419107856304624925169518461585355586526933008987873510764402751368990786578908392167088077693661500850903036283422044933126843972170594458799282755602488274816274606420773522952744996716883563043020159470914967445774730807184930817998891550141857624460262433534036028318718724762271644197603192687794909274301184600331985145815160015487074482435697669189988403645878630722187727384427528603593360140175034347811399805792314254658500353599602041741199343942143027968270752191101518764032912749640763335895261656987114466135995659513934129840153716080242125334896025568520212213386416553644407031969985549377958171782329528289296799226653030545651439483956103851688790692725200126031733446221655448414071717544591101299970834890607269978046699770119197753320062122632501257678522762846213745318067047208129743579033631944233114686592689929899108483590197116312380618986806891820902178606522241489773691223158502608905415112274946670030812546125083725258823993995988963454486413411468957810145124826174325969346999128017763944554449405875103735011344386097964154663258508992908114400814309780597637998652557004770679574638626930395148994610290131573016364689280404830167738061721403868846596290216071297287831271060324943913271363830850073750298022220109070748346519122585354512261852430023213833330007114977796029740335829374400330714338096910565397819125125608268962459365919816597197818214064015143678040943030904198151933764067615825127762262979385381701700388797250956675035259791554273516385359556500101042375696619563431960465225910428446049753729958946704946297654159832950405159431688946251301624874258985858833836489715819809565787863190544289649352918666858127831858640664582810731450642993885208414540929975895529295303689777528914623491595616924766841577172274551099983890633635824797998765775701939791376276903242732270503222598800082663106576204906079759920131457496575725917867625625948210251373266599235630697117191564139809488144619035196120467368557392937642027648686230631457791573066484053108563457141508098204831012622558476122993739189044756440185392552418044912822166630629826219380109288462243342398364829380543034740556717984863966849116250411201199721747626713829653796689934736904334786143947406904275686170659647134007467325123255468702974992530114672585488198428010896106815347970279745702293585379733608000789045319477985734752230385001678960880343049651386968705333190827975963781360010803769500348353734051967486461275753331888777079557202443016470605420412219420208840255425498900075699561275029253902640322665553070442359687870573235468840597546851313251247560670953037450986661498716292725098983323978204663601504343643187465316600614989192163558538571834490910801519700990517334017068493296354538761862885178368499433312119820346495338948647425117796377087663460183301266136784943148283553969061862752919543927827099414788331747588201829026940491410017344436139798399942941015582671660684564885704320920302823004742683433172346580891894983716125232338499459853129912331171579900698368646434145239481207009560885124337569122537223370533739234981379158775635863660737368256551879779414770875229259092939082056317310883839481395493644830117762697198478884668482000296345212718570207698150361724238301587588969783755157235860604665970099155762262028969211594609262587027677176400868884436274790767632513013363234861269711150496658018490031632656336460996471890799194003784148069067078351929015564533443915861086744203482296717811888073929899196315126066714190922232634930237885376650696093566742799376178746031414189771380382009704941004744691548876141721876598528674734867204346597709153399015351569777957039804980568282651538583082185902508415719686864615977083255052598760738893083274861574666199856490493555232451138651062659138624724805116352940090434661644424647361546829337128459843996179060050074709561251636761820680847824703162971881421253169237639629696184798501432935374428277139574837696347161519271161651845214274948615314674843281855322971665693321538831846914828536800329736168588799936352230509925888978633876841939645831050712881475605114550384236408214723239746797060308012643032133392189686258893415403022445167002826853770266269306667125045937446095574116571386385991551089373423654962796653398541244582084005010123657241527036933532198012693937072748131111377904133571269577752292971947901227241392162861081729311677851838398080257886490976286803141547787282806651476787414276443649126021386613749768639128796452777884028172264421988092887658687963189289382051877309696114776043606298546180315464635070582186381854957689723892016339481079454703770955240418890646469280383943202428500869039875396114215049287660175551446744496851083204681073897315034980519002411183114211081217989061100403391374854714056429071055338738915052305621909864605113428140029620806337336978934926395675699564289472191045559069818713132553392765679908926409138769264174211326598079329778051799603877519183956253968210142290838302152927179980966029002298832300502158957844008239718830695640797367549987981785862767483075743383124637106637382390070652551821655287996120842445268459985385915594504833227338214716339486785613327381992726493963751588637481682679042696434419507127055027036351450798907527416756396027984226527067610433272449195500131654352810618271832194183719767870259539659804448572181609544185886068976848933154459070350006839199019599135071747027653437366877530998145430132367718140344146983157260278713029436736890392006204319233544841951706412210894390029293013426436153548589032410708484549772797947857163522348902653656025290535567759557880137354113674560549048517222243447730623748522399265260131100369941743305807028778969533801419286076445362545882392788418497829256900930941695904868447498418410254041479112449522404356301430346916877643740221867610595479145888639367209808275598046290454759337467862314701331758664841938530678241078780641581176396393404749889262796489415843943447514423848650969788035118805601701401643577829109087163563778818624307913237846284411468294223158582270067669565613533876436742513398503409357430256684000500061797229189766430625836742071084210256511368487985277523365643488476142073453431426668512059144129882839791371955310094308658139153666332357236673281380777418930167105311868700054171309041437951263802042449996471410787393363708870726840417118801649367700230325391131150732978249233720804057438115962859151491981746835298877022391624057814296129753935100572191891920313747602162349952527843206123921706965604343717521115228775849237336415926758663511036641764804406694437046685107563194476846067274639082519527389379006346843530816468669862532484923479294482447420422349735177211752982940672092368746250045601036621834692456129378632351619664001696226686144797930901585741462281395170268732065037906722958793726513199374655516462060238560924947887314400238405034896941150009034493180574189754176988878882432585251104431273161512651376052512201535033965140355226922863322445362198628904096476755809407881982093575364022079535263481150640219492509169217398217436502445651851335289300077652975838774652302438504687663897218194637112258759202997926011132656229311859721767692211155228118016107063865915927231851776321850275488355023045020141907136438813756231191492915901478278371200908607823969894732999100339407330724781112915360782282247726087250335705427471707774183106790784033172875015824213055988095275544187531009176611079701599135149131694751978791609348626162541734963511952036229663045591045037239559573983834348033299742612046183683885664227748299520600473035511716240939152598200854539455704014067758294836933299756677901171136110954186710036393530135965248723601203440462397213051221059944504551044180289329862433647238427371569059017397052122325528159926690697339174250596548159781037702509471190132313661624331492418764724130814026002803036567816321639080142426276774319701457114455446409153359892388117822819402238714181770443933668207218806102055597704182682040254464741777165606829205288383001990373974185300762734641891287488540490123596399325749944687801049250314788783621067584137847637207834233277002263628288669095624643541345732046022116645295228166229351368436842480510307995712384834162086446545860463530961826672643078760554886853132531162571719982020907944245636596167156584521576945694736620020777825846576920540526518982225555988281933704925388988214030330841046686500116367138004661940562061766990875709331243176435265799242885802995051213596671615294520426341506850374504184276529792933042497795938190524614363148915230010601224963045761617237432035335566441536773835638253303449394842240869766071239086690276196565711516571732969885059417150831625299347360932528680775476403025767244319830569274814829893959594990380179441676637425255459645665417899446392703318304023620060026266262069785400958206019477015514971950970942126543511777792920591998743605907151207481404409127685264784033983307048070988633457330223466483361456647525362686077393369539790705247056636992887821940534973824482179763425533217624255920482241493963491093009225994379707833584520931326234207969990419939597345425837329964494064607738483793641386409350570537501460934228787384064322732218656733892240102881983898961046605111588785529212342989164224485381506087187921724963973528970455677241144792232665937043134959441162000518852674659165856643704017203920905679876837511439103277030187453030243258266146456494346375156740237359432615062296597186903512394389749772164569536305746296917545118241793137467057032920474194274140432441309696352104341611826266943064386157939833041048965408150438485336218267645194859423039671362140804933268933900382544122815364224259654458346910885385043742731320079805657284202207880458615670354506173113975479235004027931467107398447435449165000992683974440284318066146230634636909882637225901234576931488857589534034986838271056207589502730920466570913101921457856935074161528881764126062485035409493504920999173193034338288172873185790290820048563805462370871841717191929382026834415973882018836357516987823905499084848976529954323918270505402025399939919813728268994897066878007518403910821874458619734275061026135672009075279014206145033614472947620050410581103467107177280748078085317430427964887930553019685298319324253065999118113619647488572265012830038407176213176780892204298827831215638411326067821981465038012469027597861657282381308495282096428497182198361164598544070742493705464675064245636714294953785149976532106997553756901016456655422770510172189915504261588890810698607854473666090519041399385163440027083315540836913144998590440830541090935714004348873904231069341680908649013777544648404794632986921905262804206829599014419831593717441024223394580099471867664640429510841990931876498554086755985851562669548401002048104458478517305113710502704824353493315594160298906201910612165634073052784766266608203076851716219638687406400299848582651160867744999582141496265548153889805958810390759307090580964421608840198893712583523736044090898886012151030949196181514262586072598518408662589450015546016827527546428269919186500774150709495464733992329542383081603015200564535554813198763719630214317496938803958389915350296826259192129955071639757583635922704491269740112470043506121679325121166302645663836665033655666210188744479156891314011632167247355320305515900366629890116520597670254556019230840800049496180347107357000239309082928739682759574680700354889877097734219220557021207948482463339509558440592179878215851302301262636909030164753916018868608518574997021130142029195451479454266484602383076514950302681668834448882019615609914254915669636094009031247201092262959701400042690070639261775992529000992330982419018261814609572005915281716392347203010564700042505369637842887613432656922639737666438766097403408201521993537215422977020513609851410674796673165672038927301446575082448299750876737932031543097669725956217704723463470374606172548778377294247914020782420513386769682491417114564695416785686982591076878801654595266395535244410518731684257672046976085314725914236604266675845459058144064833717627809158478693557255569823779072233514926196503373635791598434658712332388784587852257417505830070693068938920668443662949084665944145777443740370195623918541952798670070786883556047116133563998238601780841340810274386746282995776762044403171842479711389521839856421519886450382330457436325086375208271427164740049469482182022031669416079396708804003091341196644666021444182270387575754571869808343627081868766167685589668980814993232005065845006051834481048405821371094885802368822292884729473051510497443483799053747388801954778921846606771620468982742473308959344504769097013270462681473168010539768896267152405674395256122041149833032386384010575231264894669156132584069316649422763237451464364293901162598188781748246266001188740647829341709175067981428512235188588044775021516697380878692271735072743408937174761612339140747234568227631608354233838875224801321826122286963201467384725701917399676991920206788061184564312993152997598966092632414972070455091523207156198501263063067694684699682531398610220481590110226652099719139917217350314654602518645518421604690208500862394855396582830235118233194434302046725829402138954150054363564385727246375705034876900291129780419021151629739357878862508260846602495663094162456358987459099003182833530069942192799742180160461248356512857776083370046795392337345406945822452540524100003660122528826119835708680176454236426960990439466276181398130889339394116218524345368706899827125626395513046456524689134802634218149505601077241064343254744822404695288929136548844309172683229256680319038886035169203327939952638475356553758275100427297475915668964418222339695206527228439564667565313112950058280560929869710586874364306318157556014475343819154573039620295527821140708451380174071800833185927484018550928799175687446008588117526371931846511265476033514329520346152473404617742347219412585576275861102906604291060430659728414609100968279593447040511553178201228041153209151645344753762525663969899887305652223215433563488032990648509758706099903828045064355753251119468929006213398349720822606550224373674764704117512370228908004892627987586035484358047897630489694852571101559317748129862281969603992729452434180632653498109267317442123824681742379735712952588488274264176120330437119482579178813322270085305368288637174091968911245107230040143112281190951589888650128582582561767154028291465869990166966173801898832884422139813018072906763176683039906883395764130512046689016228404158165943038729488304717786472417014078467790674061898498114134519021166814689843672575146484780997962700572926911441643721069567072608685314785401367076509235711673562928916031895988532210960984577208065089412001075469040964428772188906441585028206651228484888821378668771614081405911424542585492181026674114613809977442535305128944973140675395993033925299744625942260969309108609151741818210280933177525304346917354349973701341351063772607533631571293409119347800268079052156027104694470379722441026084434280639668464151935804263225817844760549002468100941138374395067636381012265422008805881711021815812175935615420859429604577341442457252660752416014776171281418292715271906419216268674807489382192910702070203853523927209476770437351124966942115850439881735853515877191920315513961364886695554213163228067181925075661244324241779053749927743259501222961508135157362167628468673261655418914937199355215293940679050766297515500725596690573322169285511315710200553168803438159172869881972569586642336734477250772239009541220082151609604105677222351756530812913958780474949717194453980280511440478867665127640959275694578154799374504708576999475924591376864863691337561190326289583729593573933613844336971204850142050056226525581828636685003489637371808059860106610753478858922149812535233708233516568617811577600589501876340964861940570628617202824797431190270912088443594183501621368308534424925745877928293734368191322076582296339597622348855439457853507096278055096651630183578311581235464197915228643716472587578762461894480884771974101557770144845187335374062747657445040091774733362803117707593884821464107363222613188377428378724119674652187683693137355785714278965779080816481446944472931641291266239565687443653623458560016041642332543199912414313900616321489305739331551830188689404020644285269485434430448886111494117691614536050794018982450817841341980611655507558650794603491447880416457349786923327005434419508450095004192643056811321698883490277301214840880348220102347103795640855905701121044740277872581567859355190467935990276871717219001103923226450947842752505868847537625254886343362392823588804399514199537416013818286835847675997539214820423613296422543455929424681140158515224943865273117066277947023803225753074269471907512927348459354319751884349745300266646413352170600933285159752865382737635075473781937041834587191872033333434459405591759168896975485503957598071150236808366232476335719674941959770608456133272054978333768016005724948155944307384732467023308297725782654531906439589511185579356910514296930449209513065691703328923019206863962289405501485811461504931366782348412296960256791424808438873856369987316492483152629458261664233521428445811654304436117242492629019707718698036052696178320395687159810622859007614555894195878118775107958547117311719951291268346794729490618822870423583283670297603644480623897729607897258444280180449766386376636549190529923517711641984850341606381439616821582176407729426211295623357335479474972062263844258742037977241280655628621326441788258824811729722134894956097377610641623726003777333365008516204942977281755278282978761033139028272695953821078783495702061104793073643598218615291687624391116614563363764766945147158884771376621423077344182362205155633495756650676665721362743640305270906846314414515645612949346064330458836170559606553849843253567238219229180287445624457638820241688716914565140309063690169050112072944427737105838443854558829641803113179337816860736615379524405088176344013665391371305276572420499142469421537307092908771267069003633928298062032450269047489880647329863497091742691019195673632304414643855300609289301525078108607409948802814899429907499819526533318686976582002534505145856429975968937640269077724624737585454039373961224634606012415013879580215175176002265745491936486789661442458387772203906039926657533320224607175735240351137505133534285795738864468609850799887275610119691250584064793697612282267343955441711768035302424485437305994364674868893983038524629883212966350049683528389033703533927824945787456640145127304906948349408838614032295993545422384139813928933001094558493383884908743326825649819841141866273919343888668710215731467339173559418116978296500633068713493469261049435899991881136238173669075490833005267712472161848416496144796598244998002924649140121174053026777746998241065784806389905853203970839768314491787756159653396556651534177440996351659969735080913534718921064215916160357638409054456075455983000825678341300704160224006487874505723451897765173923051005700538313827645653080027177113592782122002713623063488425329313548570327227995321952648679659682925433583683796985173049432523823329286302268945100600329519761827862969456719550955822136823369929768739497004817852617899913797361226851268766112056859766123353286635103173168665775831509096414568648268431572991834467969143899738183486839962149874617240269532229176319631451908668686808285015988741865750724676908920062380357687620731348344288273238297048533138733997297691886723071575330874126569720125462386455412547986763311196951865946902824078136372154145341301785661654283799902355140668705303027233504531264500346481337464693654188251196110032233350322693534701776675584553307153607206739975548757143740603446276783852018476182477698801385976339040960350260514617936635957483737752484898872970541730415975602210166757651244162726397385487698388747926437739741369149632982108166130417085151305490467037764462551561209227613827904858550729567379190995337836498969912207059694719155998841782631948026039370869674694678016717873459249837396238234946109878431388594248315652482769960553293219127008565254174277338547673923680385121226963082709710189686298199501377537054841063771179319259784060005074357649127245370470504259426708005977964641751964846414659397889983173153721883904537149719332537464591063047941074947057755231241686810298296289584364554070723569040408812103282102630907502205502745826795465029715567461013472604968206739572114991488301198745997294996403193567010695021489717861629778691918204771515136279743882932162434844820741911582031703634440838473743927066325673411766944256219408708448146190627315581078864341126626487652389587823578801878941372952401224947331161813504107811217266554054176890029783812596582679971289941820105054442892364918609568300273698867638909167910573291794417897292096160318720245028064145529233315568189656921907870296547090209757238234838880474524788652090688123871991012201669043080855611768620849585290217792160632267645570208698872317096651018839075490431074282299132614135341043726675229230023050521652914568826257407065438959414000887525652574086848904269813942698264303401441121707101671359493222226725112311916706711669953237758238636040129680012241995738455897967805051175825097710386312477525663987828685373913377475138029055200603346633422793561865512256039394707091939379606278087587293473382516633526966663222986976654289366169077031794316154048237853609009353217965746002556063227590295185791785984276115131659023034468518956394757736837667592189276581161143147344331411237372229326488574926603779745608551590160636778837901195675244862803500683020030991834013046264129491266946472520021182630469186581928788676896232449270911174094618071720234679305839430157530016179845526883097935795729923500535890830996205154724893170355574215658676714386854895137733168895397880760586417817611879201040535667890865558099830237320501519562523760183269903579064685024774845784366785732726236317507812454580843865889241769095623687564262035058969092509030519295486514626904373206211785265450295009352465614048677125108754010040896135672835995459804726873411351395165368958675027892814430899270804592381557431610414434083022063988668587132029566151428613608504450169529378695776418192615646349811387617818240614973459141335283412225582561725343803329204606109957183689731570293677344946887453452506928914030693989920722933101611245188091471146186866489813387517988182003503067033104499816375343338723656872238851651206479380347473093638131298867075174087233380016971462601014171700565323958381224556493569784748959384824556784515253439494880719826862103422907067771198459433887222676876373770247707484034526096445035068879497067758643832482115197014420205493061959322983694056827041289358337861117418944019351586974001845106997476620574830889356296420386816871803672388869123499336319159100872989288746746570359911373568404079363090175889463372438521555128266315688087752061870265625556872001451884248849988778747608174560420241598369060993357107596730245629348788144256028031239204562921233091861654835513884930933621299318196673003134460023179270093193859464025614575449731518204673716334706324224367870986714141262226819067545246663216452924984819707663399559781797468832888528711257964142947758995173594741791376011065674611233418427681503889564966426919729683104149490425551297412119420886292563541895420381563571276938468644106440598485538732053282818447525846180912876295015884611289126855952437774940343540166008607553157417423357168268562271862559538163294269457858975619831391836229956504909858292959508799329454948973618781904220554892902793023670644856520687781552437311143161146315252036714301767603774322201718806715327054394629625251354833453792638779244385924712695176581988287016113848386565900659753093097546411687181661189317196144339349752996342923357109532909017794055996185964769722981308044570279386369034695610445687271599267099470947706081740068650978926801479071561930030430466085740383921951969448299218974875521336866672491270739293178265687913214998700399799293785984460066516115654128423010863891859630454125036604043186104062421168261829325273138321486787043143649907920590848918379931609949782441546610056630798106708397543925486209154816539508299502228173549119056207397122162879642244131941022683888091206502014881340351449233772458859507898690595673035762926393567050898943786476905993793873291959010181538615986022764231969829894450467934869225014135696413723466591374237316734910320312958626693142074662932812915555672622806582297267540023830465878018658549751134879152932187525114911726841780116316203386004752257306140200878256289685970014088184150131813511757459846783643111877489570102879257821434337635242254842745515432375716527789106785978812008975160536098873454401489737842498797831155699319151351308738540694141674876484020398180791485712199143643669651686150242625186976360993613360975785368787307648910850373351130967535101819112194229643686997669030147328689113055475781635491664593506197696084577971892216508664390861797031125755864770258757756328518690242946332219546529081690486495601472589845070858064646847987906017592545058051495548149225309421066362383781788969435858879773481186475570389213158889801981694669941637987479663122290654663789748555412054993666357694914350282865707278530281969531356172651333457236484300629360951612840796284122532281532495620867123716633731829384694557429181884499168175892539035622638005322515800319452967085377207220167689719789249182357263432963475838462873270449557427920535658897315648636003039526562990341324487195280724816221481780878450209620183910666689044634736670600414143209414402915234532971370893939167701296362204582170264164597130367188530887166990580368722748460920832341467740200354364674928423365720905539130107281940768455566144478705976170865607747312585792052161835698624632401027665240466162936365921186753140842181457751698965440691979971444259133288591898864400815444473458689487859231800539246315324341949968794469138042985820296932947914320712134564085909982979465971862062726103273594727373087116639013219307532099968291752067949131203237375766060177549798812939144916191618169926584670046312250912352657705083971910388163099000292078563126069661622193816904278487155721769641415663264218994414794747598738605262338900559351399338995230562359087539197889380209624795563760374659131976227452917266533153859294185897794851461109731699993578603426527398641839866080300623574592360310724115042198447357173534281704573315606614204413884016863217287480041232696268393754210857427202449130556036736120142318977608454841079400352951968525315821686490840900232569369267351774634578167549815364910951125515621722818381522886558407095709494982717847180237904800539350476271115192541954749759957889913271180958904239831475532107394532513839899609275837870526240283244446092580810194703497486014673903853304828995389387814649293268061496398985879459591907162922779874442076836802539299068226651924923999020627306484917394643293991031660941717212105434040895493415967426133574781880115616226258341480556048268252537060973058248278096901315970713273260622443556177794649737575480585933587767266119965720220417831292410083510187186040313004959522702850743294990846069570440702666391205190101519362034235115127730938800763145379579384584224813272669333775952499628181072602446543328657612285371776814832791357854666610995513592212032361734624101834609326611791296626567326616516992233773819780424713358403082142965740754358611296561026242321484256543412962210617755562303009653988509889780508272888844744145079816497985411057002619545787282203723467106473801063526677178554693456540491894002501467936060807338326529377169568197345159145845771004751228942543105545013427734093168152031270080884049412341142885741906599728663035795462390917588371418675328605773933547286794493906196581476782718029910795562911672719852118186315247011484802197608646560879734413882707252230700081438270383572764444480648763726251425512294781074961558562808278558872769201531606534679510414501014279675153021103800945856547026086853168611507482882852613228060291375565282778126325839260150686288350625015092642547543918515096468275483440084752000232818507622950024829391298443167818935894188760752328840243271160680149928282260269507494102087578999855468267119900321643833463447763877819607211778188398101141095637941433519667804809587480107800111688183013191301453943972762474213039918182240405756796878254092799824572272024881076058428073807530493489803459153857552033728523614026325774147726947672066858300487433614912942855279767820650054385902389186981585879595179993255224987022625781789077923598689181068386573160970681634817667185018235368019423481781714876642428189877279401449757659567471317942728926211673460201321106478210173445570266277230862361625355577722288233345107501377103107297319390796681701998750965938089681727831722229779971374238374896538246428753970097224040070031309048057941556527053314882085964437718016921531349141077211648768765761244973865301562025698434235324085229065344188799183115685592377048530246657226796407838875854199118818563498817118054278483123285899392286597426977237581473265618139199486431318535559772136166089914681430326289831060216979655785125191673591057639296425276855683132562761365602542203615020260106002434465236893765882590620285985101264897386799564200004160753768725706587071878000164400123832966039095678116487132556046203097964075599539411483814798019767901985018880528658395777228460912449094592448970776889062523931659716448673309163448591944066743396630697058202039246636174502693642526583579135926848920189528173514470311538837272619929307546083574471770330213307003596678936142870159723829934921689656475389805326310872892584358935819137124390335905334792926080769270450872528520111799108725083813215156033305392881407247831539985743567501359068843345798154878577055919326703142599083405802701997335570059823679570710747853816237231864918172521334579364464868535894945524243567230723953302240501625290333476777299316966306154243217363029420004776578237031628308292649023052971146036146284901821474510521760846048848488418006569056978094683864138576327128341646632670361737276035258873225619748074117941609084614517884681568488863225642810261738621946472220456424194576739615649086424241862677129778143458275659959369341035061448817593493521341280548777990814942105157335464802210592987763845885191509922134498279005964971490467773426728514574111211963195570891454982706789013069935344655117076964768435701313565340820809782757423153171316084254509072513447652864359642508177419537639106976579140248549501304852456383724444502958196842850270710952383385197859682951444809296025669412620693197090180543464998749277849745673243169871540788812707626705620631041032350820070673715709123895857331044144694619120723536038284936567520127833651193783886660469558668190043031852613670064159039534455488086120839649757095169299503341931813162385150976324746401812638571360320805438892257768642655979693673948743331328681993682595192491635583891670598896616077478405186274578784018408696415260398171328969282280715467987518129710178708256197689757497118624711478920911474651195506410839910912240489395494500531339842807491411463747591579339169486687310660453339793584470425662387189048281619292295597525122754744437853235842579192276344364444245465491766152063837320796010915208281614589542807774881477996897184873226975318268902491343646288020878988946013585122629967103485858001109312330189139623021747745002391491231291540537109073720918000731619391900137289288196691453956132256599203038215255400354988554807221397221304713650426374219043432197130885079349274220283756303353482984233100502403500170511769759950694982749058346374467221595189156938157215680931589866173762959922861758274229854900807561530607039488350903082667078093622713971977331074615307382129647562841089134882776988411478247360572851256430119512639667096383247801928591867176096436895090992910334617104844364319050178965493320705551476345387788360785906642750115761001971231852664993711438784748794558278691194927269469485064611110392516830667621936972637452558690040632412916027170770608123118960609260347411623243800691015165913445880600551869109038736458504089138456919723815358257651372672324467605293824734803136354713578647103944195001428659082584142791353993002462206031173237084912463063199060623554762309396607140227698979385338024653694124450170711450054736895541626460652131550770665076527037189372428788900528527826396873490633945049803058468896923067878439181535083367224464616099177176418208377118080180170299094206965558126893671840563719854759530065676604861984583137908221904469436156667966935846113603419252728273853743920371215638556538024051196815339186266781344859446788044433017971811434043312466973604918347100398113100792335125909115376692396301227444636216027901388933587158055101008411190363436868462901379768971914371556281230540034417104811816049925449349102669346230054609366741424556518550823392647740189519362139745873081135755788552638391809669666560880105716298977200981185676359191012876866759723220368417755267911189438858470916945150147348705655217632705337502912557929688280767197958420340518416601473304283199847197520639058650807600240254874900115833775609211095582478037968042028116391717288661313642614464812623892726134770830417570132569569327107646213465090236812376591985735168935161327522363216506949677877846127159072222822645632092479789702453224726640564411094590800487228572611708586602181803118708308609452567957975277533508164196854552040145479661706660019128362570174909953769755525653786592099472205199549773226261161695266298418901203182516202032105823399229437876540207834949302797601124401553288622296557882588303353835731571630657733454067483843438564162315750263160241009729354588673456460133280595064695180709756154455176530498816390309198383353234418083835298162614001399432999229826628118952692723018573645027723914982227961656613952863697041020034573223978007244727095955434006410571730828425565038297267283749956964181738821553657411820180513079507601810514164840680128961618359564415901731569744349094856581491820216833654933805107265214732149153055915031664576873806374733129472046540107800726637078933957269373597059840782575101992303161754152648143332803096352694518398464369735066318116754585903011477555511790852891359621813136570648611901460532092892705027670640815177072196670633634671231583328817521566420799280219182987691480576416379769838145551269351913685414980323695717362093681559577237484689707129601774020670228851720084610917261395247453099519367809863152536727785065508647956079651935029673978620145827904823382520811215260879674869181907141366196427329372112529437125581934865981603116461393242637977373640189675363276341834439261705785975870443074616048505395876009941250018645062720514058425968655103082095822881292072057504588984674327753007784769593846521757137309359503224635024076503828489445031142014674407608416719903137322811655337989630674420504046891491384992245981748102649271153883622037957157083707048055513712252557712053345465736364471705135581072741746504124632502369970292728062627218301842287381400637139932463978597196569953778057941989395824191913110548224578305720503853794083027876735263937114264478283042986691047400833771250198468919043288113806436380134482130185878919417291418274993715448125603883767386823475790505219419496540350127622727534208679168641992266009794967663352348057704108684357255300996594609449767708353500820273962216393109340917917675942858836125861432322882501680910814111476289651427487329543359613234821647136192495624945323907743752482603848185488807696562319376559915240189817313967557993033919708213048902656114030437804098652997845532277884848539460826733003757267837685687256760601062718598873925043871106861877080217151287379190158948043269904842860443184659911688725802126412705971731440770019833098252092888029097400197854298800881739488614950616934958209064436259308375755429859679175558828769913484618474075328041727451647078799958989303345127601005286740715679600656208519022311162588019036704869203324003227788217129476803410014380345990124555418433630326230834723477586898313838047911143287433418873864935097050551987976505889867474362245644143454156615267495804488597866013490245347830522576054865863755217567396419870291538575760344048629398708311524742824794084657592290523313115594941863784030841281825940395286766789226583910535613826967469736091449110499842280137986131819350891689569750943296117025700747648551705705353232850588095746223581284935911952364074805334148223344576565536615850534579768841647443940427235474851226818661975268382731524554445097015879545962027678133394961048166735941310968128089070079420290212374303182855493309304287345923139075245142110071073380352754684693677696080940978830484599246874565808072143659979201381924034194099829547802982597832780770664733061537185760543349693310109687705084321263662038942036784537962325642840870635011783246572711369075666978134212584667228885654346051409825740400978159922684195063021470102994528862441254522094489815266017241001044807277782183303498815128875865550822778510986574511487547135860968112983950428887768407522544970045438186384737265175971394080710938074151262529203421145892301292643602869653924606723948576505452395293088769580252352639594562870738309752900527269837989697752484948086943314695985924066225112028422031299312650737003207739397855873303307689259017129945224623642173897151893700994733163751046494423398897606006476918260289531251921556204977113449180573514364389038230992714039782289793049229074914024147186318802470713261097562916283209177146794905891569696755508375798366442220825778590965610466758664437812017750255482676808830769822786500447139900050792094838731948630691221434230884745603847851156583380224613144470324875341585542786554578739240779785630110495414356004435312665734572999490833028920055795125049341572152166423309948849166221603304991380447713086094011944862851050597026620071162562235601396352867214209871908796897861309175910937005881478366238210583437982563405346900225396302476201259418814350630080821120064722682511061429637333718431787175638013570822651963327791088962955816336159878471607861335378965310115405755395756491740818303853815725348630973868321587252922968721413961361113999734096957400138401805043768185184461367594197727322909748479797389698515193271809550498473044814602489105974296799650573360854382606955390122177433957546599785487278166307139297976753789414436650467238984404242050761894789609808868569890533335364824917639575812301834665260532428544569671369092743246913954270369760353208208293396964671519601278260459315472369718971220106338190998030618400850221546352577029679214595726076439543107310474397416232254477088386298352377625508883906912262934254868447647166330087920326958048569451477878229976193699683117334073593792494528570748749137096430279291051593248172661787042084725665338149425269508679569676351401637199461125164480158615457886812682771458027645223615854169784058662205653653417257523544737467162147014698456797147142906471067683035423501798155047699305291712354162423062360748819731753226095536364834301764311308692205693676243132496577286714472545497225456940305408578408413655880770259003958917661022768368440239700080803597611182641600098029625927740322598623172081800891971541096050188341745567211686736023405153272974713779803294188495665820527180469755253883525812922551890446112706648679931056137570090806240892445511449422831076025066746195564467834422177191542428867831560840625242700902861551745567432206730908531434481405654376326536257670282535868639376140051563496656308939879918316417410256735457029552279229521546200841729563215275490806771982622993433654620062497626572688709024211331757888468824250713776959548175674866593155010655584135050498302370848864772202301968813209326874842178732421454434758599446061180918022427360534503927046053632679430375417219722419227115081663478775096232622096816737897365492903687174234895052269919406380773115658614923501727337916617322386453843686709660298432571131594854108238720103495834546502082535159693384810195356814267620797766517343897544528264592159260343025391511365464553975923442774353773783333220306889983158220239860248097602573146114176822169923148923830824960874727525733030058403969428123774955918752416647473739717366921273332260672711850352660129741644760144569503482587181495304994458555005590754112811812302826150053355454028963662447352343865374561450506806190889808017524389581261807333152148847930029837045900355795850216597397537193675531010530369982564037249577307395445381445101731905550104398471538087437762273195500132374918528688538673650736256743184782021052560332086057474581603574557659941687876604699762443310570667331448435639696147811781076748416281338519195213252226854794231900974398738192822513021950592345906204826286500247965926868650785931281828696810686011212603371617113781200834267146955890351752062936694895168677372654136358845527845905766770338172684038023999128545620866555692269772644866175894517501411618337517327065451469223232136580790466438889035421295681995048824587525037988038799476974315220682023954782711066779425689121388671059481359962958310993082887134896790090810471944755329197493816617217939002455236737013141826262522597580345874574275602387313984540940689089032062094247977262426755986994522752308988932929523053115380700469545649179672647033359232040202908648652650180792035452097492366016596600612049183230080497281560054695363954100244297957124274640595650648828246826648882819057247491541105952722758156572272201200941211378322962657448036458797230113840704638015161633716980564672466678153487741419382780632438769460391875209884876952346270210341862714714632862264564126557173936372282457896810648937180095831720883769112533318817600090838333456583394918071698123778349692472618594449601424977288696052134006942633070244576139443287905451259315862946167066886112996166487458746674025519752318004729986629604778133011806148882510352126876240673665500631622802704886958202039643120562797630061952520831907303985357564233676948997757369374343293807057035509936345415954653844073318968690283935592998042636478900569195962174518315167151914246153185451001633233440033304904078136258054347069248463793310463053478488022497056536095683045995504103305659870348917028769998324782196932449353547466974546389107484160310825096192655730759831162622702746538495107561962098711407802430786949371904508035592700915721789112819471003647016319507170972993438412528910286596192981364325096066404195398883213487514936806565342483991599067011557786910176817715105118893680993990030050913565334392641648753655973481358411425176684372092547245105194576608878294055605829889358137451698807757382554472048540590953041449219358134798248995689055684169631072621432659869095189978574028760166389001952717796689358764131685638438616007269702298948002938480158359662704922025209102183082020215085509446296383270444757535524367348250908132613054669248184710534712543197061376923828984843473301841963728529649254471002107282757649291786958584260176458870604575985856372870404140015786400974731008270693869352948734502278686731954824068513917524299700297606420851384852644354344380823755269516003697372363205092211510307701644872645042145597762750272186252391424970155663752354122613298874752814147625695856271701890752760810570695211495262849253259668845341591244502236980313066278699198232680396084399101252154476556319855747015345570820510535454371166389429977682613704951428858988541814458793387359330782624284014027154457236158806348349722991619223478803188221181533573012751881793578782904134023733129073588989434324865937010791640146465166785743273351816826185988453251459389551355691892032906743479542890235709831276291972285546040390635310991163173573534508453445673309181895196276992536753612136059628973861552212334568999695968236852410954930598891191731101095482760389351978730602982190524469391594588066788329382378190259227918293014282129163803479150634374913805061091938695632457611877673032259743245943063080413915577931519348456836692775374644827396484043509195820709449332062306766914116911584278999352735120154160896158558562652749461729357508584214522024032036662900202279544675631925029739718561744280888953981462738943720623294582310229797493951987679385407951912819279918923267915311047175898666616748056612949729370743712935809429270348165004274682141529407499059024205083323672297058249278103207858283003824971134220232344728957487399346792014363957470215541564744332963202279787984972665929291968121163934916089658201175834267943041435473466769170586021316374354736416351605425012078291415857547018349253975834258091041653802432733281333837138923650297837208851177827845696671720786404783640997907854655103379118662461513794563415595939354023212321105346007248830014168924365158843699513131249755892677893833271379877299389184314347022230204190565733260741920375504475760000898944973383747579491855800491344380247103737206950030766196209094027545798881736833384107072962251991001575440423188988767013577758006727163901771145035266291745245804630195466084690365555277746995788666428414217440363648576518105701378054671583132787093858077482475822247698328512934128409193652912370883043360462318540852002884800231610773520675050822142257531966037144566715405725434512897294860957394592304834432018568097302821735236833320653253104217359241516619161291584949889016382797963142945745167141059018993531291048038826000044926818559575672352895424186204267221502928521519869009558987981178804438973474833921572134538392206334978470210288848704540422809360215727025524890559083438474431821372145309565406738292182310138768425510188559712185438854360525047171151114559314807478084557730389395822874454240700914886205828163655030653293313664703593454010814069917943184146227301739250275487796465277667956389224632138064845992098696319745277548401543446698509048845961853101852907729249943750226904367956709158596420360201512802055248605224186358268100839516054626832143246330267062102286022348256494094053190957541640792654190473918995255823527746124746852628842897145654082725321022307218785863525332023267489382142156213531126809045067317427780555463292431871116295486325993816674131051996925236309479846593134612896049339340365291646403969302695225061760268133760794060858604686283299016919407896253742610830969464806045122095218358729446394081840872443258854396177664403419849572889704475246748031713171783429182759669761397199777539712685356303180645622835558227322120174719539367346203219190106173687728175513790224755770380823406121878693471385396525756683678189934403772850091942370682379530317883717095910278115908816078911831865635351819665682544413506845206812280984259216319934019832269303116249425247422381480242284082355683015778218824077480636613487032750404668399658947391273946053186231222184965269719427395954343759644338695415944942654143736271643221427655152941273034731039350156758031143705230688763860981454242015962030752587216420976247580182661308169194287947710146339969968648612914021672549372837741701918036390098059753493527088477516332056274267146045575191523560524904113805981597444058133599853392449245926464031037155310298353202057594240306576038132112785189616097903215576641406110386484052301588028690236730981030260149707561139816037116534013631153479939852129736390465193276238574606898453577443902181054469429614631015070613149686420276817176304592919921256366051209118935055269266681648491619142356447977093994115179387116710021679540832133883112362809823440802675959273750720950817200603035766866589011980193538537777005919031290358425406403150460325436596228315965175186662594303134537972425208505131096863420424962986860917274513363486254336451521724237951939268967229676801357631616841433870573336653662028733410715687698602669190751230647988434223960467057656165511004463557120194842490313332986030856416715086526312020854019289357726112845855965154543095405332362188555835140907515080045791433882398448022518864538962619830276271372337807511000844493047373796630161472157354607712081095426536027566738056059406244845359011742201953714539831576979081789615872249567672668950314657663564004028220001324607626940994191537668922371640689941886283083948335736299569809940122196305209472982146051613176449390704082530518768740421961444639423315319086804013876566760138384086918039398853169342560213529480953771716224724893023328369892626879565782987658565910407897538748746681311669756216614676090193070691393177994685087046170635147581356647923643858062336481063812097183626150174981574662066214142025190013768997525547254310827632554110598375079216116659271694326860205771667158929894358252490348145468085722542562766850048377665631330251164813653455429051622972095097533042487555795692523573641643843842526983189170862287245206282825770598532120869073209990895362005468896789435616088434887562922118688009541392660630916888298165180040708119176488769379333298215029677814211337956363883120122557929894675426266306148630457330012224024467435315902880517297366211078321873384223437038337499300407367322757051393115100154149832109265063866319901260120509772066263280095160920430174818637487962063035706262390465038414280876203887565530628070984151283736083031163244956389728999588819459110380934168852025241491910550564508376454629010770410459243498347610885589390762466271189388460515104807815398595583725013410677452475897201734452624635714020698470234421314841340456793869664557464235477841219713241414954309310347329194386095926137352113570580193230456696474129742193220800616354420821183717869416393664283205541642752450085038896643469401729010976499700027737291343762595663602053518494965486078514088568683101827969025252279348615447962781121772949515767476587588756156515714945936810891459165120797512756349873431563019519835631117773946971493481431828341467214468182898958200727226904314323441109581019297227982797745282308496314080178101408371094634483046485327819795589979072717090481702826409288115973870547544571344856615714566822753287154988939534733036429617498942071206054957662215807315459018508779098937450041799746952546721360334659830209327729010690835552627880507222802714163302227261862842933739940676978000097092597051640759929451884707290148129904168795168981484160801638040058655061706086281075448308899728117333517520044551298749997683336136150447206479427544815007954017887951593781946719799820003505299884227199538391843368091774538044468615676622504723625125792550174323787820787836926803638662299360114259730274341426769143917842546575435543844785648304917305138924248549026250307412872598117370078667827521834529380033338230856990989650569552422398334365284201385236496337225466597512215982042936349371722112044835234261195819532114356288161217428701021781397469770719983001816911499244948249359295879565149937452492644386940995110825532004824530368039850823572939647601565818760318250184719346917070913092039478774591569409079348591416261907312609024315377967957179842888105665175081950907111815311479851719918356328865891919084486272331205559422708795054294376067238364863430934958612059401327940530636977512347567832450119114222424809517771403830159285884449373755614189400018914235486734547328514870570292424366400061452820593232114889303414099220541594953559981679065963168748145413567217225814976756635184726653029311536877438996085135367932133230290552153293415750065120400858017884812665694572594308393548428916002471127774813950959803528309847960335304111499712261302413862852176216090493334718717463652693634042571739753693684201624104740957638803637666777971355559601306490751183166596522980029813011910686901395096540018340855265632577445641490863436321922689052414618750934224332438235868208280764680280079748337816213067082429755362960674782645594357280048870456672886863385468737063620247685885310623831214116710973675805751628291064674940823528140176761254854376638259764851196155070326453886507534960736163971229467205668299691691465270757310968090277545580130164538188246047815950767647378478140136910596557384204009537393230060460541845669117412626051801150496338300096667558814430457612236190080525228660457603901871754693884097388314508801648453775652079939577143452884498584511990188811554608323326125653477113728287132304629913405080189926770605229071200707764263852707283765632109636938283994693878647978843547145661970792210454187619333937402336046540776121469709573388546829548017572716336675351162016345717291135865588264411590971687896651611495075015243033446908054606443765449896611476630837089749110097054304364079471228541018745213172571204797107679218678533350037622359382392559284347733055048374998137754300400683698481478548379413253509076317040631701262705564487902924152630277386265024290827958779566919393212531229272516030086284076870310987762980843223821031706756639039627875146625914242742806762099581045066912813786313812053992621330278956737083060279065038363236550406123179792338347628409105456570765675529593857044578616993976959297784156778939473707655325461192941375736127008574861163637523137857099076986632224992383846911986570523367763400075591643567321767752048655599758878812791679209540987762881654679750238439846072222393837926946930461736246281904647913213141006336561744674830370304528111037988259695096780578111973773524121544160607384615687135442693439569616793844408524184143842786778977530523567293772879982488017615651017484171576692114064858806804764485635332127549592758140292605273709136677257641687169595922101945623533011615416939382600626492405775875825519088290045780429603118037618763837675491051901312859197488851416173902366924249843506522541673510757193526111094045826601115699016635787005432670630577812874325903989764304216306822358632333742616791652152965660291299749243205847861186856866429413168711808347452933332367510338205930396115156486028659207822277607272129509084440246645821364989675266795993500918035222765828600908418710235894971061396585047546796332427457362517791534060620124120979101739552603514400066036862508416050154837020131067036063967573393188567052413904025151488295994893231996929088487073437358697408865088590771027241715933496064698983356925775198578912060717311190011121159760863464677655724592380452420594778014256787535079585306109100203196376634666947082289436299597581453198121173501554671153654007083740378052936383840116955015452453267588074908998262844243696579277564294758838224587163628937028773408257623066395454747917584506308444655195543661036703957194703069844487476984974274998669213159083033188111064603229933741590156235536275927852174784005463612605319177130795893465748595448511947353965411249244918428717274483442209566620074764773459926978276758434523891731511309365842495035576663658795883739671026592533192132810856094092197465604694267233434504914441241812796471542931671059305850981834180553748507573993478013013901058363495597340233973985223750417305991874679228835151380146586664531711979124147625667917143225163355945739160537770052993717772563546957721226207704339299973702738644998879162843988129694799594897824771191905942367985221056421362939438978768581403274704453889083425907862824629445119899207279749548213789632224638964600986902140118198038540984008690803267671398986461689054830982625621888757531900596853866818770162300995687584231893457800096630999177908052031962407811899816632725507176051915152053781171540796314415215592708181292256967057580231102556531898819036716514367330165881380330994021791420481963126918226482279348303181059175848970601578737282704565261931873984773607806463644568910186930296683131789669052028712166228057295749137506255208532200824657727196263915946802931446342757914063773147307833427286610056458796541549022660493142240078144992128636613560427288658247212142185777898226448182845260174161908114706207516188338157032133721931080564354986770425980734465603002030558708045821166475029233786900670882055125600006789527792686745836094759151425831049296298055579091164262333237429029740545651967529448996321386342854858526255928658290527731817844334188673824278565415256778543394000292246375414772068369009140695435056417462888008757182431439946621310766562251559623929753853778545786731510405877222892884760135503928305079363215327581690088409292962708729739075078328909660484053227711882348019051092473631857735288621400947164429556515292008395537243628930040103723895983524399112909734810758642879870382063223071278794071757319514526756339999666361422296895753483227764599903426035116087660549967789977908965495134709108801929519921477586074191847527072222527517758373367848513754223180072316073966947290704885508479997270215920853222851388902327068134478647581351159963528457647246653035058115862628234844633354377589321230842234843734281782545011213826051903198613256819477219087480061782541674856582652933437769972944444305008794397475372706020361607084499502504690530100206352214152491354224919030675385686391689025115025564815231319897413714613429641846248312959556035730302160490974471964228518408146349181886929263761506737508663373726129856617463698751828485508681976299289074534193450492375061484652229894760611988808730675466488173771737619456828106922590195649027550952503221769216285552075600377075268174072379079424445501075693353652971439806029825360965524361425149514211612589992266408219130801659714012675701953083263633849073043246791822330428383044804119124477036001047847747595035809242690160443695496462753742230930603911994552769600920535414844137645285742811876218259123844466811480052771608184198286668405336218963971450705025365702294801522186102769131827377910667839332192285203434523069612109262305226250637135087095978133200222525539603370929310933470251403046387105318853902870870963561359045752200435428809471245552508716004085605947221187253949109255841660441448564524244530516153122887606184285226931191271298454934087063983218422045734866297040231377423635584122337952468300505771163711173473099572563630925845501580893563892897942762451600382278764068181412620352814422930805317150967770011466385246245728659942436625735106733853982826611174928257000171725273770567131421039172911467219066751304120839603767431631039171850169583737208469752535112958818010487309914069377646478930894614118375228795772473730368362527933344104651482102720927798196723102577088541466248463070811282788339168108121497857551994981456900583749625218739245543203561198087580318076146186841162331556047088867258002800849760775285791510843779750245647878203855752973897604678099921589887535319002667450889851591973986942004419292762143351199226488817166258191208095970448249676078400888090822373584215318635229933667569562878478835806335112669822242449368098559765357534043445638713524269719523443410553980804525693111428374497631188106219796871580535604664578067417394713924186904593489116521377958610112757277243566510166023610615502198049367325403679170531693211911495371667389512364291808181891388412856908219877979986398753676947181142141061111043902398760779109750357812040788903895753005354691535434012239547619436292001738442700135347804401445893582021248312695818823743788707818709191455026567929471825045006419665335125658885871127158708555361526263848090789445751880624304228485915882326975484451919648024973935693409570900775975242621016505324229892017172599630216129890475710941621900707416586220151670618900870613949960025704989065839861548156436318253321597834527233611219546881911251238268305294109442898214478720727323012932874362872832311325389426133487738393730530410729145487623185152014044222236456410438976907000272712383896773829336911029656872073964508899212256425649344041264397241635285492694096673982728575207805445521887659655359681480439243193502071641227475569598595012064020305358782039368738488403653172397638609918420062652746637311065013244670970719391641051916928593264553285370136921512041387049215127812325374472732147713035236717749524374590876480997218853821595685125789329504647050964491405711397926150874240671737475064053818721437348657687007598448767793452924690735959948641246098010602890111115232997016250836100206399579040988187428797039370868242430937075973845795051066664631045256977012894376800533320624019547202712158366931229087021587484027313234812077451422264617716818107777771329891549479030667846729588060886549627648380497492405338268648704779908986831452432391371839597305697223744491829112119209753662012931990350036200457730141167921950167287794604286698939220075326091774606866633627568543489470906803170729387685363129477561329211662284595494990249923925794692940886356589415371423689157991360273812738000113799029156676605492886721914587691768806698004488721506593270082379497934711302673214997032098980882437405744646548680677123953981530629050813832059670422916778208688248184993991694640612663101592090254569384757011691417021331075874321533037725010283972536645356631814268238728969085600381602077616944520865339109516602839627104811903451877402265654247294864373057990205508216707407532663987145217434140643422394999946475540859926199948108440037800189345713108134942735608023592616967987303407365560051516825338735718799563075841666052012842710299483562190173115487331397186870479280205166347803006474283462393014375903047701848251394328635129450841321796563482949306581591519399170265631246983655639941697569580222762202591904003415800881654739795662655521182636490255799378231361190229666861820053551274172095683519499015362425941830301286345703000612408283622091870085316634623567977352709345059387349698102521833125005284117598709312397064659042644007279245147374307727798095630916705529963613560715130636466385318598789825661340335331935776689491742964669575973566196075169327332215242152800343230290771748850680519078275138599097505825550899815797079871647040194718335730637414031037446724157133330783332669071624981643741400121627985432053921277774619621871084181392401266310262827257685184828244563019311369919723409484186143050111489531005617061601903372023305427100228022284975563351215318310213806030708601055092076963532033459767947772894453987897695161617439392300329160628559740806227412753232556183272448221420953388162185508811138226870101008220700049823119632203116805791797739298815969748419203021606868314128851888331798848087028725037079092706234059296273652177501106966029448468640934461693970835009234809768652559152290962573214871128511854602376139453763299476859960836464655444817513981407433758893667944954718440705523084003369048141464494012479565387162093619175122923820751908270912129827978373219320693678249323709596461207257354468622120549734790860621620199638591481549635952052921237711098568511991465979308967794325299525301914883730240926348215653236275292017829948143458527595242364406282395755282372778636579702780164745229524442676575893113327524094030407354014784977055445382489669816724801812414374862864605050026883978812924747380720652112010527021840465027170602179769064888943366568321503585317323403502383565213093385894779788411810586628607597413006061567614461809167374982606867776226517454986682808817999735720212976529933734287550630197326841132342007662116271150081025476003161699756420775352949970094931450828525510738949254815669464999908088584170558442192104421854152667970875968407674893309418344772854067119793001396463711879801443420933435967991409509231100745045963346943275259660618753614511280287931330360460528963607932394093021740457106646324806355746699061096345098111016996248141481407437020878055212690560979306347887842425403167537709784743990418931350777565022394902487434261555977247646749984389826567251283506386978022781963542132847375808339897528989172362339339475564929691263579109509365965224871103135931302090111625147200165212825745757774078722135034581243606159769523794919435358358296277929914900046091998504402033407577263882890222048047033523758217021645802171743794901360875068294307197113256165910364565546062340237544815912567650461994508581377493868882623449926646195609660288549588647337403170518940276851927016734061592520484731369402871907460576850290936807321331103115433676341873315869005701203697033647402006046979430676097710309786217414523025218621388435113486091828754554054192638241391209320200679847189989254776273626859650116536772432183086357565593650218406024894526288348003612916412865404743471368745426507614958168569431650953718074763018396000963370026024593503162814912690374524678447503636287877827074954746328688995754424655239996555248173223022234727841005226913654718433525641388227404547611956208184799921141305344785842160961134871797559467114352382262174995994125123904538077458628480143421297336714487651476819871376107849466122198425377658367728328307484607712406906997632175407787268383547851970714228009344789673245825770262743364680467703274106339056894101445930704191706055153280772481968496499695913039790602632908190032521047965287940127787238215429758890651788411357338384033939723857799037059110614150979310566417045641206261751274372131287930759480184587291717418215616698010821523177271967448559817836610516458263328809011244878987006247862097069597931772804429220376896837081434365337837262154419394984337282476920108862826428819972869061663009232180729797525229006184780984406004673457566517696123178265110795160527125469288146504322704868809251413291674895353893547524744870840061557457994562892531758024072142632406448578887463701971787141239951531872326872403731390243444392500472921342269804023703364683008466138583404457087295914878455272857594893445213543079174225170770657396635726772902875431951161639691041542550936455463092812102805294860672001611380209127327849467402616384997554600688556808859279474475478439832068464821786885401962732889242978402921559855477260863663344401383021650066826526567431476828213254652553345110760258391929410506266022595635951074310337465773130943830416682207308521806075269871996304250297896669414820527402725314231514278972880045789268984082350513165660809500706023211976603394711051565879376492093911845519672561351073866352721080107781360413088929012977337547549818231420952596591757491844288372876183632716387039429852516723962172360127863315747546850920684323662384885068654065128669664812225991626551806170183109394342215470987912902714043784290334314452562400571516234830592908905334716818397140853197998061628549300343380664116379765387376086028126561309617456518970276141347114711367435462055336761559653912811808874263180460756928435967892467398582200347208973868986328556958536100044910485941507075197592986396924314324712317967881653219938879382441088330467741294784064440650335103939239853848052309884838623813348107727518966085641857979614276380814331861236924941735627870853369799836994488256508628627596045565241625555343888140967199335176687255433819690380546939541306871874663235850301330547114263718360473181245646085193319552856754996283423694622113990178414800790859069645036150565880505259622726177133788608101519933624146403034877467816731233523862769806190149059845096461645430725699129188904210145988232969855267018890173781488983875599063435181450385734235633434749065110391841167908932038249442468068013381061224073571527912662277345502627621317819765385385993242259874801797026384303878941558914105820418831995519605171942681145530205380313175381679832578953149073897466007422259589288604726877544911322769326480057098280653217254035361435950271332069928597292578077352460311551396357979411437622563725458509324611120161270530831418818108132209837233093591529292854572242704593788697326754672705134072196286849317967705703732809733018861912957862492818539925789760958891310947533144879376792787293840154300596237556095147431752690375394325335872039503776995957117986376057716890199162810301390685252507113185874617894242809758808081147486694613316432790836050019986897162201070347205644926456670949825328967468833443602632788073507127901874934534711328600429840330794429752232138735129069443577229766749148724643245108485654801740085354514394143861753605868224789187460083830182213580912918031641644643801050588196388454566279880818179281953535675615704381980591025322649215521639432904730480992187506203521540329723519640121454459520233110176096163660377929761586537227089732425418659854446971144229612796451441767356876629578545659709159688272330803797698741675569049276653387567527373577834049981763721366324933331599027951414331700840323773055822347859925721643515679653610470230670438723394513265914396934435521679426494195575556432654506678202370194365316644168243922677436857425878973926381274619743859854093644044827787556047137286156493803255667209339650600751906003023849244142703040849403980035371821232004642809478608806529426987576621809685369529722030220971383010255065972044973832988550732472980348010395270094786625243516463354289111098069323972356219419920993784669408614224036812628795177744062646528513817753159022521294217698216091897031827454201968796449008458086359425735242800734573242428538161305722874425505928663484022128179926566904824994272195740622346608322986342848501198484302673191874225679894895895931517844160291044005717439457562602689513824350036693363847568899658628233683251817003126209863302526323906399473080606156562931933532201509233439558579354040862553060796359711877223915306375132761743207786670342811232870100884243020331919789363597267244358897554151688615238100546072399300492019161468549911432735200921887113420591166148663921354511365455226440918083506611688129584781919468446982426577179645387579162655172583207407612603626091963369685827658658978250453437839582546358623932762586475686792131120879262771294272299579017056338935670417577454539778973441954528648456738296078920643048806934078176747609982899070469854118338412313207401427749898565810286315572891430694641570778814446914232944900285832029058909570716403020492017429974449468847788398897325147513597150894948853949746846266269742015111631380356238015437454134328935825257081798759758095812664956589682765042047301126710769203930228852943208208141825335857972155922479590419250143281314392055637602953855831409454134162474930311932298148872736810430044225499103829584650557967967998373841175326511614727999175681483721000441786044320177796289134552374719941678800675803317959898550770106827125122584769522633123198016426020718457442343209960779017550156015478764861234332554569222807782855681464718547136066068555112374847119557311220449038221351132676429339048882299238065233944133813591894998373801609984083387995268981957729143665854962839629587474312590998221239721643555739407966077874255830119398667174530915931034765621763931522396097209887468846617735051262403225594529733422519275379069401882654356126013186108704465266817017907061970681932875377792228228165690976116062494611155138597331596575496450999432611082689294353604892217724031227787637237629854114081040621591891023782978154778244456958353928776211258719623531244014725912442978701496452139738075126100722209749825029907879294634589804710697246149193166836222406928719986916140681276725614805717685999474509749746641102321641926339726276196061263479182889852202361267779104431177220940221739149452016014194971445766745498505292941281920296110273798038479843600647278794857636556690670003332659535509954573102881423945314202789427197893298497064371267130238311868579511558240765234275110825011070594335634564227447842669599886225899904706545155706976563482170125339464900025798097921899160907995551069406785983204496910400496874059728521095273857429682551045401265716877386551456283279343943494142096209765809262738546345667293281462491732753766871278965033827028468221410952666886553949768198022450832832866645754809200702130416098653337959281096993745092710148929015343653745975619766803183219443142651235052596360542448458887641662256417671941646766690856208686791647665478036658157908776662869245775692564193515820212389438852950198440687264802332664641121712299531266155040892597486658354520853947696618179631971676516126436148065377884708993160185360992052421410503634671944568595955588365307983622967997612927302348938644341492574168913099197921178809723941178333722859511203836874809213895778448809279815429776603046413247517942438069643459719829025330602882190609612642429134929742918344732116632198670635140072826632578894422501485167080953220216117401386729928048333065503803052893376338688111777694421992806980614813673850675579186401976286954781999478474432862126225315423063812105365328428516048109695203990560480791271975910575966030758008355715919330278466218209022853863735644478690413463260276330420228865640343220223523158633064030713866706730985278562953850691574196398239096465639927356999685203868095216993001071990504784347258656925382529439084034327842470399369121107461175115799679335737976818000692361599350597532900759224711692954081690734763717713426310215192723574213531400554446462969548897425979110290230412626546954331391217565385707525204780461240229467239089161282468661813697319567156283403626377195164230752296162539333040482647003562453543423097942117920479441943893809115358225926180595728152122774851061155019063736618033103157352681971814383905297442199128003692042562784243399909090878742242017238869678318878825067699350542174997213222719625252193815574695201689958437437049639705468393018452633156811328631076868601896298717285529434388526713652675168345018844002768935126968163698751748480663893047107760386938954969709388560492520585720833969008995292804884515782498448383825324361393229433494064780230287944727583977680156763995485951926676174557649511833738552394448057576266000600664840673342481737303809746141605002935052817967222604457400658432427687477253629530158324277745816691242681124732655077860197363800983171824944717173645030888940979954014009835966170810945791391805310197600049327569611029223621356469634925205231611137196526919996301627208843828904103131810855599970320836861952662275801897587259569616017570958928214881580473213511553732350030810511236443976275473410551132748250910973905403381549554298342504045447270253157450105484766336841330340725652482348891115080270608823686136570295817671452705575842540573773513333187932952929969043607291055069081133615849946972942581667581372386481719273303236843571037657042126012935167202224926161076277161681253285551029021051277659887109460440368930357608705136912401832517287257763695717583449423486835589427386624365723211290900726361085115288915537606735281837697220891996808808724539877019467988009434774257865328508202770626189747223552502540348583568718280704415700249649115882448535064218004457846671263134925507030158453008129359897810973827922481464328876648782879868207946787590180106352108974624545709150873776032646142845161368811680701204126200966832865464706176083248166250427312228404622518813899581161916340385666455513523213242067713740328208219351808666859452598225264539044672219222004955739822684467043834858947875930769615278299749912333912514695671579883816350248646830458919911593117042429362478212883449179266421181886908481955916137789541064855176697469942827496397699513092017397679164403670357058034355663825585887197760429942001351092389221798707984179854173564567103569283187525107277118217219512585118552538148138856650897873284432658207115406311114103495886691485773592043580528390162548963082240240820985999830896338269465661229671972701120636384894312552489842243338912097509893969933073845618039798348625730294973137749285533817550773115314991521917879506398778638644802065219588162502377753957631419738747978180189457570375791722282199771587196380794570621445408103339460877399744773716733241079743815316943098066209113406118820240610763246754505015771440588501576697688667306571625939704099178951150387849789239417504671965671984996866485436285945682575426710466777555657468988633499870048687117927168576719053489511760494240234791712850006107299053341491722234185040228753472766145638716697797116433260752469386987641255875936061583025544210512949638193881276737736583706798119117264289889185706095727332384184679162145308314906681722140774962419742249057060676648144755436977756994727974902621740831168340237328072836196935776846991111463500021083761879244367140522785635846484744824202278661551330837578507711275437581630027847061746537717834738980415056404541446589179282262983123965626536982784206291897484330754511356934001865776117774747799145568852064158906038220134667903191328793324593981863611276398183411250631018177936896676920632241388368855395114801228553624579190620037153773537211382886047793844069205845823548349580974212216908976769169581170183733525623799118624799631700658800614386126677159224116336249975733445693201718307861298400014434408281836997458717519318468627503556988477495415283761035806596345682360042103709979418057081388193451739338973062634794703013811543472250364050517690428154880432397413267538270660666897038171388269402614439497751498646989705044575258168921556659687445391187673379345890393523177321855434396777244577237393864179537590273814485519727366679812587389688184681548624115011407409091078927233971781879921028275284256198403413918880758060845073532953360843405195418513949528848802732009349648202298560271193289521819329409205897421417993966912910065415568010150560242541015233150551130635130815819451439388286532775768393695163543051157655278865923875784630910180177216617811151802966406459292224723665019656178056254990832826704085512771003040878228402558312813204958243359641950185245472337871435641307506387415929508840703049047253435435407491898068089165040062872592630394224000588265766803438008311551635813555563859591311890617448780243736366051659257532652721265580750357368509891128038765662541712155311180391398804080393430093999975046636590971048742702157161670142960365813650866829593666361979557085954862972330121812036596856642242966321106928704073096431203499754646439418983272492450942987157717706393112636785755266824226114947495819334355258651470098114055125417040084434401940904889820952340416850444601354226650392544490789653476643284629999803251102014778067654989020214490135483113753155415317223866183157676603146821993348909685573002544011591671396164908676316831521441051354472018832922824198483999760425053240398082049391323745705801853036379500459363379424569547374572592500140129275325807214629050455376531128903750846809268228282078625954769317070425667358062977350683014830615059045878619373668081824948818408074579986535929864636148238879853869244748052810050474305020086238625384817799272650786973788358232125736777728074843977160609570150137305596003877603186182446085939059333918188723017805829625331381657181101970124386780324952749019463911520668013645871804655373181206844240381089375789380923526813308438844206215151953048172761083537093561301717724351457392177725551048964717239073032962481980960150279634347623302024477754268269424563465190320802757092773901701217689236812119500704579159377143377460033408954152846627079378660602668430040618778372980447943069586629012869934420724067138842865825131421724593505460782415384149465696161210951319807643836461585258090632655263584626248976255929584487628650625469340765417466694253005090327310314315837676855118150952926423709503578524336194068370036083446106662629996663064829283452979426352197411817173127812578981859804869316943518605278247454071961033879489157310514167752925061122428900463827535201812803880438513613208095049885332670344153822209207215911338589145744069716741702978279632680807474514279820441872195223852413516120025591625530479998932077740333163059207744930022012508285861247294434336305509432198910143415472492370092364145066604893396455942360812566724661932434228179246324760606639015054581318371408127861866920905228984443286788863498177339416789289930330618577179127297316416819565920603291939734660935208101469833234134827249006631141272455776623421554081226549992225251601924248588312620249680971495872502047061366976778392276762638981077306492954655376390571857413694260093073046082343499072311179469596253875392929543228383857897373577690099167926024617803946827900624817529016339792568488249329891215193787840261068613220040556521708699040750940199793594287951418840339081594079978187534619399861224056099193893705819795002299614129101694445381762446112417924117790001303764868701995816477687959510146983896167593029885853146131893751166278855792611235531563371006095661508440427031366929020747668402569145412841357982279769518931751823341546107097236089899508377072473130615973508354816328571236124847311615743998529937576772236495856808273971033538934143034958459910843464302353152975062390474356999998968470548201671423689465327146667890885725657311695333064884069006769614105671594146743412388065675232744124283447757102913301242803441951576535755893083707405429299558845170121647323900868487835091601937713243997778342344156033651937880976124821330247189012262158063011770334267293946951705888687837677422220129807391397330263537846305000146133924474206501401233606650953969783909497850483801861226982685218280475470442351699720106074337737651057392084367472310650016961911668512345088277475665687359029883085621181965426023488103133887253317290726646989285676120734419019264221239911652671092496736590985289158128187164515233427340232022944153539267779060934095183877209743661665248580994652413952515271620731285353587413429139118430377927569617736223403770789876477695749216036914788688645240961137841942815219973339351031307756040481511048819623574216279833866917664132840547095829269835632484182911672057315154839727714128406899100266188653440462784037924222658256046884527774906649313307103998530404741523281117243167581162408616881594305045446425844846072366595399249949739559657427941897967081174011305581696907709853014803207343802516315805750176844897967887549857213958852105425746752712502686889549326916678719511468555981204695478561343751278294254892121523852978305776905608840621115055470571578610623197205222888133372596840177038286067191088093299868386344552184348989394796344142416930882415389097566300125582342584225409480379027361157130964427073022723310077743005231438388538159954986478479031067726247814706381857574978326634394649164731046774287822026737870409605207184457940920073713637612842240483538433568347972637933419615110159136724386268875451479247507997365566953304572818439478464884627412873465437209301279229053408773064488054284297162798881976978121820985822763599939735881848357316553742252649193977336424873278247732043147436026778090388847082270931698130632510025412772024166204697175653011623745118890247933327509950061209780145722139015951600051323975661291785492262785794760220516959101268418852469712921741301075610100424592942189650313856908420846990974207553229259951151003962672729909661702487414783496766850093632512336470307770167207895527016706879186093792527233448514008558572991626120729711130314912469686748876752568167267689017738298458884812735129391374268385121875315048405712499569176917885328001432537211290328978764020434433731134656389225126041301756206677970848866635950502649120877684349276584923181723796654676133797785679577352546111750538419029739665521488695592902778551030957694305027507483347047250903960782418278322169069842554337791858322852750613214987349483425772378732469267644558893433776710324421537358529733575078693602708770083656793934564799900593335133301239301147552782876265882910335882021316814597007045525690677950889414282188331967691708141886053509600893750520754946031858041632336307294582229071945019246555126784129889057600331685645886342521628702448371984302596579748411291427982108124269959655583767927072956793485385411022631191423857833319992219852236300271328641023152437104574828961119495865222158933618169802283242147327906360850090763449870954625386444397916476491762687891802056119078922989624643552595525085718281404725292105872548207668036373227227284887317400809159914570017879465220581839508981303209149357686438999935278386366994125371154386214505904244718945966066399581103559009968093656809244205944640942696285677769801655702258737368435936651498741909855348962620813599246657261183085743329670329319323243804555708718156310802497130406467387009043008729422628805021993145761071435383100865850021919958063946117532822474054196135884822301498473611464909184746300375063983730115260954018432498381865189352013194850790787070254917956302356384275815028517405385803270784986512586804387882493052829464915293122676359644130043664536072837312408148423016932695744536715023027494710194273536520534235468982096567520328700370146193338831014365348717448238160811010538685763442365094821608156162178716888295522636102391435213956320348006741238072895579770933416199899322453133832541454918976861291477625299910510288155018032044622399465792413001545059528032531435959513711913973151197562541709571278465717986576192797022490464055508760654626586651164592872411804634546595403457815369643171270945172946236750794149027570985946224813388741529461693278248978114240094575274269365327022660311526678510677214320462867256096375453517266563221153033912410897695679194032320771143935788238188186529091789113413190219768241186816709494781471176364348386682505761606177170167348241268496530552632808180887911432451543438913428666255396726470972944153688548044416196955336983964406306963529850806857511800866537575803936297553970395925852131167558389878125651631216230429682799533353952868601146147091100094534038598534925602714139136088916619282539625511399094597589089320492177181725621281021972350365643028254580454898401730023548532422210484178118661512299316642779723400836722350109801426837788349523677580295790425032197488365710264637397089239234049831337692059923035464086967739424957755411140879460686942407083602595234631902330611145111552985420773200579882241190885425307304930397148643411701667395972235007421512725524650600959745474575329380738201019675787601365876551320365884725420629184447373475338187009216172511952385865613095525176320873904286381633910214306515846070667233993482373738418784973731853774310169916168706063373837790072277618744134617218157202011486962456102277999841378878609582316684438073703842009254638686022222119487166835748211809474398937876725972859633733696323228234447815410391065307102731746846231842381345178434883342771101594714565283618715714344815143134607497236925204572004732551569452102114004115189293462435977826413655787647157733200621747867748972094377875841101992642374521155576043142649721278862948331179648251289096635535780407563344096420092214020678977491576848727068682709656355283932874788009715083632212875084781145992982359952191447561788678437280965900648664202905522679753964617469230640461629123708045327902454766752181605245904781213531629175311182846755976513431232737248013395742220460352075943100313787651835115294352326654249979839979731234168722305197338657541978862689970940924239175196033694028327555064850334721395491141055603681478179252979661459527135455044582306510793730246267020269409255621510459690280749279055689477347420364611238575378860393285101278398339187653889624961359519219751089551357410125196717307413350765863341720192240627671166355708969254310741522335326061025830405217447919200644906096526429850852709688918952722971628341650839274586985202209427480844644854128135985535919928860845351737585483404942355423502174802604516140344958160497677220800522882497483477363886256364977281733370709197226180630993189752951522821990853035543520571178326817686186120018947851212661671362921130940206065004776722669146792715385342015245338705046713290521933607709096141431531704830944671698156653690323575729120612698007197746087263499090169778928915232199389860510740359774562969839379373150964217462811729094724245672562272388158211000471564644810794443236508271419144015404986606164544624819425344127263271085209310690751293886554037228346918309057595035495899698252585913661629152132571609436144911945429960960306212711347902269969628334932035868205769385409541828551942007573412708122875981613799449153707057938202854808517753585043200312251664852526969749899066530224873920346104565048095752711347388645884567369006679579391361673070515794093254284046139971468633797075577240743141107409393061564161914577814811281733140332316973734035065030362685315499968965902825942582520933564824999862107181946954580443131433896124242091257250879315115373807969683746367715584068099560911726353558646601578589395200916794999745996435655951719309466974270267765600664037961705721554102198193497584201027794084626066830509682719268535316980972491821399828962039785504864573454786397821799265238361433537146825380906808990069897096444557334986955457824299718096650939301210661160612873410720333113583142752716748232265909716254943928631698159436012693543644698927681612831183950356666749101872326876808605030203080955468655035705975043002631142152309772024011815610628188386427968956429862850749007016061140331294545816335442809052861934388862926837245932352926244742576562015810858042657848006723206283100757333211258578875534074425447440194135537194700124128621271982784979214119075997748228650069833344032973574644887928164753275011668477165383479825367585986707400233462684524943997466020707571300795072388482436539097471889217000254018705919964548792969452454844482978391215953770496409374536539480091034514320842995290443698132240553191379906591616071753510265364492819313916232412598183226952263537395998845487453844136631233273069784368913679734973035101481863268940953778681209229376164682565891527057259967627875885818402258222697443550570770677651485682103717566247455880591288299611700608218644702881370149952850859768792505438157105826227330549132927662943471042940274921092350040936907498112832840560824436280803731743831401379629410324984421760203233994071888154552137287904790508401562275310930215812623837023611328451972455504918415339203164236701545370443742263739563207535361055312390978969551093813675720316171587250869863738883242351892044878639855928802055099996685178463372921327985596382892868005504816106175012668736296262351740193080574977515256267449586208536638509236252051640664940914371745120080467190180376916650462587812446893311163309641529218898262750011029552262889525313532238468653947541335792495375635466511013385835107805292600539079282580643884258957366714581553190556031870393612802457171975319440476619203669379099674799561079339280060086075555996157634291822959460828600448172804726856974352126585968019180242321519205561369228796124145992920627125290379316444524875306931486376828418708710626479260909320946562767677531185938082922256725911469853836204352239229009609598025843107081441448321495975886348269253442218411162008764170164411151713510950618214794874023924204330945872492849486259693690813669691381442879038884874378918184239154692249551203932893947634489122524353206413202581592321921452303446299727266534339847768658176153878350367707576301093782493034608196204456554748706872370653153162858479078862596735710015945624286288712184820956008606011045418026422420204419227185189205144645989772164998656678953171815698134452881304396153314291008080818884262669756998627736941080214494621224703002013758624786686673508747988367468568840706393611765649195640536236090591834158883065108264498436761060297157593912726866345498692891549450890279384250076198528919147437795234770278950665284921147481654865021161752991103178652041804607413365154594901038953990949568015033934005915722857706149090445818522554934191070378005336142409082126885727798349703243425069998216242814533287092472992041799085615254579373761245101501598193699931151588829326204736995785465143236806695595983017487453679281243606761475517918929097121809333593453327599776144670184893488554085951781682320585653207553555039154560631957176754617280673127996269170767543688103881925839667346095833222214699241809043995076879890476730042549756579729374567047889559183913979297192582189505143397759363705960970743782001172807299872553975376312871943598637771657619496570483498337694863845069075975210269315051190061710252716851546936421683272763202572549056987470413338024649911938744128072448680435099836923567864848442316225892923907147812748041839233419215301913767043395992652915758671388207345836054800103440594251768953687230146643847874091771646007927726056358006718619060090186353123977589944472769284743287467286339549177102297866491080032968565904698391214426201791030119950410028424716296037754948286238082747737835407930698884498811554887906101220888369607011461266174591824468638781902766627833860889066502448886395776052671461539679160633376005997925983068333447106309939823906923548182766301410511175375363808799076642328790101091498147340561994286589511832033174245643802384186191989663114037766318659076365647563668235963020460652206027518576580068301290107965401326296122917137041183820555654841812394794584556062279065079868967650286849805052957048486713377776910548034670052243931191540236351921558844510230170421430372443636020262205758559509668377862429814470261540064757536302090888742569507189166638956855482862417311344832142799754633566911963568266420873680245102571878724339247611321893597414739027684451126300673474694647228191756101992889876852309447492885390683504876805165616523160510335037645427955280623521529353660657963326145113995952351062410092047113113775074360137874315732453250154698085932732184392806314183380019920505369538960595179963174534551274803879240466589309183291485117618185393456273800092110891398497130732300409584106920041310118831535988903145198461511517951634213089556998612116893728325518258119076284560553753131039743085234885839532280610608004913904025314394630149577982397271339538305804890592271313665142082760137231143427669620125524778266431508457555617489888797829097266163045051463994574701891190595320479502097894887520790096087004663873457006745895428366586452537229809694461309480014658708036293055357791328081613001349019144758069928551543650402174895843473067073687075348150503441785289005340195997066030195321831107364829366692857365542423541914334822733219730728503983524343270596412681328783960416123949025380456222226217195819442521699854297871713719282006491234357883880821914772271130991392318226098151941066695280937348803942178107659534368891475429792019998867893574120229569764181625621517694782379172114437786171206267735051185788274499159103504038900200521141719148028801668103488738249447487657675549242819638059690357710161636022771498128124242091020504294350339711744721888421455536646357652907380862545707672461386360179707820489233738122975539975407822805970353574185286998368490569769008373767445366393252252058105712390775165361386988383566395540663548275168113373969386020694210897021681655861834231697446441655993025629715043864399579894039512562061679068944374363383779258575843380160533582804784527759115675934598643617944934585185148481185691807448040393655854132890218242125369085384204703398684751599039809859066985589280279739450407966368594094867456422604935150672298990458392372940264871181698510271818930560159114595836658627180740634836834755333259099848425022958617661089030676913543473085437878693235058293903573149362150270652834778738512630126213632480100849248001100075394646176047125147834776897578807637696998715063551574402433242941474928960585634780192636043873750361513611575013353693334298802741083005577262378121160934417607653387062184567938499814661663375122223527895488993851572833508711587116803838382500528123507486755628230038567559572924256382911656588481412356091625545994561841266061085862603188111744125016384712574130071167017889896974166592920348658566454800790136171632893517387844853709508222181871581989032307437246032800215851284821562768541371721920678553438950664932812862211331605169767425742982048076853273533791060716093599493012566130429835406037369727961914502547791849372181377820131836989442716705830190943147720919253212428231106238524177767076649976008813844841691726579826730730664272731197157810853405144981552176708982416971290857399934167141220627149011116138023708990580245908582349603115573570511388667513430409133705326788923847551860027450474803023817526147093439306367927213157498200189209461720350761416259978946856944678640759477315703147365119039739179197801806004883039152311991058714296712272738440682475262355829897168836839449913201395691800538904889137657068221906164562690929608409498552378239090080847995769614791854460579352227935005944128216463369471465950649121606685218731576263442088329449838562326789114037598107117396991632629775649996104468467178848586534178301840917711878026674762413046005597502160059975340680821439242442267852379733245977773861738205448280378195319899678579983404457245053930640814175065023995166456766514163057646231770226334013755894718003112019344823447398248606939935835340077799423084627822349097865515944597553830102333960243695449333872857108778327610649331323762727941164431945727497872975235651634369662439136256232387531832710450065159227606394891988734893024731917921011607488721451328409825462487459093629766558377934934532132457923499328377029780145227606636600741253966839285110052783293949178545589248488228397408117286791179983521708995567361025955577199357911269779974067317392337257405942460292732678493543830382400655960599633991899536751021475796776015048803145279053597670457891757487299940986604109998317269223143145207758397370556750857006018957681343430369396378275983745501151024649639401629704505625774826989085901810252252993494569348256800622361070607249756227932666093091863183091979179269112505132817913848418126989342070096620988011652445181560442254735252281102248197943644501359394200628662627124267424495228931181355747840725195633409115941833769384379294188260644057743565271403979614284540214369189003993262142277736111458233125126678428062053843264319703622927915709122430254158241724673232769569580804957415863017964279564810351900771730220031155925461385435180716515187412576480422151664936217619704408237108426752717833462116204562211074301217903024224258088357732439392146100598056824644456932033155789788550681603033842255370934246238735005389389738103106477172249754747454250489855590966030383609956846565714137860845328740268404409398135598808734559687728187650277280295667607368121149477758988199762519060161669141962224296144053242427178555659311544883868213228980878206154843489894372344368461736045706970953766601642645508957228808954909383931255483719309226692650001578663127918825427806923674734401019084414566944578473139846069729594591022649997786619342097818363267910512196071333291924254337856490763435293712193316754407902939857604522793474369275643010299133582507160797241949113300842275011864763444901080460553314567113615907121528791873981235888028550914160799282988312515276945726626451047128335915000878498861600825121201132209816614575414057398282738777220426541978531652662548409470234855578320786111936199440331179465058330875273940183970289955846727109699198141657909502080056248515347585874022222057905263667867264840489845341303712710263285293576235845872834662676694706669896921086196699356749923456820030980238659535206229001626766842985913840501205979827211300751589572380259987445203061041722047993409269814934923926574989691471353428414507627009167338661736026516122333706131473026517391977338038032291547660844664939410757854828157910892855290778066757203456252601396021479322254439480046903627471484502446287943186877909843093006750066671285830733654239443739666619129833469754673278140186690330467708000801214907154774283019439837265713986804654174350780249879936289777823720852561062308986609179435310739489463124958617958532177627339045799243537405081813632663804605484154398894372944908278469217571377190773699616640973589314412767103445981639179871206631108201530629775373699803242101931948164810623013911886864529046822246046275468227805944561798038161284367113735417239158927842014683225571010228125921521768141461873365482649819899114721379570410685231539117605631209839076108689930744456546282801513243281182215155440070741149752575999563169532684536714259231385116015833057549809051604996461884314472699775405104168225777033987273084910705048838821439268019816541569336880902308043980064824376261889606143795940915408572928820056349064332408863361337461291130896940810282149877845442201151667669661828645158728809791253174574269737589490863451713251655809584941708528987538113227016607223098986470796411000974714995758136986158125525944538407942518049309239093524177881984326765608138286344224577779396925182396241725703631478833714365352750896499209892380238041518580521308699677217749977239787632704116004862240558563884639352297337108860819471137770646891758506965543818470749646246083707551561021439704082358244671316253395328877944947353214680304265189634532117986196657170097630759619710173222838680157996993650537015436445316034290018990631850809654119469932181898917198211728198496625607153443958709767445462618184514416203524233461933661693080940097758854242477577645618935333438550627931118302518929194948435557177516443706743846370007955902750219244463604939160635062070547436329678907465196101268575938712471094266707744206225372062069730063294949155532525920824069657601315506522256278124080767626715261888498093015944815703795025589695654856795273878779325172917713086314236305643636902423988268971383906325436199027399168281062685902210195663165758258823079288000074380767014425282426132582967531685052751185336407459057585567977086716615649804710794696546282861901677512052437415640060354459164002256186895353247507884113926203317421228417627300495134669881140368087463762312017099673914689263466964247709798235804047064550250342559671801351571689215616468870008510656932110700403648031512263062557547063255853579878079546721565881936052566748679117951924452249007876026159313010536645732770367833097572372225594543218320915799839103264773931070250832420745952564201318142928256753480364619676902553790430519647676486418253843554543713363980707851048814427275721182143682303128023226333062872774168791507650249888438734044824441640063319290133117638032413394523810935565081869570872672762527429522702021764630211612287785570386509435705171639100334214052976940791160099631078799274677508885024643478452645167781436682263080144273515901825303080951542096668974575070884499980648749563840379803975040968141781977701503530424275017756496132564899406206823588153127532892549320869649100253390050271868086704923056674374469787853398052804626200216551534933230326291282405751126438525105498920669026505862746776819957594061207430332616782918827949288139319633824185480901323364860852958634211710669692007811106111517612072119798693018336878596239966797045575730288193798964928800003481403988916265854445832615968382333608813483446053570726409571124299933708352236020451598629179209190167504532419077998632760174448630081654986775807113620806728725744308387054511826553897036145564689488501615813135585989255882651049491671325103282412400598390837728645082032607279737879259044239921489653732836376619369338805735518653299902337639196780504662240244442330711841655603061920302531158483617763498813506276070123271887850694633224132075818267680990781500919012382848195274856458330691634324871112845425258659395830142767789910855799442150674738746447663138984529374112691442049474372063058028787477889921723090902449825920566238544185747570600280383302820125150914276286004444376639229566703695688261173945559553475990069015053785538800961424086533470518592413581821606265234119930778575602425426252996245359345942478853298683172080522482983245538677079593366689181594838805807216917293930154426449631840908260521295564949833734080993757970704018221435904981329212685444452750787308367236590701895255022674897648611923395749421737648160265499769250071195045263735791286304665605466769811169922331993935916575402025038361848003424831804504551576202010321843704538417684020755567282247144187958328755039799018564211039973580918479689040401212397722446282190034690006350014395106704071848619061694205444286515796658443646322813067911710556954185914939521957818829992651361945590398597666551972744707720907913353266400603628957463552359009477548569393469171921631202712606531159199510499675063989150634832903297272275894713335358506546538211150362768828638752907242338032768618785666420522197982242633478611367722863362532987780294173213330912599091184665885493950380090971952224858765478826628317250130098467629235004707572718744271524628489235008574152630206384387081830055701910842807309496101357298571972792426929694987750319941691678468201220370442794268314657973838911399143793125391964350275353651734221745000815093788679958064296337261748637885315861545490818053928829354234821408381701861506814829382137842446490029289442309696533499715370284554841703117384692301012808230012313226246937749913907597810421396824240593005968793843823521515568858060518001111912861953521135637415464105971776360671867841404832613536307500600777824406397504894112405993066741524068027470499218669644106032129020431445444710176622639851417728857308421936564132355493602550080067605339037865479862026218576050922925796638186038395025483383382293155528677449294958354649514037843154106935907029660093317248636154501057304089053436299189783773559267759178456007934365674814034980282425706845903711910033746508793253164274503488120457105693515367140403243336914557375775071025509150742648414499380491750382666405548746322391195066257756765092897296904194408286779781057603858981033294401333443786450763293101215370681716476533105794214466129931618758935140448881498876036027986465764961455233265466366466467502159795071602759623663662622921949480863161874928661964245441312132694067398434845188413222417434399137120881887075204336940413604352444348452744132704669716381200931695686987961610839430552460369654627907463347641995236500100939613293969304308941343415822564916632615754146821792974425357607858070915349381902732850260763083789433133530452751196822226290923646583891917592192809060688292115415157258159330556263878704159453569840840919287258735162723101783149142621152993860094014167495261442372629146728303582021323071987123426500217809557341002691471444284004684030368088478086558526628689031681565679657474459017825336011227413640963907043434366878573125127853070772826493854530650030777062587932802410079438167129543550857659168697603523862135536584978544391143634720837030514909424857260948109454545993990297435764404060806667957059250955768082035821448001425449443543224278241726024569212038003191562667869644665423750868890776737863326265420327141124457795467029155551040466262763703437975441212617305985624179665453244616905920012329086888033225061602593552581320488227615086394392208795181837997416399282521189517165300156850715698560604719848096751490649275608553201350946788365722672307959484992799937354325292401232458062347778414806954246222680880816589876913314786397683457626657769461326504495782793725507698333811702155836038083350389783728137542912701162702081843084729743165807421936284077442718997304135749875646748098294239180463850584726835351111628624960561744206442428388695105280642176738764295948722619353686870094050738232617098313988518515163960407271768169228456913625316122917746669160340800792310356538137974934358807106334610282699786978406017327247153253471406265798122334449249445501994211837815623037213413859934128378247603358673399177824511423710933582959493889380639530641256783660173431501010016472825309043121096390295191760264100806137679058158367289511958384795528281215972345987515909020487488327448602865823415508579435528138143396057864778906460362028969169773345948229591567627261479916698096802906170516312526558661743137401532220436106779071395793747288105699078613994000908612044961600243665944918077200909405044793758513490463735176295821308586182853738184726550665924010462759585242874269823691570101220265712758263879396991768542286552785392165683705993947810836257609716009138941561689056785547943164026708347098042397059363101021909368697656939305686684823133961088600288036310754797655326843955485798569299968370483450458188766147359719362741903705007653643248952133124084439949461842489020333525416341318523748314550558057789866776525153974441555019542344859238718222452036110330575378025075932757097496747383173490616562883598662770734439868208584187827092813279690404109814011521540604841094850043149018429316204251020385503921309700036474829166290656742611805868916493994058329196556949920893044484949624439380741259073945842110760069885508613022354372562073892973166078370442030748429742764250668583959625261511512782525946135729338163129718852420039965186996035056322367555714914766267864194284793332802130348568543869930837701425906760573994499059789003216504318497670465117978399231927403678738390023515925965481317474239060597034142741365216935823151906273285799046308883800055432760059600971353165978273496085242439210990892997926959387504034619260494027873185423569662418805524715725652681968780811238966939777418833568539233956282221341458091369861548856555153272563050202398342935814702450689263473141047282760766830482074609937121770393513391190070854866773940471032529696923954090000826912862706302255749320454494415059883676940908877247102490761423651211513456097395300557199113923770704176965727703391176960415816622461312550533027076944915113672530855966035112308715516785234890750786333003878668009312033912496826711171868583730360855338936415521253034217302647532068148007455730576571865799855976278254306443123943827121963365082711588565781934661855460126418214295680109009554509766024880323806628213973805872280122265683083171377561448657310666588745768337645615738667887208076441262991975051442299859577665372575855854856227522050445128039635621167763430861355294842077919008127756716582650473881833467298282681238869291937765494872978857909656577069946224091754292727115310418417258440042008628051600994329200275891127408546214581940906994343668839986014327161597458825229331862674895857135538669275670729137192708775744863286003298098673251816742071806461586804447595484898351641516015468024244303935954478874770917802626357092049975345228524284673535320752008548747756410647030270510969965211184181276190063213634893524784756883693687149279776231080211306435746070348950941206939669569112828679212776253422702829330433110358569870469059393390158721492504819279923893563691161914719046628278842413373859023443174794830059249144215666395280342841995631200164043575193059611519957225304021689356683155678854533405220925357278433891214028645090759696584862928579165852679055115758950269107828914475991944759378373954837155707988883504706283078458155910440425891496832749767422819483788100925604708993511637066254136902996111829828004893956864706209547108647842573898408314404159072943887045055225245341125753185264414935123740373286609868808397998497061757036143991728647483208289840356015979061548280807455080557499777824503894295326360697251090936419147752515476051979797954988148022334486712999628129174942005170483169483988984595135007312929576652352991398026204806759742844496058331611412876328140655024637080162656668351645946011834502390761086679735629350750316735629897981169738342834482571655011353278330915607144613692559198675082726024983090819792610404873711637154073740946370937402736554797798801261584364080359512603949938957039732766588124777941691174129871202222393070214968445344653642536357600836155000344541122986453483095101519506608465307679568963795713606421606782255694016816107802320087003058363398006297243138545817987995164609791021807254039043902965352423618647046035373138554480947183073514903932695462839910084772010272744951718721720002915365265864910976309258867207033821295886372629927432242412893898345738543272111412282622297431625841196973731265169854812514619101863625689266428676136474993691447338924710509835184495812818571250574762994750533925085803793987710539162751403871888642363021691553486726507409026075169198691673672891231544368846376017320566356415363626122314104613395050064651930293585196689836908500354682822298147372960888697801678478261065121914409968098072089486035149573302766012804122074825082023786877797279212749708498788848731099611935555981616685030210899391563324210923896654451955439346552695366863941948873233911379014003263879909874053062303069517319029926444331187666016087609610464323855343460219142134355422753298768499863093828692587831593147967386203377651760563038704175742665921810171558013586423621611353397396241906610506583560024722497500305122011567000277545638886050457665500177873285096548293590098174171891694023758022360307659236427429320328791283041123610852374198445670244475606162342783450642597972130731825053875637684233074945803947749210622370725491775431248659459414931287427783776029816561911141422117499161498413213670554736096405610174827433183563350626685826655562986125580618290355052823513315056326210912704844932646375480158569585084556624966084392256407368976816425621206768689702580770248783666920515159548007897650871086716825860736454801248556198814580041279039502856164110158416342410695926159545633969043720746467612771335222762529955425769640506771411479448014391951796418437172849038880994112800882426254429260504433405561892581337671001834893126781780532648285572953451904536726976577500733732404464664176283472773919174687367169563203706791835902591128283851834786904342185042961564987454666374633796618346675169521399230146285001491319674831037341216098682813074741678313022175118375167141029798764320627904982350894192350693653613683381154015284455564505397750418621688337136716863604191831017759461651311194716447404690280428230955730510667859913271831654921659030378433791271123018637070849977579078091103488114228536385020471550351897304399334142876426183614012938706371785068022444558250952313979702386003249719566241649389818942790283501334404327956337681642277559904324394669941744139766487077834710101285718023096502346395323070623276324778952707623020681531393171345581207821713722491156159507193333025822388102826744513689246957623035655491693083997589046303524501242815577517067872944697883316339578564812793387493481969176616789552224087290282707193666966996181021912971958151417154823051431134256869771452900944934718454745342121840480324276300444316735207752908286422781165210866718367023939653356821952214254792501928027113985410967545158878306052037009205716093671864360708592996578541685142469834118718861045597803459362825311224265808345702658829595697424124550672957530208314089563548262126581222443295161562403139339401411685867152523876328188287272263760492911183400544294153009018147038511711874651145266887862351114802529239754308388547237791632886349132016534437217972132766580904764816433245613365036228848983658216792780684698606934840746769525658789507696423963518273633951927751937237247459184484726487808781703318458400130469656427310554169001690325314041960344706841599672826323496156841837982254252155996926158317130869371027533123257087725465568123374547963868911737985368430029907791805405181026668094801907748050130954039315195892241160909241978302888453076530386369925231325019951935825427771729399959730097134969225558535657693833187443078735928875177728686361880698157605655878868433198073871056051924913253589768474007595961326372376980957235073192736302116687635737178591200569069510995799416133567615018203227101740960218034153123594831134160220494728596835245181926941687693271511523071228297857242166785566708591899531705849534641486658113380434161199655704582246620482548796641233625592253076903966548174829029885704117622068137508375028738232933289335947954687060106554595490923161484557111442691081393173487788096342140525609600915700914709156497919694120761351602128737000108071841715244576115588726896706319886030285532700814624569765027775067091314182324278286582316274434899648055250045169152434643015570445063225093216104937505516979540251998225393489699368634376654546013544724838088716608731250825650250820658929459084152140499378785329227956859517351290880937275942922006397058618581046522056538836726997198801029932928353962114736774312554359048694220897319231550225246881522884084335657358344921822734108565869692325031716147002551484515397546998736861284235901194128184532636200325202614957174428539010203093997879709822527967087319102647956575162455791962368190017451795159632754804308572754872204382186279026867670610069741300766486765609124143833325827016390240736244645235903239708497629285010635191862480764561999850553284612335375954722356862437289766883780852717058870583239255076586898256429274030401502168558530733401794797659977257846350573066723614066334936377430592353724156331454456651398245565033805640948735494790733474863726759777330553853230815999292178465592649799912938943488167231452980380813627034747837154773537623708612693880111153218352207906780486701272436165785900291263331280363001566830570561910678843321904031882863943452814365181562169516167067255448058240748000581946319588905143405067448456391132554336763962601278385419723761936474423825680310326515179767297378720218142023201938590539827970747331189213405097835445391690829546870750832548386412351182078773337616698002850851739063850843544660188457485900637547413639044301879527892183510235680857975152659830178667618372662927749592573444330381208455246215043078300288216886107390926168681346460701804259569562836948605047013787409595204632828125731687346464367192627437210141619514608425803544722606304261850972677995684098159863142164349684672385682455442336368256473376003910364965488719472532146734194042685674216710689431825156852591418206701660940768292538957130892706757841381099714721815801269155334101129843282965859935535972911323841129376895232156117235077429099550081555770104627787104620009330885603900001101919100446473539606185032580587142712480781360256518081062087647006343588254985670950312659239653547342190980339210224104355122625169933683673477384852815148128007621622212976962263060983949478702547300709922133113720549642938615659525334562974810593696652259861497216130637884628787453347542870437363696437988879582485246173016956173726236521142416643601645420106184404949104561462154137489507555929413224273796416483966592433713168257404420493151348730911215612452854789453384779208929546193030266724486520927197080833315141966902643813430192144380085577396631764754274964446324072431315393779528275758334719749807360922954533648663705610003515295708965927299771319837494846684655767864451895897908768009625883015157326355273267466738774264532105306428959092822028490876636395322158646246058556793185581839273993219624000308791973438163096581734339818259975944529231441162590335915648554634413289399978671950843291031639797578138287501367671696322518891512621727094480645395349861763181431779076708560980499563951685035677494956567508505843612478251652647068161299178146884595142593932427026067694861286883019566479197206254732021657943859357744701892204677165512597449035514057892505211187165837890012520384834597810554014990718376573514737673658022891319384248989229862504053590109462295429585430158379654138313410788706596131095067089270817386920513273553452613549502129394529743968455097469757017451337026981612294559600931956029570110243155899140591287805085886708641076887860511650806293980746631775758652647049935014278138158648266151477540779238349535261363382751545956359008812628767008167600017677341558558762743581730009112689044416695130744697504082501959161365242492191746952915505890819746936214637142997933441796719698665173697993988404862082113372289286359001700388020324012058679943135075462253840780891204090222971534129752452697179739337585860819375390851285662315743146892024294406441895473959816144197146170150577794179265113835880797025602401033827365075117600678297875356306429873095205321389118984684504296439607548513103754492107319869954198112093352987036108970450174834071334356293095884416531115858579567813120042989302309107902016456577564106859978615255009827775352511720581497584608517611093356727419625197708120561148686501862392427874558797670247566431770216014179657632680375760776972157014147933354608677693484538753879540641246531608128270164130219423039185598844334254839161065231839294880609035361914568833474016793498062685731284442306585308452735526199896647287585544354237926117147104250643247402017868422719699768906649406721589337158183140123635079257438097391532475314471996703385947835588395850831753429144563052079199754571213962871615451143926830016177148720343648264113930287885356172155864563594921835291673223513507519451415999977377158643266197238538608540750260111729813859104811161429540212820275622683438820154373906968219746118635730934455646162337395204750723635411092613797082484858837984143485600515464629247707372672030351576884979843841516404645933634323177326850322296583349136684837236426956336147888809836896952809957853686541119439764625482572949547458533604769237144393219486680052103070203407853325594690751887484707923890410450572259155029522016532855654951216695252513435466121126200167589850652140128435218095510717060008216806486362182902524631463326491883922727677062172077377246685886467236622493778827279627899818913543834981518254842683740016631703883914613385139084887981741112506809967224350118052206878654939321295798089539409146266710886789154183592401117875408007255748181840327762073388761828770143862836463745808443170996059215084364905732894168047560458199168018613494646188977267032711384924452794247223539822580371379218040773053819033197297319041905666511099534040374123873648392474576090111110055476148948681541935713571314042951243173469877339939360877044773129241449248948046571002755140511111405867718535238271660102863186148156526888694487751020740438235672189642315784036217580903562630086901856064113107441874762320455424148462360921841143797905681413700524721598764068623176322169048592342147291387685809413877254471488970745245568575117037628530958319955800099716114793053000588617397732076803455198684402247861470225333718881910234764339876853795298115734100276777037407573609442224481751453093260349099303036380748337671125230830398348812224265126089790622944146092133279234948666500267879723795258215227936876687563447816540521214556702821391280666199227822503648823442024673815337202817908613968810344808346804481544862386989690540386890151791079155520507184161735030985818271206930545573098107452591406611944371097732845529499504721948571141958949672708908961223086217136760269549423800608994498201862208742615802707686832609434003717282039477727601868954891260079506042907800479148999816064026894702404163180821442669115345653592615749622527926063695547968773101076086170567447112890530892558347963610050437869345788085848704589071078057364826580650854966006792379760642888835371457464778451758954790182569060688802437850169260824226386722020998476285962820252070058389222350268174385874361908252951967340058218697176538328054926519428130463878348859170126445897479821876109926954366611644135462565519336466177775813443587365199691512003277613777237592984896485681703262242443399379499682389525751214836325007250817926221665598901619443869621240706867592185312441506951825285665392068781556800868422743623253896281229690777096268201207531217269994413828432623912450793318528909886244041724711404896828620028755954494815856417782658181056547221838210246666560010074397326992961510072819462405121100343108411956161426896790550663864213938578336158460152686236633195983676155752842032008605676443493746201274512944861501692821997916490480261762312488702625869368939971592255976644821366998604976611431140280038489215448333359198643399664152493263828116224692311993730287483732594968938737676269996661653968955692602588037367187682198580292502004259246722221203299932759888064186672868222060303141067289337142109187983364781924752820433414341678970938391265748285846236465299901114730472809005259180901682446692924625992316347691389260153403085167357018461712500943817616523028457594236690065322024768944285220614150580649839864431145799313011840876993994603515681118670775999753271926488560025446109878477258530243201059883044429660173851358117585976021441423678974380977173129610584123875351149228864815394423838300106445292893733032250184069507805795472054095455337838628225891019681935740626305473393195043383088902319821055957396861474545898448955093790960207899320657150839897556482042985364038405960181720776198601224947103643678076253835531987958918147267757815136767585030925874239991464264770963544582101625882103175966163659209599032626254052381254550201973572000246984797511039311907685537349637786851004347150809110345088856778401881514542968511297945219725524864538488584366114228554297733166219452832207161443083945439679340929736718587333611929975965169681389093846520884467264943711649062049801621039761738554069646228128704146393399912181899618007905781428648831055623604454210462412253949927853155539349740323279415394267446913139731207803609271880108354562093453217065722848844312530160721004944112377554116020534416983005515805260400049584653333414109527178044544642732102167351915950034319010262316538349458091031135524366507165444775289764005699788996783315444609885165058497942089002971903502489099803456350114534082871291194475216072975703411956187350219938277779072169741886644680269509519131306140768297184899307258632685170124217911685938211371327429490104570921482749357953206461082345599905214489419836058143451996523097836556905232998438386463935801615315991012936056119343459194391831231505530019952585114053400551838220683662806228494954735379144739442129092844261580046088472647036110883183300232520495639730892479336725138757647463554937504631269521532994132478402983276290113868180199132281414585228643498459355599407980905087393209632851753398552920126834049142339200248858158956658361094287698252307285759994924286986212250578252386636905468332938348318660354183967814493253850000562660264674393545015403814249035574197980472747422529404873663884981273053183853339945186687884711330382076097841584430892374967223143460495462133186645795109434554479587213490567201831087186452929117551689296201624939261102467060269803305315760617698743007324585946018538022427001479793876033493350833197715568361793839678633319250929074734497925832337171962519139395004645712041385557478962406246131251691426722156948479649154860514722729498191962654405380089897282282510797312299813160579929375736126032294102509942718853152035839665342858096190998879203680614685421831547762924795419795381780842091550769786305264002360962560872006059927424866485538604436110161547389553418503104644227932417284615664468513269991788426461249616766453224217153248304435122741431087218608666159054729504255648904550360927347792744322970797458292011019110302193404099218270723220668798793080322546689577734342517270490884704296227847489865915388841730371939721012714582026380182427730240462499009384041779874273831292233266781572301684367230415985627664863133707051054744186024068681278586229522085087353282700135624344883523656064105661400895897983602069299805807608747796196843520897297102178415787248594364125530188049056233103623290273499027418408675825740676453851026235803821796243328778426974735039269178581501417371806227917331058163163692415852001757216151575278416660198634649640623158908915919538929425447703739845062086132126245228342254560214802423311798780665228310196355355214392043379838527050298823055207064673777513018154289833072640322373694042420066899147297491486295134886021837495624996037971383278422780241367131100978427871676550533206319914922925453407677242176639358957322764889396738276971511367642008614453160708907312000561778318222547474798388701100551019779080322282224389081020143759019494829035044494874410147322134442914850453261586719143352910532716341437519223336340980439907067795258109498845183333610930526450122765711085283977649481781025665398708865582141685019638264685507782698303285444733913429865306981563412814365132896269706483139411844995409456786902799242848490643053830490604048570034022288192177444842316379667159559243335910726946919574045979399930394102227048950691130419156254703194447902181315438988639565487835447802453499820303994021795612827693490090008383881286225443802760325092870408671634179466077635595889085337059075552491198123021727711740469773160212237416733624297996441768824384593183269008532567248948489309462255733664691229090341700935818354079365278241010720201662618037023022457631044777171165314491139891728224854485643856283517392987185699018592624415791163557853586900360117050296419324516137510109710042744739919571227897711348364914715428959838318081734501368195999910777775016242973036412648481789840760400183826867407698080024212548757367448260041438766028821691457589334163380604564889813918325497104030209595830333977452327083608780988290395398078298638441974467265887937926736134625668384767587770284696743247228072770957281680064759295710839415212058435848869121238793370830675205915898082239766770510814535967752303361322348102104409119673933340074576184649989733826620011453485195236031750196931169894010907433994973705016934723420850211391689351301191448585548199993100046935464787697237925436846844634590358466597225542422192785155819809911192934416313180567238876663064054145719465324961091200444578915804462723796333532491902027113293525503424248724072512340763472174665670049374043070325546690260498935078905215666441130963350803816166787293128063835365101554424931259320094984230567808261316115333041220786591985887386728955722136993835118168067877129619318864429870782446827787899740859690817833494126032207874192425902736929948619358573634292403420457122421955409120526159416655758366467417127529397266232467566138467506634104810704216178479820820103834810087572225305064570424178483001318452183851909371667707137092692897128352261670036329985930402011306293309825373018974397886735062617856799755111118895789690834013797937096075993807534952635343507009969226353999933406695769825628388845241467757623349579379781886138207660879768792504219080649348359516875511907905831843703287957069238370702604311679176191268377754455403651700432786574370326504897949137736294232172547432141998481953067405312729349568725605896648248589520746588062131937967439720977315926536365530222235424825261664172384967992092702317824578770427285137485839087211680432356516414652175584780086172610644696680752815722626700495673826621779064218241054120624126105854553082368629536018672933620646139480793765805891988898327887632870462891387490161125186932366875406412405411230705665944809637271819146913104861212111094769258397729446060677294695138992862452680639479952225798355624078605897890117115630240237284544309204409957569950598335365435393226404870625048007624542238673673655392654653006053952336625624415292703137103271787939334026116526094792718811037916316387473689143618214814916621774524120065983932756388816382735423327736218828287642205477766181345476826517238863841340462040004884166555047526493314274750118920460461371825593138257501278194430339255145030587573218376224557955357071875374827997180352791638875992129577625962472096483882059233925741560905172431800162433420724225338909224593348709390334678016435336027381011333733058161774347203847113769443500428124347622073364738389531023938654901175368395861264723249247091623096254698019509296797392153282393727418909850492194480549850321871789289402442182672471703359846175221296378298959854010165416185890192198358365706235320369552912196215949950470799434807357723022341322357241919263978541535099842607102970686058736769811939443045976956103425793934407993108783817712476080941297263650958671723153097667561253472755176116098240504276677382231850481887546238499521676591467488621428074764438589502385877666820916170516674289533419894551607984580553984417763309395799168789959466682821344523918693211890809232311032910596273754221248041038298046031222728288350595724665307310717175905468571815363996335777023012935168100542289325961382881474249328698174927463382162019832751187176812032585754452991262759726396190637142087351399951455230700518763607386252683212207915759618715170753669753997788614674705926584007572233371447591440150270353399933743983671993663561754610206536822121376154283790493038323907043499759913182480692513579426155199034098399563248536881553150863687510500573308050997328166706795907317122967279696521380472177323674394144094516598947315921013870011436446012602920444537263394848760612274701295803675371757255020100350663566431113305021436947809836183292482445961827125997996655320799550912983739363182869621526384341715612196098930852744729925723376316516693456156292758961900376517891128213636972038989835411840431663520415558434504597342673458427635592254110718220073169238425371835569206896086514641950369372714349015284888816732401136614074062682516288882837480818509788070720237223270082093256184692514770979035155335352990105860658645080236616497014181091207731838358716820134920222144793421161126000487455284829805049462563344981100354819491615966890795062494641415836921891669580816317489268450497965854275347261766372925278253241529750964891031627775339521726480467813098785934502500459455467250602158962042044895834529640775751467209109971366401850786740383948550151619030802316474644613934785428170605303108110704430735310118331802429704491366199126612621310600523936725350505639730721010819458187000247202023965784444327408193890775679759749193525713292668462469158993661630013845217985258967706536435260215044808676621097057654909982620942721859542574677751259607186238320292124197754083495646377247061727322738021093595411966258471980023070038476210072763979100676270986341347472132546103437622878508874090817929511031600157607491003088517250670685538531267329374688148649912479234502058136715913325733938007587712077287850181822514356466197794289752154484535811151528951089375536471473242648022843053531522756494248349628221985417860187096304438887431892178023290617676972424785384838650811427517008085175865094519344341414302782648281252365199157216746846618643864742855341530121842384477301305106354989901482567091754823784957687300720799673570429889761741252705862844001976841564734061864488610450013361910224133928902964545774535368355572058197599163174871771407054187996679932337036578603013688142328589475834299459240617226421022486070160199909097112495033541162896858708172889473677293933992929423388682066941007510614561170942522038079276597189884300330150228600866688656130904885820690698680206890862824773972714194968574831567242022471577091167662679355606650187478317652406783519130197324495455357255003041876224726517794578284795229583664385721686631020390264825409838351027374136939048164755970445076727369418951664436120132512965601253125785214927530456405188035174212300232165868918977075514187029219737435274448600136606149123496757805057678193052772295504539269025310127838977873811402467244560935455621804780679756519523359213753999817577808851934307241827441391070163193896648177192049297112936981970786553591082195011556444829504260135085920214627446623363219013516974608838630370223477744373839530054207774371992675054447658269370994051582573840373206085917349429150633505707082246048320852314752147809779720028559543703173486676567591797291697522734123100379551500438596611236295371187147841613662937831502668948980846089577479280003104649786800656317243310817684169147274012467656217938272567395416007064139333090671747593380774628319523302707378266459834709793144619348811348344063683524392759043514995795569521201345572067941165188300976405587772604472160537503268337004452163602067099293901048509339214384692003792898814527952979302344533403216766835050110088967695854546392930826099003767695549813312173079198640505343836178075219504841497278817323602337384405989812785565318574267766503478168273751304100827852574719812472322111124760850086587195335221727336883687747943131092648706544979108255821689233518890905133295913467116899001691759623313879104739746397496234842337739636425548570297816276434963707108032965756059516438190840584466583600984786155728352623135345196227648315406899641639007316050432018988927195888438060620430355051438598368234165683465501903784329053889709894575331391317771091980087761788709814659518877732286930790196022739583507660700562380063931257642214391375791632904551829388811121787280753274779490452251394604654033916187173435406981953631707382041762553478516255168577560163725302785143411466905743574639440536893458502607966433746014416422388043360294835362603859796315607607817522112772644121890934034080857179589465251965091842515463494902552758788891849062609822393210797207593753088403674798635120773508305364993663713988463690117877393351811749483451815099570859466716545514859151172376818814869819573003257102125972857201354736864364180630285442767798787493150145563048069103950008014763288280457988935857103840145087733189876155201376963600802574095424391983158812323502035529152158327294039335775986438713098245836637513396205704388709060977293743421208694289946473741967441589198151435175359490804950391766240668022407115063336455478175855516550883699057954957043684004744644879698321021991556169834068042493955822778499883909976716188199054626839530775813479003467780191665485510470949612859297032230611561276429604902203532553083293617410562852787054496292466839445843207198648570746201653967246069981759409506746393327070754578548218357976832915945484145707051874117304470081950282715192595478713514126887537512659316770045807941384930290708909620335612438594349913264239767375186458886663752272636513646283023633117072507839118397210364798726870036394751010558856187570074803114656448691237151336714802317439351724676942994014966814262982609111809304904947064633061561279531328598736151748125588366519481199813207194130446115748196328978379646245002469587347682835017240533751111575219014852747995461993797228602940328308456532749259269083797176954670136400771841076679405453476113279455891588422698687323929688613284365611092972552707452735264111722629082727832598999777005621691639341731025582155039905403401683683694939223166070472689328965293611750604463305955708700352809870936791514837068886001064672465714151372282448354115751324779344276229893565869575083749318518013976430339301266609647918714168430413201378613407197641798641437835629582298251427115952345802801456547779738771560087288038177659237912751098094059475421683934602246258192134949768620538167590727469265492248873096427149866059432011060841255878318798260266662832841093055812064704519307846799922820726707908706662155018490205323014922213012231649146754902952263452206884660707181414964040807868758006850308663853980700785897485814368430243551509775211693746799083767053814906912779915535697331282206639360359043066056604751993740717130656158099936841893754256590000605380609268403911367824096124077280851162143131624420564756492494982551787954662878656758287574023546071483617954394246145177101159271343453409072395130260463849217438737790569862712808722866531359231838370560832719756951631987553959570557179052715175971545762848415655491801193561016102985392991585818957781464931362443071222304949456203796057393373883729314386500738875555108455659132741160085702307278231031357939584168207066722537931604826493062752085227833321008540090791341351918776005782178541765444774467884276004157120443897967875483741779110303460260477710938540271688518198021022341754718877802142939075848484413179510886641214753428513018672745882950767609384672069993103181198895788290498686380577383883644489565528871731652473037284980269772804064758831672140316759447993876786215685106299894599528885522107889262184920575008210470795117975210079057020448988565874045986577560131865319387232435965415166355299287415977319941069225454996383633748256877217087390589684482048329158364911631384212070624828631312019097026204497831405081071230808611414656431595370952988939424560975236373203957115065283161510187976007867449531264434184243549865293661974544523431396557955128823021762909274853600138763285622028597706514664241847072848079367732204831584104396609104833565336366713028453270841612334374508643206884300700929455776858744261587921992599062889390069967512571542076114198487511417402123316927140337795556041615036060003752422818362859455694742161196376515250109991785222557454123577294955615350518609655869636742146086022243656813146479340604953341470460273281292948041075970992396343284533569092860406951903953753746327342136472143853247746662665384712483046331785793051405074421088882835002223210983489561251952033955285616493169088763082530349661291821014497572198690978759780403120664502082956851815986611118220779378938746412686105169830377768120988192496925095393538044464090483477880908893183898507650138149335065003887204921805579766393834692655171508008290665268723620810701696412779738299380165800734360818540506535335892096858272393534759607259813630700591616201310157220388602753232674974326195656113558134739898716621920728013282485215819757359497150761439790295759514072423813691712542259983387881826322911684109491376110217397624204095737135306725838994903500253007949118519309388653917913547905774700368929462916658520828863621843528503062262790442196006303962887596479108416390994326033589049586205774213166338641510250035149512819603022007024616970122019542073829497394066125811876213367342971280388597141466282464631813272717237388710972643977825792744128122821565643041289850082710397782845433130332858616677832266862667827471489656956225776664823173016120884220774501005098989606516017987881693106951615513872700843208424317457259697309656982027243690824153481629047229217527449739900025345375108867831456235247936768337882841667431985619130495177302132349311978665256224879974370325139493201184183896543810338932419402467908716189443022187671538017522880542987797710146173976248902030958713903188821012456309770442813719353326561424685126874349925425679691481826029216597119635835966883841068761443813827880544784844262794883240295358039701660731628559080520972744693614035079259606354449485537931258568713275617880925379494298871749940630735774969850748243090289613551393802691121913296476531361227648790086677138362535417379960959028331858142309855409457974601229534988908445287925779363193725121095046057889084373878378817512320249999134186978383404974573855818170290166394398730534405112215646442254466249899469662110426911889410382403758371144482023443674580512043121124079007685552399314863206086036748309133167389006934031065229952949870849121362370514460613770268830666430733988166135659411527769561805061803273665565982877850655857462542049900823844919057825854960062144189330254426505052666620716994368595853045888476632216862656792649247777777413427560139384443938537084168927735871376802020700342983292986650248847530533245217548131062152671472618357103387599250391801426434216764232641619399332289397221942125623367860709454219588889230558925288634254336729677968049004653291465886924402578614989871259851146946612657825309712293397179803546494721353691125802775678182092857688117601597661254698719068549460870483214777802336379945393331104008481385902738682668646600379385871539755436846027936745736024178013311460543836257912404601427310052933830925898722384259924611142688235112323220655737853020442681059327534703707722577955198422793545507476681014285990410266639541440519476268915286311803538801770744599769263468407451380411558570267841289875722513706587928710234344809296646322561672679298970045676495718337205059852533855189823799735676145588153024550575851310982422340337692147986519329988358279392251049872843980151760142222029274580579579800540774958447904642744456477578543232097302792891004850472886147121827883999440431526824373256187149889247387743645484803420938733634361392304285849459182478857071509373057231506058579122551782931045650021119328831476494471716496253914693723575713946244243170590326415417625393570591805933842630442489064016963470399856627337219916408786825217926534075301913506137477034000953817932641819852044317071740258499492975192740728465228802802978333901756072660417350828346012433377913731180039724074209512737362104092367046454718848236666368704068121701924353461850736100368730380206397885255449456111106126576008815838638888175445041631507458500925894995614265118492530092438560917016369745343514898548411119854997048399265954610859152018323378807862658519880603474658349531394614416069201200729843651458466297031211154910461121579878861698596514281150347513451326075378722844955207407061829239979658416867875428411623938437264451804030828478816889358518049892514915477248494150202611270653899498438508093339764946820964439664653922269061946016266329726228574839084685041224707330195513807126548094544794107529970040625550340952253200882956046550876275732054178387460112204602514476589120674587471966745862224979836523022274871399518904299910827868033071125415771509013884980270733547970282313714705240096858394184446118386384688200805832620857769927882212190823033871125679701001020181230244934165013777165903001001973505441798702040757016718137039992823447715191500598552173052468450037971439655071515098777339268624165384255524204582502463600772460136491789572484196580580409786605313312878322134104732575674451418360418533498456471972232200509488173108024234161832281718256516354808689179233778841805856434474498524671135514632334314740518608617667760406100971972780375365458359120384301092305890921049211517333038555138215366002761472950542350222548527584686503538963663124481110136624918184113727416134634359545767284728164021251231884528053474624929407851950229130557598698539820963292286178423063958554332919571771679014893362767690361666963724234481818855242542230633978617167615973839415655833773142799167352971406832616230925606824715454527448362366085261590113492713038326229843519258731993362592465967854833545279348805970612962068004649506216467111323581375120344863019385233973846012539940335411028821025872847619794455953094212041670181387708447354609340047874808295342029052613243369681122087280238002823957450366083943553375414146078026745232829396019505777675460031686339186416029117286003478828118917869450487485305459909455156495985720240705772781720185644712120717308163473261647601837791988909667683261684422893586535241505272888134493483590285932103375115434132779385629210132165452286565451093835173730558366709745347490633224057052005166321388494939316158424645307796254620726682595968767724013874147253928684798110537416519069464913899912746599264162475520689747616043104623933782289836715121845529381648022240877542827549276893529646001432069403835241701752152480778111966049650523328995654338660278749636337100780117468211436218174287553676909017647677835045066635568723477437175316366446578143962361253303941927703179197024877171960929999511573002647425026123650013048864759331139219975316126560382952866160349961121110929617658190246446794989139874678676660627693529362454183901045029150262530317923334778873767616336963683036178332801945910824326753568322593207413042645546832567656871919701446400631426778558699853768464189829639471679246581085969742913200242395013811455256878599909004291923109839318713864410775859794004791928033906503924833390954434896634853712372266493517537660487423646607575347921253279790977896979011050255082411882757082391795006859888192669983299206183399110772259831117179549711067138492689491812565656474549737671590985658890995520452153313008818143133505244241442326539540814887126543031796420110684381734543236067847023934963753347490676743974048257120892832537135022794576818489481835178157741145494653931990294750106556781108608057782963373988029407203078920388455700559019827410753151955394693986460472308913398215079961614280486263704938098441502059174373152288707257758543189294646673828907376069646840739253903535776484383735917322866096517317049453313633400551344245735505553664300423585715605129216505432775821758578852739030503000764369573783506568608053106053986090175377384624878454230639345813890361580595194437643138674554044391913685702587389226126482717032670219161019789455344707221282442783914544595061073456773960929421608012559310730384249540097808774139687316477645725722466084530621816972190919990643898903716511938404792388017877879726792262127037935452925400132187866786462012344550496737814399573610321866065473850209083199248597334981421090035297663206712520800036566150205108721921648686506292894094172065137393764758674650386885426443065609812685199808898858830757329237217074329496228102762111214303068809415983044885428899988451081500316218382378030669620342849039644707120406708101902299959180207658515538144468526497951261297970982812730476741385492486011589421516767730438335493793896005966472671388946479810371281609022906900963709704914744208960468577191186485906886905915074307870292802273987614740286596573063522217697899353346999373847797876978693496806004083344445647190953403638392658282586453783714302011132351869345226991015332455437087563858939734267856108366790166421699566326875869049440920293094302842963660128785281518551939606879073110895106484406539667965637886734243737291758974662435692640494670308571648823538274223195797553561747765583076763718072234931460654221290312597850595840363828357572934006210075408522440042762279465545030308938417893168659666925570198064010796083941087768361861578846943225543846647239004152947625524757832517555671566091622554525376318441377880526683171197421581947848631280762357944119245795287991833460526496703935270102540975277727093122573432357780057887493950586295544363431642317692158963126254594239315529742561631877687369548643902270470492927136793056868437267471434417433898626630085445454599186315373041195777188010431082607296060528667708126215142762230013138324568681290895390774461579238156200546783094702122130627816992131798123389197631511364335896948190857198789192108393569533522007867768437289835287241521277542531845363473669343501154209213074990507820292457991707239103033492731126655239608269382309402524603743217689451147366155052998035478123759515213326443094034714978777593349055319569460938864266344223813485261241414653947958542532772247920344529717065907521637396981801739190026456464950069304686335953853482022089728214498531753182505252045774146368608162369027404738310528316712193120999073628020032894026177792209996602282532911128102910581673355905240832734241401381912641405956130974893130914954458286002734080079042702491435131056583366374482033243409217554938345020529680397516772838460160054024032484441444551751334429133665870229147514026927088023669458667105007970514416153688926043812416261755924666865849637408736708101751052332032942215141594495164356307688824358247386895639330645182111709624403467155817628369158175505590576286982397422322779575736857070536425579531636005150396839582631864546752659835758183812056136085306939765382040521788670609696885656660868943441868796167592143003653732851005847088248085853986279835956947831085376436047321022234096164352925687339255715482129000330288020292527142426726673468775301179656402173321483993223569191419453988508123666789374001097656716569537020766117990068952009248963562186064876293821534161719761652767063004718682405708783115363817029601669508681410098136024772663747826868986783171093655225706015674772895384295025409248685448454240513122170186461032755183177876063109020939059809494799930347137193685046429061591524607528876768248833082874994570997829154496394338016785690063812522251444338595742065835786930933134551110033415953004948356293911089284067800498621864873702090418629960085055781817065869895292145377118896537272084119786203411560487230829545380935762589202354084385443202476443081782414407930525832995954254498355035145457622486896127080653948147470977615855258743684372794956330232357890064074929108298112499911618327508664219203480361474896549290997612688546285840265583826208684174915804428218989173203034674758516413094869614284728452518936958396607291029613856396142947042524087598461969090117668641249011396825176134090571664198074646997263155992343476654276735795370377395575841072827874856717407757464353752782319892174712021814193750299892303706186834282556269884134898282032036067650499542509718178516515049968502368421309334222975456873039824479836207724598393007224202899023586946257233918380983700983455526876200214140688154482748645973451412426568450138180427546453774634948038055045019449025561254640180893970338908519470229338707475302589279538827635416348170804354815792192138206490927472311092300610426553601446852086401837034260588015143537925632757801875279886323202330814710315906397999070878300475130702878295893204323514454460298524758340869714707353112760557073991893812921578222703704313855020362915169871374206737038466793298497944742248780964434464220206564143760416940654886626779824041011568599430484630432458075426444822330544757288747587805284561021790123383036795417517445943641244773556923870006043326606949256985054406617759621942509401890279364646549423700037328863253811884812966671073452335525947809945187644844588156458874938485446605843457728140523201191063368823674817277815887493031009948488155326730235317169766005311248125047464386544823516838484148645892716053665414534883018195089247122900870333165104878434878054623597885844033285852511893409655886162085141624431526786508001504798854183898793792327299780460777841350533606219599981524321966551855930053579771273659510261644276814864342179461983436543515193937181087208454606903432466848029416796011529806644528071188087254774429644542934015727321828517400672487787044279337265727834477172033729160798236299538871842600625590583076568031554160891811474105660632725346069524368653730513845468916780909782332821834876896480827409095492918618313066419160202199127070892615550166883959882193552223229892472664950177426918509607858507139800352039119894843786373581846668138703465074138427688158157432966696724873975395356058604324289655467376096506891589096386349853075948685123296789755973968113877857617543981687355733055648432133065854006795461583178718251679258175079512128029815150851079618193492676323602473842105652671038586209858786632655010055232898499262759801158560922341588543298409889215465783345723016368503552013483046279009916455992503322393477824289816098910999873308513974970829428408942102512150444180922897592105221652448962261256355457016849754610506060656889845472542087104511484050845531839900261943384003747333903996293053930410179816691445059481039215408217023133699847834838930661812241986919645912592149057082382310576310662233849896709294452521341519584502995294423504863340727851212395433800508248888422243396233533601957920231335119144198006658771903931554075358374600250638139836725335359265429559975841156958914693386348210763095818127068254105706859108091303038351701321922284378676955907355010027813223765298368820616174749947450515369175055583623042615566865059022569723126186201580175521692302905121021331412566302321666076419519078886795464789792784213953247384503728762073840781663906958674080498193457302032367716154690610711513287956509868717788505809474252048277216930206361299795176146674081202227549977318772053090561190069411715035121833150041472002463255935208937215175897707466756811581393786581407445325177850551251795141104802400310002717143620496390081396374208295210529879988505990814962174925305782977349523572144268912200972234557678918478073775573190024120758998852621845477310405324808315947249134518594911751510750533715793576734394239236270982262444497785531282267254541409376786239536661478365410510104233812208984184301824788606952332635844857574499633651407544585268927552045501980838734845003040750480346858978640432419543694930213519608674175818604223371624031323262992153717658787630246068372356302468033196897806234862536967190957854996732335458773827884378025235352590474624709616677069427348657892358893170974182430927178000071086848442884968052699101289137304846641813827165964698170338321460281282051734107680900987867738249352696891464988523370343577439055985894618840018664509357705610843474650537286088946896370938777183034104858036858780845669048288786320057969382744092121946203465968704317808564879726388216799496746911366243312507860333616292956653551631620264244886015172473570775409659107123033048535144785531363114201042726075792597917251371313618199662531426616540760219396174088313767359552732599564302102840986790918184405522320630740429888010571037226342795387878064927070341323354703197811245482789732180114430297776008594425845526229016057240136391870026316773305623608266477771203892234177792732195121182021279374531636766361304720361429713127647018749702258579180904803044476834875850861344122851310156667593409935387170939505822070035511536568607981832698047427845733843499660227095201247642189478754102144476928064329521262912086608332814565054576037240422512512031587478110523125787745871320506148124550186111046761096289912691686602193885209501846181384820298797904667983067104641851173449701070530419152667171250730535760340731546484701945128286646822860589311569796161206755547268898782314443505186975014628472914773883659370322546328561529253845956397830621185918092477855644886825743919849496570588487524171051120754379215940756762991762118354905097707167799142200194616592018504366867872028818097890477577514209039695596939577740474389185901935459353391314757392261445752093731047107670324503762135931570074190180911807750611458370842294106145579737391931458449232773088806639337854807610776087960104903457480612537767426502424581215213499584978599408227415922569429565261264992250217956822334023181983318794282676742908526167890274951699187388814502474016605361753605345954066466340228646631312449572251126790654273247989208068151177335820253931533336563394895174204605701660087063862104011107431784121000702162467607125518508181024602262750912380991043353765843209931840761583370678639815096786368709930239285922502846445931138672855806509283773700961298365364782354681983737484339060662945311827096926859438381974011441554436744647059277471040870590094561408584360661457339619519064692921340642678740618739143682115403477069549357452833670697511569764495382417144467038729779578775855213081612814618712366389185168923447224590766581750293015056181645244510911418028243666948606038330612551058463622770498040871435283788385000666446900318087177007241138491393160176895052386054470758425975453245771098755043076809505646634199173397299845393166873618802355018541305864041403108952280393176078717307963970716643132636688098541877638711767843813408336313444604213086937377881652620203049933324240293398862306364630107887313191801917769596195184943721657611598386387598581280840716569156162385148605055208820137809436195808671668608271142365654769491180016863078347761513443137544540808413144852515476983682738416702708860526883332791101715934299612067457372682366156618585253779516702854167895704915646001492374416159563395102384409946628836666746720333887063631969372360103681431163171433902310110890952533956014210368431240010056483537953611148279463368422265462664432674242303891869421216608696281301998949049634185551118024762824094336764026290030557610849754872556920554849372445550310205473720728407944654287849918860467997014244846753968161210975482397364079182930915292717856909952387572261949880691392866289686502172616961827524815940901583145784859288753195598351727040308513378656324935657078785014499045094798860857849522254372038206276479894035883350990556172031631290463662959094779641314653197142086176961313233842666972120355458528412797036003054483032796369798213134506807032444585104064289022028315504309751734708897172735462016709355873142785601785687915543392857939133674356312321134147293272961684583628333776487830499129069664575470798338626798377263186724205281540749735904092367976933731317881470338817318800077798693246460736169088128172942513190343508520978463447194524044452503548999867958880232199400006194570069885136516361698176299735660733645550127836943987423957528072617061107164277463866605471896415423736137289588729338091494999762941587941884059205435443188753545141924514149686372361155964332069472573356794160237039299958529208087023316335062683685261596349293362599664238776471424730645136006560899007364779249333245186882989701069511147517799909651137586509554786518874294407501695360511017942639881985911791092216428089883823381275614144182295981807834766450164940815941452602053892902905223042059344137097670756441819139838220165108168637315874618466812058285665293405182560905908408598863093724644373971636329754404384832634478291430288227466022965909271519871729947737942141551278356160501895188499553310941541631931995251742936042635933317323210408436443790108448164045554797212537002898310086107784308051708456075552362072678250413111961948837639211553875395110866687936453549383593137797735572986998782360584531976312521004688754575648400114927628861649245559718627812331056519736361454019891576417864745481764196838623657698007617703142812833443629260686772275604687109588446246982787171778460633590086837459141784715556743309685099846266300443641047344299092988394655457505505368610514226328066313928194520515692015471256386097881279658244931591295588041804577515209101389647405289572895946411002299113611249597234071869885118146761354634549452680372043872041928509809787149588346005302347251240700487304868523951280427994276863664909036819024510838937659442018024151327092061585339627768374820834381917657609873475520239301406949227079634583760297015239955186140437739082838194979638965810439746294000038269104094649614750779671428606649576792441220925220593712303944338677622621872147005796883996781574655149023378230407472241109943881791598494130730159390851747128676731506752604929957585939769191868770725377699983524949289449850057394772643542282663852131052471721780427991599664374640095568730375867079988186967589263128271382197340868451520120708882154110371056185007212593033841124212400325460135356231274442406656960861039800115854243516212140344345013339832673376456701943916037106157495872629034300531783782270863507778307849132253414872829227155756871726892656594695575765253032302294619201614928965101593359994360624573787742576032743979559372464443357792906340772999353666938906427379637181935349505512050000182492872632458847844105290501270431400233560964882958201606258906445747742325450480999029014073986843338093485095669604739210514602615866571484081687853769759923649136553562461381940590611102342617463703436225771526077430774224645555219770532177134450304634912105507768572192397028220996501779495031306978323944892830297683910735979627208159935982479833281608313710201321440839661738783297864068262679620620108424799909660508567311910123659746594801578207075946533403114530367933685672914422152894196264689196638513993568765076916667643957317057966068358597982873143276922837226825649449446587572314241247044896088888268746844662145388017735484733644328441656088437770655510584319165013677749482185438778929058358298769441053648425776194339443891205632768541755225572083973960197800511105381451537887110028438608641658744905556625108710998799743407946617820682166263122417735466194972468100261519319251570513128851114055316846872751189633633231225005518640318525659746818197314654899227530352700588693754957870578005958626028308950716581400611554450207661016284168874152235003734940205631481861261791620590165101044192562809101803721346505552952487792467262086444313716764231207183677956800936519716212068842474898994779937655976074388764273416622085384361757388597008471411878754458666583093868957566392567049087580806385218465581651431797569850090378505385252784212744424604649108583332808065882004367267303656358527596128907883843765343207029892612886133456957504085767672507148779318723169948777132918124213443196043464870087119782266494583180711492167872119299010345691748801452842226106154303805353785975139131843733017370409461109023062992997111500820324411891496312099765072670199538252606319015302042193784342189742817462965249948286112044800046030790948574838027353239478732895340503481607008104964729302157121754895893905216306441811559459379297403257191230521648388145557126890672625980712134006722555038434195156206427110575268166649869818401926065858445992992191376951387072767069332555531914616139596460624608899769160863143391371420512672685237490136606730843779210065207662812337242779422093489337212460074068544229646507176427745662792282107053046367631818193304500611002615371061776067462567956846369017137311104343674352263263956869221579446375667850593238987601171861117012207517065969472174338194543599748625269745459320794731532522516223252480198850941637363300505697477728885501420428688491228287357542881331966091142302246273513989565026150930759007393015394958478617093009605079411806413427110123369695135567676834713736662517169676868134192588631565157590514481783905698760975490088926762446987084130528305481710925283966087940696191482743671317556796742684429889878531022817059876537259222904219241422256379231147939519742867965133728278105353627715581473671739697428125107172951165534907454498248644654896216285897829038042964346141505038223417571131536880795132273215935112917196170954013293227554351379897783522264260012221149365415931977552805248392245772001210560198823245799626179163874582735254349295819228909283613950123546157355126426020563843984752099347148427004101058989330545206830249992269074161008605857199945543331816523217062482913938015664619694343789733037417857811826618237205386032604061548312236596682712839860439935974899289662471391282322081652998249807259362916600034089350165429112116659278363975982368544621831789429406265612603322180587556537138415797989453439455131007001740967264536610072688785476771466208855667203320640769329824564932523218497290040056406145165488689080505174100067324561618354525505610969159639758865132366909904448057243127014539974697008375351852864915828939654205171679539028236882508324068947681792343276618301549828101751871718063961340979642616938055905736104587848654859145537033438473038667421489419006281336088150669429030559341064221561117435011420956121873544364764762212586201099185403334899964026348890934431832120329917736314923858624579649455348769980386257233574678123584796267260908609838177895272377412356702642217415698800986668974975269253892606252071694582858583609871869724007883292183657872571365926486028204764147170517100797320868906653367755431193344242568033260351085658344424710217749536189070471127915912599484939734649122493090140510302974632465142840616299902990620376972682576322688910726694068013956638126693993645891451438636627705783089347974710846711727441330430480311630614470065661452121750536248072908906324600757642037515527657539085238914999382672870073075049981152248893008290020227993585869516658893320898498488349335858329508792783448960505795561937693406233202847007298689210038657615998711119541300024456685821545881140694089237191077047433659632103078626236814640714121725377016417170162610730891562844228798013595580604128655703095803526474267092901903207498188569683200944331438330776411321334135930916595543269940790868013060889155913455891062059920645585431863719360477833778103247269473995128678710156660102041742718876833676196592180698575247676185581448127851766247667713040930183724561806009124272559338739290045088556346233101753839257147956756919000441976414538944429232322581171758592360405913190844806939109176510402669170314643529464726771673194840774142328780116918215576871896688189705626201830439392669022626545073992704711673398436976837238295517841895944661129918817849370714739247187851024834606803718986338989622274791407808601358266238139519958544285078891141723951215745363759613801200685355698646246819889131183690776521593585380027313997250481754065343973154915405826447099003088120175261300434877356811422650718311893004950205677035357155676626018476822862310604487171632420097797914527659385377299999813266765716423197688093883612080315872861248419891697413936746759662603289211890587777969687659423806544043655516870324026889232045109326361013627995461354357014325800177304067776300731858427059895660308259231916495911259457611620726289404592166753940978341709971829796514918460754064368124320231070617769113367246924630334427300253594282575687838723279964066412012390052765039654937895823142154680417842919762520184159390725235974478111809056947982887941251290972400162824387554385246181500017518044539090442099448736762455261002112849620449454972004315880052310986750447492611355722497389710291970293238425291568768368122167926457305683428326935138354198021832523706230388500458482542112407165415641284673404969745717707004477256945932155025418872190428844046909151982013987811025963193169796883643672454984381585057459046417169322679353609474722519684098516337450408108219764262765244139694040503560962272479023174305838867661954052276110922318857272675226583028477634825985067376618048536243765626066915815583254285878938008836714091624300511087521609266415998819968036229903817927596683677379780333583451237443858136759215431723587558852254001027097499895194810732356525959855302662841224827007179189603263946837503557492169903038585910036804129785737295776847253840906688084023078732726983693335864860920444326986278236542146420340492097452342664370609288589937556170264342214975050753284107933095858196135475242334720971457820703451761786707618999405630459400983437088648997126362455346782357822969350148161426339801795692069278290261179955879303668751084495027638615996623113146165849549936670901503561953760029827782772610450955248338278077910804451300712886222879191311012157328729565660157636481085882288689636395016847177220341306404465390697494562512558421505270708910303770572061287271562630591530758033884489952321668710957855389797965217042141045350364615192880361953207465011730654517418682724124452801884281399159531932735986867178500729522229965431693502284018038553916845662135864352253244782472000042184211272525514693837238764900204399150110003168256718004603748419576943406097429450651534656283571900750301132919417731329833003409366515860171889268530531643863867361411159981686988429610875514226626617972901716671212103023302389852594206408232360882329834419714417574303245648603372560593779750063472961399866517690268631535149871545244544855437446284657174668330707893559506108394787179181486018967099384082894770951583260939271464589872633184056578200936951569376296484266775818262460178525504236343082390509305635942426882255311151287917150425581523128277165426766937166471731984266186729885682308200205168725144011405893598092806553535934288610116380080197320381258919244495045648903695170928310164675338153208610983949327730828817146120941629406943004873796997379380816975664218141452002979932433865511023864733579328367568149895640893079098506214560796955807851962819468280423654825623041791056282381945594712052839761017895776221254899724007257760474087206140900307341681076227477367890952994825924031663216240134088921323903350223658907287796621897404218873547992064706221036142925115739107298382314943016111197441401877045638987330271562479799742191632111684622708122064915438150927033799958698377251271234363262890309686769736308700771104241784058502122952086534389974601326166812753966178345314879351564076555229888718601085681711712830823194315080475182655724888059339281761814513979773402886949876605137530077550953204325263601705836777514129172817043144116251969003458374318376710571246180207458002620428369262672120875413508049177550924908713456063658329672603296104255304285850688878816095373333179497047393264848925489504966003290265412051013138678787847202100707427906196518367225771687690274912674131155008599909622026017152669615103095223140671736768297097991872356229331407432422018985190472744002555615983351047567133175231352447544387105788998594294431863779961734517737352492710540104591785501043514422078332163051127259292502492570886932902501236176161458522902530453284248648534893929891881969975411276430797792712732487687302537252136675548413462353550147597359821364539010951220454485962901641598102298866012861649283475851715183461982673214103583821806654526236718257559573184287182784377410247398862354163483029412231442554858808263784454395459455885193012460761693520666073762867509776836641577629833018007488755796016949360192328430984490059245041128074241167238636746020446058631972454759738878478077752858835055021531391106946970672031081107391465906445160817733407815271874088661031389070992522347208460516324122382317994579293051773961762224047306833594947300259176818994455169992351894459210628511773645804647053194067826756919197911438090658824073419176045415667083018981375294189883903987627256376767740959187791941921583236673310330948310491435107810897403166778095742688954450203348542715906841692485274323052994073266255406201619362822506966537966111214170751847993570343376832126338134271413678443144371848908397885178228550969811026187287144779778911789650618826906394275518203385508590549896299873990636259318936092647794497530184729361832667225839949478384179274932647918284599642112139752898151766860668537978764590093247760154459076441199146157806127009984286096999061506095049310183383748640369143910744369372605008194424428355660016885906127460938908312512824439869051411598841477501816160974675704875215871299031033567072613673049817927951376069969467945418255187704345221958353871849884772468131550921761448421077580611660193409992064020262875419298579684882630104087296065302971999270666939586373659848661616155693567797601939364508539831540207172335201890198562936084962120745409917691487057706251148916936064078781176305226285513241180291928767494628085819075890064780741930642353667940831936917664679878554299636674507199206801356204631969377276636521590391947306870945162207683715580482458101782444544193236586368511092832830206196312941982664953190154003105438086305929643181556910433972759046937636444192110478634421276660581123336749593835657102199206210778823856980667249563961378251649847738237539195967718234324313097960400718196136430948661716050298925725614725817068934972281264007561407783014730656885162950432801514498190666861166336199159153530279224298124327119279919475323863408951056803591129796193036264126542686910905942923201572421942507574535254495877484821916107034812163186275606042862797867446456707835835734225704145966075178851665424321168502466770750767606818170134437810715761893636489078054356794781491699074771460973572339732679543840335843547940659791265660005491894250603013312519075935800053037917533912532685808215716113438076637491395390049856295727726597426446931220833482283593845222142350307969958771983090384602332784897317238293237533344736264512449600618009343608153409659992401250618826391487112254839576183822813276052288848921256521631409642610885671193475035007552294532844181912174507353378797041095040416968054198994052522892062519873240237195718727214921950942543656306803695340439562886932970058810552613758906970579826217182672666370246439412911425127026643944950666749964808031609540756608185542827139135607570513559670109519365020402665420964515493230722148845651823630337386626852036274223556220440158901180329098528406507132048280456768278083892655588125221305051542055972508169012415130471246717229486986419781244593569100288251803927505026641059406996524243952973001449449220146082517979384466511535641848232840509309699534051108073720943134746143357322494701724328796550243873056327489609107836156182309440811636125669605452680167439919318155044401502306917278596663726419610397832932390966333111229386778385098217528723337315861328835150016304093951945561077917028430669591230743431294839449377507821587125657146417384643834957599457139791260901758156919057179008492924492191554527717838762644792678334130772819864806831004184665049399565544496536031762589257034402772450622697512199394953215326412346828181779417432867328052354479664833591868290746789061160217616194466485975202815654930025759753349305158398411363371988848737451115702173478776031253461066015921724873846500603155973587876439184310228517095578255348275783670255644245437739437393063491572623252476721363644840925724643851416174698495022638460372479712988099831712163118444549367563870802993761848132010221168561695367112067705810852744639507871113005248276337259703322157653176534517047725063371698045847512882405244270176679535786805831243939577328192966932875889032300121136709013948850751986480797506040860561254771513082775865904991363330770694351883893890592242612950838811189554090139917480809624576502892647185362428620675098234698501490948766749246560443002883177821131578497118001045746825997299426536976014112269920711167462682954309931498928671211826608124693624071904602380676020070939623878391037265446481123221099227648905719316707652951185216460571191046041730264971159418018812427448032124401032060975411287652174885478580731021550324204959631431285406562933769385765389078505078399852590825118116840219431579723630564996197199696114714644417546154492910371936185649429999519851744875203483896247056176945240557628303943541487422524304445665369110513486182424011211553509686595043573318257522443356521561222527758802358340165663258291867675675836470170321471315071917238591022866840859596464001344910463157527126913467153834292280011258660646783751477111126395752310768320967637789365646481559806029872802056563195095286418779851093281418917734256638657391597451805187327897530105514175113815008845096843424603034258072812071557177681485359498034128433700481079427520535535716124978596002482016210843874382314763658298290181842967291434084506017955924097679810941807210008455797561242394748988997277077701853526527641316264968482124067811976460123169861686649165780665308576359552815355870117077115227063597299333415119555962098256637174102809339134827887976918615777102639096623846282076308550024343920254803984234947708905416647482196450009046400501812771051364133181026434338970822690254405516449515134466587315585848296444123984008758311040509377460556955795997207393749217903255936816930559658761798623621175231118691316327927732101348998364219539148909075017520919439977406469432554708567178675230667238966172219733522162642487845138205772565924030937146184320274147605187781428703077851159039424317083632195898742357491373380236477729517571130873039553353975672387360881175908919299720731583634803300514668837225223149123201970789189494771166507535190407594535868992426038593645800410257686131206728062664086505068649721517805225026214303416830135363605612905604993540543834392591318748880080282791799152518378731739931400672162612567527274059703642570612624011360079426561249277481352303505385396434228520932230625390457158129315694334738962474409870120344245064943578802749050002123055561824386928484630892769087447174745073842289507342354113102583691488561578193685342331930526256249631972172441561514326420383833362794545172399204149927304873124289459756613187903267051493753113159951484299739412540766528124444746345820560334168279388354315745644226479124289850178697025356224078907017909304731619540226190979681537748441373021445098280455546115194035262060255762151870422575783018964196871532443425182695018075749248398110985442924987496526230712120157682138165065774106815094991586793047517880594954517203028839794704628512609411538996861198904605308858603161661057985350149914219332269244854144361995874607297142614866889025251727424245809524608632891716107343604389349129161341069853394565073449452759913529498570132285050493679891254286520994659970547496134695400555755665661112290171912546850409611612866840316568720851054173558229725726373774133531593193268982873223196541603655526657801189481512800807064808004760095591826297370946954829545211478725583757462321112958369483266257449845988163821332706310956587785103010794871222620243734176418718184385263836166405760108996922280189978520268873934897162381133065878743786125217827908620183142310138878960523586336652562769254097907613557675951252500675718906932364404515020635461810457165230193485492459125559883762170615545277670564789873116844578185730784150472306339280837942414849348560343812492222308580667981010599179004151325795101071465905194658097472396104235363813006695513795154442442520708672032517135465639440450475312954247922488043526243414101995861650800486292814404583846408410761437346122517171047208502455486748040514010472290509027067140787546632906531842341266409662886522373167446526876014316692114740131251941951880351069362260001621002745738364179632559046843356526457063087693951052961409219543685618087943810840954843141033283057481089930289289327993160763064024002553517334207291460107137049185481296947254589466094907198289585388179726426833240523657213285328018775061631755832633804504941603576858477542550852421179640350374943846476099325078888157683162496592074310385957514613541078790147355306839757577465881811532039993487424933354111644954557544648434442137459312546916834501401714069575880636048847244698665155547812338029367336020981377573182230731911587270585813585130136060879854220438698429716380345410708965097087795340445559004953061430791483860000291354820544551830728645976790665286620103243203850598685761472379326292424618284255542292293599874544035079452226584200568593504277202887434255103624009794197099024315025462230617878666976128543685843764561223072772558432348225811148852819157407277672816341702563929022559212704187141951383897876009218779573549197553599872220189073563740520317675859477182607512228211356446629532157042587975889891195653045840343253984729036529441781711372724946001951301719365878473308702470080495353477178635977680720117197317488398632337655489880362117187290786994446058088371930975604237311071205460686928260377410088315810738172752341142451622327405036305090977700796913342816120890364060998511592755182117403400644538210694758485111946763319034002996480844444094781645300991178146255430180391186120709301818729314758301201820667535423412447363798229617589614771110971473760414856138788191873307251730615373953992300882685278228582340735349606353941534812519954221774028517389874958223696098179779472360676246548136692783488858763193316152302012418529149370369833386125420250611018833920056844769995878487501218268391591035389980626086063214012365173466148540323923581085948559970084937415399987817976444611498728624526594180567935137357380895883531795443118275531672144171374388555054730706583256425021503191028325210558736030078216967962530336371734849279649888496324397317284586350261896415099695430230475698151311781547388548898757732997025334292238998188357257247787509727882357755228070387284834192865230028193293346278296130129704099774898430322752996723001454235436223755524431379340790903942208922888336011290450809614678673470951838476498594609034305226216283862379693598655613627163924922074642485789424693238556113416778979304038629614152545018736191385716875658976396238378610353257165882411680302537373161076066022945159586285560062016235563250698134488387693536446257925647678947089097403559320507449072896852475877181153365240452793403617936087999475980056243530543295178806527081258646862682737444997120671784502725478194146513588848473160765429642112290357504243128243883345638699886633065721997695416730816822754159708216111987250971657694519826702682005845012041246343364144760044402017310376991920610461320576181029157688882840568777837126793444029359625348247258713748735497561793768149795899461947617884204689787717737808810879994270892618119937029567121532511524099968652712223765806973712999521979199536270920381763963244543453718308340931264614587448465522336791979945073280238321744662695118605831652952259223105648623511742949676251581469785711001908040058389201478371853022147102768195098624165938469433942782042224957182475577609244034602823746609627054228965180375115226126144888238345697521558502398173367952476475885457495662649932288286477409467823376975020702009839913652417909997935675261937004571465693488507734103063086061035084592602844921729074678305488751783689855145560188629268290210178726124980830260746066299200353441932125621452232094729299512461869806079182402930836340202307251861080373819240419291939425387586992485767589536583940600316777630178681429262868063380037471450203635967020668499688406072082248178985444623068471989392304365889113583676415346710511599765509056961515877757128489934467377814216007308145192650638499785251229543385733866216795761282335270660241525821677579682091561393065273893110133224126208897467563893298731528008689182098726460853440225159941964551747228327828848069443288642751553756618154949341028608416665114556673705654175237859547767717632496741468956436068512964857285951558549142060410429240480092752360444780172003172877079170423879286622990001747763451892648048117490146889938508221215131089563635475485194804992278806193513359127204287311948651836444081068300934784797731400611921254420050909693723694026646573369549561435513960624891814865570875744522158058021094681678447647097191200156380648895193351497844165855836362640545871895079896244241796617859558881785525449268277298846846503613297805833201267488913780821929629017176752217331022940027374547575727749463615715041423091828529762605917037672854181501653602182284255728611824655328783192890901535038646513784011581072388679054277867938790879868522143683068950906465539305634030313798836453213746123826521375588403197458494127467505001199479477499572664349978056959802016702381608429638835450386665333444522346249774933836319796787086338826705401784934085891855955484513886028950097356621309789865931642608902595065742497756657793491857780818263339421668408716220373742719037566145037846419400974331051125904816087349136119780049977625615456120234623454098057185393423818434301943406563811541522420831048971604500511426305274195110515744942797273893969674580316773471425738133640871219925763753867320678605078739490062122385931109832127650486873998739092165901368920276030282389943760589592207080340261355258683396644579603543088401822991038096454919037035200228271898453416921269293503548213153803462930976254503186314322441019187027347440526114025924383893289282171259468184630177819052579877895663850820618751665014938425449422276901968790181907110792695595259404710501687348537281315696205859140555138891606565678258124106047485832367973662976134240505693097452629442784114543198290838781922414317326657234056310301294263038130789164771574802745037454933506786206351381205644378708281218536881108808131201564017405967701712149922904365044066660341648655206346613880293404734378582196471190944349127092265072340098555383092770217968764741037353852101658858628023204498006405636451094391260264477756237349637202716873230441219438627230095668032117264806181166471141663642773775125498719574228321728689657060609227600136689782998413048458209694602132618826725471870928609199057438629458617514255054834512365304261029691670742481640382569685471958478449943098350533985527334559941709162445765375499565673922606960615131082568071218067277501816861104953437272893231923255661555708170446013422694300548944710066538400055010792069824783947727184605321018689940527981545664652924840262079793001324567696714797560364643151879629648352747455777626699019158252970864886841643503511248582841602024754671899027053122480452439095051145394607330157004887798537435969126198213621742537767865918923516190539530497897563056490591130065679727942014868917074158427632391508394473115617648581073452145117337793449496870426908848184954183403802378420922335125399261749870852805171503952162261713531888184995658204997239496390211503904260869932063910775269598754759767116641997464553034381910809442681315751480651949890789430324554377210907347477052647831673348700368351438125972238647621595639512301329542196532566197320846301328544073525941768883623636383796333416262584589572192580948365655706652316921699300243641006293567590652609473613042595403875448055917367002391660515199078260585086950646296430585724691007484508386212092605131176942182478465501014602586547010165377479625520783078791848877493438733171711355815431276274865221648407051082256599539195307241659251448704931094964983403285648513602775867145960424298167048786424559251669042477065570341785256955178277029084510047930951489899988894224525943364202926984016055972018126262893592796363800716070328566998296139628467334365452931847816613299362892974457243018932816069060972144931065373247946396426731883438203638188745189038781931532371734722528447852872243808815148277642114853065726142777420587356584226088272975175346068945213896406002008730891640061458821119601916597833203328304095052746920247182440087842832157092381276148521586085693336136262404363966450386871949818275419965406315181617155662378282839035837660998166772148947592240477417051982391517912531128093114940827303574800313472917691196644104452878085066192249069273713795908946060365295353135151812329741773807472525913903688320501263981007818269771422366915380857093342939319048014944421677877891401822638625498353518986383131347584876994304564257756611697756261690486388395946756572868839998003865613681711057977315916057501305456361864557698759517486640689605840911462003449382936171137341834478922746901873595237722570467088411676044063121157384847554667487922453310555661299882643666238529485408625671424756324252931569260721481114416727293939390582296878920184911617496059145153646967477984791524405844132586860069448941091576411516181109402001252398858912265411989784379731199984470004751071645351222741704377776545999832140153683885075947328433581130590531263666997038750890796051237608033753303878499696166791571034167227981905028030372147151898834133091197075385998306166442927641556475268147141599240888966278205569153771437133021595641739436533210898846240604494438315914074563082774816393860160256973933193843644739101848175327425807678432250064382797326795879758579190012978292794834097498886764888313720029799296694899535336076748431541650757194888297326202227544771648251824130462916792370940610322781350051833748487907381275877960577840483236496671001123590849372497945952613814050450650285474201289915057775862473404282392826589142960655275029984904083887977497702461421814780844117014902571021093116159191739210507281831504552775050347076643878466016397368258190434258546651580859539185035325194532085790776390363862308344563702598629423427617697037274073771651306252419382745972316786199502485604125231741652037235847848116710477130985627951571797418529920916155747716787547353116949141981929612264653619110615786454394421181736703792595391153986443821997247367595029000391970992831946133820854094692280899894380840901395062574245668707665348440689478899444543570159195507933495842908694164841883950248124807580031493284945161353799262092468867572920039568248175462049837351850679971936611696271721391645208305601760425785923498300429824941196903677160664986461484221756073851458482055876989219043849622282065393672603822538284859653489397120531603784302369413348737021828843811917900172126271412533264998946469017654711185307109211251240843145923598373925415095771100198194591871520134255001931434663544693714926259847815890737618186912895244155084909769129888007170313568017570660231337851882397977227595713698067190319171524080832541199858202553667399596926768691558651220512600114726474216650752139209724616822532754548691020500968432206088677021941177034937333368093103928346057242192831362452625444816925496230886192893355673873452519495453366328203136219753541074804240282938816547354600135143747133825335776087345067338923734702666095275574846564236187043243698020689835984923774651068610486368704223736200761934144492985330084648889988385579048315868491296518148960713874406271827511687073076700718941822110881137699598199873691147406454999883816157327069346220335995586708816126998738631356685188390984345755306865062415841932514832307130155614082777917305610427010351980314264479604586012882717883881919450342841459768002137004204686190198869498258270718384305110529778776453338309081402602668606956348413932492267876396127339758260917412513712270850649679963927857197841245103076049700416336505017270707251816750217377529798886494567360939701127258177399141273601038790471089306500630182214524629100674125531116294899563016335737611965486467145821623938429930830113592727192951877085282269524255867170696564167790299931695216238373438917451003126525961408030204878356209309369738095281512442666216370468687014364143495073629544545218628823845611494800200112188802822121220054097882272781078231470446691490618282890491803421678283224468968556278434464219331852433011980022531794998763307480951853030593749701144684587523930246569926091552961848399785834713411676656466048302454328659256835648298032148628208108463131721557959557682088968901461069917782320066096622646378817249028023354242004352272676958775128697161419701049357091944739333427353125542832277056153354192552241747627534020039016974186716548249734799834728130984144791470686676958979219571550619261653930524964221628294924812907100109391831562836641200800841147475381224757701752570109829795980529012159185698592721780972010912279625801796820944381766741054480544069914867178128745687577096103415086158548296305682966093232260921792497149448192766049630367523113750309623687624562752504615938587732090249333877474320080327054872152990193287842173524279686676719271485271126763742459937347605836626368530662462779948893120442279111348519777978893696538299736248478346868966345482952764355172292724270646848863880868236616753574533343461362698828760219834774878726112900034892723180708542330205140571606831210265928454734807825930852328799476055572905902971875390717265351693708894499834383215216268872783901409761326743343166565606750899468051160410637580604363688929318015256532082463938016190229437818048307239001990467594971250906011430475337775582908574747588938624803114717757059778583380709237520646208133804726381491500805386614651512653955282427974159039588173034103995924738313162659176048260336705921841816398904680853280421552370782181044162081175527757188113355619162920762942015166579955453104247518724773863110769008239583557763411206709881536132477918160457039620526818094896263902136953844947215135638568457357748705420481361781697645420009623987919021122718182446931392379508124551021325541071920782191572409678749793331095834782172820109023327886686577511802081808943059927144797890061395689685070633739951184188946033056239415065796734262455321016145934970082995022721252315357127846504977828842522806272311546061612046878397807542513245226852250740261111588844156405994451552171989488165686805993709181684229229238535867350447884906769041972758562594238772603142012224053583450948387629349532855903258546366462021841170920469575889039424016418451848469405775059637221046704794602776808357422925080078089019626567092754625404413178533079390167238452857896567015136646233706195803249726224593528880157910332630529533436597379174444787279592267922036694098744912913904178231237637560262133364901865625210147489964542545882261120406992238443105343479412457534443999091378167512199488366949709786494292888432318213049596727518133167055820435627509447798325856853698630893377878713553367367840330252044591981006895860663163953550022357977327289252107295986100265042437444086290598832694614760816764077648731739471590716548073263026441264344052514811449427637469687677140501896979905900196785305554755552409690751406220740866956298501171016479019456158942839887685462886644914509907142263112219068529371322949688661605709886972238086079532227192861407188041529416339041524469132752983225157223753762320421435392054974720135370779815365876837236166377613551294566559997301519977991801328976178909967290236726584750274378737879137313718350657406648354437203620647598701957371236811448013329950109084286887435793006917667256748612755738983273189586756716825309392656480441056573675790232655325340377111566956167991301495614126581128621118100074213097389820093016181643376609207926635043583478434239209618211533489518381463243605102920466063227177516880436569878077056017776700826071496768782753998037446256743812006271987429734456055486354253577953385757143696192839823116020822338905729432209528965827512798464172461385902340020632571888521282755377098748258816751409657614810028187049567170395477692941389364612590539719385169120507956615698470836800962803279451979361119797454684944186099358984572533801568895618200918379430225777912563824449188217875640814739385879193459135502086302952833994463972175361089817582204054214461420395971261310071525563836807442167148024862422841549515667853553329341461714056780802852118600203725345000771208196756464172078945564754231088746218946880281686578364377283460237294074008705015910539451224414245528465494998392819685905189695118346697142774281039749424777044027139346186295644237448610002433158647057664301680068008314689821631733004173365344355733288687566476461207814246205082864170157791224684750932626029240116637926484405353189350037474450586833298474354434463859015049652473420996819454220186924391010548227256155451662581062523319899773124545093430379256388845991644289505073394557056785269157293151768755335459529623389729826399179674294834820831681640717280486156256711789454383156922855641673160732642507916925322767826984294367251352304196204664781174237688583196806383237254541334938678110463292178952477239211204778877722282774140846107322378416455472960487067884527487222731803919987414467144751991139444860700971119566599004288674155070583809937892526527380143773384514519690697911197173098056682344069387012557302049058123122317311323978511225459821232657934625859848891539661788609391327319740717579616077526538059034636694687358743331250270343346939573666991658768738846392957532971411059951333168678886316492923697519942239304180443933804619526255048345610365131624691314007777554005233447225029063649516215242896462960201554927560802281788367675327512024318305839138320499419427919445108921634276981087683129127550731904375486866882039867868648732799606609816965667924853601541489926632379141295806949912092653063818086500627876289024707745078617778193735282632834577525654623741609709741939230877932067068803596999700323921658023730707133747221810879801876166390308116602781282006675021102622298278855816018698033482575904155406223488872843700417403354551844408351454436566753736224136084414233672516902956172411175530288494843926250142461916302901226644913818341456233401541789873578281659865054610051509820826759320054599036270785143007380373103200234240867436166407321904304528850385954566875457028872530049548893732206609025488397744048253758933740196239088730506396204415823781371052025428226113493093733415085304874092333164009434049155096130342331616720833885369448443150517237582563660461978431569560798184158114196096835199580221518868376590024230102984729354153006477573877594126290665761947736729456867212066362893871846597789043108209867356454727422294277755733111593359294120319216895770825488096916554896547677975018376766585189605177212418058177004188683548938457098059920171600161667705050936816527626866712534406690746994201531785886353093146118000294535560867192490672453677687062801758692185954191814982447573675762218786156806116144064446135546284740869382128432592743429247683287388585047034625931243830038936741494303202488971847512665679433060850803990561333037119657358397532338198994591340992800107839453870939840445367902144685419568888774006133163598688645041373720771634535713846278030208540552883032884134920973670465338125872459028313359466989444752155449980340443914672087447828908836153436363410444305514370683105007896385345613123326465933530766441629559263532522552914241029083164056763281401505777357037043800535151520189953386934149648690227661595045581492315769817285963686463868434642361787719346086010319199677394048708869084315303544361432901924038241041167806772431990166660614254595288842535585611559503022221597522327712132385910396545536612238151373124459219621304964050757404626463609763444437742871196019014699221295200328970675961943266500949580366336329191996943583345501403562650195123311999630234394853633711121822712201221093067028367980485791061381666410401316658681397857765394501540909409945991416416173960717014247420940637438834398748709562034060399870760051451885106855126651584145585606124803177623426469976697519253226965130216098367419207223764328522670487728003332774996605007188659050999532195373990976707528132566436554310634937268076027601561769894546681783693942879754260591350227761350808440144494022460643219643621745078780259015834481466474360255732819659490671223189252297972910836203933359135286928159829354141548797088606723886954195181277850150412334507776664220842224919197023335356365834920107212150328925106999899723671737262661910993897211881234818201353331218484304565381221887376705570148026314524671691117867037827345705240209310172509198611951824244110828387824788373594048552785846801824386699366114725090076122971941627012417633430469320431793334692345946197210014736102657603773515371087725264406945546687574892852184150050530348139886587616066325093279634386449704590968925848016403958775627853104860506839809870471964808348590125937306786738693625525844396101020583439888880559768942093436343192460900024629462406452282438310436453918691532045489483829894330725484711239274130528500391979835558987997950648373934538038461743572182567534747320677153029432364833496091861629306301210986863842856863831799440420688731205070424805851591866780674401895751074155134117641461947481270446254487414974685479902588185603012824498750290487335259827021950394707206847616641576269717407917857432148337056353426215367380492138928437345549383628492083547996094234325592386187395048822234931253532324384569448248044578380322430916285563895864203541000960122979775368876381421848997268594178516510854827269708781334396498639353846965079720327830027718305090022474824830947063712029221416570112012748599703403341071705314873950617551105449236032016204354670553004521221717894922631915156461270644057570381476490687465211413546800052445282463257801732098532912086519636015155861294095329010704331038158099860985286602329571046186457072574517198107494897198549857625803800226988902937223159634263316757934658513412507562679694392496723602477861609514399531815778334538059304767995815350579312058906779827161238923631333885860077909627254637616376938653064524047620433491087251246623816147989401808366310311167777155114486598242410794681093231770369069668963384943811524253586747166819513694912321345738642264551405600430115223123423546969716249576576502202195901527279614198323242094819480727929334554129827138307000738622805654070885788053838653814674427927168155039511677536429506314334752991572720555834921080574540693903917515038611929471913471861597867544092787838932208401305947799038149877318683133084228031772658552791387397125823574078322671301102382677186308157976886542932083580367573056051692842857499721323280269850829760745519029113789391197158109135822917634373931585807913801936143067497029213795092482243038933060573322810056450773625775207767972634328515084659436284475819979107414413569199513510206393473996126346558003048881851063281217282033465374247027847080020577761225501002630527110927047349165118453204586610285060214406049861573496535403456062995053074612849085911998483134463109025571510804104357455103341902012603492421182840651517533291392361089259319166457212059268249799534343979112115954250184879029525930134512621901766272704619444794292459146127308379475765460491299831723696342082174552911945953735760945052793832327478657810824073783338152841839652640299065272793622279568046023663468178265106923933992765730496113550736710137658490571972930149176013908473755753022656983187178088357449613781992078455368496167626524652043225816668300600400001341834981320285770449012758572494172162579307839825280824940495593908002136125982392198153247973674506198772923427594771111043174068273499231001706588586439717547684574884158604321587877967791375942123899764706869773797384660018800619419918756450708587962746810968441522169211805517696226728650493379415121073837320400350793950444409881136185723860732191181275729035063565698964149653376229436804540771901007725447926660974627298951761455537022191718794803819885397955672283594580182950407980835582183430686928271278242675621628125539697705397170682455069791431353322695271266482223568433524590366439328584617955321511238847816604797526330890715722937703118668729449699809278107027666070967410017744693250318379740069866152749483135286009398022445676575343086433319434767010634740606855935731840231906256521227792644188110092954942675126938908531923431638956916556721012055456590211731452715266897742439960350365061503074942327555967607192429450713928560625710590181297360283262080356951592508643455719316883894537904685580952436118575956685742367332537295307051281087046454322035656632766807948557852843624640236226607741647837641434886036024129282552887349540246574464519430518451374469937152319082452065067739407914552704796419052369487444799002624558646550032193399711021919148514253105224890293685802382261234401372116887953964826440079872978307065310792328249715561614379201179736627502586155943229312323279184501123286587141623551069774054347591975678341767205009497205553331676538922138712359676353790626684352386555369652566484752287007973635342843064724559521614783079850842671201121547811807337077702840383127089887002279676792578749173859768939984021945436142136454427550562119895973651388799922972701907391487945437390733502342932222973349511075481793448794063124958349425992826972590699393456492620976570977932376672318058389556756047361861867407103770804288650588917027436972416534514896849784993733418393863801912214850035210420706661992275396700890750781098244307570239222739580086069753866908245273335509023742800532253137957967800867681943533166140605937060352503101148990103121843210094369121106923918279438818219245920130365304898191346046778582585430018121435353494146655758349174554018829221319270726167954395958422033213702078679054401307488584043377573656288593287263260366625973032632974441605455403767057615136321101315132903019198719575412941516939091616059680041748934110997361699004263237001576422184450981082961032818964279736958725902215442722794644005950790128298832898910555022677992955442321659761856287384672829486522800127229952068648286862640533950089243503684594472883622983150359870175097442554553236940360565369765170710540509347248968958799413128579868073909505181119193663473667541622847321979203807346281947166348210838224644701679040782639370069676294801493818045100351581405254146631191470177187123802023281860320025410084875958223440984987557317490695203796281995300174566558866624305156647829438425512907007244547265419528068281245223592633101190992507725290565061383455830743439625494259119873852304622853556584389012539403339703970908594017150158918544035038697074633663006728802201478004713366679448032677698828964352657126700337215057673858034409340777892021217030754715778119202957347441925261855691227151861857635877528229374387001762094934068996859637735614807715361939221691739052541077142568965719628991141239070490000326919540182313771463458329277332036212415644790839539970658086594296542513122183398265345545875124211342625079445368256478986606295316288660491376063938713804945058135303013410119964832921577010961000819569645727164287196227270120814441822957460105988434664917280697648717167207308891528729300171173243751778044051061915546869028178280174076975979452478135843927907336787818747288012461445401255736561485576387366619136883125557580210026290777473807131906480951908398344552889778509078514547334811948085915706247945887751149124224280827693595239587041529415840855674726474710926983601155178478803818126630583915353425641661192444546283444056359826851032173392530674449741268679629921198761026251157245744706077743387894225042066826613661567213837104726765435146747240711503100507848396397882516525893631791082352708865453640564337427468126343845929051413840444039212417715198422163886944582200992919199425971414450949020266748151473757442247493295903088830827789277059723133005834504177667324738248171391350094332775887061221580572998753879894421884999081229379579832443525094642839126276777640783081242927681559781078239349429206785686839413555803732429405351896192420953334879249709881822660685937642139042827503311786383438416238023792321926573025807929191012250730676224656769229421979825891456893227303621128793116090392973837962508126026696750380615760384497384810643288355256483841195718728385067810952851456469792126414066929669220158722897830192277782217908043435278973520639070605343666111826831687530752247281534570996176856904670421937087938321866035007267010240820212788375472960305100051679533820303735627417317318209265495439332034517035347259712212113868675231352185521167827279887352777786590018950973556448667417599096990801696361422404789706783354936913327616618973794438778706764057839709649749465610256137153448990806195046143521467753824952436915016807323655522696066096074661905256760214427654946764204390371798269062349279983709508200049629999754408410167092578538536907552274082563508640398077552563851996555429011881834862029467321674075770739365667913051435593833154849605771959482548315234975386935710096306483655824570223443539158858340902994134661483995982584779824031745983068760621832829056701123942922505990343624388803909555237039977398581329300900434318760137490818867125197952725857835647235211285961034355644178402524215613931976053853134329603739174349813729960327735890773902690700102800019037686094515486762162700622511926067076650739444399103073566394660179591702919279621014191356489233528629733087804159408828427067539396915994715867071582951078323837466858560688634389911083839340536405377640417561157409661879206345844053357848624053447845642804459518420545953713212319336611204957419767702137355139778561207153973108669213703009837807380091995717542188319053075289020450238312257178259386075721523325421985593355850603925974856649366304657261653842617651016753910126545876270978409996751270058641755938878205502400310866714570622801665383313312092128949831916136226760166263714103672264847010051174540935060730803144064794727984728380261750944368386277160332852115106099166581079138681016076463082297163319063048963669078452141734866892425502251897386108145674061386071218400564431200603045115947249726584534437123219712880247621646561776411562521083987683015371020397232048388186953609282147187386029298859485147522318800426448737508417213387099186518104842115988706438745421282220012235495887945517552811306014381760900289848941549735511388589817066024819036362569635825193386082575764203898943463690847094589593427086174840192948731401743637212179758860213416202264637902515417087457878552387100749711961238733332078530472818299096650483934352211579403096959432921190503852800312359963871316590468440800584757895650494557129534644735165771653732820541037414118938721441745430921741847765084023124530631891050465906906911890868985500510870196289109184317179447411636974495763592973619297867591950228686355998167034889872735657923181755584231025220912104194725427319364368156249228741484571776030460640821397442430789570220020948873699181920229703466315922471565275113911532346158212183715488208064094939133490527006296364672483585371283863020475200629643181093851505226153314701201109678694514342597201372723880450586758545962139441888254514709674011022891268856838162422811552468735901648139273758269245239237218248952318135792024198539367942024367253101878259669476635107501666828775011047463696960705259815196176845291433865276506396677942497419063927253008527929952637692425604943236539695446147316530751257483107519095853755079620580077233850640856049298647800320191428177504802903770581274487519154500232100895451106255243514823274161119336625141191676529940197707083251032176511308115097418132089036037707536586179310173369797030059891655168346973966872489465035225217755200110704288932591779777600297342086643169331571848819816307456451488606389082528051115414965597230647719552679504616802400773328766232018813333985724643196406323342633022069698198094743050126925249126970106745099399254957963825970573211873125669752155330689667990854182933978797484791686310004320854164510598974398013381109700729379084273982321292547473595849107753216263670204665946572225571904192921996594886008074081918275134475335838660755757831729350882789486326766883773839681881124286550467862432689056529570672653308496470150571125707318120473570809112774019450150158392001812412023549534342254318583004142817329974329762214931906304542193356127117083958158921792681180656062756299199668083648725591613178578463189501145567490712015078462344438200253922146477413946611035702538380818434943918296376193446067274432611578175702154109873060841922581057017813215429678472199808821374317402082627016393801852439349878334694188071096540931039665987653164864559969047864371787102587806159749087938970850502273291148867731039874004219501546286203561289477905613597105365689110545347968284748201079360470076631561616993638575615746448526544365316089508315479167476937963710172281735729329932708903291414529728364829630550597808519076147790323298266716895860921387760621485357201465917250668568400047528555662261534292373178135064758580166108244993171496180133888619370314758400204799649005207951275886054200479434115834400619358400411250766536550674705326883939375170543605825092517167401266240971810283287863014468034091318241567142818499207849859809874645476357533748185063983237821065069724123934830675784916201190915329260129151902328734777682621324948960861283474660657901090361365121723458303808879745131922365156672059711731288128367931003483441767705506006723775752226142123537855967548919154894652561030606595004346080637616964915960605869905435274517823363075987690337033057593542935891702045897456504537325171997774701660655236383494968894536377754994295107973864362696197087862052163404223221469011395558706701821412450029999208833114839312783453744005182829457233112831550953819050213428384264690657014122258173876305158773094532294575056717212005123972863595651889515634525555889207923545642373608631092812872195013807867617367718127118357507144861223150386499916100955582758832524493128782263551427225279595261137225909325261289371286315163646783563498623298763092243641708399620352860045235334092977920219406401166298829120926357962971690355911086709765104514107176365005894292885842170571963880568500227130538216574104146185161000624898990754684986344960566632729996157921905034227836498440101741767790452703231225521728617830696849454240103981971446220677262925761229050429169071063799671844936396005206911333122751052731425791592884192766743873562423666002150921789477274781278276689105270378663060815807138330403497577392700614670534260997327873071971897955775619606063232938685802275051601528889162234156937147082174604753591676624109847663467159152141262821848200529016450886432285411888824651018508341996844679721664188822547287477991591194381262890058695616973006256856894326527198677631777530525128373911593994053667557359899381366112051633600908932631417739772875682087661749405521539839893055529165779773367599483082224774770837879940525722547067687594764782798543439437731721996554375181122930999208439366510546059415444305201652639084623289428826432672635588873102722033567708054085088500560979950374405936768326646438538946265734425248414983553370065245900090155320157817672577747272846996702820363336343612585530690789955166951756112633879532168726299591261633600026126179509551484812486603468164569353008006389445357346828089563832265265210133547288713541243828040845323838540540293936509696877677066674591017310196689448318920614212833611450698655310811979365993232932607423098363675514684350764156958086866864779367147880820970934309200272038301997914066318569351586299436304239534440215608397190686135459637974154013365788148270397216267761291420617580927349291005057217288122039946800801062936863160045925530460470583056891158419791475354215524481631576538550874703265617726896638612072027216175430789591978006061875098381462533711388832501191324410875059487267829195199666605176054417509106114150024515831803150579411837626547313147357751949934789089591909473612490000793894451323194417610225026460716360712826022588462656560533142881908801681051859826720896743112344898027821741915251755932630719524813206057275331493859811491523708711791896794293972424140875521844953221775461111961721160188613098451056347736581687290471211806928833593485178883141528293656429271334485551315312149536618320679042481871768626007918816395176161755646764977887770993867264366284083003416797753126218376384641483693759859963135274931294818257691991350650697332522504145651866770925878306466143122930774464128052789789920718804530285220601045667231694389614543136823068202789395208897235317813636570191324989745460880007508496804459380019829039515791197835534327262034118345074066045525783592164264678488717469002557618640698767805665436677563840273484788283664619251376386762150507304468520562162298361846636845393621955953825049961045990500064484734073261546614464807768572229952530865694072635118358733303361764569466794801593665804936844163701254044791406928447796763180823216217102189888103338573417442972163831803516295213198716752936605013667099948158554414180416160669577578093911408017350135904004489546651992637351627497384878563901899045948807933643552520525658707824664046764083422877826458549467862099338641640167745436580995692285554235529226722193157638039338383068123763883095414480171059355794006125983389808314956211543589672526288197735063511655208990764955538750997849073403736775247065051166792884718342893266799517511179225600925039348055778330947258261495304839782545733286811523142381407022443603296089900399099073989540481476032403963943681375645967972479137149299719750894522516871865898124647738542556463566861047928810383950893511088418002980524899678185326198577365353362461375006736495662260056093896489482946897038153490778033467258167297522934798963682866019859982297509697862649784023630806905031556214627368543775551194624871501732902532679732874659646881302750804357716897469795817937632239334702461494839451758122989694442024510606173812864924681940890088410154181824681233036533394537450797214605437456773074854461539566670236710401218769831317671494501832937714671198835341674944865194758099668093150508390022428478644298801214681662288967755986164525658330813003566688912034684255508904538678074608043919657411829732693358726067436654741771283588589422555049467694680984786094868351217119010034642514080094249705953832011993090468841617895747899328704894890942519127436940077595635992043727326987318306393569933772746305876506122706011687829812624986071469138300988813091205652221689033119059118174191525684550686787711017669217151140649277804071652016948749617732417236538581219128146502487128590987915736495502071596101062815480870533523345446976920509038696343502874057951462823510948293191580971619869379580966549339841130698545133555507955728181390295648763983956627634280277629664894097327793846666609695662184969016338062288748125625821863027471368874503924084943910733165566067884007886849358859142087813364435467703431257997381108560949189288497563146913147253306370560776011185974321757936694408052920003323387865284572478604103147153893938755683944856482728282634397768957598067443194589545053392314432151644011507998444367753160024794173819235090338522665545915687112142364808587758703541338433737577313870226927856748056682956612047804538040926599160369384897278330628029688875980316051347314804307265943833088194076590214060049352476687509196559190137659182987665181828366917669958085931509827316147499546843805628805932927393236483377415717958446334074043905055675921578590690475584145212205750383947283745597291672851332903743554777663277309033658992090369262276978495078170873450244341512526436054289153010665486419089436226875088571047464074188659446183091519277511082929792988809723785690976937690513053260913915902131959580487506961769854757962813649900281805204062716901612656447535284881592956769932343817317813580394446622813180330887451311521156398683430461320368932425987165415558628968687150650021407102826686064813758004080896404417240375831097864577106689552132467459781135187282525434882888561904197295153292137044935449867252516035977110163424435740468698299663911500371591527442778450333722646934131881910905605859088406044423540074814669895171710944540783715307522030536586641525020220591715434702462374812052334528473204510842482370577607422077283439690474834233975833339261725657846246604019717894507253662633600390717941413477400909740564614226314337039538540788620176217315746098034794581604943646241234768077239990167506727858969410436036747826477372985201401781459562596480047374419471264459114787479350015482678708734163330372948276754658275285613028323170222777284324830080321047557074329113575694252929787999529173039865363643925734819586528338672289042694043400638128911648633543516308189475902698507743291659366995499735127302780719910046768873720192604120830936906325374996558226408247053621910095642468620442318162198691242944086681964960597529008483461794541619492345035875346581053567874566042961661468407270552603761201151977120875175976494573179211008911320501371857905358712496278132923692462562281932176017034361719650728461193462382257900602217738501612431924471573584491347360588437588467749102518905483340287826658116254411760209456459132989851095748186644767370004243670621285950702872012355841179175828002101219360973076185297683161714786955859271587461389585900245829322562256516503874201164034876521040971641656661210129425457069053903527471160356692349801744195584368431784312903508120493834977869111734663414522028778616559564626068183080705960698738820343616941760953902726621694059639917425647428159950991579552309866825249485881628925511646164387862774063891279977650429607624583841421523584072196075423580271121395541967966059142083074624633491114860211800353013275742444542814375986672469965893775368006861567258745063494908955221900079576264358711392521045049673032288990320415929776059078181688831616691466697656548558683902246458300852435847322690223413307746648421633587952772010986060775448543124345647435827476368020033115122645877849326227911898205680135999233010796886270682128821412953415276656712250948018663601313106267586357833398537503349154212590423833299252948372088966669687816470597350548212358579982009023138983218833040689383236276286859195589680637571393949882591213348696685081014981670370744630164153425113601099604696463819991365579261669793773979395316625716993539347632150222921911754915729322246335758268624730857767744507582807765672262610029395931773635292260258049692004915216860049684566361119902747657408054911817062993995904688078441030769661774685825048535994546596786357315164494001954191018367388271808159683010487035140829477130549228420942240969236473021347662382409582384644580797443476683888192843852265811442864933466727431130488701167887890450038728889025824227257666839278419912237535542083351003538100492186846808928059481069765254991955912314070018215204953262752703932769651880871792044415548544074736453014055429382358419446266141065549257000730795224011043102078933720694658998110614428316266044647496786920875981618360387283660171268358036781590449551487180085397376507158095861504160558342387918096490539748401613670918560897281597465786918550421705506791696181697546775274455262051707932959057832999502028400049899830211586427467577950325205257087816871223138136897871711020891827846628834324533253564949064811440583767177426505619878341180431387974858684611242695936736772222172179561070818183518881525458073684848185958990024160579084958786375869203152107394517438456844330492274528071602915771070538781679869228110030885711211286885813308507849178335816669688872246968479351704141326464069597205741583345595719707155769069034835226561416954024140402698909045056166615154767761253085618636897934473655426467971452183603180007957518126275304778699497147548157438485971806725906379418481876415144862507813328547180977736712220384248094909622030524385641480129204455271901035498347788740085981437584291150261988874732806549865614504046395965557733419079238287929861730169330167803430417121889174614015132263848981906036470058363445690034170899537458211184162976317255538575902143258150425550245796503068547553461555686589417653998929466678725086834102554717799991859630540407267489067265040493228891302091943636418213370172728365015407925896870679132092831174466610503933139256690768442851838063778164777147063288956296691178232367282088550060884347171405263197908412395989655866251559804309503702365074579542726287468388308925753946791788498322606901626843444936922875963332498967775529981757888903644650553366428447494044488154853274888963486086808010596535722707793750111645632541606878876213419331951543359130489702085502223292143125236410487985897560325480966491996488678266574758141187535339440335299368830555062807487474741474515621500213611774490849857763129547293347495677466947241334789961619922703910796226461776556026447425846173411702355340706976197527926306995309907703961781623326696379916329566299481103478390462401567673683186421211242347318226525330121604647239303822416618028122298666124749539152704240127717437977239811310640098336284387980055355615787095233868060548742722455619619449702616621895575755716947645336059753585051875871082237034326942055104520707270488972874937338019021261601288588573144750626826965024520611230561807458611806823716750595082141637372018164938594192816004583001076582669744765726308771082826803041700625352495772609645071617502433055985455593011519174866640197526698837308028183040455550377603286077276760000317954345920426811990162952579795592978272879029686832144663302918747794230945610286092228891756968311799055556121869864132789803196517540753451902946243097270242986658941348979420565629469315378986791193418744163390492766610065837612116288942724124254753891813560663113440768045607733888098864587410755882234424263850716008896257053351099078624809430386542782480547839618428528666928310341167767525955538443469427645064965813568664726275256218742455662416339895013766291352358659014649996379976982306541669173931217699525823837262440894916893392305242301142742129744111804014472069574721222906898271226894369261415606308720111195866972307474572928456527690649798489779967962812471013809305256289510273632906665704411545476058536042517955621900362996135157310929766923337699191246123110724385788015096375395103306224928747775150402370023988033682743047492579775849154703719846922477147285955175800029500846648306076406041206712677960069533003329656543431764343426422895094551478801967304350516828071323640251369730817948341690414047810041127745993769009948421368513778958972867469240578769728061896275404921185633035781777475986933210523310656611136908776789308322054877108633741650879017849552596068357596081428599441827689501841027713345768381169106966404377372181508031607625692603022466478131103708115608008308682886752547214228116324643612729393838899965417045378997424830625280788966824280501145119772533180865534474299935594410459769127715018153223998010627510616856887305833167057496173288043975440177854439535154453897546970655868910010472771351872810008551942787179201951239258041047262394144037648665720784394786654575101032644684009934070224777483538847128512599831793092407952950023582922798885612713730697179236760616209365460765049331743554072030424234464820607854995653002283354318289514611407025625419894955531944648633411786733920623907407895704297460059096283393622551214061199226582134357849463504739221369069172915743176247205395399568528644158339851996570820605966509921997829831217358061279891194631941456887622712896319982121453638251980515575833594540916931328663514318533745847299804274007103482447407978590153410241343322432920394568747397539444264588891925905246258885743444793045345245135118189123412522881344042648436818450234192155501121169698602869774806612610057538209372155868693489857766178201137789609597331552831131562561811232756851104932409043117806656791978521007571839546299736317176256197076087829860402569085038477573851470522916899340233667445961317384010840120553642131079900949106841466248879287174585944968192963971909011640874323014040129444477210225080485895774747570937766621596732555282667548317420473245813337268619994075885184292082845743761478941992626233228433930680537993275290600283587028362295824240665890513557255482110119120303194170866849342485689255221916356561397584997482679854924704932682446641446691267676795647500579140136063509191623267792513138531139432853130577806400885950239607624930496872986280108546242129440605558953179817298800780637251836907206667722809544665484641890133936430455388085252926235923647389779139647769074831881769602624834208367632044553759590404846244810200093190305635823645727818588833661249100231427017781059398291573489664900905045929546004529543365307869481331434973243667853714438790783197430081051508614923234753090101769025400999258418085690196487237285680269742153033012957059596571177544119154286471921923291930658067830089143660271810499182446181953409636102877032968189844354847056454753805811138153991491271753299058991033542911565926890710370190850562346668952376641535038744110722411722876811558334800331542735564831507362441594213732505926995776825625860130105106167581010465009761482537699839772521410098319952901857267986705398884245690592258957111469635887445666215323584014813644275398222115914447243359239690561641384925422994056514544802559188923682347167548041049706070767418293390554071476298589467133615134419667735636854429018020606059897408997318295228710397763954691686264462207152326883753321365939467341796255482853940926503014747408812537798521323466355869740362426241718650457517904217360305033404895594512107062782522061370354213498723079566826378291094640379138659462858086017048788802192927380446658265495347058954011279316512373360999225058026661431311934858103735742309398321709320885452219131361277720152070859751664119282909946348724020029371219697792802924665848895816992506340731785275707367309873292935876193868337318731704771784839450924642628402903414678829260147555672820150461758316295589996903247525239438095087052630291194164620200431266072708469094805884334739135101315208462628382865896510513771268387023260894854216935369670590286185362569000561073894853247696329409833459112819843192941347770649988259504149500534044368372316318793046262233318868317788968176305675104976613363677311881499647102718670616678464009340919359848787649389869294340183891367357224036979567904947858913852090842677975004020208215869589107385618530774029013758839065025436851279194298447999061731576674183771310217431075974935578652639909116586682180491694430194994946316337399828563790799579276780238377543391011274635350969133290956925914986665246436896587483853475691781979612919048326224992983561788131192669224579239302089402385185935212661346992893689553467175913324853624387123475875703797216619264235791145486930236434123964382965731708568656793075701322190090655522262062011872366457031573767367984618070742377685383661356750511170980843688790291270486301663691861886272966328200906857400228537747418439447718094442219583730617412264411914930948804583728927840994903078734510227279839587632012373643176388460708526834179385401429891092120314795696863485382503081342821037222641270742548406803817665549750607580016007161862588025806045317990954577897590463796142195647426834066594220288306882371602597564447699105782351121947633252534467124981394034497881022887118985393717872842827256553879638592455669184326442163624562332109703776838913043250965053609650661735499486971992185807427004937273027418801625601269318258790412934948939980578062660723704640888043197737922945173762332057159203532126080601580248241434524241959261505612257142449874871308251637486097205612235560647685066850641088856963187271430460252159266156518966315665790603778501073485901767380984565523711693546028011393866531585773219178694100966267563207546629001221238224803749437684039307332647609953308077237651180635252336296494105702729905608299719394449929258153247457481871626290242489087109386116890957694569173128428811878183813632648416610743005228554119901641654488624571498826779675674384966803211647496950792531382081973312439616279479507279557115825652312391030173078418666344015410040481342037786870608156030062574078930627428202902002891491615639322087442894620126577569011543711597349381269452501501251012324248183084774675084183045505475985195180631859220945729784355959734387488025190313299389781499603338578149149470100579523146495220138956643533863332110541511054105626318248832606569108848442321296803779470418076550735009542736601018774632603166731385119578741182291039446439440433366987969738880444490216043033049624374494874652927259027068330974725126276621084884706234541471097994458017936854599664790798677191366918658392748343532572416983795872744220105536250610367129792777831596973644622683968850873274793947087447854095592459322712518878199254475439965445265176012509780231681119884675385996745051643831166817402407035960907406635804563127138986512080782621987762845397365403725249558372646344481391334521426092309593498161720248050681279395038128630868718754926978663771151166915182116992893364904060930794504752106994125671573546552955537514278366307805807235167015955746920454642566437925203133906004815474707499686635180092655825398176829961843922895863408960947531736741624421666859526702246228385806399776813578461732123446069276251803658677045144573767027224146458866245052961692831733485685004453446228421087938062107034387096664521578983555233766650485549173380849093958381250433474153868006667972469123513140106024433348048282295778655920751506615196163534926019111563134693645938317565705728709144607834902076310368984685368555159780867610320170383888889970120283662589541364204901289069126638668095043371089497643768953095721662871268050775464096446429120933271661577140986380524015353447539530320161030374363250154760101705285282502517409253458343457195030127191606572044291567222401735977928757932219865317236517196704670294842038191010750687659147645958575850372963051291281949164828204066276175931492396023524031567389376024361924392293315551415555083260652164367667560374941216009316172545105532792608432343232781513149069842497953680666146323013574102210681129534895205267644816913524319024706826711562663925687658223923913792087333403387878760724171359949976474477990650989658025821045133675936991549768286243446862547956878668997585234805601420994528914864127033591516611962977125904199612285387197790362148350686869010943808894585371035373451203239348164065449032500323649834177475549189021854817054995763242947996265808571008235224826813064296878833703518995007531435143173487969952117401094305100741463714880768539091230613756615477212021056296200931307408947896494522978822637294095183318824113267072069241174839020143516989337503028781255180127839742728311248036275060934576899709760661956683783933354439590959189231865063480320795918114721214470752579601125084116470200253864089569694955790379458751013832546580066317113640808755838544001344241871342732968724662090498333229681885777166040493987939410730498213791830180895890388393242848409438476088838644870569954178120422582732076955712544186855159593205606344919959959694137004325521734150992464346612741596104358366621767964672271066651451408175795837331146029641691240826138264016137509125752703182533671566302555609889860484954075880727397504322995640822345716120863346332627676008587294552982026566721639427371734125268613382228084224324066036617144450293584776161679774047929907272434593480896085221574893021377986672516955435722236059048200966339786824954267709622349859827275202754219582357459579206042760146616911588189951779272201089423148926582697211807062779622835731134576422564292658646303996519942579753251632720784990035429573604238303511232251203625878052323385743789682845761710868819150399794045444062853522309702813535676067310107844991541363880618581938507507178084440326259462613258185208543744325161116529775432583005350129237851546993617023666102283572952797278771493236447202377727859415034379807724903574384566855257418929162809240494395299711368714455395063771389611514200302000237679734169923801152926812986498912132354600486384897260470719119105427042690529562544307931532257183337456078341514755365756264930210271901186688198995997521705203017110705091496797503592308304632055949941983006270932447263256007962920553332476045469340968062989654588036047233588806730608259857267792664651724669342061815329199536385790099324794940690848047300039263792210828688909702052771111338324811633520560488806292155100628797496188047929888384218383966877410194327661629590609382640466548155450747261128092074144944141777865730159318995820224042407548299926055642966940033649421493733069749087807048914709763878265003106638800926853955794231597083029815100523361987050120733750885404089095178450664352552323590470980827451864961231792159582483644596388437393088226348886682644590140128240740076155950296576386147762639798590422030781171407233496175427522616949713807745280858598246021524769857014810303628411220178506713399953681424838281289822713139189745247298947185530360997750505499364379057305935949218172520729904512308770816089365669629224315520295397106897079988360477068692659134852657448716133974531275132863196133875640913667317406146984833796483778348977791552836215429989507551110803932668833630565163587654410885899216104984359328751571418666087832175199115215301249127447121252692236138169881255288029823127940455126835038304846857106943076351980425555688828649149912305884891590103054479429910369609813141201380004704349507482199229957408666998094545954549125311742710199215382586622739320214625867805952903138602172781817819313901596787743975805086118769893087257741245722035887621492019731397620302629769706916682862626506006319311138059425067945118892351826994915526858149360385544670133560339221066142438199250399781007954399630566744472399343199222217140278300694504664294705083752233064998238452649924325824089291017261020568432931172082686380223038469257866075474387208006684626656752005868001724899828055633748353843422599511764363668963423113745927360949143099406026116734759551585117287193769883916930625468334585357117833878315844266715174351312266646723840816263219863655629157347880581478172475603157932704075955675865669965816059214798464276506048792968925826379921468256506179781809094476122020242401746231483987006780785558578984170612868458587303667638646493973672547373442488953901825786366069541640394353253873934950064659174448337635690955574091322785726396851942244126874529872586147496502740269068999611675388728865861924125080689947748150961527455773729782029818503622723085403095009236308353124219109820430034923396760636141066257468414321934422409957153423037966671585296521005728226058720174283123821538696688716145340353402211527525351288342247933111668760908040374444316124961632309165554869987417098836394413250216586116726596814629323394245106830767823371608152464446933423304766647610651529049668680338087035649487591063999702127861013746841604332639564109611013673199409135636172536522714634677254154681231825964418562106784844703103755238172208822715225276656279945483944830760153328324861176328885249988025340706500565556025445077573919421222797046363610535668106779013047144542596970535451168728818821043773528174990260202584094197539410386407735547651454131195954040016761838923593177925538607188600271358129767340356543323566204860822272289368493668261303460104659319724787623557913480883861949137842839537495014263377804564830591796657189137136804655960125501339588171197344363874461519493021031301968219991943311779030896439003302740388790926406595797080114443536784997878762707662502477232071936619787960914546548541364596865658995836327792907235773876115054559014648656248864207218282049682682024932713832423219405291896214960332225163606586500342763562284709657959595826865422596707411203969432328016082294587579959015750008276672528410926020245964204052798809787285702512212869777864696689608066072438192058457593958882147578613520158488881959817119517478008183325219082394039433357179527626701583674705097443401302741565441047817832380173136354298638963286358446213683487903120555334182590986182263890707919778547986729095184911827531971925284801028954930089679009391474424488511571712475213321477027008408242364967344052611967992142839951400497731032720223718568735906529807615024211459913910873146529437799400981720835784867533951788547364645253656938606790169054004901477341260337316378937131223384550291380834169135968861834684869723555966031320351461398252073847577593209585760416668034322356620561014622919993849983265033662948121805623077780400126404739243707736273864977428647717125227608341885266045729320122224526993601036387053028590048036210004492496382510089387185296488364057009645800457471711266264963693834538526556442313562449693610952420769374725067605642862901063772074228410331008377960256359842685413082338747774625564834600400602835910610738059054581527674463856838898562720353308127569368702328138234668332823738968452524098511369002415016031862176587934742188893575308056331006382197810996492005006386700233095620645799401662813215726520998903676739198394850237079086831853634805401908397448085495076184776705739051887522708522186324179698244135133876118046151788617921951600532975042409244438024918840612964834301974300186899958756665011015507450868788054606515093114478465468416837317297138040199914656131343166030257740001502171601279071915555394397303811443527052487014745409420707838649743822512368634722585104564897230290059771497496821554765782575805232639951261630272560838699585490453297716167755815929839299693694440813998890165514053461643560865587545261259642324075459669935999719870573019778309246662635116565942043890478400766237751919657028822674518855308076140488228093198587255989176847107655254621218514441238947737976041321999638925019935762156788259569803721677818438244511399543775305076540669538401252986322466893683937607255915115867019593860764403867236651083153873241333637598884210049509701742864380747092663488293730580268371977578111294763203454593929158244062514682820303050157043952310378375155139680558713617043197975624618155716896469663300471857373756078822920187214647682765952560067963690399746072818772552875771482494051051589396339845199366844540712346670848129043720125534559426892571273737884821452370666160431457732999466112504516409527251333453309068608941559592654512293821843202379861337900976944533076714173700625507403533399364383952287793867330089912936972011664763458746826580381648106722647505883072729810196209419989623538898460702436117449142798239758784656547475470941161318625597536366988031939865921750034684284458607043775220042447778442299698476719516257404287090831744029904784207439760358404903476821359960120022492213953788620144643145643381457639987569481999622493121907346909717028422151040696142254139300416221348893202476160172746348667150209102729716871501212400888371327920668015546689851071591597703639598402091748229414840571755315272039015216026598479330439613138091710260764148204823808644318672092065389083084414451745547375520288466283705373610040103860483361873523289872739433833394105379456592558965473766450303535737356997653852219411361310514450140415545657879260236201144778717117817128962482455996405876214758147197621898396200687084962449459814820727449095736194846312685223081219432354519690641003766370018806457303377957723040928486870123298288569120666472929605752474449602245774624410540641881230540539971316945939511742851458018102806040486822682480989255239171338842540489579333006829311070854252660542502319238637090773216899740415420098171245161654919588259461656613531027334884421064724275923764296706534311381997538877327912659656468173167137722160028868802714127287910437777775742246481939600912285368829212049258361089936563113400857450246454775906199062283889547162345637306470377745992175014611640010212133107287737963998235329647617798290989053688104579663935547871127100387928416302274120855243940320230560000168399711351990576724819574167716358857226004470038756268428944742178080943683380744394195476853019634310659933293309516875160415039632977376110750044124230441944252130817356864353737246792981719146396620953560962629538492209476638449914275489711768435304181985470080905991950967296848313197206452912142433395128931562474658721861017003887178492223045767322069787225789039043385204562726686906451367280138215168725235772147200048430826625925129253759739644113885992737193168981206491159500153314400317613430998775308412470324874389803708328597560571216884814296583751256931851844340021996421506039654473246874016793960631486942444688384666002826617194446248914283939992752096710449456658397571824322650005264260159302608597833766376226681401299671427466425663010565266846971907898240009446274562604357699095009223682780959520208469406732530352098074198929427965989559167855757253845224839732195105145415075525245669271038666084977281378255951236514933928158405046753841243451496879299059544843101637416574511898127563706999348738940392099763850276151769096941573168720954173676486550369153823311301111903626194663163916609663807058480878658781253225603231350799074619679728055728873598487738285330099300073016051798904048887214339829894147832708087241967224296604878127589969966851320726336924051912777688477826245747711411770206674894479926416413144730406159475836374351794134476491154060643425764996178378932924727940719264872023098924998736034127899025286419361107629235885526511510422630634053447703083621456799867952175394282647129729515368656705571948969137327994574089756323953611432458643548888430435372045105906063009760697497905956006905895258451052742104559732887360332254238173574383264746985952265828177243522468026003258815744998754550923633740824084710118203046844206484049265722280599259613119280742217942515974911916224249020954576037658044702121862373754612096853156665902364106144443869284069639724937114089464094340211819716620511914344500304673407191430233822967426438962083343658625887267164978295951481941491985671824000289077234180120477551335063525162602830740026752860558148177911455671333145500045791628386575086043923433031362514475264846472911850916069971344822328104996675646113342488541845485841202095466957452838061999920128591504968043485510202846957945638633558576499081937994683857190454567537202092351584793410491160463094700439198071581670454086933923810327342076478517260894733474789761304548329469458426236027460932292579511175411068970284664834442430770194369354430454545545083372380800063455877720063428367060029028742706038857115936501557854130041184373653781151669324206090847078171043128474806677168522587848424949399637452125141917419991269044751316077830678233687838161805844677890798110864260337798005053256311691516889764616795546028052710051739262931287817771472998385714612573107299153269599952090796642635771683202817830145070969390081753073265267823017052715829033524367413015986230993384902857584178510718257080193743065662322904234981511021042722573651508427306119836150677119651837740059780134808603341335975289414718487305924685081097250928245625354901414751151800276207221126226443917977112691683353630197479211637277517470604021041964859840620652124352183526737456950279112573272505073352136356244831402754246707867957096990000043439300215340981044558525648793124219741556197776751502983422375482739044214229462517832867775951906683845193416799765853688763900141812357158936203205677565083680324508826939761191168156234377819351909344512737947004656484344721766756002092866180579718268663682328865488484663871727486492434508051183755480417516982035472860484093564535989769114496247666399440700799613445468028066188087186187452321640499067446216894315627121160589413132222010813969892574629870139061264375538948433311036887174326670064219680523436472779736908783016758054138576802452688846204561557331484913196205040465144865291435288197050521241194454327636614666338268304451709446660682414474653318121339705743298080546811359458407372085281570881497878574568877169629545486749117017891331984635611254122832652336571072508990380945961687748438137516446597946960457794222702561424117874514435347857163009160263731046935646484686367063966320171672109735074724318694188013736184871795593899419257384952067632273051460628519622039664167737047451813511478546861648910541408700381182633113935007983172669392415401653947644409526465760673486848498075563346631576502781597471120197658290469583392386265775600387898567038058329663330324592072922119849288041164718826111186391548225630472128775117174948560204021337353947862927104516645256968929574395389895048753032640024695762377501655896028083929748651862575648252865349771663047793889698221761735831292755094780373830849272504970657548330867644830173117340883214005958012172942897343409104435457197771374945065957170546552231789527346542776144740911315876776144829997345456489246528152744718510584559749730167967478557358659981986333844830005983880403836421355674605491667565787254683961005744561836707753990975518607336310288528323016053948837274525618911726874772948258587680223806014312036259405351904434037564838660680938406642428270560473841631946107879973711299858221733647305444780456690804194758613900442987514990697759034756154548936737737213458316964555062285290501716997613003596332779739938733580377274112836002295560618320520600549189700382234748448742679719229128110230906429954345198066698640892191474906999567174852247524600892068044497192480678145483479530016625357204974315442805164207722949362499450461846135927586035233666597411849068066003189751236750858218819265161486952206775885147759309852679543842921245135625238695927563647329281196037386543831781252500700383256552630796397194536678633714565184346511532397374536888210347821933229003821187413660861173599496440678262463405132999537504832603779974083695151297485889343637681910890262634567056473659624878111112212102140631097897847263486486114644142409214339685334058464357646958720932681460679334586394918967188698531673226860613523941206389266052970135438917276980780017246849175640493973772007934747736141633617307264102292208575199258853857447350254970569601718082470703260567633095506634921735554196341478746851433288408522891570411075995887445225442885091045858104132107243312696309413248061439747240059774053342661220282857861069415828465381901391062494959029848867158802101258642483884646828022458815347211985217087367599829825560769970092034511690375715951996525316967160313404942480202499320893987424744248215648779211728104759071685103166364724164443006104839129010049905715303660767636525267693212195399436906678794346302673658800048564004804365624838909714989046887988968393077600785961219776782743812657677780215519426476579571590021343672634364655071763332211438303864638281422709292027640695035665338196859465097508113361691767204291792308512902646015395798306635271920673643389428916602192043429334644434147644500559545125370628269535308975327226239744964934377580958773817212726149808797865052367617170646797252568716653604526107592208408506758785953409653560592528041846103588653287882489027446526142098123698918961689235839582437270594242711963951784160398453004748898117660295532885596148044698051278430369423034394860047893984795857845356590222151753027538876198054943351272533595386829311793203985677447071845180774141997469927847669936486136005370539802074601952584053240848376494859405631155280183084310006233105104037602167756283185791801217893394460835689649181840268199427830568132927563331266054096087952773795853218026152222628339340315698948701587176543670520817317850350747612040853177695427668763873429226176939249278289047334025674762932125267347802295402110621498892941603997797515010502688982414429955089580232545043474188065406018056956561137915297679810647371205234101703171655426192694921846957590397769392039782888150348004669738984595444767092486886196727416791646825293656026486579493030135443617872276398179725908519813916928242770138242038759020042967282684940029018127725448324443154302623043254916167346149968981939858693719817771611164689536738904598341627213592476143130922803229754999096677523311887098846863911355036080906765863185157529239085456125760484228074008136003595946728499674357700852310950064074075420647289120682297666469326696533506009655772776476272015747429653200670760877761020146717019565941580272206867317530448938132166984158005090540983384928336524772665533177907779913428365370722811188901927455342372761330342368919094105007850423353753245245272975396117308830385533094966687577802761315256205883241317753454975957564569237103836346967967421532560950137613683840590380687617529578796734784232763572805322757401943324191485511820886270505910680355939261236515536042597812989518464621447655856394011332849126870519448308441475259752374370217859265985184766108485741173046991410233810979427596452526417101663584499220523166954337221925378132322765473710151889938834648533057326466190141680520214989056631742808781485703445800414147349858816874816274127009717375994874692279795151276679700118468186397908914897663202431581384869145620510847513308231536028236035609145906962407836992977457153629072680166017642777498605858591271839385576049210239259618937342799073519679747321326950632124986823904521280446388042243966896034220149946268817467216054673974524192880317917413821052940897630368413614040916599113902547833969191301447036831330379355107606821454801095400135065065731927649584101704995320557134336150699027340695683123597823023464952978481658664375739482028895369890819668000158460585656066522361144345099052735998677140183804519528360571757729733270544697987005602633191486374568015151940384232371550057420458985315905587975112712010564561759519097410708763240014231325120637465976928279061190521947164478999305252087945936886135628070305665679314618535271782627234830074544864316880599010674719641032567539153317896411025930476786949557166071582999501113934754006626636461531796758846837006666919534187816319483399419760799551919038764426230437413533996526375147298602507470656836017944769512139257883892251157188855961309633860666054199801831994158887111536823562063627373827473746827720630318396760628179952187140254027439288971157969124433112093692273781189477839431676855512676574898183630459812353606620889319458123624163982569402641239270725470477515291239912430834390371250013643252255541224007366775157258538143773314701222473675930942068132734457903378731600551665906094766288380308765833745536017990542013500772927400313210478074870854236732852236105301075519578104575930897076615318060514999548042782403085765703957614606328288420315809086019185014528670540570313663086315500695484263615808182963158167030694372696984707696318475650070553895799973894739957992709526812971698552265799393958722627103807822137337156722586376024170664377172978957641912996795813260047946839203188698427762540739213427384956603944938218974777273981337215991484040428814960039878003851233337084930841197175328966368992013837351555681083722919065126015244118348451843142846585384386523604447017632082308401570434193822128352437564038114708751378125196016186828976165250234341657766793798097891641916267070630992607078298332271817578182757652965903734701385187899410576670693430737540101835424210093423892005029633745189237306114957417655738321691265720204111585951208947723405463982286093421726196097621922512844669059495436599319948358180412127479650087784737515803628897978284582894685134800055564791895947591000623292762872375204952990553047434752437857490492562485968207502307582236540458232030062673862622858023051150399533734743463999121298940842659681477188673136194831939619809313964162246716014092665875563484325717387014250779723195781432276261587626154635203261196016030935087488379297915162835145046668395678182486805454406722234978134003562585725583093284604677919921397213818698706765984282901144154514458931745623325681507801086765573234688178871590370789732337314801061508821814147332434159120973309309608209919651937252332695213074667928118799417241232801709197436302553314158712971767561622102418617906249967320560249725720012949622347685481543891224121407169955520700178664863934599396170134184748443801704199499029907647059943784834828708935663663208441981410353471714582950090761417546072840648099609831398797370460103727475440477015786677933911624905188829215962000770597314457429999945159546317538414048305361580550703362277206133311589771990182532627257315589582263088047506601703296104821105969660940641788850976205706702495607810811734810722339972035618774466866955371034123293684244711372657964029136147736897054894727457217837841199544084512927524046079573598512173887887496701755987880017877652534051607369255585848448998534912972781479289991817804750630154376070691141658054492441515258945397461186620100372794946670558029866678621416766471910480008477075554514927296289516034341418721396606463592011436475745713257653590343418280861550235395501181080839927534407828580441037969219102468576246112881942175400878871140145132809523154019051683521187012128293600588745243236306437043197044604147254653159075809882789975231700562841353432196572552419706078401028202885191486373243741035338486432350382678874283428716380935604771487787803092091974860390689278466674804932759805803847055299157923376254446683517684088134974833508203179011238356373758419004867463862870667769638282233096506622311782063755601123239107088316761997536245301239041790456868338582594095411388931582028777162102540543728824353171797793229842599331769131099802494479884650139657234823609490479825746752703523576908579214396930408351001685191023222355464697661121054117162540695624552005404119593916672753613439465257510588301973328027284432855343969205901321770700444749805227937724604003027226040006920638129461762559333707740671868833431242488344402291261846557996508259818719365879835202830757632291296880866340440972669006757050271810787319089254350422564850053653774583380816690392790236536112277305763761050284260307748749489278558571159575544254571208401316513026969166739977996519182425082040612866080150552296602832295163078930253712191554447479489518213402412126484405519400069638207476639573963321158741916597689262873678857121135840566319460475883428188964262282294838353158180236367446229539727776210632275465364287197194951399875978597826688846709262727035951624880055585403031568274517117833583319631238389687507589151961412201439981321913027163410751605663185987546404081675257217363511248393670940498375430070481312552958740808863672086502494756390738536675858872587315938134255138534849972986467940161817530084715355447221413281407592326385426515706501622937135419420272627124815630770763614582243312294508158908920797527091435369129531411336215425491195815894427653709271571073094418390651948559692173441071475722475300184416473739914085568196899974614491296926843614021500034358735067181640906752638940270265107169272747491097629964880133177075268315173302923521253755179640306427063211908814506438233802453877409187375222394821343626387981469766121562879071580219070062427376586291712159140746169973776311693759283629798642974379922743133728234990807628340704374209400979810986878241360355541995742015587761907931058040837925884972765492690102949069203998539335389680497344113602369376273615830593207418202451485715590326314470417826186341274873933344339787797411004831643970273513987763380176809747890317974508933516624798512831055244396567293062205862620047661797321796437755419360114017176922894395722244082983355248073332536944537404274619125912948773786013571465778403322648434317071871028012564329323395005369498395861797003072121958237690743990161080507442562237525746607386070250501565803788625243153422828324748243935969160809163568825434982461079702067545600205490294723840666863941162829583876890474054590856800085868318605371075113898759110549924138819795506318537263420935098110898234885953607313934043824423724990050079945114769189565153300222215871286386006290026807846400679352208009878284895058381127860240376959845814076788928866812431549428888604328706070163843365077873649367112270657689831818132563688945004450040010508600597770455611174816894616178957082636887187681933965376698813271377084824428366784200474110550814286797814665917402331410442463184821012593628085969592581562003290118769583205511971009299187832996829515776041010507023775851264972595361734408719210203240707203739091427945694742469598363162711383835212951831402747087248373612483953793529800927708606598917679076135814951369812455480073163959615112042800272293000460931533609807403143186851812760461727194714002346030668485778576692958676148209554479781601116510640428095317637694933685177459566057447842864950319440313168605784551929455573119237925352408675827778605016726824181794894813783315241555258322467870919429523398157445997139695006553932419147610807955209305554832388053137408965626560237370460820792967936093142147241858366464971271489673926786234090219355588505278852416925574284552918886179046787834546349400416016121299289470042561915357379702505910819248698306975328906160532024599688508739048407741451695551720884980911925297320296373504292345087737699881560621683159701775410922081959474124826654311881339666195416414973826172735355626543058546555839799878976924428883970937704085123874572064007435610181041533558453945799874794996956987578811170049084602852860582074334803119675452699757807975157090911203954437989276478465025865981496709700921624485939088427683134265671598583010484075677014408766274504029857134792570129945510527327853729720822998457642423536912925456572053824722234959844855919624431093067492164017351678714806055783961023762094940209736430221481638531248191931061264830646829388869173785545017917541621994198818384715453591440613320459657617563967438795189075672831649337186618079565838756782293878587800411747781156024003538799144287278229061458033369107305959129407020241061133066321195728012160789943043835699303992703448601456125744820664176054280933580697358083225539324089310533291222573137739176488001714267148447269460870511640542277086278749740363497018847346505690296606685923749052483086414309932956783814278284855813649272057438209633230490687430220173319024691818271885002365229167955130600514505841752271728177528138314851348300512315657121215372836666303523471652162884947922964997908167353144708653387159446397230580974065867599866228674544134189699026468126621887442586004983341146156067492322322237637802403814899441031522495016870615306123644870708206299864147293707637583588429479768877618937189351931510450008905600830404685676718775914482587243505526280420225985629226589878428965793992962830559063758266719299547018882223220534575822384455683062890212031951965407308000079571266323648518996998019783091375895960539384380069663052538810488958340913564776368419981270076654581969032715721659674423615195715894717392400103689142207949913301722322763448156185464159540521615836800705186758015318263634260572461395491803435807246732441109888500047499025301314155743796717170035275162247803663678028928063504049874562064434634591382651679571388111007412330113961374614602293156710317857219317506088442110945077604108999682602849450071149314647480175358901221194520340048446827703619933764478101817472734504418211574189004936012085870735629614096339292270324547791676649942829012984036119489686331889444065769034142609224212212737845328104799914101416793761977995212577330984439947251568767356698975524805322198127526826995092777079745595454781673464401277564563916847474932596778962470437355964350038378065771795723875945691872118765843196130521774585314540458264099043316190332163296591222012417940228850569219038751123155363303121079091750181042663381169249044680014600033201098049443207336278000121860777712675963924369875449455775921182314139548765717160721839755087482897058085547596667130610094709787708448062450198554476394275439015598564416782168148493111589997779580439635880464226555308334809300940734344418689398742245492580782175743334107016061955506011862442269059596395262135631616243998096394385118502465477834898945452017659058744077813207625257547121031815120678270772013370524827619738188256294920862009966550634917164425061587199157584890829607806288400679852110930085992795942206781567014780273118256213329590350772638241132178561164169167738715134714269956706278529687206129378073018410513916478655212332104252758938971875265323360517631080319558439736742636205612559840676935775620403035269300821666619770277732510983998065032947794662012999700920112400657194884264286519817008559001686554692548453171010067055763197792238172399401539360209107608276023722009324740372712617624267702442191925925838851113836047402149367632726113500055948967470840509588145873471132586660958611392229297913231639219116968360740670512777814570744223483179009102391896515546222631823967288644515336544697143211548764744278156107769827919004108929015523073798784009856499073613155619694328793459694645045010371066115631645149296452734639155327119039909928065364330663748672167796619154651821406344453004225718367987247998732880530693633575243455273955288127202510943173024196681109500239905971938107856389091579297527076868677240174459352951995073198868490680620078445311587904160817472896015300976636989930032312984028871606110957820964845749958971810385233641150128925183890072128610289005574074260251237225128006589849101450790197666515794751964264020858605809256441908776377629672071655366891278500169241768393114170478303477524788389750139353906296304895495069147428997660481825476095007485084358173018232701427901489851209760255353702812067312341386293242566114432732007170342822000085315932290630418142585007349233102370644163632009367821671126541074441373006558912128399572336597201062513483204523268713751907878215896203994137657497026643510851803521159073775250844795495039614149992662340919207540730442253116611520064571514683040034295668597803717862165305875067729977223926795877588187666920433989540153786824297903094196821027875403486134869148093406310411340684930074513062415369889815109286081815750271733864415305287542885586705303081671291124025881432768040023003382398148558455384715491989354338679284630479158508448242779176074369216305110442915190366281900877644764571926997100112370654275693297229729071752580348350691949799478774516439837631222867969586518620889042345115267487971921467919964842125907127445845327505483579580848633727084618422653954495640368951404164701334553764723079748249545696459115931218532808471869421158415039966280387493480374527130851821972845942575454356899482300335621693616735015539994502888402170702604126535462390372592540857422629151164659608938946087880581049788397738548427167763340794701257787199563382093376540210632655971494631645207967045768648688491262028401640360519429575761894681228079513865137146361965697352489271205312239983580860612643591771046367401154873359390988292546541471796350707514800301442687603172815493974973862823903776348112930214863128000990290218410841177171506607857865379735471168141090396941089578326083740190099666931803468858353195216337214178431930800898397955218027952771474543253781997714296215084173316259183897379022249241455667413882185698705430065819130909379852271060392631458251499785673845810320464133823843471481628864841798526899534626659049903586111508854521314668150196953649861152750469911509923979668972169978450010175791392607161420324076229927295235111304414926927468213506225621058465110181367622049346610115631694194901156743583929866419805095320572728694488319292711753835623537764606780604450010289630017314422150024492602683504604161252114941876898815691763655996514064682907905867709978832273462614899488548657224994938171309772323494672234010667425724751130286774372749459004657299820752042576460825835476694402551143224059200386417882910732527869423422512814520092742516722587777293071698552357023219727572297394953962565432529907465153646123902035556920051627062226579529572914641159470535587034681596228516685018071636318385338969777709410285432005888574326468633654073770401210603574139468912414372228763721049709189571655895669834511072733536993806931082329223728496145276717453115058472986600138163381315545660126995289045243078940660953673065706729808069153712189021937624511259243784800150561502917228630683706457736762853716193831963888914070250518930814091841132018487770185016826147716339715408757616509178604941013055039642673817874085416941713534361442270070165003656990303832085782190629139332429614345609346368838853317851462837111668426475138904067401800919421344550387036797082615520338925867389673103246036426680488753101395436447363616257303504508616925535441187928969782619931915646315943889693513278763497743883432666983484633230797351707664543787667567399428250552771232547798247641600587360594865689981069933749482780987024127159823578384733845051751763078136434803446055319835094984716718775326272615617385054399478771636618396217497123681434057048625503958410835512611544167014972838456645588899866934775644043691429457549902913168936634855984209171319520868299833316116488853218326192919732394852633845030912587444604776697150001144264671330531174919700582097161490374226720673084134142079082475590247535616446034525761568086270923486600494052359838726357420223361595352477765412558261925363273367278105908440396904657811235319142571634302105070707009145003541158959547590414847035171262812940447193028084355752496022631713958056220633641018837611260470388768882189457234471867431413884499312645549209053498131460791281260608373200055261350451935327618341193699035010340612879513162694394763881152325011502275549606990049636545679205716077519794792570627385498539750211355417398562126916201487011464173241210637456719470331702261755074651521290907660821199813664761087409360521346396209894583043178071841868044520023405995517962207395475525396247540941263161797035961902659913235441830892472304612540091084099863751095566560793220489928916252425786230829404498951848637785919322544295792996095037144183764840130929553958578734529743527805388024025934938028989047073672272208479956627116371729873975728502900655795981600499438260664610388421893241123042941183789095868654193275120418252370144274301271599525322348257350070727848075843837395891795620439908212231124514092801106835746394238028149161419630831631131728310706563031362969712561293981722749507687825207786460774085347322401526318853704083208471026935703598686405644858747386945587016531160075033373295756572572621302188727437388529970253317720415350655063484846237366491467887824804711196485025052967764802630225967616789512800804205393448716700620440324032538847085947895184340973270686218095949490102016527411954755356124888304211811722070705443480859741521484682118410961907517522451126875967212307307382342309982478262151879300114971950156965029774746513333604981283717207060746529366155408630805620249201086436825703780192597540962350183811541985199558031503433088416269756179979548123961751579178229564310727363281690325244111003114347315678195590165046915489949474071131906019168601539887921237110929683853204911671696918923926053542692076759874759687371601245355054294823241398897605781348726791689055644322123089140263007251817088965965369585841727070269805278414277397986848207302639722057143417828612977982419376855564130445996109869674460540214686254968609617522179235973020640057847661734983493000285384049748185452511345870594660595499873989370864335099373680733267985831576693552122629182836949901124300965868108073039870080960963176931639372212995960273391737673441052403636995160084662569140524068043593197081155144210940235423353629248316644920252234106350655697935272972398202416429016918451492157426573578306234098570654724194889378657650074865234873664330978115449980804780789963022563652564834290537580219148838782525943287031562950189676531299818851494951907894293757338963044735377302510740464641147368009911531170935996410109087875500170552297377113726673774689962179816125228582393589372581414909676016093177396465707513479532657018035462673626704109472650335356263963864788515144854903716433376347815141472931142452935861466333373768289741335164140478254001067635366763283260732531965441038205152051319606559701064546618183123098598048260807507857722948074819972269108147981549348663794223838211535365271747024882538497283158595029394228964117731296536855539880956700216048443060669308226329343446422919046194970415134510012328630528584969347428624992830476470184400672439535909338336817408642103663132619669400210921961074397339069733028757102485973268413346131983962292271472692659987528782066075088851254111412979163189400914817194148236729898315092549469510078821027600914002043224278223365025665866034598842153723755136845138192853412682003057417962264581592868232003840930452175887287846149166762538785056119443704268027042611668896323251238072576217003741774678956648371834498768879088365527770940522387937310005181761373793913839476707124135256603923186662269186916303561895745055616327832490701397833225060417340759766904305394586270651518570235309507149535386831169757067652314169053605172033126552488595776239343117363503970084394928259330102511528627956532667930789203309690208179951631039413217002760309568312273146318237461613834677939187544091676350107134278192022808377953693974668761335846913301053369339668935665019027728894557773266890688912625389073381313679855420125518969726856935523274720178076927391490418189403134852507272264034908492168585727327309318229740071016052845870272063770172972269988414201134626652651563569060689212296650560798322680222958863401385026208809322536733178599144529971448468840277236351017364201868473388918782033208618845704121819238755756141950116614854417209190930569912869301828945363013631297301716656781743547270986124492134928169530815857526005726311486351060920445372075669073541072637782826189079745661110095677620769900165490645039376008323037769017062910343682798447007450192994646235717159717809545711716861016036510507902170888015700486617557604539283085309423985107415752184962847167072154579987027880471718648785926409307901174770907737789773357557004491480736399488748812993373564401564954793339368791957035404821228530458745199862699873566887049181731468667898489244172631597675365379216564527781893436261583013288012543663601318463567298205416633273098680537619383535625307711362742844505447957696486804570061587138757435659920000908196596185670706744565800608865928041435341799805965193339290601002786431729921313321328954320086723379954452576548517738900488958164256457241873786475485383991857653014118387856413006901046780899720289520785265658182031424235280585442198332980458619192236951805209536495259473415621630102188787121570465223895451292254177238298570395860463441025026991322372524026359947894698778684264803045843448999532407566545253706680804979704033405336839992569011579888399416472745950845091597477647731184382971607779677033221124668021374561365915686900489066681455745896242433479055818374775978965778957916248924919579533414832849419916757548530604731308643920306720741763579374707715367655014965124053313820776057800545537348020983094914153930650928018202260288892788836332782357477079743153359864226230996410643767039990074715731562474352263848542817842884776594223234266015249318250075435467324614559561012500074019591195242714615985340767804285175271689642273763658789731810099509186614211603645686388057860380491128743156542556177506004297006533110448261299264982513972379355183929822784689504404200130423275471622571145937470247451427164176453546883724922179972703928561863027118071186027370899256391266490704170096299629608641331951062257227966707264897596677050124760936886873642591352535318935908873281193562537750231998557353833953668868493182068409606754426071121904202520117628882277978843310936894067931057353004756541559965678030361440354822486562697039448049070918526916603054218561594464392734548913182373313325497857880116631278717240363149028751890998094125958379957884291259774283946682993561160782527106875628310672152605718555083288070402555802864491763922191031531414109268361149390992385426261880099141057442544980981431016009331114333067209382454002322672034649966463044684846277420862873236913512900102088218026696063631337010375625612924504723755532063798991245971448951245384851449651601553861797706152887021480113039681958593363230657336985688106078301215667411847803679262938462634560704506964473544207071217546512547352180168353579915805824009194976201024168924994906885149838167969214912086087275694621421250325281712143068539901156988113359741366053534269392179123258859627617443153656267360451048782307536875427272209452546273415316845643105241671365366979844340613520323902976367240803514292912571799023435921934679191201342493253514153000850329066788787038112573230482220239112326227598963086433684187228000093238731413992748413568443601858630412389235981047886316367971720814809073328698697584997650023945460114840628690417256421869992222420547595929432728981437507207468678875837484275501732811636878645696766651535768881581132576496377896547783780983325111517498603404645828052978470586076406215598059792182785131930389838698032431617659646782507552186937616128160617325037727185721231737818524806188914510873148584428349332923248903541595631800788427808202229741426308618320043356461599117702722508631116408207221984585557411908569189544636536863365340265659084246218755307243036768785349680947657694676478609942010599577787084306701786809347923377632494833246222418511692839472102033463160647298738646195586378114540027252450502364966504427106232619394326318982583166076745874000325795198122852889006234604308455027952810803122553929186102650706117442882542810003650188569245700609859620829008466576417356850743919503324172030148884996536543629940587741293024725655284115194590775996035043233723674217438502174950477748807099350562605624215000476370473535204466713300669750713613688608939729431667314500332213735151016153375405618374037699518418950102512394882000614570047047683655061859623082060006592911790411163258445290483112387814816711859718482313147533456044703247929670976005959655527711034961474322000374395030879480774742462575424640703092091740614203263313125414835972522576964449712462971058508520256046323435592299951462278560064963029926112650524629923869825901617274455292458396029607930444780069634651519125664804829810371167223473601750159558740247071047756910537014163634224638227568595921067993945431102534023768273333605039614326436544504527677467690345559452708869744888336049685012032228184524566795413441721665140434018215411205800519469548962488877380669920663780462380074370080415560246991760747365281924924371480356355593999074376768685930940645335707946981092280459570777645279449165489698750522628590725281279027758357737143619448886940847957099689626466692096767986463070813806716928545689148972320080206570351889017107226419988612389566294778637862755312155672813188238665210583813350228984841840506325758221422761539671640315628678462096255336329770559877371254131720933725739606448784795485066666814754694714977800475553772542908496683345777184455573775170386342730989106143612581860369671853224378788326580265311395154029204995469667198540658407181292285320198736368031237165251669762081090598702458495897799924774711523885051447873869097429112627408495257792317170314100776754744165041049615603559963382698746853857498068988174680423290414575206446477772861585857354956844618026407425842465529262529048426067579720966262776029163191933562252517520586467363685716434861768071066202339658314565273871583471892627514497720619684978140674709145500967366241911249616610122350215062763878463146454505778340092610022561561672292695845269235720224461663820997435238975888949421446015681766808199229486737327953511558455293631753750540612040127477418074389488864704569837586428437031872028917101499067937050455204052701247463192042081861972125062807044493268331087241799496843262301652214494169950008529771041580202647015881829809927565009843529737061864305287572662862300297489470316685725086385596497828970808400216694144507802482825771143059703549773650453744492643914163505064088560453966301720925950373312564603712289227412577970728242011283291327473861827932411638366710282304038219677615060112822708844990774846653705211228307451700196521088484913155583436890888515948743976458143586838105567710286123919575192538626567568880730757414706275239570482010302983769365509465235163358002641503603509425749367695175833652601279472575060690133870406224864753361071575553562726143473745343028899157216300249891559787442255141871176386629023853531041538499504284287237365872184773616536869773517809984071487795312136095725780336276829818079868489452956357881254291437466807160016222149349661177735579987518846447080113868562590740330060074025643619457510386400039198971894150698229535544792056807338259726259413672646423130555581276508640582128628041677095088635628208902300966201341216436112285835398379067107359475528667086897110106263961657909010490914486006705648566341073172557229344675202656313207846063682126100152920672484995516232844868352299062536086685194011885103134467108090329244481013925289218281823981852347516551206938697778160953052750690988491832914323476108415830513343816071908339559266956508890981462314049540185797307518874289426371209317266789097641111294398913813451087464695280566199884985610372539672433772700107067315358905639989704670093036294530038900630421173903454334909588762867753168592644906985039598469886495834488665718710562996001323511172881841580132885062927907609985405300761060827519791650647953579913577508147023819042905409553302282382234272557029826376202862767550634772397621036774627723908790940518644032045864666697684669713177883567924609272556177347590251878108871765185225288029769532324446632748319854902169637179753938880602870794476354653182399326951350789935544562848448701944988237729058520540850482049011035354212426685896755171585589820019596179518375827176495636719264539638738641228213488271664813775336797427629729673980266686787293132428222821486220301516716927197471948829769147858520018156454545540553366442381565967693083454183615275677023340945056511950588573000869742657161496150204062208675378036716213200114025913628497057976946370538515911582483322201976748455042461896941625106117118321605669209791966304470202057904408448600535749748915145050625760776429176777353681926273927328829461164199070812359432775323904468480640678864548196494530311276967217536499246150885643297482602697956794752131243810009828033505124017439982838180819124464011715789631614434708733935889979204815603585896532506542008913680978997902328262120331277103396493961678108168074632885426077376440396649271733988220074944630129560141256704086030240708470281748466193121359940368089894867320666672946626896145524989302850496939416656395922623570250209633842218480264003489321436245336023711582483947897230323376785826181317244746910013229230902609354055388251171258726998514024808938063873123816084661442619188830094381228488277909367002162750750867691635614323991660424854535260748798478977148808948749285374506822996569864336260823070246087232063535937950405711415762222993421667691937672512985379707670722612472103141451695646528468561537428130813338467124615403612140903548355901392117790109270651701373075397809162209893785732936328051236349652974218751559431591923794738854174577393821799876177886020038862700947345717367318746702250403637660890540374520833812777838913217341857511391633859224770933630074349889238144856221918463450813687050815076446250600463956065290796139338183637585011059398892457148447903480396852319897689308992085873840559190536184107939148428779474615135002964550448891850079590126466258257417045830504335362202387007310700955396496337778554865790014295967631857530333899388524282860373938006081191642326203148499523993062856511824611877845785945387898541626260145450970999007907115894775368479502196283955661796065136580420464232959765981149161496915174968620227471173223602937700170021652700716210876580931269973862145508837943597022758818570875024616946434966269590214456800219426118831136395633432141862641548076755890061582389478232022998958270598795312594926645473349684110262898273137299353872043945447202216673984033897002471816367898714751246227649175291562032830462450078548900423907217643320821329886111754097378429567972953865476060625221436749433739507962273497286736776818648043864450626943533560424349353447423315184273744810677404546361235731265207195259772851435471198666394626804784235118493482809198422835147308542386413493591682217904238429844941101879483486051400078220299680095084727613282982699609185440019342246287268873377604848734044730671947640657819466170340776246973237443416297886485904781214271860269982080695638801769043235302343847086727219549794276340745696529174593967067481837417464856200491655227187750552551367132802494473327469867487728100667749697191694682579048403468361890597846495651178641430349380892821087356838035236399874954378889022531972562970940526908053874877745748320944535293271117667324833986765859403617774735889967915395834461602358728431817315133106241658987025865902638037573583360394836667746161503165445029683248919974642799114348464864013587711422169508419516563366666770115404757353200048579732666799232750101224368324709079025740047645522849409954473655282684195915532176468170478290234737438003890201146917350036146607346708589744899306399897089554118336809115385699996685610415095563899397020834092784295356440004312329068892403748758333798691521104096482446334950123043540420202559956594868857839278318035220947421403564783653163055594318982946119047322186195077791572770811797032679625770751507082819293202442977791292510156600464471765600132929372621548022799459289875391321380657020432061883402378088707571020795949768388451607700591850188095408332688790168097956298244220433503828469017427971938498537436809993601057337662012319733886790447463752239315325523777210378024914796505445196409120981355362704672422179197422430004965720687453067369806100281688683302294972611254810521067430177439380619623142786143623903065569659036978122348208247276544122885361550189856356069982763960922183662237511590394061858548196423677568455222647275506737490201484256207719466734005053480353088568957359424061562993647851740070787573942319006111408777304078781885261391525454119260763651435475099773588630817836475570746330774769081172423781901435973305797435101246604251068955149637121664214112963927016878646280036242747810915673623379680286963310842698959685489543839351550529837041540907013644086783860597675739579671375451240093252798839431106996644578228945210786012251971137857437626588877326084499812889940209608777186757911233444675975738096828469042701975777949216003158879084527045091970501427945316981005031832605867372008439427504683130259705488817938651237418273162345146170071303977612670775902871834148507669043605447226327264398454284258844180476271074854595144520165774451040804446923696243838384334899337306794717174768927524320385375543874498008036237173132261691924319535436136506257607999970974052344478926339087098272871845717195718357723539013954856051585676568001724941470020511783314311549218377795468685826650086318902087016151995439128802511155706753380942561501179617322336657862682740920236052699091047803833052869364365515985772893097299824544293618185499393866914170152085860336064600897028362008147880766935720958168750663244282439580582604365496200725815159409212728445091983752698671939179802263882103024449704609296674551792699045910561633933583933430866301768818499606159733891581473156636228415917487778172732503456412984415467583463236977833281846056980954896774479326228802877381508843367724456945411459518995579241389997356730913871160043087217966290550106925929902548390253446204225617289173500675023559302232633300291279454029459396029279075908234217717906790649311610286456648496249578528837027472471901321048039376269884413088818649114161390808691172180596468884678321958053470198650394509588852853886963250800308315759604552165698901851854286740958917740230860587385035935211010992588790767730111774052276520562014896166401851493329615016956780009310918944350998758462849060413117070394796045159838498737679206631910045832300002149800282858328175122388957677636167786536585828027147684424166897680542032143845940144035347585355992227730504930438577642531283588100380285586374408636037066155843873421791632986704883976011466651324203807378644245491699549163724789078721468053223566443999086765491336297297569647726186281298392348924947935920521473835886922673928231394679773157880238098292827923331233767271053965120378826076771234100054259943712511948298975120155513632680759000916122255841880351406052811847372738114093018239407875447376434065255513362223447311155249839002456085483509770757127156315530530746320749865349709703206418536203450319280695217972078533687273948221839205335472361537156536391841557182645995519777536602554506452501739196066628911071185969724095982122498927753505881402055474340286473331311980907687409598722379222168043872380610992671445758303969372318999634865535942495709247759851332031365013903960521094046732883266424308444580234432380657428172856014504207516393735116388051902891844694152298996204391206994925762845004832957698764412991990420288271112949368993092819180123372733311897436912946204845838246167403714538738106799417144459271630695020508170689213566061953628329307427597078834625906301094032701607890304554719542935046678730452540175312876708830325965027424202228945651447437345052755666714138957290067115899215056747544302688143875077695519235887825004905766669913669465420886575864219709514234577049433822943585361241291686944934122534989700371955231922532127539720386585341973950486561456252057071405769165772436900979458420669827400782460981502075564611900795545019663482272327298612729564218748356430946246422795761509827403273986988168433644168139690183862850126070803064287042165391611111549999917313183046946186647962558053033975156051961235445030829756626027484545607161651463364220107126078742325501277431617943524874454437607304886182317865558811307965475865353350995362494035777058171683540626915224344833465595135933936262491356559182950550202950522198194374536158750281173300708531588097303484372221767840849459933983221278740451322212059779600898901957603326921955020387556595619975182497391893790969887652528351016204857940821154553518828388463856529229702267023235955932540154269212642697033391392697695102215687282278574782386655495255798907669542033359847696508630214910548822631378528318010401506397404922465559587996256319463605624311383248528848262265070562431204888172758682269187005910766000252260491555735748542928901616058077707731119638970851955730279909404949203783838496689335424797781045526952315024178617717964345998629262950363519894096330581376160430234202051289205021733002912954261856838198075106123160342793330462077486843061429901240358570808190669479605117704453247549209007964933039459164836098180314163717178849773936901201781787822057199891406653162495790188935296838883226236915336009459654662997140010441356614907508525479828304898317034722596409453107575026735635004452525236834716435138794421250756265593464799149338021774049383345965355655722973642708967026644757896655422691519705089275322506518111258948456227695049392355197208316476914347864117340010238736442093048316354653470744393934344348038579469641415918272765203630032263845068984814028207968275500179105312327791380606556315019211679708782111546971968185287582612282074037629213692722845882370936115373210620847728977665472669905527092461049811929203088309897855112603529909999162991036796627289490978349179826310094542240788463155449825509075601145909774925148580563419303229065610553395851651032092180220384043553713543887515039180236185662710388166772267506673068871370077015393886441010613500955311520928773726932153571536251987029298445654352509867331502342678649317533811383549504187270845957448225138310765451268994556651406732565131363872679696091596703542708388072796765315751540721354582588288214728917493091900773661028963174617728266347559428644100910352161873611143884396050743616744377166744743240247729007228727571758173725915817559934483601587956414412196146209401337115761525234373333268913221112914914309697676323681179777159302799760065833575319883049432442334602163317642955352465345350982954279225600725032559255643483296851964622610255248241922095780033948931952230494180645426967064993545441510879219395012201837753118962510776884426981715738120418188491950686097478618989760418230911442820524564667406097532492886629016295237987725556048200185976653373188397070824121899366157362476845265561603482696757555966249828947808746699454437519089496500585980709963042538290280076391344802584986320830937681890197980199249664265634203856236347354433075914880259097687850249079877837422781295897491743429901257824189661623348552912159361414044780540308037011335596324297889977359285616993015878066257650626061855107445498240200577449227292024042415160708353463647956865328502306238704912681357838236908481491818562897189356403312713026109224910157220654536144314939432137635830047894941052444468718534655690680741211340695273727087374021155333454833109331772038377192874218808133760393050347913730005382679604838106473719184855334556800139270791945542068247097349049475293357337059429591431725662498745325481733772536209770552776345131890114214100618074645016270836374634888971732361249836086374000955168732711180022805280757242979864469002075094579161200895018076937179417305624621796190384097170668383351686509619264048742832112064441231048653207469284973652266341562866360237374901407164386524296717333809633060029082043812512136261997342134358051759013612954181464896510449849423604457301708510873038685989255482412094150828110671743459139184499176344081871833379887056452434953020751625861510619353546258206623158064754629397177928179117583941011701148315074350078375729994784224611464696814587704056105160259888007314576290082074348639941227113001080300272159196735142937066026705492007214006736356570937058858922302442629256079525806490478103321421112094074667342299904039891110039539273782539818439764162042136670447702296822883909781684052962300275843889291236772868815179958358546913808134987550884932508794315642373081802822730713235974449535412106369271044556043083259177620686341199826976184173749496376964292631034429399130691803340027934574302002439737642539546851765547321587744139360587826086229153786862164779892819187457169137884168285329702767006716884666021548791574061171291085442709606987885395176699875584866831295815409251811598411321318249072548997812525965510604958843110481056212095262392857081843573993076802520574519469684244270275722268535725287007123017851209034395857148191655466304899342261217793601200110699018861126642371572624210015906235407685344646413539712906097913343455247175343293320739109872364492081344904470910621866013800421654751762528847529980035762756768646524154977623944404280976402366279921715607399775895385956543537315459836696034475502413873785544831154076175297586630830641153586940372833534110506569495507210148044301319828290136668876218775851119039121335978799233893623066204385646637830872080814491867858252760157360732502482420925364030327354125009998790838802359032674483439033055259661888102490034775678297573130112290988629216577823433826597287216945928578521922858697443763275906938024620910038414116401195394912412662069914689305801775822146945737456310023794475144474755569102384061227120004778657575992425546667205716717153805464811307152745664283522391097765371078342570806041239839218472935774180397037924678616681160721631255105193734229232530075263228086199471753280817590888702207469691667120062166521078165639407341564656238680422035590258391237447387913656206463034358304921245467585021529002370522125737424515640677574294449392159467281750389481100396046198589509347528668342374813460073860889445718062558699902970510581368258498809102150992428161805568922528286005157571201517687886718541501207958897516375590846726319584149620410808783149480057632253896524779104133995560439868847415544735653552732350281081732135192962642841786813068002389440726588301741485368967742459006846495211517837030989385853918834177557308895582292236531572557533277819143009326177721109889407568894146630374241722748626983866147324883901599481791271100883110154665775553029030964357956879882800731954206757163901141388669713968396375918574353300351640940754286746660060837938500469408769190370722563175619517921348229780403163442272661983634479383965660402365715552591939880880101971156006841139046612393982362820694464778644577031425481377809549174378915373807543885782897884501446852320524982699140628956023562743597023921067786991748868644167723214216011966685151155424070241900332495690620049535908752547158389472416554627008141927212954266139802907464293757603978180865284745334944092223426630150591241964492435624987699995375207875868424156131939229873095361987550280115290939213990834129297381655766468148918228785319446352913619915836416214587943319053217451717851127887859646057643671491567223740576302670671654237167887512655315832670986124197242543148035770924167477358215432680406599931078517002600939799392903588441558950866689440451324792784528030621721568439919109347773685528976417111963250822668459960267061414939988164727927027710933775352062195757171288563787261554206261963436670242703742462555698990402376979242345909150282246814593244437340948592328691493466474803153345373257343030644806815387020166413509044468686073911486053372432816379689624928419093274782229002810596790140350045406856725653647745153826848489186563917608829197478771309042949221220002645584259563235075627146002729221766640079920783990744897180283110302774047729206348421531211056224643414700889159641466430555824528161407755770167761026370066781694219696524280113011997873313306319550261470219480192660632565040397056983035706412478721814132319457620849497526170295940659228426192851068191583331771867218538556428332375707874962310800310056165960806243798068590522870441879864549138321524840969848415722930182095982147764021089940582366265995293387512172774729844960853970855821235500508785611696962312755044614303383839084367121942727600649513423000910724167834348580820235989813176555464241283325059014723154084695642301300149842218939179285487702350317610893845907560538910550905891387060972791828105993976854178507968892600099094636082213777542349110649293612192769734726533397649370936975334797632493235520336407655574776613183725750804926972402551474361407244156442886038019928076050989172641362586411866543836640824060269493698449713982079481643955471578574825719659068385009799688368385510132787132285087532987162255760409550538035508079040224026892953120813148401178951206244209929973564171871826067056075552045914960179568577229357911601539882793852258034896036529105874385417597846637245087437007422384343042429497662284824463020908333318951505099793212749436887732623344953058139631627118150663577164915780583345346782991457845854577638327957581495981334365444102861561658349221277083779046710975505758239535767721132745509047791217462029362191777723303729469617570553179219455622000700556366032173550614326421910262102136054463265976663305276936927645907173897939687017233887045447629406109741724903807691909321225928344611055859040523258825895239473530268009785925407147911304515387523025376469101669416010414841196154486811915275726178164130798100460865734812608694995759722400155505949992295245502085603683623304071347946244122179843596958153858146628787414508762057180236702907259324799329607904517282893882443902223778326310858901361931138335599154229745593720401057283451786320048777117248706281592630645331814533219182221333625832366523381701613348869384641705445097249634739685559298973970856444695595665109836491904886908146449875966624712102709975988943276817164295965616893153184737311676069786634211662364065943129131071577319413929231483302522705714820723687813536409682856836438509284509275808337190840262601217757782265516303250581547757004084697157431106803959124029035102273258329662987232031213159473132325271734100279551783323299567706513125763451525190280944714045949081721042361950343457951755230392704434084090332684305849017221999728127851494469415764273076145888861718588312055002971719997311990275054714733146247784739818878109135920430783377493951818403791298310692250927188130117814321664009211844769319593141677713243713501590137916326051740050887789955800046244213866228190526245202598713723129938193480034399964363375281202616134178254018425201676274736606400119548853744850909551404968430316638111039896947731166957701818220562842017986807353285792476108704683981517620740222839791257086515762463209376254765141387758905799136553473772345453834603201765266587802996869122499622171584626088218791771449394652126114666728721108960272225092079114874156648234025177409776787253944764718998002112767983993958411132316604427584841966833528781693778452548547881056568055384913847368649512863806275097425654488389290823571309535256668155556248610016003310370421780394036506356272460896970237738380848842111965861812703352035594722418036836347930216370925260380816696523885039475014130963299149284476629908750193097542173058394260509161366893169057668739274769032489161341507211107367376913644312312656573401332872510452584882727618258222027877761473152346273784488969598607306423492636946935637763859030318150892329329807742391123003478191263880948395961995086896927693537204523941259688361163586863738490629948173757860301119786955200645237512149971530356336311243703582141680604880633982244052862229543607439253437896161284008908649688406889683943092996829781337149565723049898844942390509026378800844375912180817251954382411093882287690430476144159515790552641674005703431245051303708730090236203995854409264671893336923602396710001621104565973503802937084821023625790779857818604759854642082701315039269370911996741976139897718461505801292732871180678022240252428765772314944151998219690325332473635171272487417755966368199923464448473922095557778651546458343490618635748013063515801483875539999546473227677732486485939842133495595199765999951612928555322001788633993862211960420976143053182378186089571856446818096090344017800050367255658584091073534125877681011205468411387567625571166068852515602251164562330932247269877773726675872572206475575656526370849893120576172801577615042388351227520002287438271672298846853884664322485092552610338628939982459185812836348719422289639880858528253905932387346750585497776344449097810694370799403202442056979481444327724980922795819891874076337809096840554923783755604943113347653316345726949926829626444907235297414391954031154249336992681690822703522679979350640640991153648615497492565535759903209098012924154458851167436236574978412412693279812455292244679252157155872955521969403761570269731277552591509817221177768126575098491670905096486429316750471354420385537060135883869491318628580326334444569372280969874441219093484687883505902624765967162019364222029303187228375235510375947195626144957234805774249792710009357068639347280219856382444452356784743887150367456091998304294037764274940005086018746900200188233947887301749012375555505361946820360222034146222677859498538603098861883170266356630884601139504139948472021055582704860502491706599439120554841550638993030101286827443771996228678697724576035302689774200064181524452220043756359582963812114034297726333518549858068113703641973154652650927323032413832341367284861713317668852404472501679062760309573877345679356994343934133273312581021542705067986015165657816542871726757016984352721108140442045162482665341922970972131339658157787329698853639041413659156880224600815693361271493081719414708596672352064246515178619229814668708649796816770099720232887709962535517915548097896166503087887181284204853254778982847265325838983554674906431303894520033531779735651959450544507503905284892803993207975319889416246894750364445457928488681285378935397676375450240350868631899073857669003945844068743178614620893739264945050596334253481421267228755401255569180953881951259539449123682650411577445320038113569725801290200905686784392016064177512198081120391994085257090946579993925388947438068835400525099153802533288003296819500576266869908333908616531325414455107535479093821226081419843570954163956851641648304611684906504054777387796160004688004256959824048199538354751683685575165983125535454447575938203636929746570340863787959155258754726086101510498822939450544399697272926679348105122722120564964414043035562089936162987116152589081498351746398264079167582350655704183825359270254174485929441951604326852970108243303622397170421632906095810531923495401676972967595810434855681573432383956664786374657343585922940853966063869169998015834847106766293981518381829123105622291396645863520769039355307926048110945090763843715482963556557378843662878948713164256490669173354761122322101591216807714529157760569688265209891827736745444718805133569689844356898591124598352627330558991994219032497292741361161271621295864231649991803353769743291740254975788363754248292492753457030849006497332870498198693212104703353957244634531790276581427764776014486631903597368125125024558121215851686493271682160637907532515888747475886249783474631221053042543426971467260847335495845667239251020745095535735647693339314175102870518149155621215915219974803801928153039064163514145066126095070726531756637791478874926810946466147953163976172428804278415250287308854996451189239648399415390668659791530183029445885017699276435461478361278214441112394605679484731491206987740693113308692329932773742374137713487468335455788086512934704859221761052275330492275185547875473915494229573014007583510735316899268921565525494975980806662123683781749025719411729549542989241004917868179274934565194016124430403080140590905812761834841469821909584174650608032029775377869065481466869867765888294029936404308650354043656060311469413642133321021056012950529113874615817141514876052703676244398326548212066126551699363055653853873647429452935032245863441877109895914547135842893403018485112944132171947241493903909071557137432651924596747149936727421096508661580833374569632619111279085166157601475407400013758302822178626880470052482597183323852878632192590404799854428657036515199932409411156727589441146580606371507615744301210594692961655093170845370292392557390604561804150856091071380352240343798138090484399146913389945542553243805703374421866252184994896482827167347384376302492037316323396704609292015606205252897353444393185201610140307282686873667559413557151486945828939746886574719931627856184942476212580261854149620259768200167318803854399110104523054450055978914694980057726747793868352009649186770469247603530808786497504490559238966405979413837340603990862311769510349275572026067213371807597605387028680298324988460651045022925093793663457408194303766225037849079132890017152774951215730986080709998280770413152604969088651928050201043514266774690027748351172954781693083371617916090778685758033036594495688047525186643291559342320274458749824677108912177877579065290038826145638373278100483591577344233368516423663914274595583463919015617702741083088750716296343827621237733189298945302235878567405980001824323802692774760050338593370478110671676624506943829481068011541378368848021090651477413696032928871178906235987972158301335258159241406755764300834547421876024378567292398104047336151891526155228953958647607960598867950140404914341294458931866443052695076067851725876231818487543500715985926795693057722133572388035786726121848457093231745457296792642350608434441229110309487148461128313999694624763967078770326277558884569505251598439485431418110962116835035996291678311946786460264409679990252565033510248991651734430538514289660059347558641188610989416123897766054055692421352851977075761543252500752038847962282051674921413203367754165679577246057426885984629891185623213351474592563010134764453898543346559834835943575728264884142807548631471634287353007079870616341018942765895262006572957218654247743681159030186610880850888596136693961161403215307620488851916317812739316870751692256363875783358102826974888231920614202338142361368692866796279054694150483483643611653192761254633222559921416580786103426028795382280158037803254591924825449814706697402452826004529055595961379623443204305508974576805378185613481220745314964440562191971323164136473580586085280832974763088165021927963944308695235410267068040405159026901860774605321622615336634932606055672688568414603872663099858090708366390478451347152327192743506349008240522578082155290000430948966470625244595346533640785532740478116383695839373581372830922409564902337402633783208656844479713695892401126536866664025034644532475306039185411812653976235611785056593432705728489469976257314028444334334528381700684941508606879809547051123141960307523916502842068264282725311021686217595874922128945592131123780523757687628617450078593982371455580468203217012144912213906105746446074949579978148732202363086733905339756575253242210069926691470961204343109900020931419012443345836362511632497945519252453123006908511537715037446354886250606364602282076346223035113389730849888861061705489838498690588090197464622617144730397595936272190297870955654415724154277795793478256880174619050223880987696796068095669265246558758482432466978038683549280714883372323162524009106375950069879888623864700379441684716831218447417357146578139042981844944292192487050414911261125507942102558600842893995762400008009831882240268958773836640330224156013682937502660165701080604750136612067084962837019599185998374726176210012840901753037970178926988246674368927677979280095540071416427252441166501919937730085130405577097422910248333105480484812537708509277769818738318865543820808699221199896809622843020886251381027374561455817384402010166847377144698897270236954469352935619686574323501457364125585116058767926608216864767935934113894390828164158409842074025171006982138059002267935080797307543690111736994079672519723049097196951199970677585296910858022557671021812509225825675743085581267547534019570081090776569630940458065847340601941006537898378521231927459119925778541885271647034704278430078332386200183196147085440921496373718318363094800263348083455324859069486096406764021100804857066883464014054776749079952946290399080453141338907292814984653011963384653607475582557856222974904501181908369764933636434326744912296374176952038899907069946336820512156127497439073666134128116170978442449435761755697843804321835726138551333385487233749415957446152872608934936730214949582633730078575486343282631946363394636778342130156749657329351764649869590309126165500502775556515377979436883409343125330788351991984817127142326363759593369783029098423759729805327913779851419324989490299431177866321036196322436012234256760347732532029829283182490626952333228876519510813688502180806447318635994730438770317727626008400380632198379407361499548331168932887653532392049714487267003807313441567347126493618156414083768665043799825458977766604373157660717003815060111813110785072181885765235995052857813259075934352618236100994528472037302850451962421316875137929505979624364337389201420559302549033342822822400074775187801950561796416609904226104805867498340450164827797848657867640485578217916153529822315261020854891847641616917096333477644857744246256773713971432130487233337747776442457072083532059356711874947439424198849277257152255515067805734798396200357355006302983356437256869328014001941767883692671444325590311748411232731481684839034189118838142973030754006749065908428297674944301616357015581101104369505676539626929430737450661033959771455035690287190681075846703332421038597202771800342637716174623185267912898391080421811315660250887373338968533525166355812780450796728489531958402566345385639055001506785951103231093846065530702683649853638493799940768749654117688540643286890444005699971950183459925069123290725099263017947945330664438236021870821998622785301017942924850871009333493870803761946613546301903824779466882655974375112590365313754235037466990801087424914829818089454846351344591454046549858013906125856615748717922623419781855789137173728415389772540247496383031017697857334763833513254373589637835837962794742017684291055286527171875443142645121501215027228229353910272438060815641723668533968973963746100002442652145409589948639992110868151992213396848206017811785780499672364441448440018096319468264294379797770168674346014327188041002092218819236838361733266935129602430354748797418736573422132995859322274720701313218026248068454719344478657491738517444314414009309042494645679478174017819420519601350471025959254836325661700753054043340240064343936268044005919537840781882296298644160103919852045013074359980406626082266695830565972794247093107146666678793454868888473516878641988421370598509527923979333849445369472800514297343325950488120564280964777716078702598744141177557955512272274856647631973594167207203267663217394395609535519128370614466952184969087905983209336222759003241080866898353112233584037521765691287365136378610041129379296825780263288482557438317201045080419995813734425794357519471408508646714842010038507036286679450787189106408863609670744901376700846459053870433452593058673828813219126182821705250059761532705590965015845420683103803923561964525445650404219233953117333423357321609651975052034137353146448477206330959608045050349919720900901211166131140946101690631964357621139545796622210296727109074290759216819311337242820844151310930326882434063625684144868545497021951959779587016580308453292005455199787016438462235039026667285159408735752199517998267863393776433535032473150583500059477479201762991916879211604039336079262090961928978079296163574165843181509634424789605929086152468239798899466326242619768753183931610665459851576530245731190518418211865432260601163481821210838041178610752586444797414759420891378042346557931859951505131951381674372182172315339593385775989749106292484315057556309570840412831211985849358264026401121119478811514297088640531648944607023398915034782232872632636873111042195096358972872176014680860642911750917790782467263601879427086942872605821557685390331657033803041667050546655317180482899432826433019465201095060751733828025618299133328249493435275520233750927875007770054159971185300885988872288201326368644757115522918818341892445981925548606296416415163588539857785565850084348662525188624839992115753727762526690747906507106469063153514102287866235366022622825048877098948657410320104433267628064438157382528290129089896012180859865589045959273275305681589788468955966553194653629458938358734636937370688472304802728546869874411184183419490566274051876576979516351511984336464076850820586137792915518721316325615629332958308754383563435085089465203289331718597157318602373108503313027163656623136481879426798249412880456698414932026420592334295233334009636380380319700050073908990626210550847588964426947124489845557618235054664012813704664324992111844478213001704974883152872082368211212045382512322117767813198945238244992879497791650961887695135805324336601931714557208009923851312755790981791856778000935343969008545844725291325727354302182544739484737290017611408879589805612274997218636466501203296072527310403858741227548774396685640536540844321914064563433505878745167091299747538263509721813679350057763440524442117644129213443751419090701847626052917497240511320728266098421318065535721383121662929381721231027044385659108628786268496166164311902662288688571125239503313038154967226863546473662007872139511111822571396342482199402560187408083826015638813940548106631124560969242372172476333990593021214346825706208102492092119523177349457164192390822906636529095254419659970312774247225414001715898848793808449133043003707669886976256535062495042029213760156305239069762367456796021699180831666482555469206273261086241371326834556699058654230955407906945074991919939640894265513791485927910372649333607898604336111441592350057387902387422706033469005965960329120253049123583396961063749356085088089403632850368297652106739344368558179921798924705278119806009361590229502331253026932819648128711955623611728865093065031288491517086786971063173475324840270130314427457419609025913730914424696824900588732126033270437579681801180198065842396195799996493143415782341631983389907904693157738007600897954207763014211639083169605800184398794222204832293349307029251414663229626560983785199434431996046427684341578176271079229895555054120154456203125643070208479358020788154587563368113921415682922825007557261597286022983931697167811121497614644696281352303180549828297195425680279129878136906959318723599141794178137151246255239237759905338855691112878206160088774380210329456091513876817100108276341991443465755496950363830084519786539808345280073757622865770750018856545202161377522392806249273059239329982807539191883338423475627042432888978421611328806633891922724184612585332028290208464003984172848555337238701396705705814903182608966079776901800302543761657584152108247754114356940768547861577063321052529996884146484718288555504909739476190829724085866966731453328273788755306498921389468879711469863562178392803400951869548736370453451555234092699907075885971833932358359048724495161948990860706151917825372115415807597360990650658603689797105420126184245781190116904291683189101877427745775271001802821639168146077122644491569584093152177240437272490569359711549998558255887134318155410433757877738361103401179669762362393064520779068973155784472637619626843390480325267544736446172830697331513272437509259007687645570998557974609766962314037770703602571738761151699100474075569950405473058507972017432096831673968726158211722202519988294249339401270015795564243796132001232066925567321180400488840034707567904742460130259652252112872317933902373868744267704314595501333096836261727850878581547395076547129304383257735348348137283450610917960111683525803150511009886739331542894442030670243616081418861081683988710730522140657521649595008927361136020787540164389987455440003670921790793818124843196218349510853152422331443802944254101587965771378061308076270504424532829614764679269133174665312557156761885999857366027280244324510871341274663647168390259433301850433165822445081791927707706885405979131987716368580133013724042061034351947962359287837957309078345849302883595659914540510598103217113791970901757348470264744858856291163433002784146983957391966759926843403149481067324707970019346827247316913141127839757886909676465688195885816663495054057853221550077768147159704697879164402571855917147975226387661994966466564415506759674042046888472393165749098792887570065243414730762601405290316325900817991694101375557994561347883245587343829189835428520029819283831106758851241064421116215432681748438202624470833468603270022897231645648345319932293913592835262617566335888948935458786883646328993096518381592294863861492062382120208227293722774162592124127791646737456411438098313373544226415098350018019735450540224053691796877680933407399361319865036189390032510043664811734829934610413290770704715825901790473133596385783878018157702097483306388749022361513530923538308703612730599853783462921656790648446700591364066414190830059517368494068091916441205643833941372959800158081922994843385405607761909457579163033842308164340362859551272189665406181700385015630866594976190078606165082960843029322711222919096067949264885902325149588720780804341834562944231608648200934548508101913755254289242582213361595888104921033921511179896615539386226772877892269496225716964850983704733685282958171591016609677890375373039246276142460052912446282946718296262831969520417121050975642997832704030612973531153464482047433483140672720488039471450265816049163000613189796985348016563585270411678449529991539878531441007838741314995470968046006800099797817348244128371001516099423944371869306056707960119286440583388449317496745685911311864625981489341704251141493454274709317983984179477386528879073787472637015645385714677187282563920973919588029485656896153275666384583412896766548511391813517459187891320972476409172070775570835974852075525812256809779771446486075925037903514230466127091560810803677242711347944893019551547789016177594601735476715671201053366812170172530284420259528600484523027861503565669842465109594719031662557191803721219643224505685242013079801842103125451235777451930630677805379804054786242273248450677018506563346232639248083638309987907294894379578552772193005300135293965388261465700243769178966873647028352440436939677299500094083574108336780453374101919362567509423763600956252679673398373582391707997059662285444638784821474342441779261386945297167379364188465472537491486494329579731535542033184121683718887642426484780910446977485423209689499148558670207835400687062612368177952133848517091764959230693908338309426964295243614605132571651507893173311745442168300613287300980519054768577948780943356506714455543113881113597608973573539713487584862615131296911397680664283536439636390362082498551428275374441492537638366636302816754886162612866682416300596928703653070074615945730696206468508574014186695653800056332059365982628703044228982261318004563846007877953440103992989856487239785186315435929791761399433776698875660781243579077282369947689169543054841386275097362424445845130966577779160263644700853329295596556270993645211150731761160188694079181455410599873021198861958103492679288626965465432445856020668883761027108265817516854580965211992107269909339449319809028740055971596870393070819375218579621816310637920217645495519765246675472878167616556814836068379070515862626079003888909440675647016197495438750467338386901772916385799347473576154376275323058178780181025209348593752478018800948793623046380636042062272685941110310165509064293094608455793043771728379448927697371070688284636277151659252175855292215430655782679150136897902856261092122964812117410742044507725308113821691580102158536449732850112490906253283697404258078650471075267575465734107050415365419754194213185480358874324223474035421936269193400809422232061232168309723636434465277027998471119309799462655555446192859525564634760796159051313986425189182523547562000988567942710294463221634983506678512693276239930315643320699404509587851318821774760593693220885730466286771821730276178472306354401032299867543669648164454856662987991175246817748690134684577821391049558982278052849139949603281845745911397711317312042414569942080214999326524477936445730623251140090355936015954280484420300238197373380528397811687708435993261750704027115530990178080428164102126050361273540501775635150752357531764275651030339570581915123874945120165929730313617247145993132367384547413540979156703590127301988488286735324904317569467706745840441649949221261160044730893902771546241683814887948844432658638525279177030103562654906588254949834071442853516958451349371770409912120710680268626936142180875534806871200892913304390494690214179441405349272308566660901622429834281512349740483595800418319097212079932338153165384044814814359552211742532580849086904382588053499558259912161029229690777754780174242430585322311574461050772212247872135325646779786399105252911392300380686500691410063096535101365336366415791258376787954755405004270268629076166413908609164991232367145003019914091599174754064151657774822932522005512403927900564602524458989048698519982241813860939090236191035571420865622456464255789950724414210135582267909539220419853176617662489513668538779994968075349473752158130397734371830717231352773344459125145573317930147305728756175068970104469158722638256686562899843425705146782588956424910074531939817337322550489649867824076208954030326739312790781469382425390062870652973455606212909862702231082342162848970722650627266186729771042416520312074610888215139713464501416068197634469832779956496392106639804570593276523233970465098390236881166796322087007470896743799082253831835110402285996463936578399989657646969753000027229693943971899687446654072777997336092050184708431332678605815555061681133924621109365681222812574338562481529979405587047040920501779946321685855405976120159605687499686267473793917587259900187669233520335910459580626280685534816452641552829861240761113080697489970585096187718408655133201587891801517797643031754611293673665423560447174933887658201163694982183845245556484571483939813983178518702924581473097218990177555109450550559900137435526107438129732813044901702357504348463294935586413715895184640149388719721129146410126099712702280523803432028836201848233821366770448360068318143243093235455767210693985550904377695247202389976303123729926686381982501569325442989511739549391748468286702313564458728842534880049223269439475583956876422986610665669558690570047302648791209237782089389380590689940559135537076407599674187671277875137086535441015978125185893177583458256521142353803532010676252752585609918367818220949803824246455744927581209228076451219685448283517346917306075094874847057312925104866059263153489136326021174985684182332597705188282348582006888891548560726518007587062755835447639891570559725717392222246064487970132262075861720778342659672549784146518172318842186305926960438569097808327737777845519434640236173719275884533159212665219213474624068029181789973644783357916242508362247476147785093987854796756033847488365643423671214765146822139624371571826645148136106175857271626666349193630955416587991599484804375312068964013420109846679220006088960317215407816144095098994567033119729007789953332849661827853350471622327439596206890788730694891143540631873586436446222174762503219452332473587018218846660030579312633546231065566790469070858902278884127177829728219917633778102859892695927584913655554196219840632914599427393048237761880013764447155869087306104381916949310357791454154710970279022288332606968949513951912929452203348422248949873952887684463643320614904007095617701368756684984844459946945623848216224858031281443995727373016130835660364828182931622765099414041767107785205319661368089861643105534721912286727175016148732889096349518731735184983078633021711877678317633187353287627738254653052502016465649321973860681611727696056417539270087635641464737164856814669117956966155468693567544515171173366767221604363316855400107519458102011939334032538672828134291421354270453057044469093094953722116166886617937113499457928710132443839460389065222061129649036158186137030437873434921487710617404082625573737302348089646275239742155800851178252600379638778627064321066233952481391493219823393995206355771635315282401441843593647908301586081538726946010879859142469801765214170854063589034555709676734629251308120027394992407638605314572766857116127128589156679099412545312205580680796422901632187790826791546457519162238712562347755450295298094165386680130892044540829863498565812965841423761784369625686623874401140521880377178937065686418878489672685757278557572776626073801125152846081873236610725919111108648523970289999976826619686609552414542582634408013677966010066346597876094409571516576471092303964953459208189656445856554937726562914814142668730178445832014614155969233885681789529093988154220348760693466411456563451605759693120591669111361885637843495491628345451458571007975537890328335354716610714505418844710319836493696952052688709086095942512132225927358739592458364184807806174989006256559899089532273573699459737596812334509324502391466444902941056003010319205876191095514797579688040512386606619096727346936296049717338753210914217801077856097348090771272360330919283218892092039646884335061465263115228825445838532287611522467098251858726195240657005565237376382225560754278611039246446733959374818737917849646560524485318814872918655433343568903768918455982876094978511153462881841668018180527382307170159499770807451068275731120886854803666820829268876187780178794256274319653932260165048794544319055199713904858150777675656935394957345744221015459654419673237190015616411964295841748104204404281794381670138171529306369725270805320039786030564243067181933400070046551101265617268990578014879932606356500974772264620184862072816971790480109084885647926873971925395411498970696382423322862576707878570708818778094940943029306201415540956965728328802027763147816439733809674809366358856785203048120715082730623427883559864669322363678288848216410108699093975802969053429692197380715358611058716516372004482869488766203169760176380568809625915657197099218420689553012845959903836719810191770358444173451573356312657014068486680380327007810566485394629728757965227723780185162984031746560081543868240570193401524309553455351539242537495771603268081150901335046968655210265333774337753077609612626263276737285166194596832812357148456018308314694332376489609602759792536519603362347859220778417322130492616524290731318285994500602881336051190385648060377032660391756155068284475821670676516952202809007388367817571518493317744432459910939229172551720347527821661446067546881410691585622455629718135582028659505110224006542600011847682286170951369747345226382545838270474288827185434509582288720752737550935614965093877668582517429269772316377489825194532075978530467293407944808315699318261230778149861501420182266158943177912758707403249471644719040192614128042685085233847681908963453680411820849070665989833053848834022362643207657716078845864249517112354108586828592830547724534218154138223838929206929799978686980005149013495060220373410468882404049719672487588888844169732988549553705141384169426975273396926027051660134472527466935705846492105853100695363595567404706776421025850344652469063848964710094431520213665685205822801215974220454798102766626268288956081123768375799382680775347047858657621176414633378557644478835015853412395658360170733835717943182680340020364212129102222258875050022656280595905602398784182446788800275290070437492491283314155719735452689626629235507019740669381466688710524724152857269721268523022934916911572601534061753972551303353432968275422503080842920764920384037909733295005300568711513471891003976919244786748018279050956154489818680856483269655060079429231743394641473184174861240565693189208771240964663326075449235465232622971232477669200805936740226933874822487084799445280247245651321605578291875309478646790522076489245102722363125173359617937608305704306912364249169693367608814000185811041841133226876583173602602923782550313750945528694676628732345635949937942045241111803636218309443985316313678579140807934905044161676985833598372716368178613309501777722892835872234764006409793804873989584134284020094441903821391168547140556986094883315113850797825861869320526116759304892562763641479758576947702796282908394320890043159750345819891086361681024827971345940336358058484597124291052874927863274382646137920016984691686285972277346191941382784397404390979222210464195395736844134080082331244878232647724081511983961878300496603474930044778462355645058277290795940751045910762714769885269844608874215351932143009958522273772816195679239375543860438323795462948031627586982773444596167195749216421214813716812442149682061493202163156038454378079304881343649986621789356894514486745554323473389805745291195199141186211961070351405667508586320049107432655049981491512067326378060684777525196466068954863859551887529203016828345959878032545705056884902317344140869019189484963494322228881157181429014817566824737510862184801846134611351625936434930122165309656362432778494640162536777398186117137728796443319610389827613730338298377990164966767005839441013595857542880089102854816261705774620682656082097488880277527917833166302187254344600073468490467293560824878346582137161800996271225796285263748836662347325103286294655570671835493971528749335637590860690762907544991628243826062166728409815311348750638361220698123415924857625280327381140069265255939219738617914419820030473122931429055830787836163064315433339791854930560535271531726047784149489912643495575797664478720655222460446882992240063775717681459382790186871775524129741822914507902821554661945180635455613096488888183286589069015556858591318649409700926204530928869066979200552088171991698533755977292302943006552962864882924849716074537624156333669505263228063478650609985994738996524939398440025619952968222986244780909377481197263283759450869694558287897597034951548749561355716402309405503819187787309681437892194085321745487857788541478898703878691559513439968979527852057759516600056966419309416412369483606201242763139790431186875901371551979459141124258737936211151800877433785593506269557753686333617271089748173464702113076243725309307546485046806916615443500832743787184607641758602202558054372628416536131057076994762045582611762485589635805071236311892983552623430538633370195438086315356594245202244084101984556435756625144295768813303774759235582173236710845036531840052404723514456210604573853387259228885551122974053746424420613814711960443704540011885933302430430695748627742482126609091968346623617637814282984029877236535441553564424642561818078097198988130912746652050890417306812258370158398077921843428120773874180301958032060583657419726411314895149502025490233707725833268617970981664901742894443495881029368036110281686862550414334486650746312371175705653844807886396504970654764154268368282227783942130656399338044226808279793402705974227004340869805875936556212424874201330386265928444737036657550679396896223219660862619426732169831988500953974743184275740083270498030458812404543407766007837315645886997100551377631264054806188096088514136545467661940363262123916696260723279684091109707803391156469423262891279868312705281397349333102961648073267993413950687817248322372644817791192054537624273839626996551109543228476909745697136474693400297929115684913326550099015367762293330151117051601605209386338300541308134034979487865435828356441258227580591157356310302225376435127649966607046635251445344632057911378606475392568517611863941404598745412117481703196040499457453667234783658863966297625828421183447165217012073006663280596179900722337279004362547722736238282581817413622917739931117145994054186168933889239401589949615380742082145950346844004391247951421041954648715891485018669672275763844747200368706286074391331602740584952873355125846345008093920912776591216173509931620357694962784865824073938533095112984509019899776402161020840554590694989022036779109921457781984609860821690978468016558310990233808423552577025292647949544409686222840632758233784358944095941268412761362742006874889102456318749584091202723631565255365665347929564174288931785240827550797761575387968951200297857131341064814281091428030539452985985101949194054715200729616311158845866297119183004556156535691967118110705217842518488412144649123786208886708892147123772009529554110420320758952861214287713383560732331217549803177433798591133434086641161206050225319557124058892165271095097272123181245830737927290856720626233036238240238819295111400882357490940219174926418671442835473443736670730819364518422101244898436226826841785450847099149895583998626522887775715685852762432173648771056389854910230935587703994166036156412935289245422819581368151624530031799176667619373035495201626907013193216293748952643995323425096562069015074504999242491384491849865545677310308299216949848047314254395369174963272586081904669774729768109996587301717495100487383346240821017218910521483205069756908983671198817953765033476640487513412914250923509807573373233198795790033236950121785866566721368530910989544973631948286228097573052402655643874415547138274739339805925394282869469227798466840977002627427489292552159887281709301976834308804229530168388042550129626039634202489872703652313809984109185586013373094593287856379484495126410383825358562110166313586716622881809805927598851579819666905348271102113537666160687687437615295130733762374952125803075054473562898314172818953327792071819516533038383564268412682433978906206565612101536667711705103690197762909807536417213488411257137170319779426103543840753523508846239738018098263370418955646234758083576556329375733289265921794047312569021257526618783566629585833105103548104510785887855969077840751477459679428409790259792428121451036602829515280240301639466823579795160403486799539578004719579888693920916919040647342872359796847021100089174378531191400981355870602059634167542705508133237397504547775655465047792846732667880156262815759737138052864806216576709464108140534441518082595687735118433602356353550648275876394235866879886157607159442072370537186022102119578826516517013901377572932361705681570838337902209686756813259288439818117796693392981273949864899745797018199671231076377535742888966844830113953115248242446512901350432083592454325743293349083251333637560489305376576015332884445601569181794682398937021024924462160647932533288993345904129236056756472726825846939332904893585395750437038364766808500148014126201024424318129876101316945364051017553338601674042976730805098468598236858986142945580041533753463281295869778578055308922809769843995909606109583724898096316518075089394926471133122210969442660340384983225229005374886473923295476867094609358008521702411450609047985447247189412076735921548681566937567871813715146409251972134899252673986258482201315075459786827890288209371639382074335021949065073783814504481292945979177809105882178625602828418102978724086010928281558517779862669719681576360921159437007619260575265448567748458911393530050425594901219622437090534710017430294144188190675210523425822044887475002955043822301257954700272276589187872949202204552085237506386366897191747856401458705801904197779351495031213057764918512107223678991028835191743869442398359950178394275031300414036783326690517321390781398024700406104509570749907554842176796574051139072511758328476836765883971086466102673040523182650779448632723061065493360183328090532801201185316180459281540684885757366639927475641886747122341446428083178601999497142212701215438583838015182619599435207381912268869719163210062124507451381459228134155638535394616328197576833809952190961714723730732444798784340110378242222365802130299272975864763351712804225273216228994706809592263393522106977846124659426806632104696433277989669418182747629291200195322735042436779202922748273665246209231414372602932473495033919241490965965605799481377929027301654643290550719802641467848054517761436035392182474920225870721090011015056148804869164670348744227204939661005366862769823290717421995272667885878198558126554531280573827605185978115324032537074950348205350974816141010822135167202748883087086055270074742437330559106905884079480745151283054993920563716892679641730523028189174210416029717348680620852484363438581428894159607541277687842151373202035651828678733391450443137813798365213451317666201561323266203577794879323492993154061608867801847311409588640282639475275922618436556372791895773112140419724765986228162987337964638664505191763386551733182522674182255982996723304584898277410160534897085517443515818553058687230586509200668903463213656396446678602510869762739860679777920596626095845875259295125342138123402278410747413754320222364915093694619569821694173267192159582208891999253503781242293058039249968212458852256235372897761398265373493041928825308743884979036905729829337023446860610173949478310549628183854046802249096568951609177461787790926191076857961020782467030040042926706221736741391770569976895071063349893610222313377574778651317969998436625954376508317378070315543067689762476065043788157813801657416072216791609655731125836937742059799422529754314636470433275520495808883468834018641302619303086070388438978658002474683464443516169815089864799211561077327013368566981208204001725793417009377869446783720426764879583519270636777736415606747493677508282805465187292216570278119410196726939144552002959749454215133428337863520227216958529611124702640607474209744270753831411601640705237174945137649176904786354670351838246631046024913159237349609114229925588455067146427239455499489240136704713622064056637332148578928789244375446694459398231790401160727639990266994200666829917023325037983083439290188487199051974057759334272314886287129410170572915008495980754664160237049005536836317409772408307017510658055279097013398484420370003475984177187782362324698126493716753575289599071254761434371473106621235170746272704636766453020902568036538246203751991551264590973608401061436747502514216844614206319225669929856369247607107836023241501543479590733835277986819977057535940354007098291705364801437671238564645176144459125211736689441124781119588141840416534642564138457896514720340651241972006152702507716828635675858402047314004120343130140315648242116816841875392655142100211617562197050051502646593384135386375341390924189363980648451522041600772793096076274799102191277552098112446562479977687627442662468288419899224802226972091067992453687783293125339583517160424738107668383411337820110148756963604287183197394881506701891464559760595867613028162829354293092840541649680454390061414447074379398978604307305432682676289128439083043582195048721127413394982510588228328980008853306351362645038838006265137573221440179096877272602804811119184197028398542233398674093025964084384172091972470981089168771079191685172395725784826690784042482523437256459473814248657155028541483326196983703329884075840767586960061373191250252977828826471578388631697063542817369207843687951127957761589316063947791741604127372833967259726814638953197742465138573910622173847339911302156997987287956979447021118840567270992620483109923592772047997706733499870791678749147187821873671393326776659646092525328767137653846993905481175727112066008132833337111735273448490098256408153557257256505053678304778935693130175988538357994578605431453403529118082214387701957342431103429444900117884544048983881499921490736591645097156244352162242229623709641609858681440726211248739396656011802416243404233831454517322663731228003554809962034463410788627051334362239381811107087834561727498142809279826849029991175134688102460474640316579543117915008984178854792079591397315739873018120641043661356049190479034592095984556659595188040988114728147472732076188980071954774040137005135686667231074564880489630306232525423558016583929104833359524433686005664566466163998714484526025096356059209459174772626921058198959389294001500019508532140029763553552497528084182455777601671894049293384428836628034464512580919364990344728891007094383153326050478463610275230784568909111327106680869883949626892659292483474922958699309736207592235981571662565331021953707161995783245389974336678457002682986687927604721972441013973271758045378786623766260639417867145238267675516119177634854947209116046875419245627832027915160481247003864678032821608978077020133272597128235360075074366299363511153984663330921726376766917161195391316061505593162620939543092176180988097350903424847107965131935453135577020966700130420550939172214934212573994697859612023895828457975694585434797992305664134315178677254244043112251778522617820207330645460402138598746896324850849491069448086523315032577464441324703401311447105751817682295019317230346969439318131975104841840075112766683695561411945664783204585345445646047621844694017474329830453347146819903025892624510589042284007256098905952785359341715384664105939393825137961403997161947669734250810910633016957151540416774613386556946476251340575150144105632523865628999319891345568518651070817523727385893053187770368155139067363131395883134318501158419997564100852007376359680813913792579346071997232621015972477572750351888699503579210936306965580630982644207547170067292231989157592124005634747964085898705231984419783831404153612919015467871970825191266565921597194705610444962698065053448209909548206684291589919905656269722155687461582587583207540857062649007059342481393889455896100294309759784129608222953652302020970982681051833749201991431135330048751093530526537709399646451173800212760729461395908207902983824678894612891736838001532764613585465046873592967541462791872931565572452208404272926219517229775242013737077160415345576745283764832611074736388360173910282099466300191105069754021762818685476830802214139262143511721334522543988983252885063122964387621408217338107466195510211050583052337651258010588443018967153441871782943943068187184881852112740630318071414201948153408422231183936257655020022598196869305475888644940553419226484178308744862047283342157211669764831171963419281434983114332662689119268766076464698646262942761572131284937793690014087981632158044845560290267528427782778542793263438626495180103673146297466465744494326988995016926782130506711159965230138289428196384714105430151745277107848334217989236615160607633708268266862406542356298477461121956509533488662664262775451737592423552127787116628512639121166891780122136342175271417273525934779245910668520310312279439886988714883395746114784026895216697037430955143604090521758154143864832005643849030014168790414265264734684096433194808335146623121475158338803271831258603048977762167285432923292960426973821650968714051813094911390558362663402522328880109154068859803996945101009638146027692089543297585400409125264722643171330218185573241762972168202375210763815955606626436820382055143904321170366321018182525652477489024714445172530433029718218549568165595267414350940408148137814233510234417788269232552945509423845552890866106100293656976429271595421725986897211296050528376601567169071737394214692413716724241015296757833312740816668122094836056062799051781594704705636380217768110553506203029270588474820076623749820804044287842947586594102142306004654060607008312937722959116470359185048513564977660275705487770987242224820209018091204448830304866779742338859552066547987201592110124241543262153205155870700186406679470088381540419451459256825920697006267637353733021545626380219432438855679346071446944485473983362928325867682123836942383025978268912023245706984104038052069094138770831874253777715586891346773671054546423187083899680391893168749273922655729858864640726015715045051240771605709273843203517241339424948480309277271094440446174895994333126368618676998286746617300514896514279096676322149323170348061627250148561070159755280041560403894710422901705354668456914630124938307549839235172492994996100727470045747356920915178340628024821839729604476825865740497224153459135309410623251581025171903337181619773288110663924749015692357111043610653866805294275321208470386361859974786769929827760058133314242799839403614081863775197332872134210279939916347185169238783663943320457274924796986608703962444433042930934654328630730341270268493356818824371738752070771564193278757629514360490621160758524861538980304379144255712690064602552122720131492783760499847644794367896057198144545864617436833303741028913158250590730332862632556349767945586532576807289489594302216083475712023139858262864464381723296643953674728655313494807632618957238472310025986669603550968097464668642151136911340149916333786149001871212533128104557991428861795476652400428217001258702786669123234069829169550055387937511131368106706799071802380685368894073443282226026137208028962828790812281218485349160973376489340185816681086976552148469834960365274585955222090498623907027907497880981996201705524797608423013088257652629152783567650025970668074000414071007594222865091503700450866053749538651783759189336449962218615306923019618186844659532290056060531275362227389879709575569065969362707479805053305754564318314170553044876757141235116990702994582307452355942042499500436145785252951499032616093143673266579109443787001755163144090705102307323693240225453265706874962611746438533127906353273838846927792837104670411954009793547384440162145821250409776756046516058552228307151844035241780291440846995253307734467225127629488547270142712731130036861266172491282301326978858122241521923990676201311252474725673707309327682151971570091961247058758781917508142608327336509319011921825962174871751625566345065753198436170080929960713376937233041057573344730520838531828671419611140935075357843596488323073081174414088812728828651480914279451666473212371687130222302745623040876651390601288759847484655975308390251822872427886538207607200773394577000642376915463048411864888105404649979221630096355390929505434291122403283695863073832025904380832554880937360201126866596215862373897363248685983275499856019900019613710831802821620311298655369160899696262336617986301771752360044728130601636961438188915751573814081188469837762772452098019579292084383144098652422849138748534635200383521632689206335575739595798347890388126803142820135475155932889125938241886204758216580291755245679165657209068421888003304461268048208913593279598845081936175759934507605132936797093999821478560916271190510628415158474216291895617312231354851145395855968150615994768574277575014566162035616264567757180139685237414460973830912261766534784472052040470688425756993689737211654906929509834084984976705318657606696598716875099827433901606143519325844546411853425626196459732479387529230838522043961244880020607611407393217202846437183607117525690940983312769974314439283765086841137141494689411914733927858192122045154603723408836352242472711434245863694707912632483136799218487740541394442764288470060113372565608193419482180916768300257719321625453155362793369135379140982268145334345642868531652017261417677587204799481142839176505239164439595177067034776256671562007252170065725015598631443398230211587178967277533058218381126425601829317475648445482331472322168789913725429472240545576786995363281741256149102997401822177940265345919976794318224497720955825221300693778134591404496255971210237728689666101434713846470808378733316777343585164730047831624854668607473790442359103337340695899092824235548740923163061995913703924722536604852237389312889051727073089740771423743226287883684726432888982435640965372658852534538675376622481304428963430155384605785750234783154070385608796419429994415425365780998232891621027592197606397852315815211006739873722642988609145803244506360637971131434313171741065744968183219232772081272694821393436046328177880928134406124302903272271669897988709805937794188851094698691818495309463603469615452689200142797724996420881925661118839889292061768987626227864158396232250100728444158861815377680149493413243243450916005953245123342918310208006749099186295339940615829065704682469183155018412017110498916254531083011223852309023962626034462570592481392144122295996787700281028858844732059632621945419522164052233845791995070592483109979074038296417825912019184150960537887941375155210005428736811910780488070657923962356993746554500311378507545749534733508305108382452358626262789111990725902006227015722756454448835659908467473378806844274415403894214848693249687322945561868935451001095573301843857894431937627871855876646087874976651355745742224611553641687946336398770485811435871454628343549817212859259998234250488177921845745012966865716273923312815744401824525790849210854469927746018956421783199613683009726306252567165703163612082212380882159010582821630682957810553211820943457366742354574620654109705391366835739421619446055728925070260837257556627071728133643521141050410225940143950528389895424850016592101697184777244154366793129201840848531164252483565041977928435063361150679508731551133700577200191668516470970414111519483434520293274276309415305983193021868993149838675730201436663465669827938084932475985670409946474827751384298159019146508501579970517226884903217017215443337368534685931001009691837143835019065836448141270460937693774973703663922007982801093333168876509158763091525335596626603658364047328606362044135970496621241817590078214351827870779060948196538000965036647690170716297965929073001813501754288319247022802944347114797150352258005166066277932230023236211564387931872579750515139504327616191606234153932166724550025316548069480838760916383035539807649385409603738225186636319901233515783954963585856284377905524147452620199035281429255644085440640558419776715991386990844550066209133472025311718916884379891438823141138692539185798242185370665208120736516757117171542260501449279781346353457420956276997673189069061038312787065201086127233800280753114315517011686639984428889375064089042547326771298139915083714468268753137028115054060623202087078976201592389128223642835745413679432733589590811874834124031941205148079463784190000135248955822028241160982753554068079486819769127024032955143122800671883772514171679159292863607293748819623440805786208788641435418224685211144103463315364732080392637589071416239443691831891756095658527876483233728101393403716592233937383733876045219507330141838141450812816826003619799376301330746127598652106958075518392891169330624619135842188192040162509033926448560580610594877044612540151198847151264386523363085912742215679633300284752134467984346969163199420195336270416552794868870816756020891456358619468185707471012291411606488732026244170381766214969121365289893588706466456226147297456722473630485436558964984352135342744902247453282596126961771360361554261913108937569245577638450770893955819665484322856369317128184099003954651112833323057795923993929106724336570322986861216110540216683249196909124852376226530874799701702942496323171426418248265905552138783549807867045354096469805841560963213199015754337661519317319067808410153207541280304504808443826013344198641053515223873037739064736757662875782490477941289134357405465466467144047683470514035093726606462418620347379966238100394689229848761193645956099084871353167371307498489671875123851730455609778177929118472604759078369838831593735451645942850407597923685093626489931814965429602818390661308879813435371797865090385056646111882219789792457015123395236157725533699188701207164796649789785577203931837662314862502686938318653256227397510199153144006461901730999853079602988725787002187636223552625309677881154432831587786750729259257807598357225465547538294436838850570013843391038308162494801793367298342627205628287488275150030570045452533199464823600268522812752950509260495209275060575095633225565974668588873466507404135381985989064627432930443444258992934626804788434895204596256846371162654454373631122698586411259311281222676553842599810144373248703422474775979729510214220075875472239430746379906887684857859675336945041581646868602843360324075863316170507781469408622539518654196751054991003890188561838858674747553864868528555546838589762266543527145444707942380946957075644156246505943200285222239307055047891604297539964827873375238946399045205110888320258575949529052737646652981049412925922521896177180896386187569177060279258420914337140049474135937514715704830166782763491546768464694355378626201118624496398064057720170994651109063772786545930519297173697806560919844472448565291661605305434418722311685603395820928810064592863824504696652766324794998301941403477477338003345995219446157939383273799660390263981747066417549785902854920051523385344749095335201904248004690407665409200332883717410490885220331462544247257507971126399545930306761453843200120321348087081153298309443887813623269342732636080616501270698270557683865751378273013400772632824823812306292471852193353241815396107047423587222415349451025813772194377748166845965988658352484069798717502297517810854929824892365873624445095063137453866950183392863717639883173241942011950131210938947031694321645872835958695590007343752246134851927392476529031496047035309153532103497068215149598706258740734598195665148994229703203948139684169573605032070134278752728851928292360996471169042759088236901192755851141151005923015378278270902234061965828365966647465172927558009672239082170344132398852816981339038243014213331998493881468600586484010835813858529046450704419674258449776932009357807480155595229212292057584883644793478451029311879033839819550828020756497430241882587742735925702195261484197895642911956666609492797978669184802571211668842157035217253357985335640567716381626188113539510504637653825805270176107194223643702130302389154293794408828712472604807983365806180890814331559437551039822781288489153788197831091745520684376282069615056911142435287360124784391606644877622541033842929959836019955016070211768204552850610503409938454161851578025330882695018611625991652867137335085075828934929385502047746542541603407083027184032586605249874246720051158565988123094340163721298451726121220870189319456442157167481222135264160248165224504931930205278554238028072673327580130765742707975413564893588922831317401934455024704803716026441326860082795432156365648422339168481856528103163817746229561787003305147985278235508808045374138123857078815474332803467225815428103928747052463030567997826461428385194297700851864676186706181222372310372027716484478760039664100277564739107784981699136193283837383486792459830866944732623460470232886388688127571687671112271816485808068913338763050955961480934001913769773974965519015857795501440592877049769720371136803049233812051980261511612762761807197777784531905597851244723359972636967836402058320655012940996356207325181712373805553435967596604770075474489852858105426423962288695946086514445284855900043849718158067824720543363262629406579757704203979764048444252562856261503224280137103453887265416270348754906529028881604800820375539905950562022907674971172744072016893290884048015145079669270497171070907962890389119485784638987991921686002754757858908071837617596618673000357605600204811741106776112854114479160871358361275293760103682698942869959443520995210823845134767626796394342715706518672129630821344950214952882678019150852995194101332877876080398523905834899676672303358629500536273314750906138097870634858748334982858268069874491459628270660540655408234217444021751332382529255672215783519275466952404179245289664031910466870999085648906213475783774892627085873189557279980475986863720769448815451331026283685333783471672045717347730675699106483728863471952574900645819699453225561557769500045729865625952866245725661915064186391916213086293418874937442672614115685239509161909897974995686602523559207640067821232919656480841784636658989576344385843110181086417421345709755978604657992936331123553457995545631844303868401424066782622986986336622994211467821071871448231997580861065193362916541291333660875590803942672206036552893890892596042321574105234963995879802275771372854318436818418154437448793139019582710945568197421082952311821251300368819575038610679957875899687513779251273976215127757659024998117019630179892931170516324599845226703563224045012046699517530921618677261325272538986079757804534970260805072051904429001245687614560747196041429547577275419143524400398781542044936032328146948042232834959477100576564757116414085560647767556817811844010972339988343701142468916951071834562399240453223442985022066683357019155273391377324824186292102202580556768225101328644555425086482679832834049953448923779465806206404114686579778745224113693141432272681023584524760776661834333762729259403475223432132868020082501796253154591224635130450503058810807164685132316282869070141376969061818605513710253244539506176191007844822742210469776132562565606002742704821556249690679330044269460441133176003342912881117585622114641658276112840122708817376377840099087615377519895854819749949607373963877768254052865520506747491830763709338953705842572999746448776283030698820243720072139525639147346351718671215956511265259498352298263790727774581196518960573437720329230138360544928641062048575704829047810136346628069743337843987831466302256913974199215132496888625532299842591335446276104307021242151678896839637743200344058871988165337070917950044442218446140389524170233272841352928842134478043315681549293967894447637070759061193121497085047238419482226279678965528793157994983930267582209300224256903640086299245082165296777372126851233991850551404787878904989674162797255129694787688100108447419329090563915494754724254299036502810181177945784713474862728070462877604104485125430662088581779147357019444299470231061261604118304742033811091600946813311793101863370245164061576182992409747486063711277094771672171125116152840124849398544042008896173821473501910938170033869054106828564414850345502794965629899884130626555506389397545620001851964196198859007119486776531253993880613312741530667620055006543051947515570638502024812499928447418174275441279350493465830923860900749300228122514716261381462561948207361569350238674008138079558498109154454994921121454708096188595706202123672957838974037544478186135580084029013411098326677619819309680799945105565091012611878503040546875448458515456536519762228835126659292564398983927196399408153276385839376170482640018871570329373103666315592624986104525165778819312794523555079891885653574266106391627546378307973238508624283259650238846465942962617596582553079770149844566915869690954232687156601368380579733461404644504274970125190525094590626874563149516772675162551574733998469986844163378621534991694800238534434251601974516325709807565930240284901660382672752709544843000440382345854362655707489685019080685349807503389698241655261240751982121242437869675278841376523672163805078514410980866649355368761367042092857972186261844966920741233239654068068483298459861458083716739718045353187977032819015754866364582632808172826831148893603355760634594090808405626044954891966035658812900108459198922537590388180719104878283422366154997792952574133089456859588406185891828042835711647643941430685654248891791875787854746155410318249212567575673939266325051779337598367124642792235444189097587143142850879353626678919300228486288623655058298593023605879527024980231038337729025194539370842874136205464743422924042128696678411535306223007214509225570857641005365918294179170444329164060402528318387622245526833534083672794947742020586937032086929216197020302160185034640124633635886636657476306570641327202370964815655073201345253050939368267908584859824385360697992950457928922447847597282583636744044082882750386082923589043458732849327346409908843703498469017941967759034864118331604481315731986956912611459564340212147815580216747914422923484210082135736184358368560464518629650772977515034660625727617834633800824350834384658786021549439967044644645657566677998754980590620251718439504134063544999411260340450996405376633088817122026771758491448975433961486666774680724104401455337259806306501222121401873080301485731586692476613457953256844142607495298753567584351554213471787294810174195440063683104633694011142624481099962234439990262102508499822019820681156550314966414573258302315732894432242174480368013644247956583270909472934162520453493650977243968138518515596820087879600509012677378554517262029539802500133776958578897791588931348437944813138460446571452691109518309256106393052889161564347863321417938684183389191165826312319930853971288736917592304866752825289133573794743601728690355206854682131964356102342111024314156696708837029369098490074154558070899049798509702830503241659880974370793950894574836532459364745071800881618824625391364819576507045438478821250489206547181363611376284376546204412548164156022551343363047711753501421826141768113869495087885538167643877012974943254695445691758016669354275284902349198816379699570243137549285220469511853216896309981224662525188791658633589717538197888387782747552945531673950783908350348048889668994689867258506671053976393756827781713108049497708316636258665674545867248403724474042283210107794928799764129314854388835414459143540616504115001089868343087251093834269502416837745386932764713310478510790142390578968914527604145145849515534414625108018384580342697997332363702371102502504477939063628137748115424672577391531957386804097648724732431349148126131271395919758925335380115348188101945381086552343076500095854930538891088687289188342555053343370860536047993372086320937158172587365002532027821832738255166742312147122805176018547790561093341364761103285462136012077963414030381860979830583643985601804936351121512975574502568142449973800046115822641417598715915130253578711620009464048421506063805259734616648653097682040818649500945593613498706940620103174373402283017523887639353869673115753476715231155716051830665336920830470252716887972889063249820118393909839194849977758429120758321130853517137612599929991123632982326258470967192207327871612387616532508224633845414045568522461515909116042470377891530173739794670884329443470075916994507036755859658794903505444103722604875411178090115615130299584597808562395305526166178527928137513036122690750888895795164359596165711450475643449687619705672800982468577463869929055024775362421585682068820816136710023856785304952748589788556720136194308983661233306925740465565148908339332219100023773793050997856458960605342234618518446172736929604768279780289577389881559073600886588557194289685440857541364056017489654826682976840707952207775981912743879091134040979719451608427272913071204406850892242861273228088094374414702467890971388241909193653058256941541540715966086320728359377933348240461156598231576379760031887534667735535547264529497087650955417547908432938743990275941627381744743298740419588376104275467213318468690736441616506034555296977621117915551412927982269181127922302846340277862610243527569734863384959686229472818205523382318744813547024354350415868222669855563366264774566157937483211221808541759859852531837881352826736057437832032063159426999261821974824463952207076291810985028706596066959531344956843509921230329535625935417388625409324274520757206600137509054391833453735936856711223616906367685087016363586759574098740790426106547128046440650485402470321224634745936536470288601989577766229939695625685369607198655533711414528743943313914281930187358563423435202549070982557484095748212806376477999380885062821606296340540324484913403938430727224973679532433972218701809344976668750746040328367121880086346009446547134205288765692203793732235016537293729059111024859119933283897258055910065570582940992861737170766621850579974495903875359891114793014488342488149994270572321180374743007175508370301623220110838733624627254542054223960534345360676336945005158272626250071518397400607657887987648782772031102091102137415959067312571027230484231331283338620116122212657293550713728968825549141389322926694200673883562859840869411659634007349061883563936337499457464164026325146391396809619449998165857161173683595984798581961734388336130121038988561344214092131744320036020784251637461472465377136396443671398771372994363816326783597275993860644535834879075504624184456840498708015337453450384380184074200802563393322928436675020731439343535559941343370419415795819817370957521601128315936047095492885704548035733129732127245600073679163071160995488131505332989755257927416770038905674875271367786104090280174344639818623027008371459142009359052961305046366446007437591616859127952819470281288312226147395131627768253535915746076210417482717314842574438268365293462572618737624180123897516258859467563913467867843117541217599521061122306951648827122593227323223125332930458279445380042197805934009910124622643023417946106289170994939861158059162526891053825736729169516166648888960604976016275032685124806130944494154476143683787016723417149868084045224882867592926995473127815402847977626046844721446043553001135793635383830414498847255638745176460011822018788762914528659510637893663558906799261504373452779795298747496061127465555711280344981119989659214677033929815268731459237340518046509832248005283701562179753673334369550015566753286083769295851284033560092967269117886308420556152778490605396206726135919474979919014769688872014754523032973829586891076092646324053176654822065594558369996361551775429908516932486653569713439738485542436331686812148407230097968703547220530654883126867414947307662215227202942510658416080500089780930223634093597615790876458615962749776924241899206171076789364881690762052526129354995617461165368100164017086696950351847031834210423467488367083199273041988599032579634474686698885173160561035224485512691956227642671978270373217876609104148385740231725277744944253488518405723383859218977085762996142127331068357900225773778924788263209810835038238670991094637016681599325268974509992072845589626068293080966975366346761689205199898875237738487667587023724003563016523786294033636528926161277808157811099989396117830416385268883907758595272849754344059448093745234602500246377942350336879057656388372236087531703164565461775416837481355936832989098576999946405320379247748740848528970656140133225345595392219318745962957023455014865316579471599228240044817764730693284287750996855496191032698888820931230648697198482364375234195211051887186300222833051436657248008950772799328121765094122164443253035804857421644417406523305641450175326788901183230673576185532458854222485796729625641792845326401287411256642768129890641241966678411236838983401799213675459843483180545644980395448992835223325319420008090383676837888048831649149670594052292682314237906246741035496356080788994874239692671701346356412510829445066113329017028127173411196919080891848428384006589367350812315300841271482715046557362843145406220097010016760538363974960712533974096514265800455027198713884476531076968140901133545687046006632518348908349240357121899998245427972539344480655265939293748921178503361448677973768523795751626807170954231900380928918579986714488198189858662726197861260792369517025647504615956735278476454346234313883166093215081918342740589090601775355192726072452547782254078369571973422649344341976231986419707151113994856157225921402172654912885225457820503563138046823081290823163461201795305504441457052296689731019966523688859112185332350788999713507451707833592912992193488589583596717238445224973299542146961387101055827759383038223554734502608524817657664049146224326490946399850917983517548908364824480064527047275986323868545829662205415860789438409344621995219547195887197263450103824753409117533010131504854490649616030195474010237758976591026536406688343518138999103399680658140439995534490585640901590731073101915881171944034741323975180570002436639896067613251002700900685091958339322917855154436590138828193708270239863068551771286395587435893638967211240949936099029234754940122240702591721084076014509328605965509325797187899739898629733898073095441735999889060972785900964567260503513857964330902293625893035259990060100024671077617724190565294447579724525688220026984511138490488053651934971464445419630367378147550306394312375883688216902399031761086023460237935010747517400494507414951364599195317946354736839251912630533959089378301971359930529137065097778999784763900179491756344001090172375596401712713034269014667817864448147069269329970854241402566557423309702333511880929308108534658491691616102447358333610824439203225939887056509823754777446981681298316917847030459016182136032992084034141745981223079061500129194607838323417297030614801887819998073107026891614141603008463059062209497767008296238281261917604693458649737492821625031882246526787355438666774811240435015014083693475580614708173804608206399178134569351477420405303640122983654265900018412062648550445518906307686525975196378167828048289694293482186544600904436775916694348105935912654329885971893870748865208474759254421412477474696476501556004426568958402403600111443683695415684965754444894986296710666655523453866056157541511498799963231197619169958699407186720606369635993720538382819297021774840913215431324884710120468023530032708835872709933962284256020586027102108109549196161892065141095689164044358877508804893755399996089848725168015761974756829328002652937913236839749233694243104330011342790320546421651260256088362758010717417249457958610992972198760994094150796381151872274561137971364261970183762538335591201921059270650532820360296997338378288621074923655807374582162421970584419175582796662564451015930995475146558163475453777316450827831396967466600495885265131330700388056053433025759956852993536839161399276458064278061086176288407098133857044873505507925133250258886424604145900451718415705380741906400667677409178653321280182359614476014933143370003498102839913791621406840865173537170286662094777656906779252311789836559027416701687755847737687805525172080345848206107476102704848719779850177368062562589123377057932165468850364044167969723805954493674917686373371958088725632132684946617309797328512201829242465265043360284522153540003920735562318791902293236765460189284858088415884852743904330974068171837660728414532708165319899214132814789226803846073746504011921333890433584224394953876349522760284024622907255358343212533022411398055562319232362882411325481397784787229712342264346832789087738840695533457172226863664959125808293508310238776607883844196417328774020504011163071641764502275398442754800055811705333338662980071976485035338072119806796001638369211906658219850855580163112597876183701489083948605675398988018980793249978608070229686152217643099371107279088757700649134559324097591410193203976349468421049477262066725360055825228987753803521902053366105780631552666355004836647607438685225373254911086580603162019553224439247347688847208182866400022746740138673144024423717073434701824421502992638679242135000599373022593525814706697558683157867150383797653387475630887518023126461652226916733193827827884820037761113853368273308591240708408662948908369696881603257445899400111600856917155746698546919864813267530564613842200285721640189583692014096659309457588717985156563870321483707015497060678735928534847853257145359099761413610011636482086118660721707954941604616793865988700869967074378818069502171948590148659623364555654457635356832183573497141797732326220353252585123459523457034060459806925945808504049932548199163553306005979502244817210232339066290542315159723486106670729723367915351703721557927548274766010021801654788216407483275618193784884348794130517599444103951317156891177095947062295985436388844093056279300943172871337048699244076459269334472562627833257794676656648198402738993229746147495606472578949939022932377959487070386138061253774873760390115678413884035163074208440293295488314337427552570852281306287624435783197326350759404743232752534068307749754101327715772590049884883527005626928881195297625155018293003637705153636581726497675546836557275294629908689976098587102975519447745096032060878405125841791014774443348295723361895760981888424365184191373235255248577408947311068515945713594936475975153034856316653511845540988260550767128404816317440613918346734647187359969957447100242455671334577138821514652197497459573413879097171552816059399278707224094097794193111743495194493999217763867464478982610663478003373977636974679492866907715897250383338942918276796277109818174628517540764608870287666373765385868690435918536204521535298811593741487317414054863492962487545248548538506125270000887815499550599886958296295259721416295359834582462745586593072817397064023711692132832017620345883015615434006877805936803745353141887725208188130341703053953598378066138917046711534268875650651905645487505469791732638506526535455501066980499368400438082875242248455309558135106893852712660706316536243730684594826007570601207284526194332577037057708585290967425782662665319697519427904300851894728742686426578757773867926822157278904671660014548757586648171295131871143232658583808583684493442985863554946336943350664201220324585101887882119685297153998677914578740830893350426916394780157021956620842032254860357289445250184081920122073233055714741663430357009026308302253177287290843664039266346465065152721198967560785109900905129866538557503935093847494073969852718706756335339711652818184467136924576308226679929516371520653960071552895922053666631994416957132946248756123205425486561018933629691456409520899593246125099169274503399922638159869548669535354421718144403913527141845321655288030842197701334743875752574987569586080098356957577402990069354610559770046913309637508897230799930403059959325879117457489631146017901776346579457733466673668557865447668384033003165462455278904024102793138710323277869109866857811518764663828870701200557904678028460543172771424492009863699486321536885268150928498891139504728976528298733575824058954280408742950804653095405896938741708348530452987751985395220312119589476159685738752670144498449454553637692141635131385708141295025308545150172606623270439792098960137303929879267828758913015426260585632620211314950375375304919249247111515248397478116454619930577458601313223690656007685943766772997217216574264887824018790126346122701141981823361601476926573519326474997957142392732863352924012379812876418705950294937150001880590195003114957444925733220373950169797621931099188347459969331288340854031605872956039345775148308001241489019550348277492096328502426616157606015870710016241409352001493805002193899880990054841713727348564266644575795872207768121126023122305178403142629318561823951643359536618179773030490194870096996306473650179725756695117530375267594615675371766633987755821433109124651010614592392435245310778195878392591558875669092212898291517174363146867626695008627382307271315165293551063708002649426272824357020750745087894252233502379437348612057402009527348003083953397271790425614133093310170654091013624261035396815390492863391009680277511755926345468492160507613826273227377047101661145028624056683173690244734346429710073639490550093057376763266920692251932844356877449845614096315709505130095474237654293436045678913615152039584344894996932303686640511670138374478436579916722489516097021782010510033978159353407552304613102591631524529226863350253970495865538934406972725524362034477172650300117273008592752990652812782097197333821963775082195651976468708240391360444502191933768732851261982156634203202056781930491448652398892982579386160092053352157252054734409069691615412854592733387614517508283929923554965431888592199063792165218642773827139922740323697360261346014250900669764316614226607076868495865490655107900283623852435518669907395745981032780930423327492989601278877440181226107538524257126923524495700283458757626765737087233140463342894268628832747637904654835997061811344350525450200732841395923287851042802251576516730613211201708293472108428423872276337046553560478984816673521481233788423236121183149930568538709234649900738626513148699114895005721349611415027419649750213435919072773410374238285467962511499619311716541531337216865281834986517830386693246740665879868624711879186201836586493912055762542943863733681714892224236879755821084069253265399832512899460010604777751130767320147124211168211387346538118969233882070243748051691704330501633303115379093588861023836972521377457393320173243476216276846578872879553387585310139869810175210220567453963277288488099168962403775140750666372255870342793194360813208895707050086423923086834409413692465021403105838801460895959593855634731620332508810007776489469332516714564120624675664746920183970945818419492065350565088164523058956278975459682291106746134733931762424509456344598068404770914891314118749676654310251370243135252123484805017681600178960172325063434830120730747670224853370770336613182717862410696617371499467698986308602167244374953034773351581648642248591101214608597528619363464933733227475128684330704072860428921767801193426999641981432861935322468977975976996078690909639155637040076303545432196520903552111893825094765532134805318369420249526643439659636040477358220027987902241237111548411293159580608034129883701904943902668486050002416690573916712264091369540469939828623886390748082939632707198339188938823164179869524163530152095843559531132100475974535738526885107508324031575160453885386521448046688322726617281739645685591075927375084862210980147957204003087387041852509128434881889828321906756542278351797693156090787192920926747424522411968453499699111222670010970422253594622645992289113136222296862700146766533082567563471037195525134923673673526923300799863268236335140269595881926773744355300662885266589713441515430452097477793497280729022317165626119592800723534129202542947452813156951906494009719143378829946195732158429405745300877050618279007498501063422738702426866150649264592074510566612596371378379574030976194356625476646278547690938573972476427593623880976657232091201127750731368896428531725725218235802460787804372852729913536239081485884438755438566589128040847673800132308629522527711516144501888658869715510655704729878956510656278015662444464268016265641168940876458255365225967590297498130036391488624049862428296916907436303143221038732905368551871323344955748894097767073952387868257646991449003898880370190390443133423102549352580805138477214835108778068515368792586727476189801475069420868923574034666646978187489273574232138065122572945882767574941625014395382746797486565539127567667025445783493803005104238957730075060540716118871461086639595549705597992322085356191410560622542386005171886008367294983040082826194536321031659571294065244352334132741907904179316397511614284961852905177038588693875625431801543400442824253583313925363649357731634355651965270815815294493889638032956955582749040763841579515484670993113297155227742908676611249016669186271733456515702221741083906894732896498057756703046813770652090535430187265974122476761017732179788027277494637529108707241887703620625396602933046700774781699288257848884040397724991742802653453065298331178389232901741921671864469242445832309133220938003128557338367897444849990952691144099339513453691767072712033294615337797687117520298661451049915634211166439713073748492886891011763416898107643218709623564109238438219835645679514671829671599230054300783256498328194060089600517540981155011227136483372939208576871787207710491138339714132371962869415937349867884224536792966893081347682319265683734540566724588821035660504700454909826852764663228459223769691137819389255919613477898749690006358022836760547898684440408122320227092316491043484873183895992792283318503669839501040592318933799368630932574565407415759714759817379239854772309459206639352954294317266612539264243637581739812392006538588627194053109085014231117966218100227649601949625390662974778424804160218804307409513630189243527583529129381915155302446620159795942380860341797894397319640563370688321448480281128447209922870992380213709037570546228943037296036507732324328455898949228593958012767269378501802649355925083857381755226861166716144808792552259917748674557179626223459746630460610024472703970573488362516240818586915642910635741568242208737360030441669865946437740970581991000052417210212821909569457252975032298768917494416313120150577010152683105300203670364001891248110408027294048144632293625220167499968255490710541754870883299154496783829140584179240848630116970575811303397909043543491406987156685346408999001463284717595120151113594598092093929693527150723516593670234508601944851593273056793843239044866563886057999222603754411698570236373715475111419262050778935862409936241098046696084783454143279821065636496190818573932028780991783416614286866932296382809257519520778856224767259241325383017802328786397529662908494348674878200296875691505646043174118812157702204947835307253921272970003437054568175701967253781127684381981759666170834813064029107280005170904177441119351389781184381978464348878228162243178721729957810302399591867042806055740142648542932102438218998387597114089853605271300487941627859789368340565422433626350011108498121217277200088940196241234582858881837939775194365915825090298098725084039561079222438414019724112312909337690079669420364066333444685427447006858134981819660041617680194111273081375333700495051226205345470813368236263324825648519284821578733008177381811620733628241340038554217346629704734080975437487569165074971913878257279172564572794085377899032039837271137077467078223267349942102406302161060924836885511316374499243176515218232491463702424716429125169163429510733166562626234586306820686581557277022320736497564493513040514678539990547819591854821096013402357769356700740781110026528580780313518370603798783947068411320780908838550173037235440133102614510714840391420261684773506698184600919772912683888343158915694866021848049715776161470572238372385023310017247769149008702257120235509851138598836011037512096464018160272489363319020577903897261053206515323518075713251573669909084472451015562979487638620629779715422769822211518235694096115007777312283573411628790464370232894271383811356277637312141725016227670081231843706167683864787693938515529251816302229466605798338345689758462742367110241457530315696408924590865215645892565441198749872638096951996293930580571196898894387061472157418763987795802889426911768819346330577612040196043957221528552951197659987310616211059418040692146613988188761815771729794290136559357729932879949670720099645115475106521184709815198455048875315341667898430386894796803791400157305616929688273391348274953633859352870256526935000084809183399666425193006905716148576054587836549074349787962825306228223582013290713337343557146134598467600570402651567847482800220777948701375746619202593088283409738619957761544842370746179879279657097738446244062883825370059075455320288889280961503380863320589515175568547712608135386334348817258545412318569004996707231172983608350245916659818860609252054765720358603460429329148580698303195412137528184644608524477549855191318976777950890792319903063662747698856750908398958049488948465456438549303266814341305554143167827855629963251770341280641452759424416935674998890559012218329981126196504396580554939007504121788656656514589080261565302154383371207280537791133860815171389941152503471324203700174158332064471412520233751439417435382708681947794002866879526051794844099370678299963763455479154805797714926557308028317136972733791172787870997715986205097521919724078244895853506313437833553414052670549767559067656476396419049966596398981056479036314259526590255570462063777796600488976308908678159982050234284743648782413419146972695685538657154290140469791270475391846170251990024497751706686304455578720472175559028797339135539315320058783568067529440022301710845576649417080933248888874787230072534759371461631895828138258629308283743494983534046974839428799963947109723848589062154097713976493404236052461674766637208680629464043399575666894272628374593594313594790040871624824326434613408632888131572903459930514485605447854006691096406681621207283685031480239977659818604378918863759022775549614983341149733512785616098817304501277902087971503806057372060037559680827401823824628969053335385003549855644295224509231440106785389130223248243413628219325085431876745040028092622422000482999013621967118341290762123823884599147102540566696536250196394331084149073609574609783588775769821235475410494954285472839344388842367832521046347463365655089749792555194594016154154737573810052390756465294547750326818769608451386400666880411656561213277698030434134590400204738363679867187293798495580496915947959527489808611596291058170987621944833907217569213561202146031921043304691763056644026701777088020841398997466578978786738291432801880613040000247676052024073864965245619307297013002875456302415891683186486657587484390071906043350511783779890475628720208198694591118215429449046917509006089953453621606402203170273895650580259836022377231443121640802215413072530765260610285687179548787591744546093488440400261994485696014882058765410578349540385843985744347379688554617193133830112877771464504848411381861995072480173210892523675615863925393928003233631277696242013807721913444521682282534696921891811931223149518773819646966627091682178596705561541241095067238623900881829047840581068672362526676693498746225557136947783017530645050444988305498852294495276884319549242706927632122890258833538376260721062885669975777010159846421292048885870325373132796195011077477023258952173188725660327701259946055222595109486531454005314381558777113726392414756133146302041759418129036223212395971738963272226417504250634851518341156806278198093699972923549330418578533993886414258692282363633206196994450540163520773055433954118355241345017003514986409960803148732685713866494133343535209026595741789273478836940424735051557774173367346891910294377133682868745071742225799579429896338860991048728951851351663268964098993661593607729004234447214789679156045810225417227226198036935286184169938923330783230441577767747656486212566878066785304724101814089986784415854102854257278640703433399401290467442180292092267834019374031952193009547938503356062385337265240077794203304461522742775936359114669914587137991305314243519366299081207295938223868538984224915962339468024989688381916654884391516245414260830478286293695272099058834755185350185445212138309735353684171022734961970686523587686726056174181946258236946925717994807917913760124851916637397476530489828193130774098310425673511481281595029810349117995522745800754158239463905195309526823370628528960801367839987651935818860812199300199249355071749485161100965228643021831973273439325889612842244866445381930231874335841412990348604427541352960735732563731920672050161350973443262991535633042142209608003582331697182041990854129613219459372034649314037085128659851205832616304576679247192154330030324502244830643277244265671955913035115556023108742917002278967138968823516392838105346636476207273578624341785383457348248378818783685214754729849340898296786428415675998326023881850171951966739711500344247388731578982960429424197508029532332202057629481032929669875168594083284733493523525976033580619818592700473619027155272577634013807223246734891924105401886469828187174097666305447986012641938999869586323876780705714237715235422919013182754061693636400510785503893807305210559861617610627271834654276367572906073890496548296923797471127316914522692289692062295961524487298330890818238257471565311037703490875373908578885345907116345581065832080111321512055826107132740250302828083373014584297584476314517521276434565332722321326815821301711928987187618238300640874217392348655640508773538601966561081425068926301720079350287870114148584817747162804725717468830898880790244635350071020466869077301488502470544708995492768336593741351261540602933122629920378843467375712222388215058767555239631740264430390858083990993016888264519640066996058695973978335871473543691413165320113936628867089085029012704538742169762961133977166039388010560032339799103622396836452364737289987001239773087380091131406571851532466956108466320714936547083841029910921158109033178354637969841112351204469435659584301006137787490608421149242034555147667336196365244546554160341350942263137872369158356715889671270573143117081282231402879729974639144771911630479376035076383593385576361182896073442862401364359835977133099175483513590427498673902839480088245513574570621134538560666840544027922926522054439790210740049054951682862611405060937467050724308918547380209031888560137262562047895012358515807376177003245394679780939959148988850624866833648294019929351555377149990341198773233535549933379549276613720144773639338504958125027428935214592622765595071357872390670468686364356319134419197815942529768867165315259358821090211372885785956923662127023944997270717435273218686466954567554300894507626416940601472023701088353684184506963834294047935461707150751533229705717485238461556117708036257019389624178835978754815132309504979241659847284105414759459289580024689835550677745143423354188139752996767132001545330380950137237348493179589109171618894835206067478294674159653050568220264781577021589023079120004825738045423563436055970628332566814202634070615678248036458369087732855186063662654232255501444406534689780039388687445430960505781560904528176462426419707338126773012412846521850572442056347829791473623931123598902339461894008480989435255103087510360808644751735004467361706874111001222279868197972440994362899497367312414571006404464618342499204689038515591358507927208185971905333805145181462402865502818392993054290367272147539385898817201831890801676911383725485197504290666752906275979823127289533758679103118357130839844215984243799954255378426129680045969046824871545957244186406523481293848679002159663460364305568684734746987523357563372077035451277636956625219513632832213166839942004272118496149749412276433834523169130113795709261915831429296080943826834989269585245150216283125992012406626105861710869907858786305310016020074295858591827612885920139100666466938299744564175428438989505721485349705632215394665913434836919831274579636535293048159910585954778714494097727866101958451494434856179677794202883952004373093594106810891262798559344561615134732466479945441647554925974744540480587149087032952501811142543623145151567642388359098234892697345386949503006301636514654210525630332505544802935193491402185042636850574154510322170116346241813621655406940951823969898660730060874525058888562463685629098477455512442172282515968516443071767587403997678140078904594564735764270060272076777172153262133864233041919505606761183796294300057873685730699429690186501447235064798910896354351757891409877221750100536764711870203967105952992404445471139058523291980978968171961599893637876817526038973128167223239943524955758216733961934689668609613847189591922475680889357285559392883038476327982580898072358706259193470303087158876226315838651433285714536091720233449883192460446437919941155154170176810355128567312306568466085676969384141154613810604746088123634689719297335319375515061074241287663160657092145367547748955524169717150637023957116015872548356328677844320705450663780741510866854086347510069214683211979502864795658899696261101024169062787534573739106734090016407389413473509005923053142239228367564475354428682102208623231221176103579858814612199298279493141242742307598284537343215749556391153277801176866740928182120786478598339872005875872067652561287843115055343087810913440126619783230636689395211311391495318869900442360651493854508304248727514378300533945414726525264411684074975245023726303991400275599890497730714121160662150726327539171797897583918908344968888567077982372235289924343678360630351928843125452046676240341979053276567526578505437380895638855648259322783141763799064050774596493370854286057538854501503024943975153318227883347026891597639944380228404091312298456170403808271586537811818559293575908679153683355276560960572299780433260627509773128999680355537598774360566955316061536073882311475870184438209656588862312718086816283684236005289074630050796335923739409120442644113684627247832121818722615408013583232617021356567916477924639753112564166985791931131805937166906142684754168450667483997952437987462791761003722785404757162200351732710049234596164897671416939877349306313873310133150515608978757762390213103567060524184846579440095252284126758780219502701538876336074892028462643609638838046703049778119354595038946511771906497399331364843491609397995719091688492113732118737967638026305648102830786278335795937001564470833959234012779515315077360264353328116895562346387659847280761487550114230622610793496013298416838452954290495383727023221098468508763595833576145281489739797510048837630966061144944197224788061170557723046645356756047948054014129267423005097716503643217438983333633071749984847094077508144878756277647412523176676618441335576557536940801504938780260803824825830104320767116671992881889234761256222945535757205439509387433390571092654932912599125122105917389853364253600992955115840242894797331074745443490480548675278577525086913801876252670213298248252119761360272694523954624250668148647043881925722847391930345406757523512952561036800190896252704835869602760977314751300508795598314097704537106896298339842249103277270873457909771876096102539604316589005145698207443546783637980379237153895109642932382828800494803535565090871441080498910602680309546057177828937260958928025722469445311799421207077705787469974746541955996325247415743546536316932718763429150141939888254099880649354233271686453173238517219737401621097322532680639814664672134331181662912885394976146985597460468744446128717999682652282286351366657337846890284526395957416413794572195595938143661537761567790551869781998433433658763285918153516828022609776154571945994367794237158473257008736440150595636198423220700837792574220289855287480386299230538290228733513724921603597110279791778393337009046325439182594991244193950290631444379687270167958462871370638557960400809432084511887640602233540039145377613958710568737574993839029603681863977384493861011713589186105917118920127192009193014564783576770629221933058874926837670467247644916776230853127095416213006755336315446971637165133779382354098728492445160288218131856171114080591037796162141461193306305291800620965920370062605906975271429383241033900341216315101803574850918770589558910009136618882765964287638723331868346429059955762896860851108516341978092912876917655561001771182235079791930604363485595808193311924706357477254309964895432577105924971179927183307403609386354080093095834963940513424551036935777293698909210957287851064921853441633203093773800743951925662755588571351327638895310299259967345516551017989617003370324223877371873586739647973137638177914585802759490457686971042330375826942791321849032842098508008969778196660005411060924160482834236252877851851605939787431988566368278250589514853693399301539874951846492277624881909087511425349380387895995708148058418567194358303452196880653047878154919113098060350118236739952891094695001306696644245578500898851803807060943683563533091523053776788968910282487629863865167288357266799606184494608914116337999227629720365191099638938750675422196534227097551400411408024219539841145586361963414094896637690519065873577337197857949598465113878978962512944484482116446599059687051969404948419629339196722250566861387835412639618571788059848419951414161341020577415082446796117728820232433523043713371654677794272396004264431921342649719090603040362302413144595994038734054576031680876596443447926225019136033029278360401606324860024341484161261702174212266939201274260644824331510341594068462570857506749324138719771222913370208643207991687161140105555435023681510866436858852574284165323402963789890892561347115970697197144271621764479809053683175229003085630209120037933890446538436997166898320291910972213836501193731149310425307633615223848477367715163192087990754443226199083736665994330694466742358889466152580135301421428375971776716772913301994971317156213619724453112108431790295646042414228300150994820009104730779733393793460667722213168699214171820913615458831302402784456540846822294057850492943099724504312083712636149087609676041031936049233329292896706688234786425969000343684183174568637166996668005817704592333053308954509462216952495941780090941523288467284569975832444652846978494430161957851692755355601738040212438691314356416687474184898256071306364864677099863657987742514904890439568522211782617976572012623171297160803278577793375037713576944560273741953552819997944513905504055422904031114456591681709449698416434129248524238459891201249139146035829168863178772647340883109116871833289932296885016307144988777076317010744628733293125132789014364954365489067377770809908834242537940132442185593998497864492979484468715649178081651131164338587022149653613705578870817114615441800085363790698514928594296841540345487836305087760093451373468289636962158442880153203308225697731591135308963671737169826494208748372238616901614406884637277980342608636358781947016663455744101125817551264641217521784000033783232032235076122942869145470921797566557196306490733198960573217825998195712333844306006447135221814534001312789636176112050295595584702542108858258661697735410242442771003663299861959376250816223501617076466260944302840149369692630984695299192362594812613760692030851567234893200868980635977436310247431116151507380607617948107231739394926453823500498277750032449809256758872536513456440451046522130330074573829931684875797053437048119613642659939453994783126701636355481753081641793513309869275721676390169165081087645599877014833486451506826081189920082526768422687385493464997061117392401916417501242527671266485768321218407461626562068872784308884811004621939498302951543173496301950798897072109142870253247728693378187706651306741051370322845165801504085301953796981593929951519864748627398232803884860042525541978904022554361447100984332648604189166820952541160704522341465019280241313503010032374750104717626231676661579684628129876193076573849436860507595816833768556473328373797077116674281712498190193059231571148464909496023141998315316155768047438456876384944814667686176517225168832211322477825533021408002943197269400966800978298126288461193584931833566509345128129617390292769407025290673127321826248408796234331793987673071286106777457423574117982045797966143821862742209115058576550615025320834200474070070876828551782296593438783652993396605931097173454821121126093661317080139471472155735331367207151878748497399972475839002134564599917270180006621081523456477323849387210314439935018306844516795882846961673374557262704668517183963293177817609760399683014503661604523150324917778862080219130287054381065596212371126039399335441841603071456745555888393404717660834849002830032356184804512106841195430752943363021354602312396019212870520421737432726408057475957720333668225647062975085993974919124457249480202394173747212378991507480154223285714632294061409215611039470499764165353786736965999379491924216952411367209159795471078902781266167282989316750452108719712152992432055394012335262128378082775429189069044347938800563656317830706476846485769949479758479700643344385441601328026560268399322409834631658990241697361061671410157225472020343053078026780863020318208154834382651027776251602076186082915496165685333887219223214308090741453134715111541091416720364822603834244429386253092615897584124120399923093655415811068715053114243095850628298486659876744685824857845957168347940314406983528204451182748892820386368167913531178251363843133686173457108053171608755829501975990665672568005039069973093546860452554171931093126411514026557804074442316044485247362207259199995302164585529274336782603827412718475919861425682262175111154308874575956005546380762462087808952934043076330435663159942556355165470397418565805101679222521870320241744601210348280254281014003663546584701566047921613584284287030734322092275836009797990511813097931341447748104968609104821848463324474728443337228606984550072893734328582922829496506719041105748173915476368986317584889167999020155849040219981032010339522137979780347935366488337527366555270050818617846315738090468652558435298872911852279744221066780009046978162099102254981401125786643775718201861101320410876586638586427506680115505694777595637613062187193619696172298385350069160469414040364718390114625523855080640253155468916549928035697962059954377790173265064177978907282594655342281920629640049245157502175725105540305409152510672646258026821515054930215950925302933096667047520127773391465663438907488658901689958950892603044174401857074527217359302982862930725881225212396816039583584516922234183803600868739400216335643759657413741095926968419546605425533060855392265484372453556953763141759083940703642109619617261626156870262734001507357253886924042405877405619112273402984635074496047636733539265049429330389965675350785573674841170464022249870653453480829618023816672121006673306116460165232374733700294885247770222062385977156890025901824676438857795043847234154430964828235806571711826327735907900825682741413121013023076402631847135825327374217156805736792778553806008550554837755232407255641455662950182187524420660070374389891675661057055381334255141743286375954524336239437580947261446140866275581845944356061174650074905691037548246699428313843552321481358785610199856782671122808514560713913062245278670092203177204716646941428897983782974989559009399837463333107866732182779534407547320969038789798034326576794088763307192340573228698710765932596787955243168911443810505396807496959003850632183364746660960483517597661013815641862537010931595103261676967647442789724777745772927445626914233187568703937414918862433955618705083277722951196297850335702972894088090495666093636677221301724053896114969523212838728206853765319722897929708750707503454309149016869853710907996744115011749366975213427503888772186936929367904434448965887419605013416743499983591428270727066358740681240790434074279326435540124188866397800043042287955913567202073578000866167148042472870212003281511627588348061439753116430948437876714039780986839612398441339586234122537039786797587656545643984770623968065349173781265907059156088253980590097547690979713060075211801964684416762290406100932564470121409457956236795405156511886508133529251575254688210577574334908017802843847523436928443099622958009343131989320651597951213769626610936401594115751399769919098741510708871585775315419345616974859970427793970989984242080387088615803176067788637398504639427615732661263454981825679081512850411951158192468663512469751070853811852034552067539233823242594595160673593297108144313794352024665937718340490692691286419590385976303314693770890296435140678111255347544944637317700644759811705982466972475682889349426126295378073282682445458061535297558472191468132410763739947559904384300004338523751743407694059678442386364461570192886949475675880640525052409487127638493118156129754494360663271926606894204525776346483262682733472633260894463727099972365494931700190027693513868633282316395655683558661741384417635229368888819389621703995601540780077127396432371442908908955346388158391437664349752479387849922088485114424454627635307783224724098317910338403962250471667249939278273066804206328418733300087765119947661326260978789832544242922777570932865848835788113598393635465659489970410299640941077003394797789670448898063767221391342709128552622811596803942626778609462537012204502341908675042900518401602490045845451389198094591486627305732394578886884520524279542681339832707138680610053695519874229234808240957820075224200093513833385128743519499211540687971159044959310266736240062372158685428029932980924686835048631120511823370235768245965527044207490004840594833507297288688861285393698948636114909960533050426202065997640773639658092946216998367178763543154789089838669977774560889707122075883991713198448283602406311528670652217281800269812929091386582661381883725786988613258340705117186501420452079254206175270593546332237800986444250289027037831748272905061494981739662653809116958630268367015947702916935443724146195722083533314418576278260658503798733520306682059340556682648720548994302056158576392980801440873679572047957612587822312094424839576409006793692464346790901006943923782712380706567125055551991857102062664053961641158133494554901895310897551401429335431854444427497676788724110974195635010783829628499732376956128266338683555997627779676092712682278313738836106534369834955604517229445797938150353960280049630022640810012737018833333025740505837532875839918189287781662251376550102306064581629030773911415685080092848549284486026460798383729955276966324000018744654830361423491623744819549488998237060704659993163881686211715811667520347111614868811000620735541154093907078035468149936261839875916836074881867258808023697934871320602846104319332344186793723137967196294591919891414564030806723559547582675982825291269477915773652787265325523364548678919904602357901448872941678975339124873243298601120451637433618798093889808444567614468381817380027137856332078229999584778923185142545438574802399020753910915728514431608674380256374678289838900005840520295082235040878223102130556443793018765469534732542273229256506728094523269122477597620073317758555085560783441778265342679811556369355656407734690899556410224357588115099146975816902486965732110079484433606828225686079358900557340571913525644065669897276593603439101155633059426627211384023204067347350135910056568181448828134900540183381896712542167956170899807524417877712283748623243918472507763515046705296572373043319602295219140531007068270452283188061950109074924866690909397591989978251259911170261097990460830923150314181633656944174856902359077828343666943128080912202577667343876382049001310529494868744783675352255618755675883593735122358668902546042108080522552037708447203831929130993136596035908247778603856889464120954952749794992430324911710827395612198264447368258516742634235070945118214585839242022684514379905596296871616600985614007953123371908402630641928813834975207662519796487801500625751926894323157416125679832645236529705164563884503711116901089562985891934361643076810830015411323894400655707735016669476669434307938389162268449372936747788182208283280659120563931557020698120913763598698449264309927580307607023176292823712020006704325907303175424655702456908413561847329541427323815440111900734287564728217819381332383467572229306865498838163168186176774243474767123540775146700469888721071298766851602425197969554361811190676144668187982417766570431169555431260466486188601758016867857124840672639235259722005881467296030079449292417706319658713892268244613770032923086680914086184993277760638571170983078111471414820300280700671744549184178431984859623299256791812329533401141678757570250121567226661723384630004639453879310918269139398289629012007034897536232932407090252603823906379373954553231204434576965025567576325238127273715069801509549416570771019016496636213435096536651793113252594952834580321755433236208401756377169366631018209274582491761141646235175651154405306767307837341857375378000562447462975845030188212118914441803666441310980291385493023650054311985023943724277830407802836995168131596207187289219906403295210708947239067334433504108093381831959623133472325259820826176340555368705085205003587463879426061900325122786559881339841254130419690538995993221917235507953891989976981861735768366001652406439827715703974227836842734690737198079829226478887134265518783823020796570530758128382294199760059898853550689671779621461335348750988557395753964284520977609398225853487362414483057737472367047005443853303673706528395181873263346462226464668335802757983517473706791563302236572402008820129199159106839055613637341255332622059672857980741116267670375056889737190895734061723503836390481809461200599248426312668854273354510931483054830103816144695524801023761888011553006947057458205196163012306439234858020859033382389727637798194029090988290328240410547651839244969609377180424807286777579429560865735767330216692738618367749481665063227572358095342399109417362014563281797941999021751323827191510742645767486769532427586195836567646991143539000503131851293454945129641212791580896525343469976396054075140385698394113829976614315161506031014670887645588976703317286085254484695253327694979507458380084842974867288416608457778737573106391642252244145749075045293122141459616528141913891180479752384822428077511407677809075041785359434336834967383377421601395997002826121811356041340109964493851083581823563936019788089430833155231090695934709511069835461140245086843962010501120157090635628640485693814625650987915199148893970920036254940083314999482462451107481993436991669081460588048817703769199714448889332977377523059621715993546815003618931277719315511280450830412163083419450174986426327383844314240688626851360580999620956241937735292692388571223243633432130411548468606577440835687311036824146633770383311243486395992054384877467015638300847880896339460042691204051131011798550515127928454322810270916640858078855334723303324103060091930225379761516504262352829382773599822098579576049253553640200703039580108186768720500656076783766713848942727059833596800290141118877634755106177842317043611956548440568259585901469292602885543651033092779950913445654662171180763858850849853601741324498958188272677410744642280927573519310373609721686699899987927416065634140054729417456937682987724151419034123753616650240894692436879009196764870689980903033718307057604700111843475964135741235892682248362891290080159112166619836873794639409879579159438845394760988944134466782177162110579262762243005029979773865232331787244367796100877298129737328451127118524952180586172358637457793908458700025877143994970162425346842171669698947183347639653033359357069329647200128534327216059650390946922621118275940450733519619049648456255494070110035635985786063658289703768132019511073133878113319309543033257139521377745237983764091819934685909188942138064673430627091727552240244357769207427762071766283479784973708955959416702002028970740442147375913196778079848464501981273389962930924043512967028010999107720761757305745045985759047565253957785874877819525253623077459976227808173240423305624646410809425501571719095993101540353635477409909455679214086375137298686384958205687114976966969904924093419838692481803905402816077249913410267626427632015124856432869742382557885333363892358258217682496611544231384756167905485775335053095970530876507224347306495394418546980063405273845548430708677421886970240730160275115150436212044465258353997329298976248554686631037079223690862992717998303638869556332064284181340276324545204342867618436520846363779080274660172846363811550601737650530806702339258316988283988639250859160178452286050981495095890250371426244954432031183783592968004630035907875681856288523893810883602534798560074890701812393608070316139920638888140323778469283188367634537286272219096564248865100184831251761946410328528689141532959221427925866460795299700605892187083452179729809350504355971231057461981901515414992727294508715109157762904342100330503795419527768687603728900641608530627497341242524587047487775555929177735388243426388842925197563835085288955441152405302028134802507961347292530343542541496951169413860195841789955223620156772765120446090825384454286774752203153106337492319089410852603575407623963246014839608409316111320096975015883060461710236577623797032887119460168233030312578580815377762158460657575223195606040878414452959169477900279877346533402544290091003174525777971329768080384160229489318369914115699562209877996985277571763564461754464520893416022588376495827901548598218718355161272549780556769849856441994816382560296881676137412164816295288730613629398287939260150256286794452630540876939502334241815600712152121095177871614887687612857725903593056193375077389916386081114512261152477058280753558455179700364166145028294971975806018829422938424371590793652444311182606355716630227532114098854102296258553237016857815300869002775984866769105500219283712489633865571056117133407029859337354255153553338498417911472161808847315187043932547773122252153699252025727933829425673716286011167750620683494731784736186158680638968547529105591745589170732521441179326880903272082171985349080070966999558951577047945739334958253671585332726288710056864685782424959375214754270177556507662492398019671764017763755188843242321849718233560911825212680584175345671425747922917439992053240783974692017445363240505186864433927314374741703330395928575281479920877269013108306242613902960063644777107841271620292303893755077849731517511612069393904163660813811400717794524253511883315965434008171354964795695802404920261675003830843980005005614623570494791840391577237597589398721468993692926741723498281351265251769047818921892344629237708904846302355754209789670985145469273043591936053691112572703837263752555720244078649896544767406886408924828646138646713351165406099638921134935078041419325339336957055294811983463465311576243365356086283184848707720839977938724051011655274831153106302587221807062228367374232688889374653345862870332273860923840558218090447900020642668192526145289702101598277488806318055622924250868882593725364762915884191411953999226815796838495385912069598774334345860478982844110108144885800868206999312038958958474256135964278457769681090566131470291058568062035457668800152913351776167354095705248563289436838388074137135090144732600959868296619871730873579303449487915118784781199684110557888624697777725415029747235085331169978963538677840524877103672433149983048957331235125490980205391314309234445608481536046789687695932866514053141725861983734815060698416376978854127831011519500111073204092872968668103768036973811748584160105801980530538490062221160578572564529393707422702996814534833130407021166796837683573288531090547562196141615407415588399425890449850969235088948227127825651019127612189477397606355872703316956789208507135089934103839222959357497043943129190774432690255122552349775428145748677977984371894380007320403344753417199325269213589483557888163495043170285373707131299802512966442799333221384717427847816952041457399288238311297256626190898434441002587397953069598639666398433862266505875465828120794274893093151747411277675984266922631857348189996736505854274755425517024956881437515650048880418515670624685110517986011244650716172016053708821345854301646241371204266706471988534028886953862821652468605161081675785137420534979816734635148482442052953302994282231295627532542983655665793544909216979585855255279136179328246868168789340902823313668955927392420101535146951640753968072084840990541683049570451889890556870793874743821592075731201794953145203023250729243862366758870288593465156446609124998468399889158048136329646314669899382148347126903544736754672761368197925005464461464177187038195394974022552702247010808708268758162441757069831780511769316452110685126064477354063068928995340391864898912344683337517914633491749642459923295726095533675417858933162038560636569302167352843525358384514035134758663390850160492513954246252586397209230940025515906012865985432118121845602390868366831215879896419775104027950567959963383511645919315916004379044414941064993349897745525805568841948504006287362585352170342820424011607205254370089454618171933935390949339756186163852353768301136322470590191415765617779172832168252287298181985249804128293573038001900533584768930702867202215911890453022241483672531941413508699980750500293906062092489224325842735582110568475484093719958300802690912773600335640954981146419753175609138490927167176229980794757891823514629474728334639006207286844280676375826418717943763636314150853358979272071331455244555979570542117735228407621238684216100184403419630182466207796878447163756186808040168745617982310923383798625116783418970644226358698025860150616162323122661258070515634006343081316260881146729673858450589626864582636113274685015562380937927213834948066150727855172462128475313481933235182559184533520540496532697277451880196387216897793861463539579121593107547062493331463572848382098258376152775231482306334620101275162784746594406013657476015572404633998555377623533511232911462915991647987969407459935257197769234842640249375376368717432311405705664781488329498637798723072806527693762409591880061215928244750177784717073504287886812545557443677650782062928218108352778953471108437716262658832059443000590578568999933824150725986103125484340909524142474587445142297877493982894677900308088098997376550545505740195457202620546471273629026957494952998649117502574087945745438869352012929997906669268841071820578520684047552141911273334620969172336844106759549253584970313107249736278319925984105987962739293709230292985683966613753620067198899084180157509154446547635371889799219141980861081358396938368977570695939829524206186528079886308299473269788851720365961133214065936870368318283075416737529396832336008120284567023820568429434341859162061813598644260051614820799524973194781280932065424737279846573460577910220079221512700469630041717101974900335242869773334884625806543159964241779697649649888894940029475720216522027673111006444945703554075113198091032219877222479716740827250904410610085640534694100858820690012823421022990327379158450741540203242524483587966435242932360029208716659018786872160880356718576338654676215421088281811525160987235795009258851047954520514870974305230065097421909999588899491153510422842802890153582988539385514171469559491677260256524294822664953461778364709979434426007965987449665986830553011682463546392180347144512314734497858655444756832396048234219591280259867952173537072016532454674961903546445656056143703653495452030203199834758250603589666324049676389098441892434644044044095286444863543873684899930877150002067249297363069267671134959077569946906214562386326942422590603484378817008435598509452795102600528859377333863549049299748945820122656164039474116507920339878488384228575627378697087601337284492607707036999902313883391640582959033541244078293909934338208909533514341972865850049469374622731581946913637148498862474277808433389005422293518334236497133895155894651720920454917421528941572080993922114917961711223231102459868360197382969064294114820215851815438364751883424036094004107320879812396005200442851595619856068178338996634746622354941404517037611077972969356023350279258550113933152317932093954962705839063889198553619647944671901794990158647715410165449113130199375025379341816751472205462924112026750907592893727086015176097693246233564360051242064255959927805542980887357473641548002910531525207378552134680516564523766733485983098274512315645762456917069720131405896935779967219522693774393212845142338322326409037549884270153202285546107127430233874128454396893247108067457472884595651499218457340666531974511979579595469461380813024651097500187747845118414499902333251757255608522738240729882138240308199473927054229765382737009697033822826194174081611644186469849639142170115692875767531053104870826920690009853179009258851155435683090304254367251923597640696912956857931793041240281684281669945603098948660955577444199422200046742924800497749835904082485145776940987330643454831173855769924448320088021575073638197616616263933799769856822372594834635989515921481443160435784791997122089418065344363463496524676126269106276306151179996216610826593756616665111569000628197971225507916855609166839928663104497999880032485663127419891908718497015957634417053446326782049710314148859060875505315251296011347754819093680864334871688250595530164353300453267063243524273758817247231699229853995884115277692979347431396473075797891911502034566917766712381205717135475449533864776290925063618866991493090976010556753793312295713615606882995732431380426244062785772324270220818248686002047857940891868061000428426690424580970158030023558002146159583965048488604178187711564100664653223338661847541947651429614408259617926464101852324111492579631537440559170124659332127491680315408055496268949006437407596219627877159666305586026410339518039583787237869746157501763106603403691133020614751105551096440470368666113354821876217560756236668452781516980525661618206795161564101703686941281214667401849322879532212058915775329289977871486580427677028574430957900819590344125680341669801721364509961588103707882794699834637273994916815904764946420839072153090260306931581978771439039382566040620612543410530395178638843924579838071642496454566938301786175308380446957845465495688985769028324089316393766958251064358076915375269221268865185948866038185237809566796414969230943807237452453336821336605718683695013778416398089284549162242910490645642821740589677125551387791246700494725880959619049069724534584121117705275003948700482509453835168202960565371032590516564039526840022145483714421148640918073976483951265022385608755061054622815946964338551464110110980396203083510260590732143915508643119684930184742880075528241392099582393265807203947845459354494096984712374825249671572635641292752779764399224287517301741008159588810224436142801904595291438554237461278673613833123166459194210275843865047870740726409814906062324120058052878491964154557116211376806357536552346667724700045513227276934766646512354736801106205315413252217810871069128702530521456635272082063966222541972454421000758047238269320527698124700736114284945608499379175155399124046659773765491602594359585552915129857349623653473939283390404976642331884461237557249245340147225152085388005199944451667513949100764814460579272834223072746674475684715126242346119638398774765043940501819404732214166357056184894269115770118453460831263820175789194134339588101408728573322228913432972870487304580624222030183882510983614606550360351651600209002670345812288278054680120429854648843299100392891198727886844382834194525513544666496582418255770906250602854010226545964547835933055937457641241141977242186350026630581897343518130543525309906309383707335909796817826772965896227724846660914855871652539427336183151333357755999791012144568936689003280730185636283519682534355982584452975214501278636125559460949454679064030178079015984447692078351453163658661389197895685403831416199685007581808499297621196866251270773330501168407507336932750170987327280514701131596242319915542790244843419184793316712253182052582893203715749006755316096098805860933782417836041555894646640196869878872788188907685272420770178412702406567414847839262381496969830079219974600834864705292638478075695902557065485800830337674432122153040323560693424318439750671293921817046731103125136643207466726938301305964234497549833999957848901071296151274288916779956305504794641156570304737621366635228770058820215520253937117264237942132384285970430845655427969148269996469560484267525298718675267770394631686187750468473550780183242877012798229812795271543876481831231868771295492902304622729917223073087813848394939133230242284282151741368325334823787481817049674806690019484373852721888772242057280704689597956323344064749794140209753645884809175449404335408635440175841395253246927131503304178121316700281278720806804192080641716210029705387535924320708831018485922140279985181881497235389101060628227653803716872831365364008999408514875906750673686030558115406476607195961404786148446580176390637608300858262562980902860971621520843763259404722505577644319336528855075932503651900428005395777611628032865453124412060558363996010682689822955730831952104064051999567293324236520881400183393932143210057492872771597024635971878247347346366571450145726699587399961116120468544499758643510974192294827221726117502907938853922807016825317716296620531081665444040611250597938568934062176292086512785776730947130920740815407975706649935133985081240181377095549337046460034013954768204178016699584572194766208603591769541318710084844985582051635151202139676366606031574866450681154472695916813809235667680307783482569635721659361349040042135867289641056534463043293233045480216762963300100266971441912355726749113363476730014312616586878428586198747960083400685269729359247634631434076277611532735276110967654064036409498807075029134922062488624578470677351090137392313355209223574439723607011791528496941341276516656263104525063261888831780773824845646782625021880094141211666479522656418735451761706108859087062535231859917974902878475374117992560444033597976239017643961544349184022564171404353690673796769888920576848739403569509574925583481735726981137302568246857400815242397685537549895108958162094271206876147371953905724967298257861010304431571410876723161743100788196854191939227460705808973769195184861511833788349230935846899123379997806589383668169494034228314313025768149736738866765045540367757717822021879819725705406025156706234029798784720132988310092114471516246660389288665256139558312047737607268028407607794835890741645458931791908847766919134538088193721569386019029822428786273930896222625932627023887151811995504286371646288730818080406998364727483374339281862512356876384602953073333145521301003738721189640653930584332743807476028064817586020706200995840650182583388997011136669189603750748342499809741920905590404978282221376534355201545552773320826507353311112143032694890236510415933134755640061744047195153930419372625543415357086718166706339926088748982660198182692893880711770046072822874665732852168359709065543297384345518055123711925705657144348388171961161976134156329060145505553913755779875622014610661330243683488137514633905260341497912591754419703682137547615793976870718228719557692030665543450390030679502289998225186486489045321014346561547535540119199118596346553026436061316025876762540600838904691721920988072416213263172795411248127376434825255251540993313513904149132097744118128259286923595829885721100813528045931138567349350236167471120466072273693677174637089605372868759711200761796019725974098519822922186052387553725300296101987673484762664110706590317043705663266983125295612134363611748084677247076211038623499185895564083012725107600207521546411972198844233751552538045596905894962517783896556254323729173287668386933626386910850324832374207563692718016280310553457446745206257181056304035922614881367609789440431009386435880608299376102785389348739015721570651834449909955664233817036537280794303024813110070066997156414976892692844074067625198189796222517571761451423810046450051153367041200297097596697086713301117659079331232419516900687129406421006024422420347374406426052767094838607720713461845067523954483323588565063237663935275682369673543670347909549779653390079327286719566067975062840851625857566452625509153136358987129027409691421412845576403187213372565110379071269355874592993364614463475806862852212174571025729534678035763574892512309788993889277778556627398662213613412923094464643844827137844019097406479133724295652183045373216438086726133180839072246702099744375337109395082788660526151498394386164131061254477831653368331439248797822005327097053649471642738306806006647353485252782571118659537197168336447636171740415464581219924222638511850379238116100699667727468992205531224720734466426836274917933875751413090124765236893299822937821631834429489212569460057637159372877657991918294929032332745003797271651684765414373474663124800842956708291128436066064820481816454467148404407642934042559124781170225117227859721283505110815976931600542812325658712577500835378708851317085546040542809674259834510523251253451473941437449455389876325257139156750237436061039278837693305579885115898624146623436972460788482812829205065514359049851023872655520618936894196079381921256662269191317730241612039621621386087359219809565863207015215476725254836737513899201639771965839234747651949738515304069723172533899162914216289473273441955744125995786581630309751339969314082710507497457185514972125221658590990437092921301904848996524906826900689030190908298440910441723396435544769061668452059169526201000977650181152762248456974265181623513331413433784175456353027025140149844868677708098486020590677874461257151720107929355898118075943788532151294307208173863485556095541671006228709456736201812761292187644627891798749891627079241082425155174509330170426698952625970662301027610760021339535593932885208585833477099211442708466948522170234232563056235365952629862627915715514914266350226771325203780001690554869038505092750320962330227061950896637416398663970424381898672662241345552462334085285399254611694160543162233742217869389257649365723481876933908053106567980041387087435603537502221995654583576231610608263210017039312119786901260299158351915100181271817143305623839271301458625004022792080191973268013869789709084640628211453002826620270107568888845398431097093823423404627906593986596206332414644494996787682297208899721872969212238229175278176420557947666903951215201425337584376688921939796023246993059340407387319920443900198043158229000153509841441416810202079966799406860960698708307963787023933412936731999037102760554120134992704333812741673012670667429998538555849398267613975689512087465946380564301733385161968389759161695138356465072640551096971055098513370608235165728730120344720614922345724149351979350030974237418109967852399075859574974060511036866765081129205285361396210148397568183150348355428216538310672768155525028000931697626207556065106124462120392019391091614549295930950809008227354581349160223605940425926293658247626031863725666940488667424910099737354746442233061092287990218766445108717316104354930655827305537269508274552342011259494504039673923728202450685179798225578130288007326308283526008464884504886846748518010233959769658309274627537380923504565908040479889632994330872227110200408396448076761233279353735153347574268862775775032143263301556881350499135982011832929122694836350734024556787353624498240687683178358451922224161106631733301380634336285925642744416097327100087945328481539432266335901975552449429943101322304431118594772701951958263489161288039778425615701969740071074397663606916145592498791479734071041111180737662387538419149896434578086279437626979884478103765538319364193022885082158090738985353502779132467434008571710249882706303119144206550020326791418669949841269933072674705841309951305044532202803362654415775426185682042699806127925470053396696097884502271922495172494112870384473819587863884117288312914737223513026958667786560690402167108634299243986802724421870901199807929637567400136026561960829689973941784379132372663352509415830125078817866865079514371917856280297576445595219597698237073116935102312352434629434199352638284426025024160502031230822456483024977705280441379509738810391898306679619839556237862831613259405987217032270536144157228837300865366108199323734066274761727072726527883565707031430670235199404354266016609736476642560939130262748842843456574308518307687655448282253785195532725888434011755265475114827481032474509386529642475916430017788260713634441159117975042631408636474806784334670989128187557738096875793541742364556274165719648867885204606100971669750292430668138080556102142551221115280332880831960299082105839196959630404881910626556309821472215189356030215647001004809786914156319344591117339610642258636505783835681235692543249366300931345862792029653390868227648837363161357178624494136878885522918826699082647054075998350397118420724937595513587388839315472622026940173129083832415700324860829679340445397298776703751918597790326261049599442869242957982382200301206048590799140530752575371285296443129681876009137568930328008277834821372824688082393926108904827747937163008231708823172010812218395670848371307732181160688288378618619710209473871736038007233066763576670934237554254584801335747734939256168608029012402536174151410901532058416178135689926804185126749660388844267326344308586641693486782872629734023638316920071796696951689845813789010699026276109011901876186912919647139072633425732272712027812354183900217582212245876534414291210646834608098236477535013419406448004671615956907440691489511719997788938454729343848566003947585215440048033866974904871376021370717863089982022630608157121347627214387104331782520347897755109267669775168362093392473995200576594884805920009712244978176923190244984884244861377350042584139891225224146695696448724291755653390083810355615997577808877853150254131436681132128772462520787143934673452455493601880399372980398808490249317727156996644239748780625763283648353794389919138091532665716145589930287055382622425528404101089797055951856434839395404191855663332160511082592943634866020542679983206568358140237134989538452670275297721611061115220352573357918787650845075734159890962217959819479210239512962142925316497978303642279208581722716364184634123380328749520609735451345905534170673244494033830273151429634031803183420100029423054999969811656339973479656378071688158249373854710231074210071708887139181606569372270483865207696747426171152193250272856551439876228893314854712533829364690598837794496533079041398009468257304163387663994214235167305720935070827663751998069668824175227792483096821387046419429352537998132601131561645880289181793446675058705863688797259208843885890395707900761882322811773162749752603873050361595458377337423444830064271428148816267540887121302044653867876229116337570874142601623842292129313952863279044076517156490472168970176856223216103105453008073408795368942892136300889812069833126987196437205734007903517054993674502537094423710153605881706110932204772059919130112703877865300171117643061801670607752643277190046425400395995330730300167524323785571240167067526444278503024010278411905513233778000791408409686454613688943247782789797900703469882031284653288771983874835473842436669844199446448774803498626003116326428980037364254797525046707953584710944721361208527862997695747470645904230172826514386144239666682611172927713516710447233062889604892649211967198907131966383653928878542149182544993699559429486242343908108500671302751012558963777598546037606329279715840762420164847519426309473376429792339389057650049023744383149308267934619121672617066305024855682711330140702187583554530168938538083120876901667402644094056944639885764719694513876714349578167431921177063404909575749235796524932593209045637412071937532585138039069981418423767093578730198163188023548363604766053691016848203053520044248117017138609888197868526821423590696504684553666250207719008853368889944637177829579879189075215207095363171387340136362139303933462904824272376663156366688896422604436932229944615231492027827809470810932820197477490601704307225198191876452610502447365867964198639133333469626987305273256120874053820969109036227425706806380070135264350857055374591710924096304138401534934459046257860391388247205321852104738436750263008994428817023223679025067215987463400874275118317472560691997574715091116949270018201008868811795878284284724597620091643537749588124414791667178364936842641990067896728568509569910252360506992720553161410697484613172084605357362995350529700346955214891703376376029214493313520695981508568259502002109377724336720058055717125391829193051796690290540485403730126290916480627585021454993937002496825345526723600892933972310055215925311181833630304598290056400843303141308093312576947426638730650625228390882783207661078519974545372268825810043917250620595740483927500097940775912547524745186200670169137645925185663055237531143914887386274474303228478678261188800839416010208064982249629174788348442112838748689908758807904221975220052542556518260503758772249149196599804519010211648053315572560830003283319427667987341242717053655130032608475116017633720736598680048741780251970919969281823511808950334828322340827951822933374150557189948327712018232803711036175204460559160194098908142315613820502454769318761185138184167556367363909097691602754730138930727832271970771331450149659441052413127817445799525721788250940711146547111130634598538130373445388108862649863602220763186323449396958433591807994229851817351398252224622531054458474241776601308298369045846781760928862291969770368912181538411009453185625740907784703321521241798604938271599789750605403460738559716396009341047156233465629430248571118787995195947118030523733826555095367581637810894117177671230467838880217477501889495037599391245321950437653052667635761270412775883372485417919981348879904715967569957199915772692567647974229007771090358845897062399464265141297425819637936870392093546746853447301421085698294438094225318316685673166058869513657310488088926131435909552640223467847721435020510667237589507528134792122327030294246134486655695009030101398282975855141874730337333609081133520080320450438362280272741330760115230306025103455695368478937567365660167419216054448947658435769510145389748189273770396942484795657322669541335742853131297923705837053977043348271952176701373056465672162125586483026878603297899675782008012722620042713969156376369592014850704751169646976346187330463765003072635228080517671794065709464528418803069831708734763339100015746177490329846780906939602492868112527145725122953269398680163347178884651472654736381981235423707009425176814482614780596725431726733939023631736517780760063350486434239982100657079535871728700806992123624704997065502515967857470990470646348084182567415811677494715814577835727111316262200472536097535147665326041797199996441011741874843795412982868065180197555015821966670712187000038282055534644584689052832528593910518699956278652233129393946006927027851725330029558255670649036273658625163289735503064607078233995152464750264207195886049427537647585499502544953214078798483704125131602205921569136424890931890995819078057764186587064460227763983444181092551895485845735284169225655887174490867130814023356312901255453859565043746449424234175178588745337255935138040917676401799369054271973397946606386700472777276730722024866504183902443335221872467895104823890154985551601366288994408209661787073743096599893828600258406468304805637082995747359589661462577085023561197899078975952639971465718992311895703525707533289263334744711162509063797008833531015474623985176155286616320204814510908115722501944404584350758096400382429859677609230792054316401745115863300721195504563787836712013695445967782013319460329327726461983872879033388327389790210864980697942022817382528442343152776131969857280307102912640559316774101802218251536931934852965641781776453603075369957356136291608276756219787420915279548200284163154891625710442755902653314656500721582855311788057536952271279297039375854282410963616296027453960444799877529399461550707032566006734094241716923402650332725130519355055937706036711671097825870808439466535357119083633222990745115541194641312604197924923849641159050541318743539664817440596105163770611785080911987232508939992635588210467952532122457030180246671009964742395650186687224700578795571039838446920986855507863327670158367893556530313433300610601602847939480554499103247583527757591128912205458075590226121205160648285561665178411680155461798395903739320734971439828917129779511132350798232828606896976947145411947051505685671804438457359901202851967596386231079455125870678061759278462360384377008913767131959056711564538401874414013855548648401649642193751092101969576951409001136047887863384950022432982672558570596032721451543501557318030820336100972980632050818886080211758885939980920618246924846480089098020598543702455249561643682944761774155657802143545568434758089287409123211123405307977391439396036960838226156577450813212505156066080575610566773075331082856294531543914883547111509035576283038901341548563469984730507239450689638531633147478092405158021878231921059879790543489532307312614484172280092089298704468803666967063573930220539498598131864690472038506225571104001322214367146198851758899389276074547306818247255440543834266701243036605151445122698129472531313379150327555322485395939329890003138371986788671249618145704005194272767520987075567092579898364955655572715594487318089103718369660693762603046308097524514299944134485233644067273622761653958173441809089070640344704275185640773670575427421936910116040439819747511046561031529749909983017930964654610181871563370824677342026190141102378690740183064755126239739312165823186085343858775254997590577330181515045883419599864710443219153024448381931431318931181944779043220857420565316888400633473214141380860209695631144790576132991074340999809241831338538031152832900788641094906309287405899082263956145827488161385764749540653385364169835626613905704352758795459377239112263027896650947217614330252409364283568862936796881911210610809514372235348691679890404528670191119746846857961375989438617139944417240978885756914049965511494586434143337014944786542189981618589084102673922628831038790926725444495615339126943286447666242459904137109006107855007003012202748079970786112433687746328763673935999714711593168544399686330978118964617408320896833493410302207399208196841623892829500947297079557202911168665087283929372909580299724503266021223197074534796381451045740773558527516323029740525419149431714151870829191932348776892287046599745076284110921032675170185090763415368296285357190789866223227407118436450773308976264051703384868911792845535362428474457868692963924561085017664466063596767905761253922018217736536198657079841484776535017339474916990925158457924172971544127760826788978319069768743390287851867221632115415203435819296405792076286364303030726943661032746787364814204915796857259425562128579874267340919937621585799973903930670213730025312304430038060389850204139489739046597846014144217465449228318420234830288511294697530964566900365345684767646710351807897219866843760673661460221642560877040108135336840751486665553888020930639555507153305396282269757077445289961073291559586094449506860213226060450594576908618208413314355363715800008270079886835952533173375087350986718536399548851424739265593815826754936048432736664000732265170071321917815392409192321679953495982474640987566681498869836371452683958444049454146354642628455049802162608916826908167224846812816760044291067264075042868717561773099032544919526124653431324308798525583454439421703178316722196781524192094824702534253563965115766339168773149228932370779779296888618943390969101222976576200844157411461016288817640325981280736998369829436619897183910113560575667405408932304504607855657385694859566914148391512198807947129866480593643809340293281841743842069251018862798504854547044380661281662727571990536275662306264057204468471555802918324260706482088143963071170918134449426740466072111461841650892044688786030514268435774888854623581040431509516814666704691132403441088406179236637260459106827542336301076854870731965144041963545443993651042852401948883098131216122130697830508866522760941806754026652651435934461475756111388412788735826696894794482693313271949220332070895920134799825495368949389347920954650035310493169750822043787160497870086417934274444985100163367454884708275811205846724280729823021778336154824216195690461302943477313580006998013880793644798531705888469233329552702804827581406123940419398277544461593127256169819183762519995199752856449271865938559599248277296550520161791513826735043652784574354577689131554139026390850015590548581117003284579796910099861593100209245954716375749208633083157082452000085231509074659555398404407711776512506621237740520197617558006591632767421415802002500684519507861639952141606264736969001042807109199303425705048059814166405121557270640997066889488899733865588175454693925722495102563334207434001933402265313768668357868521422843739626126246970140793809385441224568387236490868231280298962345613901079612655327287767166791154023371102163289231201686275245318815105543235635634807430555124111874326684395065979062706589733778519054151162145148738977956941343993528488590611594800501105651281508723424648476243534143464194777265663806920043803628012635734730159793498242753563528304810288016941673801312620244440789809551337778853628622351478903456466952017821388403319526287356533511426232167969485754321760887300677998745205869202468940479677482489774399827262510583910196782724671339662686025619571269215562213938582800015515247917704563295296575710393274764328365752255155535194847684605628692730797331453006524359575446299046025091299095739643211782600808965843718950154936281794679833839065338226217786714995815449662318557212305711218327011730959770269351748931712176720436593851462703481138889831022046082732578893770753396090612631016248099087682139264803927674087041216293396005780474285557215048456747437375118382318132422868007467598146673624833561946517583116247715639542419256307914868043726880052269272483244505768010554964692686330080976240148318749158535137760440771992510123697281661892950427332937396252800501225336056600609864906103288022622239234424262889090110598051707798409185026435654384057265122361886636811558802582098375867694636977708494899301710013247664761949500012474233210426762537720614681305983585434700028875024143724321927573077483568807307392940828355557219294523311474111342380333183621258642991090559796501602258607177916646295656742432123281118783975254398449930199152656049115882316376462992511475443553897788123398010569193470245164451622020791893794387694823671444310012640091121349244314330977879185768435705528920162424551773667384783340823691219795920045995507740187811155782995802503458516411132584143147988001506650360685656551186428134848813354466162184100951563895606488241543068618770703202255762151907328591118161021807335987974656062412784118640092016042211664768166487300105946746925464789982918313312815716229692823444644285359594019990173948969435932427863478253937149535490288858071407054863545617586440759507280774293251712861508407714772709637475862193099838027203576114415052446898977649579745979821233853571416305492011768370846730726005878848862856635999461553402534155987803624930822351389725825022424210287902379823754944192547789535956066177106250220573123316391756347685219019340100223064420469540960522132597274104866461057796353489164331852774852607917542192641722430339345401693850989719880034851244242541381016176168178818425187955324245367656784653652245026441878266049503161951523205885386935381224435593882774838091910759198580729069630217954790976014079532267333613897285757399409281731693840400640748005927970620100587075450846657826686012638727310498367083943282168483365366088904849216606935083962984864477760986253669433024091127051701089421949964541761590358228721271510741632517384064916707940138484530250218569234944835937441596493912659335850256381156260208322530057911086032182709571744897547569185441434284898193833889313473767979052643567435474222602852647895673027132335953801850130932851668492025122015984947796203136855288641105804197618924904598082309818059150167706393604961391544915477004378501039476017200470120334871284857379029658347273005063580170246199523090959438256415155249645298143828089036376549439516962504651338439106968309465878641953591918686118466349868737323898838099272814780852876808364998141291266970427173574046209129441988832007614857491931682354059606528831903466106566738388145164559469161462196755309010356097887732069047333463997332910034349373251779859906754883562858018007134473199124634589332134405462551952480390277553533574643278433310750406126706896655206977985650180061748462955289246315106507664740525878526120860306161187628390539325033688155054590431554850750766353873242966995662229472476775769614222283687051703991624597614891952381720145064931456471820590185492487840822505925731999823240122995250865805517280043483057471060954022502816727221074654333630997319724928701410283850010477334310485597064300456814076667016181289705239838547213211152115700321310835768916053470415456754985821905399341628933184888968098589606476527721067692762233554410472505458632813173761854130461527929160135414574071396589132216910548909860804611998672662812266880841957159347106673768092342959548808948495671989029615075710453853355523331696812146143887463930810135744693050106807528009780635410585470222875896054846376743838850301530879754356331923944227787332170901904764733691203819513730180856199809442585283680020062036026842441882636812314488508264674212645658098649757954360041943737408669927991060013344966170469865434547498001194408591925042698210479971565305025988136134341747180291194140456411067228020963330118844888178813392060811510154256791187967315790602106029943224562910168795049865481081019816691461746039520118008653919223181702371674259350641706494920874624897373977225487588086732734251755264775442817919203370765384969791152506416500013720028988391075287436775548145057139068669931621817670737155718200703794374232484877842543499422742498051446246478382063211049783798224703226072113905012162263434717773880104313506746553149095847195606743828234005921374207599857732349196914083435907539900778310883382510176957011705506981953230235824967450598187036543324486403699298955215919391352037921644988317930816523249720527766351719317705613152550066959312855143716140770192223714802230895954665597729463547029328990250160515824093296099069531812263629764845769698706544190746729115714941117845284149006394433580645447238085064595331429335669187322425949883971410246444178886968562530808791205406725187019064665877740451817916865649605469023923293427050298602730427172811350087240670310750952191611846716358654548565546393493327022429021041330461754119985505193371332929261079315123305299577347311421999736827839134964113556126526421543244980718358342460916963185016174688629493627054487186743480430297650556565622372319127683665816879082276781143435515570694589458725105434714002508216633816938895005258549199017680818185532735447562113744999711730230458323826506068304533157041013048555696370208031879054501591902411906688974565141038590850732449791064097211635233377403436581534508551733935152538995789986520003485912000951813537143129500739991972615675733251795115636936445611154974060434708261117006396689169339900189447728163432489665902015219373462822717774691166028911594144828385611351246305601120240710649905481124887517283548898909074450279442777251396717585533755266574234655805836962190410966274989099533893300218324577712330139494489531320326196066059499112405479193159404008406218090058570512763099710448514138982101598332679746233307161519898032909917752254681990274532210841572914922091870296532324944608444146429560350444927704187209584376596105837461939148659239073502357765704755978746188125601449560413234734960444738220735081946121274799388782373565752375097853972730370325450353705175716230528018953068641304233767099885527493879756316744592364712605202965752230564504868573524011011592513344040717361848527093963726209793567047306470048310067465835768310064269910340845263626755388501680666831638297998087272734598527534468121967369983945007016593954429593264602941235479488583228133457797343546890956321258679512293428790519743261337160618375378738803250181798295490304573376127965923126590530057716968167679986940238032780152577782856262604028517652723027793266259102576193327535841872975073213403164331909491133401188309028761635978220332864965911334432310023827206356273898499947355579668384517930504067597568904177007075135126946589998532453720330805997507035243448253276997337441140554999705125492600106624337438653172144063202172266146673973690152268886147237580917245534011703715815909545283113127794021024942735179287081475772059881930127700524156258643069464281744208958813474164885875946990952699804839628862442462993581486457928313962919930440120071914683314253334128245156844184283869849587406096928226025641741333554104272774208558740602941676616185890897216859463381606232518379099264811417288334961531013216717341304485044320120579700809327385240339852516209294331458317752563351552100244241881093768407771872589244969315409545606084197709547433549928024530124840450812137887033469685138527380499436042628604368892592037642212885520489038998599610509849117773011106535844080150939604736288283693202907710846990575700314466747798381476875300440740413411015124401993823914389289395967504912586792139113591156943572108372343136192569519350368175215660170818938586349307440656115798568469754001901071229740555158479318011387146640540300715002564357520079549729014138786850253555337109686464468582530330888539943826200808865167528712578327784173470054433188474445526997407923847833773563901071185807764194790384413655424131158343392224894633362893788789762756298933533565648673019066233319158168771740739861963385695413486238193306209865607693821655952554652034261988854137176685272328068859859537573374081437646338718598566387878626793514310758426667859443724630180892442485070714974253987508250831746144628489008550156896965005675221420939999974424459507008974966281819328255084883296241056235076657762603761025414347342232872272168819994852182308174071508270588022176450552489990991537892056683809005124414728034491184431478899020408032379499017848147891999037626735309634277258390932464554250213283442734798487254485589023066570413477117093708962188312202682160117213168475953734734781798408043553143218829828729205329206764023281125935017150890932937366948025520883525426910958739887269648861370387504614041559575361312999530650010663658143675888319250035883595154701142921065912396752905880801900184997107912001148196572344818625199444507162338286233854940501241522016663932772712272276054626665112514794609944537897005068469547878322114372330122087447159530721083188775503112116898415321540175858215531206719394446675165050189360085621932704653973597920747294821027951384204398505419219858779775588633248149023517650505850704005515205432230876255475858495954596389882091090687368555632280906066139679341723493169081406454094087718915072994040610425190039568835842107036364304340651587630668177809848220837316944275427999873755246552416524847549357082422010053742321451717516201277936514929349772392792858687958300939360491955932418620449205451594852115131444047442825293975106756077854558603268806348617220156389493839241806804514411865982116530889945109638788729426916302437983185576463220184383897000982085982452668230258979672230660888293524089842639295187203381271216289101716647014005422226725652162780143622936082889563177293732824375797902409253093259945791348955828797529182886827348663043708925180703613367801086675058618526493126472499188121967672966514761166015940906188718919567446127864053170847925657516043305976952806422903399266281989581089310174446777075181464978398819786513021702692032099782452803719131864285939301975558239121062180853076420648570163253467181161005867450011218138400700908315882139639801274667949210957747480332984762228457943193558318614664521154352019449200827550660517471391367234111932576494933523384512272739034871340038875944040258788770498225669004603305082669677500943831849322544653327365431325753879079390518429029954011118522137262561010772283085264416102709796976084077972037900996995212667376444058388752263537398593779474272032093272076126854221240850821197064108871669190357635570275012660717913817039992910314462745540488604245820070334168538274129029891897287293221033938010101952435227064180898092233514242874655164438221956418998675015845518067146229085078050881395496558234844634483277881362573072241375067470947243807630691803466611034380668867349944517906897111953193340429511146498272862633901376817972659642878722251247099484208179003283746383752720784166885488819945491354614694272307000058605064424469913719749282426512718818879344403910497335928725468903098177217950135238516568343516245178863929355132019044527959224886363867717838882576613420321317418263984423768197445636172072216373322915971295082862515917905916177144400754834315920920887184024382298494830278870154990296503105993535838507006618113754575043674804465896733707717241099780704285662183688344645847534814570636392467823806567497458724460299832293073305724829816737740935770943681661744835619166760484341977012178404647274898181612406817279974397127638458706776287035640850055786488644744373622234051656449882524738571815373604660000968779750807778577422074845983448516969338506897865358483876320824118504436827817782082100393778613568507921891319605027279683687735583183249174887740273278826245022222360314138111294467347717730218315556392366687935593191478608202588641389646913378913410967004834477371483309587945935583971213944736147537622385092939961953856769747349106131921271794492828020013126406000791844484066577548231664476265848343012006426026533255879737995420762742790817992558901081132086986471448898219700762750184902161750766896405421092785141530927232159569208599673486987512360436114305322213844972883852526002711016243138036616762027364632101029545554153151166242482299969469094292409909978375710760309507653465892367644769743241594747620815121862462563816750576046638539033640953227388129512169794834846481041533457932197900268955678942469962159539551213161183385179205407211961605701320869105414564554642335815713428174221168953481009217821420792849181415252959530303563438839321418676104097864527110928428975914515739911556763829576000403659801880232988699001883600442740741537590679222404413802078988996647098016341850944430931378936936424123178367941023130346923361114464461714376659377409391696346155131171120771240728501624848014391143104786688333923182585528717779162819900279483115823685385763186866456052709252639168737955442642558014371031633892621927677443666042929253685810431382656196858810335051318679381351765152138574009069592375948888495918489659469956882811442948337052719095207804202493506480446820111953623778184872318872657938142291636593398827777115644675636714294888050094323718291333122085966575825066727651026956867779428738060111597314814881714695136413025785091689943385408193773542553774738846585074548675265402279874248442131813219241806142803958110252208580647627892172642075154716327684966809276542964278450901481572523839455360331935433686752368463658133516382134966225669022796743864824298868541632014910219781318561407808030074171038960569980054980349249354316274239933110915215767594338853945339761666460268132395257081604720391989771136789732027677231674431239375707438768920654908434743325387183868442586626932425316952563831219930466186876504609594305947107044439929956114052994551612234813397144147224433039268476547267842410133372535270340693505804832347063763383922593554398155348057914023861514984445229602331622085096863860789076809351120631159386296799104144198437527837924925182521293268998369307837599048909489443137147685129228866701355886368789608139511996397346796161865991044531153557953097412452302039727780697040678751159670347935702790086860407301640602210254667096950595805459524543866946727283548783822128575582026791458436079499631031221564026701924194834153999511164988860457156319409988563438485574398272478317903035116877022620541077123199347066076173202956927689442601985651044651928714064938113264531907955906131291892111643384791009627782870032601952395225853336435011246878518887277800909346392450159061956423822126321676994078737497507794803001577362563135083234325003630140763957677474936994058242371632110294822218807039020594023017213578367615460597782412041007964262461393810937087500610314989807675804322441953146521420336311546639066507195697665197232059434961425893982840361304805229367012460463485447901994782750584404802175037811544873930230418891477363879049524036831391204355178438166910972354247336395102326004244327861990387823079713625417772264128475730537252918737550840786071813499953789415440864984468855949532840039687826437600529249286967779167334160456103847633970229089710395991682368922145065951720700580120477055470423896720105578342340187704084017001856038714648203647058486804045382333677745677781521398743681245659169008094196839227167015584870452165593633852770885528315405085445216024836151643572850741114089193218563776074128014509068556351231437372063494769798147553564570177510906401617035807877636873812041569186337840422691926734678131794400570159532361558588263747120347893125848693438088447312492256051832176485134208933022865121214879191286077977649256910300720002534467634648199886291480115191410372246976309943715688467412134461165855105198425357706187866144202115574184069672338101141755960345776079580760791507876677774413050772092888757202237926751460191791132885929333774663524211677233924508230459966360935877426554612392031076742317352532874532799944849489450339578671337488108623249198374358259400936323322316585361954812859926896065407245479339001577237292776529613604851046833883657788098753129325900471281595455957693667807399288740545994447801877617267197794366778809686469231858714473935594916718725740259305550756665152440649156339246640191928038832670630971797557363484698022284261671602554197274420484755435511390754721127437164057984150486259645967827757478177808298073036124553172649817267476078348990128207306495928112402611988617192465087174101453497648977203141816705645988227133869253894083898509656514560739194151606299758685744798842918224012115098434067201079448737935009243228802493814965446196198887778572274273212589446703734670810981981692029504291571856562541005482608890681893300267753563656468122923647364567147507425180878973852998111503532936345644610011293649648643589061498747183623428227639234824021589173481630037079570840477612847701242415186117117485325474981487666883631725399140376405005499243592606251325606147490770873776618708340513910106879628092263030180839183017366630260032820939551190523697708503765235131737384523078806440047066581460463613562781107136061815777901505366176686890508167485501690342388125079635480715585084028222123382630616278127612535998242218476112977010785428756855878803031903889006066281783903157528750553220451627068317079866217328854587291781729113447382818110102673955411624784872937015610325398702076160791328840976690643964720796574058195065251101340957292739326366833164452974025682518013268593508926116099076358473646373003504148792831491872992228743627682023874410255665396024619834690215480254277240334914350044729644935247789328207606882460360263913044365781556672971088738140493565321314403985311867065692760230528119526031700929940458200331366532549919995765548543345532311932111782508937872865545982474704643624874113378104998924230445200322701532060992221040146805247056882771199843436048502392171411025799721512335156562132177717421698626168421478395460697079688747043192878546785938262342973306665372137291120124827858661667818059143116008769641743660240879136715308460387000011934821595645016448386708954112687164586761795025763203319667704585542846907663527466928058517703547249088703350970367669284087000755824856795064071370706239341002273089459554616943035121483722917380960184408283585560897149189952183256956748038090479291948125374581200658727981025495459562807879883209099107529506793704869717092558989878607160852101581675853862875437439114182257654690377554080951750139646679002060851342613947065372695079388025354434358373528325018131685447325711533502612689322226694683252055105827748791622538551400773024497471724126398535305367163012331352084563437259766307227243800246981609282729120526122865357323353968868934791154430161726935834052245804835926970743155752340718254052895896242854690168237884559317508446163461597436875366234708904654372533603281242986204124792212244262713283556573833900909568624559137476921240134822065447632407283811131902478050543361256275829585079461196470605325103535563762310292026924281149140866871348024366426436227662174434710789939326133786219242272349104439873204120084001314006321493276779665950768926878934419358954306294138024091149305039828812458373800513477707070857846549589168568403275323898284423143058733864420637753218982766661807197314142006797279124513104919357664777220528939691980534677119003662426465559469282374417125848065452434947712784598061115306164608998081448246567115577717031330740382570353591128363901258401002156713519498844689786405469601610794471334075218618086782303140258796486767892495090615665105813917967204388306023837645742808935500980805971124431257774729590670403724826547322658119050709659030015346372828138317511210813350791303285584987488429286520962575415988369792804940412080547500655138877825153336777826871738392044383743252240849644300575770027382506594807906128715302763652835712210589449428600132421970259430892087982227076079005571922131741811458458598775995147536063903939590150704001287777514150780719082747118289996962477312511723125262055954807137541885271352694024538934885242415667125866790797232041614214028512514714594531312104123077521244348497268615681467402457754488873573069897369879991382374344493716495659451510021179051301673978507636805927256080519562713822279403811422742352268392167097076812316239740565146452060794359871461143565892119328451176219598981650256653809561324631483306985762178535674628702024714042986158528679949319893795281857466683209799631130715000813100217317809026563149232244571688860065169812855998645617587372171570119215569766866427449597106044273630075012470798827771233057157310024520427142222735266303779589780647263390913423035718987973310599966937633259020336788129145795684974365186398928694417497065012852860290746363221437585082456605723333776787104909316265347456220739779425815921245062816295002115680922933255918203533462112549959950710116285849072576510627907566235746437014426853806320336891935431837079183982692406624219926350880229876644838083147499126768911095776309708602915871126893397948197722647215541565996517297313802929421589690231525524149355882556456122851441539822110943731559354869187209134854319284224422955989242161279416229219800985125505502432265766506041442154048765612745280243692348472648430568602164782674288514337961636874441539470857581083733465513614340440836109479134307788352248559284107913935177469201347781049629352625516070703500178808909559343542097540222775173740808075768669304933920112885310353348187624163894289631881507079257964572822932062583866481237323476254087538083819052238715063976048659319075578916160470261820952163163874211575832484052735642817412521443350793131730021155859438086661391344923653124058280439112054119313421590635169738199970746523897970825717504836872386617787638779544407613410115935220419847494760481288200520255912484096155465054709407837180306017807849458609365496660388407478237543195085330208479876270089021198700589041971172881424618895715924619093991093047768183230165217918778362660990739984762460174090069321755153376118541139629601041852080788206772232573571109191886313674955444396857526219787277663133638861397020479666706290583477089804795157948055756466030045923987485500454461565526684945634820642496252072880514763575682130474141871800010829607482219575038287860469668934060064289553302815966042237371484012441796367566997800452426287053661453212168553902253575582689155850911687676478408526520870446321284771330804583229095115646359733829015895782527800104058001995961203178500281323060903121592854879064565752956212201109203177944266850008039345786969292478140029101391402622467452992697698389842976801045070318378835976115664472007139481764430187542280007474261040152679003326205173290408104140878948585323264587718083794861567047926561548028626414072026608838656127967816445276404428706984488163519417018355869517580207719970807921857607551708885491665488811658681237031999770616096766428526498220434539837477991496637396281284968839337458647204929107558600441119758779305158058724318729983649547058328704790765840472792635301731585580132226645622407340662562981916530303640745489331410736022100940331178008866109860470761620264177611223236566675773291129533249117587473773238325763279391044137491649973768395596720573630532007647388367729588879642135889783863501255623998121305507860591692307944736271870260534450621657581759253198842470150121141321771419605016411409667100488935199474268132623523517476062122389339397960755177448998856041338611972189569230007279711211162211517185637223337630871612002319413954503620136692662975517053466601145303860690214251407496803951892433915217147686709939525310610482011951534427501534672230778281310078494069185851578681155716189368664910683605442009055492604169573766307486574607806978407860494901767236424620130403065386701710743830097030421134715083536076048748468612885927851625807775172300750280272607596764385754778900128604818467199352928187752396060951136409733865330883056533609969530426938853774182551478393505289652513524136707920108025709378674086850247647838099328457358751424099683564734314792860770300011718187337423630950285387378633861999258584226417891273806462786150503540240128589264553721895708683817964913300049406124990715907172247813995465925998587169636793787812756976348015330762499486015912886382485421475419294206460209765903088168792264631541403085432200172238891536379079986088346617155651223578511644794067087045782100839561922602756635479599388289974195808112187427063212187757139063301958268639301842106486301794256495883470898828113792779540462604021287706532090162239887684602891811939558806771735432828572927372936902792400848757111612715157036381679870431420764888708411195745531746298904189479684097884602759060493511383736649644157875525942368635982149291624642308663130365694831761724307914934634258767700666428699464615430645430890477877584173696947850399707641231305250139029580213912640966096269368357888860595169197592795936182341423826056345481726995997702108963941750835124954089244716725466959390043782519358187423932461678096998348677643797631525900218821746331539439270874596841228239346271402880716992298776230575745772121207109332962353937200784440327019336784407605219140233867879754284138725590185611763651865524689755317189079545361689260941150080611646768084421744125626980568980971148765397209380767731371462921572080073142437512344039985604563607320630545983862282829803372671862090994578755413571938960857295076731434882442205132602324345592549021100215404635046257682577249843908190870775840545021041080847456282756826925015724053522993693179365360008898567572359635608745076074859131555966861367763353896543361923590001201322858536791299386888349193549640365167308791588644293183650648903239947456965019903837992102921101211040287960490213990745712375684483356521818003159493093869770181690151959018321228419977118436741577748068160210176478840511627967637373801813218924180314911424484660378443090511473265816162373554668108548064280385775125837414794702259533779621593743708278899129534775421571954676496708192538888368587187099148146893051159913264462222019675014809727021540497067875880972219519368140527946163129342762860520741836368577709232844210695255769301024398746020703474614801727761672345894756215111966953372801569399427355878538562267726764315755386980999728779298859050698856392279372524926897465231037853439902676780357196488363059538876728706246135349223783144173467920721490061083153040171895881046520601333217339591142422634409090337230314396546114921807015881553537982689688694958886052919945781898887900119378613563309155466640786147299323509162227413041293291317474252653347342103465970270290056884781594569597808012047516316931250973017499688585193747647281786973078446849090922550542453222635702119552930877058938208065280498226361179534136239586099015038107978436664067546800626699157589224326807009982570670189666299857396682254909602886426446377035218104477484725375597981244303646158311840823081537275374831721419184711302003142874051942576185835253056445425496760481193336058279920525278101111390009469565578211262917496486437812022334266448657910590697682437585946129916223378818712159370249036654508992532224673298085595716049923575757954991368531991898718719739468782509518188509574183523486096546589971188903130604586702802907340385188495243089429663260179246810176958154185085464288128013265287023452565188514672013169691753845314435617314418418316037947393148613005136759479273939102508834743477250255810729713866452047286528246833418163785962598192536874234576233957825520737717318393308102008358018659310497746551102201092896268332227260504750782210103062950689555394077296015936139415647337175885804221693752386584352371021837911968980953859879637916593828091779718872850889688196002735963847238264848281839841722451631928530312206115532078402410573573265117318932252631938882213528536603149976987544785360946505161655579776953220022924907111059311927139021188443253213882265278418844001176444278674793855636596071344524165512123766611483011905159298823750680627615162548903164084141128421740303741830784465415079979064440039515484511160460788660666184193303918872394548711806049522475525902226615922461977832247374156802180332875388810952735579302169980285618097978659025537039388581633169348510988793264830015966782161142995516316691925785109589378492357536154895459728508851688930585934643839270071164634113907167100449216259020947404241139721638254719835662771024489753559173241214162599851339857578751469010795070268519741684178732257014785193383482653248175225614228461319981892813317016698224868576782470891003203831882801141263619024449954784598975795985862760030208218685985327660694635779977757660696056979235335021581671511422753180191508083256873659534782025830438372961985037453651957056305959822890156852082592214944161202257402475060070424812970270252484254151910799962339004472375368432866916104125442064314615022710460824971312140183234199724727585224245000454230318717491470559051855510829185037594418625197460969585425546775336887453840625366335325457805660847336985232249005542565444903443990248116254504072836975613476638693928186776472919259381742389982090781287421041959729922275454335230787578600865687286907507920679557420532462839775103028103149620111189345835924472204091836878430779805672822126846651304474949188969978162470487792136180635866803157158540022381056647989922624962649436437952609505916157720010078032399526778812062189190754700601800134579011794614494782748619753111970363042988862679910631609502587870853025156189452260502118590059668040881575075968903174391942199136436474458748315696353404382805385726663466651109730798808539516362760528226455316793957761066573120380625064917269508577875089694287686408257434844757933303738502282994359483808103972452413992765838400605471016804367726374421114587212600985287733317724712854237548782000021625121959672609805483480750202265538028038329925553203917247593790144741187342086091668131503915988326566020613691959613380669884996382473631038359822770415514497323494266273869551435133092646803604686626270013305030148295064277811503143256805747111943448471793873417740414896829905221794082333220949064994266967463519617027487463629901523236823559510145973394781026295573638478626972267294239908123740115825516345747224538403229641179425194736499191984800377293858346605912605739927122258271326129770019260964031502958661963124757835193064960854735105355360839368004556674550842775703141007130269659612731328961640285988170670479722954039964877373804272148217597023534421501255613651166060527130943787591209067107555287767036082138330789899254794743955789674462806851301644562683701128377760111658229904362243672050868369413409291198679131403318348964842664682048388797715420126332090689587038343079746653662592307103246924203113964359098225617634742533828783242379308409025062368836642061267755350313770660507478587503316741229033104066991349492577541869730296414351262562678140872677019353484467376472093292054587787311718454249371228756501274358355229417510495046253855780603553998279870411762021328625467379754964664117638899808896227946170416514658077279268703421034459788852026139197248784479887403463680509193938908991746670593872879838668527008107144801832359594129127939173339384416880303967295794171391800385918851799227008388205761631554548904689787825439041596989945332142572850931787544597249074476494094222510454599340955090264587114030345796211726797903037768802576730097026579257448231039697867746899522558156786467239689483538714674696409903556488780527890657983934050219932180066083170550143315621768462153898296351505310710618478756273714066390690201579445913011610874116631547528146861270074871335551964733743717302639556867762809600721418364722752425154950348128077694670300023778177380948208356332472458322847094930484177023256937534809033190403170175546087713455647094460327087015024947455546804168761865759908711023970197633335778082527658873666921720515444249126183457499134307710203145827365916206440841475937868416685514147950038639011835035757961680600257918352078000831896827209927451582794746350612053319145914275647919517560472308808818386259822626838160049924694078585829146269863401050481134417013765699703434810085070711747543840089696741988713692437558453407347978461433289566189198139456825641195762913978602792236255504609534013019360205938624092574602815227769738629369249120076521390379461898389299396552499641856093546549679362581563088803965366054010756797876579480439055711723918684647105866578032097318259734855745373628174565657244279026776180644480236730311670480862086676410609759966455003016137513838721580092512763688323940692103366238482185372723255968125025621568829857678076279661899844396455697272182116853946979950551977115627994828851672275588667603022692162387686292347621584821250672041674591515387565254778330397272548113742884150651916270121091049087214137404683405919724512297427889322904240741977641212072901401962047269709603470246902420398653058368217884185398503825702123159666450380394287192275110616296114359724331026958242689347689386526840033400133739047962516110710671013998756719022266519178546619292046145171062095510137840443730187547070781300154638999181280423915594129824168784037116893463333110065751655287000268522040523224689948361248620028060000349206366219785983709900194189760111101884283667452638049499713050456087834295781007193790837082045972448125271334333763113379019367721014361981551029023576031256991155417833775226021692925415914072819568060369769942794547385343162023987629005417907177013130262260612046866351799500713016638941790736965461882396630534946518106767919749118567272615616988335371035207057619445422847808945294650366788157249792978266382316132462179575051032649856122650269675187090459082551101778899183095437000113865479626042078535332094572255468769487427218904351618140911700300683655503539029277192546779741964820956267863486948427984604442535110858502855652343389788772299915162551231746424555611775278969741320317568779949607760534835437933650600986057992596265674593876321009551958661547265934849196121392036719447485020872878253746759383370948953726202645919722537871989114545348433533704195088886828988906454536097702671259472953452696321138572670362322039531609604633052089633096965609936790656050113628969740219048932014843676134999384841683834393601913469202445270614141665448795217419292476276235431738555322659837798641320760370436865114776509154496312618316307782173052536840773699679840844064885351440711050521690811036503758800563119234830968725302707170091432545992124751558737177180232384451314878566513637526947175331301683799247931790418418104664179968338632221635792745495802800094453032461224247119285353109924069143445854528474895258027733398324715123705522165306749844881719587322047062319223101277018982032412953089561792971585091154044955637244458195422416036564762143232119507284599518812295079407061984188836036919287228597387813471179180186957970604989742771434998205112232129737728096781186723133925000518108129417461386346391718377895759245551560982541903191725186974096347045593521041877851030088697664508452193450580379129456740720099609885328622060557469920237570253226139475738276990045043672039971140709923530642532406355637102424922924973208913646509952208602156504530504174994541758567809344622139569040005162264788223595104172520350086210801904547875496698987774406953582988336576244220065903841745851262068825061499777058514744025502973026519739371567549628908641514499014674894835786597470331444807089948229925195754837185041997276359595648945643321955118976897581648776766940907445532434956682531489475748404126742181295411715921296781124036128588909822703154046530633650293416632383200710666729287484865986392399624408651152524849732462519441026349435674307076132434436241980723091542812049002688946654814137886993961487537543590290289467094005700742933735068754719588097973527752059791210800434476279984827495670167643732249169366278399130223178382031304341033991826183978851180941387540054330293433963384377657241202342922977149364900018429980331389741143706965537719874157743905137017684721590873176365585684566739170411553325669171508180019831798871861435235971719197025839768924139432097180690756218698171406925049960894172436071681256946104718796712135958188243148042171842386279665566070276728613929863035179125096256381282684732467241271650754075083044294605938638307561932446104103250435031376801331887969374981348038957668923717991140864437389629464471676223378623894098456027057399153018323469531831536124704881615068650793000159070869703261672015603015827948675340432488262008654001092714179757873752555807846653410253590382283482594111835727966168843461536975333108286618918385879466745079777125837748864494965865920331998943583146219317016404458014555811162418388233331682991738676185453186885885738654321212314268729699227050054727333990270166164246886772126757268760277550281159768211208303290706206048661471314722327053548747577340406710646947486970245511361718390676530309915080095685661938430283392542804420869160396763662596144544390867187341642917377133346140705830037501513780653361849408917438407310208103539185686339324683800163996060811311929119163427628662459406490435074878093252391148377091505981406859053000369075885534098241815063525867374041943355323542892577447706867278597781194623832487044235956842685278051833635924992345116140195089766938645308923246973601540317775012365305020874487593470810003383675727702067760822478704309865972098415236323070133448529347348977292772108410805926089837654657304109499051560941115055483048662382444346562494173193913045445164565099285454968519616307116838384629697985938767448535119255548003687860697199381603058999499416124631456043124086127984409432129363818167439738195344450683047515007021687547443717154026661347402398412750622222268017151628161842415191645296234222873394522695972021846740348807596609956648143532537169431347288664896571302326258959070421881252051720723632085114889496349590212728971024688035931477061347163987874401046597376292111404563454943092949167331474601084508261150189381866358756511310491897931256534886839602660116128890884123536058223805299109471549671678710820392186934721833860942441864230719080117938653249846279869897967201948472455523562420265602007254549048389060857829035241240522286153908570378496062111470526805270837826633991974939995740495214670063830197606853626389888995887784038504670325881019662866245832687782044522075817242883896583855979745203321162491849699416966214349331585575269007210405461816891133322233446666177541692725551268681074809180261410757371323563107086513007039654098488680713775888307869038648775651573384474221808926894620066869575246188596999520514888693574226570632746674801043968764069399006087571808800636904089641291273007329532345039398681646058339358484130822769797466701655330052710476433786369963125387260987784444401433989588105960587567064149753155369096938563442823264071481893623169890140708842733498905936379809080345872497253188257624908220063036352389775014952568447930546241267649137585026854553154184327289052721311382852619728561676971984332179342189414822262985256238322882859319188819756122359743978903605458877200668860516958888430963837173346912707274335729709703167572902683085696983702348211247124953887645464604554362886271131074413320307634999485449360657098837696656984999095929061614166067107453831793663187463615387225166930739010459826330964780021426497479749071627445217182540921334804516795982657466728534849214400411550514023638268124475995210001769242803917765243539142415237045031682563641779417989127782755723560506922126079086908411251288377690363544796611965282148963391166304652146882682240440569918748000028966495276604969446005710755960094428990676313269568909432095344089185767655794135887384802525657712898106215189932365442654173369857933595794481169313227102075648795874041365494897115515458189473831878373584146599174732316971941952243418893009674932526096562839289740073210601503674129545041244807898384982988579337603931647998770792775832324035566877041088419200554088083365025516010219160487312356118993937448685683256075216466497459452087787225269613887726205656931361146629028365714678541485615370061270976696330824726532885680169330327163774244425933181576973742051972465542428305242691893946641267638286776022691879704157282215332744982552903374596693363702961722527627241908407901309791818696685181483552989954498041273453523008706480557889317321562033241759584689266067821393113736938034485516860210953456868723552134332553412893801496138978355341406654801642497291835962208028791413109053049829114949300788707590874058450674660882726504346668547432775767986534721792912527254277941512820565224909410196571556940314705539153169516999868133952556460849971046491682377377433663456160041882774198891269318926402333820550337150642305844143069281200477979979806445145221344816405145334058148693078047813204563168366571325609878303668267365291564390935328407909916447025596158457635533871358823600097463633750208642425368078962429934942346706316351672619643009148873411108249246236028114995579178929106077717294659412189782186323148441501083744514449308625222411345043049467390576991340594621982306836448532391274954602842744864604863430229557764892273017022461357311939135922882775710164977032454942471341634440313285571152014990570786717124388496660209404739446810967514329660100547679756445768606079466828282275135376961108728579559469195716185153196201478902722982306103080085537333278984365260209755887568511558400456958748023452425280249967417049521865171750732635696293280073997152290118603443605945450905778820566707685818014376303878658499168782095240225388084664232539864702276174290060257217587386466087063091442988779193435882638917322436971792541056813006128480612860605464543464034750673014938841968278146670630617749749013649297159524210006673750128226867122443967136673719718303395271046350349201217433392007361058682480105153974219939645214149191267879060682896244590198089009240582322643980658934662658900426043215982388807311663555603580909815535635751816722619549202204757786641241995741727356714775520391954001328405293101534075714492669803510817640003306351905561870654786919412240261896328312449464567044530073854805484722492801017109303225797700323393646940787785695592886503825932679126024808713649059335786076283421415951675978200284813487837491810897866851681756826690739561456882181712927947246573383408315918202741478192866449175170305258570550710639026015282783373241871025293263841296097477293321073600837248368553657984232879634731084649700400886312037741816636410249793048676029021562269552223076262070464141791796701973998590032625847786328311693960263015610754207738304179004069383344157656709785380462111752104167538221877041469927962755925898014479216570866654805941169739568163382291724476078022720116474158181537690853635080153526881126610528049562095619070036254824203224959378651822885031315424059800816893138216606303112530362299715609134942366459342473202701990814183260487070013564041420171891976618629935506042571677560760279102653396961523133599587599038299058818170237982159624876775893987370782586691443245411897478503196612648969096199140915213151922139897117966613719585361851255095730939667739257047502127812292573922676890420696644895859076020675459290698362553317024161739420348865933478897742804424284352222501743822413327791455968217758588799503143166933798502179751037988753210327106257748206103901528067311917314094571509488358538813946284534687280806863288367849411189318211963588370826189341101002302965995117648934234297719498979158884423444990940296105122198378694167384689004272890731728149850909896433214866320791400560728133043416016406921399941191270563512181879398621933227143649527859733724593850061898860676072330988494278156678614382772312308256489206766015847468107443455127590061510605876986694817308555190098737311501408776717428828424502559535761564627700452219703750786705267324265623842134858276143436734102822548256573847050606872888522402627630616883138336424527067211941781705556054614677507874871562592835869693395385614359687824308709384186037420241073520743030086393480606251945257620318632524617706715583851129883771788157011768928138386280088510327126949983884691836492174375115881688360845353833090367476522525982740100657067067424836856573856942120519799092913315760918800646756876084422641642264015774938328046818592910111441624928101799290418154001622149005367030782890628586518475610883348607817567285635475913817483543836751397468747205044917527319726045900700329770890659353843847453889282866383766339844685517639567766721124889772873770528236401394827201751563974210418105421601030045508259285536692869198184116988952507672282641956189511596235913192964547941321916904311873552789611463576752547805579404909291609631963497327138747776116810764433685795997997490035668034953444860588570090931562004705104475343779141673490078717611185659776103324275861418540405813221816926081834977202942263705225610793132080896430579483712572153331632832801953759362629869864645942487585543574834543360041281344090584687745530849727653658280891307046084912769428269377006047047151261329294338307965493207126471815907915153609208366146934960673123142536342844601880028421971716630421682627370915244005398660184961602177337115190243939855985248075108299782267584100856605143626486309441189625253891369574094592218428454965317979756292502793886597531117584749596428887718525382177937384647099605457068799900592156433455386540554564627034099753974442652647555416165546179096991278190110970173563483371240688151362885132346478650161950853774173504985411692705471872785613990030673748177429676954871294972814108372077469953784120071787635989115471461279420602316135318246274624719287132140848728714614506180160160484609941737111642155671769769252515793582617848586699239924722145925586543580445132525475058915070503399560910635289375429840575234729918653818656655569899562802587215333953409275637466435030643823234709570737019118360242974867700961073406296399506929648868917237473087462450787321989218142810506752820300705559274013049697733121686392210073232720251856608229523844703193742226018665051787841134237290286348224448786936858020824774476688936422826539419385779958158693097478193837468830157035122033694226195636603577173911936637904165635543245711222340167602956981991438804179993472282927813935492804461144765432418632561953260595503622105772503657160397348986713696316496509738918185966611920045963287715502827016997307691576107461283261737493209198387440865518276388217820472765925216526567083145830164776814161634531321807879309118204340467897655554680057239461654232427311651080294286232698986757781407547775231227781994768024591175135515514483244192993122170567278397799369561711989721870137945735386003172427870202784230723557803241428383750335500646358004055579291261871530513960997100954289345176276310782838608318201625007832196417763713298538258304422775909413066809877056423251925438211568902769788026124845131393253950026541237167317285005954683322941166345162786922067559436680847549697592226123035551013397687705373709183689786110579081305915446356115642505766925137973966920480491749044030905059212739033340015054827345585627595170406155748889229679902597275637891411464992814174713039503739289066783521349031239634299460258045190405640157161342876094564928256027146983608188860297430091947056097253290912118039483023931308370076257004301025632665635580526169140146996697296809204426757650448902407152182796224965656469912044820625082933616130999371051232095165804714334540969606997223523378749144646800285049553543137963023934341839512914338527177641457666064999704146269119895934340768352600816221782963431509675459886337961814670309369031699608071742785858658282349137906480538513209134902457889200233176192849422723940203166491721305926664105623702361846774161566480791322854296802840961254823472686776905919511601576361994191843242665334840101750690658375005326271511358903573429562235099882847885366445583959421053047886478037341475607716441839220614267260940072970422893963854149776177502610482024364768923874013783826987776775683068043981743180155921225507763161157846011798304991174356230724156563696882368299369561586421474257181667084426897863973042277612286954491787613418312697379947234656200502400344243541998609260893823405809846093670112224728164651514244012569976679914194160193299589881913922302726819759273533517725733028300268297010424501064276737681564976029532083861513364148178341107758941882468814401927775260376873697726736360397772668437158257491079363039350299721504860822423660007782497487879044065309808058540872444926339082134045931727419772886325289775661188493794869503985044940319591125777479325361634041717214565500207508946173253850808225130521194097612437613926710038328371839225592901542317473789121710996691156589630654284294134872502502172175747187394689803049147443624490055157033037478128210848493399927139318286856433605782772394081285111554431211119662522270669503722495222942230609524546537218187483359485980183616596917372940582079599911859438051814360178738945995738646564796891389506754374798255843449138480223733511251481982135961337809635327429532277812473071289553999694109402807719351361932313361968143263100757051579362348347052468230602829641477567280373057107094553751293615677523682359281930328994528804050030302143799815672398859354076105915323873706226291126715540377014024518664262152061733727259704381788361459520123601364047327782501841830852937297543561069795821851537561001514174446380981173013603311186687449729403198339496326927733854152795438546141029048136364410934988071987189464916525860759334703331504738117031967763484824223930466574091917515029539674105634839948748635605482392242890946186803522408470917698961191431913988413041651054025453719890213338278381867170231980659848409484970766254326639868539061270400992675278060132035422762275993122451336282694596034993454281513105856988818610304747290558001843335232301185534016335259792529963281302837413973297782440206468155612042163508890709883344880535450303024025562516023663582468860010051824788724443692310793306817050896582842731928971476451262730612830216407335477312969611606323652159210022529085959274299018853066734377306202467464411286414445624931062249071312581404533799499994524521419876035606375116098028350020028362771382020267961274930350083283917701506134580324966664112586050148877164227592355249408387473591467655541708310759566412636535327123697748806619065941654626954602928425376901143879446584486590703282435210558404810211835384823175989243535535181103961333130184578461719252220596887906038788627289613964153356467916476389320423248280644687387382079440876711565724871152944607286840076992434397146127422644705205610986130014800260326322926610442716300308262889556776280377614575617505337139853665758758654421592001848126961833768267234679398737102263306347535456479936639902620818032595793660363206620609402574102482030953823172528036804863891389160371665428899128909636922620054371696575906162032796860978034228939950054524268142519114680737545482987491851827534623809834162645439876335172252628628127591356701213058195670493007968917219844911051165173266062213149598282106880237842049416528102109199256340287813296633263544358892009818859988236947802513441006973667716695366354162529313812178000576861590400174443913925059336382691316318982796176630555184866836012680113688785852986698109299504069402340676656864587275475076876207225903329419380595807082573819298797897712628005784833968696918496687362329474998803033016205921702453787345821904446950879172393576637389185086495067364898158589153242836626953158303969346241429834273284775772915307566254903700685723387611306302356995392041543305083349980175185667665133494721682688499390443715451416244594675150619519611907960704909217763247808952296127994855226964570400786553968729998341610540609976181090488912316579563200424845199550804383275273448262396140757837794612135432961764051256657267626356355161146695455584363545338136345092121064586392597744997466396671622290636139731863195515219538381817337589775738364577702014606745168232207849577620387091092708408534200751763323825678116201253238194456552418491073117996832615173049276265694737110800266560127558996880269524023574361302919079020523789797112602020427474780298001768788419767492011680944216744094835339124372864816627683669733796964523260977835200896273793098933806134451761057736863983303603838847449271523671194004122506772723085500104141341473895518245521575338139642381381132467414567287564246741529629694834030254333053980693987845428333121114542715912638857531705724377791776053542988344897974305550006691066757221123084816155863992986302375770405881059443935717174356891230476724185452394370906227348526031301892580741249346471766957206737762830952694984103068123429608939980549010087766800218368614452921180884136983089683157268168616443069555404107564888581268319630830276608957720999077188093225293374485240513744972420819584319781476736103973330230420281619767829222285687056959172458517688541206437529637604940769850957863795564596447559454829440727578922649610823590474500895892524080983040311355952053516967983551619011404210454005255452925185997023378128379670467449914970403799090440781620146566066948957988116690671584294506511596773572918646240827381141951162145952353091618074973449036470515634592835144525553986935092651136323026743492027901663997439044723066965213127097348648160875150805372194672826603893664115018228360740749477264986806536249067791314548707678214486734639534753884332996539750126607941345935147534187365564512602962327566987385196219256997110725965204213570227684866694795305632948434047711185265306495204377179562084964981254343491412465607373755817100520634452047713153041961886124827319623504660141189783922298923187435010719870557151882806979559572542184591363918339589009498344582695336220245329834915095620954674957589378608446787404045468492326989753288973055763846761631637930753541322966605310658229473751715129000548218001507315981194150443118065532740231918888003561541000107539507296153155960858569486608832161687654770765301560201765055047176084746570434627766087417119873115645255143784368354814627867677473443923805504440959128616055304862705374557360083757638862070850327306640666350135479627780964103602170615885644268042740073023466110313362641506865831419621120498128204037843194736356492495718486373453611524713766050212483575200651265321710720059405473208262956904828625837674232272765291311677962426753875738568832410977287062438195627845773382544774801623129241585485344964099754228385578044846404201736298517456371774660854902942195525629049807466280125194148067571636807373277309727747037772317770432334103680852602617442032163089640565089626676288371527015815047040326348928989245580207419599450815655042078781431370040888961934951875298299260455832937940378519398725721768592627830815536624198228129047350374045825874423202460390458893438271089224638475194604395795935361982411694866570522812851331706438262636768505873217643772870391592958162786335312920869369311568187043196593830553279782277085633445908804924715825216776825391536414251173478305473641239077440376940135146138959206095381269305688215333631908886044392171121898692519423692815831847896538377799759576929598988073089454762007021690616806619948499968066341411692066461847316904395400253564826174804763149929874678046782905986751741209892455761266316737426580319732338827769562204213776656289865258898444563767180397789563480828260244011522293427115007020319730502090123733886343993476133233402520880198952529611720245352938396173664736278911771234630569037889215645424875395447989467812966250957944304827527011293252568248766628336952469743210644721245669664044209305168830309934356067133857414186317320280384689097301704252461367675111728128968267979640722640069039149410861125429003818189553986603825526944007892435050880381568709748354878615674653583466947218121484116791491522661636029441384887021255640572430431227192845506919479046655294839862589838280413310126221468056627568673007741192495539423605000541695989025266864824815364558439837744529828456065396046377565205085535671760842499116646900960627201952282607349519069547059523745503939635068675672874170104326254172164061377988476920694618553572184285820470504444044482268359426359678132026822775480332765859899438767964547063718293023785483920879156282716065488645582240421720943403980914792259455291051062649265744455624853568360415216917314736586893240653267902698571718715208618555158161556299683363449572002948920335116193048047016927761837160748559847156879074796984270714171619375490355021298377773470563894149670896828118784804610682837578966936268979663921083788885487771030508169792805516813273272620758625990104477209090663603996227679901110274976098364187943349072590590512294936052740218921200457012725497970097133825128841051400877826543218495594159057267378933408661234743359323726020010368297509681645509989414091874645632935315957241450592936429746443122706865717119856552400005336935848212707836824031377747724117236520338221320153949908882877915095941243749689352041595228861020265993194962248729220340450430790869809382855488475060614604165836630803706787253176749697752273953256454493690742795850895987379590076538122842954907371143537658213714622480804671624201991693033335459924941127450475280564462393855982816876457050730666087098585590185672837078813103079439132065567403728086067001890628005902333819075944782948516638087987637028160839537365081784974702953629154997035953243355259621487822045637444189806258672714688831467617532633463307225028281558245094638132865852107773442274739844429163112836648340580300409391329304333923912737057365059583391590401034936199033727916103736471784680855171839268705170499899129877396250185499832915741056692232700333970611610188092179665512640996714690752308115857598769270794510326232538980115568174405637819030039730852812461485135617306710003758611338709954840243169822696833584707270097272903102716535774133733842993873841802264477366036222775314082184403448027213835759107847419790623298776846676258239347669682608898594795040480147826242947057039982791083263895217445837456524800628594004707673352680627126880105893953800274046962777291605963502048867718426881075504864978233915958981557479432106460228170534576494906041058656459902283347013053484168416148857067317247142635018421448022797077556914010669830440936043127031552315692760887460288076799532903434365651745236271569747553847220735728847943321951055574285578801654096007756564139741851540552377452287503514587500812206722028370182389016111199304287020938687256771738188531487996609316306693353964849642454948939624632326009750240404387796493684672743717519706935080154424754421752306137490760445960898670306650800426223676767487179776257110632770596820105306538918457415016486687570402098689573395516598433274383440389746356348734889786918154689865200216996773103451618259301275158354447781139343676713504476711833421942107954168017400693128168181940378584599283252826467661853151416506778131563252050342780109999675350558866750174180399893081685626862136754803775818126965671139319805681489869765523962046648699711237540184145904216648128977759078529370476621625291646786935930897984427028407988989702003971629537800339342057773132643086994242880652024514937935927644638522627396291751402559116137694343017162255758834829040674271908422132372700258543475337621464120900553793046083525382776443824610442527773450792003510335412430771842638555512787552872284811100426018617522216559243715812396224466001830057040551936481407184102544420561704384445476791854647644198805869578864536562043794870609370229717441538797888157090211372431838181911365861688753129406949863896038418186885291193130818994447719146581851194829578381793419080317259051839382129201403543626193126402865167601191045185969240485294556660671845634195219442943717686378631465826874248516180581000505627277277941606935233583288395718151142189694504046211679449446940757006327846973232473259678621064077436051174881290169655145658034809762050615118958827575061696716975501932727280375026091292009007765040814320512280565350368583157745882630571211428399115753125279244874524998345008307198529271952638805946701618307679272054421467856134209593524040408732207832745046120725259957978127560813290916370160075902316815285747773984721243818707196435342890121808807637467740182945442105864629277136125821927937463291350753563327376933171730297494984160568767694377625643344063045942022956156245456089734489440037267118107590063819634780761863352667770492728618826377401327392728829002383760664146126437744256021207208091776870110407441347006095303357065168102513959483565225737574172216938898297536248412030865517589077964713610765719608254524598631593992553050094202679696258447097508857214091049931829994573640143072688941954045558478162854936986316902840980779222803661967442708860852409935475519484733858800514777560123161261147628610890323060444879316194506536173263629692370812971646041989444793249996582869241985950069134200879911697537856598475402210379566023547635241961573483315972740910188316624654627892843480036963351998476336331693000789013295530468749892889040043985118661539124463301157504293024395351480047157350914952182628352317921703116629894582084968038085212219799396195166729715900155100569312527372767099970988979249266626355937939116315358382620306081098875731461014598926068007945990577149149879622788156177761710170842040881585964072855729911429083568592148241238927261269895359868357827139762595556803475343393915652550703939563893104863802022343235897306172100647892535455534989330798061435152701921829328745353685098212564475861225535354472107044827911854692134644710632421011119835539268995935570841723551234382376653606259329934854265397628468133986921571823822435843478630971710947374394187903500157414986875933558025240610389373405606862941445361387726446483554447958525570561482564347793719668822462743059187279118218379456363685122387779502889013765559331880689093833598623127051901624789785744093948172806637027419386017490959263883596861595046012135316272367476747663021101860704123213245923165437959245329147572333327891757023204770930477626753621062099243830442612197571726426446265202162779119682936331883800389408680672152585750058210515109545380381792143130340000344682088219015189802275523881835357483474987826301026019132685589401717202481217410108691668184901441179573923415630977863790245260720176928407268004526408697647633600306069704408563057628370662172319295316142580562636414743395739539911668305164910694128591583942019983701274649968019839423151608208134996661898300328245082898039550620549274173355593158213039880769370062425161795389380069562796980608474326939423825209364009715236652643863341599955058025289564064370691861274576437855146393586020204422835834087680654034292225297058182265801790254688331931478921509566766013948375769826887978279331180488927767002587026542809297544605216895977225477656113181138024708989499719634127588702256681666142579184624487834707549482210841310907860016317380691873329635669955524940587452404324854752897068037257571226295237990758105926810233244873511925543396001228954951255668187234140777382093806109103475327750309672251353091435295429224715018558318034576994520086045035501356957132004567432916779368896788963460295266827719431751596189430481871964097456991359939758458017712037029956991950077384618584171775390069752909781331520692112842053460916679487837552814481335503248855721971068261389395163896685166322017500722632401685255378738695079886155043208924365019592287157647558033043903953406627198234502946681178079956553337459333642364581476456498106738212442027539796889162017307547857055712985154785148338983414992492220974534835399487434211233832868790726226185687851830021718621387260272158935668208274593928181390296164735012607689651446406092530318213399133948360810757389778278971981303809350208440569222345315473909414319969665574521561154451988218012709268976858989504779610995409693423451306709344582886475799361209449726342347002975363514341021749699859203249761970315337825031320463610086521444742296920865617216675638775294144763608708746712122604812275599784718837002700659886881610040123902779906298404067413441885858538631466458630369676446854423923900968476267627649784222342143175275690934581530117807831791683128024947771863550738088467109918330252221176982708252179031433437420190285820845826086716435654506740854309034501240532489210066645231977047767893345774807606250263209503500427672715671421441758070071234825062427566840886616982206754233307608744028140642702937935130995164454433059761026029272080676179068470572611085570484749418997995868164119683193129963377904525844149530285422533059186946395503237634950938743784829556345792763176329954065039123502375616736431730358953677243416145809362500770387995350921946475458246539427888025551067304482143927351077873753536987269689191833119113713390957041568827690647058914367488156927933899461617815928183861180897982890679955390498255237034457744611624023153134111187846257364629330453509714454723896065086708384535941619418034093972917172956201107396014138927375197130644502254219050183421821726876788171852879816607337603016736017906938208891161368666130774749480154215922412690678864897656303013781368121527002971206710461883104402273021794435479102786817544161962767174634675213123723194049359162669197716032666598610220140086435827080089591373160186197138082100911485023490948605180013495277628644547080763346850711074718574774738789708954674523871603827868940428643282959328352528154063950622041171849543447292465415005749910918033337830663101721693398107064207968795737854404349262182349670749942376115373569689205364943208486049764063640376534878512660699718682385268917189096719666118750893391162509969229252121567854110037122965900944587203939999313822851656041503446868128509089136109247767032420991415282750737556651345124598112469420760816277755950815568671736899792668393895589974286105330304483354285736708549382208347951063000578809149861103009837251597414524843075019164203302241287374124646902636364240847113885456540139547020497617829779480319263849387267757425214696590883198185806872371161840200973144478347800593054796356656343832555656099221556743564025685991081712312779210396808733406695185287486919699388490169168848933448831214657093793494117495445046092983896376481820823395782361269285595383193920263920692309389785323884310821626170838864187291546384414918484974824620519566274130860122599081809943408068990101954026587531449197247511259312156340904115116017227139226375018442589638321326586840529483926843408068789351265197957256208165704311905363418015157885645002439905312075459267538522631219889812124812845371902155200238350236893589762863702681719211129312756509820229550900242150595885983216273613736735380936019802333479772691667965360853866454414845499451758129325462871876587738695261785951294628111102442656075558565909837760978543829491791072939655083212536186977082105054104712155323096286584234561000937961631804472975772457881216073874766739825631284516001094054372731348972631609519287771293286828681568209280876433530468806035773643142891354682433583189845772352328417015566768913005462759949427111962692991802948436395734457304046816142821856887233612665577673094707206116702075292925294535310599354093473753600027507061574463641703989605231390088875537970388436516131111210719377572238468635739693536158530826862985505511859541692916397621441467163237516384210288904885134851561964166365133591933464639798055971074208354956098259088620532940889231098704024504929839587258714412817436244605120483486630732886388615003128213752855265738636217672554353718280016809492560279189827870364943017942007224674391949018687077608089046216756651562942894296280317245210476050434011956469194800658029083179867416296040239573289789960439630624480976928686483023566639903924274808318714668499048436348509972066756909511500319606921113603990336433245037446581975232601765918005193953097481342303765148954227865769290020644930196467254798434081944377087977981217168804859747503303805972437738552410202889421027156088099279111533956119077807696396631050079270094991946082350378761739960672180037263678238582425693351641691789068688346791082193265403932515439927508608514583961561428603501800659713339384269240764824187917624075633914257937139685897490333481519651464101885926277293345011936628292276654921774396393568330228748834167792188213630094153815074627958139159098568407434486664484443395200901522207924220318758438494688685794848704930108924793911619099578800487445819374130456952126234689794498781324954083312500814442994715959746060002392369596338094187575308860913175131423005125482847959993280246382366240045792838286664239533672199581196160806059846214762376977027698499354990005576460876414218339509609758572707787986198242563329635588183179695211795042008613803398806921676656382212154742329812292105374869635651591346536397529057881543113094816242349179105473523671125825430290952331961149202710564804840476676877000707501960614058905925536520407353777811594327100037987441886719004571649320346297932928611091289890199488358060737784087317912944980597001373017665259986411962612301479700284664929507823209277765443618598729685686011431659927406476726650937797350020686167413275357782816412755617606560630238888121503114097188674800418179280996776303287315761967271087137670939075999919063318651857653555545156645911602548412335547754354433637310242280512838699523333068052110514922337318166200319373470210489845898367848242278636324414952848778476299742221978437707700253188117672081117110322240015852437003700602286650266792143588299112635682472185180527677141420217981248586534842721999485486455763084909785952377050873609350606070969615369077995790457127870260629060738958507423302093389636799966704865168804588580584816317091528157482472036465740396804555822527962945454694464385330795025096777021275888600806185332452423515316316058957282307897613659442300780654322989909877598530475778411327774199295458993244739391966703858779967303527342447285945509435843800248649939033399905818655413720844360944793169535636186840354226243339451709904729122946778173342890388186223640763519191485583730605825713243474210005650008574704720248008780738286798805949747190119314504942832041951721794037497824231702579109635110004591992038670356697431239825971945585837851623844175070066603044416010463934994441776748633374769909370364532613126785181146565916917622017275834891337977528740102229957289400158903359128555942477345846914155260205262425748684116304805143241782032997602699476826451926536294973065988784092681748795941440440137783170905286462704963295121032545255004759348435341444460263701285772783483643232410068268622873844969932094131891902484445596829241209555419687015276577628216615652833457481174640204123201876454640137303048599781794540184789163849248261326619352244579598354360058258579135196275508703926022721531420984522350784108033090757907440771630779137081226111447736211403033092773663949832602402970386786004136012092237931060374019112532379706638649880514128283272600933430191332805561796739634373787687704937770739491956690393088931053485674805139644196758840535978648014721135550474723823412721455257722955588222539179331760736522816658757735762891717771682295487071134983854707340450380247453155804129034732032541763705844431188096306435960608534672312417214152401926586180274771873842813685881653311319028796761964863597460864624273643597149370382467290570282217446589897833553945877152318965202986854967877307020521531937966060802676753383757433409948161361249653565990240065522804994020650608238891592236154546794787675908922076802969272670119627480920601328343508677431252025112870328905614047513280562042140889489158857526494688757584405839138240462630507654868335220623817173602865018688926210942071312932530658582474388417670034093013589899130121036360774785601071448127611119416409004096263695520130707046768689188055272767861271322172550785735375834219443594673013962560787452561910923060733927334734251094009674975382316001017846324177852075533282128440010974017162427936652969820030239870379540329607842391045484585836536807436908921533661619941668025806581549771258775876256565925183072288384692297314053153667941499825886709596309687387715464772126868405872167740770042375578761523851352871024955851000221792198356044669814418401515078042556962871100524131851400151817784162963963134403393342034302547359923429385452157393621850193751173599969707833925905676510563121114191643477475335049329016059066449142456707375394900378647361555305475669782961395670804019584462963466303014123116227897513965729337828766635906043746713380639258557808969603381252556275259982116534247447975412302194799673157559246943024990557027453908510122845338022858502967757705994241280946491502794173901036919168771772503612356849456707297797671608924596241102530470761697336786995899990702867262504787402899638327849434373659237508252925987500394449095381267211240494579006887984909719228035940324994213132462480241217850794211066838567991548046135197642944732307081173276173387432934713782750452214487026498345734104313108882554425061075701869317910288880043261077279847346802868927000836956863148364478604610673246792383364004320782248451170800037120573503311673414790327979600046538797870572254187236980255127067369461836361157091397189016607885248258979402224673952151954209770289151513172599145429927233434890219673671540219019842065218251031037595333941121833388163695077158246124186406793382921985788329213943594806752617410544656495334823577008263683264638137474048467547184630630662479813013889226854513101166471078033054107046870946069350777399204044683054600429679721186124056556670218769285884536891701624763832227105589912958197381321950043555391263675646508468252069850836598194330077856421497111442989470809963575757357299411187211247203675668195256940460116906195749158404836893967797432115486710228303577088435850532673420708687603917903094236614259162299032988781924199284804107932747736994670428779558200771956662156103183094528648092736499169868547169549285367769149735889917780195880782421666813259279770263632054544283436958696296169055769201346951116705456575705598411933044105438720956115738080716000268696547198659333062144022029429339913178862577046314081755832567848336685255592312165724599670904744615393867533710949304693176502019385541842949783715303088946106655573978098611737008496805292022397758197150128979148911785793096724560263961072836605506258743263642859586133469099485921428386458009915392684602176765298916866682411367935973079578819179872371290208462619870067437758583225822877127482700373409459116744459730637865733123818386784905776181288947124339475516528675841039405549737979536790340017070510688761098230590950176727696871006676276742185070109713759330576166258442448827679974472222615520255909874003987576577681342790158713674195647718523392946170248663116121518180785748851016699013214129377951957902695051456128420860796390513189926396330463439521668026821059890314239330244362476178500050023250719374172544441962482763545998242539816730692323656067699378530341961984638375929831195763456443303787927594108239253427931457538647793752846391691260995879519309086737604396246827317722546711447500765910699138205183997453655299453911608053098657377808969407231053610036387947005083250402294347057443405956853641445697037125533656764633719683887483299780375785444305218155728559003784047047905667197505033105007510789036569892924468061575294525680435699723320882068599016489925379577816178218890207760773684365724817377468997494974787967593446206043261060836964013846466771954362200719735214676248714387617126723377951751651459040008040425841540961589889233878194092721391136021179933974514201303745546603505033630408208307776901606581233458332010933705126244416395543354576732144222471275086518062085946821124417196703449554388671510041734661359271529761583346306129874231611166777321021173975773356538180200724826363858390285383131581646341577509921833726405936215418617743330438603046140041920422446554440667010239612619912462051849882964489484478595509681929695008887870475948850594466775856781959451868661714455585476718315071319570277758227718243625095672484243967816158451499726308984575412559165644622556157331966336751723359502470495028685463631584093049774299729203890497029960189170346516103880471375192331516669808054979209968601218421325452164098193273836748718658467984005730609458159806479362893012511248914421978466534748890197449097500458072681510498276384466529199922737412979924647086508483681378643406471412818068028273268485802418456798652913455774786986857531541392952106197849325330610104326864947177888173555935640367859541763752772882195512296747491826336217455638144272572718947360585837407381569883930358001633991439984611175679012502818076467936410643330946469996524716200923627940148923686526691415728358752906736591835010703136324503250450863403112165626960356035909461190842570188690707322470963100021812339152217918236186647456526828290597800950329423691187862967661195251054381226367717004279542025084385536294562247085462724058060246797576351708005340727860850572941844307349470191333209468795176380595152650070930246901766634346503966011312852980910302397334188650323898891839494266991001060077292238314270702347861429049356965932601045768000473779529884112958469002283987230350826069821454141241038839517866784781739740372560531647977067688062172861239296717102804157378083521263972779829246423530443532798253985457382499827506330687281944031018411928307448539656617793108123534174738485062646276056851981175124648071218809745491694330919518548645181644501804251174859656046273747442245462693998708530718842307030492914117321180520654239081229111749221872213295239584877961911327875120318698740760817866647259453713894938166370661055541950153991434336748643193298970082324753659662472857044988388420878726579752393248289577335784259606509817228483702222844714319742577698678385368317632787985996975259353506845950850326948375399663167510524633638422709259661397837166403438295103840213440597978503968638390096540581284947605341284960457505637730308537349023904107574337432826250323913609432672307060036504394314650561344439883538900564733840644993252555682221279878847619147522786569190906114380807626748716773237389539562750722188770741371429036890270146059939399815742483790325251603520125647410203807559424886227054331523433034617429422215199703618199188636346175201682039709756205442817872997022261715251865951351838030184818407584941441271424164564997165214943803266539683829634467102464816525932982167624600360793720874462637049005794220246529769770591787009111653827387595795922235525811660201502713021611695104899676792703793682506045749767273429631105161700879114268794032903514053995614731781096168013170995169878669618485760112165292508130064401711119287610445054466438808846171138237033394488701787925945911160683547149254031048030012941195173059356250686225071599087546405460964793046640627451378637762535184287018650806212242417799004784102352549787829680351191214386279748876151424519459379947238128405233345058447384284686002316406231417809108645806751269766364948160681039455573110538394135990453711868184195489279541945299907364392248042024095306320164364947871808041148295249965859360511854741792246047488366745999597626869407044409279589004875232186022618648468963218992143630063159940670681509633717324663656377496680132015538180976256833518341698533317495571921799728630326124523786440983756922331097396697628224930098651478497449524409967919197380769947448053079760214205039864370624463309401223075024876033224770685799126254009758969258934623743601575918114917199047312508381570498679134161674497207490993879399247948072094380651439808944526239161558645534798022252140733326713495873011635938095051449313040817982823478092562455535909510848985892297682069396745633555727899881242515148958689440921569633897044845946924827229372522808127531991686056712772820125405587284631133918191744744707236333830011008667931056218383187026942657513136849834145516949841974645814178844781274671977080851917181562611375925657343443392150866886508719935661515048374787871190766743717163968566711719851120036606518716507449270152412270976971793127367676014786708969174537744858483821244470765072862000728869414505932217948541750945674860049297649708509004022579420902958171343445881757096477341565936590140766368196540890075278519271956292562016255236056738978613223053795752000518426564199244572770553792402377107907778517329605485314600257408259999528300936918877145491403611437031145633995510409825795261187971570546764228539366186232512028070019369562280534139622306699796048296338529973379753989354524520078189771097070521507573152310558047481417423072088151171920482304828411084975263183653954879439713258017445758131513566579487670458373384163600654269012797405125771889291570512036638845305184280446012861623630409964363638576421965132025670883047871136605055980414195062994197137241977348908705613011975972225434477435122336193125982832783601361687078440655495701171821077278383679353747557224529413242940681685461020809198549204771151953182221891395689436300840563850639509567097122872917726150804486002201984423743727520530807741428543873703710343420585164973774855705113552125561216560713413748702237949835250000621565664104506276708663344127507942927529859231634770992674437054633175884544186586709038599774272912937897008973635560079407101925730058254792143151773857746312368727185449960101638817610681886038778366095245443843470571943262234610555120014620154309981098517460518947649713515995198757565270008701679822589083548130569097982462708954332196184478513649466847394458029377815674145245222778952282869189889970639591115202694546623821935666376200565469889848505077259035162403468832440047793694001464265322270843612643456426321121331448509235283192571743273357497563587193449397611968206652125152412633573422676673563480615185806346250386952593157024613940728968975235098232781286736348520165015650496697089326615084401123028010342888792153165181869375763583789540631392317542087123074484184184347477779865676864320906420997902114893703823333965685480608516779137733396745325044241305998009258572702151579963382944745170036607018592231451499137946663661023145019394677400686393008676292731688181778003833901597166250535839926438973296314710337988035768210529120304464832522250588661874944909909201065591591821027248696749643594828142855672263346963180354596047100895665095577712182099096471865683667146835582217440409320801675596375088492219697205756687616437693495437896159383758465365729710680603753725662929813561234141725718353437274023690044086349889815730981158846477882027558619517926163042588077720657784330114759345387456303174928238795699794093168804493711070581310294408240455891664120358869957847265603354916107600548183522729650024765778830521831025386051842549122722732976141714077936635872585272129017418553905475434984737721714558936404611050873587260804676205244712556479843253057197341774037064009118959711564497272166501061355586390965068355993504950961082190318598579768915609569125842662628549786116383274217900400205962980206236547302681958940998389696915509146130131616830559437795960555846877031062133572741794970671980066274969933810514307707591038032295411356531069793769121202627931246280821532584791424652799225004599522067208923442114009696318842439831546541788164244907626445293472520894849235311692786476759759909910482427916037350571532953356871473557157406760963922854720166726155611117232450957337106608111324272762449143284791649210302782366011321111191360364603199488990723429907272189223059847617415872974866150665666716804846110924498954396252113113008321298443518970180906180197603806269672436816557570127919885648615997461529572973193657515456927109778044776720272458246621910131088458992631707480501000751283036113817330902415361900537689588663235665646214237636013325421853847720229295087622845350398432293032331150034062266495428896508518215334965973023972443072868421533316164591145562422375512968718836121532088386471465313748966208001532819619249349377173803640214541249340946331438716215274594189852158915597317394735277504898044294852854151514375919029798222805249991348012280228251226134981947143205344217742784046638702349378070663899133209454865804853491868830468130652062570664904040617276815768016914364398816304605338322069351360280809390533681316754423046918443570249677495346470883799590533098153999433480955335235692349908734276211605536519879662573643192419407796826052879441978821805478423113855182879927517652688530985046563538280397485095332461963314452205603197702271135360386678146487546508373020050242539618160284301945112055449319946727505121808549489924711147083253591033636391130663273912552906146496486634292207891529950363181709763443775826530240948228703372889755913655038082808597198258241594084683016751566781878537647619394543721296911042309749987802255908534755555730063000567131603484678449607978755345915615072118849738359585495323659664256022908362255327125224282313076173651242827984997364847007620861266860661055594806326471177147329437705731118914740532496245976559032765021761629229985658784318660986180791351174168469429286616611093030067605377686133628001582705115585475161894465836027695706256377975923713168615374659445382853046466056247147967223765269033809518797238257645167139552919962962203529614019928742936115884175015959382120305119976414121304458774928780215771535739477943550783648418377991193836025690701350487829248421257447697318541274763950947130364680991961885345472022236605064623897269412786350880018033288250438067733316484854784252514391608068138482623218672618859488106856262418728952171307813667420128413322011515934377645370458955631646233090939146068804365381379961076640769228458425628721728467978597029555063931605134041971745681336677835920127693658167795380517219147271877694024027958523268175838096923732774349843372752051928149375448482881615997599311138697935817885166589803611442470118048344450092584048821395184666348509590718612364365261171389595056384528040958637837270827288007245868070127523692889378836993483172995715140825278506501038578004638989146221602879331282883568802176261881517514018331036283885841115967446107988564190417151788071369178911221647480767245126600071582636969307618596090669498876853923747688668202553863826805626103012066988246473219237750279150646512105760669587196948388102963251332972607775969613864395025397578461649906469867867407588065714572660758689206610780543440341957391740636429475918273740216187462320355370967368977500269875627291477846135436349556239307223024591027340185599186251517110718596832917042635280025317587198600971680259862677028823742920717729003028436098093475460033878951327862037949992061345327726605698732192189436681901011557096218898942478240038796951644753650849897170359202615222306539388813361316276511912734275317083727910489550239400545206257351304636111886948516080432724274131026240862567711571598028707143301202961387942589667068324056364188483461914686261338140995553235204079809607319790473169035400794270211451404534042996048137312863695529502764337118446118140532198629932555846744067351195932537862686864628944010120963278167442952171063393105622949663149239637632661732596562047118915334944852516744116148356779404885040399178557753430517519421130181652230619638791026845515082350112753670715854380988631114867491756952490605663088435534819046754303931507358078002419588713500002776658200337474672948704583843273597273642744902798497001152745308623509799917547753222313498570995139258877477475376198755220284445538154873825761708448017954990542334967619410649635351740670485413425717758772277384504385568841066750024827148191428092223895509480752229261981753023708151171824949682853291314199272053216520195069787564204466035199662346778914047919122574307628665783254228707674311762634223931908208199941205948577649788027203740650184910919407330101858132414041914889272602371955339433924506845306437265633786829602451711930814630973487047696807564019969320425043902558492903984276513491793522500366627823337414902859830613231946300568731859000374383293743466062212075908339367108781931817805018877561764117582211220926055066973338088302594258268336381761973065500175086851583778420382054432778921048210195954438748972192745105425605836770823320822316378391614788774575447854625062423031880878204734903479262370800960473736505605285771210710023460294267648667740525117323132596307106302774905660562081610973868774117810661035492362734866278060537324433230391423401111733986693423331934543308483870953300694961434077214086319431261630305179367455110759166359179076626772607289980317403584643795342319272031221558649474561756724090979699769131993337359008575410160365824915887207454765857864928065891266807429947129883744232362078068351706422689026845850578978855725233257081697441725641264148319585420744350874676758747355096177548153015800323533983449718974604999973116904596910671280412349999346830227247461346273936213192126355958630626953782139037495709551661193983368721939759413391824946252200998706452778522867077601663762602172010036427464824891739579510750361940348250823152149638166076362544648866184711974745117270111046189115436697985941552589124649732825414517995315463960864520901345860369220337653001039405155343046811731586382473390739181972934063739147224837538276320069070517758313010161257783905951829089812232639550040795369304835041714609752401367779895517365804264716255114241448919479413882956627160831628485410146752778733364287100517052691391132980083326288475301080480380550389701078313091700201298203515334597852093648529675367312158993264382984166399449342411982683933304981495836125251218591278651301347835469595522741344096199901523573305433499783497118126560336125537955601270418842251238556266969740931949147584346128384859434689957301839240263369572536568039520039181115642240992106902278963888992534646178503378389132464043186232001288315760188873561908046577152613855723543266311938503083852912442210895955691468874859576991922572354267935658238741019363257213676346016387669420656965681508957125861442257872319012298472063526566512832492890722120954564139767185513674026699530516024408490860216283984920899431712703241640438845939032730271719197315032042736297300786301565826713422824804595192792078673476174189046683199661803143142202866851521693627821335056636875134680301862713633099894972309550698959384062330109687506300973453590199826426213697048833591593087676317799808973720473926327962708025953585648287177931498015916350186685241711810602987401518226642325844236536768890435615556171819947099256100655595865661913764120567885275326128640634456225756455795326216069203670233265452824328566250847554194194847700860524640552019913305916972729654676504546630959309894371792718074046607725733065779235118169304164165440997560298548098392537880332966629586406888638026230921646293582548513525940820878718119078717122739990615282819937192680370492354198549563806284022164482363636828350329194828560814593513944315324915730591582871073946766973839714130993434883590439562323040905060326819773190292781864490649700171433867143075090503201585520255115881316209407674744872653991188138455777266316025245173621211767580638711422345321527309204754172635244740940797476722686024637642082689229056487325768436376143421229277906165071447266737597989486449316060995853504371656500449159727911021027481914552673971371211392207597218617196680581523783708117577966324803056158794932293825455834008891628642901764010650912123897627674236337793614879925521191616226917439854001428085819376103165358262050488105751390144178720716470329219917325961703533507577832800006555769207066763079065816952327947179338525252780489614912267845286273537787745876464419660811391082876479165775733857349659463346993869172498117584274890116623095033682447277793715968728113892056832227044615500047265577375525538873803659192386439168766550896168943042281397530614841913338965471256855632310693911342919170104185872993397127931181382010151418861068259780738456290324597279444169150852496875598687003623081307050494762620026556621996610837569571586549443698973725753837764926620702071958159872503323470424038042292472680836454262456097276865710752545475976938034577660342472247067883995512849325154700155570928768061013090674450668987848504437445376835738962341027724149389140043035362651830923192438595588607096393897694595047983574720330948356084346230821594428644361045063897484607642987320988329293924658637940830620601308814854430543395644674640202911759627635288100753366187375089684204375164645409313337678157507696922572386240720464980997902146044128684775623059628676398356023001697865718264612024029558489274945879515929706718807984801213844410700985772180531857959761338003201623140432317946064445670552935630193972726533434479609407843194268195299066287811793669586525849138703217204129058560460321275712744961044784770640683578758139734031742489427803072640142974437167790519564444958666761282748778425483301449784950655660439208459856483369245475032477261639721332507903613815200364776257858900541752984215632908306589897349203023393590663665914544649673892877554349929721628554401281873728270482543637025713145728105229874743212540025382654726251345310009594639333829945453149227647060445586252702724340314496658924767943258152788540322413919256872677947311283043540515639810441889899009514352733975265049523616164488214378782123241045632194544965445887242246300209164472525588762103848036966994443904721170257438203090441531821754699582047869684748898924843226424293885447107980178490219451683781734877998274646068845272194362992772605196472145837098165022164621720234638008119625589727331581108416061071519863154617582570030037799279709845591233198193755469960397411511156475180452669065466683651439332609955078294102210170403998405050817227201793268200752356431301093288926937582556320600465212387547260208803117836793127050329318203239824951116729382452744838604933292329070805981694617251861781152786619459139300721915247533071412420986111260087294351734512773161086247234037591090843330036695522138217995627272173672472227349851890775254723255548164176558321123447988981299666918072878495200386137696839677675779762343740670297110665751858419832747680761432888351759772813037351650517069056057749026017772942600103114060279376585243032294480194148759158895032177198100553903146956014042590040526992376353408441434544072440817428975466697538161436704275745575548511585725049394789587086658124140519505271608926601329384001187742864138654701177574944300265486340497890635454260413607099019305005577461405349011115680258909716743116748015344144507726851411396771977810879145389181074839704759947292957835139823481172553259542412078200993411364724093902968682788626495165324613810073430125837568475039494733093871074495321297341084259405092435342579570912275501061685178689268084327450705025363969672603598025354903890544715956709391394376817509417843220129953491878378372050105293680032726934591769732603497034362404808815302664632811567858186116221291256861977690445462726656839119860055776519531056773502272118884173014461139324678001626062945519598432486320848992210805841790027883080884401064823903694986306858667174044801003566789173423744766637580820379445746356704048449379295582109488872928679750955220049461671642376118614023892624658522706321943729728825317177512260677545444584265786929353378711727018311045758941007834949011158259349941375204682201833008233376345720545077168567958535782799462314114270586231274115665570621236374164998540357012401224808133183815236217232363626357730517554193746911879548057357012053821696689714582589852826542785085032640706183229976750294897647808980034482332632413737747327923657699299037855351395401504378756440250056399742899016825963115369207002481530084629048800685949039883468084867449768297668856325375264549133887676572173865108758878071221291857449298717612742539359064951271125863934818955134957307844350887797338747542329339062667766419792963781267839531860783265560962445978354393787454719350470863335051058636761598555910586125864531080083261940016771392591694615698119491011581473695116436284018547252227707204855094499366780631186993388447301362725147260550606567213441200034237154507539723098344828169107419227329270513112936876629363862300181144240726901488074188643951777081204676525559940051572794944229727651439226191735008781247109412956270046873063698723987666690634149168940771633943337416567270629636770749361154823112239772763245407047750310101085074478655327427880242595439433753061056525041964576908429203160606177815560080504624612799497888269126743179711914392759732967656369307803160504573608597510710988638289021136421112101155356818670299224305825492835214456432671593569744008233607149108161927045938127269336487152705353263506401232119755579194543849860622048886368966193921471425479708846022013486228894610718848914371067453532234258957010969652578217308300852454406534763811572223609848974100915972628959947348235767004633892840776086790011991420111053334802466476971244196539743765887372892375795449189913421029867539901767191573635950168172128613766827755552745460139551732934391653352519278898942312255102079885018329971260401116335718098977896787574243490913863437084477085228129159591862128273246875847099377075953103793504349862068022630182836616203241914676260670534048826289503504258407589999984737757588443730034217730100047673887379102306399502449258987403579151630261151505831231367990183823962636372689665946581365402872008919049636248039818691981114339257331249510315007511092615705915611559200725260657304235396775853638449972749550951246321206228888318076526263004188962846944168061676678856253823241537083566354498987223713269984968231851817188838651866489692921850970513863620223321736596034462972336964073862532416792900404462379253846076471812446858134046080702604899749230457062720099920765975904982839624893399614698298029642626612882676256787882017567833714001316969702755447626676185156126660986142497708564093355137809906201633688575958137044863675232896595133946186009920029006115522969440422027836014847127878384317303624489233227866392178370932386720104499723021011946253776257117661941127370710205402212873177429230396958944321668153767155852966018389051643675560998343309051572425648992481041320632839116321178582316368736896476468135429234275000135532319550358053897737731991143553739737463202283535742809846983966253861035207222830270111014990138725095784487833511088451936646422001689528773989580745194527067471698791098664104053621284687486196723878597089536011080564883240062039111959331721458830406466973552298861696076503871273367637513032708194150400080343918236746379702217513692327815646144896034736581567886191822064503280742996836774037475057852001742359591281422489503992142054981202818299257156224812087176369534251492561387197295215149384013718942092514019758309490303308152266718197035092919608023643916582011502669857972550651587533268559348754964071526668288880337168207242218707764734866618441444142780450852024038119086967097393581471908496570225168878753659403501240283388100611843395027377289192944876392468155644085039272113594408390703592550926422811699911279092764910661115533223434149852796040413993799639491214795541915932821428744843626577227986262454824171000740138944089011349455994926969942324811453090882231747759690194482705906124238514035233349290216906076979919888326526198574396913097406299142598968447632420334197393170786802738749783155980137523157941294837730293450335812757511850056909905541887507868561830405722187341940378254892818495348406649504008985611210979114881717860479455280824591459302765332767453142659068353774383369208876784095669987462857601812702751430575952931796118012043142017098728541872293950082512815762668960649665286612375358675996043303102049556576159721083043701943969285018760792780574117497500383132011344959865618955904595271726327922063708000122642570642641833960438073391334146027742524330545095740141312531450601364473349489417414926389992533940223275911794233696444620490811530940908608989313514160793406409254106487437909241213905180844727840873591985965964372506070073842545756953393226268242578320193842772539626559879904405962534926230979732536781981319741804878918721965434113827634766659420565266749201652868586597337458722580790789509342330442508299701498844062642310846768743674619449285492352575199384888445146001969733114579808409424212994235570702915689270415832285898448050567174673714671626410094135581660317962486665647468260341604723403761498610803702727489995553023236869020875235178044315217797200591132034269802719185060171536267911053240544445840800162248433726082214371715249352467701207667513946022959953545806494625760118633268615295836477607006200050046407367881492615935427055838230462886079828803338060728038829381293095472656843167598654442529303307589321147996139162962492175201978317700793430928007658357070456927784747805948615273216565881892112096157848058537387879986718275801413341495889273394657303204448884147710685798788762203449979175870657262653710527480640812124702886311555642068095892241469777205304190624178319078410027777015051438848910696539895259723999423360391974399260180274832225125353807327471657205287427730210542390102814716716750435784038436818004096637957358773568173676846273165657444605290632640984501821699156472469676964639732262771659785293369122817351355663208090770362836347708039203259446243978523533279704037046264227664254118863627356256417853851202132477303027013462542462634337528754550273520825125940573238919490968527107703620315130800682921848242929823434928634443453482745795044677956686964593265669537774893501059494353303344652758959640983584679872317164675750502902407823686213474859024403181904486678295184478612060506008740379254219466993754579668220536803345046806340506234722657616779703961103979308921877082828242437773459557287924075589329570111274407676483953690076380167687885396173555675877098119257127412501045599189684917662528966760691889857374472067510521248365204172013392755916507665064684025906506350556448092750999551707807284402010796458037895893204441023478330009640812700516377108624379336702232325645162604795628695793998631457113962105054143281160768611750367743155610728406598527457631349714341968288717420163217776618090500813184923011870029867753781304918605783492187648552141564112827703010394361633517271220056433160059699986517052910068084742546826797031849889112682271675419270598214282551604732612517294976856105057267245992939117006105939428902235394065047295165482281585412196589564222247679128157931988104409238681348594860382868765996191510529668221175628710403935216140049766739830248020343321330434706342577270256581113006178300678465513180845058311834159115997651702247858676733896285056010878335156090989962729797144811473292657791302628863414683749736857988048606478136940783103645016462369448082995966978317957997958707061757944437760081823505977516719653994685406649664718506944476432325802766990550416781611712856120388168302270197499626764618013775484271476077245074851727136777068291804910708184912382152191306286353761692979502705162233821966274905847627657589145779865745160328353576782915169284034627688806481310438222332929032743497495304332460655181783452526427414702656218130607692307428841490825549418617720330661859782648156437967432668914226697796316239229633639970713664953822227696808137223945054962735426445479850709261451903329617404933389373864290811841970801984285874327442212690408716326504035312344898593059180126310562311540617189962867158934170874162590216349549698343328463359901468630405147343020489302103377852687097345157366665325782594678573362579070870336139729351682690017468851676049839882456991211111788449163151863028258588087769531244340458696242197016340069310213338823940754695020105641875863604138466969746640000154847117303434807695531613307422165615051420973330767366313158717057414516421273913717526521535041861348975135520143893044463452937150522796811849552340448778423765294074897054343240224856520559626999563703957262079718867746854596478993128053573401321490618067553545099649014679594229085415117286378640297321349307292314826677693276438978813438888638178595971130494195039832599320532411628522180535909110364060483108638275821985522996381661692612697165368821393472604747513974748250887738910411908853835561127652900362622588704892907094538582571126528216039723409461123590642444351308224733991829532003139037764900547827102507366777476305062401120318136797259560800123895427385162981095888752907964908291725369115985328661448530047085540478778640877589238654841439484583810202646586814126269048320918927339528879465900513637061869251543372357269929397696424173549683823414702806948289114990531812334955099159227875711575273083860743556284255697570044295979505815513877722005744158604944843215366472124209063569187219695308245217546460279732807783633834841071830068856015788063756922022471585627754734032666661689880571627892384101749713396006431251797674820725987638866120595677454828808904248109203549862162835118092348766930177588539123728712038756396321411962675471697936838145733792746869350366941792100701932966009593561399020764157858589673457373358727354650121864274597677777361872937542708839757797873355256782243176179625375632886954627413686879926058948268086056797332599537900224254784728056630408290935909935587589525987102944532454514791066716720417857350097265380747497410764360175190250970947317589444215125814427335245932248061926214474571319714916586299757752374618961310333127087607915860356817628975369964394001957613061403205101884468254623558884475887336926932880953442910601402269783703958871010292851041542911381957202344062987035455564132349817722574754768403495780386958391375723738061930441469771147656951044647474757433508000250661020983269191069456260544613573182156280463666377224738244648576243341842022407923411470938574853697161271593347479812455617221708921085156098010531203109454265362001255533321784985441129555064693965170599704705233760143357257949611221686595233897352465261811425825000631464518494936259839810278430536396588602475908088986335406766501914385284393500726219017321829746019434063184776704267449401249209119046294977571351414923816630699156622875201517704756807840885855895888528953514149067134345734395406560072479581516712972744730111770665382140772483832787834112934682990850128530077574513902088535490871688708167541038757918619073713225848734014422516602545332021001156130973075672599889160128769213838135515500339228510903984649522376423412380478287107308331125555923718101210371192537083418082882604265765246007582666133929448704302028556022070597148145343242155954058127921828196333475791143119604520475853726761581385024935487111445033542941060251865281789095856717757668353053277794806051310304200624391937636500398790484765303305197219122038071702692520534506842501383910074046371990836003702628111741776473633918421111567249797601569189756464076192871157748477362972302782664739372034200106145441035030292021283405818574410571530362521781624033834409097680887233996204103421668359125117364873161261506137090011666232634317188728093984377560997429853202917008509331535119742386851026323647578793800630636436993110468007516890478253896744889777495322651341524632365061277253157493998764424803785448032212839555991691395286087892079139316149388060327545717423240974432695078107983479857108646112419316840221145129737093338088153078969025683950054055209499496613404996698715837585337383267637216359805816854331827520905402502342098540851667134343565677699294353415864682623148976754152784468236619979650984419783232183139151763138045473483447345083709069417906534318478505052715499211556623494015755028207415155860365349455614145813385809243501154180343090665131919182040768644789722447412328771641977861004388808074298842314230776577782059108319877216544338213190445028055724011461205452591468252999076034489986849356707260167261005783045536404419643899477979023437825052264179877315594978450055958354999132611643561048035247645395809749486424514943384854784848817723082848331119769691284783398621012674626089374718870618709210357829576793828940928748485929008140963837578557647816804601220525841793590937490331031333377044976218769530853048122274783430635669173039831586004380183495877458267654730145967530611913133190475625972461961122236373105786856244482855017916572907382200187138827223572905352692250254766356926629024928502043138441519735730698429853497150103701832874292960786819554058111024673786947074443313726458264644439355646722195558172064701858620924964634661007499886311083681922974997776780106008861984896587773432709073735030894970949410765731441672070893972478775521344771911629574128151215017167222900692091623322305625738434579857892492178179870879976462794594424576839088166560581337930811962435407505237854974148655872285351371205743079999828022282596609170679362938973322140497381259857384883511803909133615734093000327043707713795468796412025452154617409561893195016851896328184066309624981058664226538250041628143492596439120489665127658865388465859333693664907741894016751151695438502653122414970483327976771252803490948685265359281372073760120590673745771886671389679734039705794178557271662904206010520551655671446267122493491634783987420758822164924487564470484382113452099733515218267771381137608558427880153691260690276451122513606597031306797093399334245530563661814324724978095343123817680958393382985323194448958717051052558890111319624341588798387353749209604257871195208871370406049346408921727858709065189173744175961480887995023510099593676835587915694236497834062240667190075568054502671339563454841427780441631207399014262158082759652406410478866020815535836942105164004704804624996984349973339992718253990652087144823823772734391690787984079518438720755337313428934791943819408257804942777954009369300466510303600950016169302184344150978113952459494086740967210225273025185798563970501764687985545038519152959833006011524844111532509833085758140100720783823175713737525040060192675628092484195423960239750636551715793083240824846435295672107668087965158707648327872111405110178006672511796246852596571845311065147381086217295279621199073945325913652481878183307171478254336119463417915806496564644534004426651557281452997521510184017865805336742197391422666368598909416275069308304770438787493121672586475649796694437749658307099187813361987665843529454600862187882749129361398020399315032370150808221106241803713742926636008606454887021318735341118218035444697122791127096255514316259488837603047654753517273982940994212736891759563887355154386750957716461465013977953692173784783345562499828307618727029786623471591184728549693219620723281504477772751133697040625636461284247960944535149353941296219743627531956754941585863229680708192558867460568145616368920192897207658441110035520829412750988742181483274952375415771081453944869002400451758521168268969162725256225639464614521231390829810309241081692067179364744325201228000404773360919051505584416511668380353467726014170546773632550862773395704376200869079813144366285492004983581070754713760309838102454605653151755497064374299434738778621406412854674757981764825095628942087136082066404726752762400191100121538174796769270620580970978571912264404002019572984116538555239082507240880317978358968100046729738628774454030808658543126181680990944120625203846917714261974858905745047237386287277139966784725600979694385348787536806602814746321661408419486873305530284715537013555933951076525918691220247052022919413178036952637881851512005017405352750010350199092475806439817668174227033593308265783633388136489629250999647934501267122935197694802265717444762261864479709447564651383396230572571613575783431385374900249827863608185817824420410505441248166360967536104688166313338679863984983831708487005806311205335643604400956456573972855208141308181169628603534277656259536269273662431609303907947780231302675036385573602692663845750466342801233622848710168458929979880299567708776217629128279823504782794688200751822058870700389104523828346570449449668476461602111512046122627174183929529537955997963388202506241466389661183949504375599152973599709106977507632046041038540830220083491999226836989118069598057190554209967737332966855066211832072660172146236058676034513869441828562907282520018875856177268279517941621791537735408207688856842092493960666436517357089911477306512173354241279742204742781451247626265876327044930382691309225322091100096889096021828524266073561958267918919874988963726513525206482720280524713134340217300353935873330182802797542051586609757014985413277448562811058712830620003630769449650282547107671436552038208393312841476510395885262038933855502153507345634062942822333237268373859714323177921138468436275909372272166490071381778441810551270242847616275493338792021670504500737309632692729291157868938613031643955265006993827669925595341584733715954272362800715589283458058620409279716243381272082240388000865877459573457267108448791826330855983641606279720175486600313179793907897312458805721182181614294107756968282043427535086275907529722112011157817069292737503055157444668758749556636164566261096049882600291428433595929785745470661126139070519217929310558695037980804830214468548856887947549404945930406854397754415674837306500990337188954850741562977783475633667238446328543820896078726653165988496785123275472565385542162849519902688274763465035620361058644203809894343658722805429446914588427650516077055100605013109494122829453555444974380735381719285490603359002060879712890025716875744498369334925702186907629335726999305715188058282924748872064525395770350138208700609315412198077155525468637578166308161521075751256249277780357902470643853081328508097438811217953506221754958865443544968684925437741985227654775621511481812796585469197129082697501463555643852190330622652307371311766311535637149688124063045597507552238524635751152455700582013147245496216229822265680341209407927067281654268023138552675175607416254214477134146212809428860558869683246433250897981752145770942978863872263566397499684013495866835450038607010236824069474313500526450982643262643900460430492907222151023156597436009187658784993550607227333861049403731683738620688175329621002876088123843978957858259721940379108921345083689497944305498371574804358164330521613411655824812541256800715053664849259896172173320503543600955143326920674842443154657778165795922077940964003341660222571285242391906256092553434049390120242374945483757167609139905097115505410556959365229387131159978079977745140225950349853459228017654439949843343964904952207587016781785587629740238894838750674468190044299805829150843120660675567119903600032423052747881287558878284596843412197196656698433958537412024756374598324854718603111523865081233303166214534185200980188037916656285476648735583597015395432231033838556986037146961831736059890468985808004287960924653994026866341959353165895284118941726413381068901153912567997673337422166738589773344906295512035765930162373360795754558975774324326765145312461337482436562036147040451782748810046166781037721901680641882296370063873095408708711083836653460661341700357901178718803711019165422267008385227925671824416370333352372618034784910049046410832701594629357554206051640375784725800010261764276338335275156362574458390074250377295611020246824601208930607722194904180922487658547961556210400284454773959174632391164260675788475450313898395225957567150527678315335027209003814037503348322362891444130202663917857067808335015296178031424256562413026578431866486867774882040617939669544674826337496974771112960927588484456853822614947412925599004328941143858494669187612021796899150412786817336736435568463808751444271456177281290710455445542046407948405655165267080015007635778669274426021135898059796109761219367069992743132084715053796110347044268488745971918780896812188414428714857887590615946734611897624638919105771420632000499497061590127654294265807240498968807534567406583960901758356526813125476083181100949466655934612553244117780540622957792836396979725386387871081090358667082982231732539282417723872818697399471400182842376542932708670822771666056462553717661266364793218420890278617182978599139447208119384390751825866510505493257576436583605238296161588680258184206044332257188818664919316184276053785831803122399235515992331295975058271008771029638074718216380708826576481016634053373425224256319169991094809204788570583485740403680469840527327051194920803568322132851856478153449879196727675978601172216571353719030425613063049241988037379115536677896189741791219587992680856882683908306831315574212588879217983122931043392257082143830449521683999232555014768224393642339802569299899757134774235257232807855315393954415879067437964387892480507727732506880245107884156908616993516956390461948147953662665844419125036928766771880835118811907579747351793861368085076213155414750490755749063193993863739081528337142790530634354191614075623844527285089307810189697272995420150991675303542262100361989399248469826639314293874119868197271618270796237851789030452668214789987054045293025223301413373293899890800874548845029259316274621181777470733881140699239140040586385669726501249561552811162259682049317304626090285388499495713176719299807465613520334606902597856396575621910013338312408070739867814876132666333968655869163240375267181208140114340866768557969652814388253133057575881686358092171195968021992581670825529482886864985388698171477226595130891156516800596447571128119082183082931512777857269115057580548743201462287509751321877645384019758033859483452556450860542383770386220445591709399570704024364203418103417145826141433499362739765407547891025705366309751174469783571704309661699176526022849430858010262087295662836261782501154502273380301955746860616329355793978391091540596432698932490689567305939415359247980372239485794676500624726999631895957560602064001558461567529488766877542851357777393558676293579935822044649845119094577986363641875990750005601572175760057890608245059339037791768445347465950666964260006124764954689142868529353945325977461055392856195710627617792889329788783405446264053546980477304362919161696440723902426790898508243948387746687728886841499412707270855888457857151375881857103291415271667101613718050595987248355991264680865478810564211182542542671384172956721586878619209590740802580825754473477163484624015728261174611857861545765178896340891218286236330230944423746434669097471961916137238909588858847615398235773009519853796875305106729324860672279747637627489524860589849905963920484310922054616777364833275616681806688525638985055681651686123411828552400060504480287331539219360829006964163270204370576926446043733388244798015109604539073478435007979225399093210510891557375378962290070282188470472736151689169009424398522871450209924030289315807995570489984108956609399374692694231855417989237684377427283638158605100473672463449427732945985391096912739102604457411695938073478190038602346399630702409450953850671791979159993579152417366712634959092886542335025958495884943650304636834946781457116292761371491751132334677839540707102958188301695037501798908889660388053344477444555601506107874135580475449134082221170682246617614297130071521112499951326711838356177546128971529800804984780896950980283006709870048173206849737521061390496122579559323708734710070013657504003719603669695585216474275128794342152963317735251728104542776668083501803285492477657454961933934452535318805596274702733930650048949981792731345147942044562595998118672708588460362563207044909757010941778986651180803123841729467741290223669557118830418416659740317600828837914324698658395297676410969723488163083437287553304175077455220905241413729001408572600894229689414484939375730717049143774317932971774155716019095782158451666683059717748708712151574132626433059266336826103389659936852471060756184733558026187017319520522676258168512554161744217021343522806507759316489535201981918568182425813581833683440734750384231380074496234804943472169907748083199054465594693383252111639283997740302382523597593887464403597828172161813982860562652106431320569049199718232984352336460474580456861308575871971034715100066657793796329059544885927025555769467252665292392212659933487606045153112254854222438191386427346628136343756121638243457894305877524240508562436640251848873222948360353629758300489105415923797761546143941211880557377314575500755740986694406851867591296235856988874447792404353440759733819030336802222392040168196133063446069488771737199912886249618664485969246619252307240765937975679152380698807815283390696466268914612019687022915434553959652491464360292992494798548151183252754880001820352926771730844725563488135190176686200141539753999939802036312935902215554109438487266924795965717920145688482730907789325722475769084174430958187584463585758369804258413256634507947530974314018591349708181357220146479153591277899497270516705536455712298571863326539984475000705441076245396766306534651681806799314585364877282671926582358879894932265889422899233816944127989406719262528727511611926908133902541517883719437424206585900584659810699228976331854591520960098110223346736695863663603931452575238051348656451558319367550443766362313011112812242852148660493799038294238904997870664366289554312328636479949409639254284330171899351920301113345382960957945378636941119145733597494096582900283534665842589471640995677149700096929075513795949654547440664490476070998749849526679683263869912491698543304698338752094358244379402363822725095514654694592401356264914172064223992096078256810994533018611897347230083261548799836827357467427942382600101318922566831139872147533288601703119699550321722980802675759540954514858482914777223675078169746159653071942615623870420002842537048755442816136390599694439207772390916986749190519942456068041760517368503312029151625567980720199123268088962791849574165336685313181475325136657944275165312553875048515598934820317195969069099232320660956804765692808139536074287752046730017618314841702325216803603405551585936779860690960208057237972783654317781735246425621769435135462377283444200465412194992991682471822796277757674321249401459387606606733577760850959408585765373209613846149256956263825109639392810646492356749939342092042233633916019010658321842038026505802565926102442325337683766532722417009920946171371011660823499938341482816278742392970779340252179334595081682233783702451654977774491762180210353282832801668364047494354207600283866620297494804650124975783945391926648234100016978839134553582766460849308211691681862025655438317988619908787757736714497503006894555035816083357089188133853517114236427461726208262247547172057406097508557283948846648951652158933597355261337098150113572468085816526293658407419759610332204229650991877490037713038842171255991208457602726347099033320991095023459428055498002720054965944521833185984498153052603365983364940775778433753278425486018295575119249458586648175762826430227127976576921246074946253075134352672916129908391366415885213696046134916174492168410481803194327434170530574575210739725447177473225564786201307054163520617629462516610993965061573784964041287392767115031816390929207894374819628954029357418417827482960384585098381999579394856367618540001946487652395997462789817879548855618333221420710197751168713163884290899665084086201238537619210156498197285649420023201920056864406420216869428851025508170214172648917047420143955083161099422970598522098743431729787330403693056774076006606518914310136426741353958980568989957892512055353566378532142501149061872879381007097512186056964505262338807943695106034693796203315691980099628884763628792371876277991378118301621038321393612071714165489737052733821968153568933311454737129095353276602204359869187609768612470865188614901173603574026097406235754866189652397031199363525148493950101504473874035770923625307451040130831885857113094119714196189289849691701106398097075533626143187501170547404882921973640211442184874735569723396370528073146229973003019321703468250560349915688685727917227541847340699222001763158969576488322996432576807835208608924012342776489510161722169638239884412979544890652017890052797622639377992809195329392831209329357805111504582648573944334201516333200487424818914561812572813929081371220942927208431288865889363866445766147392772121769297198886986067472295296642971247500242739889230439953108284727161961598202262492812788904401708304409883639012808043074496858524878812359609354976808736804269044372630104888664402698116810810726772894307404515343639782112036313375589339524321005794608744183937394144016102691259373991673248793896527116782146298011922182320356740672719623873826718759476308530997058693068995296225957297773292572487803726966580366294197985372870788423381858689489237371753991322267642558407328310922376517388273327360845535448150659242277759447087779157032686690132837728768588767018961835411096174256619925708978670713453233642814063471286054963790023486773867678839301435033790894043202843504184254769482572079371279989356944586628388811969015035683743016146025023091452435391878888391143919025353087755997219412439563187225072652847003354140242061536923761677402236946852635100803311745121952243613172233788556334898643920487843992999275887094939319459054359183222702140523110907476023967611699383739597075169994562423286163386929161124159639323049047060176955451373826883613325715058592357068845486615871941253357842822945595918915037541939276168477400591075065494916570112849701541245964942736994279604825022814169342408446385899396700324817639007271945644008338322390223361069840921300183154742250346688602366372360914826339312022630325802552568617222589109975192194408146639836324538516490939392866699751732256822504739022101482840517334622234829253980375694376285520717138547485353431860308751682688342324804841925907169255610454550835176843322404503493431154716554417697759076627459381190920746884675734528960065167849211379543929899182289239529022816248769515122667722112525071898172913381407394269084268330710734559461110638276102225212404066536437098267365309775976619287605761127799016034797937254746957470182855171040497864522218599443945709118371319797831764174503020151115635428576134724721013026824248938583997050871139440441964713162473384050051478997382394635321659240090267617883097277420859420502746034410663995864691266754990697912546522474185145311233491133180393159551548946556622789513338645327673767148318669147633616143497562964640222470028548938449838497390024356106886767888511769921475248338346092774845276909102025026925420153896947666265814450213568186377547084130276901231905692489749496511243506338818905406003658554169142146180195952654818665087807640370223885120145456349416836662449431286937284808259727142995091547877271612131504423649519481014218966104941447180114261910046453698594240828958136703111034359814683950485347206897042866746143023645095182898385974968676371927097837128757108426815315135775353837524726763332939398491655779119534158325338690492292842288988735404907576238646210965744034200180243801300090264322186724342985228334864437185196342376727407498412552185650147741341342911384439113841632375665611273345730591456463776064080031734547762067805822361167673654269253732551437686360917151538978773631217155045553358768185359659795193622727362468639102520858342092735363687386312598709651996710108491683031422619676851492797838105452190202952191059002172476294076051642706765876912822945738156427914488225643840588084163754668268138139044830719549310387908586351726795534307025034869021184956130392029725096996814191039771116574072541907753329545015972161193963292421211661306207164357710247690411086184333613517483058405348132455227023894251139219439412355256819758903446021371145633989266002489361666119375440266933254014370226691339609587715888941395256863651581411778702565032669344133982337365059127187096790383695973530359671294225217472484036325196038252074457534494646449512922740149474100401922409201601006299307150447458916445943656102983035987349240882366750261379481029872057511016273591068103994009529241035993711575630158594879313527688890454443311646443851277484590833380169035401935577589652232879585955676716343901151279711987878339716990972508360595739031894887420289118229410623871372117210208572783365717786093172667240083070750192374675556553609596987545604545724523111211400410861169489500651317123910923717008585306361509628151130615588760937281173601439532202526157648927053843202456043503900446002259140084322497251078688091264509105667344580114646083077735544029402474713131424498252416872082469508141952554541783967833250245472380073175002433710538439689853059061951420323515184222344975815409453001016034620737356323052873530128966454791945376482110567755860397146735782812620122610965921371739698447308207958444144240289207167727011027591098671467034612814015240626982303676853814852193395519586396856077566033853758279395215783276668560400486974539533187749917373436325239595876745727604120107064899866376524157655948201807611636839599912378053589997100055898235539007967380542770322081952988428803638036555461275916621526983071143469335731013334796241416627147748361042297216093884290574457067055751620330829673325163870099164306725464395733485343404504894729585794355376685311221581450164192175270161884341720034765248011448753378606960952346322639404141415723700819711876080335667199602875479864977585770030754926292564278233403143685386558864028972554362508701070823933936539306316432673151085164646690614411420367061019430485770722057545314423385747574057130613714436432019913110064309566766154886707610542239965797629509329777197755943673141256631928993316575546368088035389719574055981757977919378511898911408115028621883795456257553559275963408869454957167195334694926009582784871534985926765389072878010954937827479897600065595524097974925011970000929977145980567115186305924597229516877099012983123262085254392189032378916747413222078846488239981878214492302419038699631946394705007521886260736498172956776017485734484088836194769286155171084415332526047526461740015005811616510281257345782987192245412776600717629468471158140329636555409265804771364374273710337547465190449953333823075613568791414555655955579692063242766286191826611798320894308538925711942556226412135811813539961337349924075103385206069672165839509152565592899389328417344041108226845755101027483976353555194380758382116826038439934630077133133714530542599498903906398537319968192792028748930299080881365883456085644021559489963678184622016722224837316940035853406290834637328206328507598547165253331646166707153096952011704733891912161197488912250930804589763007551221067379019226569998178586833048622556399173015210370958097046187651293865962874715964010402803888337720708874295928990543853535671219321424642971439342338869169411155956260665548775039641893159149316592273602623964849909033813826027997984750560586063183712358658484478919561379606410053643706962394425035173459915269210318124683658158426142656650573382579464840139523405125559980273005966772362629696165410831144134873055747312349813995588227790581907134118874881877814381192511277148399548016457518005791566403820933853386144505873857876808040519737499224780785613848697958582845879340551200810357283014905624256447094376496164599645955692488377529210856959027091825352375303362140936359539603468084330677459516667967657187908279778437767823101877631365969066769812677747264893063142463570744466613606133024258201821958132956027069940982961958081282597643228346771148620043481253162652101503457565606311002733833407946475881360809459156194704159310884846271500804463676497699288072636067058838768016881248820775233184744985978052267296157362142777717948876410895440397857925812607798688060155885790879440695974582312814769734645544164447899825220944436832095675975748588982449823920094688758675217758804890948486227620110276419376449268305353247644509701935640394777933019794516758502253508629290774234930370925970156192064775375700594967573292203689931338017772422135600486861588918434151096907647143798101631131759670627555067009029230583454151523388865845787690170736709287290285832528354719500608594203465197044424505825715314460736108147031675645885407047410097829021805658205843512421846593064294720015097882384405171259295116538565019797944163539970558136696146946214293075730132970165077914942927225195118913018317197936047518442854463792603264104735042792560232505259535535641588306557503988258818972398087338658901180047595058752646650877623666654691319349390595315862961653239274573255569247820046039918911743535244896077637270588969978728908428781335961436972648495216112148493255047421682873104098089291077480661785825517464077151559536651504352088333258954320263940350807696077837395021276257540053070432465871341561200207924221330862216093591081439764467305055069559344418662244762570603259685548051160779226965085546167735931942483285302825520789399826299791395797753600761184569337247642202645735172795427874165771077458659779599503209086817006389480405903552297851834042882625850825481156739266818686767496805810322165969768101024573235936194912476490707873257242620099890364682761450286496932065402045756801821878041787823242307540712412697702972291394295601339855408695624303334967062467598280214936801371880009688119464738759504572631144290619558819303551368335099258962413061958706919684171870790456592364688937327437988964916214504481824265228201726448107369605048324279614315646754262913903366615185846159379326840483338479516213962239582166946595504811088033337157129796957019293379104297024782462217714152643048876749645659606002102238563845600141784319306982717894249675208745538203389623746452660336324445123820474538471729928549703104500262983385975394816074102340165402979884302793958914620765060865247286646094831408576885067135737381491048078998596204096088272175769032935090173472259902654668300340485137398075039850138918873477197046279313247892561526164431698494429299960465611205039235633722041377490735894817890851972706584954652211396429042955280052593077880258239716913914351559257412592892903285989315026728577998957873763537155288602052791037573284536578597822456850513381969317365143575400520195665363083415582788135049478660909681862924705756462769433332503331651604378535797670823735508150430043521863367305212997448139574616618174742388278697328780446668511151810721632101432022146138284317571365042831100028036854071338623697193857537818329687067356241761910946321141616018547830670865032521338789304189519422325452752726692073285124511804270107812210030926468639833003509263765364946353088889309834749050382519908947153470545838221916836348145660610926712597666361952331352892955996622985125820665497480457081785193298861056498642925193817130273078928439498793073255469639324626083556083289444810617306553914871769038758639423735572307211274171102221898613021598920826634740389132930261153007560570477336949664353163790759624875891992918897116631183160852416812090419069362962430194530139077230190942953670746324907568201944505101866608484385138322436218253990770639421346444362363330042464355571792075506524341220563421189533137011453892644452673284891728759536725683458758529483112998477425800825176326585827039035439364043942253572635945967326515411855869659507281481733396103245510026982459818269109067108607495202314853168464408360193543676925417997239883872338992043244456754821645068640991866758400639490093676486603698685612296606883713351700478777330718922812015636217307269582317484771724268883020695274335535703227690820944956573511568194401475067932279762669615388146701717599380214245907158913284873692228243995730973164152863352061439958397571063327263586013212061249478829400390541000759261799218112530187932644251896252710603965324310280267173919053555781307116517157660817519574476538274933644891766359706577963513106977107958770593942827003248268094142894210582769222287516506374936395526971360016456069542573179015932682590986028170746620272394765151088863827685098133491588743065998102705742754632673295505471741376800019098566879194071887533808478930452336529694625833621618424824702169937352743711373144110611366918746828407929107027628302447165206850556427531159199227243049077014741445883138104870554514810049948644109750717404591438679769356757184816632392404490619078699532733976730089935831552487319027215382759620257650291796642886285958424686643738663835090806144333458098548696662202672291525955109564455720719217638869635766150596685654644610948046159294258410713900917365101311645775177081051176585631741689814109618625995669000895229043697614455110612578218022612222597661154731441691055188645869502106893872878700083197422872498160376979054422290666468475563944712589129547001802328667405155243497450031516932329790950323452695282192752443105298033825736560091369088284253737036022770935217909935132630788308987406767895456574756759616321846203135752853204634947857924810978752720415177936055414409096801580251052343375925768790799694731036734661459163057714405777157440554720579706519714331403853269708745017939649926780848495414502651979875084991223072482736694713956294607157343953692330188202719469678176763950775713913719816667410543736571424246777406909456286076130089106356456308356150137917127653758458192265289915805636066104038943144664680667878836970330531345465151609292217188108741395497608066886524432632883064588326480417975748035853684422473945512684126223384883697266512027362137377362087656599249075526230123277699987863246032984513425037324547109937343095785528442997427131949094381636982045007413311547724861419401797384706245951051404131839264466154621029415211156588129018430167940133669935460835021651198197966137045008685571111645344109498610235758172020556693742285358690504132442929123584721997815351595025121017361300355095565095583523379627296152040785239347311817461819961357910572771533436368120390623100599752169597350453584068795135423160755684720535808163511923446384636135092236984820610501650619960934601591896346143300945697282462585815594501126394908680415281789827571881768149168619129030434246387848307343472577463052226655815207341731268195808205351009487281770436792821614583940093973783126451833884923763656637130577523365846230441167843863195664134507572262772891015073369000189385224974322275546893843080927711928806153869704372757790908370078931816517433428958356769374324106218480939284576224488716888217230818400914628653125287953467667989271403509023298563344818590287435352437012450420606352360789795170060863661120542992017887108875476909487880231804555689095510100926400512189212753006415861558245091917361658361583369495735392515709297754476964081264697348847081280817167239080400507918754623678912542018440562169448168856729400149617837701161683881650208075595013996185748712969522070208117179954560436295097367460615059304058061412816067875513581079920211146765270362855347773971296793404649087882632856135452367601207761967378353231506462114705685153358196065817840269813791946484399068762071998763333500501348008252157327457434168927087899826349945626539720568497991207209990712060610326619402155759644183170786907545635271889965759431103068888371365710038871664946767947542961786563497889537287311615603041918657580567386201059044677897709314393902482339821290559167206479777497682942287476263196074411597834268772563863702965907258039400149029105712985527424900847161543644750039028938850431143449951748893632569793223595498060055902722730672549573557379073776265775327800867859408632683179290622908441927324085018041415696247231083626847800493613296807485029757417851606663182616788367689488881920092224040685302445501460845263863657114057909752573937781340294599756074927545871535677243499035713324763045649758983074844541281871180093177579732326495370838997282201498317832646887761339527881892436224132621817196968162942216172164143915855110269189757905830044104589135244706282269302526184025443923644341728604082670656906722767344192324518929815927431522824478407110076358670729695618343047310065902892786113443388967597597898908096416675688320528818091760139258089001273545329351471455350357585764862765499466240446890458014997429179008676571615930909378383477344141079568627352889485884052372949777923969055027573798631186092186009262037603421122090532775724187631838844311344518142647857959975860104539921871173071533919964303651016939670675106317821121616773285419776476153735810526031549027656443638251142335707969849358157142893421763666790935412971730115546148622021238213197746838925209263792282133520451050513437684239413564500921613138434407496951656103320217724138567252455568769414954280722444862097200017873237948115017435802917195498146109603505854722651561984847047272116832634217440652924094860006832896130229278364819981587221916296238489532521728790497696963458983006933076314977924551770389142943279135650980016520239903402342974575765335441905507931213178359223218781388933423730487779968370165966849829304315120174202800803970932047305858580271286745698595794478708942491527303435995874356595248671031797799396520486235037382524812859859661652861648086450149394131914511345730843180233355189897198628738522901534713543156987826132641133943334959034474218271162907965430894960074099867571455673835480358781016475621427967572964107890257951331236195152444312712782988862995565325718026818272566513334143712440314732643318215022099530469335023262717970523898308371382845672282258090485863952735628080962554250315187984317821809408006056081418551666158977679548762625687461552073147034883357881418241900376244411040021288780420044848296583919360019098538693704504849333954960801184546681373108982977013238004632406553512566570381698665614180592581305907598948756587747180170305373052435299162689952777674271177131108541504376402105998943291685724354811125834309851021934781582304140333633668681394245670884539362171692197051117231873393768923806372520993805074573819751056456624771437145572840701916787372825098197442217911802227249341638722480832993478973879089427401947235584255875160477849818100004443855245993427530562196706286461845430722368814670072988292284945663070168376613500057106436079896728664961560080408976586996583842516245535979397252567644808316991891840509713184991840283325658095983276263788493117351748681806492907253820029845731818958224939986764907221381240143039430698051055647369889676502395297225469899894371452603475328670906057268867291002216628002390890266821553933752870210642508837117088693049978134144481712208459098744445656212425391813008032744434017835054079370703679951154278308640427718113999614410860006267896236521156543330100852140712408708089036627098903590112655028560675902898171643429834689775341139124510738767788533901806056884632049232170628016968871273928881168623822449650618778137030862503995843753424461539359777615059666360861552771841196901237561503479603099760918453798359483026648455461826465062823363075917353118696126238015188254811922390424360015274045489136498352095529958482853882151082795655566947894799417282409518095886266227833819465462894950267982144419613754050130170434526056738638667477430529008272236547180601044496194210959597137747181238444371605842651204558396538874171642719197926495546048268322687106879642987083791204539679213088284240784784672635641322523359161899232416404679308335413256221348311710274072238940077622419683859205702066130783555658813326029130736299911311975432837428961343187599301555426394935334540497983442449664735433227217510550725831802990929244813203535321635444159235021126206299466559680107861338841065757187004621793655461924665795018458105008981073126244137974257428698186604492378325636809997498404171760454069824306236109680828651951477448878893351004031535440557963295405625166726414911719339395588252541030896284426812295218660343359965907566060791476361404404834219490532652553610495955169187760001803312780732044381887249394758144386252181031712178816399851919084276150530731647972077089267391192677303537655731423718517869940318058359000358672752640081930018639441406269587344882968117717518202169324952798591363663307500859627130800482633092431449426582554481856142677960971150352313865510862029828128566432831724143798204280913470733672122803742846379195909027470815110954104453851166102333840105581936674422305895027512375997560344707012526534368172624795357895039039252086620647430170458310540730305591875591511969643633162399069293061577521253578828479829389446679942642113673734050341301022048921957742106618346827413707891278068425906002814706411366679797494895002285227703852172440111643482053620318662609637008897226420118499808271222234487420182429986888416065027947837334124308133263132246469312952188031952793557143279728319395701246641562651856508263739879403560755671454690101463018248698997242544320400292580282713744637050099079160408132528701537642778213065038051548342598671629871903247983067351441572918505887294839961231547586645305653999111080162904283743644422426025974177506582615529288508086343611406826378159132036280725159406282992895692385412319260896117098275603062705949161891503177009792936649890117049648348940862500017751698073493148994503688608367123346751273542735941114842433011834977953045768992813111838064722028947746060112944777324344967789424011487097290704922170395980872181340250053163597619773527358467916740980430995704209151219999939142746898452596464729303722309923594299197478216664603743715810983622263536530951036599152695896419338362932915721058678670982514848335601940705459676099261629309780674731038765560460812950557861187920055277287611994882680568882788241571511313430098683046992124485867415153317196596110927396598743994883798617053553987508392294847912215680341814702458674391611927247816228064156404395027654079438500255011808897139676549570170217155545616435543184815832578178336352452514003468557316268331602783244389577973832320717496408891317098487513853104903076334102142414139767833728867763487208159398625851111588626954344950806545924245324716821696398132887899458619035865694060714681409824785185414512729714296598181705776409348855316871866564067853067174389015940060661049937902496448458069228945087260193897880315879233621274869026885169048894867395151598896564961891634408961800904599994027993549013308829672564411503358615973706242814813388247329627564638408080690362014870351781726463811154513391257537521944475247853424847680748038830071612471520303907072062004215882754985962934512739004041832716961631180786196058450015290454904869410339626641637098497995502202591986364478655661465562443680447524304030100931631870130831299167572479554767404333549530813329322341024383091587993037974337019390651039059214377621040090985583839697986074869695266517463767195554884665268088477123415110166405203013852618888292077320700815843620531542747013768928044879219139026015311314187958452854068207114274878562776872186564761979158982594294428766884359385562888851105417276709920432277226397217971574698275359790475826689049140058273698670581757502523503822046974511483124088401120569675497529693080772495494633737001138275615385170400020817954956000751482736056138006195453285470220041461513382651671763741418168548955607692975364166526397324697606203244509721138659419804212344314993184718194761142455242996203899843079006167565802120134243884844875728671455416192014679801654998390484634079450616054377456962844300967498519667628613239565578413187638621567786608994002520470451616370645723151054232516577960258134140198422822211398579483147715362844946774965471167958608573836486054656866270174958126693306371818547329069989846471464367902339994922323766228213853176767723558699005774641087364897428401665040805860673766019217700147005998532947154783357839499781834103151217735733221267011189221793404049579728132483175129729077641507332137709339041693546464749242229043608364576765143390932415020729156818320992248530449310613882646209870796189392164482116489308460710292591254569087095221749953518575942917246747066522753013024801114875817963454501702282600601290986469761653152926193530462011013311411919181387662881403531668104271017512880763315366952540336175946743959023856227900920339577434752942010637967602596099346177054483133978080225305551638421890762626709974706798875320860528533397636110098388135645071149231709321087162631208651941761715181370319554882549408385596382964992319902766697945492340243622951962571874733971489546534353601427081829042958716022782001316221870934078667389342155067410436945434151220668853064583155848442058151277145344663373521799091918313968860661875632835661984769463446646756657289151781872941730306741738595919061017849462608012798836672290541742576455488368340871807426058617684647354524440999736207463487273443629731509826809758291192481170878462582400582754600658280621348708292033195291281013939801709610865201403129988644356796598699368884781206595648102773724286057583118252126201484009095814747053019050145705388099409508776462596537679529836166666794128206048628591380224474835493041702504101482500003449379231049064001637359651493614857551928003982147570346019034103732700046181609051584379695763419161921003754665353781393610901167104191674831229029142464873166599883474664327815133737585499889772967723507861554593353151466290188988671149369625863370381399446899311585015679178399875182267757478017921192020283197543730242780696536871818875120627488579675875362235861931263440188278589080393823253045067985562263923468540414937701060029701372112666333543987074038456852043421165440515129705348322789317292230006972179236005462050098621790904358388264732968698273351430929291461167359484275260841821442189132607536407931458032787049357703821674314795339659567072551351640124651106237644039767100143632694576727216344314149202524548917077683712608870184004789706938897509257280897292860786711930934640557601252935565624581061047216096574336139425444157380980202973681117581352407642011053561920711714298318000998228030275240693612137413965578866127305179723557917136229487079527232357828622310247874240855423808863945220519332230743229217185860924320100827599840617920575184082437165553445611268107056251723895831774439727413402022915418495680095979110533043858999753930390854885060259788173745300071859635565830610219427812404392316960014291094466432339283710379053303823704702105799613907432910243526229440253669164011889170719382276336353174713326370878151128508028074489207266320100473901859658862768763440381467312889191657686637208277323933844359754303349385197029382207950064105295890802295305972371815822302512589927857820163535030358579024137925953567006230177247364749263601823074151470426890158224296991420816500409466171844208231880172402935013706516219720678768756532850178691709172011666854916631389428725797153696676517804609874386948232367522821447388285750280401598464833662619091783152781212152724561865537701904981527091326567760034954348576407394700168861864911533403120181516809154519458497212014243007364667676570960665283856485252015005568327963932806506524626205821376259071091840265158962950246386648740047882804408751539723677057467944507105328860153635370709188743341061247800633054939518958038606725074433786553274611230936283485778329985336280641163156817219204605377119080619759601209701667853572599491911309878535352727610821701443390615532989226106285096364612510898132563945035776690356334815253972705823547703549124502002184985528816458427516440925000507042726188239820801794595453974564071618574579019667490533063291258080981901848240559366805250139134905144078305459062588562539880269424806280564203284721173290583375268072837890677195435448026515463985279630279545733577391517561673966745781442775051552343141820164801536416597390243616847044394188250777520397026646163734581129662200681847147705075394029433692505377916896480170931546569511999043122864574072652688868924821647348652085812602193285749119674499839863140371683461336860504557128181065284852794818854243337539648739148255851426961738122176990976073031678497927523539175830055114595086576910128312502257091963122968456403867437949714004782167782634305980946248008707019538461223500729724831802388922075119608923959272331964585957663956898062543099708064611166405996939781130484602067482031256407410395255236509081460214214142409242598399521541081400997005166695156695529023532924110637754793200611878995361970492813272025786797935629439344680361356149708195597813092718380837426376492001015099705293390478176939303262795341700530865221708570388881902760175368757680705646964259586003850615550961160825510084545982890491523875967212800582643360138177122499366977667128909892754744557867795528761184056390359879573033827451778722865678952211085855440170955323735784154209185696980630416204669034475353708621706326281191508039949730808228924107478777407299122397613083638102602550896265505277144971959071726083726320899495559263756425440917273530789098617853689962513475839709477972601164283278792945515902513222969483174336679195710011670233528868355591449067741643776855326072113871387326175753811687613449104034699672881565020480394332279763018951418309201362683720891206964806582789342906423650159265662846612450553449905109010253487131917567633369674070274469040587630366639127110463582707394037986901633850800146511365335063575348440112979130165967542590214613069419070853471613185863483526759159737058147899328467195586921311031255937439549422902785726206714719228033169614299458680344900787336088154167385301056596456681296188881797914764124722463444325000158465463270001108012972238212611081085696603964585005835693963355724305800178191973931480640145064527205115921172708508272787601200131890764764259541028838997278012936133033135591006102339796792183709042370008552328357495100396284770778350926584244003105632004792228615174529918190844626169339258941011065740988696228592527447382897397542665539077563009800601312328032152640951319274431885855739997759509165168913756833135942907862995919098807910400691264479195933321983229760159804618636419603676091547373652861705115818202863644460142323175416398848820632545615458727840786899379381820190016208166192179976474765232906175466679089955683956050851508946958814756707339519738092077870010092893664939601918847255986377288320503822397577612318766205905815766613749822173969527143093179861552224120113858340166409594025749973621613576418212859302303605654867943339851410658309747079064764494347742085936083173050497624789858868003635874366104060233375247385029678385642338463379013745476610961199027766801483869047715732936673625453886091169503416750546665230844869367918918465926835903364993368474810061288753399304684394502951349967898485066148864334648118065062453077719766457053422792246675792200083624364436454486535361777769651100756397733643811547356583681629321045656156533300634753931399675912569614232765016278940469789769064157072589694771031105678071370398232855344945302679670861104791545921172019948380023775655217056548111211555323365122440742428280621143907791967215272567992231840953112979983358396198632343684615062844766386019320949269081084114264551428741501464256431810502215762494699162005331703483525520658840214369098998140952442288029420335508270591554880307662573829788479596307874088732330055494368087666868522383152302660652972912993876315017510644418741642299933034331333652039520714362967460923620816490895933384851177218978132317367905936913113559503464080096296495027702185404315037092422255746119989452282262442120997422747374663621480287772278493502209588757457123919680932075211073883225515815391664389036916420376145454887674421562578746268608665144965634204671766286794071660961252191475528554358242454521774568881264827730946314313045809592962137367623772223660066488914301739636053557813071105815425183971026555814301182412124308379845730397804601755027803874052619579493546024180616673557922596578584782002239545099743665088237663683575370037042434619514641185803606634939207743928810888575476365224281744615385809856510848588035925438151867637905676827490456628474828558100620476582257840768635202408693474580446021903016221956978742103673592598021507869479699823362440508313736293872364746946982375571224330409471231410287058029953055942937418751959512401074937378411893739141874162908199803226809601412824931906666080454287028271993026625481780499722517176654845232705886463751212875533702241397565566838640406297602606854636480666683781094186233572706088611732997229209781289486940753213607356302860916668200847448329967625002735943828151614241332773436564236408954261420643572953286877365334115910527247523823673112576145238653927544293242118078092537105396692774778059970081255243194943517132389362288233963647652126989609546212102271153161665647593546801873067857682271159762371401558872880178069931501225076497139109714053069733604153305474477908393139005592578827642447662303181135952537256345942231698824809748215983506872197475675754143708430334888977521328230719344148528603790176125337374482508052534531686867738289840866994682968351787469939537800641192080235211876685532997451743593503562957494153592738396525799657235368841150555106687391802981437682677270662987826475850386392736959031985430545742149963961262276695185678320925131914553375731565581397629823340624384848232358306229141808193567666985314975840064172536137584480945372345854958246875699092400874785937652020640750761911824861313037355899477692622352083887776443179007163723119037989410840451725388852157941331314635941584135307489484068748294180333264773173097354688803012309237548149215977032018556450881877947545626947565596580748894273077381929145098513481653185358887590507052258972732586161020512292987011705648526673509733733898824063513420015837056079718291520120232088556317838366229214720431137115020341138127086747046428935103018018194840219714087591404487735765942074075883451099022175710531727298185266346460823018400868746112502623290268177339060821010943088992676069193969706301327609175471384257286590176700304245948027727431361943633580432804938465556114498951849290081979201267472213721955560847796760041536279455231273550755847854809776992204822440760839036643308254583791110360985080289347837791300178199009261664484482104894277440308970406166059220964920702264414443518578888861359438745432609257271154747915045871725347673483284932442147342564194934366792720870694054168541202565265181376419660160676503628531294671534932000803558007219915063492695791422967497395423050722206893920110715267729325406611584898481995254218303505993054215948276864661845400240046323467719612100325674921852250874747002787126547309570139131190463977437348664899171693967773245080612754462310329744789964911893186421411793878227913551429759682164591663873368970998241890594637692401039235492158503459162005448276586146921759430551257409832289205100433843241218319257717141857638415390844553325227529608634486195766950666080510882475685854351855789092100077097211660800418910514987052005804281421883127218445495492247957548729723438991047839029229145918942083143555050111841405065636128860479368330253105804087401077363332809243437195662394265985391565003710127544860615816920131083111726835475974823679306064764054044939535984395526319419087677154099791471951809809300004522298894897145288071297947360980658678729151388057728186578872849361978022678074414103083633857225466329594750471360879495128161530915322629076247225433340002910387593095467084124157014506677000584429430733189757039277494844745420945708383883597423163145218790321986372327652849943997875282316366673792004437503156285936678132905329577334437211508368871805754849822015270573605441640604562374433293982594456806646913038586225132753148050095497470223619875882530182756627053067529148977506525113004933822102299169793091215863125319705651173722766271769977113116219244051215450210916846808158938408236724650636376349723364634401739907762084541031268579626530197705990004569972918559187427834845025740233867587814300052049221064672832177025930530224689276885925665331254720201718896868438193772603806832109781519166088907694704515635906640355994263571013722403908251635135831248289007731315048020230147617385701435064416169348772032484565933494528911918727425137259426385252209674718812718711357195791925043138262930559877663734652057940577127139588023739696644124756484317115412934302676371573989512312917474992935905887710957782570936946265667502123351633466806115766497979830470101290863694733931176404135510452815839133098632709313016775045130695298987903522861362729245464354704746548452686336883098032036146388048523432076846885113202365417536586025260249337322389530031532330366757393604579507284153223582034420621900773972396567819247223746374998686989543629243772602405504737826393232105284093440509371070786756052841237564281437537637207878298787410933770542249667784428258106355081474185868887286568796196401836725243022476024276218226405514001932512786485453877369465252379578900703037997950408683622787688154722000583387886651136254566459297128473512908687715631895277882717802630520442559079525731451334183386304918578364051924790266035745396702759837401524497103191979849559317323990840044794543539700989041154346087580211106096187608310634610236413607015954278352211792084007979488189701277117585119045485094028488585390974257292848009338780854200611176465280238243744304783714655131515674775959080049426635157569155038633677812387322774283713776150982339682656704178958422213173727714755990590941700659650075528846543720728420374709099846927310396147954442751700181710736205391069417564532339653152603504718323214567547958413718612687169118572089678273542731709024784348318456926624878148461613861032160057239192321924689345859122833743310107259111862862179489148349469135051154073369940838387826330360884259513862488572340923679589924373875933828743124312516705288364220013817370521097522106593096818502833089400907659860274727965907767174911649938912385474256790639158986441206615121886743227692857107931301647432789549319730982745514473857214018463356351516422667034702531476869689877880719777270928559470227390431781544729508902994701573255950471344044798256027851855502668585041957195204287337764684543711473313246423853574654218207709567266999458364261436570024729044774009462428684036129390582135605712138808076494652268446398050646296000222605551082972543336073337130354014989805011403011750040919563345041883815182443257691487326402938719074557360572586800222791001117997698534695991002053817219637195044683224741370775344009809945647053216043425666944327312014582528031836859411027974588571404978688059223828871503128293212910301089448589398458679243599123835538451841393224718215768124154628981814914829870210345581352999830285900024342605182451798603422604649944668687996152260017342622376671470924768583488180266162872899560452729940345653246625208758080334595646807436430634456114540681273316101534591292924529654786443816299528107293790034411743241179733845986743119931652789525233086730112480762936441331816676095046051708433891173962406773931148494364545825997165003880009677600601557673482334668732273964207609644008451502756131667993779636141805335115250727338266451464581049630507743895441823850848074399733285005376112374145017786419422101713077652078918034429597158769518236667245713811599834586551790917305653881971038272781722001407320866631915189020989899248723445106566178910522578243257946802039323568288981658490943679733910453615832213939781330760996442780674984893070322572101738532811588022170963830864689775071595279344779329478915735911965462951870107349266305998337829177854719400673051844972523484233268382553069276942661305674315217393250667200481519172527579502906557290963202660942035035628075595325147871452320508171264509889792374153058002583599328446915729266638794205857254560607084855797172273277909487053217101701149437117902832097194229010348196845913834066038888534360077304885490251725099987588699213328459346772563464784044827111251007707991826886487308100671072899793761238610755347928145567657327458571393349866748396930994664029635483306501115550285069054055471677021772129969202180828308828130537072225393778481407008503702946168514758485004079379927282237828131585195383787950679255457825772931623753471562304861968002493049240390212451547200727523305484573953058694945089366549861144808405345240602775342754771647043872796786835555552289943302277355985471284532776107675330811506378101042030677825328691262314498768362932968358175870360601173813472782912266215772131638382023972691965926519877966704030108187106771070700384047013655078215221408972189648520310314734699443928560343815822819305088150510471671344616224622707992423123175518525772201469418203984706294373938531763435296983071178040514264330701407717605545854309825178009249350818671607499373809768222539066658768725484399477663944557102504086355104124774386586829363940059164590623029095323376316460266391191474073365149393877637076368500817962926147200178430274908196095760802783338523986796248833123762663793237513416778325851011770082008069086129947545737639247103064925794178413279314235458400592195995924002468004832154077896628575830297901266724494300569947595862150405704588871595920130014366737903855318036065386075994748025711382887444119443271243495009210310561776900550391314521322707125053166205332082700792126222552236341377670552772024803357311856279482799517435469163727516307680068335543164333380772813067637765530396380822777533065535782962887319111770476212389051907532897211432421486530554964445335906452471569162172504233719307499192202158197696244131093210782150972486305981353172555413659653586809940167561903263047601194412565533165616218279822109764266052192135672761782204480761287062795128263403024261703288390095428646800808885810615949089523324212456695770396151787346503677116003985887356572968450046784417618121220513843466745418616168400907901962282417785716717371979995829184968941989681597788784492380121780248212333868004795866544505939615482920608709742619367206666072548273673883330963940104686632664648199595245827399588509167761820444456213602749969861277507792487435325351245678082271001902863866739577144109280157390210772597311126594070959593128968953948351981697988773549376390918303162665269923461398390422919470974440142774472482418894522121774807151134633068586059299080132867964734695955300061241269676928774761145945343936258128264000741015819844551326552127000062081558683579774774232792807716682536942246040015890248652298307886628956480341546012054703144003244181241917026446104621849120870458120863380556287462597830467011726167559701764181786677238992140657638239160717247170606974458215489498846026498316437445741902842438183051840516859767158708865179859625036018922505717662826686402110534602544557220754325946560254714688652582058341586270229872535368981728435796488331517334367209477613727767152678381953373518313324857900892752256842996712063676609762356445123871395110348701993677028195299148567190032192274974873771549589254372424585511181257184977090839918875837767760288166436829493576602505411069965314564109129778001140919504019362402263907601309253149190959204101542157928550730574274149177462012621313529818509654527446853547895020415634620299444564412624715897395889547363378409518639870882000476030700239762150385383093716612027780353180928466762981119722641950202787158350842365520929953503502401559415280561437063688219338163246191669366344941250767812266300182413624693689346462472392081551016639638170624245426345472109416798264021147488520624546497360726707129077749156567485344586184772977897636851858542919424034733947575048633363903286157079166316953441923654293035550756148666061617591503893896071554454188518542122406796735320570852727407471888048815521893999261697120610366763172500069246520974104314123648107230111031652079534030541933456011021754999156983437461032132801303935388642572026409928693415976068463368889178443051746920922527497206368581549846112697043844178477380035895913323556809560009039380400951803047247830136079550568024474220410844774207284700046992528436442918240938271004794021230807376218015332449675362754808176711601404117072069137362694812272029451876322141091570370024408079483345383296765857330358777235471702485660324119998694740513895461075030466153816332145139016774686525787140213357573636410291787264005430354126752775975119308328063625926980352787390263344126013716243773579652567379168116797026436211523413641132830469379282546595575233571541476213563612550109331506744943572108167021493361423890950818182032678285707493810615471357296017769818953059287697564624831357305020432640446997179354523103895885760759575006337614123194198880223452809278538055708484475336863308732018814974568450819264586296778659686613902443949381371591335120293972777173343007826570689219144072559832022082745818074702418848794138501664576261388903832382573945548275397069589899644361009451316359513233824724241192701282599941455524243654080001071740331219155002109261402403454513953084991878950947099120316561691163314184148727290272951514559483582467434597232836244941247807660649331509720649537885498297917414708664233016096792790256020275499709199876788116084795011502587514429474822461281723241830364791513740026871620895631996364881764345729784315500682687776137710226534761600402254950154987452861526108839480753297716178693257266169837859687227115652411036609190209039869540482742327191211352993495639280050560118019874411997902108214844155389368078500087779344478039369000956716733076842002110039895157197701569501844155915796934779144975455720516362714598078129808595299484176781119549956991257125994078799443775594966928787019128308274991921643726935841304602009177765685196966743756993189578459258677500635659899590515682219610172580156782649462646213136820543617921626502838101915941592300620086705998887278797016033383794651835986330897053713450901898230559039904936927120820419953952097597268200472280784275765717728813924457998023643218242302334668309682542472164417380630770932953105818757141952101162793706414855231960615697913179975700978016060005936559572999448604084428547259314624018945702242918088421314670131716966506630479845504868890537946403481346985675176741525176344629745906740865545533477115190732757814126944581389284345448323379623090154544602344242909791457646264751195444416399953351744984912149164396490263394057629302409274538293211642727606187495131421093488972876579200713527205304962243896110897758960821364822080985208303367553871855367924599316269909249204379097965182462896986192889117995519609013375851921178301953081234574811029139315071250784767300144603002108516872960204349643064980262112163623803771173850373467273573603293452968301276238001613752023930547011922309847346584149685681943267933781194432725931218244741519953201860003864793806631915359428575986411440275782653878112045697416442290732576542163583163707291184309904998584531389096042102461037744536529815993121333332444012987301702476655921939653006434158693854487213740079600334386695849039092387807640694410712827577652393503371086796701007574977301905613453042218009341939773543617325990898613218763244391434839987004215495256608341572856988511434146978767081812744867498554883605153214315844112298079946328487177575889363872214455158189305638805117913539524451293761614721191806022927727879099682672790728831328072351781355643486594755513898425902634122391309629636033702527817967199420718575597763202690462241645973870224014458277640903513149245495937689627027422012140661458696670509056484300236506636531212707449714562542826320210792454394225253783182255249811146764697743993624409739472999324197279413141952630528292643492635785764130532747447629946660870417689268693217605043869170583822923267232516726525177605429758979770208656938439147841426799637562129217259109109609590380792059646857713057552154681543148302482505893566796171901934910475480528359729983488272889526698719297856363744907601859714272727331053903431299135664368618526298780037271859270043793550109777894325077098024794709766494241335447368479688626711284647505295664743809930175124572605574668470019474220971462888328410300122068557580980162325825964842747234107037293060268233318161576624232277799724266188554950822213465235440647757866996537809009081939482858264772558267210920837103026190451740864125111304290648957580639888324167425333915236627743774340202979926424075887519831342708303207159922696361013058623181158521647435718712108805853116717014331880131114499262662160486395990377228805552654178450788247584470509179561799495199766277513352207592911591410581555702712745410697638904360610905748891999570954881652588656709696798302381904208502349912564733126257275573127734663406910745614168957102600685327287969846462019159861988992157882562663049097332145335831748573991610513829964843783116570384309545297119180694976645298913120978992846623400851962378742425145749783257814938730434061592859404064990715820304620084802667461812795666523970371969389950965997347764897815679954592409669112277416148708664996401919089134732270239074229512428848968057653327147528570259385372729297921059797965652308475285740004304499254160089433819889166335175877853399367126482965033789857597676331216666096537344960371041931163745154161067999760854865598806008569266832334231198266161066030674291833334201590667635981424819272459232773263387139076454565345594577570736464999236309937102372478128901469286427303706740517147536526035654011442767474667702530294110327247034656180456073397045166342958151927951249658206130164496297269840338459094871379773408243572164068876900081745363373360530697586707495519569757337867771432583700908615587419890143270625762233404444798610952179155262895291962167345217268802413853868766968705827779180184991493916952784294005124558636888415040943449154951095250530388453647344047692699571063266496500556811040193647807567044939227169348945216017278601404608864012471280138781327100044661076534738667657739505210041394231306984449663648348522489619281051555665256519198530665346133293097905683660916861054870980990967621970008852950352225796564374439819271871544757089539321089252485196417966674571229724400990016675037825409625742790738035871328051824490165274885873325257863595689049510202941149584904706637592257635914104452732733864252143804049619184412871292664824686822471486801709720744070413752737631936855235131456468396644617949177459647727172548788709983832200977446028358447358575618014218890359466776580744090638236446114153335690148488380846494530838168017352868778206802627819900886434272194000203248671434384191384886986915169630946144919634746012701690917709255884527040060893035630033756930323079539988476863256320947326547842260312341019911457734465761537934909338795554929452392074640450231005900693497022837927207306575554332380083534534391247532416569097815944048892325685820874049626560211187651765558939700637619960008139800929251832955483760921496608721672737080267027317319067452692005682015672484069564262622414092323463812266395210672783216359026440735435344677122227853206511581208586857019915948482635034796332798343950839946452886386342803349361003522724905563251040331712655644915060780694616381069673128996704456935168870395407408622070406368395913278019285729335758803682803082621852263190348076504001764560173057592690254782177193846449076594280054440420150824384918139729419925625672864278621170231376762365488600668016679728630514846911344291538070063158340569921798766260298552293273157616605171504126788898617206645706041073812575746384577031712458545695487837494727127554839886080898862225680787807142355668639632762998809300784194850023309952396391437507965860459806219979403804482066807149240741243346992685095564439209082524313664750779676146419746761658151083726179922158756107165321235349978944502790532028507004868550927376440477671510796406626489678742746809463236241958092473219335360521833648445435585555010873953471298043381485789499055667603959240355141465708040527213301188333812700538918721047124083924843487777488248750227355466593985870450540542053967435307588954958378525521942901064540690567669876237637652796866950759992968188199712805180924407048621088820311904124422586510905779297011839565119977516741715590580909388123987286238354355159139187588390748689201291297464621778995690515599357383116608959654223477557666042791494250473145830000323404537585909425285752751178721925067926372584912830056090306998136505210019318849901690791332588089765483994622733550895012968481724100193755737713743017856254294170021399750477030181137055020029911550120243249589088970584077322585490086331868390592297105871408505659751038495272583686867971599739560705358432448644587240698584117206615935478262684105281741532374542815656125083162046044225730779293273554810585951784920518637633592784926946933782283128149692429119273657014316493541193663271325019025109868696873988573636624989677218460935523838393537276341782836900628729193976187963851200167166041788218298227176115278595191067706853531279360119584093808180186892351878530214463562245815617280127760062530063029296969792517322077908113769900653579530309903051402322606847335791315862741663250514261184075313094822305651663598535276605880482271855965570227941713963823889677113946550803575580078824975138934280805875850885941964614820151553522432431448567381966932778164106091927243616030427077084189409331877177964295751516657236281642564542997560233414959468550358776264112365127345027492553305972902190307425483530660598709554465821525187890215090987987459076710193641655146889103443758002238419385002644669827593399339478244755535928081544915772103022755841538851641975407513982333723749530257359785951241860104347560035844596928303877746753625205007577484659532185140442125879798638408735999893788603976556478233491260301849112614790474631423895486110839754770653313638938878563460285973172890866655725889576586873810868407804827301928464113765844495684583424374510387360486302833032719253837602264105928604584664038140407410640905002693918936088469881490864480660877115429526076263159361620892394194270889588229234956463254421323415054625198254386367275960606531842843681115448241759107207750279803553940360209762811971762536208692724198238014832803473565018118536034021806214135299130686449513817529831294359994369116668236911686966396857361148152387456001117269109087014761720072423044502619967716492328564350989186026473461804825255908998140840215666566994360211467936117661967385320153786614621536299570645325020080366699990026256819912042680418733155407409238982180186423153878914978203957237179278985141562982629284529585900778489421548924346546733941624260518862763774020287270807434870744763825347089074703058401314353670556482845640477181797712212749451260255753652919463273941138587921734118732850455523485220447748110149329533410079949804866931833705106716032339284283260755420351055600043784791268681018191071525016926185864412221144314393206795759045399249545343294610977066986467347427385872966751328001241553148127052594786394125092027976556702765818528315826194910479805357469138745068161178955072937649300327764295352367897045754118958351293591417708137540907890513891902795876092164114350972247866144793040688159836476544856242251209967313243318247586810011758539508767282917800147476991747560916077029789732642727848969365899159645793317891832795454117986350254920855260175408213906336947442567034787317827471510791670447817979369187441930489812303264199116114022774031339377767977912886612829687851323364298113725996930087732173568737342528427600642967527432202642682781999781733514446734207935771225622315797895054380357811762268352716841598438361711476925215669542665609496716798627523360277107752636280419737746388420265033303922004980512554658150293771368934448751796448238742899661177802388338334946579646410803471977241228801006848205257413905140376857581746564821164386180376156468096264352643780127337971595014522306603964415133628765390952864818474253826754611150130814216128254434501789537965402961395547418801745739170649485572690719913937499253522670492973863492877375305269880593183483599192170730992605396764370700562484931020094583183921283529503381362406425338443437105892743592948764636203544997121460056090758391558666543810854721379175747234638757591549929463928142972000280753626879729857937474265917663726738650743003614217962377089088435036236513774058517537495358328793840415243310874840972420680004309312175181004018802091200243756378304199112735128474565321829244533762077894152884591562154052874499954701649407753607115000400195464410247641117573539380874576661372479235255393937427002606056427312148603550860644036007801352578353678655676565177864540991183966851456248516290652905071053260244477152023248489465347376419429092697754676029562596596942185094656363901259927829426341440870762050758089333921316724361350797120485007130369072906454289846169811977396372723544797457174624257596835283062963504210977151718647976187803342893186612180723127571880572498810500166400428924629983462616311587128832429278103182619896060863997738603263529699835789157549326869202752917140706831174951238149383910602387390691961579308108951161058813556944219471184262091884991141883042004369330227376057943028345752580724923926098032624015353584899880713957986940277157445668360036948500347693441159617681152222586035404308709813395728773623450364663668269670152299690494301346428832111317540843796305905481421160896875461187049682241340767411294732446706769050166861842858777316630078772692110262600314387049660117421846624422914397324018455681027930349423757637066979541833520429451487253242415436238711284450699230442223832335021496439593960016474140551467211160419888493608012803678571461981934815348999735387307023071411285693000208689755178102735277660649807094927808074177829539141733146709550754241183936408168920766711915281299364204471341338903722328918358268439975122537683792312299329912368964551025003541742413258144387210715663170010610913578451189215529910653948242691219773855817825545531101616904512217059837370543284775548094611056007157763073274075399630657350728851778348450887428391379847830158174080737495722737504149943273621737729558975749633722268545438194067584381405247997365042280125172335478391897653979901501476418851421888834246355236291537914129265686911471892583477543247859875023375915595686231212603765819712635282395407974297208607110020152716193150879021661551638153660953785408860932735070961259754234093741570761435583085978384126206611473983587495564519806097778679337712523750896563045472177471514209690463594914311533113686962743081430389787687845554787943198311687631466370675854982896106093821457216518760956154076493660798691693689434898630863292075603739988180975367326995942360241851945184626431978696514023093332149521988979938194332724610100739601440711326127685452883340604927014414281483058072116392989582516681234890489202222844569726667787377347087432211172158076907065182576414956150051588384974383138661474380930678741884699141298674410758195984405849383966152843376296782802750889744167484968718083353473950442217928437891520468178922035840952877854518919551180537698109753049124050508661406843041534144792364143188102923075896765850670174530136379185077064430881899670081471427892087139034107616864648008428072802998571695494536134519107611660068855073712887442194748126722334519591759689078833594908115793976969102534727079719918545162249439485462591051766167517738435392133944515387655473462368051052677153705778372168696978366168680175581470650067802845262743389704028829237050560821771701891337671699922379082866521955233868204857195288222619647198799388747544607120078298356988576392215557017376073297788892678886313870433861598550848441261717399323901354893231716400873442428377035852269662517229960913917811979427287090518701118851185686830178938183646544218297481298420303811916070428945264787695727827070504829878243854565695383040162563952924263141057571277290911934231699012047646480806670132609410986774977953440869915843276977316654061981538997413647928171962716669840856247039181500587173725695661894848829775678616462426435058668635380321528711020763394231671610201367838482697228383509029254456580119581354343032509586021085982523817249910280972536011202664914115370491276573660610114836686138918233768049419090729792014030293274811622935049942713549091186455708098907316915720057062209760707930205432658213261052225444563720517523241688693110593010245026362737688585347222544997477617300281727879534115247029101783843040787534735529065030727289099711801584918214862666917693480200220432369753828151440873105862759944376524902799912134507459374114353326654149555442492884444897050446212091933818907331594577393796014332737281348254242874730184094215835786886427078706845823066475788637667748936707114151550830121586106700696768621885017256862083648036296987957421830469135195346939209147899732702220058265378215209228936887631906874301545252703662352495869289861512310069759398675696038663183968570777740876716657136334562797489121934908847400637771777130187887756710246227848288415383705927868915091956930765480735448843448515466539224571495017624682994399625962729377779807878542003621902909173613037872095575295589812815485004610865210580339684825373187875566238296233692411490330204401655772955520379442510168991053777232538592631067185661992053935297676169710752696825920610393047698724175498534994996126055288370998403821573152513659903438202028958061741072943137893451574323876575335346731382568525420489079232352421978486988529762685484671852979710166501333372284999586675954843560343337025225824231872600129181943215682080758918444668876917995757394299697675968556394712247078732835791377638430502771124912917511916545454913260198047514528569739977643354325981964259931971102982248060796041919964899603952911982383276406491329494598320756368993486462879776391149485938154906827314830862021183165812268939459241118015736415400431848226083258820764559857876449151424252744120565789414268213121202518949740682095491815853979698334458045289699435734501688843018229792122236333834969588365240207987140858777201998126314227859558519758732788283894469246356690515745758434856681646026418977626189382832462433189629874111583911474190482403031260205739432008365349586510159413494951653658660372174656723488366375935549871404741632275321705182346390099179022745901186475709570572859363761166652951496678140353055743665169475276186377456902312027561795599507462961835300334079210552147154146763664569287485231233462155839216087660471231696360293168152391313346935098354409901972375117666896611799889006853771172426817597413046609877878033230302574471749040822905943309949895328387127898969852447665203509275026647457222445418869034355113398901155372294099660771093067078641475742855864307429492263545337179458508055090846379604227917826027016465697199996817170845566751626909629959404954340360130272389682130761149618399188727251592555097417206734595050850913877502433076764794675183604207652762523423464921559711032986035397676014397271385524103114826457698197451906171423128659436669640393388125589206972803345136196384449454037796977233204312722241180690268284512085021085641294867250495450952299919095073426562168321689735177609067879140400084525900627035204474161480202474993357291822969348521805816545865878734112054564980694246151853284132322200295205515594271337873066850259372401885385863756356887636225083241314895203778485955571658646609390942925354495878894704591835465083422404957396353160168342646863739079507249239558534272224329752575666608488531592361524529490045171383083721520229951053061975974572813411104056627660625793842756333191843873048275791949490555752846089854591170928709648479269551781909582209058678087907187312093639457837809645595385785813221646115935458751142857045155702712525004962339767683310140710503204814004883368418833269676298950594602563192203346280936035629903948922301833641479058156174906233525706482887269261723135973757035941370886417270937674889696571304098174050406530342753656468894700909061533519493684295344447930463260466665408021174735753516200009066051691497611734539015732114353922258113341025826977515455980225562821102053927269169602192880306835075130362794878127854381062490319455801950660169250029096219483596293454693178619861310095242313394996720167921919811065563793463444791738883816241207911126124377137767378999967697473775942584748482611792112195617807761034475546788310263258355504002553718170405539062268821898335311015874997404326261857800433191664147439533832353190447217265970292418704802428254605647840221662492050182365620751582772461269016931992259821211658616306060255223362719950085105473357421937151264996365786521549823495375777189617389540657004990306540471817522998559396824163274298536603495231973012528010492181036667077305631703223294408948167598905722799446810930970867240534604375741445436622477124157965165014587567959917376104243813171153904121485892531769343330804222521009300141189468271052770728891977404731590800749011482389810070666143929922393658197395102957976361703460633040706782603026357409312605252743869764373929868504675414894792188711973354905408605803315682617502174060201259119636556150749907277582810731212614552240172637852776299799659571828049039968385484649335570580276238595193718377131870228334859126860903307461480087064004896354942594314304509491848393334048818007511429650980010792646347352008831692718990107243041602014155874922418294115091768342718099601981198010305719022807453498108981464888424382466581001510528538993925818705151664087811772503989632695206377456162570950898876998602301229894654386935925421532827310808263401709972084764930094789576038112179489600930914043844874191947900042949439134484980831978434233965352378151912415984836428497822873381299956523945672595593502305488441662885094922961656426353138381277093946359403799972182599691182222783318794206837932282269330639977293727600733785531174903265507981728626943775229169296667771444157276704132956522323853702521888429228977224926859403334332121081608716346082277251945167531593989935481797751287131828523825910889561059253587975725149218758006585094521647149920502865079742562923987112704560097804723326888706116020389205761995523307138714114848648040545401365457247896096485782471300709574680830443692007427372875219547664178873391559701085468324491353359668532553843132807345409874674337773106079564834820838883128988197538946981614066423110739041464865738872583461298690860296305811784639893398448521404725364085030973386216289145849146511263295935462780981539551732905805318075344178676404367817044815045105297202269535464607330141657597123304304771950823961259861240644730333846624656668563123132802571284450989144794485520071919646255392870241621507133252788618432765620732462034200201244613226192030412869467503904287460167440251238386807583877711189195615895129113969674115551635575339129349215240746553763595048468263632036546050150485651682685519553202589139865130426812323901573362397116185265459410987816914524055491071538644445431272116064744687006193010391956825163903542880264007231169912147679548486858330014096137217330183302223603947633268521810657168009584975009789007064893087208836811045253462507137271751870593025849690302989462457946092028013567724596530308208669687500993514982465759558504400051847914363161612308846721916228418608105014866450350000533409796273077222860203444509251081255834339026674922019825586646159321423923276131071616454817838689106855841406492849169568683228944179302238543345257053727301402494979326090649711135821001389092779158779837343064316701691774609930749143760461252679823039719669808743015720569228399626631522286979769182424731925298438280365504809943710755538706137284650834482569122376522003668967469268308186249110783167033124100974835385671833429363010162770316779857799145230065487829428452760075666203034944559577697965695800251630760091304199228800688036385779461896470415320120174273323847758396199042734311824369215848083976689641942420455524797869665554584948940993624513962054634230690585111392405433927523887616208047450192081583429498765092529854406238166863830293360770683628281876544454179417252795430442638224655477151478119773355608764782026529249695377567712665748204485444850731701343302876439260506613840707720200714214863995851250943013404159735006794350565206244624787627952026573952268033451659666441534340347945199987959143454941709678939358351659066814735312908808357522202946084366601534118162548513272404128581589643170886583246478800978354788559166241902030024590936118569452118893193432664822709419216198266143454798058348387952777717413472722574290042984742190409330878907679187739157106772082324934440678843774642648641410639161648776292276768624356567339960416002745688784565396176750118467328716780812570268906293994686567639079481365078366271707518622225806553189992273951838800956946900476962177890620365970511015659660794839307604200314876573716597054046255682165621705751897502046813628176285212437217702525936897475533106557123918890239970354059531208062414834944586108749078950514434486009790168535280756120635981531965754754672194279312855232570612134647574603294693812691235828565161225749465440139929301179109823597196631723901492605482039681298475234193878986507015997694295572082808800071193205851723808127261827122087365379806049268873484583268542406526935370985940163368137713543707178197198736693146793366755107011629767554215978529188313534312625500049345372999884663012354029690356805726682391582963396907130863340871927171929892031735441922835775983047427275810823210042951686726644925527398292019394733793924593137756878078606920598801709415448375147050610204345506630965887916367890584401053602482180559619045724356021779818126668834801039595449887180371481589543159836182045883772122802971856561633808960574488735185092419256426055088848054139769762915806846192934515745509761639219484010434622446968520274199128373316832354611364548887894188021761461585828218084288150080274513397528105668562830569861793196846446896822113854076979073797946441411001190231284224564500655190253662215071600641438576294322237207293708125416536775351195358035876353206842827406798631744113039189193217423849045035117337703936971970003119607799307039101071632571413954830375739532058636862382838126811178662451682588188314700590959093851104454869369159448724360182030208242474937635116297855928318126575109895474017756812427894333459791649411355441810481219747224012285595703180284746378548472532351161695244417735599484102247903388160083730247201050534479896380611275950407844844957380160600066993383132722450673777871912858802500847827306038780747864308471981425923255722751444537855621895584432052102211818129791787419506779586800871614614732692045403702779246125852897501188742140976846581289595767288007447147066436897619647890507834375742247445815756342315563856103780278181169238742486488720698063071406790408423817782404095936783403100610004602452477519964602809204147859712035330363155668164211473245085541904014674799555207857288613074683565885501694564547539715320459058297391660472803289062810660327713788041785212334331672877062740167141293887694882080132284187619893935352743766647413507826131769604722463288768552291241667932523962717877581692553077444868065173105183389953104389891270056547982087943067204308853504525310686708880647938826285158179523938378118652630280388208407477147938111797809006629855650281277782971132640397263089953776423240205299945267090812726241396025883744039890491487605471934211002315438166157407219049572719681547847379076323851242000563012002354424801607878221085838354736414011640893833787951676107523102459011124050108830907965379609324422618128027961218449443319712014822825736305623129712649233097437192425222969502898172132103207323958795090831155194345553406356691900634362604033977903474905477816532167726967502495707335683836218145344661878304217449856282667348892847291233252657949964967231381832918308189540275180619325132912122516439491618569768905111912348147218589734436569429976992926693420932434109835975578437108455921037181693368423517249761540494919979708608066037161469624492102388935156513489832111521972033339021812083476660046296324120557446812034484455938845248104422302095114166350868843282272034564438048987495761574504056020047801459675753671943634822425703117289004106767538124893006836018293848661490225367716451887838391047089132570958496768184183726486413290016554477263398022696459514049404487789371720829401953963933750579125801986237815798114532314859758839117770631446099461654963511707139847484904036765587434531279299684197437056051399679588043481969565925755971707131739330472997042000669467477529642057996563698272959788531076334012975794344806415740260311170087747556355764938392836141700627757853748782540158835451704118880311099700082398594871073543362332337773533891514169952976728459044527075159268747219781501698805846524628207266507024827706808377898087511199601492416787638291409408062817269714579784349774385114995976836643692253110080142117062324709172148962809452937708166409688581233298013159433128134540010097154627149542041399739160833495641279099771463121386075243906182162287865878551117121641264710141985520611100789336301972731960191501676762267582384491213837040673112686340470947083247329425761595935660055158363189068204340650678455608494819314835269919917760847401600724997089796356217933363597527123791670756579357010048996910232691497670901891060348826600523252434644810444186738732929965343757155543526675348250296905453509808280893729828597498730294435581731309986238896223593806352586117176544375329968816116394155008730702630270549629735313431239967229670804603157710128059172684508735815819797723936903251882023246130438058441533651108289638247546392402185964323906636622417311765166292323337603457559835911889637791413463447609555351570003300883478887224433303148317544478669742914057293016455885689425902656488868905941053681950672463602877669045853469836159657744782377216019449852225182133146814636860138872944756486117805082690771181407939932736838385442514853249339658051336817540155240874622925522767135041265429560986639034503845221540532940181649230559465522070752558517407341503475588414992385010357506402090702436008978384473853418069850700962382591520504045770962636382554121441204685461292943189666650314125091044471003080555435710296075652084762470690322575995381982910637049053978315602888051550035205778268481911892295704953628607076903172928592083941841953785371015390030983980667753592827199708659065591032043539865405528628952828788328503889311902073996717033473982882557367400047035106430859983420298828699966229059477167386169297576492376153212837450979736374669343894472956272310571524373989596019341640978887719018778170816005164147241961178305480045365446107116405633449358648383181928690394453010425441726675276942637825848719068203898000142115109619034406157011645008814031981409971256158187820109294102781295674660327679608381453070428245706194774462192062087403959525948208936960319197950506983083193059188853100458271308957797541508910689928162609995628216663385173401226691035139906842604036065202488697009246393711839788231523255354886653534326587905296090922472272885271590305803219739488857122059685927059784856557376274008813640205871332009939395132616829605999464835807203036357154663019614599521459873209202990170096772815846758508612298253202394111237603366884785906950952603587777926845301307383561644564877334848702005383865105052716320118598738960383680031677250057736404234517871266644479311395209655942285332944499165560807917724581783621135070665041330410497392470651708607909444590176356637099243670771145336034127306496222114066493851976688026853365704165955447499597932384800780141303425448650687961359227024746708456034583092166407182392841206518408723688161461876816079649725737748485826400142102952262307528826291271570304545042961585670341723578763796072485503490182874863332530134435374630553068700357953713478208609964183596468997037000836547987458164681696974131934730612769919474971773148335307846573840363024438303534520423857660618094849833212124677544867711723698737635778054201502538223070294475901231078138585513265612647753625157603279351952632698126027440251195287210542562944785810491616695088800884973206424573098807903324721208661122958324961358321134369752291275597484565500677722254740265464577383879777070536852037497739680437549808090179875110424194946097074916126602773119179296572319502231042481436792523499461145468091070110665147915683265375670212830462550952869379503514659031334321696206870612097374266017972412261567217203164905245610776975586962543070293162000258341367798521744967589326796051262570272195331593045470738746747205086758440631717803957464440404804892795560694842695610229083852273304922383607119259741092359135297828986113059939728877562645513287090521797496187453256300447029631721821606740436173035635883576073535045009300410655064876131045527008512307134385086381528288573044060375114295387391626575831746808355300793036906595491080410547124491471806331284402672370474106704858999347163368314795019561021076385804497441360410642276940290491816194906054218478626955041082248235799620608558334763923426453799503206103739383171602714242322082863084856395490235203242440937609091950645686251316913572754999633370068264270521934938479446563126318092970673098911118896467197927477942772267755319432573576503590880656922797624852529929399965611036904534473619965804648975577026299203987606885333749864625465175150660893424525900684353855032753508690702024036442851071125187628566952914103033449437035052530959251980991078852782716004173096190149952789446831270898642499341561979170077139169576576660864981310830428827739391516914166823734838994141318583947088929018172536467162965277482048726056034993243869170059635901736716778695871997823648147712090206003287913141556443303017946382798782510772847528765523835866357005340059250522499326208015577694036860665316532603508173696347047936085474898312416859354360693462400065300534131871500461684313588336041502628410013151936422933926735081701999081919958193971991808509595359097599787297537557002924006475830911017102127006765936101697885692495072326649733840834304512207758461016493056052505810994928841877932193114013183148735530926066274024701245798919825046310003160382611621665047123325197691895410519437121468589546047314379551959367054713003030866280910594070420335284000028742860739670768476348502161448001102398004513528879425004807080556685568793058182662461698440643143783015955503621240674466762579308227578679586503377889944561768759447451004553523579039957658107600587827383104873324983869911801165245591393196455676810738967533837325811718124358128724065442457455144032662067267016927964567729952513434937811208326979482074306450966639782737779512340806845712952821043000975610617212520055546136747150131867786287421468955493646791343729938418775714239714345027469056645855260328326200018097092490302320880431274769754836242718587439590647348256906083395819347932624944741626465725514268133541922690997293445955911566194263946709195301361333711634078678766519287942055157839326784860289771059933149127249347609926612846763994060023707682351012011034916652044802840682393553541875927865675594055502059739546104079516533647299402497169273944986145978575594521737263050203904774861927762715828044166810324023562797672299955359596273197285928556960527049673086777031824093986226515813342684173815264395941188124129553257855849016468615853689809240645196368022129984791709811142055803906327736608563225545470216335159550989794224449818698256692770434919918209766346738708011614795621606748246834123371782492954283002681232732260078498640362328178967629975879467395059415006471483192038608651909364664100358937277583383872399980600757930245689713045072042346540788154615253991756091529788235820553550108466531903356659740213506601696800090829092273899297668845801262848186139983552080466581187470382589818962851056325853247209498765848380101843394128344107949100188675152354709257786342150149966105622772421487728252911987773380734266318144208078994642757839394494906909791301123018681366262757704190419860935456368086807248410582872060347927092733634125097634934695251343848932015812287499367257002317369301464442420890093482281153125845710536968255165627075619608247350328838826026579102081406650637538235692517611075255108970427494620880439338197017377578509224949436854983879144208075621841608268373282140056122279373211761141885706305750788238921953594532921451882731006843945492209142515991923935119910643380614084238416513222357606818572714331917219757122838865873092249858329967260422943261368649249946022568042800605656565719278844521135818473208758079828914224235369646876929859004611234695120706316403662808700177848083038948028224768281819655859177993373189422578443110404741921184909479598522888741910384682165689375543199794504328108609604663139507570222444201485278410924010328544263683335588054336542034644520030378846931919893889727691574055967229423678190718886588973934120000144176418753991756736148436713043217841089043094007748610996069176718269433695060007271351308441045429184952173864850969892278557676289050417730637856891178463183838473601393032300439028647899654585093526758174930338760225839258183572078664109891098716020002086371501128432828065494765540710103063500040915319582103471878834826251559720299541950407486039318191702692711361825962406158134750000757782699532570904045540244065389668120815342461319357063902430937224230098709703380841064476878796732588644757853280934793742284188990623824554864293861061426347749139268571075130711251816652244762162649013652680006437665764489037558789222871184435016376633376673780246143708008518123485183165995864777794939542678474271486826939946521205219647132636225163260499464155917809728383292535746240422625514743225325665442578067593409565468027398473216016810833828157043776093074467233329758722046939183133627124932051109322179383359362851270365398872992195779965264035506183008551626727005961239996170968228707541884111696159402219105826836244096797124891814680869138739838704386704415975671819989441784007291494278464638694462299469593395783208903025239910841830177185416484591452255950096606024123652512983437567797994244846918026628328063481920948271040694707219258250086355536092103803773770663032275148980638512715945839192013488830305180475261050082847766762452687909049655596258528361956941925885394344414150125231011270242906248046757282574235596211126424431394451938451179816291895314429267200216668900862391219104805394665398290144158277253488930467259080621308841368138676975690469100236431716792471748237251526888073317455516995456200698841750246390439289024582006139796178285167278618417680289793941577650236076849834583778627021623558154798344401829354142636346307879804041749861409526322633999357144757182037442109018406350681472153405866840517837905667849181844798561494087689225523941748056446698387061024038704853320620977289664799758818001648941699391756963210479392191685132797396686295523551143687797348699192609145203292780932980545936162966044202684639823488368051342725583190303903809674235498298073200152080144568986678857177049894650148639471749510354436137194347990330451309648941065164472676802325529282666374644941489820716132671991711931417660386487783685671258415321750063138893113467948124027534274671153488737578869299429156782560035126092952122204465411755945262252092847342385369235455231828480117648300103665954071222991357833198612337026016293501710351839137887344879098011832844426710139027190652449933185088656614797073892654283664910502072516340692143110014972433847824711066308673223297899385509211571982897445927273796255254829465979432458595380367485626457173386888528815498301116361895241180113363016178763217686924333356291445491495348344754664942155943541348509408446291523591998524358116888461834409727363503275654402577542349545748035062406981036970344096827346030671127372464992754953158745867502505801626071239460158851376792945782832338566850152442448452968719181849399271845205640483665342366662712873830734717138925897404380088609835744576005517129423700081426083151469884706346961484591456045543412342572795978865587663252899364019502711567795205563046583326153828102344799639328541707589148415224872071799594439907762464336167370764727955555931033293400841217619566646556031994154596091621088416731732447885697228426475652218667851007133238730010089370120283537631548173994156710329606061240602596341315968917979238473615797580105070766380549396592758975187181245611494177945278978385043821141595737266104561111715727160156033867150361374504536874451617593373735743045131467427210502543984256787932413994051054758826673198656368621403970197322366802660006692150812250827631644456154142771733729085863709384834206196710585498656024922332560774629105663285875169376622575704442680439073016656863971666648242900445096748348489340641389783302547042000654234538644062620425846890192464592110455584640052437580623176090147633556770338400593500679358353265119397294542997992780447763548801011780005191290304030097937476128594240240585356584425677650361209743124875412907916496589793934806962165370664874326480217167679660003776524190392305593221451819454647406861397695429993123808026074787271483900349090551507044214262547330286412677939347418324209941380677982854378380385000271660775663735246222645379481179553790901222447149649606887405435056708349907805367557958595883879082453896681851257352416148338904259722363037991654787094847427516220727100897220643045649825397155336939801059056767760008417492079318276681112306367897616734473373115803793229599480298773875275944745378029251978777033736091044769059730302858333879703028519981353533799589873950068028086125712086603275378816767563389792894118827508648022166520443922582474111613052381939698805002300430440595931100237817389771842365797489886527092935507993419774441813733732105404634494926582351910737216775149648818214463570421789921544431935247653998886149673067939155499012916684845645956563026232391839914897351957026446479215903816816674319416093647784883527332221448084307464862856341440350887625725237741314346226335225442952102056985552586925071126689389166043147920545431652930796600041645475590985072276529313568252120472901202292479785781580203941302156311996789203565908064209665864005312020528044686411900552523686466646162397785740415718202911481159886643699810550925709884785868179879487578268314981784894913280678933002144413912604494726331711658842887798464877107084200628126853511820452840918299968573392391516072052757805273270971666416624503610460530975303856225226736804946098807071969203948855945275615859928860248192857859504195553105528766464547666837337288459142936198755029705951318059595234636871671391140620995576888426274507648874052147177589075368754079799592957112063611263992412547883397140244027249774687406256215680399348592379650791598970064053862925513648622144506244516312485553073619265654593441267261905393304314559397963934562154790292674074483871478918735900465369690729527118995592511545692306104471829358263835336407886463767346478475356901905391262098438029136404430151937367761329971078033656527527274755889957416789985416394286930899704501817489139427311353051355965744972646097545314040550114973665246981688280415112744984128907800505192046200184776508705599148116568481889949120869719435552678314300964198767101033327581848673366036203815605552785946658751653044773635736779403146754806179727977601519149312472046958525798640431543349276875588345229296648011257389455649126919181309719322016998339600115341805340111434286311648995625619130880960344663692728278701663066520668475420714471587168548321814148666698354633643422925865575888196417188769601473195323925600330876953207837892631454727553491769619096865380688776138283223343736177721276262711959285397262007078680436721153674321234158055153666326529984702106236920186279366237524197648236138711662324207542049713909625493369120045075304644227830519282271058731788013902413823098627040461678836828392844649016241164827819918016646918445099019822327634346247332528639044452348133243624940742440703611380401365236832941247869060798495533411658868956364365601180805677400710494738590160037362408303123714645029506421904925012303043256499630624096750993488215380031773506775364377944197188772374079165568114340241290664923867547834267400980391395783196944424073307637621706619517080498714119835173463944347716203612550268146878333883945146807106821418435431726537654190585672476800362356676012018472313734794488884927786957654224383058229676181607217224928862406715462017270899896617109718138518825777979717795670139132505516371709747724580749177832813896395886982045472718672235617579079830743380739085173873010767128856851674581513124168568247234959077843829678397137486675098886278560022803599315237258492725837441886961741787123826838065855961967245339491149394112910155867432778061769212759342474641180512290903627560027174894935832211081660105703803894027186587715931937118034457866908755828708404349725090196571318786604106763744091803989576739714313745913086692836225420617721034742970221154032282214685744030601847106713962998823267039785715891998512391719514456552953177513916123365207010639846377206510746577144887795526827647606188366190223101923190009069992276114049310245530302931403054276767428025820507745106892313265239970547278615428829740802701372047509854521310296827172978179906294219608752975340760791278489931400256647246226297133509073017014102683071839885446656492010540394574260614651061299332429515343516629912780705270942681067496418600604385221931266384653585305427038560614472835298585217649681387118836958113266400259196910566020098633012390160152782951721517280267092432778740665488955001905447897936762975602987654360643922771446877630564501564282207268448993677844624837474919970352997911644398182133797611664081856101694592836381191147929052468778376551279210576153281009795915650242354781989827342856087249867744690527694509664968631737453089053238731331950066095965655550028121184183526052094646061835935105777402026276961457781451540252842146937215410244791121768993886892072505498123645645331681230611501337220984842004528833708391148038244779765442219179780845676663027832422078314488697923547728153251314417583887958179302509828408895155676758303389666586048423233408200184865633875450665364977760353516859344483418925427883039608138961481124877049479184895551283463286063605772899868953053383684377702349682483028598252154760152871041465656395046347428506179938644805121543582187891434713411090737583888721341640941070553660566325315785293324841852271355761476454018129710823488220350497098361407210328806759836701099525241688500285249085558730731880183164268705299425230056033238145710313291087461601386432391196249268230237929568732730412920371587439002335103881772934955954820733802119367437487131755557692117477694733777916256233150755141554085357505650914446547760485726700198683020146125788900894710279049750852862239670513819708129647293605438587938837297671461699278017190406503671011316500496163133347068497025762834304200478514018210086254799173770631330613660704285032505380622289773862173799257555160325831603091438812070451773229536075097670159173405162944009866559034601358273315657477174455034782235115210570546569276109272352191870304940200956639684580284905562886883623700518714537883119161926625585853470549418554177160181113019164874626311991153457251322483628045096327261493016380526613931665875092436266211554260679417679915042282289466039668607963338330090415692458994378713980987494634500157041222391579564092392730025018390459171493871159398634193382528483068918822127239985478896765856616130997353558065305959915277052932578063237569291660051709058123456350321109474556672069951496200841849554502008000799078075411979482273775041203303929223861080477575506843007119813103547605865782337176589230260634149640184021746126911098757972859802722685173465183010713159396164940469193587824761494581721834058034501091051013867832800963015216194390840596758917037922366861970749052030223551466383965211379751032593886126256475546160666801396471127368344715720486321044918274537658527367897153717697610392496358605420881564513716903102689851498138497331731896279986955328044088157501408051046642284223876658710204224804382507929816074547066060894147226612763127405212731674807483775807792909644452329114973399837937483464390448096363353416463654842194650834711185928602541885934792379356204033325564997478233217922036893140829494547095037902326940860037060834759872164679780555887301084407116154826314784046288027935689477900045554251585648511974382481447218930889099583026432096835863578177152884541674302181468916296931674335400451958164986159841678120362783455479019820258066883385493508271372875071037276238605360342801573867981108953599626889618022907072606247851068663556092200665903620920384112414340888899753363844497265248823523957182916797248983457780381061000025403801310372378444172135781223850510397456259387764733450742510766258894596393358849768262302248620302681666783427356386336928399175480369952134782742095638963234595845198108046241312125244530442107853969953316751704513169828339843806117308260668316689581179055687326711691160447876075095910380573857861048373070405843864562693775605088499293152393156012155645428476590013320548225692764934275244311164198952795857859948040555576481055932393575661048852809810436869760505462148822354449861066089538106210016140731010929799960179406302448858240032018918448874730723615968685851250972452784112242423336663266332723060947526160246383285915849251461359246624014925123852537705358798360945507624297734243450685105288964253032639660893825382971452576205667738460699177277581126008088479996889804811306600394367427049018230316927332229834471422081467400678555205128275583080275643156392863642508406405590505402442909218156946436663187686361557872374040591678201128966554127098138451832482320824080694191402623414552910705393382715269427152974583530017964622814019249670959282979193873865676613695941314572462227973755046561816425587014448807422440210494171745563753363006233022528577625323307420875201969985184466544977052866598351506806481105716494472982978124363182021508925659243709501914676381597369212339096878811637906754555571209849642851691111453110970508137869283563953783550079457941986924470232751593404501421380017946393784731872829095375278654351977902025245923635559308395309122081370969634518405042497547918158978381949756454274181367049548841279935562646641578743702058168092431910250891432817366827101284623025401387201201270573032846761454825716839697369044452415765899614317458428566633396101098629784670733591330068822032644060362801986395728017802264802298665362301049128345591820204653766246740238499933344591489003444063580344934305584262620720561088244673729622720918212166864712505265265356623469782348434700327218154629224559439983388216361437466755695097966923662858693768975627814196474546880554999171529915940953619839267218512167855040491287413836654028061543597584442761608138845883631543620155995695708964384595642809484371831986132590752803243924466318409942731281178195452333766435564173563578882586360350134147558442797801380149256543868062174058685813920149312841429831620991936701610590392388795392399501424352990095005636431996875163960396270325190536093977223566608310781961352836236575351417627750602517896551148370339357387617046826869615205055317695382172652906772684655327872211251589525431057773498514560336478650955641510449514029820314450234799724351261278191801048456055933805132146190058052627106443378601522853924929032747646996656692190771305135531751540780152735526219754437813568112938992580181240157909890987658292198962411533094743147829271042428579868105980522572211384074655017348445530276356925291976215021980411670764985285174265519416106033845611409727629750298890440040632228642924286800376293604385591237227935088738473361561575294330611522676173989990469331525610695345394265710034630667035189429685245536263543418010712494291308441315397950810703138595955418796358768553881109779075759101210298187590294305516602299666412332134386050125457277301165111969577726134462118683990709558259148329094860811338555558066199447715984422617804319399537049131088134576057259168483249102870504270377872401790982484054188959159950582173516649248991104671691405913011391903219246458283500335583031061958777940388642302999107739006694168194471304588634287738462785626328179157743605939290986887742953505465452288487120567465136957853940822130105258620847514194723339939541394115408570964000038841697808373047159988755822487170587894449532411565283168049762520987907934868328239100425035266535037833777701564288316010447853253507051554677368273378671742190906852706664334017443581128948816404956372501068446581629633649259807420314917013354138046560857201521322180552354020994046074959766438716248111967631163274810536264561312449014830534886304596117922613870162918063575907620861393984889632501368362564386437658072669357048344920419073325408523299092660737782690734262658252782688713260324501349111036055379782583051049808025790375639374366260837243178165286964652372140369558058775890535644188928297508104895257937338072654251809638441833394951275299454984300509230747530338786132105168998328257924481408751287496471008919558756541831671060734909778407439596035736488774642157445685725101215558674250153676200743042244350631706686645626787877550600611855909147421075386589499942857891646667417466533973236538111049457029422840301854193275550114494593255256359821414483748218153556927652320190085979996570925801621970662599585145171964521564289385998974704272453068714463218401872479872708599501324835662148748089913287509145186537781757764809166961199165774036262763739720911477977611406835984929694561705102913783942530429563671267550723057227788919896209506603062750348765924194577699057826982667255356388015951980296829607636130615419380357937576993088110901086035260293193681709021834781469790442550159996051630173421528125393964885010534361305259012833230836070296407198559025285992706354494496445818221542777587759206114576297888621090426449819787265960068442565991216863392693584476935105205733597540751501682201911246102520890566388311604025278078715885443305573225535027275351028521542752032664156427434081087082242498705085233898957487319557832976274885316805655363118235233969629927551786493853544077260570625325683809364248404846742914558260198631327001926077737895548338200341672098767988110735563732654600201118345644231969004234464100759567200133681085088690358838417642237894532290854509427418735300928477024981385761325703370409131516273936204669578713738054012994793088482455303608149702845006137564586144055144803949689075579890325603575965896049818792954929304075557337528487046080303762366279383986285760240126383636180365622668091645060338583002204399336512011314947915365198254116311838015170071033641957330451806029608159851137737259262361240152149240136363990333802886426599048471702810618875618009337666519176557020279300933023911818270600058978071376074429667290308745692087900566915584759526066872690537546629619372577941729780087313994805395174228374558305116545772171885620815519909386284668760765774347203090425715252793794091270173951922523409469307526149577062821289657908945794294443250807868544234724877887038494945003234625223730619631863276794485027173648775785160412604253068050881602870122120141840099029048017176251569989744792799880857294500508939081716836741461045385632056386109183774972683970133175364200243484410965246597590248386047019802541979441016016597698733355681637958688619144479123819167421770658995363957591616998018243052732241537008185004325392184474927093628766616082753077342970159938933927138954007887951182334916624674104354703759787992471351943663755719744349859506907129484181366497832883957665737919985234522127186385566416647774178936693004462888138892681644409709697163767080404306577947835709610051142769950520490539222201313187091545230133140799469159198650063055936723956484440193552846081247501551382436422940087561346931431771282330846469659210186280335501311774336534521970316719690865460168258180796284905606034559418605695063263172049691009532286960426037414071028786307360673184453451316078619307390399654141294133709944002843731554655085702024455791311211199280667973953024935199871932221749532403813258629369413417085887673253661595375040801531828657226246599392370064242937314686459828410616084744190982938539286821694164272712677952670088960484265712380512114790445745068104546677098192973915481304563046585055838083335632784501248941551938137683518127940926400019527898504943213774239621026696182277191514437619301229123479009466678296019480740977797728291053294870515144193760581372127260591649596282510730337869977786445399391404867285322132956776190400543671644066375079307232277972002002277819068452587611824399823442695136751664575834500909584907539613271282049199689887135162546778069767885105457139156747233856867936827067950311695593017287127805771690581338847616272752455961818698335465927195233417085379506930987023439986727228518364297271343358417141926317483366207181888105006430942022684397681983923050478244860904509047593956486658687094850463572916663222603716159013095529521688705585975711538442789603049248760374943969807426314348347417741699320404971934916139781621178051539838677320136620382086580566125550279385019515640389403810155291913540126202339391902238433725321927000341851434851895371527618352164212314763302918989323510254087202400423919946508169545855734750111841507733701804967192116189413663517948369811270801881901473523899134259341215755723838592890573880691457513091271836357545065753838061173944314875669259155203326524029501739506834208163353501706351247328500452570236071556545589405485453834191290941838703704048467525420454117575216811751527429417969876215544299310292238969269466508599022956642929905372693335330722536430520349343591205365590261241805200842253120125830976375797757900620817580518101720722604784281650050025304888245734837969908952085203807937542755529668787596582350178016381054558246058277792170620966390617772237055572420455666126909138477026656451810981700701486697760769702577101542202993178694312542243801862584943109936479191311361327260569226194087231591183334875241414380850056317046082208194133061932186516475905102354518404139196389614006456350224466415866176252113294324805099871142924041558981280522385148165760143473690545435257176292501612674847726742572188492165422410054652858685364593659303470707213091780281437104259851798950419698455575054604667076891824323797204789868212289784512580874951255936730415206092337474192165187232361514481662597933694093523537048373614407667908122331760525674009857334313110276730639056482684015029292024594491196890003000402774854506751455189275065942888342245123361718085476080638578126276272374113143017803627108409564086151076751747304662140279584947043002959244666926664948157834247421968068408959044196778770696633590692570498457995866952151593304558095226415384777683714452891627175439460882473424587898435749219960011565865858994130604813294592085719815609101227376180983633505707507475628403643578359045478769369978151412074172734622758599622943410323908444961171525199891806882801358771476256416665389471875962938022495422793128615389472478379777269000481197551662436450651663611366958101912326448778917269474382627628131597174875290982123366880086072395463445420999958991172087436630791746075485286623712467562687797801993674986964148074348097426053518601653224084749630567422282224057715436544144489561649066251877103064536437672373985381376049543966172328804392550762846076875604329290210168292975867869918562782374662665404343367648233066643551335928248511470831985270018863924402450935205046349586920131613419619992646065407933291610806265220283481917414512535738756418884497821571484626413494459368650785924601818631970253479032306437134793875394206187928068426980791231579659076302725190033243558806118248443894556676385630982565134291127404980991963398229500588986464576993790758019482390657219641577299232050897587413857110757074876086106106342896130866671237287968515326557615776629771931577887295567939426345593195609656045547411629678673965542996116596257567167450020933796554090819053437444139876903410169709847458324104837673894090636614611394866946995168279419340869825793896082342293421502574090611437097490159893596155016010889437360353759565977694258613768917206822235708743636783267566365521657226197946142527244586318566741283042700968699302760669726782574085698175921295515152414033911596674094068861767423991339242961638323225633524246718129386671519177248002753018603005465338446075256724968975375183100830091098166631992097840684210435995967605462953473797494917853969947652041404782743114145019806369774790245770171363578412052551239380015655310435448286083850429147882883043895237671164690804798005633333214538878721560473906960206875432120980932055531062056005793344757202609292697429201489775699466927530195109762203516257576157300146818040197818962230247032065249460538635994590763732441097594092676840390926375087850922109874646241640472122738939383467906136148677356556028733730184738597284445355793638295495166428159699152334372187899012338639824157569083209614546010287209767575983396682306927555000279356840529889250866880781580202649287634146903267995568302706189685221300519261698962103791980813977567958189662495287816532216982587311260720964140245715505468332313305992156322548829693489771498612722438980088220411464365064271994546472564386202611572852417637629860636748713395123439437772497423504464795887602607058634495185674089720188704455419242112231130095229619654377651146708323621434834427446456834254505350423570419497143250653128174060468297751462555385065363460055414769311138580487237142087305350781380196849687440904589272081389844029691434945609857463876383053191469484543226389721943761030670960683496861572079086477337253334206221268580346195460699522597907040783819728168462082132991444133107166182624655269167229761808136340854639673866184915669873136288336099768612427227015611475529419021090089358967146273930259067174314716503731705729056557301192773345309303686542020277199663037219481150945435489736774928284292705808506112317079156144311750430153308907670115195375901911019994208283967714654393563339373937195600803302472110851862475287300398019566016975297999172538765903005265482768292686032210206770370071939965476520964960069521509879530078675216603801491160017887080089828231892614874600773425829662901613069589091232312700724177420200934546354863380538069578979045633075354472441856428364710965505556504241526028264186089061968476499885079102074235225938034005879202270545339891893776399256664857044045345199795347215458000829370750791793644280008000758843594141515242461921374263349248951408368676091816632516278270972869455536989872598643808606861123960990392749740918617349830521297022280057856709025901923361077915282161717888252865370418895122594565696105852962891760052396464246269530620031915402185172733994519782068251065140373874784680308522701799731227512430596454577897955033881272474423317551030497230884316588690397713300883008886668089127601509763083753932200005414144065557333041476341860149536234502596538860694916354505810940853124433543614373594124266957341835976661644702499880969730290828143685549757408500622992085396229617478210705430792545893896436501291802019193477851083470622523186598346901466569869379729725605008524233569910611407090717394588282263199047788185780726418631422412800449592399781307848715848076657063011946550859350657456280688610527088570001522612601195213347000715153736883299528923101223802359393753052039782966909758863073374994304408514070333902986541990375869601922217751785093149983634169663788739755144394605787579565482197329230790662417135117938573127587924820945847837263708103912859468899902919840619657667180650639099579776824143201542714227776184325560131898665553290958665444891929682590018297479734468298451733449372601743222312415309619905886730109287828712156806058466165040131297083210520673192031562900669093949164940616893956355436419650399429844197358694641074412595359509354193225986004615824623076864150489919534110190417605023521601861238561426690404927312433957649140149427729020603187511829640566422697030087635374591724044235139466584332547895460056478988645855912164315835169694343913104097909363851295773297697602092188645340563791025763093797700604126219775286733679295039418423160548025604749402965193171851370857967961529423926813765437321540354375594188096170224191945592125298718360836173850091818188357275881265720142025412177014607560152317486244594323728931221528464583302606221204082231924130169739791374843143212493251953760793297080662725560470634950978712633042073792687001776404189569000840352001469940131703903656808944042347448188933106663340429438007175186893831426766151726235424749012202896129222750683280126116154375907004048974598523921626313381052394646714457222096573573504764898631026437584274994786355348286346308052513492752434698445927749406841959499848430288562158452424721392732461923074884133186738633014666606915489782939075407920265261022536260201558751205797166209053197339803401020938728898432010589275736512980533899944148238280120275273182640516811863796377427977559222685254665699245686664906305541452797532857403856711928105314318811217089604117865135651679298028424673203877110672373256103836164410244968679485730456477903841823421512936643646496794645419385049249766692442294955233226983481075502525304843512098831548146279867469843134394536625108091387573904999568451244885343870837995895783635620657841529340570909660713343243186612653754640292538507272190249364456323674960749882402002560847020667970293719659875689669023076991467014251345363911612864697720296502778401839144260234241498983934353927212870663508870626180791407840964905093801903988474528545869919989802657107495292766424232339051832995101015753733123324118623207344911482573475910379388216303542519065092686073372238179501964436821115975990126553209060581469348393392454211995008756686656998773392405123340700357208022347014131021746464036706202437406201254725062360734204303242330465923276820299855903285442458176161139567017394642581598169958668146413530009577859643813824698283758120521775862195204459120384425607584759500964624210468144182226309830065450112896652062288313704731924691009838473653614996735375927972345335046973992933560780581488433501891208518180133921307220532100425300043873312936526471589587102741875134939027697836519998395936899222853090905219124539402013794030812086071407616314332482088994867025943315820950787397068766950624227863097200099285203851639450428423409690063992276751917816925481807549213135698917648436114957835475615214937921426868179135410458306984674860927251442217758232032554742965785220568785649538310259777627596242566809146927085760709599703424277434800937260179749312469587053060849854259946794291866459010458308673746200964884912494801440044611714338456861363921357210666382826262753463842140419645283453864184395471203384386257190640562759770286833768720545103195359007600306094639170105291042517201602656100565115050061749131890473751778586516696359824381946247723796724047708314822109259825551664494302428799262935990661697841072364810826539812370559879121025527443416516591823811469278852288364142905579749839588969402187663567823926295863099610791970699320082508112405306334575847778679148683208774508824921589881325720851623544090058893418202571618212425475350374035945088784721366225946843360517906569306521356436028158077676816394782259704677582926813129294383788052978423255029178747777403052549611503383803084674435395957209591442917206009360571924649453805648504183023447904042214832045134088428339452490137859267012372158540480243711045509022791581239543407602702569195012371142279836730475825629748580497010635663030672918296146684659407327094484556468360486644083533114099235238947395578139337379928675503120556152639629211455567218664068033739107007236396554825853417215709025930992427424682867737985716148392448316422898038207173384661660219431901329848619448134070030501745546985397682841852420256007836389248869619548230067287443722179097134141550676307705573529118108575730576178177924836232309375509653263928069157283711679314793628588245843789737956071790845054543922665298230670654234757039558075009241004772017958082140175564998948257264666353701027868461254178922381921060022004635006347811376651763254942109819747938307113801183530262962520175486988753536728039241770178144565353225802263055049752872883668726924529218470838066623131463778035930829485294246747206657908747286705758253945711664094502497070726778298849253965034457980260012172789121195157899622215490469018170385113205136216188283949186261251729420406334326897905696445630344885746663484393762481974323806015821288982903360822180946349417903774134950176985209141886757612397092978543501219281642668810867365741180288223199969167605563776032649920384734322753318791140955870855983482772873075530808565337001412636197347691300974619160072921558468450080775163564232092105994958366999932206292027382102021257474351171984327906936826714479770749511122573202041139716643605192112606305172290108909569714065287361376071355988880661298917216761137397654121867778252687346910798421237738513376620993392485212833409171831278041989271730944818319572116676249381825985764992747052965579061133899480802616540010536499663607520107155029442566361703563528337178415330526393947168386270744725309999390096394586477467952608188064091013778941678121076839187909648481954938376715645626953256547469026167652419313718820058329361886572148954813890871851078799097901524142321977073710655823470016422306270442613237055156467856612496352110515548550954763414709150157423417551760126996567056517821292382338078275458677732884141952894845949417114127123447809859411997928732699500077121965729468211208399389726435909227069360525450329792998313811466809382166703629258720050137840448805490332365495931294044843748269789741918391036365229844031045303885992574018076429568835033070015215113262547142678855867243110160623484117552791081559642398157773449118221395901747575463437344383876800078737991811757193700709368336883681728278865888482315691496721603273496870677114709804725292022612844697024154292234327042767938734828060506451374519709544866007044390450705961957310032472260963287860484151835917165344959159717068253932499513009871473623196615872281675953969389098901821278940670863746407491569254496606329039341876914955354535878049342854727008407173118913349156414656789448560247183991974610904378690808913973039344887472399770421190303704408344531220768817087805173565530512026944452600072561516917836246118314808690244147554846614372171542744124687306562886452703812218485761290158480354075145845527610045019816348634285618423442290400502331048424377085930463801868589122273577493243168931361019949938336398402353766037134980544150243510089839343972299282089613951860936596478026398264158763671928007678694267657576143749830717374336403921949395990718879108611419717262471024526112015388511137772702645927876466240829400128718368890427516537943180618810525313339728761410771431870672564060853545922066210886055348307605933727311257505558042560919090425101212900786982959766914463699317350923116089894817353603208782835854871148426384159831336757782715932771335972197109115276270764608051670814127476776487680479638137061531781040717233166334964251241686220667209787716641065929207985509511167170526373137942025292770972141627925020032587319149702543781241067986693924625522635000344396353091982207961479176199438948956150429115183349954912123343768018960854969200550548710992627384790697349974524455190063262082003131468869891340368432491628826972381741064008903833886533350485630185233143801980091009856738519198474409763751629610291466849371695590032574214872635432379833357642999606467777948242390352530789077154073935568000569215410741657907634319903287885410431871448320587832385792867688158116075270359059353527375376615802096661910959580937582106454736827146169984204884200659589135768232938873193582413002462084249773040805277269359903027332730940984688543638804836382418527359684269553794753432255566061646479351336113619719587956508250820074851501448550986356995067799085810128561317271052577664297867072253020332985716128087447874864105647918117606623104088022045928388395864434299276958991547966183086145384728283616680620391551789732098030800436317281056789490290159987675346337325633148315511073949337896198378480994682907767944406008310187534775709947162355112928253317346468226895371555590272545270487598879549884837350981628589590545578781195836314494849101306786100143086784698824107781628945911342868239598522913105017311196202757465812738829890761113064906844941115951875054694766597254971177260691390767734175603051694588291994675334062991838399163034198050473660924429981342010700762876030540470052392116502506432960440005991627140177377709019863540705433426750844100824155654212936967680398309547600172582708408336668869856642874755779228533634586491882486545812748969517494524867594724178802708363273876464645251728330392837108964174382842599785256533126158967526105609020597348470640491093281938259980213079160357173049849467133054646825253458857544768588219356990386594129220698376776674935740565039420171427306360919847773788892007393804975571487945300887248544358940705189490371665466030960017909641539149189983073661980418534550212309056660142147655946312415919124575629929680832121114982405437393171830466867650770028485027178876925040816522694042654112244492719335525811435701777632114357271297748313485003717852720820042373075240436141391457275481426911229834541362580109202425927920820210575196773702733799623225146088703447752417450810954340136375356186344230499287703808193398110136048575724365480185083906118197389452399446507586101052895289894328604959554933264810669393712459683612514274979914544750173162222504611596799431165428933041902508802632592691010895449232683613575633070021079185401072611046100292270215985358692715961662115326885065425980822727791234154240090004325182247898033117224300830625973413828793588379310229933198062763066673597702511429405143192079711910984339048220440833502943958209457591153715834780406373195070651821201502964762552074659281493702851782527413114330630490309963480244709986571836117667403670519604065079632813926041898846961093110500581331339397174264622712345348365285999596826380502957626273835580688256354334897224434485245022668431786879245619426086168563887360505262844743968995396538428159957766606576961055268608701108741108671826866945954804787879678227478549377594237823437749302074608621522617438339108809821834749652816620576220849727977977458226838247566245764649266852558115550317129726749770264437811540841557658954039155543337348166494959560538436132466865283110052602677371611378107543651405922270074870522196902763412178587871021852747652703785051882856817028999719899467415868504905603009703458588748172229005428400951732471964501094348755590277498650191292398820817282902265937491153329459564611803686342064056044185962113239343129338205746098059759574306785291490919944527351909115598609652581532577326423828845613509500078037024942287956630056296149257795504918345591524227641470411959349388244531096264900773011450150972299170297317245000304576898600006356528267222089042618055312154885210126630693236471281265631520476204044062685681582641895829810550735390762377009316882464893339797749216883596601019447798535157877723142377089725376938979105141633747976528288349107710433771671899590578562326678416549540690400818644172799076993516690267578255058185495970154721365965460456055950243068084037685290192363756788861158341796687486368588389422857092773824893956590037480111298510574472386818738884445857656835085370955963437677290676154200747440631033459787764545373998845517129108391529442076251773848159981525300884445903690920752772604050871276441525837984235099780336624369990005291561899994855475113710040835453776967146946407107331432177291443944045442450473723168975483986201033339257684574467335492630277466673531481636197933675507141506687147490166117113755118206104277925372175943681894683793127927821076373937089504665852967392714694596878899051036310121689762467231837615819912017699888717830701117414497321446908181194303390123265079367325085366774813905780890459927085576694605410070762785058832769214849846766240664994638976704811293946191626613485604739258941335837096479519070957042496293334140440361363004604913215766094738340253659292184760373114054965971859399141960823427819830008183961355062304830136433300831159748245363448966917866605214757321189618227909106498501213129077176491766020443606087142081205322031221222043123866393614589101628216054432487534116193286862713725057300621148144832440853763460476464317741393780521013139891199224670693896238436476823793589480375193844016856176453345936918823263744389960057285298370062914165043516463062038169238172013941383588693950233384261440245971505907961065742252132973863342752779811389547023448588573418575964263979301745037114698350604154257737847850118190083612881595061374417153331860701922289179011750038282695843281432337226674829124562437819004012426149535353459507347286852233755617671486545425280271157144742513407596508017154571479383911984585215804495556759429699811813341710559427732625955817507658193662613827211612202232638713723257248945803741018214336815699683324341729471847550604594104741181341563363491329738062701726134402866180132841909888991495145155621704751250010736927715502355388732647789653920738875140369774806866794437271141889702354774213963305390878822414154793620955669650731252959646692647564416505633004530034496048161879777762963398790634244187461122981394606524155558038526848847124425149593625077747332747826648343721231357197170927066310113454958667277282004926362475516887783214720206140290369031925644140455072985432066067086387068648481123806159571985138216860820606302262353518379902122290028084192972442634135929145510519400685825769725694687216042989715735157068142274189103489277074657357439568671719910495749006168154921089848523235594834191248636408041894190454212371747829935816482232787422447009987612664686007382472646921216812320680923561660512922872869218687502509921392152571535728862391390343446697151286791941017813071402178657292147887998131510504062545440461319646335793286883041617235035419769874964961873769698725615928468258824486312175288589594878794313486109302426588538210084247093075457044083227844900466657148081345806930744808425665768110350639289982056664184827290384049034685477470959454364402392896954228720004952739243288712494839283088250484443309042726788635725701425669851260989007131412666236807210277654516292303347739168044635895460023919317749592279999272761751182973685797864981437016059535862095609352180089013685219760818006300215479571637278100717169784978497882195279801473285164869718015847539864085242296495333817864866522190030752511101932757013672244916019032688670657321390102897768124340379789758161330677903538801083004068938063896238078276044415942401998276250406585202641258362356069551225999040227922657326115205918731443204923778533606011017476914213919475569775727253300409975426611966646740104708237985118685755397349477654834141968253469293705285597780811361714675225592033590860429826959438657138494738368113485858167278796213436920399124464416512213631232202692090495076845106360572050528732555563078901335066254735777712005766049728132482251750965240471346687487126368413244612449072931129741007332580556959336881352880471682996025809931097969807202036289013263373588971435183780602584683887255362813472100935215822962599986751283641216126802273203758381358178074505832471187711784360819965713396023004380877497254891784008363667004112439945753922037835560016442711140314982388349028602356612885659526727781801909256285892350554907571926310447945823487451063381871043162334279830548621101756076362307812277680363376085123955392853105594996962311691530418861172848656541960327190777151197599240178610125927144226455136710139156573146908292816151886127716365277697848186856294447591633547829291672179738777549297345323816184053577968949660799284418202493985522117108722742460765747160094803235040471835871559503429841934442768877121725780182592464762321919004238894813483924542822645887249399893217072038106391012287197842572863474103123274885082446820196776126751447270303204683114072943953783860234390404245231132126286160769749164467967776589355485559061797165944251481055708922761589063068672179896115857089809428054719568615241650246804967405154846152696036073925356462026287340259860678517853234810605575530769859137357870372571306392340135023296318139776707221119280007830935435701053083323938522802084768413244222136486746137683072374043490097764605053873910162777778340272958781317725168297060111726310090962288251509742949930252687056984723591229971424677988078078365356644748245690966872138959584468564493803934413225488767082201926264880799870193578828905981090605591284625738087971516439917557245322704968965301845603161082527928416907867991346774155261512808144795356673221395525129362372196042662393315136414684345264159717175086512983270117772073347387146045968322982352480664074709348950810277041629066199146067947504226734645512848255003881214914373506540113001379537279627235094540027541778284016801443674218239881426887353153860227388349339802286583194763861327830772591437329471744875898502374883707058011790675389576575548537594181379294031853052731137655526585047437564086761032187343142006751837702739088580469745736472053938377553234038054138972669328343013410184625121199105495319795828930167266005123261115394208846319592566879924033172750860683086931355134552912193443689498225382210681481817091055892783575787556433748351552549721609246359055948853582368168921418136752106864630867809403077312498418149695320718576094307584893855914779540404190425940203377489536255700999052548849439109698586301567720854414377324379934138081051945318782358129198387642782833186911020646654635304617654905572692182695761193130539215632456555010258226678949343211496359598848639532256737164290460129839012889846257553801259739505413340700951007636021478327536647040975360819277773211959558956694943757688354898361581174094627134143091622034909918509605607317521061992598700663858935636523486168022111229834143309576861258868452448490478146175181198954394733715148119804713891866850295673965770089614427630267644879001048423239202273058401484706002168838849498643783029887812156558267811467208084985252319055577244433189287077890722848408175771244947011473815382692858059244236696156337907271937402517716407354876779884875696346017282706650971901426598715085585995222764401944536361646659619048112885892749571909324653464225165829339282821172416329846027808939404266824706383997518507250318293235628844994629178571682917786958906105410515755281732923188370725913665219158245679433847901058904376247988783365106971943815095355470458428621182439568711741720527620443856739320986210338984047692078965399296737823548866282131725564737402513310227475097890979505866535785680724010824253641659604711465370348234982783784346723570298749647894228626206340368628302601494206438173773030272620854043446866776921374212831886840347647402165035820942389529556463900712315701173895486139671780251158497159003856878517898598583667327102742864827880657565172653431449184606024212663141696272852601906480657895980579812609774556942537904339133443869980977924363746538035131869960122784433998808892041558461526733798942254169593234607515619864396528025436809778856850624657444665007722547929840412334768299819224677803095249710457622487270454943075989839986540874692560544530572930846161014887719388151772451511652996031357837522973590273478456806600915575247459306570871968598558948311423443708364929425380451948219313758009471911105116973386473007743376463705419966733985431758675533963444113547439806159029468250623289650207651690878729948997794867357096925668078493546628774558997880484256181257480866216432755018709466549606460605490651215271523026532036289222631254388079704803561354526293953968528242835704523016047679231470753006605959154485401649463902753927532324248888729274477956321598271127067134818168214512658360998255831614122260502113390333900888900409915281781404775390329208795146396734671497324338517055900586451905399385024874907013558071047853377116203276774223848813070165236076661790210626325773051746343146824050552714155971515778556547124523514481835009518622603364739018281676733225747073248201352065745569675102769373699236628286454472458771088131091976742606947073867489621798478301793136168391447698819884820972349541072512410172669497291148094938364318608034667272416599675379609692499775750542410950570196472434268525986688757440829807400678898347604419388855333785850103721636513017069929006279341629287606532426009046776884703019100379482941074416721010123872850855545609372190381502657467908893449618892017819691165138976653333653460872681216106232954464942040573412862352931003872466427100238340695556043380031748094043681287494467304606698531900648768463036728173073647236944818153312921138089997828397474858347658458309329647197714395553895524698300495705081947969716806678773788803392966944067343450510946858398215107759633564219312453296371980331035872193658967407648733686814959339040527239141113744033026423894882300584185706836121283697648204086916048990076782813319093136423790384201868343473154905519720395160031678517129004265945089938037586145283193083569975267150415810616437730495124378492898682345142349190783479899505414156797470905628139311600086181335148873696093360973338718782527854802380045117949374362579785813401624979521796239673270689356759690326324488331941403235469360676325594692916056353107533832010321115468089698785735368576864514610007358072696691391954685681526163266602332448112273677256572440960898250741717082413836331560180906525096893489746773611929784597468559948929985611820602964127292593728867827116722838576629796039767396370659799840890905769672276785843210233206374729544495578727675929082425057542102228787660209452103283734971594729875490107864008761873909819427615844881993262973278697032234517344985988217137856091889194851343387308999178069455985760243159815770469527458737998185338014745122939883488362457998436601892242229513891372828201295961944606164432497544491008124127348243805306103909901807765804835115362182063092144317176202420166108110981132265523616474372642813053303733891013375067511719073800503223214472008805290580085438104134886254898890981594947183776474418615517545678270006575684842053643777007902653946961387677613964873231579693155949555456905150657729867273671948566258782759648315488847327387237744290134606102683092269276612958117486892565733879780179329760416597052606159426449446981599289861498370773073219096232669544520191032851323160908272468601283263336421568453057048470043125571508525141571490997545095141248446448961175659873997998618257398878702351616917276314812964824050229495568958007480511150274546053650007518769671573046595038235053161169476623130678354664163201093722759399487783240056163362473849584949674651899168828487529528306521991055310704478737442486238039791316711538302008634492557828814525059985369086680395515490305738271706119595894412690016320975900931760828183784748271894006050361620772538774300877427620669876204265844293327300887929584506098108234468565924945010002939460172795999978880189446804088029275016910354301509305829254669936243838191479978912004264790822062957621341679007827577097834280847220077547197377820468843177046606872726142691606961098882288115258688690131595362819980974532636795306620409752415179308954378552626829355651499523256592784890110401299668702158804165748609273064066376211668659341985374415749174086175305426110968836627776637952660636164277062384783667564310337128779794949848075116348499450728697993662568086094374635779732904411771450158603290698409137672671892158919936131163195559330009091045319360036235633209025982132191673973400088600856789816696746506862839135848509560754034350566488116317896318066658538693460568551911948686118802586382249751962105266281648396838395593350893314800152826474264690098086330785113494540106498052982219807082110727576371339509443703908549820469219910884593718932109530523318523718902119327794744170083964045834933986942081639155941062499327373486225881574628739822433637781104472191938900391475132505298092926385000375721334850098136062584267596836520656968785659509233425174971296106805951029477768537378416135954054195589064472759782551983307362706596425603340261765518000944109392274454484124627962179094620776821821244741915927866848129412869195682766383362280104327000672102432510528611073751795714144451876058135601843552278152946111814870309901888138440464021466835944007257331341706548106872116854948533678260273098218242975636527676932481642038928304999057633503618387327154097667985620143205290786800081924551082507264329254164545353815856106452606775681476755178955738347217186457012126661025948509753985056492384644426950082832621361435883981992405349101731517979423968559132279148714737333505184709925357770880489093583171192627068845513552859592598053011555086024750782221733724485830854487387763127410466209641815450903538354475361247027304196876137943441185818136323472532202793109987892506610433637778711874519164541383370726665812712403845696834778510458847231652887929350841612274614102862605918412759125940004318194440827500535541463303605533992861220114846790693442941059428974714229292399619000329811738597147081108786588351330033296347707856816612686509045412937362255680988974208771892551190368182665590905704982497980028329133891644623542484671813555618211616162124905023818771534421227777869426859836069997294536914599528796976518454545033429403202081643209927269290498052923138804809199973575410920505655489954459775808465826453564283086767862568868515428680295447578574714164786208942283036701490410192679406627211625136043148297467644585945497416423848292983122796929087063491866910799885832896494388697146120510732910939913733267797940247361711675100323061162664772554652704412236730882194385143088518273730380091092219871860309576852672252792605331769786401805104214937617210614085947814118880201038016430225431675027744768722291623777839306602585215727610181512906751101509277216984724291679538886791625212060814268717046801402307714614199650037251421494513185376399459259686928101503775991207918202563627425543762265009355979817732341108119402875202746327988071996452851438875661072413537708681895426891256907932601652918138859059321199405437623232654198006378624685127911146666292298934087964114428225546270505353773457827282238167776029077945663380667020609625714484222622377266021272608323612649091259969366222906341120504290986042570475568855185725438574985559795546933932971218849433955262729103865731066167743679245219442409952985493811129818615931819815422554658091763065403224414607929231661278327201339123556211969546448703720618541604535571785420030840466322971074771215324451572382196021610536843506054394947660500682805275349786895059718737451946302337615870848420889346805966032336060938326044728918079225020612106689118417452661812804023262975048995101827705311315325133097673260096906834226923099839855711969603186537934108794340376072244679348402283866165989680248904039873741751468924888178588990857705121017384425464161081110756124426470007505413239946297343024534538766618356603906821529296126161172689450918437018788088434647179822198699634398239413807160639610095402163753720270230846569912259725443416207766684762608866118826014904330873989783509359867261025271096077107224022290037356265183115044583995345578648192329830295069285663211769595556278530373152707158203008870790009894951233976353032898140138733109296585926237545767720565522062214944607565743466192335210144481183544964968244118193235172577199772111392178188865930220964848730858952427558968635652467095924946594912831559747680299270992193217975827499472005841216152613002511509046273152774219058361647925735954822457709006559327594738153594338010098130726134562675804553391242524532625616684168698142595311191798712225509768168033788601458940372232989958511356847807759564610789599060567246338869805357057179868458440826992920241099191548494234112630982511492689908372857517182115771608847443802718231006736192204814154097583663644047797607376745090324230893370741789448423848464174331291430419687189632334211730519408399178593069600444424131544322981459493467688984508422568740421374964389148195255377064455587467567077330052240331128459927654980587417854995492149466214828724751369728536726735350765931631032362040542785927002666689617795175793898448849358971923786524123183026242648712987818527458927142820310917601401906508249165030008597669664506055979678126449584509464437915211163034692281638764060582714188102682339870584613678080462429546233450668019203855112625145122190546802880136575934454709755364783721685286896335177494265506136161778650923307703213829636136846281406170365146091846668404599723177770623372260877049227067808223177965142846225161847994417771029432852044390929748421302880811072603198406463557348264765111575963395911366133072140727960247832546856567083162388413284724178998545553260479693327789295047684161168287191127424185474478650813089861597905416167280651050567594294787182999485870570481094630415924836612306736579843502755028999795979486450966301533720872636360429737426073214647005592564514420256037606187657916743473489579160983780951349764958903674243480640831921993625084934075946711524809318461834248880738195606265288762837372594539278081803731851396422299293916112407128196759739652700045245496997286995053566590943949928684174989473329810968180345369625056421311264735053501922328679520739202474876243507858272332030723764997316195537135280648088902106461317290185430298895267590894809133721285713991554513222962759757192209464742001504192869218093957793573464908876485594882716155780232467189338207039855434511556459999503493841932680687727268179107742105516426789595794045475614425095264346059398748570284100034405925259625151192577893828303736642296626983139544404802105772627555758628472311301734742472009463050540347923574235524026301899311191850488708738685440887514422511797384391859002881128002180264410640686637782975344333151411576975751587749368617416659695522392887234692937138270743756358539492043175152462015827724321795669052509595686166858773323937986536946117600524083472659637722288253402217806565047667268975932775779271805953202707008294802912792442073466022821143588882513183538065717106479160259505341377169598465179310379802346145857192928870659298922820043236271677795762302754980134025299577176323056852486992502355059127252267692337723755093292996232453415088812406524032950991067117148527864478564216151611129319354192905710697936182702811986609005154528061218548603542772669164984145650801214556454694470577334068783393002714421127170543534174047510413038169613739668369816350815256789659722175322338133149444177449095239924498709623940191003733986921336265616203923728922532149019768351795510639498970628974388170235446808187859226741261283865615862008554726112832257160722868284245200352409568375549494204638863029322869004712925866116898118599086560310706499841236084251660917320898446276839062127991056480797660747978051099282692657655302795873931172969473170764140655886087923144701163208225142867646623677346388358496892106488659668983133240643410942522095617146879400922718505778856742862607148880675271161330446293356896738558370170555626736299598866264389675157013928483980251385664746453222513621188830237295307298458971191019661816525400573104659445517145386577224948520696035998183663937520435970014636770175212786711689429733679339177038783229094851523086415310393774118274326737539539450246917531632885851255010901420454741034804050836071477061621114181842132424823859564383039403289752470701248428985554156285938372077796963025093747040451464110711002756140599339404522668815722213910780938503219478968395512919909356312802153075923047171727247226827784929380994052446079047080762216157193715548891341130624214375232759742130000971575432143979419745458748627857654117976193803009495126684498441593775212688004252881026750660679251022624658670301037504561937340870540388549945633208816634488776537508036788175576704324176275964055575464121480318851718870134371737473843293696892994604304191773386559890380520908778021546965546571684297228770820787635077881966573690698071874994120127983334373360847083442683770364409674179452207559564709988693479618846730825770684507130860155448588743215580596728182888542666607136004724064265265814356997031731927622103675476692045235783073580204708065020003629900104116572135046890655635534879980418087797545713073551194521774140806735661758732654502476148169757709425430474813710951910414200950078189548971620344732148689791541030415420833556094018597605223945626937436599962458822609505843650762326960464538349289983346545572249572154561194703443657375346546635547756226573550380574173232255541227157242071438442126343180973060036203947903969288153271961298188135781242403661693171764827635762540398647181765057313795124018020256848958914523842463564774796385930042937019694351719734539530623982850516570839852689675092993617109105384911483555731728382494763592120558380540735657156077121964613949886533026534172800954983658503523969014992702302151344248662998525028513481800402979143030978339517724385856725669728083017237466407146344584285750153252166572977940274834136198246366737067867139915654783387360044944362674401676019627448413243466826382247549547267142483319416290931295636219408753638443148126738788984351756929121526404990818432675294497541306467996560105373082670899839808471710352786217335004533581015604510033905546844234484672918323334149831069253377051764540591663511132578410299591304801180309858422405136158289933563559896413736977611756522598363505576292292302396898688982821217435605755245608221775580099266994593999154983810997884365677347725188815298857609657077578862385101684355457594151496524420553007409367817072159433559846442679408517875630519035755678448628253567054203903800787141502443282689671002966560004951606878117981869107173411238269455621837927001468080205624356513527142282373331963226168431234758580200388425884102733712454347822575208053611024266990019292004070998250499108381276657776590346762521126831043555382580435773060563454809305118049028398013961184792465832325673901693624088978930684497832536240492163062079255600513670883054634086666371859069216733376748421350361128350148134418921376691225318868115552083373265751848293399680692890863802155520071161226902727252014314274226387557160671902517006576796748152880344642070717146085105647230596940040280002440777744603707581960458335619034100026070100384448944136703634182091026076782846765696381408238109323257558692720464595761417827924513412070444717208499404080517609382757922499779582933864677855987306206668260121398323118946147254190399403989589146044996071038696418088101277092488948022333913397641217376113512504225787807906455333328288006739438898363085394112696625809667144836575970434255517669436389484767487954181719468081537034153137228304105603304668729773224536097467302033668404510692069737550375264731897194374610817385395925037182955704937894887901093343503737871755690795572904372652494244272331068665933412243379726013151574027986642787318771127813845413040617332293540267519941240475405009925206308123461614077048589631902742072087543402031099144608408936437793879789058744548012376185362263305670359630852831776329447077454330112444401593100627284681917531745658463202035702317941879510396244021400694205592227705008715551517965970220216539482973972268756767934209991800796054459968992722705895658158202761369349687415707581447428872217590759633529617320185994132739060371188412360396728538609687039875047290434316754603985071305172234172035243347782980986616439263968322465317897348276503265761158692479902736080528301039729560317430538105796764058975373514475741359247738377149902068492734563321478542556796896996607532892065464435528759572273708447925626240373467118730081490778654589658042606731018255457533049060339614169501224250594098438169059475700513837718289865740605362689112782367872202683969535221521894717859065114032508243724743851850114665031757196643178340967384502907976168239013262828243077938696864453748402651270870982039955365727375578923720492239502507754052429195007671471565478337722072022768237776133369560957442802471859235449122180418102104701598286444020422302025468083546223905310257949025660639449354972210449593377749767640909105553343210981938781463273903266032443955481336776174996565632791475041752780518137809012912101758515846301760416063821363694386174337871486893636960604394982823561363143236717114996427977832700507297442535354129313695372417173839788176778553932521919580629224890776091080091239130300038949104532843778836784795216283785151365867376860221226717589334160664359288962183011012524798708395529219903857977260621903440424004629314639266032603128430579874345056138557061320406874026661174033314109180172305309945374084594393099997307400249946572694712821998204007174297675293503054229762308236829097872676816973452345343728735318714803026527054934185369876197771817687464649489801365604201369588651812903571766959695793595406612281028391004925177366931482823327705596914684896285184307833059931122244237590202743930128902498865218133005739352614053127441032996868663946038898088810289114790663582431957560927913790558873836557308344542791974212513831416054740832646513867948094281994770075886178924963959088029388639000293572738177832054397616055253645052252925732045968442706716982536404479677030887163727606415009566449560660204699481942435491420899357269494699517343847595189146828038849899542050439475289648083400430959232392215833291814163312510207059130607507994602775274268953780111729187444596189854393161383079340463268027919485534643253373353202175542951537061266058110373462628281014576031404148933403591920437462270572130914959111553954074781595497680177157858558207823110447795759444958440553508578781423607351965305570694340967547848320820973657862951312809986234745802170305180812981107013369460283146012978246198651592546270542969781832147374701050174134917926890980575052768808532044383534625292910791575083299773810324007823024653875537381440625756123778303325694457947358922303595416504911022598681278754177308293607613977262728533581332784447072204432189244082910266166022249990601913856655907643445504120373163561485982014469750365860319198408398652055559443774550571693285801749765190492130952893428643111857195422796404788300158739726561373508379818553563213235285388920435052331875436738787627191296035160455335969192781657014948280917879389638161340703172533836301853896266897065201154893061982709738647733681823376515405760960097453809912071543094395100892177970600966497232825874506897797479393209462165712755344055933034337850482495192000158069055267925847934233986782698068502370570099101110466543417607434097300868477298647903296166568712723513220591842931974232726172926218403694893831143366425269538193420603098746233840114002889895571314501194051940512120596293682893704485339337927145551180257660859617868892068892431214745637300716733763752018790452997594403921914992912856504281644321129488334120738543676482615019013296903284215335712183030126139688812332638859766121103411750841567601203656517390205791495805268148314719226220622048975591297568354435173303450541296916502475878560222607457358949608028836400492192917692010270638050358249643479254507275125166557623555759835195877450351169347885979931823481104807068739758774836265660944613780146038294628994321295379270039391000038378373256861004350097430180924445420516310573715759607673849813196184719013794146046071021171012908948995982707058109260388123504128178203830688074721631599459595831321032673747231522826540972070342230342842379416037115607559928498584232818462579022729232399018699895395275820855959584384640550349514599747167471901716131346194647123379031205382994990589960919338233042170937293009705734358763739490361307505978599650076413903066546702541879148160695778329236223297083228073571708992158726944443962341242223882419320014084192834264754523229477191060577778419392433187253378351028062035126985937651385756336449522121687580235685683830741555509717778427238253615524036725379745592116465001420879404532152756849338656171565210580132904444153727579673061414614211487273529196536593085510648299467691438010643509171553783451660095829703341409561418219421171111819005656111444825801699827817297875895621648765815582906656774376839054266488844299719405205307360364176682889254931205070689488134350086132915631555389385913250289247209465579296696559403957171882952356687570572408489368410888156052751427317848821380144201607191748964678041508138589750959745274856316798488069127860449498817433959340498504428853085444024522739322043745570857332693468190009427827960718097312105709594531144305970216066745671445068527082400185817862350887950765119362259141207642518244042303992120652077377181024684699872712885098287716333745185687376099254642870011997504580930884320216652380511730851781157206791116635067091680347047757991451098525885687075682192529321745759788342237235799913229264383323404580064890195232687056516062136079495621460582086981856355346839481818081763651007443924078017758729677255410361295035913500226319022357908934979938724231585772995831409780914599452218669905968585411998423041277892971451767757510522787644106468435689488547065824028327828386595195630924515791381436581745102505633798139601137131813696376300851879796877848776919426040934933026238575353019142060699775404045870820377008955645433087324727624882539742005256436091861646248579112466180659081290101589292185629463717001368872015016286314272231739035144851171411234655444897684042646750033827206504518484372428039602256128526766235832448356916104762127369959258015123467990254315448260310329823922771991057713723043522467249680442540889551532964514404851260776071430649711115592509235379691510489693262648592916845322808980858293915945183840084062735869683968512626507800889332096006589644190569115875401308201732029825406803277316360316298572048410612126220247826124631893260560225613281679526386501878397710068220548995257314923779672510284314072923824205763618658984442503848044368804593119995543365962220821135600302538136176700676420696324395401815970911218612837115511599821867517743247593579454637313848196217860636868487849127326002718573401997525574702688851218146569634688163845462938413152559206805847791390665125402969644486914357510465594425402706519454726845915977015211753584996228867203612939169185336492280222269113909433609619563050485132622781455646728141170599802820962007353443532323967496589364155057515799800190720327135812307558885669462303745453335804179667950434827989247324370709779151584472352597388970688095636595501119740977574427539462713692393098499336701826824088725902421034236017452823213053700539950017235404570572288521074746049352829344968573450480848728919937365695634433980140571537997694822289721646465190353833436705065288004376096766288303379586271915771671721431312223834474367054959428788639382735128831917842206008974922853839451199544148747110142606525218387141517040780367997359919722558574529797074345641047727614604770629023471973614648211245940961511016137268608280513260854961923393329440595539728151085229113570451389692245799403916230134098788809533258013102293235041783310807377065971223844496516495636402109363317595647515140941616715588176096187137251420818939332702064031846003456759743361825462065586910314640924189578237520466263279411173110287625831166015981244858151352689302316410002472432785217448016944041845858612914253051059061742481808197664257358773743301161941409173660752838048849845077061886258823819257116730777999281051210372809134699427760308379223397714251314561596209875381407932256768487424370505356164598479812934603786667111093009360052195949970005275144009011851868788776547981680675908784312138590670769872575296652130295749451576856625154011569523786081382789871520837009290202077336092614707149969249146948257384473898993890463780253819195510581873904353564737455210435370761022636909235803087289427741302024536268481822655585058645506282208815295911451745916271952118272375959385991358136878732300451296118076083140673118472406469837684216094841105685049677950132933392154934977024621276512651409282578994510327405420916454833246668890016395030625740198285020413791840766137336875051263862334258067836448179491537260044774332819755117435918031604276614297425729940841200128904018651866716322074219654600833497504752552030714961234056700982914512310364443443346136627810150930100871909242907362646098978689525758510642100656988502102404901328713672433006046550908250763736986333459266617277192100200181892595674734414976080162829332727735317253510207018253622417288862986418973507802428346415242669248733242247783005246779793835992882449077055260296037782512187957960598461654196803233484819818199673147114167677436122827187391931366251823429839234925098846997330893692069377690988267566316877451723538045044215196333235137588264709504550464025777014534500836942975135950817811129657366838581931502664901813425294816177508326430133656357947634510698398619813578575125660054040300067311637242020530862981267011245292563062841617387273239828033078825673321394208988270388055560814837513108903058637308521654743171684804942058735381019737583582261044236500585065756984656824874332343035534769733053988170499063758131834277342877625450556051358915712998095841709086362827772532046984764199046717450286121556211911920019951460332258750444792376513729469603355927470234842609452403916346070314364674604947746904324919993433939087701842641027596241409521955149935785730745135586194779001868017680908471067423351586450069558416470088335998618562874194732261168230361154511936813990104262825536396266178603636876585845415623471835955788650972100731670738661006945948889123436504991498475573911470347395973243559027408592369758655502042259765502957795105510161544579395316266367971121097995331676502788544823336530552755457989255837113898283364520179824350032677538923441809186361003593839852513691942819471762250177205048738129607259705565735321345700756721036786063439164799195344780816083043157108726009562071101321272930159730897284890028470163356745474525277211645964787431826736164679935064828528755193916523581587393872027293793289611440040298391301022129328007661024185400687236594444973474365586825477687842127903422083832905573937247141123223106677148529191676243040065030226797202876379734663888503443896214066756578020499085133064917097004346226414993316864326050846623474114061260971514257885708005190250908002220420700906632941716509579077750118578447190312090462788707409969007460764589141263558855138598514954060734742696429395387101842844937936390258158113288774023729036915814574999409731311243408794746100513244034389119515043914305479660565466411570635667463736553175981858862554440943576042617106478077538189037887202191790568824471908426538700651968064884959887435721334453478647220763708837155194411587830282314388030682142540987351657757829020353388116872600210877709307052310119279536476734196578335664146704943510865420115055616460162772473113907680923385293622019355810959278926788184243416008454005822786821506976440657661755613361605621923351358262349334703454629652657537233023011558657751628924678189538002924694398319650772025249112597724382516843732951254358154205859680931461484872499753292853124042145058333848498118666644157355744892506527131049834927272465043712471344517408317911698414802194114839399195294154276408588659446709042209929665952740736360910330769119217723557816130458618520016805143712655231792228255417301645842098570844912440878600020074253431534050309383242294645567937091851366842346072115085968907691178659224371854703052442062058385034884460803226853790919371346344904854600913167239537940838246941523863647897298423758972154659497694435529295946445701967504899982000764092120543228786118350586955118464590710415313586706244735340250584061362147692840936380063016222197339104168878700743190925323043124008285827943829796132647316776756049001862021304446484063125473530892082547144072899932797950518667579965478128784630274188124086746139169823151553032260082564278138744825404490674615952397070534213585143487276596225019505962484674321236306221198527876530128255975307842600089487982826902651439801048871578482763034362573356491742297568081784618543312272402403552285289581161689918294324103624689612782400335292917054438133607729116204765856461838546804627239478202676691499472333759138003566675815496675533803511645449853744938499816371986229498606090813445215974342437571844809116172766933704139266080156383064170049217167119267285538704745035584462135770820505739330683169283482526587274149359808027995977086413087067428435527457769625400681167051311560458822081569318173874765329925844121796352282506438835344247696507544276236654087356078280704451203374157221336285465598833764319754885249441346783495748887395350417133155536632313213645640497989028618675574150854198898625097655131280268996287049139248316818717644924554448517086552791504184938397657243939266200164584427487435238614169255687937147370887867161447785052409130162947258399586142619970598955215442351162342280357777281576543374609846405997661140385901996058953420562231530031848648477241317351771090435748798416318327724800183242015423454741980291493488390128756802707876552478619023466590310904367883261930927948002991925114686476374082254313951957702037119459181518506492305883293617568402343906260947095133653009678095297240630001417360351183515183517117594152127237038955120205404824546300667555929178872935679070365956849826780899050222313635264066654931206756482852740264220070953057988903385162352273894650568823348289971066115141281093605584257564388810770293309397335616273255051298204956455091951939649563357551359829563718959611543170054189724929504549144648931659498417083421922609350485820248600673104822808545294608844521332038043509520987817715557223724628526395414974024221961949112852423633921958375742555771429793065143041981962066674850682443244833502315871305542649571535627559596366673062981346070488947921795827754410677830664827835312531620138259226733301511907462160268055008074882230771480777921252400464232913286444066358774346974074773126254930219289425749112266149733709805638238425981783418451935684710037613232894963482575228753852587648138259579144686892236821812623992399798937677391245774432213794725826018926162755983712996929536514554200510678568507975486696038409095252026720800306754585613396242247263385770420550866154278623379399470594727655694054521941653044634577190490782618881890577528495083091851949224270339718454295309672129171804687220767969108941897076050754248755294936234730183741273633722291914566176034371776956558599521069249882500433539265421307021580365499487356278679522318754385676633203647882689998754237667962161589287735369060386609723260072017584646242735671918871873345442444184290450608154883331355961212419136853786047197514169405169578848336533411064768715714144741285163201469318099925734190356613961065624197600573156691859278905108052453020466038417977032999952462732398180478183184258331937458003572295333862383827632217353331227574305032994053049324883208265065586367654058223502383936005809430658006347908073556208909743590304189123122501307430702815913746184049583910500711643588025565426430174342246783377491383277049080391075358286311328494847607029226880989966413689608131936870733270855501403292885563692625632939420016289510651389312647928130206488187800710071856860146305417927901073009278980719875094238751581095789937788495351594630638389812235286682520269808631513001611158683908715254820608476537737104296827657179505947333979629808087302288875501493344270342322203885376112441203101783372530912115802616954599519065170944416347406614464644154316266451182186758179868202084821616587611784151428286282173999437603682752550106364919662810937019670524629064547438506348417677081962168862483220818233056123879516882821950907748528642956563165008956969397274604713058663708954071860570365573763559921124738511013515594396177285460254044951259732291060069226376335435731942503527456504366518051393535636350693909389111978953717933758368311408376068985314522287224095715273996540998582440512163299327456691631846842673337945242421678406605172620603204968685537860172477573544014530792684463862731968183128693773490164046585629044943735911719647490419595413804483956153799274543351510689146677831999210924081875738135232716081197234273435268021771742256490760211258560680929348752582917102856171038810253994336350568475738392291170800449776297255566803556848777377865026032257262599474503537673353598216716488503110785329717604513093864192601242132254409468464817958748161837742575599242954672077306074456342407362796000660290001939597930215722615912203827164292023378490036928573184947174334065735987396773909053335165938069935070121871684164714436778302130199155662967834716370594571133035849310989759742038671237524363695331985688308602642480004019979369679540603940823272473489168227038997519847506640972926575510519839813220271092048010831203900604980643148429542774580336622349025791140381021929108632615375297401272055226794779389989958133719630150288635288432600349044576415532191559944040567180081633951205558325020761527383082044263816827669080417049759246606761593008318645692810900180555091934700402692288601668799049189806645009433047182297513996071933033077510360233927581029136443692755117209546255078602893148380784582102495499050684129256052880715333959885760987812160272588087519504319774675536925795358888552165944013402930246652475804812139963292483958161296091377564725657719433107971227493044570619395974699714889557540531516812565300998895089853522628725062800855033244735525062768001403772454226865819687186620617100986077529288533979260687727948095782785729310905474400610686434668828487589852104855636180414206578443221128758024516838870686576801344553750328688211051737018407756991608736220231999990950927938280164729352079693521092155967368954507903685860036453436941939791004961954738218703569271540677783866025592629338403772809046513884240058406698950517092974684921410210953830803489099972681971226092945170016018480148152645426178896819293326404269650510754322707360544914389758256421001015782345016049017265799179454657400407525052474364654597852346418899712164876254880485122917455262316205098160273528005218628407523702494989510576898149738851087339544511149147341484857954211107089330099185137328978205518775115301353223868588492012823642899066603993270655259448516162801912970418103617107185869674046227106466536735544367439855794458090770938808320483406409586493400059056918520330558509525506219279985003904829545943629424570838750180314812370374212576479822243805942244575603360438173524744074000403622649361027575424796615122272595978577068041109507838713997709829770690547749978022100632178309087763470990722437878705815938038279022146699015654338565458517035239953858338702757355666439427127263969768313729956662465347374152092966038696231809193068188930096908788175684010379161067294704243393142657476695305396958795791052567907532067886334476802311892020858217327655231581078609086764900671770668253902616007674061507137466121778131065690384664659883017499408722388762903987910714641098281860801347293281014102008945639615168724287804098516035319669507641918443226656293414287097374068826007544447805098238763174045749819614525737128044450499216277462749726562646906616294207899995761248628877181447980389823379580056269385897008630172795522173794936879819157686828101613478151904110938504524660926011543691420947269893435542335376584013908990427122170595516290352563428325087279555449886228418757096565512015573136098019072353320250904520591415422413279546488059238586162766581614636733633638579810750487221110500261929937041451092717458768041483322807732060265293203998966651713583686108999470199553137706437351361731268625635018956517907957708906026162072266127547385825969888379357333117962986198274824266847543630680781527340514799730202884242686983002026316022848524432939151057065857989085862204193838579182055022019687118389749486029699497741032075368921661550092699721193227920964877112564112561543250577457556842521834858576827163747067017872561026678167012266122157549769051588657341171974394478590447026107604806201491943984597251721164526874572090164424220539237243679836680391470729955660231610049911438882739997153223409359509105874049565702778562745234897585173351632277008399821289033135784835002187464722708288688937864771968770902470809090829378736050166119417486242674650439780410943626719327080164135352082132105897534104662158867710493232119599945073235620964444275669540843612744593253648316879975526723147293221906023039499381270150267795487653672996660361335385865700661671651151628609697250340310996072686203134232063960700513182034352915470893752258370936327504447130134426680888540832624362715992628733954860429455982179981695396657660696569293652553529425130716956221509610286962910099856780132690444901026401598233915925913166171753748686592374551474799459826685449906932165981350922746739419439602889979796516965060104508484549851636438449045128153344047389784303133674713526607050802130985102906836028160916460542652875687755214369872926428279361331543952701421541346614848509820663809507250021410875811880433763810386778303964540264201303213280662593008360092500146588869424610716773415839924427344806970950026058108208219116960060728667212985489573095928188403296340985072424301924437821396111324129715876219950672339380383591511979770045015309113738150370682441322937473650354802062726951632633077652895998103902679923868036423112974755909026553311735482439589531451524007979480512923286242113374228408011336937071296912510623689373980950357123054909165461391420671133045831485116712285431639954427241805875529020350082716180973403990249846553246213552052502239027186563487825320370743170707340380860481571830302004717177226502994356996513741425549971103455647106508258547883201190238542415256318299259738364349695513770533468281189372225059597184316961642100660045288842610374159927430350526617786912761474804883119228481101757246419630291718136383686843575223160477940029985580458313316799082703395782879590953465233670607229448652149783350460622748540837545624890903786663184973062063441762188103659303397738065704383299590563369483635100266719820690128091357229804792584198218590546442955398850266467618039090983417066978665563249783364035594135727009059138180935874294044008226344358651059583269557037142581082287105838957801647627049790647124911437222730983824843145938995830056051757960495659984194294079500988842001660719678197919044054629630136984429357151794932635942308211755904478730783513800919038666652396934961958679144211625117390991469092674884547267005847115972081016886282349396498306495741901870816776419418376755757802959791565853625168432034043336918482753059273063610511149767589247375200983991447874968391757370167523289988582777071907292159050837599081017385161118917396976233655108642499426872346489361578147547707012401447949215403291497740957312382547687933466956690191288265293274652472446620394591784938902076971397945908657293202217003937603401281625122785942831012986382619637573704443378836216958561204986526410157508365367725879626414895044209302352795608395713650460715962650451649407884634172407206867845889992093040557868061855603293720195619341759287338543625396438019842872237621173586945479324093411069927573122737230679703396116075650358596224502474772298056058415611952523779365359869515011935405207449669976576691102805626918161317254102975085592891750662845313331747952354232033979086526174447224300876496324659332042524816507253386855682185576558935515282651771668518844238070415212939412392827114715431172724560980624646212619146771756265141367761415095772448824802494527015534301004733550980110163475146253496430112960090625741711681321365837938135486235677537411781588714803366930026280417664335325856074698642540774526974194671330817110664798050973779529570102409711018825231623715488360442983729439070590701237084705005083934396516406554453180813548875941363654887145501373537018140667144593570575520448791833905137588223225177849132414986734724004354867829867104265603892308045659824989349565820484421596548095132425075672577503996678472665778937283996925909746630050476405437042687240582542489410244107781433006147084251296729342577761621249026884574887770141185535355587671366232259769069071509881762122768206240290406850732666488609052222007370812669523853333359118197753886799953004362540452106530682445563221664753337582962893907194672837151342815162918253412190248735965053527657376900873264544489379329113779192092754404981784728070750979616073038125775593082023274244467446619715579909607079082093354664563184870777707718366929921628791780725621964364283425974410938407666326526212342073385335075440548385610334634793726075915417426410604496913372798024184306097129808062686579676248576986272614774920615102142748502124767263831453032653013380329697599192750080289362658458128230665991137228590010134591663350381692283918792595419178021561709410450440347248314759201486496967409503332049702652885678189404325370430949463547978553672211945056496196736412112828848136395368866429653019112499763873148646309266358853956548678981297401058435227289845228099048804121790910040356208452650908858560535168804773909178464214952966273568121871416502653425248424371058970881456064241100402159513752305642663241356919884729333088409536277841328873229311323587190641178605469709706978353206227881698849079734662472829326331464625200820224838112194703244170268388966316600993585890270610789295699413869822466961400982938644137683885822407441272829053150492001053462801606080673534900974227184884194766127395279767020883078280772984858053705085513583019806974087347793585471436952233235071918656516115200586833136835999770705204594608818479209712693321193625650609854336445607997250269411056567472796564783394664677894286052485799880367514937553124691599199185327400251047568808769578651475695046265491379320015064917365633147187233817381257282125505847762379765480973871171526488594307759585034579716872524549932269368986880498132512720515640970985242565405039674876587108633967654806991221799935614231265865457591134247772206592357897277501228401824978434789443790808154679756710297016975787786591127297464030811620651255948728780175754178231982511992613949447972099726426202199894569981499211601506029407881966502130269069779485149681387750688971599534231555368139848404231201717680370665173357198031468344928527522379286278335004046936416832494542632758409175778446558457627411042290621154743423448721473855472022361190977102015629399976127191874754726940941512852567029801464722870348632463341014631744179982564499797315925639959736487337733605562756309950423103893217278544848087589012516871072539563384085763822692572739649047337194311250886681315347981104774999944074201237036486537230739632425013541957845977976575691426721281831886892415290465653843386904888684279111175151449955241789923813303759301495723425655627496023543273432204416090872196642102578886417719443386024849462982104049128219238685138658781316543727357461784443094361911237830075334699615521273201268429168876823287211610518460356088424832939772246813209606092079558947039323390642884478064054468183627121899969373569993801476692693483683449060648408232699046448921528201067239754909446607808391848958496540634554412127740624094845197032874120297442667408592767495409876247834475037976630059140666612238187959572638663792292845727890672679774624621400181519704389960079913833067220655850773459690309560126041266432085297666245037494881948847685369637587975109531709794649816463649289818835269903543099525771447875965565175100296692571557562262149281770813640834962156755281061970060857984905874292435699713092865490299649658657969858714302482069556603552039438632161566063492648850969058203292185250783127947403068076385745136407909326278620991876999926169790831450583633941361151113299970989333282598636513816352257449501539319304162707934831019191424225302201475364894942197240330672602350513924700512073145219079237697917584690104068326831932570997364045295645601586509738491217830673707363008886382180546714762478053925739564353071501543882811128790071416661366756151002649999295184161152883246707675106413496204501344307863280559042153827165745115332058895276181188747824927576168508656663399352180553585868344772896933473172646831456769906347736095434604640175137335974396950633503625568930988656938035687934821262448223505837907445222668629764193608646752150894394796097598317548983843608774235274702056881515042762992570949075623882003163324342461823496399443023031951180583709200207277845221598759512832075698259469958673308681907735409021182824384092016541087779933070504188806366648308591730951788620715782843058789202490300267289461244432601245683580345362392402966761217983937256015945776744419734281670122734902388293978887116961974952750550369315748171536321921613827294635118145023559498872522591739962570162459493685507351441536295195896308541807399793712089285054516231288437183767031662440435382518257451093868969053246733181786371124075237290250078376393687299282610084139599905457450466425525879812666869475599407722747334169063754733309552948101864838401281109249566168722593592845677866150298291871027788833222639410150193982117774013250001120288130111105625511164510062086278411255258395181421018916953827721192282623036876482213255179323379269352242044931131297178905146344340288067276706640474583796277459646297221556321236154522054308389280687217167613534385039557558039846955085916787110086639023286608493362277818143455596358499248038792806294533278752549571309921349858744138593823615322163483950345645874030360815003258314259410373793333585040006619431120077507924379487723994787788337437865426824803402486153580049769271236875316251494442697284679685036761774676413418565341371052240674590837894822524017329409490854566829696581091182528003980517327613000648804228518204598155073938719467573502841035049773897576440629399994457473591910676444285343166018337398941160118739129550288158790368355097730913394203353067030840038623583679496672941709045618388523261481231821984533413047819759534307106008752125282304527791829022024284997492761197673377287696262843436602896443701463184393624744735626781316401033686092177499642532650069977111499350674291800010566681655540801913622320255298455581736066266350007072573174363377881418162425742962933347246278978370699856133707474394731675015176114543255960423335244426485984016690965007980181304995182295253455473248309990948380426197982372294692424754874350778925712930626201104074628154073603216312660371690104054590832222911794127300745294730720869066439256323153363706834650714575397429996819144463712230333380031731308829574587196539026524180007075239892044807282947725677604296373007577152005457137671696944337913935247209864068153724589145870640234409934741958236715331638529107693332217668306267089268154058099170385456280668547269468737398444181133509890475816530639859985129007592155372190259975438184449670621132137487808986721434891113091650371234997866530888936317852765114387568123129218298350198946073801057220426414881573956730972134538593853600990105537989475974153065409854880884873755716624014907605968100847032334903138717628738947811799125377864051247482464411974356875603774833280957955270217311847901800704279908538895496745210822074778088139157535552869106809215178637178607977197238828553031422832242452095456731873569223403763099726336810737816372993524233133871313784394785529956724147165373135418778086242115219132203412492347660185375687197322587300404496697115935049420937481363631298443233859911045728111059580841598029415535989380407063897914240187462218215848177573064964800976338323505816868585677247582446051074988238454701504600910083441833648078484488508037799076484358548828115714222419741537834769849819987135332265354488167388494735606075426853470917091168497052630540967925692103782200161123161258128383139697588808693324600173014560422284291684221610057004048156556647892983393963560636087191824680501184715019137920485038829464208781140546992974260389209971869811705653201765300255569740639267342280125067327782841621445306623232119784888031177856963848048714698434131956676637307149176830182152628898622994464489845417233812267012636247037165068082119770097799585668211013797298066408449589375710511768841887465763309391804237322128157642023519252991724944196964875041490880396713577793929502351675754794699330903045132025832728223971649073004525907868229637775361167296050892458116569569849195881820647540909804846729960863006559000104730466369043885151870850511750218627442751828743964050487227934561555063870262670564585811403837689145194232588337728264604711997993401384419826519595763715236925034530543376168712659827856023175403146624833724511936943460441708783016477614130743302692818281606706076202599084027963052537024045136659132090462270778315826599754566228250344388398646560279224161666227912027989765895359773559979001908874478937709005489423082800126389970898038766960737180125221310815546091063334176623857201101308889687357083423109857671317922206976513521220815302884851669698192122955368720297810732010534478760520556051537166450318117330470840204471521070321283109981264483739901796218019601752969444133207547321642236440685356509034916089638179938672374305176720588949756912946769452298959705291296729837252998848391440742690948952118218180109688289602935238734335616668629384761296925443479546756155363822843651541748098288825098367505305953808964588673428132244392950927259026083477443423472114053390593847464521906334046674821353331048603069357783562836567688164534144742577953582219702688715310506980806426813071633748537098476706823656511140668865078203541267301747312031319523216517651339976653863586732573696939321681732471561845185497475004943062319996129647413085274482498580772329991524550293592688659520202975337034309719382719143849277814497864735312475010820080553330435369812262700309102325350324851982723857914365912493229244473238714682670390619950831342341135004951556570421056125364287117293046632042506031087434313638961296885486619261749066532246619787357700342451459275982997043880721612815641684107551910794638448832362332757252481333385402269100138308324342098641870844308508091473517216820548281985837872863343278012186505480743001864851324301197078597144534850524693073656888119185681584898701500985956411265644832199784168101041822375400127901318794368843966591031401474384194868011461655994992114081249853354126045741373068336109348325429167765897955097914891119086103322706523221077555724011381950408227668823848641148040843194343862230594404528497504973644369857166632712058190683190117030963680357512158063118522439002094330383600962398528658082460279599569194867231578481895681372483815187557533464394243772638401081885907405341452529629442054935460156537940212417333501513346091489470131692436396825858140605396889728970190728164798778250813218744002060644152082734605888829427862842669611753093373402169173722098798589044048998614116912168074962156642661837062593168508762311885941226296286818497232817071727404014378278117442460081977923423840309630651620795490951305917537777323369078458763721177689514666850014334617153882748344451307651751321365027879314489044716642313437607342366078008295537529694796845324497704266206904931913273451173860560781884160166014686403606575769383559403867276235311160795266241675503904107489847036983601250359188953626044302027113800567740002707054307333195077900162740715885140600874940419132641219709703694952719257554224883527590211440214800904634570872322743030508908392319731545626658951833535878740823162681951602118338671548799786337800815014382160013365578346313085244421767446985910249247007898212186160754385299398842539450188005735210259090940164535607454745595928307400622723064798577403771681300449548035814170217691625470238615015421527571568942746213285369955902219691890379323462446473539315260546972101079066317586895349869166350961761398408288115690999468073620221400323452928754875410273557335215707302399240604461907017672114432781615324367589523262769251149469509481016075186377871722771004550088198100674568055280750303821594909322498223648265397582622275864161901365958250823738768077695469748781074059293536615357133124959713020203080191047115886911097185056483997007122396748406585802034318768668668887060380612358465591017368315756763090870968702908157826659780230601693733652337269219797659968728666332152830279771036658853256664623419578953912810093263099542905218884283056410174978761786340012909628982252374645604794260402935347508513189715978143519846238074867423848194733172071027218015210636245166443158698815552419039428283045118238538760055165507486825735519519906291045376099101157491174740830069147387486460404889139676411828841675148392885743565297868973024839659887591393250754012356063906207575527585743879488870008195715202474525479817814812673190536764881755058811783346213105080393524365047005295571927536365199131701121476423720540692474952938133074734524594119953339484267372115065237433089695403104196759066275804621610791298251882423880419139249777166062303210705035383022572280614192416500523677646669430825847786784425813517749674913265721502985838530856559863433634594620289785281956691903107597150372556534906797775147390573953649956485259780042923754890163533084906963324136544800160676227734224107747667144775647526973753552114214203106218732339845496887826749960406236012745951959264441308282156885204064016398698394842213036107845628292934473005887443267167135793901865701334619818999028819230606045041733256190788606019207797335087630373611655702843262247382959712248697826279075258045901232653895478081446173456917616743046777912739259869402698378215358344171838783367913130742740910496647658139647964081057520282322169158361733270209591326064412997626108709724667055462373090746946623973790974079726205660290712368728083716893957062488125376703103522875434664952481171502145974070717873605763782982972931551968962132375560399223305515018194221029269798639836669851257510727281982710374516135363859840895836621026186601461411292418961463967712080338666332007379927537318968085671031875368620687928303772590023771579122473499202138624116893015507697695694501316070329247974994138765072612629217820164148227623505190443230669098162665674246163537734024261193126331831634277915607428320270607431910852244059537080437672539678095118467580107056370539663542620759254672289216162430424395756630789994934904102745436236927452686892506426441665850963843997003753086791424750318639781224164465372632922772474656481558956212454791157043940697662976399284444167685904088815071827014647787683078222414128039666509620401710197248434046265660481514766031061515515603951622561486911783747025837512668822599121783618740149372140268523561721083789699229305589857404305179316537441125017403352857918537512949335713660305322541594457283636718766376950885439449899632112547552062679321646376802715656310581471696894337809008388069523701070311548574565494451915344638726054677157155743741513584455430100156101932038251167318330591987844276371204447096694518595533945780140604108863261775929055559185769600603292646489819738282517246623194786369496467204612015429201517469266729758686333751222379986756463336787219778046632633628982658241497382004474181788559608906935179706491189208466620015296658068626442407969058186077597595645442905990060053892714244818073731928685590620781503849906478560134454844291381664250678929096746567685625803722875815834216759697281248275954770672189174005067689903535801611671640376640565842009966188287868593603103919568550578704371914915091574034204050532701161868945023131737339066898564049773464683756286364198356181465661294470245033929954990768599931165638209426371487119168814298880480666491674765284426714085491400808144407723773857136881109108801046161901290093563704678080796711161105425042767157093321012094595119916928451637039278792909409863040491459468280280214331301996136497495613078763108236020348529014898518285499026421893728836074698068525342666632446926514618933675632067876361460618794994977610937096018209194321647158369819462045255370973073463601314397428265297571597431716321703857387743276670083564659988997415605586618014250171893331437800636496832600638284948381334455408807710092328773525417332863036924340507473400140296740768196943246061462778376042322947668997421789999618532867610193976865896532372468288321322553629746727436079848605499383711422237545920271099765724453119043567034477660939894040265359459472066645188762421184592457082473632074937581928750738187628852351588699442941099641225390078550258787909719615466883310610420372064513988408206394881027657260404156499630905406798527300159812655108665721673802375160279597674214010856853585908881570998721580617386425054852027060188660461674786947379502590299510606277946207347231839299560170869290099724085638373221821219575767250379289941798380091568226245000169630966836485999113084551974676794038036300344270605636982877451227234871791477716816855711899227464515180717332370169247735950506366880327572652087337085902540364301638341644585695862341860631734285253802708702959585986223721755268403626519081037661510468522717971166766355066766245690368034119649248644857618533819537583622432770044824667337685704830360700196252306451536577181284094295682398950773957435509629020703252976948157844907254116373192366174258485469146176875462723021089607102988737662549578843544861865170036568567366158832547894337199889202934416327344324709678221204838155142392424787553131409528870910863909916137805903444734643265972727593459527690278771894240207237491241765736186654892450775951992988250733394974892527706751456412764083858433733514494022187029616864723815296315384915576256913560876213543025464498700114646575702831888116138826611012702696082074115811049084484563314180097886944777129523962688027436287546021407577324490525075216630819225344896390048734083466811977699783849615706207093842747278302456895604152705408408586049322361280035417463691183232935867532390067905484932505062783673775076465415801302012728894942544451434123084029560355499111161019680081765017252540025988579750738387415021689044241826481741390697851320556781310062920582317209689903808124463763310274664297676998324443473327034546197530587196095691232172667640642244234079728085225169487599170859758202303120901849666320744109956980855988835317816234460932505259887646463734791786031646751067633769400648238677955127549025158161956743714439692536552535218479309174893572886714210521473043867446406655502660075143188294875747532824602219356861588699327681494839474186035771807138996772353767275422177469960940827712044344027053920642671321290292211846798088151283544881587268051473716952953154861884171745910132261229351077952102488487001418310722860460372171928392083032654286691102966882747200605116477603578317018261966538309576660118405287949314697167595099376821547387504564093143755665982007613461400741886652518117477875143567591492688643783584964221545760660848695730303490481295377677745845687088189618921209304213133840864277988776567354663700190123088053348997433130690038136654043828683017733797815630231196433711783515780673056604263795318941734770066329293651208213874547818311000554878220873864237984262857254218237750025551744470099344672097167035489084749135115094881895352763950453465291383360073665278772477923088968441957207257403430534030803158677210284977426053981566636275740256844385345517875982454495313750249668287969107873811483460483710177742538849280667530669026823035918879061596696599821897767602935182505692354505645827054447667356607712957033407694009122199989985316250737715901721227272167820118273892669425620962036479095190011606541690127093716431522695954644947791306428768177928378545127726732803297084723742101164095582299156508527087819772722738731169138719309371104427818642337201000531790447352081879173826376948158477348501344972436408850965532000347759286012070394873054844035145997755920700473469230903875607778638559322991127998777579209777305465319391793402346400820129606148734734579198920393592990815700977236979030511510400896951858848572875430048071673621625260324286461127865116751798681047000918706642367245392489212714013667206165955536972501795659948962658756230410183809192202837182091241339218733239597926090456119777916951197813730378180405526028994542755855502029096685104227113868333855334118712049876226640362736132114022157000463102526031803518767190003455776428007148961498003889704422363540327759472011400268128107804744927156113555518138531923659788875534393141794383064064679030724572937657705210195048615737691780036056002174800296326312927272799117880859821169629739860153578144152223822949298237419376073101296037723519512195887027327779634691654029488019419095212917331039873035519183657177589312588753255781128333288951855147909606432228375114920291717863784597662315080098856540700130161375248108902412373308992000482528578770050792185581409374132993156349587248778320042687920424725795088069046642809778563214643260421691822158820398740660584018189024342684247773800901444977824968728287895873084050842256047912969164817802461278644156375100482223578861541684486820399502648760020159530638576304604069881841512591734586644115929800507010168818827630848457421839747978914002063248391823601612872583394744311521376288908804191416416686807516446135708138268598356428385941037851990198788480953774515186193288723342500124266798096606089401369108113567467769679170310284541299301965100693338159843600519893355023882564387658981851102987298345703972812394268015809624088604412549728782339625019286342695344152797167762231923265121761508548721331733325864573338222631106789029076250052010728393915121109054288942136238829813784534600755432241197529104010416323741717703674996949763209375162976176589370991478883716011352375688666549410941835179314383144760410644129097664823462064680660493835626703456983705502486889852465823162057581389235870575361713496506519570322505713911896838746225762391215134341727922425572925842862958654840887342763008776736592370304678553145200129161895865509377507690622818538359005831463369873761968827983811190536296773886939737685157234780181561452264196912240675680525951929779524020576574064578540417623692296833880644247615770757384091847640135556183712206371159286252262169703151181456782246086331199204897303129911727130666246423687394850411665211306422492772426434465440036642607772897876002220646191992531244659503065680306572567178026234297592040141228590991237925891494713806889011410990616895028208593319258635305936069402781387571950291498135204086844292625674506045415650470903038250654597880199517952407378474867382712911372536449792946860228687642897065668784919684387216276821507415975394126260466376870463032394103154433384234406134585648906679074588937978093574290589023385449714265586005265665354932953413710209725184954348735236165673892287954300678584969534832778557702010700641797964330707771255812122106919488127622648619209870360333363680513344708413785576735120324343980104811824029922670638408362367979188521424879903100241139090204886187511124821210280720756752265679636364367840465567600077996249363027686246134258557928620334503655060759955352671608702168601429624566882654882558233891436569346760318823406487964534780674387224019291393879727019621271868608352499962440505532657720725850936212665136868062470893661597287843654594218966190563383061281921557629822544424756803682199782361305512309606686997711119146576191429247855093621807151197238172783214912520686096706363649816062608458115921373090156508376993914240160220748002904492366919847643170098336840738239292435637085267487352162063877830343392152309123764564474611766474681527234331820180179058805866160178498676090392092678730606466648696890071843658780847124577016412881347197173582237987250594532968284821442241679260241061508815560982157275584285876337575210015358120522966857229985389553317746804115617735773096974172915990260005887077500388996503528336404090417054257591457182126730369749624965615988015985468074995559177512073009385165277900253645124598743801826421424848153384505893392742731584800712266712078323894181564593748466873912470689299766834654703562462093022477989057112711529007561880416951738824797192474258474831243795706681239598012988355441824042765244754284725390727813026757225662319202320567515084081629304419171585016502726579234618911402772805664723244434743241076192625665273307040860917959362422870058405368468774554753466937152773145712402383956289804051632815673092942918450320156734789288933379796273940230706120001404006873032921737463520710727500425412300546290603978231265222016641854904714376943877108621380744011189613861890142799030302894653310971046592140550004260228971634212202411257926792141272413456265039400985147879797412570025529300199883520619671205128657571591180376479226019140254174423384353678885952629219832730057978792668438934878090087622377808950120288144152525420049550529214475111223254121022036827668932226691439982070642445762005940374846083433758801170784523491720404260610988850145672472584202860583061029534793229653104457934345035008527198289535659405038982739062046589425662084534219372137371124664314557514790760574690347967406218267042746564976504400051520557768636572348604187691633615171247063464474153950817481121174125759797373174123971424868808775597420973454403898456034904645840944562813902588780260042504689467105885790362453237166885534144120094646470637150172016257148910103513065634128240120237788801998879925446751630964324516709172660250876427845185559324973763545148916012578724768482807322749573251992087716942967295148403869881619277454269121225270366713848702570725744628386734752371995388586670776980181372897994863063006589829456771634937022651710610727327509220681267885905667729135380495381069228983522231720879555287042154749706442027510577393153039974763560678603226413889678535007292928947795277946644776951640589591808032946177796048828430620124464506288336565811064760195422909056773185975345433754028495046187315225242110440096611354652821704950131312004218061218845939928432505661055676816665784930162496516717249232552682411118694533627235740519548460386853177756794709480022447830782608246639821074519739446879691923179208786508315554556104247568603534833148609509090240871869257474116700021222651704980540350083877945944149583382475453677621209404900794499322035182442664081663714441894597727545277339738796794495184075590273624853212995883334300979580190412052836151447770333010646809576218218336628207186380597608708453524284400050641464182904775026033658693341606823156536064530593913836430887087508790436150585207397280451628826894656825983970186282099029603957736751159867414128076800700705333291823320792711553373242919546870223943232097906930218066863436481033577373306215560025141614109609185726821587006374931356134640024434764408346380818674167395038625191262328959347715781960999531195241028159384580311099979875915807465165669311213660228096932519965283873441976655376744421186786482726549091123550601318248367632092026427446623275645885319120602423023885687639059414058174634687636317822295359731824297875738419494968975918959790518258928698878049913963930588138288981387737752676500225334272281597645557463519418795858423810532978377740091831992405525978858844171937454957413206219611269663230818169471807410385972754177941553348933006143636397939578407597827243892257403048200638016155247287187061773013022087077148265530372960597641889246112796446852166680077609606391577472503165790131941556356272159496953379420069159730569812771272326267281880644872453318372460676833467220817536180386235820264418233100931879933754719411478111660665576778580152676792330030120082180257250371296949018041115381464436321732743069960385761276842495343242449238944715958777319655510269302380810919805310573272137430898219549309049128353358765847145498926619903768400320416525806915044358248395543381162703374020798125509951992700791350950468051709391927760397652040995736782875032694714442538580846329705852455920863703016605826340622453935715888717985901835535104876130904199040067866601249561482940353665432588325401747779457424581896956804685632775454493480227850607285984086724462263144326973020757447256346066665411863551998912497132176004933693114721035818958862456488996368694425274678577281673986783207540114949606169536319894991843136953966943401642095954603709985711723716258824247633712961589498195638107094614251574493161203795166023461307988140886010741050248712875490042987819871481878323223494875949081004308895990444585519749372177655950075553045218615492512421422122571784073063298988995772109991922372306607190998801938060366642410134292338353999257083240367565569694717505652477968265422602325014427787053395480553732348674822885508832511492108302583988765053775818886272527708302926055346603231837621678293755685818893843044131974646241689588079401310415918808755725037671349548703674372412098780126664515146792552163211039714322543124692986207121192471876161815730739311221678536308825284867106643297712265748711274448221482924868996174653329540673775881287831442476471185685390404786340807798307384161748452201668699331788877156692232290885399614675237494133139244688059735354262490338317590775334093424341660066114723006721395882382636938137715495027875217684231731191723400884533415423887741833495598351973703277237578096411816056006749373831994596832980002243594730975604801363865947591210483526925559766604465764811495196357960735252693988542749703995763632669476474779961522708968495540889156779336270484335092450013271796826193136818550461102540603035835551110086410466133467823591671524906921072630346124689060841386968578726994769043622910991093541371474515637805223447391829608061069902933912627373879425024991322492893048916011633912040032424775722421908786379207146852629105345675964296358398835982504231026684643106860926164326365813374571937140544196284710969807084766990414016645488892983817570402653303655306338549929242850949306160721474606810292165518588234528913732000410386591057248345218708328267911987477582938316908561166935205117298194166496959870700042643833214198760193036231149907145278260066469861982410122726015625916138393190980100571571887672023256731925149426545454706375662883904800077391295025839154431600644437404846155898517448905440059552955402781630965727369776576564501674232949442804029389720414604009672016222960906636672839306234751985998739404176293786982941112701924708312226568909641539333396182404052545688346550908521633489455232635754522815527046783631623043726159691654071710789184678071028177393718810119727112974753161027469497861434739977465873446469492417977947531627091118368650322529395921946644682783943205140952485071468177669358736223089778983472780200906178883633924765601440483152830618084413177781521800502923685033373564556046556536743750339789371543767611255407104439439074148653865465038440408358120674282397237395879757373620387622524868614899372971012197225743551037255336650174074338136336469370470224453010089379279877795054836940228236648122359079256134281329416767819925317324215299057713318900700193857579205147841801302980574612693314478163336324564697880908907178809800101158107407935166970793033775482892130434716880013422840355937315901003586102454147682037338222174070878983049818111085652624912045900047886479062147143876302849764267189113688209434044819821938868242456823762392412694973695407231272588798413052537901194445224816710622012420247283079788945819419599706589905430417072843267079272510748505053068701552596908743023150451553444554971732260485754234625647316462386151955396590014809466764110901113396419057898638525291113020862939596935109023489118259223518342606709035126014148816206188616444748084571170481024329204282298691232718174390957939350390055230678914218647877022797402805137116271150181347947691821102510908678989085940985872067447229114894485199073426243171030776031043721181149887153352114506344340932553901855179257165607762795903390526647744741097259195619714475074659792046162671230797786808105869255134313009625106897137794092008758029769282306279510642192069407606835037559251979857115642191136447795663175062560178834079360209801390544123587724873927983690584096230107930836199207556513628454270597609334202110666193192552546677984156026376769506755094794522585064455123085882872934112607581169261213715318855101438186897022974875037439641187557127708601650221192579006526380122282979622409567836520575739810246292293502142912362929339956601097417701146365631719659186125574379526417139449038407887622851637999363784232104772721407770769241679797691323761352016934273709042475160088677489517739538991169853435602303872068542777964862800731726277122357498056096544316286377659938653236290584097630083458232390265292864917868748560270670201249525142032980443966559124873343267172362347373946610485984913158791057306430182554975038867707609924048841403483168504285574656494080488909781815912256587960216488724080016278123807715909959189432723412125698982596865980326151060772460731126415842435287871637472021726881369021918996049059193071571447961662395814336154292021576293789630654609095308251008295384779108808168740589569978118607715066132165006678045028602652050732170254724809599046149523288394393571193532328419331405746579354329855482822268207703148056119236152363726548084837384885982584408665955621099307141753936205852891418328913896558410186806278901802568467960093272617712569625873308750820633721721624510601430785548853300812234952988010368692566487489943342165422578008623357042587027806893386301898325970023211088134444201173225060586575998614663586587629532235467310613342740659387135854840960174624199894119135793176863942847143177983115200059364621560207453856847545239449061060453145759781485144456367857554187608192487139459737710791475993558056286249666673504612854665177212246222158266539614522984644781881500795715289299370207050157884383363874181423267923791533703858973338634286321135510164615177028040002261125854721102482569148511021868422476461863739054119507118886951920151681656250461965565360906188536029710641550703413740714925811244601984747071015057917151026581590241061485766661865366532387868242889853310696065096075610174001298946606871396542696179423357802609717289044922191182681026367124568355115494985443042018518370810640288494326042327458743193065347023111634735084098736807808854616832356525066258608083739663993051777528369773703317511487792633333532519549761633681263995117779288889930396611228116844765707018148886496775790537079713955328169826251862104006779064691261292765791836143882795151217994334022784893970850758868870975658613248319276289972257301267532423727767302554383702309708210204040031007811477092069408460493275825821384111607838918058503364431812692296385760703880096767193502947062158343952739059982033192963411511572268112054070204738325856814388673264171945235184687733940803223226886539723783119311803195919584698163289476758964502371784920188806478604276256237042674153033628710862256969586065721565477726801421199778815529707859853989408625847688967203332232284075287469038532927591027785203819399365809827128468432043563936179268418604494081106941072289217083131727061969426405427938833519331865499519580536748696989535222293217715825664985955241453917297727808824922000729693607058995865933159995476721178041888444975460585048236473450528584635215382107129790829454702012316413814654685592376668046820312640292320050124998203231846796312909699279763090108113051660844615948577166106859886115703970259683448584777783594498710936634740182651982700560094405187139859186996876464809390679676508669324450486149891387684228164285907038868450439287724776532831806597046873660926128655817405864171682396567924345099833669661195848750511999539960252490622010425930303404497949837120603709668554172983782238179801847070407633415586322758755751499405139707772083953039133381546860127086458412306403526363802552677413712772986823056809158487279130741856339280236201717564245310070347080573498041955757843477773140964844585156949115822360769946883828977223299969017704914921426636503409275502883038965657334304356656996652950152738956644638242761223185108848217598182934996359539182851462801401169863850138700203548101693771357651737552127075868752691122823689833634779013565128214012343933009813507798604070598893266636138205372421890952575371851175426281976535316506889002146221920975622493710142887358754886678645698849570437378126380665385774426855183153270670493627078457495373786520839150749576631711426179951554309385505136843329454901927783615987304575086328013802153433913992554909126000051688874660409673998977860145937440154259733355310480352229574926618071613221047108482280018488829693333875624303439570806846536025323642379164709494984038430730185384244546523479080340256712944040844336853129382326440685568918928075281961393378144564655443434120935686938249164375623013251740201270837212401973941528092161789095012812453680215076749446563066794784162490268371677499981771999801164491602027384706301914831979825426256285824639861971267646932468004702568938785799032966223090799348539136250917447945402300414254268818024214364048615271549747845167956632592899832348996655014910333397137075766301398391058477521455920502419379133488202987319856400363455717075259293473152417694634424991546284710576134346863516231885057622559784161057233116111160706322839316576522979223971967934753967606738626717235152197451230279863177088349972591409415203313250354950745825424786761605262109583324720155804457364022866815205052249485019633728726666678263372043569764618846268220458248311396116349999503570769351620717510458688861937039151554735922350743211087066918222978392236501307864720033805752674051912813104107831178622423235922086346239758523803450860432941282382945787211257159697123763721799646971006455238293628614278160725401885911811789236073634972839917279065044052006153564747799689864026120942158010251240315869945160677787223189756348238307037613451385973581734902103570412523658467892877744033759368563030685131341747383638542641947390414728471324923109934002404790427457767361934732805737370569591826787230792370829959880978109116955814837891582498725255595665596185413218526287025014322538141472782217940964643616063155380856792909041197376661880125874871305883000842312447493969455987419830364318107215145752580605916787699105026100430352146761410329736988756806416095604206880199410862796197217148810459812089949816180169734942862504112301106137894157056430046782449837083473763190494459029054244658866515991380977786085519013186564556618098870885834014509972990706695272040014291178633457074880351582634436312748987448211853370528650612170473737187120389705297937907215383380893227848567996638950994643988222135824121489722213113360036846345082712572384404495180337075657992590784338269224633779345476289622222297925587953678354779415931996289353054380804432121739180267396739747216852295677622207988970549918309040961436381169827758274520467845331127815618391048522746158874195563183482306612869198432273557984879146423316368632709200288912674982269631462552373991550888344503689395172456346757027803445473370730122239344843340852813503727611282511554767669370666286546211542234541263661723312365194221173505912031418915454074261516608275122934199088440989670628826138582143466617726861737770820431909433630762145336536063719932873103780317745048289086064207775238811265660932627684003983480334433137953986090250200076981169187310092476405645812291545749596162782671600851977825378896926075642128757359745062153231901364353290349241836113066438142600067197632475480983315059287685042173297791081290321084726986871209050807663480879517319821724612439599579671014554859499838447135666499015055201342176932658796982374515889718341805047866404773695340354592431151534951767787539086457848326567804893562300414565627432164186131875631458334558246912831665826678405381320239718590906929928547049805116980251964769675084294529871404871455926102809474897623758302613300403040630300279254833010914993010454116856152746907581944669715533500284611209114781538718350413614997336942327934139399655368416616459135428397959731636420147841187762518913797671382122463940198394502766747050063569560102544634989534712459975345508675655899713404947404711643199011003564438639456201952620923127862430392448416689691318854258157660849404787356115152763623504448584794088344235345964943189535939526909601842039962537865905349747764933852278891982632653506500375477262685671914456391327547857773262577644689239183190041100214493538663963667887025857812707228407367219089647953243898726145208710283623334954084317181027081019118580537278116859519849844204500837572344786579743545220920954496477015133292503532001943877320715755126501356170801927613904370067523204839485126962567272711946385653109455525000907104918346215857126683781917891681831471832417804855196671047519705374806181072237276677785503808574176676348687867933502925960569256822865724634388171100108467940807841443178628435229769611320524372368342581661993387787057580901852598308614242021289739574687813476805337195201513551048741424970873528813717845148208478052306148979086127884546232621224274946997492470211033877262134464809599697779376921032040052945888725339912631188806834817385720302823885108999348105250857317572158919647403802713437560941141592005581920267364179263167868532639942858892388129114235837696633585803166654974174982069539793006486160516065745778812800024485298893662845925399690941472607773907060391716095233168163373013898812605930134885084814472027719713316940126849938488676396618434802998032763629228276758888019662322281887568977126500990698216129323447351947606959761135456486508749387766793924300633785745776624390384038188136352325886050099056466907603265985845774514933379702025419050329782607272262871318468404073991215723628044060356358327154102840844930437354982176386877386002976982065900461455052619396784448897096139058280606321608450455586353526508363528956377524884500768929332601762420571311501224722773567730744771878834568770721634899930561156044713416974607396399174690233170238738491348998896349793214233636524650558453860287861543022478627621441234339636545915753170833467794469421882856839763171728793089929096276213745434564507568105913512748532468284645456931800296857768948489543182689963563655178714436359498577421343072241035676421966650359919171852459966768109354013901637770414647324793647478513583954914578095875156928329472144522546118486900947577493489024252638198801260411535084440195725858820225629177620195333630689299124079775746638695671051941805276286976347353275499643983469517406984810792382489833180084555690005858228879133449878070324527128732497460162876762385107974122470615176477955409714562833898866464827824482593900686884094703301688815776189883014766858316244851481611085899402828321929664510434378697834330697406709498286887432686516920090046403126409411830289868259848265246467368392170362478674606774406016993920874818274580497924596902328120755870106693921555160211740919298768608316701631740873921080016225975631119712990380493477009109583852201191133816804833223317042473278984834425983519135907451946019572353531717708156507637153443449653316635365990014195712579154439373535764797768621092009517753286006630514103759625655728825967940854478533646293439314156903375278440118169671580466692615960059282652396561259618617780677748443712377932698555957881778086301661696760103465535671373339958292991456088935797234611109742958405393710020184313213449737822023840050559295105867056366613273851479951343136268560885162248984056874327589509766634770757632444542996463761949546083009593758917307782108259513936490693993051792883572164441861079130773462943794316081468076961589711617311946443124539710878885854948297812490608557392431597411282565528363673845951004892814015093518700854105310820215012834064564672456573757564007866078668517497911039638867345897309506049932843777366990906290665488143764419952039440340215533275025116191988458875056017036711603434431012795972250987619125550193788581875632438137130900802686560326068798748348270716959318808924264436627457119395410332002893944963123875410889710895198182154524677108493770631153537235057263576820689232982507328955306492756092158912781682005452240146448369608948425219663682984725824221325883716354842712474167097112087266516287569804526431269194210678291116996664591759472743852888432839026658565759210101722450202568753076328038690808802858668189864965827117196024097270549754804262210071920366899509701876486056030786742917173658826897837569201714927991559106548931280449838590961132501686358972268381186338757431550687814406046481160980853662860900213154363464496231152158723469256873607359905077964682155848709635372062047133552003646761297485514294856403994999306940918443079019597213780986075344171175705690218913009148859120687631739662865292857756633774296235563955112304800940415859636073965117954440468457221924299434792341557965794589479259635557562206663641221178298363662381306770630188046763237421192570162628543998959275511722359166128860152347236296925568219941605208833981288345862444508887840866499863115612858954492664094688439335174420122782711517667839499749089808835832907827284100880450051971533924515221994871330577240038535917728356403257437480194215170342453111434336597768166858645739655267098367534531882548006496434939776615195021885798930779534055707843483749620913517686913483327566452490509315203620185760604396663750702710437820630793562007183605184176089672284578781943402477195205538437839988993322616998280993806495507496285447773526365492212846852626409676017228617565250036203011516192083388350625304989082762924615416937942712319239293945268867991610247403601908912005383359638243344741993099928674721302402820163959750352874578240963103745110172872034733999866384251825925363558617247337280617525504595668151794530635692140185517520654052318742628032979681284068137983008011480549061282704312529466003807497391897549916065597691805495982076385071244302045333714400342501169464178310439433980279812153518685824667571094951393490168918183007609990190728891067917255986371964021643460165571977008023029436501345625339372437681746354186896173154819625312465010615536333159051929416222244963576280284277048008938141699499916367944446491832721671397805212728699460091516377343426040451857856593431105790722331372556065225176261790702420074527431501288339026154965734553134480754238955227022176007425830335697612416334648227463132952996034088125663371130706998503266525973583067701627173787380637534151811171096660695013341043707694632606958553693086440130813226232021625768852427689476604037933351221570404737189620221903334889550583719674198255042379258320639015739488636597560923888507555002392905757444608176098156266700150358383996717156188250747929747676099296191099933862990749448368368820869285622927019783767664715053776029293368107325965149466222635399063951549817250529471291429073192849671029952684691697313506177058241365682226696785713146557946570034953479113909586874695966101329416551361936989884528608401310623111405770854315444252430505819508686551380316601606034322475137105732328558434458855229861908279693382487264123322707449746603335215781469925984312706531575899020441908429443683292726989911467934038064962270578701114367922227181028792204017195377070644883917935919365365046074501135739170772419736753463937238068970263302033634745406243647399214670631459050696180053817554683523414441263577992198847352907525008030946696622494357542598255118178483201683677984984191946217672050381498663766943299936641230353203257025053413821343520966493516061523616058256207558031872858685304995483503145083142853500423496500550903087190923519496926537964669207431998028176402022969639262881268833089657056576066564522400687267239191901140091516281918729335651658710860492909856554012807919346719445972895737990511076496354707975327838597965361856907500642731368090749380902070548126888019964104513735285953837122110513958146417254131810444852580460803454603227395334648525933003736331801962008242343665534362351869712036615848984758854920201709662256684858695040508091436734517088013131428102347783957891803480289060993520012552171880806846995747214526582671595073650670836915455738575779939585535401313978808680907857857736257633930664462073661129429810722983946257116001488087080151390175505112088152605701842577178449954366538664002969068925449551190986335160072445539608172571310053758482596228405374818151822013593673226275680475219943095224780275845568746403496370929131311240994894954902585002505151798194897329713270566686218656203511927872446114643798269295739115012598465904279074629839334713135935118052403695583150939622153436630497472009962393015907923690985950241422091481621396436491044991562448309894665874053588408750602320077149605464295712395443729068546508985911790746753375470655824111647010528743852037525548889374768256900950444886646195343904457342253386503596903019528463596684453908035697905796473217222264859067593233131204732224241927215187384915708225009935765948139043544473374432650951911637550399593210906440188711438606969777676950874338636217789966668887146687951689050560605729208940565107222575127376220681793859112027974170036978974981953128412651302484515236913836395765016123515085715439064539397283872601992063270363904384671514066777485861159389169501135590959381646304029598874283219582681237191962960355040655572998612195081393754871050134407044238651293685812695394845472170002287338890831666230897658949743973661403298932448089679258923328664390097143565698594336969099730476661256431537369798554561254728933958504092459151501286901091390424884817934648321455543364968663365385370904670592654993797766415412735940865554486104267654461022888394580195585191669274691718768998487496165843937465189671463458188894697458956187004227516787300301058820539781392661985608992283025865798869856627407761432066257902099369318020910384759480433002061049038195849726702181297013176447649035304369541264487015340708299058309005830652990500849864203201595216245753281384843995057203602515010528961322076512477148478608717093714522072899239462067479678448076922171593654967518550867902206439526370243568109291472824261392530337184422052097691996579585216559434013333848456790267613178943329402714184793883272701731281914738954194187429055552725262921379527926943635072379146767220925513841961340857850992686099739039042488106820776628681436428902061756728665992415646232129099501926263258374367530634085407632304272317226014126959002325178074348858153259292430401870143042254970657773352566347816985244439071249502422479026841586630325856683078247605470018151587448927583351200907776849917429061433775994187975625902647920756375682593914017139780370653202920498543287249115632161195837845649873435081906504524655064984041575893034072752916566019525843730972981992259499254003596176767264340697782487512645301004517638246519303269839883853573586673110236330002342604371540304629867639142476167787169714955606275578712237562720052690249515828058016271144006878065043880602176124670534292391222783681919782259168770710743673559300911238933107034150198486276567932888211615278621999929639828228632266819722690172484262740700234700608428047193855705025646249390092508282540461333403425278652043999982351333895548172608001423985748007797366517296896546079656894278253178685514119158175790767117022394002470513574159742713796092193604450022504355159695078382078209167016006030889453221620638754834845480878447878107866668193923006664649548890967816787587207968381097847036194266311547666132528988777088375231168044987616931120741670224022284058208872391196789989187638764801713186782090941936032983402757518055095804739479195540049410137192715179462334186387825036155418007281642559125132890999940426938573498554163255346629653615968220118752724908388201112697056734963292196916616592117170944887317531696481368375632648298845197817341494144428416032305224649746423867404047311011835865909643309987927519131525565804937878518835980697974670190925168566098786928080253494170066399807657071027563404744014238896379032556603550211498592666628931711105403654327523311734116509082353344808781782613386968040592118329105850829957166905958008718150105591146890155126433475974605529205500234133546666897684451493430784576925726561392805182629744681187373314611000290487113371416833781465979649004243417939679767136461950417838857442706409515868063551141878595142057881519472038726615947735452570544696236104864480806950126738613364597949897905333461771229204740790759324066990207086981607840115666104713017651721804436798962064399266275139563565362266523023416907154087779106995093126287931834923006726329102593093660787516130527106313645742501120758826235088142876591156325424335728617008078788078794167350610436063481944531865457298080443493073174894715783279831723285361337577565701962115819015787465176706969062461389886884299151114518305468538609806241736103781859199645760612443718622270440794078995984773384582810567533651202364174458169065332634077851005947852868513744868934474555049843303899843003344835815969517736568511118399589410099321685543759253910914943943826615275746327048374897950828655495353065420922147020672701716756687910673817064295371761235982139763295863471151658329703023605710745377962645828755833616016077507353363989114834082864272160233533745580702212281513074657331636148332779800870765101065854271184982612142083499848946133098189472391912142725160653415172260470131058749939148104947139085424034353632610865129581052398006666524075390218818158480771071481149439127699514936874857472832262832832356231899360226103428998666804144549480471856502848195090778797387261188318032093633715467813587347436060466930212233722361263061407671099584431128649298069147748107653931366870883644875718431923516346137761737289429184313205208884277219629856181424621075399721143206853121477022332242839338377518003867507706598946388617009890839743458688001495231535594637248319904914773338960091235922385872159144962484742164610060173050512154637253037308152520127224650904346169114790686797663031306648629803252544872607084808541599781572020780480955920910862574839218974648221930640631084987033530428974277247646148912682284675444096770190201089508237261002851673036823320552230070869556819909382824507817117600959676630888653875074747247813473254694795264692136814896213773204375283299342867948933158319313218739227434842478817205781379220967250127147092454855567713883116655826073800775919192438902032867827575813310350375256910464177792545924381443658378399281291984544186977818744018844242679110682011417907426417116349469064496958883721000299894179631573962121156136151324781055772996682290182160786159823724819723060760004314736569836134737413678985175688578932689821803137251158485568426478127843963680725214787837510947099996747340938260564660911716374727435100994388771342534743511688655700030609708495819446767518674287008624919196962274775544380853413085800558806454228263399964336006086379306386827269657114585438835139528490133246802393470009587240707576486163855634229611879918789950901679182878045867742807287247082956109971153921530289177806514579020926663717624279185101158795089005111056933379033674833726946005829190596691886391926189848031794406368258790769674983516280780136630877060234227911313395614115522375052573585475610320385260970912502065633683825299835546089437043004544528849445136927489743059017536036649360692742863968989735697062149119407485443345604579115666321659976696766998029386305810051433996344280772328204513352384182085469069834386929003230578365573719107032675305594662429748497724782764975636018801819634588759079147809008519816375213652764173799912037245456244179739278004530027115790051579018120414695858448668345180837771104600007690276956081259614605981124223164124299394866046238857852709786235571400323272974948507476911160016896656845151682625027835340166160223814029119078679358584501553460766961140927864378408104059963014531642124932237099842811568295061371625573184610033715669231913596750227820761794393736278125606127590202459391100702083847933190558871447861703583138481869957484652533852492322666003932089404516729908627012235742996223003993101902821384636778031068375124587052330376027264694984898064276051498597492024280816657661886788244406095350610702260273771437602860033007229240335655360051470645467317775584170276734487850837872452276101896625789444246202442285086881817245605576224955989236837694068203336839817726289614282387762505624306318483901464753485019604411108670021532773975953768217172137691324751117240457340712165211088746586305762052684914865552909307462721288275969938237337122964408951311696964190648555316603547819839683742310139605661464243923446598458519622879292819953335651806344312048373678750922081688224001619095922028967331671367126443359371924509311125045262735757852886079220561402549900697671816601652555871506546873224086595307103336453306587558773298215380578825623198596219007146811872252047878436467551461852742199046758281218557308855130192716095293742678604381575071352092264042005020635093235899639983946507047866913193632687028775984686864701720058141573516615245305271260123122821264494358467895456250957549213095907009534622388584918098449228220839176262526029486162582287737819325907158847961042471907029238558662681398610990715374686492078227828905656371885503121257709272887002430447338367653562900147566361986296769834610388353646689055358115886271624746550680203429085086518655048562555207461557162072519890498491501387530119978062514693465241511309963849183534566259004200940584584157744016532220624285008908335226442634899132206521675347404364979402200349923537948290312884976221105320695720861756019133191589120265416911696405526384005923414735644035848606302022469071543347738572276176988231355093476893875927368710095288749804212892701366358497453789649752636599099112512260060246868552150970712648594443141387942553700788794039428550319880340727696061233780199453813371917965776471511962229046508498692171157945916932927558879699821916336246456341642174006430596535857858093027582558956258096182888656883084864114751573074457451679514290450493371568948474546210947000391432091017219423773583044069078082440916284289219770115439474122852031399937353506054698964107370341998271101292707498071275897695517714402718383303747292420318111767271891120647957410112379045762608443783276824659612443750438369273657355111749469944362389745979601670026174524669252959656278162026473406234761095773414589618060906036353415111189129332918150778392795926592020332112715455777861467148521275378109799365624828747029464425084280734622930195250120362016347907255255875967413331287776595793235701968500972145084215210790573534413077306099875227383604260446275735419607006324385733924402355003941951363091685054439151748567954769754175170051526227213744075419904203957114844668199005684776926866193442077555909371307437748122154549110457805860888310487313456950606159602259466250347060379032204430893093730716760944213974447340003589813182457103719342377871529717013460624603730873578148118684653256622805213871227962921474585888174306228879742447718681250147532217134568791171399694276831894270535633820791248168089178270367730741252530780020810631102457813985483190297436518922317400489640728518681686696396425763825113625084474034340208247718106477998092947337561910332758385096832751555537266218772912773010504792846872718202891847934595720468215785898480234893123714899993992083671399328326630571932533581433623521913088339054052483306369571832433063197047236712795535332563362587481664203221517333402689081556552026256884239026776660592541117703780746708074267414500329775790038517896699284980835231409535339431647466604786750994089741580035886590016362494987876026489796746812059019029463764226661556052307743124725738130428325738584418135208167575032657134990759051546307057140922104561176064562153311570611200473860391556208058472007809151955848320719437320039787767007240722920698342815956386903454261276870224519660259301370628157412464155714697124269319133744661596630853735753893116163378791591641906022078902764225213948078830319891995159447527451491088277247950055860303726768780867830295773267817577950919661263152818638492322338775200980429458114519684633084302126509915407449281088386369712495940010896974653105092165377125656883750174642777733909944374784578734540459136938737369512682912120462064846727121354305640052575282291888191224394665654209213916527701718732613838142635936765463539571660235587216103645084730697670516785256029463077225849625787788273886126866862269359567888929166899838846511892797499346711658088427677548576929165513437142517181431239394645663412499025251450770008347984819967024659065698330223073992353444352088600489344220394932743892754903043629561808995754090966611843807298137757349552218474279530475224454178650759470697253122028190682614149400982992835926783420979681422508182518071739601398013371087183487820623835924903705218815312395155619773846686050847682714853714064122870854785030140495110068156031516682293264352310073796033635726306515338091904080626251880130946757078725777802460230285926374988501104149031551199086457910006545334915636776025379890764156569147714352182667955234015656474413706271936442384799965980787505215654157557460213686839370869568422209477457380400511978211219378855944587648278107994016304819502138448790662229822256858691094343806918867618652861796942556109624039209189559644044279677391565461418667792459041422952645736457186968858943471290818033994865897934546376128499986267092883715037780609265976817330763296728143778964898816740800309344917211071467908490771840877430698533372800516925421895274666889554714371578324365086462061969166638227039700740895808850229962903964635448281111679297109355527166272801924932720329020778189715518840614587570801960049895149174442199933284211768246988690319378743502092892940842159682449220406923619008050968131072971059420130589460018707582595406361445661149824645389295702790123240749793234998142294846537569641426369276223979619325625561922681224865850028671771329941969550772664369469199021496554028237212593279362470797678316939678594472590450972499845546577481646837390239496896468601632185618954251589139311763810608843462828229607527345256454022412155141634425650117615740764024644756393832459960844349611024807849484400189494349320922369886331348304647160389292465370411848939478801387201871628058423845321008879142892532011686256055328625701252987831421463227312341967724652133366097654131421557573942254882732929988941410406405462652216774227489892924612802553768401634841825685059010280086583459675555862605499279398808637446388583585721134945543727682023108684673760749355332275509474256050261447778495130761344330098478341660391123244762273768620133932662947054956474565567937806827650924637088180715843533362764427445579049537095108455004401231785471636429912472414839979731090915298836190904717034956443068447797648231031972051681393960710328920126356471759651197539398281349093832458983975436324949584350650293412664495623739202157937269288371800061335856192188735172936668780853295856226544407743341882899754102223636101826211654317105686032624004034940994169167467450823134912825406976247641158050800767581317311887131656052457078853007347321024970761174826510625651663011888441965416778209553410096867495840515492967722666924457897457157166775192730886475891360218484400572562151822310609370559537115535579613466105530693896717581459501543586358027847661032442021760442443135665381593121762463938527373367237937974674280782447203411962576200523252337018047537030274634667472155212509070693397691088418999802228597544030578715492554169369581469285243804105968602776925193706813519776718484422324939124759783172048077898576766288894756674096376832198090079399458918228784500313499822511243791347158268482434338461775714396262843915511351961667230626121798571264626956756444621866540788425782046610101699500304519808860002585715587588977873084941984147876748318220091242261206627645680816026501849314014839390267022115332727434507763746503187676152106651154013532225522112956411378483411350613077988831548511414163045046464981504439070959652161644296198755931898438997424583196165755642159896026561978027882484419210662644002960422599280382169078554484667402989451307641848225181554739626854202952877444652601077048832658243476856858779376048952836861771032838100746195124969344986497735798073032303097741736848713427864779594812436428713167280872715437812759459126416842346573101801685993979923100566069776506921214846898936129648409028209576665371444293739603746424394415300887565560427109632874492039130977374315994314194225331170927959779406765779524938615935696482529825101811567763269654872071910663500779593165387859902069018315122756556416471898494864612643596974697979325146997511911376953775366269030210719378112768509154655124893241859895455180976618577720911985192718112354964722633591127950634441134287655294877655489497909173589666647823508893179611342090904552750041580244849225346954217541176825549959805007645972899237239454403716219639197425070276701587192926863941840210617316209231998187755136344364900663381476858659428185183478395996629262326436711739714068430924098834474705072389664187885709045198621110796596573298008562518986612800015588395031264336134505161636334379708317560644614940203667132004177478053959602595138722663345400487337779214433511100253779445957278808776125085380108969171423957055255750178285617925428605519424688156655434726732499167411019040105208348118696617149835315171956447070224496237893956952494670567036020007775421728872992421936176275903154864058870255082336689798154462187165937369853804139422165319964463926267117247745653552968581559168920949043888348700776149204714915908450970336863152656595305385560174484056034841264596131462969157114507383388365077576125506758412372876319927630001183306699101631773145915098702745047217776530453102314204988802516252192895572877079502240147182110321130773310320203327110996012986061207079821594247846826773262915063016820078540832085246766673725190072683269816370340798833026506852407397948698021374873536756698185334596488964221742907349995459457421775616503523696355163849092306611536371026043519370812867421534243226251569799220165429891035974618683399738152254507398825709982218900231226163177437693624873371273091954987366702730221208400410741410634086431684707045173092284033724553224871999095084677105659646304477859317771850885607373642906487944512376877249418975079962394569991860259658032243497395961125924745725965794951839550565958879537695321567764625081999339059052210757759401448331338344998185190740559894667090080933638154293954648291186582236906963141804475539898153852979268896584576792946553475811396076672016454513042244134231202978438590121670917926160662237548516072765881841480028726133386332135020533542920210988468975326429002814553786611103504109842638023344991854754500166942442159908743205800361743897488425505759708267194756927106316716720506960842709440976089664746530614296572196119846587681431792667065598128826326168344854259251844590345825158403646812059453285672682590382274148097270204486666577623259186560827815955119498124462576133918754227918058089783364592449270034774105610664057435526278085294009802093850347751984376028157054786191703196622044764847151724715741153181856895452382014510205386923472111055964102542607995865194406669630502617236460711312917863079648776185991393888529304436282815042596369337906931390444655823031658597298302679116495973988767246403114568598111068768411568863987740839813597813188283723344562730426926114019981461887955076632442912077183865453288100574630127832092400185649140784540685221973772804205287464413924959069158202609017316354411819918895056921695926272073079687374832581986152048115653181366255866764297868915495775314085614000366447395572730933022808022958673447714517303192931066983999701952832656369560258371745459422330932891850062221689583586874774214512128057201172673808753251696764189411807106158576951791941440930672515412983836710246572335367617798475891868939012937579714455105731604339029559398623099593527883748115536545929785927563053811675368722686169820292253170996109518339211522024941658081691205239318607809062869825336072761458195571360495175781209598179942613876857433204356193868054681460922739945302916134266964320684202486918072305695372214163050765791566724750178748200448318659509075297231219604877968158759748491175144299832081136933131512493409631297066402743975619296032364747845687146768540352315314981759442837210767421196671580464912280728396472297891943607717236633341061918638895248561570067242599684234669775456289390994611351038165196563491018507223427725825858171456417669216595840931590246981451575160503168589320940277348539259788298187547838585641355140971777335064445372990365558852755574027998621560934480035257027135235627589098758004213320992161349612276053165905509800148144964012125047901074414841231977127684802634528490643830440217611231066342318484260593285246739121486363468048790849975755451231330914856163668698320322516616754825485487280960646784751000058253664274220066180577244101557067778740854260741669214618829881831348871659093814284891160217110690329887249533814251171550523237894054825707617536459521985557794956720204183207823394476115801804695899918708537995512112347906153124485560643804808605647873347423336721553623368219134708004993809183058397742452421012287500487007253555141223028778354496498023477841154754988394189851623802398536391026613304009878469164817370652671939123455286032253901480501971827157841617397022280831708685235231754761957240290692681729558918769508686033850277979386291038963566035830658122909294047320963792040620457650634835487819533805284772449053079522064631085559198387667887754696814564794301581188312930508209854782479584057216920657452362123872686650016715006920517397179752759613040375156948062516052511442106221300557857606921991190457708604510740458973212445560266172647994762765383103556146740323249034473049102814673347464770779970870543855372376534446456631035864670354329939446682095442583549954348601927092733711764048939223135652701387759835143756936868603685635302592720735721485335206472995217166776929103723834984086454853136795269003046235712367127299698438703352271025835139144147691906038980140728849079089127331264311023371624490369123107655361919483305936419376021457856887382115332992160144275133216919116973477371768757502039572156777822331652511592394219939423804997465101727956731565634940567313363534645664155572297288377881385217155083323653520071621282474387781267152496918101777488844734962341317390774813249470709043283771664683218402841591287706292504846085557360482138771471355582161928799592353562338419423926275672326580238071607574124646676329554640782974757809206928733886459235023923476950959772709718548460872093659269237044713252491179736962851910324706101100829719827727646422333453146687385327233288574152101854579856966175032915873506302461393351907096666232380594124226470374223328559646497706905406814347785135044755727631069485459260787602949047592985294885655192864111545571493371010758266649760559921427299094538670998693372394761021796578647533128298175059861826420349075152674552470737745364350207482088165868490742030374377853546170936577527455271309150098893495454831934574624602594457852236916481778735687226197886539516188200083293405127634318741693085863951343400970225026239290567557954828767516709802306771028657673629713917936427779512174830539793233234150008109904797570660033108468212211204991408414331306032014644015275991074607420013842898188848067024170649488108783215797232703174078409857340582765830566782196496973177690067422087544759104808587579940307593331740647840220592111943299026857735111642839698049991170847299174849624674519388289455374754139957630228629866015172424275370765201002793894089390911566230219335556647911735401064754412153603574454849577837657469144340511380273445814167815946723795755677174142968796662636172430507579847266668395088861192219202301066233202526436759543403230584056038897223934164003331222756577155230049285019045772261999967628403156318006212166161697459735310437549729875495527708670790832488864141470338437171931533516549508823691231910420785978880185116442412898372857414704706243624318280736196288630450816244885076271566692952498054302643259549070550414950774315513713292338335670550844135486774571881072703453229344639931852929652954072815993888876702937799346615507228043029369527009512398252291019140564757273997681580611248279661902752422962417479446169643874759102054020913887735089324513460068255558612972411403672865485884421976475682402026524773759663160801897261361803875474739566795189968937965491353410803918710306927733974466471032185339013408828671136262068671360189513832328200799622073154254353001112932417268150233253722601904129299939803476180776329986164908506215153501750286024755227807685481108193280932639425590750511594296754902804283329034161176233824154389131413687685547787978426059761698542638734875000737497900002978919381659974214948523726465180088887635466765940633668527184967630007443529450390669727280949099474161103207907120467337372578635294572222987287044166818268370918321728809529677729411999930748863923932498013309125457460336516801030792186862623809265929771193258261284003194764512887982784140165147525015112267196962067475982495464011574513864007326436801060816915049853726458883332239908669453740668503367685400768068469736340222906367977881991843422677472436387330008705398769019440577487889598782807060011008659014523057596411427710756176293160691032394937023464879844429036996101447143131944523312938080677889766279497820047684993131114143587746070555635878587919445261457585091574448006174729812553178128590428070534498955693612961680579812522103489940771798809873463340896516654654893338914813354413174312774818797245481460778116072671661532117859573708845832419531097193158510003134348495604254970648020756311369511199232482796708063453926840753010373821878128445526923879120884821232369678631931803035391098821519967369833666144118595393459661105412661933204706368038449729852852052231335560524945223465438295496850592284454975274232476548914817164576610508065569069624723839688375895658557397472209110057031862894581876545479549415046629684586327698766776201221976420824489615496463487636730857835298795380334119140012406044377257077948301592048258648807488099275271991055842692612004496716967048627070682604589872330421402100073716067226418379474030955433145858674544297312701938916947781269959753647838882850961281501250204292666867303878543428675995915169127252127551773299531933435471018127853733451738608075508688284336947577544445935189854602423818151333395340801179913537017784000562427942182772204385900186868536798971857653061515255964963856514892199634576083652288807026354033318484510359413215644767764937609519206264719238894733399466131145442834209734337958963512400932112611298512860326843506320867572778901662267859234886261930291682890493373931801545582118567162679689560583231928615946222574884467209655893227992317687534813481282558846630579972468954854481836935603988337414923009742056078917441874034325444655189421751119309776129782732217493677258029007410462441857761283050331312540476073309309322515835098339290604533965107444717255782135496363273953183735330331881419524353242040115007178680144245987949722277879655264249609359116204795228397814815853614862802525821341322298952925619348796592239945436357632719124960580707224025365162282681548473238162769748163739057784824108403553873512295424843978250644006955273653214576427339915522374629687142718659850687816150564322124312196525835058884868004123055684741827115133358796550424746576987751012576358049119311036049241407060853362989876744065656822095682621466329270981816298656117549454187959741615392235965651489351603890614675110747007847908707685964482584504139389428434690652105580812279899623335698045137548579568527031185107252101929497258396161035892772585426567453954341544444870011386513784249734618954605231932261363812108419543273796186532034957399289136571917831903493438952866565841387968868838710357008633864715236470569203536039316449228532494709326131691211862209796751164439311918065640418323423966392246908126323647731220038012439853424939004394361724836866640324376324460084376506091369303094168707090146685039741450924943947288070462632283218445852687997885009200478620058011139934218787395735325939319133577983128528093126903199771641329525368494116913509089941743650654041776901191083298032619107940270956079765537749774244145461940342529039556219522512230789585784215721679180418137343371391202562005094090976626955290615532031109059419356485542610941619446508420058553036014857199602983755207422238682418792617848282301010083448429986454296670445113169073628150163561453459167800144412248541341642241183416711056158483577744272346718368556605599554506800702511903301254528013905910145078774414391438851006195453610459546581312600826014383589210127400926229333389847807476801778401904520899806535368920249758284524470992194381708371214828579496471021106780706744677060139820393288140778925099019744116096796059707677860800278315107997762956105149961369676520561341081647554469405555878666233603081387663651980856406351534837961339417666847912276905564311552905843957849038846156074266508855259919883575306374009045679396652582871003170059418460717393308065653073408371959662032054803660939182450362292816499466912255390598462562371451953621207991255123777764952723716781504552435148700819872585340628798418824067281856174917990125949348629396061091817317295803304191281796773087379822605850029384940127485858270159346055021781046832327734991785520403685800811493905325134167731399094636980498700687780161661533353692008688656631445458981762188361679096176014854436437212254031866368515445558485445718489971635906739265584796177918827570858496246623017258505851671999245312258216912775801108535503324499686988174919240979146094916800105245268976060498770267469167459348144216521360950325767577093829727624199149517313819324943648277994623094956496950420979418326600904781076328531492877499793856693580147924209677017906613920926824556121796427312917967847699456694090743618663937603796375036733497067037703515941767515621271484215491117982021381429017626388060736839038390657990867261613969139969004440308107121015318092138358988798496092040660020144654921738301520147548307741902162189647143279372031294268267976319482644872891093721014720992497795644916113960127192091171023433902896422046672356727373853011593583347963411065127038205472068060689698295589871833663083447445634174879343929847153323959430455084485925439347028509006459835695952668789761734395600914792305341922330253465069869761428822200328583716198362631828715566023124954591905116166749321800691446510597556699268611103404558010361104458701745815545584510739531582252987934944033567680861289165655553032047675348832741934982462190748064715885361558315051346412066084233360586308419318863251748234174123039775067265202226207446745938204092556653302976255561480756981699767896617638797401059797378834273168315681094856114884004205764260773266294716408907134629398434968849717611403861064908989905852353364219993190997346276170014324213117043878131389210153896789860589079927090499733112904763052962452268787055765712139198731642000927556518000569331162972547439946131193775240913179947630493560672270011289907921874023569393281723229679427406960162779421892874569768820461835758985303106204535441956496835245674360889260920091518975001749885138072518903177321038375578997358150008343115966552323063281559635232043496268279029710014766677246038468493081570633216198401816176633517782370862355387007108764123245608776173800964918886136275549557187840990594973329245141297130833728366535660369278026688241579450955226969023901374902955698910920171521715561731158207363394175371675414476623366969498439581548589668801118147896950656785853625296583200367773185766817802921658485169395062877308558713659733511299965019158966445443958047240299263739490192128707750856133048952422439016719111757403164898891617001045997377241845010829254981396860432768917039640898181686818771158502748871109799101365363090376325339821335329595351216392845204676360398614040836670396586070958921425686244097487182833128874813459195340390764101898018188587098408312772479282215076363415550487418784561130700808363577730647128612026994692730075623599727236477908843966203389146880233555776683849597867947644257514346324566296200754291026538105385944120618618471268663982369367058310943193356509894966364615344549319622488610641293396516264812860408092640616073672648196776867733044083256974028147003953875620248259885429532388125663422874517314487768241389895682883911010078488465978892775204486941148672595143299319553488793307877405381858983871882469249457782332661285142629302112303129569900096367212949483324952808456598303591323520576968285064447170403439487424768343703777067547210209814511602846718968778796401699092624837072127206078633300611657704441510139216786387386682671116091531984064985375030533867667669118948317270525741342354302394322297439628827594870915416563988232692625322471807462521784330043459354361274340095328828899398947261997634919774354612155373395569544162043862852882443400919009520739323743172885232311176103186260730190306335691864883191225962875459529011934134732425474943760549881000175800443068141233417405107828331711571634194301374372065387596656289905352513105940785209600320027932771256487192443327460517974344463089368400850603730672146309702129715533950410189872368270585825552240460696329649673169780469229125220683801167858219074170297776101550150000920255121786325234247816639968842708548529776402826763075952865763761609777435403799047960452883169478126971288658146994206199356312938299480807328227484036168908342834747469822903302117105921140944620775636533953822521006265797757470222958728246048315160172297360511401749080848897806505399538834658649152592015059714937904513495864020914365773441412190535287993669070581692016496141815773178338090654051753154304835463571166155285327361727837728527909797994387552631920267165865144753443699017198629222011249688201294796353290866701613936978146061780010336316388732898335012158534443786950303544360170993252900644277011818302408807352888798049967146294457893927832993831486853085146642566068756063855201897106420865526211726126454069545709111240821287072609794226707798035440785387220098357704142170459836747854164582245411797451986389756474028394695305775304816875884487635521918352625811932691705916825561214520138757123744238736080574619948384555267989538970287783511747327717769129289334172032585000429844872969309558489038494631339352130135881987906572482349214308794837981645930956919390416979919020977150719336527134120302718444381845249687305304629582789959668259564943422801281764881943679640678640449084477556275214172176386749336301045492864717099097715893854687325764522866623856627913256923083709032079351099062608651243738080665801937855044447879452294083864007909110358334890386942862568028368928364209443219313649039742296913863951445272660281224185438829402318994376969809091782864969022886942829551369675736177145103030767450098786417494706121951186582436189987899809114160981971708211380432443936106598739285619833974370002659457819201916784826537852491257130499791332930152881587322038721119228985886292921980733507403534223195971015180061076336339880483310184339254343274290855445079197423796637801212108332409241653599407846605100467331548970742859437868465850685658257355592268246997870742446308359025574773675545988534603468532580983573529612873304228149807398531540094181243588761229366095389357257955092589335437848223254682924938325437957567767757654957490691359447513340840930414411879391267351895062388168589888143274149267786625845564464980423365582654667090670772476256196881396132497632585789254177296106017540723730578712801786902048250154891361674284940817340930690743798515232006764890595983021254685327820907492536285768883595077928041294618594397578685203637689167077421603111163811267473303739205145578845088974230599345092216318671050488432485784736029694057835985461713997081176420910243954693167666087015434632312705658438114736793686531812637893645092212256493206111515926466717033066253987749930488340674273065878383421052614405806043261152938749129800538490082774570442645479080778827202840318959227112053680975664299334422050084544348576583061492136087187504626482795578581120418322450547101183421614651389190942734990442161339391686052913519566222554543519566708826934341969380239798794555785364498127234949241854814618863124968905456078293678856979819828537539968239625708777326933720123262798401390095793522291868152851398953089283548533877274809829092528716125224500757886071164376221131031505776608842834059779475885171884228262307369259094311109905711321356897138702834640345458837927761472448182506062159341510245063555579121443108036091102477893442039453544016594394336570187691351650346693124734028746582566626703499685049231957434306829592545197247380965892111959542027705612291175321014505539712174173943593950310238645111476248485741963799822990587849715147733092175424319756233736769361373580002246598667965988289583178873044792302643605060821147754336554707782195498994417788833351556167244856249061485491367232275166902984601201827228064996947925786721187553445507544746995057796270907680968352597982549348181025767223254710693363972374651107518336506133748606251628441897504765533480721330723371168512412836577609236634190410827710688952360715779804598654714731324538931232301457164073863122055205656899145805147071436728376082460746045042461858233482395866810114311741348466933598146589109903142117776983783206850071882979259381698851110760760278035213824867365130193518574659445856270992533703794033042489281201465380470582815809974670061309362174147104688704727078127365367894578549744186150586239488551443685634193078606804778967785175998267305213348114111569337485206173413014413247532142991109472814321285163031059652939124434819449997461801310734979839596767762883648204877662504970467924593158656865928600186052503360201794780950089965148493535378091359047022479341184647683581756375689095106206333682314786300633670079729933370581603168464161678897370998199167245867803070895843065826087418884999105917992799671044601613066688041452740079199279755849265876880196690367092460318823401622975571441914970277936253859652126159281646095632008877157311341447477447773207986640096755968891568502503894920567828459602450450484970074858220520074123067709086859711817551586075500581106094376385925542499632736913579328050722140149807893527734927286515328956103824579623254769212644057550796702381516475693038583183305133582121097211380911313020668174851754269594011654559866768308074256822993712796939886641797991541656386330554274714959800624677568751356172073621817877896321307956132752199774804321003903450611026267693023408574054325857747584290775751833598689500882677397333503694283877331765773002380340550420959625945656805777215356241337898101989138899789701400401896056018206111487836660375113762667627060194965374868722398015632206592032746654253288088853609606384050100127092458904341812349891583461380084982572467116110922027078737073163636060896216144434140029198812107549535537164475664932905944764461889744257647735857387184913396137810145548705232246607497173461679643121202612140766150602241055445091111341694607460301898313425294741182792010144272951797133813569018833116450901391288375773640245623398659522496162374047993627612118021742837590801198910773948360651189480646519914124457966136946884282520749729309982956429446174107714121061098391498049182672183944255432642045659636746940252976505068355567263977501280673569203894220340286523429297975859621962899605643366691124403502430886861582405533650952872293495454036856065480766503497157033545645923954000022696561668931195775451955425102882729049567221070728248770387121291346074482293917054946040920001139674065347285708060657230612057480137735016855794649425209743399277931152037516275927201601461061232937380701892758615240720841498613359190435958605532598449746497909104928348541856939916759770460290565884085790124618836685302520215962031751160208838850433154363224300137221013476377739042994332169816816770391358041343171158643292937690379971637093466342138904224200791015962325711344127346663143562153809987567758755465863633071460995563855461652416979946881023894895974389415692607705406664387137178787141410305258955815139839251920802713759283942683148865099829066892278103281515652688623098168216616238548197040009308377146941195631747080452130673663191919564378176924396826630547077439883853401739831223371712177529039651316502080808183594482880586502223244101076452349549523097262110945649623091973406028653744365379938256053939542621274291211934524261994596947802485693699714283655551508854774303105812469617142096057760569240473414847093482874163608275223576873141344686365649601951888542256061213504384049739565198210381533604532706516054507247532107854148814169464884513727101465327399399689014345596215501400844019121665839779357921038431338417407428504457484657564332723174039694639205107336240680688472559312416611684671069376755514029768871046041242803906773655560196915634879689459089776744529952108318733460150411080205317296324037328099780285056884838585481627257835185297462662582293311530473106139360161153143183942173122960918639780293142392620963649235385002186446936779156525613981817967087760467517776297084699282363314476852407863080908077936799377737633307592299978086167550006035889404964594915710766040953672741350657668016050057689121064057374151978895417668227773719224392049018696972059691789774171600930298787558948277506551441961396099825796432921196925226292930278182320101964921265656088998864014019082924292443459753440399117212141012204289751155631248400016136228873939365255669678029061174650304423146543348297175091352638124938594932258856981393122692518679201585617484489086007135967599784645649343901864340142004534282756383951058912464977005734536009040842682153982921841103546245069936256857417990449542640052856740995420749750122753524240074579655492536831183684981044301905307439134639418496896736169662153423580025456116073242531077161909031342393787067054219556726399448868908173264853831809456508499178194205610159918982903254660109064990789457638138298975639908567672059134734855447092261107484226014404543056823479114881556458229283821415258003655058966227548175489247455081339712443877122590098273740872511198163250186310988944524713823758798674338647989942017649745699556994209102912104114982254652617389192107738486970243137816777443606161775014257997306079830527775655382674555281235318079606499869937532220834244090326697996969529528932997035488501082921183851263132411423568644993266733818633246465642019893037062584976532836964797754174926830453725258002603218895774561845903703589856561343364634612230664220001891542558437544254752044651596052190869611911001832087623374141940376919533867667808358438710121034466500651058645853102910799063058359780713141896146712506608521321373407515157020867044146368604447286008858386227109981307405645007116466537231494395318630365706600677958635098070253678087200641110822685644553852927326489200995873412362113704183920807758901551368207660819999180578580933702181247104866130483023561083663275705951534743387526312889565660099894813305416204015975596794157756583440140042217989913125705930699465290647171827827814015761638435931499304838038909395033721986111271607290408689109227531835332030388487711949510264099990125554650116825249700670165363202483697981515335665272240986512985422852535341604214704617255637596776530021293073477866283917714870769323902052992679513586644478725365055789266856529924685936281235347226727937742684174003032012040141082631812682411395832497733638819704240514255726245812453372538114818863641502140163381430577507834417986376235390270391413997042200571268667246995100080659161171783079365847109291649382613746018592147029425474334786582420469442190333613985185606614422233504879647017403634833695026881430299014905990424006740831065297776040611375449946557965952812687345153028717095967866110123559982682929216514501647053764940575134592830821352019947218169229226093530930119198360329633797867935396653365376924162410766320148645653813418805232513880032542838677549726820396193801291246546607588482003211761054749364286047907726962676171487581422597810146929214704287795123747965536486872804580517783222986995887646591260366391734588608191847731170045715741666338418185195911521017437025868095275445663679166677857200533772144565645560982161912213720501953636444957296410215293642224388292492658914142369650288076639332470342338709098813635720451534622361977644198469720527751261236545190002619952446573921027251228652954642292118734370188491030965354771087870305495192073733643058361758277848414227625842187957674753447897194240461990415120770746539083576327226978002685620273239988357391405512690461509795113109852826088504481425348496705501146272709543694261680995937644672453040490776961634517621724916771085186231614116331579843721258165237206527887171417716821791188202860162655725907635838362273216501688652027696474051938004984492361482378544331257198221221946744739730248511126731750886571670309674454532668118509227556146330304828627588096374094816160737800069064211062959054299798789024330578779343516735044260709166871772821847068687778971634873194718332482855924544533946145910218524306600903707176306838147062052358061749587614959633337066981281346752703350127849054097552229201467108016541874412847147815204427586432087559964244280272600824141645890933848962493517777867493685469618002187938289973103158805072100311783246871692548168896887095299832796702921624403101828914044400000527348268594768687392966422719755184432000179545343570305377175327755444048683161390567546185930952413165942763642601221058751794736907315391979396030336187693772950603172746421919468132905912320077459388332276971350236566790410350950808295067676571792974147364451101011568446690801351710977314468397606045951836509961425869399316714282736901621892782583589016558958182376240544799948178848295855049190490943450581774184089903097509403123997827782635450940534983548220254949509876372040009414998674498294178879550836085105241449570331424979849854344846903523135470626527822115881527034770638155723044239784229223101239597847449219732112432711455528963175257372424870944429801215322258150792776637535534744349509709783637772501925753677856923021880766454490995375521275416584247590150790069009527803939532710815437784813424855608035961776694148702989203509978374438396202700351249891873035493359835573981210239017340820784370105460430332232627015934048535480514158548436133914885835103658002646341285329695001936919858837864654651930605537963543107835779382108412170873732359823783292100142152448116309928422464885413861180516667266866153448407442773433137941299148438793142444857775355980464157656868478470631523629613124498407422204644367484500496101952427639149224047887247661888589940466846129064660009718526160019752259359928424095591365439865237856441145797821355848592208109098345008767573716145051814549361931395656873461441247483889992218917962314707980092488324150118460807631835417246247540279721598892120915928399944967773099293383820310522053800558788626320649060024664303612238624678804970600023523544305820157792603253615713505543758569504538568044321893859189641595725162986398553851410070183404415432833540886779189865789593670794693899080127347038702976404062066632714749934263682305835890770728890866412028511391239249406609963775085904158921351761140227078103944775732382662046484004962146362062690053731840204418461423250544379870037706122366774806284890402156996651624289541196097228493201060561358185392620687228997258983947634068365254328974911120290004658773114853855332542013681318590608259667557256799921104396721725540196593504248837448836489012504170237198161198986163867167932267436787420803193192695746954434156247556122464826877636985056094035578110444705767423836737205070277777082762812583797272951854527016624579592079888391512961241413400230107656331895639254745251317935800629079876436145740854263730291365147133932692941077656557390136809238952524653941040172126471480790048202536716558132604509080150026150174744382120123969138635162863430836574483769977251707621133588587277452989570318825155463972013082598772622289744872511055914071877701632172327072121079973906514924280610765254685654352991822548908657209661012053025798728449518063271658999036558922758963936828922202518957403360512133454107872352564742212213860584155684254113582377141782421182168129629730591806641535617799661407566232707838706701130205421877330200454917208955789249983916394031354793565104343920110910854829577066513673077861781286050790166931817728119193248733485847802860657199516711387122407035640754451760570465252547751194084460799473089580615562167657254358841037183838115522046518905684540351587601916857193176174435113458173047711318539322765796406925068180172216193480851302813807650327255310868307470189608805665551895285436450487645826493496609545315135367823957400191569196792425868235229036065002431432708338867357456027268584285448814323831248754611296504978261268984704117049479719686293009334665270242381131086187440158453529429795645659659003240302887005168056068927292181855113039380792318803177608083390374332110524979258147587569631364045909859303137171910527359466635189867581573997118488453061015383614033336518223827035456954978984520557469690737462948146532422549614070266868392379203156959807683559041695333071484433286269647497585460998439431737565895954444883251308500671942778362549956278085025191328252041868573513760031697121974355092759991903529639498441634979098552621789401530651245761700088219923683362073670332823219029115330117894009326070585670408572268905820372165676173104838763671659575404300446803191596477924141528850160009665942148887829981962033232620640679756216750569091775584187099367640211130134476046502394746020178561384831892312036059784794380787908379472191258193554775565526845911403410404893412214633450615070503744814121206273007029234789544879076942125088906032870901874249591463678942601340150363318699089997387427052439175497962699791694287896807260006949157914121743252835870438129014568558240267021866912268743772684219967648036659668874889639400764656688131638222696246086493618890423612866605597976494445270462875876081202414649487212118780020766628309359296942388676304184854929503667456200086114629541878914905972761133691406738236778145078695745351407200251008149443280519352929570477820730410379405544620256272545606824327885418391894285691142733242064290580074752697232059625047467963731282689746288329287161081990003889735542705127780808800102446994684539728907917981091035712060343874941333783360836940636227059991300297689105391441429188799907248902265970096738167849727616643096906517155092561191865097158269395853055095224151837502148679898608365972125031591431541747034306106032925378082435955927253902886484740412726428999953182716759040750894170049983490476002700813136922055172396230463146806922015185036269506104288476759791333761569241535762054254193355722727056373890961460793712032089483411391604441387265450752493294430091123888394311411641984564852944085267953646754450732769534056307894495646588960847701067585594755971779074569209217018537080468568152432347988664853324494528452635111207083416495774735921697074862404696638432900382201958478619344472139420542020247021916782173796165009062728214022797424072404710019854987411831755403893501159408190862494940934567421692134706998967036734165881031695315842792444608493592889760250974138916910228533537266402195179166366734735093648488741182456241480221033968699252974155660851059719837174935021463029080274925605185498573678989630892257080464885204263224332487469792453082306222800129163961400487317094356144577512086662581074264988158781366855217128289125054728559958096844772545523404736789884553602077542880058852288583785985578357895424048066645111272658559747071826136559717860182643650328045647669603891924252772501871991832823569103643804758077709816429473343970977854009024611415260929329554651138026336054391019137837159570394994465391058299255548018224396880430540989913275897906981126178774078066001974958525574290170432359029751786142927829460139700554454464079331853743616974621377119284803159049324654083238981140464797956632467316636763437419453776718433570656177909800628322682073997201363416547663783316572360438171840153840970980440972059445246946722436316900246308101992440418327611378690494448427004548925360103997198073019869993746688143250660256127577266647889925619175872943954730299034466357971972705276599875282146161397563584063251677224224056494539323030733003445764905832546270202769970234721720197545261607825451326032506407133894808727668479358235463653877639046911954216881976622824191291102978843679560220805955479113786053894485418683979631322923554007419396993830160329328386516077241439002426370595159989819790058389656348084312469482561709150087923917893699375647199258651475621996887587701667962973310565105499237428933286344202660002621485784684071719831551257501217653909878824055158563588923089057517953961843264348377332598181846544139933496937698736214946444246192230754817742610208057799780024201960268988446952728824144422838490037714187049069068493648559167663868990681460751870863914706610974212079678966663449911712324776341090885003435713378453486596160173356407947945516727357560013714734720702024089207501927409192317532427288811371492296109495369021074887634157833510107651890786162728037612701197481638903971928782492669400834306628298729026087267525611067107761864951715933013692693151553168810541718482945955801128428982606388918741596267447891057296526497028778642148633049850105612706397209752248030857884121360361533343759857503005463684722977759596270344081774926513235942749388574912884702195248136172553310670307704007303762780841337701402355161776814576746650873162673323291619195587954594684616499695017020560557302297585618886185012438208262855182823946577962650354023263889581103037632863836307318343941266299504239462652673196656965963814724808044628909531325662474706130544964282552704406404117006015060389916347316351947361946185520376628548285047355290933944985265054799652286562543810932099025537376982358297169041140900335408303447553010714401319697239779463428511787979484555362853065667576338433665486856836984467886759330603879171133999792642213187868160719999470831463662659985918647565451350446311144097376401797787925170900890326292190746475150283372256834046913011546870402424239176347957484141596349579496001381712412646417923017328693258391213351182499699502935688338926066710766152185032647792328512377235705527074302782794951254018796837432672387519080878829222392920078841956387834009740453827255140622454054215021965927468916620063334239944683363848127661911866152646203994659241446139314134814729350694818098175691231126308407610605386892574203593194677587059494351179941439603807153433092467017885305643967740638637341793301422583766783779856392341389226816596671305185325836070343973985581699777828563426779837929520185922298006863871234000603406228071109806042458502692587491257694074819536783333473411305686653983437260520180346600318189661855583478410808109507078548144182958343768425625783202621787974766135797436250298024717399175190441493074633741754217147534344527209181484489213260839296794808900583690253834215409542364705441620207246668730661633520957941533220860720646963877398604847385043457116561635377670760125943281047355220270221888979423023022544602216754579659962331138012287023666206425692469490009948251561351681856906761788056395540579156339308651251810631695399238279186054870230188495909964823738871004567059212934501404347263050860347799478751539055611883044991546084699736215504151062931979295617310262634943605073516393310892649988028469493987087694363358320720434446660369967566392301607761202922507130199505143351309681444679268244819076622665940742435502694462777058104187351212693719939172133429123816822677118075268533376403299556529790324508686497241347905302804086761624140012113413197407103572327429890188974133181012681521893161205169437514749429063684714043648681869819406881827298138770726290858202234368463669569560640211175756015770986837079017766796786740011508421298782642961313562668652076921823945853340607709032593098404402410025407895595669408060397083861504191592999030894786159031838012520549588328880326486626528723067778393782418809171818663357096109943198433695370371942453893860321927596072754734874809499622502441376593105228248502403625066319425222702648273688063613141008131705928380170459529609371947433221524198592814864058758028595937410680668885679461427803976069404743027602335869715087640893567115725571285527199588076137729412256731597910269092117111627682113189330314625127266533576977559582838267697670219449663146908618512587016631346840914966567622077638857513525054310056045020212955798079490118262077207002949724794552610691876319208044423479405978099705643545700692011447061446178980553329371620394740255620864853416738088225469811130150920822284166599390973029812627729322628110596764705996520996980762802297810585776353768923541124152783366370711915251038081191330522355382325225631728452036996390854794977813846238126126985028675485690169624704696290802415626193145092950804187383263669811810436476803007503671565732728135513552467925679593451949123871045098138877949552608160962044550301037380601146643386749721018272995057359676504259649039290057871625716512408945602616546514107310489854571928753238473593877469315450663306970135071145270556867601094809523758310102767498339479265023777900966671799378982937321749467369317297370269096796425370650010590454935935323118899876039388428935011387962160950819525247175997508679414401018310183295482673607381946713608310391377192686209321010846223987915480029807604356762159372219941453422493966888499129526345218701548873839101949242262875906289579495118600851073951520323411081519374144687454012535640125747941399310384139146996964723811700286761740800775588089333605249520459015522492259416779416311997493063300547984655261174973590579927185787147000655470389268722404623538725528286422138008864759806575727509055107811648468998069473511874819489483543757044314500633850164910335139503462211359958364289146501470548034898267350381079844438529299393949048789151828042375344306423859745974137523921271268303155970322498397649018386171819396622703766521200965485936407937189701286684631498284015216144226251465388335654384939762137371656489623846634085304458537719269168903884455612398065354425662283165754453640846715946846143007301031605095617598047238248592215251978096075727394964131501343396338474700952400976020198507523653152046444722414893120412686981777291277641956733149563967059174389711643349678303836469689190789507569498986726045504137932782241658843104876583007613077905712280427641533667292155119497510066555164994513317936613512490716649377547796966462040585252067353279623408060923408784825781560155706939525157244900729698116743224064241601703358569930009296929751536728751017514603600428645843936710043860616008047688813334832068251411235794177854069672974461908013244498379530463079110884375671167295427786701244966582756892026561078643687580924423366613911241855659758806299895232672750688003739131926310735420994432603876255709740854357951408572153764090560127423626398965224073594860400698803535136303184842463661642840810808871930083605757644642779521435165748179924439790480602189592207386375261173538654499995586120644503517376738281022280219867687841593293688244941615598260749169435865374453370109645752073099687924136696700654879868620249295602886645458077827056232997391501704720072070792734784820040766740085585159995240483913202047895445914961174083035932696265781193326816268513668989611967456768122494179493813522047390686188589822660782628140604344901701717520309788258511100658036164879530650742789370857576403113435046377922722933503206281712989803122712138140200458406402005747679909034745973402652984466606501968346700301475793308524013072766440046165422083543555118693071640732748735794133939686749765554992063353077153004416167291178106547983356767663802137561648386703732727176237304300745298353120274254093037498242618491233705254674815606896400260035792748239935011013201600169174867691543835506300929840471766405476517421369890433670432523503102222707116091019951538268774440343677727522458823091609100500243454448020381680547017143420825344988212112222348089043177012599103191543082081578639264070116665560923226118030705214236700306107156257409469055990590490743822273694145356566179785835182561599426285316904126048207196395941855702278698067629728620354791787781226106169126153791550022939188781509311074975483694886497541850970230571479834452728779502637549848930847610411440068087391464784094372325517107385349690289507494677948295022124924691077539642040093610807667263957612278301357666362444707854232035506847702594710505473756721415243900903844880996867325060382368542039711374654259431269230187694232466169646476298043456410803742530095631661235866397936659943009799148253087385238864657073166740045100146368223971292540870126107908575606556991513384107875946761369530944839202065508971057134256029097341102448678638554928969111374433437963618511827902749181605294548199310075305827773274716525709812118528345481728963240338523348371250557626254738235710468637849398197714284802543517066271425559662456000296516323559053106778984589590459910638188386113095844253373593217752555185826445603314385991684913787048965430499144924979767958390446419381106469092236206067413499409226236779465286208723820613109616743486288080819817960241092320869139045103004623456571677287955560149056798459475328899702121470560227713202450784658051298002076597694702193797686873208000839796321984738558951940580464218060410480551207031172213086596193853180469293081720661829749103020079316282592150280409805443729906547633009054757368612210431918498681311964179646927341045697465508014377090800565835163405629238070080869355296052894986131903626793699290331910679337111046107165192538227960727412803689958966412271405082403421009529180192026204649534164848811301284252792216527013202403752246396059498632198600562659842759339820245355391724186901058062833403981619324763070766604354898288802419570373915294159552288482111233573967545386995373751360056307236694089206721460252902911295969319929330434030055256658576896085437607313609331266279578235366537158585550650963786182482836303753019356894578037731478077982546181926924997897431238384827993254175743798007000553505059780486078214507643023387906205627162369474931199026377524504870074212758590748538176735402659155643880178734620120578903578413761597675596635380046071494610598129009727715406369993600423505737364104486804623359245619976058337633422027896672079193074433846895894065840266329272836880972551456170516856931883123108169444266482175101065128857511342892751101739669725504744795206053924287314406363751936416122563493685228357876198953180425500895119137197276965594608801362365548942208437080299051097859605384954248397514917377615147855698330980429889932108183074789524878408664205464190368558042036131051244345694703337943029723824079727956392371160365776424723630162341717192097409753542805464690082417544187405661219788408300324297159316065458927593500773147595639781210864562293536217450959594418141803896816309205778892621429165754395743552953467940186563367441389317423370466512728191706042456259768313399499697706173833267418077908088420834430290733751775338522595874909628869410602460041762286513316464410629466326571323906088707741443417538893505574179445730180829516802987904669489530671271379564466807671727063738178669512983810398747505219005842769290494972658361024009358749973895126321608615649931003641122916394759219515800941223999689849445594363988103009759461749848231584686419038977814648743825986456200488176551916329742250498256188349037361012540557770836043895996363310536373584634644467884446461107263296995130346727677297964971561914983445243518301557550290104945015969870838452904641617018248370017496448114978971964581932901706029403155780174001545357949395127798496176631209333100531260175299616611756397046556329149911869189584193277201322603089173252579509576278922061232351627128975458329072903952335739294904783262353881990740140781556083657071100931091152269480828724735415497201579766793145765023890331741373804586358972758823450566447279114638675008196055885401538110254425707082991852964206033458117157875229011115640409155558849470248874248104074521884478705056298927662502625589896239122976582394123368144847929472725034960059569546538972321580338784053727689695649742600673468490622075471359321096221160934381848003164005094924259399502338871644285746332123989986148002887458776465380561903044717391561238902100948609550527157368787631786385391552766033297628750659334309549465309616035173174408957233598205933460572053339452767403503567066839783379445281743922204469596461048806380618850435006650649928033802737035072014332030087731810827792394701885882331759685041191043054660109262821172322384945536738053448647190436520324690981100207893574864957891035296648104902730686478294263803654467285962786982117432411385150262719286405235675733996756248237431319441905349801158033640884766564433642322646622690161634661516345256311758532840042380608095691312179640208314279991841811494778315134907141118003114482295550106380514818551897289560562119591050212408941554274492650864292062491798599953441618716971587206997344509745004240187108093712922232550118617566728816973712840164260850136009998601628785292092406198585019302134318741832436069707216276319565882489850266804953584958535820372455095429828760171692706959618956829431108763469085763202910834805701074566285662313775629346251054153767474609752035129351518863009328502350674996679283404773237383740272428826712214794636084556866823468190857312350912226455130609124398100880755094498616781007928118874726017374456343686969451731243394885778892486686190637026167015820339785583666240542144732696236414855139598510307631064017960393100154551868188607708361284950225291621151548766616779039020022188670634417570772578183117957461929765903878009761132752386593810880748959134017667173480302485164711677922163935650070497872686368792163439246502717344256174976018527143267433649654122589471565872864424732613143034747072693681961753709585433849275908280486951700416650017135428718804067782879854597747741335379664176403368540895078816626938746493962538939673649645160576773376598936740518654498651722825132467439038932769303075585430825827725254567907789530198030074020888195377270284101974876721281144636376559168344034588155676157405459828873896686766072327391395289512067777018293239817132575932519030452256859665213208547437330392975998732702427562733227869062822881245835374101330825922230049107032430727609531927246395875523976977771557360697029779873820201148114036134587723351033937752815627527334293494575771663868292378518714488638950903627345718970305714272692849734969462455645255966050347606096719359698942248324544938166251146128074794473359358833131430407342092462201643872308829239271330631801704430408290731849072694972828935919214163149078119011883732585835292234997108258594945381299982656599924159700657588208428764398827731027623020615886929902180273109618142606300872409611301865300551555939948243238518658277010890516238014029540011158703020033996800440298114307881786432739027500908087293483017399088618321376817061397959856452091456200985774683518946352372130212270899313533221937535085497154037713293634199166511544727844216897598362617678357013864877317841572540650444031630544823323977258621590685102271389306864237107722151079170211387749689747152648252743752377983550486918128990164946299098239110619019074130898161537098619107789745777902406024465315600313188577369717928650460350299090214793262696579457723812796490846574346654823983669334120000336959049643277799114957807002575020452121565322088387050211054999225266248105390116838936949538857817881747642582667660460421914922218862406152909477322755750730419942628441532019848786259826273698480155654809469879645702301986900393024860658158074471502912278159237466365463059436728983765906086604798013312578151088825308232560310878884225993745005316463546492513398424946654859042483191981430454279809025557750724629337977256127607541146051799120575849521016574078365211053391225048406591154847692961920978904920435262739549875141237541162312483755763918291533656402862558417547994566077056424861509241789763296590550838040134481524819214241284368792027513632945601153156252646175946403516985526334337629595059855639699544033415868914198985843152542331108027231743531835375998198028025069555119094155071180752057925592737592174560976903778181510241975811093639258629033875472252507874990625235825774282405654671516429000518682681588543589490702161418315870711636653704321900798353209597071411691404065737179032211097711106310507111672126276988398575164883472966724037410660351655158982666098648826050035485151690279083253317868102477308757214499000988899835028146752027164909147557293587297231606090715660901266054030365038429446845317100613520279458555569510623593185240097404205437845625198663791522651213044962150955526532173986571682152659015543701394453105309034419116517884551333603937227817265064400989134285821320017026986367240168662074024491645893175542284448418220066083155297934403047564464960782624719988649477751058842649009912794353576807830171846598501070254542920601453228468810888416576932689009807888441841450216695012880509976894777977782586757431854992640929224264125058318073086127389094086834681474153018817537298809294368198033788629558979148141408590541429641723176460641306179393154608994133087414686888149974678775312631929006081462905661270187072214670468776542793327871158719955242336927511489450009801925857011904107518128627134103255166405430484628952899665717471733011505757678525891458720050116401134183546456992805100007085030326859299728182846731265247892700287102749521936522072326446374039911997660458699676250028515189344641014299852602577282947208777715049566270929576061923206593888960529728213457059381238214558740899063029224202093167513643351995826293596014913410656667343047011022068102080819684453051556495449411808193534592382565153117753447916112367392903722455847272994320389845897615753382045783873869300720807362136002924102110689004510728494436740787932312615780426630742997742266837757294072787170254930620435843747862938892559043759762274620859328854157800753449683536687099066355465276662286607390464791182814141015108437408493658045976324504706953960360573760966004718263834537746105298932680819718686374475325998464791439779321960777100090094545818293723130156578240263031632420485125084978505944385949880521233921664432716107093872329923173342957805623495247306985049284552008790481138075493560378741937618377730774185356668860185281354140529581515531438510611310872578601475715499321711056447130650322491263418417030860995900558787457010295068787140765477678144773635930564545866004678804788199999068989522821655186028304793317435217118602381571223223608314284153241778281278530799989619747277744897403102528428809810510802507448613799200076051141099549945107315418972872057276245224105134673587457822319142476090837570253913929018525110053411057426006841329846844040285264442731772569326476903800071716840529905581403834872872062522930279345686072324533681823705753289250462080866187715718260584096305782202962128800850264067098919519947896095514085951762894093886332020478148546823714082389323522651814343442943807249245445945226823863943630826893184726707408356251915575068895254576922320013884471712047178663412538873102871262115310253992045811645800723149006013256440007075381985203771266225037316116138727344875217913711909384013851004789484157840777740378173097474050206424338845097821965158440373386263567730321123139206363372884043057517882364670727661344045200899028208258137421900964137766482357267656683873070776558289805107117577783425737694332743894464203451811794922682865811008053963041576775785456413431930563934222062293152393661396863396853019347498827799680033481670417492839720047228323665775587037894229915531891634476800028942910737010617913589284385367466221136458240923490103929462277899658979450670939269960482794333407586616994749820678477299304296409434915021665636181584016868758408278771927829548772459631672819148996241918526435021222306023720229406077296589253385532393444855141410188872962237276731699318187956357164720415684411121730253304729120216952885847783822916328517287240196777548940942320298603290800156810130512962840970372638458522050810237172201914869923049515569991218586676945693111421600461823852386317878208066886634645263869983260000435351046525736720138675792480656796619221789010210705134555245502376503050264593999379608875477996488436699553845298477811819971346584379010222512424045937571767566128747810306525506624560727040151530501630702086405763754332820204062009458459309304051441952914920463258784833254942508726355232727191933017847254561241834889817998026105936010700730690296426572575869941327281006469719965598474316763569013784329278059533177820075948068411039601805645754870983940428108176949195551721016880812665664603486479152501023690392865792553691378942251774736858476700682653448036761501871189985752131879709503336679747292934730552797643873899441825459685171599598772467880715204260758241719007969383676909314379216923729811492078375673427415218096629719267046788567698484116904069541049291021560494635593703638230256999112972245900643996739188593343813676335589962657095876221418813779192960614553668247736382819967958890594155440141394100960979311610238322155470096712169327160361501035919617026373820953821575681185367713674902602148188891048113359091261179327541637031127665664820418060190944479275743193825729462747279907381573438321484598861195235904077677343241258377294812213436842615585333723347563547417508794472662485329973812418540439630437252621026654167017527375119180172832129480750531837029096037909154231479109466778830950390006496314887564974687882453613251987099828582760594011091165578011641559942101221354461765166061075341636992388146135096183145107007696096434937627297285858879181133231728132903927276572021150963912593802274922228950107163129991055622499191926802085242075388153738774350128204623834454736292583192641370153285153328623672337832021203042219551625289811082837549231050581370057818299324054143403614109746798675155291353854986002693375621754044840585663801855323434563756979960033635466461089753328241959537191897348522471398256351110329864416505268390094238018991369151550818332776038127642069785623208548192731368289962948795749373229586876399733459325668379902678028241797446454421271334451262906868019444430299655655411789506246142040101148961495546955071622579747748984086161572608132388784313047457116745668107118822234934527301296887071130681203503031095203547573652401855683081826983679410017143703468231540671892906577775793700713564971133183134003153529769204176250954742650551411548336101713899385958830514494843213482235066503095099308064801709034976407328451832313852418077236269208163107278234188966157063881850526830920074624125664991869306430389747705974472989753879958086152623593754155210356867407864777329140467869988685652197372066341277798553032938787727461270830525262060265670831028062842546875387474258961573517584263144378016814070527532064176639710459458812022600903568748661203893066720333104131238154341627178222821377649399160182535392385317638129167906996978163484158981262339486220538757527498913264052226360928909718808487396409095775763122368649985838789788894033582810993968639293410209192793462839564496877578950681181881531645585145324226320638978429930725342976330981086151362092927126238129042824679693288388318226743762351512677762543502994596233303212843517809552866147696520429717794084915119026298170582815072882954880252925250139332881757064565278074781994871759089517365427969270401179999383340678014668063872289411821010379333253196531788394742357806510151720872254769934566107307142981066240197451280861602207274103098461688163885853317451620483846782707819588119311509496165321150779396082405187228607025559120897280692395935538052574059380279516571951353116099760463962061686671627018395878874433435688008303767060661119141039559912060782495147343798526611397389278837778446706883155926795693730682722274737549449689596347818493627518861619799762446907642462453508248399203233458380196361906533819743093660989962904222258968033514847343227437599916119506392102976495236465118406663143628829327138594462133258964775620624231493213770629620084646875781026397185670922188165893540335990421986348894848246346394931388524651333541382687465898408180694337663277175355897224465801559027690787205076493971680586003654820967663285854816774781667674614902301496374397802287801505599364118210180962155752615969896909874312919870088090937434971634808751640106364859423258248678195407142769111972806414890887937762633435806897295140734694052531752452767606210669961349379357567318708999974897021885512284306065895594676414402377075629585108809963752074439531076847720924355924249073680909710237906661919116405110196698996542684420843051066723314546813711844861324295450090939879215519620979864682958390643932714488605061638314483712971521489693858112290830733518972659407930823176198607721218150508470413149142516907552732391158004004650740560502164425307645956545160382751096391513579303378031911356964073460613504980344914482962521986669042590834299568897190012502962889615057585683395395909793892513624373822979686788902380867877876980606775485090095211102325933302815107431500587120627020835233531823293760047422496595446712643434523033667421282255911214856332779069780237900357658306314247638961500190410838895995163583634739385773439827457758409118034003079791535773489970060981474069832811808209485732018615684911594153404648094866920727955319441210597313036713021298048858664169588571867311610540826726059612149918801782828064180905661043021434125719527576883031423422214297483718153256541611875639420142711743901674206740602538664218094178063491335856335675645425172695354199467770912067978265511037426165498924290431248121331507455489276358955335633895557632492182794508887857761675610445731430645420090999838321681354934983975919560500170029160561544590855538497263155681638834301868413545146702520774040359864345923659058815038043344838012163641646701778808171593123586897317959255065390325475609329788971512840187440106561784109655043756802352443208780135143614515646799216974988125591790018019155214843485355001779347940088454094335817587364050435604937086422567650422598044468504120771769481985761912338068465368297833115080142336750908614438940299420594257532600208272644159374822445087124093200812694821635658952532473544658175850969882365583412197201761057137087304425278979820417468517011901332039894414765673153765246312695510508028971524231942012063353947903668868499905812658219212678685544665584349958167319633165019702969036523855798170857226439920583567219661065442737489455926728573470700361952812531716320080172795845504800659852225768817965296237214911778050885366777740132957161438518614909699608391328368851645216337558861925442716354917356303129945469172846884811345210647620074612144700751995909382399512077893806664325548776205943635859707097094763747524843078827839331618272556130054045671195582333838081450404637132612190381438674933376359268769396482335088339098808517629515616638176107759015161407986442959742139299049050656159220253486091962697562132070580144336260002468250927884421335173993214357336496213120209296455461685390173618113117142013344550319358569176845062003127201223070313950301776392443712615954505683494766692956785473482709285045554953088540673065164052802147076368073745546001456914371771606113075767018270771305451826742561384008307123834737997454707247251817019926368161269717992932518416502011179565285346421800703886152849448718088064573893742185267511329140257316374241670855413865424847697564687433021446018404276170790083620435624144854800673879752277048221748120793297247046352337241587949807160097411216245982649136181112072708342703006948428512470847171396015578410756517865677561051930653993287804470852221746637989448123096264842082182853142444988277940764216168173323865084320010713054565962907748072740972413222044967762943236515508747771803110644906455849641622374511512321220102105425095013001807948255824913553564038470146251114172336257517386430754932031735814584849450298170367783927320605140295555869543721688712466528861497020362864867317896960130415974693344376989715303878888671218866657277177809986743155355421703410957131433935566539140628635881313462547947680443124034068051253214519039753114207748031647864366284101498258985511970395769432018086527241647785514783346617448564823221401283865011682282210946040279849858910511879662940115607781706433386456184893884421881927407817820667109602732810663759693556672806183398975595949076433933033384012347256916783077768567269497415994775627263362819410936351352221614699853319586099332037269516444433184746861785717995585029348684619690083843018663844277804472446392444753104254325409746385917254055959695606539030556234857644880375688297747988269550604637068585791020658583786480729437567119627297697109429623165060358666730372481286794538060529904975282652573772800726370308336210843344100328466473742765706657312824525570435283915187719083619114619958726188340443712482192670231171800469443821609514883935899434499426725044842641094403764346363566446972539792077265783895243434974430178055363208740146924612275350803675035340104892390131254167361134842181120090903560068464166847238444742223839970496104999285632011988027356861943853389452189057980415248495176536012263327506835607341608902420281107962177085319911468215994428303413774416415759761559488915260182331166381048592427847637546157293879192352952023181032782351038986977093458020685072476778039016908943614886669357873272095623271005160281351068993499245146600689433578071159934666173325804083216107688035177492375965494822330416594189370675498186448955949001463886171151209959705331933668899059494065146854684741056207803438071697716388100918639962750874931009640275036358472958871965312512669067874911549428386048951399425484012714698755649559702967082481628693255715618452799583718848466559874073683836659979185343294155563587093096425686888290097873553157247769439211247752132310137712223604821266958089384472176164700166586708265404987172004438474353715697211489059230875796213663808443364390994337817093807374683037367698464383023079825817517112253503889844277026148231378448821234115341332888229393899372782743529914025342441946139619779747077034735690551066187142914987328572386529350765216070567002306149060216585621542690142061918202392755290286992943756908225127723583460967098976343871321852217089755113850854785144043339611616281354364844149048767441869460200235890126552349365742227272742241105210526721052484174791989975656258479592489857458068561548122563625346002000553193783372879998496190566049317194652147862320140382014954908996912903584497282276944853780146456015333644168962343761225926085801439831052246426423497191683136769512446852296102525170442600524527569539242806782660479220665210251079280775233918027331059398472198094382294724412370333644633967425633163093608567835792281054050451855473249672010350389521509644632540795144371544499872462580093107402336936305224570536443712040839820273291715032145311805873023535291413054733556180677105496505560486308234600939606012600967432144866471997803613017505918186244562592755959509519938209737001996420133327427788977868471933716312583174409467617694114388958361076822859134325663024480784739261977804294249731803684729760673825075287525296189996940307110840809826268963213991202086537488088281377824731591863067707747770285493648239010698460694163523320234346526519110624758236252365936853646955907724008038127736898553550105352374033165657271037870974600824093951677572999037672539136958537458808593593306361847443990350385644939717455112508201860352409800088205855272537521815990964602328152894299000378829072626835523038520018643492000054790594703571304240450802935681585465552424937162106271111416259971924773312273763686653106784582114242578771993202804730005203184347411568245512697877182528752790435221337609522960027962133734906872251702043973212361096882290401169831362588458029116781201794724280139784199985338390352289276866323477195975628673393863514181960052260538435452800199825844771965704792219841207224889842101963548366170449510528959291917702252373026578037347053348067424715325744295961547296704288342944320782651063235193404328711439870080257549958418625529096342356713016494685608805275612525828316784260423998709842150275475744832440609123146621239709635706265323278655856578736417720084652142126867555092599325479502744632461743108418523941882212913207450147409178108784488506465480075301290146282350716811433414118347128580390405932656210354667494563699312378261175714470261181943530964041242238765957005089153991479619767582194276025209635504957743117469597764705585927511814304005631699658617715693397921311331596393846204519956554117585438104814086326809487336213964438431066335440302013523610030988325762156566041007650894233189656567575973069003410073551600667568174033693147742444060911903908082585220774093682925713367129646887218919960563542701032948886794608239221682691404835315146065944168430159349123661258738812585949952565373373320332879696299367514743135389094624482303452952805390719070960687821631637601726884282962642531987049250282004671149416260707609151353380837807945720184224232194864463161987438179826409236016125964559311414711230663483836732772598680374286189297451082768575205988668244911847893820827105683946025436753883823081114154761831943377436938785566741771897423396391419215680075115974382912309530893287276610962530384101538390471666873916860590654513003120511858756396473939073462145156678190966017570744070247321907983445891456529734812852944989589345073947391222059525698874196247829548595961828278142953360732238827033036024726543647579485264726224988097683347804000887310798384684916109484675507949137037029843339299329093920243786073079859321801384706582010491279607725024728786016173666057408368537028682035255551012653376726413405827890480135198523005250864710901255712901634159761260854830307558980443154521971487218015250640920503923579884666475760218095501859219942039877903181453150539601215487972430653265790850904689016137145145595649406228086101429403317219122233168020478758779355245358947518638193291271192334471985271030444976910903661728704801379623666748156246829984686365958982966832000478188630131679382101551386018049309376069452973420074748467166184387441928547168731401483736532649856917971849583779009104209159326485054523113100417174391591274954319786113517974748058999826430816889650150259356755194252511199847263227755434987898163730773214848782530636542283372753879246750786721893080539770707881528182355731117446378446839033452443282272272173121943709708656167396199335735317291928992436044744798147854126214766741952856468266943737731295049092623898692722546173910582375347841372788597118111084618105639705320069767659391396780282380574572177099863139166591103835523292442492830308065456360207595409139664749128866323787421865652060214754467850704416426131234506795959548164180334508576784058567951350317807745878329228154494951001062947526668156093402570621383578124338426510979796259119604171498126771096226085328654296802680743769252524853220045818082689648743223180727447258709305477972750349436804864824917561097529429513207468433319320108065083006170862754631883697216028713355692478699590471041901520593871090273169694802757376862805349568637343718470920454020690354842712275449835235389250839151884028988859196396481222032427209444579348193647817938200057325944173187578529243090239766007934951610987488504959662001528109098986391437754152561103551243801240174237056241079571844153377442720942081530597871703981536559409754297415971698832030477135394910268905490686299793309910994363773736443200078559527358380032310820711771675290194620488808378116314483466325798455054600506709767926783905596285782768954643842360011836972159526681486134052583844985416371409858820083780233888321320690991762422432900024063296365093506358575935262011469438498136304383210328195073166811127531184403722985129347717049169330069042157450737605621777844413602858748402986152216956106236367943669385494239441822947481912907658277515787488201280259914816853262314493245969506699663540231873103402936369074339081816004538196037672815052095213444291242961611363165728119013583812139828110359251648650141028041138265703845558617755457076244154022228501734654761465390709494192757338866775245260847643926840325630185897969158018148163796069489317144100676892868545706996998427036059748695632484020197731444088128915309960088662294472973236314648875730443126330715783316936483863221888538176116533497002344016979701321172644202165633137021579786917694452823325105019287196880879354516575661806772927259896558526090868151949921636823480664463085129187696176550867088047238037560418096796675465643130986812364638782950005048235115013804013851445062719665300104743941793741217734998374017669722708439501051489221448722872767578379080063941748523193693671027883310669259592374350761866812267263306076578025440392792995571404246796413126352187634819157294777708791658548464724529609159063890819073745340918791594579684999616105829436470188291057111670142817290812373275042077204523225119770596586731776264801402005345374493699460137148561582790854276935615861056833591926694870573502800350338249076715913044105270021445236391514420999974235374322428379786607176641708282099781730536446616659977099684012853142342110893557999302736247870024727986962973204521833089407492765698012227942017947683631708056340601310923147483093551094127514374696333880305435189143030967578709219180391858932830853403250783318481647096612218189553704142192803121352870779350349154720456089927955962432085918903387969043039588939439488641166971798066195583506941376716463822450561398458123696063640800996692113403065359846073783900229443683035641949900669900114419037894105283099273661210825833539767229916166795268479225686826359422430895218896552403814517231632685871414831427722329183365883287840603314143495941051962219910179866963085625283781907093820427361776865884001002218497890947858617914850671834456482058082280978249883696300499116212713925599234399697196009096610951193601573957527275640925095742032127773345246562199505383194417384868368512166832932776574707657334152348534720574628384511033607418470309058571716063034784272670068112195176317565762943789175252693311498507056939399473159685166690603561397605181171201864080211598691248316220576977613675123495867556431992922815490786336963908117340402237215019846315231744375392831287974796777765101048360835636076784414719477100916190926718267110513014937918297123819316847414427815043085730608160777827066806136983402005719722282858198618394788451999793296101586145365665225990837761711408270169324050595144515437473971092506975350810288789377869803261056606013715511647159101815579653397141050406000173122410778718705957994593334532579692252045763060953289051593298468192199975880561694841744576389948052531439711199862924968357894401822324564777675463955770814695715615331047310428021036094169892634735253200144276318991532237906419028989837607585283999470847078922654785933585584436449913430630870582940513275562537728936320470998615148198635276003457375963000820683280008386719143476049637105738657986666386179360217678434950306677887083927580923084980173903832863878519984729152598580501063022343369583187467763361864897424193774726755058305480087520722059449281937568840132152305074786163071238160592381715705220406941683219257932065174288449068551900391693090132775669033974339352186556211798903889885960068432036133050471626897825507540580342869736731874585917033373636130596917910625664042020074947539008770355491300247656333394710453619568067602145839448258529747376113339284709431709389131196067280521032486035336376156714921474806017542161866516748333833126345789091325131723366501157675876188187329265426284667994223754913519031575870794916010714739033420164827529761389135758691395444935078382948306000201792062781023857282197769348215382462572737052458612778345754810030877635407046323573538670559672549700569824954181484323711802685241912563403933813301730195963044643452541267428705264366206029293735667742614643392477458684878377877033267346400742219862705838422965316778627803783330001464945774196383804315982122940908697820728226277773532640691991794194794852222442890019695135177591443989902624151818944165978155923716906368552678870485197615465095821151660192096230883807135479152523651834426861923727160996161543825486368579693365255159535572740667032048217616795027322296961791855935691162693539551912892993996229742567512833577115559194512963615608218481700603484048758195100348446659934374872737104741001792742276315382207774685077483267292612502769784750390141149260566753417050255122083040886243159289741717002153012337389934773818864853582811372093577748091975734130004984301147735676297303016566559358559372805731280560269387171646159600746418879553610122981031551806895341387299797411099629533404655878795863876639328791009101758604458413201440367429870107691781098337711955754224632321498047290628455560095696001730391953936822320683350541376004839055028345152202700369468853247534479959964776952208693190881607729337470730685477377812698647788157906835872328136642654963583651072913570236145464532129085989890980766061237950026205738387736145544492322337180296350599271895920199432867532649643107040976846397752921677053186308550057119814072050116432729759498196467985494645238458096695776124091623899228822729737855979757087096371370989371536412102262133568652052091273492293930655639698367075258400159974920804703251827951165501814837732296706966207134453415098529620626568535929166888555652170193067859168663382928631479693250594998232952850920013062081620811242572423454906352611412551105299820361679644791592722271513940321751321680724010870510195244452675959466080792642769370613800611706701670990613742280347276388097385583925538823593385903069270562566799168860486386858228633544130131141232413632330860655694011704821049102593203683534477176408686574623666381249910511777038758373900721710255673779987954990914036389850658999715772845338710451002548641988142018304280135092703648157322983100916881919552901261212616163834104244075651913291406843734801774197233017294166538782695531621659093140345778521375904304199849680428824452433171946418411118709080011415388279644674962588846581069091432507898227353941578235520657040804936742245989322807506640517672769837197412520606261067029588325282057112839185861841691839133901473100064225015003492184034985759884223297882214615028523568685847942074378311863500682341760732661767504575859971885575628275176526983822720038909082008602768445704850923653129287475787916326425052039754616584726477270457039521644635505975616269284388405230049710264131192203607030785953348806863565952438676092094540904576413754696823352944423620262574342498206937742519170644069501071374172304978586769700473412444503025463568370561366291814239785372583341973290097303215149133126699809706188516304284096733546948449417347405913971342778376274043598468322231984518769581437961396950101452290254308542327940854596029988475971357538288072667017599161991436545941005075063283180949926524743728075457848874280943981320320711149763588045648237128568971253415574211550953535514162712027750811804656216259913664179025652471815545573651958439938471328814571909738503051312067876755485032692837237283094744246880292916992061078753466342036686657304624625512276331994661594741031239895865578341190260653271431348370881917718277213077445160019674434038058998955565330722534372890476217679598334943926201265881991526289241113866339439223710065750777084879139387483829798981217970842767569985753236648854321709544052129486167572846627915234756815813065424694231411977458441222525716278347098933769367635727150913113509622620412710269138503416170169707761064434379008141299627357449808586556678850473068187847104901480530090008898328721155003302820813345442465238901786542857232712882098293304668547262795702976139791000686150378281329613273777020132639640834247057134227784077212936784364212678681271605582405025168288265837881075953035051114645327509563727645898062289704891997459829396297788867472761066593432244583833524582961555519753445544933814995455103254203757748122281347121792067908657846362194671603301340485023379735850433155355277876667536291754325923027735916774510108284499594008016129120363316824728001991218608488605304967664198957081559784192169895572143638449487276566883403866460066833744617278280688099202623630867530826754849159244517681814314197156954712969878054109940221746669969856033619774333270926831144213228217970795303575468504520110275992413419736370434415508807896624936258977187181665718732716726039307395652609779718142115424287925909045945786786613843068753685959086622615779554213797256993888050290410016670552556713384935578449571028221728372300993109363962213179603300085262943416002573330192312034284260517342718046443849602585837754993628590530358827306982328014901366531820216608054218327051536898502639168134339047510037991346512793558706406503920006637222570440720794270567447326935151006217438967152225957036415430645809936806443017392525916205776367558553434459011652988228357876520432744204434478272528484779110324781167007112867543369154087392825980867132245259346002290246038007775709199918334319383759899564473759921296055606052235437024081554128964162607451798605617160967471480287736543928174150539878133210792003969336693670306158381495794687233821121851897407748823336435375045324399204791958246980305951581497216249056389155128873055815418246382649974833370788045034275802917230662304873694168643796952174044089158750094989740325778117336418660504745506524769805360483236331992899384420263490635697051344223713021793519106687623377434044685701878053686680741633325528563719474218373768059903823831020081201331112548144747232516667342693795095599009616260493021408983124423324475671826571961456066541885829596059907357931677055948636164208124447094751767621723301509810165966854517215581350533519919385899497538240148131427551399503364763606938421669818182165458756747658915417259767972981968893866425680474186373655011449095506326189316712343191173671051064749846651625463812242511620042902084752073589967213023273280204107189579090286242047339943164184437444353998606501942880168272941751745586043761558714414302575657900763762609016393165344101341251760027774384568497278247592418356504249466584344987405511668534315640205154777876197075599517823369827073157056758061014464577455367701314911995982229871906323715029874322435596938626373318355951770786289811961736928193990097153267463445432817704902337223626061139242491788881625802554762447606250544023076514559670376519416075083052176205943304462176355919597089763811317219556527690051378411237190434056040618408609109397154773433579446279391476103913341742313451123870653892604854357904307322408122570275644821420745889464348667952608741758303197015715539768878564005932876698638025922052608906174320590900454672480203270487318621945792286619930299735683864846283446860446915610337932095761505761297542401850473852782249337585003109084683643829692402405704168960234767256423148437664278200423526692896301945145966081810421509495838983544353001081960000294549307861300508421563440354625343883401146123237269753538245769877493448715073389393981922624171709907842956826616477234414507510461021078058345326185322253728070570714416845979437177017696911077056622115342952643640297234859135487920744947883645605226762986863159455462039360561169876852383388418654965246107508386081086534418975558056863333175649654208726951377421989270956337305479531327899046788883062074649752696899034297660284105632443973363751693675723788994641683436592736769057600279413140089864275443378283128697960092200726204935316396116619189821727894210725104889717917632574788545034202055367342425202797323442591050293929369963649651654791945091808875906692213332605139660344330377171748427455588685067046888897055301644018981439725609708685302565693550670088379954424257444788172914803367332300938706586481834301801573958112661944475158834517468561786796332878334108877258507803939195573068597031074614701812971422209539452191789232284586178527422568277614893277474661842878332460443844803927195840054373926872182386731854139360595520986152179802802323790751772893751688079268925859880507792386830019640214325549374905004985387277926140415960497954922234723266528967513410501792986582704410541529868794229108591519469410381101339078347604982403040942462975042639097197100087540953653684772363450522475849785882016784924641045455170165661782299492791071722011765146997773642771771596805641833573829535730519681935620118885797700160820536782735334363892461228990180102493829494770748334044351923153197824898704627205460478568614277917271813169908146182166153708880932379728550632280300863968961947132491111725675788632047060196309790091631707272390558910902374690011143253038049527405851565310966169685250392564987520542905989977581328163109553584033494776894615621869538811598857881260178278450404349669397518402813807974286134982984238877644215764960005330678995010844816707320240682689550269075224267702769112753595052323335952728032556738726328403814558735449444620286138947662413130025388913930531892079940332551774235499653261211180314860375954184361856698245400934894926309122746438612966127906721344340865059320614497103287126120578031570690608318071016749099166072242099525452209861664114076325548006110450098638602119685417931637595872997299697784574079860653274865077468090145055001773244512667328498487470170928541192187270013652771490674905307185512437856871479136851466371405329004069335359126489672972838635297382013520462780378150056334091049495477132243589677200011557334370744773984792547976885889743347181043684194196957483933192294569712457997369494417024128939820024871059166055272056923079346389271422072174228983520601908683936275171769197649589611154876784362687981060451649841682039714824875919335604691221587426830600474885195741172763886963746948579776358592888412737330603289192311452673702573368558606307376034598329738377814256038150735385653208476114028264352942338338826358921884889845733391984782207900626179143747731348343753891037896274381706301164853059749633048753049788387582995062262489421061977646665392342428063691047395560850754128692008335772588150449981523807456646236887525279805236233552190050642088870744275160076038201783987917699988656041740042180086098412108547702751280959905162187702598113078231985597667084506004240898555584861570091411403386162718179645900179740897447472782605421246401497294728926542963438848956435893236434636379682323463050599218432014295354117402383975891528185098125365265924513814923317526591714451954734737994908661413355984651592069576701809014057371192503327090178696795473368279983114525218268686842086222254241979981959819278515481986753798725919831360703535594074681514797842264827303327446506757755323653629935763454209804448774215203623753625876191233813251384273866988831967111017463922185730395955117495541461016237146609376429933728619987500598988447877738095940903374759203484962501902623442113193796869095717546110912954912144244092026606036690838798887626665268255775701842468577703408192349804878637066379529076186203747128794960518974002915638094816533122186464401180636336192652150207074753990257211631070141639120419522525376274986467222020146444668091367539893149719142715755975970405291576556710303131331612556724329457573270147093249707179131504334944343786452704710695917719663942878180986238297286079863794853646828414730839573834679852981516070476247929870537360812639403277731478695139747910147270958922761487327189132350953866500211728374823331124508343803602233117650385634417069195862802814290689304422662266201353968746760503560493328269210645391329338364144394597645617629946913009007103341295527980844907145057664480996740960154746962064812450851486070740216609095266704762892887080609629671455824146662928288325618613612306417199843388485407110592772820623231065140591627171796388254257719063944975763334769276288359631184937946641083996537809856073183500258523380378902008856817524192415926905009985603936408341798280821161742441243340234822410271661863240710131881080994175192398230061735621195326443050398656699517812240297947456119344033190032260582358144386252388529523418285958735880130971610177568840659506727782025077949867402987895352811870233440347162110236617251758223065360703995760753809952253613350107082579894202042531692849933766132755385171074960071776318804471590149956415671951772835105258827759727836838903332225766910862662131486759298465394936152042865324914373567086938870548274401924981298946510848050389975521562917779042970182985682091469414815731761318288694468064139738139965884980151991006255645437845054093696958686377322296753530327463685686309118635087175140832302367301178859690339226772591285794449569077377429699873902918092114046281805176416395984832498254108952085380589431990615122260571216250701134576842200118630710663722234201945479670642360779626895490856919021681878494899772522275807113680578715030611536781400336958308054150103260372858680743839200661894825357539225709858055992123081266378490988616813542998320013159523177320908047695028367998304432457171727025381727123307451767605586965737620815613615911292427651215842590507376782560155955222471180823046339460341271970751434996889987533751327238358227075300508042608826696453168419130513892056173858086081746617370615677038634717819413430178833016177423515165252201967442275367490206506874566232067537485919454744335269672580105657420316007742703105140915761880586941785910036261296292630059557534785666502310003005437210692867109409494949120888330951431278659347850085182132525119544233161452244638900837697079487099178153077675787876431372276530056100076240665445392654159623873858462296175915158495112052509196489013728495402802864824432403409904336558284553507940176336389072100452362320380115758807142506472249965254239182879902954305976559440080346412608901481538400169928436854827973161718141032966400663261750188851636963901817503957565216183694210073912272467076081281541594292590921786582900880387189317527349820538113257039597851496437107538307691062627183087198053662274588829073840020853225897103736965047209201733720550611221178397598546961736573423133750418627757088770936738311918616447076871717932549608769114283126523181875013896774682058081998508246056904271857634321296863110142321208253523107452566491728757343514688637407813947063136263278369657934385009112099106389781635509621591187188293021236791798209294274061488801637722650696042629005246997211749280605886311188324033723721483337607839507494598276086329361605453063164377451383028134500266047612033316385318445437420791955319546339017990527198761560013057690198917593652612678154482114046441365256333754533899595039442622197367460949097211995812680944127376248129489990948068407070273150314800494900146071484997651952451019969990574184372338788056130060198626241664512048534874706776211037066687919299916397995743448289368763678648774710517166654563089086541308285849142649825378358931889480248957688429500683161636803320033204256290761792219662078320704901370051263001623841312849162054278713166077588035947065265451751001523449785978825724930409401598714245815028198726596855027971112444501490550352606859556546504993798075038348843452342753064690519388032290059717254707423486870999777743079256712144907353281853315792651242756568113906650562925602214952395772639877478684193076633051755991627792747580509241188744151767563679987280515327227665227297405066679380378983288803691125904970576223874171149746091208959924260255433376884096632728928619264996177704604770513641528465597650174948863279000067915317373958920098541149213875922273363563712876736200060090359518195662621093411758444045199766152944985769914044193547925207562751571825675305591385314795753051693529979822723787039443244295512498900258651663760419193354019499053846001478874534292776745026169412690317058953154358757977584929172277291335810823952129799394225281679757449204430441355289170331732338779750817940711811949047184950448047929976837153981009341247232227177826865052761738724567713592908706356258549491374738831806985059469962855657893381140142098524612732278565284813925217287323100113276780293374325894681219759981349863076459875417398835130242906768857862883561368736062208022803524269429005715243753671292980840984620642531251499083977867448098739532738491853090376368635415348528468515027543135947052937032636130744573700358234544015707335426643368466655364831345266466510736350553485146994446759872357475073169042126542007587967851482551238471810168599880757025500550467406044533583185447061755279212490842399503057412965574710614384294757973183390942795205772308289616924352793114223329502232974797307717420852800765586109508732842167123595789421883964235287072458188744705699749256830567397495244740962301827307621498672792404406007177454488893467153975461363222704589852361654441012385419605491757594617997490510357898200821687129362687237195437914814978034985040537705160653268224693120658358341220918096877390298216349078176296256965149013479587233868482572633376901700775746844507971549700870177698691157702019270843093855919523725921928631901838844308455939031143191479758554462687969078280847410122707509125548334661336518449243544165665032438080841371945348889970393930541882935101179392616831617688375942812523717105547922941346520092881299329999229117868010003775368047347639596655657704438736334346237669032969892931244101210841513171920596409293671981250893481778278895757266656300609850169361924346838210559127509949012566589345885133318535648978808709447791393631557733418350810008672574413613174123989711089815969533325731685029205910349380866010137355423156228542617837094302819100961511225621615231555123466656880562361121297468499310772556949831612952261093443731565599117896625728827229263140836250918395286965443386878651805814099401662542676079775316717696613460025793513595265566411183246683746401250519493094635885546943904544034466796684718049461498995145931256693494148433492295375004967889244683444467892330167446149522679026587405586416274989276687667644690203818274109967018476820813638993742773335379471330712625019437538630955437272352833708289591084927359861599985590659752008287369181738395274775580894455443271861900943191044727937035790118584452020389310876206120037038082572556265689297363440504130486506433741181515942225480539994927195376919015794020998107001788353783015743002888423563485307635528286340148542427374704905466046438356863117029283650048931342813444946505227946343485810894096437235411050147525232733257247955519501093783376145981411536480787543890987550112976739417639906264621736720839063933853699572128001173842079287089214720473241119473713970299446386340242759069711433715980493289532837732078515782130430172644583373417877918904746271463189494474672986673930551628649905676564538212086391998370349549989213452629734769617683304230000499116600680206029203052185658994348489651366647511702336172749815633592724874138791664379149240705592214567131659731492842927202631933123480489565156034573488961996409168189966735895606802862142390018598077805577039237864125625646543497116100467704027598020080701492207497636954969926229040654760034917243714509124237342407223069091084233321447307925992723200104389368370981504237446014090885151267900171241594027424191350841171431936738523818196506035963392233340828925960328269779659415293636849866922982276720759507204671457764753842084810817012989656898151275311489732941983738079995079593126165098524842359214625187648087639826221545664953560512098485631995169850531318655090669634143851419870177849994589200049370024615049381784034026112496807500757115633429322561798493483059696040233114707675240362035625397561354806113751767348042006827823871044206186075345425565403549112387674416414049108169803522239444498256944838572999620920843690347205808580421821462191235274947967258814431152339049917680880408795220468163292879725483587809610905752884684678062470449235468130578866667141652922390339428091977584335406306569625641913522241035749833595508352831812812942465487800299368923926598824625813352889045027190877757986755004324053648808749467693829386938243047575238611472973581921578869071756320802639139703315896770586604910969445095356154102212192864594207909763751614113339405240554676681321785427244515706471450588796963273263199298198525689495087247598525800760028755236499742223469671227123982481907964479137106972210503322630610298538801021204497828799985877294659123630791931520434210950947548015131143138360599624991989077412558808260906767571581508899236978644737351539414367860162878546923107366320952143743001850917214764162482337698240993196598618454070613336642056951693495098044840481380108795767654495129553910232585304813470619098247734621802646398087941791855400212477399436462525715185724050981918365818738786978032431941920757982664130562466163106189842594542750457443343876864668823283700744125980261477823679762444962504970948665083283464265490764556237388984544661284160003021168043085125927736619554010396134523330919287754017365268193394861360528063467477716362388529013607146355963793982572413323192786437037036166225109350435876291886504167521932991158064053920883639789568067972971280896335727306712066192035996036800502609013728154985321758046873182396329657973123277270576469007252456193245034864105190898017436813150841660022914444520825357797079291409505589523101504827624553544763761565279432366326186820614578317183311951873817661995629951825970400049070146917187818985669262029901260917000911867611643099176604487623036758717409193113898990107251665620379913579835294556497893827771449732343050590949753839962212873343526233179451559754497351934337129044605601988425952091335072251069569298071619137677990280412217789977593822842350515769251236741135153033622894057084370424041135876697567933330269542189889234261188604306496904547492572057997451073186486192371214874441324408779068032259682340290651639283903013296765205470508469226081540769915854891069408436608449583962845131489446079166168393909676578477298491795133824369315584661259273039996456991084859203045081626495142599888561934488664895281264212322643940449780773219995885865342776370664064036890905585502885311493037585010673110295881401993797483816574281161983071539565530667094546883137306941161445331982632680414287990429620343111816585789432825662861891749458359224693153624767949490019023714817243558415837882418718153438700929084265831281832550746228389589278072134116980081518141016849848769706491848014639042484734063152742631837316801097021351647208603023089014109348407242584120536309954055078818070055943645031540773793674219010286905220792485810916177808649382714434225935082277640196456389289974369551713428248054055473951836596550014375952547352000415401182033984385781314515870842601947588671033482499859594049394078147399709663668607917277028504723070209823531935964471958442706294849223660612886346461856596323321088243084660306228706326588624629801334527997775037022004796091194593471362085801854319410287831709436966220011557635403467679410015129654881920002954213288265734195010054167714334421917719903884320530175576469102309109589857375334127140575794859426334109306895657733360963319419377591047186849678324831126935630200305958059901376203299727806665925751473593537940451962995284909111701494120355220514207703715129009272986070346226930571869776309796625663754899135820425636955075109006527032225964683050180101490810880058429388816438494451676396918703996061316167327097280810283087811913684687360620474951818921260625412320608522455164342839542883911415718727194307506437059940711728317025607797825355180185392553985787369895630910264756201459381924851661972537593372075682483766160936129753097079658017023758912717590001107852097203417325295503247615245505322164734510951041565091521094732981179973796792926977858971526525981227712156368260683924912437374896754517883627164094371190811206534707924580695241776231447629321953547959125998785917893107619896820421740425752652376746087179859479270696128979601987400281674350961554374701491684197583510499546109136286766753322751999909112003662326623963413491858723969539167192766249899765544608829918019454129244862475420776731701510582975609692732967417092876959689588697650234832031094489116275585742265214228678784561068324983605460823221871680822269669512392570330859859608670060744591575853954060825122968860843393697715626731337339940302424264162550474579797330466508077774838978971484222173740560260385196878360124970559019317587906488425310873893528825431406350657619937372651446423573455438866933090739725119829148915819949910306771637260153093089483140576501415017353109323080587647333134923505692404824026777489656341754334607022511863918646653716690329558623940202644844932071111556562936851601924206139338628327251618879428054735443403859368975565290195454869418075073681239448522447799153952438321170301520889561785789121240711687650307623426907519212173229058047695776264608306234660603719776334768708056920699510969741254089236642429999729031601507572808688680798186898538713014361513241384065344002147073945777097909222276208532763538142295983166414043467094389789664193669991325738129305430509737769476598129449178435885062223763633633586244749310620987039951030093833497470447435578254358493790054496601615122683801868363842918435954359527519040556254753673289592046230734114481007256239699327924386980275734668694014378577219855642616015433774115365460053658260396428006984864708900645761912922417333236860829671540148521264280227162093496367246788609390509137635900498007384759264610630329051270026619050046740283334859542695491145898305496658009091893269673294378559899730033304202498136510248613836314955230062594879480768430340438245599058818724529103526258064727127714361109607802754552523967193304849253721219046008305585724313425074343859086625015849038462420549372072145658781513789737053213076547090768218408064687535339748840419901191978911213042910098884586829003927129903569711307638561597162647955795671709464258210122131652034214767857343207001388137658265893620706690054542647680246858638364483682154009657093923148877646765409793783301129056435753273463393012501241987108168701534233266732699107024065645527603852571046229078993258543553439770146839235921863859884417177157123337707713273740101035619776755931669969865872382159157535826167730088429598569573691482408739952789231176238351790837008273691793385924906459763681870944471589450622209499826938996067632590766957688291690765629873505272873407091826453771036100503676355034829483927930861395729178666700721174750131092926510956247199255757617676437312417966716981160998307444432961038469514544134450124187963726541598439101295797179135176664767883010758961522551588643333895382347937800570975188404221376971106848040806671120035651787847716196141356449052127581488815967007423488497026985009038380322817029500631544357765376153729665136340111277761698589309724152875916542966761210993970617882174282300474368393897166171296292263181770199441218719122815119927371755631237622137664144327450134855142704289330991098116571808153907271707957784745538629991428021089641814785872097577379905536674977068249430781891855293589625224005666169050245001056398317782452808842874431934507168974420180080348185247171117029840373314300149304317747838654554663852426471305568346534498409204352561821392814399529507574159676793015033384774393645220962633327042737182753334582496737557676707412959996481771487701583659703418324645113805034710346341587197713270991573576143806395665550253628688425016439807516560357301173025790374078243067315982501779958945583063613777067385654971748359439382294340213623905711357428784724740593831658617368429579688005471219670676379590043361361914424388367136957665458807471053673947091988745121081297947789598384778232131315008058681040757138630047402742731205635223125069993673968966736576470788533407563308042768962488316781855384169901254643963196889123983941947704518275855089140173552334702174400088192570712453938945436043833245554983043475596344592181818424089677271941949513060762181984936025817236738914759196007592388276685046353604116195852407477821336591708853819617778033482874073742180153934074023186646244083338459095137981940589604178282409809995058798421135970196847905848085224821900944201225272883718866369276853158931026226434770289181010556385681306035070893257181282273432442047613164875490016605397043274784787721919643298596422949052827279428808775986529236624481615432298983440011567213648064202904780981457281896391674267111536290391483509296020082360027048655550459290525479971018897720939255332414700128869134273374486283289100502704447452410364938641692301009614671802401708821831817967073302728356406947338158477935598493462812005856611216074468004948856960718201177672336721777014037578607107908404059245439617733047716176337688316893802008677740596200564835786732775085903208385802674595115705697772068412328595948913538773633479389589439984641455824734874827573115718402834226896784555410057043390676333108403455682880672770080130392377360460031984761712799091634019135240598839365735244255572093627160833449416673912435567653366183382487480165297322172504646191195315998674406439178278431028688726866872176110613968238781757959832671361813233270936963878771766544470517458194298838296477210368417607906423076055982781444696575539982961743037474446772579305321078923658972456029145495695037350178004262029902092046150735715260649489698224449213848972056345025742919633593093188958156313810984458431533936785460389035190610348031451589748121998741790366753098534976548585045827397517051009500576160552480955018013788761119003085549621068474553035795360631798808784902946325418233690487479917445276007555690453454238527735763711680825761368657670891108596238555890718764791202736346646468609780159124651890271976176169642487750727801388666770708776778235287754495955944378396629481320129238708487206881011225006273134277388225511863367043604669129031694386263095395034297569960024899897687469975631603072488806956547277126767620490217320609988666038257139055171563318505599873204562512495896150860107114461509951163681375626034132214759067015962736690204933157701233263556947822411594068081954427643586775842965324605654245453063169311143479961196798300972922378150813672014412245257488573008473668593109803683555052406053621050030144890725243687820946722847479736826264062639261681168185405150317065366102956113739746511170638787070566003191556892550034844354868141172355454528909811693180095777441688969452045803528983254312282981929092293998186010293788819471420809305315728013117733865856406766822187204090480945450725533088478303716524578338065536780166487636632034746837176003572989194180059167128796695841849380863212289541903364560647041346066718816328002543513493013630126729644110677096975655832637956818479304665949526143181743463798846964383011696231094633540569201160301252520124020679972567849943577870452087614567291434364228414231753367021853222610874402229947411312518934786104644161648090814767016641857097275183624019362859282193430110934659771287004755862601227828335626857585781432209336405049717567323567951157881602535498838155175443952812818986995904029138872897468366200796478383322418843471529329133361892219894666024386168681614580072277764991852159735255534138781076611611855082872836285080556407719486800805356126496914610855999291670047253653298353928584060031054826754949048098745012777623034390443112734783504838791391105516711501986679353780141021841854228869861271646716500259693582360005222507251539560686763345218597025199464033187411142430493795408887094130208954999512602248105533734801716434767086422129463355084831359626515445451947081957121366365517404278724674421467927944803306108584260503834680580298239500818263941195969864765271212371646569087412222371044338030294111631143095610907761747549983905179614257501111950814975252779338104707761670013849102109018127330527470463220822091745650288811509352437233109773502627466441262439229364198009257207100266935102721961230977982945810691593536409836570379838551005824545795003618274097790874835463880888628572042465624427892271791996353743693907613587828880593801243029248489989497219923481191173225556661618857093328652636892054726060769666469299461968217086758890160726923041807433797030701191481164678603099843633621364016670793575063052192967439175639378603339951101965590677739577284416395296828637032584990970720490555475320041887882029191059690372352128606184520196558367170670031977961954352128894220408464969745634145652938675379491795697183168872982445936936829175893636792091804162282966861974042817409336290372456364767633308552633160667057247941533385982955639284770993942739328303462620799619160590487613401489572932694315704082387843200771708975850946984303161317904490920955707695927146085236725139777840540359307655661498472164051962111921795493569135041908193834136607922758472372544749557165584072760884083971006788681743908937512767009023067639932681749997182484246513883673023755997165086491467289487698914967273250164663078213541651530214894920244351180962108477965627268473036783605102877560810682955057493046452908250796663041090104816197668808527484220605266123306426229339289567353373302803985221678792316382506321233483217736391954148861335545578573576146208191267941960547988187485302722826258368679172820221529357657764102955803764799646930218590786230578631624378117672437371134441435558751860054598367714629372998384731804385546102714825804844184244551342546709748780487508338001094576603942343313015661184487577523275345614067133849207348509481934471166912474100164382744836021319167349778179245568984409213691725814934636601182420120651561987117447711983625676072678124069359299230232219944039230512616221947561611030792814397824177870338589064762430404494428729946129855583242581641967477825931774149328373815184197598473951919355904382857540736988026295972853797992736046818818265667453301345595305244518804504500698410049675762915159266343241226403079295617193387901321478823440755306877683417251126666966456406866337360590711290911970667219815037504180508648794237099121212310923395422055140260632768560790853561649276786620761865924963030530389864030986364032567084533462949839088672635828676833192321594728267263959071997623417052886481631984633548759441757717106520268439541250075593026981135670730885981011297027209401123791493515325791298939079832117457116796797603783057921436966808212520655316733200203381418827403927046836504188275497777119744391003697013812708182163347664181722314116769250179803423088211273889996151795021629698770516373388936075820254785937719542288555266491780535714503857093789549218142121286942307374712705684671357787761872074773992508648282602068352158703089793207687840584997878634364023198126097212748278267863845513240462508013021070887276085288003133048834332302749498071677960006757569454569443444639543456761997159266692713617161096487316735691542631292706037338901851637818172333707700006332094360887049515690079096211242041890986543067964109163650060931928339997654660757004125432109716726548652220346066987549659952210726251913628969102902229277705870906500101937729749442082398718322268378585914458556235350310295398220819554138085701142915734522958564024029607735348553431557115656064766224752858578083543387037837517729382635399960141069494632715487527738137394435813803645675126583047202253404167874065120497624886641578864337856797265354740950146971818282398572980989266873695740213580851663501535617079169423014638290546402231013149264879847352947860218406944758391814096209508070793915704613975317179052033947028282497772523516556372664359636014950069182412991230119778783612373933754498730370217440582913400040216775385469315741580767548342103544979534695081838218764501768921243189920904638534000209735154743565307307295730696587661843260055298987170896164786688247994948096339190529826666162070281981118785072451629519437410536821745175621659666007635130901960509965047495516891297452183823222564980256843427362772986552435937384125762100593787897962551911632518979680159367230484061491357970018586316246473906543607683586831549304762345142748896296438856259723531009687705516445234279581598485815385010267270308638084315509641192855571008720610394446671002737474036248812068331554170667925728212711382843468722865835927132652738365392024344157379238221239051798033318931844686646728466710279669528007215138777980203554899448236594242461707269368072156430683142226338049892775164529180903261024087558437931021646971003854227836414863822878473207196652344462142100753150021942547035476725536574180121666183595159807590111241515743258226814724303443865583987675923244803303412870181939655110957541436684753205488863068637790607663571020826251257863589556215516071406237347882482651606864313358180751068636146086193882826919894553369262209212484223791539161033547857237786767362588925232630212403381633297433258818179124010458581869259941296471462681645969684633476261810508605978529712568549007243489832149094492126690159939440539327392661158702047942568892126094476429968452409475753671612317177802425760640378370827166874183294783013139002237421969277838158310422063035716703702877001744996312207192007530414201511345455078141463113547316763060844739007869235712108294119279444432709353439219712426482338369571986485743938567699668448691862457118998248059973325954235740554038633348415003207285990531947161861657950328814095136205931327346723333967988100923137809294880029388106708751540825992799341853620095199178337788516181643751097961085953253766135409347198353469980604544179541522249242584808019030760925423580598340690401739604360520319524535530581613536796697831464996990917180396864388632918437561941790782366855555143565643706716563333652565627874379312471255904308803144238128247022651842752532961816453900387027189343471723956492931462887962959847416888744594575071738652967734543480854912859349253305296405975363983751363295045891652181317164108438262763199338097142389806401761516613431970951385225937792352450537712688224947327352176201522874957584550984393601644103643048952763023674984670052138093340007722725678807510634608303004286746783502477746304741440314115177666967506534106415511500071784561702932690978064362074922374228726051039325973521642816260762568499804194014528932095883290055152046158560515428896797811417125021183453061136279336341242654594633741750084839046459068311660950248845761143745968267310033256505901221637534791939599814274405964968182090670839165643120958995811753364842699831535717758113110944902672535234186023250662905932448024249926461557505962078715289940598956105490623511278307603739756014103770466080894266095495139348007799685959207525788484432800562143734669068177373417428008014344117353422977713210689754650083648551698402492719699702963862955346753993125307611532002054763796573348690995216148414562975412426168026155945582017239221590979127474618885817732910220540919194563742508320541428106641559774791076239320420007836765347863821716400045603120970614419555255435199384664571148668039225008070412932161551150620802334386016864250660412419334057063267874736330261265451458502312188330859832980518243829513024109672592692212840315329460891045210751129826477176027199224464057794682795069132372588772476821961046971688207857262356295048978709324809950561048289747711407124314939212385147615571116724020041628332792056329824558143256000474320390552340048823407070919180948290660293977985194740450129939866480053508253966413512414170011059107703418792049922387400485844244522952305785836428489263522924390472380053075811804920098544485016302123771823501277634896928908344772845726053446568326610820994814092091026544682291299014713125178022212522571759850674875161935989416143813562433136116797329546597751380891418595506678527346303923047127978017409760460452072412362096213606261525723931586350602240507213640004316459337378336941599226866386544017669192190941091785731380164084021562411384072799445625671840372174086617436268414892387709389493553155282802765463592693397856163252564888911978611723601440304295752157748546592574550023155087956885138087959136499333960076452646013816983904393571097081903983224671709591285366271086939216658760787107693681519212269585125191539018723096985630876193905646186199318802498998956694841060508701483195565250064163453433871462539110537416550017158119765678744634267722316508521046556652220017015647896429889423155258008284379814895835532064878659605633401757384960049569383390790913255677839536262384783018166442587947604557433116700258137104328871411167389441202649850402703650798287405659720975224031697097736095786197979331474690902367859039088729015056113507384647152043965237415654497131694699725164912404141873708034887647989489348496494575169972979497157018737247817645298042935450071376237293512853124235238226700921608664024685792252810510840523088670942917649908710534780510823562858604852290464636660639842288942922727885748035923879782283281855986251188549400202792337420410018808959176672477114172427352390000435321213176049872476388129197593138813359590523637191624128050365941849956820721495984007049723770033910017599868232633603120546709192629456725924129415469752129230141151033147310885229743520610475702744886652173785403489684586813713576824852596108507004145641406271641080939441163396073696660507839545609855800702687123472645840099787419620942876563916356674036170665664350763527832728368867189150466004692930250578558654499234736478847577112347949473254464326005392230307847293662931825218443803897716434750815589704566346833348044610129105671128681642420945762882050017622996970016329764900790013892445417662798784028469453274849914888690287079436294939176870923312872865047560277617295131657111184727184534373607100405633451056112040000897808741862860257752237133029179260273442499536824660133540076041007435070026094377571282440098293152632013147575767387802799540629199865925184444338913705862436114353595925367602919195820861368124961857428445096287688733330400697847231294264733655473720778940473875795603835438444986614407479550699029632931214170690971657537029007013085067107171091870193299051154603371295246309100266487880389756091609638843697149550253851866343653015354953194051967531058945268112288823753662292213709379627931525711316940704116582633991819892054305416674985568339488835682392525808069490404516788699720019131981670894174992725632881693179182460391226119340752159134660035084438644465422247722162057775421994554930608518169701725260456106678384541956967498088289913570806436116753482457746252845180982022025130435318370159770117118100039341206042333828466014259339619696557581018787419712512592115117518972224205508667111987510196615181092292918493435943381431623670437700956604845893222278172101166033314156516217924518816157543893635787773374526727513193765572918642730883298316224742408280456315522856878336413663619948889785710810007355913949657527309221502587437428333748089759441535988795929886112022234518458582334235593643963690918969932300977265979001724660894858121744178872592054183484043645583024959219609914028946000127259204681348421650093153306008474624116623811458273206433514483683966498611306953848007524294421655344773207547545919157752961935872586286801813589987419579317636103931785029591902919968864427954552307479371920912803040154779784980349481042099030137659612099445721090549165559602173495735806569154837249035415504725241822439484519597376920535255769992413797247797504560796338505417107951137078366024252420241208695282038178992486044553551520054098044142380995362400311179281781898281087594333425084673212760277769465772183094950683192638216373974050548523372838279736812802011141706651627154736767268226072334616098134628399261759122403956796752675954414947592681350713163370663237064711612214107500625987897497634110108270185217936081805549759031621556562842129653169414875022318500068136287692822953160706863145495758638488376493241553052722323381371163017696145456831275352737968398827002532531235921943604564677090215289650126441725545534489725056710996388131061380573674414209540381631622687622272649245778044401518820122071689520332999170673396318671593686239224840610794536904686067180913282330016714076059010210191265569923309917412204255111838426996780768781069285454605668446774769790071018179665872555343760368567395713671134646256404080674570005365278802584364401900727894464462284187835740524579143697283429251155980613390894191270010466432955347322546627292689017033508766641600602628048786949919992490532708888119494126964166484567491902138561110392613361054638829394615989357026411122248851500376900944419196472089967795032219075172799070715902097086719889038851835427479990879952052308458375738289074295413231741652136162230030807602862579521243766082929596176193261314575211245878327385080636199481259691417624817172108918670362120004115131484253981085071771676407752393886264143840491784567644533085362102382830822222468011565779050564411855158539470555826406214781229136711520807236949833278411759329641796401780853761698990815544734069251192029836788759557485550728622693537361634953288162074869795286098788246197993658319144711170370744173127103258562030166409058555802912653298937277970428335826141948846412848314749056872170606678484860252768010752888355338188208862320789299025598523436389773729226460894224509422841558093628745319675616408605109563540153198848657638822274246894718450504767102010286230742639036016706396464784292360102403495794304604704860802198299512823168399423926351166034552656166385149011913488786219202168445395511751122739278513847477033672296743645892740648432048917706467888741825997288818365554808896591461565856133516579035295664249146438831749975883780264339713933181297185411783103600315437165185283243548050905516173400679570518112545400024956183663142840704737181246872016926272334944716650915418004454368283632076198913627990059092364429917981346163464190861088070438961150132114464091456075852623637173127529732050581090900431039867809365650642191263043478998442976181489059593256422087488391521854209249848237786474456917351043972330819463158046938081916907928393988035462313566328793262890997129760307341729934270076875905652782886069643187848604618524345832570430101178692146999803384227145179900699437702956240329367281388701698512394046769209020057343621064497364261998977109027956633039711280805925727042494928334373026386247751408571840840423297471023230692920397814745840055160201042853218033303331099289850348502627178777521996780561012810375335618015089944632480367512547697776380798877314106592396231994132095929026402888662726052408737522529465695963782094001772249276157456660202144939319743253774337942950814139756262448046439001399062896224843587967930216456673111073621645532323733092224908109153939241679541579657942884169613604350364824029480599777954103513185569771311838185281553254730724750150045893761446071901516487894620218806246387675942848236722146757238787103085080767484292288511532347593601141926992644115213352613056462224258748901318311733776746258293311263545633432352694154220617488672803959433143308639107679763484869625836255329163525151458229811804360768212967605629650743689482318390190491400782164594904671991595472448084839018858171340468934577847187326287630036516411352423537677342523521096225413519093316502795124110217580800505369984448192419750950495707424632374510769815184800320753350008702958002734129206383389975459356365890225638426159787483285919884908840558211832185694131065878111242520333408673670157370664589478630771499522114424034221861099210212014641627528905814084829455793965215911896894115971849315439512649518531216544369920623861112518861113520797415155798501938149634393759727764305321347816035117815248450405329590562919856744678981669821895769682212399799571830585791494151041967895671731423726703475233972034206568929988632610055725693371420071701526098116693121663141570788070888929697676264929501484200271710326871211929435814390282623956537512827363876311767106251986231745936817370983584449164456258799382196357290216875488812531738614584028300957653211145155437798204476794143476228210431717918141605705383365485457976798266868985116024094478420418125155583408722174535365310567645005973110545240237909991136156085993222625285680458362585388879850426819576774086456560864800896941371024102576263551794435891479801796598912060790121517682599619364014325134479852709254554760196968781558876005498961185045326606802964655874013750992788918317307742055370756335968783737871510466433009405410538483837811277712844192576373415505252190904333791767657564651322862742848220783465588819781002661265929010159677391589369811313750023580220988034980147017519080160488743938848591895153310306529919664056154801071260186358316698416895498784265489485319710643256049486821391109645851473206055102268981517834747901618663841122903335548767417917475134796512041347995359296515692152055607504262091454619940122465103912617729455000751695442129154282666337025925071123961831080160459844049999840031942346886201370862289353237678307474033783503866025240407092496299336169015011701134149693923751102572431808930671424308873360249196663859329887306069111712113090948770238233742427251565127905379383025349849208101022123035968719490337447508841244776053152841239733913956576109477476624685537879993460490676471713330298166383113614170100434882046349075079153712272174132352424038205260872842385993176411150524773546092264662421282924539619741183340170425920820928818494891074283304817670765881237955050487394013876731957036962123893489025149119262349343389176289831847964497935332188803861362383249662933085257504337601293458561624184698304400207847986267351292175665207045373285142512289946086319435756186042214869190771025175784337216650052347359746163537734441234339654053332511273010879862598709051759814762409394884072782787449977395245932444640075513577499384514110841796830465238371659031292777135782752311224746330750207665378485782633423280213742732211582987446659537221597820090652099801258060831516748071060348127698237011941970368738357111198145160956394738513087869341214119015769105149611825488468753395444964796546357898591696097721796037862594490893700282900022919853001220324343808085985643015792482801567280910368533807202055259586723946365524819185903870982640092302241421109533641712251909298644859678181837292344774329886744488301754779427828007708484643869063380556098410353691174650087426567583953925004296571991349341103741050140499785098906590840612199712752649902777355800390988811792622607325477592222297078905392256366258368649894228043034099646986186010380240467567380988129348221798717914578421168350228542736306857488385658783261949836876763657766105127247301374558666596794796360478831462294621977797224242406996440189512963356154265872274995996486980312755441831664057232982913330260771477194083079879760795846870666724797351606556566885124836170613143323101618629005721931772104122436822556026444986017079946010561171271570968187911061181378610134010628859448715370124961946058957281948831048914818804470949950579700581517982639504525014560697301605181361838875252732823666014134144709674106360039124370118275650127546998424457396999905845627207572053179004782373023639263653918885744164180687166560163763089213786102112479063251801985948218724928882601965976554520130898951172098785008068792105310587923071436366882793038193235309417885784881663117013478091079702010366907797824894405177765430186964021103712632991645485410098582041637038035049570861522124357115585994419447801232478885855680273017014923250781050217404950187296207254551572653056404467582380895557851410180138966717069639759355138049246554990325365990057171601725856355956738057354246523608613284978344113560259845432310890997882033103773485184758013200508294650401283396279846877068201442677436273025964672088576414165111561320156530003405638229086150130172266115169941324043058823582144049334251686392390142328377916632312665331048175651553645995774364361267156124665673784355328165629405627427899500989209934632699780749401158931085295579070704740581307173170359562424961542462264017140146708267544388479082276267896407051601570486297856512782837110073397618692296144367976615975596456106975618738591725728751400084771560449170560258061188294788659740134120311702328795701500973977681062069527441015474398051222336193975126755977904905441597665984471680613491430488766793512983483914260957311459066202888463735554233690759573405005606370628716247627602570388152898204746723710012447485250997261307339922863771322411896367133697838708876115624546351991772233209213698005331662865043870540673783961048390015513137141660877532827941408707849327086147882505615589104401652302319893749434178677954728868231132085722195798424485118948500910662099923090919183921527675160291857445927100326098553979211472618970780562090129238580731034569290769449910236809961859157109383712268015966445584903057570149340449797407531055123523004978856092110357962722759055947548789370981545264415639773715043882092159636498699305085742408398541540961063261344716901018446290752158345357783534458459507262518080081278740280922714160270316473091853270026948710138927425648588138730303156861445652847401726274305640212228606883095719932105431998771295424102293502252849476068832918540703519084672958107795762760216058336382216118515157682208852735953987154256619458467065972707215504549163699075636823550791953696351673447931841573210562626406192202996473903925062804601308910489869153508239114941096543889132401259034916763337971280222468371514827276975589428437527991768406824635434151102738899941830736809755910944073786661214576381812037179677215283473282907287659989484590783563049486107342172299362053656288646083795639351352622738755685106256480505830311296067503968731144659830005043267643063043407739990948649855180359327284446334760948991551096807547104036900108894703596578770101505687115606180810289648834084248923694562805209673985205732276222658189346667963854880798649904332926390925167730660134520867392773871556439715679179875121976070240413812531268690562920668776119214585890808654954161414485525527487160337442033757896968065184399596339312002060349062135733687987969041268821069934700584425348061000919551287568523653073830081511609727437490929704126533452417697363115449384616855389160475579057173572295795625736834600320702460701819514970968144953017490088079295731913783216136717395887275467191720248701718303135733334853771541084372371710540746213039410038616717216616200515509750756387419367910729054137392717935447403188750138860871950711128828334800755773770165631670847019153173968980068608409249599825158098489121891703477432238405009256514751194557291916419062201970316305035017457435627058595088715535801429861414736439499596056091552511093808220796439813936946315193195934204789682094896330834525622751596872938356945748885301116769117166572384498730967916156583651142502749401226104095901759965436878829192703142217122436236639650926267660232702364705013594864267334476954567007686367908367152894602201688613996629349437612427308825833848605108432008357213876582004642852576605768994353811474027935075329552579629623708494380625462642336408903075039970461550924306401580624914544948454488150521246122532494500658271655571491301268980103540990067032985171840777073827143630660090801455422009428302123114411801276980993109312296934254568009699287497553978309864342634369543110441078250148501263148962851350267749116455774691816494481135606109597850500443559365992196466893852535912622473208494630148145881039911899646372793621349625768317639581736159436914986608046637441655327234448080062141494058438518907937423001918792884905705374547435992943502654352891386224094574267309905887577196579245585906190434408299730266498191501559183616582119309172038880278891340890107832609875517479548798567592785279989586238374564646815317978783972785307089447514206623818385191557067897910089925492069643273043805883342772608529796902698205911364008191712451283523744769201819576444567973956782978158030790414390496237605210581811150290939675636810525665862801700728955515528792708020575034790636549871726981339705414420077402222103297851868127775438196469448533626065666244199865092147406932959320058470305479113873069763330203180183744121120725703859571364146332515191997503291140036791692558491030688763801948549853585773712563026939371224379812739371452805455361716203046362459967262210446443536040002661722659343291025398265562779093949979940220679689926969554382951159763078301119389872916635065104088784878971791783955597057042504863438570776405625522749338425140318750886674214790411135063725167215100837623441687382517825239781135185883726202568923619198476992451588804582504087392205932877139260498939225969112423195561527074305357364313515179118339415575161520382564926081480568517308638682811933268996970921058521876699702345637574897131611914497239118664621056206216485949237945934249720312183942997572420007541788803794831807881027856259563001605019330059107430950748926258103910787593142286486904197403068779692904316471777472598332275594702344404088864631208666444591581053732878614210001546478097126187046378638967985086311615238966605163367523360881918469608367932646335568192489470928307608328907165465176672417463407423072368051358973931089094656061370736732789146530578179276853380854664019413254008376544017627701018802307440410669037739568348410414314775969131986554786881674729361305912700834893587076311885368804492707017904407554845474162702315388471098949534094048850688047122220870108699232063466353226956621736843120147065649445661980130666297275180839775067066793336453872357006986997553879915096922576414828069169936845182591995766647437720297868977713743900266000689621006884867037887758745799825845200832257118062422529748320769929725783315885647786244889439226611433060190383242660436447677214109323899475017482325815030614851402920252521442937189146966919113750998966759248976513210879164576257373546636985875057070758745968734670042484253829048533564858688436930536273833531266870959947177338667650336477597645110595289010305718814964685856228552912887005223069832393239152044319125769961710946211246591503623201826843026812158317862293788674487088154520504734833926368051886265913111497697148118300852958939032771721038679705358443519752465126942877014286936268947855811944042171504665397291493096133567992089422504566052354914517415284704189521865244094661924773683197025342571720222831514071521076562565432390833275028972433303418977760978239365390755264308585324452984141287759386539000476052246551946143949419668430779555367292798620574192719363044846426091169022220620706608975026727267015872150817307800012667048632587775283839434578003483796268948913901379395287410243356526643058498555539408242676792783539239120643896950638034232681367464137077364351288657608172514936164268379234452117909093352425963243372963115989570572372551000419748183044672355663892644509114302484308819582103028645331797581867015513549162207131044818440002730216467684068141255302720604109206818301159162650576760569035376159026551657633547324910866698307630948368374555386219706868127945555291148276774692650959692995615796796960680624411570579977414423595740995047386190307763286276233345511353872491952054257907165336048022511130145698428284326501274405790859372130224944137064391619314375602178054353984228174826068428791037794463910836516635459989112736788174064315521563714907800403718880809314268647957114398652780458862011132301771118012011644079420975764358675611182201073172738907345520102062744317475567514147814457363677864256081427817791617614700251914740781686839104707311964512575442083271206592655271936745197998920935932769270073257256444282452314955645963175405431003350609581417526758747442248496400820682574897491619388305897477928399048744116912812864885316489090655233258090068485736706406082176056961993034114574777233420556434338301754369128847440424355388578975711476506374364256532169997649831396209291487645862092375042809922139605247456507086200835200649671810097099647531693792350647747030236939775731296740340825094414333731970433056677319643221615249288458733770357929849729609094532162037587242251086651598341617651347964673489336724994917841818391905804486376527351634180036889795475641349574392561722747016054542892578053951819094574649932403947424283393366544298214113926440871945551868152616413944383326664137854861449152168502512094344635719080016968356022872892181097267571575637833967485584336145030249604292502817081216576569408421057668703092049379419288116331654444379056288346761867878029651985084866037842628079468815371157291310510826773355316970537953402439702586881597584345034825769729004636956245460152257474246375466035730565204455116158556012234025037672172116646840404954535514985837868471548712196962722329556716059523348342578197056648868063015184589745697958234504608780028010988561378857288244231949002313606417190371877160711783547399649726920125329758438447444143399991719046431048752655973161387329004825671880224989438661545505134101500257188181151880479920180983091169742838557299655393893417807646013992167959360994117717502557825306927901246695220696494919199410918468116432091935696688906398092517213437549791783646009440966992218770856507027928265157004298665392286582251723522117981591968305149559206295349220955536182123384081820416118588433900433821321913180820198786303679442574706739749212699354247363631940234745687863070409160865400881493179386070566330820668198827460597416042356647234942655975664158590481765948571562979201640169929583842676295674615799335319474148397583704718111220007441884523951993168532262313569776110384564057371946310788594526242032149405235547462747437407732191244188563537535583456872062736894948772963706470000627054958651785311794873155674435614864779357587373652805920111243692527985389386839205816360167515960796038135534416364069746543319213502473915227471814237255241064148408991366683308298932782755770887108056992143374744018580083369467917162268807241753351549795975164362214374013491861706860730873381175558826930025474354792261302024497427867311319048594759766815822644141741326647044653507352779797064127103496053639119915903550062428110394955931539372308979774367634299023868287648209923934180760462725416544551512390289212596930190695772444606349414009400928891729470440646995711043506159149943348787908578016758943517405149284837751991642384732424121686989658737034001774658743050703813610416407710032768109374430380869301404710171853930870871066048760292096828403446255149548158339093033777528519289248236029970998512399335069035042292744023446693956054314770009185889459748342576791877683410945427029788623548858840515783305202983860645721903688804516507651501878529454302953619826202957310028252215195421741858260671578595394700358657779504472776550500481419531174843760318766339662901371443408889820399922865588495249097985386944909465007198900824824505424421253386449658887201372703559372726777876769308463705207249204490095852063752879933854870275472520441819742037501238025414383298487169453632342310213377973485274808224053000005525301399873461370775352224011359495047685717606841639869794452080582251194592819761882977736100205005214431251212521827753458037694246750398250431362006454685017683962424474720716372935104872418376618167455498387545408999068647962198371917891839402091386163284968987065910961984619063139898686044049080456486320564129366454641074570600917523159414782535955094985783189856364236148686130202181905505936629396844537901585259368904639646784072101415648985138428755693595633606643920079031016311579717276608339301171042880636850128915219293237129669557283611152995212477318709080317491156423729405836005048235580620089648543755093634459035570210360371846635514917324111187873184093536012194638210249422717974531151097011052380411750335156832247106444417512723031820485619233482851252174000996501809242620212064341816114873445417097628243155788800213581352429264897222052824906201211742779140553669810546081606571990221806454788430754892281217507047312374991833359884998942250017576449452655157381850311240290962399078251320052662302502947186698913882026778919605991806418344823771419964231135749733459462958191297104523257180835141442570130068094883379444758778779608429915580038827607204949475781618614837191524994062468028842721471525077710136781152617042591225505435474345505195911633818666717209761669965035572500335045950827748383320224153567066156404491829305343712048627116882282252358066673424454590470621187346219435298145932938382715331793221123853070343099806449575500643695464079890390582830262099108312460676561639583129002392786571128760782593290566251004383700225197918296623291242019347173220243867934146428748319890873075973845993619638702845696250437993156472428996115738526332328864900155388456742125364499054390734977300302283098580531894666232486358919778991508995427284795923326286243137508517559166977041670093190063833832204557818530482246956056944494604766033937680733667016423932299880210645697347996409864235278624990452663507583360151520342067552095673330297621647446578081537697534207779252560446891885170713166815229866030368047436252859497352789127642344805955539151226283080561143642236012070621432267645032622184831442510689447773840175150529229676674365622129137089553219759004969048637198716743947555050332725043196720770803833695084690765965956285283837264936182433531700639559108968368066873375092896996926228470814923892843923561722314847810613899597917863211988981311050671549859836890178660424963249078906337259920103043706619222475821368597462771464210713250223006667296857386045290029314426445419806034310774183160454856197803223458788952434466410240417286770146030146963346957841462813743632449160117639827326386849462147465826650050829628647194208923414209589980100554684216538550299592462829710995899586931989593764982527190559683000645437742530531858609651175247337314445021728141962477645246538560029153993951677702379711639860030301888762332278255643651100304215132657038989800457326946899145975623320975039656919329399945929972223269040392130610177444975572108458821220640364874716215788380810029785004153639734038959109986999904635017421207784992355947340975378911982673061997102967201419742475396823309673641595912063590962499540315689410148874620625489304438095628236870040560268827055984219322070636122727043396178427067211119077063954970238263065728410831726518436532256827897330696621457464074096894828582605888719548501330897846138336454302264492592032786761020687013876410170866537935013198855841282574365169648975481049377775656169030722693077039969293058440232555192744618340229888958044982474919958363578218357606027171663800806518309058321557892050699236120948903990310614066301376637979050527215354100467307151651457504897694894904483475350808837097489411995232503724668234100598719780351754818047885283927870210621335514531495459986944117880948172395997778644703043985272426212857926634569914323648539707004530238355882106182684737412312280526700067099205853231434343536690522215526280586740042621516932866854398588571163505151772512816329310064424143432448978703452175720734230257924428770521650205562306819516299656376351808120612613250241243719323079018578550879732013051577943236477695157562752264266022653881339492961058371668958018469161697524350616818311498902842862793160948515167385162129930459311145197077887058820434951675871898950485481682073235138723666265544243475135995323640766676365449640004224999495017776657234802685027191755624890492554321372706520653642796994159189056124171562288676462934834484975447181081954697440899318821456293305794829905096352583257224767685337507619842205507957780310858209954399643587633939528644326061309481086420696221333425477623570078470904835045284508865236716281400400443897764564374979119957709242234279821843520435750253744597129752960245887200362605808204252452408658416080625132717950766159453005825241284085063169298993428923566703617590338895639257230535900810475990156163531539277491965566167593160556457084497036410272723951921803720899081939038782125208232449352033063356867644363999106050603749989085884705321224925391719046927376497911346304173478716475440688374013343080551570137461069762607786635698966061388735100916756032837012487266685550796495130930727232455515080481480052621507096073168417561243116327108348922030064521032902385197788406876598944211386001389166138950197120036819694966160104573159077411671025334653594085757683560509864273915788001226578078313011546386462064812763634387798806479626928390213420369844295398722078105576146057678310417427514314640654038118647691676685036195378361027135233036641954350759143504626580192383718702373339531545620683617710016901574024063900439176145403434761544679233351516847921285135106369721997537310658959813016859570309319769711551167449613129581200505817399075572232458332476214801089284843196827611758868422817442645538060322229255457527743621617005311407310751025796749772874325474239035160262850476197429003830932005550841538811105239403512923957380010414352915252585556373025158920115104591118206233813058439871406179773937209293513321759311874148122942904857786355820915013678620321881311802097994481793586659717800642437761733205335212679915547732683850481495476311769527090294221750778768219573939045953737108976490114332376142094681033629992003471557682453481694511910121654966620699861656708856504142029088297908702490830395527138170707726370781946129003520666760514319602144855499627773039027272624620042970968297927014660845443588410032727511935036467429839210212663838802219495506442060077306362795881403982916262462270877899793777689635642193447419486373019713326175924634928880586421774430440378601633246316698509593183856725520239541927180446825267837174745119302536631520424204167482530222691214672533278479006599697529336539972943929908045150817433424219324541371923469406547113904298228799807705242318912332971611033707659637190769449883566281876171345759298960208091375364236043122674740290791629946422013954064239983599833141821996773006153986040816910234019865066808408769605885965123216882944518942605259088488965688476155850449414866807236034073220818483834612503540000147463803035489766406716997539937199750522361266433220463994860744903346566214232876454074713895873661150947671377279272717248308736920792651099832388390205361390076025115218803687993437705263983353730577340464959138428753241260402549887710749922579106480024768326806653449785996769388676591270473599180289098709364542409389686376607894871942456422626749759477297983588623213536760343780113571424621047785615148938327046755405775159794705551590133572436000278226933257002049886167312223360191169672095092979663008139686045862886730914454183518483303555911331679651891803152699053985249403614091243744063946956995574511369505125877485531601546484308140875499037095386193610823990653457911651183412730560676649771354930173542170954101794659285412543114192728645173154122921494334591253865102590295142973724026594267473072838124412556901138753118944491739373209711968575839268903691533828663593134718437650346266924876623299892057777326827287603024776298784372914115844773338486077731217859880963665804564015036192605185043406656411894885893654818751268023068258519440568970778915363871877676290051764227392219239410182419856852259726303988499017236934469393470596253292027410120222748908881868114477537555324955437393755117669078079765012979135276020412299626653594587062263184907500569245684171448625833981549244305498896204266390157840395649365338516204146960507692639271750508060148535848079839149212920672614466570916709342232639272106893385246507255973508969419011364965514333070765574990512496772579629539437276234014970283129396367635308458636861979268022948780985005608568396194057935382970092802419327658765647674659813030944852553997921639689522198392349811369981546722408311700540874366020961469051088934914030178221410150571454360689695114904046548901277047131282369096244758162141699052208582963850109705003963698540704386501111128656167170202339573422975751772356763209493179532124700754999803768702257625572361165161712855461723862478798640797140905959861347077589899758002444247049011692366547482556302940444226481012965842323504127784389363153329432870300929676349137465310781443417607811112294765623658524108785406872395483208979644750213541754574398063153006389157051268961184292351068404458387468988175397083720975125265998189342471908627965272361796407670725767531085195642620969935978231968050927379652551816508976082689791516878785580300572317292143858789325324366789414045256245161510105439260763493917945420774735771579587990581975762366183780363222659720556901988768800999617002875313932892973339137867706425422336939507538598234366420083344826807249600915907740954629969243842691116534524861835550059194999943988013913997270885889960926567647376909644493499405987613843816720643224020989377041760804930756140973475089085725836374636034429689807846117642265466493344380931919759109981979458915373794848564160317702453338348146209874107252366997105099816468453728418691301508469002428728982659024499757652494644150347685217343442728267167101079346892678424898055190193711668580820728257186795754206221503856466431602303853567920511273073615285701258632235740776994272344631450328466717416236985155411135914302244421878586754342896246550635180956318015002308460894404037514079885825867472284385905046197699500333715399185691618133327842114570110668815077471027633737664745888612486746476947341215284071516290424445093847945931100698880638646562761026665396216705777492159449105974607031868564828316951970267176100504883749972991643622302229073326522490636106671549826705151862197934970456795578585717970147389693746685017444206233685804647769202040201812738319941531936604814853213798762364512089028166513769468469480294856859494355612230469507451597775013889249758127539429157358961663778905959897401409989537769961305415852756238858663178458516303741257058409209184335490252316537459654256857425917311197213023235172249077465003554304763043283834076768484160678993143009621280022589504769316378369121580843737808695816076544249821797552576262482941944521495344019294230000935570808730408405996049259803829873564576479983259219066034834639982566912639734865714377551101892291465487440531569625093333949916856835868693902178869907552942920251963453720133672454093450754945345117088831661630672312294380559574717816186881211337978164821706594294695585314657733433093648420957196372243903900312752089035312367988654800798663702530616192034494052592328995526640818012519178851666358077714015535709891763665414454749072570978304461858970298790243895390264796280860306563694819438988695764194559601413068434174096776175024981188901456930346933261147345449395063801167408083842392415121349740855422599730773581349200784857627517538371865479214143056426352332030686382685862533743149684420866990603946583534257375911005581009855533490419569513120882618912413488035292479237380411366565250839303782375658898319194917545834880159335105635391408768962204460708242811502307583256392281778981439922611431743920780735985514882885200813117142108721682793179199057692484761802610409320873852308484636513225798573781290885956014217967704933235861468260069272275810777438585382869398877649727512291927097677515213658481383596567670924011173284585300968513990534151529999833668735913714258653733775975880100730297939391541388673408041359032428435705445646024569595695579100597057835106445833117897650719742593328630109139953927958932586662880070098946716717411812470922595355202727378218340377572368616232035284771767726469662584457197434944258156046251746007216754430319903321953713025149342635431327430406631479313651614471585160153873111414033880330826007519254608619793277194284848319198948023684859490729951532086588062788243691411411392297516724890338964230216737600136257922287252828955774849919960902207791486492381630510686202321209905032047010170903570795269472556433099840231090067889167285873230492241994040299275896555810970209243098577149172908299884735327005410544412824196996452403724257574454368835472675116465688814457103559897244071407126881615648957167893345628210648534966932456438411331928138193366503472722628208673107709672169720647679349369081811582842948276994854955053402648001393819040028784375786720875496917812364687556034350927337759994495177679814686744129369976831663135118977873019256895341571938017661870878345389056134624023772721330635373994984948007514017093299579013688844710297318186132086680741236936685795416875277112573249562020388920126003074309984641953474797652229848390993060569720193340880549441170042959479919727054697561162329419487409234897052373160649959450201235912463448040809094779049919211830394552816731210091962997206525297467403926599754707450247065163712729227632945401158079895655271164295692111708482760362821539281251587399655947761550205924185682020009511265582802205697710217513585076759684805323059288605999839227105459490955242531525079887535229437225374022725507360874131216859685954230009402234109181065587672567464884952015567637354502074553684913536558887610342042645566969735409019747694880544801410070722847152948171881496402861437270293860265237720064443355326898433428321431824685400670506692832174255446774508818215987066510509782583188440121699674401634934160743082886067516430533441351074299525877370797924281654013972683361949031130471957973750472513253922596817293794674142029033642040575814465265840160273644541868353347608456392316590896681024000279903623382330594678843672859170152313051356904256823877687543324856708538314399820342964234837134828154952406437168782330306799160930320608018935886821317260574148690361848155568525178453390761189717421599268421856223754104313246777134077359006583542572175215844367586599473063040387250835894871006007965279078884122192159645807545578396592902163226461993595042719071670362279049154537750778244742563306994304414091365597399126608725177379728918502267692530854497105014759366035385154778088936099877927470623864108809869799156050394950476996657253922617777980131534183637356961052525036567446701889666777880675281098535058635935774331911101009157928044284869703277734149345667440538066400970945051542566729835870033751071809032398785484479961351694939378555367623407582540831640983383102180589599790192639943985733383037465909751035624925487902003427920071590516740274740824374864472519496378685179966931341208056968515375442957318769795182850253113868395145070489124990416480071346241238368146387406582564767452349199751642906290939472931240792703009930920245777494749973870787450261434230712743236965679183932745444341002662427773819166935576720714022410449006162495588111004090154289473322847915400944435233747722086374495391013583370036468126914530730541607477539458122763376975599852393047477569264372455032580595972250808599688610930354276748955316621776542128574521191669467986381139659228672285634361519850322372000124444809010944527792547462865324639040850776950924630673184556306036803445744979313097861746132115935557409492878821997110129456608357574097490182519184682836672021851401434578049030387025875112449788712299535815013738012482652880550999246509976939897227290016122662869736504797518895116153277304416985885488275645323552665781516737933572185752201161573725929570420674869443631959734631710574955559336328604312257578980387680903071780255536012785587082878232966572147713724656508650779675894447241702620262133795387573360382865786868895901584045794258484455756442814601955786761325666994943824489415053043207588813595293201223079165358110961265253382749157282277715351399926811869027832486206673352676538823217579964091665146451743076326266443457548859321188737287926842544642990915662606872094146351535245091464267750223106810787012256156061264573718087122444974902718019137111963889127662542033017907692780747437205125232691609434321937890357604794568691783744734135286512142088841809975319487832773141913020223527934894799353594540066653243053849692647228795858798675110319490643630275931918440045082230982186148297627128831549470007000704886617181632839647279124656465627693727049379014837635604035598908741263676930157345058669653211846195168602574785954990028177970758603837429246736694149844027000744138317335698626239521934734934513310999655867535490146575339788088904505123066681407789658239073001535153701869740692152049560645890692444418264880860501154676857485302660259302635155132945623075469227361625184073269784766735452987847399166003255205668426978177600073944831348876743590573663047492885142682501094198783472213794532136476502541884502414721151059982463688996805220114797010371983208249078958320465498458680590642250329588063149144463278330681572133046488890737334299631980527703055284905375767090798760390961679415548086994940769113397070921731885152123617831686288628710187708762358550708435827680343820713224842374743906096555109620486651507467249248204367169958746955890927638115365579213829048333355790582913892325330601368485144182268295299624843400407369077012098313046532271119962289278412245813116082560959144719703527886611333965976238279044112539278711682813685036511910215184296297356526062216511113482389451010309267302816924332243669631324959954039561955274053272494149391405676899833156839052056127992008039466414526113977787495088263711000948028593829514005826949634151174972764331572161926309136483401025194731076062697448263508477279729558210165269290691576643968497198150750462218465528468833204824740996411747848643330708126263047534643030605406150754964208347627058867863172570942235772126379146252076135166186328861732793320899914873906893180920073359686510924105644803819329020618301825844255793737866067678041836833104519761996857385945533597189974831004227502636440676073378920590093759091825836285147612825604036385347529308911411343457626892299675921876422061793796302028070715771238578181030729237755455613940240204255600346677755759751385555735305768807043659828066362280387369189460052319602239491313545429084754522485380118846329205886950891437113875863433393332451727322709978393117635419105512902222697507982417202917430630874875902866212023729759960462332010422171183806352426369748792816684068710913916281585074113733181163084865972128064689984302143219852898872959454707519201812187467509927373269660665267065536946625710928062648490679291223950064652178748201140508526579388198857780144688401931759644256824909281035083482249429937973744923374553458334366809267395518430927216488956477574794539132787148241723624258594415923690036928727554392078268367977766596375377431402696227920823026862877575132861842176698741251691314816197227217386260772772513816917451266283383460178630974172501571909880239066713722719825162063571352715878674326287567128591090241361192200706716316284785832401431250251178671915771635949794886836155240855399258730412952706933435417075067767028641642898860104092593701967290902104255570993476353944868116284764209813632992619066088561052856499343769638320155441322984980055354623013491610987390245335598593517284393928855562964155981880811864542910191797565109064937195339393909504837019684557051347652847816720387322238626421052355956507948381873931397694084025744923198443864465424975186342704616192863367881489693243342021894235394408939098902083520702332311087644639132033199712243111646964608909286980364778950306439795380552685403162061846966569761602916489438880546032062871378409105106597788966934188177374478752513942534587028504593238737887505061258341451135834207610010780201650893099299152279841425364348859552502580281395696070696138597195038077394676307016707334101341700248213102238882778150071791700902524795896345273299490907277072789920372700120371886978151787363199623587719029009295890233251168846362835513280140700224305796579640624523278506301790831040761034695984339687913165669771352626340517972656867179151136126253444739043425245477675104177604727094294721901726957251115031512534519490252040515814763210885775470422230830098305548098563170967307841198464635271935936023260905220277820371150008908680021033774099637446280658614372414170188164746754826827075537052202148420351299503599105057226063786535948566320843716043903030931426091141644892115089558701456577696017421026954535475359296506217365481097807587539131743708984958345292158494574145726998535712091038675588832736408286780671234198158161609413868955922461907559887416199978987065514119194153472629135069010531883589082702950915702642371162711572616587014217362531459194279742387233128198288927072408086186258386693909429414829357605479201600042253259450028473576823830239507979659158491921686117396163081242814910276434423140667715400135298300085371860694002708824395118209201508979073757861169743560592750174077777615900396220660626496111381616576582014268866503200183534027474756396439357728903555471353424199358559698287785594533254333110897767769702795392318749667296801216646759120657171767885114885918975304624886262907374392621391837215688979342581173120674750377288630400378026109490335983607829959437823347331241075729723888132508680192144563857996536404579877879527747790672670702496814209604399337470120007911987175264811930155624514832638852425225062590046837481058911303986692487009290822782175390546207272137025229264209370134865235604644786317615029328437121830590877417847984767767191104416372842470098360121478186610207903125531923153154408173125449736115359816966754754447038307861462955465720866242138238092029254881287457900513567059824021625697802489638664427515596212709842652779772579221599567422138002668787332290991817422196423049128286365895093174203037500878776253793444092764737137626173041429687352023098010443388067269394065003137756738554107072520987169767510441998108123691023751308873898914754188399799482140237138847605413675699494915160196718754444092107318963918740215600170992927071278275119272845415572543937762123450054063021227769641663481996735964605177725936622722723668781958787874903917646851156515626622207546699986943267382423345559494367841641326832275888212957924656264487606853743283597427308866436805606055606491213104056385892490058134366541110590262980441689848083231855236208380175446739465588951913093759065249664638448669773346156834097890999360171690550780399598197227154968174299534806655835235404431529520440227504291601429289719025415229393575371084299660805130996971575785299597695576548655036467619128113856522565437166405546652686561705723445079514673141352220289758398546044254469774001782307110624659667889304447615446258576309099808422910963598361069234523871800756361046751999355967329055124493365652477510237681355303424258150914550770425741563248891720953985112550312838925021860222674121543531512309919760783416280145210477180309937180396630470514765344398929157777800647639203160879461508466210537314850888070910340366188498115797375143797608714572786641102131061682868902890831966261160587979351101404090174261189258228367336613924058418000092407539831584416616026874828117358654846600692465151089205414806415421668168847939476668322718276190334060474459570617808686060567227765268689657035244162304855248959439547929995932480586305194741620232242806381716212188625177748547220386996828892790274637720321151794072527527246649062313491806770169269246120996398071094849111320936989999858371987682607897248290846139876489982987293975651363219756025804534492090529548508394409375041035220737373952974651395213096362928625096532106447100378765728583302643286397911961385903532292560885564137388893224601641056919119377784453771817099461136647483705067999469476914632764319239161104041002000842706183185002576244617288207760641660939086747789028250051986270524165642295911981529693097435299379191201700529745240066799603612125143972318899246150967386230289238879031677050306395237558351417413567287680934313608313773097038933969188323149172236622307311226415419289326222251281071173573088879742107841216274513612711268494659775710245017133773617729353405562259733041745805123874066682051682476073665362296192867146358842587584116011416627334781453307432464626180398004531342634992801478915466324758928609037114570916775661219966974572966063437665982554260374100922709640421926776853084893107292933413602655063502039050896631892182486798099644444255148825691815994561693653958203153647052732290595316853846205781024379326746252237658045704797497749473473607400705443540203717084104607698756375044467972692846969152222363010410705413939815391017246837257490923380534807256796084165511238922556601089547068999532846682170278883759271275924182677562795011242159010870377187934003273752873417850022408335270104686994290279708082202836269355595296620533322086074292844659231459111999432141435869580026689515398497375572316657907485873440850385382184002329653425103070188228393114302232891160673427873767915239457370251688649383066828088248679501515825103195924135447617505609772541022820566431724392773117073671173688920803426305306847359096131850365100145771659058016803699755714972364979401786318760281852538333701971570017737576776038273189297534439387012237633944901807973337376562961695085045390367017978338588521502219680638790359318837620165275336337310460766573183538439079485576336769142949622319259408596641901946712185338336984906546347625382439251172176941306089211630461646053620865095936381026703935734291222922345056098873823651303838175143111816637171966184644870591160198457580807157711507470083529334561060305274553147548125069309824545053943446738065503384270433244754499961881662049841573213403774344573533608289350769813775832075976125311933135689343538102163371390598024453115950362374218427710414266243576663599700184388100662779604233554339470204046732840403647113541412585353742884211836534242783838522611989399332004409621596249818997148174675091798584968309127084833509976983020702319685348645264356464368691159973919358200420373010114518793015583311393982592013810098306686785165106497117134310243477127437400317600859299672017043658394220477135970316161354152588955447874661812017376402998922659698924598421976232972889916272391448205412530611941726181326759548876700293164892345219203122077521860925903571916938207106521740248512428385827031794764889825048614679363956385533885741506155521191225148268556198843351684903220411213904450295259736342259888283973451038516599804466995362012315439490448684191583054314112601831088800189247366675461987775708558579395068395899947859976509192924608131820880653755852828233759030334869960428398213790424566683742192044949787269779639143247051099777029063150230252646166381979260214453428497220553789596052496058309285358997431157629655449764075083726734297862524290682416020542720420687601611798150357461783239793940697580132940738416017526170087345049662498875041445549991687834546720702604410800115330053784332505368316178837883033706013224546437205202089016787697190646354771695512913050762683989959422399512799075762679370422059511431800407078045074299400309842537974931773318789373241418379422503862209951467704083889184166256187578224466395386426902033479627492898491609548374758786954242937050658997739172435859996264199922138862964699484969300141538615686396167583208261265366906162397841401326149041164070672886816722163856125967699714912090324065480366575947823356768618142340353390779168103552232420005391093291863853432914829588327028786124853981827438822788969403894707763360094205674073404667200758552779671060022748374506696932646418500945406003676892991883414355300619587582323698323695287305343944462837395889536319771397519856772044769464403277627226528480223924361036667281984466385584868803253570787631063514876331097189883159929294654925144256341597632265435379995112660118922927098477423525677647715258971188206592983188595326699060285066713533775110321705120235984078598878377445000265835052874468424579674006666008462564551230302142131049142151079246927338723994722445152291674993098207378646401000847222741731524498294652359003138644011850711743321489701714059876487714135513755792838141785355348226391407635568515196424775654326707640201095468907833117218980911548242793560019628146409900781418125273155845475341913804062181167856580927748183648010659134184096615901587804944705273843347164915863961113564072801228368643344819680071838112847023173433803195900159694138863715775885329237996316765901560898519663236334540135593273513556300945143106547925892968739303382691406952870274374796353716906913680514356578279963889960704074737788007158535538623323005744070479174488040826439144780341597176125552354928120970854481520419229197057456530870161081056533559620780581619010822232378223360626206349905240731357840295860848183916855843041388060869640088543464479945471595493314558507107056858020453420670603004349052109832214594548606234419855983215034642700628000362432181398716685285190936268297633930151211290767242170617510708490431206992932913322458997060050281634949403549673051216919488034059151904364958822416782866956700228368262330227662924569453531550854988584753127796124380019524411822284951378595050672443441000858043247726810207112188295518738747922463347465443136935954858730156052451991523288704551728503910381005214183005502884905327834636437057790209870222330050382786478982524344653755729022270837543561549984189987101379750898936792712415049621036781181858028230372811022646252857162956183045645327879020862264496339360698305788972385961842430541879731296532808151108270096518891047629601540629144521815812033610049576357784997631880692205335232764338662292095830769964061214101758688661631923562054278498620476553083864550307866429997500720382938592103736597867823186201393603703513011276262730962070456225789602733251607147508389722025480025844714530846170610379241836734007793912718821579176833742164725758073839694647537824025346473730253635757271983950629674844412177035471163442558941761249146185141756347942636587653463550950392743758387984789409999803221870588518768523580584896216308543322861491309817187391834185148756708444423243545436440077236760179859243869254231829481539480980370628108410219719870987018218540204810151206704870490618068089798826642469530634697007274327175442667796899443322493892887790263530481288521545576035957181354302029961389266291323123521785222581476809708163028741158528274232587047841448247267217593930839314597200688289889022098666287579438935276180367611519412626092496022574493407649345608503581275561027185853651830484508278830070317644588888379960960725801117833347727332265816370534008649561101689564715244242550102560415956723496880061663296500042639159469471979651072548328525857124072274007700655563867269347969883033906777310269285160404740783892478717835986965658786991071299551918923847860513701937805584769998447927328897834406054645150345861602465567792099921275726743777867667529582990365953352681183754552831427774503618095096331746674949120710602752956827277073744180536911443249158965220622083707795992993754053028517073005125349324234406577403345093447296093235132442183129081427834773379437010749410347250979983586853381599660806663558607115821073558180665489658878373818954272056320672676514506644683364958165943641153917881957655635438277801800934147537343975151989686781856779343891062253404235183809760135596918501155779321626115121531441317463197765512356896718236303602051542723370393846473521578436017488177172996743146936549399903941418536754933502057819600317105609258180491328693516305224784472558209969515921676842590594511499958261335326629287715554474260194257956286384493678146658385754225094700285647134505109596222433695800949014344590514087415936916506714718884341988271210772160938866131381125484826790875119596616792988619439847066464713985392003702774539309791252315386081095068989810816284162275119353014642138772462782158774709711782154810245227454602192258180548242912407699506395975081581111191528415071967128147790829886637880864440245729298495165289374854544942853996533725713955235969792510503832773563069031062194810879642148945855065304264394065886781269604488965512885936475344962549796950022986097148227861281739895816766424267283782734586134271699255960045613578248570898683954362012502172440144925949916110681270670471396053642988421835123389138899675771417080833889580535210269872545723057002437908609127985560767200382350536165265003119837882719623455352763696808982671720833957923476924211594875515626116203495992164624960019655785416841094402283434242005567394155903640433337109940697972324326173324207142498576351663396531022160173530627009561870496929655116597330008556153616122058962540095551721841765920967845904701640829711474312665481067043632910952311852283660340424130523463935620404313164524530810853251123715559911272548140749836738224123573155091091795206906230484096728071088637091511732521073162306514021534807337211297600710550899080815596352585379633814190900207626249713279739822724424713362736706446431425468959580921495406476556166397301586577696528575240690991765508118429599724256591262706540391808110590113094660505116716223864547918133496104119681645353976173982122020938700911266735014012539339172081394476364361673970530454408697877687082202803046783060773424077832230165119700179242787260991289751609806273418525130675171440510223825661332857906746245256218215588527584487338570468143365611228377434435918026792246240382897750587409818648062891545481327336001862015021752848032751737716751315906937554712308185061777040400795667980030432804364068430418032764187622031523360480307546715537120555461998309657899007672218905974053631681272415328959683126493033928025046396154437263856666451506563237183546906089153768635651567352457997732691911117777127850641278798558857554629247430541463713697632745338977508776666472348803206955189007920769894481232079175315024354582233622956589878803738147092256937203982095159460910734399565744574516029953388447307258277594805512815923060098219708348696762049810250474626849340560200228259161127537623751858926881294024010340780843661519657657994566087960725721118854126441753388371860290882450747903253262587298288430830202047630561680798401867957515802163575593421801199994454749563897576618328036011374869829180539166473739563930105697802657258670431819537063016909256459550348876774052542978538852664064123728532283620552190625752283396157803259657257096026591188986599168757952171497832694533671948357049242874696726724922333597943097807619707330590536245459291975151857047929402171529817475950413816433256165582824382102580337796436916664896903675688377577116025314682661058623290558910795539260986667823247191407929934255591537475397244006181413056391222442443514623492153260565776526598170412654976345607158243923416808893254528127345339582706704402039570327081666375999762157409908912535900389817066819358322165586146803056420731237723937132569776347422044014870684749138179583453581411413741082793728908254832112715520898583831936971272059881914084138443161497861207619120893358492712198666163062284617299118216811731859791032364530077851844434494462123436656662441549674285395121848326909831737274953310725070199667086395997142369948767742752674635356022161670822702582843601925174655726318146545299706113380559008948496812583131096152334980430051446946249302333564006877149213864918679125865175430540467788962836524562396490454341092932851238294753627122384461919792445175802389585824171857059977178100249908058009519023717560546737639273112540590907130837430986000072753224893145018155666383171848482287968294492867831893523211608370201662049140518752266323489513945451893732059414702877203640343717598053912438513344851748661769469083057560582812572324231535436322708112851962882884129903310702278863306171996465336279125591218524448247697037513276112549243631159911371005061545225258833785040573085814619992257927741488963301018588182906548340860421091268748276223937116551454480489847840104662609103650323787307273450566461651381012278679787955911876468380881564966836954587703173421672815797636541148972432595192213474129176234170415943296238531360431553495350966679066163447018318496239581580325102731683277405832113884507992780114072200291351886353502026773892292661110539374484413940995873287050772397430650887767231730795856590976070551848804659112349750209025976264658560210785124871603090540610149719665140597873920260296919035804718335296773754417357284702163368769453166186785833001937672970041055517806426766424769162461623606162962320729749546661436288729519040793352820884709398145977143874823351453710698633068672730693961955875782680673295824378534539277205044796907120735725876528602951602631414596019017600725724571246711032542578248784295660423223023340766659119685321227457614310082408837250647387289136702701381108741072323874928413319134795465786109681565320999877550062971893770286446571143218474884645158362983294588411329107619028243710843904029142278206146588717431951687236168411740521985488235331194069172277913440071839241704456500698224688612530033266286884410180991317233425421662645660832651203806163056125264637142162836146897018568969960055982278067120435851379256973763621763102089589669890924092921320484879263198100549707660740487857930761308472479611735291212992603008189195354487552001688886148241754046994387868359272593595254893960788459831591906075353005585130932774450245317905553436809189670769641131962141449026431346813193939960130956406555453043854459372863734491247964451364293372091961852283979985315687345001230775740199431753572388934007168042072681363686049354589458382479090038439205658939221696815659753055122461956474880307793917442077606761311448258293138953097717176966214700028890434445065664468405216109356802745086315424623237272805322846181247894647037425304770970593485749373562815952166439450760445047457954313126972337762859948548566692821541838648931308537883223830243996434868798726125876078007500541639617224675343383403080951956390820219150133604778255443271738779362509273770142623943118337525175110834908288668401789008115172868472607459229070986897304447613648514791369288363324013942006820164019543557594218280927410454518294474847569799482534452986709442989304301338588680126929300792760001744990329024475176298373422304333938209488659597815478656433374477526373905169262972879027674597872181202642826087486153896009289420926478966410620023117144000687696137070327533508422897256344389270483724207897614542265126986976882207972476850967473811702156947814857839656995570979515802479001861065152155385457018251721681356217557444669444748312920441427976361175093449227098372315436113747303788563069210033099776998933149628073392520254068809770135257283517079196636982166604663111856393658854991081332205831211229448861888347933409672706061629860379385746679762259159878790975618841818293616232288431660543633256740709796138005055523007713870298732726901123457370636027371187310757234367378956331082165238983686237277361885207401359691903140981836948199295348365120800290719885198721249070906159855133302397696226745890026337394695726867750000788048411308325286332724773100083776641049805309630860793092756677879345145034047867084155291004674508017881780108769010043591237533383102207047299980631457650479664456461091740282719906812455978164023614578839816532999293880369239375611676114538757818562306281013275105879089405029344956249624184453808954484898335197332680408280419664478769769715658624255145561436196033264148536011906412392853162017686428202791821098226865227100131983268309795574022197063606431389716977730938913838156161679820812224038085994590253984900356370708976857926172763777594292708744882820915715004585200508263705019046562700339567200995706467263808612059361081665127424532022557276112659726403140406062269075507833351753787104779123907850583818722521712861009357280098204360823678422814545322036198878983315383724856052998242703411817192815586804635573706379742004017273051930828644373671417704596140122018470937375306439354558578700637989510227862123877216238719517265177620415655914357078318763331591854371925188013848351173194489602269227817976441650909177096613879914223505500456295789956501754436499137934582688175874112139437103311239703751940596447379788010839157064918241949712678820304545903857809978135682403446403092682850793072643129775592445515805830789470777946643361168087741110309106751169049199631017551922032436882775642716562879130083559778105210829598260683278822854197647377893758407236177120281215667446560548669516686015215431049645561388282080914944528809656735228116338150937889131748913099823322148206616149593773327658573668691781939414705971557339108191378987043230055978544195137112213835891227368289852906049741336344890819774991042276345772766318352789662918878742171914009216023929985020123325605588910170951934366427732326544515747039673516927712454177993560597414169494993695696311801942499275467521608603614944062287722067463727529777467537188360557557590208557055633640153476661689395283391831517274929535662671578167164426846217477448086989383749455903101655502963549339169705174682705472239591414112933545650588363247305603177779229569712101079815211675754883074241471846108469095132374372369216648461766974394132563709052709218268933684590406624905805034502370395340638029971335294187474567443202711769672527320193515212581011964280619002944789824587739861773102333516990771683998499349966420015008760601897005274773873852208622402707334050746802875633921746967876324050012785576000228859936630060550344609640033230522417297335711783181412932579372734550146543592485112789520359040747662531087796217483956222666162998257759365358568150580555901645752900731284113869708944272848542529399661171198417533582905863657004422046817319977311400159969830759540844875110863258723474910661183601210707061657193482013453882052307232336769256189586235357933671875519172174139151676171811926070974434578214019961444515784240196057713519065694470801580997439057139914350112500681855760309489202082812991520397348567920450944716209348026598848269024128447328576024394515462850234455876643124260176249551991620398892873233810120334142680980931777125784211044762847961657347567722268663666816838608427027088168034928061048033229846610826579394851110668456889545634759103834672136094726703291634351418453850889064704185906165054352242324886000854177256230581837494116136038313334917532526780599451666052838048604689589591043038174971954098267498258681916260659000009488265599330462376524209358982273029741227172263570169965313030736376344328204815424751944496976814620587243942737721286038800257487894762753983048004194796489871847860086727119732280328306516171293578910707315296756414220587700130542739846555524520053144989311506020969327542103603227977910229481253533250994798370802403503821677756983919499151614139122174475927646073416490140537012922117446498600040929859424201406067898364004920963699606098263047881197851805309682982831430126600145488089829005295248074650112196292883463979008400955895022273740971281470736683450041689658309773733627739190887382715838856883998367452760987459542866072343529640756807048909303245184248034272436841630242612935158421563101279608263783444288997630802830725848732322223393545231720026472959018594106760137314835828467795525437962698973310944151618226171526398936306963543081440046118530344386999732605468674680198196765006059021304575341354389176881543942645879147129809511966868599789911030645600561229560852631511905107858781056927241698586580436944633106004904072652450306944550500133121860833609026461063381122573670956522100420072085637507303517221450821043906550718705386375769838465338584583683019061645158677876014972901113229070463667119855061258235714555190223526419813002680238592705847169022654120293239822919000411353712246268865300781514268914793238789303487512381927740102705882333996469032799453034121325407759497985840531260821409123292889941426194702246178454248091096581253355005606898629063999949596073337547936257714935301607324044689376953468342702353157732147244476300675164787620718915749353288381167082385427892630168174698644534224466881732702643434724515236471661931027049207363014514371529307781751507772584946833142872646879973024461768433349830271961903246170131796579765040696807768215429320549431031378365929006868738769385057038500013555038783453964661220034690103419974516198900753036201789054871708762581274146581112369995430941113154474109449461904207014482455380853457007482940992450298054773541083503061768556418122033113942781339130879359055433711670197232249165687499862421530987599678477282942739475608976179285085541275043688100307736086799741626393220450188229500160167088728323791352925502681989185831899935621067057454963668877111114303567738065375076890161323998210671693751159839239091267268951518649678691957408435140884322192436955639789476139179637791733429251888539443881731639602354958843359462679464389461480003804145772655254219402535856266519858680545904409197055012223516985058339849535395370190837384499357383482977548795204540037922733127056433379345626349012137408536546858170816795965031320265159370698661304504527555849262392216062788974518655485564258888613068522595601834338843426539690577902034985194601943797094736093224059558940246969247070665829776491538232369751022770954005115003102505229447993443277999371529644323040744039161454557843160187447959481438400811803973134686919388836496693345803912932268091553012640198233261917617942320497524372409258770623916680593893255130388664453904821634107661857587237302513130637099956302099328128642023776315288622721875362740763145571160272381336304385810456771175340639928322743967860807996841564541060834522744471679772888397282508218270206063599818849173072693975611789683815539499745688528239568219941277938885412263836618645118297317133820770871453762748040770694754263121006301098705643112111694707422745801601712680097602767861782797817111214514911667464333120107068935084592452995016102525639616164930246245367961979302652946092943604467044982126768478941040911690078932190537965309633591689241268954646728947667868770991402729715981061617398764470752840526441887183092824135107790565404613368619540037900825068519091136523020458749743574467446593603213703431437292957643745904379634186262720005980605153790526346928812692815295775855931860612822384120458916872702309908253019868520013873881814570816000236287581930154046876555816090439562733725576807861142143183282786332988967738998587127322846854731988337438408897790517919441998918953683287577261934149130006231882075647064752750049862156722932588461758881741993621674276575049794423622680125952463806501232547971055909770418588761129905628117149290637005374478086442649142933696576534968961035406505624696090676675753675776698669816359793437434368683090252468054871770895168488791327126336198751838567785738411570845265248793466835317769635913647277698111041481116776945160841461719266407131942683201210730740239477137989022591320067359204260829711612869912461125922597435605732536632719300444485810609777305396111712490000292860700971477966614443847040045028108927692275059481492078501320777684386424397886300609219999898145080629620271847844122905035627883934680377858880414874395442541692416914752803608177192049974584080878184262378824864392445732566675928938646698827816049084505612806981307920952233079009728668813530909731704405123470070598814439461456849594801657326983552845112421090340094450252127870858061005179823354587981639682614744854977819892468230638222632076062266933896866897970243056018545612699515348858882496910634499104390387701912210119686421480793818716783403167361687420667489845797487547735085382757583597931108404027834853539935178663404552723835193905040792571980000410264609730668356384169362029590923075551964412700842096857829783336232634308604429109153434361284167678098925168000674710741887003947357722985863008561394422135460685204919657085724947019464897223513198955533573017509849098663154294258981403944417366956347755172438218541291084010551056522790416113111894676957515588654292356680559027671692292614609144186834684304410647462025814857734448610604550816481910330519937286721361091178855996343995220486732812996107524167098941848881581045365026523805221790226070688347987448367687696197455628512831465939552128020987985426755388666307089167794941080080763630288545046656562370555109480587932176223769674740357145967417313727115814674221623262125486777881278375318742848988506561528939498849867035792356797898444682815167143143619809130937338953804822105430488244981204632012483459438954231271154483860589590644590980309875863489378499333317297493210973781143897776389256920306147334234192687801788125205755553531172050594223483313394695706948363178379423082704324641945356951193527837279620847200772373753329628315942824722331822576190068805658501301582180208532360023608282460182709810329156328891143843738028168716873757378977397457009701144148802011843155987623453513465635853493669657660846913377584083256057788690332061443062516114468006112974414817954562479260424641825566990347185430206065352469353140794909733953501275442542597613432117792899962175569674151369649878842060546785319617989565689324188051776847922301216344808500253462278178499013194546023557590191444850842202702102103230654400208247292299479062280030977968044064571716838685788104531703589939500077363050146093963926195290792189775501835961022621915913928652782390173547485822114749031108913712020477911833222345732021159225418496797909999983474418611858382507750553780071536758052877204934203689554404530092547139337991701490539764778450434738329936988710174106436264377888969937020192480927147387940980011415286693505778807960318690048213751276855710731728286507190867211631585910147357641917801688262424250195800647639144862346031673677202403375202282541955176079841267744864522458011865007266732259813783463024945218788157224082014600423709947404622082224824607545613373258310332659500896144009847988963043527118490107714400286656447674835842522171060966805840383098317068125121857944408623078506399806422985775657009484235340859494042006946514669359606861512388620607291638338476529167635340541251612420240031328044564029426967453189620898733730869471260687376641390240520746686556874675409117262535709110391276858009675394799779604150203257723618749563975342503432763421139327995290660317713223127798232042954597603710818625944577256736292508674904273770907673356903972723483203875017564065488552688114771535917612137307935054437285372270119562743126375673873856535924234252179809597165783309019203406399155447013321850444747153230927620865165535213234038555027987992406797874579584418457042417393385680574098419993026110253839684068261349484166425462279206265411900610408242127346253245865901557352897409852557369051355773111318143676707087616076856246521500680344935654123631780631244923844442304378897617755328397297585979409751711257539313709173260310573922200477175744992242221350937840464828723355227988889392927286975605937657043992544113900717992963141276380206300046856330153006631686904552961924251590402633829259732707675821389448557510766188596925178148497482792728542741061010505010637872135102539498199800949997662774588600611259939455661795191222523036037714657791048515852559015040671167578782428382921708320828767793408502888158070873004422611210764173285941061845027062541388565989121784270834941388739302811268644148568229826561878142091531763547366683694628921875316838811289632896562325380773937187673706935971401857900705010919327077757232464436774634369231782301169615087231882414960389187292561540816417153536012522873899535362515449548715851515733431974587571765426981886672484137548822369714072168492007069045024285313128425729483650534111397441549151258813782509066586989836936597126653081292227214852071033228045779427188381000376123664425555864432317865857493145792742507685920387977522222371304217743155017240758248619958630932849980612509860255519793324316645694787010600250639480656311559154792575778926898975051639718878149982255218305978913886497752961499008483156493886953422392850850026178934527916418284459242551993126532309557965634959662221601623091122933236473540932114671248422813876388668604964232745006764111938864161168968917608313208637664328409509581084214075547670776820973421753257928624710607012149431682493761725613688624850683916087525318782365866935807050542540615334106075429949176060754273649126203589104349266648889761941493868331018941679163924985918269056052959055999499913704181593876449758166124677847770402042846885516506436012539773695490543524326320336112331349844943766846969301991660265370602002936129747630954206697213668927725359792645392809370296696783530124496805280326701528102290094670261533142596704449108691931820918059896543052466924617389627747051435685002470329568228605392264291282139894665150374092595043375520366378431247115522792674681419396022728337210899827457755583880149057852162112546991901847860321489702466366494902492665766650031151057374695935815293783656764067574311710453630801174485255477082722409478332238001771272454535038860392558278634736963048281750882311905988848522025681724722162176182449526367546976015858812433898467808202255778549397340189420895317749729535607647780130820980965850538035336018162073533074655859856841831960137475240699922188152948979990464407455464970061405653167232500288484441458862132809892552708643786100730680890945027283154956610321575497162400818344115974211709546564374658831207604253765726555982772783757899451099489065339741945321246801364458089865414338621949400504198965104084075044918871420104789591005798234982119513774440757339671519810565949204803430547903363252964403973946740754103362424691915313564715403537000288518379967126863004405136157855213494133327918066947895238955081586979044873524725128860004699455686341026822442692091517550793747114270154393239850545645491866998205384239174258144526939928923499255127345996192816675561148264719615593788397136138173757303500777800664104576693855159944710858546550969405784600116906643993192075730694557225362859117981024359455112786907803021967745793052142419491432275439844283008210547056333024107474928532283211227840955770336221967177297424168801085188419922810035868484879152130751324229150461659011143405265655222599219723374235698008503706982670944019542583192047161867778504734707630300467897596716152828546258741983101469596997971253786919090589413112951087986444100468876896589876158627331753358820099462089591374722871358570156521910061733478476959020190788734549271227217892405607674606450086481868251081409602154552627603766531645349468355743608678878362428812555756120600285447526095573060183244946279521561148407186104220021911548568902558723504360402333096058194886807325034186253333012538706498649138454346460790205919085478965164143391569923462388226714379457862016282096131548297505928747232100003769459350980494835305311092089819039536684006117262054517640287124335802678871328987694163928446919414265554638192518256115081361012041436356630914973072232916118304193662298909080396697879106409735366229262778009882085040051308378852801184474358395661932952225110823615591305949266893979589832398296297091576416287837295369705673192014096777882348161992849994122289657495225198619804136494648013930487746047958299867948058466694580662859260837033391278715889786678450564896932160609994831562880581575912939432316851847664074937235287523297174594101283397496110050519052683848682370269029428991620885927045647960699157902319729076942048868916179236030787422975053181798385492124495111236126195889918780988547638237134128576503100598218387920106479411673932700871364928686855628777081950804190373542448012690422622752452278126485519239219305096167945191271362621419601732911797185998281256852157190148704869110663607940224170582534817106038535762504572733630046291890555637296945929642516202295722625915398321988247998227396636075250143452574502705804306031108003282449865470738768192001087520354751844631174448013465727787711645807831353109886697447050761804695478159255255337381637283493862641685646841625270388817950710267668545825040418145614016502983460624212693925840676228634857566969507214799407435928386979607682229473617980465156818481831444269910393222181777024794308242576381853725979914349521535470026724893126502657585441200112957641425248982862059614789434959718994167632480316952321248986897375683600089816481415360409545547008657902888942411149549644028313258204625446981891208864468250981807063414784155286375546606307460242040167509170745572289279012851884242498493916389728417569797565255087392752480973495690716153226626084514169828315977535045370845371517057227996731715557205435007498089605376853856404990735316450007495047746303836080577492265134639892743266325106025012088186635064930645093138521831929880620474118263923462279658274929861113024414912110121359626322820665658589837129509054877252662349008019963429255218349232301168133979705793833431544834786382402961402989625602386753033937941377813802226385919205862648778250613255176245552710448751816849777718379104057287809557603660017045099478072964110530066501002873896729264771330086759974094230119247340082133162711879896759488726302119518831953806049912177506131608254005940862721469839644105844417478059607615406027162703522757938852398385222188489039153692747686949343134321951728987206230631769249239101619881218078634403759605091817338796826260672999723957308281692289797262635510761574242108938624004163658180350829174026504160316065526565009107651779600962187509670229436462809941946868593622270050617968432292021118327525078610890261767820988208829266596971952917027349267091748894329332958689911813309887682779566082440681306537396708129635689328131247795752890963700266257489679073612505047463282139138789849107162440236725835379281126834299904396397491840645845358458211907696344899732153382076039430430600580049278624012615487440568078873904272978822271817571173196951936754863568152626622808700251410651138153979747402609153498252748426282816826400935276836555430238254508654623265926965066466861301128312438093999659735077675316776483816601586693900905970744618447849671814420112469996009480472624494539247808369418440597593933797683525709876750949234632763184105436174444647286242633113129206284653911138522898550131637467292566542476740586529939797921737086920928325701393310920460633627338575411411286791367043399202698553180098019384191745292484318574059268226792812471013568893033558207019623981293500740058668282156159881209326072093484969809158119680440680987918763063042981881404682117311175949323310766928881561022040293397227162338669999113765339839440650581590265197106457123450360120937524939161166124798765472250008153818010699130167713910714432742352019648815988144348549918804151874325457303517694767010828700071189674471321491033800996703139938752529250806096385616561298949983825403775057503199389764167417882827848162613650326724841863510874332705534042697310619905455711240920922843621152737604233587027726681948181882899855907776358674529079734331905400750434287650144305924527162227497716432516055146415760678771350734327638837092716174734637449133286324524946902112811848722591454033464559460117266643449861477535878833558773411271373984498073951011456066471186703745492603824140434756533677722594003450048862132104380794303513838788060841162396624719606048866124006206532748802876981257664890886159627625315327928811301288966831566454594663358869697485194489518980860786298926986162351323101204315144130462951140539674216708522509196268012779572363382183467400466658771560245256854322970733051977924707746685904055959074150672734132270443480312280742122568545026761787867596690346155727016419608867771485595018035187697112388378823198766991634359897068323728327754669162772531347923818987826428351752395835806444621003757953277362781349496914053206526574789584632158730419604845038137270738961534871462192554728067423163888801520544797544711460943897559363539480034407119554590068298188680547045005156705468000926154571547291974442188171597615746880104875808046231206162128263793940978074600348651539158880630848146744589898087261474948847373299491340476563626795623479708277424095740351652455018594515866483620274921388647446246127394274924663144133148295615365798737576800596687389191035390743349813668754149985792465428283141073440091341303818275718754850586586768938405134834187943858948782145716056092778945066857892553910360529816676541534516467740620716400313305631271605632250773470707815624165877277951363522198814317421502421809607260833311036320114835506357122274183443944854226353516342129403881826781507176173186990032818435009121468079215943138141581502028760607685046455129202859352319208047277529287947923096095415884949137579899543175424639139552824908310809186632414343707884681079022119713231229110618830399293707417953069640597733566355493952292890507932734823781681308187387127396376289059860366791674538169059040885062530204291643919718356299146293617050346182675984196026642939775918996945198246035392103240576013745183041616946699856683354530261703962272601772743399790937620682365255443632304798015905434963570869317057806656927242491543346958674581129617318349748478512053966164079058834194469626015770140662492212073730585696775609948369592919712422587066996919436311353509721143569256457923572417228961506186732121865474315932913629323493400600673909070802481886275844219526916614815726562455519696685702073929618392204501113939453073118734115219516909096920226936821036810533613002460403889422477147813734445782272168645731948448924417956715755891455920703969476668903494306308651794595163878151508875810059600005495210885665738497826104191665591070792562639295929652004628673162273438429178464468881834800787650468480854847108725073108129513386131583623342686754955213075676497270214670379872228023981803829717375053601605446298262463776787310352928912641273790525141210178309878000578797552543832687515484125916834145097234640154696190744785470313232214182145880783272914899000626843142200059720329780834782569018571799621677563836609866604748096906000643114565665733961199304374517283134191017804842198477818682314171894801620101802368447969473801269895721050590290089703910160514888502490050853467502743996685417152657308154272368401312139622006631773016913415678216970305636907225342614642769953050823481409295553938776790928293129383782751236240847664654292755266139848952630763851710348606365447799595199347020628374978344025021360882693996284599294630686179000540128782319325108992236886395277165770698353649627735187387351114811439469509092234039155960272321383866434469341030902250838480200991807091607937423631936750398656601829744194069232945273797579573823216302055839206432327391809883656600247271874814432924640060838522855314663104440292999356224537676133946556038563856826689799571576994847752990903719262504300996807057626391897103906966653466728412369515108760767519729606824559172415680903190332534376288348064162220348572359507141332360692193133797626401668910326524145578552509733231410488236960299976564604057395483077578889261457490907769570400593514929019437368327953522900689246578517320507437260807496584220957162429744838834451847872131285477219193063504687393161506705758235520687502609264285865864198972003083884025530797615878527515702078722335629311642586546807801123972548028034444962531541176016758391858736252076867846328770034091604137060117143380357256827713248080450540185157297500172587063979843681487288594782114535328449324486818657653806234686532020144008800165120239099111433174981769491872466244052853942789605899491699790697768258898833081522731350810467842112205153736859423094746334089133976496514062619528287939015564055812286413463763932491887631051826474774228313037958614521521943656722282195739722395580664817568767905344110831520736173324333492945554862135853856497790361206815920216316627236909340396213164384989487268453015235908688228102117182449651202284518539863133795208730376718592101064064745074524576133832406028923015654031643116754534716325213089500324766301028170933129332606700764049926411358601396116094671620126422882971629866552281065903940224921808527991542838213327170267060595631925082505694207222900490842211333763815130985885005329568589976440533448699433829685437031757255114716789430995443525814638691743883707067659057290423945038501508192736025091672196628789291611895583975335247424605588321031203809590252229737317430135276993805961041610145041988261571154551050449780637070536491479756344498791668013022854277296296991755142073295705622227272191919529517963467992601752069214267157451516183919716278017032962633282258972454786900316488794884523646839943954738411885632729464624785375614617509832016633564712648164273117764399961348243038682204152954324097064076683994890208180815274064612884031895125852549935163280521395989097019356821536529567003426601841884614652576260156268553228800561460941099635262431519956841338725510509158613541817429066422385110219898100239018077272614765289138593512017382328182165399238253413807602823180439012740116087206284536819744045402429295237170745946426116046661912202126557804696400233268144178947991568963340978586269713668046299132572574141145914081901067614449946091674208820235648481874571942516987813619063338674062631795732313257211162850353253625398170844964923368993798719786596170580025547166687186484681599726012022382234675363154773044456611738153598447166081262114352970396923387620925980332838252619475834864411772292359269076534665975582987727839228636007534958216590828800324593764470195194295970014895716266963308552577558421896067112358713492059494739878237018038341479880338505865367706646087704929477871718656392662390214671904840470614655363840875420305714930559482451655230650295395515254410199646902598262453035228661369117535216552866408822886956802766704709282169316907105583918005849418708684730329067202401230471790926618088221763337052634106149973568778882806612413916798944815761985144576080529655712720978227945188943283262550500886423724691522666359666577952572069466438378204708231668089118493776887413828513153475456977914986220431675115864490969547759690944921688389821585502600197706109036942157299133863383492624361168931827428439260000464606030241658111154617617866265427866841974486956081934439808220626518913765206631548202087094468425342666696633266963310198512987239950358900014621330112834235093907566897577344554355599997108364272657798613803264699481784888015086981588090849221516001345993325992041294315218214693769250243050065089299172764231060985390732114027062893896684590997388479426533375987691773129726041836039972406777143539389440696999277190693088852886719688879308973121758239615297994775237956558808508921079466847536732730188531224819459987971474857731939207556741856126189115464910260845089980073182671749531307657856855302883364980457661831381937331898923259678912982567022744270298739817139339700358944778454809970349779896124651483525372381119867849874690643424910094434641224542430927479898897236196851385895216723764605678843300475324293016232998449543299536332949632899350494138972780727024141234284164362118860864890513814935041673426302783124793818740957991806534268344159181036750488516468320017382130193547846147108539939964716383688741667277792772677642597354971351336470737497411302243836172481900792982825447265184549891672708743450187512960104944109664613588022352846485355742202983146069100644584383752981424874213755225881125795874704065602964366448138642204562231392498732087936771715064123973655844247251167308661940465011791929583858915117361836222216846817680492240729754128813155353078216186469741711568777961160953286706808176632694045583964762449834977598736185894441684977731509967739958006956318116405232149767677750178103360409411001403326568029262577357122107156603704843626555714701538818827036339486160894606859898691413091534889493167180883253855455106771564624822859022495729728183455850153461123142406958550794526880021609137555335402030241376560585849616195549687232455603112264526511086984474711398212477954618492099106529514325650490844045860340382599947262535411012523250439729776603527339102733380500478975898629544829154701536436577484431492389032582609684827351619521069088434651287162581726953629000545637630732643994757271744710683243040069208350678829540521152258458946152210961219385423627473175747648721192931982730523785646506429777681218998183245894856859889732617992786548275082544386175536256544831746062260613318161443076524867911938479020552593693904092294361589751655990201170017066836574235430472777188148858311575364203510162586872424678680694878154598368398013149926599532759292306064396801095911201465110549942313771945508049072864779046256106299478607216703884520391639227238493675048660785627080136300108404636333465834740831603765045876926249853968671292107380205570925873285841712461459342813652740248708473863984133514350761974320029085075811907859757963674190636252784548782908158712865218329281498014732196038107559390987469347061924530868415948333249466139008701306492209578612019575485882153009074917207616032607020246097318103684358723597570279670522845311773863645183960633637527958673309100508255889568669753309236646336684447983967865824771615698716844520922345559861074714861220833477786573071806644591781401975798176315322079841609175778655007047072557699319434789770085297227157553704018343246229867116020951625453036361179952762201444136764975578531386378262481333727480149969437810353899779174940977837166693897690518177846585602202070440664310249589138398498505314331779558674553128570007431325067340926169300560429419483537075327186500201623952280183258997542640017948946411281451804428582074727408572682886855901949223240732320694257830376278716237399202829786029839325922283640297836396938859643943413790276885957786000631603578803789645438670309358626138401730832801763201870014754034140797139345754730754829306594329371738501933708585370517311294314640271861211329939458645696873074824119632151164853840565916734398894803764340538745615877992930057676695460843040929911682896271981240306390351519055626010213278487774496965017956073165660984314778057986947432063131489114329159154580689634777033807272558201412430380627857967358504208192272420212945574941979856140641997238619779849132257604837411452518179679505969715502382650466607631276413752495807168706792542417883581236176011192797957543853134106539943741892985425616748982996285666021296358077057163489125411271066523908046092121099155424347015602381633592897192396601680473038767800807137197783811098579301753329761455938529854968497835143106971020783183236055972022488981394390322389089887659968605739870148507885092800156466564574410666752858007549471180980182742093582146578576732284580110841920020831222028147694329586045697942961612726015988800733217758173046186522271823796776397254482265896206266792453004575729194056919920079799254812146052448262860045682343210018937677724817996360660783614226216555920788759880698028045138586341132847429173922114806170277188843873970742879280002601530084825600983872750520337018276969610512309938103483976463939573688627492457619833768959321163004510754944990521484023958528129920299582495175323676098128111067538137432999085501101155424009145059233180025399527824811817776484608237944995422200127693448241350871955239789263948328563776884635647175102224435029410901805920037357420119466604079129490449820601120843940921995055341673787044452041133150554641433652132254211571192187201777360291536891804374038025061866450050233452619281008952548586104954665876562686465111998973008805194084286136033648062429365360123728924467472569491205841770166522034010743269467772249019154015804525236044621555617803561203359561215711274512506622262538200751691110731489711600112756191304069410058739534134886501271663410008028048739363243903306489469564123497938115692393648884575841214758117100336106513406718710251463183461288384901613328150751482030914174932426398528436183558403289983898355371142763696060477906209646539350531136012330546648436327676521613356613984378173125670263493332532317632373504205910792573695596006760508996536668483554645487510160094678409822100946868506930315280152402197462781499163835258246926178544569807203594365997908145359992382917864749259357392576241638521055025933673712024491249182732881197836290762317866169416026370623034290967721041336230332025781757531178564180508629891685704983318523847592833689161966602433546998015205701205055213924925610609079124350211505152108506358007121577365031286456074016491183860554490146479390992552100287170103623538766732516234011568423963419413630096330376964339448367209251194710112724737621114548717631339835215147479655031315286378971024506849171822612839352432153163512519884360643510873823773521295161211417331295766277296605497309442870812051277768152944078856789318840447672138713253955025866252475770121711154619762286025600447534666943636506787346855393773117979280139504651534540792074333802900002291954334203184250250209326856493724137899050860777524561294838232941934992048378362362633328468155269929663318657603437512618591599325236033562744398506079439060582830014125677729414216363100491555412054775870060290927179318317854143707647278078392004227189345087708672578427553645430596617402741066839849688876759091849722303561658080417804981247314410521366631919550465517749430197944201401538375575499120511528057157790607253067535333553537106427181640487110591338134146362018667724021725461884035556425673456299129454341549762090339990352690753352292663741346708047205409469874276768037725289020101170257879191909546675265471068309885721662549850298163608339103990489255713661065893421148082057636010594343303228484713986295598563518730816518033802428853923431834970566184174447729295776364576434635976793647335354485724176541964487260826333137728426795212935535667801112186249529748920659127053772267267348431926384487426475956144234782668278411448540496049530102423668212988613510254239043464590443625338449490092386022486441993107243639418645352829274889630355253936479256771298969901271343215218125057017998705067079592035633649189994007731389864689839711441614466671120935512215034886609243805886375252281898817346197628339693768752035044521020597201730824616355201952228894830782911328544640608616963753987876561147737639384685216637225163356197278051906891818289392118783078967793513407520607734054374441606970055357827796355093638759311813463466756124205478536936527984042616297893234259338003427104369018690975851422062246608190698859621233535722773252810245391390556166317767879174012787345817285559486335061322851673425350346950578634858773586613592605837264866845655171895578965873718856895658118163475740550571919497957441097897520764985246017295517804252788112424566293834079658534339027554186060019158265283268449404076379921178041924722071068996172933020619952334753170704950108460510576816620771506040884971881303727705512884496357074944893402993190257026736170017715225218709094311189146050605326102146240796520575427312317662463319951325210955250196835116508803439308989490730686395440802175426802905396011866441127745281097014067460931769002365205808980733458815543788597730047161478933051687197897226836886548008015827485748327276278378746238897100198735039188944647403323692077304948128769233546011064713918487048474001802340918410324784827113065780860120298419426953065717021064874299696848422356206170982823985099732262096212642679849983792624839387537915844227107633838335283881303814303595508862277750648563341702613500043515395337336140376996777918770446347692957229394657305449478979272882885663342987376665747401551166560795894000367043190237744299762882360797218182801715741458402470830959841052676232556557473370517796018714227805276311766718028408743688689419688068821323772690623372357282535452580551704989244473206454941326138603891649512170310487175947354335357369278871359665977273302182304644507917720784246370708803460555616072251988645152897743466316687803466246216895280340613827186593159988840308205422407578978967409170258876616861501936278924989034050927468150130815890992070565867780620425361799019305355115979140569475413484959656299518850521724859925141433925246582712207769014755308808714581075234121731149872981205592486681223825497643996555971513448211072535693917060237230733264913304649551074179437024524846404296340781679993146180033197088105172499846703144328738021746785332352695562589894861120023363462331686075929756191380782361114967532258459854718347460278072343618886264143935756046318499678479432769966804503432229339927197373025730086981826471734064081861696812920870736812845234617602506652281071041675979034975453298043015374665311127452565764688400566672823054552638143972330727361613602020282387611385392943069325029625925160235794669946452604323548395761261695455342574958881100723359763121210069874778310425452474329009625967198224007063049468250261874053317790710751780177024353301043897225220800997295143744908239364825867600657109188310329022574734969341671323186152469923515697353835728324507782827119154876541426749219222398962817475402826650357595850346928255463055528457917472303619804815076530659285111294445296074467742450343425698048525148504674293039108532225842652317573242342234407776458581377912413173587339238216701076819179585451812510399443075015001670304280940217473640868785268416837233000931701102877004612217027468448978445138968981021081530641620826499657540698093036900663219119765389570582826569157201797924040240235046064856271476302678695265928289883067623660460357308743435903858753360788331190523566657460622962607288413503204862248979480153905012019138363456841868027938801999952490569632007842514302797908378640069059022391649110835686672404666494510106716750641029589972579566681985847275051396278600253587747399995665236910957090117879397270747569706736460238102063177470447636889452063404608214363701516782692112701228846703094486286948382933123614924272046430876233898787322403546383385092454823416390991214909919440208423958726753361080687724452538340023858613806901426791258324511313339855252285056730900969678555587861532555316921875499217573849774849819167541067085372824186977650635546186220206650473246709204133013866466503352193007675978537554148466142079186030297981366319823290960117454759997109150073446417044677382115542769956448910249540923865001997643198042325626325919636121152070020956487959840204343187339735832906519590829995000273207457922259038419465607320164528327067331501304742773302316342013268600286736337878495140783303478673962885535267521896314105050929035930655136346556914927920989859031220859331901034576415800668703423571152485478818200906186723657071804546737092613574933656218729917495590559497500083920219772319607434678925308892020182632239248416400292897906054758877296314160805683539257573262277896359882822848073999967001560651604811509795239529803631142926477480118938867246240953169178857596300581259023798711199590567612820233461008034250296211192029146894833371369536585789910626223000323175437569569317051576433279009363041298421787404326782768500146581610750522387575210548305733123780191026356960054203284708781313056937027690556688751276363061092522444385294569426481255614698970661565272645519864403591164194330196385243583277857338064254666736365666344932052297456879256572646915812232957596908718667280789490399697532828419291442757023539796540959670011421752758571299426280758246615710354794479391535409706073769349980521951600005793733233635196493771163641502722467932283913276433692452753427784999192189023432618553992798797157332470506417242232774362661338447920995821064099370592568147821626236762389338239886588023669861719909083032764056843793809777651133228319235979226271773821966922466817760499507232536795589707915564619972633281787403815077821287288583707041614098447698062106387565756989313541106747250577311294404396515601811375063847033579491644530928085464157209319912951504644272554894590313173655154611533314375415736017454756890736915053602492605614640107158113505934684535614146726136674079227117554271794040864179683079238222118331360272757758316138102350621967526935098952848069402451598447976185762877063988056215285192673540556851518190557658515699628491607855208198355552657218099889100284074688933823360871936675940065863452769384507125465683423536710184019377703650126216015332225283145312589390356142689533399668027475954392324161000937762878439135495017346777885362912969205524803792581840077992807274233261116412270844714632606049389550714012079254917237013821246831775837157767902787545435659042437128709895514205724539524157896919919465026655471998784128604601043309577159210679460342858206523071622498906434086402012920744394089685543916855234080135311311828206755233026263184437302499944776088271497271934264952421436920894081194931076746563679737123170892255202845291306910770430529549640764225975512624423643923062854795494073578247340254106104057654532476958048834908295032607989682718831754587198334008476346325901168394039612734782895065457782394993497329357194083985289889198439931139917404633615713476967557320794954077139572499034325552286282882934216850925904919341910999934195381958083156304709225685620543623524239932642174636311654190664458391112695142938090328631902926852867599110449548249468051505617700235484219540500844612373263389844065984706499151639680286612341356556925946056712196530398265062461886246749118516980182606523241218780572163320507950205108992804256224923054922886510973428278576799759167806858993909337391415347142350881906492018971151623377119752559792921058887716648347381020933287772749857843262388559323073683168266900601688142825757411581114501277400507285969059767004791796822323151471103795598448211512605200705887741617537975740203077904849606470072043352172673408212988772024200357546065803227159554817443416780974223189733158162722294263726989196158180778688573213452544049351611354249242913991869156432610914203336535652146912394720918368347580528381447042603140930896782973580975282369203604383209707592143379449846071803561420273643960965540771011620540287243601273078443195999121720770501934708909237296145905682921487254816821005003820751716869020702218621143235786198021621940861754699544870019166935484135432786092387507683650925902470837508074705205889254044220256251621599310922873180351985781123073383019610551710819542307836676931185539024099381513563870896845200165132595291853704607734638181639965576017280454627978296528451247853884776655518659250830832940754596139053092836361750099536925779580633452233841523291977901532213019297726977790140141525537490698532225837667377438842222502650051069255634851331087446059852086375051622873239978942824747883712292854365872493860952725880243962574578825619808611793135164365365825573543267843688439171702178171803469384599363639948080768710399936087075859292311651850417444645033582929807022705361844027521927553093186004736173144671060742724112415158520036024443573386223173192348848235530248263229034414277023444717704235872839751873196986197154867214244528852096922005556717522917620799840244052037579224686980841257098186945325131061735009116113636771678930926697247058681409719768526859514205084511828818834018630435617832794161790592713074983772746435115099248323013234806950047519901744122254913626421359642554080924798234977076919721285467445424323238155557876178567459977303405965440646987785183966381537170882737430695444592334330924016796289605934810291346322728593212806380888273034813222074425264987792397308742704245475059085515401354720259165225774350961240209518444830799218963396646974966828833710075828569590339989007878801826409117559160940425130567199638447920904106797447533024865858951822929768550835714768941876012503518828191238298227917813449169437991765982676438243010366629176673380744892959616335526632088957477562042315319453752970029062576672788647789578119721196621547964064475019435734466604043386533569054741226578981470047613455219494039442397741311158896059886727447749497304034113337568432278594691520291944882530164853180959740371707088693798023270910845525681136782904270190211776426313201679280842886163628989249528919673390431888273678715239016718078269138108645849397851382558259433543041143357064850564003650619707982231171952566600106827116198900160174727086688187736982980490691753454256726885644456624089878663584621369614148539608446467359445187985205938488519535763981387828280021010081011348306023744075199381656599680347128719101459212803859943523193834310617453318013080646307200188302783586032401934599430881957955194339757475977339682564736499495815941609489028671624559546857802692425001554296415132991540198705740051213346412077811969087621824754113450886631614288333878367457881948033252595593721635359833446308733115741115182090232172561102273179955794704353059743713607650808875361666406086813266944376987452890811889241827065244207816934855219534489389541675722069506233726038295483142393007125039991707545264768721019085434473853216558176891165562173340289156847365313980685043448357666904390244627627369641083887670788602531335804467744131434670358828273915607356464171723506459099664357289529652722656634769128776851061429164886250252965807008017080543275040992191150938240206836844007881906683854779157041394851344368758413582946996284615859791293322461036745797484903558204973506846459175319566131175705687733047700040640025113270064394012085392561140127569115621235106842343143955921028079358377577985507079833039935227262229832047384165521231405242081571888113089221036000302957067747879557236643936372768463144820735848605735878521614447445426909585593511119483308627724651086191451613610723973947243940782385867007687228354018424030734048762783848113935425709573583988535139141365412494209433237891956490615496450363901421266160738240995452972101584268472726914805983364425170402073678052553818213074500069773858602776453978554056652037595618716646091366693415144344643922231828058712135802949010330160533675863317021148848046100841562755806146050585717414399829682960821553310670038242378534680977105120876725324157404694007897960134378222300424770642535095424654898407875989970614184489649351926333022479850310847540472813127993179602023972423070698113307318288151161078229280469262954849129124607296550600986202782534209061552887891919031327974311697896260295938642246269355507942886481475937526579360011698441412808284109848800154964835460810788299074213301400948318098905565769643510035551937998871987363114754052066443992858774013664382564096143185245538235566167634142806032308462675767090537029512917686872504827427572776681258548587212646800051133383477920461990002762529558797279389013428215013287590776289043442120323011183732510121033672406003060556194245687235961784239444898150829808754147622348636180433431297356155357831917598807144232833732632409514714326476196552792995109561104963006020106323539085962245663019872776383423353800772172957563343799962148301332488682373108713046518851383555618888720783376853443249327520600928037660088497768431512062240116148752357132872294692441659718703713603562679564854126041468243670019540268939611046339887292623786783935302308387064227554657807583407507979878023711555279835022272045349330957477897764256038957518182985277677812144904334196576841832755093300057700325483190212947075233676861858550772845762678168254786173695944239750713075018336261403463910776638252563485580399120028571871633699302607864433121381826455929828665107053377238888936870202908767223676417454329511629440332982044016691109256460903369318101784972259785783151259622156113655285718979534172415343942765922706228408010433541247205034638838733363091514158480825586514424783190498895019353118656007368700418322676980667010797521669882790071537067544827885720845907975395477445747318490879019367261255239871511974137921385895560760612634852423203148855134907181590433277984735536705141731867478539294142546512946804133389420767510845635727287291337245993948345440698918239556010375266903026589383903510025837669897955526231592110957756163553924527385882179268095839917505829085418183415298270300916845018242106757825813522193622396046661907104158554481139734689586259626800236301596686812345555143436548592689746503223850912828805200181151324822083870950035963216787887047569728307866757505383268299953421857899146072720041380863933257869026718052456396648118133491417770026979083904897908887185545035831497480260649379063497538197449325715936058845918675439366746381506727338189101858938194101393426085232713160948628254139234057506788598544282029451841510344366335624993443729484235238203695433076320192029991822174870769651570891703831992996602414890108010870461080922212667224658264768041618803157059062823143931046428574582123623526055411079425559220039677885713016371399468280516749199834708704921594707256577866316636515610608495110861811924082942151059496048915069947850120986279451077481601098810842819772833863668513597265186104905990273587226350448709259950761377282188802629648378292827478737937292229834822905198693190604885751040679267594978557767285819893837686498233522267336465649886200491956984795939287418638994332021412125254927687151056464039736397478086030892874863332885820202468554713205083433821972876823198967021342880440514293786314704492562573436252450123588322507308376848608099526274904157923561784197815093175725123102677021077764798915956244324906334724215457167747446478447730497268659470880292719254287199860718208832616168802124661031190809379457752463000219058651347601072910358295385788732245924460261323990176170920852862257007658073850157761568006798329928760620873565071685656114711195963074014085896701762565099191636845379055780868354021055595832189463033686782257283739450298459486252583378863279274180004275157220022298458333321462421162074042803033179974371899093358401650350773986668608961699325222451548699199407694953926670007892102988621723267335153139437522382234194299865193494066753192203059182898486791695517615856983966692565343998919215119786519285960635582112962113009354087732526051054307848263855346918825993405098629729570845087755559079974689363057005153758680858988640435640427411187546137628536262786981103351918890664840625421283949745438020341848663505030466788079204727584015168090195604066820091812946592292253707419261650161677225427970971663627625123799144841400012500693196052210667792230551155813270941776065705813609481661870492467032894035570522373160514096353929113317777700596365637652435729536013790627562930204646524576479726772563818833720901877813184590136900551263010341650004189524081881052981454362869046201771835135052294316323105024350557137452049317164631981472837174127105769137740305688932349853603646052549289581279044411734972289139123841266921094432715741626063759197585029621513803138695803053916516732637049093300316211190002027576242976005615000738874091055780363166910755275246962166763173810132062631845294173424957470839186859431019417760959312675182286088034585486020786429390221416164692353156573266903945193730399238318441599057356369046221694865930117269196346831142643606779465547196734111913433065357930394251356261140836130345211584475728113042740035302943846101956574850551832052129323076922975479065195831596940981793399310570696698255017262915879803267147221986777744528114567524541157673242101908389715169015433465135758918433271080337765696420028570873021814935139787585660762452659689285483345354089950129450371673289202699446489636307664162095873018439290731152667773044301059324910837615548149517894123685533039266565730054775025352771048828352603313024903883801707024888319665637343448099041481992539905007790434388480812165014127856231567530378517406147854582827861759875824386277191731977559137939491446431422826969534998488206892708628714333860909952420985810410108945683289300364536636089699742808809679789117702521770373582126782812309471871341575705493949779314633514534982557762885142714434201040420006141440026540866325003803452842735149707086701392409310551573580996886631497575486699784509004514805819336677865560381183597664231559187523391773047199700076146604444640598563753297835696290228983750089257124003019519452656193406344111716089831111498757058378745937606482805299483940654293286015171188264308437676014540244056703725384120346809970744985270650110941033472378641293672906810545426855495866790956969955077179665680414887609973470241478981442711399280852860957597161429815685599996717671954731768985526342693033334709408875162369247831433741415354595613315231456632635967402453145344198394377873782152021379041507919151258676181899492416687097500803883628930592622963254509895927776435100975143322361957173174374360556858080367123014934475279149773878841722632852876664744150458544023301111623826533579820228740991897236894669234730999268995058528307925191097279345425836853346594364993668255158577575507932902068558100687186055530541186225644284838803258637959085206963548325283374571269240305750298563675594574111920298896868888995721272400242987504725835047379168197843258707525910033214852083704286238498475231794976021781220778452740097218297748741040039008056071105095092418845275273724670185592866206552384861993027477524194212794704192814595842975930864604583440804366554726840640308233255554904873672122892897556028690901735251157380674828374560487452909587301081113523402446468998314373532265214677988908916871938880567411678652164032938539272058634360400232639951158185289012047323195366300878817299136478225643093678211475556949369114599081216601189026373521827186783843841816777954332567730584160588033905744545583121753518394358764547443556245756803362661098204081876129802964698297489562021442708855524220090228653237303224685548144241037829416626981655350257687983997053282977826681690576307779474981203062031776200930253803706020579447917352032469831023840178945144362271363270206100778878388917339579629670303458619112307496046138109779360906565460517193178181740783677742988033189255945027036790818315511514541979336551600133673896412262137595237027484163823761986943265140071578126376860095617856934896580399741256657676075452691938559190314494462536767411522862649171128172850570435768081040244194522619404489805313561921592031903411129995999188290557948025682875045588313191411691188079301989142399208440402300483153095600687987697915348110639497798941952554949885692061552060723504009301277135695785100079750178891813406411616309209611649860893526190505784915699430734948770560205029679933518758531627217853895931472776034666718683710778084298283332750550594303646773495268323136744920566981686971748596322014050783856299090185443590643102095170117139767954814070537799255220094705617369739521206255620692647865515868281056589884034169318970027858460395345397411427494375122704114752844446599903598474040017218544643832531276623975238084889740435917780228482499014756903246363346220704692529251617304915863243173791319651192487961225728175376074424597357505665780335308141999399715376474382558598245176303101882562094921812039061910634207400511445607279521365658670180540315665315236457512115039108101541935666253738771895790795547428119409964569449994516136350291198618905258422035480088164621188725005739184048814771205941943006512605283486974489399667638091445698133701921829402449363518876856983401149551556649755829109469177637260832293612363062221690241754844071277542949765926266976951625152931356554800812844941208265835539697734748474073963228557857638841873708459224395661730697120986165840373630977313359272054263665571085303743470675349070410350906796512010139389344628535369350870129522405790821996328625914833320837056491048442540473021620594384378267657443758135556808686487040305918277812615509570164338224083382292068579959746728243139168700239045985274890486947077986277067745500289389012409040002842149237866513365699292743319835083458228945326586980914033162438978438891023798942144360097100656913208366878846366435910780451248263822127523543718859908772817542834788504078010949476740513861349340503209922389377954855574653239026393204970211576588520733140184726218247133101800620180160566368501243073119760139014650634074646582749029352841705089092492496035950743968620413252519767677738259768208007386958141953241029210805328540367042247559120504010155143457053984509319367038051657902136800023992319372955482824852268843960618551443148904237496906194098762392347313505155069201336483156930974155707468568315834647435735024947793992209280711140047007683578218874556299133239200798865216036003518120507021266192972788320330807016179441258718117182443488883422472901334421458488427573866113424692979287556358571525888493864207342891438213329605707839482431485538472636336362685444372673381479353029865445213529294717577175078802228692098158776947056014785008169408760085068064819941284387817003950917285797665585866616259765973646619904855698142622046561646323551896226139230271319701036461872199966748972707895420018018562338403701674105128114198105724436759178437207494955289744149877245173216103535358652661082261225140850195934749240723331821325237125121573571168856921699163955827463628529361815003562781160236030800026444542198562913546940925037500090407332789497103034598394761262127583200185149215847364540747274446459962558352634812676080497317188940837151250896048751859961898445134552830651539288084584040069141554017857781228579922231401668027554995083197869540639322549096959863873203257885676224002297660254652429974858574832643572361222099955035061031838311641877869825627455590267035098491520768835694585829689572255080204828771062094983503626511008036188385159717211465052409550362457054266720058729016790448602978870042804539990551630041311042438823027310343510509301899719118427871682530549633820479212721852479354271246266477292567097572597842176649720087775076408133448127879885763663863504335772554802183134156497637321508407295498421837866684331676068698719191243468932582103936969856074745651795647838455753232597742112903220240989265883858030453227263275316188904934462874197703048856212010141886088931280698212967611268704206102725112776622347041755458178524914885322473854795636492500872469795174069638841258570104776597179866959586287425538512862478573265094095019066523018530999104740900864193970181495744029183648882876909363722755754753200665723888233293922335909852134291455153075774236309632654985863505513698600124006984737788768729671261190029394893968246348102428451143451594189178415928610906490853803390605174237025208867145593169114252526113595944612712017193456252327234471276268023778893414016555398078305196779164070066188942203994999788504140762264172370268746073385682160278835940436522046600658620200872210821989435511247716424568037336137490478261877909215797596026541494139572334371904113915077808538073883390635079336811763515858738853341935928366108988163278062183262884204677943027165347220895235377918361781830501954523351584807947115762684330570363276645247999448720562599941474782127272544640847103602572650526850485612446942208268789372251810201572773807179815039746347844059906312076702760071411743890611490908845355376515254493377655355147437837653003575009387380300124950656069947155177626112547815237631894973961633192728039731995687569780522849605396814113777958540717445933431892063103613528613352745856565011792365378631954867395155320428049495930398352767630503052232740324389821554571093614269623616693098986217279745146420636847213421326881906447443465676297932807704885045845690526265305282473201803057518087244133036388880817907785679543591427162988322150541683324679129035701520256000441858059884347361201857998067528982232847726213946595392478527136643165883868418887007295409678138002931622143572477620902885117368651631445863835238802086132426627156448831345112356378985070682162078991135595681775921107229051733320003567246475252585793707729387455190643422215934123681104777128666183084974086455907166235915783655015626045516840611339077283277756146996417230695120867631518458698720465173036241214290780579933561910463303151122408436680996000370261451727978034355164410347799493064775560842657116004612108804615826008462701801631656645942801832924121706652836015844462891490457083995346248587348650657917309292662500704428151937803739657951994665559684056270873329694508773704362312179544739038188333602313546162895968054075861714929591738093176966660255473956135694131202656377548297338347638931199462233825658569596777087581988317408747033213878583394607848004636119559653858956109741288920578502331646608784163255625439361385730945098781070881483642092641709793170462185327106774254972866230389572294146743949880113767370397828070866101836895808896536467497589883286543358486121891790792292425172456248570336461152905464859092119091384764419958268565680008410845035875096127735818184687990635429374108689672899612345739148983001591490743519602284957959454714035121323157532531248599366835191515357222953865675615231148021052115634035351341479520415145469245256767591926347199467186471199804277911900352725276707843722981799398776254120401420602951434241339327418590965740175632269647343198661542828788565137314497052727373998821529140014943758225427384554749486327204124677085494459924991517333167706919789018684704406700639278300465146135152759634630371591577993963702790360540010010670768699939528295598955728445489271438117662220007503782805451582831387663963126591633489360510145758427809143746186921584970595031684200987519938394924102456844870306596124015124843004583671212425393869314248367529280578135673479717404439526122063585650304627824199449528088332146555336738401237522693158465579652066783358199269794915500073153743212903398868338503766334718532992189237107938336062672885649361070422853242957013767648320943171741946810324523862398314324049631567763104032759356267927388041940881866130327290160546270712448570223687894400761868316502782731491324525489213907016430277710494955063235103822964149175109379625808007838209917761623764089040073801658705691857071687018503164023192295697360652166422775116595960045131565358843985674364788627525909326044143548688466774031227092045548021270051932358304764917033003100487424945013796873598783648348561904407124624132000870872754099758473622941028309208079386067973259072020816711806982647390350545147283031129211926241906954022655245120099986380463546804132406306215569668428600196038786069804464696832705761376883663729538719924312694263305694391789797235567983155848248524264754560852037559442469313664018961208058619934844571791667615962449895145285779912854490994101403476943377111972797179306526054552233495976943085569056606817162026650073629511682003887634396172585856830240221965523673775385439445287937108457907566420721616307513520669102841661570147194586516076276029277741778687289021956045567556694039479098611540184582008129934343042862733223489284360201893704853223128820228731492135409802759801513340518309161697349467867807979234774440782246073654625247068304086968671196927925772740627627884504570903414506970373197147492285788821789647070648895710675607611075449436695544906272715147608846544853041846398623190519608270680250737116954280698757447362351713464057108394889398401892066136474201502555602719343355811641173808767654651238404960607441338294308535999264899037223825951561198235616904936557491535304768533230773391268142856493647707276945039289443838847879197932205944058909776637913093305313470085814325886957696295520383930311209451593631143574981552485789379701224471486907075980344261089100565321455148305635345595081582482193118127691780640644723709926892823198788193342663380120551736674248866204551808388769417322974087100534921132802786441136938641990844044907653668663200879595860964392077344900695184404538544425965631818779170498014024429429934413588082525375405896085473775241732924589772284059658746595685946544010240702846506803754890223047930051294160961254210796443476565526785319421628798434472285089317045246772012477928891119403602194098505484651082882512661333894586760890243416878545335641450217776188023088686934137565730709559022772892306554195034227875005938309339549129034494137916478749754993388891313955086596629347104681389652706853235669765152676202348315021999889074686375986304700425861992457127764308805002098782669813366976055598890374455658979771231938889779180851348382335838825336867732756836970630138499022663085598686162926301913161542889699150063025377618971193081839567983816586761007583931785193486285709250660035267064858484099558044814109856739044883598496474652136873907025226396312209499684965352637516358863018048286681464311733917265529408435431814752747430124294046602668436431573523988812219489085685270825782867937956987435525744598810316015201275890450325875527035646188804495653647409717072409394682008014545397238733523511352306007596609807343393301449228021286835897723160922251753494316553441340641576990633221012182564892273826687693764158392579623261358177232688251201002413855318415193575703874899173408478281413021950997496426427011836016033017606851490543542926005574761754757643462505659167280197679537575228142666544096424543890826630806509210231127243861931687532889700970409817514539485876792478140695876075647991869612995771257232375940628127391219292596010343704024394601042863144212823952936886583656862372366353001323258750571165837895582123887833288331227143875488235775846911298928377554914244444889502589717114889190573809601854282168420702610246081358719504809794087241010117752464596937267948081095529724613706309371199663250829210479697338426721714197708064209323172814549383137126143060891009156300653022731864889678552201449623300925031452934122652164156002592379069072949865708087043534951896281250954165582278478525976948171616034274423820324376790416906358144402326129256949741576456847018151821443577106308428288707884102740097433427300750372314950072136438007406145185152356702284290474222714518622176452470381799600037385065142924243527944006299119940154384472187693913799892652626349427686593443535666231815823603825164605752400540164114891244488201174916575264127810832487860856979656233170184846410967774736132798988551116503857716187887999247773101001158573244849336871465154576601312034796587952309518632997967207605951471110383321045225257973277885142801952183331482260798006081700407226504572434167695338021713442179016624340621153907109097079842570409562225890481335979195828042625838730105182309784615368925927639629086606593219585507305551894476412136249909506731745975274361331925314328050835663720900794767030534468437273688527943515531377568230444424595672809788141037602978893005600431506242093942886304342868711741407645870437840054792848933542947897572989886946697871247000183825462624170222026688606871299533424476643854140332186197966593200056271933392426774737292602358951387448253649509766921903437490953339975501006215633378772866803781219733932722388770819783702085485763387629383031104356609986509764370689804397164158473569367878902102582176102475905243589396868240496886627036433685066577107771165633674564164400414541853793655345247303903855245720427748203784828204402660560378873959587789084565532364554645028100562995280887127898974512662409076300430270233939323936989868585473184583640709539510122514152376048719725856044742181459127501550067358165351377352753868651736072441563841459193951163306505682830214236432734791459539468970911919482102979844213964101929385219862104338565498210178832624361879374492088483089109460057148641961852004574412888807607410094983478002692855389574259562707176259105222610343489390678686215468111978399442528448222219400594805544043472515090943889004159225778259379652227455436120686463643453934522283824884114942308768746698400016284082141418671264698804595669425338078317374133887740774512473053462931641457429968983796037141815705191956390882732723887621409994085622183106185991714977206681573829391383247742067710235531346990960185491813133836087703671171606751380820552862333970957961640736088627339801481611636312196701804003241585016087135809230318957167401247035147914362388245635292968652682300022269260059864271384655423875452230186898598501491234922825444444442816133458796198775830777700695934030642242193992471126790228812710953862711934116113140440738551528242957477191726635915456375065262574298057522695089323279967748938037912601579202826503326798432749842389090528401666643691571698381470539166906409586264689675897378609528658170085693722215714858131412382495131334092820832318722649656258956070965889079965114460124120869450451510246722733062154488070155665360766857993931145281036974690723269001951263105598172027902185957233077997642310748859532690094326256614440354898949055898838243956146304512942323573467199214063262076796410753985171030892779157005348567094515267501794169173696510177759268323211807144532538630449101571660872468869550572514040377090231713019913784263558692516874128072102799467706013145275223477852207449987727926561944458525639072914947366489953954104567710586593286375697555955760846765099573162561209443927441463866509291309371412700862719337563453403288599008667107520322778158357937544612976892620183590434367579695970575054513703943771002748049546523985061199555808416992679439050999447300067659539436077708566576144649534038541625498613101269442920086333159418223169775267918153081894923015591052906688972962736206787537984535057406329548307766890660391252272605416157780709886623229064700098017111265264679838175963216856790792421972696673082883360222069976466589461190222408551512102965644660075673158191377108035941826630994610889929888691728970181956269132178092861796918828824161409373291803783427478315610099029504065871028002197749244708126906414855162909189631912445183036793752043212920753500264612258428872942730148042689502219131482621663089530744533052729384309633359436438980987553453756085355702415225659380806635839124052312100374584313316795813601411218513525507481377914820808209996380207357096094392449803618321011321593331188047182523050166539219129967851972206951194112244468103025770031493100928153343364268977193679902176897082873161240275140336343560482673559860073005743151323882624694218369023010898855379319916207037371380533096916090834205268008137178131748524068364320535596737729143060619525259582614367885023301392768714622056701503168615543128324110557033425983090898276366703883545563906036453616841114402863414959027074564814903779958693236726405503260468785698107909967984610979488096713932546740493674351664934548493897657406834317224146081352530758923768422569336838905397810375496881092903986555451239411459936368942562315625345300003252886796807304784989201008213786551723753186147323864714533229825472587199134032131145178900186148983743623931060338212561121108963199935819302320463287520588620968395422439642878800748923805253314142607911144775555085241421739259111860457282610532980464856047202690881205946197933187065340481395806352310881642122893174857292536732484595872273682872408095900379895001995471697728790196127564359104753175380375164207995496005171471992812844935559602313092661604957040710013964796330514196527006795026820665980058995135039730593964546575625166556516132781300489162092331627199438367370573150333167550715829303242341219106772808687710359620340440497592616948762083506645327264019937370770512491167811975058584576399921493667028170817650856083994472409844754802220481814673120619874002007331699269079990540959091484693458480908837954999028680012537078201788731068873538658077106031350851263706306883975817702610285181625437351507915935882526862151561450527390077516160404486135039072453818838115904985992185333656120126228504002486087387151609695956759813278032057122883857697243716331669938393625466196734714228439462904611762498698908714574310476098369494859629138145765922522982790832203646101207454541280650046657437649530279041265203415441722106756002708657013713265004274921652873551132279047752364826936658296046887602890652076681891478001755969600270361250115117699324826809631849182379057263624163086676410569662634777509347429477919877715481321050238790423629301203313127634089600775485230007154685539561541786533310641702480358401905104060098922315978937733652800369633356154366833323806930479282959001636832046748879613289237615591163604173769286535480038198927677824028863250306840974656365704144749639403530855901103505905296119380021311876646646610412454943267201273397021848413221895240145679759153746896526320190580766206302030222899770670788259005893437871618632824577933457064105151432115691093121629134659325314127659475986546694565533445130252648855071798767654165410565814119639098534260081960607940811538246290966252086050362163383618495454201021639834049038980236905976239097556635838651726166122812543567786480396564240160380850269302666262758494728247258212069242886821290713972376151900177245240509211886499937544855515006880883095488576719587500425211517772752479725699095930865688926280362925883235710596781768357729317341067819600203797925483773219198415823586721683704292535528372931889248407790660088392720350184791211515494259936119634701777778874343036429818579198510243526278551956769338534015063461837627190727812531345753844848661197773598938348895447486960138246884264060568265585483251661917093970709344498409684376405917273134103695181437951599956427713073472395045890829596977770796636444823569897764250703951961264066071815947683829355809386834854507676884686626752909535530942115348700803437496326644028905410721475500838483514737546628284757083590301265195202861491056839296771651751472054056953931019999720712766174633677358459034797408906854162698209647993898990804816010912497194695762079203896604228318133246396477493152405639326370035994108571441652269812320507867899886556711947476918054899058887390449668052946484612460274243540469456599198502389762910794574939243052534064148571659047605680144730006023009241713078146511928007295319799575738294465310173660269268189450201825217342227143478040700062712567446890866414300681408248437862327698776345456555691550647041988895183413679788301658941043960955616564528991316342266002099149122257609001642451263814413889672337713420419169147385342440365557365318384785096820444180147102091026733814862035210875646103639116417099500104960734501473258688463316090046133244178598616049639754837808629645940692121968587569301545131698727708526612822639688510372183245634073864917023966367727197608666244784458606651394644737230647161632421435109864746575814989793138492117721823188343991515474532248566273964606852892357845747096081535803590458197911788421450274547617514589576751092009517961112335920081980351981614598373247052929509012853837100899009548671748799601299068551522083738265239279291001269342795875193214138235471093349245400139088539716013311057722976526425057124837813795532703145271159404060124192744982509090284801342044835060205436831651236079652750675664431477979823671447494173212385071060124250275681680136106789118271057853143543504519387562823877633289337608410719096031198617941851874202552798601212381141144825186561473175755684119045670564526689876750417495062269088271597558666062314453157844506869032922607622376403254584521048069668983029557211061982589165641943640562226324416353901640226738020217122769452817975727745718294713556964459329406053899658690532426109668366550070918912264368796423049507105647228148397235229177433313487154616751211492658205188092687691709779486686717204170094465616529403627075762362284370220132097597816834852625785122909471150937173684829021130526067216712209288157456173095151580937266412976787844706262151653978686299809335345413456414877590696842025251253689265700333490595445483224569402086081101690453395659261429952981428261252097916369671129859842212885917289270345686361904465363776892658036405997877968764230811851584963873574566862760075407440423305573330770928984584464561216984471976169429794350236782681402446527879496245743222628835744506869100254934615996126673799288237380283771895472446848676648612831661544542195649947222530613344812371342477687444166323843202925807013564406862293781772376439316585036797502474168835281153613221639609466088252704971011938878639454727498190204738068305237169629163172170345585765906494435064068200534439627230496024455751290820487726663105710361489759399248684376298822367993643146995608273077033936973971822203171716287371288061602069940893630423580441787415999561260836418878000604494331344554507278240748901635809463441544277662890718384235720429640095224102991814509838945605549691412164382299953797547783830540955581703223433192157337693456971535102067720800767011553044130196534780660709773128706186873176655687845611902784172893366880270155626405726526323040434076052492390810197917357796939261524852476200032004276666566024804749320553011819644866505994836942172558048857315281773321605401091721366412359880147935378610912395871220849949990106849463737492512602463793960631952765658522101923332685670391775627392640401208437997216676763378846582937316123865323959524465356864394976155278733330093352631031315303863424764983200505651556750430017487551815248478550826530924284358144753728305493295069333221061498850038706810052169843183821539434787942250104723168953057773150340672869864496360867086015396246645817792939056653326075489613247548751785899975748700818036351791565519181957999799886831592308365253068493874435551158318395367753297071444570400063770368529218214680659350592171519081334043049019964321887228742925688026481132651199553452007488057856134636541699532830100134108359103553213529322767050755917848832134963775313957636316691765082309204571612253139284648808785912179607962853269176220139288287397469312682229271076874745626465418624359559658017120434810740809004332192489709775560642680468933197238021688404129991130510519950926192414085598064555029466454666806433084748166562337108232878077094323852262386397551775058360748863543178452907783024806204939850643704070189708347331082813525821869287390817744759910702176981767962922557457222054339253982621096573621589382484463787495477467152789817842429464571320707764651774495739278856741125073248830798029394915169725241776380568730190741301510653210934236842263936118135313484385147236809102967585708699757086061209631521772892040837801836133208385012679398919969131118851372399605784706626791961953964765826944398246328136944077071195634180061772419193021419705345108082344900551606432466129477285607466168624611021005470918677588641281788430918942167961532339421923245727809546869278179777477203154447483314947180815301712318419631315747506141095286870861376669263845518218464657587663171693551387212126280135997921816780950993517393629620875849475893030240785807666179896783679982509798311731927393511449582396130011888182839636844966309152945851463548727374477418478512526374270615759448972491074514635041931403244073508653907481253743872878501692445145054432832832260967314886273826681698579233170393682726338786391853504770430288247315210043752392400275043543779690375385066503664409139973562406469420755858765265893314924753286925412009913627289158085338116265239039906502823712431615775964076561071961034957266094813605001573801626359716202078261963804935654043993217375177721707014135526590914067979762692235673519769071583733562718264225119972532148454117834291964786467867831157955068766594232708769336229745838950138043392211646053126529743961999641880026298892506942369380057750444655992916449777798035595417013080982178784495506735270214226864276305042523884960426021963488264987564096882792317107985425356887252283401684905533626015916595248483565207929794751061414291335095087027767498582127065914123163855419679248580150199944576834808084919124104414632584031898058008093757121926995977075189384973190326729781507442081664527986950860704731479474553880362273130618244702719849295755990787590058592411423704473316158664438163193077379355444657012917981450881294007936219701392442239336180431242497592244892592571030641966954463363790591584808155467259527947942424309612724095499868230643500924387965606213251587024146345086015672914725207441603443098175200937559013739617361937738752951986670828129120381336734230970150083728665132134462326714746359650607495889372167389319613056271193432476478859809016663603355377383755822701826515870618362584427542848458039490826997265243351060956592434264888250025082971815083079559128953408609492214333698658326283354968909760872121111817758601879572642527407417814802433695115078287785374039691741255445770109698117395488444384271118930004539555424999655477037674129865628265512927306424676285211203786841840325874218568122539397022705031179458818910364453570420341521290088813805244997216092536304518528767480658849499834563795865981719612129952477683154206496656894005047955260958288485933037145774282987127528718158655256472366257677812291902541950823932720197237376371545286851844675599686493980496378352892773608825966586958330936019592749552154110768411654249832319837936345802654149276030658098945423537852763652689665906701736758149050023614056879039970321219277718505910493960460297774298182155961352493018501752815523824126306663692700565584607500640516520325058226273964045591484115486528874358022120112448192873196313037510865910466916828847216272437733293896610243728279458083791841797633165845361248098405904464272628986480186180597547350413073881013378163072986109584993896779598710999347915632841078414676509242016116091936270390720350712036811632502231739060685186340514187914371612586651609215208550802806034279706444085228582375328844803290904544508283089210659799597069992861405974390381003496869101770393105927640141463885318004897620803782983413358863105528346772471289499403181919806067814258634962405343301630369144753084300625739907004455573535543823426160970540770655955305214665730972172010009549154745892441339572934334186271906635890851057259358610895792456885834277000219541160522510619645033143358102412373087342370018166170408779207491954585197999234347980248390495128499101763644716847459115246179294117146172240252130942987767847514946532213043858472197435591670424402435525052195909079987834658980493880826742283166123984710373742865224888233715617848437880724430651042269729043267114036517598832281569507677858608050155844807043597821785105696897464522542398294654215258829267724870487059679388149544177064547231241245202921480539525802749105791629098803370839212645012151729749399435187769292313537431173732579147379202786822113421519882117409444149542706323419163863467455907212501211427860483448587353673848553697197207595123994922081712467816790717481347958745875702070823394685434035720457166595096833429503725456811039787465443620250750649359535459524463115663187693846692338726729819177795672393542770267966196775333646714204951672148645196836502009653925086058199295386628113575408449961296272328102339416611754696858271828587078475681624931038722842072537839951671815096224646731237666354393239993153149878793647306315203213380126264172390851703713299498481366411952204707589851376685981269398561967263730349668441257324452231735756678346556706997439172958867464591794567839736711560759478497271300316478719261380080494647112440132106584476801012260711413162089385891516564490679906928224520865089149853611033749889288713046027369349298385675905217104759055457469815212962858450430878986935121250349921280317478416782763547474128445251239698444964435353879919321546103638955741255163878397335105944554885395180384310672463488664365917652720722770652696482461568503273404328477841178398408573289579021076934344761657620982016581323833223988697593531150697900876978788711317406251653533658514398473610730207678298091464131429051736929433751722746728441530446402366682837445248437078652412539489300682412752917039147942267144149052929948139923828027440059297153653943676342344432642716450322108450170989507636191238298169446419279251224108744385466492558111715917388202384183438534593370604573671710986509266642996997893379960097987101958454223236325324827489676855767957944276777779490546813943958314977470126183628902806035022525721881672301827620124792653008988824887810905092716335920722296914265337875246625479951337256389377359535917599211951449145445613937771213903085412435518060787260347692514516820027661921920730047946501481748978257011606248549916370822489355200068961973629721332857735505883548150186293995324961202918798573622764485699161017414788415783485210664071603470872589048398646486416212010139359876489774763586209235263929192406983444758169026017261878920218838616971190647981086636189526686968978203294759199687051358954374804596024185638922935150364513024916975061966048261626817862479997491247205019443630935320449623514325885496744480784731396049840958802547438712424557933087114385725447535341268530900129622793442801139865122551469656113740772055754142950190020690147350072140514959710620139327717525776884383498792930280992270416834480194040668794261190356992748437495902624064087811644510742860083955607140493805060291132333930033326051188154386520894629197115703923190981520065365328384678661811481572536910011410324350845687952300820109132175656128577922134774335640277113964572192765583123167203211988126475600466493149137732646420162741476231953192228083714706910356496087619583447723434991908156220794995767184097416089671835504668364040565719059114739674163304408709711554755258196048505926042125576848195473398787644979988039051755188049376542988611688880366026947185026539265758182950583466900670440460754163725188290990385739747494726048108988970006270427787341408558388392213596070888189804743225749078629969300941014259771556999106568480577099400625351163355271704918345425364602644779685550156791554580519179586517093029104303778568569745035365814978880888588131317139831915118919104390920742141925316923694287159324041046113769058297647936249625577794896738345387212160820292012639952284290333615775757433358727048668926111735787785672728549739699791311713679459567035986324501030334910876593051032255876317779470054180642224024192740029965846933488867088416671916376612394417959775907696495561868965785346097126446326166471747601063437359407641383166278417322122775378903195567149774120491603667410540336893743815561621145343483007773030486640690106530736525787255120548885870792363708729722084765514295701314203296046309497117570013503727674967800098495046779864342333062973494265223937929644566461111419369526120969882317216099139719126326160336920534716526223977328220261494681343002735057334375335327960658077418163571983421245661125475816140943836352048416995669735451389809247720268829975540487312886126682137763715694049852212017033354351713540687992377426828036019557602634295859233183719168801523303388617925569498981312432950777686946573517271919544598780550408107634434768161004444847457549072841872872672623429692896733147908987816548059184541147001973847840197001546299255787709918997602886944240530343926337429514946815928922126914763904811240554780987548533194470945725280579968430213520609133209634689867539885486547861274292552297266176473680295224253067493581975548226914626822353075208570195952218049209353489953323992859626718080788536836477124093292648862679905109193177608504431320878330057917543280646511568327267897738685181862357742143724039470018900001360496217423340656715251452786058278027209009351592639173028000336272218805501824977222950929803830177101316796938022635937735734762717852368721324056807893012642529136630732938919394807578687395150200701759900598845886118308583879768823707458940306728198749088179960986956161559196679702542993844993978782458942959543733726670967040410933047841076508586656897407225761920962243222175596548619167727918912077229072261454027068549627847012599226784737420892428552280902220161015239823709349619582783527431989932259894767367510784886880028970053243641132136553813202750877353261083539250528389804536789826915935134799827453974591169344085211581450544349533235937578217300636300163992552647285969626976586628187737453784220562671824822971111242727324302462957806396113783833768007247696966966285449231031926401501484438704092995272343868394815765198942605699562073803831361274635337159570954930347475763804278754063055078530685083643555735388025086651880119761652613666796666456281216200904128257953133599813444766167354361495124124353070830872359406443646850506838586719421367589640181938491463432388438463978895243930871981278192036758714166039012714592554576120246539299480319643620949899304074566917722872490756303831685520363394509347400401400784287400066797006527885641731512126058690237880572058323603453275618257047907321036875716035407356490574126866581620828215809451037002160883016013376521349104989527010095702098023617259264570413001065776966653559318077179263197306449962411206328919292870875593874206640577486609763460051787758326430442904364872862221621701368242690001524443257411637775717879488838470763701916649708852575895643290375926450107598123096815630906828571787367868433728420264110160174863710486811665242140530863355855795648696918529334524737564730736766813875207700450326561098624683808951670064756366168082205852862712386984437869688255905443676456683196064873994869722461350810073080003502247326762932780728052273217892590428748054256943584880974514906340028401670077659390668820686148917036397228030671467897545430642118584856187042950255455020011418825924117579379289699295737129494334877716514228601570498574127476116531240529721834281462861226047362495052981674842023797063705458258158706550811399550922840376443975617820194911435078852820623504397458175854615953642372757417229257471528471407072114326852588628750182279054595952603268301257006323356012837520830264587364109572329356495529992557006620544306001049663244293509657354486149647071241807991722846972733345913469035999820045547281655850857113697641601064360634427457839237212934177954491074425671299283967884236746339445594142481774779081989407186954281797354460277057352763485082907838500530492931340801190536113216624549870880285278511560338097893819355114608008342652118983891339229966417872432421938803250976437766513965949343666894463657454288931659585786228378088344596165875244669493647869660638970686225058935023655833925919713849594334841233062879261782093617654198995761140242549483122360966133282949751857681743063614794653010472811788555230537432525701041966691091254302754283716088931885878094082466995161238130011329622269338193089848093990374823905358477598130763785014666288481660614476350752818228881083456606911439248353414338552553372429231766009619833773113803451177585732493545653463340756017541464180463457200109797310658442520504453488447603655693836893631934771222948592078626848649388768582189278854211107027014175284357212696324707185459654566190767533764266807773583458581909938946514223556630867054946194405707555868903768966672716535460103712383328134578461643982093588123498883252425544698858482336201937726499445716131665614775420184202747388253115652231908434256868791094967361939138528318333699860718112824853604431712736350951925638914198339886124538727669412648303251373490006817380458522274385914975114581913350998964144219622752370197863233373132503787794243626192172469595483226100575474947663286350619192947303602016553805143109616248192463323352283067861582181452447036344492091737050527404471451138289210906061852154536658997661100261874268913396482938581139518560273370321897790770208393619664088875904582499544487110937987091249541923174599190618795039891470121769428093284712805120991135275074256294471773065530452639742193261347411686036381455684498274194604021857216751428502724702782756453074740969781519479917024113107639456283073529700175001130119936690146365528586918466600780491924606581671830013755751718866255737814044865595286343741144879713399524151681543779138289785396255462616720724833182456103229868286215248827331637334103105411838754248261666359840465261253159119588708173346955494849865915190975316730291296950610951949767197741870992967661448637042865019662874617544023002163182389272293664830974445851490265629199528134482358551991739773293318906571572346945873576967733914755351801208555790383097863414906597631442961466532726258036532456259317900240170853348394886131022608075961148178618308684321610870117962819136586148392629542687683707529690150893153646463395406273755002026471889951001274662627285930610623360059329039725681810540805339773835984753013705719515996405966978037284856319938332119246160228049560300076982823719243451360888490725798159589998663147356060394643564535911624853548065567227579380866667042930491181318417724775026813409490137330575394290743571331607315604233115232957511307285578134567536340747908122297544868503199755811770552124046216579312172408526246034573774471003135838555430997560789379465209610483699585344744915748508657484254815979329243716674575777959548553037126363723088006412653817982830654436227874361250275757167649975724199206891908767919306047275863928504541603314483860601015982881576962686745714758936252292958652383476243320070570722172880877980483334275124706354138406092801913120113409454121924418862894932703416591492049072411892406529287742211306455756344003858886923470389707484389022480495820308585827896174081897571206937231452697510531405491429819588907022726370096643672849801532526741575504694496647957585514324400194085029494828360525611220606245723125397962583808401554788109965168948840750812146934217912968852300761983570585027057927032189294314934827557634666775617440738655141757526552570465461893460244144094385123023564594809604615227381509155802283246818766409975603846742477405574792535353296207222923773161880516889222410014188895312439527082622208885432398182493571196329649521668484637477285019403543293065791800392388974477033424135709314962064390628907789010173048641084513948101700691198584212487476309146365254194904059159415188449792115016356679097861964688384720787000648391550444995453814941253588869337924967948097954312605435933951382675895716340313669873888708182773978811225854363615793505506803208812785334738238203565122157762833828431989337986383533190675575209797452362509559854255134028524915191106865535615807706695923848683727220442779558083853186772518492434586302466921367271730043394822916360491200701236837237187389334180872187093523629113438315007547583121264400255312682289308636088271130753324942774000156533893676100000903694974123709684762149570601736917277530591634431803387549620585923455643931122905422928894994557561391306438974384195794299611003915640124425952525295142617204653901912556065929288790690413875462110722926243524996283571693740523573229721638738878777152075403704592757468973566806171255530327842228821776461937682865483088670169890839869979221441979538910091103483045338354404137599214509845797322994744338609053861565086526982849760295883143766091906258416912612887774398809894159755786220617896698305953303814649883091259209244255070274699707901088860882119016399292896702453725057693458255478469359921794115394313836680681471848297710392396575504940355300562531529921213630522064736262290080992203523480925287168097731414167116339064108348474567607222861366961439169534575960113448024396516207383502345712577016046092114790408158766792505173440468982577653390785584670711160161210112001757308586131736591590762203481566970617700096566059838234815689779672314758826406094657277017133648808541417290211684609732248436771313712029357801138337164298421991731986011589347073359696206971048611702569928154167731845671446238451185351986556958156166687214569481720269012631335313588848693965108294349086265937467287824780568119551392906482666062074511290078493252988643302944901422405143169089857930963406836369399076832260436196987104510501818512295679701557385938445161541486646587961245311609105155326578698870078727688432420979677930133328546984121262119864723144733543527735203557914186902854460077842577702874960884330603842145934530420004653272617091306140960020463862034126699195801585523609664440914278266717433669529244108683882955578907539587140079005403804649694444759751948422321512488815910276085091857474639983845850072020399049870771378298138820241686324628046767087936209673542736941266451372274982587648879556645646931392642462776780567924662550176001725377597747001310707104170682741054191690412096832275729494610222640374493701281862818413409500003566168519817189305778340974084309951276723782866677526427262922455133080354165640609371620540397052208756677076570743287354888973564322839057550978183185978792540774935265610516904298132168199884903720983263089224898744127827160141031360253417219449513586288322470469647532603317752410276988194192412503259868064945637261239479477130617710778723740403622648887408872955942761567311690569889530177539147024194038695409703061886598312479135378088025957691582016690592042877747294693189519454454893127295558427164058742258737376813073773579777980043271022798392873442527789812971699284945145711316943239146006005905669463755817155917746292934080717990179778862919022834689884367550459424497502577943198422429528757379903896227346634661581363737133047755315904226114739323381655455587361851164311506015582923746373316706372387753624974684586678507802714842476596249845905106651684916962464142258704802917682034180434660686008569196450612286949178495678775299753363184798235717739343311607059892131055005180040319084638546335958554921524045087747355402225549176696547611344767640840764271671635166727845424603229381146213187367373327959964480468507213366302408776681888238576823062074967676025798121312946373533650205215598137275711286608836011655774310236582024230474140451252573442318849998206866774247914797916356078385095248177066629392443179261788238081340513979642304871877930314875059485084494801624893534353273033049661613277044004599779386032249181780983447281259674989336528235099949205715156942340261767176795855046460203398533862954797213535835143489552075896528666605280578510064594715996118974348204929443094332756667234756764764524127317647966484777454928460370929850857600791347285512197702710265917973871598136221504971434469912254276610562600280777645879533181869846684271641595105800129175496353275783691857537415926238002545594129976320464727430388922399644885622170225387746215188488081576778504468066977646109423338207043866129134775641317416708750599009686639224625235454538772560765435664014643767231446835828057487086835530179285772045814066362876533900569147479941271617594006576327051215570941180581647500457425145730633525969489535309958066420937814870010905589623915725523765423329416663897173806348370626879131966286734754185069978689782562827029864366483640060710865953854446680660611603053425549847900077918350554774935364696419060530902780235730018133458457549118973839280147430212261880577445267099303870697693397834075479147902610039541413528158532351697368138844744953164539770562863177157219971396266114789410967696078142753552424836206925949362521619879533484101704461084474010589300571952321274246745576466526077683915479637753722296911257990308779556532794382739460575869752947072485169359429536015737432468776146914202987618638555172592570863311769559135793383392036664035351347648776908053311994364501168046413729205515681627363241331002569422700225255614731877511685807086165563679853868709904865521542620775146092629594723254499478630138720469837275083654144321619377486027907005796168689385646021772543675031298563538219167559045442526347238267079913846872393890865136322420030812394883897989039542187944379176670422555733580419344920391256276771671093151140782951760668855362797587355003718160817192552577183835635463669973471437802307779705556969472572890433856935321896476875597818544285272820727734936361255332122807163848712819183497720163070415066620851289930555034188560921561942680170364862943952538573795162431086060059032302444368497205737110124653902219541959894169275265616266551274205215775945285865599004200471123178743793389949142064776045645704744674606951534777697048660607815054007558689861068607285624673898945677631700315174454730747558578532485668542916363316033237601628959691208108018748443314748439783651594591210562303398993214099839527662345362656502912410625243424899033181018895175913513945116900934206415227745065510820440693699715148076662576684227857117574319177331779666432631652314722733273173991939756008901779863026642234845789645502217686418176459366156451717585362756084711330014190414760705801583810027926367068548386728117781740710827824207644320440411372645094051122069023319487199902297443818956690510823748152872727915095067405346775599078822484225472145977982734415809921878545195774747200119180794126476480794910119062871627791618052829070994445911817480778156113716421341292074809075623373343961002657257907029751091224426369745977986626511876023816251107653340004141850421657013614568667457591479084405516151667741574800084927852736622101715592734789528187364009473584969920466121876637119536965066634677770539632526133846644558619601092505021591405908123543690639889396503420264583180974888921701249042655082468511972791158752102478445411703837127780772932375469200901454105346586336810033003388708142513980080253680697972855999473966334620817234979912282755908746937006481574710906458385926736467254086109389985989377528956753496829479420742208301617372083721757885763193326325359607977567228848501339996367777070961976553804290728349228091688684808387710254103012141341602336834578952280840178483800877860012414277352919711186131804445055637022283330837343707200761377038648924367102608553746850801757720812038437475161108161644998156832262755286930957451176696206675818196326095810042147703556220806334911195189058078718964365600441569686153853662493658625211265675215714908986033593503095494740012704353697277971140014858963184697170872682749044568992457456256828861884542096787018922321638862317910655384091594146326368068938586164453812698323730137704433852211353829939042548656697874230462696817958488141147656278566639659099332469297611192101047669941048956331180525742688927796002276704496717619991460926192622016520459949929996847414503792730149036926925824409841602569211728946096628709961453251677652033977839894373485056626282148032161088878249971955285375315631359853334460962116280020769976098588964596619526363278747573763876949571145169175830092485881426954297972613721484374903049807100728985147979517185555763387166873563972475856185926865342525248738252815103845006258913082194566172322084022646466321991647435261834596254761706551338774437114774954683080153654181456413224039332629453084633247537467640470487953453622726517229281562447585611211669812928879370381047780348750217102978284121120062611468626722663661891510151499749670787437055808326142714882019138404224560629730001152372739883027497335632602510579175058947171766650767082220408520948066070995230838231587307703237027355720250557458586944235753001931364732541010210068460700550990805438425495991034378031272010520564346105240650793719169989154038057355505571362753063943494792042921917030585065398065231522119302795658444792005138711640112535488157704294790819707989409462832263833793518221846604078570269926312340081250356361795413235278836477518263319297638295870824663232130712321740400254041605862483833062103613005413561134674820797019361227178138810222297421571402927077266487509207598940815206318743498448255534959217144476687904289097965774566134597360223524568087946812695454045502192511181736553156728318732963489959936255598330618550721725445981658051439792139600149817224063999245509209252053991723903727938757604180454938576202767388060164867897985152402375281678554860385678716380203922500135061606555113545119744994412418998109906370517513717842968987880940510123002959485205518278656208313733001712646312694019153713848452752963856453285101339689150719936999166111261138277360330282798063261650813774073833880290432047149842262206108844172856811886276142520765781399686068432176298248613589871103888702983198714361168709888132161585902559216090716728875131896227409589276462037871306690937692461864448855730265434634304664137759573122307423553079658426047566175280248551757043893900220055619035620550368364500810890488869852093100370915028042254321546029091267566652551038894385244713641954707255752433165483780829215693027876968346878236564898190160620514847282084611917997692871908874492306042073390686324776378271455626682160566471927777803399888075765178333035595591154156414498927424539394256815029614830078366167161237238015441860741740579148830471213397180460354342126105032306640936901128848168298942853359941093085056241048675107695372248481048196970403699908725046255799850373473466872597139254584989869239564215995142693642136311434661747330782834024352644097049752585346964752296089964950089509753452106307621717940046149126178957020425110208569984434349032397272585979596392905866973461824664125972295025147240655748759805614651626001684252715649342547501319123956594369361139158844189295778708708067460547238915820048778534998844629695473278333491776360473869219236383093619576622003259969364704637148849717846150163404404040714032726833324259424667468024939457088876264625424412704627722242255834068314790742377052405827116168007883093416777078237597013293622254755941346306238756811093450622253028774761079232597526031266619415011189200140254245534607204660701070315758576207196591764908141758456175512385951187462141432715564564551095461764708471541536269676420598822430200191700674871271894530918899877070436871016082265899744879981079562027527805715551786375758843977294628588963477776397065568158251229021037485250277592278298366257600974720556823923435920935515600065405506047238622289293043403420626387976056653363076824892264185917720863779242466838960251360629420836591827987359200544677781136373775145095310590142202226138919712845093762477212734293933382127568369923134400166645336136501758436061457660016979795789619838894231957315965354056051142902529501468061011594835422974844946101438303706702270700875019189737092171906717091242813634049396961376025332128449126918784498858181158106745527906554830707212522435169877800933633994730011753301435143363431556698677964332028466769337921153538144016552903134388112494317306611933070284176883892663309348586499797192593776154010875175332433848460477980824588040764920720521913145621049767452058550133344529371391684304934888987999391479046609030242810175025342533810535105060875403649428359482149836758954606598355672508835148550993832565536772299010663416012688145733496312557443853353004651935819394418236170511689069129081110005353156347876947251534721227477170177996408249152775288882649469409030742305211260353606173833881728349111539509695345617838741895512781368016867599107558906181718066668377404686451344425270869934836708646748131118209523816176425660894334641928987260639197458235018935232850929698989043532972056758549888136192805467443635340310244967322789973646207943867130342773040839650391233708219129866913179856362134403270266690238492782325227148316318902594917798392545041746270610051324432998541102744908206246230528391119517093899248255409257848267415743823200654616069177358734974147282519604421050310612929978282999001679567393007546334930820914186942563580090920543057401665136418541160579454869803856815972810682316573300956629774511546396370660479838465973847609862886340420762088458425799921575876974314632912018943369567915031141405365473614036602585510384297955433610823439019324627788782572227436106342312087004162829815691537239153347084187026496933555108458867132842490461843929779329195947993906470716111837336047020360577850375328344961698359896531112342279245906548585709939754914924487261027595677101113771766883841686903439675310309580903740694294144732258010312668884323529060001840754264559002083157217079068864582902049551719532565044622094325463903998601624584706408610500717398413409145290242394036776399256837876465823903273299388885023808302007748252691931408014885598237350264266494084339294403882274923088633321685676196873007637299403582462509417368256789093557184538588716331839979166602781100332242976047053282181045413591568191571064073343967191063785725883283435715331739388195672078864429445274648372356150934643980620075868075005971290614384961462840393071782018554313816872631058017039108632102308174591400025297225947891073810818362103776069668796826021909375430323131425085143161049994158910280935780097566053594863409668350079798871581978651998300490436259445144497806985367730363382422625452718715320513067620342327166060047317129617059030552462090336093193770605287351940266086529476541761854182098988591803116338788680267256643757702215162272324663241032188999643140890584369010678541520727384080225639669332379129404031761992139660594606595137714075274177216717948974728188798074489206428230662015550990047664379845277857346544636636883312885213612116798129975152823725845211736235298828099121848567302716825940106151235262920483456333657605737902864435318637759442160927035551237470447488357714195146861689453760996169637205904464740622611066020569535784565342486053659032684524228233137136106775761945780319907578161498026410959122500482370380683514589410856389362040103819980195650649672961474759774901336564066530557349368579151373940163399875023999392259279262424699411429808815721716837910852290811311318576992588698670951645441294113397358737670268258997937780048766940598200825430284094047185618942514122427016016444977943113550558755495997815091302396260063226820978091560983805140827651483204880817550085159454559085143131189956993758443590054466005218529379210177439766245811078673835690176803915512758271832410580907426444779730143519500912325615803660362433682110997622374274983785409451040071069745767765424551702107552448346071349676157384889111751547230600035997449976191824487308902890055864132759025303114362889040285634368422216316630471530330109654323731177493790993669548477429945356448865987612062462941493896407700481984635554104390467665133652157331569153132716413481139857259327268841340383176719281592788109527305799156612294381670029399347149088722734991850057524585131327389421291386649868847123795422944408127419659608454181533560455611653697707133785579751818879680053705507381896233306792252986675228898143327156901109667821003686870905012635061278943906095573789543842266455825256094866372343805840072380556550197945944475124530037203455729649027234393069830836753364022627539983761741930499251519414243880963573801540106303367075146910799418839232955896224980563998905424026767935625243620116209133428364422746329877759481144977795855704899733932449728130908405842907490161445640218280342867754590094023754047068929175257267947958465003457654680508209321131009498865285065369132321963712775813744740357571484526664211524356406745120221316335942833315569312650783695468947483450384425864580628154617544883408849824619055395847358550424873355260470085212719285061337454141218463649512877726748415323078809896299910003615532259558312153629516397649020006707869880071429867236377720907713657874572557448493656681268487375676385215846692128704141258049318717807597986957338131835719648579038634859899568817412188591129535645757578039622130965860968099832680847976576901808834050103413241072913576090728780812641864154178195145503751618380231831194536949850545494647087927839636046703349726059821791895201956333183547413795525698071520327915246913579900227432447649860761737335803648366842213892136168862108100861130918698294809716083125132302890551475826385977280415365001344452286861532205242483268313711650659636072969599614107069529615301975083185712908475819988786152095616438167454084740781057465033555926345136023809840984802902565011333528299296383434143380865848834334060126139036889326567163417372212692769698469695163162686728410765609341437059597740820328827909469259448395544572138510230169466203445231194173035854045203888891280200722666632698734511615568660514442608579483539985421531850271572740620796915262371328126875108089435502207021203536639992886844411699059029795201499228093398071208659822354361102626173201913634023739192208973769993020510508947370182876893557069327227050006385310486638860912617638030571347095426003963557172020252098446116740682796419539015558328723311053869396714496958153978756940100789929860887880412630381408657405966474469097950221617516803018715191263697788347968860844568599422464392916553159019816745557712627656035928470339212595922533269264359684904260804722643747370990681620375685108840895786179556703684848181682808084575232855545484169488781085323185100043993247209718902983197243633162892867633609305159413175397643088605608651401442755435360049738617771970502654862917180527746935022920422646443337224143945670350651761492890479797159113166669713329823687199316709594020370302703996248083874302801850733174534023424254060409927397332637432960983689919648225019044870477981323007080076774104867520668015198725781391335631512706887355933139397751938422379237772268324330624087994120894289282140085103866600657006540256716756522161006805452189444716834927714106479306071382729125467589680558232753213812854576100025714385780007809586794933463316698180245271198907665981623475144302442704859005830730400092797964375463016148088994470424768621566864986781765543512609949376718024996786837930587440864477645025539757265361763279396639064515503201134741966553472126324691743614238422527961012089205905969143353753848354555053171192035250608346679886055904406990244170550434736759576792131841576161605624596446082920840540847005675626955241793785658495940290761061220810920811575253882181615080450382819870149966161055827773998154967996141248281970692551227509231288894571427368172594110797425178417971209195387669085022342112527609724918608140501466728691316172190491935885194243110730860602021448271662221230841557449920311652792200302122521304220182417155726535413140517937575765209672734132094343275578449553568216511225868182006952695190471259071952655051277240331805568448908496867739175795610219193016693775652146075745606802809514477595238284154787470271827379190774998666093180348826277777229059031233936042047811351825317446851930492893467716769434742050943118562344805332667557552014034234440608322457482343151276978998792427222924919723547893891037724806575949736180411712996626118254274057524060814070965956876246819565606416150084855120956707344123551475800798720591899299134590902447789739482690154831218007930847171720987678727977996394783145594147376648476442968766774858301532683652095367880340735328800427676651520492965663668307423251103121414492598169788907955481295887372848092552402618751718833489749973295179618769107462170960408358263186109666035051715839359718714064196294642084665160372689724297264930689437768131589737287517233877790287351526152726487222661791802202305148700572768038468665312047343613742995938549152944803422866866652645076831638371048779861995664523701933592419611175591734980593399587052356592677876183178241577463756642873483877277120822889069298957620036656466619759077259288239780885601989980535518188356104975658267715723855640662859186545496526079153991138149632199291359025473839908878338764961045048829712828144213642520314038415511814483542708865308150470849268603245664518260875504999958373016613176740713060991799339928679606689607586413245997572182768202415473654220236958404933149180996234444967569976820952499154620598890317228485114761867133452536680795559073280419022874440721056189293419567409157238958005187145386064967709231971234302591569894092253770509203130545293640448900981627931339921979540968088903342341336845862910614005006083620487550850913535568068214485363990819584649500269017163377743338597973602264210026311749073270996956913306966449269295400210615507298926499897779820940794648808347616321022921940006699336512795456924704733851891098861509525839138153723193195797653943683256759616250004776472657468931003092457271799889406382884714355305404100226378038940542138429096499492013413447424322498070480644774855000886054791002751892260840615436069622416222412910498738999159851976496246507768732328619255880478246247802665563466740266600870258085728606115431742621285428857753674444632483409386586776617186641488350470833108531949520663577098900545893796165592016789983931291979408449326760663905991786359782378645174993645565611089459289554812193595891890892857571805330174950805052869232681575516725757558120166495314839029823259546355665748986687748039397936657109392246680442205784557422238133164732331742047962283845918759658966872542749860837267253941813560027073579066268030620015777704179779192891015971795090325438246233441591822928555680221753245153788732932847797688304790443676812739980381138066011343477760022044288878870127637569265687888393106586509979337391900757831309548909176186527606970700541550457104179938874517008926986823781889191901107168567586296974474545372731240940271712967293879764100397393519666466360169879549653702387879720744707442282873362475628204043481226158920921639721696141257770325279267918463960085063625157491694275811275720835854803162117199651624849957455577079300215047774604782553065927687801284440399706984700953502983530715820760289195143684334279637517560620815171026399207757822973503830042765856458329784589943800136957105989497368256101246936560206042760485479969942067890199853534503271808290545280377894922385624066043485617618476291186573116105508855530930811540106029946898258034587919744211848945500775502624698049006793888566500914650510011979481562663261951526622234810339128108849171328631348831827907250987687222420291823446472230456131640677944813965812328380351941512614367089758809726072050689514640803335155171327404628058873180348690484424395300192455130383511152757578746707080746434426412037195054020812878918942103956803327836179653293235541312063651710877110616121923434651419655288097833741730370323907016005531462804452621204480566175778469551531197354049539182007763950152814704123760038522998771042754309438243685243073207503718233244300570574206176391520203004040601685425213824952371668713123349893817715171855345689283709374570162866119888348075091658309952386912995718329329420675153114159400710172051698398407494409844157666287876141450707759103159492440509669035836513579400156826245205779981327377320527149100546924707527028669922771509497306015292319925647098822059645503252884744645321375020522749996504521242326190661185051603865035324286050180758785392205245720174624823316471710848549956155462420119336181421757195286478532659069589144989919801844598473966013378721611798136964460080096000622902474384528096371450325910387306509587332736791343092553296693168719207008729004515641018591672545843962457547336856411038926145842796350704866405140912948710235449648210129236209720068358203166501273781689697230483385045493085799875219439849612893497311654469921042092844087221465529434479571172829163653947674213513044719511140168806146990516918822049478736793752274604512382374710799100137867657758958643692477825847073073687053514791188176354348691534917949874630402504235815229700916648898046175128138053521683228671188823437788948389005667031348047609989321854571095408352274704480278372007149759790524056976435052577147722123519590368346337292180451280740435851446040690941302241503889963578473228138176163614881445763689941961107434815285302926807207293603579887900845120748821348182191181282248895384169812509476537148030903499796188578168543050913083591642095639114539140854187714120110580964025455897316645603276343112448002042526025867101553028192959888594595978713917944078501786530530291737911948442075339365578145952312329321240449652846369394406784231589237317815496576479449912480804455329227113763859085605380486048060370647374568904498933899864158000175030167439111041957982055307002038275418283036852959910765998998043970056618123105053504419354954519833350713994434468237073139205416268738660636842455326583853765372635748021122234216480691782602050009006683040830839249964778528371725833244163147318958902821270911885957935688812764712739329480793666996792967721569471354340720611532448193303035840050899365386593990960041017159101490752520768159022163171887565245799491648513878528456590503004847727781341900562436534078127213948311811744166465900725892475191818304216379245543137460029943756052585047132310416386415513512507162345046908411534007328617872666860030779682358287749162482261754147702978769926542866548765095314427126231758391693457459413326428640457301222742050305501879683766398508662314718059085535659628375761159427061484380068872183162818574376968912970467435797189736951512401236374039417891196911564458437505562161524463310997649717622058033859164300658333786559999648008028291242919401855804249644603140642513559057695753596407829126216116132409268646724771666558554125569509321076227218072287495019708204441977168772548480319371906453183679741991403723769152183228711675563730596074250532833888417772980145532489105747872189717119155307165401098069379573041653687477791144262468183410215913361507740690522927171495782275464676028481235649120223194372491634788913280278631919371066189830740930623245660736779512566340816009932025619270960223849059840480707678395615542574297354795498842646874013960586983931599585085635860259341301640349667030260567392283754561585601067595553365467146832146000092089672245903019515513370974766136093383944318665909301491856132575167748880123194596913025123229619719926360157531540219737944527414582814832798786694473678819739595032960527792904621222682828212412586129034455649407601315598264978036235534454062938574652867525091537232821969074900868470866510475215947993979405204026712087519659116423889723077524236528204982004411848022680426174349344974493868126070498037997685140318532608925145451270730041047296008242563865321455442506039156172360454257359792980361663303063956107026937083472853238712972849259789384731663213333742362509977311630349283645530789780223908628006251084316621115466659532560923927424430233589120953269597213282736620694721265155436638604994249427563301331276457915305631105776206729159680667055466784130883063196716757875000506432774605104235058966984650802352637610843182840311479393120491287965558598432733617497077961172838836121482355505710577743517486269389652141537753188286504927626504122018549662214410312094892962729672752289268151917787140966580513861196702848334548613735031269511628555201237486377706635059408887860952424579924632547295544636220777521210943070203462193458203747383750882216756103189794680435600117998485857338877054640079544674413836685589944326709062035145636462161485045132723099727207578888215610479658449830710272748590594521151972824294762141703442437926537287694101391617539430846021926307862649129345610551768937703888437115143738519040282967903158184091996935830566128378941218219924817029602220988028376642743787530824993268502661195831678832462615759381228014449052238960758608555107879608793278063837270018149502235060359089800631693725091898263632172668502905623873537367588383576052973359028832302175456474593630985063099442047537823756572915045913646216582116518600334250657308044474482869447706738712845284932605028548676551292178636890444734898435865230570378419304793926281745250871433301129730820050257016227974553035700080525945007528473501504904238334095146596439552817445051421280569923307681239369398714804174300771329669315847004811614836001206317113896582968312205718829519272013624476793809701928347584236283939893125959909717315377959815741497973910499135110668890100016328274292233418966611441748754657326653127273227744295635684508817678118741168926651421654480865645207609060948975517249091170024386185810155201099334540674873100627755214469509753609113140932514350476833190686876588190198886229530053349931880284346092416141093079747118474828084429225743166352181317515165471658917447494579320096867506084475086240576661902114863041748417001769708630156554923283141368772680513745940488890250440539010768097117721112491619175010959172217482742486104620069415674374189246537664385761180322598193248815123356299342534891318745016505677148166424286384769364026296220198640537957903773890027303644117058846344379705390788649859751855736350141843356557141442161741679347745741999196048469101141231707376156189225598086565476482116538562026665483204187550893970871921342375736203702203804554581786222622279004389853524369895978799875543734803755460914291274070881276079700902695771274555374406386909284708653796220211577963064797967264189815415737332912763507500159978841594998366804180338684838707958107616493456210907708263058015012636039953671978792942129153453594389652492955623527644451894827116289654758651738260589572461695564476030523727221252796890107884463879538501482692403555348627862992651278531480350977331107345471575110759105359881463009686880152493231420473460953849875379107189859179765601688829285536804512109318687839956098728148008903543250887058854476909031636037224049257385489544669194861003350791194886647772568745796933539966983893143547442776681616292846855741437715339022811028410587312570064755451741190110160465370585684744064425676970860074194563650940153489277156946834477793182287479646061681189463640441318977599632102087573366904818966523394180807604349243770965460318139145496134124345021282656646293981783511790677405399129193445792087697152332497893088493248317701512199919820692562685307904330016524259761677212842502845696537026657722626113055297627469877678222208525707318198350550000906891424656459725309333154821704073644488072091243876191663474253130024935573244644172272871534734254497184319223507417404828614714027803178028065606509083971297383572928267291735584973298744668404834536188039998468756368104975533252431886734324616331064355653543255906759006061213265483019400707709697473554175965255453931185926947968963477517725342184964956118198844828005531033105818182632026429787926349131616546280325952510376002248807872943893455241451895559250777591077097427540173921306578187263088144140614863766786634439235198635370127019768346081609917721991896040029548398691301013092764734145273197432488982172325617152400673494934206544136735215699871629439117695804753622090433664655683121311000165522468845117094212325407574546850174809747593247620588802633346615217564120783542400766556350051066307951153134115441476324163928093415901533218906772374018671667752332259738790601116683640269181426785962340962115609473960277755262481581947597583069610098972139426009669079234388317218936462999843579251586854023463681305094646746516381039467121856873968163928759560039312427143778706651163525760610412180754891603307957619261242591007518831023003522785665188722001911325499782197953904508758274153918269696408933297686738600248457352760150902074189569090632902092060910840068650150044890632060795856842941943553686672063721570463969223313515210183232134964252725233109836065631405035060975762523955957749429820005344861823988423843852866324568320597473698814624805472911293859029503426692509308754189579358997678938022185738976644780267717578184385699203749343352728900941057338414930496803412774672561405656492587159766082721428003457324294389708818877671283671557489681001183049950598948624618696599335686039177609279445075293304033658275659480205649005773310353381344715008012711934612598994779282360838607230638963345814882526396595828759078657509847143767873559465356076843986880445543430227812491216439871987313928634210684654876276469264708767541091706878007894054561955470160220198810966640910756380821189586057845446391225097758284515651822595407324381620233562229646845052943476724982499664912079435860493300969603560689841061502437630607217255561469267540661106609793470319807266837978547807063712883650126675989343216328639101645656287038504360146398088553224760121627260697935450826359434011956226109120205032789285774789672215946945553142268415048752516945103236483027632207202031205543650781989970546012594001573232956702840875626875034008233271981756425445496253524199146328922590098809039094460419931682946937409315723023642181734597360065562676661558200208229350938007691116631836570071232917735248810374744688519855147012711939448336392240890183309809449869332301318515997699800075659745577687386024805679905416381418084297846823761489544108357069000410255764833890549610574171757360327469561437483651479582470410878955956961840222201652007067904622215512800347065042964908741661272124339078102459831174818764498826509249217272889756878192803152774102892773180210225866700321252440182061046376261554062793498597425528026732969790202426621222249203841324300946739203349686699619985583509017559432654552827620293811808961103628465214414932848604021132133423008883441708876068209297445704050551707452615236067930493008598129399900822565414705089604319475714652596146550180892410446728838067035417422270023783532059080330883915217116350210504453525624597839255988224677866837031116602936480875237548431493725697754629984874010101216996821657253198157543412253051272960538893385819165282249252716675523628279772207308389794403747906596654926052036881493767841439734615139706678554849745085000046375779658089638988546288160398720115702547666363291056235606908046864554578767487858963727634847470709942039019584653870914090717191250024330614075890751456364409555598168313590505165536340234512681466228959912551882202903645659523405083817985077360057300433549809016653384760638485999693355597071757824707281666498466702514161132313494708481715443920891589696555519444621367197123688932841818357201785211046805439095690938033967604368235124725814101676697001812326802451894879560710194435527006158002830111750750628669777057492769895573602900866303205103534535405768734437090656206082016548877419052867951783650442997437697657747262554004135337987282813993523830023746189403848620765231648444445700993518136219411251929204866775777637036252276948754563536313568212342775398540818963287788816833922903715799108633997340989505743001106871463837411007485886591471130282251780041094381546123463737661205071936311933236252067472435780954050808228329163959172325043875352471456939418977149752012259001244340036665450404227621794519392341235820862405737887791489438008272964232186015171745841566609678533373303348907087406271144341385179719083323315150121777649638533902619467629974638524427722827439476465630914171673868666507874377186239249565391418739125868373039232718267122002800069856182948336965053264097199201294283204354506236278115287431910796607219255975665009591915643326667756899264254723544775641077658646646176931853162074877882212481097715285182190214794040652732209380786254301492728053351244058280557073456761727174887005602388063995939871126962280920504858010350684000044411330174829461157771857943623136882062004034855329780314022522561394934821530879439458598143640905625362258392624536787535913772423838057449949645227577056454575405358788251177942862140793920958422920666317355675295730714925550004822783945489687031990509415417508349225856010751233046757275153250653011264189614489400553349270410410407462462833934266531317663080381706783903401514254165785499959802121249283222654983865627150623489063881057472646227106836446012790474065490630123664390821592961292342120491581642422532442222858854614606791258468139043430894477110555432673491904356507188183612790883476644116488147520850803190258860129151511916899100105192975740954312231482623101889660052862960555430510968262687241890327739413147476895705113143144952140808131561833670994653259876689112596784340592563692351758842212055213783135341497227642985990558747063260640224972834876857937236357680048868275799530973628668381243811485727634888660842506817001002233470010385042526047285535633450500147171548781887161602670256105317216957375663292675574471325712197833097621665080459921989701982191304064995454665658820597624355487649998408057440360055338188759032316974347924490627728351656047112439313778941235793892821498186689328826298861753074707246598221933643286619714232726302239178521412869599519226450292299889403889019549952934592512500522048695209594022937826228054724681761054202310489464658488864168053265752416099527030305588210762010030415979947604978040390745646419579788559183499241286333557968532782069813950111893466926929800702428603351734079901451405486828481295899186338247372475463752659764303915832619341664248462220003526194541980604874892222836039326526749855929537457633533880309627185181637213133885208436657689448446382746037274719559313989013511164100440969440972826255954316437929644395848497290524116019181778121194043691024373066805772247125516056845118363831948402840614336813369415977983248344176568979357733877375731382645493699621971986119855629756921875948997220879245724675399735186421565179269276924185680603224379524218683358527440586538196049923861375784829599162671291540723951163017381684428744614793917900688864982963618676459364392590594387366177338816454570623363012438356114561187781745543142115734323144521523313886146282925163873720928097783189343050017716233887315269760114556035055451713540108232207077483262447205596209672014571639809404957458974195744921597636341684993392187195741208508341101509918494655049974337843133898484687442993372918800459805588304427169418616636145817560396401061431216010183651450952680619972974333146105322934279634960148390414956512717223445145625350312245184316994076306807674049886817285799057206663076046257117607368861339814477023977506402091059071633634346955020944167357107870417184049182612297592874437466589245534960705106939079870463352570617638923090729415746687898519804729647120425758112863285475564350296196070608167412312011940626737713786569932018761796641369565265397095132867881355698074145093242749605148316758735543097854225957924951452328516935305966426113435607947769432553031736329855254917066290149721661220759638035718937794902624776757658904166640906917039047611094230898143200647172332336582467504165793388585123216748767084682864688021736227545984464438398315801492988222087151168041192606082563071551285400396029681724442807703488700317069530496579714500988418477404080620133330818386023632044156436008203605638255486857245102110405609362697877357714865215592839237131740625356438084444733372307490821839583990169895094018391289255202713552997267589857002259320689552857468224016116636376726618087401618538196607012335114031878011941526206258462123821093905359631779350438338544063426226975361229554259487442568397446750974810006993363220010674674702777425972624470849567219438679399430976110883619473461190615684529016401415744719595112089288816767149749478771645311162970950598508269134364892427144417168363845014929615692980645739903181089941127581398342242388642394948205474689588758707561248380631584908579163557935560045535552651332086481759697320921797620513750780718627896893755782840528952101002522033747509434917193061899037738208761729133593774946590363202995908755267886568005064443450021743343152099653357597003886970532690277371199738321553068854056940776236260792149310595272051695832479572372391740859245823351795051515627289791769367116186795962061785533028794923954320468267177317666541801328729464400018732960239685816315399271712933404256928342803951797979836049621805035781352895024902584345513349182084837735344287221717453492099248174842842627888986421190018496922728679389147338622092135904565522400379198322944147540594102440081837530596244229365342576753568749917574918524822285137546103149623005593346264631315481958613665741962135246453789175438768124658767211596263582464861893883608935132496691273557244211488135968831884516329384908342363946795621448249423536312323270410663446695186275280381772480481774953991052482771361916622705241307148473251653197204147086931669965756772216534464463373978449942705140063914720896272659563252664808557390722465752684261181278685882187930161006279736066372899980736080978830827170120648558416758788575708074075240330217804147271190538532616274511171503361717273678728779482483814734072101888440147443304345346694425870843729327219215292875739783733370506271863917731889885633173005513345391792291278780217553396324626575416622824530828939603949693638425400924622913256809381487880701091750880899357537453020714468040503820315026613432342620911166452004189701776147052324844356500912357218861781879730533802251666685062166135883002049376796751884660820072633575625803042148843967061042966909290301678131476837482166630441458251502229116978100459349374110667153206318933188433806501189257893046203108252788005960173258376590307352105812282625953600368310866614581062256581106515777236467711958384712828078306940878369870909940502724003533509042631135118941096478660129614769279316811856949711405813877369745727667679429277291164869168607193982751144994940192079271489148751360154222408013203266852411760110398109825993485713823646018035869802898933765143320781220945623366057625372924799305752520776799126345521517955300940534640330533332988555970761859607281559255855365237742813629898526522056475882426190186717345174033363997969818181422277725650816817364407597359246701711346599868410430691638385083919790886641330788318656609514049717402924854969893670350347985077602982379273894368823030267855525198211928725669039511283886148110816136109176546290021175373348531266078131834744444864956720678403777227552930339655963952097592908190500899832091933865289313633796108045110076579861829080015696275719054496975146449737521114925672875531511642636961287501558509549149096379974290593828268625152414870183221492656361244030971609753705559022051409251335845115988779638295670840894897317155028584653847044337623502011666254627263083773205394441665940896347720223307264353518469834772453668792283427676791341884714278922241241986870373913174035745638419984469593546912036967419895904624894489874264296711065826165366232657981510847249113620714178508901775491898173308504905158086028350271071358469035934820267159139070555220121454754267716171353548602416986432991826082177773226400852755096861403571143418845155452648603914228805341078528763140225150547023995573257563343400894353986876857087325757722784035762968947263343956525972499901205701343840394525408687241177831989630931829659331326251513986482875475341315709716053414512693300422570330036296443782709511246537784124236767240220120547440219750544558910400827609659061279384099187958946411023942145053571491129088609428848885097044110593968314121731004251296999875046422055452731097318355862046894427115026670788071007078292372707207605610245408370348238077327684842471422203951236848675857123129834290957392868161691045309827213790525849752326353562826185463716602594442914938205290587408298042331265679228505127314989108739456381649463838886161426826277188764043341222031412686023212562892730024573206102551054313609389713084289024676433865270356023926630297737805033277181432681067235480052109410671420151407017621257392667656659155217181620649307026049764098890084211502255685422904879331129787465048918178262080337313169298344937225356865446359388821785912162358633191008628373602789291947097541783976836732250387359003793774026139773759845275014302065621353824678373912615160884421403732732689155799101677656993503523573939507536440361522027046313073435667134722283780936997710515403288862924980329742182417285353752289913189390305589253269378689343814691532837183778784953643803639637683976589705432963971777665461630096846305748728743602886644182084008650741970166501589723267595487710348616889712956790070052986931917272941155285453552386971515450005709398458621146258765693871689386550990581844037386238604524202688452530334442454910196670454258175869008551517783722342778909177380607352034757729572659610194342750249151705210683898606404045460931675213094137592014562738504166387999803913446302091092037145313052052052937765908123128290839500638599116458714510489962501725595305364876800501311413087361696612348878292500965971074693539196202659747781227724440008389687986908734792012276094521211214603742437258978423840204733002341551506108279536902925706463848246043707869225173583080897475554008034605740933113997863325484043161031414441625636362280869354824974866488166058518885539365998968792330635598576251557850762825756795922503003717616216152825216748147008363464360882072273044162801244331369519513594965011839277108743749463280558194152746926829823483779139619873848424179560702518849320896545971790528680320494605599693946836226406381743285979509709030781197098711341751071214094586065244661813296109327958493470142493479838366378186801724253259117369012841025735142425221675179250039324903425208089396549996548784855786374801676483597213787887365971822894963825548033982176065693111319093079111063752279689595718343706392402608306967445796635981771438931502600313554107875055403294578602454938443081730783118819998616498781679128579763084920572388450687685794581385960033019735961272028378028716549226882499194220659073275931393848968907563865601167007347239758206093235171884236973825411990908573893883879777454360784174509029787199328715458074992197812294241769926476230492707968679644385608843988115439986018334370799189014457919937209613227175348642156477620818400626979504223526384717175595280690304831883642930584334631275714850785865334549401912749621897299918442845197421676079140359713171393318790614804944594039232550447910404760472856363683068925071202543258244759300117329235635420033850640420607291953503226770951991902329125635113474522281638930884673351567117129929439564761903443208927509126752849254267560895245373107234745044502841636891156017853323895254988638994479168538048737590514922726407338055899478162512098024642506212834686135709337903897206040765545159453937894175796379536388186287730351065483156417821823311535877010379262106753198798149034330719215582139492163295876411094091714693019948063007672769469136602626094491137326738981192346940132291942708098378632025284407746673492788732898189104166112550215848221692518961651730073159222733156593463265651962879257195515915780800214109780373705441003094217000860733238865416666293319334112222464459531019976600679061467689981130974232693040637180001799801185366542288421006197445084586142092535860177194694563224892660929668018995866336505265131536392390611243218303606116366722924388768328157546701015814996384580374596566352142532013628150392947968898154817457937320124120294814670446356158118090221406046360213646468316849243405970998941360965283662213791865171393869907041778678778807125170893926772466956927545562778321957523459841372670706244772820402275498873161729844518432464078802463981133303561886987093004410175975449840595151048473831427294018776966026226392940610346779567596769215646366452308439767688966821276930016346896314682994241491256994484855285592946487929793201613673478492667771628802185160004537523207243276406959093445526814278883898449703917631468363991901219026358635600623181288773777114906119204871634707006669614261201707628672626437216592925957039859522181497806715483058610848103916364525530729868701250429940924926534115333023001782497672919889412240700781889756016174495107809002216309255130994833004628266934040678888917277493061304442336390663096288500462401369817511720131687059996031362998023642839082714495748440216333356656814585461606166040599168486207978201002899076996637624017212536785887924597611631560835836030224852757550090714106561026959982302875542315907847173625325083144538381791734494064440621498684945271939228250480538788485915392668841992548671621329666242433055685394676635892158738325596300762041424864327406781916628005306162448703326878428656108994879877594531785233241922323366964769855871248152084129357047393226534700362396661070161989788557703592947079045466585022453731115284482110743170235228987939458473264539652764393888563406474078011819890853345221516318737359664038855084191173405086084202868669413518238941079171812806152840286133647951281043344517942753789791930309690697671975594063615631679407159279940365263067338672601647278678794628986933477101071264710583083008003976345239819294052960286790263462489308309153762484667329420947288974348089724512861016735300964678116042332802560353795831834168474260491267036023953918455415882906592930003956457989149061395679216031218933647038578133903639596793793076270669251056606838223885136522509169385637116178734559988280719171893726195380078883661646855979274495884315197860649443679096053711571732926974463631734140580722628073069988097474956864615952418595378596828189656293703294208505750075145266276092422747537733170949784716906233848866552723458944767213665146824890604749986830193868389013531409616704226481816652759307792837420438986646601904135299792949575119260038234994394732116826894023364829378481159456708992393581632346399536489372211169246188806037357755225035777227987047310859423464202095777231239252523112692025621258974859762807091523383071297755591836839102130413701429561982815051999191978162460071120825614267741531035258360576778457635556822908021245329813811725318447662708811900634112066897574689553919305984586782000551792306629383648711975279092815941796506309347027206738858476183310595717421285989501691977350982384654584235725664310663555377794441955172546977135102985968199603755381037532582979777214311007209565326275675131459638629296491873859179267581236163089705297908487051413642818768668030380762111947934049668438342653970108075536275734693062577670202099143948129113887883868699472841775212886367955862934638731003371702496266672441421284160278353326488635840862750296477529710131649664209737037613694986902419889474168196553224755676342894855987409356458945250538575335844603633178640281070809015900675330012737077974618920983220029133735703092410005417087845723015699083142922133351400127796910998446736478111400047019476719927398841065686283146290936736197464580658986067804443379041990318912882167157833349811969540401389534904071227922990967082403705724580289887521761441245698257548476526751604281540993304696579382705146456028592943191470528540992795013497777289186543668242146489909572121547664444597243663556987780754739804915454091905550127333450742539888394498207784503051905369902581252209082116623330897345629450183784219041450287859235562622970552362466295198847064521882581912541226648784558473751051335254099610223303326989121582488384248550213403188338796783880893010220434604026759474962675442305802926340625040390309967904359504159888359505250829938117167622444672962412474832818929174674818719619278334928297953894808469938873121483736322287196346659246665142182923220734743461409283784775135343666435007496217021893220248861429888755402848381062291221536959121508120600632641408208370910445983986871309995680466166816756049504045483836207085220544352851361796857303046632684458341050685005929619803184342863433783306241899932524416371948777977131533320455237920384199905938466024930128150591953046710147907207451050426684600192600544963124172528716362586282237461995240488980200618508963474544398595027837638633299793296565904802173576292473820847709632388504305885628878580107011992953241496870631099069437109574183369425382799817788884740914278010995501417476477560561648398364981864400512568700882112650659395999163198402571404424425527291261740225362963398356156022008122379820908286849449848581122350412918504797660121510440018869178970783119444035421251217693999081353946828012695547292648559602374536084168629726801109658063163291746159470634605600253757733561775576367649669382628485779512584790430427099211582429311573465483981180437599503193675270023950821206582851374879043010441964532596589530014889301729449213035801669654381954226318299937046863251495976184029982482296658925221190279732278728814413896299570454231441430735730681596241339273417865971352486618984007104396245980713151913035300750480112590971063505774889470910726853327743390172923465671361077344368695818544202066940086475845182382417451131140566818531018866484250385627614509242975063297985928451487235442834900114037135290966067982095179146199544328792899045582322443264476841618380721410778700293288238921300897816913042075803859002460223423639620832086173330060865133318708270280327910679899366434558572482983941612734566426838173849876970466778508936232972585940759674691584769473162838524096220888508663229385260267940772535812164410154415837671465013988092037597647828886731108186917788609433255039068184625847580474418270095641851178609223846005440371394971261410380445209406162376448536031726571375759746836760278612069076826708432791895862652595375727506286549295867680828560398778185990177160383172136676501518602939318675686241657684626949062159645131152065490299482153678615755776535151325755393526207503856862564135680471784495367414590716906592669368768645608530294035521950798837857689708806570506633990447979396437337457763111476830875625842930910643188403914731613104981518831084983063101586433363551444013914256422885401942534779144572079424538700205357432015854932052266820422191531318456436659905696731756924847178508470974394282997082267389861643204943035473167748316476095336071442266377794357886047706471245020806082174303724562374763490438776370206002478378435317239695005463168875689388653595867629181255487351343241101176718955921651089029920166743181191319297195477413740429655394707800409564176793036260231776729216479164916155214030081484778265273933107083435652586939351440482853911922769886270786412055322976051907315558934110149250329207305722306462709830981621453693325124629626221935389006061658123441381175756937726558971879130268290719471509100061448651422907433665815426810811631518064250953935616092939557560077304038172719639979012812709751936153024204155864610227363818045901054725570955301659282655665408940034464172459258063828176906882224310031874741849691502516970454663671857439186236724970766921499738780720403325787162361789818010948504330548030965411114489174511915860808976028618920399569785044509232220082386292865666918198371897803598271870402921091950456456661752855162523422370645177252322831801349206525959021720278925185862284023062694324017158689080312087515232432465158504380161092855198504520781148604112586178653587599635453825007358356834684598973234040285005991181148291140759243583519970173437593135030366228359194679490178702889668064439741532802795831181870840886505965458301863046034875581856857330729094998710822273614593908114298033399321326011707623987729523005384853387343482387716009407081758753246848067616398418312552014991514646945179151954530807721513760134615565911732260927845910807253046611369070093923292837387805198074133643924164366583233586429923051111045284364146305524668296047839380959425153927601799246036825812303455726430968128807385757299490868914816694676182910832941241404613620822960816141840928716958431507510575175435695018241939668579970278847186561807354499450796156197673794222639940358008336979488580308515179854365377516079303785004618998701338913003927328874882450694509025823341321255484371167970034653131016168719576597204640488422491177351116067130004920761512095179576699146656759240374276124321541616682620590938518892110246873174985818840805404831806182052645620707495615253261044927702960788463208956449331672438313842488104955767395605831056745938609520918036679015074782736630241204327850128009067273662126977687642092262823962446252776052310626718242688429433789624057741357900971536573170213375678266172185526401932121121137092706469941667327391078135715890204197841130492057759176856540363307876529531624083995420717760826539180936058711441906510250090276744064557397028593664689968326184437948550715547461943419697384896481113503844634445092848947863985884152887351005028606158118147559220889862132742224618161091188226490073940430299777887306714268792317589734470146124734385178482408828857905054948954306321919243312535437030961536217797936342249301103700026683950959593491865091639396147697167016064931041612123322364368230736471063520554476758713319757160958297665320679041683502461125533107724614169965243216298298879101967445334388693464734129721174042157414080038916623663408469015469946087894868964761488541227680063062675820789047117076084652418216406764186598305712161002227299341181102359345200598241753517467141481194862095815894419010874944333587117631597825773655791548418102865820845822677600386544738525459921911592776613649991716199151567424588436073169715714969104149961621592560672094294252368691358466930375160986617184641454122213015877444773318539293270961200047888239759614226137330030519719260483845718800892124358007940086600986328677414140941009967429104867412199132278197975267008937819659402118035441400093992479615539143841772192003316660126134590213091257194389895274324977980272496363345247909669596189647787653306178323261935594335924574813949567993514546262905332384488755278584395139712661730600330654168588676715697374552283665524017198282154515191179848451802777008511245205000555538729364575829515587786269799762624832098945496291956022008107678300862876427493892603226773092264345761365619045988055322936410833129866222181512495995383580471223406963303881613145945936433005383690840256241132414455206198225828610808439767297539849566600651803398967427592845150111974570553531078865187620981992863919795897328805155229630178040532166421444611172160953882996737600935022326262716866053507755357219719548864718792687072892875245423923193956072095975032157137372338982072239291441853555348610018082835495190320905229242006453497913486122173679969032226535800353603798486839371493818636661451877512854028273991228140254343060996569193535083087361111306263564918299202035383408200228883825403860247664538991588903250493634859113737778091117015226969523373304755871082261287872948659215773933532522485817325446148710506804624144336388443363253695490316748510612036834167890972655046542374028108467806938173263412905407099264580024656645604545242428237631287361257864768443204966768882837077618679271552871381624414144834922795436632828549718765218349270680710439741193765633477958948822037000417901299373418026241147226482317035502741546109780617654030501354857732210953579422502479721339814069621861615878527282081732458408986613865025736671931949423123434268145198508302174640829846164794514605324114191045528700255367084526024515000850060477070230849803787687197741742167053427400091061294055775944752364938984686572681478882493538750389776932796262244177969586363728422743765068263835687037995022272600671112617109519689003785464527536088918671720244239183275687738439096541737959145415669347539159920581833237248938227238123997017597335398654605160543068961290557050673780640604921747926182302514693703196630585461197474706923546007634735919412885237286117604749109107903492114064454816877078830807957884751915192078805686000640338258150305508438509920980099064696021937047669550964564389532404201603819793937236218869491710319624948039007217813992191759050916497755699783729387340836176147563706470681919031115346353401418934932731469483315813283159291350391503069002738684020166024858878806973142185610880442250966060013163408187394863064312072998666831593596666252088040713420021176968682407919676429208149137444562973067075687327087460492713771121512483001715043444446351305228639708257914026913814832617616229569962707045213178847777714328300299389570501040682822682260603953080631500751217509228547233812176079428525616380556178208131287215959583421347176186813053740200650306231166729277086339729823554093117416303375325563923889101349129938916937300927723007556809708445715660089701480347092661730803496763976713127385830150002877272716444200536102185748799296042889679262339748631600159996441576379352892797352841037514751940201073728816980317300613436797312750131866137134263539243065661511826563692345627444124190949713147719359714504093894539474105234810091811615011003790669604502320583083656342348448148617031939765757857220822038023077133648168262634605628724726294028295626300283668386370998665675904670161563437259375694015377300045042227751406007067998345856928796882862220097745758249596450435065102656997974625084509743389643540096153987217322319055476172398731493139261781291873776255709760214721863758156746419047266788222932877537444950051594019948191864601472422990825557971755283709855669756467067159687996030841289028729309333737566399590980800531243457819560018672249245845021404415455581677001963152130020194531341554137059335169963509193625598391499618188574756665974526082231481314260113808962248595998265964678154004336212751999248327669401982749353358314297408752929505905388599602403620762654660159091178818166908484344569119618876482249289064404799230863300146399378632240976503615219408314782101165351046301606209773360148480952518906017568056309292129419844299267182940820819347764356060196959382503481869983012988369925383172855153540954564871222509545881664851116366546239518272814895449304862525536066101588333603504462245452116491413299345799486369563397117171129306589005316308608686313762887963990898337059754264886453328188218025473123412036328730559824896315416429999498773926826578712730806947516036630266578140700457858634040857076765396308992713998323198322596405137875408487379662740312650255265663247488780391174612564782426998571429788930123629813805147328768653037920125595131297351556741212568791842502379673781404178203609088141542742200190273014143022140376081047702197047591698074603208443577574057353766677828578309940574786929645059814071231280249269754472932286289753653214787745964062821313703009553819795289728269850597579004057950311700607989954428438588850648946148030856060940662684742699772555105231063315471555760563247100478257366987728217858237457695826942496052447987759088417061605233283586442445061600048112375884838381837386496357873775386264502643945256283085323812342412837002729758899932625461155221109136041362404620261068967993703927321564585398057853710795057989991568833783211464917755992237551746091480727864016021044270921739719419001289281979701981216407039219700515982061106243504805373703905692334012588383471468847106786541010772375395744125766264749264883781321955953142877453872681076563473367648140306062071257371525686845086380310210646952390387232635091433100032199874681358154642749805863380763300348624797377493513662460266336337728056496784694488487446392961685547766656900538559584127735910484657815487574484660335428409647552996639018406787068776784445246549531665562014476799497158779690476157059628491308518440322840407757546080595583956031071546462857251807107170589380028772240607834426515062814206545093074131245854355122569377981168183885125815318515967729307767789440741774780849910460772829839454932277862383598904205922391861384501843270725444933736658584464535183154512898456259720708244951064165953524249440143363320111375246225770408753571567230525145804266884418612004856775524567538069983646224415359946673539761994810215731177471437682710968557116290869975722749137167590186993353058112049692494774237557826553619831352397769017929598607306596530629647857580980844179965783456152248028969982105274916499026209939969947464521158409312875636142816067323598839187321114448608024305650776891038741516068676932327078224791078764172590244180247673194406305500899136109470945564763342840473696181399288275904219920870743097928732575843442447188265399319745058156773844400319085456171607751141505850850530144188628026639750118647509738025124308129706996908354060844575264398550134334279375995412677808127355877829022943678083474210979895580656212791741373246621617369691023714422178554821295349995495375951213790373719696863946845441254631812287969099514571474672825548841197251001365646215920243522136280854535043380162704193608622579267380368574407473240143457645377811474863076549662194034318097348209267290041941789500604660822741974081054736725218544445736027588257570080178532887948708785349780141061016949614482722259947956683524059232173117406700241673594918438749439003429630133617500891431041780499570154974461304203552468722524170932544258288977883309064787562136008647785950302612549501162441618930334288947760367315148087342235789822496482994164498906609881230738227656473717084214262876161496718124061271838557999646910256357971501825632609492390656825120239952864621957196070798568507136928475718342361229608072784102435454059030089365933456062080648498430527430140043405034327183736402895443733645530082533115696607430429327793202187357484531400777339798195713823924145632825316741499922183846723610273912418069539526185801558208863978995079970957617966171588423769672292593313306750554994984278414240530481902097611292674965852140323035108075009563859516330522384841457171178723713282297539924769058420704659331699213128163501341633909480481595325562108312485760452150007696280391745216140030155422498755027668449009989223440842974116675457570513104641574458847915621082139428543007551062684886826856795126720392119111395477786223179080988274941334668522499451691857871158229650393262971452163043662195987288083318830528474563819578778053878049626202743150670683825038531694660652792319281823388287809255978113990318956265805885854949447490250008762250304510720797559960844559664200002191098524786737130921183438924504949424938365723514116437266743609019606343640038156410276484293494278776426508293131720631326348738492608346963904116968548204432847918126652777142565174265459094477637205557870939925489264569443754128137290242675153563628693145796786577510197657556614295488954653927240754160398056110717084821981323243953189842177120758391630190588079303650780966026315188250412083823658194562680220620103318814544584380779204545408980174869023158223606327897795427884034112556773298714468628895175825846752750884607336150201018673938444106873797500037217889295417732843831345807316801544900843127313947034612049047554990818540873423105371923214775071044973689254146641854515224689473665216892517204762190246394185615945196168609551966077168482857857084475410071409985735175917751622473908102888200749981412204176765809357279510547771087699090871813577731929063847354551199796845144632975891608320228983414093166236161647378330290497713232914556714178266983469434120712352648811355967151386614170765238740769511033561016128391563412007518098090172313899583218142542900282354094687470750883214161426880500154232655313502787861019572941695555003012505542832435578934161073705750548959621989138476125202906830920040979192741490143038956143459174949663419469566966117092247717654001642842228289579444956006090707319726658066169215386380077425648514918613922452931507429997747605274471699221413897754647548102565034480037891892070179454634159540061888898426516021177068600522080471394077261649424564860792249806174905718838536740807969505489844375689945662732651264759152750404684576012748705866464976450072563375313596065019356072247512777144197505661403579500769234071617285271021507546504491502554639589082889698924693747328991619283484964488581401055430046113681239571890753541287043751233259855143975756659565099433091670531746290173398840365812480151052654925927087003033684636875212831552485257941663386212689806544005606019448232086957580010189289395054243701095768736126792087284140635428668126881099749296136741621699576853759677402185496870530497271391535989305187280478837205978280157198396582246269993317433392162749489427373728147388645941417541627418786368524856694953522275852049504326012115175863212651881311819663856108704020999255658133321050501798501826073418628140110126393991358117105952887180497785005184481882243384999881855495023011179796304169730011362299622192106336796972033750047044280962839681170548140075798117937544064288938782774872012135212845248056207690460846007653842678708013777302317428728197754352403310132926480858469088438698229147556581828073326701928798520654233798258199869739734921489295109048337134735481749397430404484253155439996222426526032718293051242150095613732384648855399690091089229266199015705956293923901193949382974039623908565809667458492570826608934828835040928694173365345712969854641697744353673895473735227098783615461712419315078517653918450766008848053528368479312961059262336203362956238844921545969770007626560198874684357627394670538299360755675551765867012699729697062329792246487068575620148481633439202741455289841841252336766783494529485262360710271861731419440848328866060290807173787660281308054778985177835951265602336343947425104921994536647488771066319130288517477994356684085170537614027742703506031729323070837562878148998109535005396992607982916923896892457640951060175817786123302193325003946792036628000013661772987410924660815494651680033165084934972893515989489753584340866431581095115445095801735507557113606188025825360502963109247605920739265914949788293914793782220421830770257264352150358668125161995521761522377539094805551206449717910201284441462547632483245127547350703404036904504465865754120176375297927503803046154102819404525636805755839159928845723870066982019697921437140387640458507808650748906977096482742393673568132789441119557279549314572318227208316185891379965539190260841461476379414854547657673820562640581101716297287959292028966475617887698006016908764879189904764557497159055909764015139242196852878198313217464995456769585004042834167456711105068908359778862506733170646835016647631319955922334316543578038701630198029078263924630160833670682936309375067288729472383214260252985822155231170367494101826769091579511022149296284687062866641137555639104148933836308420207614765468039447004830115517843214734452107212110867808449965315094330071997858468663458480724019965966229614880175766405945385973764158906634302211986178857152424150491898355528509863789844916494393517135313163050436831004980085779292053976335391883702768248991843365517546485124453228978275135105158558753774418840772283297639483316157995739560089242969962509812439871197892476197530656259126893486571792589701918618293711747683107206352872742102316976357226530167294866649236670577691136791781600917728505683866905256073119752837968901718526439063139390277532589711472121538322190967724615376560528132195698308698461319486024132062811428932260111687703920418301709403732531314498385631435322106662311573708970314030273620898573880777698668823101061551851372507856626343148652012853667468597017713803113821260293541924983157119704098099038652627116687431470257255897979086988956476028788994551409371245367534121983011762594869400109454163242568129903668176974431934867741951678205053321534317368173549098522519551356683574879878124235863898432579200006425766231263685686869546506042885890925860302199351861415954813098958506263593685900796499431079311932692432265076458678773943190729857761096028321882257335830194871544754777190612666362488442949849085340575923282246099760442681901756296312144445528306682648771663198926684761553957516844318509317460521045183507763537742948874471373962095294405567079015481780989725841901023591293022410563527950809280680982491736596996447022708196425625164612220390404789929892558009709652889159162567813989237233829230599425469183076808095518718546773068720119227028802077761230542519896231752043151624675771764598886023694520526139100543761084584829482470204309638469286998896072345615419710567451523039628846543556112376609998924192900430858461339872071590251940471152344441540992332485502869152780335772689523864785255870892419832101158525559816022345429119623542149775435768467191540814202060146322339426228366204490365149729163864364838646008730767412617573679599887474947053381469387460345363806043476222215352134874685832666763901243944988445139715660054596802136234182166327811618991112309138630192155600675419918390820212543003896332201287807537335628309822834543670645165582937782246563029854880790518004703934139748392606682868651961309531669518416904031710734447586896823875171243238964474512939600191510804039515685870376813536079781668520357766825413069281238295079198325800458975678365798194808348080998772754636228894030957172879924715649626008451919940414286524750082805411105083033395167010062371816524233477395032152812215330724246907542795731006553252366353182085705916466773441372835891971832021788855952992072242701877602662416106034784321267716654264804341710289004808742833377746358250083514324328523034550961200905618828901034404027285852319372822418379923799157050934947995819867252622272806072661412827920088651900481216098729205991671817591790144427156041654475654779747570217685133628921326383161441438438005576384933016744568307123368518781711037321569890769681066409697500625026899340617087954812435560520507754275347934928707970371074191317231623676550717800186279871843762380912032462907081829133895841989624323572021315818501776255890795782038898643886485264729342876470226665206499261163379067146067063046148401595751630947121116640525636356190958856201936404164742347604094765846434007833674528644209468119997048859174456876955571087401607793137231067705431544172023089018041661680742080476127853480387709442632581027457280547128964540995201411124935823614324824311610537576412917567421672455391963368131551425755938561097164758481353515136807065793625916431549968884814840469997454976926625717400722822033068889731456408992517235044642891045922630177189973282929716167622307406903079102743628277021376105227976447724152208805613405631455929260692280204740731293365616290724750669991908308353022049813814089305627534061041983744866160797735174810648911682984949560763679477689942673562510033063448864971117698325637373020502708810566828875214943245744540242802923835423375576196191350095292819777049609835729116693905458802391501149700016133628435706133109266562919075776060235589051952849730903923343207530934391204817804870471574358043000717464160576095713725228986262939823576955312154933754437970797910845621348898707234934076806976466455763942112347720652508924638390800051077916686189141985895810862569277307646397788966946758136130714717648602276306159210105026546594734747744406440403664475076899919753202633941869912565692220181023832056929192088571940165170903827082663414392229280150168391372142318819134682560027145225072889882400956922986970267002329244809072119002203498826066946095770103963485893351287955196369535334656357891189941842717517894867765941568237358775087932958531668737634872926553926460394347261605731360036175853296989541928945586795443884530275319907982497201639076802574368562314920238761128330335640996637462764132748941892622011554656044260386733594634870044216104784982334077850119247373088837967446737407000084550246531139489972861980216342863448359022563818611023584033431249566012236424371164075715916087938501656390489189165303965716627374222719949063473909777361742787529676253960996387089096359092491533690235000126153324887801283984011811648578137439229021175315492231726598767550895593004418150635509627442013960551488522647373573630500856341348491974778350221914409249098668474007898757516110160958114416531868199025857664446290692767362202429452142197588884657416341251712415247548034848728689890166690908714750318924578319755867650302533118544864661537720409067139446703911138094929708025554601714274947018030632962905499136529272745326698959805252919841710645157845613698685459257215916057782968606137699557776910731805613979750612204520336827432067416326805594417588232424151308937305974713065664853338280485927253416002849086625775851584534624016582949423485585742200453343252932106701623322740339709411118598095141520168895785753963233759273345764660020814746384519972322554969150033376881320868125648444127823217808800021485610798669393453705633534799661781336340157900619489583669657551178623749086250538079077242253334773547649647503483686030610339775308812865462516883497797201213260336004716344150091074501464674876299353793787256220393873912448217488220183997327000897628712470786950501082388946446410851428552342946364700091009709462776734823966276402083102748615943496326628945083705863366219508383469204940926810145134269575789353550139501439169855405966459426876183030622047239862353011280770958225654602915737791508520830094210328811465618701529177984644754430978820769646975567627320054946694099167821200204535355561573898225902098323905605845051849093074325422922268472288671777484885981334500279137347997527330617845776063460546512436881405749870185005756467219310054642348492805215826996328380047762089222887837933158310820588000644342630091739774228540107112458488005252397763971433944500336604139360290425404539945887224647145771312833898360740813219261043931850585869306158793335841179332423227370420886700384890810092440235375578317116517775908661056779629180184443364701893037700034513726922029658645269468062825615812971570115572829554740935428429384277396766758916952690169361570689051067124559944981777005731209260206361386474611647988189549085454052221101800347643293393454634311591672434715117052774892959757476642659547690838915754603735573263716410986519534005762817279560970863840042921848304660364693675064592748515809792717363461373938028040363447459635034412166710688012204357640650295177441841405455529140081594889111822258904124908181627242807524975630235911942810980216550343268126374917257203162823529368745899997131204115129435840431694509645874484595728336794392967506139802798622744325101397858935496715266927613645491432938480246089667186985390008815562071001441703971311016114510499061853847480337346887349717983384267105419394233065064042088366556148894806715036251309341144130496340918150005206930501613388544257255270570179962854772027421284534658270269340848525586617067729074620589689773115215694798913475079306664919068141984166721401469404576594032117869317041687699641165189020272987791218414871720864615603448598168319084399180426387079070471690151430552855423431725986125196327403549561884213926002180276519265979484128519519001935015036002357802450082572230789265173301786903826424845792035506512776093330099150089282902740159544189905467324493925772809835181896550489154914973619933267999453436169313801184876367750309388940876635020113183564806184135771461914956798557314637237551069189419544538779349984210856249573695727936997313503973738484772185335306734393002256837182986766240017592176237523060519067123012936334656186208786432136309971210367321783645856155802424901491985937205006627491380172727433810227715868808632174479619610375583929749957682605620373900608200176300535878240132161651108555469266437670572710439482533293044704505512609791913365934090541255943059782476460480471936560459185724495634214607628675269799264930459212791748737781685229785338501207713809942372448686628986401021120274152855425718886183405726769073375375646073637897701488833793805545270785359012125137075700478529490691749102444449088654424640466683510096989288288029659412979787163009273123290311828084319202585770862197399366466908010986848501013246766603771669751329375288408656714669725362670048581984121210177611651344951141166079484146137759255258842812736982845548122266331796059734783365661541541698484146814195263993963618130469719939060226602547503324428059326915854027035644839909279751196762084201172518662497721673867265873346569494498281592564435377443043873775566909533888178558609429714359441848450368269922207979638261414270554127149370163839006123031305729668341344657259124083116457697308112388125424133363558654357620737473259182309474667307202175014567467705129637698935344508151111888280983229847356161927158987974671546490289180231538616475599264035965342706558325100595728345679742120483970347805010937787028969279714101463125038935939849232209264135843283200039198592261576892071137831431600404005262180153241228761401666148193049064582016289468642038042475842825837902675794805220131933857872588718931738978892937812768830315008259550789497937518611905950887174376725824699846351783084670587440799704555297054189520520981366431539214590040906192783450182004401970737503910844869189562220174576193060251134135038089910220851943083023079027361470740705075645431726976964976514610867916354957649133504010011515764101145008545902622309352285256380434854639951585481820738120855643242934160947525419440038091564318188884137992787508645470137104366073637507005864167569985477047139717915041297064101485093144945212512837257419635050141104705978319529078839482085484031945536834098763491861763142578362713984736419607996468589239024969185194529764352403921112765094795271764955807695844274061853399951625761708468385706925344673948494763126071975249362649848867964799982743447871105383580938758081872693735142763720602226239607333459153855276774722718236932420312800675889901596065395258114024784629509223280823719854319572469313422019767108005223643812325484136801861352969182804045081678244752271155113723085310579051069267433146944774326614435669754818605385916987804685798735542352671673928863514144668166972163018532000910934218728552228188404461192849721060340088595198351401161585493963919681620152505435205010810609217924127372260634763777111677370575228902056092501832174974889947923418921934800148936652031569763725108961189246464731607361932974055948100615647726121359899807978792572939040170542449632296672085506179759983434555552442936093226144802408696976907641020228932799353953552718390086606523127613545887418689632441566125655796060102382584771510879982944009052992202822578027566093544014196013321343849919182707845822721147915190753748334263326481359139508975285481099879403646349150152222479791479082759424106763720495165671243077940034217377145058487455957821844138801190993321379715129319900050980148961101655664362233926117839543228002555685701395494609600961070884001262602482233502695127119929415828298488794849601470129315638865238832818451060074417260604916191127502882629423703005101524539986350799153151993894563057605625537014359374971512628987482342377497907142675211042464571158376507020576270821120816748103511736597236555848083105104881788627791041097642113860431187612555361633721430171424113011055421941269101284634488023239025499689255389402277915994279842445354306416392000985362817386446595467030263131572992894039484804394036286635848834935636725012041413136012289337871710057868201658046556992303633174142526378054483097655888808726277890196536240382103536917168873599831702253232930117938886331982773378486813529681113125260299331751222802169926505608153306559976861204871605912000346876217062952998923186986216780346623132636227752765173707363986562319877955115186460703771226517867983837057579166535711462305180506097358665524732011849984204898492858216596725016553960754752414011379573720910871342059758918641721251010590877195055725709160770681053906010012225371838650820717811842985010610173716683787576939293338658790933047333318005428477048945837216677507848075263440162041160023159820449973042673790817367357055217484799964489986814227700501488955344233164144739570653257982161282521336054869414118225011153321313376050557639270527826956866742134793007467753767426320437765325044749103581581659714855490192887595495724212103996984264623131068496788279099749734448889388420318022741611113410078688322418717205215448828239621549326812088777903247339812471413664786884691802197829539858889879172801732953730714376132232525433489204648921632235438323801976837478817963084223128128152856627223296665299546193026022467135704928709722087878738303907512338898798989418660116824740298027925199618713794773777863173876093943223956410727706102681549704741244188926955633433733474161778979974879470371323602585215632375084035705588793265079057053400940245065354390072201878681514153387758222288564443023267361654827565709801243589949782753342844148752061618305689595439721962158194168441531189106538699254305634079207605420219323692063338756173825733144163813920207082994903390296488901330051584841607484645346896254450848555357291063147139044557280514149313022688397075627780710814146661256786800472093949403894003191728110824884104530287477035737925436982917543965621236419821602899601817089105850478856585003767935854196800509260402403328227029792751123237886497014319545879286452967882218454659601458018193755509803892430753220422096989316886191564456151390311757124488375507824372699708229246642420252199233907345299642016432890003094570414820800177959101522125106175814316914348514310103849544465350176214599339887631386145066974804629752647006432764284026991811382315699332961360057440623483076587701839247502518706174545976451177341431829443650689282356145882678058658185839396221702220937201013483907426783239851881327566159977740140585754608112369031369064997574410768978448611516517525164931206777802348997448491102633156068876001239237696614949573982822498992818696875274074371448386311294270597171702443617629522445826187450350273808974732329574391544073111450056688456905370806331202719039222678224133833873610756305799820899111362029020820954289680292857119836311534546453315603479727230244377025326458171122047385954980235354708046424145316555524048672804015594944717229158819027136716930987345188777489581332322100631148251691935849717950819816264862770146108932805878066193231054915102589340983535173944426587457115915165033336287567143856354734252337950182353452268160784775623957644700780708475356818126048891586879220607755899157251931874982612741408577749942511804287109452709270376230602994334785882427613490402326956794490472440975497201563542351852901125720530745530382880779130992976696931102300592152894066248775769307899474340559587363865643610958217666048272998614427116218522874613680824119486785404162075373217005683173366218188260803431364755663061766443170885366318048287830758558512074474572307435377293460949030311954295311716667463127475601441237713696762456016557734062452958791554203033163876342057046138269009124533518595094686541447127701291371229820156281877578330730505395094222333956602168838342006129946520070486149189251115756077511773911904123141854657278389314339927079855569126080335945954687780954582875968180665318472674126030765205055744165578068124557337968468587744421647432278504588872840723679904219254328113927591121855526951671279575945157343736452750945040301665013164796746828692953626827850187126658266697006720157033514705791891511467498377152364213527428037145451533471047860782858519170145311455628097641403451291760114182446479687012908942184657083381599511509551363900576325941431728418411649845387590269453309715720098145647543242749714210515695747046207340998078943639877510229303326232692308571270727049322420321663027997101011241064565870991795087829327949304284804628931581214074716859975516564080258155740033474705019446310795452938325184324668047701216723083796180962846216796077486453630546380218823623440151769330389979161288740042677256652876432710473793602925094615993697077708347242583282695670893555401708193249416766773774372421374083228433271701253679019779188106052465872975034557990470517707411108572907546040068899986841449132793128670802811229276526436277324018244654416437231038078426518216398716831521664441563926105217177123259940493385754311782045007898112814854481879804677132205450109410904439924692742487455660209676249836097579383379518353339073662033505869185471394802524904274850982512785073853653591863456597298707896891098206269866707175117947492136531362276787907680490131132157349467974566780191259657952463895941462201157755086270484514756481271818263633312562535275760060740765622209453244867466350535404707143386991224653625394197437650884463255702286146253454268708767583837266126909212816738738339751149751264031919751157430931144633428542703931509417024874233617862741545789006036555028670256581238726005851163291180662825600045077093140825455576148141336860841928700211058091059520401292695869073950100211126614443835782141490406780558487360636065105713661995800234564886114390763746477315659269466654430021152735667212880867540526196049718985785238888576182236095531403166368962304476251626203399579385911397309410046959593655053752783090164891291410734053009786515281235142856191428625350201872947332505114375961783246820682957533801737337917066332220260937350308007325122307320890749050430737580423909465802544230470854337553676119754153990376241507498817776701938658087372894622501889099878366684672223565739856895044508653506179411718649615166788705650213375700025577360180789755061093059823663270858152502213032238910624254544253275791556277641272448995901612990750137712412501055046342455236628666707728103508565040010558786869341648901035477204050703148442128863974484311873205541303600091080920881016720352050105328748658528634281689066847879001332905989955775267011799117156486684488840726626400529392704519662110437102272071855992418264468087227338941382000329843923819651461294497525512391866530294533949785790987161794611543812286443334029393445997894550189993509977449847274228654463168030618980412837092054620556475758286928494067668396647278362041029550151802945744974078701422896856304411991204649101384838633525292606693873126670433268306710174368966129833465761042299674792334381214428214881795194635919419352318029790021623577872061473351571502972253735550942701364171534186151592531370484561887177017140468973323146385159953836872327333930151636722761270343195416983137468422833123781428224221559888961504076819332108691928676625493699744368405811515338302654576777047428816567332020225949412329418358430542161443038019769847573000171910347280829231580465953692772782186614342390152922212863235229030193948427037917850353656159937039680410451110572909334995468494061926463507631292397149556964315703355032470100421862793240406121208789097133487330952709208181546326546991400931416587018207063809902518137091974445942782711441895666394940328471203159424448215442877988186379744096343182175176695298120490211909400855234659223872546128929049561673730823905521662850972932233357803924210109015208040636423193608757731872002173998315558665059226302806130322720007502177291670796324300055006830609002559285931769451320026684944222627659294057603323117019504596839940163205341812524731102897790781911432125284230637889554081850283370502818375646235826208894368858425574231015482925486697997727009879086366996515244795205706095641478058010447583225520118491229872695572250713254571840648989626101068425005323138793584654969154766642540707779583579012342956462085504863598401066233715361645385318886061140641169870066905818719774510392617294397074592116523737240672249628913155405586567461696809368946010126937470308676109926645675574911734193337947700100025350618810814717110549565326529554858999999147026961541577039979695521515082044438327491151569120749539379811450958259705348870708024061863630927912844959590702700019526924234462414754274372318524975514695713810790264180292013299413437016475189902908557815916546976137284183477953830611129518954694385490698494553408523053532226900892628074108231803167876860371216271243777737377369837843254113607058944164228976601430301126531148941277998396977118755789705533907097224861400098918749299400083186430114039031417148729948898618660609473380371823721723877815231594906247357415815446650403523631647350447139191313925497803335769989392511536625470547624893698557690366052628547795354037517975510350215269213541275073407707104098787181763496746269251427873657542257120609930412705913070897329910698700375687054440536899563144434765550561570617545310571489971997413809744557478847674845009337014059751338999759760019589544428467404457707439931642838911681141615432688841349132399299987563121893024237119128941875816990901573248801951104244599614697105866762763200945265085172905539867335102711937146697938534532699296747489262088278235395559157942675892829521503441016612797054799240615319784793613287463850559881652698086065462984116456999765595615638229125382236993357394544506449686495877970399516678387078242019881968270328280602226321274222863712381043355767982548291760083448312372263191383420737973479448986769334439635179407695491230655481277321559713791348973517757777822350096876500027739374225058538345896705213098850281386619404143589244513168683045249578263599511167885979372061683912065361986149630306633526236969821012240228642158322783490824117876179336268036162650823750998978275209482047160530140644556044483664396764336826833358044366765699097528481810346577985887968330619582139321135161083999516574928716711644353907688479326838490559101691357497745139560852530941599745127795365960844511374171428230233723694846252200529649251687554547124443243759758442443393932159505909663236149115277830707432657317242901721784235752267532245920894482505253794982018603323616254171916345813764034245148974201550972412852760308862052070332336006018766012632579412275409140582024786997737109507105511734118257170573232793897080862738225763742073940495632164472213869594594398259003652226674094599296378809935226193625437619463194173624278535571216729071924592049255423691119918507405823934136588772743542718312625807484474006879488004818490595028639733746162381776910520899181810444174624126006500819158330809023542844188524246747728170804610729230994318374639753319177105223433107112281688114463499907203369937425483158867806621030692927211621858857723704346462668109341268234016147415355777657838045853942775679698181608153667230074337325872565981411033534627592759766253280823173654092340032508872020001161537194359718679325922418247936981735439191956412356245422044062534359909056563156019252727477550499170250347839916043740926069519198235224369098859946237925444157444988399887145399335171426086182631424879514941337444684976037947234377004032921064980884397640997081354656113924931089429237005177828941202934516925350482691987548147508195178290225459049088019733035624111496118279786088983582024089260770519256592276773829876881671378433722922741596503160975725182032437796226304012867120328817762145283848844760849746964044074650151727710042572040792989282905843865280357517188330869849928600687745550223267846186273578645934830350439577387567275318229854805414921749247554091131445337411456031067087906364043426068753832034502896829412317102920328062037893801737368539466256530188735691602262682957019397066337234920474584242082004202567107043963025901141277182432940183800209503378132473567748215808034794836327206676460561673991930514725399022401372743448173675148658441314965657893242677998951941275230410213271542886774435701567325937621359318831312130114518252241803637958916367637260862896955471457572959026789794481130791259543580975481613782115611779498651121321548411690106760146368848001528077660995410096739112022685216767859280797369130994372566839245601284968232794628570487788577643855255993715053538263130783773353018224419773807924061673923773851793073584258543156796091528041590277279383594390571412874484919885893924566541266210609350162117849734951625882221448387560524564984130402626134452802308025759564718383358698362310016650817069795830515973661774097278187502406411882939107505197851820953458370878989196686553859512594440885464765676003578233004800718749137857267568402639944230284943773575070415371886153007913597430027866405119025088441787680930503079300050798474762121328531150208573259909836589275428102374955049272627420785930064342408828776728207553315976649989970617535298545285762410859881471537795904264302310894920120590587471088146824841451638283446160422501282593804522448625350558642365876644795025387481621641958058804567123085939999700907751802806367050688502442290800114551310047632398083873981208588009539502626020210847289800859927618227673489621435795276875956058889895137761477319170749385419802831890537405101786016186356758349697135922479459893073182528427262422144527537853612784257141576204825202244004765490894283793699570836749631564267208897847875474197868480101681648782386316502433447931396603973940038387111397935735915300869999856784885988356252255198577408970473309792823318813904637291604110379285353923722645983045721771926422483358106257215647476124217058704041531371118530464367270019629272337066134240472147869805423812479147964098502446676976589304947352011443811257407969315727100700703849522933936757946442623031341797501713375618971303666855607431507195666653828582122180207342690256560831687417664511643355589663463684453423113112523865177886970415470685429923104862401207325728311065208412133692466168685817756250616670821846699922647791150429081072293335075994090716459611078916515454270040937199742280144937638269869569398752459846506056868811936373584954466040860739003576145913768472744343892364053918326804049875880598870535882778825349928575286566657177734411284749050423369476092351097389950854031524835400463422193541617977000061926656642556980877431975476199206366888722990899753378414742372677947437026479508874787165690607833124091139293415419247207233622950938430513328498046954273279079381123485403830969677037110223734909551326882777390327544090602665889602756165040544427586156221727301348888649251708168259241338184677051528152953908417727296369654051635754707623715727086311943138081198580212929894210777640635347080794465694130848611573338011767865228252859892753296819214130777275324922789575133583941757863342864400144533107926373580683038535205955473269493367798606672953435812971857645562711420971094213881687194246020410413088956507358140763729840695311079218528155568645750352129091515544353771202847586746954456268256316779836888755959421007089076552264575285113545028781793007242710874299597045600603873553591054183227746179073341930308546496038244932072804982585457958994415698805597050055989861809410993177777964047533692921697406538667630634048223332249135541288789345655341741949364901784880116765982566395588568804943874222716882726817263160963405234854802184889724080780595237195670846449537090127581568643486864184295773361967684093567211156010351971064481704283483572682559102321125982980691440450454958510044318633784144435638123617414439318996731595441086057227807333421348044974554724748468999426688681417429373480920897379217310030987931294742730964337116602469682523581827461111022608478197000715281359329103291145782199103010456237887877392368423925373443137440270602362468527539171740782535892584560788070991269446274585579729306224054579503954927326675415911685153096555632469241342034736136680162163345529698538855749394919603742290289140880657939912706409756247679116694056089357865024144796498055809880565479105193670391908742236442876332476933963312247466838171726968630883596787519410758731273601607212968039423284898031507716263044651092623120698702575089126062975868170398596641401898758514805758617756753791166203295577822015900308764517298337290205579076305277517624599907225104062426488968699664738777549016945257178087155967135129327485426101161548211415577484164995185217952773031458839448731503774621471500703694766741396386252446062326998015460291067633856434346649191442743573126096985692856907866134651224091035363249900522782642390788661510312019383681101963039801574101894455545720024713757211220999469455087708037521688573888629054102613606103505344935755547979892353868772377825564278142434310419834187246742444722538542605432975100842686303258959666507475870827935840725554856092358691784316502917034003650416485783335450579415399145539395714606012852822092622118168590546237814793159353816032921150020840789386115885304749661502956742291837874007323030441485018804482427577080440604005396302086984433426862268076339903904182863073903427704975835385274970489007543565533987313516015511763226073147097113555396283068075806953509265984381446956790911021894374985959864944974181725494794855138797606012219692055580673978073402006978393246310660731490099744272281530546013052872950351294606704641689315361090573085092993149022628053066318288737482249377444902427704659689325719954417052100203892181343636681737415349419300775854645896243828213415603225099100297906439842700994999222632064635031660107742532768731088243958321902962351409871585577154645683694946305867606132549978668718837044640339710913770776869430613975155834234017662119143280049974722369741511626715712950479980903196531854826415536907420610768968285963335020325040179919156724621811141618708450324053160038692862791181736791218686113883465278005630594912034615671407090515473261559578079425519430746176785886348422143304583138754505898319499565305048594853070276047879394589474336744550938529793205363167072019038307257096652288225589693700492690141351060801235369612902979847385754106911518795139089503192535457088962989432672409400084913824776250371935727140850833918521571601687956383587059786655405990208509307505204046398474835051277036562102052987094419023321124981342478438856721323831014310522812720949203823208669258015598868355476418030299995453534093035541182086135937881103179747120148380083127795764470317858405891607534802269839551520557366073735812743859375169287244302548595657420338542222930702496373351690352957295241406988096455214411882379242051550601170354071532876834873753046001543719307188110936198490136646695088962824362624530747484503502040314392084041183011280405490521721207209779434127332424603024349444228322098530751769154844797253028557063575170363646585578732036197854736974962064960834548891761561985702520457491601470598914151053933737317688959146952100191078231627680527212068726695379854046904482167916388673475837453276956964452134669880246502097349653489700690738613608821760971161170896349254057006750238203441866701333463029362542370328706715353702220515178442902926032901935100388294183348802684263248917159755883511233780139647241608764453896031994115038975689934109474381905131303125856157972340628002155805720897485041917391866031919127858930830484063408444403453012728188435242246929501215770993022819013586673938413222579116084286036874549733833353880479549966166226392925313864870118668180205895027514661065650257415818771965762678212562637527637681449703421392880357394631429271574714958165293988343656824613333884917665592134654130908720069064077796691518414346719266975148684678678520065207600481591456041773509955371975536020621007322197429664818459673350327354111872705894122880506885365063528438374309536130039663558002714812961535472881168966850638153012462038541918601734927206417771996458173618743048417458760470113101880442970821338050421907491942132525970889592501692543997909471266697349910085053149919811155922373598855444305302786307446581628267868878966408373176746014256047809584001820681868698268614502478277592784630488224495992673112148850906761692365675131802335856075194828326295281149134498075105306254839265730179294542135534606134044032934513055073772249732502019120399066704934292046570758567459349509740736079881893531420140207768512824462536883062748583855326604004712500437374495537110374382352586100684116543542871691412776454392405728625798702509533435187833508295226959914093693299313046905102876802903579939501310669702036269654930695619313259361930766442951894858113107558028203689145519223703288912944700065754815791225281266204885595455148784428214527607902238082762796800414920763757541997850950391386113220074838571283522674736166728123479785762198443272296207926183761986396969487353953308498342457289070016892801307474888159437165762292458832638688892048861954984203448929811764285803257514922578500245494057680734087579856419335012155257634892074647720814329928918472094224733280659150861122015843398287418199664192268341280153564965738433024239258312312541653212908512520205533941218816715914598427940326825639853986452441727403866566686289571259992294975409551472056325666156275754655128000064333067840780379664998151531281370892275407497854149983228734701936040235088757311925112051453968564665918554849670418937113872880073493564870084408048844423431609498471678991786270822775276347434880788697853959515465599178120065507965454476503885950990429471933802891399756814748286777799968753484000292189502328019258356339962678629761290030502654662815008797289566090577072530995200365232502624852112481583915131835567917050077029592645509449285789694603669586370515043010501588822937313283188255629212247899041082944352139347075635977265391966321866753626383585957362634068175452260125881785259575193091248819964081889793669936223402338910161976602990910359522105108662237825991614039316591522688239163270696707339270733550486018008522120427430345078307939486808911011123117331428232643957605422597715568388342304241796921077319457316755641122871604926007432891069768790755310783462702137151945556201033377560776528546368239081736742890479385666782235622110786631351284458673903779493227691064090116098140765082347340491226860777697648029653258135693124615792048494746492063943340767168155535683629652731143185236134075425204056535596121700719887889970574421910866006541028339482118479774841242659377230262717593602757255777556112943382730058696921864831193019461862462840941636732153109708073235597899514955169466274678592256270994882308109391155251051862990706968373111205937503721107654858734753947686142002631699269229470480797601513311812704888241032049567852291854403016870119173211222363694113457799406221866200773054825487134812905058742542495425276971094315597360037459997016206879009816597230627585290682252542780654525286600464590819091473657114707001820184592314972082728736885909540553067194022165699734328251767423078878423338191797119633822306967206320351760843889775006525117410599215189462011753991822622172206441364703663764949261198000301598481780426218927033301085802638413570781725566031784104897160951764341122714699241605282754828421252323926802936013822759206159569814179002462661544919354722861953080680830019750841423678175101217541794221490906513169524966324790948081519777019648517506982809947911871235167632763185696603613609649799876824210748676458969335904838964779271014199430947479094035086242180216299798909349441651135653692086502067574222454471838563034626016778837672271197889904473261990499721541596650389923367151593430092570198811357266792939326640822993653769311385152525008340538548154835464183842755102750804930014832290548978851377369095551838130633580625710488375946520308880096072784636552856945310360994489514992490622111231663094327331947290709808146956531247225495057400029676315886918079491204736332469298669458534769184030828646866636123131119131622674288087644018249350103872883984553566100415371873938720834645409352106037484859906030258290646587499219173578803397296770127843393382219196369112460862515682792862616948032845365287005775486621210303023474730543949934530901269268367245715250110994267196718587599059523192116615882530278617566967361897021005063059274550079761497271361239536417116200553431381527186938344433819354842807941511532410910461756574167717911741669487091479432925860127639480942631833840545831707853182605170687931324301243092577310822951054588909634766217358164345386412342744017593324419542991814127814634510246161055232891037135397156702191304834145870577774034046936105071241144269493936586487935800512458344651027924350091200921602134169072509763882503569920978164973473543243619442051598810093552243669868388031140007168437466392270991736451895232228118301311820354781636085537174951339353026162585565889643804702452535997312151672210258195215161324771692037466094282566689652585058273330733093954876019318111967141014286858752143291715540218287391182910030713061262374874332430395845927987719781361143626201393402402618822887076853164091528072553921865430710176899280975981062164734719756162385041400130903838074021720147491725332158518940155008172171308844427085505859856580152831359827343366594218792374952629062400053416579673049797227077559319264479456783993947139323836356647093029788976019351085502270908040108718354303553215002885786207636329515357325225040212548400396779487851689732072334121413903150908766647014838726602679262563081520597848556747616690988738805347830961154967941009358844418071419984514444551571598838690996550670406399151057825944336127875223460304803660221226569626984328555412891375848470840482724836725893833613044424064911434282114419978182093829542269492391848468648496198580232580237992792629849477073406888770833400095786923754828732479788035778435799525736722171126215638791117721934979238930171941565164456605605735430582876841308155603834233794835925444098366677035258279075737318219033633875158038756169486129998043830602961240085529659027792690817561998574555116363720630203309643826114316863627014656382770727065981497789768116358811900984062393696794404708195007426057865041254243914390673496996593815189494126754536360678475380007096390959565207054417238693361198300621373635770341194107351460404188411398330302246462212398479989964083626500535931559432117578168427469230445822385347065808711694046256770812987797189827492070247940386184377674494986750347685561295791727205740247168520549053187723787887278782855555580146864777638349573654765835476039720554984808769671890244428710622967450793299116846994624911756890967198126195235256747660501481351516123296114394687003831168415648425032247946026900422044065215574019187060969858221509973239897121301054718454845825335146610951965667228147585313587222917839008418785667842890511581374514717770117256525783150620698359667314104409018409820871254602837509279493336421955151130085472015108392285285608942305471343432070633129060064983273172390001574111933178774767222983247088847096569368326506010027658542158686825910177758798257317638208226071095238680317646108974697914684299442107915953086641249127626938809152149663548361986130076601930052192124304357412908369069469604665038259499892138030233474805535316902921247604973661043421907650263775647254567879763246403177296473043030992162550141075629534965978674625977296566243418668461073270925212327054614260351334769089225158049525688550408915903325401779635889461548811616389927035536259741018535354252275479365248545170155098676566998585871989495764647994065700081554813223374486154615855587465046960765249007034788962217599573216472131388054470544407730211218789087590929418794327491564454617192109698848847723346588319740361982397835978267877883520819199752480210933179555374881151051627592671204801248958203640192255576321227510617388376785111212839690831778805123443794591045708946040180433843449957144604182045126669614304003378782212924545270263009489492097577895765511061478767851600487585058705698271291281399268098467250692448785493396210070751721934515668063038002468463183952162176437059131150808612662961203459546516867176222096485477567195204759097555711432919906114011085929050976159088642991092292558624639039040977082761877825401226786686886239786802459721476744656916819717000495644860086237525931164978979095975899438340058339668199768178605946524948886920656457701206028231282057872262978599978450644582378784555378206540259360611041995033540741443981895041135129644267457796913820966122354984251689286503827299306107951920679439565437909870691613409042440726331664981481484723345271048841100381009868662006178891753062435777566158709939924576212552916940916327005702762532778720121156464571830421251808557378307547960949041845416611653346380616520838836301535836582917841306917338741928630926546160529472544741197772098388816566297935248454121091834633617295590255023844891981064276568450110559174873683712226512488112827211404322344201659787708997670779369837451674541400984829637218035472012149437204346518850533786464281256409074369042517028585832215886228993646960707295593506817276619730713274696853856093426660841641658233079647044419065126175070508107859440457108428057802566151068506766611338052335766184836007251909489033069706280367501173998541491987535518983665974082528044390976131261585205382048294609291559024961749636545757574093775997277482593948900724356378734264266807312817758070091578678497806984259497830766717102295386660527010623934627975376410338008511901211302916113736569948286571433065841693213525748992848999373036509064406237851755488656446928954236201991052811244169131486915791889772165245433834570243387597231601321519240575352179528617489229459120963055420200071081424794777760023535731630253863737166144904349998034169513168901489786795958482944391807292440028022091112917839648472740279490446801465922867572330006196451391966646275263609054101886326330671084981305197288457111580028742128970480566521410831852653902328108416310407906336740220696817310148551861498817674587541836794121361774092186777779020123784716017673808248798804450047789935016768134380143597002625716229409340006830418190673669908909056929005888420361352408691915211925898790338888316279669084947365514630795542480983116764941849323840228870172795374491264617394130087138482083666347909367770728213858930553432241337592556994141094357032832738602934783255220095024684759922687221614278576570039450883426910583652512651206157001133389664770295427534385358176322300701510105336092131599809664534905688095961048950188772320086281353709734450312740299672471382257699374298091756786936990033387796583791200994961513802672540598563264108185856856701701940694890263746503191628035995427208059691350883787576731681559868627910825736676499839060363737893789200716670652446948557060290913803173817328753049940816740597864547952637214648292774132422748220383967700505002310446540161443066975012509449780645187144448702939950085728894098938055253120590301844531659297056679110493137810266763038926248107845393951246132877525839670769980825730148388712948495293147371127598918387114796044984212318775806274400821930466441858151389445331736875580089141021373220216122815381004137280992335850418802318638215430376201466826278597844008065623500041347919266909247896209281205914821748353480322471752531267765540062774708262847626776692694323355785349302541184101571034531127494672911003499933678266879305002526497534000893466438178892185947998605505840081779131675016794888904664276722444247912876326329402097990317355614991443729774055108457545604287605992326499050606070993763156998045046658780002314997387253999206069928019584819705928192900000332209057571261031594720476917271269612331374003659758179009173557598370315235234474817111196111302395901773120028920085914954265686706494004746339917746256672971693887734095529113533959877125601492278964566345459894871326582887700153898967260045817233974200640881421479370147881304113349750765246078638900867386223876519918530675574184846743272096915791745394125305949098713396924872246771795386096606840220550233400700677206465912250056263368466298840799348549945368516436069804818692070231964740067229319601844189839019530238342776226259354692543652060312077224879843597030505085663119142119429932365983062671551451800517218909224412644908412198431704912899617637338561529286711588641008702375145011613377024734442338347522192212912660514701940557488422998878069897456895745389116016256937080635515857011754162782520236635232620133725998138167335634165980811336675285623413027162608108515961220553633436170516321519468566354681796729856845758749804681068567006039468263718237245824435441449191326960781510840207785206431686112639427314226111663420619225853830332286178310732117046799592389864374101350849710505087909292082717943794002744664028982684809576334496174829998704664691432918385790405928344066227999342425886785997965931588471895095000578955226538082740222448600538356874113497814476665470161008647790778627084938514210374762505985723476106810232673538468250884627625641275824313056728858254982569890898161237194560747079957776686176143534328215573153553084997144200482425639899282171356930597149579460298221597703377888964105689516257830021695538434337539874108799955870961411419265148268985755570222923992833544917181646551929385182687386122168298105029804188721314684700936386834491736044173768071224727911582035401334953289188187542316849869779318919300841502100520396071583263086267142351191717257105281452540845329200889671142443070900965150526330639841573418905586408276962775057228122261196221900280883029923317323259903321813415170758735954875710814616747344276705832728768063182188832994371757482798702235071041325971848236653528165511626813644426820074751134324037282530600366728502821057571943378367937184550559950557198459244407204943480577266168008807055698934426318493461654221500060429070609075864849715564061526300869235977531599218431090554535780008324720337142871004593588917824024836573651825456114410079880897993619180995574370456955407165651412094381857945753863931933996159913465549712440896114433872830688432329161297894395326255398485218766282277213570255927304936678920632781965942113597476987148459856182839495872175284071155871999152294078309795653484445932983197394304195323795003736215474967171686116113655350837283565003071679050012250267663629666202234754727833336280334844625611670098497220421615412318235519117126517366166695766660165917288860472112181721881825530260998718808444463491586458100357621615084115353876888261414221489665827555317453847085821210500488789240499229110997607047962008125512692558073596594632868003692997330591373973030266205807929995725694591910120208827198198179585805993791658746760564306425393073985117644175380439834417964952021790855029755277357454661486404513206752047590977262315955929954579104578795156851034027979957931028433385038750683796959207918924711128790778851741191405865958131411550041051256533275161762712373161555495775726049687016614896604760088190671754489523808710177739010608759902780998541811115432585064017987714615328769131604480656629407356831062284211414688838998464331572258161892140122728872693058115436094228627165957544416622796115516577153471231186948452639058308322697951150661090948548834416484855403149434154594035237107020702861943180589059180361314372739203323949323319740653536674271189266571136352952884269144021107571916172797703665822857731586385479224646158094757792395978047334657480857657821063254369702548949140988054871072121352678992949598602929533426580860533366554599272713792825027136462808009441243933194453653724250276088685368390108153656634762700687116316189910816492746252841177462486241328560233359586674467342812566485066546649285880315826867357007906933595713524625865306160076652041721795062782987614005793142870648618667419747836484401698829815111934435499159988230342331751720193244907474547966992253571102558335092012765949892199741851081542490823447649812404685679228008175233444666982511574363940592032155245314400473239759844858199302970129215616918745270031655902888780215276255680551861258337257429666960365618998281049504250627231080931101991157990954177087406685471510735541381698215817650017920723966065893437855982730183093522686027100029180267972083474896706384425085610635601995420789709884538585418625293400838024709370254060866916183947254673539057718636752135644643697036311723095819597552420587393297717410703588388465362341179845260469632502210063299556149041363769619688443667571145466272146713815815219531566007529299570235199961794359243012155644779213040684271165056000968996286536765067327232519854144551001543584238502144744025269101078656918129778741629676662834496650409371107111862985408518236339607895168895912123545901533223103648480965516370586047868521183266809876159275631569962279106814606186605972563875723350347401672934702104801449696003482224466745602895966881650257698528720377005588240315351988888791915591908279099788239151536012390851451715548186385617722906121034399884319129835746879990103150434606000778943217525963933807674114208373058930014220720272088983464830749907463983326711924199384443016872756367515190714539547123074939300649415170412422799578859946082832051282057632322718906043345211804229931073914980649586717383961774740380410895925129353738970808882662849336478159560841842989654127181843923261521223508738640241257812491028925842971070559224802775794493980383773185009611030864791978669201264519014262967284580662933004324771066323452564318301618633095176826499154301934027974785931125731542001234069657848348179665013963598518849288908849575679539969171690705671226103111701758473032046155480141722895177994635306252119534954154697168319658230413899018360738690580954458732833274087740864881372474749805080945192686847605139170415766805009482331540057201636601468700529243433882563246444218645913050980900724118124461173955703845200195648003026656656828687354783011061027515347334903169695315304688540128021488054889336951356414314718599070674149019606818220321404547384478941834557796011720917152302487378568025317178921310010060347931527612245769549672801568338404980153785002206965992799439987826197443456638925891857473773274836740939878955736955222180911832645590019159443885168640282349851714393682794562087378962891098332698986363356825504942516425925056484500441518035081274571778381717608746888901351145961232403790163099769054662852228103442308034881464465651042898462394475413788006154190124767507934871527825746211522533530405154881137728215264934920236544681794257863868579813552529028170151997098662168444632672050260875841553223145591270976716122952957597887182777863775630146592243133032840878761491309697602318069700711547448138487814936812307612262343778896737846278699733630518372485058998836448193352797221401082566432498121755717885804035433344870296660773426424764250645069126523902112002870754717767998166136892012099493133232621981801950788011260545213964408895818710698423171638659997732329183984803351375128524934076023766277678206230013597995168954533853696918796020073111550930216303985720443184194235399306109667044050841256665460839914590346307726186643100534519721435613566151612761661641557472805630289527739677782779223513494435661844782961582426035477650144947538051451053610579241250284281437237061740619184533400479763095932413819458702068987503153296889772304253249988463836644564745286520598124824943381400062550922687103506400335988004231317451052185627756543632780211585472091002580593663685044847777161363869223760516899390078029284845359746275828204179867403863694572659703061988105273358725991126328794174464534593487500720645953999087698650980550318313617655648459289550518374723890739438729680285647979543919846863442392788658858236239734146878519462944953002868756396201307675679320231776891086666601928348942405901456337461380751372470251785583963741258619983187842099712562006239941235483047233087106544707462320262248396093863330306848322823815284635314447047504564355027757464482972110491413176811689454319341612987261895880061355445033000543205823444004307414404882060490001612970341778244741161049417620626786379076903406610943676103776837980122074327709317159264611282241282121751060302179647010814325255683459887573786584480840584501274345594577588108365531719093270619388602238580591952545930767855235197356285215988258250647642262103999010280170286355009465059722807692145539959573791740182883072933226595690794058548018036854183693244883858016108131084451085343593665308847179196513884331052121506990839722301377045323736622343675646752930352761275259097169931732192380185027137242111355508680198839125837285896207351846480005100828044820768557516849392605436665106392091777845345828286888848914101554167973327512171948196532182004725981668662672432442352000310515626653629265561936104760853070707509201934398407772340919182544191493135656961917339876940419168341028052586212065509795418818223486611964101276646713370259059765435010937795471636521978874663219876847051184600037244954485130915918020294310661904132862044113527741211556620707262480563589253776634160757512911931305694762145647209305142377517711244059940244450984522722327916433922724579538915632255490521682824737253942396760983051115397537497033466437876692218950950215759558141674702294652764924428283749602354594587434465251478802378704612860331962421425976208679978824489343845146230800251968724708438348108835026241842049027995998891070517384318704592088491636589545021655543825385867289881424830736208002200025046589758918432300172325248761185183799688741998184034769194003993266273215035849813354460960892786019919019297469677077453987634859010044695919969963293420879587044640689155682190220925588499429722320186422734522441040830951744471275427923265353961391594098402606112106186496549843789433441153390761775355173598003064892087152863552178205846003005827827514827669511692223754038937444881379763309159418277267683371691795532804881340154140370604629907386954029264603624073910231645478094363318809058536557554924162295741269864507491312093137211997806349364101642855560112675587221411030362072594956910083459861092578860258159558326124484907403220699937475025519327761024875010611888801858057042229930575490688160879411768880372877066764817760169524204155296492975397895150203320866290557441488285696278875919768526859256986913186703421381708153080927637782553906993117556008371249936999594276392312517207502822937138536145302508368493770405383708222291548287869100171658814342079560823935262781436270746406565943475152674631724893485013728544369446288709407738078717457127737078937381824488923056310957642351370483546197486014926318286415423699078279023844051239270458497562648881362632556251125055927964333311916945938950723296048310537945902613069002872777493230969549512652457229481953319529662543118830174671185543463503595585576125088292628489693905983424877510878150535435935311895767692968331078392181170222914369680554513441910258107279937614004412670513199081033483253864814768832495431009661299658801714959053231141378756236451821635200245575355952407156417423221176471464806442908309470664332427927335243922375110080848374546296715311459012219621922486386823881269319342548586388186686543782135605460579151679242822779923585702170819239425787487333311936392785511023719679893465987173841908423989700390760052307634773550428831598107458373930025234263229149296161052777321692993232614768586667693320665681859243748890696282010319172195240686218550649741025504998757205698109080199782396271065682434253438940777367629263310675059210125408273456617027968182781963226608564891134125095172411989335358800927068607087237466132592205321605014028958410743205003940502954073717610839792712098860419958697228683533575455694816141643796581164531369443769383451199172961084595674016208789873998808982280216391601573335472248693201778373389504559192079626091386896711056924548688726846847783151775241283960600463046330436063163587577311083674801234576429679281592722017058182460580915842242059714598676847493827528207050770550651663580320896132293826781260561749833803077955769684094651438840893407068592088282997312295171887807612245361746545173615320038770593725531903966810238353636046465558246076434987514065323473511819054453482092249350096109538552961703305165800200474721881166870756699168072528571794601166916954477707114294424396316931276051445349871563429582020522236693851871332594545348573419181349795243571921989614713479000574484530394990475377375994967749903559030531504071476908215751767033626743624922170270077978454732049135706950730332931519203740080687059822833769494534498295054483801632036745983982563240992273206648229862513449563960389918261705607870961908843287031045451412903640472088534929930669402152107547422530015417395559156172622548679769147217296746495170920395478578680729062805481100475798238272937014560911378259906021233183895711659288064798443797338935227314311551539770065839823662868616310524584370037972363443723919551819968402673641747471343926030004393711299883463100416858211510714459134689994617538662561503184330764101645676416282744192743579351872183939367545033103631489908507633346816277743375320658843725870014883651924589020268439732009914953960345426001442227141080459549251404028630259644500999048239580159130991683094997532138710092865576564018376885076511570068414760183266080602732054615793906294756484401284296939750179136861114411140630647804887155947583705637250971148603541148073060954863700460241346621572679976547328616864998009779325528843225474110822300967682981222219362170379047679826734142173868716536218311196993698733696831290151368806379817689620196001946293808491917297371124477005924142885016197326898514979121555419633667181175113483916421887537345935837819717071699942250398475650217763825499588137132518800800647633007346908107156628956520301801718730158715186145214884800413518492853870152351799880950666004112168609929779660840238264706723337899717051354239789095269057578815335907763564023265018223663254987484260841812383154283488155489859225903448622648913473545021573553748332463272556578133168062769510320305245542464092433337017172344725487449153748834262615488047451247604186765983365154673983167877462434009674120958004181775226026329138893512988087681796556218989772329142729984602978612366923969883094286202484438437766887788243272824166473216092975151594379973459942933431258564350692534153745341334578396784992098898770523486176555297145285207498242291119133217083249616024405668381650779367695495543850058075837676009307294678139169307142098850971617985636612420322450560320610864411339619576176177485937752287778318592601546747274288352507881059940716505150611998211717616732728504066476636201966395077815858415244623550084468781284485890364825272069234491379822760249551018775646864200973825294157483129702355671498332622721067862872437121801433034629533986365638396486615171284719725748904081414696954460941275786344176308965219187424966307252493715696070856183127337150833320544380079114311286157147400297335629928761985111201710260567590837340070913831058205265800400426605341922444652674100663907932419297549889037394305054050719225890300138088573663186079447262580079142959855012449463063376707353396990176685425659882183281795897200038102748444269833004063460945375696362709550271864741331350439665214266452022894406188680761720491884381027070898530074118238975694249713226789836416531638645765967773291808539794677265789813644568022332438619195665593832602508171115958617664920252706264563272210290978519123614491773927831129871670590099625908079083035525088998126908299939125205531085548066637601178777750764818628663264133039679445508147515827009713706670460278005730401492032493906570325629267039005882012132337000425940098680678114248624698630120326159100127676164460198889120139602937285874645297959579274342517972428932128572540638919503316386355006209908118516451756744968714743669561689880363982209127195667512736730349151441635076693022206282226759376787112568950640233909632482371501236812642963790997286983248750574869956804350861833627044713140511579926185308025593055783778119344662491793799976229771916456202712479861742644591665740396099354789630108317896980716438439163330696117156786455910944245208560404224008182594600321606632469510886036209396212441592606701975052073985746058352824162281499255674231373376499167821757650297832528500102091435587823850278290268229316406249571046631933069878532553903974149293715551303937776874235643812743576507886083817555673987879630213361257958032745932989471790781855942243818711663165936505225937196642420507430305380546029303602105626182041240659681638689143051814309690251493235309500045773941296305638013170997635715431032051469903547369106365951924556646952253477294074224887172280050514844924033523792917087777013441774663904481090544794806889214333100295168435141803589592207418642728576941293577240318592173885777047658200433287934271668427424523723040537542467969720391035982202740836524726234185047269003920093103073058011844515211191482440107808073503747235236468805295009087800603264544675541366918315925863457553859221737340510289060166693491436782854600164126057050285875193435198726426983097786494452770721668247357983679453403205941123391603973389391499567240957165002633669963699610700151872615015225010177852713992455623562721811387316662443600622727308715237862062398054832560178460243332655788330382311411894641189131524561642111709004182923663286018373624403456316950664788356219479256646641213776478748440826271394896918330369025393107918064340275392034169102252826446108043563813202032165495030946674050942584181529432009054888843560346281688980866363208397133284234775962319449097431561239862363983235932970174372827564699826540113503543347261803282705650424014941955995735590471948498275403988251305133525915901999814122552604042779894434950507912782178100353462040450105727763935697705958934281785941058008288185023789902903730216229487177145077201155404841528516400160698439571996830733934843894803279788140364639478007464372313174628409922248997109113832396530996331090161809998074971338260997215332267751988721487688986147221680265585614793222842835366240507019027107450937141812319182606760167247994444952371485136583448126681368635315251007664320813774450324670472123417295765113820681748723505334525869713891358209098749927345899109244061780100352691712156087775652444870781140794107487506226711426154829100917667708263389353285002648192245564621234376011383352006268152536000053208938429132859267895404620401026634345430102076679446024461616828366050466824007827068276074807905873960514151358169269669339316835905005958286604232163450304285086441530849670247632614616948385921258631067491437281249576631036713238321366871413588066712799643655602870708409802156681406894890773967638187893147764076594212369144932151015545141208381063403278719398250412810978339721399718299676234011181657462309882005061177536544420714600438216526234483499595642904993157395873082979190250172055598635504978788373304512921721703666261153469885431406203080901304816927555271052106859344899262680634551963885691174224105192610351104384962761858701790227926022022545359847727270170342285991976622034400067416558017879755583663154241077391946043242100525683818552416438355050518613950225373851782993641789996895077768944976437019915218753332824312993743978791006987259995256733861552658387687219759213860228936833386810583516890384038997637158724858051513304962179963482564623708864887977525397700794224139836575992924441034541737668688698381433657084726230903494152942906050342354623572895043966565298124404420007828940498029424826179895029741485342913148684040959504320523216116901633287021983477665925960247998541802163655606251619558813234150977444944298677045740760782851711464563626691981068020259710047827835286507192488675144416494393762960678378373360545399062777933900261821651128135880352925407849550056013901935869454221921055437763497165594736018119721964239686413062451737459268808406507973524445001646332182981459487578628116277728020102659541977860351849106943443646088799298652703811320822116246240709605463394709253628715225136993431416100188702955402543761796643515981365673530197678183220437281241213133719051754515605162213247524836755848346338297449209724856823279863233677066360103309406880913703123156493306725199591692586169407346300898168615057830045232134227695987419650268741061514150148718821144313980776101455523266858560312035747302651105376283762550807634701512193369322447809727766804915990694223463061338468045079627832218368606682870156194021692281787602873601311342857129254316072251671638585403492575595738080535458807636709713944325880690112199053320815632260762357154317899635301443217903342562134712836158365367155645069363707944741509752433506451855724738051198114808111418374581630730608008754273530856651498477889385985747804334887233831635755049233729236306284417349155852936902552638202442990515640503755744261105923935768359609950633117547531227228965397462726529361089021300575628886584856054474071632668175734832309060009549467139810783615497394486101985203162040580194825811879202767108575753619254375840465142924085353714003000968431297575491282475828115116645934387443457078764893263673866213043225733543244394318100323822459612232855896514512785534021092343927783814786906952665305463371779414195372390737849529016364304902666007930995192718581675053106768939115863331466804971826645833888609933281619100146993369350913316012815706444307045371867889077766124355664668251459996800435569174928178947269748052495019300220884893232773709635896193789236972399212465033218151711110227592899282898743463661763524798442541247887190758297191341016206377030147913746296182194850726897657831538564956815393977653606266104176828121333930061491073879229849902134776802520388764297762166695197948981946471206098017455268827974333778615847247365536410604513870238017194999306689010864339269338038878252537287995020795624103345073436739789885088410986283998434902784558099697602520886580971495452051899247967115102438832911998735447625761220032733290487153957659709466823668974833947242519597572748317203154000892916649065187996291415351580125673738465111706886138081505775411927348455607890902860759393446549660161258924632567220939894209162713239429998667590207490670669941241386284273727252844528581142399862600380177148112947732065990983120285450342706706364924887048681624964631767669096778436967029159016022310284099145978054428783625619160404283442988575536828744275180203820184384751546841760882977803544102223598043168211337701479357970196411977972229253551367069311981054652672492813327727033720843709894163806546567416229454393004396964853400411016119936061870327301584190190400925656765830689685320216957165084253784314554479138849768489264314952623844927632082918935602484065190901736384101799803752986254804937181535226242164262380346313674896759743245291431451292609501153431090054628766901442000627528047548433317592640631897660988609494019186483504150363338054099930501010764178442430058631722059361659268705301160123734866991155992770556124043618533651577029134827472517307745288247350410840100067522919183505676525480069320956312349656442415641878684031413191389146424828968921066555246531556300513349290265550673016941062139711409083237314334747887246428454650740980639628320026196206877444331857055120951176266388347275648331723385829697167064980551513614181205192523450710423094111622811285397163792612502368992352391637077847999608053860398600616161235247293265799380196607006191399794285875367466095356319389616109073557603657693597465713674095982822437652658912153384168782646858374171212884856274028843493538910636612591826340329083044666233868576285795037348965905127171627759072540411444509197362406948480110563325353996981917341176273974364898108234485845261071629223694738955310624688118026887224549993593141255269358704681245558226577850444232898170941718413037172845867872544783285310745593099345008320400708326248036114462169464986361610078223381656591933713608788709023024089787587966658373602328068126269150954360343663941089046821338240266741685996305577988433207153099677222213733826090555375045083569915828755927618667221078458599674499883175727889722744655889645297629687449507077642214879508375648305102797101101066723513767253995955730796246734985182938621867148414609520879023104541647215527847209903798752171595901627846685361787409621623995339165933116308368996827927849840755374122394867509999588502506414677975886207092244973041033522293954485427412694461033458978051374713011177523140824049862399043936278415002194506653729102357599907134726685054363176612316862397072535458812650748764614215456822268448067759425932376244263757256696506898166438264091556577812380538283271416808110211225811020727033818869409245052679334657740763178083353489404010484105349446889966473858633447609430448237151254308710739455792731016029993189284719703709891054169883212324217879599782862217763903081041289645391179564581157436160119677911404864443186631680669442445975493515053415162355000743802705698619838010279714469357843011150469290204857318343853804486505296530462564409414723353812123097673020279449669365373970660930052350831429734309904394741384288757859729575292334903313458294262645318103842243377284656912518421913250370987394841575864934874402092244515759337709702421987065032080716980623566245896191814883654044668563303871467044539462658581504125055387836635491702160924128108014849645674565769549745471883908528518959545667566240763895578823573881679289450675316877340360646086725056746885618078402038794221805896312375524585395087212302672130756356196018372366006649579222508998503703223253493467220256353365314448924382043374923555406632126287932734480373948740005621623896236980088330301591313254595478819667810201215566550996232918895635724969420856878689430523572482813097284824695811543995509642344544058626225281986140399187190112725895003163418485229388045450822121882115404411356519540801690995370498536686204735439005791421947840728568897325813051741265583118923771948208836379171948215573807215876391126409418279249412931182056342715640167254383580259674418169668270871378550385038560220466468458457420839480618644144225140097911200207149562570616121708538030590205536373375435766264031300668686876175901277167784924444711972294224800819807236206171895335204712096695820748609214920859440164066482556624121708392898553937933201131004638766112177353251769919535319618508957226114461067209264920388186757681335661498760353023717078488262303540753872505172329832195688071982967307214427591007939428177403279864882961442451193728190601435848805552920895782823141748225917693584222280040599601839950324670717928438998415232207089837625229913301721314599251235622837812592127988690626857144970855953775381666811447620554677373832725684516611089010023650049927669328941445061487438198208380200897948774801610159776034967205776162586023117181963792912721463282800446975571736650473945076914663869986996536294773130324628255669237415635904741795894627252024299128752154213098982610779309695257609242114894463210954004578351421759151152866436644350977607329476146829272288231317835960055836911277436225126694305395052381687834766911644956592912550501900231984833083107691783805293131111820363060606527557897681439157587126178919945699797361767977628911773030430176891401260117333495032155627931614461667779339324854499869989281775755790311261238514363011904963305813745349529494429084434072716194519199786719724044076293201336768274073884363033623902135578487487981875249223360286638425636101183068791505333260922754561602217103122495014327286407702964682437684873328400398305665924775663325234685681229029129202619299204006305760630163424365858465209653936723818832911042349490878534741071410851279954740575727093552147464525152918210377488701006565821100914654167295896562977227802600774584011400350957409045643956956751727538492470409246381244036005825667107149875660648538021610390194845582561539240674311423782137709105800580622006176357627138039523388107348409841578266237512432555202560702254178913620065798814960425672704223797058253898452977945915204506252195411250747334061059537742982641226240938460890824592597667431128166586962698817593436115053023535094714829576792110646844690444401266516536435616383519579250181469461107668330326243467325856190651467428642747786721998871554193288614600633921008073403375067645321338956972627141736719568075935338756791013868780407863335572420725477074765656702655188787710773724637242566849499571586460618827386437063814884125718286751500932678362243134469858869273493768385630686272674559023958626515091950448197114309065806808658582785240009791530381036938916298069860556069230733420518688063243912217867749361661665144541467999517775420461094711265742383277087226216540409994999898988207763874011612290228863676441607481662349732982354916159642963882283360113067862749171122394593102741249692259909691207554270015928810434878027139570978875396211256601612928532788062305383358973931965003236510946172350806852947557358025475113043232509929732284046577347205068633460565345333859386151034182710723510957184688680506115448633184331519876452345507432924319289587899089528703100238991568136162513017575797833430340190784576812549602905572124897269897212816484420766341643713157757994754684946265729971054914110170043694250406796776031986818627615137258374681206428347935115171725482493693850730473375215868305250608819525048327974503885304738978574686117319918854085423263614917146905292665505738902727268498229202825176106044831879574621432118464573441613775507876206881180373345486971200365930367607339880409887047174911135067924349087886232008706176799640961929130934779192555341677098660230321275422417579565677178258963474363882764197399588141432300880962124435324245712372309560367891282450676276871517330724593970281761213647507394065863596328108841213963312131261839225914688883676757670314556688765234181961154157292068134954897383751539543215668118662446066386091397406957620820815741958890661046476529805746123105637520050951162487389285720690532688872429224634225224509346352021081948590705489750514575107111536460843636869397168617871394024243450836769855403894560374994191956334399876871837317236563998177972784247237458745364113950215089944993398575566657517280564541349787736545351641971551339196282886026574060466686713254778083982102033727754019564942201773577663859758067870637974103741948656081262801347359267660713249880276917574810344005894753099923230380298419380251877205506714146362863658495147919918826028299841969862996748688446377315584996867370271172582906480071768398650882958686211818211673006586258740881249441359106391583867892375966439583442404228852066432849695076830069367900700456900413237238576276427478362117286642862920165802722699456307238638385246846476720668570237233291075833096951831286513418029297919176063355525986999144042630024809847934480765262095615676303431488056349106866071424168549726098593971740865658198159952189639340761554521767406514594172123236993254583182137884530674629575000092729466641556965181722924220645839534763131747872086603047918918397209514163253265994791998305979201669395045091339979185080086517855953312759188256023424655217769731342251586914502380506412888039935948998537727850311478245169788585514217371288918594330005082093525976351836526334415466823078459194030443941693834429661107074666496231370303861719927335631411585656935452775969766672008091628811056928932183906781288675696310661018581851745218021693557274844465689306785543427547284153352571334786279230449617303099192896825618126765757168129725525500896601914023223555351952774276052986163903283183519098626289456077462241254427816908516112898906257615626256677512522971388024624547372537339225017815165369644763963775816607647655635060845019377480401616189866407023664252962637957073860089798881736514264351496245641007340345234230586958276605903054478988735090959282066510875334751113762314877244474889277121903472336373823958410241630607956648841127562598144541050227904056419522320661794687117093115427774897819008136103512270835789538418262763974867293203290507286468168317705868717572719106789805654185977893407250577418635228740642131414375225107810963790040786362453761466441310272647573326062045063561687743220375853455870712229589733580060005355963422639635861285428687627071091792977754736780016833965972073206671571439674522722933645713455841481448486859050884284562873532091135026652896066492295341789581789568682291927527175573229914521938062140255165144684967639055361376278041498105206321298792539089642468242586522657971401350405215568073451473699346159905562656195768811244392668901781991545790356518443844397799943933968613859671954304441646783433690295466861192630379046770876776096436599146096891570725809478888076132019506584382187158503607194749652206738189131590418656293906543651533105317267641971512097012883111539361674105022941750726505921490161083261175707768207446806016036746675518860937718433747833234562137353003951397907795273129388968698261928462464575877224548712982042404702155403144933215654583548376679087686226465349234063216179823577761556988531799394207073458315272057624233514259026546922620963016634133546574193564520298552534370474149886816766832623755990870138270858043441695622864902521623193462443571936502452617340539011819740234521003570196953457942468197845334865857688113377265171763516064746498581522472853959994030806545130681191914119545639783976061210665528767574008746469319791623250849974638362114648526097730843524757461936703517831231414029420996961107454093571869674750769866160691628500599250855078311490649266717761061821735539884777620269834356304839053109307716367392226491131994014695838320917629773571354638947533607729018761540573710617677088149879580071850216875953679367222271959314837749152853633554579488735066395136278313756994284993828419231977359305321485677704244962648334441753718675419676052819244042577243891342072575949482684754691146729144518270132552448853050677255571303015893223043667421183703225103975444070163454337701462305415115508015522353033249547599778985389892116726413443196146431735932688291218173081822469191794503216914984487058197137698154610606100355478702545532608012147237604749051925210913895681221309545121256115116837443158882322245631890352822019982498809786406378992406559017680813860212634466279558846990817568926209316325492076542260933161087478087183304964748217094105293176954788351844613352692792873687981771723187237517630460024054383517398771135830775984356228040642674712152144018360846661906531903696005436617356876451398135255556275207157979922780524075706930871190643094068168543625537280336588305891007263607014631602298677027919125860376549965586333590207074592009207185441239603460171523863823207368752959916618328441447752673591596376125042878347314177974230129987899033795964615831704347629331768144463575572200270685353916221172828084170112708110158031848660674212772949627721039697714716063039355211548365371546133888788959637867093402327608456830108000876846452040916597173884799503413849664664441617875595851839158495118208883579708216455207495094962991033429169259961033058800848874220513801043809601126128973957835645459160379489813027822879433851470247136075855775523463161239578570827231823194052527574900728662264080362635627997558541176915311901122332743275371430506261498431163832431417760275225269289677902690150879375305991328556132702268954761488528812356112737415950829840223249048459041012861898401413910250763483386401021735677895791068692564882551960969051279172165248714347930337158161066039790427228734949743361969336447756644659804281443511614366739982168083882626679662171766457826761092482046454524727640622132687245830713524937381852335477201205130499411012092877923406169694486496371949019439900021120387344658556033138832430142346410843724205800526947311355604546455678057728012520209950628862836295359757019888447409786239403845306385109519007697181151866900648955710772430194855934597087187993556003242282046340934129301311357936839041189690883190318671390303032398822590517304930977803714887881726523962109301640851062681195458270009303617009661517739788369852868529055055875550885997278947915697412992540908370516004797911547630876962221710979623272956566848525021388413509370405652515937152421070065185437309431823147450609941616142277570615400873214415490664103710368888631464529985302975351484631934049846707721366474796156154241112992441430936065820776783761877080265470107900202071211107324956192264965575902472416014225702502381621738573465271623068108246761442343283225796857612329026717229804457159704903427622979243343635517853730997047885110034372626814612968610588954031409791255798589361080869817038494927770464428838692154743155412222340013914974554416260538681476812201137729120944753618772604081372742847813974049839291069443715058565613792992131784801716824640267876826748813462059408672006075237262104538787703561011673424015245725261821174873977450542586433411241982217280934147409345945452611235442159281657062260583356094578262216204023467639833226038753261593827577671325805197907430501715120831757001759669918679016229029940983925986251972396777774154381189666076352813677066586449230042574811667040224343146683060784457938887112512717262848121788505707696220707458657297732456290821885811000285604447096592520448371377625036114437061679004402070579552204495907706076320767122767000103451072122965877922935722377282615153016537209712563206234477052018629081157243796160857491159888321601372390273323614864196258034916996084398332046166910777904256523868237355713477155244905064281921072812844543138582503987045701969594367696078048605373259599901685334047555509950222998183012641659364263760058063666394335908365582164483148913331388400922780969965948961613220529366000506352886647223997457261503424450794123691878105470828432919184148096987051250230579010543412374474608360382223472424988956465243771334371803624581781297037588989891105051900737655531154029956217365425779642935278757917056506184116918054825570937502802286763108176476457127993524407513295975919008502331463556337917619756966161343060240357796978610799396489239466354764300444757744007031630969054552416724250541178282595087758001105374272474867103065679781143078920653726723228088859164726199929008380794558293994948666939140584378910002467215918526910775788816576780453444743076558846801779747571010955823514749948944194421340643956317866671377988536419877968573982919492852506803138214569614376578978830588323081658036389517343809236841612914091718315742611220647675376172008582014929705086533093561443990993335151194339232652156631440272897004141801416246497591759688236991269017371872399820892514427451074136127312730074823529553814824797561880740812992850341300511123562235337581984641030303038622908982567232177561782900434842199503063007479208172732856408161191634695081180470926371986317829654673548506134673533691269554421218699688792649023142857984445939442091726541206751727063433201768302872230197643064338097491291913063482383885192359678295850605931148594772004870116520367516291556142710533738196843602975176381995741265576829118938635454046706195852704551885953848490288613825383837470456293322445021188925694143107673875959252338411721723005377009072696627065898947257595416919137654542262239290828001724959456993289253502821286486616504391601306586810345750440647455628741959329185754523724086212709353432233095196720645499426931437181241198497342182844319189518659340556196894784412037308439147282694803769541192714754068865892100467207977288387022488115493607848072288061748751252299145976303175477970623520627417356075939581511917532185269499728730181630145799665735101384793852227499713995771266332258554519627671976250303744711962484161259705449631371735804018197225830367929838132442258870927476672431479447133890563792206967612043902408239651806410061703650027002866524351399159455378864486807090928792591930228675444084363168463892515783489594104741046590754213319530166375236442695105230284520238447044205490286980869781683112492742599513530332515666922417772967500164267161692272206193603409013679673840768148855113238432541679503763306591498000571522092178575341119493109152972781706311103391605719955839779490398508013640828126407361351532223640095864827277749780825483185526112437828953558106300489135045255339922317600366498979292050306774488770626641166480415566994297892392986076576884212825184771529188528901316169361564101122523427806111204608738722693018558439868558262834083146233863871085956502550811583242634522637673688715460419761630689844073703686827586083740746305528231794730218789857821097153699746440099015421995021782897817359474222856784553768383331756636448686374463595562599972258109742469705688720628554514041698520613519217460644018957202897330929687074335971552436062895940308469495323132883451603674435613281903539474561156474545821405395819941875292114159645146955870952830502134449487746459287246741622497791480090310511548118834133273918293474921595648822743767584488984570588790964715568439994259577542755240262769150261147626746251033730602232351979364524664485922836286903722684953964158080531517663804853136169391838674731683892914048406295775120935642848929179958349347538526302911093885476578456439637778781001548725969274275063795097713047909036178430524820280921587633525095210280311755206345409071963449339857857663839422518747243884703225096528179434950766848495360922597560670836864224352032119625334282340481466036490462939223380616534859972542348572802068025110295755203851926702723536409198242935540955022599756309440018371940022385312751823500007281945452526589513391209062893982965869936178618162402153514437544305612317397936217619237725894823912915654100025782302695755818676925569389685113463019097201379480143107002040794209397582518930056904705955790601725680393311272098175466141861649236358800253685970365568917677224951853193167710455252530935778247594845901802130127168971094473471614211071578024305477589360927039621885615853274660118793308058155527206704656375311394619467330237248483116645524430780930898244705185339862105529277682446223851974584485949453517587231944909954979627562305808957174369334721853131047720148752402052754542643528614845684142603060536258903309137775411742800088512927025040372738406681936665014377860827028013462898373282228519697686334151264279018822238715825120385737749378971616863270630978599292679701418137975327176850093300017925630723310480499338028761331263626860554712233152563370378883101714186521614184470973314295286046315419442098683702937953702781028329866605204976976812362784728692670008021357196323359158177165839601539331746881626183372662821044235534999749539064665323720413240910021698256251160096580986121846464597401931952385733731052204722670907115429820197758738532806243252963616858568537283452081007334455409432795697814288490609182647142383777460152290613454041700457770388727122446184941743721212472343902808379254653850844478912226192643867561770701710426897116286169329113465094807766259932322049099741605080096784171178588784380420525878375101658027942209758264940866897839528943269706700083930738586786558359091336484659350245788062818331300074535256231449111643871145433096637447610509866520296733440320366080818178551806433671439936078048786106040520436154879642727797616860460928617318700778385727440950569183036147036169980176809709180235810514024459448683508786542886873762812333974007910680735779942160539404102649007369350205598073562784663851615201864846930081606055779191447237719342993465898173036355100560201107232662451202380821014164009496805538710766438444901034458939602610056872895826001365222779184049878733118348693059927128496634519980396155969261753825390004212010648009784131870068331582738312318470516921966073915207067909008094667768971062246612476805323115151034014914743463234615932886035638325719676998538704972980535098615161239838646706249671328558995329146356206753100501896681777548584283451700999430467520263214151603758711415898184136354709267249775788730797448796506958704929231135851265252042915894097766117984460865033938469790236829931807285016566440764090013628628395072493664712313462219221640400149899749649896417783680487699526985751425219762721702939427932035019734943695876427574834093615762825449023873918969761411957736195822471780837823215430021783418925756384161403183714105723171629725696180688179058916279946299600780102272492680002757050104787568010345704571571818187978584284123089683905041381179116416031136471977222360509816241911020641671600451423762831066916455729953555105381560410111530075850820004767134566621181345241500968931787506730798460239476469479156474445436519135794136742445612957833048699771918944683444243947596028398808548981909283346857973694023365008931671691282207792828800601370841481918654631976311581937998513771048717148347806067797963197702480896007706224711460719398068084848613836198276964472341114403993523084626558421240644555260688400612812572494787569106331903785906324098328651393137039280821950302125724580781180124267765579550723869682106020515378650902985069340008537489015899301104516380651682755934892166147014440657639420569890521293052901486891134577336571811211510132772890045037867552941415477747236803271863476558618996013451157717351478402299065129528965942208090970911448546775232452119534419373741891833821307913608449974442032516943705321193271882675001241456994779953185728765202013452883450644530760500272977921515405757250094252524611570931559779734172814068267341652712832630052034539259545820828736964312372693118772326587388921521395106687904090350740742470132805660565138644163284167370760710860729397073233524829420974942407828750241914759614149713976434223343608015198274910096094639272906985683757625487209774323873281527921533210344272774610606670656094316216406475768709544524645895498960627306269917864116864284077010841523388633887646650352142860047016933847308500429585618365652983068981658070657967473049522827632097766692060737592609682963975329826277348391735027654012359944393448053362752269614850511047864153711827128439752953626966008053652813630634755369893064656797076594274979612846300836387711328230712434363856679043237394367004123745886437999188190053068647815599192380206612737697385238550551492183935576887604031123793169398907684514400657039363529523387835713526573043037638122302596469120819498039181344479905050041056589880574644471812788994787050132932904164030816809540858172731613250243831650945502583707696993070759236848239859456274616506541081023264341661493612150640056890806173975760060442414501417127795289326366353342850610129002856792896310667778964646174398738706840059321706112511222482754312149485012476655461543289013094661196232395106986200885598558069349204064071211952063083296164987445791392025578643708273888504498222010829314507581162770825304423181692359225538524755498015730865019730207835390283984626778753933996025272933935276357751936691648146502498538167603958670784195015715824362213538473628164283331857299347970346861024587807614771386594175472149014620578809128751935870989876155131142205659696125856304402482612574667323406793725673641175018164159462702139723952729848982263904114909246191930645960503585269304668599884666785788469741839744350376811443656190900772155634814840764373324419953868194882482013492806170424134503622139319589929887736966757448349517833913692821758678803743140650643065628294306395653692543078953782346391745582114969491245091805806544848658470249302919392673498383095521673817069735083027333245986087624119235785776973646374669788296399701647936268125553905790183778599532216857150039197107872381095160592140608905320239506936053188595856048441680592424853532104291897167311597977570383275842042935645159949822995276310674415295293344097043892448778169670548846007928951985866354716293403859639883207606584897956967642743136097827572856998022540705583019146833533369171078043082746411589782864036933853413888029174291133852355177414634975577562589939982331236554649944875414374912776642665681350004405253110938713269040043752692904194711898475710860170895474846447905952203507647109293800099962003598497912053374061880314351891143364189523043928180997368349108096294010756459613122146071582339155486867596198770117130577311385810674825947991191879966698560106559555138334459451158945578375549892069713613008499564148548235408968519866553386827132740166807844859014332010480132273521050414615269951882798266948136420366749261290863220860733344811036094726882150894966487363980460674107933424979618099801074877845728237826942012008053926470688117203792058935534677346576880086490072134057763381920713832200704045411525410020790848917588911879831268581487775503040579591195960057900143780377280140677002618667149533248508280811147238210096496372508961974312710522184272569657364067623933120873635363081070008481703980949968099950861074928374517380363473535920292910078639274957501663903571028428901759182300407763418709439345429499613826515512082938062447032210524501287432171704117935228476282246619810460605188972743602372079587308681544492073457622043507957072228575876950735027103626764026973102537536273676709851087760810461176084514013398985248503564060750876461595247196646353150462556950987516274896066367897284190037946552569551749131669540656636247836700556596292657980650342846022983628596742570327777486465602986370068891216005380588693396508470334526316029781585590309711904338633950769169697403409522251692385012155196069285345374098119853234822941759565501383877809289578966173243575837908852542779913804804818231921725739617166843056957974172387126138251949933178015837026895245388041509722272037631837307409342795847166349494857621537592876411003144138805510095791833809830384542388960924177671671832133766262867382575588909409476074681489753435093831928896954273058110505935970598876744444849746206361518718295740126494816718617133524177087169016004942143921422605837715301779723004877741559252941833480921533365379890304447121675940509785646333856596566642826843775768573192133329812141355338379437982781554590590032488994068995904921963095436149527918107608904292554904689570248347339787895255114931280266064723900919442598943849304437647951083575206457907471676674378015543237278766978402039750470557171321157623406978016051737910996339607033716979173419076098678317515193993527147061994854934992892171048259080350653990241899232099149232330110723049902292176518623179973381818761078811741622806980140946850553955515636948817661844885900484563840489396142583817660360018189633314387101143815199238754575008677397611558385387855060456068649383956586069915449601233195751629942285026536753574211891186049417309046243616730256161240817068775487343337527863930615553423579456369483210448802926637139719311167137759556500301929625543338714661622374780773135542545059197464613462517976372270425393182603972954207348395382890607423945788956049784570681243078563811843077349766839630756604274903789482742378775100860300130590511464975772872551097086185536237108273993730722031508706114776753474811080300677944967189729843536609590526023343060823026963814271694253855957560215528886897502768311888104829503943457131193729390172990536065991378253604114675799610439267981248587683713844463378939743347423580731107655033205128141749346129973969986369390781197054076166195261310845665551562685604806151478891699014173318592981801516393321856506884462677656770068605868443906894752124758947577324958609301468254952039852828155000212536849011463333232599306121436584651391470564699620103442105493732124959052801916647787923670658076190659978174513698888985583260534191902394930128530885825904524604508627329564912510021658532264048049202053796383127619359540728282715980861691661299511849915547811376827250492290499396600397635292938823310214331969588591773016093505502257098099066856674051942030485998054711100325685451701321063082589799566532634580869606777556604275834072653079309207064213451109356609927718134529697499592530970710388295179836577724325926308712932989731516279193051079138530620906982673847625327074889954424424427022771238450139083500207714833853278859858820264784707075613084702056385218647394835007415059207006963829110356797267972692914775013067124285619964114531126520922518130358702692051149967150005634546065463534199958294662070821715580993531535616449492998473241746872963955652110171751046483814170040469577390783193512404625838035836511097810136123720210073484167088743447506299773357531157830310345556314539185353679531693488479689821112725138822940483613682260341840308737883166278549522128005916923464141978073977331116553107786571272923332262871573473148394349442089940182437192715864283095610530981282694425145427673387154802830231123629971437667944216694267752478990507978114813911122076143873131671634225724788234232248867738797620027006011672709154535895765753245866971485007144125347436133590912952664641279556664514040245143944523901426859432314067796496481447376069933369105241099723942757989468673250968929227749860972599668367687193027575181660974028869932732092649250250589490707065645406351117551147485299676384663639717467723515937908716662449265642954653841944419095573188045938087615749632798973445627076998593787657536605086338859651461793211246768967472498705676655787145889599065908906071407806686674472582812061326899836080050413703152471735179557695778895080010789915979995164469850456520846681504213687175288004603640568054929062894678665073457078651686487462601865269936222632242716856446322432943363325380174100723608689679955860305830415630967366733457423919212185895297356761789928722255737270596589954036853148863426513205753541495742685641541279210563936810444784339118675606891153309182012136307962588970840666240728671742476571483734058658888123371628785158572121915561959447848073844486056126019139086564744275165980026613789655773727936757810902813328246844336997103570763379948869208934212787339751943810556466144716802462095278187241559533682894633989373214597394299229146602780932210129100471627822268853787923873440397073885981982205431101435687668787557176170625530327960324950906565986189489155292208600849646517481158762735188719022048224732721741341782555564670177005221964822751094691462384791071511742672185097696213735774950133454439526938157463465135400987512106900716594172432464622285171598498064135416636413851772841105496688552939355233290577516390010776082478011787747018013491139042856667263273254942045488421610388255602756774454266933727874683278925578341863244212961124863866512736538060840762238009572948369462368662017576071868619445458403729434872822755200793238847103364007523018405335218488367809640681447829643638368992329743686433660403846700220108971781825151899611328304395324949868382990685983313052927274219655650175303720184658601601609849449583269087168155530125885399856897065404426272162821115713584975332455842510210578372740846992770317618200865516862795730708627397455872413279923057691851655533088533261791701335817350637166048520208487543908081489889048617244558203024100970781948708397100558870547986756338645569439290747336816910333883560468583456690153382166077222383058947487855548213277167149399201013827081352242521743269443788229166960503864554727063328704981339441637079953898481147287093030381206542267870131394370190167906955896928282104946539007303837201564358651200854357393240173473653501257749191681953626993229409554500123494737116417536646456028427859036226567813835793914286624756012154342650851272092947017411457945106685944740372560807143119474310986612810414786551294606249915960007276693600020114054919495119739844776124505054651926783483413803440837809888095948366503502852141056223359597199411742992537741111667804381182249002754660184788290861914552856261253525181525490136284262175615032165934862160776619895189404332762415201616046169351744877156296847729367955908276408502455832217301650162057253623337499883865502417577369205895901179266714387208478962896772162663171084604019741468491835623775539814631483031429034367994350757467804747717978142927721479318066207395308128774255319608518859846104646335215241191405639567323031269571703602248299903492415931937228768923890408130956610709047314778944226678601110627974226353538791906347047199894983151190909121982981217082177948586609448046912422291453487632078201392602200398657285179091029242289075449078750113499415950556634263728643852444348146143500141244486476525658527491346317064485548730270917869535588818230034144320294273089910238794011430943262654345736973393651241733468408409897773448999507334912686148924738991497055793675679235038118861384889408167590493195377140312621417000566528830868294924105663145017215987072094853326801713870239451490512070677749853898705612037407988740381018287199445691641200202694255418307325812485260921022398175950302551629883618772576200699101307781072034078300256101094631068892540685209806768681994849035719956400455984841059416635905362660766456805252512218952575582149858273724686541434537193163201107665583165058057702945332614724908749213923586553846292444424114842230640119880046555583504400389073150211370264773832047786926982674709118201388533844104717609632715277664283325402675751026174015364896694746223029635491621259675655752977211968085442436585534331810853204632860401609835917089597778544490821947479814117470481454264396256391087481719141711381785731404015195864927674043536438155481243712961123362798576848290120729810338596973563420263386883248005767840394732803253241009073279567025756693719238343526989586521990452552232452373364793866460273897078188600521567956814616002785918245690867051234004037499999017900102107672040284789528427644039598776074478716133294795068779491305845567709009709600712026357023804522996702642130623779982236961556984904610826253729025760031612594300440095138086285529741674439120449991790730676099866244179215008853214724012048829943744060272789696452893233334440875917856773022259719940948909600402473572687289743012353224220647603989725040748583616084163514861686584870998560794613035051851043582015265766072315810042978345958965173953297793902733644491549951221556111738383057251807385693429764529199613034442957706786470087375198234800776233601893072449225356168110045903206484062216570535849650862795838579182720286707550834889730595446127860225157663683846764091598081184106495392893533814922917012831307934153876567794984769005365264798486371816890507577733500030325330673047390395465306164240207380289911702865032823082351355169688168432567438403540260695023998039459727206502641071751470593232033683840120956796429572352891945073498995003056310220590893043616440368341301644247358534722381394400993221612715313255507454733153369614134424047530702664492106063237997027199810612194310946829890694237779686057673565584732819392547707805183735775742300282521128836210607564172030304377424370821592041776688895764754177051246411294499594988330621080822132283393523332983637988867100632052325539393897429590653976960141770529491745742833136959657997595960213231932035262540783208501591653361358471583452313638767748747871748398274719140120330686028980774490424468343885724820302905670319216406505258484993075709657879606575447491744110724650679201975042095515712754209680329786662922934110847884532402031044869024918121452830043083287755012153893987683342253961313390487172678194793264023194620736959642311642162720270411786364614746648668508536769119908891988657567127440915968947561930959111955809788831697659427726378041151240605039314466931978849608790047425200996104005429936426101950735471238373362744887310323761358753375365974706040083952643106377182537344784721036086937912312380132617118560027751192649570693555994612666198787829316139237074100481860817808586032508045124879214696993559242728683478319609024293213030216808394369171302577535401159086171204950191403845672954308660359236501267484419863883198534121824564287582886944150021349349029414340753755057271999785597937681712551641871370474917273666393765219511400861085587670914111019324825221133918075124954667651488992694643036048749970952493189229651435667898329085862994432912262762172336577908601572580756466527122418493290279889895566503361011237512539362160072645916258984559801047210184633170474752145598039369813862005522048163210979147333803537226868869163866541322532671367885366552058612870673745565842661104805150325271747231965679146662810483758518470342360240219427819611844569856211297047981781500401861208397328212073445424464418740182532012668803431768027762883061291764515571491521817941613809969030268040397752560817292118387303715461302104733341656877712935259192909274455063455236671711803545879054811239725113485198963495505740132432651964679504050379666158333467731988191274322431576144543655926483234501687198307383332231964506715318665980798616852376378664974032102670028130221604939457154535582449028258090446349486993153768911630733792647812446784415339991807511108639338084394018494478164198237611247490889008329399644388635189939304002148756639078667900442255047454519813636826970438814395358681186230387247958520822721754409140294369377313982279119729096779068318888426556182147043663605590741164013945641147829475102728143174169669080957932730629481517502881999355077669592495635960708579566250545388568295972722629554259014299586483185880934243294218442944854962358499568670596859870020819006489081102147489367611135083963194812873511967844438757581139666722449437782089949319027000255079624748978559166804384205000863559295370850510356132244879076694673087079970957641998786830439685240694351690860159295774435024699300324226319765768726622742747076540705062312689819731673492877110009792083514058703885436571089447331014060858571128941525818596669085942706141752399650179984373277163899036002235959713443228196862274601911535532582706942711859084611211326291312058675821747375267901385510149264811602973678807557953794543688646295923983225749130680883246498046620557147472429199472103302267613447442646698906756849678579498714971072171370441738358151165594919586224565616040958386281962691207549099909801320756863678926866886629256478340779309676485180153024288851343894778215302010568527549916124018105203044623440548258361592777909253601835071522102996467332528760212785379690553168135192820672627371114658170480857320806619658184462075528539305321684645766371110336506930972742004438720429488522217962578813310880192680943908380959192875625821582684434287455218645051420354060825741874589083713916503926241893679767133313717010263186183118406755819438542767553841279550841693147451703506755851901934091715887784542613086982092508230390358315330558739905857699839519839698917681873742088641552139279912999403956258528257612734002544583231101081055385696671044543228312111202736525966237297723590726117293353847028867605544544433937841313174599292009174285399330850603064317360492575665667242955938930292419345238433512464084201524725659200220055827877721683351421207435095371260370795356478604307641506550987207514555218809585298315186487827289902431708866500144922814114486958186095466413292824560448277384807192897961340320505974327212897820923930047032206617516214553948563309274420967610950639724273230810602819256668867554003578891500301327901997522007934564999574539509224201013827626775725507331588389603395805669641680882920897324969283687032427968916155567445060337112334192566868145892656686347016776267824598195416236974184958020704865401896919887903815921001436786536895484203608705715296218842761706012393236935598849406227776991840283247247306365736345105217252190366509974523884106176332831552929377015082846577890445685857069666963515561953982350014006650785715313585762181648985699009595442265445032246862906775631639809352542389970568404090929434323412858664628868877689205339470636095368812323067565001960498690195553840990440953633058689133688799865736104793494366732918302907088448698752090816756988485472158114478476718503415568939024810976953124808018772796353612647917424905753505990972188229277364317203739520223721140540154576354210439212746584676183096737587808116981154852572890996623587550552938855309672835886951513933924240337115820938769686129107648515515879133044485039127887801441816432281631276637447989610793955557874170466409707976070718143416690887394992120567687762853106853440133601864381922621810924659474849981699431508730517926153889199953588962859564045411713585387233026236089713058664602230298676428592183563245215915832092016391548743506966661951891210862697593793514303172704096515627779706056568029300149631216793663994679936373269367978775679080730801573164862520815166582909003792046699471642189306456811975633016152651945255596623901026110654218580650508941410339511816496060471597154768513224608922949972807361696513650132145552964914822571504591461905701536901394971577051890889910307946003634684996276195702772229899252527799912236221744420067899239049202972336833944907294879210822352410553847434094015030496388818934616346345084908830150682411928959522878211068743749165529866215036339672772878772727741507957677967039981810785936968382782016210030660648584606512140973975573069848418470218266338999671492115355536866338064461764902249021712550172417184194622771841031100415609868851810289803400074454308163066426172766265481493530601911266131530132368132442612931152423540476495093897423795400375939084601865993413195596658472469213866474610828764935959872756245171822900524046950927067320178067455271726923509121817990091022235811867943420921319246336030217474269396528241703039240965350191876271399402913173422495985537784659790990202934951171555624194048059107645802440021802580109756141031785843116081993962735687327852009120208684187973742941768745142272156783359340118591294137717436240078429024644360031443726258240892427737118766702259497466957903113838618600837220410169942748963244884264629441198684514673826670518434544672567577451712218777585161517050616973792512889616244045031146278275557535965383891292161632975443347923666720608568422622571433863211850416043158523327064333507883949778420502740376107583054928030997739697426375213565182252780051377562206421228473605085322481591775906623319945433809418494896151280656073683846314005150787280133081732858377129123932545400054843096639123928772262691832942690620153979802125243282791197402056875037645277906340565705829534735333355673297373087681844114802569882541664468426241392426033883626816230485226980781931032715737312493064524143845267715850390605541356724056997660439205991922344541484051685614035564974121823660611618763590479388393061935403881432843789804023920750709323556436669942694231518024838659160433548274822736041652498245252299377752524026450320267598625939583903431611627648596051395222380736569937217664520098571947494011453912740758538821345751879547209791174746750048572991162322477872476013670681184436480524034131194872004204532677858976632402464973231289882261547274097324749705693502355082272231545077674814432103205866971981723387649724486548143245201188218616646899426494098291677459006457557353114078736622341407329654941157850416581462255773516784688811634990789074042345871260572111370134187319787073516089594309380441729242597509555232171419380776299081535778542657630619501274370220312323967995090047259211446829167162458614151134499395784214749382468458109701654025280662405802136214069849452370174127162517637889979325089621264270683666708711572372726930456300925712979605646853173044125631474897289816670004842359117366821039708579834504424736971298466732382975460852076254043702670214838235813928958154428230845562882744211220745343705755732398939812926276558861740045070877282291871333146570040856722357390551146486975194530819181831390806197975605123991006297464112927498261606741087702667673746359610151354816267689341825941241838978371821533402782242112102805788741624588905500029973347056669353049779989958447166333591493998247185419263712223382967557297139128568700470863211849025942570795038765389766383361567043616719264082005484590905576858162252139462382451404226494783557822943892323908285231401570054249115315895826911058285862387960143888946011497804308521142926776993789824774732693145709725937427090260427796602842012915883027244389645075501422203831867244769378928530768992070573621466168509244879583807416741383308193700433593290385175794748041235991000704370346514948798258093082731978692984399655437669784064514528424437288256912404649526202557913351262122024719350150640238948308358837307344787298056064823872399133577757262458059623455325445955122442891544968863990337184814300786724747632097438387522351612139417729628760926300394840477749230104291684932249305774975068892608582245293863392175129157748607335807593449979917504457315267390166171512222166420084950118728884637381123510108763252903822607194577485803559478536948122713898024368593029650178057169065430293977471559174187413491387645960104988789066392816686687645946489364735493877043380445266032917783167747279513190329121322003917483735303663484162343877087989714480801204620525402912615909428118641705797159152046707581759078836204444021862254402523501843266853412402421805066020788024597009897515919398869949789286573315105191809528837489703133636070321273699890679312069685579927161687007373645717242779401157977109028073396856527042566694211339933408905619842948919697481248928400857993829175845078421973263014913971211058930100890289431065597794797706351459992535578426011851465013017319631716982113465891840131831203998732576762650254988434757662436988127653021469494772910737082609689693309863548075487342539129617153476499457773169824196770630185079207117974292327556904185420803589674138290286088258018441420522132683345844179288128711346228166705192152886356097990281895470704429747747563061177703799202905196274256184817648874706244947749807734695955053821272543489217840095545559944576303579184094544530072802824893064461623979915649483415629239148931861029067942497656325225858611255030314898706098663094073052309460999185127621181042011886783207526089328758631763164234185560396641079778464222351626097296383126729342284495681576552384074030251196598599065866015887537384828440640404061422413129006811725722460950165934443567237043809470107507030418800928858471816099363328051082901173110022190896284945503513671443689111646723601856128032563538238920039040057370750641923400179778286526117548923800092353507005493619756912089526553743320791166659646875176558787431320829068002489468240525080838237340180042188300089220604513785797040276286706436412253987353856497839151724398247248321590781102640134159326765285469197691646343952094027795596761332699008841890589730637372202813918423236335902915278504248904311968345523398156414093750999961367479387760472321132201124288591287798322958703120163535486462148801849765558415824667142503087919530429953182432278182642491676060917069761088289780051648300046555822856807535884090045116372036248806704054558486706207664560204321688172870223235687016838192373310959335982314568357995259605710974899712728187549830310898848698247528509098833881225091876211149763947487535567567714349780287080738503043176292422946352968551682312386928805472445328792370280935596105848617588585056630392856865175594059229756291315118336674901130708660744539614222639754845380866365016310515308943427111859831915183316752101404920763120806720250521262766341400196930772923781660455416414068412484935429948965964194769923793275320939008065186543369144345900478568178712932250584842048830625791717912942437813886104469347917283441201337311517646627948174260052213874100727285744352803796728083868454850796835001511055321242913147041991027621358029237641081642890093137756612106334685689778420084897418022895484873292209153613479623260426682365912673675147399290222111055848236971644649328484044842593663580476212980562776198341039785924198880882152250366836701545579765808882446943211404830290604012179500810078673763156486136995226555052107970610486401952047499620557949962014916295729040497063157520580178985945521783885291341084845935982901787049595926643529280565370058536770945171288708582541461031445911363902993992047993192157634495274790524803998341289860303265809427138186593818911364597240243562884033251831193687477722765555814601998113618670848865554167318102327506363228585219908860576785600583696878430936314693262270484973414127779474914342952860299365640886774511440954876300689165169053915515220007038403402242896219495742117134472387239011052161726693511261444832751126248806932789221112516240938455536534483874122119524125345194776238890988965212943200168433713358661821379942392342645589607264313717625597352100768566390993114301015028660809715545918439030678827593852299712495092254535905860146763993775919616167295518803389842634696433033249927849266710433516147301969101185761053512194247360547284981658645050270669161171921458851858064350795237660232748689937352888633958079332895354434197636121240673661664432836515611733843819007316924849408780176442733450713075924901790600534170396978609032614286699719618167075292755033959234334114430101769262602942092786027376502721937274118429460709469987236906164917616635874175551072292287047120411259941968520980198845947156104786622306946153557238429230425515472341364175844231372811536294358735110994817646229202856645187948910693284365528500323737659468383026482254423935674552793734228150014381276248885858499098500611875436345505000594587956491972654963451131173634636369106496721092243387610010334226663278029105704366456483055301597786321821474224875315305787913856879282644545577234131812986039303064375344985040366635755134033380240118677624642661162484516423405538807380931489009474620241885408751950520912806219905769644525683891955181221828103257372597840818371754343032137344946488674254002228971035553331841188865459800087328517685452312546548622321821019230576357891465462698301145694828158160447488218769477746012506196612219230845430398874824767204921525214481363175278828777703262953229472181461308791163830420949489717946064208277005647728101406800909290956832111107354391853258778274605083975854555139109781154104563483765066571224519749114130084630552260030669404022661706376440516489701216657748307689814530118823399785606633817800332337506770887850578361397866641169705132868065049123019398760988310076583182639098969391182941320517816751220039964130665430438213158597121024980748216011403069928578903875648817932551853007341573808559721215823259772888064462250275831874035648517576763953369669321241471691626286774704206985356450213254806319761089526170623390662388623995696180854546635776391115369639754893276901939891431784808674954809114449142444617208319608257921987593756204009466241946888023003233415686436016506368189859002740070968908371448954080036929708805269168074283993138317634647143388481961810392015111520554319749141112437599411354327679246722508687206713285250331753179502640402244841234395055613795300428557654531420610606259107034966206238596927632563752362185346523791103957756995688059152830137521650864693775213282426577399452870868941639352870111009155462143944547468415717746670619195700819020549836652142672477758000851971737559967994967045293975188529034533583904134717245870840656048740502887408360233588615536553437714613304758359428998462908442743430246885885160040700034497374476078948472029446792301603498658850979306376300874890556000717435901851489690418116601802747800550387101822065630690249690578587571385598975508283185533363336500302542516050539166040303965719826925739354718347627022184821698613350136586702165005089946359967226366110556483099543486445966175182821822821692483671643940395965212707915155058618332801416920822770189608082440173727167525074430431021976342444233821242583695629906844006272274598288964649256728375009806389066166701767712464076102040990447702310119625161438246594202569293390929514589777941938079983455075099679521988384567628433276522018506111455920765023841063237314024730236368286318630865598571105546542638633926866378731818750943641077114130602614086598126079134168016917995366847987337490251919791333206241377074569153860560161099116168315088476845462107824924111428615517961639831043215492476336661927039762302541768581954763789175583055860049496864630491172885054777483604941735417015261796990385073689659383759291717977565058442987360077418331652667407568669862227833947357224925202041725528115094981257124700642643660230385749793664315809995030438090837497435102400402334243538171353761901033321318740273569652363141373466616764728780257278898493066728295863550235522478037429522560138091217498195442395695323854545854725059901650036615156253482478513731545761501630679860104674014827749401085330743610233381610539816342197057866959170679613876313261574718221039075340450899627611551438533406456999074065474875761706641087738182421787393420980071950893274383382308056164804430736491979459827110941267421737150070865370122318594316164816418344033763811596113767854326033307236199156153843174818916007484272441547868787260224147392645672789769460167042963173143460711361385863058923672844642057994788757432286507939346610906919420008860037748218150515589518267066530688912192935969480326788563800490125873421466678037047024804961236431117361760443920975367210714118148071405413654900718625087434923554798310711820324560606859771030243782295294708622979280292622927346695867553715559036191588608104978536311746493105561153435136641997749682637285847695464905030387735128067594722673125321353706702298969484016937482460833786266764835514852591704769408447237716652877588885851613908848173403889431949061860649796536497978024425545166357412541776833794241269947545803297574339737507835876313041749750185317816858955343478709220375049200180554215092675889714871721798901970396213527771214163359706225871498884933692947825623354549727652114936880510414002767651136268751313265085606195981582776768285042618256639587521316656697833176895799236232647783140946085878994003753360993832079400366538346084424260334573538121326051614980640745005470071038436114782017776952678222792212272556506927344994768332100724989690388962499275893288954625301287415415479469927621528434833064777463028782106723842487597709504357033402918949965320822455707264534683373203583420189051507870243801193112156395966497905783672288850203446446261990899718970707455921376282777900357051468316668671266443177859953520810857494621758684259055734133063349334175241783347410675089059799039672719213521270291898337338218861280318614611711954689629692564244097830515297040096857822198064712812753683024209861394649256223039532566508522786937808911382976426011507770919724407294301946702675254511716784394974441774579298921861480970230318032478098164330853387341736400848681048667200935285250616892028081240037508419820794378934212373220624840987076979241761747013382678637606046760879853290392852487838873204106450247728272868357534436513816981783892082330878229311894988266622748855862857250657292145087562026079340615801872127928047901260640171549964882685153880487335501816459701894964783180071803500035093216617727667798287127425732923468424222411739060254407092061728250742475229008823418434320885620603680106282890751143076400039360964010120435459175200704446888886520335333607374299278840732784923120480034073233802291276537411218694527574916977085137663382634334070532852884700401620155761581342955227214760826081385208637890043398790782131451466620243774348975821171634315549388522867059747440829957877919372519251722487538428637589611105859754868350634897793485054505419568383035123158373185636946292951174778957318418497213003317035860292917869696209771562453922675651216796122646995213450102112364676040119533748727107510243144217345326703656656031304302241259366832673254569015825822168033544938442993471602040956499773560321332837288967484245864059207037867889067354116377192348353942226910286872031655387683138621703506320012303812836847040925848304593669295016159970380205607885455559474777956996003530087029199979880517079376246637146501131290422719339534355978990711569009578033296874461435945315143164277662043879093707654482061075212062250371161856168827039567739578335726785880398430240578711887220240039813799650838631127979242672594849792876705428705976569931693803524074104347802621231401836117777913884379180368318712334205525831025613767945703016841414697173663428457914935282405098811452615289145556784931694349602152361049787663521473812593234926865130738441346530270739429122139414469943557298094799545794342574790156921470283696377370197543332634485471668500194510169382281952197958448995800472245921444445187401782170161965576783438803200549868755502600968240672657617279341507704646460062871825585010677776320803706298383581993946222585295674624679689563188912449487972854511534743552993169924969680354560519293531468053306646244154432784973489139112456642052072712659100962407266069715127361924429383929939002878049393292276277758832694045141301328598455872773593994798529368418484834287792752131476746666799276081979040420072194346241012944713904884132688826611137480195476620111569771054455556062610809705297190987199279029066372572425453442865055210305544099924191094001272077679807638522145281193261127840685739190485013098852896794660112574294262468436175487247180593058159793202219431670144323031556613733933331460446812561063978403936927005786426691392014409351073147149312279320126177556402258053788646509286323950457972380117097373374883998890530067972697973288297214668531917439784808273246922689868076481939671355806329622989821344714289496405768958223683746812861454528056118866932455884234471906062875354118849303420104753262436643912941705918733615410407969069980170422761584850180795727114352477034674044951456204523088239903354082394949071919362583231492490999636867903426359639129977175258452898087231613440975450649445702556296479838570562891310002638376516302855668843466443222480597934399002155771573865372323392322228202793838256821744304730106720307706548814103072338005025453346857114649485004791522511289047682566481326823277828087700294573245231462330097289187801684154835852915749818925327668455971213487743809770115223620458528823186776121956163027404141568270403745190644621855600750009911664836134531010715426082213645817318512011791982089475036290435686132051291346879991768491450773639629803071072116067317036544662240484887803062012569390772193584056556231953062269798982376122954717993320831080415251801067074957023917676693806534107529057574444658716040072015819161362642402032471786013986579930343457469095736573708099581324853841832716875067925318738052862046750822315538308188399018029064649773881207071533396778227156838806855399957692425883220738460804100647112148785838544889790932692837316386535121897739343329655094825205963768652437867755021820198192308850154331539337663897622242404524468426040214782128740304699108545664176418814436377721032943816150669176446509178751485059519391842794476761338349838225359891871900348918439664116625630866943322302768808295330683802797910746442832324630310496482334726435037268827607481322750143273746603175272758290922820711414215831603490459057079428662821128331013931029589924060588785035386624774712409809392782316546665321844502271585109515655606336874872425059524535304633625788826451919048796292808160482903777761567752275159527989765466288681143984905720875059622363593091028003234527867557668107486575529311596243535918918157303880758125942854389715259169904738019166992253974364678699021687985108088031803245220678493806578297962535498092409437443087459434518480846925900261515325438753461838384925187973705165910789400365871038582877289850244741457075665156954681971263713867762944912938536017917648048619801041228730702161427416772911893809112904013139660849866926649083671749061551125969346472719966743479626188310706482906840073811137083447033204549104270200950857757860796296847140315761607050920127869509343388143122516084168372533809560854973898780738365168201272619373473154272932443642685370915440530196368172849813630234308857370660078232430475509934368841680283444372352732548262748920003448353746394981958279776584365725647362322213876917122371820162164724994323087986391753439568747253002221598718552177792652119337873275255624063852881846340397688530165033190920134645582322814609685422442935392421780785290433698031952565421471848682729132555313541606391696753778901033414559186446647258450753276331165189503010055819988562728953232850449030758355616292408949542399256279560641931236458383416087999816434174474831262496463557827966590292555981998275254781136764191387995664137160398370207189161066284141160461726483259840025134053394504842393228365736189049456998323454769069612035624125124795577618691785461555393335158591467493645716353862027670201137646805101503729890926880729348719511520985478838153379944040646163172493291693491863210092346610109127730769266081961482038141433186266761981577297146422791718987080878590778564299729962101197925420722819160608861546156729128024325959067229551753654246446372460398522260201219675854929014551611922443313419086409008012623590832804695631287663594351716131947474783313895103155430293854938092625914649850612029372578556395246436267835422518195886238168420293730288886319265667387659853103418558318758527300677469092527586087202051874573882646105822669180936845726481180524210687466374985620057867790106627986030168388751292119979400167192850452605236108119518408799393964854937324392631470922125312737838846209569546555117984415143992015616868792892948510086158658154322995874106542279469526731514151880579732797526621121354723042543549266435869488325016214698074790688552074256755166660186509958350598231506337096038528156016693641421210041372198958741450416759580387025287705595802899879506270599430754161319292984845220846804604770565539441781821774307441034738911691553407447050746751207827674054883399707244711871469873768270078565526572346826775402378640957161630884145120493363226954647123811483180439167105449811550544550017227608008082398674213365488006532920891818770611862652322407881307934248751553048306038117630399551876321703024711317723935500567535451343604578524752858264627985373291105768026899390586200363603678912308278961060436970328045754586569723550490898389099539735960833294567016245772985649605879788357887111725024801075946517878637173658449700531833108850079758205889672555965319631169260443010561389632696462110375051945767516934961341222326943582719542217647188866952078281985910728045752330509569823069590403982642601415978559790674910968115647372511122256348263683986292058181247707868130022165709613802560326436817915637364579773640460113600882482365027997073127441341480690422486718792827873786790632062507200020531938646551195055856103923279271098257547592951351020522658295390106843756533261607723586481928456162999274343739241872707868493226573924565006337935225473671398101826451100429076295041481310264600637077889968203132186745582655309550036449524425967015258455321047929768527300146170357647553935459057354206740271613862773559875620319694907398128480684065488423306870952745434090607598077696446663601829142947883541807800462143858878770986713424429549723888137134077256130786858949212461795609757495433489122859819891723059736935578431761482615247362544567769929373657009113307210015948506946565385254166200002041666938977317105613288949116362086974494604009470115738785076361370331367057394878099655936266662959002199091107008881432674026697217752515146769778674347022418473891126162785541271226685415935070437880578891510998512677990995086153392531615953366033988839043379108155655255286227640329937419236263648740543649842111075257949570110714793543755767973840955928251980731696748842045629153190209781485304119014713206871489640696301344934995449757998224228256759388884816252586361586662025984298509202450957785342624479391274723994145962626101101276978342549434358142800980572446170427563217439548548636808028750297855267911298954005656476376739624190543182390222905172908606354841735096125951104039489770408193548761979010106751229665144655325590734543428101312374071662690893399773728976602867690836745764906208580081763547958295067612400709143871558858974812855076166437676738482173760398477559392387498232230519346731700771728762161953691154233433870451285627617010273335221479457289299051587865341174851517567974817113442259208740581042369840805298348692012951521144105583943447907400384442164105426640804041923307722424672147392946067477923747411695363876319118373748952067902859434355785476562821149330507727136017921832496704954194372975030463586471950908733009950990821008639466162723646593110876425437867095284555011202365673147657288223620700024946019886311813006969276256432181464571516108659257230659821362024049777157082802483247985852566085958794847395524480499202483012897380564641433503742063834779558601171118803232838313542146030163675932926124857181701845650106329609897409250203492159838719236807736946287043859064360137608916648614584368603173323936047176835645092190154663269418223695544064042139266525402814016355491314657948611290742737074214773293490389685621476151337987493276368537242924867042702837089024433769567268023455960126554150857159511715759297409545077376711215424482474379581116654198944198383252886660341359856635390076119868460726662279772862525743154552945540337768961377990792598979579401737001003891113613904102903168371039246258142673480527159029895264569441023537723178909114322661172326566463507664683915060733771611264721550530493361318290153747268803785835282185948187747132886818493516313361030938731646248637353758569064142834911181267447914498209836414612028060050975510652290946954648483483002487151500054882049567786681395100907947324406538163325652878316626132647275033787629345577537344068432166824875178361764178206940221325229782004817906320879954444399430349462565783347981678653767549688536765683588365390077720727747653987522448524136887212020398191289259649155257595021681938132911413483855994173422371304191502165938228252686131621288536496615914594449272961895782438923423565090038956576539546749829156092015185949445842315446404233093182663545063683423419045588811584569568709465170713208195042784884819229311068661174534975019375049277518024303804379636050568742352213578904097990351974217132437440927281071780258982434877283894994486174695983435003673436204614303751384755834211635206969665305487865639036108142031094288706219712677564243770629714265020142876992023743398440416580291338770938749230738447028485087043539893632477580633560627690044795271242854816394704159312817973515772383917180957804074328255299939353422897323883026228686451861434463678949518951213551420904936736270759402263408772777929187592690592823357233663500002745662163016564625002493278778709957727892659480821736024805016937990074876726215485037958586764656195914181688434942666553593026227846626254897873885038198084960046936711938318519063304586852448554347112362946053238656325099398174100681165068933744328666970225445816572142222232374001093069122537546148348605871304953248040896057246973776160291297459408030594886773255803698732465015411088517864183797813069214978569833484902673896295174041426262517168903384628486015575611053004456638158224187537673175470538967473145754435176241326682511663117671387141941689755535713439341379013969786858395739360215194394377704730428997307911844377279081660780263826955456400031454898131800987118864783968078499760986248116165506509300256349946306681105907978416822342619189797926600389097219968665379001905458127419921353483736838284214416220244570981586466296305301882374345363231478369080806192269538161423007941508058718821348496259921833359706021388800526462512043821792423734257263642649867506539464853967321235862493570543737338911879947268886178674059805653610358483993011007456614005796524494983210060605811095334326309940252369482997424347146500029768296670713246903756182861966242231141737683981182422449009519138420733030620889697317024239728138091047444484587177105758691670236214859332673436597016155869897013377576509317516585918497584048330005200693016172982994861988492223749312658149935413029584285277857177202479967389028907341876800198044915532826343614224498715537063770441241192889559411679386607607929183709699493357739697802833227766429589811354470535425177494258001391720093346014038076590752763329970511568700150944352667166511784846417426099658298993222749772282004431718290870249493355308456850726679955680631961164353594158038315722781760686060480556284153656464802454462218737895352482032725600167370085016027180334618787605957272380524447073332155196552260964605674674607021022327834737586014266058771168088201741179262334039124853282700370961881405405159401351192705836885951532297452687144939997177120201040580001467706347791436627813942928308070767880808139864672343574636586976881748669893687247358176161679061673904745840669292012827987808886664646360916378535386427072126542977331351833678902072835123770150214639143752936810176404685486469178548648083989125903128091161049162446773367624300388089581954661678905260937889190074447282394739687491416416605144826913823470296286261500519133616177350128877373767344953627309824126777535972356806016097768338644029631277218407580558493716668202346340718123985062186122724819506049329092307163256855507399633239214565623208980780167962450042939386874530641260160965803325369865419156437818844043705190641382740512030999030955241684377998462103647235669547309031107503874656393900883201808966496208889336455567338246027800695104952778222360751888893626798005812484643226835241916567194025755203705063198412384008105307321580965580050115406451144805018081718120890048164052108058297661160260033686855161880375117958277156668966244596424765016624212106490629942707544582160382525505080060762439649037588406837333122468181434556617364596188880052136394851237692538009109970334899139097703824117807325631842746595018080718368236719840991561688337372765717011346852741677051404161074093626145705935215440711170755894490146990862940939262075331851593781690199734957893495497520585939447842642270516146353573737248211748096022887540433471092377287770493375188226425007507624980428336386681506431443145747833874663458522425303048923424082465036152924855787707194955239233825574446487128484933730473561449495387208970875010980407664172008339965391349542789430922464538902567454998510101071617466961041323337702010947820355729340417773781254739706675137328395592379643073122358763286147973052878024229072737647240817946846289797201098628164903908241475750543514233631025381255512441198304460139475698623668816955775785823349686767526924201798733916619163347056447491203914434294313243052116870841522693878162453593527357496662146732169575086659810960262044750349315602076958888198422904389766017148635538802171021504494372331495737382431398846261397240800820993853880383588952094903453540248012172917670175540869445259454472229197365401124577540061663531724386129016098672046063151030176646600495677909766827600387452260248357545098303619066931893037824869118187647941621808359378374899011614860134735920136003905394082249439788973518276130249045205740143493599366852196279026978341394153784298313642864493924192818800115275700218705468547839033125501913284483853053253388594915212248378134263543454318346681689470123364226465390483498693950947066160415605865216855201646379724340292817933572170588931354707037456173909240079320299660120089364063057419888894344037394688769982222699330101044875001916817860553509867598979718545848351442696658572381109077441567685016811225541216236133825576037241361352755810372457460040718034763496427670889461462583447037742203218624817967192907072977502347344997623733651549386750347330291272026542795643723302932954967921012031095928591858653022867844314080360420231588974352527884213349188737853195925117605050937047067406531711152128571813712346971596928376396257608370388947431911965567144267125072701930002102897629701378570314825986412434057230787348677248005584458022582328367949239264727827939040000762682861299474216442338658054979689538186217525784957633282422080393894218611751538996405407144272082368973250139366925326521575535992905797478388528501229345267657874518225371632757610199251420532184822759823182794640734647405653134055288378938746052451932640184821488489256748834698425517808418037090811652234307627566447623896620994391257801444471919422655754454841167901075506398774624018236697432912965341398996837461114215282642924904304449516479098360129030896759115016905719157033144784911019542090981719837069961093526012525516388617913100062882348090634796471430293963675996712270005050718859007096947701649949250148798402923369343674439777335353389776981864712559836136400967265921088914723739477088766619032607441910726230362530736085716675100866986698006204633483909121215204343711456007492157340155766881890094767939400618932995719342486556995973502502256367296434671570171867114500726946255079991547829949480764741617403434314740419092204088557189490051803132312859462989627165579661187023835227880899251421888191756216423477321803679591276911179222192928393658995575767855938693727274992769595789373200733023675490996455204190326736499344402405869269511060290207071086306141124611062742317759610222065150214221897836604382787020268932743464917247445941912351939697444348621401022469098252163829761405447219065683798290198678319938924514078888164437033900987006163645988000015726571751565451163645064355030046262126950938393550529156066636361621258054378146255885682092314441932348724938057634986884781590666521451506222352341416152615390026104976827530655781213700380207177194772514951221415557861191351320912862653888899952176360277406248935741000854471291616568669271881575847706270977571050762255726275605206632742747391841255574391474607838173767078822327009932889004451661605972045185310234450771081232703159994355117680294409672198737528002613249935608381852260860075556712305835118116318823931886271937504697766138994140563114715749230413626641411750719359367294304265577612610485406496709866225962610517382804928965408125629856222003381461182773594343029827871441979321328118457435912554897136271734505802616756458973463820728710532012270900665156172523477600063065109024532649438715024138009257780845111959270626359678603497301814131979066891695921340532732205347157193961362750522453813765009211476968911034326748211470644677336191952338188416283649165373028685012175810062574180951335285523600812869449879287127113231620102631121247832558118221872926590978614268561086198115278541881522178162822064571685462398146652041668123383071293947287590694796576464439920618030370417912416185773330631801387954451447883648955149192173913776168803151717450721363525735359289242565039757569206264128454045980614677755388141163738465470332948429921720432405922549293742417333581841618619219526128177708524728019275544311545841846383934686784698550506639434317877387459441007860250698896432561147785858568201103152384794387842170318554625302686779673090280100909512437411904140740426015541519415314722777690980167720879802926494143650435217164771351918001613221213597929961345847110623138564188322802824443250165573071039818321558045327362002944515806980583476676101547141860129194414802878887841960149360494918244412333151974529836475948424150414027163573851425269431259081362325826559496604029521833378128659007036791134135849127288921259852941259219280370329057568287328758082295497268573837693605628514179360664106004828952967359541364019585442115012811573975419884821263832701292728273372932132515859089377062596961685688563367581878296324989635277836113436793093988826511911375142907283328482386517791520261797126606974021808322437976765828787202339143223146674580103168067191736095126323153221438096666220192615090175721766700307616312043262566467180020510585293183716520824759064099307199300825847826794587515032476071418141898603241055607008938518725016001156760680814853383422819403714778148232211111465415992669746374081656151847424102144202945797028064249238155388006011081754017549101557110935384763717673670261730776488299371115256569088215533898273069936761781646378659128239946633155264080824381383619418547655432588227235928128274145635797438012773664090428807219167727370625472531163260398712592588707595909810743661983339288575856658901423364593535466080130112745848956635383553752235193855988277421843459168503543297667398512929621757601854643729306952001668101787440018270333903181002530269711910726917789664041712697010896439308717157551884021876268947099944856747050832977746075687890990658390997179607472978723602756608789851643250804128589616636776578733285611343262231860637403361576609764423629197932863792189225286317714281316113865985487427996030830697153808538939512919959122478875459415721285565183398432769693930863702307367289104884294791878967839711237606688027018774162793847498412371274473572092319085651127112836542653348409713767040982283496202789755078626362277297285996800170039641387803097667448336260741003961275441840465356007659364524914581254763602138006616128511631217959747469714968703684123518298778632718354329073216454100265277753745624970624913951710889290878899061968944955246789606793217673897334556990438503860152861910301678067182330099671408119504860905325104519595857825802416452648017827779017131697870295827001550313865740667238848365268514117490137326527121593467818365352665154880226553707699543209402050548822056315931665817751301463923822226864013242221459250502928879883536098566003696126952783733191192013876307025309883040700744549197186359064090382877647691032349964065485581461616858772644286468254537429808643659688795151681460524980018858619961869935078940777949268308923279605169416195248392610698596100252029970454526501947341441826360761215391235410224270693242121947373676626780789725456420456716742691720705162821923728028558437772864577322494811396622768597137089485155463850252915884794013124052953959421974836593270526020613702464628467237723983524491861946610034164043158727267161459177596398123385749742310652671667713215754020129136601638153199930906070500222823548935605114117396045432666059549128106695340684959275637751379759479365737717174335580252135865696788286730138241382903837351890261559706490870311719823954763809568946053268922787938170393563873220609357147759291076211139407353797237404590994869340621177269179570019473631288485162595214862958474384257338847685368986248960049010514588911294759400019708249348198627896483128809414646818447904415579954997243701267487787399406569416346274441267475173910983521239063804177247046881928148276140666358506856153912143849288228693611501168124680954889271638932263002812489775597258147450867485771644010708159687644277411761998410615274370867467437525582665267425200395104019201994405795492536007079958653831720079532603917612185591242492567852303763593914681181416338270349355847907258832525313722831984188385948553041342372601639136880414726131450669800489167749345513994156760059884999264207558630074336678359318507527529879118262254034556667984287043227598362679064042369239769699845489018609403125237834328109239307232188156789320930965843237511025726818408208265585690346891972926466885953873170463548660090713834094174511331012329651093663872714958164717321688080261230569533767816246474294579100252073996474609374398515534774929505581602263694273127435486137798945636500055977221237583439649583059166643351355221261235127669362824416239080561584341977454376242366259233698682917134665799162791118708772188818080273816214975451775629066380788186987071419751129244857987339853788707452212537437825875647584068484407418898514796055981780244406002414750366341804017228505767137954303911231948561272937844126638580662732804177173010806813828356440001825859493735637092692175605148320899029875439415260230990449967601053634151725305839532170212338867471970160547712895737141545504893592709878764622592850783440894608622692356745012148535567147316128321722487867783488262824768095075356076847893543484454994629555209338268256655141127868710551959687889865910332861394002717186881050715133750017894169014989671953775948397168653095304383427928550006545320471377356551775533208820247543711157043073786844197941516244298620807501115765050403380118760358214683155046857011140293076369925742974073844408304608235866087363218816017087315698122160630682276182132295434443866183156934468629167870519463517462965397779152884127949014394474616613062698748644164773214428490079981058934588721800746673656987250918024265072258193887375519433364161921867393737675647011882186170001584893522067839654858039267588087031941840417998940291918126619619947929270200637919727449084616979928715856311653036084301630652315486359159129899517440882659682139589866913402492710275915718559609748938962793592323873327740864137491575594215119862769907816070911721887987043706687638546978066765084073991105161502344700595677781330129320443635180425458640688447913055577358224975671002866091381240373122243688064397322826118638047437324482777199823302264605600834937647774320495776911654510136870010144858643063634691129338279041987810888137887151207380087240725297234186607296414204916405386561131894227404755396983460939063266458915450317155160856582870007550007118774948985475312851935579908799951241504304624977982874916659267110807557303883379360540373342415932142464203981153664828888404136447674270760133011830458555307129183397777152442380572637571580735616764567742193161035349801083088659059382961949469328163164568866445024171927958106435598675749416405271089267675915396289197243752220015404439741884322820639216115825373320537075059907819207377630291026406674417479580834714988923221660525070649335488612238093678360713994452632482993181832986737780320437862743298168375839003207869988525995208751982312498756180990324659278447782960719831105230253131452643079575662067845596668502682556962149603065687602083004860432007766175395154409894172172316521320053226050582863257763726952332680305425118099918711544756242224038441396218996927501413905530522698816675221784119620027280591203014223087729519793837157771919381059727226992751457190082452152711411461223651383540020731853148969709102815883061815887261151158546250766844994394282293685856350246765430435688911478410805690655685046529071342789432844857212969370342582262164668822734042395163534605708549854629138910884606996629879397312871398728310327228901009048847521646125092802135106560768876838019355409763330659924706954219004193323055148419303820718562100962776323076905035479833543138682258653900620714587152846241548724220280676424004607908918309394123540619228775721234766153403169191615419425575762034108903176264356233979046726297957904846269832643521577838363074742289388008988293932413417558440771896827345945321360368601612757101675555178995056507254258275587809749327090420648307335637126829660517888514545198421558799063802759154769690478180790758646999941372668392776353233653798483641172226053891232758682837596071859724487889750777763436662358408800610311747791708342964060671501992515401117857460127635013683149353440416411454264890810198809385492264893697627465242721247540902727060503936256505571620295311257040451047879325801917501042595028587702638582609826863169578471230597519838939451253817964245212425464213317042368119489790502530323741086548487534529195122116604379661339989917384618956349710614977893645097942940498656427150436289555554435339350613114292578405153131168641913209141556608233171389212947595987845200099179707188251858306414516639190363073606829535213457435093427421248719778067395864288236760249882631913118172802216420459478562237449964860795756109180096239361519144944427333324050837046371636202376387264683151056125252832150755405957349025983004508838818088236535028258309974397391895727090656220254897970014653410410646992723762058052893010054495695064389301420764244757047659129501938692549176324899809566415470456090218858231128775233751443040493804249690756525050583022656452416371956986372901686824034317623895451774416948970716449987230549515556120388620452696017195739354650167621958653537300342962275371043721337792046622294518358552042310876860964553038545995007134963908425599473162617705740904964990661842969923302702918985744282601970096806968523062330479073905541242526668886303615536918386931994189570828492868315924177401234112963295166244553780259967113664232195495290284113988767483398523346248141337663144740486361585673661606733480898130628097745193084773476201419918816232763905037266237950975202633609565741266163371208662825319547641618342829192826192652361209233923255775763928852911355662128211593882656701830909218259806779432096003283292554793451828456282552143805771174194078140587028251258764036321740725037243744498746415653184278570061349349521383878323797032720304061670006781792329250979122785645293926794144697999871104514109072134058679754936252805061514930337926768923921525731983149996160192235921474531074497639278708108903655744834036461435252932463270830667430281218185873067654111523361235752032996761761457842577356934273090986459161912661108989456195714301840500395692208012420372600717892707308613544515352375059608201169577542168459530529440992743764713903242348435096550776815257926987923903520904242955605794703528353086124194938238438448233998812865335552473589402915471610583213099059419791648046092175411751051229028982645400219615620719983472270018242003499316313411569520483611412779270317340886745972456821168193238619612214302843016097833624903858383966868961493633811782804391495298604896106559820237285226598148969459479904069044206337807575604922127104591495941956540363751488310738965783255703967760066250846392319868909839786918295548446726633472650646721476951582111742611330290503832368517300313867118837242023847710743011153429392408799290789427104515757564663940228488978772668220488628141327404751687015093056535756494762266072117829727969895219082602554095003894882133808232904431075832609659337531239148685203246379816027421782074486618151188781477487649223581150275583511744174458537118841022395708655502738072169889636526757660609407716841887572993972498200346009530711163885324147236192071321681660762762093906434954394919981562169820544352779056414025627832672982859075253675526764026561080797282989756458482632216969844585344276313748529357721638634269358914199210114341553634224180979527630798579075493288972466474539000286982031968887096612880757398510990413277327692177648600366207315422081845539213813041040080872709080545528690802149049069567759170692857860528917685510919005040465714685137607533225241762847797642626835497690790705262573311950058817088150549496214556849047681989861269597210105352013252274598305309346516568322141190057688637111946926656906120523994547499460982782821403169078285050405286957687969376645553016895117278580238572578688588092715071824751299515977474335715438084739790356770093365031522554641461905842083240502297302332753879106312705128543193294258944343137655963885782738469706145428075801693552598063528380330525324430397510147077149629973409283429517346910578619854765904514773542326102859154084611347186837000126942292892972001463975748015920306295888265166232239408486571622670827930017555494309337716656184329667533719658366652770461835184228280910511126154672611192401005692965177579676389361390658890266646898595995445990957126963255374139886004490607254020036221065959828302870372224876300745176334698867902257212084023240475013941028047163704377038314434740714037132620574006960188648342119357705047401896479847000060891441696567701604386260254433984309503492599009752729459182727378514485298252920227393800253433445741379689752736470058874327242436320564539272157154206578408504342199445932608387351887993197792138797001884172105516217647904889627420689569423345227900000331298856535073180474787281378500386781248832514698239864442209442685049300435975725179434850345201948534107692375449508755623742313242638248941953087477575001407546191947441540305680970404206950407679862507567837005662263772648645085572472157186181782503889780500286911345946874333189407488023405824242901570329302441025942263723381725995359339674405046863152503939070630392971625487254188771392200617288285454236119312582098703317537184086414399272321273849777613320517078812335583320443801159672977840114344042841776800745336557661408029579716436852525699595599769620810501703465318091062732663771332199563554290299161314513359088652755394595893280396896493335168594987656006791820609525808405868483830846089926909183210320281234296429635941718991613384190789293359716035987623492361864341062254818352181513690269748248263870136181644822669004542760351941439458125405369392869192374000187052142625137853570247027806233539253057399505295647382095872364942458722515413358009825229679951142636655368175108960229090139219188234339099156205760449810200931399713047629172132053275993386533466258776955754706935292007562960077317769309873917441353362328396240367099069719602079612084798151098488034951393993046422256770975468140958907916209145050639858337045831890263218685517240499621902078134566785942409807906283405259481588485088306571851461303523870466744094508960698662488702155387470534366525174248350225804615774509087851871426335297411503780325378199037922839218618295667870043639580204854095850802932106507670240076447680564474060092662043461918128061106441416651451978574180910573289442240350683435208489459657729131273588524924298708660784083202309273061280888756428096220280550631830393192198988210331619050003567206085242791919427907756391929859675766140109915237129119025322239060259902128638792072660159194241834661005062430072986134742523042973062834826409301781749391847242985920927843773940182027924790921124834003142905812379482515908324987973011340014511479226242836979299969321816987763089641282983054495315818468159648699291312713019345014083312761321637278275448812012156376845750379172350749625613566802798283302030860835168625267086749629074610244408593587433206319068405729791160181777903030873076041725767144682854662285112113377399333964892484138623405688137837041417775071369275622283572444712622602034946059138973481686238460621319563101308197997356230799011709870435916412586341805150474428667376529627589596661871561730062602350247457890604504204442593231515583958072192610617473393556458269515638064270678113099424286937834948699694378875195261561045247351316886811751105716699129056165639693745651181853107747083698854380791460388494085589369131570444630364936652710385492852330480261991379135057458393996241855193592598419998955465244154895771178033378578214388593658600112593273209718454789961680297818907425919110884329928339296503178572518055019246164495382600446120819918755410713093384929594883229539210170973797864986206339513450344369378661630285399155964980677497921304114669372426765623610346876353173052176111250371113437599408459179271393706706579537071163759042654211595941954946471853450979160251814901916665163626107056726847000912271005177037583361873993811228822310001881214379778851401145629763302165609832575990488032256614879922256670089785669846823819297821626193992474941244375847094920215281166013263659303469431178211824821374622987073417507743405209647471391750794893738260576891773745909291994947170928448059111094646324577352285581346670862624467976216572942012227969537296285346544577950470615071769430118344995600546433814734466037920652371699083986648895221042891489681719425370355605638415488140967544189540182955661747298677979492781893575691881006098879290043397259599839943924877985354374119278672241746258088718659979700433913237790415016142722540520593147355643980049503266741174379409235555747002747375718447321304648045964206749286354059943262346340318436388302640266142161830982670699574808937374718953581467580448220976199635030524528137204793586236380168386453761574824887624889251039483628602245592448746057381731197629461820972919416199191074445043268601841553033399068845892505582230537491348142404011454669975801506140584576282662206048234124321137406103694872613524993588413894919268749288367829961467846197023274105792758507757978026008646140135201469501996243094403306017937788833953612694030599753632818714175278632775595852206905732313896579908116827027699486869996761027681187489776897613090077681984700140750044890202356411441740952805058511932252233990093758727957435116555661698504340170367443875024666281287313720029599911149231798185229099542001904331312114740937264745731821000773161312718951706052433690498410707399340257281549518739698906223219816221473492417122687218129203086962251146734408222268026426754762562240940222486819226099569262100031347357370685707021728126323184966358664627260092059229066285646996676201690880496309773894752458646906213517109003668830544849720855372079871709877251784677404536058367418213434793633100940544119263003569767362917047045346194721340090851127990022721489459962447110137822105056313596406849113037564109040830134310208454221423024333979900906968280357231967261588732491278813348044093010296863987410379983701273165754478927956151517762808435282824443385964645060378773078448899542548208142286237098191194344229444525888010241209044173489861012427835804747561862180071818283847423815086791430402689900385715081724635982000193037296477513243141850832900866428410581241145732743629492826697475361793212455360605592609385504839749932415496877183744096911421541812949549575700456470685944639223951091093408056571856413737540731040563439906927478827886105464193420930046061847712503023588371887434503233869357289410643431698333213594401576001664704110700275429529748775455381103535580648132645895756239934581079564067645403964664696290546753653023027853894364884683692147943795025942573302108287267079295877313263878827884477792171097142787882706217402084786012754347006893044214326860881760093322903690760255074914429148689819505948534717190375711864391310328801892877992130633779250442832800808671453272052178826080726284100743277647118069961746913495609309857851352429883209488836390525354463836984331129412810704905922594135219615920850451519730570330521148540788226127143269180834453575640477131707831912335862897376329904605838787432442617440771919094430481407113018796938107007639207529188039588120533569500128241953342002764443739235421147467230287923824752893205654465636743081073387340357938223414744705295672338582913742215696659728252554921382781258901676511717535015801120763728809531958506301349455965209053877535328488779707592090630071745445186705049420173873069348145223044853953790458620467298962879215508400126143055238692311480183824665510772702086064782064838474987111010731938190445982966883296890989185012124928374372138334061221261209695969802909243902737812422817327995224137566945795703286365694108208692908692904099668840077143553092112452792436043958833781832710028698348874116039115829891595104684592444906207396453687273049164129361382911730539557772227325222995376400978747983657068088574169211463152918095328065901708411072708770724387390438955011943095270574748763813037807562708608344300560260147593539616888213455741148822700568325587313821410787507311636357065752155023161225180398149712616209923342814847731206104701812788699743153486051661792501813793830097232133204139982824412505504884738907462013103599274043887302484307910048785454427582160066274542844300124058460200216443470565645981721896031616659895017107788289536485271885479179443331552557587592798813965234770290135678637399808985364215103842189847280527535278326122780869873779521193702677221050859834230668943705304850837294641973693048334630270665984695435164829464618148968048513073666734411389862392247150861700884244156829170190967203748007654914165058778594416299299965821658621638515106028869444911178172971756477300006432154595579180004765111600445057376305017055863365378006065734054591010466024731822799376389743926283229794008941930845396166608866483446786710073476969809459437558929423715391201868900657451192698848441873295170964661837650477429775059913156584768825410936712204480777786744384858808566476100099165180229972301444935943295406459252633449681761672259134884400720577755524101669423181899800045459831149589716667081661984938471816505999110502629848606465232359544031530798356673327711521608432864550395687339547866814397498021205397127514248505059993410281980573208912799013821784599583262272332444321491340976738944381690074212606568931135063593432303536700367941933105530304990503212267983328300096607110985583618937202920362858050751047508302455064541118141948288109880429391775513861933038442166024719927874344822259157873717148676994781780042227202668461426887387177623424030678842552128009321346370198028961644243937555765271771405870497869325355698196158933573642143642284602088859503409438739139333311738239304602837831742953818269510196644304928406237582258547460811186354333841692504685228819930070873189689533761466052073127443638604460056975254813799869768541673840166784471538652810338176354487422207201829094903704876750412773380761251967592334209061090890858114313793407001207602148308098917776784204356591003927685885846080013549113777545194854480072527160142292363916076346131763644035389691232881573924371540902985258306505381079549413376925103139804970509218709821396540896287916031302460563088063032184273261946039286376549529310032773969512739922168316678481275935086587418568299506348414719130522709956460270231236710811982179575281182447343007517795055031052580763593109271603998164168104829978752084735827382841203227471737856028111522963477303951588491354987758950698584741761589333458547349962432957710832381383873318530696758757710844887188908312635239234405624747917240230069791812296624725585112878970178310380290230937852170903035084476870758216042412922077100053178415175434229321003003078057171923503231372039326567489921553322171049970405738906149521118480092052340611568541406199983707824722405675119350258897363323419753075716952741795623186554240358912463235796523000953446867589653260195342777618383830158370002328604163224116193777397464033772035670934839779356610429700453608121364500849530648038703273673809310420796961131980371622478486386068064810719581406932770161044037381307657271235199950369098515547298722520853914824465491130651353987387588853326275904407143381386042240008581074852436389034428344560625123411774505987369169285954499884351860324830336645470839918924424404482220254063437203102240434637583597091462259510211440331638719570955952985425577255355812811552821950978636600657060821694999713492063384918049222219520810641345387476847140735985820783289126754606823870438721827163684099838128846928541318878578317329783257364391062896650913007381571174405910393872615714965971347664616665922985967900817440809826492537327074804043148252852338872374951412918662386076281432201570025224829575109193202603182384274399540702058724879849522031498913260427500967005142195559538552099317804055537809034001466947098307070160080491774361777225510828461070934453600792035991421111609910900012874780647456722609574318255364158079872814226797028574275038033237499200834273025990059245238245802536485476899617944981776295821036688498013716008830134279678830109367181585427328903612643432584631793221497288492525463129276767075989300448005701011172997997703312520111249498887453375182385665761976716755102862140154238104237123001594128494196472196934450605123188609800531002372892154399190268087886128086821662307975822517044935506930992821057155761792947853252073086010640035195535238744723931296711348139917964370105061276583715190859709814869224810261509293502960500264195913041771951171258982847657740341689475817901486639976623022306461819519779818776789704729898548806779991956103686007257517646366076555459726482331600878548626317171540111907280262143304706885161437985882151183202568312254275183403205354487719170198408173839378039677129820942249898117615697815325799278954414593170863767424203072046391767139532343483764444041632943250141549769878604568084571266978492121604892237533001501730254176064326952004202548904181671583236674189107021398354864036153450468215915513993214195442272275256412538483537288503739498479037379327612194105134736513897694684963427411499974491876134889015774145885436856032571695472783046114139573018326940382367450227468714439383106154153043190413324832580054138764811275864113184780026110728300113651719850768054916756394660072831409032428922589613536237151960297457371179460021078454871665363602935817879961940094943215417572871328236140273229990102626133177202789673780586144550711160428367668355264270211013418241259372546996653825794563106328035672927924065038560385158066570579630579557465402386745593666848823630064589045006845819443614011060127611616121435322394007146904293027188453558340623037861951040571338128207297195001432574635457846165874343762380457779725736650648149849446942374267049276097029346291564050288242352655663204694003476380127933579009181394293285522874893978523695831944908909896034347738695158702869616305779612351641630872842182671923586787632301902221447799111955574334691091645397335064330977165480365381519737471310279876791759837974612593641828013176379272711330100764537200210117637784142192071394688488630510280893079619303660403496141430930062910116662917388019612120574143745215547448991976445654004651464307844090935686616835412393744828950569203531118230588448500197131205106729366998044711795616707149804549525515182659073901224270642376214622546051982021340580495846454540625850503599823238933580565178599126585379444487921579171476270699086522230046783258166982477419585393059633669752513697602494380491507169875132499687054681032230667503181222572225867228379099734665613658038836856513396187323884944558061079441595484049548473391219566997290151186785412102876720417935097255536602874346486511810825785998731073307498808106450965016332412285006381362150740108405888733952194173394491288438986092994510354580964680528744439945579542816312914503417614193935360328920061602123314181854316404995291963271538244568877588645506772550148575338764055046223507484809329834600888168271000564252157169585314656670640983225176743475033529085096614981851196947436279241969784081275385178342641246713123714700272422146460502588470277069893167138966731650276598544771567206619779529913622753702581934697181076022907881452750214896746078130096966226141491851441447210444699561968668074298880288877093019538744238616343115574606113617623036218607331247472687514010182471596607373094358298006996814149805232615734891110401258913279272604797235039823171021170941719927170006802885580862087683610162023927455396548530923304930697479689492539686348964153056296568967712930615053216854897755618813295578013420654217773212511380537885356478965999504953040766510383238394701982270231270839391798268903501594925346726411004473483802579732409895830633549672387335870618690904772792995380507554824272235114303875521629661668863183670587242373775332407524667048767832049510356097645970932016579391418474151439265139261928124356320623354491095465494125107382276879540301961353314843776946226196141782420931126966849573627435564539818283970151965198034584234798044056862338107158742048638974819021193108098557599389040469252387953457497083856131241716696978412183938546130556112416713891479527135097424246114612186165213501480706521812865472812006724955785116818294986284004809992067848709382167116955688836589356744087533347331446325296327047683079982124514743092967588796019638216092409237112057113001900306129673472674900935455891330094401761242095698244815776143151673968299605159038764103673272581314332526875055241745927388451070850884723188018172276436032725735888669336353092139790447480789287536884199402977442378024525566880559136049779123942157085991913057657386860552072056619992305511603349006497015955442957496625926943938118219539826421831255297813155037192545790716520823047271660604265869912357150466577409558721406856737768373954691076524221843087378212874987296615644021067054881633183687407459118240697888452018099502585642487011329345298430735443464765640004996674082350128866104433652032381873879044755641796565844022786551227920338698683615162885383439915337404473601630622818372963977344844502441211882126621026462008031899103464197877518239842831883339691719516680194374996448221278593338324314628862445755402856054642818404509718342126837932607934546612119149626800484170002289028993941573605676317044492470984804773527937091262094427474683828308833456141406163050726554146879201452706030546065431697683156766157589522374431862876226690378950073576354909163029659578395476812515499113494070555517134751222328710912936397819509680415154305477407510274493520703042405456454452832713209229152225226798268828322111353632275688900369192889218331571513193248474576457684421370649947641691507826656716814304134039578285737987550928813012032345496303554433058749545602755543371611676328190584474429988535697032595483351593939266984190863631176455207647523321789380890950236189520568559333756106545168021784838087403398817483624186332484146883229099751982280154874770591299017858251715186519691424236431564229165298562250734845777151531592364836933819380032737126793691308567301557899068195703985318653379967134623520019914825049322203578008737291089392419369427301725168368308507667370017071146620823912584266785167577152770183615783462675105672380097150670175981785138779549681785311288560285236559451920031470362737376164218714903638973547497549213820180132270883830803909405436936940160453634459643524814502696667554163158767063650942542233472533501853249470563015681777293058909420555023979259389269855502864623651762397381775293487965744449727994226233972247134370841994340662455612203572170103695184433899953550869674255258400731385446560685067075641726664373513858614472365523655133884377206845581233838345270048646534730125943020353174156501137779170285790416370538220001980012061207084368666162263139464814702380323017672172652110606847559921731400965336996592055732521827162429756782445870896659868035893315199511334414031124890670611670011128620642257596173719079096255748987785566548151005663841119115990730431780451147846921880289081893454600232983184594954099493889030487672222640531700273841845669285278336377952473065555309811962239311611251872489421180953733612583656231473665997675287393193320925964443525043551899477768690769783929930416461178919924671561612743535630412389964525154455137104762404931231771616226408124130789200806532772299017796267475241146214018915123670849953277889170393871570816061941898841449142816415971967457844033519483279277753013936318032531999037921727502081293404862851568084259933177171329954339128713878725409586610753505660989036519808935491874560044962999247118778129713170751027683549755945713855173899212541348526235030551855575583013282640809789050924543097615893175898717201171904387443567851429075855431979527442190796197930559688003265698006902023962586924723959861718237474165289373871832078429513130090268525018558794956541713870492485680187819705099890717696080559183576677748408328063108687913234397190562756918861711297815187141836679579883656947467748014086829341294495929339843471676396780691999917345498251925536469406211994518276094622581465796738352364920701101917846538455652109712370550071227727592294080558465924779850699240397996627826606183366456093909124593862317726865201715962137572134739834129034654630703718452278035634078150966762296851905010731015202858017777794070804130642809644071099708509214019341689230707548081388261956754846425870453589956592776712510126477533680510316038725600816713255415253029832121108110519654657467271891083142154265966341281415142394471906690490526279104455911365479783441828618396958753004619876122584181388861398633297173098645798933041301548223168513335112793160147193206052249523632533325656493308483661670594137772943141361194395194212939067497177078431721995192427875288504891547000797851855753570303668550030129819650735183050950894879878939286409721641074372763304381178833985885845796143924495316756907068502656364440756816405824061759979224427339059967191690801387796999760980634632138879651158281206036828496746762576914394551533332441349238756111462200806168898464159569604915763052038817654347000939422479248954800766150922831393117741176273683180871904286862042494625852717509443973017420866731165679448732810033930303007527026309615136012731324573528311881134749855450947865599823856006646447253024700391743913237791182510249113030254609457755594040733410472953061109102490602264416356636022946554224798068296686878842432181540035878365350022026925434296182472362929211804429573214605419670079789041613506730271651973743412227458308626033024900855790471120754111272441738170075059949638961721724623364298224434364051366774179465148629053012082696978811601840459869589348745231287074891499327310067034348650014631104661017205840142462387394593526879976978398679531499375078743873144819951296010531703733897912530241911785910325013166791117436958264855517406169515249124397829779232028044428349665557848841623338849444471502856111184846695128912463059059993276394187216308216787634235521365139906779660727400930607952284789212780075210989017910963431321400319155546659193851384155613048801280062420429007288927057930961483395136917061402131554586400719896806180968306890886219013074587541359395821304027293214016191722958259475320848992374726130880645471978772420524558086794950969374896748662956521747696252851267759295026072556960749544871557102065763592733085540853815972345143132667721905488085188226343713875410902381407260947111759023561209290032032802580781520187382838788940434099810596549354437523748496294632204994674696838220216942454787204939026462444676844727538909233494404525954842215163437424980583840257525279205042276337115592595789044510203764436469247307934827737396162881384030493075282033225093589847783142573979409455026151058144510600784908813875669459490197849325403131484829443805988073319813824821333028344984790967074361048676648921680428534929457232955990025163912022179107997471526237676848935519564667496842413464894976880637240935882223677646851020188539671610673641206532382004615386713715012192817023588205682928682689227869079954280815562989671380881765269788939082634460836651546121486070530126999773461834625010688907771659938670968277542456725580120897498268860182222550498561335031978026096147040719861684630241213132328661638309584297930077093182695324443726798551743643821171947768178998791906269038487214673558216848867596431933085231718347670876744288051246395927021864374389215381820661845002054561656742415967992562455832102672502782917535700950724598695318059861863748286158886290635923243817056822389444274658221912953644858464300382772341383711601365742708566318682088026138561402188154964760096001900495819147195501405557825374987856634898723243707278812578875363871653361163953342146760996953193403670951631406223603108627819775741507904375711022182324353748909143991363261007667727567023800002307125869309876946135980879499359351761962117211527595259587563653324759019434080052494367994719928414704261340772681796307683731562431160388593542225035947689572902309940206735212317973516693254308641798742784450603878253429540475849827225515020467572894718979531873597394574289527439720522745855093351068479112070946045870616687243046597665771270834724256263043190638565937193126194060688036179377438352652155523777427640623164528686806787579034120389882874902298217076765732714265808366277933534035156478400216195295109652717641133749385560948954920762016300653844873482553421009247845340373865129376444011393651394739515085131491208244059836994230019196337018732074615495571922583698479512072922642681864950304426504740870047270817970869224030039715058223292999635805686002202490093676063586063022141160791512609032934674002266303539206596320577946985934866740865881608629783373426137872967196196468801199602547742091801515532774353675024975077732095438949896319754477060354592615834763234517816064655244963378591780258665373203558646160326473346944142873422739200427528793313165388625781201090239549460999432892443628606969113601696736846752312489199152164288156261975661514933831190220527868744924081944288926080126809091097193563052523271652570628037223850876672595577537104096601310402519108495561012844712660493551417457975848347072264705079440716701093624933452202512305341636074581664000133368283515169992446302018486372337544400950758621898829806782941013077647972074545065030199319159989753383866403652249590371625432730930246065084968522982084968027391448831113331765771062599056522582493187259340451317281246076616709863435679717242946716104128111282379776775259067458760240061384833405601897711624511748115665705565358145975293505310787164668844766135022307736876832055657634829415914205455724667666096891193492680141821327563903716636523918662155366419985309041274490701723535129248618232696597841182859162628461258550956577341962702028825214204536122653043414297287350228795155623191826459960024037700778351377700633583062758012410761194761137441737969026182209548950727203585412997823560064415658198866605530591980082936192674595103258735973252488421939715237858674496657354966175284310844198728643867075659891545787816634018315511631460606752886963167097296935371233531533400641901521764905597732592207879954839506836827770508160252758299582174988863118594030110925370427192397685343779049255991224185087852024181339497394639101981187659739835278686142121531439638508057600810133963746331006737341758195136294082173813767306512602493373136250911352191254426406876624960565657415495275848864720691677333582810024886634779374695049459512865072031277289850620836363302656472757979161434953129482671471435693617550362215657409843789349996965013976235434866810838110412191440705099588164906691255273466206078383748192434590219626975949328479744017263238526217165465190210829949852122716203317546456566861164663384552168384167225860539723135172408171129014034869078348267892833911746062986254545550385715611745692171642944340249569538730765510803856444054114403263510952810574004675726870157288269031614850222156980438220357913351310187565949850722230740337541901429123550274392846506622959737702874374883858412769391314436891510590868994671287848619622175266687952134175278541753455058035549660234834283912551986133438723044936003624139236759684562176654556328696787497523878885863121903803382631664256957189570722080757445881273493865363517270896466638466407064320340812854910652484605425873659509878896118514321141511777285947832184840072008262060387814130539720451162176996643333904627907957192341792949723538997509239194097235285048773157013484861572060621404995163195059901860252399160445119981952840844853924219025445501464046665195945132311821703077131964769464459763030529249718186637998813400203474903623954502783329114481399488980355424736369332817771506429438797634429385746882811159473474581752812726628868593806157220343102258994962137069125008136135822607781006134382930954997408478120744078228199517276297436577165471597274197084232165397471211058514053050710900133475917153905167822613488930753337213559494340146382643840225357897493303903386212133237318660275559305115836815534223924956132723423860227723551486495947150052650251659644027636104468124012265912490480887797237937192969375745834839696302928496793071770798487395843702909311503406063707858721669030421951705184603132927297841547306463104835603115654234509194809569071487867660161164199893251020748107607408176326427149399117502159130004128706418535641452000215972457588429754714724894044299060314567090337640234437710067340294325611419649499699230012628681125008287471506247992632817581481356728058973995835865153289724965933100389027383915190909614835921812131938914458372404407465920502913808432523521628786424518877550038002768969264175183206738918804239874530140875813577167093028212303417954054412228629052947504254905957293312253448143702207396435306313848580648630931130721331308173538909771899205792215809161324567121482569891282344371677181381129073864316937588232456963079375958426728661695497044351160521027231999816930619317314144697349107324522889904316140509162219067033953098941708211397755458660340605889332199170877677380392734959715802728070161116024473158764770048839128229421170639022838696894422378900479863296813082653697946070301325151240150557586636909607422609602998271799924414157511531801622149527039836354400767153821348568306168248100996327889933850075399815321833484086400533641891541175353459511071842455027932054160702600165534573056600129755020423778270007544663910701462098109052471557477045798623351730537573832375677820543166033445573841614448445519143884457908336348090855829353874420735592823902244145882904848540424859482447912787322654460396280691804701646290021229556230996202300763464469403589744294129594750746454092533284327642770329043126307502153220213866263231127664635620222920664469942428542711080735661696126569826727133880515806863672806674164708651647011587997011041885385474134189240844008286315742137144130388222184670113457135524038998904807087342926922209523956299223470843839365060386023307965868692794820088184728305460203167515315920710230990896049565408676459551772709423782132555911224961608623911353778755043570947545732399865382340448851357351704767253964297862053755667345597137406903098781579259173797998630511149956343205351894043607220745980645271467346646616728680918954715898178957866562760053817180149465608242296221427974998538613908068202934824773103155161902778314949150273561073489671878277625345101679624068095053244174191143702127900883735150197887516370153221221899145668830246042020198896592470997193405704602866024498684465804670568800278465231484878082853589803889014796304085249022483457447838818649672399423505844298479055838047557757606005496177176787726436622629538251768006223039226038637907230948262270275306776566477885188189657175806082242083034719325460440201821227363880104354844091980402869591612653482063566582719183393776138525846165924943890965028121926655488552130750312569563316963133634582030957548194153891425924841940853476376515676831629533257147757478315549657833463617617847279891386587850557160169118935669478068785983687392187610308635523918118595166015014269899654945472065165361945884391142893857472915867426763020147023821030556322155873307907388902746039524208909982781504921606773733204013510375143353624704834557228455265977226833741671740304318559033744167911483184517348481864780244759920727971842277679627075779258808481948204709002543076420972150468665829697318199625116054374959468062971763828973039543924737072080964766320662436057352927195216025958463019127596036416634028812393935901164547257965982281606070230059646805768505610594765707785350176978623916574634108089952589776460779401342712466545827893465173300231794055582124866862926585482620410955133165764208863600061407363927476160095311345799423656989623342630832857689884828210729742711494167783326049325946490400329381067573036201532045806660280324055181983452216627525711688491666306566446295789455750417884835362152507724775725970316691660945289024001519430430904812681839519230080604200819206240465157151880599459203975830753493336539366453271872439241672855868597041778875900893958023649009034886264543135354899459072786159065650145312771725998905828454780682046733237390184766072927671900710633467183268445499601159723134431576467893100865328846649303888232697964202236266697514028132216187204819932187994392764774474185968342921998048745855712878127444328092639575214701920611632894252423222344642830171558182943663700036286548865318327066365237621010095330835685812825437902012522170464628240675755548603570376658808288275974406578280169063537745705134866209416407839497967085828730679665277447318082746992446038533792132726868009960358856620963186786220925445999321687445890953477872424261565139535899439786396928711539167846795340842726110438273752296468199330658199182569785591881112842325390033226122177867278484314761379767234938439711612450600363881400736573886851469014321165573485486408846741634049044974526469136495211530241918970784033031397347203256973786315776828863571827934954153475302138523693324405361667736875309207401879308607409397777680734400792618656931095349549188000656919687580270274922073445512544171688733100151745387717292653594550174615287395972692436603985543200738942231356873745614723457402153662594734631663547341283529734448637486772004112594424782648584343889724009208714899302279578279183791369500488742836694499008556605449492945428985912488174100561433903928883992304805550725846945918856820889175662914147469086491418758818633154794213361027359052887346735099843669756897578564353113399207143158586387068179994295085252146470333228919272662353963233756141426164840910616610295057975338834128510738710685417707751622231000649166797276961045928118747810154558949852534702901844986408831946863232007001989275627762453448212691916639824231807549169764576480996990919318771115822534636744604117562359483944714479448649923110119919193902998788827462299352701525654583608487113678950769308774969955772688907573214381207700735049979685147124567995762886747506713287414516661368328933063319140285946899475911864123306433599306977158792654675802936993043663719411446763265850723846295918196319517314140896143662179628775187533085839284009480854034948798560861275057445038839936823892756577778273697934396798891853446042258947313954700231288138051654486613539900474085218664321927212825904048754370610394711322783603865263871444145099516957984912912968170976186200836002805594257139872773352771999906814886084057323660866303396757231993693350544289211548946177813532003718882042720975201372389998839513459325775544400972843120339005509339161636318353647725382427654226993961029336375870817533084831519368046291078658918865778976487142154063428472139709953089681235433583790344692828865493412406359739107370401399086542647415154395024971281598182705245565724100128268856158883571674285059497945849763214498343361136599096079433225738183912525349289300619682987423573960287390211676996118032129992065721200507882503763734395689153421486130850170309132298781132175755320764294792264652181027343024288824002051646251873643917531536895496576404878882914031718983119900443906767689430925617738493238408987675559133241984409776489837363578990076064593219911502109771637906357796525127700195113323104579620901040144088043963457544517620783374787044960394618704740022805005561250159752646400600846028906143822929316149499342042686125892697952283535458731561695315358564231862077503136440090538878814041668919870108179598325196382337640187863347827136246129746997634235206355415770767281895689243501747457028285519746962127719819330820636091483267316239423707123083543346600801362900644726248603358858003026489668971093898968675422113491390683306072170289309078678420223912843223052793767314356219800608885214061132026108175561573149516602671807001229966228539177459110525068125155734645481019734029944141521707558630187375867734465373595743483026368234802078008479641136935055541867555396358938510391659902324669766084850818899529264956259373032406917354994919395081918238729091475095921026629975315809517383658829000999728600035400946220288837852136658304034715873457906997180512354093682882173606037812563627936807998760587176246094029944075443718128712339296581514918722964121443046592050075774520038081681885464446052433228788740434801780903185400871346523795579767493296818104710898158901516570112981118638271768457226260060264860191317990290829870061876526230887342340792723605946649182717759949057649464645623790037666735582966163273701729496988016160949197447571567002729954579433267728571717666311123252870321983732390126325672150015959220869833699247550385620259628390502870065566678465578039104477307704026214603387277600035552648281049048722995903464809845737252567107697140315858094611936460338407889857588761891916349639201456538750016082764158780337457558137739400015681160605966601949962283316544080215502795895435950554562745849631372031546844401789768668196690441461614299004900479271300584530816098302484148932455646120312028124821566072429400008560613179113943382838534414530717369256725264215109135863302001026776525138697346687757678612064146180440612651746358860900789121150663387196660038218455105427898975612443468281324218375837130096560518561012205955827467384558324365805423683276442315675809309172261635944709773318204196736949615088448250767346901771416074669148515969775137860206018207262555955887608050647947483202887199111126208637572553637054798617402028554079358271343853679162162337471071143439438366516894357413605798478674099830201786804711068107054280319284768210016708309099959412338310079938535128640480758077606165543022973030826504567848503247127636563477975515029236769182042955520063249479226934262129547128836285607268636616257128735661617403077566492425117736143076231919567885289466821697042965053260381369678077864480895331962342133871390874121380724157727166447405143998022207034027181208081349979839949750096232063834268998873076835262281240375229186221789248525173216797405438015641255681095750516146672707389990789122342764727681897412983677158834143997455429001031659514070368364565894056857428151273043090746061982825442770960998893755446101194702786307359022875705326592791598681652747144358325821561949823636616912471917559492187814258959952922126684620540732918878512169556910886215843759561187021831880528222316512041479402477670302657354676631533142263128452464277073195297022761098938350417766668773867076128797614155799891382505073108329650445322224160480229656722302149194298613842006853478660983900023893197742450084013273093114819153859788990620949240649188569357494209619266793942772957519625009746465048800143865159920944191555461510385343194132971899224289957419490735608534778852283336111480528090991314765968855199762138230315935360796541213471516298820912076608572815529938864557219354987356354314275537857010484251481842486391960444722383852501093573722432273079720299940454474648100182287313619981426331625365249691418511894835192905716762579443720820115188827538784667041267372975480783890207515189081197013760928431405505269601734217654073007583264242963890096963884073880383141088173469683158797513548352384916245012092976982004157926658736741289061356095198845001281706261139444586932105569776986604662811985957159254819433471587162496767256083069118816642040394211614852338401020785989347379960649444229484608654862343242467559346415270892816081117627490600808379917396794369437627148643566531607895545351031412278260531255978801507632850999612073313026071767983007975484689867620825447594921364505331470404927356446214315230515470046813031492962405680293310197824626798877010593064384385490142321884889274693007824390897768259375266162968551164590432302289324772048590763327923836705604457098772500853471733842495503816682653613753852477748364646619082335232832408323818023415607218376932763941275848708690705654667189679512193453955610849390952369820006592409798212013115140560593337623432429350756016644920246702678794802721954360166928070539723045796463479788464420786197494874093403236912998365700289179044511274892921583309342425940182626704039357179439722521403783267388920540829889476485534388334815348055750335283765195351360239967659409752740285401661218880402378530213135211773363519525215728172353640577538889766547476871614516349919380636973520653683559075654806296092417267316219774304360027735710333284169937075043067749176392002737098397327472684843242777347643096115475875560729217198022210434768082135272176748064461180596736690946440513793141653795342566324201009819538388752851440133512040653769854679226622057560951676186091097867757485714428535493178818311259950893341664025449973497087957959046361186659563799313210565663307123205306971659489756108166851608555270174052134387172576436365312719914471297133739802596048157064829855818020969232561296836614301307556264658550128316557645328618278007925286638961017695604449499643055491904174317518563317257808451080262019946280410999441831664991124674736240855900881999002740910781826098036420165163665021091813852264435243700477371271346471470193957718240785139160004492368004410616912137083807832520700531841918496937477984230227662207974381694553303983009717479379516962616819656951616685805470259558190332293351143688692076319213564779109753673355742125722353095056339812170423680311098432225461777890421574041821605496698056409817442102907182551914533861669239757255984788248700899355369457182134679147181494811417288969604053921067429570048397977093450889686061628383955356305297863590029537114933455303572226892777248080829361681052204192190704860893956297373573416459614119995829773010896254230990507625298392810404101520696983734928034296734994963117597277961515542583797063602803210245550322916126561383915765427843901784511279692264352922092027567004873152804637401797242808095265338679164951880863904630695443464876834358527735412029484885679843942948791707496087082810603490574153424900119479664372445580457472803336343810320992636991054111700132897837717423341557136034684297149546846201179942618025817968935977352732218060539666803557405444576803355249824087915555297064946407411134582430562701486373820380583074901606721408142738050040487328765075179414312791231815713533926347970766833463094890584008187761017694495767191456996872599189539080344573890064802754363463436541644269237567926571723681907498234882675585799829104388197114147567460128239620091386217765821146315812459006754370627386531228425218111495489114696691319417448402165723399868273015906816106643149212288008581110126425640042565279689860343380781875464237261096689898854377388275428675297854574441272036647140180488667772072448741279425383436693683486108293676402378806710216437911441362463615120000918184726841243190758353185347929541388703056888250051081033548705137787894236057518303170805571711717809459935477411263353232573763360415359407378906900723766512156370006758913461710148491150852208106494798816800176855066396773429042317339385879393781024673337992095351411255019556619986025711041472914486964417249826773213541339288690578847736856638002719368705958666940740317277048691813621544618882208616093143592941612343886712382307211714995797045116124262037244426644925688525068776826604744955198077800257849686967986356561461100819190758738429556544418029529210257109596973901694039950213192921826246954308054342348975469855019981833920132394743992194654936982943941647051777733423532771791954486203305102607088166147776619166811768956745717686207591421234036316667415932047441605742318165048071519564990125178604807321157014306546711759883154354217131180440765271345331459435896480685871983352604922304347999781784934671914870759528410763901039589370222817747779344329345853569144881777858750160048744441229762583907755870184396787054121018898362975763301192561729345191053002957388111924388835742402418286255769168122597905651281696662423411937343284530995901268447418904166233173507063170829898569367814838275554609386251298906261565383415626433486396673854755337954237689140633876025754289407356855860341334717109346824195670893245248354829887603390016977551064292062698480957948571397323449945985944725777742604351710575300527854477321851162487247996262355091029395878663466601045025222869770929736388593227747437508885211187671307771003526279980135497283319607227755485312916788510204622880914568168271045198194658667012772236823733753166105713469054886478620808894119558942732545613833427406512186999874256284364783270851240233183394444246489801525916825315852041101700377325880334569375423156984235059801389829956818855856806792745248245743441708773005395108112476624811391145261812961775307783685333450548557430150577106802623556016203382668082481409415591933248686585001575500141879347205510719332161285979050884714650774317601273503583506770949157147601546955120123570009620511105315311832378232445344872747046183426471685794503236122594135255472473671730090527636678615532581109909683580416227506499916895853219493625884594278239656673818225759186385756229680377758975521236296921474790429979029807128735875243839382410699747308114774854328647969069089850317951869089270737682972939263218406518825804528014352800369331114387891719317398613429615677170192559721124004247624829404384701853032054916404651718628782590861981833776224694187976682176053517837658516019094169471508139872908570676254816686442345334516245909578659593295663176565780323375780827029913035296798388634244284408584662888857398601676511022455780933191119248460447815401361545757740330975008657485163989401861495487018130953370910695120001704832224694677411630681943072969164969677056432681304846740182219793610174449959297174211893992933950351135747006570401905323225934136670220967753111860704245803248465102638631032972518077367449177515219329288605489416785026288407248362519776089728784147117677074229300447449956371161939422899066549733108695162342217090781138303883569732044833620487709869295902902224843616838411507821376684974279135850639109550868614692285672025500250236345639984396011498078081665664077713663597160155266585134836795557046767768313528771546108334663106431314777671085169325443712020329509905232313079502442385304677042216178282078248597152272749892272504665578015443388620646696373035267898973654622976439820973482625009797163981399757530091739725092818248303748889981614091120790151313199326230709077463459726108479065308223991560083098184955946837886674185590916443105709768894157228928881742825430306538082506176116254419468677916175331312709841926258602552527836109475740075771171128446081385852322840195160221353087553062461545589757506266862899242811828803270295817631472674779400300469883196709773734043656752892323133765742774919409000960289919669219703705477843105521054115335691732561113235609915200414416089560792400387636429541486915253514657317025515526810686668231633590837554087651905354841589598502139331667137030431322665271481584101600933911337878923145278970991990336670861924548475426993660644106313548385413428317860233903672145306912267992284591727517482542131332176901471925066432194483657050985736871827354916383021727180618482918992827418431462560947534709035335544755770122900171007072323448352818565400971439657543210155719286350757031658632469443107492427320756627496733152761267517192345604116045628240397591218746533076473263271908549077864637092520045037415489893113799906027700497497343969126325211184933568037963353825131481664624052553212617631587007251277395509487623221753288670301942786719410581326919899877016590655418625718289078629160107546700844875465838294230365874315407781140917701807833621076253349070541036374443301347373559100465251995245342912946988942627193796494374026290699682293395510667374676034510454161840545014443916121780028051699426609524690432180410753465444341760817863761001715901405921905666896789560490921000064853774250949760738645616382151314223919701605772588160550519595516933568373907033273475135858452163006207170029238908559383092267047990236699554700197126611303321402620622034769641953608010669284216337387554075930916105723611793556623134974773913561248291727985579821947296461201215873564725043094727903169496689233830818005002620051534474131244543405347277666948532321179187766430057132189485202047372158688231252608115588642805164040124319147707467749093470519098950683197316063843299943692896049622822267930872932820494006073521009555400858735655368571967153978029057787687465431186090129301103733835007370260173457056884765778544456430590529743659445268094259576730038253730956661092162941438000239909502296974762128620937249746324246640399401631038482269319692422468245560869590001241936793331002571330728850345259263880773606944068173298622335107961554304176429447850373622663665046406095865933613848033313043174170885834688892067361145305864209686320521693836839365609710892720171755440722792790807696759538141013272241131097664260904698978530138446406699130300660556309732079450001719675218171706812739502481868700589567111256064723746842558059053586941617896865459931200076361080637142912902163066675625576030742929597125893437236259901746724337314960524950398826543356157400769022887925722517444557635331073214490652345493820942186273298091024426568011674581790213656876604739369841607574910739560106110071722710898661239646958226757021487044012893729935316278440667332841031092603568019524122167863141381549987772224762602493674539584590137888762837812871833297842692907173892344369162810068685775101903435838304048738856260057478910836712098686206142826869338604599439605064472319005840325402484954952468594631745238587585168162928281977199346545172299631238874977528375751540802684833501540401109147575662533046305922394282931648134600547392474757616346882102412673123135894477905953408245478413522154842994120278446788717779732734932336111178340074419241649877784594873332168870338330446163556840778926634092834817524071830281789999011964693786923485949979783293229720733864661201747780025892233421403949668471426929086208828647928996061173396598693818000367213600056822206441254871707336810256496870328721777657134492536753884856808167026064910662094259567608010513415275957885714046113419138282378958515071042559347673399834280058286527082834244486280795297209470312352048655597232953804233039854369072210031347671607860453178819374629631177696076147939829859048833976084571498930565486990121359184883203680195610507182040826710601004316901000496982267957662315345016563660300967721178945644395592771173538033689193211005896074010905805987362531590125117541059088969872998923096039290234245811472230594473753173038981291433913536949586033555819917194173844052325120559039525420002069821710161485214679487620017076261952737312726820126561840350562073327336857477402994229714534130415823527303606900137239613825809792022759579636612250217167560803679382455750911065413620745590593158319289777640211055776743770450698519082183894519605143719343613919716603669867943469295590095964425492311347372828322637695507189948235281521149361331225395107939741696075188189273586542098961563093314300220176705408284284977788057360291487474428269978990496781018065844979312134202309346278040580556221388552038149314125314596143283016314875746320645070916892790623107737856157546379313378196082387325338663308887297300744743600847401032749570922504539094268264240866021746656450302526630877545767322202536028233030588852814228934053767133828075723878491582052681834333336352805938988216564047050546824933274150140591347909313447363837610568430403230711391896267808149936881546251102616142284465559819056963437289358818240823365248978239683495129750160014729547373289420266866601224784645546466461484987132381398598286866777173379231537309160606746251645144402937484201194742216568375821505870857386509201469104100319798242149505651665000778453702774414539483910015954794618885448783728693284027195940555810001274419222768402830980882840289720571166219190736374471588301562003546300463842523134430502047411795424721254672317598863135654714204520107085964654632998639826380640205434698353280049820537310955248035086481465062050407280948213576185365552981473647293501659102405503375801339976203982796003494209334241372374463060759048550107852129986817353346161962546584690852594338458338533274487747118307908995049963489273328439715987327351154075447197075920576802494236577408841028566892260426041302027867351294364541264993406912903644349124629271053257088536687948582602720669392065101170836798414569170917844954463880312177932698925326022763722290227888752986732041709370464575207336793292292309106229463940868405094201807689331095189311994283868006993325425132014213073134826561108713904532604516402582780303956295278441400898435284984291930738822636491953805167290185738779021688275276514763962294153612605902593145909425187545639910522286224794309283655634657880473891565678033083127312374196832786759221286687580601058378843282621060205587065260537546199897486041432233250626366769518518741495348633137202277549769445572205374966145557344800789157092277429477486935223675836721332588125906068966911883066255408484304115207145471555817363519848502658100395753989914166392745273858724527530401158987661361025184970292740159658270347963257441663899299187955052714639928923436657736477209366025563721829902456654677406271549532204434939082525032587666415579220498165332733297356675005586496120776346094402798477868025817333796548368931496642026132962519965838484367654681394788239350335727308060893427283578504304742550660009927486805146157284636985266305291137435107663199830169342016108917343569393641272836337215884170424928914379640505637423392958903119600742046604178904210469285970756533236080578548153599584169019878476482045234562731196979363646311973948904181320900772260382932793195633373870067681259738166644433133817735424431026637189279336098488842642850534998714417951686064631136299404328979230501636332657930912513640537866549684003928296493466395902324253594097818864607807880657883395825192764823331537812464373522874878606102870584169357402638145841863749644378057788014057004933421611241774252873388836374503741249464105378813620730613956218217325726555930553273588185078771376648681740252551551888320059628995244393431899316674722565171908650141989380450551476040268947814639014379969203430606682202970356455111135820614918422452451165862471721282559605870243399282752487604867418743436689934526872968704224762691014005014876493960939565346783515115285050315913959229591039465938925125269575714144580257042560858089894758551542252846307926226247769197543751510749988582344287742276131560734262095004956927062550248931624282489895211576089629727903223425796223945207675839428202286808420465032642373286171289667496379547750541237217969516517684427033539671906897938039778316910311522601015621632892102038875229917963190298820615089835224597598947160101039022406941715346939934306716408102123419594687915039232899020867989466732960968412798683252707204119530485967179580108897659251493185211650157799347453454898588290109122792082604797991836017267059306004278874766561447057212187635908545665873754441471601835133631519641967764323813051337327772637157880921603044630065503832013729117498812340683494550427746301860123759572638871393025549611848628786282676870227263995204834559247672177582776154450442223223227472036600503447931443354860978583575292262820891974798146119689672270443295122492981975387658788578273191127693969665294211530899499633526709602435189368547518278267397180814801540413957640267005585501539124405423628129108222459525721703328287090824601900596208126800673563521244657815052771140165156494595626406408922470833123957446884854014696672270897969262979227317579806954192348837439643083274032562532209317397450346208799437992491474080527656495666738616984923016239363392159314253515893586906903234211235866124737487672163283389516932441378875398587596847489183596797495549035428005016458633026695459347784854233471424346126018645688897474626702805278245083489389584690863711703646174837514822035828762215039104047425792691468294709616381264211953241329835613928144554804776282180146838702644680822051155753055202210642904308527762371188119807514212050826408933834173427681038978700078618551317734777438953855771699737194202719795605492025047559753716072802839678876651075010410036984144246108592749203746929235953551748133380568383215977993303146858765237041384936931807328711306414174691026592854304972725086787057185817819066649838951021003320585817255561397943467081098540528816328567712909551462184813274942129233639279612930860656750125872355146138338899972478857146234637974336878047500479093708130307271959769081036384702015003460659777358267414302635471008881102635909320957132724063767609301561650997125225884430403369154178559241676829785514617978987571006229545568327869905287219205623265388025121049247009380355151924340940760243568159858640537481626185045526659992810171653714171519728213589951913208966795221023087116502606085873438977745661696713300042048061543129725424910006531990902354907668617040794349847612600428471898523271671079098277184718653455187641564535621793610006737260001817698706920188862239320494505606740692870323609065857237559935761676080123173886843124560140382641580669986945331868846316834293416885764319870015053615530025959384332301403631054105576011791029578660098769448154346520815970931705237257539771519961717894238195219144404525456339265880761847209821144649135059168793463867935690791211091645281918934366816305010409176081205404113828646712050283154357581193493110071647204584588361999275452714371454885537139280769509182762241685077341841300742877048583335529990380964548906419305040261047388468523642069811470220578923255942977178492957565902987222592329691730010594491888392379736702881039371234130664015660649784928369075555392006474191278639368091022926094361842196962829422921260775250530649098522031681129463812558199212738056931184535179078041634762186771704490738284049251869732548258608322285757081453178862362636096474700186042846080318745794670846088944939607061456139913715474540730701430592338119994427159264365345885149611773046756924358645176437520292544194315041649091411996814097749041451008477847975729497753410930567118262753576342127165670276967612841633602065445694799895108011098917365462500779243173117662142353631273838124445853936751458459330394636063461244984455821693379464943657848131319110727642197767379284330044950450410828250967540013619577904818775942964789361306348363586670712475065011334514165423233305032683958057373065678682549332628555486623762741346796241562229043188548505485439215534166300256226967771257898465060183174611318900461809139772719980410952600142843881993201003129783530278502587000346815461395651996297923494636650082901713505762084950976049712956825364768580210067594236458132646029344259355378162597755544434151989837325725010709444748760985758938971624747633782424820927586060310279616135931702829382051690537432521943245331228108966465263256901606453777551432028151309518886957216771171926895989458856052550238452559354615604728516003070422772640231785478408767316106805265921658152603197816366502638054636532834066501413837136793367787637989755276276458307545496500534268983316236204755616562819692090253971201060188155624616489247238366220110792190140250019511583329805845607630394737659964972052019069581853334090945574284230062919843762011164968567038263701111784404337136932362929469659831183184264262996047276611404705833577863506454479639254075635702096677919793057248413938770172707783422043676533780892181793894182009240677785012898632865965545195510233345148464717212324935924322970889921180087248261125974115899584759467351032947920127628362930533543114481889522027635320755461192063400426711279129883032504350182488664678401700148248778601650340427158708297986588479456000994628236519768475045090518930366158631961787751663543290826259790009423294969940756492218646594718729260505678130003889170764003565638732882219010206148256838340450084582716529072206747183263477657069343408111910556497930197372181394945307897879298367564266288780963480559395813305445235239332660907011067018356977401425303606320967577071458656998636055794630192596181805585286661956601532891503927841359882021436143448003929232148939163136714906488021537726703184109469901926557748175848022736241562187245250813104444954101532050083159477079351554220413241391680766615847599019330818531136840151628290993132728642143213952441052965237111804988837342649074510850308139654682189588827421364601869104295211675426783662583099456354762004430975788171321920769732565031698631869118681385212253093449015102204113584175922895867414773525866730266901482818598744810983061844479792990106597471137720661387640741015074085401826391124109668307847250915434252584370665432101068643874807842868981998229773922758665185096723233918672385135331066436183597710865336156617308027923022637703998218554594184613620673507059506639686880652588047597947020741851333159347166285881309526568012778901392821896971783669716360419256551857669424873455683412444819360093695821062814874783793559064764890041102553292516946762356625222563532078070326560700667020772149528434808372940843871544111576298293171884456208211616338060570022002057643869118476251071116465742460015239775400362171661766836717164130370916629416685911900161579934430531193053287998025336863281764378598697296702512344392983171567330758390293857157489178617664405897620453666852762268096143611176067722115546325788973724787438499030023736750506670110383646981690141921431779763892077376026986854933186260567326885573252663686725121082826882943789288749396799116729264086534776376239877343308019542505423691719107064272655445231899439702046750647205107829844202170337447893848400879615395874030298691714913237808201393808774576060631573623294277239247413733230372615452412939698515673501299348704441498745786336335661893404334974977608477900943850558713192566918075092554439786785518146749832465691402568197772143279980362436868472435494701105505961737994973075591411450792430497578964474114531245166925946665903707801959638062595328391224297349922909176659032247712972666240240620186305717111591251366704606918084926860687036363305801470135119193226262520735876137814404166884508619518635294072395740716515894709731311257545169822678522774218616959973329719640561164680748382917030582961233246539552551378683050263927870966380691696138091323946417608077761367750444877443241919411360658067382186080341818786944403397846654765197392486715978609205150339952242273254109024005901048854632169698030114218899632185279196737144725494826769583222991659554046085429340426939027768170131731397036125882087968236915637836410437661986954189191606806165377539213923784898798017852277756932096546022002699368541993163628422465706734238891362941023476366191684491360741024121605223876523472793524922826853983548250646835908816981280144675459544114934287566543415087913209144442887399194293658091283801805749745041048418156323886790142135292030265894012497003372733249071931093619973878942551382202427825029904563666178966323957810659324052738008589197548730871769945172423313269349732117782839780943348239332715894641183803891954517023801371417956448858676283186921118755619957592238108003469402349192082869756168028058798391755219035601891202104018909093477504301010132372892419436731036948860002338466758906634962436515423348046463188476416513643509009967837227672429937736949031860397731214151813543831548840048747941285728791699158299735342227163141719240779152322737286782328035169584319708166337480494916967832111634740450887208997621136558101231479166278857980088063022966533972930728542074568963627974468043822480242404981781989084656718573720748683709682203563527766118380264546807820523532679133326663378426798447595535460001536467093610429440482259532620136814686689421527050347821102594946992914019482480861106309426794774325420430427041289516453664167795822992153456290110382780838380949418062214098338587628568563487650480683444121823921223421729481367918134138150624479775528735959290475979126264482617188292893626547569784108066393783246875141018552967000135838197847954263726959131135153923337182948947860162558705792681882420066549822869842128241838980673840348878303130370329598716904328279421161285274477430338086443402137521895137345579840375689275312472219657211227428689089911922525011564161725902677226327701612240045411853549520476718642732969504002186978162564516938725082966475843165278028319104517555052562421405966784512461156547946336093578289686595089754939981467097901755244786050016233850562640853981117654741076517087756464297241727201794697398061471535730899822490027774914248256627932710694198123027675579206741791272321422522248272324091186239246784431746079118201990996089820636106346692286535224289818005213881094778552959193016952094331048595998988550645621450630887261111335139187356249069945563952215361928910222859379765754898907652788872552734634136690656391600783660913456934192764053805210705569128546275235929839138381794549857460350618413172071762289298383481381740055017882776994299467259504529116040376211092352108825090282490735526374793052277231974092968608398622708570806695240815021357481016499639194878545368981826295309990891617960575010092152852344418459909578958540067752642302190903507746909765943130004565049380782751692773446018225314187591355660712071362850653619208305880628139476810431834895106475826118827201613595514378634766382505485565306753038281759450287853894741015078278555475526479184678305497532422339986551426658838406115545353082522388940988440072397414742298548318954327005600205630276554162410553328138142610031917187206554504709873705705606271648605964517018574621632651041661283897305532375471327497586408046653462656212591989992161277264827902700539126277550730814789675312868545024350196831613609247070940395405298409796748361642424588590971105445491695062407529620762475404926425704811973448864941352126371812440959090036044603298586927825125119397736070394623060429069364545711670286196437040150224952662691313634817479584904161860265746386588127573166637798623700485924268045458120255207283005368692591058226216969290128423031136345641348371982507117204691295623556248781039847835466311668143010114323070726834305230827606096703323712925638258377664266314520647740268145045729228955833682885442126587797154821770082894632689737668789420762960221620415271281075547444414977621268393306440261530852361654635921228037490842707431197259518049272441797523365925125084912144465743492776170339435008934250839623558998922306046300986064084167294744591682201844109741438587653749451529235513161876454175515298220650526017910612551784492966732549473861751481045119698164754411227742815184198895182926929302135178358540696048941579146276654953923290532600846636871236312437531935922241859606901105352031666151571381624293840777753827686139509175376419972617075510292775063212304462545519098462616813682170568472297236605558858491333220562031328317460543439108713130713417302002402553053527073160538454909869568230413233528035731562939512827966578270619396712081029220244399899070169790229931473493602209934705618359513556544569928632337406167692629080162159466307301309114441407645597737130277541193150458542546625253712827414505776634167478867688082681360235252520979358603927636987501243462749847044767649017533426711699625231862519235130769229077998833220219636978172438884757455597991188521667385847981371940830665646193974481202082970158397607808919846590616832821966949863505337787675976074753183227623557396593442721474184700441270208471817068846432381890333319368281646677662884892043762322961496336310166635514688715805706884546234383566702811083763032369694404283824088655508712407706380806766477293812959366659474497385995750341966453852668554278460242838179919972808263154326363346758503630469134575992197860347191506206888289599627188553898347359921168090476971122541063907240894949535192798185133560280216094366448650151564103259263709268311111116404941480644588790833556014884899549934430326279654699579949883797117528237778204216524176374890128593662753604379167007371363340934509472368508910564745376252620754913762566759099205970174832417741404435735446935106629720346793207973159060865920074093442623734495808052933471974448132935723038101103896364431743433179419470910657570507910946482717205627443541420467520295703646129373118235498867527010823874201447204197259511279666421151898531949253926247152750088645000539903564318703655994675153062283375908989304710419794203714027115178317779337207050809676192411136599561577269957921677792019269684673585088775239200177434066529557454701603189651521216862426265081781947175938285693971615859551458260602178978966442917458558886515862966919959897815919389500733331172992235633370668331508674599963210851854976665814836356474521423582601907440701564948392295750460622916370454130687276214339689358956579978534464655596974633858002639151624696816554340200233361259673390285185268130726657712894637666335599709558807223535499868663387252217700267971645927153187435118641678211620227532473192024856847678296648516831956989494834543386109764913800103619526804754247555412944376963603719486290994131237375132879051630949258761113842460145821057330585963018917073843953716637051432918813918538226063446251196751697493951057406316978649096917658531372434207344257085112704955875780740552851216683588616236870385494206836751165169168965777708824600398121840347726439012561978431962995616943334439862277541205582052258359665397619052479042858622110413817117291920123915614440638716007938616152299518701365230135603652443051191335312252653900216787173558334964233337807080116968334556912940779096879348848560476029632735774398255745986071263900887658115265522027877204152301787570331917993627830733061684563826874705447434212291604072293824563327702464229606286958937992092215350786156836393626395760359839102253036927811642414463400147862639712108398734341187325000351832573131427244491360462655429207473373075055592553907146527790142765348577272560159752602863241432574889339046363911775426214541579623691598292645197692929377398187668242495184991287418721363157768781863603885814200521020132266709114734762760161822739500772611183561208997250639596983117343944024477264454591728881829825425716734563896158838894905667630035937510935927796985419855920611202606502713935313422847002633626281090567272904407407129513766023791269680465195889522859340489692529744096608426036513068809677898600812334333411251452933193188598131130444111920807260741430495939116296347228751788532616177286464132478184556177041800328123444694552768372684238820662424983524291211602744588318190218460366126662568349168948008924633463354683585424016618350001184392116346804613477350785495425039505894427768264971076016972366297429688796631707270020928897013903949379298576548687848170818537554440583930088878925800709053569817069620164362519180291880386807764072560365507320256364770313046260117382191696796708949800316615467477765779897159674101412213485431419712119692193095298204284176272180282091645340797200907319338101548398166067784650086014169246977269207543998285897433750800793116358668034753443540197377994621576314457017345321360247445842021168784584735604513220709112478610410275649484546980518701632138651135023413833785522437958601861553082556086978657994549693027199005505619597022463528458651904429639622483592806667873732413703508152052130846086449474108852365477789691703066026208200329437194823957048121317441308382803986770748518537130106148241639544182076103532372711775695214064239069889498260011260800366052303390159840342362506852077243072649688271738703844596153101091706886959691261337278202385722348164724633443534440683524771568075549454437733830795864063174652017522109608354437234250195553174501163616286246457095187095828112647357937838764809290676244846529347710899534458327903263528511243413704755358527636015883050171575673594721796927894095087591466729897912058135111102424396860711904673926409166516039368892046512392116921419978113702040109140095237805049678422579275161308915642428358985708235494107469639001507422246578389288006555558160391986896502685976970939013412232038255627578153453206185588242500816956671635000274139701657371916372206603916445093372113207134744965904705718607387916553494162390864952586482820324468772509666790456859759971303536153906239316564551762582463970664416213780928840200847871424964568317217455822448414222445010636636815650439683434037265094355533291631860857345067477288531476218516366631051056996264892898853043300144067248155129472241201263036302956924135315922772526315470209649471777872841578475768989131804775657368882245282102705593237299381240828817333414876478525071216076627983162030304890713969273636803746730939189499424478328621648716156554768324851306089957392943013143061032368029951148414509263869937682454804776620146010589110831173073423311369529958054083285939610961885720313085668304089746827261110303259644502524802073713013531607634477106007680809530268906077064698893309243735814230132076929810479946526992473103380907528535013544580519552274481158374127622449928456281622863484944867669579819020007527348031341951316803097583521631688449502812927764434064432947512422038348760778193883633965786471034621976220964788368973480755642818032354266641841021547599735555520396466002793596382151993018643891177121279580667471363703324458630597305581479678648890179395612997119721406867051804310850421791333676696382557623953520730022873393880351709026142850346048761397381715676447338885254809308387723820501748431676719997119080755574821416859491452526996587830928348931358416142736088395322096203747078794041793017203533493404096390261945101514495718188238366805972157623049898980420921702068365061113471291655878478974929556891999436657832482629867531950438832526835511205305843521228016890774716488764839392255378609501305144938782258936792778531131896358404914133700395923609528440968489015132803190614585419203388387273207393974011484743657668671628111142422011487328916373157924284456981017785716255632867120611446690465611665065079552418495874077887786419740357437362050005406552357565900577126560393055873383379629428692174715195970693731144860373686581430174516125494263562321619458642285255003591067888959413874336785429197132989053662494225375732958945692323814415007061184997594502801899149848530191520353051354080983750595046571959128329890169414439930556981409043414868562603878605085906893672453733942506330352528101763601349803129378115530921873577926935913854954831400088082286495957960208721515005688650058231406747668508340861480998405486229379784335856910743510828938925069343487482420270952904159661104240127045972082948762012516708553670439378280908531605511299968177616941067930902975318830059384104032092856032972826386312368130164900068774611333974696779388960644436000286746510215755038833973037221471857597825310097920304386874300224325217715392816623473938902287815437144969076518145294298993731741384875341574051119856682228315392154826661799976542707490073969007335591763271668407339529813646165075937709643086608878655899721972311916654019296966388110166691634066487507756460575154443141830806077822884110418343248319252506674081612638481204733208303541042441490473044022761915105050685744864855688163852112277065978690132954280610277759505470934994654462038997809651033562030500128311605140334681817806120679401436095317194941267061965788283794756607928563142131197784884690905425853868163027210166763564330736856213393034062161855692078540553779204129080586069916766815325894252931108601935423999170179561658655242102618914183511127350533400095725508864185874170693949504079895612464277681368365031451713431723527253042441057429956019565864599806125036801663655540118239403514759141520929682193703876113666410983774160455559039379591451853862489122285638825819674332923375922391563063736635934706202936804281504347430060954469608013286213488785014576121841316610237632179456069024397373642434006587637037539835030103022095656746097832676129323154771478773105408805080851407258468897726529920458332659463495352600779535181974461687071718010943608646598292912260788863135381070764892038910530991819367063840076037950791814349049509215236170260444779540417432457929083329946435387021811628925805919757521280680133364631082935042193435770812514095129567672914058787563652317806261310598539855851847893188559236083168943861283453707846953156275266096846258299444092988057381507416990623558184510355617941051763018068787177768220481621746053601846200244488041883931848696086063240706696818951881465664878223092215502463531502178604483640910706459244749684726520887928851383653821635292105327496722018938862428003654280489272274112719000079797994488121063012357686149641292929998482173786793405723114981072794902521076772818045526386127260838695948140932636649150110382306269055051092020442196081854244577438830900612284827401000792305059604626032068593870418875470534988572084859014592636293195627379378792690500545566593102916774080113969708210381062352096166060578986304416171249653831981891182221285335352509232567801972904496340052520702829653236264091131436414484231202483508498860602776632725905412004364772241617402111499387645015791566259235055881593733891040065372518366316011713554992738544454183193322923446326212662593010082858230393047913971342334987211471514499059651803910407286176446638160886728609935816546722869385736546942162666500746135608690160499707833983339936663842886236043449052807317914977952793373018195778710021214006176979311583184905805097387147165279248307417654179589737344792688303412737537062910610443880269319070367669832035429348652126910423165102513424994904536574547799820703645941441691917155714687482216907395182932638083056899848454278716847750405529872206279971314917730426502044535676208860394670110636976354109077164147364001404991427853695789139813934502523671196518678126542469288314046221765055402294902325693193348278591582976775531258847040384924988791461713624215668148469926438619150884105607653409764036860117404762453539003289193390515665848060190905057365662190831805413582922312788902127927917506914139165290938470662938804796741410109553929512101141090175266337200077366385966596960890344792798048605441195654565036800783389825065991848689537585283748538814543233213799826497579925687670091132135074943700400742990560742647714057895710394287105155663905703392877894446720744399124113008323404291671128705608570100074134573133115369310806935007476810130281608202880700365283696139260632913200759189188218503360803267920783182077911267204968979230538672668842035652799041442125691190070097575431264678510060249949960377083067278121470104812332435696094258386129219858520587618088061840707406727800860741000452396609699026919511577230403315861263639702849025885782424428120011589747509471839790890198080598787002200719532478600380315927726766229345473156142037072550106351153127616443811239475602942308741146815523726033345953195128203010222327627139508908239677655240920656647901980078159003162162142823815840018866900235164582273625879523875664047647966721571060066991721762468611465943022920935348121602880336356030858841928226047559740429559921348616414450749655656487440857049130083221456814776497577059710347500577519525956859007831844307587250438966226234376455082390330463001689456136155967003518326146282604139713957508004671631801009306757126023561767349086140498366101381269172229555269306884731129757556523964571214643380216201649848689654315159404811251475986963821854568450236237788394694650660182189818047984227949357499034136290755095012291357387553577449402840930221131899230997126701216074121151409134605736409197265049561653060377051865783715239620040627622542241951393218959680241567388929920614229012896936765522900452707732778903840634742367114114252943260223988580659563796808112172179417205759425408661165680747742671642620862997513741936849049125562297580272153162477805854882403370906693655468801042800932282189289842635382125129995309609110312597762952869599223825005595760077797908245903499514539885068768593203211364973374046900158788726674130038087128590415802241719457626134281095035890915050819515919163121359195173597957110797504399911929200537617413536016479003161191846871979077880899596983715993962160024148926360732769804312825881039638696001507339996337864490510908963955800370878148151657393385091533208141265122471291690483070641357584784534837975070263202567822385075496347290038237408056311604788796498722246892534730871478539071739554440251584616051924818988935030149485496266869896450706870116711920265042633747472465401413388697791674927566815004422062579821424649100450713088499142545218110670736704881599267020485289465505379258836706021287745755322723794314972286157872939689677943800697493134965635596268894996571985891227726681734126575350861185500132126278228035920547916681360498142801685212082171389360720642659876176410956323545801210642992442451516323843291335475419398973258047167284888830027212129583766734028549297802193740057898930491571506091676130161260607844216998928323446581056126884497118204837597343303604347207755125432543802089935982040322110030761117116093039964514000798716171670553044319863483213218661350664942169387666743627775547301841105521483222048642747429158124518653649394266967972977470019914101011879929155950528280930174652897382907387498427958660309641331055846409778878070237091329695723998167388091249276031286731143003565084509698474330842496163299675775444273821008136472195800675347554320369405298025806555728981852154780584608476322919115782727772890619152985407338468936686432337938811855213590287994775614701900582858194397374062346213734771179118010605402094442526815755647019451621002757488883678617421871740311875845679790640667641218839683348903068935887384769179980040243882430897483554278121538107387036075096662614417567769650717100468474494778798667312945847792957631919063067299429782029428319398375262415766445816871182907913320685656091180986384414685946856817037586499898683238456222331722652177157804121599990795969172388795834727839173859914375992574998705996071684810222681848978789577705352379824811953072225461949600818522091962728348616345734233737267213385128408192622192604987617021931127357741813262414474669741881749684257551816957375068377862888471060593014690641311272232128653899544502734165013510351557214503741740448098499149922677223052830179206203609435175730850918119286180459758190932415466950752750948364082183910605537553190578607920345361247794768148691005258036734591023087436242270525915964683212996594877193743745140219277091755609310558074400377044976440308123097492514537483801341421482111106982406674350744522233799182349398507913077260848458588846121369034806876925766579963514975024302744310333666452537705764675170599791830254790873732538775343727748865146433636168637884532814207675758277112596302657573877508505347030702377595112226507535706822975008952130099375764870741902071673160041991769143454237853617195451873207976487748165523045345429152324534947563493092691459887894628059287742663860097291006064600603487816657891417063643393854863512687420518036265251239356312024197441400684173877148849581452283109553033626417965710702675071571621396997495887392213898380397795955587191491700948273950087369404722654668912493544532925747940227076177466545809249969257262737351485689561963031671887502496865245822667410279465675425137282549523866874247801966042991810973532250671010027669095890777584310338658730163875146978997581651266461476269927286519849892871654457079090014748185898415942277019427668225255161874450772171693709060970640978519123295811393106427184057265085674879585687341191051849491746690162085356412409649233534886251104101745262858758340680379214279869612552427751308892741152775798159033849466289759850826229649052297975620017665567252617832468495196937822375909007354217092584270615764494714590913661047637197791471548828727809754306273938111092992777340245077850695824002182269605866678800815528522379989701695181258163919985694996965063907354147653291446865206987383204734602279069981750762361239543310123529038643830015716488160391633921725397448913752879365866320401699596722300176432154328838929023667039478812854834964806895321182257201410045664699910301478889698383323037637322758882093045058121557970493565669395851663764888365415111381469878326484193418928333096390009073396145946569000260403941145620032652802250482465251853254196187853103837412004576361109434327258953676799359193858999014499326124537801397613545856886503460881930468786550055222712159487657703397993198485691129814299969524287500137016644085264186973736821569275990288107779156388835463353636089475948213906054750560025428689265864022533628013270578975672796687141950349238235112809411225976571888375552389435091527747130503260454156569760151512293793024436713071898643536867844681680681108597003393345750389164893239547026985632974457474063290949212164301129085548938115700252382887800258619708880036144929260244558528694710943447758423821038690040314821139312692179531498926081038386831608551717491510936012236462081431941144640189390197398049782091373989173847348797813763378950866548855500671205779984911526566468769404951358030708359637211119126545190797208798654616539435129785498671474856279886428686835269237407465609536874527412196172520345461424829675366360015302155375372664078590734247173396274623920509549606434192383564175320020860481950112774648892595376332524767413606046199094157930865546397853109744070099613807741247146326260691067889686715569755410603514592109664825876188199855179387148250827193508757843931918475327786693618451115749674747748479100524000487381959176876442292155046482014272536685373976235520285114209323653708251408734129942274974726997976148273712847994525733703436922911696309283928570281334041947872116742579647350928901078549510969143691630243585639375355458898043337223733776228275832542037586857756757578850107041075803395862286823347987208389082830243927659130680595739411845859425067288710112526168679194240209069903119558805249506779339973523631729346658104582767803730222839739399440566867338895481838158993154693610761249672488657631794583685446698021502158478709801793640520079761956972014194464963283864052000327325479705614911554444630150750501115216606713868367607148913196772652156198469378798912318328391174113872467795421015509452297373155376410729263498725558287479661993547403853088317439063409303035609399625034211678976676884601418707464026969483413882635036881288674778706976409213045011356117034380702618287328268148854250392054306188988613158330165567457613631523926943207150375130191510501023321093816980139709337225975375234282693354217173720824636057982854023167083911429593224468542725742331289919518402349020976340788669460044801804988914601857339358407883409738733444516197046094947660605435909711156910474378707237712503873986208251933072981638041616479030699760616078234940788145528109988723521110698233334296492420839286147563621059471714729173431372557466460249494709513308825608423230807272526903116387371526856719935138286080454789888045072755505943236214283299127929523703063447284822322600575139520067251805886330754701015847028595843205491769661528433036676929981676345554051645819770070568245142020052934731178488416965830892591489546708660440613108858249023454397483194187238425391745144415964261461733032318602844437076893123539732273455440891889298846554440200734832268609975324557200390964433353976261372756308547616095510225137693308350042292174173779870890466994478613707548070219534784289597526630982284246919603768768187527912964825538961656375401050438168029291759191358966581320306197021720642705636081601831634791093982429028265679911966822332193433048792436904382611294989649745127857054727634412550904327109298592433132992918238727173178713724040818799948407411911335675677373213156749850800025102878109793939570006515248097258760692304053541838570748047540726907532157198356392649480347512010089551176469983622428806616727457458215821023676216637834299102886049849740664509612722889920235972819926014669072551895804372644871277157898263722555163468674600587650178090618984657938221269165719649736163380495026154960300241891870483541150809293974902144592905836721932092521349672943639986699075961463008003666571650730179515490342776144561832933647717727661955964870220020686196403807470959347096410988583579082827647829790376380525529026704483336259190121845893364231881396118844409603126632794586073885044271189276246247016420182190196625568735102015881895260979982139678708311744539362520457754476961667439712637585137841591521234194684567306536210056521942395787890434487812039891021145251704614509083843880783495834888725683237914471958079678438763903234712892219416578307088313053359108303374484951342529167632697353402180047980094008162280357362654113488786155302749574773014621935915027108810936265169589529593317117911870396676139389189286396467436333170947263032975202507273567949207834391651329631433654642957630627400242883668997042252004380256982207664150820312285040753653983044201648378382807327080378489108814774116952316546429526624313948440365344431637583017963428358741042422675054979948608037705669657502472792335911321691202421758960222774080864343198361058277364627930993855885649180567344215539500812119766076064101642766709412694378449655557701087514030831171086646954114988098480499562898916766137176806021750795525239249906266276674989663169665076607665830545842755535164982213210407877477777668551012062112169557167313415109467000238729793539612161198296194423957259672019067561483506168642735153899631606234697737843148134352120866308429767013841940900372377414109421613195736325576408152608389397326367342851631573203277191076803420463731121678285530878162224980133597425713863608010727464587069114527178769940296558021331361423268104113727815673354979699948408667762911039444419013393362992824619198807393757446338831951029139758854727613507833069152426103371600034044954537562438156410574997339126080668614687472133275855226289513635807213472109344400132666348812253291797439969550789835159813757867070231555707434993304380404189974208486986629915974911046896159021716938136545047548500147122355419537728160465717763622218572456293656017412230958336848000123935849223602089890507625269563503129293492368347959958103442688300855797414805392878415344900569332328248793214364367449608561408438624492123384979344120283076551572142395944957563341988128585623400509412062093721044385011641245973183077599741690655422477933654968615349137970713064868912770845147234808500967284086357095012039809784661367819819992992892741050205374186453409556021576725007939804778688010262433446944837187474637745710909260456057331232717482084603836001683331554580982965310285396810016934604906580716635370376265877861661555060177028516467498117118848694438034749351489119630845268145222814903238457096205291787062279160700948629927339974820623621339785084816927873000025254499737250604253746878343059299001783766629928716820452685771447518074025072297818105207413208187128416133078828494611351398087361172807224719070095161512344799253141303903663347669702404012139046154863038828242305537086931840043220292354593830685079660125790276823696073513709338912127362407289922987638152240568121955765088710256190357730545581780887977208863258301544176852244412453049961865927744990442258192013797662686238579492858817826460506152604583940099478427825561588951308097949059119271819081902808568739222262159948784842228004360014194202149773081764567971436181970757905267175458988792280052034986821182623052825089406075938968123546624229808263113735406531059843636221974171980610840941318678717112786791802973145161619411450244398427685359405389994253351452542333808345525129238517345068426630541572085117593403361828164224732020606705223137114316000329455692612932325119023267725338015648298172171099329153000613951939796964466339908657714062600795999268663160079301137997402316556559164017145424817544925079263471473262569727517125348063592376006686584881993531480101435533129119713071459695535327114510507155239138389345563159564260158424024895545238806852838149871592391483713590297006489119855201798749594008543704967920299478827835589589010160774435787854415684695946095788172797414239274509367849296580004318079222920071757586475229437095278663779943231969297096822599390203253776856188135900753200777820671835620152907971273951812422755161346522201585585642873328752133918331426292092964295392332475774285472532809781756743311957670087255168417393240667806677441072714913747337620747111930095190219008817128981151135514063177505689263073972788690267437634733702131312253470329356303720421914220255668646723464339157676518481453675055252451706814555478831892688955590973359494396001360415411394684756898906750959039791113174037683186320243201242322709464983559738506246192656276592591339969817812742839694170281482207219399142226726852462926822506787718099650958859540847401020067005838213876126489868060247639672433211933766739193377081802896006173199380103424365723343806720885191021974942133529957827453756933732846332750880289403795573674399916614344402957987776594837980353748267757317750712343894275056925653276936038733085034935079292185648447563877617997488591102796594694356561170223702975242020207553315408398470232728148237668761699582991011380922149888063532176929431753322028540915981265967672721892524269395633925645696342345453445757774887866289798411312512683203640867224935251226644493094725844245170670747320349924529653933858902605205264531947670717847130035347786562115495998454563287517311208776532482234468655660931235546573030936728664624245469009465265044562704563041019859892534049550931880374353513422443565016856637226355829526700680360483700335949888687639936629020360573744584321204040280129491283309334365250546044289153322528703066415683799142189020238190015913591110666434555949340531059019357629313955773327968811718496280448362473341650679726123758526852224470905415837663224827313109888388191658328181050172114327106291530777006716778014899581634434951542914202350679086737062278996807624966681094289572807959114191373121954450190815204313975338903224286974165528255231369960259757919641781631771715376967805334800802878084191524222868241775501524099226158811473815050476793316306425845966225535991724768773904249374227843436002528693024580513492860656788148564984548881793687132908299408219904449778679110648352134757287829660980773527940864254873637463295154619276665371230598177474371106091473636981317632188331971896210655211584548555402162644824610383817114338362738059596243742232412781287338826773447125635562913190937424891139033845924954016324049962234001918869717412388882906093883746930823322584388548942224063964736428870481401244858392603663460701718711933070456117480483654285682333983560227083560513250594291559638637964919195420468743138192209617715253168743402391837590658014424714749865434699327712117761127350863227405507343336609704036874826096132040358559966085581800076714236484531378011165988816873409295455580372056372395412689413286275281519674522932158601376106418434373681995238561595106903399061184088447812297294824410639989973936932742967878008868594780393217872189772820838295570873122000797526727461012150683435405980848892493792505771623826633711084289645999422538025293475754528357635917294497848186735415165352323074758257136485869498611777150100825858041610119748048075445182564508707566192278888527239485121099262494037238266463518495159613690679483408136201709641742105186776282728871204621047951597240489972932184319745450387099170777601269641828241328423302722499795287930537413957271188775339978337334623344209041482975398788785299574854416867581896058562413681753016360204747872732393869760321191848319654220069865342918004411881712997516315574409619907249108502157818436716020259821743385952554779446214341931583338301305028756785680505846521923659256848779479787578689242038344581897581186384511988971622182056422679988647269036206063328330072100809526322259382093319865271081021447608004578536971578752487844517280781113986343689238066645299109404822190465018792144990793150151295378833954335180801388748057338734472842363415150683090061565172856217001113120797984837428987132722919975127205906257465815567124268776399468725185593841083029253336295347293327194562821001966085360119550325541269514097829200922563643545833672842505447686139820056615446222999693523568258905855878002373870795686381762870583602843844300886719917538972649053465596353054888454446271284219743395514465115771581911700091097914223760740284670030144490078955412437164444136697297066536682121888051281729490046160657778030996531704226820464107498579010769319516801372512731805790653837624021476520990003698545736055985256077158968009943829186538500077139633669111605448514554886344306465861657924290616454721070121899500544180461056557647311553045673471339660910368187002112729733847276759715542073965313443465312578736454493362558501426408445917943520686812156940641134330351301398029588670061741900871991843340180067480071485136903897393206392407545999203420699487058745593034656569965718202639539162680455424543227704428451264542970126224790400608562562524102932972977318163147750284093256769030286762959313316609226906232553496713126975452790558468749193453956954412152863803560892512987591425022305754685456230297924194063461044705651159160532547928537353604616005497795825419511976141197497985444522125761869105434563001036928152145312345694729013562152308661307493111500652744938707956346199217475477443481558001848891576630450062964529975470080671908804096205139006659732142893252761561725511702995495701903760074319985469877334402514983426961711532739036215928060605175855697732494042829081286610142114574179135108324963912068705603266996018254192326276483386847474107585107662724922372677958463427697984576192547108428476939241122399507733256805475903320774394091873362395317886363644081643988748555283659296068643308198910787306211780674455280717427682257266020726866000780600944065484885935740644892496510468556965455121448909209945588557239405928955568032132907011170634538457927559458802395365281510717186151557316203622488432339763538872596923826867907507049057140297157532206995361636164002109490568637528676694003711249500984793445544633851758110023596188873941736324269835262730139119501939664860894825592810567933397740967323683616926958700836370364086458378469075499024045277208960070572539379469156524707823535860431190051166791999683081916593750828728874706087779805649196234982231867572732358358294941833703033469827242395597667082026069764974817435478329985909270949701572420025987201710660655221765321068807285066952411125892673419500998732512687384053608672547812676121007013077512349186583649198023810621098932308907781620567752685547188492398428958116564683974787372136057312908411279134420917878436685845514682860301712309956398059914342811661096892435311120899609795092075349046314398234083402412830137763016184087848658776484800737782091523860631011527193863581661691784861484567656352060505897763833083006533659910210750995428333378107206833445221746710014539214268061795299367701282880110276969834327019384214108645709237233964235813050640051168012964131324291691639731385547467047602253021295135410916277762757466904787345723137976044158076460230159294551776577375161008581014791376517494687155582372470369972725850183722131049518553413741721154195122020638120818270994014452494139365697897669779312572018471298948313096680597797789014324408040850833269660218147387970860025348801126186600616136031011963654451574088005618407223994399904840658343131213017707563928425058149405177103158775783276688427491111592807825303742619182181462682709848311133273832113161850865403555622673022905211706343400296876798138082924900313954231894851629816192691411990653732041645027057397819372608108721810880755204831145317461681629050506072794625658474010117941485789622436727169188345727615997052273256538366190438001110584103259640166882501765840595444181130705506962249426129559549320114051092235054244423439698062985850177937866777829319158560532191906350058360910694030454020891815603285423135918239869258845570287276293513340414822012585587769391114626811407526112193014319490390250649894864652736775740659523204374618947377848612118136241683356450211517895855487588861184178631463094408369590037427770551058177769074942155531208037475162746851325412607936309710095583952267781061612390600900553724794947741029395082006404237872938950625108616288007410956955680120079719718708212099415211112702640519555201450413698056584427909078436831365411499125052132567647874464783737612240524784941101128621769779238174522497946472827277149687887585373648367014598807824785279455383175109241282694194694896511786447837648505038046755329244163114668563878887768887861795116816664779722559838519075190206182414328960257386413091021708555292068402956413783445960006134095086882083801366813121596178388738181770523822707045889494377965467346162909778300205266424577565761110315047207039270558254015637356944563130259830097901066401044347691880211005552599586675101544138232476930452029258759300209270867874782667975205807883242274720518645417208668654889697716827528014457774532920513598724709082165527226827089181946026457815952349383042303104326301970554899209873207459474020404195577809786651651382239616312902483813064154313497218932761513163606991019802447213386695726599772703484158949868172884643773055926140413950837736342300323004358301156677014110407914666451624985190231415816708692147350515865426829871350560597635945805301403248249123575288555149014895504463672083559775729042796318885991253610817386354237345207804502282970153433250746920589390817739929361143411795102462388496454668721162829588908821280573988993591106617973504662516344451741752019486906981316990038458663930313145500795341494609525870482696014451836949409332610546033676996928959465406948342989616535856209035197493684968972363579172399083832859854473772123846869726914752536064685359719021109306200601323012222783487038149557641744022683288503413823291839900999089233346085504636210646582995515053936969157100620320303896044672135756493829209836886504246072631837355318837115332841178208945299489484149324483575334589144805680746885851375732922041101671083990378073575963167186481658164629258045448538975096204383642635188761902332341604329944902244379573310884861977981209346194688067370247070099513406865379608046642182513942444888061409433792275072899208223453643911199780326807366589893266082192579372481533847110007033763876236407716383977703013866236816264469633114182066293975499883956739081791636996023844166546434343041540254981238881405268445664040556736112251736332722717470685005934185151879017736389535701089751378389349941405091092572395862229401257329156500419929769460841810611296326351263919528214088223768743539807959829662070241890856863251621356602549680326476507960738662983824747734054496522521174583010856107050417934030561227617937463354849431694067506000761999396096779986217013912159958160949452014675481451776712183859555550827589842787542425500642597991180659393948672460804735665269264760158632758476068563364540486416533085382442955466073392364345724362214959096528774036313776360394554326322455632109762479731362466373631623542027688369102975172424364931315419122015766391923885436607944705808412178387871616459676824036334309712872684900830334751630279416056700334702184046911467402867438569363036402498958475858974904265683454911407935747093645284146443870288962725287684036458295267694783182794853195074900879177477547711343792444260115288166360551624058771404440175936071191707899547967479458908505821422148673393011860129648725233282615049872822236953897052707552971489185924123741826500816356697677108600672488834500430510357357055301203800538920179012065142221143780988634719493591678276078024144949296851911261743383702436160295564374128281036626592442402857336194878233040917020212818009991101849701361901805005403534839342949840489827203479236837014950781478843803876042331335556688374867160616163789848658511052609790931445088448781997742747056412483460583273369327416473123975439192962454729431740253844038729544767686356804696468935961682272141775318860299921082515385542684208161891711293943029938302828167442384335427669000948653333705740358633254830515845973728593301725098222045128421172459842417916564288187490904677912201588591906685815135821352371694666530750461224962898627787815605611780628995458753544629246694261958848124894002128491933284823870918877055924709742976077125184843366254369003670147053316534927280900025530574295669304830945967446730484542964520310661226036873242592770473622704287524157684355445605258610788298479145912481214478067186914231749950396978128053120515431378680573745099361021324338905339270883773190970302503345796024823227125948086491830934542979831112113255240384915656828339198628681221163826814789218657570947393574679506526288078644874339803702091065961859849290741886769125035189601216129115947797914026387940562851837953164126585739227170694640465087408248017519527242108943097898938084803342114185601574689265171025261034857600096885882457363669080039681631550169943853862823240547029383804639782872223071998749863443758175843734895784316189655681756432655609641997499625606821689993997799093963241873023202970059166684640579984421727553400746326850532573776210772667231948480778523533942847238409966154456206256430139489878988873936360227084430779916256126092461301156662434071153877167104319550213047312846131758119239391348740774150638289311983956363657601058947590103823085067870080288108284709075245637376721937382397276957231060606402777706676020827688092451944019076663679578066265570658934886729391640383417626501173673072698322382316277193294668961545148942791804589953030727941162068404805948189622768731842126323719797862408804969798386542383590271320313375248240319168508770800976778998565902562469438781276936474171578595612961376880742007485290210609658405370203698274422940921479742621896876085545245482798493535218145100247596805251956094330368507066906766667537178599126291825901580099227203296022518003918038168735221142920145090993876007880334312633904068452270852492216533634307050666191855220468908085105759763056669639101555483289082208442429661257082091459898501382537908302092817109201637401901652399311411136465496316338108955571255004724285421006735901827715021189810756423813612952887798979243457718703174852847293746345457953473027908061800220730193675299125424388851884608449070755955454625274280344630288506988806205788411799370477564348771415820160531642016751881813037234047915954021187825310370487657342410034999303231341161217349186860434259137371210324308287556690616273561844473048720837790529484793550844507877809737557274941930370128824974543184058009071425063407162889579352699291638488951493186174821178693573242020411503892514495293514447146092729384646203416375593455516807178656621641347142198855778448331475141036214582981009487793660594017785483841749049010068528735762384846414278236218184285160548750799139200535085211107410703528421205540725901883153086638338291906528307397840200250100122812465267398686739882442575322327440583255574087542798806319904671863557362339546634707778162496415363476074506104948840896253469643234865387143955387107348044050300314478684321284361447790579775575999883388528310535923244115082637866685638682560476632013542721496718335494475489068452091307567509386593711640851275588083477781344007576036131530391996547923476127799805687003697205345645537077398892722445762989531618706554801569925847527920438520229491091598257178620261676215104054907053133240729444033089014973111977300045702605861255466525900225501609155045369604855607843860898798787991412186434513676019177902186287758400456352440741846792325439675403837207472474035917375760347972339873177413993213229168605832174887747134252308324461140450758811736096357297031429523329266946657903870237555798277236937711054872461203553601436991065551612290696577389692001400739095115561841213849720156400168126153314863525666552226344820504622431321219827153477312867134614806936955425787179582941318931596558731061263370283903639355484245550913586839746117420329663892585467689357288795481469612210972268710880818713937084654197012491824438375371683423060185967519397855667157672439052078378823877971004584085744268638862021776199937585165146192083120882989066683976995253859366152137287293657482814705796088466624805768006118944545747138015863819108100052224196508632184950545437102159309396634328280019048437299295159112008381648503198984060712329566973059273268368303033049419537522256562131537544317881358490748428846071428488089505535552899799412065813725219118626205136836213476180426510489128055634468567839622730431027346844148575168349105015820175974578841330102969426636656629280235668604655714696897020167959479966902492512254311969506145018578089256380927206593266393077032945126454298971660366304141136557591834348729811649042541524342492383043356093814233393489350277642258255863110808100894453772474194675640158292745319668126653471221538387356387466023421871620485991580652658881938377568378784209339451142045971071694563335302081232963067827378614013343263543633283026728080985841512124585951836553357697202224143144740184600219475107180919236531445317472990400728100981906363111516677713150489623563916219285620914190859887895949092140681175224299842851342108071611368962659961926688372827678179176469126855409998188558530765967499489015693521785075630679185823656402305988251374492558313971864713015258591228931403132333931910940739090544843048980175150901309684192184994343530485033849280453632605208116146419956972674643546887489890344340286240854065103714837962850049618914570158294636117671289862740862490192236596700446352192042303420846705048306257284711084426192513926076140000362134060829953669913618681544320855062547144138176735725495673866642581892455523161540836942459917924223075491908817146879115340388137087184457993840823196105781792904410230682444872594337108412828112524909483597533983387261958267499654717418661776848978171299509204506152529753646738977893046312340529793493815401348155588831594336480327646127118004046088904664448555174677784062365101505663481450317543705245745305228671354588753329280114415775976682793927359461514077760218447422468694342834359755937739210640255006333411943309422744118726624604095338854829489324728569727493829598797678126809437285789454296450536584933082902191330279918404536547934633965036973475229820328628244182996097780239993776944361215002200811089314353414482348196325509394303765142839385373001534022080981942488463096758130323996744567704154369943124262492623081363290732896376923845873836681355175379663366977569101491194563500212872498167010449982178621760055182517742191001043844043408637674354180695224544155651344010774755020669745159949720601711223301804893793183255807757563038336765467901473574730760611086500089447255648997586013626299528363150189551527589338585385414082523507253004266431976597369849343393302845485000112745879913479939550857395758558100253413294113064194612274815871737608464340869597780819340401446093673436113513365516430037340326981208200453660942714080957912385118018382852394950410202418946333928410111525652989693028801196840671272330013415559579759088138338298709703648833891951110093956365329754169399509026049097908301138928241054636516535944953490211217981161009149471388048684692301984309569714889583047703619007518524496306950772541766123205201349676173184238799951329167017244979882505185648202988035715076151955589343700423852500298994935749293074729850950111388169243609096119598034093570048764741737089071938145978678268261009764937155177106012957690271011418124749088948511623856774713869688516702606417985521056517344745909423890624472080083870945052464082259623997772799729524928397926592038610088045987943123442028922297217127205210630706963154703598610435788886457624087540741544192155684830365748928516808136751070505004388591788452691546097405372096937465518459346495871029656759389554638480266625148494102461336477903532479247570376375404690352040737863077334306190272031722409855067037489505404996770785083885675641284303767704790093252362606150150907856515363904749373138876107486252542175547197809421771423847099727991215958925110749946675382937575512017612026193916038132509739578462920997665298793252407427908899164169365555854871175978437783584197105661904905302254434091052663808392887134180675457306825460437846919457823349148937154148860187226657358542945231785189059098417816216296708646550285718123182252944934632657913944044349123636608504655394062336139125982396889011351554882224112346651456328965869077972533726929369579528948804789445815129174127102309803969519718093568418933739719462358332264871842964368705912576961525021188621392768855553350757797997940131049629252497009309488622924170810559718847659005308590165327502811980620039879703054897248709113179125071007054100309513679314940356983739276531931083814646942453225888480186298008114720584777546170807582336501585768115858888637414156654362470453403577052725754198608505482029506333678449513380381629947061852584571152475890865821238792970903236065462039570047058112242639151441442239443148255381489045751219687295963820816350585722105967626365282876830529424574381739533314667524884558539824270564835250767819334694250125683181600199717170031001645399005010376610873240540123362976001331738229776941098264697925888297658381050994472259498151657322264318935616233034128758012309038964528373294157041300206785551990926501975084866501619614018528270985052171591687840306356459693585120072412940968618240714199364209981777337620229439685756877599691056317588998188818065649319819153256668099416276982037100123468531239207283355259205637474254858829946025813483732492728661404937561004398189415016763583901028014869917945738768167948136323917137765311798161650437941181486544800303442634980746641435776248004705695410088213978059807357634710554220120121177448338927105124468207928162721684401256771102624841068765800420814118981218379033087368622910198461902131697999746343364681142126055490721627945362662986864248959231619082856908383113953607019995443092230678655039509930306098460668174093108888857786874630263604956665188866602590359639147589600103380415604257063795656535196525610718412597172291974995524517779224182867811082391675213799930758225001249670427805342818505215608020797674283296373323195496145209610896782382873905563004771844182836906340418076278365813857115290350053651719461193807544596167691351884384504194246823290947711000732107346655794815720750386758685680329378603847670349833141745302816067689144000669051945353329176139501875327650508617022494047471389087404836654533240556767306673256163627990926317956358173235837759491665353254976424613380882484987909536375132413733811313159889742492379373472635726854243543752764190714493468519045084344770732447560345957396148222568558516297170692642943114264563343232941708199837927335640158448701341444847635403757153288346464537645015880275249367928155492294760360392334560473650444318815658445372018789464213822583003649563486648939188007618584726054928797777317496752753718822219520092597997656079504252262482486662504264520817051308962287248331111090779115062677820091453783220880914939866447662268329472360827563694627589215364865272584431821754573121399314183661375023980229658440476396054570361608105771056799432085755103634104473460068809934473532615661000025738654390204498709062753919157145541070216981753786853038132045013935344688672145448184683237803022708869479489302642389599301320326071140493525960700423821915421423268890141341556388887236771924226021390316672748830862309889633946343404889456654799885541033533751587651836207845206583510789081139890067460063709799174479114146003830270419899570202534277129386972127022557428039258118751286010264979343854279818627356205719970697611246780356127047158619808086861642470365757589801778938751014398751641306868549466693629236977357722849304638523967387724214147413747801159914358603102771596981428203888836339222129491471087611514845958697784294624744046774759968260116113292124745830024859427119080635978305664081459678504953565687059288252148155686050657671266927659712536472470738982796215568290811419019177199580539917360811270700925090907180104481700309145737795893028042236705096104652422249974680128700706649297576840818654866492544372374632212692811058824315708891446490133540201181598984162225012127116158697679347279293999029984938340639270752693614431066628064673654339102917718760394868134414493449867619691580399429095881616262923647959586954471133110955548808164215007406689261325698509897499887891187541127164084842798277996835651204026889175607143777747162528952029977551616144636579556491801907903124737526109002583064715310841874935931680627933589137489812671757386811300816327852183479617234136858855966472917304920098939001053518824697829462625724755974662923986838039814744158942376554965951542645914185088676757294384645182358993762960280542644378146375358004517243672121214158699752697070954596623036841771369732487937210424922418234547840229650214423717453434783671485813945208594569586387039947623018379512653765868554373877661547078123065300131990252960598808174677649955835091074781399370001522539332013662910021676649728441236559231705831726246706108230811949900311751609694128195382238158757110571896370924841773810597822517358666949113468226413133619098865224896682147463292594291515967775460188904029582089921011963633826086059364053847513691120584190991744749427741191126813570920394133074169940793369891421035908189283468678065965635242323359742440264252527367064996303309296045364540693184140073646131465191863294551694821041027927063986985914587015127769521163969174590224267992263838229397712290673500799244444721314169568180321452117299505588598008788323508589711325003020445687843061495607160117530097921211081426639897781144900177439690958973563412905357525537606724768315792053912126786244022527069104940529309218272454417273567082554777065685749163343869417103613436707796747796864857161810267707523976540756634811301975003447201785018759004724586549724593077597732531330441151895149320878680454839017668898274561132785712394030999171906174101255994470226756730315931702728327712680677006415544501886758044356072419652902549070759294016021861501855107845004192541729475246322419740448223305745240821479289760070404949005262275584756068010423665033673176190262733074211761824618930341258854255076585510149806590541893363586160498724281313879388947288358555254704787240899739375063733336623928825527782330714156788537227884570626245324739481859883085477077238597352491232920226533076129025724196710994749081673501535427039172394922113853892057116151808362715467865172339275758718640680915186008037739608083762648525692388735458718291317384157437809061642870658222009229085453615047518032442342896549413878790186318482673263281134169692484016868680046115575351423357924718316252614931712182008244953406034856083160712753902831496972016565758890426644837330102165653119167325212567512488917380312453108903410337039097265552345134425119774551411042758249215100745460507920610450141147510697303322703750180115602828109440052969263299841435020773237218628706139726630655359308825804958684592542795711358118277517316094410090673737369805527583041486534487775015177282906239848154879474286037034611735699079003619608495613392027394751887222022788493762185483834833646234569403669789269788965975426544567946693288347123617557314851812389395570970817578737661818146446138504300532130690197633725613861998283606070212880505305595356463719743564763326339015530876377952905158076857173354822575986562419848763348821926692069607590017216198649406496594867676476234476808765993690371526509630629677345656726324591238198976297659276594925249400938549856508028635617278038854841043429625149037130026467848647761697665009794813160662893035771800150268427003928237114188697956116170428625951674124787853070372482410411891054247033616654521174520942547551874279599360849337616410330244996587102050663557420304007511610226012669015136878562450324199911856917560216397524531066330404079116406695974701744521211089567197460482233559998680131568894840616028945659757207611226381246981658965909895421132270735931773745430553936399956313022761480810715758917520053717996899524160333800718420252308778065247210840176692722205345340955629550509695778693714134432274360268070937033340522408296461912751387214313903428181082623169521936179155040719070686926885676671086364137272740144797281079378384541120821360158536403154395139756132139407788650841504508889302641210571873164354008735563971642874270624008798949308934145052134412484174904129822075191105149271554534296787479138079784659445923171872252558267904212373339287542889065090530061681877445782765509569934120436541453092328344947988969347870237090745791293042487100700196826472142372779713727690959550574527164598356952097870614893674661875612565789656416250139470649121142882370643750705571881940198370147162347922887614414399034765009766889737504196782235087246485753887665722930795174363086926045157892880742263640875548164412465032775553465293653876428140973520789014689499491348685072653479378897402493294784384640289200398906619101860004806171295114957697210996635300298346748937084883354290746142198267797842019691202228694628798100887250665946037402849893789444078654455229446525073455208696750353616735974956676893179838158117151910258414136651804668151060130284095217367396657004654540113503508763653044466175052609515500381235696989266949671141319392164052669311708773085898523981709877608103005951398695496766532271575345007745517976592521928774523986659363299621626593438332880184986478791536094374580575190710760055894702645950590006726232274297978188580873582154057195043122608398963461507315203946318922297502324102483552512747015802758069715242950656035911510558791330526020256731323892978473345352133062365492400579831189194049484694147516209782218188613698114929029510993847158547429877104689743142596719549189667057379584280223941340246015284572862821886842279865297077624447808434266228466244554717425692660277582676751714758696172761899962589449327474101513863192793334408228609386526784289736527019612805426196756426697078815816126560089720441705995190849052606376773031694761980081166090732605736830770935362353711131366638400594734423577381384597724717633920271855277835593722714665859831209102841278457416402557176934314738688932836844719761920015837795146999078839665962024302673131024934217858092946201465345399026638022256234030735204231674996504042778395886047604264543397767628724619392948301272093091014487615643812060900225598121121147086827035615704842254057954863234572452760583800818792946215770186124242326659008566447827787274891112053873525836924283254612152522368602927632973365086091499469691558548895602294916770554143448810626277849028388834382400782245217190480586052937341449749685540075817588858923994149858196113713998856323836174519434511193340061522065201509215570153234072155258904283113859644568020837332760247727187997155581852155939793106751447170541422719029500409274726622205707518857417928545932675161533536793559563123867951124899448985036409322102441770297992317876616782283302096397838645256201796728881495104958163942006089156868729282501665037440933816536068881969506307135421985562121183657611705042416808257851375430614626812196686537829142303327748547193945110002743634504232888666751356147263594242678246270863963284533303570843710623521632796584943774129994587131521320635487766604163201854822306253873510930721517276629255380000588563811949692524362694933858939933254223473070467077361496383942708722786221498354719708812182069461094327332848199802239184803814151835536210048257854328867865012353598699330328554170751142279801984009604794775857480573954694061791138496314974147343743217537005154213006497556802197173041624922424521780827477498811700349124351522366742207633905939770863970822213436437009196292951718454426434258153699892663454949196694515176993104314480390569775848559365061734910534575570703377150566232973456949810020996402584669999963371496019173784314694852122827432082040212885021443707205409930007852150723498005269469868137956760409970589402916925297298263167562371006087084292300068592180792054938256269959683758288429410695180512494264183942796882128870348396778452313474302496890138333672426076960916794835978377831635197923001052123275592402881432350681610352890266670300402849569037602465801368308216336631071548566924114478025715834701458364074205368348504820505815015088456427967306237467643449923659160787062659666094790532320706150942036452102573547708141176591931529709135650943125351658797291174803645986193409808947526577186390890732041139938501152164069495075227278581009811387186618141760659618028703097150440196463467182009518476744492712055318302415750627467276095433929299859505390674083783115785596316758950608806978421985203866031542331170025116407307768354905904059980057745086954588657134470241060680478293753305638334667515769999064756147363774687594362344342465364204809194353474385535815100339741965963403734230594840437514819904816819960343853716534063575529128695137779702956448545292085943216994880573525530601823370787141247185481992708512275784388578950112682151701046477638722986423363321444116067909576258563024215858856848814814384810116044497617710566834289359679650269033564365355704382318968997900420175948205116612613845133725080827924660077722584762545743120881467517198818875902552011051727532138490808997951660386673678694827378495513987482824851103798757033678311610956604071430141785677721005947755287783755111019941373100094396318793254079488334734436454187745491162222702447369827628745632302421216939248890263599373990958730383343221270517694815666018326548341915581364838284971692954019141400488378329245640886304189967326616580454750310086497923814021989949695356071751545493146814010514176284602512048633847521250608271927833665675651480304949491779835712083037145280753844769542233680007008362778982676055487173790583897235140978405636819804830103230953427052157903704327498022089843211476280800550826772933841920848172679917721831049595977952541442164877285684958451902075593950038326682337281081445965404398201319065673272230973637531650078826461508321859002123153499036252284905131187800213809851305211055299737665342006369409578094570082279437451313698696099524938323518096532054221563038475538727064601358957071457920486004438757178386071337801390148901167237549082133235735843339654435851606127590751074646710106951355352349370074406935517768159399289390134336388452296890205583676299985196682821602637424717712955635450032517520642902270509078750996289760619649273812474168226502394834281168560726884669654531616674471211449769319644465263158896758961374442198173721455060325032711262204330124070336484405541491325855395606101447033510577913911063640810011693359323579689456044483075533451011696845851479022947053175157751902788645818864137878744683417944135968924859315878732103164332515923726038500746750378717868483687002632245270309521728393897370055151628654781415852148966218180193364398740227128715892426042326573677343814174579247041128339626814704255902213620841983294657334684701070920750724269395767730908146274382509252995393854748697319452425538088121320921229358226666106653855705529761533483584336692851062417399864212006526654134997880801864673630250692893915162537239822306666639247588120450349552086613772422925330746151093227374968546578468148762378461994323237137912494139783013791388408937426271637569871899408771313440054343186245415246973909380771943308723886477668696784399049646512888998566474348125551114195354841038115285360373117015593200167794334109523483572236693637142124494499136510526067860106600664005416671225050575553466210100770307250104857073285141975602843300764582402207337599056058660937350699686773016465400787453058078998562570686625439279229252145217296527887454802918607490103870749220042420282633020391305209175682590588096970450056972886616967090280329315301679010433428221971199070343026371651090206119753540077730669476646356205247272056448591817290283906915702567294786320093871015477218104908859267797778131568152093317185353977814208147522073810400687189282784506289751282399686986858830733909248268522412280453987572379955130646517077310709607004757072211380229965299005724060434281341114628154870502303734332737671081790373537801817362032775810782718887883410498339687901203314272876616923575524782366594998861906689721227895917786940844556704846424642962306656926884902238770050451266069856183423706611354667139382324234363919070824796221807058656156402873454386822655377918747557702853903984144899672869746432656818803028316350597012248231481903736795581112228681853136830808176572815769716918361472318224909199292353548335608805421233128980599069393762387368133961660330629787618591447169898726524730537535085132986480888221084201796160756082206312214646078499732716825924312934519771464785689852903555906791367154196724393523411845952622443087844196291841541887131356621683501035932203264910570358181640048723125756614472344871866249642468477517671879798922489831656666272882605476687420742692704374685072803322873879587042551625521116780486346863461628018961224649328681823131176139591230336725748542187529634230087924826708001541029821781579327750723983698847131719561673106487494837189943937395403333323795629927666459361565233502176526230062228274489755756274085325332591531034525298893400401730591402685595740863566103055151691039690030568823837557906895198767309193712754911147035891089537579235138724001537747206739927308792934831868814119302850778243128271087976527758897533116432067801204598504514244319063269096632746124027670404217436544404762260815599194622843704198089544725961383078584761943544991318573764914936795175529916737794142297240548149336758405668845722110253332575155216078204426483334000442359582511139569384961122462931239123194829160398937694127085461638257965834087082164385012652567481467374073317141966686478440238543884352852277427668202265727841082633963633951848696577573991215409632728021503641941340773767715834902258020715101237229091237728305346969633061493644441344298654396313165495350096618078839894077024933192935534694174592905616934231473202199151418861980938025393391572132761921419829647593410362755451900163522248426228368405449776604169082551975207095287708665748981043138547372996665041563479536079661399666926780929510085055842342234187270211023493391127484993139824483622288722096592626241702660269898192825069511771746085158222050891157393864892517132387923598254092110249305042611476492933110235235628182291037948979144265312915751810167620196543010679167258343250032364030680581270379313543903350714995839437706620185648768126255017948315644716334274734878224272707274039324065206997196723209635280778752743736046319833785327311966395007203023241731839251481843644731561800519988793658561978548065035685595777861834123919649539116079593341648725188781805014072735328283268434320228301604326282726078903655387587847586804396422240512567944797808279677442032487920550179960834085002140447284305321108033329711134544229099958239556697964080598907625718901300053611209885305405879001532186274945030181565263194715801825109181607664718243703191565700648570131165391508662670580643195630197942192412510642724109551892027171342200916565684927268019546717342211169926295610624327698795434613322239626889680057926269977786513996145710617133248958814114353257430156977329740639311895940971444713830538965254987271185485226863836498374014080813915836841467504213453917632771604638898044395044159924584070418126601175701450190172191259157050803499993534026258091372419390648355288207857499922742628917910233434754866027449227718977001334109589680225335994319865599727848891266101467388662842777964476427748382995861815317042341418395168574815085227715409662939850721578766950616676637512919874923591219948214857134837907218248998360687029737475978305780820545039666686269122467857477916086175201281572584081051301655408972319233627552437372893031215273916213276732550824384865375792023409479708941213642117828273270738540570013626447377992434475677219036825778079699921274289499494058843208258576789131122894964478809664526136852335886894102072690706188287246004730961782577904735852757868751785791027498585126640417484736117172999522403764202133373363574415899557782519239487827607830553414781815606578275618166655359554429970268495257947097849135675583012463502538147359373597986112381730096581131529447487243409467901677303602424467901782892132618389485091485772205939742669870330957890749325382262742011363407868514418099421191459364675823627218117867619746359690610167201856849153473206566918398084690279566235347399147303020533893774529991512310152650562613521864096483165790301317709849636024438053030435170826515980761173572376213261507821181026901219433925728041804108277630878279664770913144687400136343899689068397589843981662271001619922687340583028182923609439834901908920811493776645881115878869643342070372898778372057534800331109835158163552338666176195567794860267735419730344562458111450617726033082420133189769074349620637770836941858455916729502237236283063097087987416376241541161440321308893205596220928333995611340081733391102459530174620216659558289527376920429262375310748002491676577011673280756613873324327923893257569690640277049314439489037385625868707866358867771503884954661670720202536460175725939339562251588535290087499778454338468494480368191785417961559274277940108051886024418248259171648636572874805044186521727469942097453003506056139999981081225714236848786967077221832560870436158475665135745911595739650442150162274501989295262252642471060671575814294617925237501909421708322602339432920231192881259186756878225792886307783448653217569873676313797443804625765523133814222021190873928193320897445637589755282549040438199849639616894013691211476810449926874395763723290364608500718025033291882615860531040575157269519526573511677763145551433588960705733512136874305216437895926319316797105453614515133986866821700276631834253807717098914574810933122555405997272792902330054805219820459566718001508265469742513165351657392118515647033805721016470408004862616317679690646380454597939935868433772376690365814115390220747092187248336979200867145339857155858573961987750135436955441033943731684224303540338571060812621302447727165674873455069712710381297639859637627781067896019751864334571107763843962340325594987746030024855532574692327446045105650620793018080459775696946899397412562675268061042586242813117209759338824179776398873638985594469289736005078526011050011413051395303715785818692710232122677050917515340035882671683835425922267522842253677682190988307020388553085094422523255555971002160290828877250363833109874355448633851256756066401288671313097117858001115163261217490103117043933559874916055780758924421154992531059925447526062246323363622187286357209842480151798777612513788000414886985418819432805470754436835174411017911985314658519046900010410053643243832120705379629387972316774635526111220389305357101056874155307388248828981132400160007843714174914167215786213273874947136611654651569721538004399216931976680226033964624643541100461506423078736144221950721107419796699503937704304006753790524043397935858848574824483774946161433215129604766613538371082382934047996636911860839951682375809634698955451289681029734603573847839618899808785145560955680850532176960069796881059192330873170100289453302540112514449994346919035894893389807092587510709137477717839560738712567709716053932653576135812251602291379644082855320084318889053732938064485084232326818495036455290316959778082511632032196564783742998807701673267353875764738857638879735726787998506981538632010453801877654716836609359083261893132897551181854669744177577465742343517760237985919101686472136201057423776482476910355507880215595844131958836999725141341686111797273186109269660217420823654765665149039673690674106309767849976019515214088234263502569809568641853083800402557043403352802544938207411541358640793443223057933240249678146368589898157596993692323426484099758945165097917186586233339126394204912001944038170586076313346721170431268730084895955438234556060490098411746794880090594409251997672473153891730199695621833659647566538102259758811260188239181613880538332031271350658586041121475319455696231392986966989097202863572205573122814432324087239703008917962173523137722149176170149851933561866494025158964628184794177460069548968486650212764952591360225534877447392816892916332068658561930548155796712709845194050995645652832072900568332867172481632173507357540571528468298362444621444515283419369708282972561457962032936379462102289753939298816448245074476794073599821116635806095627312719060467245021076840803400917988220471312791334225740092063115938451731808178348701099133587146094821395523435082108736980413079649339891126404512627509757849909677358069095868889735632595362570281446755876194417477820581110261405565081464083567486529555287495917585681598262887745321972558297191196040423591193781940036593074479332199636931975083607691282265095172031678136088125084999653316275343877973878114673593469079424009308526841382492507200336170322413701613456221614164363240563424210784211247553991651656615265776963880502428736386604879634668806674221533539408749109905282796407504712375918336564587480236180882550034368115724528584775176534587724430635825564302530688444259663186661030703278110974746643952948965161736059788212851215953336414744633496743923722979584337067728613803301029110140575640080267942025873786527336940869364448354970367843530756751586392186959473525883124966434514176086434557713326974484687691258379149945441067316463968565207968599407016348449307590414961580578353860325881828286700780127086633991286232079857046401524755261286834871222713321921225076377925435524864147233164271955534055598300720120234271468893440725455856600884639816655974897372622785446669600297757245739094045856630128788238658517517005488332171808666707862854311002392290400404760626497684568268212850068832565089304088063035300628733995066177195556414556103656373526134907575719643846691523322622978981830260536765479171452561449383905103184898569017537100012395120981672674073972008997566817809768970940070696676478413505659500220297499296460688001476925065337828443377149536242021444539990988694493647432391695840322706759002770080856063001571295709864984441573343527528488861449429696250249014496001145199238945993129879146728585667179685802958514531086019865898821115290584108449065070343504776471276960145653525133113536760654225569268735638800512900730548813506141064109494346826339462017573360789286389631066202215566009508420901411674203876969164070016251254336729309885160159428709759337311209746972014071255982028634208698797422646317471584407580401138762507049554233949624572176457036084531078688500545760056509054319603331622393588349068827991610691218047293127796140487698270949204824770510597264460094588515062558364736656639486940599518181476686185355873180495864314762485336206224807421465558199515691639840959184610518516194932425970735398562192725020935666133785236370170759685772094426391468779414342376200754498724850693209438428826795419723272976997922645052622117965687582387704666419831459849391857614619083422863095769946362478451218540282227054609040094201617337830359722365357731615418632789885556675185259180505480007798776154660080911724443362695867729265452876692982848866350245727195539451867190487924005894564723587834999023333589084959992419296124923627087524870554733213306953417724307122177192337026112729123958170571595650154247211813425618748466946074653356189414601045639759994010428349145748058488314940794028431261117040263578566387353320501871288084291937614454641534350804417082964193137037909246202515308157187605395749359202280254465944762175557483495450335958381815496954475926483155013140687195956753339905357925553929484769008356433752994723461084343583658113964603287314622223333000385499054085799103873965205230626445039033755424339198208056030610879153243472980981123474020381356354202419461894132591690575748593371766178192049038562888760479193273809945735454323758869381678493163567459972353776777659085556430825084588069167903009677183861212933578103198010238510669767875879116906933301317837255000461586521515706175611286008009760740628984984931066709044758672047193013409784594718746341514203938139176801303014202505240906404532083968572156991349328141328648122654660911843597325302808718835207950064202342703271801448999661654417574678581746903133574807421695263627874508610395216022457216600241338611654891986212746120188107574448445614683801092521635781768002699606417298150751486729519498772100459580481847626873492542970453646788755300677555243371701247101964329948912153818755754554053837490832340634918163259056214105535915789176822083167966508694202452386703332529754322644407928620462725318077615397739878919837959216045584742640269361114277730074728420102685282536101011756374281599596909913503697277457668212936725926302766826593267810394291083683562751680389719886451129468698379965531220620765247748612028397649684985904921687335626796441121334153102412093491257239110330491231400194032323598698655711554468994557519235543654046941239541336068104587726842903390418182138616663920900670819611110967180825869990291266978195555433966539760670689185926357534911231630111478330489276188333699886016218032981493513882578882149645243681839508201704988045071978971823538727724225162882233685648831832549837221540075590111332575266487804742851851381515111856774455438412994180330432819792660875081738358627243704884861535032132636503225652946418063950755606015720625976168486574888256833447990606772186204053359565896043312933216980704565170359779800654674240935516571820790530273250674002928110951845561313534838318188426627533589403127373001793585375008344234055645326753390790587273095845009492370994093909706256335029911654240501751895767959997312014484743816055126577354570493851998605740876088692384354349996502443874094246608104857274770603440027048934615345943855906164402302494689756833816503252337527153929021982126360336727825121155168256358635761105265293278688035542097192414460750435371104472361793174591765859404662578220224022230447216966826084193025987819862073143797714309751480793570758207517411837437721110066032664687352002695631403516196123397520847594346424352432313299096599517543168223604271171810438338438954048207082900232682478713450308058319796999341597622025319334967805751762222038982065152903663668864404603386780344768223654696938777284745622470809426167777253184824489448640648143011498048644112971613930506083755958561809693472944995264912702682551176911731629788717248667332227052052882831029488466805994254209270978844523016317639557230421130551154185975432044696260516278605099380643491088846985466932790437323380873747766747165378616684460467216497839822353107026137706272764997329527919825231622039172500530900307559706513825674362207110667269958963621446240742690597632969607324267524789564262380167227366132181959886404963724168503003053324228163273588790625762266209492457871902843446141924357305930145029299775483074060522260174136066060469043167519274618631586510723263948981074240141197442895112484131613973484611717872137408663360883192751635742186476187975376457606850771153760718893060044740508528287835720066254704156354535769463315167021903926923783663221001178572194107973952474582819875983648380708991186545625817467441116272898761364242574405333746392726518677741470402551723666955840874649444039714522310994810625127484860792987982713143814054633314297989067984899989592256969543173613507314878210852032528236333831222011338703112990666182065472545053788866381980561997701992025393550958675511369482665725884445288574821346132782212330140623652876892539392653199230935670081635608585705410529645764392016275331573156612387026202967182807607092283395134371773728901573844136611937427702608384368737581167968451313472256283603412052547634516562654395636441065658312051920238978345774540407912223368462435763488234318696947452130234740018070262960754932499039530639781844618394522806913399737670230697549486832674104986157622762988284393753158678136910698303091806741971491808384111417613985399274696257447856574964828154458720428235224591909007598104289177509385952057967510174628815773913181011585874952910066118428212139104904372407724455769567464032463758628157497547310305009372062637515022720676032788025830432613097916646959625334982518003233593844178141147666932238127083238492131908440992944353568864369685676612726317091760183649962517200957324644745839050252065054534755879176038692468892394500908296078699060507914837495811442027471721316027058201659626411804182836360705454316803847730897761327125353220805772273787158133561776223173662340256815569850364662669163409391432947891365483954611508520170764822141059372048181198537322662552442575490472004258119305571616410217993804473366137249620586374172343556368395707654555130648733328429444654549712576247573669646485118798504404025910297167921001048958705948882061602971457248350260409929558351824237517162774060763478718931252947604649537060125294885729506576789707483184044260296392595378393344079178885212408921921551693859406416844128771700620319210327612063787006907133384205300854836213379934591985229080131634796349605111749540157718135205058037588413803442276251157279466603539078255265152481352483385840046208744239358230973403249871983937889988496289682875353687534716797551396394646722924909097773794862975502434677831595080839381452864424908086612908140618377601739237102170650974793493017735551790132269062185960261596252360986370672765970617275898501132135950281712992845723677831084493666294482567647109515767292714142925023110640145054404531217877777774006108256801587709190940538439899124635783260607222462716822435932254342353084978368614847941826376571184533903585999846235262785263912131265092984206026846965009709896610215190987261031920153318891183712862652969233806678157395644660079823450557017239639722292963570680470814713712597124849017698476112704510611489623057928148781026573684427473476308131315941812910031507153067203415341124827383352151705160358729972989295132441020234301877813268908027491279421263715578241026538807925526339671976849568666981071360339221637306360946257996945596233227158671761653447677541282942150907064197389874094823199932141815298453715125301158196687371550367217039827439666568052319959628272647957333850446736132207597971020284105989586112249620055703129701399473930577651619934204359587279461146181094173208991958021436722509934794118217161342777977520403331970078716814823334127511013693952102423423690285160003582195427204487692373343740550546012019538589501480519560863174718314107039370062707357998292404647051896779956061354947024992067332009600871736661450066554750018243126459605521801572757172753248169755237926371407751976669179738145043505862311597100858462581025583295172740277177973398327902056208984572703023382706218216863695412636540640913752091945694182340791259182050933906606366082919351279099097478123786605084027427910947211848252752000154388095371399038470460741582025629933305642894876137424531966743842022305644413555089492079927153994883062938992123906655870938739606238863561995280533917711788933841262751718239968660625743140190281498731184414806395315238116983568237970647515153908128956724396724392477889564203905281479344102752207400534303803788197682494946476361903444319720988643721700008717089395488876349555010885532677195245030661556754270982364235318921516584183125744368631383675439715693106386428755589169870929915475015963543255542668841064041621893465721021716253236058928666292312747992299405242762912623185590230151772676408614387724894725529564373074842574523659364527639102379404817998548690286032990920021840300962605093216584411840485302124451621687865847309096619871477943010439760627354648954872264930147435813452784991412741878331895742458235499886895305876279784846279674290159507355104221541323852340982490853401246542874277644165508186467507199796587326240267265648487701295805571734788515649058920137780571638092857805145656652031991497261255869448250033966552774006191235824751774584990328965098638702370300261357057241814280192471468444579342692932805505489639630796417311576989509073450621804371988289086050848202314434272428352181133362893024113578727240787238933490123112620240164038569701859050447518928511515927745049151561354348451242661747351845621659748537591618244097209382075171762451669386669710838055231446646912355493704484581415748314559891295680954921098369101653858908715344455224839795085247149889613043476111443205842582929857156239454132262067115003247700167860358029436623268038739007257382419913924549218309205956562768302411498782683537941254178886087676600683596403707561003455078581748037110026687136238719994473222688725618360094055535912227868226168456266354996768324177887601368655066685708422917617206324970392325052587638857633924983985843441132992429037494325512116258239373894894945864237293828927405612510840998252407632044640773188667129657836107993582830708576913309564385994471263794059027888573991229940157465984565148164513236905673499709151693202471301091211373944800590535398169868145750072207254741054812671804024911865983870226780937448444599745715305955353477849914119860676239162031239690566948012688515521933628402053521334268910038230605653864474094145756466525072081959862186048970196978741357768706130552905323554878050297327491814031418529921595620500207556804640806367284970756131975627815877382106351960824385870016797458923081048718784420699313463615446545113279468987168721216246479143614829813465989435898176285376295532122782519417644459749395626863387471453424866709169255014909144997141182043453094248598794630631936177520814265285981536279281237777515673377019638139842124593882798897122651226774953673034598954005058549887343495199379386224605758631162596586049972312752607784610446071217666616620291080647374492777931359536005371807584199039404734653877940189153777524131688762394674965533214454723223350271885376044357824631457089223993347418849364944382010254701630782411166071285866261825389854404655269755200648941816058827779849068643063291767970317976968460211490317500192927334094052021267067872709022126585446741277246652588160944771187017532853948362304757289110700358186132331378944307787923925634318713690610004363239523072586137104860424200356613993447779813159032748852450221141643815912482423457657555691071907963663131039306794417586059459766146228595521254510118485588335035859356678747856624648221353681677766690128867748501865495959314767381106588859373355052246666968272700045112342839313628826783095359733089824732866892858033884542498491980270317769987996129461710481777549040180765828155417224289110930598701203784524187437932160950531523556374000869732777291268234030481642913733250372693812044019067752618407734143014332602976846621761673486198888051477424718195532937996409293869549077479107877267932694849910580886536739093594811148496840005005928408782562898257349791886688385668065614506494376697731446198451678524980041741261123287819537432046066545261632812703967249060271758211272277397225962961501419146937908814162534507228360510621537939532242894821400501957344051199136693520982534385185978774589159229599975657359891599841505374949978272085689235188783275696648421608973184844096266616823305055396626825589606458316315025929952570372637210830786287715664195336369472349858137782610608655758600484269664861491909246285115415682757616965769232594206647565173804715182964031112524594715694559567579432923960615993518630570932721455609492843204190217620654463709621177862038259304149169705796325697201175699868244637078915199439667617314666385047306394529889713452438206193610323551765623857620006953144958540029449201623555846722496894405199414383665655002050919328145273292998952985302593234833126653006701344012748806630754202863297174560420952016204501924588498407558093192557794874104418523864281244077769137485793001223334365878524552060462746085447498036774000207852655462298154270210905363104162664922082667529368564306920318309838877633083573613879697836791437258717119440649040880990612314661676710703861142459805934904120852345646570696338410380819714522070535629416413257636127074299341878577502360719647086217304968735671081169080295689595667996818853491996017647165862217887280948184419995250873331507832355149702872825308575647749739374511385803534555459546527187083417249888776794945899361647976122414559939897922203090685990855271543451981819427804999799104048393202507190867024418438619176833123753023888998232136884978602624443513472245399885949326079220943586407816038594831208736392865200892384326398868943885203691390264086232647807527310392566034481655878842561151337376542630478267208824411959154235332391798032078387987236072746785138470597900114406803669066992406447558854761623610233856788871190948480361380035762216927442594944734112642667522790550864446198055911158629116501542968191841361384634282492452381415269574962002796610898691172256456296411167866633194074210732564013749359416182603032421274211755724828900253635643611548146276302831515040213055910380896623603540995789768948771717840989410386653705102539791265355535007259528614912990834026888518050363183628439188611539879476038589041318648088907502369792273524210507594482284926257166691615513700361796223085464539488860128400511557868079174491103132290543448834784962672909118787186217195123733319724300458482390203793046240672888002604132694982358772332455359643961654904280760130337306056747918898021194029169484680795941317897318268507093355121668070794105704039338665841735757101685344929428635464690423221983627292208662585285417221239563188225933713767341576238744550180505864262134374400626495857511690776973026462999756972558600424253276251199878749903182858853776141940557212875690016010471108374262097922232374909940522109721116392845009107946601596998029948467947305184804060091170608313608936093228313574579704329163230035067313862968594143389692810949146398989737746979861182223535284519554863176618545126494946683551942582275454210195756489101968790388372972670030431886710645362998534954028114806524295998795436276655400045457256554586594754996493170787276800834816212358053906486080960659221098363708752225646817608684413705599836600539336564751270443510561512040728172732887826801335145235469868036324849644206019171686033799338889155724691872739424296900475007359445726300789477861073726717780859339375614612659260239063961684075031932457743807131576447411037214782489816627140852560483810942713231905396079494838379664516948473877533360485707699981744051372052643629433752583364848720249924956064497603254322601716611385866258607370020078692395164560285586337156166681908617216181726947303357680913270671463960931723894624441692605867316917122060713202448661472367121352461112573655484161847740368407772373386591919800339177307335335584464533222123084869265483228152758842879958477351341339444110208266852645460029100134134075410943520926645466260126680291795592340259146184147010492834025360797050947837156810337496790789037597657962545229341436889321139689334882262679112383649176073520747415757272586238278049696466505982652492915955522715391846227761001970020486724251349732719944614086035044392638340561992534127460822101475497343145271619610557499394324996088401901383802316975240788348691603287105808362858080568006122958991416768957736458287339285548787313628282784453308872072251263802894288527492998092628934243123675316620928998801826606511816766342933445419925853264160500060426853923394013754929220045363015599855679976858026299665852604715024790181831832281676511869325618973660317113614068312130137247389699687815172501547032051126505396687537622650402185553889656748101242942771428619514892441091695327987758601980728251298887868060816657860974691804848748721913160319437788086740528242071683337220919804637286748017057359357247676575660922358196505512169633251562181770678115388871587750216977086155249962166224365249581113341854025674047385815171827301696603008205637572231819528836641951690930185822125682807872423332449275716249146571116228327862219764512888096490092671904734117913104798507865356128876847471840426618900198356227084849098682820005688662138529440684531097229832492049661455944387643778130550342751505062840659178396078424185452267340261329131072751716702326984611050917516732014042296293628380091140930909415249715313190960326569038023622381229986738432295224957133517461516767753929391266508261987992297106090419331451066281165658796260190567758554474140311082215767934579098776005030523306251627141209941581524000099961268931535833023186442855125004944104181241567462863309679483110546773196722329461148344573603999533215737274215036843192305778054116050394358709007085128140676657330706229013520106042745188029352094755411791641926031410559334977601521751080539015383444034792586912836656584690901403041679720911743427413341698439550897398282353848996419965314115934825827526251833535757920988195838423113662111032669022689277403797202082198775075770031185396062176493914360542689003919418118186673646763164311177128609016324381576098463103850533263345900370494658964018431855554757384992649226783157395811526890254164547228947108948033493970095395510918451536693220526258303526060864669229275668676201238952905494938187598900337032210040040591326986362524538111105107456889795636458269790637282199175783746980335008079159195341005908421396107814371562640353840828644666024142603195365233836762316919977433794790998816833729620867252864164612871046237494621676316341963623646013797904521180483684876824074311357821803681151290176061495568349405109944986531036875100761691895369898633972835809524494214474954666215077783853024081950048934195828643469417124615796871638058105080159343216611761266724851720722254911703409480324512420538678748816889561288193852176346471807340045712420472158847206103842803920405100954427250252741237059410498532924004030364676784394360109877141302747017157503930875185524645235764398406752290089011069839115478070437925867496053302496211007787549572938806465509959157163297267509022448353022986452344157786060024077318592851566000939061816568941491467469649615868665869572127431046059520380917583254606309650934510635916412265022733534080844204515608992426061534761061479584432012143489355001718894953700930065210289828430019006588554133347392235495253621475156112916442095183167703984118634441106048859991764411424671961316469168997607618617083086630918677122633130012813131909625566046909876474679924024199614110738303269677483023163971114403231366585375032288025408840907374918458016123435542219198594304314132592146586128135798914726350239146418647300083168851126913548283276077488064529828873626298203795355501281018147883322597864536584598621040191778879308417390018932225869829673641399481769709008046105901621731243349855989000175821704420628026112569395382169969342373294037232819373510778654823290490403811011438021799850981446969505329380587511340152874102975208764222460329998398533525593178497169482225761924301124731604623251704943072529348268207093256764288302977726012253229286116233102934581800221512261675045901175133311307796163431889754521856625274462774140154684244143831619663854521690285845867569396369207968061128428824516284608259720001614594049197634064942091205874724718031104400615154089755021976757720163256069497591067327983313798841161466511322596321732545868243770941158333679888620807042867911701520131161595916600485660555956411842191264496271717185401279540805820549282520291645212774307072333741169758312074801825576626127467387405999132786762870058531992298935698275124327514536025317917939857933875256060730279874604186327492584625234832193436634319422725208539870204753645733030853817652352424433848077897971493974997958359710646633105849653513231569570202347835607644557139796287466967489447850537331061900285658429317409187118989481834766201082058648361819873862050434020701607513698379366651437899868189846032451163501980199615545398419530398441892392167920482802816812907238888915950886056730259120897914042599212863438014377983566456921530027328882781720705849888222484621001875456661603858823551969356713947400300312981679507147464809816377976175257452315280072389157330125551285754254635792021747243003345740523803590500467130867676766417473677317196324197841074708625533591380685406073633066216219352162189279035031390672167762272435593357534859285917387098536243819565125438455993397646750604305905617771699625567363200867717162800644701792340025151436473798007579184538121945895915563881565355950346357295018514885061551315058710362147000342331157509852242468485092698922815652606064462580249186286122941654643051059419411045761550570616797185182751776042476593609210846765883723863699254111926129298071985679250834060857899722599830891509931043163410009774057402070850161538005891054026492418422304016447216365286303527375393681475600771147050838264645980599257323327400603278761715056720950144861159788319137535697069785376976297188777757256716103913431990877018980938600735813233069995339590976247163084905490517343456182298937484800842663402469487770518661352038405149501317940503981906528194937859501776475711323020157496409732753710062619480370255005293813825054059141759944477949429468880917233612998345173685585339181880396212867747812482291644389528417435060469583276141070796510476416144375341974069823205878154085354434556064099955867903961331208161839094544126148299431327790999158859938983482257058794901980141597497406051119737805290127862095954721879271030278790639985484992420498635511273315366929678153648864527698358558981114877835227724755262164148221327395377515621225737579605243378757310397713877967273316346073837230344835406533411351688048592744505381513324228306014573139318607078586478202855335110946650557390424817282891101603801454184755855286368238403230798439531554730868304189771152397702120282707019722085770955350664460501836313164966239076884843580534719847684126242822094674504163777077253415029679518565712779292513638793259143304401526615296032016596357973197574869738727774835286393784994514204200473577160753545434406464614945650284344593856575190320991911846979547449180625249199184059639732201563641849804033835007208141593460386855233522839197571721660203948838073355045765875268976621622788944504265720217069092815612154346986116720831328763200661671963279564646957842337518249198222961791020233101404648720543934904958017819049231631027463204002664337225342492824449508116019205153915311085514739541459953111598396431711951645972006437447695338922083178290133063483579010963956333081647419836672660377383184381241854062010701725278717596420900691244638232912877582372653828627092803023240630978932539748451092254324666826815231980441517541392517894562298944267574405641235839292701441215867155605056536215051747940222251267514030291526995489580115310308765303428958256928256214411609850203289187811452672698881059277559294438787555896364668329829831076289846310458822622375437936319540965841870310509053519676247234016505090398971000383964153335132483778074890248831333915071527657749148360915627398799833969698016428155853986051888720622554111723262449481171251592676997031949942780261994137150237907797441265429612008321552973807239413751483193121830241227849359881425736808605174590728122995977854584852727888700847390440942389349053954932004851706600655596521222923748122262748122998287441723437524560235930066766561946967696726001708830316005181908204143402862290346957953681815704333043479643178469539044385818255753844250288674803471914508021994390041755855201468327803750374695403380528723991593351344154281836998998765283172188656629672477336811993333610270377727417937422517870017832350881151738044988632881263166055287359412523224444253599362189261406771428322646649917932915757010075713967160483382899175578204150169904474443677527419999583992874553096576341901334816623033265707732242375711403980995649001128980193192724406192446431146539507219977739455339568191836338271822110921805441192592045077791979451177583134665232548985576705002230817076247862946514921367488893980651503033404225930153410899333784987787761201292766153072648388443278232797150261630144727317209175739603428617325045083225818105122539539912826697517093549876532648218947130990716602853248001717170992008020287382994566493461073508145245080174150260625115090813714765159126136952523609675308000803095434543801771957352115774062196888836006963523112261103356328519646536385049932787186950426304689720337862839080587020304343400894201575308304622045511966854520970796155158649443535709503456770773262670571318497583993697504903088466286868050062357996665744675413184107523656081442218884347574476187557563693714986838995907822718836837343523293928972141062264381596974323290733407467000696593994993969380538671745868870707378377068915780826037276887665536717903028864579230667617194024712778593350195444435827922480795551135401552677090870138346441494050337973926994579576962764692459375178270785453649053865734897174668982489530032955366762160348583214999927559710422655544267713257817843606295366060654315498260256446219420750378104489036124684129288106611482634101158500635474028855519682697911550826284781170293081598227781970371210549187216311977479825852019951437784266695031821437796890646620851855286393717783011014311441502776278549940115466700185179791214119983445478891026237765979306064440406033922721800106091756666308490038120406378893340974073794366478266617555952255791148461047960774344117739409625087814172686495836646288677135718725043805498569758480599068150140520736323164141307158334972771819725570859956654916412391894797521628166077491155020040851757168893416347064782574939986520253461895630786671032503604701392021368742810643427306857985874149919606651118201927127434806399467322341513132149565589605222714985024574021422435968788052687630075833557069831139910420749273643314540488997261141757553045468351303507520528118426163624599397706490493184850712160872393659901615432479868587354482452598179000704204523009709961211213296718953149518764248215462662363402469380684763787762540491223788286471993467894147705007766306623180861239595283247396967367881737157373368992874507533270033757123396255730127839750903659298740691816986227076456394772131295182406902438113009720242311688877963474063084589897163097351440928049449802018071354881350402883072523187425856832282748232265977629322957110177847673344574502859650258733464545310200346524744943213170069127694493680197541719700925916175513202079435190940672705715554186705527130168272538393738179916279271120599957341336787320632870413923439088846549825292472010721065726659352083576223573804680843249218790659320493225918690557260094185195109313729700454045190380655540400580174390217262218344238459004590498163286027911228025711187744991384066066062920341770508428646894065769059969329059670352933960260619125287211376360547115038162876151621802424276088615325944876386437414922739962542884800234462168821054526247633877708881082948994978338804124667448349339278148752375962226608328947250150299122209950713215005380719957116651245759741260112049180909528534148454842926592003540426302317481455528038047374859760593406461631586547894294957435485311241947435459974271086647338968501757223599752820314325440583650976989179910169524117854140252708928190078666456353927332080758109348179034194149011466330192726931390527217035430060522000345065183724223844194824698004413584653353969581739100662906143652544939240906501672371886487920913518228459445959833667172942584195987715192855025860223281058290407491963451204508678180391315355342222600025672194642202450426869004435804160594255075557408462283024246592029256483033420132472798623377751778751409372787910456144934759761150843051950380729508799112456848020934132609398858692282881081267421572181042646488335287851959513619133042782518788580301394385289621158177218023844891664677448092249063822037778005801930069912954396455577045040649473575112125587464724239805727893017424734509143940228880329801325045134496634461275744148340899840988907743210805826692510880210345647610476778865250800308301763520330150634280303882420682927095116552424002802311626088792377497794444762182531569337447600789963745929675957137072980657579768678772782210255437118650048819627878950515102433081863236366666833714052749225739077778825107803914580722664411374535966832297427358975164157164025469000265860351724749785572750542207095083389894959662202873266131074856601771863933575575161039092154066544980877471396915324502690750130741754338652456552624867346963119004861146905426522005323036293408311499399639801847245723374237186490025906109301084559680949030168123157143468338873655424270983580820515293336106320578442390591069408475266088097908694387054955137535232301275854404630673722837731740238859835617957509115452980833635805450194997887238974924177025184981551114104074136087142317187039738824683987516414513648378878490134161302580976455744975636950423430882712839580070445569332460673572857903112714171350839576609419639393680135720449668911023630741847964590577870956453714605665211865839047539637513189371309551750147458408178223555369582889299994045649784832393003449806352099480858422992166599220678710219327333322799677801583684659337922559962189350099545748195662971319119602686931197053951755802470508161304760042331325115953849533764778901688385858687126427762867848566840681464665187767314626119679763721629381089759901452439691389285578228363919032101041113014878249576337609969845555254688003556879275193718767749859481590193956913480035812295086378183141774460612481497324691090122703800106377399894641494633900808164577480185868550981083271738885340467177522748345989138155688278400600353167666981570277635850069527540444135267650389876243889450647123268310628079867542634966063117760659609196128880053487301322803384555068333735387473425916141799017539553896879314485009057146682470723951140965015387271959909217577683467067397337045006206372523149666543426246498420643486764117614106761764196465160915857750574756578914179373460487590120277590473861150553111084664728712649974135320994609416372929992340836245500009437714989390489112409940966470093518356148269951549344810620035569895689868065824811235961519151221459162080435748148807091129837425791183987807263823035083975980684446026798842495457954427699366155156380135236392757547546269654177347953460278164295868471789966978503702172049760983302753878269744240518101300952482847749775573168345764991313266984823277093848905702302707782898203068870017289694795919237353170184320601063756433463650494506144042879400344159678545990826206295509024438658234831675155389584375661983673715086282803429801000588245335520202051970085015436126785525007247124256592545101250926439231159464030876256791731703933813913432210009694295063564413767412554593287979869518774388138714420761905306857715602491378300994383060417132236208805978964832495256023402090552875388324107023080158464446242482556177342168950741335156929950224345520959154223151231902848062979452267896832763578353239251983691022940708258316549294261756675616797967943314125557489194964808982964445822346216072216222838271115399952983687731508933783587471453286066430768781295401300354544155558082325429665176106768993204884843072262283457541711361221961780784166848888294195502690156830105123823649011043857868145581203116826009747882256254041832547166860827540506284256277078177192206228917873504397609392840237214237451786288900451488605398817573420623498418567674195615916141896726278983969353489907189686436148313620054302840851289912204319642417424804668229957699112218500048118589792126287070896355741228472761826516235316277508849476897873837747589154036431996033377178709180362996004058595198884708262470030562023500346785687664508608013072236646967653116061138185208948692924036832680402255306321656668451771761258994469852489958284214113054193970038459426698271307102873735297768646953656249097349952978533390304649089138960153019790650828147442094701864711526425337545152615086816571983581599752742838653891842513491116130615442525461303304463576132550638220090164967604594066873513830261459173423026623981778889905900739374699810265252189495548389000847639234646452395657159176926551199453280713826655587074991798994574800674109349714395822422135390756395822379274423720179255926643060044326821813557840330977145231822527492779718767586001232911204416751595843915215996033605086133554434086560970048739095956797592490705002268748942929274456033660847422789459469941005154512900211641935685584742037158466470760341791492833006176289555399459910436330156818187382925543571892228738702048244135191177474595972936156088373546500028182986266822688682967556213996761994324718196980669133186154998100965086508822909593825516772612089965816800274947098198140047614976263664779868042673175427364086896827133988705277166931403292742405535261293912218135188942459458081573297424314238015114980121071906323842539550152543040599099576648808856951051941998393930148408200840680457370114561570943651155098419549772143751752427006646611677032518307139639585725817124315452293299742436615405494894663348170725155598370347223523064959960107686036185064284323986933339591242242411356919452364490897915507125362065794799596217448108927185572821306130962028898438782260739400471785103395365394119695531548923696498334366534600395736669014024615107474508230876552870549514794479497681338657937229079345367255735482890108079204955572109730040449405418648693473786226790006736956827217852299483605291359602489255822686157558448626538459054412564287245370440473236740336383588644682483620827579183395083278163943303953635134337775676301410495417353177012417530440147119200978152994037249012369593559593994183134718423145516661379716123156301298394218277974436833585568757648114916784652284287130607799521664080135871674623884439248806602808904547523411680516048296563052209014969491380601252015508215577633407299307240701486563579387618283740483890399842025871125955852964224483492855059774876401008864223140308942491083826649853440130786757157593126942598161041495402759667381906193892835756911621212888443701251734143143958714286717217069305090307438500953918583884439820457690654634740456703172951454571850742605234660834520995701836787896907942818775325900320242180587496075013163457186935770094500436549911656397890990352158856795405767004324337532874093206157419286925540299828128823564206506830423429576741065723084794775736861538483763769203360326109961952460606409947495207162425950455487879206212240165259544686987819733982678572998870973285456909941629405901877647246013231067672903920039084205985139172723770883410046118198910120739714591021697210694202164607465611096323010029301383715598796785749141520916120284874949219915940237205626670047105737116825822994197757825205221009877011032385014373742943902412568663109790515823869999698832903690809194418687892447278031447218257399677739079406477512556989832746883797496417846626914735579540625465662646039018967093022609415113083652632047568532558875152659048196834426409511712917240462654433660773167370143869207541073312681452684813887438567330271025873401415855350113761200294304916491507728475399165531037994216818443278505586285958281587999057218609018703680771340044566340078966274977725797043588779027517031970935900637836103129078259134273841362129532095235989432651196387951160293020387220766365842795354260327008118662656695683495166974094625681618269723471562420490078901584134280903285782919853276531083900944547290226017351851109007312032764846980627266078750655604340919513944695678267665789937851498042644050524772706120996313900752958504635265295642875739095103990737715829703462505700725954383041290710985947703678732010946502630152230973068156510401402386892104873531088238448052074784176357321945165528610342527472688198065876917826505998981946007319114491332270894861598040907737504006234659424283789054039324008645088960880452272689854085834846083206158207231464619173453987280623224267561460311990379466036014147264090350538625518112828768885384081973758194198898198396338386874850308765721188556613624017758630404009251685961695213235613174968058416477430204454888209784455824837130864880163624159523250243582469459848155874028519220026952992709335424322251964387547558097472646842777252890525291826788465769689325619096042842633588667134253504572439127324542067425155475111591720260384637981929343494574009546630535628678452047660448196820505641406803861772418646206717366949280586157626046640570197940366140371869198886057533818384093702999265985665841530344482838125087191189041457387641903585643022774350962334356548405469428635311124554343049658498563425280812653382813415446918298409350354010216549995215949656717256306436283767014585366654022536843835656007128687814049423945181077397987749170986380906508059816385599877776585229991842089054749445691946261826748208310386426330889483193893820055924394069503653739433921274887242822473343717051866924797721201957006002327091863577596056262634683158928392044146828374371268968351070295917711536953707991127242829870726891341284403344231856584046408745531695259448415804621551839301337383879757220578654726399459922840889258549640349580885492372108113925316687747774229757638754196335867261660597650748449274210582690735320371497607568753090825556624031020053522930198030028858836573941021485458868359292786197435201383824309142748400691716943551036198253261755148298584025537725159197484806282767730311563980843238134608681152584439871830855790298869425917201958520999471294826323054955655513106372982751343867259608801549286600125232943184587384439161823664681948065804672615213735226445710151839251496665610460098446562465328598188496961436180984238451109817167377330064149644496634943625658150350382992715714753919333599906901513730775468863091581633317361417203238208049610158735444596719946975185852023017150728807861132679168587677316968220538391269096570633457557960142479562253481595347467286030441708555162819305358797619304249346485801853263199203907340993059820203041081973394700504736831424902363345206829483115660223707843827825978951274365712295618547153903729615608026630689287922716493102439589798602512083756786993300670066077829320694894110723858473454072641054360583862999818871660133578425320639663400774475386056557062188274612680624159162804117921528501884300094383139496144709079251033229007210230093789125538105093133914558708498739290380146662078851020885501551740929241933874896371936720653103242307156623790097955390325607054693257008056986614849402714004705683897752182984018457830585419908931141437659385860664027590382146822864383284451921575070541630633590631572544599441420679892825686696623043381804431056907582008246126435143023709175096416690679700182643266840820327281387994919630717439303215735096037881763452695651507457334849994056209039551164970144640893839364904342810850806008051553458356071332399852343248610773591249194002350277157285377860049032303909145254553457236054966534392982356593744510314368066010335854154687428322827544526037894475748592022574314583539056914136966792168158455077599018570056408791288543212484334518356081389871321919624917026630618753334700540020837501064218919722542940739219639614863778116076339273467385196836241355221041460798431875067667383887681825566515386818631096462569321106028101170421059382778520946808405190432502125422104247519421211198169985872795409761017365512149641988836198068821363030051039525832482030954327878423399565862023632579087972035368278247380307610661289822334397935046388544420604974269845808609602210134994731917303595321206508202862591686859599278716030103043922275126031157431972030172342024804342808749598973933173782572727044518102749521676007855669072445101350557184545486186352487861722277895998922002479592492639595588884461283740126660920861503993559324386355979077406770020277194997754154883799321451412749533705037346462686212043094607672928792993218668325303591364947489240668141474028360679646395076503428697498210993790772183157367175707758846768077915804414682235182910416177103580860300051251743028354155782571716262362912611943036761651267060487787024663129514458070114204426477838678820666554702911742163764749318791546062390263718058074253404331773766286322928347043098569057460741660869795477115979576474729706746233237897460287518215554964407343597429443295398452119704067830942257410313639806824928314359998354892651785934417966693803515032965071361307677832563383635679708959044499488448980201601486890949770763210070551379985329489338605078624814851690998154644447833083944012203585841362199874936506539835148100388742203402539154810434365328117028106432759513513744691068827244778070856673768780335621977354393660724266983929427510688149751067846666317681410997854629436204922800822490636415894828621847395551486086788003341404251656195773326900227552479575144671754920996547928797639916639341435898891054270629537497076385024680760890053756683836936451931672395842364013130210753369058874495096633152113807410200935022010146195613438798911786964470040979521655728440526405066015937342218612056144486687960024196168693205099996310517392905085126110554648645248922780356337819247500271687264250747508803432370994751976185261560657628369088142206508873343698698193746608365972709197056005033977621843939925328299638069387581645521307389767001727626522763019339754609052129558402109084103275341272716485158113904808066978948029662927541827385646941894535157884872868611106268299384672644120302831444612873603312226956660691184135032577394537025183939330601158495280377262686097575212315939384174797444772617830323378036483454304865163818105646035116759733391395457157034179138012450138262422659844971316027349071644658938151053030616963369396956249607724527528278342109854562261524732808368218178053547254756221469714110136713800635210360830988719093023742860938826834341112026352620213784411960001557809602643995849861367692469987796063751661365374407943652375954489895116529843295196110632691091075814350798433757050213051993043123690503082245154725347315460670962004365254504795820297216719968142919397766569005736266361746507807158073132537985742374485737461104460842160994362775214302070887239011068560667649037385818197320543748764861989946733264038543505512982745089001951391696290724179283512225105497157917143262455558751899048841766218140996288652062882773641370211460857086506686840680603478299410150594703873825310720939184852211819071080845573087771690351994304270891060865304098853749901367421558668612816339665867080971495142121880660820713553240046391297426099320609847388708426114288535927443897177561683748578723685793427932129402545877453870825697849576995813085210716205043972596194373773018951021466186726397432121522812485332108276494879189446881282464183949791264479816423558638621287774039970936901767077990091160199077612864739443067905370952500265764232161756385823336692935669571266754215957288996999241055648649564513892063793078467586743223963902654343788638902239789521859427127670658815838616471872495937302962473461373409067068099123702203714672776168305355897004757783697281997909592928114094345283415851247578430666511484067872402603074269132719191672627932903063807163963157911432976332583687620217587131285904243995959617885228556220292342676880240536656591024311725380021127601676308132451517919744601205910859651122119693438195596864639393886389806531797995178176169187875597051417662029647076625185690603917786020084602605944660928781615733588710131499272813946831962923340482768925938089302977292772233896620561322112509716402483605508835481724887131688132950240751543742567119308098300271413617251358353967645015051684207606523013466494064459177591637847584643644007632241408556832448293874841949890793030163219287720387812128022955243484493314497682390060083943848021764151740541145092659472569897464958330399258734835639847965646500861381876151652683771776358657191276945643807285127599160158073607831914944896601023315099823529965117426371044634504545057730071718065265200032869955889422198178471799366818854943241319727638376941148257066506074962600062693135919801524893339555774309652738537283596859171909403080267248581900736587257222479430895016111070756266806897066195012906249858445157250943100495566962142576136500807731511118801066969718027569447748241114152645755618218568373991735940433912359104210418189313561257877993138335567895638979485338303145035781537762807805114455732948445220678603544442748584125814452031803587583223448085515085046581177222231973263736189726187324384649682716745017738602918057457943580081107889260617760193218037235636969732621414207553392180617310456405182693977335401495860873390543353998081139095133218446074060029766491371558336204623186176610419658841412465372199165965872138844205504518872774489950603250169294553053402344402857306003981683692626212401747417192802127494725871989745598236091547965965522890426374973273244139623555869898185939765244181203831702983259264105822582995358560608443851826360041978151421774868684114525066641689433001860907583351050818337438678421319230527857602290258607326381127793104556059543904728726452534957068725389062448462140409070936313825458187623415003216160203022610149314123273632500430095858802845526822166383534969220904820352104272769626753536388311571250468450577359394296432610172429547383473013619966643116073804428780570272555044158148193961296350537743432799823954665445028419160359562437421635205537957807772127341407950649784291265445806549350831728431738429838709975864128454081524434524043622495819495141898484213282985021760267616533605112376063484018775112843538265286209538058469052393229124971838637701516481249701332745091343163598125322799578034616557012143233517958273186241964556602419305014173709586185839596829469769923178785767474474498007349207068176263116884617452609287975532212633603969873254013436890904412852589359672537141980739446027002605434243598868426082000131004807209698667338409070702053255624474783233395996986159965103458690687357463822242169708209470326396518960220100471211757027218856425456700174556879433569970065690869027366434297598420269677428975710812769453090870765566121043300985495022024994343201370929558335462528818586625401400651861938027315962310901990817206071185538256216438868468924797362192841385939716813749145050688336452257869856148176615827518358148155731663437276469732823897631489113088535434702521224367794263724942503057742315395493939043337213271578292814612028606904533800664266204290996222822160304989837519664070605984732115026081171385828531149033595591262819912514037116395404881768441431896302479580908160135384449866485336096246639879211841878107538003400301186690540983680437061882227894185104022317711068390815510044432586060921224225957864438096766666901530885977093930606872488403307051464154435126525868079855171625189214765474539406678183078680751237649621203981889041890392017768230545892497642525542146813360429003313363433913150510913390868794426377737985112234559736831881908974359852993738798193736301570119176421562510869874916190130978145193139670807765227409348594742080734521946050912743418668997724471096014599543673821052491193152770537665103368457301946154358325915654496503160163362876630203555443525505216795166943983241941346858825142176390929990965358989305574947100904437936943885336264448588288199129952336052762867192048439009460653137540389528544056895382792057184255779659156009482786362700501873594707360680470385765632448366891367756769766505096200897099896659526938709057720349406823274573985870361570436651670979547098595585602474750539471637184820094967220335220052743534880666246067653912394553207785857905123591803536538313210456210836957708944912123559824564198434934160326542009236808052674887975210880265782640435218303062008870448963974123348211031817270987662917859622578284794441162181012426885205776107645268124195756463998385458743037452459718412103923092162391291891070864344530536296589082864155489083442992316454677671609487180471823722519324982824666918595935753334806002641503001262573819972502017186713578584616030024727780713088413985072724864304148333068445804207744855395187836457989577896160533576570760580139688590466909572620309622904855035828877875987489863501406256428015177080960308560282992376495076058915530945722655781587108235093572026456865736500114493905219867137037744485987666241408756919970561658902629738476069462127810299715520185394084315879446246237991490163440850126224335172600647182440345533318286748138191500422567724101252051930964924989694132599388718501413087240595541472093453221090527515297738066340885242246537960291917180248296992578370452949623045118442917314806588940247130768552323066345546585406327688539336818739725746595175156717251039808226960704158886200899586329682215372473580028255053112264760709513860988536966676006907964575412707639556743151889627517749184912417518792920421464075649538614341760503127874965744484450256752890034546842980330631196604603852653054974539710518115508918345374950306685103137031071527838042392083465428509279517657406911425675685219371735307227415383627200870406753015473404066172431428271184879584432027386320937441384377023638318225189192672196444083156431599692675376441973504769243710631496808020925126214487132243642760729033063383017495865976465815162484731734030208538428550357514795814481998185049538179226882391849660406534168761870828565459335041662159860989888616600202533703184929180736306190838685893485355023883310626115643418951729931648067061265563246552860660870763309024591493653810602427646024295085865251879165967477727741123233513498510543760812483140288091454930405305252156366417037356624205452646232880848938391224388673222120144048378711873269636741946240202088079357924730435046536286703766831453012785238050406022075030611581728668304209927712144355127371233983208936196168395567418943575502180665837428168217771807118983274661446355083243097758680276257216172691868938945883166089260595827689100317577219652948459655554607659551396180104319917450708415494985395934793548238682861887859943578799077138873899576137683220882247625993189525873471548162884593464107073366330590923059636862844388811535997517285450162537489282415250699329293924044749150036712306098312166338727051890632310599626188838187020872716382089906634641817688376162894219321123772267297313646156765375089048933432213036444305448495284643712875939645603587022799236278891606927411600760914774230683373584910328576156750160589258442315574157574095622476603999023458171249647212292986964434504794733717617462800942711866673650070121512669911173623803170551945711146235955984904874770984041868020454141960354527398450847642981174927281342013994030137713004971732721928051208758136352814380768356936859662420946293100812461012819783031400037182040210082568976094638860186652395899275666319828790840248863476654349281464694885824795567504535039509435019263538732833584921634737147570589203678819417648870479312387308486015768067496419676537936998797911631397061258972154755369107769126044394793527844515502369457150515936384476068434289430977671541090428680681979170462245868276363730200307591900112254599829310942340347317683093229339510034834545501709366155142427658650234072627013635523292404717080201019850547451732317018037764648670106375168160278628620488863187598863480948042337621220255468326663656772934009306684394932723023373771397670816892372050432000248681320465830775125601827304245383802080383899461159875585271758690146704234644413840452319356131422232813884027473169829586043617251470268876756935193957658496002592078819567397304223447855871463428227370561174902937884290485038240469574048767590923741341576773547715293243825654538558753575205346229585863877290216026211608216097819589807427815613541914148640773823245109546158480384022407495719785573523813796324570510749132894077530137945276356370090538389166423747280676437985747183065030850545750981788108419454455132202710770700220307173795849299386724197719403305870560886239805596322314971795888482786611781646980281602022976835251741308088350189865361829582814870514929596172656201481520783782832335416062739521413171334332599704880006772601698583783795099317299979332306205678963797954865152948019209352552207736790524311620198049496159085376322661882961246697735131221862894875349961024878629242856182303410111324727125037744734382041688906949615905905242595095470025845473586380319666647704752010439748398144832045439660830739563739309706268048008811640688239249463097572913928023888854857422581237881241772462827928646698344224200215129529610212659581835294267167437872805611733641190745027001263198498029459857698051487038948799331210622534696157850178793686711284869713832959497180446965901282221061761787874498761275308539578186349189719222566149368647233208439559881047820853983710677166550698589554070713275454313083297781919099988477098834315409884247824573057988167634688590160436244903823210088699364973524282211672792600346231465565672796223404152287323356007353600571516867751118856467611462936262387376368062588446401868821274372122281590283448007078812725353986250357575674108415381858146940185946278489502964952450706889953556448142173347621540895450930634207232831544236936158661714314651412987750963571348638171450246533695717962057673381341777918338207464781378612274663571416154962146266308244661131392230873755793478434952964580541833774271319149319916403413073579249325082769722341024393151080856724496419508487646961348900191587282359057529551441037940262004786059922592382950232191309785696098117951326635686070872009148556421929050747286033217367201308349624263593056089681168205095773971261023255541503972499442323818045436584577523804620491450641167857620244992352965036446622796541754522371485596715130530955903811617831057947595990065812671711218296283185120879061603741949498233076745684237681706868463608911633242723098782892672595201423875316444936360971006818368770815546901148216902970762905632650048806940688270872255734786762484219498844699425512676114954975971554408112833907665039168452447602342873482134318985287329351407090771998251569317864410246560202999905698211273551768540815242053061004547735936985140442519203398364787590309589480803582256407913625891164447585475593115267084871159546747937987722808158892102157572307892187909057749447344174055851530764487453769048453486168921992800426975515263585589364074155633082922489012620082257739115688568091887467293539316127001172871596925700186739056694222360723488604286912486196125790464245865298145709837799292094999467061568784573714406516202385359763173184326610209036293132792754530700064994023544106812308919207792783441339860773349761471286032294723736362335479487943090304270691549818816550496685151503087118781133656073386527157672616899832053129335714392495622645658001771133629994928004504607097206574198039324663631694176425687460107121612912863063846352215845682944953503159144902267473073313432603493602324834962377753306552115864558224632024564451101999751023338364831911082080841511501899991840648571791944967232983316151166103738969002217955689261002824240874162040625029506344884535085104926600088796444366489520502715251871566230246646771084213899732057966506279384512238470587272352309782862357376849668127338506262402226796730447934008640590480841800789548706606431945827052680848765027455051154656864865131072969832791919544663692357071828860478336880274555604409579222400366084837991337456293482687820192752966352087948634816118719018990014596852604926729238968794003292651655842592782575379804430785175195888401774680473842000650287890600892274215277040497740276083634126193528171213239873107270777398137207283310334941377487140989243056706824421066399649990873028003286538647639196272189441318255049461817127720486281814091449261797174858606628325376410727548710613847641545360076640817561796156874461312550536635387643774902391447818352148592510050199005781045494040115263747078578489641718842510497282450403652382590192574933146388985022451441270146581219661443106499429942786701941378701532409905855053351580898069935889705782249532149367541247188628300392696401003404633987349595981344746943405374743721238626737191914000375202029249516980917091269101478384852388010846149782098053754894441561446596885500067386481198604352157698881516834847027957037372687017417368799483856622593877703357207033814137747983206013200470595383641746794136763448217826635073551434897520307995679638648069024002613127540926710579738437635625283670554386116153652116418048151877970863826126531381122333247981995211236518331928864894592247605331295257731155525925565049443712661606456061732301021932269812489925721551960673945350903527890443842883348502930259710816201900048715677936754557166145249307396611848544269075594314704362181405572768817346096499758208943079142494130500506403376763610391672685725128313250578928279168296046615693643840597305017109701624228743112582634338950311490692233670545484344177682877364163435466795967310698590763321391254143053776258467802210999973238042367342031479013614618386208320804345876493007779239941460634028627130820985765251215775262083295675660608508771725945344144638870325405908510771878202377789612050914893812372761084399843298538008587584305156986395284105362720044562330300255643020855163629734886030895770256285671573656321918115689205946558884412363105222186180436828684213662580039289371734482827550400469717006591569577600791187237524889248306446171992037516099108497154466559965058758642732702724983909677506953539315176939650420732999447712695501812526567709751888018467763456704695762302796692238757231984734577019405501865777621931659336168122154280024467458390361833080219549384410388658347810986043092641343630609719081649304717293173546466607188376185769253601878280650428483866157826588471516752912668813551766107337536909105080719551924461472248017791937760165092407025079353931683815180735572535389333948935646342450333266133419252089700500780077596511178956992954590941580043824137355954718245991160222691675414158139087997297741896399919651067447796952232494056244284173026605482487160919414721044293355704119420742779320242384666097032920420314751081693105120872597139867401336893132033516449043173094561404841533309842057922726605311969400293100941225372117813215124578787581936785123201565244674449625187080216133049181538360127658998792468610433688812617870430800674522888126531341136850251565949445028893270914704752029055802447620680136395462503224567682387474884928844819628037390600002327448298785292133142570364001214927840272550118686598595831496728849592444008228449230700186255651078320365551766208042533452074698544195184776201217002067651694423306997085642776651329183912792004409273992665111106526997610918856366733051204285747883906948167008771697516093516912321049403428048705126415815038226668423536968870738274864149256440017353535664322959829137192068066009428274272341594574254567659622928304749413918293782883182629911354302314433967948605755068849819614606424825445544325559703621872108696274680080399554218052416078583211162696904552401774512053745126000538889957895750872381031200708167732264998191570713887578625305656492038129835578041428212018532357769814572919539391023675567019676765972797719053786432498382055680052775728341820587800546857635878705029607136126234714777836428454432605859958815173264703053614285086394716786810341708972656834176486443379560062845677117914513749676453639604784510601422373567441678202844990056516037894573629808416086622286733007682131455629264113314560096522149199013713910684029650038503896436338803270102989141943340978339201779870931900088404094715694786776326140609994893927979070689898786995758305787081013592590334517786388312713812522742824032975631246772941736020667294594785343191005610791417000474099905457172455089110501038342279614085635547804143915223411820685392681983503098047405487540246106832681209650490343133137390385972227434566795832846234855162007397005990626522041843001263579295043459948637886079674706222113040857913241474468270561197834979944920855963841005777656073604680708130182074905638160454179477905667043338277926962108197344718342225022070160152447071444493653510795649081005124840144653095090901185246931698176693879809951755490733066787344853267980720138893722632776423976273627975541106423196197337273671565381725141711982937204411020329782148289100484491535476262392618385680083635288740275567577686439793879059412297446524529682062439634385520856223854512513463392232759820008213876636464924463465393689876791857789686341406467663617855002895429627130734497400211962989929964340312277929217999927344047542187175429495183015717023515526292149981687319004583052032798723302023728862790555425092455421390598625919463516592563870435428078611282091030903672516892924483515702029641926333425525542245302093802552270337563075545581267937723814942333954988186535675155750204545768628035268363052687906462839219770536322380496518760569981218426947346714999715278005782177433450000524196978604849605271617832572583359817554051588434530251071133086925305247251494453010233512901691240831207685542493664764138548644582218584838775841268797951374860155677662472183656772932729865829022286009373793199260423272444351612540131453288042678436365897597661153404558700686846540148092109228115256020398100533486098159180171204446308977445138653581791045556983584285971920390784775549592597088080083310659553647901922784986999034983936258803528547930258726533380496233771078519536616620116205342725224879736453550448056434749528429213083954535178420126646532683254760779008035896751498057915749334213134788402927181673635603634097881300610119214588148305542160186083088198165046124135967939262261274686056168773238582691019800693951790056284400926550826502241441151583745012336277565753239304968583232881025627258409325248616434171692273303100540645012107469807894264319972397960407641742081052309106712781985807808743681643878099288705704825373544474433120750853301367822250657646666235512947808708410882878225301568133615384570489409837252749269949265334026729802054503517310034868174254892923456231455496647740333235090571157728708229489907341665998757666960515617786929884392619544130179353667626977918703689444354624502755474495045328351172117159963275214210016600013433027444366618117206030298596347747923536554373532161644170097197552749393989622528069817671604528942888138189729475360736078094451550730104410418990956017701450152823889736112442185342806016653160935190072278641756221143930443503907513850552295160683824402151217886471454414388698558936258931210717047906494993686769256774364933600199796463375272188907786164985635792895978736692826897922990684318451026091729517309587882391433251270929570638029510891029275237004489875483745481304511294695912884808732876946146876599537030714337055877906203231617326600947373401210463719595121494167081683909334704986504054144586542745711126142676119183231466416518274270319345636674031199352490355495517020093656825821004804961435629812898694267055945149181661247875998326841288957694383805291863576603687030819937891138371506336281854484027009401749353338027556764482538562632099880937359086323878952994573832364361840645241072270588817907559895078189209797190343847147460242311872184638627841387568795438563097077922310475711313541536254204844661579733657155363632185622283070642811254090290976492046245475683778155068285215118393329192055890019030811086223823704009042467305907895423665284773752189412342038575611527838025385191036567964220645284839303981042400646089690538530627436441074047601968065157303351756556342173349037649162220489674138026531832650678304037640513235781814493830733951782352257680454297047822727929228458399676208417368958028428472890432192908374950400849944309594900224907688318029592789262902589338340766798137091503230856144159678011637704750455135675281738427297705510438353683149308658374490053509715896714535040742260693440260337958619776734678963299159150609125191371981603999937657268326646837923196368728717440436907230412022287832400625166724878615233947267423077723905387947238565186071330467360759817432679354891143973042338519436107466099601915921552017969362903267368664690882884617591213358098692688037736021928226873755074495438511717440074606765285237570922235409813800302942992369796250447156544001551903732429226879368996857381757032096097822762253902902420630443838491594945700888055482833195480252132086437783187103904733864973104161845761763612537594487634925456637411972373903165474069582343834155384432214393153750316082826860289496525251846580194382168546340826161054627394895790298298461347963293374011153860603694208547448903960878680683201515597730344321776519298464354515429384941068853656577208452751863705635552997547798548828530359694796441056417128163926443172392064608573820093967601530891842030886711879172591224492438536439362625456340564716542335933662153054893216443406358891445823407440056842673625074460618529789133817073699517661530775036111540824249954088910942907002467088953579025417379257109674385964140884868730603357003316254596083473740880999041144065470198980709483687456242595588174772566656417457912334856095177665838362426508809439312936624601692576212325917230254425981010043902018669978761166059356505512405091751750377236637536458811339304943543390050230931426228324445026690772691499314471208396935266318828996621344768047323766675262363807142703636823567893437797883827231952967204423845860916954543004180466137429458307957025199029497609686924685905224675115137118051233563501759095683553842598896190198493358947428146259150045753821203312873206150867647853326548240118936619643267536182342919614590442586599323538551590473067380851482898783755565054872625866027615747372488181206835413876379723971180176113747491835501360330214236427846766768538271855329394517320079005468364264515368558318879981529839728172651839789566936786144469387823626987583439093813656239875096652356085592760344610091216696864693773849310585931294590943552681558251293151749159464645603969896514686069338278800643122147409620148738727579964695504626110113013369048762221249420272244437909038638057596102573139090331223226921011321760349641378643418580917836927529755344065733260297774754332718233360106438777838127277695806630306948284171685450080119573990894326229552756851853143177497359104222629928843673032037568290892120061432278651093281570688150103237704705707284398688722694425402912897135244041379972027739537730098603122479779934489171602881802927109445716064259516381997280491139591644512175035062644531200894553424848139263022869842395868580836567036578897376330857694412148191678830149034836170757803755657324000629853803050375987061489901627520105285796785402004098415869657487494632080071299986205423357474002142001849220206987006158281249532045135487108922306283110726406179456820723380053921737831017692245570059906495654014458662230189343433710677614982498017484786974105031948548196917110837125250379968269658914459163006741112818560710703234980999334795245646138203529348304001933641754946375181684221378431337268061474131803712916744152673522594264958220313677564352956937404229251313844497524686196930980285683181784665353527318296700671704783931750011328554575442867170018956287707045564778760341312063748071443094756178980825885830539791040719501993142902522783618901520989949957014050726423386477355601256956046094609463293909349218755323937900783414858026951497040879538603990503072370383250749317073964480127281000161739797631031443322420995201636777612659657426755005866908523528218432538950642594880098974449465233609695367456447167900258583953162294657360611879945035752165054230405891237029020457091776945567391155233454078064139976869580486227548389300677284531064531125484598692230105218255435005168305430488149988003617051712988344723220387101291139683595859584684539826653690513701340974545506311002909812173284360735625723420161407536976403098240332312349441197015854331399788483421509841873588785662283615173346528942045273418144625017780214832421812737117379033600482619628033992076692572186977132510129740203003422044528279998632331362265020800801893313680574475583846478435119528817518172582736191955979986362392722460117971985556541526621151940582991517692303421229404352407507981511952514965713517801247894131281882320238497568433440622646413457804520355524911379578903681487020775375419890468519651777603582755090844384089339264860024679147853748513122245347749448121079996869873065823801443994308055472515860267493138399993741160927612701977762995172226623488098353783006483250289771850025163873700843156784779354289237011813549041726714981118641201088657559176041819132995360991942803619752661392076975849021617057005712054083190551757521768144181429656316161249054799875432729838748115173568974862448698912958196776998771271306779373314436356915124009157664557467251139263780047744884373273202037174268672633532408723852921621702681212182483866601743856306970376938294373929165441661398188332581026771646589827935835375387563598486645772604587742894626655351147841759818342378658266395770554244424979869123554884938756989627593659422893315740662588910427624746590237715733028216078385453843440029974336161498664333379983381289017446057852403749989609664124319040777930588834061175351243153527163300289087162132943782211646856488005299019162363999498536820180728663692509163312933189609505767537280020987541279250669317847655086537471314390053020065226090983082026112917632868426689575655840078172278182337324214463679964299438171937332557517422399939672550927168423464577881964368173592233813761590774070042702374365325011997506944672978114199056500378722529663491670717433978492171338039109264478090687425665210783279092070492670210709055762668243755082113260790373194670042744654902845448529906820245869880829819042781638608245286296972130659190729965710532000255852169378148943626185344304314437534675373452919823040369872473669389208908381182463172172744822478861972236106484762556725143909200373121543227826029215583428583216103242090384682822341258477013980840177131341203148428420492395851520241393336177371003774709516102413253294689328883786758735700355701945921027092203630656419141115323220733382794281510891457012106824207006023719052058949213845504535955636251653399944914498541570905028123278374651876362108325591074160189538139898451426203709922191243160979472660895128847422261176335142276324760082671076187751898355721769113323435628348011882568343478714306885532534868616640645453920446649522939304699027393951311174598664883004479012810044159155066761179710734021181744549953544183689547690567721816683701123695698741126922967184033767723992695584917130911387750600440498431418118916231959743990743891970733201474466688658758569944783051683985471526467468952380111582722884512036274519386270744465437908384385831164174684655112573794366568873220761661089249957296886927742724090978525333484370437073265401559531304285086682361431026749138301246900848934446630522011211505147174525187397447299139190182633799063173607985085248830248901350676949139997690587066598863306641874224529887971782888824416650710531691289722785646594239962149187275083391890617482608084958509827517016310030595638038205383873736334104054845710228024813861172033131507191549521736532984634817581384596819359899127463059985879136069573805560050150297744230018209272512448067864432405688506759399055082641343266127242789356218898343431667011708231355246295438967632896328228329286956202543157936406310899886341017736931774605239632648401950079681412005981778300555057392636177666842955068021879119261882983684148177264711152401560846054735806211959317390698237808906249510305021481999825319285679699277840594744049560260679434617728169360322644969350724929715598653081279477537309643001696683580448925802808607569249969122009008163658336916996291457678259371844021601785363727545248320387927290201050219298180337290791868280825689672247199938513620607693554708935689158626758077679702210875426279506267669224591796643855272016956757107997467588736790761768991691148239364535394712963305513042047935409482587387392221282073782953836138459912434769365851297188309661693598957463226964459976827667135433025061401408251311727877263117506476245790250385969642909240493716773596044181180477322820230660398011488644832897879425626064544850817288868373369878968856297755813450218047523380892201012248153511683762075299981810508775479262764504442070349528730040372511431170747411901008693483195790502469470103668890245025405312453447195524837579085528034644492287816987125170011578573287849739108536268294989943563300556496533569872403541298797136999505471349403120667499989468350441964334350080744548846768407085187398314395854489857554434945007200045328180900049721150818544973890679965833304169451206185688953786272002720821770379524892507833941863310258034097741765640385496594196908989162869898072540241295928670140616790733116297910192174841537137329105446095361793451310387991769726803154858888261249350478628798110028773601488698823952095344540170814461215301553085803892594751659846895068575059465694853707303905180760803756470682332134592526572649803649750902804833815464937528307943431706225176962551280850710957573095480214930760140970186216705600245114071517265581533797855607939449256779167590749077658458120115363498110890437261343569010911571624275872151972162541971651860783233252488749565368766725354350358481429564544944974867265467064486377481289146639769350010858279892241754070382325079935532558876199671543019807241324245159056487199939059075346889183612949769344505894425611266783208812550752021327538123032227676902559310606738464856692515655566396328989358467323483618773037814339410681873576171386454540189013276263594013940047972314287656367957378392129457997188736075468858124058325365651889039582828711048957617351808431232148983502277199530222949948380083672986130495648039128341387500467185621564702801253088609099243709050362303040283290191471093559543722060059940424492245005059768580687088246734160154281564955344783002089270096795594898181911413557466074497318936442334964893999367096006154401182968539340976249466555860061363951842231481945359938777308671426877111010868521615724733395766150276911275189598284331688114893823667828598531502336646784671057271511363010972534269571457284001200119651295479327340850736531993389555705526643230894306251286434777019998413047889617166601231186963998992446007270532034768422107603726342495222885152195358494160630962729260337895069957947549470615870139307032222535348946112880851722422008100407884050140297439966144467086756697659426633310199289156155483652961530175833011537715627411289528039467580126708577394147593125515624737519544388383666727637866252081487481013333219081465940331568745781444314908379967196924291817419150426970880649445700973586655242357253104582975165281277060736671291444860781070762367700297960299573958594161990885926348194190327428584897324713823355700815373599132594952388964775278937799305483390555813672490803603546292514140476309659825253625128142690513161729004317454203323277628187346217024914098201144992987319596888117359030640923189566273429383134375542638635576717759902121170918635094391234964506159054973523336631222024017625315899275633474240320869924708336843438232465807810774934074644176348011717746396653426882816009557019054354491536081983511450959760547338020469314515178955074498879415693186449513624140387348207354404247979504732017780636192549982328244558193666262776563298777094403823558041542287864457613579892835725598917892889159152452939709571304891352124916443499160568838502514595724606090536786553611173604418119547817958597411733818531123860262903489146876965785255322445212088064129499294649185548546307346237978783499453447291611363564446700008204797152144462244517355077536407237511152578779387978963674962702589696312858336616295434878595827610156370463429369049767729351661585012429863520858996579779169750339233076724492949722363314106957622861195282923388283114450455910919884399403420098830781056658567511476289726398724336418896148233489126563650617658579288340470801243608314723534682910634606347950775407016900346404847883985638045416047778724300156605577924984025966161829540556021842012815020175454755921123408131533063622381364530422181936564324733203130369207311916558934712467108612271326123013920699916107216813432585208329660672789422111891528058163354637560701959415473388919291564499612193202143665978091733917305254814091958430679241449723009335462077887610050495868822288418290891682014044445313953152390516056727520466688191131398540899270956820581398293949619023811920879287633936906654804706661652369710598262480559315463559874410358975694910840471086045301838560885891842207731938840134783079894887376787080274811441901642796525736357833442374846856089329620386294955510720138017417260933014067644046491485988352184117556747583789915159214912947706086887006194845786457865806084044601220956421200938976061069142391643669248313712725103611984061982622525250959907064372607651251366380916142639190444019808514098878393040227362341729252746366609937858295029821340137587040312275642394971918799386016051629155469734179626886376068569586899186274984727112252506397509815034626744457130483720532852933809475486098539186665380529229176565227169886859334480481267157718047810237451665872821142079564807249625590092378350987671860758974430436377428229128680993475426913043211171443281658221222704321375889732036462672482810878752177527505207567318135292114072525046990604325394651775078642805803113820982701712963462228961640662565945852588839137943058480819210893535124842691417112510363612648937097139219850018389999174456846424033291656249346731585737446695014597964886214529305851798309255466237863149983506653265806393573708696432642394166984124127605352066200600135614756222508674756642660764815330827778913231116423269658217200945602149964616941992825753347492862323975119875986824132936778540415858640932251281348644734398215508519778446094339114326226106258703816996644932406745021592102017324348464141075633369123109362780864865644719430610923142460889587354096889931174923969654885707583413372990279822169246533078594934174257646725460627771483898210567501358962073055723921676511473444823189886681953572037211239555530000933357538687264659297971806211063424604034914906598857067804544612533508522714019316908485246777997560553858002098788783203432837244106614817633122117919626967232422782510664480117718961355645496758604246217389691487362955009342253248828689467274786230137343508114725088120185320322118001581051651541743017691404292466518835232477644956379635174869850268263046441081457061421643181197135388626378045864243681327723587129970762936753851055211546944423652827663821496696443097052624630230929079140720446410501366426520196244244696304737112640917758739112750658695846450038019883172631453591198880426792430960827026468623210070385863950000213306756144824353619912493698109631032100651987060459508415721537836091167646683725985272622651771878333703779865327239613636169884208112265934160892447981676078768689478576059434638734226061019712354876640235818353758741445110760281506759477084071064175009409102571927932857060544641358407864744531361532113894053226712604370227658998674505128677353550065251486045228594935489418838868246455120560423120555757712281154947333038937038721407172836234943434109278538568935301999621527018544028042770722254085279506780567125703409806910174832665495095228646464535382405535517816720616008488940936828547842703512659572193955782921243154944509918878736458202077117139091833641330898808866814410450713176470107628200628877725271885641188193852661450537575394018383212171685653443339739985948047479697218792364156798496731867313425485843556766978323675451721763773589080854591591500122243568466110123622110660493864526651257931986095133885889926951990650657972653902303927341064705419197549697995673707639674155621189929693586788751821391867695581583987242440745159384493762561823973273722871918360304782029319698633379745028960956544061918397953480652844580933701476155826008213634589063639340579864625277067311416952600425559921977646528444401134612689174111625080368690552246537729806779648300205358001040311838372855335496853315383876942365295455831612316067798454953744533586917116991674151348259992237475787597580873581033077864787541258971547097102289763472175096923027418850967963134525862189892290841525658281297899170099698191379633010647244504260574460049488948412008090713949928934449539885570324991205125292899138038487450773237140892066056910744273771134304207723568899711298022553396828567972934834887303562073007846803773342035211083701574401516371158028984526309584349514720256580643933275528575359299891696490428890289457903126930289048493628317181170378240191799018468074213390703720536601606314443717120817064907565939216428788913565545894237811637556944466824302075646618946648696141896566172621400209444759542181877688895297553912562844106449797857171596786241534468110616318467581882142377627099478398111295187080527640461147089452080833841143654054309172492411955765147389368642092879715806682652147605415083340327707845247699491518737752800223774551534398643442778023947141965103990367214181640693598473341741008886160890690027584324391978260418454005618630086306209500374972583377748302728917112922421101946931132179964114344997868474870561698055367360925034970636603878315344829328682675764610891844321245664263676136907341714804024020100452591355725035285293789352846173078537399039690466687236475065662015412661897099350159339683910438624833667006884354927128670194874670416786810559839068047867544303664406634721497722921277621081215885012015150869234231736654578417818288031276458282768125079550577259559755894504299327007317987880432583060585511881805138686873289309192830461108812317904248114629733454740959281634876165323167777877291662356200692811233729874169661115044866534031484607196512341297994591934553502148167000721896869970355689635023306209102606608917162586410232011902429751572794080578014876404807546884504389173834624281481015215964661439382062914322303462050701724888061931019678847158375283405518957314358684418772836362678885609559001362270440589233793268728751522968723717890160360875367871841387834352007127118353932486492253004914241220321311726099983489474891500911309291350311973199886989777628123408500235657856296531250847837832390758319111001605186532706139806786478742989728628163956966678746182779620131174608929901950629954685327539559593930778486380832144786017348698130717221830981030790822135789347374638562259338640281373738693636453444945876258991345229267386191748426517126348325441856672737048078893261694390783596400699106528815893989928368998569336202708900663062931408616182521755535412632659543565064500548666636423148461041869702195932548648480936741569869125613529870601052289835714701653638456223780943475788347481128181400131710991412988197675820679238533196231539881211620499703631307060831759157192026315903289172792009150729052839505782651399408125489185245845731728256821188596081586330512735746477445944294811226874408634875273772083267105264571248762422708680196131892357153841643025122186371439780909892263256633648160873790353886295615166880660589656648094449871277903123993324268314576350125327235410099619195299143114517042165631375872193489033740332049433300369406050028942705489304146800035014374560377876341205011088986804025088448288988123519797292545587851890815278759322679724843614478220390768622841965138974864674669817186497885461265098586940766322133549159753480127984820660061844253891459497497265055687927097819494683539395904291511929678810394326905197205758334527439584656235223951444076275508525698594641508560518558190656824114791282148776351639933419857541597246254065771666921148229484096173741977534772906262473205877786537187265995729364301891429200547962236322120101452849255287417880241115055369484976672152711581292721183915781854463753671667696745884227461770764638145769552778416162865429714168253009872092500122828076608301720918930947853859665548413289539609776399290525658576730689724965826095414210960354619908897515953913974246258655449513174442983809657076858857620562284408287322254023084729742746366042852620343526103755550339006004742567437227851520420694801428054996672009504887160939982965291535318102429061620639842299426775978270854063191977507050492206308966856901038394421556497247317670752776081728730590907113577309557777288230445619341044070648945124450988956490367688241799673637954452531688703489772356149679533061062314243041519614022770032257425924529547383396704125644056019062834616049798906422557245865774724595793781021278877152092326378722928162178166378686764366519091483043434423703929669875123102065517666236665035530832510455329165268553080211428757072302252053447254619920110738266804218698448310690603752038294763540451236673114511064458452101663469633042510090219375955682053109463993955253313061488110083366955255789470019128055817822901762343473638800242733873497167346993651796954964047071349326093878993095546195414649154039770355663248286835917687707341080463969679567900033433513200827074444242760225462183311183061920885102144155723397818375908243243363829255895859016624025790375936935087484681054249892224734496052536653315038641427007695093664167188606571073927091744779029893096731465293865789560757796965645555582174074406570829094326849542017561354256291702276891259895768796179886646859456849818185687608106377234341319863903791489932170759325616601253690507012772579461734399902396341178536936898009962881277220853300164433216070083635961311080207484031576969661078731641157404686489064553976858102407293261248858502956777531078739165590474082047932443548023299434445414135845869422028175650325165650786531253887021970201683886875737167918823446469024915940325349383659774791805743311439824503096298892216228921168907035258790834544718351752127062582671505028812373027733630332043066696792356743407173985669737040348141939482156724044774781080222507459436695595289852149886147751878225591636626853575693794455533087389651510046449812824006128334842221682638242443157265263528750108093465991696444143469698167870957516546345461114165485518767697752167976121960647456946257828828329824211770431924458727993982611001945339605671215303453829949209714475120301331491487769902705055978872454334116575412845173218595692082938811122401451278212446965030652450106306586328208147330644719242802181374351497799522226138008755060401165278432024805870887357036439521787192782623828320603486631233496681087624191563036940172245896112042531951985855913807111948610838676730453528993129049581532928593149993742550196163983561005919669529595653592466885083990522018325585070724436685968767147278945599896053162615714198437616941422834402945809064102587419844190481161274132753757602532572123254127587985253053168534607289866130754555599645678898232937564897227047164463046007847263156618389694345829851225376391783001852299063393871730761075351941911766457927988933612333066578274699443755178108720887366583910461322287708258296517157682914424695153226850531474533162866442662531734749400212165652356601859387638635102408959315281594864535521683711316550939243547880425881952040122019865944164584374319998900169261327656540293139205917799049390654272360138866894470482618603370839940986079826793845297060396437513859888509356538913200841664934949050556187486687201566269443618694089238764411235242642945392982682118955481905815893539431970890908883877105557902285006111136328767402411198970782902253158951283743503230597929059276719083030222241320984044369288323802359512945390577222373106459291403271284858964964367816608948066301079495072647184349838805526220832752105617405496807523286448230064829054274660450282057750648585952206280282804482522197194298625494227919228894721169810764995959491597060252549925106030316363817909766456688467909369922504194185192408482008689186137157396060018156909251799437763157562579361994271227720275289995917902157666384032442985652067284079626859653097578449225466397665315330367666841249854472064114788931735866083600672097386226570146549115130991735502700468947834105859591069731934309157979920146113323271889764507296293828693279788313427667540020480951843690915813080620143679828693646501563054845198581226674278318536544560992459761588657665167200041775252907901880023309181100069981226224008667957938492134345789809836539941032490551257494115522989022465627527327217191704568220819862279491083236149958040654040125601015519287849804651536955542979381825526929098887893409985277596904808838953422021765418883965222249089716497274113476706311394323956547398136875300974125245942754463943445530677471336193685940681021291825173431008071196639834096513067768073899516274319683613799449057296592664274196396356405342523287297997454982901363869641904678337583819858103091163654810551025384230139434588821984728475937150397685378141188943158583470934492142496200207882750861192594369954029056804048328471298906841142115620854464455467027089936067082036578970592710525518448896859924280133836195411696409541424706525202006919296832306509101848645322030425979993661504552189632952101463624647541975279355640926470542684271866090422574546489242987337582099373060390608187823844003156273072628716495080721827838055259673208902767540656135775543766100913390819050006824060463261070983984165707787726505689611337465233117709091566396394835597834844896352324677017808424101994704952586104559331656310299667073578353540361076831836979878420129669767669483043997491450181008200744327285731718819967256904759395467882751754903877214095219506678407277994326539611272916544004003207773242034420768684884797304827421247536865845409605069428424550263393467104306517681802817071134895778280338676001262684590227602429805536906978390067322547993252289921969184201541271396288801654185188755515521005935844342439553069852387146392912614516398562736499796219170317420386632449709180412855517915389353796561484783508663061278188126873869397574523222717075016845237112344985376418629271104880616950962663525317410321258751218277754298609818958683738498244366960017544846306906432230028573923356315482162557752629041693911867797456130518648198624518329165519014449387818733551947138126376426178748335168046710276979763264869773058575158207009738128376563287227393305742815988750233436623137176063237026244775051921454376205599241728993497951054352553776090272228448880477643135299752770739533700789933626536450376537896367628537072613861580579973335816345981367230372616478417068266323992398368937406860605383839927842504348204613288253358300948064075231598771001013402480976469514492901909596432572012861907019467503740197018885554779455774582787175305820958452095308181265736075409326680743522576675805092386836711437529010884943709553953567451051457167327268551751105561115961910759566372021287823878909910067506948138509396129229003723677920730542697798587974418827268238543701257291208391226202042939334142643586552115159358520990256221186415718776145221488460471742694105477426399857424346497521801431697674932430524463285113800751549552462255693704704255260845220580266329391202972043624629535841995616115779642573569598533830591638985947244126406374304767051217059947475820406811284204949866281299054300228593435549936695449358111134934302877536401823874142833239395102152210943192777035243641526707946105562682296603821711635565173936213197364637486621508591869609938569782130503319458710308138538110865234113525369193992696241712821449592041471750263744383458884032114391627382212931764902053216628645476809569886574556363150013956269180335884396307238759454023854491255062599232784468178934695282035815666088603100564075494082364098032938525323764208471698817944072323802636681176050898329893210666388769789589732499049741469405346808436974564034605846174131834194716315241530169205766320734208082770247152376549658687935157955901661144598472363652829060021664605431529030265090869826347024265344667732079386094771939176509652533140666287764539305732356894879942097841361240520001014257134413567986746330670560231129119388939038793131978293897307242609332320435846391404166357603297173451973790160602675499583118108013377384154316189264881964740406735294261701227386440656551211244143293634670293277367908944558156344914878612279676158150479004352675232964125255891880923390314699063763000445123248767076412580939601117312531635874477742693547636957400690871723465046343525511294093601857928274478288219306480884412011379653483606457094396733131816565633646935535975731280553480209867437296957171140990340899338338373334243471131200132006917303682199461355129591350964270257929782935945053262881917793359904881624148538101413725104641273714856470422613169799788673032027073153350900527244450016493968862133611487167345384749538396078181592783307315451964421517437734815766842228207870627551932975972525105224036343576843781774437684827829414705451409852802495371083235245806440277602567688197827721704877675007889472601675197944681735830755444201376887379915188683836597725089524919878996175719481801755467622775045043939884490819720788389511740309215474430276610370007898830130077653356838645540227360874313217459210568123865242798761237754031469788482500946841490802157095303219451693493242196769082932038584247328551240316902075001413366733926622466567080657176140683638273558312142747211129464701524040236271907883895529397195415234102876293119849207581131298696298365102796336408003898891865142027519954485282011027076116524282945790186204492177633478683165544846940364768175530553448249543979952809107988486026932357623724840331791034343307383958161298385292731829760016722476275078551437720189302510703001389889758813710011403907243571323921119394605169929231741039183774854227567535393501448664170345221742159828532124685754508311003489730602011732280509918967487391794523233648346041129742674669318041322834194912599575484558273008177469573650074520399333202497233355888118003899138062401878733368029355062531889900794115303182756807647892448110008381236873748579060399360725328042175779573001026594779409750275580991730364665915698349737094990845825211466223099515321146143985111011616219085176987303911408678048808717571831061707992278646077061719926616449410890436014864518349174219378466869810271824686370578800327928613498173213106718830508456488773123562732354856872880656591819438194062144927365222953483247743110904520943231343993815998277245530668957546458747561808613202773167421807779290239751193702117170287743576512252451941882642110241765354895490350580829703897556151354273360156992305509667744327383744102099580931704825254144388358971777577131681897137511297775386185099391861805320474762784185811752545131842564987607003497758070505605666767806760408721181012046147119159469297105588393999472252171715169169226399305271337474982151967634396292847203612791643428194997068734454809252740358529158373745457171072820001460871752745176582962208518417255504717810093177503200651545453480506828802879047301308431854592523194038403997013611704658429388972721962303322565172587701492070971353172444035149133974284949906877379069123760132513328496400983020087813528859854946495737689432313485302785900002527747977023867935430790093590133885795174868922275977713231615809734893993296612354924192066148844478657326407045255333938846765799582040691103054727702960956568804471295984088078635437109018319895556203795653128286393803793198396111690463324631244128447701057089964714770141817802747425255351915052893924916748401892801337126843777199270081117609258047362954833549835410130147401551756150419356025259908126577924070600050113738351498951275092030848304555455147034037244250482905378157251307090039418760277009029568690233430299940756618625160014116152862795146235439662084796167008194709774394875943541995197100117816296444329376149087144621306807777134652893192996588849581181481100693394265401072773551139376473357716431367856374709214125043660991644455821221476279993310649324668853897814586960013800096457830555318908202851154266968422958329712557253453261960233471733684751100893560524635853732004033235528819195987182047757860434119712134663290939081788337860225966114055981337814705430873392405537834742307066703372515172992062426852778334456693119302880177072501975246264850438286973969024425461652944800904311291473494510828338724648645099209440014789249998077754054125020860690557789520514391964152321532936224707006644124357962691771202211598786357253228992212556794025780913151508662958665162792410030614928567513879998289620292012579805615927277578795747301535150785400729052377792425063326498340584056130971293770027598748107887811563005825857531872397301645381958074510284145987401073866567459340449427608191442526750762696543384303036816778738807738202779963564491675457230235637333328841686072070399850358830130306643344629627559812551642364070845291091465402998954609853842295678259869888303453692562830561421037080028041526961828652107142186011252479407841093758165915897988222144350074677165163903541629463116020141457353493028008483731142888771511802560838842312016059788892819529587116298541390137580540772533408509684368843840195000006347328944660646284150304325046637584714701734833220085283485939813327192159822609322640035820233159547082826631400955768531391539480910318112141042145129018257299178538805611316743785907064776856570894290285453769476020464266339794950896147266329599008309864692489748107445864005346893177067206678698397747778643168329128139556998371268021776339855725490886261927635196857728882792617992103609269417672347431746075980483906349455725324385439986694683209527908350131100841449657176592367257974368821191926974778959227403964412826326829580734445385354640811540088371225656307082192969293486623319490026575575709028702929757404591219444314719111357223491516153018249841959406738051014797002637302637373744782622515820289854721840643612666092663051605338769962846311286966050838611544697061434457360746139502294489107663717045319783264046846382805480369870476084037273687242304399031544035081146582641817285285487926155998936996628143333180904614011951393520756071020656975372501049576097192996159372943435582961295848106071810210313665501798165050612563210748926423491977301840863287027306938748488027472457280857130117910296186106784622242214977351295443336466412683048770828648512277349085008151303190566693633581621018721851642898802939373719720199969842088050384415965874860750908015327892115576908902492638532704927480764081567974267632594799272160551524319874829470149624454082342241059373940871940483268032136604136533408532926389912386217879842986999587073823217366241662994905576465609534023382279288366993390146975112714471106179173561269626875341753215768505676170218021378208589815818212359422129239051070927548676427006849357173260378281741986016528669061860448360947547620562736559507719477976549083324323294424198107620997634314959059252871771576684311110892107494067714452646178421646989790947419634815359955261859124177027573576392536727061889660208231498331632053621941840873135184308853126820100917070544287123111096566339731570776815220283055615749469484467024057775582676978429610826666538969014267477132870413971825168047869091574779409928941614841420043329346333093762640587472754513171221168060817873678652322899538660625633831297929767484021056111899570821773422664052424801069159624385931832024535129516591729441321380618374929905593823926726658117361370216876543132306946616295959121810650341047332299078915276758483430896747427908939522626717856677557055279842180631283634313861963412745669620615459391640327591222823561232603585463815514219095961507855534620354295180528607416229772805202992562521823073138412103637783876911556438911079403494976197243313744806670532109936429334268314470169740136180818401867814820034432349039997915201898169115970271938362713218155714465526589484167282626539305569132439619400919053308425729408686454804276092091387032476465869177898064036473535317446411451702778493376493693865414171158967815139882395348161019694463020492532675552432652114903748229033296540598961591953277017203536297036065423754425819997880560685232444742335029657993934108136600922325090940208620283648062281881431830942505994456645805482809310507895866971770994583797419094512346860837473969306734452203700589693921663246393539672855091416309129268076903377574319293609845018631011856483880944674051092473837882651128620037911070436818030050985820633166891388810351774300133957410129162063312649451172730346697792124177325781800639668298200522454418827211523040848780924160166300721062555703391505180473387922266526841988402184396814923365712826455588905548813988061702231552752705139194485313323223189453677422910401791641368681082405726915245510039480441055423798228071751829818489409040550536365752249189417484487002789605483193047459330775708361328962485932044463157573544181238013637963719392189186284528593747567431827239463016460781935758979749933650120006916018857698217995005300527996045798679155601664407676148578772358371104249713655200759297747402627933328141115733159944344654538134608749853930061906195919684839316836039677748066673178517184891901243315363533626189352538468187967448050906734244213367963377404757386557694071358630867952172046172615834341660900094701552727221417625000636709959520282190716902021571218522073280872406330940627435102323646188476179397123369392593138871984068242620480516398683342310678774123758092327257642926407593292911201174309236378196231296500919159369054700068767497804809809202069819909808696870802881066727453537027864086920214061174924033250645841069720923166550166657072376560915908761421969797947423430496818505650708215061598496036762161513272931344821261888052113414462906078562620537686305727277192266642982948973338536054108884876889788644656790650611364886406823077024471943062626252430985205343709063759461909688476231441177167001878146208391144738518001825409412308951198415651268733658457785612208662684787449948490147092224489144022347377940628706420507244256260301506961985185405499117114052439173100252053663375176965088046816391544172796110717212269641400779091897453341306876072832734617899705973028588513383955101927128516054825298488383506570716069617514708446352997457401548947754037454180796206662192110178512459031368262188780120901498642335456059736318265994502993483423004435676106691919413515192683396003441505905586181376370238503056747897618851912843151301005646699343406950381143765932858719339400328661963446383330336951513283153080095137986300516175194132865795048594177318263577638183718876985575992449557437336166100927692921901812292798024155238678200964550403727246306680132771623347936927754441289380940071039664401850550197615864189994735684238227443852778175746896925220584629762447511099830968402775247983214209458123974141437097679154041086777549504513680382353226777104623910842421550166312105800403329849335136609307993391529161122214423884785003554676453077244744055021566590046438190457688658094136747576638842463280220560670757679031884820262523506781503079606902039925193895613711822660155630033451437442467645947995873740627384976631272168417869319097771662463379474527076113211814622438415820340362571719227962604036082206727200244328797864075708824282818382848127346665522925666217889199805560174314042199055421817019702195914621712820601441667213912963961233102692077814036527008335853695140468605120086036283143764223804870045424527257493306520659736271935456977075174645816534501860376874019332634751068108233887021429499445026557770532110136875658793516879191977873398333134612142901769821074059409171755157195513073118138642878723873871645669939479919284483577432357431986078012382238200285941643792806193224584395759554362435498403499461980317911629705328929169550870797189670926266744224146801381895580859114970984739681289418104758881558532193503578443170024035245513656334940268028038407916708534957342473020028426791699980319962854221653152983368804286988460229367885429912627066936717396849989616230459618681236750937838258776960977385573594542343914530935880559410412174950534316691447826683297723211332735061795422477979465403708687561263918375560421779807393440592476128816555464361456218766217442445659357829631626870387252985616791439342062543749602215859048189324640778586608466362098454430784003624247808127885457053952572254950378695904760569888332231204659207099060180223245671015538310922565191494870926703597473632245942738180994062735549385150180961556287266577887588516260842703555133531500170709955387928937574170530806804507536559732310651922317110984857922731535854002929944266389898818310013604093159415898063748807964827138141483903424494861776214698923212346411558140237561876599193739343732448498481559287196872307522889388158528545449429959399483469258663781693503997516908985402478312216715865895818125576093995285115887686612888230965807742837055366255088829585852617370886174211760836333899642088898812215325606331798221448395100362925938969684725957909084043649559482892688262727686572754924363984043603294016077538702578550128451373466841780217474767527130374265698102727718284634524484714945370312269662516457656045916730428196943856035038598024341386843151855733837795442037692330052461714172974224684969634708865492406114679749281022055800701745136110871204795337133524169364309230918072932272993407343948992979264055646978019893062227313679165976153866917707150289120195318064465081883361049448702633641273117120711965349737012322925052617704676764645347810146716325237059690425494784996701163833189489562163185458586810884400651787366492723915848781587324418968094987839191623582085861075728467879830615757435728871633021069123824042373631726706340512300152231490053839331807578428760238872475341539871833362619608863423810105561505436304652288791294517222106148508564250984847985628520980452298871070042402754688885686972653347962914821213983759768327892506588505567277993097095145307441269532856767616214342452848207855308532709508068458093716609650207951506766093173069251127013856253901605270676531172240982637310040159865164315043751644950072394838231711697048887094929257661221766070515778123460245814016803219656697671149915309982962860491158496800379728548805593965335551482543733998607954276827213467345261520881498869565277400126995449247607654373235423568148436482019105297128978293279853710411234195391722619199215430606119429501315253509704439669945556963900252070676766787919702618320381492124101119334500254383662638078995741079831816275744972647969943586272544537818131423559577818183093126623821852288089378816624556208693628051096583937080174994399884371701234209973217832561524845376725238148812473154677349366403263483638806725552707425953833744563713335665274659317025626997179523159126105187567542515068807448676671864487573827686664836147031955444511373171345629747530818693179523271632151765789027730113284060926152527725257574797646632685734206469468440995377661849508743403814317003216105723514415279702723954859158562105548085346820918018348804387502528801183574368982607546780263682618372785128145682410929131114164617784396693592591588841661317721839189490032446035303045393259108255815285997801204504557789556758947186526616898620842710170122922009145970362713651499393522711131457277625758581077351704086569139100584926695692205925206375711498966757256917265879972888782785179335002822886126265160956857222737416308650182138484432054057171779645907760640795961811938017600621254628948393784744636806802515847755740592482048708953681336015774464095701474402501374407072125187483880500459614572411350606277590180413815055044303356539365361909688733468328002560084449613356001123485634757753041784173798239155582054009195731210278690012034138170386176811862214605538739113215321744723181233307859441187339024386058041980137322649983703899130010060608888331323633926103418181188954377333505158078771009451452318752982376066923839138727074644627540697186334925744861998802324162410757620214707849023162258123485205951927472312875881348725874871700305650865620774886747188400123549738646651102373542338119069839391936122106720580040588006030056513670641696826630904959715240673965068363206913100124287930267103085676136964212558998355897501291972064870414439253842792202377846087362628329141587156132041741037197200101985058001632627149518247113467865804257882762789756777071830503056088262187991937306552256359221321497728130439077489262446738153351420360443087275202790207583086404805160773206168390656018530924397827895256301112888971112920868125555340128147762001884488802055851110859641086638148214637300495936445510232138428646702097792367108451787608183504846871350277440578228191711195347781395855434008788825710108652287352134594729525469475514378497171239690285583399988654900699768939705663386785910821703586922877507742818641220378154135841042344420276464256858740988447167809775627852421706407708809029762886518756926132289286505239643568574044132588137604753504568025875820847704691034808034408251368527828062294947504495733234850164090796411605248038671638989214327757481359511839299617982019093176339512852139065043618505206705782469829198292840699085003401979328068522920414554218886732633678400119777906752634480195522325777299874074536940386471576415645737224555509829223080958158668626169753358640288285268102440640681130331904041116005840824167487784276337763116028019576378959155360221624376268672296747804625216075365560531027490835951780580037958558882715413482034413878685378765306985712566134215227411065635837085802599298631068571652942976871152169729192952937459020547743666221839503560285237727721993907848824062455642672442070331438773581730783394573776305463015293184905022025505216611179863662930752816010754693432416058867517237313336065312191643498175685445991222536018503020660845397653461635817720068063427718792471356218812212319570269752157597600524272062824184483849826311728435630625575145290866274828448511689256055903189496305830290669224608297792245566747592163973730116222371515692023615396127830848687111783565085962205077976707842218716684228661326530514623345272788099868316540366307527634151013732684429537581185052738665127422762570594932107738532825689780659371797470225301043941920819156538868202711075471082686525959250818409692188645860483384784666102185425264298207211957789822456106368519894411514423047585807811811498387558455714758862332113289736771397938122934316853631756322406305098882762621969544016564470485962394911940930132020656795984965121696636390436768634053568569013114057006976970232318220350771011690128236806266923341852721418010646046071423669021371658073085610507053493665393726259281965632411587442446390022597236554763560292256738869100745590878957166409309422710779170527614853541067620973765192857389190284036327326697440747985227765817879570468504626441727671483666783970545847174014338287138456069269230746366277846778600399430270696051305492291746351738156841744306717082558654335156700907425869825256736484801819297501610545660088730107255417243479894351069513922465677034435783048942174024154638962816582430921623176481379778913920803234380821230725904827606888642867437282123413465281368049459055578683241266605148573679703007534402632996869213675595592641489211032741785959719106812263868933357937644402218292941499011616504373830321911102767698907591671589511750121260661405950517797306638708103944038744682398586883674573677044659325873851765840113294215190489130815623409253154936499338642569359194881208524647713207339273715515587338859431512119572845338971452033037132243534843627196730945654801967516330930509885607875249406544781233516740364965385657783049897911504513964610650513592981072707665401810272275022857025732594778474132332660102198495612265737464397614338789617396810428310978473105056827187448549893593282872313170891039452398911122179485522688698001790360427476841316029778384997566312024942004511503675610347269076996828976051881225996803474562338774814427954006036746721561480976334144002322515109885909805557211287090640321535358071749034456939071100418391007866431410408751700959545705298549261200020359135286510112936847526877077980059389232535461246569021741300147564125674150508351276713253754343801766435135066420271793238380612021675572955617124665218335279028106998284565510382013284047734914423126145354541547239654777497355773657103036222869383980779109158426747110960379324548354195322047869883682334265739415533574613218878311098713997795961550275607694833927389286531760645786691010489717703915709351957834996976410724068365047157590046179960505765081953920035709824680477242787406222614444242752450815954469471832488520904621274471425233048259622214812022205242621792904197729279510098112974262583491662406759698736495129575496689892727021254938517981144769560265990278758652794478362505091349753455225133761020354509867737600954194551448148761569118217825667108943897568093860132375537039821284797612310998255124302176747527623116399591759948071222243248015001045092231566347895690169422896607198574720760065525767805448954964962013120448014373317049067915361640261886181382254033596879650949905221480439691026797581325287383149515921532288284333913577306752579524346219211421992762735768505420100300209233980329237325672183993326257711446104535698450533668415160691425501150832987055395193233956163962345811727336613422929683129710916756102183780449111036042960570649477128204345978362363410069301434770136655958183439071921831606338190649945599578768132708418670721798168576561876473327908552383585549040520750271772324812405931446123914151465296511182783970689497799002402535193952129702882909082689709368130118558731790325743842875782823593683302786150578737642721805950731385420294775381267026927324774176786627509825927807812480772673839007464347233541394963070700770537829588065138160634157075859593610913746813645063451319037869085040749093232268353515998944449138491356740605886493611408118038502073323150769028051699015419011073459402640206841712043495405953816854358135266317969419585001010222895909665531626379955641368878815326970476518497563382552858880301122777027934403793455175176375156406467154558857438898391861493838497719422738985545890250141119373605115021491767316925067915187846894648524414346732851895357072679222434868465170859984944307806518981674647183810851472724735701778666085590443271985744111413843290339571612524770932994509531730364797843668278853997075701088025636465713599699314477339890180011102024274685508777487157332650638882811450442726705078449799363956491930679163846039380091722279803578281995336302219126122569291838191628512056450787662123634888386819472985927668505220334297750494053715957297712629968783521085969069952254628307044173691084127153863356967208641355582647438043489843623045871366310965556478954091413134904592734246923773569151394036677750267521756609125495272006357477665823444494642448480249378120973995019837913205469248172503310653465166241485656026511938521068439840947351754098533089145447244976283133971481377209362937388999335577006130298848582335287868325153111385906809154706872957724710781457704561191281755039031167629869848931187458700950698002994934498930501511133998738840350784935127553760335078595839226697866287905651464131909113937143991359148671144592541625135516754034859578107978211864356190289080001674003806875720345518244756398853097857958742002310194332851273286327354570060582773025815899348573839704049050241717668024411152376155891388108580751105738894548519859749727732696325522627780408262639293668996724652337783890099434773596522307029113127200501061888670598907961344960669407168672818493967588935510228705101761729766573941603669856187778335219375608573124201275523772919816433096427255844186885032068814637064407375707783384431194760497453504736845294025987412774283371915189280863062394733509194779702081102379099320119059213073402056710336677703324971774028493665152744639168608748764670848785629901777726640574684218640285633681213042753491343014466345338216592981907284252057226230742830808379154265972789145404106200428941224125327527970941403515304133154338296737293477292603455528627095218743668529906615537981311124511330966764375904644205518074746871570391628335153124312661425559575556947605496928029528490979732368744007218322031958202773216220701697791637284844520553190686095147130432221467003091377068281667480614159396126747464124420545228834402153865539324593950082618334593154831818292882847549487335636357829177059190109843142366816702288277876788865648579125980950503029380839125912413550920377828888300902673568559159851137474397051602330809473182766382576495308072815676204088147774696988502214304537698711844948579684833098660218475698802137505566293254212831720947976397514807750097057946491906103059885131395478172903927637389230940924113123994499004412532958972251072261438328701533736099643653740953846324257176140025348901971181144208635250751509294655377358118426320675222949933021835418421093811168841372234622163091711173811002906856826295995932705798550701678648183732997931971456001603436445033375730950354102428361954456223936491127185039897539414768282581664817408798061387042862903822319343803154905961620518803581568617275735322708404081497932438495591974953984985250296786323356071391319404103571375047198755357493101173374960672878809854587934927250295896615346408714474995534201864451246155484964801235031096271239001566803087061232237790244570432839766600230947505896309229267431333554527769500553858526209321715035572776525848552076680246892219205188862545898432919939485870007951941320016009435597325317427038109087951566663597803027422134626991580924118941830243331816840103854582067878324791572516759080358179057930890375372898819884465274832461984524299938289636800848792118693552555657770544609321125502063862018916517064505769582335180759139693501572577675988484497147806284931380229374448446635284469091409836796949393428614355018774984105671621414212486175998439391813088473066917297030604653193756144662935630208162869139144837654463263757332274902180846838971632856325442909924314338761944803553162156302951011990917280978706690326393684685103205303751519337426083250174349823754853970177210527325587283915244159997311038009130997974794995456505712154378046186763663330140535672636508817181953626648079461974872431904963818301827233734047556699874233929979540166195303624749657901102620692777378269298226912181281293751677000216861556681246462691383129426659149912826818335568221420013152700964503291932354758584667561370169651406671477873361764395541489218775104824123187570220180573582925586035194964571551720906817319856899027565810935606965195992852605146361322974985788284298644970998111181905060380696322785487762594835156701172125915766296781837738763091780785844618032161558133413626812645366116098382137359011143384732607074556540351669918626147793236103170439155920691350232336101598593159710577123028250533466999343896251202865468507968554288771776460018287803328970760883693341580443034480373026667351102536466430212054390955735280671847171095648700391616287315932103467116628683809323681844698982302408654655283960463846056113113181575810469152503577967751072824541736197808458685759541325634302846259399384924848812475558420072188243118777653779626265932649360178706679750318091944420231147583886306996423283524218622530619396277558450490476386496320816735937019706374048029439986169262914430296084411472558664311957132244829737674143830411291563768930544682440704093030012848737142481133629523635664148305898472480277504495730292309786134491385690964390692152557588025094284249546876030511490852750016623433487891881593036936414611556698477714653829478708040276716114776400841692108101290865683017752445636254219837915184341413467344254857566518809111483982409587534934624352194725312547249366150296068320771200454238253402557597708045621366777389873582201244049159046097890025458494399225410851944041978007892843198213382469139761084307810850751183773492692983474966383858052979737411750325949351142550750488411086355314723556788528164140149835952959023109111813099320293941417171211127679992524055703356308490189115159360663900524006102794458501016639445055400059258336876461728016778636609812851648173592258004701770525022376053881233026361623398909933359481052062250203114104670391005894530707309046605605696581913539813532142512902016413295688699517002750007449490300038196744920462044217253039080158000315798674633185197080241677796368396387961042387875031358196954893592139094728631206260307412379888006669621414794256257856400925891385356443101158212405103624163706056853690847168025860014670985597583233743970498776603425875516476505632893797112145644811188342904331854930286419287066529773505030987515927912581730796972097748408125390153667644555915650802586646754334716836588250920657743385498149284687368519964838136792468679381377696395905834793838096909682913377281295002455381504680875399177196410728323152316133148209339635337163515367773151147940561532044228620863822486344606871643877487022448583241439670701970188479865130800684379997996872684486754702917012638844897069090623039428437798937744481882434342591461969405992646223804505936595485354960708813971297171121907060703544938258880625634062383322523367208976705636837699329767870353044163939553466626807078017561001944297267451024104726102632748705993774693547405126264516737447825310003212199368767214220879102229999437589173938070806971223575124947242234562740964150496291845786885128428100227726000282949521800976912255116726854752864486228822486221668432639415433374260108812291691336826601351988828971237402887032849130430985589705369101558107739601721618991688989864608890326081325938185790242764349387766546472380032324055241044909569570531141581106463676259454368249594135058444672007648191753442169456635677136752960974909836377981798670316476288267849782618503564449366571001010946969070593484635013248797667491723696912116722986997754828332901020095069583119389214245193723663615724783308360703659722166323366504361950058026865487972175689390200671120556582138203083978961892464398960114355465137506517899516984593280479430212549371851412362783948922744141389152832392098818425524597538751542503783575433992828429767238270532952057530084153228990972794862664504516703649344959076867938095173071161830629944159068600943031475100864128504939614256558473831485544388412987100997095473205457469361512419504970662546287762263226293395295520131820748159996143986268639020842603732670151407407112378973435653375416157841071555746517349511523452004400242788575331465797671552753236430461227996010395594678774514193037922006632773052002736775822708295958332176865218809892398596062564050316995150245899240185038618147206125218813345708331005144475481065010721718822902236550549163181474414746040801585250706002053260841358257494100742702410634952499672639747889182312138685671412195113719959580618469967721628083575152529589287656265139398010251904680997935536005069790584322627302939641728038637870212775084225591638671965200043321496384793381088758296828212484551568004764166284429425702727281237554152893764579009160654580828979109284760835535241826495824026005518540473389788679605243495658849746472035675386561463053170791159899681793131289472992174171802708436014847923611709794186851936076402150184886460067166019788043664777800601792495392660926291052329599588956730488611379696554993621228418332884253413880215718472193181514340347141977789844987855466040851951886409217441824956556497265027219256332590816953283777495151041250775820848643960074499471572815834704800130019736334159458640783487504689578360522317398275140935366080487930008759490807658339417852989555133867873665638530381229643786753424139274596315411747151427623460745594346456357513981040086818485564061311602527471018205905965575451606254518095598892318270629327467914276592272438096601198464847045734942012209579941677843805733324842912885404445298430085524375242267650377466287476972404454462139359865545915358476795222343681259064187952736459835777914873281545753069174227947968023039395005486411757923262806605527889984026952743429548895026508354134158775613592135878768566186903297663373073296314085300678187125596921548722036274388931822509822884107325467254442802871299772277447320920491596759256154934418352597837260824257204173058068444001931203576546451258144977330386628795282654114731856368599307258692247185859106932444543611753960731622389731134496239706328423919213869445445486464358806890829958344662885496030410321188572910061686135857709185976400549297441621588754944672946583839170841675613146522957352028148192263171488873591429829577609301369123534154835334908243114298479846197442185991624465820545112416362543448648404216549660570181575326851090824741958975289974249208775815535719687253377682831129981586498198959946169177751549163035609216844677072269079869605567742079444922531590108878703245017611862784532899622336803288887347740111142629225621607884527841803496448762595748257266584005692050834263048054996573148269822616131352275077502559084471447997283573829469210239093605229919531937757153603289109664471527825200293508165372446121433020527549229938683001198587940814530357662190411027203901812748574580567347749999046991274635471236939271842261687353332971358493586412233195500831549108141725371246859409406144489217523974955563299852727799338566192320192447042120030857609470068937568775906117726779998024218985203054867817581925280300572950831970885391972386926416321948310702232537356033127888706601796707435441730276324455285201151291340969036076545741784787382419638607082139174666849121063614794521166902096550302234590999204863527811200408065835751257191256679467642858782228276904658301713953858071166438897979590874051401904032151524802651698739494706587686396883251391642247133182289854341989725639700441239717086540254268217101354694901208006810167173275044098015552745697355351211481392728441231721090145839164652863694992481303913084806838553619477747623749086817668701765277638734884556641116078114817915466311911318674150515250801599324823491323105832038526429460472364991987846795279798605542436872282200688602788081566001268924392613530992422339023714443259512186871152382783502448174074254192302092789850506292552161977085824407681081543392043730727006739791601207669068303437435334445715703599222653848351999147399783365909076598099351674716273570201391223238655451249954428453833912532468238682410471968639747823997968261517134908461404739606039519861651013583627224645960801706119187400515018524537116331007131901725125424576452494254705171242917388548310829032001439494338062903911091418202278441963699952467538143544964733318955512856198458121386286310804519008958314029084444795711337521996557809252422537335940111435946620544997101082470875328331113591363585417714875199316366651049986328699899855605809106977762520715412540163307806509060903096810350943399187549865085295882002947042795262901978275439216640510261712054282523459392044792671620386888139204261891529929280027319345475312574163749592688136039234633514558673033874774841074006545792709695576660025163742779964506342260980470733805709855112358398625817861603942614834649063735927764751664824770104821679130243501618742824177326219999763609055318830221268445816373304086956963881047149212643830648279655149027392452136180280462862060117861586356892546725478830503673316044345396810029875598759599456444652672613164832112551923253866673993066107983624168387625791832714035792947284143775726294436273490387842140510009478165659209655340759202914365306087269857139031173107061750530098696108354318641279943671020649783002775129600062753426812553803430290829501822003327373130553996783385615539445441997977450388661896276074089515777362061964029796241205119481032742782233627591863865120145033067506310991731168732540222432595497792940227048557733638821094382341447826068609485458566095199673979413710884384294647834428103304711992695539565396421690333587360426026906053976710259908992003463105680610419309021181178426792023939080640205058586087724809238153536181326295893328168239200310334585558379696111234546047479447335180225762852819752943593586355486412924957021035260851668303526059507699833342654811292640104556300735260791075564337671091760539551014744050429390533803511472170532046179766645136198435973903209677627180487972394572604328975050896407237259602091543352095360143923821146915556733907370767555042527392134753267940157491988750148292302622218657936880683996698632301435859663096703170503495890675348220813863332580790165267569061684173641123421383077140901521129690816825233383926577603983303664033475724182301891181401770478528333232736827815347146446101077672735279572952995806311422309294881314678474904037050024854832734121139487516993839623101696455016238859051167192884964639736763910122010633155724150251830530062416640803246496088509821616873318835187274317530230267958191621536989794600503083899648600863837310865669284972570008991611435083609243345177755496163785384818677922076401218022390782522809906600297231171858436372263440882815433420717096091252827890224697761009555548125077974886266613467467904944850306734281909037819319890733346256362643618221514127213893848101209302135172628738151597528967115739399270258264579882647137035754467475726995796458909900611459536906611785243537076829097608418971526739190473223582342914269837393244065172762630432118370535907792633893506170389959132759929193673262065867739763133673119465775954814806305142291489206973991577779550936358447401771643041990549457751398654183634940544564853692058258799600336339393821966583954551588966735770971565125287689535518724651717341225089106131873541004978326486564779596231732664637847407578138925077311223574781427747294617763250346762841713156359985526675968777530066569034713506278694525464694229870635372411517008417361013136710208370197159147246539583211927414593397080070527605586264123830226976329926573656302484460718593054279475477918558896066083218261641726962800440989033712063317468952500198132025359915506446197205885354748951636801401936373025018129134989373523456292893934471885412977454473447076614624293234282827199146554216585049328608423327097424239770890779189220089480869471495214412116741441196241713899184265083365613813398509829177437864108739090937492663986767242830284034894222305625399870308152270747822085909338598017194687773957425735135009921975457514324585365796647045909414790127605271781121661031554865781239567791757631802731369844060215853170418407026866335306436625826486225608441379777329422305582444677720283903068096416288925485467377794790371545649953486317719685625843149003100071391788905488836726010406034683720969695466867077032362105732284762613610802459592385828547430954031484440119102587176830351537412167806083083951912193355852278895898225370881260062547141843656560643117744505661354266977979001245462605125516290919511523100162881871698480864830883554019533507258817902280516427962699768921754500953943445388334324869152846096657145838731600119646001541024492306280386880836496050532638486534502936684054311693951237225211111290215970406584690605975428690150358036644691027465459531749947600971877255028524304261149782164770816037838709793637391893545827019767649798477151822791211383883084701117812580915751559784841682286400192972967504518813889783829142471594746104528043770306804084283157941173337236125293998190854438486233240746382788012935138786549135436883802107374853702976664817377964286488571942507201031955506722218509366907978156790098791262339937492656258406367243413472990715029919218651442474434050093540915141831853361247533938386825953117678954088541062914330593126538321862488817704834133422774200346608744790838017410145650406192825515622350199866009298420666251542723112598385714382813940803506809821938957586781477341022008917956169974469798103483977763429427629952069673965971508145170570754494389231302365232672754331124036526431068374174218523262817095016645026591611937461804437524788886309856418274483523897989317207504644295003748036192249994680212013346150609616403305378698907343081025760437442837386063760626433119278487210193242280126553084133299518312789781872037894564638569296097836664315079897965756829064733604199968436733081818239116146854201048599675872256614694741450418860581012274187162485561212254378647314339313375798521699140875184044037217001819647615751336002157448907973090164857445826574244586801311368947413240153042669377032245060989799660724336584514458083480488778882788900787323123613213594656290461540839113484728448866350667223044609891009503333926356767466721489996103406007004403159072600072030363479420509801067954357370782776906907342963794904644742132262346083179994946232992220417967124967070321113185863003590861160411687923795371659479719789089948338010573782721570947974748526228920023680133630643275455822059718349392073984225463432935783275732287395931811033520161657739846970151581111776987579192884128868562671892363569253929745275793072738944522521889549533225410112509956986355996704427642727406575095797003600078169545372587259155506612905544390982985170097882273184305901109584383001679120336450104539117017991895325468112039946572865729316469930705712147274851676499092143546901851318985908083275257925072795914430816675556109769073481752124311329625911408840947513943313720988844427311624072291014798053054852264619295619936677440877807107266214038373103691839921958797339389148113152435180173955469257846440632733086252429272640765613704565933329387450455934719730865244605273409194335917032887601198404267492520699023459394979839643763901502575770057429498151532196658125926695620856392488322105074779712620962299935784646105928260383602650670898323845743432817595048612533220660938739405523089310906241963241189868311557808043569692208436575252588311378244551921171484384455950612386067067701108911334687361720244766136969616762183059260425809627271962907113875878964616397594762990011900079960658266010935213467097129507546517858311856759655778035202768930032297060793370100762817807588134643849023632177943392900988601500607772507357995731770749348094757952576641649313261772222757176733428464825437694045387430738512130074308227585144277509747746403822401357697166084129768513292851837728425606769125679973995650431151111565753886713878330022403192916639509618527303304536057637685790303135917747069564079895967017900770748094613016376472394201508204949253898715947901715412531095391872191553217435392464517714206968279054844801009827609713488402328606833058439205697230123570458083022711572372778688296803190971640338281870938850825736034802813497767120138531555224475394566396123160670087477390356474295775920939421278908123453898735543195562257629741982561993640844081047337737945227963724083930529392962614524428848659504240674920184351112593988125164801842847174005670812621725128324155125928658815283482443331153914988316945158959192205803438245722723711084399540872352444607527805722880061269093727113870360626664157647161724321263760966846824800944684076062955738050254648719722713555518360599654439210011147999776298519481584415815058040623528036215423680014389559991042207200593890084764773969609739364977171795811408850930267632777287723324610190621675137160955620868037117409297316910276341482756998073601771036716398192207697687300562180563790126185094455233614301340798453620793168643105772744761173997866951834775183157908287741995704277398388751169971734274511823276951725096054685262330048168357724283183105547296142254626406917627268269034870929184410554141640404622075270445075134469103801746407363647755211225640069641331668770340092267025155845430513628842519646521360027695007563613915469464074956112851103684637077043846637748776234218009354330152316028893767011106297990016971627545302439007141250442735197794381511616199143489211076897448155498259683833278067115893798961025222767515956390495920651356899534808727450339705207542197994563402521712820630902658583605304984317714121710776251117800802655846278853534429422993480303615582294623986452921379335599864172701432776050800173532022696593293074743345043260296440331728774434708325204849723857156341316271907280067078938170545006287903233981314184917365637414354283314171189998502943459934195855881468946597795191570330309160934908104579752621887032564266262092660041128508706514092905494125763722121636694641988789262039836672090779433998508707418514739118864784298424088030942805845863042715949099938234172679028691238240099854799564385103474803810587740427963264724287471992458294177456192098865426099574320678781549224563009142262735672628871217371648129332270781623484244424303203962712907944693137344097244612758559871875386021127302717116014905721586805494317271481462397592788950136261996978022496155457798245645809067790722099756972113413585144879537800862437273543822838883569265359374601412597038518185144407425247859000380680418163117733178844163118070481598540751234880897887407646334982948032834569119377192385608737466261972320743078675149339418741916364290921849020869145308807456680759984928264034556382397722121155499725895650710136987683254711532926374329928525853550035818180445527796634387379513783503998050549115513246168725957056908466298128108659789140711463081621586498496892854929344601751905686453487434340670443515053869479330521031917460097334622261402523070799854282864715826625850521943913792332779375648171516594198317175047355795396097208669350640261719485623139141998466695601521844928824703903245095914914740553588601632982566030819925103397958303168538144023487322303345682908157422085254947688020592632024278043534826658875739409063618959943628678961806475694632937826517165726783766875274402501915959865086570675797565796150683999819869801251000782121546574774220926654979074661316736698057720391085621650715147756803736048406374594324788276669026624777025200352212257970744262350018722240829936504673808922345636241899749310406555487756472658879549105438699208371764669380696618554776497718813983272434098010844673290939288455764780873032721090020621731531214939710150186654661325242384032228381962792853223118610535941234100274121146836992662875635139071107994101420036579771448994919533716680687044506930803003565589721581742674746583853314325547075412478178102276242681452198884873979331229882889296969715230027920187718353468812272524922431965093916134573152343816894520806796287476355390409257457065429670798883992113722573988976955830655404564684106892823732499482925911042046308625388005990357379952916109801854453352620682733835036417695519333610048304373947625706983351832897478910432159238616654707023358278836905431022362237552267230003684751108176136473456777755056620183967324593484258946213871241253431364922933391089481243909953269154405980260726516812765982971306492304889935018070458900451906645736998111210039755546650453153411042327221717065102657844030878357426682602038933208383514335787065843887754560944450020325989242311921315519222623499615319436349170816848649250709291094908415149465797937368693342416337712984472868914794497550892364810945228184491981516329168227023555091243066743936122087277474894049841493516971336287136770646416921077683843870449322444291108476101772700620029045398615498900356311599635134418933922656429459759290954262920154636889773176820140122873322351096558582354496290800835707981177396319651451485406528296945823926713832282179691744166242584038826949402210506550120939126208163391602421771231499806577892314058878544152853307881038029471850422851905828566496516537606779724958857577801246716077139614601749214305403016844193280275526852916060625472396204121194677545850066459956904875341886671695602352691238661120468278230936271210937155024488636073533027241564606086630213595185494007660036356996451212735905308401059065492129090803719007450485983017805935395432855115905967437893761160214074205842973785733043185027553805954425830140984591198926693281613260953715475651302888549805073619108016910385675930095019504976102467399917676758439677351684026808014555122451883115583370899582507879878057820838231250378148647234306520169830530780623695300664628974548396913238749060103399746816668178780047521783280976914237184515448055410037001778895541899145984114824375747988571008759944873806100295818836156387416117745590761189270562697814644395611949138589764420814868323511264536531607000292465352564686283862118650619752271696892771185835634642208707742197403529144232238526610393263738506601115596044054565191669814498020173244072842032591573965822035018166979556583993197346148131476829595908840165442449862603890453111865879902267271646668439975005598874888483092150958766006784986194464776797843837940972688263081933341452054979090590738444243225413697621110278017598157913561542393683883037285341194984761911969380217046955836121524824809294642590582984882247366086817872072636486890029430456300462575758872993480578081940203640262302017427949347607890926715272507134209638865029118452882193673309830494332933553010973305761779972281331719548956411658762047993727741482360592162366102478607698715977035582954917841282290148967453333193622794957671014519596864722058901720859019843679296905076375676488795981567666444365962558913811948962805946175423155015333282225832545858860870536273510926616493799667830049753294604966261206838525382106499905469011385910879944664780562671096465158883104993780657454452931734410822306245214686569756502978519900850700958196505291301846508441463731795915502464119018916426588977280825119092451436903899623095887890408736167291837828419395715607810163361038885044202416438014114059669265922041510753430328314811617959075487924241430820581144082025550114416593701990571704478315929759388556107337226724164466219608561377724990879694445807050752935707616297767325722312141915150752333921513387436659475970171279078503310760755488508446331555615912960232659755458234041847531272407847424240632713262359853566321280095636865029872086619123717115857692498050718021408206987644561587344687704836455581142315331530039946201705420682616905977979426131401066527039692543201940274661757331382040354008776445448547018113027858137603069768767424938246407688587724527283771026485886979091962132758735739569905896952829539478224486116906497811802399058902921566889315641240440862620606050089133867122491209134034894975883087353509718104627050299557100715973302778389675334150420265120704023953749479540595079946790487687756906648851106247022312298003126167310172912962600104288716114522185126296704323639465043225152113629601013618391682381209953873571463677150870890708063547063775524311949639294303604926149932489608487679338598380579552529177799273596247234932206266892023212095362112451235033801985528635772079245797462836109470427502606224744150295097363823944380285807197713660370347138912614623893131151397225885375474545638938212013704077249477772905648793744449819262875800189089181907554183902381123169347394635800804018751340183108307253008237054743836261022540241013300072226423109235136398075998077360446885640052596545502795715463720197268319806615237877037859967542369071439579851313326300526971798051623819846857711313992173764969595723159567245800496076780092478587951076656945709745607653549614065395765886103231123191885668352445858910454171894847060643690378173399197441938259942586866110969536022918264353312016343173290414939612635418643725468421769211672786870060980556243556245655095371585498761042929436777936254551715119441830903278393623221217578899566919647846897293065417965740018775397575173438097249012208058861620691041022093104127821119390120545505917078194769653574150444904092792882399320878472853495463382759720312825425949284192052940025516105593349765270946541256513588606067654741043552611614467026522315982223990301191225908103662819238810050612321117371018132206859674073079544247676155608679383750014413114148692119522417040973052831056186534696485651583858016186936183650342718096058550967614451388383270007581303803336869764518156476653482423271149054971526352449685046657210671466201185855775109476092097103990351583816297285310026980201029827788943906817801558794830932421026666554226147464418660480278446421169394592758185873687854622251881335409987942640317494717704279811253190262893625269539464253438815166360449286417624358086529467802683964269447844131046947109517679374476399047239931067872733679733591646175393776999099751844004307187441755521562732502454195344629522302401189350869582588808995496847334319656009714295363202442958195710170057971601639147407965007294530678249176384561889807248350018150444007887738110889290791282629702155386581787180621084695989971792240600461521978276173778739183804553942396483616317354672486850579484863916370602549802669529581606801297036287130427886400464171980405355477271492805272235290323673075787182826041636611823242802111482774012526044730369605051191488577291763794509198302082762183300753959555379107102308141520973269621700192543267141765355659252129698515654272834840621609159097425709421348998579029990130671767792445704135188048149740345696197603899150971656753313086865365325730970343732547587891610942054038795611110364183491960006070750519146944154222647023384115100307674539959966625868937531323583446479711441189247340100669835402400911411924071363147080800637027643644795610088483679626220881817662503319377588071284971400711880654335422105403154093817872782879314207189461756842821451141544196736033174037233897589161530224785965210307409467174249469348224509210087974922638579114793145627565134055587601366227155621908659218777795489733795310951119711104011471533547840264541652885731554200569173965539117146395858915448317757704752283564595951702336383774566265608202338981682091903117012459611165851601528921828405655390774831411420244852443337016560836497010078824232775061944917538017336363640975467802996067369461754065022179163196614286281361380451517895002760911339756859010270987181598435240916109849264069724844826979878721751053900830263137233667594495573085710626569292251565053536012425044866585276815084250079037141241464739229947794301645187339597399246604681074302919456654663168277288601589777264951506269297959370026235371854293864324593327030995491799282861528715234199419136474934378987779201089863404611624175223268789430843893322416581163317449276525573665242953477030914249007333030253484837126116468948088451702193806057767533229715629218785683451542666486848961273226395879072335512978417095724858699256402541839351884188674113151248868159587285631377483408159102253181927773307389088665128135224227059016483693537129698150129630653420258767882387246924173196621599777742167187033106179713123812701581340451103864583689591575158049676465426967281019637001873065304189201017983149707557477076809673123477251606248620935882994494542154301092468236593108002344342261156380089327220854247921753134033164351889837005159966231595160380184876994888474882702220659799138868107763972128907185611547970992636371999091529720428016031343049352048925880218411835877202807302149644997184246960284390141182292592923703084682108111541181596552198232347245269039939278973765480954916313742517019392164515872650577529471508612453261392647359541274515460186294601328867094698758752340408049873120736927804338955386836227887360661472596676081193991236829217875070616359639371107675229917604133353659682819382217728523731571400471515320166822191536068326054416651766854397176468379760742916567512483965717497430661886627904305157126285814111130447557976938060229771658253780206421704621235837399716744530406330376170785066734109729653397077260566862397302620039478457967113918090115095870333038281002742815651981081103065570644371510126225211104441993677220527548818344691660152756240293970110658637123723566253767054705624362191670881522258667396269927222607576479929196483845892019320743005984411543155527268003321516295124840536724047464385932190783921781322544138250922016244481879931728072402127372316231320019882225068283450435792015248876779951849396813705649294228901347739607884126625667425202145984277740537402350800678789797411140321161540180345556424139553045822926561775556362279639598889645739533313204824100522823634421565638560605876822289721368651340853008920783222251562759023235772215895332768245809541701599854114024187487896036725617265943376102257062672661875915799225271670821815564506649300591190886229641063052965254802264499885010233230046945145773165735023811032540880106220310121366437872524748236103588180615984582454465093155930103717023241237909878913306332942683338756887570049264906901541823702871120409591831828179333623654713031732990011124581495682123205908049733293131351205394957058193982114034910203226196226408633788437386224151697918665484506240553863398104659253194335873034004383082604982252067861085396563749404449178086336127594428396387899455034964774282353631871989995371563806800207146753533775297265657862303043324102096062603223087214269274144613196643336827740120518345741042295614276294593846229565570026110476246091855837029094197376014069649206433962817598859504919346769874155651708580192068463018133649599090524276104059763730490596080997794457663389976479671322655441848428411907307937034142698063117191215812034472620388997905580690844750748669177748308274855132980936735107118571557278139515703622336164236375344484570486790119013701002105985524978940268271893428784334974430790787427081495622353196288126831067619906797380869457113787936895708020148272661666252113929586704033161449884539333170019191423147578473861684247509820667020758284729980722775839341568042242054016808912383740203743324252095867752721810485028970170535888208766325312499728866315563254654242964223648519495359351251446147469303372550084165798825374038416181391083865648033102798226359029055773309121865249785846425716882580412631910097575540433075484165330440285383709581069564050967993941150386187448340885997584740383638877638795730600911244788968963613570712467483861750392752762297993469954624016736879135149685945525694079691861760278855979273883788949058121273864018410646620305424875462503496749363752717749909611158160495355193586329790520556087381488334570709832007603803812901720988978805109260557642465142387217255670299785491490807120129350395353772900342533633738483020272614498302341570061804014529224982021406637627556891524478765052044340186018233930241286667779123922288270430881989989795428953944911682294390684753949982087574422472936435623061840328124097708332768605056182708515634468785247333000786218022074130842852841253674897533810586058838103241845820814096180654307395069604515866278949681410045840572111057182450025891326761945307713894719169477979253989795780789253078076845702104538165427480530433291409253675659611144050634143028133938203064638509069182796182844383231561006523996295808450914632829373852166824193018561253571845013250246212720711723054601058058844713659939261317736058170995139703576789469831217797508013536689817916232357148046292935709511390153681476058761650858056490950050149801199159660238353483435826290036007479589853447904621912626806749561312432428787116917177940255371702010049279388422666631984831394323438203115977604778260782032155608878293003174170929016706917731048642310144451026720658635891794303447487271842600036004121965656961487977600430580608085976801389184950655781725524296248349191115361537920518155026550571534073401737532167631839234421848337148584221462365036256957372014252681137489809096101734707149126741725283810922804248443103194169303509648888415475885168562287539906377312040928794391202887145877363619013076691810972248170527974530650781176460718330748386643780362365448364732920208288542556617242549637198713591218023163148601904832886710531340038603317988820697003035559498140193313098691663118153091375236276389852706172461096335722439109970220674665356521403566387238103316365908741818700320433255220938745617423974804108727136039417942087692752315651875955067403912480074835217068635417067986611752195724837990169940775575104651716612368095625016215714217735937768652714433532905800444593828067815605347045949960690144984143735364839219248882210287531930393869129587302706935490698439021531347211193804979441362698303528215907789273781570192899046866960392481213065937297557597856853288982981508665808223648064248892017468888796769082253186889627385445971100298913902567445232935756421462993538047133942737174557750493747127764103793138063298574394147707410744983996094390611303668610391489673919849467354759700735734618286101915805903561994683881635254483850036137917000104442960140378466365288301728601050163437590246165160459645834244810973356378749589144503519714554762131376600138149276676968980052735160408830712125159142707762255371500756405729495116094632430195898163342011689787977808102495047455072210182516962682455480907054772386009596215873636869473148803726264256823795577129622187040865434204171840111848992332138318156529096664046936037128433759369154499671366637418002346237678096505448044073167647471655321577892842510419724729942107074826312578578169947844275595267180317363489122968849244908884492051178337633702024398855969068052356845925720116814705718609303206200235970004303215380771073728461404389941066203926745405993656182514762929486743660103320763184761881197600037868723580359115173906899602328296974644986227091275652785490450915736432464648138672353481952792602146659807182225532660835008009071547338680850233798356982994537868405168469356378859739284920829166416713023157857532691446443284530194174460609949144383659457889732005446605526639984131667420073326147006560122825311837761046779763912190378400742706235461802034291547287206852326854191873617874262367323197084635220741615877966954531714389455313233107083162407548580502980030641001435255935267816668635785463144699424325559591426074090246897571723489072041938867240631307476559993813149585384625174086212052825942022684764560653328481530015680226493738705327940198653542352535247894932981925064888650894420609763909583315128133989187105161338299888462651984309879948077438168159790217293051586061339823324272825759417949802328653733420016678968158959867619218395348051203776677924076929160940572277377839100401784998661970320414253997746949964275424511569255969273938175978536362071353909938953444729721703929507975108467942031588797685013774044806033719229270686385120661817930855228736894020361859684611843089445353229851000353688359799517276884657696115182805497605622172948300224580955052679925369091586199871205276866354262954405533844895335512306609912862037996313719742682767039795068533956811127642481399620734655329567198991576843066164566865123293012817159107100783758365833487104787628526711631119371801962506261260057972132132609584404196289188742788673650827118611159004352958833852146400040783664332471055990073264912380637576392679798914662622331542066247883156199045935068318573200459751269962346693175021811514968226212396882134682005510093851209955951525199701612808528112075975442817570821442696523618412260252922149223418470089894283293123296477067273153936026030025564510516268513000108752138527783775356535630473237739239813235001715025178677681587564284816613316561957493962395681387554247848410606176120656477211789165572361020376378735063923773603552350224990788601294072758919712815170765946378625659857309183029090502247046617826798571767376946760874386168284919257998150268859464023560796880426685569700228008388814748539202426268270586664627903034523451343649188790342783917289869128634787135354371685913613767062581274577548900427952221900249046478925169765481829696467984017568916033306853387432490357740722395555871490667133541484495463619483276177263283372465116371777029174817888112636334253888896087759714447645021529022948465513629230907618300185634090964244272352040049739509466962083869996946605194210228673962942378395445167524500896855626628789322580781481443893169306713369507043026480726669366887678494366920561818765121558217834707417630815162003080590738300094794238627683120128315229101618819570608913850610003204423814836959325846866929774824730886960652099773722361285754331368168878827851258161383686365636702045140575391069358847621732345355222416359821025826890682753969004802873620821958428509601926551523244575900039531579856850187632002750097200736795556497339188653523643027552221834423804848807413102394655080206456221874389440943091806274868968325424577188399927933744167914507942026121388433005573472687468715336475773860976096915513419320080754356349097646813155169791895966888844236421031074857420028593295861470947245013281976284373330917027435421204900671670207829380392802876911828583918085208166931106889615121065716788496584128909920491888282676930752841529336906757955228975231916921571602465604381342758433795516758309998653338791378805451897014051160539827383745245430820388127279575185396816272103802817686588820160755327822859289155699429431020209904995579948805317525098661931841498506401423136771682454524168927319408847236888859216406525185091121384260048655862313702603077851175901536978930751096954553199804409731976625507852523527640757355528049009188866325917832578494003966516302846267334828571392616988083032548726917411595686263095029502977546539505021762450438348358510437035091827778585734799956648487820310715535289487752392395802571957064548389715305330950731807376016793491275458154751600017064930978483957754052728379918753226768924795412609236774963152367612112605472646670244081291774876500121205131459561537166473328223551364559316365883461294650097896740068836587230970121469762373980024891412916735718055252059966473410460593104920945835507477104926034237366674219680816144904287588849955178497187511282887420070714737878189459466752584658842791230218259573947721323477539395817003450763863274147104577460049140698636410367380696142101364006132471041916418380036386873844418788828704171989611160796224394223241070593561390807949199521890482901761871459551264150359080353783038015151337405579972774133784593899424121268164822338030646609439907923666457660545889935310169636244858248104604564615009012547636269619919693723938555575804583615643722883181282345221499761070844273453168955617712431092740248767552481667717012282326665112653150934044709742115880125507975933312643055859698331363992253678881157632070437788880144177140768262995880601340485374559084289845464922739000463490015606500494133409442718811141989286128679102504705032899839751678388632288440662842511706539615768886185503537588124548716879026996514048628978698960364611815380246508335892369764200931731791682832793709949966421604482758132131782377048672600995063569662687438997890062882760008736075648244981653007962887658193926880406845299747599493160120399225022084237036446326581648782998014326535113033817477756713371763766169434524071218173357427053546703211826108176987855503779359955822203735445775426992221403938274664898694220633984329008717337429008947865717232545820040437012451908129687029824110618811171077216374448818971458447867099003319377009398002971288511543819829691408761781357857441966487956718826842770232862772669476026460489542637311125046823558966457108514885606773515069018275040796059048965127477491044002846936322590150069993745146823916987123385280491417394553361413224635259549770900942764944357045614977432861708208881055187718700404988214781182253795780140269977537891630410150871583353303426440424184142874143835318172209473801718740802782246287001479345904531951108538281180294961284078971622077842717192655008017651930939245151234373512642850104011926032625322669535111126000577967486302905067454377974810305407440838731211053196480459088796358919382175176060276810274554856839333604926634608531045305670597705956788184325681746808575909757508386644909452425114980301834744624535257937754458905785050962155536843264355339124588860820898268806627199354015521087128782829481143948661686451913050262624769276468352610167776233442384213159642878597648146459046544238596033392949954766023030165703650871984485751651668038593440289022022176493410429636636601820630190376503477960613900119642179521143168412342008096588274135598433469315905257761884776059746585236416508188173768519818379879738502074137300184557514360067443418731355449438123776464415835456879853026590684156577954426824056263660382905467023904680566270476647330498756613003731271062776037982679854536966484723579387766248605720619475797966307524065126644096522463911622287062147490392200148594129575549422948106307320973687692827759076635222894054621740521276413559269061824731633395486446597517550194182667693951683560418286990969566792561247853804598113218202039162419851425883581187296061421227268850147699930696839245242559933521941652387640509888094527741126196017088120809293042799902553185144528552573864955718998303321092877405098942532212574285497420986576715541726313914915546250449461788604114513696888649233570107217654632471629389933857915378501491269015400283713991360603663147118493059316840166078311770432285151974215505337522157972518309940716196634762944513306671605643631174707406773156014669541231494319156622129661816258741005877883530401665337559967642453733444132585179661341943436478490366384348354016763618177132645220836055646678090276661311140902442519448561825064994462160501902960103874131537153355296897597522070821223877284650829513341307596393659094940462434708112154178141176236257108604315813754284253531008489326358307470116891870143061368800328150099555052938447406533019039781749203482443721678141122560839085130987494991378220682493796865981212428589837983408133081078451995982507610314249428777218091234872776900026181884308952207089029445309230106212740998222468378001246839896944407573252452676326694464530502818735614985929364121849681864416867734684390006473553920396362254684220954124942937339850516575877781822638698728064534928082261810215204169509320599951285772789186994388890909002778377910016905265798019726939298646927194113604881989651766757419343428645326873776327473387695978418870905786665338799101501883201166440717914455272982332304434678317559333853319740449274282183928471932858694221435022182033109802742804714588615987533420407287833911619294567778821049694176782916216180676155800611819619014941616256484278019048394163503482644252467467451712589610863547688763632151060872998335390157497997908983950948660172288219200652851923464729861811431045253307462332782183728927232652863926841260058035354198962911708717063339351197061321324895871020455907385158133709581116722292716659977910432641818296499235139609231766672550007343247789622442573516645173922658096332501914349723510444318817386524444054411230128842320215540765466776996355972687489153473387427375147075467121172705429388504904453500106599254213881815105228278494162997692238989881900788127964012590047097576718750377381302103390512809727008560919457168258512425930065470321002042808752759256980681309111706670762847967148949608055673824296844924015956708315456536742054650743831609289943860254253117198818946620611279000103740639914442979750954286420849182956246420088146630800688941736953756463671851565127092217005391806479825195562928303591662853667919973279154959518442871399684518994328393468670776607370537785018777577300927479129443065127196767692434976316811953219012684732726127853819665830212829966644064996712548066048821031568752246333709683929925401130283669361571336674868363773069035481127207209063138923792505738165528427837769361261802581649947880571667111106915908468939276706973321076134350318091805797211380927242895907361587196759411027192722206486798980496357686637497169242786000313214933907393812380663008696005400315282545266528826501224776186455420024824910827543971261491741365301240460315112956312751296247240545061934968319997778683358979532981848564916792233987314513844784152127342001355626857448040381354795312247795390544286718756216890197500714450209973538222103190502988192592734782025758545299760131423623839771696917094039025901265186838242002545269474302673966806005842775085002194484156994074358574505916727324894237921625980209144455632653130470840109604658085762183689706259165348516660027198000571544446555514101514027163510596288363486925365068331531162858573734138470656239181601069822432808356776173423959009940248159903445810968672299857577059030955060219136707944253300963227007610077962726884003870654295786505353924428570175139028300380756415840135664754767256460213476906732250605975541335098445884737102532298416387609829943910486969855811894738227346790722921339203476612414141745339983412499800601426671714282150677140067129138099260538930753772698022196303717713039335199815139061541413892460107464145257483084465683111552024946496825754309042761091123245363440025497678684526246991892577018550579074070543325650525010305812463281833988070239415654870330109938080916786426448885249454551566216259011460633150280350183425312374414569354871522501135535615021935934902995104338412529681155491125576887226556365950204896377022185896115391269332561112934337301410119802751539650864376416357006824023537408386046380068915726011147002072952742232024330603044389958090110039233590204968381576814947348053421664126348312971267357866608143579848745701187333085759568316620434246021638701872384499167231336806070012816160308006512191865676469193619518004807090054856900808180591859196618399254563137517359446939943403623334610417722916664674780374247199156561280383990656932933402011483568961891251242361650065281939626755479784543529564758926828899270477328457118307858862865644578729087118543995194128712212142996439717504431883208814018925835052284404186905860812675229822782119158464800240888092526057716254802173321247530060066769878784497595613865835170895555468946548899704237636627832586244522945809797928047975214822719390961396179345481238303986286392803564236854790762320244913277485302748862579769774575469980026214122565387883655641643932453013494492867111121476929128034190189543353745043964547300615582993366740483145951381888587245791385610214950527304969793428913864694514330835310063878099334492320141470018729885590408321873920300990998990773725033831500878806133632409654780156520618150483789589163828586982430504699692776157695952136767868399442952321282365653649999976152849657580919720405024103711048247875065390180217422715567283952927970155182947727647913073104217238276956642605368941658541659013758337660446586903242141530704733140256789804494962337907289839547572057859834800063957005069798263872369115893176323350515323893733419106300859194072389123156988670124758598232064208929837118650976753923198000745458157196580344843732788307697138506145701251805066611421517787718210612436882853947225822823348354132090257623805075303583342586001501976634937312520668560474814976713670330541145994859962983877110706613804088247948370687282221490602368050462358212619422253884622748108484208101265126595319123748325711462308020270717392742570199388354468309026841054632660069801521454565870825980742676510400175343896215354414296676117045598935941460431295751558888436344566797953180809930174173306149574115559243072105989302009820368873458678180310826276362144090689282704505402982323260510819720510286027091195956848492628918217206256929794624972708932787153252994996580645086935260933507266956785629792804812189636322721068469564721310520785602789946346797394607686391527375010642060871648909434687753520613841123112951591762094862930986017437607543725428967272250140906111127393924593977283603884911910595734385373394098134144115814580251161335113113101576466387786324286071883949022776448294366490441135894545714878034203567044591372839553978187750647565562843086281051051176856743432048245014636246910438326795807447664203032736441498765281475403832837921431254465252566160996888322755276194090529244438158519351344543942098176897853226171525034927152718565773826901261725736657407015433610168157335067787332861850733039941139951224791681967057802814515544152547711882759257581772322301765143275345993449268248404532819286616694598852770118239594519708453744604210966708632681293492927987668205241331771164445647199417356273880583999103253453667956364015676753150953343192357325670652725103569837472277517407084643632570470849933041545036829647619605780060134401454086762761086901461478835432573186357287875584483474349861317155627517426658797098448040967859397041789062010664687342633419984956028434381268064110239303201833772299032330025624750099842218578034618996370258959451666966922067257372953593163221429367474001380250110736996156856035691376679345293601875506696060096165408060093253673701646737707232499700740144783195295065707065937803961521950476416115348323022870483822600709985622709933219628283424398804259041401915287509893960171034239310765322662012136759575266235648242281322662396375018406892443802646434704471938708038970922138287388245060065506499673882771181754023691749300060319681537930359737663244997677116592700604749896083738231915509823421048388467187460852612167235519635114413063242589033208726011564400703474535459499824503206091924974695537694470224462381943117835601418685981322129124930308106122805164523620347612521046778921467067751294370570350933268373115214821757428971402418582565995099616422125043541623912125701017101783154364856983096041191828904827502807902989632203475624781699238479839399895337806019365799295822180120937336163628450602180004053998115786036997810607739958420516047471442957615560424821328438315034509344021517960571027189968906997229267123162178839236262521130545712217602255428488450834351889528573738744738986349173292107774036589882090341335684446865551099585491298090103196972287757562654722382885575157726264608538824440277960921470489115611251821312446029018239600503605579847256436060938982319533302681492278144988260973965677523733496112121129115242738781997325985539912270051986792651280353370042469076165536596492374015967975456703246010521782556087746444277142465077709249827373931002628632110561101621855152676153027738026261072812113592431480746436624943015547234369356740902673812570025088988194354913376934233179210711952921038548224807269120801390507783523052722245574408287268533981689592010689545775317824230977059841683691439761072715205832656277698091387161632349175114579448329853464849546400092978660195646869631361895290844415125910595548496607142028898112508589404102600321147030595041957635097620171500345481431397472541295719755151227419547369378064372278420494866258694155455734316313907714707959389960877234706698851375552874297777061388802661588654570752684005040655639069436126869173823056760612573538604113934181427948599901948387780078825314624845650094625614674949784854434016236621728215203279318722943144491449235535714865204364040920232039380166862116052705275868778177195649754366749380188084920940971753071734991413680956349798872359843051752563813953019438583267964040646459196285980473313247784613974977030260655458991515310225614491609805812351866211761024133913491861487639974008232115176487044017468313870451084820309215009106146808029085736478674553314221027891442216183629032744970715829987153500940178653477124768979493854838347882438320396409739066992422889787100674246465188756509789668191445879100741996319490248493688493246558810572925232890362386106952047946034598202375120192682671632823382232237183104809515550925584229215547970959975848532922103510179085602470789762200994977199910308234433894764996388821364459999429148843554608597487376782187641721750745683445018409022062277046957103152945146778084500555742733601202579540859396133870900369238360910796808769553773758555679324372257827694456270430840906362094267026580226756716453079583715952577682349639724960745071549373531921308402012549539796558391559028051131580143603548901391269955790019038247716376580393667172891928260581643488749946310559815050293752185141600590343354555919003953937446599447313409706897559003842334867213353855842347475142342421505586926843855916274402229361673860164396687969215768993934574248296024593860772164220243638512363595030885113291942483489140585183451905855724955802272050053381676693646257737883289571923367938487470148971721799910118108630360180932902728898467965302514047305611903052851661098515172755228636768072051512968207913195707588389267092605261044097173952772898670720940198851560899808918786293553102646437576882560343284950404613246191189695159796799509695246215078927935541908004018996228803314816481227166309745039442324275192321101387790594447043601310275614135637502568408560878942282108553996804763912720300782433088350547223917176822429502043162982101709237240536635324796798304776083159468572094895157696118022574273053814690248679156794959913278672272970589464925694950076309152637560633467397030359377078204547005910263467941882323033924319752751277527951320313936573177972582681555653144962716318423414811929807468941055832433635877898788725696484701039534863875513532409356690544416954873726432703080379946371008913630356813208944494826755030972911428476080021834645819385159610611105259150693054419031336167399764852757492750166041857651776369533919028332476408199181503199884635883266541418569006491550211684251824966888194249300841760987473360085278338010107351036761817654051730707304880960123584675178910774258600128289867440330802779726751082492625454334406507027003076848109236995518851948916757686777884932422455548533638149373038855449499313153777660250729186258197715514544999599974110199348756913810593241001665072978755270954879192473006112043210103282702069270061410939246744353969050509916608132765482548024933197323129232536046059401919263084011281068127718231238242557323636573042297634905322041752346017335355620216880689828306720715228724345535627415970287035768327820711815693306902381481884506164481737526882431945543531660507204043683693632679583560053020458186474770995676435245002595359279867746513618919926168875118907817221365114225227238988338606245876741767826128125280092078585648500030263279089994763093623505344094533279793231179953260774278949683889929686499481425581519009809013050903566507923484841133041393904162772224006459378954056251780072366826043803569179439046529992750804436528192191971271953716518807205427603565169712038934078592942584943401302502019702213597538963326443904025036285271748200606285800942749114169263464399631084930856328668344940700549752599465099238282533145232461720876919066050153381203171042929737370357642351110545637701570212014619588618640563180888879952548573019737577037836339545651189413589071924576837138900531084464578681168358529903753562320700347540498278644034555544400816115569500043965400919136913556774306381657116144751063223902051833561620830213800798208403330421502891786732453405079764124886585959746734689291985540028696720555117834663532572457992050171991287730200827133224713572657053695524221085903077729736590333126596774740751757793596134098683083724167617327223700260917353681856494478400226103606854340626092504025567027928455384498109193547522268343536083945789743012609735055524027606202220061034019763546671205490293878386156661283326534874983585120099094217078790994725993031401566245711374508225895872061556705715306613575045483544136542549209153000028258775983786423823675959222336120961732169728413945698658964263927075285971393193220087380843038835377787872874651186391164135195654465008379652060398101596037242731418903163073552479017346362634389658513685090198687820218071972065181848787707849530080161611722896991652562890733111590656224626507210918584007191452126815739574925386684188264452117490726341816100862856636746299786769805266433791148201319298601791548300718105360604819963633921331123291781745933418121341626464766908756205247481998266459022421106410067357374414686671898511825608020478146346179135713331529933935164536411240779948716452547768306083756515837157571228313403172815105721223453728185756094663167509790433025757999274610350044136877217225484207646246791799132427347064191885747460701530159929914596033319284717702491291197718406362488544673904498679525444846027748987889345151361171803116920599966698994578244105117173436312321427927907593585741225939297026170411721838173403515786430156740896838486403999228481327399637905127434820524994642725972996951368888301562885428316578604896219541176776006221441283102172464941878165333846037162511930901048111022515251495605719633721954883749206470656337058298258155349751110392754596493245577301420387169000974159422543943500834453489110196262411422182219008873699904412318353111988036635937829686009559152774422531056018575016856516423935005416412544643467359700328245400653606239508851133884061106287665063546162122414641916875261576407170518841991574674002467288019548745180724249745197084638581245566708026778308601835409107193507904834171155270250469474518138690747498084603296588213334245993819479989843513909919547121482069855478058250018857370539333920470402298836339643526058723106741710193014577023547177453567960408510832713984568654637191033653015933135134246399975326414085359503473686274229342004180917930728079441136164480041066975558952299036633161447894102361481969005182075212057741639308733933748830500187001716048172743917206522003630325111609920509708784384598133525185530995272137203327146689622671473859031658566593612354682338487879232298182093360193823000107095087009189743439945078264750922796459420168604545736370366934730560879997665665056817923808719950360181874617614874350803284938694904781685205285066811023634326547735889964646880789440649944001788956431171008065862718439375058347660813615867440186085118375557050392527407142775561695575373024300341162095831420880745749075570348171336504334107364517228885427871706730439318401456113835120951611766795388430479336592042631400047931269625866968698213754866679210596613306966030789347449233987921021332406225641150310651382703572685571707341121357732594281584602170234057404782072022038509248416711559242647030813321971996784433921462731765661029523206953481349720988057793145813681650675494357770332476119933040411924991671894404319000505842802571123365428565902677896928036580724370957373917499762942253486820868098861869619289271620976611773805810483343796655470375772592899639169564895212529283554802630397504771144454058193434777102167170176399335297913689698361428688363452226070713740555475426682913530596109806426579977180313466839285131354309219270601421812147498848118057084175772682847063423585717470835730303678791130352236287898522075382855470107157423614316701752813034429095528130162763599244119435547694733563362306335799667711321597986437207000345887767829846244459217363785358507029393652800191811872610522260589629813881395379949487461708246125474690269881172435549759438047386293225184645515156849359442810288166592633344226781103417559356999152519826696649518689007432866392610844328400625349368027574791782216405392938946620344117572956889849857663382475427766879044289013517627538372180372976966440212148740709178644019986772668963936525838984719011515833144456545377387192207755409585166105736492880172902545931367966491570409368671819616216780033381095418407629862713694973896390900102350917806135161752219965300037860486630638285896843010115237616347761262247718042957293402422459087393168934286515702461516662674885738636090956942253793673660009562058129726944063147478122210523897605747421705281269788956112285148109150526241551276732401361815685905980609487132342403542066876166610740386777595716115360983414566912088388362153432231927802552580594774600828412856306394845883918244232748746797175513508250746026090809797791728661338101059193179833937649795518282198284874651575587873960318633442665238345180903728209103764106315169204709413360699450110116736566922222607264400211669501610308689675319058112875425059471999915065557464001500609120508127159478150795650538734970716567491651257349714366683827396808946570934259987922385560834071366085216763409033505598817664508249692566666552466450755696741164396732592719592334421960060428110762779355479956156608345806508459782262334535125035059589080073616320355282181899459911617107322833227101990451043603853505466735906558748280230540004068675322606001332322470303123789116556306096825588227367963939649350728291568637071646214884302722782934991574971774839311830052475018736315954166401953973981494734781510868924861694205703327271313051457790813204037710675873339206821719268667964851507067495199713723643791685381126894378575613232593601211740869701384738339429041123921377454621475033537419121539209037016210936626709618440365769413992155306052979163554143755670450097890758245431571508528121113956503714080590879193038372456337195312054287311461529128125202349584748983272431473718995121220243006590315113464222189164933710324070156545532653177729491427277649977411788472113435330812906859725897542182822058158611257138855983880881066302825892669983017340365688201124862040068797949810679699589418985036768113794200680000138923117137926173884267636070637852528012698605462812652793831743935013685033230433772609598688552192708654701919625659458172127847839421410805866006120625543610261698014527739970676988479646565510968449916255098672162763735638141383902502969204893002345450000818943584101882859223688377332246920544349805177303629805156350955290202637623080681429479173857782721353503170653430688431692527522786365078379057982752594602871302746448215146949180711809103660850382237160237100951151175571015520487326807442396280209792367940121737403092167392244919553317233255769087472269810535664243344027808290577481164765771924816483530683866173733944964053801273317804888607030311663413142400112696351704329775098199943307145696699922355193762267892393030997721273472584716667358656006245846743980824129412773170519200735194341140331227679621858168766894593464255718459905809465229028017161192404468318931816444568047542139669884814818932863848719931538821379728138300707029657168902110567039868641550538217656984516152111383297810723244294366685774660378834808503208426785241310229052141150881001991799107339616938887856734734521839292450102425099363959883766278200053608873494924358505184307911386639168030341332540018721192784752649865416195895374918252803821776947810399730434162892290685171803966183384327561017621145035515565624077292092117042225725456632580572438797736578180342156554871508531157491217502549690681207941878728085915595001897532322427250495011161742150582898408539746035814862643771983627273492718758562583771558817800630009578448274385440816993582561561903880172029275175702269038672765883821305442236835815220363479028131263802843322019493235549002116658159349474077848264895815349063211530586537211144523236090535240385559521815620304348019035968388774209495620073632011135236585517489927908890266172414597959369271664996443369786518468857644214891143547197593249571562344366323850388427326544550430344177071100007457237339649037823751166435409658344715442242716360373436616705358013629602076388319890776628160095590952920313368268373968483606446310011114788983261698567065089509667116655718989722000572671669679727853795620367444606099329691012250202961611710362583306566197630134163662014885318395893005677330077798900091622561915088358119408997588926631420333291386173023791578855803182091139215980962316203909522024078756357524460637986049403291226585078195958645667493566010869337490653822145914464639680142778734101383953407690384458075117574078080473542254603223505787547767271032550227969375411832489297154120065201300057174151078447511030130997948696655407899100674868598282859721738625189430242354102771724258513213959851288752596949822653064676526751064651713911376109201410848375767426542765670283993261114190827968903944709032931129003149322745652272418921180834535349609735284997295165515902358387900310190243164038641077984789118735309793097335482657796427650150113989640598976959280623970973828729410257464706341826887620514295594474355523211249460071397405444818400221770356138295980191582967864617825680809477662547886683040525234383844565816116475504843427835630245250524354752749416065848924328927815904200585233560527587340188641289404860799157636362744611463862437487421301415533695258290282894427877982865199966361740005797158802046116151469506452986393374872295019215925811255243709157554383389780820092124693964184038718035399227854172703113674395613550726766553190022629199531690696663076093166471678745062977969900938436788045482091119991523394832804353093036201524720970822144368248098931217800866086550463333176742391109514852249979059483332568068791491633296633760627263738498588558983698141855704271196181215480208097444377000894326421297550674821800891043323973520981574941042124258335824247573029805780281320730989906951037372001167340271269083486597235025917662508656524503307612355472162500938907192265245476650420099751616969183951068386095975621670947583397972802797608077646468832633172164591939833128456969868701051678237749706875013544541601633653265536517534342989849628131737885585455236565763521681989710083526794624050598619598058725100052102546350529084927955308258842547686325402931915054024894666356296918600110639292735785512607480022641227518993743604716793166180166518271281179215420553858461222013415016012661379834441739222900029568216086477137640932306760162660901470194055307686006928702651736917980711593958847578456194174142127572858188227764863923649642000085845405929712687742746166608137011657524632190208536384273675453751903258273041318690115096252666087096197639441709690884303072241029878758205100844320714718668627271544808092698255480388031043383431590362960532662452277841717456455753138363295885250162835930174923953965447040133704046978080970481749320663412063664791216050339119614426038656460011334464620341370749275893136163097128651092583925340543779874201057505885192750079174809444796693367333692985461126596271485120064745922190466095940023185028502862696719381852042054510789223766934663656204692302203759190093429754369148239360222515268639500268765414304037697115422383198553741170497542921261484043613367298454105300317225994930157894760033999485806302844740544921519417660186094838672636859584441479570876454054502319351328693626265543208001713632729505350480812969206629013538189688158714610233194919678750317360054543238772195293169358100684907395856335170135289151653248307322122435261629224755546877109861645629941790022760388397468240669713141771864374046812327722334440918602399043849806804268566364698096665277319297460084137964773794649742072409785658287381400722734303436422371071139434628335720502016535583192895020262883231758935967076427496244317859777196071093568935994988952016888119703530498584474888850550544660934460212140542407823856302630938046829370609212544408701942681641904785926528767123222833521601268303611497435869235498564672072876538247335353424801234816318519907073826615310392825922502184742677396497449372888663836379136178031303082371670634688520671877486884504915226920536948364324262766761624158521501903618317686480785843065163450917587540132101184824956803020569409380383892498294668907818168781998108958300828166039952677091360530546216489819848648902866258990845027701033461106848938620183493915088038543713274890067937323930844287688047216089465137033131863456065281367314754161940857439102969161802601765694366681390711465494605728129146697150235617097073465039890656849562406563772695388497420400803399060922332406097506071092117830720098219611897879340523609967304196596872881154932294112452787809467825307267087038360670609964192601712693592197040155939564996709312418055184113474472237483836218192126247865649774325562405469866988093090210381298902010734409801769117903328682265405341866995357696126018338786901301176710681726045582049934216126799622627513625983590408186282216814864586866005273094734834973634262198543463454823560295245797639272408598328449503811141821049407370847186700528081723154988614540069601899815450930903415757498816929336299510584802942503679837978475773829235556091080737160106252665464874114144879826483623239301723538033222611400726998213651495226445401736482773592550391544275844696111421941387822092364505090871271224939900013521164837959770146842436807272049208639503469410409685300989567453723580479175871679902318085368066973535368089663733385484656367724264476701951978787498219578757247900819499341999599937675063029281486227139124641390049857502291202262210258825915413395077369538756721305586278670403759008978597409349834991626586783616474718362346577837998578971972571586169453279636229271095695404744198739242964170074963321771016468679929402750804756097242324378311843167730149995039984079000670286931382712272239469515917960988487519896620594558259097105794638052496402346204556223311536562068517598838699174278818718718448055170539355502317077082562354278169076583062095270433496850668821163560781188758599732407471952333749296448646572931259774266531826374089205393609682142270168103043493922111325355436594656196645835608565620706085936694947783561893049446177159246586083473031087653331808743160819025693843857150031217412231971426487082208385892893470359647856096745714790765852185308801584496410569341267102315173639817249759407216729902862764994736283248948739458093513903595912770008442558222112034708299208361413811117670624111871474061925976122901516165516876145107234859294550931770382769734777024239369095001338403891550406378807784780542850407505697586667085046876674410849812025073681585324961099034974579480069603457915233810272370167162813003355547449380750871830847261831816651751396304339004758027712684112111437160668901487554301342569456391781740959999219392144434004140514894121185091780524346920721393846795312206443860281956326955243799252679978542615096217242764838548468756054410562057680000882085898113490857538116796199966631331050087960989714877330128396381349354475465523579906841335174069002347359261217775597138696679980422736587143632251592048502564077799981515221626462039299461823632010231776731917229056441642217341992412380081372128005704375738626680178386069023188710221172665040800202308150762160461273466912947855744624796941784807003105195445004013905463045008484057384748311146822619420698590366551622588328957098454649343245174236678038344791004091796772113845069983825429398892045013879021811550242461648238683279262738990206574060006294452840613689036182353701844807728102576455027585562906147607203881334131413861961018804819502108739021519755817281636862564686252108502402414671210678344598489211944029571611871649138760427893547071104195117960407873826873284407785954381185642098091134360422721496160734240816242363204529848631909134853511821883944703515885307539323838132833688620707853636538456201242211430201332810820157121357462469726531033042210033297899114848279541630249162741371845405048855853864452132874751303913981969549868422266211515255203276324716321186835207894187733899250305554550253957575047966410590773906696623496826163926018877305250955721630562421949514082463755596910952673733119498737367236253595508216364854996550337340135059223426217899968931762922413231347169432425105219233033052891409495838636015933310192068982912683526895542569611741478485602205057209111957970200954784113837739146435413032505906263803799673243431090599545448856649291549338339812113637584128976218054383916308496656681467993647052902114021060083406053032036099610988985407891331328590835550301311174122602980763609671766584532291381061477614055922246190503696674194589387162537805860708490331305968143800919918756835981730978488982466912302329260033161564663316019468322286660716805681934692221349509583669456039614731227998209299161783758831717448487629361867060044090355928193865170134797595991841376819901631010612858977715806289611492573465728353834447166044551759496325167963763364934375517073009281486356312597592664586163512717360783366878527103414735111087445981913673280556389006057216550155635499444479986963930601651485316334239875564609478880740827375992485456625849606760808045836541467843768922765187160837128347750641644499884152328327311443524074754386890300604928070777927271798848750603970495927061288320251905591363706500959059613600229904743453873980920414714867590315458474805974606454606790494315150678137689485060529518548302257343788506354583785377018557862547073085729514776653197496951530904481887579864576533934563995025867721812829784944155366669059305049782274380656114630109575245074614867001217788074230625229658583026061694795230508350931623957374411245971888902312578312276500071832456493873310365512980351768011909291871987307759981929976764261293782461811321489649761906213640209225869383955710891182105472435010254794731620535175565244853144999318369572955689884497206600822807382281079206079249682787757246983413793754014015335224958273091771100580094726981770481430967599677687800298770658393313035118406870619761876647534561093748075391879247079594288241497387397414458888005405978000802243085438054744220792593398189793228969000847022001824074414490365835682850596521207649571014806513292874810637177586121163499477988792475957284327177320000653532847216778375747681924644111488913511334449555089093478357597948323889728551320991164725405049848578181413921084185043731718458359893943310919800994359546919204140176323101491291953357005742285847779616346973498109847988398529997721933598562436094392978523973536196780026860741510090877815473056878833493029867395286320796072967007411781521379361286386022485108560269708676684148963064711160337648479008341170271893524574775872934152344987584598634747023475580389141632872744159297168479514126911042454985099055509684845074226056933791532565296255610645792474145187539005428216991889797937493254115598648897114086499763000127075194149676042868799799728129916118554746417543029427177131346248004219579148331277418651958499769404499437025966909333930033328097486855617816034620737535183846571936997962968731712411588923202276354431135526878397427343922310334461589248937520879217480351019391196621580435738776296175336153772538086362237339231783379251329253064809553205277030030744700074292676567476430799306090349778997233055536839456178346909227719748833711543979779864219814967503699041225158925261853647416595392714456460313352665325794423867237872702933964872898133160673620860346117694428425235956751316622359893310556421518471318134271726795253493949565942932869122302414324619064715914145369608488956413131509785011297528282444181423504793173970764062449792359831693716844182452897343965523149304572474922661303948709147413759088801484333344173175317065313459382846406639590376869380377423051919913507262451701029940272990178991492464953243074709394246567713345369420080714900498521610527406198134189299734015589945149284491406271326965225974018419221095153307367124983181807477711260221104199997144158441879229398792273557076655836809116763808512856888614782656376373675950506954918328548086589817939414698871101378532932494413153153725819281531158577453419523058056633531022188402306143964694461847453063278885276799530797815331959054854674583365421597175399755117235049471934740674695717040944033495943452299123202794832479798438284098052247851316379976521011423946355581461543742807963683930117309016561585477355104942708785921832843171282493157119212942351212805223017766003398259266879248871294529120351471904987455063723091982640329115956198060846106013292453589137560891591141347866418758563491920080342907751223003298411967893278989606465892037158506828394637530264557782261228600471014725096453388082653939490151508838604358025061759403510416148184513709656977997466408216240787215374417643065597150726157623575669896694443050128442680971219760462225804881229291704751810054366159032960168944833140792852603762861107295144450240581672204945098487663158943682697580065907111600440570141969801810229529837714279885234197525703863480866579917673277689411241328730978358256800996512624927952955787425757772992510212023683750910551761732025074032999771748461486442551121200569744315673286885224711890433060102111535300694574027701450079564894912080952632185273106292209505405045901390591527158025571441016872840314966468530790549009833378433346287303736290347841165182635757503681769780786412976206560884541015822395049943814208705032367660062341898320505133966495157473651758560985713452346397620457198242794724522016450852360220076009922243311160152271311059799305436471858103771732243397967587705303963109689510872588894231443874714363729932973999860378455586105991745119978093380577670439707030074554080089781209046396579560705416641933803401978883765266020054622431380271746532413348164117645095607525199956993064163533138844038432287626569091281528195792109423595898025223413679824805512697697635825846746782733097827521014569972405042059959066751690128863988505734351281613610110614665503985448068866556308174368290834639364604373712483211818269057603006629445447056712773014503773048270602547148129503888976498439720542727364294437152640028504606474860558272299689991926903647581640828134691484605065556345274910338104710004502976212875927246179370337862094175770612829816760810232712538656331466178481655672388689727126266218457661270793680072689843077747720126206332211332009584865575306033561995209364774034779394412518753145472039074193771625740005030007306720206464515636400589247658507549844017876112943892121998082896703755047240257865908048188501410499419972316325426543341198009654280549182737393533101218928763475645155664115206139439274520497329592449813705507784623642825791333312082850328336481809502720647884023623647455603713581011524660632057153163766478715358543485903789871805002246506791457531806469577375987218512526878469392631393688749406499055461821117994369089768012525047018360763036491618513346046460086684483721710605948833786297956986681626768483163071458761509994758209375346103183100591186653504158073073011131854470146632164417887775807711312850110488515476139400898054209787864931560413301583871278090186601674936596862960044198517825133696983467428833212008503783148937227713294110770928043358587638907562231824471183322469316914482039767983958559273672033150649481506385219093813677418823045009325595343091034220007535537558373122903202658980338142283536515504558154469538111955946204595277452925348709886776977122752992559698864694761102852948413785834781526776060003871659187301771545428642034335968987335345982884019425814256713789473650436998100431589359622422438942241109383402459001964685113371486179398029283507036979030883073516898446007581051986594585776486095401922067123703027970812325041538299298492333046360969535990222400450972077946370938954325977693571590753022976028237038148609000795462325359560634568059607242045196705161082218130813496186494002292777398400306912283412449904889122683959375879764002938487509493293704329181116196165240572622367516493272604254029621855309730541111465944398459937763193806624890568500969762127573338830871376448969736393424602251470209210786127945846575349027259006767631830210229918372239600594195375396065380280425440884298544198947829856712360295267542314716484413688786117927983804766845491471154935014221481862372393389108277066015359102798534104702270619470709566303383286841499444500165065254693387201418976790531110082664507653827375012881877669394448915720148470566023584731887642639646478027818794978002490280620467478643041255041369267998498075395218111017396497093656458382004281877259228193766937000766970297828808592461654572325393722143758610380383948152377420087848195371339601917984243978973665491832368295353273237851173256934224484041096863427962611003965485929312109578843054890305758435840560748248140476028934405678368102568915783770883913417621588223696313904616057036687383395216912270800564714595001797044646142954966633154860103152186457693625312609430915343339790499525913552137179852043621545702811423016102786746013348234930498205168166326308322664413312613294638086623398661284585505578561190813903991795615717083698154946945975218703542396686287837704870197325617252513119327400989670896989719647296526107613134872447905090274375024829329649597552759001614789950477878941916843937427089775978090329792912355733384047444817982013150779788623091958462204374288186744783536064907977476380608094270505469466235181755250885241736992997664596498648216003407088075602565399193999601907269229295364198017916641524205098136940965411745957873046192872134268339083259482844915647369352032510834342159283247774980955266246669182258549777594327676341970300014009360956705965831535709699144664753499720457010876452325814750001693509847730156571840979720651959037244979627263004262694931903292586636419406416183192865831982880506242488852800023648998594852288327761945293714838099324915840494402351069250134561168083858312714573889480641349045414236455697371643294527930322643580125097987151311700656726772404953666352691492372584776825839493330745883234921591876764377353754807756090167497829595724729851300680901206226675015429068918457348723008004047372797468238832673370280132595469657515301476621059596768489106892177976135053202428129489404688091403307983439488574454313384928347163295445753059292970470979587433663813546522232771896650747636768068321141041805091299407957666738704795504971256476621864636093536386576352759743454235380535302064475321239098820497119320749914770040144607123368837317215769757439461574703910211615872505279912817446715041994808167326069080950269591970920986263977877397039490318889904113533656445296817337190063346082990894700239723693326183089858100562247878713630923211567149359730141324352801733608159296281209879885575891046612520838738484208182248273968398536061508652294818215434843614415271477370558954853997409148971650755496110184750224213049898713598668783476426664192432434251380981679324517521789670862458422512117308291407704219259126906809149272404244927864881368535089859056885441882422024631055814874107016925605335128109883201300720481147591034762755701196505010111387056884200734236689844765006736431032631456231616971734411948772249750847689965367160540773804066353803116990497668666541455151171177303077916238901656990022368102539134476738587203559257117722375094021500042074016567496464266467916872384246045437889366127375555053277889169968922521711420761708920443721790132721871887234073148424859533436637449667841840575857764029740543388890762554478143126847444661202379042444280521739127186517821681289714539915522970409195303403831911771222669376790285403382413032924584577329218596318829052281819790791149409381779631989811396884584543411025375486149876085907531071374221927391311163778560768231507755765520827158793504893677667422786553165313797377626922234996837809721841277153141158586913385709841777576900486772688071276597773043870636555845560339252828725814449974203795075866578638736222560899337422298052136017031553958843724619815291184590747445192086736668544614937231979192111613905160533283997880294223467590822154168161747505304761975852944771967216190227292491631064628686776662042294973854685909313011898623408976011333259469207931631796372031354906401644548007114168052566085453417389507576968832314788955489058384852046954981086232416645183481372539060960597561066033618695236094559153447814355751822516749878796267491772012827352394740482857170362203705153993108036295780903868080604338581066451227539077014970178662422393966948070583540226241666880633463398104906102366092976828737737938608880562406663368149197528534191385262405189481321638373779048866875323956515120687344417195829360451821784601832672614680860461990823423390016535372398012330051638828299404282092579843060585899439163055584936738792449330840009353441073154542341006541170346610310647441491061713881539253366347451094834238490524694038001795358353607626440433532643974291910050431100903344038403074129878769333007131072170163772884894526159301036570182316081550970110490866874657233737176433566969778474189961839611665015708506467842570440685987288491549889724131667861076909884904446752417519797539723756001852059295375124552253476926607319673455128967125004492027429572655567784245406155194204708720947647677995638144924693325989203170290846919646682522288292961554095200402357377147311957294492535287624193457930937614025707199894338253232247689834961136639273748534827187954800287087804926662749437221342197916630642345829278210581044096800316143244892602116551972274427127958054621969144644308981463279821303536573107901602632512660806948498037009343601439440736200681700978171405521400666467114272655741161850854808056211252317683373029585740609555856037002069709041291776940268073382936275987137995573458738966667733483597960975887209663612327927561607407705177474846365824366182939646269793877202943658413721597762960488787988410384401700070561871063085925620957528719374183913492342313321574496492174965696337829955882700011197605437470781227838075574836040642699154741300036071517248789757801627889118711983090696867142130943012239630634227629585518573591758530586070709187310545728713922630393298195706160921257606576303687380878402396450667906548395775439554206762651292381494409376117077190677104316213821879916447163010030523510973774652588565956007315924465117710862810877267683188070194336081749745225123394765348123612319045704601101832584858183367938357408257621721097496627222032761920293472709652075066234182226756095950321402747428298146335730181290912841113339545118080741357723259669065796476453605135514672678268108909783564111593238825266665878139758049994494850729774255432492693816490699254858650835067088094493580634177237032056710814176637786888436697662604455912658213237084256106253812492351521148002186011319202024124885674001332219509516264637767444338919090674956961794979824250626535137864278946923228451493834309731367651295506128673639203109897200951906755458992809460081406615535827119932467249722344583049390687940827816570035840491266728068130526081326079473196697675424590334681053153028755039674697001009506997671831269002120965942494844685170829944134916832942641771540423798679178654371591988448219384271283667627884572635147325595734455997546292376277382179942543627555879562551210429060422721096758719014246865373428887448621909611051574731414209571383856738905684304098496482688415713665733546177325460927037716789247242918448250707005294320389483046426324195215407914273920177524960510560495309086485977200507994539233952294405681695496565937509773401106921362666041828810226765333189958549246466740593989219989293831796821527590821621453897637062638278245048711677029349235525025343652085205073314161201902673045604106354133191808237762687848494233036401963397390718375936034063728367605782245279726279047386825590390198372983140229765515768472940274594190143128475197616352588075614250943048336416284469929190566340937257894647663715839814436000809547712112361567048895102723021565380684192202686753295429899656970425330073640863974677560665595817522495165045727998033539562393229871728246064569536613568021061094539688343953259005023207064780752100395483439356316713756119305152898844408001296766273013722409511621288735471693227878841761717326905515830758759102701852566813393319883606516295592640778148432651671033715153230851211941037620275457090751584607640174352536240053629072756113912092136440380075725693766403058713313961669254323461246150286444072699670560588313508548647710188259907107169961265928412678574879391480869153401876246554160871772488784770153689324878089612603507758562365927397158811722878245499709230154868821418032681151711388128934129922285249197303400713378471914144738059114921208528397628243109973061564480949375360015849429011105401738204139253887849657305503267510089693769989080557081358344566062114389302109409468204676131216184861323479851099459361374322433390996901527101981389584429742648510737446625771239798209873208989418851777712739005277998885454414832615398645110661740558217149632527385084622294745469185362765861296295779306620338118313723764432942769415738016761411435567219143006410528255460653537437371218816467307762513292594322125936365293390851038492088092909700570948292257370384163190093552683831032041155149880504268420105736027937904556168076309189574940071053714851952424784098970666522285983708933699134127230727730367661450311529102501377679376886959189071039873560249042825451783209394567377740112716993768352522485515990691431084047433770375849361728862573318098370287877830080186139776796429815438211448831131804096574417878012756523838952371458885232515159168848257140194628050467414360018632827353729953905259625392267523837490694435445503081454339898156052855054734269787236334091729385516747424747746413516120762297667439112819485029188200503029451381077468288935103641426747981667975072238587117796810872796881189738788497197060901909865530553447648690664355166422824344496465182462654063601449565533043665086781963105384175300148634086252031107394968910322498818710348469991676241736497259942089904355273615782942655629804651115233026146691021659749227959502573121670402130375505486702614547298577906913996420181160392650088292911717569218588616997710045957624820281514657519714866110968694994138013903614128543365284288158185806633331756282226648322377891519289060666689328635584631078717148803007242337615108652827143732744539031717823909868527197466239060929702721064704833866958942701564354195271101780135131201813488975674226064307355281524929231035075795414206400140899737239458505220453256611743104413151410212782156538060939650131863438020710526228434687641777581783871037796074746075986018740568668963352519275413174330011703009539758509543485286964416635293422398733156060000888163534589974911020443171699798874292416793449059135762450303482620171640563434562636669632413031441357922290707103523735153541628135153551225929854622476781610178615210248074633938319303150250628920024705120997789419154504824293305337919098246705990961730911671789894268806261117981095514892736242113869224597667026866569238510540315978025959236807670238423816601079548171378442459789292292885169234060452035222311441559688015582753972765554373206401892659486328369473826422102996753187805287917420500808071538644162259961727472332091662637201442293101808132130798366259153666350586336106860832472045849932512283762370658609679506734697955742455225641603742314585397106312688668181350978398194523898712045600413766870395012675447240728249640155438248192995805513439162424715201977461653334039232394829554294361906596298444974791903598548121699070456693543714585056427164789593456800168211010862297944010765370566551285832262257112150725661442372753272511978106799282079982513807794506618620588673483637475848108098374076405665047134956414368496116156680549864278505069040974912818724338760803070641326005453885625180431171098631786445259147158995623444636399200132259054052380659045728657086578784104115762182351342225460635043451110168657772297664963643329811681975040034717757854968131863701861059140301372359419014312903830992848221000363804961715979487876217959952832030458272468637944457902500388148207765639272324900551813967887343222589838156066183929768737340410914181196981614057490117754237380990790918777494439036937323453105466527778501879960164919945983377041175142079917301452729568616214959824048326790318450647137384013258023999078445781728308611467942032846386828962142451756657616827081903032907335177381725683187998588135677796267165729453902073466161400488651334741735884140817131673499561075884036874698236076640402195553471000980479333982085231570286739508451229688895049627401873520229354492497303986252859529098797342805974650294707714225869607044448362087422598913096303631551251856264498375452665052048405575228343248908702354094584603279813710444234549408918706100998156814933886613170662110788690823583536756144873114870448405922162684057242115222963807611695721700956257433445006643578668577819107022801378086786273690235155188692002108330079370068850034129089306811841172907055831513347089798298804412878186135434420621009364379168083038332017789110605864898630594756752999316466419800666985773754161797392682920950202264238780059724525365266767723266156766505110058389706847780243628330203911240559520028065198538964524721782155759896820420923527722210490363233028557302186143783669499264323912223283990397290001539779649150053279543296995415603683121954746981099899343282045876805008356493476609374691546992074720350954715987047982566317921379600658013237355060348187613708071448590032433847142044266562587730122636303756590437781733728079800387938285230975806748322233545438235362849723804236965257530597091367227007964716597906508503866761023876367104474957801325989540183350808735174424394023707456571004255294575887563974935408108285016321811838023957460668301626686786888223203411550937475758258983874877549078153230573968571904342518283449924576645652353429030137174461612467733859838475307450696585871793870967480115421719929263704303508152053026657137793472326733550128332019362596229076603208466660270615980984867228206640353682750652112626395721033202860568100084875846078675068165105036064429605222232344951735843285088468694909340653199268760758422495176737633239388429340482373956271285146463079383246656631904004843027687852468242403358957396961942797157966306313767698010374014124922001426656440400682967929696266568430448351258364139142101870082953526005582492826896844794713565360493963937922419728716422086854638920654798442308738890761957856955307498596044297176087947301741474558409305532252345722741055350708438428498300539277994159753440648515081155823645529990429727759999443703076379474054012460892359894610715753213195626237035927876702750154472591065900059211239409449966619900953642274623319111417559503333335230421115873616465061648063237349286172259898455501413890177081521372643698521684598347762447904452928135945231660777862160404655430494173329283837519131846989107146710262293329575789110247149918489254969348457070225543111937330747836882463870306023039831621629339008561094076348336165563030937519780622209534370042241284575816973818899777380520731734207269330408896485927800752127202385731069163354961481346033892359433265838803975690090406001961251500212876557415689294964753216061231355902156254320378642502241087663264627602682803009316975488483664250496696943379077575838306791694545771266139745057100492373773148253189256287951632139063918818563018150508785886468394671975552378247874147082214356512711905951746146232457932920743967707085630964073460795752612343312198040251841921481626453067623672842085225026594622804008741779434433878142965041903757107935402752923030576419967150850040071347909529830563322589422258399338834496090078740126343035694189740355955919984426842392395232434491311317225442783407453783437403120942019342500622101440410425309912887584360328341732290744788742354785444076643057276799331969739319341079523232127654269021361754738219707051832817691716972601265498626896868113517600625170220767605165820295372839483454944997721534819770419557560474152230526706758950034221516348182339896352272580537806321437361254943932404359350923765758219689442902050720524200287996782909321354915324333194270397229516399985519503642454386116320883989062572603233951538374213549766993871083428843985324256137173815592916407116531655411732940486249242715666802118710799739764303528781794118858408926789486423269383654529145440765310956186495103556442681048178764791873205904805384279418097671017099763406182143475960182800831432777992288841209245627123218982757791579108891529185409800234693508946985627189314841729933819956042224280058107656976944994671965711048393865102278354323851355481325077601899885111300356565697562422283169014611499146238413949743579307513332275550906212139942127379308607093273041978801666506467881540556808872510367889825662577713632742016692492027725473675344268814662973246867919442612225247929887880710258431936108180740263475991395562647574875115736119713420692994868016352193634631013460565853784204843674071111174466794144675225174669933323592499297166561646923283784324409632202854863243285744986861672889401065631068792597920461860057512341516862143626166124885168362061920039493333053242894145695595330504111111876589082916932793150011072901183554044143559010437041861004090270050004679452984200034792459753021798336853661151307490833923959531842280743242697882968229208914181365862312541355177862480822052955773448122029212103986243555974823944043395864778362593493305827729808222920446171448772566504889681841241989646030440658419570031773564794077183361303222479797819235359108630399976169764356642971903947095598049420247216821708033386443192239132277463978187761466941938278465733462476453194626986478156221010198448490489380492174328868330983372638115474714648355362679416018804662451506122451001710050807638901213734349920760981248440297632173486010344106102319585154685563997420078358950732098424654063135894610865102099389434058816926399069789368118471233882610336691201622569144884831982952421541178761325818956916922160708471405252823332597584573949138665779619934708101096289864689090396581083108375172512104040527824626734578721525159716239537192847856422487595370168037687573342620005372229894998729852188160489366319223110417583524264137836685197288988714393247630732615617698716338412723649255488356820541882303126354650697439686251401224006657026428482874965332037294774275984226473970252378829573281220709905334418007766024415309633092667473813325507253179391827877593484280084047658573710441838588581684098333436654919452766016131417837550769635794379358598087289908235649805663189270706843149978407769918511950014653626212856021136525971924663449421046690208673805093915187543222957387525818006140104544342509782460998659671173394589437739962333434294915812826409958206152402380570086364675068762331447630977242004231324988011963544074299657814022944380047910073240023992883521550918961284875900763822398006273490270466019845304973110971370464452018259022284064813219531294796246442457873271368158799048894202589866751870929049620589529940509591636661828672220111774061695829285957579930389178730455935844315382021185706642586785083758045992272073722669941430997353379381469225384776055602734996349377984986596436894615707011733233496776663816357050902324487951386656734466638197805313633840607920200369213631585630817491170963417981499700228536985371727459065917924563914202179750423238365213175701655510324396593442510662766625384119110145684840538331656567850227293700167476026004884054225714276226162053548719593723284500126175128245741136965359821851472584819930878806173459970596831263228826640699333168213056621705799498771436173052684747749163120952063770355482802144171116705234219250142413623608867030012132231821216548743607145208127205648592860366036834942157108026546063107148719232308716337870382396234057775179662873040229693583306746477011415609989902570023591043258020323673767761696524696878351881836060487831678491206644225757805055676128820666555044979452309979812380732066550474035565747293733694689029376089257232665237058276066706791526672052581020797040934807677107987555923120299889245324090154060176134168044189824855446693861181445274776979701813971996835847145070046729321274435433453131636510697269172879091751451635522503636937357593723293813815229739753847941089064335213030928982397562667329887605459626364406811853362243290617906962206375908493473550662955800832329332606747496412444081770383536594131067886801212673749551351356085649812340002251055397071805001797307461439501203759998753562733872021828494845678616045722688555420113652792319070924668894242119456959669816507121948850529076039066592380395529006539261260123276715098598736783836091567706500491116176020867876242618874166467553347844984422272091105969583790689194109402376011813229606024756916300128972380252782488613039735792404534135439569339592727471433085698330072616894522236836071961010002955503080752275011618194541495049027760347426502987877796898274289356016902201657715264482785865820381377914331101958795524463086083400454532225339376817438475255442575347099651489561669997221642641934044136513583549087052311389375079277323190425600419699908655718862318093636754674460072858330266496675518164275177463633219869180116253782380052875310237995843839989759269119610230312947039040944199017522891354803905616634557258326492895197433430962633924110519632823195768748193170308798783890798021624600315408609032957437903329142288512084696142149910499183767632629148750295160482660041704802930480722144129315333298514333593341484724657559015031949987687222965164114664571764612690589661043639833641829402998743330201149243425026672283247451545594557122837055121557103181168223486328236568527001767515224252967720557350734610039168388210135400259511720471587778281058788965027815866649995202103135273015779598122599304607657961798046038109422784742497513692792117170881917480536617973927249730801606376204609586448892585139817690823976038110790326370080383399959279250243624220876810341856796266772185743802199701883908592128955806798471451120535394161266292070393616843015511790249316609629777800624541044303099209695283502054848541760543240934066786792712153186355692514150875363007595480795915958740472292376937883808677496477296014744564743274887395625537964325135557948323300075324414521733901720102430030188869975497493548748724974026706185104860827615677643815404535150755510029794842340959833978031910631389994804599625105181136964026352565202242874107356293539453900129588496602484658264110041180067326559763930243768633627847126535937130440761083709996974557126910169481826328274709034042670286620525731533790650179380658107549966204588928071705268153990291017215806788358793763723544418279200469909864002228576157783365594454715316885059289282862349745358260543594333812661145876182440261007000313961165742398891035711620638887283951422280193918092139827104478616717452319978780505819115467962502640589255101109163694341646564116421734618265414284416088192960063701564479822360892182498782054660390746753374050474471348626542017579064088967487775106964713175728824713369200487293250165739841887338451727793476357269825889395610666950039513882812920364327775138288520432257843064525329021676832499798391425084039826448683814804689623951888940815217744339912216167304610411792680912257710836161661256470823314085279773511890533411706503292163593964623147187050176347954851577073060380795703033228544300461285307650067199611729212935620908642603805403374454245820275467458626553264289572255523467912653835200463737519370077672094201823200325652126027513853671999791681525341685377109481060711738989296807102876837158939400168583172932012571857724582675583904322197793627551572542638730470488672593998454948726705863523865444034471218028268425338785196856014661979434920973445761113916320863424173880646617627326719270214280239825912282875323887166061443716128289615504121693655938312701361824765685310994135117438888890263146827036639332962474906569228933870439689264676775703544943565632096747013267256653180918592199621606451119933342886679842314228030968627959862423012718126580127322068253843552032971966135298090818445046107966897840568801450157866016413424362310661888739884862069024381211832319066986047756133580524974457054572457421887263554087060470621382513786009404538017218606915073703916115745443330934788414455708989718942633978090898219314707269189426302800993894785616786459507991998917638710222188423412325150645840956909957739526292463181741820024287594148504096293238683496047641474100347627569226402914057543154297141254075319829834532549260065554498912715725342850043019024771956081038803400382239983190751965505573590380218279806024606065578042512821381471854379350252608871331085478600535409125545329130474502596030737866741488109242004634180845117515158173749069825569465889893002114595801507166037006674576648795039438309430238595075933633964423835965683058669277230505146616369188583646149775733226793438412855101051448872872016847260943232993661625264466840774301860428390780679180870045793908837391924828014972138065999646899463813595524306701396012893509259859036567445968194304753345253198601880558460041929289186058310144721307788095509277634288594755400839047598907610359281534421133543979797547487013923294867910329278040079478742207601285200357622059269683334750208228897832512769656271109109666309757460372185960085251399230402841109649422248117981620339651197195226225685389787509185973242566466008309756961868796789900078789368446300588654674311285372844825155992671871391915183605999403600596238738391384311746091972268564143093520110967653549960562113462402460270624373033252213942137348455572334860569996709209052979488657653941861744793076946793035501929145903149802591300934535342051566432163448828529301496269937967205277516425156511302923123136501888739049707589836999979857742738268382315994236034475821877409377423481691274906166963459154383125805358316761898145326610033604071299552552784273032783840615631687819271204114647180372817115715331616105065920184935579163982749757509957418188712243878076959892248773483412730288704291050345695752128545965021238049863104475743050073417105129376492364250685201302011031059928314334762004637692154919810692282709116698323328931747419829374558969033563460453326539898403033580809184973833094753794282768931990382185912682830961804675556932663261333443615304707053804961426985410519358885800684886582517941195096156230770585410492468988699271086572146955598996136789538923820453075071373661090378752603216191277548340636911447393394399372409374207351941196706505028685824623736037452158174007975056158187101246253399260114506049037191910620625894405825303343904783523282802950488403915207833111284566852542455074496272658159460850372762515547853035538855512073231516458730745757338570298683620180370019442356058496828358966682606822533520241371690533177099677637572006116226862817217575405132739235823589585784953662814145467140880834879828723530223199023910578373526503972327195075067925789010794280414123610292277564179655538297298326823341178992113478851738615559777925690796090052478480231441141853743245313452273961498484865680738397450042132146895220477370166349877578657772554366913179031820022769707054102245736617142184408427274696546799945097770232598239520621181125084308579610662667345804566131322811413634400742779342770416742816860149704233282663124815200707036775242383666709231360055779889185996648834342547803778964036027506250381324921293820415235416018675502555000818845721807588079900391550221829278800164032134861038777612596992635799515382697081365211655322915684029085399194743400186778989369269006873054291891769993121897857967851685505034379513515327039343129527689753264071265829588696682234473929662794262813338671776822223355949132642348269076755576553590580110197927150060643607316509156845537821022585005621585439994267613077948830261744998736637619695256611583615890484737965160207588249985372050642470340838355567908293375892010289197976375275966121756649620029937352460828088380100030989234584653498148816496956444768155946827078055071180807167651937264144931911512773955111616049946080563084679909781405606893461971383757470753694215712918748862537791651438974759376731685421460042904828618110225420288537121321206296001173447387768194421425575540564912706436703475216129235896466908405784793704562373306594153064954173704157632555137843554373377404477243414248564602180337459287458175414673853212779370571275874174019670366724450991324578562811134606166867189871637491658636331957862232106767586856962406890796591927853341016270436305292484980296343684498396928423125689397727011356418276392593444606406824848320969941022641210791717477729090252281793872119568423406305972285770705568840637320305459694845988269795771949465756435862968382899656862116419841058228921081973792994551693723111180693918360630511435807486088109281765391866819131422528789296246369537070172983938073393619215373875411288990868560358204592703310020944848713354780657169589904909832722831265510265808787145304903488232228038839069631357036323027871731473611555784380934008063687659341855398683745019282675357072249294557350856226807975228140247789931376975965064333088409357007371608350953147774963780525118773484358313306799458912305524772010971590034506224707854353960752760806804698425802835430323147923475504338609000846054726287977817495601945528059406359130635942807796365314408685519260620541208703886515150157757495662043143054993668338233968846476850516452700134539961690909176270772903052120486878324660133550715433049741581236759664852092221430310614216990056562207881365000735962818595151903603158955360297429646216138115445579619529593578042056459330821690506869422884050022327575713412195657714810657583318060420379964423823099152836174334282826431020307327538126951327221560475897953807079786773652674979956362987368770348052263173059051494913257613987725691050338607404135014769828453447749297829821479616229255037003841292904679695837282096054570909049449260743211718479906358288799593797277002500078995021772055220007878850697029736561897269117399596091064505877416705503756577420798273497904387075897809499797809141588229509593320415880156089598827213032513053059816863958845321602698657042659684666776260582812907823759441635834969359694093122204799134079055830362910533092029838104208399135172535511395782109766651175639613628001383965702572779015494778474226933277934837048207872548047929655155539116242462286286687874148997911799496664759854235444979586026468630289261771276203685612866958601367220547712009108234748023941094086469579887564401676193366919979769347957132664146829053305334645420452889880964124665243685703027714417523607913524743332729198954802523757368235184589885208092529396320102321680634409617796741732279520149786219316917272890428130538063131857837720485437952616548605973833667477486985962746490111746867827642339524681853813390747261962976452495813785557255613436879147098848189531358494376866483938768846484405990633400782463799122756129916958608157443989095157059900524842540405147194577880872642059487312969045439860138634013939485374295104766044818908622614466800005515403701747729459651826356441692095458626535910423999784030548380682513492496458533800951100676811658057517804608291578511277519833973386976852219722513906632204205551511324944876162458073265751253550631006432544738108954265532740649991090441781501016073202178700083060075231387819170240622917783691698605243347131835434792561809310065360648089468641300617340111448599152095727093300540044147105926470244659996043869837435779506908756134143487409317583223105313205688990843595436315564513865853437050957132945433806427420760634814918210208005687317310523283673131665388171007966936178646673095438346070273886261492342197819374995889788142311360164427302943227618527265956996056619079044833539334599279336562410423377429557601190124505084068040075797182034252174018100367937934714797759074002134009990987691937489889892646122476362479414238055682924869443442336777478213187875499039216254665902606140589116097667102883160177388458385701464004827294040942973804561827690067624782197886221735902423615220095724038385662969860180891855630541062474622608382401081258166448138533378025638714351546832339868493027513298251427860790850591186319684236550029583243124902940599118487670525796684908255544141262301323088956025110485356293086560595446405652598472105466877880403365415593954323734205555191519057107310699349255745987164076901839910252754988977853681811509576442324543783498300517283266155181460390138521321528305714066463069306581566803382091716537863703483171539810825189734978502459794869467308249825670907409639113982908812960822390216248866060085055471346739854566676414132761286040691541654469833459016936911312644450120786123504812152238655602416097344108156348748177102089561052861958675152479039380983467270794562930792968817894508279021389719540517187973829996471374898451124099628384150999059659912980755004629865852450290364863779524251313421861280598009531358200163412937546259365884776451881546918957603813659556528963979105163016102458912377522164860700220163531568177071913101342592312064285071762509700484916772051625177574861953680352090265510605663369915353429766557146193971148962195772667166205770581353397343373263182831722707402384477672406944526991785818402917827107264528235143856477014938355763410046194868044841601418818241382891931091267954110728444739498241290769584765777584405733770571714711053970190035682454211542838304073167503126200471948830930152302776214257037942495821053750249299699301389001350177259963189303573738979868975824858668754944249878456766126712670536302500918894990250060292616060560653852147900271837951526668165140024675370925013318823379592155739256552104802635257832493196049912569549080627675768137982743352644726954031948438303492851481594482375053164759633523094296905942837489992755587982446431831444548037955180075572914896211723101340642036071329711663308034206690974377905230603378557216991493961756132299816483420378614913744860429036468773731426804352475128218393110289656479657546081074411200615147572436457328004199888239955394396728945721354911715772239902098172724940513067455941412487701052658074587168186460694614626102527622571253820630849264794831492689136462991924567335865458715354376712122544148018406280112362552937957167902535150398385537347186615075235702319319223633752978887078306938800441232119630539679623545664676982544858759482045707608003636206417280450304508183728160004639894671425477708225921860339594041779195771537592800284429330219752461983747766204708098055892883333461926375571897751517882996917464447823190023871166444421838864883539759960787233420111885351531135480741750153396471482355914351137769604419040606731212109730041333340762174230309168980671628687316730345581377287870138845792245541592913909427634301615548222004412751679940845363956618428939835789639956289469817166572079397138217606752718385032189621956002165603271284202890543653477268825802251449834248990563001263996479457060367663266362619315931817321163353360089422605667236418986089150360245957491042210892663877009356667046262764908943991034708354633073819098145163114573047088442057280513579326069871565412185465058844321680262492663158051267931255665902409316275311503423031420507380636367219606634851544703057308188084192412925020528238931238042204684319576571768799454440504368190360963927881075942423053507128804967847505316447896300014555020942911163735115425652666646028439376373873606504946526911821638890241378399291974201710431724549486089892663028738385230200560988541483455949793226547080759078800621925232607935422403140319989967189763058960281505955445969349655417596674702125576460568977311173378194708364475697408854052375320572938507240420655229427092455589814344577120404647861608973119134831068785117399934349493194850460154964703359037362155230424088513649992218351159160471372452732785525811126295416679788065814205119691594346944107858394380585915467298944103528741133881944389813432111578355143938325350683695649974233540884695060675625925754640835761846955161208652295029741004459231527070452301432888031784855180658519634897005265364407567678601545245902043393610621231637331705401594740975163777382910844703616101184988925036483504614161757288326090472863623360080848259951553131416722007768969461605918322818599801124753629000082928907817963520538319713307063422742507443063720918625115738730233980894316213108518276301647939244784832350118613552985736207182578109070748072658830964928876023544889729765374427525277388689195783682353841965111874648131748720758096438139932403256515414839382110668451081498487541469114570247558115881074245668440316957596364149338792272668575818355068284509168343631820792928129937245972607593910158979438430311339978179939447793414063532236177771883285500870229919960544340587106020445346316523081609314364144639560515271694220787941934117379960938104793473540862776318566395185848028144462932624349644877218070497052029417888635967372478931319068959780423170771312321694284951361632002922423572803905298967968293357506102834879253497111430314038713123140564193739497890474902285307775332482612885864696221882075296201607782695260364114049479119662470975556309961116644617463422926314014320850369466236771709414638410328455727461000818670905359508513431426751131835646024455626249971423830496906037796132593520152605007796885380009676426008085286026319037604313934553319345507869439344325842853574097896034299345717791488274085015501072991219879031584277630719028144535898275406742512223685682446332295680343049806371803491294852552980836051293768900600453293935884156324536014759010720693592175166227621957003103486903184765987118435285682588305031163643641460000624059874049026579580498353226776835854867332764934748840115504379286875055652857226160704867951068163252324739054989016822278557588321418418108314893611520933207476087067749531750279194948417798292770150550181798849543050902143538449667881095138303139487537490839280005649272658817572926787230359372710257992101930088962469493891372353945371516520921119179668715283377825887921829937018890137944353869597528258593072518683212425126403081106635001056706067587304045356223537843138539345541641103681807570411973038076152039693156893202978519463790056236926090592547847643511344483080865536401916048326868194249240470639118066738575946126025735805753043735224923518739286155807195590736600293750457994530607776236430753186892648344262542438841069267379999000323742935661084988898853492471662000974404610840794245280940878362975649090655034828908996146405876741841327135038816773224788739424366599287735586638465307238456742603375263824575885460099709497158663430253428218543423270775822310025022169746188660130786545629642726508863627906721826202857415482309922250441443934233748360123261563502358875061469579586441995561877907887221891692894645024624601940354618802107217718788474822825313627526428159865571984738372795554719371758209777222382582109788380285476550743501190084796905846177637108483717405625907550482342797470841793227110634860017992681618023451649018398130126365937661262579138091976737142050868922197239601896686868751853023215075774080972413643185337186968294705778533659187156495477252104329028664521070825339373958831088035491727657336190757949559797423768400943722954540864688785109945549600558654405870733702283668370522060427175054985411131406631192642850738866469219419091280262110476603640996086999978660658309208571129073877091616982844526948796289378382668924874572730444647776691943507472179533191060798467336636881284818001475372203441047488176371512956590146130549452150483014857736316032575551869270326351805978458349189150391301207847464813490152897901906279856313938531537210540592992810389557907519324297670977492695395670498726590330134549181138327020765000271789967755306233717540381551820664125045929759746682490047591976441060798159885102314539063409892233934960250659301264699750999269152067032534530777608549851074051001827137151827956712866759544678394345648182313966265351389354961624776569522177488180859389223124382882789766141690028163053470842172931935794418230293894633619281423393203803597563302596714163161270812540940125759485402910750348885706967122326952363347164167918794895645741129440210048918294759672475197433011389460961731515782016720530548237831106628127166691532684872562591242489080901797972088204747475220882872054427068985141812875403772579871173905835901289317210245267138318227850018089602453664796313609154609522796133146052253077386081452770882205522842629815148014870508898907739211944295234033572347609302026356634890900839060480079191855930163155878561821878149644640274676376822907619030769201272465053956178369027947287305955034565434643316111753750167521693786256178298405179927847461504344546931666669922953340442938326641934752073784864119897835313029560655137372883458372536376308908394531291534819340779365415294548374848957741231737851856692691790775541605299789046975258505907997782841088255476915383837041278268289652043380848252276318426623113059983826197354604846372675812534245639018028238644585879287888444983598724068680116492511970435583610065351244995950075163573304900370796176053724799486562696835217058211382391006204187100030127760161686493682853106808140657255076809499863371957238134082063371993837964479949574074501748024683964116665529312910805760216688764302968423070943917005326672705432389605820655518973311333059478303844077098375964018543446628319514716366294203166220108997582360957050075701675108292526511457846875854007771338565050653288786009228340853165946257567683732416027468635085162696868736559551783021421231664806547838628545827750595321663669590913116721056985998105610832771460676688674991749050041366288538190741925884052558210639551505122669561803882515912763361653387690766947352033312522059983455069920251808553758773767459722343628575776035526342236755715372575119524913097286653412933502899578536825918476142400627788980237276474051891820463365734459114265561931151983377844521475302608167839788359528022083163688120292305816834287989695000950730632786035581210088420234391316065692789097876705617450974144557341470155753820628467285131388913455401214000753791541800167493073594839077434171333297607163789632741695528063582905765598882779742727884657035799562020995418528967822361409474640431460938916616607828957449430322878395917079594838170239842535859141250645904550988393992265169184248408284961941708601174711069582776353690186345658817827332828152617798121963422452970992056068253958664904432822698490056560038543108695843651998960379973946225739805449734493226335916928230784300989202499590882544126246787176448752547683416112289100048316521714244926433468454661578557502974849129404933457159830752441657633664228246703117041131294689643028808322332266733634974335367835423303104484314297252686107685758717497651625216953132350570999586308882843024777269990697000470220258081635767016816148398041753993565489749065848847630688384504833998999056238024666731914732818021432788667771952342841562241614503645511734279542286863208803478645646059171254516415505297164600659719536360257489269771244105067708523055946651539485948884374498309716104227499274283524503176840033156934174694411222608668178975582988751854579900840384570851201839216153084243617308233052749300418025008555045268275437546884597238094767102502338197555379506600226222760592512864681249143729531232273211345155367162375301046511815271697474031784457203976860308475022525404168373623271249106392122109449891128527246134387535023023252598649785802380878827198011281864591673164948767571605209004567729917078826868344362055294511831736795272433854902326716683842140321526882011875133615969046746236507288887549162274887753575135180202494252100106750045546203531114090539913245379366675364818159742098727726009197862362228477513612845980193585755900508827631963636029686529665382246107820385041323221932714379967478009966892869118604920704162019611745761586592089530735033256097392203298069070105837039020591699520001389684307137173204446262926415830164396095766342079579203912940320723906548499947093372328972847391325042164054475251613818300709741128218008839970254509930240839138679131130227340505522289845723704746827388617332894124714169443671295748202405190518220839626150360436114254103125896380983301414197228667667781710302169383226964448747446468849328641087914945158792136712561489014393395983922969372533794372995464048933513293342491022731757954436247471962697512629663883704057702387465470508677559558821722362739761065329033356092703471931360512273763193575123254367807121523173198763964891836476884845840066884894639118026849068553547025737121584533650730328741397526900711561936679920736770467618362228868703962196837268095631303791591380725050018828177144383025991718997565742390448895360028435870093086152296666423696706359772620612383126468059771220717600760860249559111938070650240395964196874487820828078353209567066246701278757752353917973153563824222941708065255909757250241013212441115109097222628732593261142620167285108685801965999255951646150867878212445909558349958440285665158764869040872270739738958111674479126699026384000577744672684481435136035423624171408203091865265312123706930955670344942318298721510666399657908006943245113181397085776960631705695574082154124019619324339100694614865021174590383528121033608002400404624484481291130761865003550619500700999805142312346807753489324717600423042107973197221633485208454574243729921208139124093592945982987908450355153067739204541911756683937342379958601804265419016286539588613440209911450282775927579127768013288031087659610065614591393882051355473400199732781009812887406301863182705510381944915571170563924683012885289559309725953328370301947450266024666847686419639379493992507641633054756102025679893113823459751705511284374835981869384760617578578074997288695329898703269185303043833242537570979383859251533623721919536179213957605719085802870672977225244328222723931157283605240150326306207660139359796143346788974546860243964824175542247688315342223470442132455435257248993534207076867252541373192012828697675044362875404208728978226576926990749704835892061446669300740219441359660005137387927211755459767516895072818896535456375645216771487060837838442813601003041624973670666879250378667002163189635397125016119923850070267138400617951096361877450467333542833638782993247956468991029062697393385353918665069877137641327221499587435163116300653237564225973376353124971097580935570727644982166540889207494448526939179078112448798069093832445663736487541635960980740715110293324641573206732007112392791669347484605949725088410562795861864788816458888905933347302313472899685117939468365945867841672947020617203502833852056243758222073816669829090703371993355994541079624674008949578991289415177318613881431069360335368192810795884070307777585345510901037016163274569905323225055315576955152230338841388849656789667140187588720922082108476131619805479734607194424086807971556631760858420488427115519249042437041385194797353504579095823059835578961642900038932550837731703043432801424219714395804258383418984610466129558862589793584433096931181704472839029471193392718528003270642813531245753766473078703028425449687076036895351855660795438636358945209564714636345554372327265751641895307216443917638793128814074572192406918297158108053918108716848702431288967231232400359795552229916260383833060150803088081955597930088564956572431720803961090364481659543314346734873741574343225736210748169430196488872323524849539341865013953493735234167777489407595411715689947083819753321427414303590698200166363843297342594704360790688160552980364402143938880998282098225025802141093695762512664619093404249772358945394335830918781802207612951748689884373119693728988075874242738998347135315300669808782266927534003731341112532539874917969017613423632710848726177820731624836255503007956234079065225372910114735645365862694582404665696426237377228733010454433543238975726543828430179090858456450833790339446662421992238903492081371369748440606946906741427077684038910322754902325476270700784708494886961009986838351270002074930888906147689535971627994953463542823284413902929594574216267594778117097565519096215425257968770943448159575638201796119756335455098444684046612919362553592479014401401455753704949543496186644801121694289308277887650800879692760035073165148623850729273452471382944913879099378961224406082790407807701545327846280586023466352401533349321782054111733477987746558397611504551265855610792723344940905468681098051460519817208536146140964851057271280695927716714873162513963337759405302218360234360235472493880614857043640678157383717723443356778311250583733870406576928676149506333532599687356257160062208582227731025230088437317451429283089415180505597747814894927837490632250659542562920829793634400593053039651679277576290516847893549272885196201333393554323930009090660942263520171447000479671689030760186471806097753575284517059177425621853996681597343354601411224750152688479589335983010982362773622171333958712888080613876132797808648970135304241345173668735137670695810552205275893175574874235054558744611406364780916805375525952566179115259588648152730905572295437771183307102177479088638283110567938685630076914495103216420699605337190930820481037841646031125619860236397670972702738642816539273481588321404126689746747474770583361703947763984638123502097684333745711902150697824988600652940423019417543268017794288351555147635033587774755230224621717899806748113543947926965624087144244236832999650298677981170667252506681608674192592545642160414014693575085170260481495442805118407410049894017110868091102169555091331316917637521047078279066766512712716581850759687213181411102811417373242718170267090723443908336569093463166824744854768016309660628813024906607649421873310364852241824579093919425154455642292949481563436349346077248032231871762871868061338362568041315416214632321028818859138579499240675359415354683442475903493984497553806584104583333255997103367818299322773718529566709328460848545586152864403483271228265550476682402285869435038915353752743111680606000662577605240945829460159499693721689444257754012219788233633600775115554792883311167214498747035108823371521216658905489051979036941818102652807024784452941869392854810600557873252757356812670861807912879714365772897641792822534789180520796384227585679324880522692834498850392249452356375653577234096944683492958768821064344822250549603913166335709779641596073937148766284837609479504538523129397942486475428532259669890975711255354837184591390716532774295538262936842955761520656541118835392048363675043676394118039860239345266955720019936960895255011519324374831173600899451334507119425991977302625149658132052054139488485701056650103670177537584975333332701228828789110654593912108502797564460009105193136484454058989452260363621501841743836104458713599375533490830682125629939216050838990998511323624832521685060838313735196390337372946131365703783373378620062296927911684372744412013131760371814145678491210134651526137730214986099346311012341409467374198760830411800289114107250267829061121784554492948975897951225068207076030948813387271363723772556260319867554962718430910436950706130579210653345615967954764766365195228143534298818579744945948629018504003674572763225747838975426558316165101857959266480027817144845190711801550753297052044401532813142258998893392619040404261405102687244779363917724910490599689007106387078486349557024028517642253565717241851185006288782249440590418081381153777064955669904870316130801190469820841758737904896824864867828387753046273497538313516334087365332332333663335091408271334464925855785350288118542438371971718761496710822244648068495927765090123601494992474775000640008050041264947737081154912140138079829315259127717708297401420530744730856747451385843385165452816218572089557491000825861464559537211360932817582768999296944607859326563682280837214461840744496584282566474515843057205198112375287891176744043340202428727329721158751731636701766820110907855097135604546133436952860693708494961838955617468262838171844883602989405086836608743792510272701684318516149525794081210645209863808132934688857380299336886279451196327914575192772624958097631640741695839585243741082371733866837076611757828492418527043975367743361052363164442359324861799216702092716535937361029537026434072673546640954709107931246047588204195040576156724209854137077195013782080377512221476064204977946237014827685769844929730829655888070214413090384282328502183630242950273349409648025124154127441375822912043692945234276348880115823945526065848916433080554191678030131049281734343580615533238361872749059277331843013209689207573942392529101686123049103931259477900361860634362310322879730993641639325132449816860510949134589211745034892919523815929930983208167136704484533271653391992504933093572343394399937151486449622107292297528900061295014390506944678715710687465829482770014946931700513787717011463229079681254467557223484405181183096034917493015522282681754859837553431725975760493077036331429949811827837619433635952218836630478357769984952942119445515397331724262888778877694433916882810719010004925372212426981893825070107689369974547342211944215127846028044244049428612499722907270958327711585484277947454358482142693348269080546430466692075554532270045309664785871987718589715027117522924503266764393235466410573753236047076960332853511226892421408439762303260072404623100832413236013003214389634312715972174947166093322041468107870541213205100705252416458949404912871706039175674710521732094653320387719513417063888751743154312237101102170667121833751318259116296914997447021432283789117189011337132781066044037225910486429824801274939493960948647041195497730652729039008631411783068171732269187926329483928907560054130380199698118480354870733945084580196879036557537983099312763713762354254171885979307477924997468356885902603599418089458129281176799487489257774166426650001972925620390301062120065889697003599399103782127282357254448478139927494664452724286446556210696314890717602855019366695000341456272388124545277824922287034990348316542497343342401538677436510227787831777164791309690536048181063997412537095999377096745884876635714216675593757152373207262945810400211189253205533253995451512819272421310007803811954998117939285063013122357862192788904730070012283057801804624015680088345093537663776272439234677916782285472534916773223494070038656315982436935561459192983397499198211642907882561121386888045351888414386705237874303937168134309217496715572769960499482990904351270845149313064157917575977753637571314453553683898226605859972962596732601037334783540593884183668926945971976361959053118275247431923459577888406068314459243002585212901687366626392122244197644840817426198438931525151586867906954771730864953652296708172784573838230083197238528111502845990172985542979806337157511325050442133269115024750263467441202952564012052570671197578597932610686051190966107317830263057240352580714568430462180324756556317715572157126331107111116418917709190616523510720899731525977960589978104977684111139432987958714492476231368681615821844382116587079868878756054248474941507475445428604890742453997579898421998095907432223719467434414217363739755931581452280223839397342001470669069188409380246116089816373893041894469775929646934344775758890814520791249335747985850377740989500885997172402471928161415778416696520024431817360590095109505575862478643172754861137794361854800757972145270659874743222471996445085951662915367901610811861956703476011701342294859737694867220263963824116441418216083989945462063568967458899048085698373003998608089705328632825638650226560103549177149672229212146284356964911254005857020764276013411231466001477900787602813923253472124433758943434247969077447247310707371402514863477672012483048214019020188858570396059067204789316605648993285127172926991300158924742234212255481552667075718655800170971909980069727595729315820297846065470536049685514455002270853718614877475860805589591548716240258618712190953752936242375883039698146175636668216869078044961560960691778075137873579245449612359530245809351944808467707974853676283243648161969935275426827041008531482032290130483979763812689676477018475730004771115899794914476846288708701389083466897866927272792627120501888497906922546106871670700674930704332903160214811070728655013856402005807445944393525306687807939125767456106273994050037212407444281695143569514473224600956948172459577914643604461776391447583034934636303457724600917987975286047648447547674069615158605429180003498294609778308061855317150815577830829877888890725599607217782168235763639685846584223783270411069212163225313978667402281932770026632233302734438692709962325862745444723029573681789323647615526426342490402486323207601689938399155480314933363449291708888393134350293881059877418841589734298918975235744022851452779234137693720065513808960267376244064416724126389000932455205751842925645897234310664377834182111564827996835968466375334721985321107065624128486566489989360844188001332942776928410470389149143653332530467047759547516151378089500783304059062869167819068621726181279156920559852825857226157263763101397396174090317928172125628294757007645563595853642749402132933225519890763316477052297635739442675824325625425111626164058796470044657045073263491596383567957349874821627641784346157239198769156698964871520253478541024244216000027464333876767079422477664443351539478940272327557977567591830460893676384108719399918964527395526476580920862988650402320691135599879551083829407271009325239457418755834478564675012125393280999829933220098479841637016243127552381781174781431258053181345799664147651005455305081210670292447850834924870546884656275124324127548872282296493216638264971228395589948696059082120713293385959105384175759573132124725126590647730051464373244714058133662408333267797487811243016546982915221886316602148949157888711256600047079380080902048551795909720749226919616896835862105892109083836670490228958873436427256414287866917166555980795533410343305885929299228227313151115529293274882466236785112595745215109961341330091817575502380737866637286409095693503974012934863037796127072312025123696587693222401605568724711220344079850220975003131461739631351167311530112751968354691617384193511442487030385852240746344219615458436607348027222206160919405693761348454425077241067267559034850731918064394159966235523070112860467263612412190651694539486103846768471673927660728524069237826454619533311674420544750284212786897489128916264552006350885579985447759083117536036733944814877045350877292087833148104565048108731700795930003393736441614767695916119171131511114725006692388360900089366713213914983047600371136949233630597931270558781347160426209046466076713398340102813933782878699271989663933837746060123966241315822841848957027142726388891768156313418880877036249384120172436498216749453791087661057912837393279850313244277444710642914547642814038599987145744407685651429647390199101921695064323962360206459155025637046873203167924115541869235603611738175024419365815028721633109221436576601990512187096664589832026935558982454681531933519488330353448358939152747086879736930025996722918463562374550195315470540646774883804408198206759280509503944364537876764438086502144051666447182766216714123578018822699197555582977271019776811537755922284906199773484298035694647328122436559508862313579026551898032737380987102530475835512255970140569941284069992798907861055524935950265922341657725209391489066195465464958860849991781663594425261333821651644002446301522464850886512723991219131429892594825516466443308280966500502062076299196068226313134565370370823858196072347936383073435765142359852650483220272606196303205025688657682397688873349476507216217331160606673267028037645599759118462283631115532254291080850488532278746785318917499999704775560531141530730494505721903892127287468340021529093553903710630304976985195099774431773261313648069637892931987793703324688253540746366444269737754812213991448431224023575076031688910663498049581922513222619852819437884171929075050001121593478928459324705884226997590934141109053958806670894623275152262766813667761838694233058733322561517539392197005673552805574622695412589717045693017884811671045580373256419500657637615094560845339346434916703342215120800870404883681840398226303171983032871951394126170493583244983632486261871703446574133117470815266113306887143605690087969428413083171048172417835445783305293214466036342725496145796010424956659280659874961639020507401330955040223169064994003615048583977181114218642938591824959299044925549088888474508326874094803583950986117130139183878055149675480612519199089300937427206884113241113077604425070356098535464354717339423765579309383005596653691133338946773035966394689759532321423141399311434124476339154962971946870149084170804514695550850384900651443925646588711924994966561982310276071736361162138497175504398578180880961670422662921209844414983746712091843013967447856423250116935422928809288059104739370348200341340371730799773193695373885938768019213808848258797035767844999067124161939167769090727204388178863148624359840654531191619600251372286115436469447518874473653647365607093081642840313805563274110833891404117652536317133184229863558185611171572993170888942329523986266442927060498749959064545663295522504223137938711411414432251493447656900980277318765870288472879773395216942416485710681061005012097984333563604866267806283450392818873178524835740827684346037078661411241009066716830313764623944500713231446504785850397849308426177778805060484687031863550629110469256021707493285992557643021014543519437654723906360134781606373865111575077343456011403101920394387393042201796988146903759105368170284753616936098998887637299020075605662136549185171725664784492326836185925007803534816244236188514795441833348048260490335408947246776462638290252140637309066629888686819239659340615213341705938333617443557194292036210788629592199251117358310239612202420448276284082026510252743470194327384425604203185638498487349357149125322873147477205629784611922799184780305357717835268099901606587861705495323854081949828711601789333486967750909657835508702233897022061476752346033431893233494329648872385818619098854751182845143321894781049551059992530419499256431094822568531034226061407983991997563448376636647310307636340157213583330032008597902642459867266361821438746292843775167105717719956424093967297766189596173437849804039076337965771306097596516619915922799937325202260008252083946134661422111581903906951659631820404308227829366272194209137352181393256078428790148618315687809034774993573663836834465068480360262501330750691737070389774754902688370255915061042857872825348515560728265915295003063138267284661290284063395019887098817162926700703885809572592693578868944126448762658289336021490063141676061902856499040196217703597732369133797182612595131301093276435304020234590156169306504418079824345526401242239304971581009661937906032862414315805634559573482495461216949305365531319244447066311690050915987818290105201703097646686359318269072397548947529789031968348642545542754675149023308532339435623109883966495256613673441991858236958528885159521513927567773173554516122834736697685137741429407168273278451943015173815915831106996797684721905612406101802447400373805059241081728832789150575034346722517159276389666138198534117979732309770274718175514280664018183434186450214176313635842561076332427578894078544931398226913684526261829389967298626572985056806126959393921528851360634176928084520944275682011664616625597213498543823834192220383058853834436577480094133310794725028243246128363022918932033678330891394254606955894335079492123393738731532608090381131483720844997827004857702441851140737374607107860006607307203945083452334130444819460328010946990417980052965325958192245764177099101292637070519611970979827660361629014289634005888589750663553473372586245883992992660614433360586349815809855655585641364911461604588908048591368641390932722997418995038575920139124989892120142475646967987308588251395570504173533474534106242199090766039521811927541290904597070580611725199872378163428331113646702035165647568068685605259214816683926256104197767900112567172740009107733376115984454218545176312299671041687685465307083587405262897076965065045901612382781944392478035010166736428899556268460964691923769312205877557194102963542742214398215379542793201290970526482490036982708951738461541946496769482291917554445329582289396860992671687744239898795056023953725642209389733394230415290361345570748661113833447156965384888969428726058111989419519332573563797089500525391768843775251923787154238398008271476959140484689723465574161453639310462071051018056864777010094435041829205123307110146780266276749635515397666880512818352957257862871633909516787585286960766898188638258063009128030923414991768717439315759406481251333430630689278885286049126595904099726841091490378203298010963591532374311495462412640044643835286813235780042585414633548974527434274705174290194182360461287715959036603408217517432424854859604962281373710619008009709738288272865544508613068835919763032528376454210916355199390549724700580624356420888774556932829441482646341053440289263630648670246475425838719800133636345787996160598319426869948867915071315808697089568320723122673319935398563833021793225827178292184023475558632525279046132192738333841223395681095186373291137630373223192342568195691785978755036323381634278840659861047742035569126075279340095605804512589046472378141795233797938697678292233983127355253678482287067038062644239909380007667167698531297213203467639038037733342751614749763185363662774678610403599723318917563076884917504840248218402180825753658304381391758827489597436264491091765620523580547435907304850387185188802280890697233622106549302743434986646593057877293625351608904558527562455574303785130651628064452693309835322195770108179421651991919606045308981410738337030648025933501814577978572817192991745897761088964179258288645779607858354590712876864897470030769076562694809178740745205859777809408619317664798511553964565053565909217873712582758910101196648207060732570093311832321179928835445732017204229418900965679570772928672277824139324932740014961567181399939227030921456880166235519440883854500120924951640096048988862892111727619464908458795339240419455777872819897690920960474642367999343749889773015992169304792655253773048840013306995271959698515221431812325630673242180177577717796741025120933948460767287669791335994384028558958436506954938860303816485184770199907007453126055181002130071289668947332326081921205417187104350215779098783519715752301616325872970296190112422621384255835408267246817740763867117440849249474697409876100990371821208750367722393860022608733700658706379338898652702738236800646008833824896655855017552618506819662643028648786379989814300870536444505836775160952928446080441143887418868191125186728395167857915755046516846967606338200492124352115631471971831589970277926478755857658280254604955303135347336749885724365092543865248728419708297597367072834958541219873162821494232353406904420592940700743430342809742657008772211463170530162282116617448919254785151517091591335951188232210041076462190542112224115673783600978736008362930717349132704852963517976193051659097203782919686583115406118689328796606682677063975620169253234440329226881162963392154832659494214059677108978353641912340511403681723726460947266648518935225823608463474067391861666425234854725322574261976439059382950660787900345240051150027367964585166185370091702482498962045956862249979823702776717947343130757623644650649951067954690488331946167414519699303145488241175782993307806520827940243795420596831562090775098135350458476292971908851993614493504255808520876223348015460174199345349519369941977263731247127620822535007988757167720284735924495731480992739647837328434487645028784750224132615158906104636503026946508415909989636726230806981430363256530072164442399946278132630660310506936401671833328259705542519498720269970410843806922331500263975501078853334494237554749681235408632462236193004152412767626228988610919735163188551312093472257570120866781838662066103133512237061534177515752062032287564852736835492446607157921097748584991568772984047385946158552325654355926215220067570127418483691422920135205752910980373908019426840039492257270275795319550458747527034760011747350557000381000003434653247872370852188550034195183371652758925524260181187363662962491399789659053822334468891221530927319850811046128069040412495249361752101890628570341388828106283956812389530113375278466153385797761819026240274438404287524489388029282091598636946197326711318251890373405261606831643271742500958446100731584685235224534701465515662255949632859147809603781839743631532973769711698196376105829215143337129406367548740197997611794958640477499096678295267462241143321209374198733854098046814684338086824279202152009936814197486802847755818400071087149982068259241879576853245738391712276557587207379236830996923633533662989350859348299463516900828330153569562929788446776599846090131650611085691952299876559173445027490636513554049621447720385734790111221822339203140233117252297661968597400171432952983281723259586384231379624791013126145547492437626974609520247685245226833124190829245307873084504849202471822519224311872516906027987154384040534047069415757171305782043072704999271648774766434258606883380932162635107831964484335798513262877682974362954691773664287984788559865092858980515023355024336152342273993330720564298779889804652847317788735571521075990668242305570319735622713315754258344765782079790034692186484514688270175134293653843775262183600340652001454812402100006341445959262796437764686258154062953460741459252789457749057934327266863660191216593075226104874522175534001317433940621812206767796780316012155691618175831603540208185225529171859985443690289523435683265641937069229154479140369891691564625114520249511490913105764381157032230487855353633856365111608619964636929112307016312972214357770128325377888937429741749901881783258406540547546505617640634278756838259206274237182002058403223963939864670429822098250314214014482896588570435361601008887099653586106777715890833148733617305757404375942768290430413041519419535394901800505335287223815500733087395865460541041947125128480007185154888772822952555477742902338057179033524555277450128872313192486452979340355889386781965609703297288256822244194119032717466494037323281462840126475917399423535174438870670199411357533888246480360837532773924132206341318298931556142885939668782379840090580285086605062163478955168547977142051519347408732969857894249780584083092211542174087869783133841249829929847931458956051493504357126839622128815240659572413951792353740983553035233367603292107658127860041183686396228224863559537352787717510085307006357958353129339391496782569078760353444902171888966182697086739214733205191689131251870909473208733412596909763379524829935890541087095589586168380217872646153828356005063520745491392968830525897268530317823178818545310861155995281983841115995606724598383998441368720759081148019341516063750185228332972321940885070845605066680498186417188754825425085798805079570059227276380346122026773311801062462641302930198077376045028970316777024434710839616375321220939366940449765934564946752310129223670524890370635735558451164606778567180729070990456509988027316597142321163979123218184189788759585311578300543271089843880286017120942245440997794373584180802221558401557966637602404717527102658413361055569166476714728185653546816661797094262240926416832559480475524499896827125951939196342000298228748166918585779330007896929467880351907485249347252743230525427558183530517389916131279685374168222785302093367662713403604429211729327679030525633811454830289525749911291460144816190223884486799216515359843318405676468122103220308440894922576035430702014000615597913976033630375100000530091855830774047183811243152922637215023912825608819935215624912996720712115218535235073959343370839345582406350494103823180462985345322887113057866424574432992857509169948850700306817464683762772768893484716054088704051851282417069774547609810173269542380459503534884898236432774257058989173574995611068802314615055494988937299098679064032157373445578922954771498859330763308913027691068406910047635329978914106577602651151656717115978724534451360105935136817932427456095059319908943037926860136493411825134682435623882110659334704687045980338572285716440972998843353166219094522257114620882901921940770821508179666816803542609228178954599666883880609368907305193946589942788145004381149721343592038009732364652920166372851880816687861536891467342971350374665569768754472808723977487981726386444062559358026124471949392934212842604651069840895679540863733323746046006416396732557482209251675588259042602657779362048336321952822017401193169808802740539498851212173964742356929795191843100274216506031640475098483056612607604477724709298388468864448595259378999560326239522285545057964377916319261229891757415336350875017962014277784112223598447730140663874943056079202457702626007131898576281963892304369961001030190221388167646557809258287912133380104150164629372901740789646214831336031222048454704167253082848483619135666498341684189326409408883436539307620311575651519822620536092547825306284905183066382283426967915998993824301031524300657256848761243256495236758356159769431588166058828905268537413609948457202613659241082435770282330480123974782578889002164506062158973425066644847005524588181140073167399587700310702708783577725186068425607833221627487821942397031268650890090793685646866545077667317054656849054748519838178758477397068184302696434763897478521193218992837158734677577628504430553614358970011745192639192474450390189534116822241802838336201854693617148099995688076198933903924840991979206405309019550533894423682595762976283351529723747423436457781580713927923259094061661543354306358751061933501968867870776493598858375616914338911797164888450390600132235569889605044757313061133524330380386213235350445207999243123142018410123186502746921603866785620621587252073879339994600050795631770860160561290328812416717892295418991780734824241267787570349144979385488597116911375813644125047445703932401209855800582430213080970083751346181885538216477196175571897604957561202064731933874789531840941320915932973736910129804268344418953237105465930700139307427623255808101263745556006028821226124150338761402111048737252987004717396067683774159855671082084583365339269808013851265401318190609220107452737247825186041084206740381117784890590774131303874205028021545258378112106328435206780284632115504217741817655556491508042731660302597079831454065855891528380049592658002328685831113310394871805913763973190399512146611152302972847004716366033657238421015291463473276053303593122372433412283618981414147002483336415887769386611270237771944221530423001596581616503839717110740187559890285995154975278642550879206927821150302402031365631600657390141218047532686650409374294897154660398526117510829834168731144879274341375650276820302713021438426487854098977426269126428489215821393951461759514011861980447648471840914709610100213149325787421432367014811742589388247587709406482383339504068701489146213075604848337182995996693603337319040177210207379518082450362329024736511247428696237689519256980336992416380664174281018497199584556070524791741963192208108377702570785140444468838176918182864341230835738768477183885543543752593846665419079502543302274968042359778549025416671993613839728786863288828317981301938300762483832204808209364257791953256067669843711598241049205067524823004721173511236201005031232545653013176939720610158473485510329777748043245770850938063584506352850572908819924622342717599166037122501908295535165826025249699314947905501648927789276858627529865996925388186480884766274610542766183536673683315710369270822266133584527882142568686413707298505270123499663228932362285746548592841619284467250007865602172809079059699369757538363358013760063695664513310117309889749338737108806863557609403033518915818815482603844504560844011487069743507425652153390287811513967913687483615582143090286036347115214873175450956359310158849311680339547831935578393045241798561169230336730758226619606933414534684912723152728023612663476082152818857997639223669023175165163956475858972672263505531229603865701595522681286245121146336698801462138894959976750108910153758557400641052088301927958807440812702893444022454448574270250863599700253260426843059072416781449101902863716180726916631543061942703368175532926840857595562634595431255353289127723471897096537949486025219587554944607485908324545878837370021134006518860410601261789757119364215563246447938703452814392779420274361775990855915610874786866993759056301507132117858996384738674783832988716569271694473289569670086821818502927981436368105828772721815458514922974952190552638197070512688741286896855768292831640117847880686398740343877224271045673965702104516852201280724094831577829427829707881724119667211767066293302766355310329207306889432464801440760707776283461733275090595811444799243257997418093196840044535580285247000617236069134006253637941673304040810782874789688772728230869699612444928494005793098596891252810478002107406410080403711140773944461255947095870057687962553755532373752912332256384091649242489488410071355999279978664406636227228658616072162569050546923515608676516927508724129781125439966482661496913354477572424579166611195495294182082435551496596869493614704953391013890216657567434444871718279008695710555055625302885097720106795305715377150635027752466570911921273104579056021686855048764763811943798099499006560764008351107891284497797438267763432242393304714257286308924601054543507277975160364261055368434118345302210714360759100546478872886106665177017562533343370529700207501380075446268720431460258500853552259745971782602807460646345585519437894556043515814266979580155369077061205538739568972218431789802114658462049350823908266263020981680472738694797429713780403276558508794568651623833677316511369389069840351695814775185537432216469017306183807293311308334034379337382478153425207562380778686998818402389117271693218864030272539484004143858069990080588820547705287388429081181423257637306257378752890288084826607609799055914401268632424652804456034155878326457089468020297623759189708742772141848064328524446634324969030962494195177432732914233040776465063622742338671683174275195298998156205162315277997169086487057473042729417083022418871093070907100071703215160795100443915616295923869419963279919862963223685083965035384410647823338899229253700172859181290646729977480115895745606328121414283300513601314692501961381631240299987787699245548168093429429169927865004104680024572348503642786142512730109601777755747679242848711578019072941337212035415069798354108597992326837991158456674071480221101694820020415993852140582948631950952693751947145011784510956444497769939795486050620244973362943386753773899643117228429693492501075379446760072509202909051034884104955699346116246070440946423071286215094648250456851327065287572066532330079245006297609494715504846951713873301763483376013850195234415392963706720115596607076906151867030403397275746704320787182083960497837463372361614693790471213702345580721941816786716473520466807556181819495965619610518870167233338977119934765623987162024312800363327703883651123947970069236669169165272716662381266167101334271327765810220030191843789428756553028034868002335878062869129000957403197066147738952473908064646251735542610974572692878337708548279240062553019444054517362668474567241039734638017652845708440765795332811933549361987788594760997908592107075532015723105061122809455234487942504898938032534666499010832779021010180277451509092873615737143640012216465825643212089172480860685779134283680405394861483017680613174942622968897572628265935627642014578354319063565526653691639778100719043989159831285804171991310137604150468821666024902939593808360718055145740357156529273259678973538118895086060245321966578779573965150826991132929230141142956899756533265219898352298488766800321738027932920094401414958396286524188805589690067926229019804370210962347735936726243978213222170544446935360176139542738265865758648560433922577146097291789307503274809294173896966576824175568203995529931417333986116642324127777801070294578060822719044021898954179624448178253198202958174344997025049172039934575535174011005332812761479827501556877781507432443887991331249425538382480783543930041675821771368144353426083102014948926602884282233135695224380060923161805955483159949146371985383386376001478891336034628762268526023815023162756128873341756938227565501285533341210579651858338450581790332626259725231892314895356812408146260054850630688154253767005099234593814649312310573053645451840519728104573816624363780141773822749746073949538638773892513743393407851999501029960531168501467143201887160312942521396829954545618435071151936822308234464555148168842563883051636035538683269896389827417153774005040346657537895399361153765233453020730875038692102080948835867351345995765458202990032780562287263231856084976944843243224342632387145835343384052687585641964077709205847168762458041165832974313713674967490116228269613186335114385999968830057695704592596107326368584121960695257101702239875072159031274927579309264046286698243487149675511786516822194265535960347506446651408790104720137818829707609801544303347846230963122889869710108268563211269313558662655609867452261881987174871099709172052554955268441949008997831488973905716321111352810694096356232724031988707775062680012142817731749281581551408862330879649609360617554395063684444759978578357900825529847724942319135806886917626187037073711845520032938471200526507958249019154298935921257818228370385701503189305380896676046994128193579826578159081264808015396766092156023369490649952421009597714460815744609652272642122331562160718721810504536121874013465378595897164117492848568269195532788748767222911736483771526659918544019726284862812348620021741820758094480811416028681988464606355063691489551569074390065032623640399246331483321799742174885183267715302337076965552786090981692584382884868640765733217096417515687875509460053493653365884742839872969386667954845777517187529784448562881745569613348176851360979649373977289092704287093461864806325343959142136698760636528825057062292368460319520108483474762661795953820756227439027571057525319054745621776230640228262866737611678522245692827584902084756970402392528501861312637681842324163666688466994674222049265655418266467569200455982448430015462774528268806011367840592499843928295799270416814717142245235893066854788274592186401252218221153627965465349763349151238339332938259961874719292639324140780173425183370519841598016061568969519434755992499651895261379748266330440557417993180629667128906196992468818388583677861516488079395216588762836829610799373259318125801700781867508599258146324096155759395065293679883121587316971847845091485081942279637129173632879520455073172484980138073302041075350501896824911601243558545072443270929372096238928646741556559655178057382137584384460115975606215400843407450553759443638124750822272710048597829501720569464797224892025671776208194784920550806744564209694662656599011298088779972443255855487485588232587036723023057744481688121014743565496761901246661513850424805754742414827301353554527117388046528522185335238841689210483343648597310865532070918751820656079067011850496952141830257621720656338374620629794287143108153484725661978964238638839383070021693707715621299318876895638725919825524377825392010518744145643999188607060766410057160374694147890927871296048506540644104794775182420215663733416676561984650990790593446206750906525370235266474070148683021051951510777099144663737493331748833241258944441293628821591592584741736343041566382177207603624020436615739616665235051690541932229683294802995061749226403721054703806829086379172579126821868257252592494140275808499278864718047069967402218908986445337460350138771338920784528566651091398759198870079047712398179100368791047472032724431979221501107063690315137843374704543389140421988347718238230215286630522445120264358048679761775640825640924982140283951824276719042063989397023903050281920646432637126808670038419007879396228735915284720769786296840821332919753091237455460875491595790722666527951325021603791542572852425969394032203914459854443640058289109139605151066220867590157198429278697187048859641282156653548776083107975246111739413076719610509788185261312611991282299366469901069418058522698363213059448482674115387816723594853057788213444389428654213606301268334699856536130966215706154666308856685173385334774397657751661150646167999079037650710137273952191926719944282156031844687959851667463092787379809094555050383072829853571999528166119801039430189627679700876495602924386887997430323377747350348108503834135408748607399717377742037649367908697906751702980749459217538833352673454584839619163676527206603742084558244187452839604087820815985162429411744812367300763839150139947525927093707186995057103973684349069571530942745572013849163163604166586675022660606308077217014726536792594326688678765335175986319438718474103907764236475107495488851099202771476552861317614612735377247984238893649231395606010594225186209285917006315712445216452913714508118274244640602316043416333669388826228715712602688257082710809212364850715449513051816031737850891632171642616166100345116003867328388429382193288901264893090171450463425654218540454630100204684373430629931593113619936569543123615830713873969180632017464810390404578356699477587845546996025004025195961984998035744919804359647292276189790872738803568470537677335245301985266091828560316208084147865151895326098928428529470584982626816901231678358308690121378112184473975920483172482642075733755910500565045082104561962028550743339386808548480103492364747494354396410942180981184023394444757353730018349602509307940270320516967190155121974544193717554199061702901423921962812129345098864912594496966311584098384588078101168744034683638427779394075247654144039556520732593739558857783875681047655510853777867103914064929634815098030756527835297673001319903501042206902421793998869373835374391258682637436266730017051042280302303591762088049055934812289105376802997628697864040483724090037029327737886269321953504374633728724111744718423976111959134376252272607423807989058729177038844690365493006323649099198007513082207155827536441721867247922233886987046385159658114846286621533418016818375903082864373119884884498799807912676156546918267096304723249591902387785177077552057437905987706938012844251751225086693505208841636572336116983725908287082436759277089987563971265178419794563486601716980488097998309809584160276186380141819787015230001862305130786414672584514707871946601442777061176984364689785708312909576960706885590597477957943668475445763580962974158709069575994666472631740326621637546829633011255174715157834413608985657971387080446680610716885647997038374167159253586553492271353987568737363075732146643201141303312168318278302694954337318818081017190029039169194996884024624412162486182059373944877434566308710645992355363862127598286258886409979527993795704414120892528316390015930077186523128940559990239024562857890953286483226750814358625260632774510687710204505681891178306415106741811163492488183715073879858691124523845838332618424038043604195056860509585155662312914323449324226778107810172412708411746731745787124145970849322364358547047568927696372446628606166795698890001303832482363494589369814606872603164096422397283815132707014456709402109257064618368826666199100439815762162483197567650662069226503810422454431254671628356287715693692703649535531112143062716074598178966161848629990123201141807637335780966621293291415859579386950714145506669483292643897214172366347985414351306527806980681951224909291881160704975576720467219199781915677845409771571425541245451899103808038515994056908615811472132405588063095186626668689050783861296084630854838783687243385251100994461951099952058084475280101947167243727239078674223120038859987545746920240906485904131645498811683064540505142766932993685757370151824665891594619536080927530647638282330123944896987107511886962108274193979831491271735748194409574575665698316061444601385296809894140086890285301693139439772949401598464760383913900330835269464577213977587051859335796132984244999722905112488330804723477325459673416877404146178014227602522431438298758599097525075618385576649128788426241270123522311816717031427187544094016188335284578211070633345169693378769200424041654471105552114118560613675789633411181650466408452965370905850100928898851644460158125453577765466481193922153162028584435984592445806121151125645129914453761077232936943902090452608027862098119490663842056271159686097959317695825380524041065517477539639270159670669077240175678050450606997942220798946915377906727658253024422850722893626755550739673474221829351105980592096916539802853247107476276538860778137503977266472436000928831298927918704846633822719442204356151051548797698629086724543707780430758892407102077041097540645069464052377254257327440862824776976085679483499185683148101645515812347186086837563123398753823540315564083161947857168746420381220820023007934925534085406008091937771677754640358872205871886737829831221030239856019746933295430973775153265602910001001686126494055846901036225538432174708357849592184461442554456280165074680683085679105554877445071911594420584280265132006027286779543028450441675228724206246439486848716221844224711834436043605274348684757610441972432293978699671747659162983539071575861228789224464406973445273284215727702347843270101869578909730205270465940933583750762929129276671569653316969527142475680848365853697823389396195557627510666873729901731542685805335741688944001960628242984297576334439185269016715062626292107317021035354821564633822481697200031562466743703619586263537266548333872311125848101803093275005642383644749896638400348638962812075559493111657472409305959904513450899921511285212054204714306660804339497727518117086445126381421301379617863467422869977537243363701505958546472309010435074449498378896130571310477315914836609111272655127884709065522151087782673619818419924951349296793733669020530924642985999997889371623758773296682546222417541325863837494620379098954637102131392952817024110308981137858775420052659754521398099492322194297174689191936055565336691421666238280420938164280688404951613326814597243963686381278025459434615194974443424408007371510544716979212042383170955959336245802249148499385880704504411366166837366331451863774073858086607344191080361331799706205740235172142561097831718377145430628964469528868962617044852791870130137241827609278141792106775704424142966204778723072019077161251952547930002162785212694659715271275694213400329933720847303221650372999596935361959305821797004079652812589083164387585923141429182099626234547365273885448081209117339060681249511056112741239830585146464860472408279845934400363490060370740850345452679719204138765114109083273468114680764798218357841259788875120058327221261116227257782268844487749544572558860404750494586487895874539636432091308191945120438379978935561188683776419195434095608951947877180956609641620616141583722899964149462636407351420076079915463100003880742850643422368924677446282138906155953744325533689984715456734880485328500664851607931520808992851594195252905964387802109035853885315251403148140378725512387890842082829871080969989608435880141577894965238770944104598035669382759956968187395217409826439559776593265083630964271628038107266738466002453423403600030549954187599907730588833597506055128381415800967944921393934619393365621943164777157602936730677455790486705034787072489138506327989817392454266698599358945065064388317286646849141658823932975095618516244449824683227211688173305728473561520822959300999055354993976936915612619006982944524186816397395468526875909255728017683170390301844990526574422103571440199247723490509578837675735566397010335844943254278532825053578499958772771054925524073335338034551517478375482733859876356974097391214521028871374633363958337897144603920896132351967372299655271740024969067025992694025294869771723383314918741965392480291459026269080462471747132912701166832105343070176157526461376713533374246458533799854694304845028514477090287750389200330555531877374151728212230755160182959027666337844329262246339025433027708051111636191703828354397009021950284936245242198168571375861453634607787748426687691546045342597070004535595964390373653352838578084542311871423610076559927117470676706062780019905110468806660894835518023165051634714063959187178846537713119723999570558649167331131698157611910245762768351972805876345862582695773607934922912626473595034619417712304852154084780345213806028959594580562784243995658679990047771949696978969657243371289503050945728591167176439424264904996537661789861134101326853451695527016634678445018721054309656208619555249912617611710844194837723678405497195199596256490482548882949576530538372716712314400208967753001895519095469545768589793430213431841270077328550742047367347595163544819132297665662813522037851773335645323036316838814605453488735399968117817560688953418957481403404978729219576254398626465163193288549271719590037807471976978793579573606107694216504279421824448542777188474722711171829014566255502650930310497114659320615597288567202748091952439730702142798093683715434306273102149594719618705127283818816295700514280450109420285105920800861919578866658403214180905116277984142127794361945183603658125965444385620127688275022994957624176717797077492189162622241972866982515004611127780226037914287636513045344367011198836654154149956028158256988851487831072520548772633299726805882333089596184775974069741887260902148666417603585948395360881813617439585822068129142848343581245292634771028496539840386757697889252129911041099193948158696369188622617602103048840432217898424012610161598158037592403993134042507449332026950297109442261680856756687536966796075210253331564591143124060906767404009411575494298272733791983934307117179047813572192602481176744844792191788218344588257400435508290403949508476141116477502686017576909334497231964897278795972314309358462449222241908600581424992863771343665610927731037796952269148971700590148369487114737751478577327193718113460788124116068958350850501813388942656074964327942106088209739369267447703409927981648509075599408599904922303409329909201391338538434893055146109493522347516951091368199329318032533278570516144516196725607871473620265856678171264963430086408231880556723185121935513872341235617939853985861412316729579045638235155058081538783835508943959384059458250362652361749576850146179251828981634901351179974987650643526754400122011650306202069696965009523060114533101127124132287275445504678855668126192684296299032237384513296046788002756130382055290400853489567468327290230953089924724780671850842365054105775348912777828915070632810608340495591780898532981518146033993103678717725517979202867025153559630944515755629580465829979264731194217991824667085306846432506269048254673593393231927497730637055239999461553321311381314365936406839053432822738820829537866125050999323237059909162066731437432100317255933339046545727645435458216190051875581241698773994163359990871162076725575922855851237694475482220725193708504694543673458532776044738209060059351028392351116313521801980319672338749390909445516420546092135393949030055104031299005319435499247592525380836789545718906172300770162371197281535422445030241988677030709467264233788173945042172691069459368261604110301627972038874743268244649446788681713876574555915199788933372794948948847520865072344676820844474846397720957998143047166151620015962896354032356414322079827793108004303595031513898524120231865119317447420014681593440402406346724162204117096375864174423498682838295673615425142853283615940869503593673800972581899916314739395451709650490287219908696956165367435245304188632046217286586389702519699807777921245639166611881219812650822773051717615728626250553208655176602323527128788733305307267870301464892651305423704736177148361549687083309870480190237408956099807026774414250547635768228352550455290236130580958380248056937930848977999569021940768554443353813518552008494102782124348970723989714294303410043293179536021401033181884778184938557203411583265928626496490004323209178044820769277960886035045803393144876392696417368953543110646777854853090036220944623299597261251819454108853563618371776539407142137751020728305695505326235153596176416590693012923289351605498641917792811827017720085539228948745624271535304783731604336146520210608968560302316558528611427685527452596196753547007116090271029976428883072002538955345586309996479471082443614420489488970377417450319176106227912525362998295057386673732345363362206560611664187941501608725893065681244736680044482256405590583638222232399994412284936067806426973510116628761804111854152356156568445870146720181846140009942624394562240717876545830779839528739927669564878761004138763290732266100902381981661494027862652461465090739443145546775638318452505227753767933895524985266325055679704763516293826916016883226477149744368941595752095238245644342532516114714727646320835454509085515880056570158578885797947484926921056157081437208109070530059524670373358290010675328215268944541253330469348570968897666628616770288827246160814611315858983132545743864407522104104223498927658429949274706705285331194158114354187670780673008105501345445051169841142581080565609289501254550180569244746146956688593722891890053524938002166185770777841073436092249979601216429600037152654246879163559446550892799106703896769680788354863259283153653966817475199722932727579508785873966304286652993009261759507698333789128382986963390003690348102556925388156682912441759229669735813423776206153124426117915590401506434232542214135493532009728906011381655702876616335099836568559244935837283324962738053573216176715249899745917894118141983411821644863518385523701444136537176027130655525711720577429894407835727529542335346717524924416113630659564569888882220080211780146802870897426558215973343616723639420431379591031414139999761668421015317347957564772218132910882702556442904684855285564826701603555356461836360874504384249414786418318020341483646348796662215885041226070494307956081858239566274262693579338613609299870639409355577039816358325201859545616379321958094971863544233325321177044337933276964402726911828748993906863395483690093405162013568130325076651700802972725416523388433966590484270387017921807343508471185684142480254873552229807308120472699215954903874968322062781069347014137940652316316331690959923677252723973155676064350074868885711809193210554898066923342756906209262061791952185303579451330915757311874477153121593420714190672062465508023395707387665573719762008557874452905998625095183101238443448556119988981724712391958580549395778460012368339988346042874776594897802015255415818103406392010291749008780012432055833311214649683918872779229718931577943069005405984306629672176379082241247302702512079314096594985525942602440366857837962372431648676184803808177805558238171250455758372753112171154337552324520100713609279416228991389481311353700728080685728624849821110920066519769290098556956128383557889917824100937070755897155363600751824962686876123905499479645365217124709819536690336669622526228627446895213378597214581257564663496800167988120162776454318349584942384903403921088581359211568713091469307650167033075914362999772322216999747412851175215371483241719236577461138276649931962209652274415895227520410294749721440657154372335234371930925989026673751953924061983449481423954444274051821196946449402571325631214687191561723640369995254927966884467561316227812904185093032205939384612289540051696308904956158622060460594672249902274401075968432296452361007333397353950875433456117120320547857791961999936153597857523621155064152686309402383988996776478230865595160234173435432615488518301004790631020748002278143745254920662011371683301471173092101479394686897291707409600357249646900130597440567109790911282939258139434324032951410351605744193361879649799414347804277401426808157268242325971870986270428578838858021162721667986584029898079441838699373527685097476036338031889875793968644214238732949673952511468806037526978229531186546930772837864514331254454129801961036578924052220897083777611971863292674870548342655682674896491141540793094471893697112559396587957048561291679713031409645696761138762254827189723719494054485121935103318265145159711932378349081191686454511009242022466626652732747969662567106500401035818677958844679331027442756123439845485140840971766429873314792495032783233433863455224414993617457443856363587290822311049587057415925456406795683989868084349671125870648807635232629579103439529395469806849231489164474514570810910692495994112689659668161857940645706374160174571446439382731592598501929651783029837950030780462022424463279484694738158705077452571233522721801026541936782200685931571618407221623590168335127894704272402920852190285616147297119409731866730200717634769194988155653165259408487699392686031456392923740924894587976355606442805735576225976613105313829386053241431174880231173910764277679067477398661826276104081716505863885206052521232001156597447372566508494315199008590113840414113888466658267204736298325003343103226321751795334189439772206777888563983982799879095559416628153401781343987227590388980152725738773389741663187001919157514606622960874243658612324303387537958589146601791914695972766711770774802821132716490210737431731349572138005682192940710224704674412725223404370376723824517872623214047070169695900925497484872598076861038073373686279544332104933685743946843363654350395456626526025153885590358929456742847626820563700470342746151073502330988097779723423356809404457017447854828936047866135751514889036686037509858844930328423035453375239549915487966908514059708059576213308933217575026541989114519674019829994214560265110036704231448381019106313487686307058015200855381413312990465713631962347130532413761097400733258506932639172992496321435230609413774711035976201062227013384669730662700484438551606905902220515813097315383740178896160092412693465604982242129309468503161796564024326011915982869837542583339696600493110941629628311346568334895958931688837023096308528844976798640008904127365107666759609322565810871175784736470806877200507948088116200313953286613594510000401550530869124344180212821659200795775713459603448342693131181301289141431057450240269962411220371529977497733585489802776866425200990962424754747700498646948828937516622196857326798951269486528085149364531912232276216365335619182042955624992942044484650837924147950919666259809167370802439705086452244373269242817672367231861665450818765999546793552809073588686997332192587576506456755793288188832480195893522708759595583701263413792016763812339382004275285810887297407207611932402520262081644504099936521878351730177469164408568051574758939526601379540869553696100420614506211428808116023221500624276266168359136790968286581523723015776232815347219591941631805286454303801816207599653467807887365979019063953213769911918039981806454048864008921644955655605732810279575511830476775289582286794017409677730658783679602640071159898174237731276523297255585952705875327728811686264536379660379805613422506939864157978170020174589813285064979777667505885588455408483841100232933720817967425857239404424502225295130525202008135590250596516151181116505193776729992736755629991419922179901593922331892640883578635346244884200838959870669882090131273638852174890828300514006277089493828214160609147611694271758759591280086751785906066837933163208206364529335122757494123230753021654561896340696154168091836113017819589887590787291833315333838354261894561843382152419202432673626793421398998931788025794952305404937790377928342686509446625096464341639906739990310522203082198369610392196325639113955180622054681643826898089159971673052210005907845434274060136380545813168860193479666909364518360129736043124208239060118076141637987167121081564391861777416945614658323457949049380658330541865384947011170525834010923575198287385021273645373502338708792068240996245090402614040742110930953858307769042543188000312974301943083567220864197137156476283261730236719230078177968078256959193470694489525607165434291600010947070037588612271145968080140876925701032160568073234338966619359370577321364999791408576031533282998444999950183460446064275776053836361763127751835009064783073270234084290143216114939584012800196685054490271640118916117922645275592542464275023164539052261729144857044034885185402835014372667808853770928853479208052500609384715043756049830059535504278909885049686574380528340010580309086937080142599657928398997026092793376134336833099728700587386761047773689174826940792109543276819480109457049953951931197231582515813808198336461947813592262889364647334198695983708193867319621618133451173226478371905857890930548803534470392820525237947022130853170014076149180839677027449334419318499449433640410805188218270870386701380428723657997884505587175443619336573052200678390770887537702441552809609715012671884624200525672961061081167355737103491660265554668838741222654358252559185710520114690679953530850158210014292941345779399966762901401081135720688566509423781693249585281175018120574031857744076344416608444145927091533614822001418810701956223386572728607270497118848303685204186214281191946508387138381451881916135115057122020185324121172965120454465374977198618180573877187364968898498979414091559064970725581248061465126709203359913116232651528580696396238704878009960125578698463889397893216319476495984659143703745507587493434086533579732025754555755000793578657150698219657425247565108930699476166950672442070922626418794223685427636782743191434991974595468919594160909035797922185393945335711290887703130768042577956862058918881060878170708459535599625177265885196508972635617717978979749011364694020613675832480499431589982708693687369969030362050020089413773275224699393056705289283241224235185353644526187212004656152318497390139574869457477274269055144438691692505284859680102782160568799993619961604296600957585379122470071546413357642003956346652670468446946442021615450875482161457921504741245517718827020961058693543842406728187249813766208377981718997119121906556867672763350472838455804341634247538717480496607938152953692142722151763166681886293743058893393792551851713089805908194318187551721485929361195278532852295631686899356917517732897556255853358144638772405351025203355150744057003951232530700065257275736907162435503945239244431187272113359067832099435101264488428636878527627622293969482640983588164264984818295962775377299857059568057290430825086733295916046218129768726103792359181716083864481259501203539853326908032555673151155727480663206016229543378511248298630702467217585231407745125932860148240814270195892777671503034449786177872765955325217205895200645333658206696538516109905872518054763713088280565286951301046651812105664471111286870722586748957977983113912348483829543087838878945273298617117401975033662923676451237132179762863077216554371519035197163187684220530273841880159860687971196832572352424171890175278148341544743867734729029176471772167867780237263081218072211698399539436268595740757696775841991542142576211126811184793909401722190199219140735065927235815626617591882786501857513122158672393210673572661399421058026963790573393739863640252896595622140580369869751165107869957858063654381038258720195398159261792971276717782391623350831538077735712950799297860574143029337165111031547971182939423230303284488335113369699725874546182054257266482937290929872018997811712048851915074606160625718090554383003508763174417677804134463253240423596743625461930889350408904689408659057608464846120537197434263389544306346691950763488341507301380988985939742493841238621748122490785965662924609295803227373939974144959615999095008519317378265008643134593174314711710094743639888117690339403411727511652229656971204843380491924460482179187650503316811670479199990727111441404346553658203144319536924193010920570270859096671657281628395688146983387011432038685717889830076428975985173548221556033707085601262984514260779857949388029487688314547096704802877047282622462095119678698514829468307178795466624570561652733468198039308157356627538938633225148808776234564867605244186188379204636334685509192461463538491973650150066682044606902921759310509780862746270852711540170182469823157008012335040440129145393143143558345432536559816679355609329040987747664958793787310556505999487335048284383654737244599659709993897013945924643501479129713799060528665680906470404642037178753503119930735544735706624151333794624172495766274941780923335855356614640954548092898453531206241115851806754818039910656870617740082040645266477968414616891342236959752417438428110620914495740393745943259607683061949311594957468002903053134944233310929593006723687115437156698842014980808217627577890285797771811125758144261831633587973504859104765962886120387198194733420211496479488940739319616273192800338218291501611405315284739111432694861566778717116567163858694851037368640761621472051594120521517782800539922766192811852133156814665205997737697248919423065024729049803802630782204701109173072858927187129171905718681374141662535283644416005466842045187403223221143151886314689857702571703007240401775201356669362805033242800078004360455599261102895373833992705785468444530163989787166514546948948986865882874805525319195831105059107752742018687525914653237140674536969564799331264907319196412458939454430632524363224789851962089363211302943892467008929338159157760650874875030550740078689219833810397347602019039118920951456270271508542912163463415477144859201928381556422305912371823413090692694680012909442161412282139577339770531268403756440810038271962265911721789066597513525503858362343666361322266584151727781604184705330800323073644259950830076023144966339705092284201016483052074691946479653663705272288310166248888383276053692277242350489346059554910016271054244165734498485429309832896346181635608315913952457802368833493198068804168803790112684290019132806779702864352214113540687950187411259960665030282748846745459989182133899524055091386481950749711600358055432354505213290075533566403154116179855670930802846238472230316606777135919171310886399545453793822397362600689652603153148291518782671097595323483304210575984512259121357540679160648471611253590439693894145441910321825312285666088062598830118962766292354827998669611781555530459752787184441470678115204427918124345885406278553559153037467678116829550912461525088624569724603137445498714516819416295923710237953386474459698387595912848412634167700770833999938556920028385101300240252406446327776260723733460579099929917196990098075264015410933745616997329192218930719367174606916437887251617292306134974481092986883657118442395238797293286560302183240725251390281963254472428693575328267075837636020075058777665780657378226064465448717134247138842491414182849298258427183591321037239806826454915195491725395552357344885622867908281683594110916774346404695517562914951459221280660178970570764847334000938786181957136989943794301414484036588834994052638455019449535793586453089138932254741380846122759570412758227749320895086944498934544226782221281864577099937863585842053335860647914062012767926273865885870272284247141045298270929964400514590163821389070857543674858252695504732802081738055538571516253109775263301601097746451975360760822602694084528352354972604898053467615719577256361799580589599836307511708493738752614393431798223386818175824634263591596570318132043606106981157020340360385658225844663868899449516984314692362889207148843747429770378633694885598518867628909387863462332833670523856474828313972143451698317542540362131029108191640288665625247789723675691364702174685553640663251443738730949717091561982718862245022337309582502921903031096130510346464462162445869310525918711680017541467744026494940599532856087307303950762265626128127681152159109445168477267701057580031828228827363743446527800526562807701098747962642346640372863795277153439788265038659908832777278144747991267760794777927056275323854818631960126770247513473202918462082351599580848117688319308983288268074415755228555977888493832239503957659370857333152091827046093851091716796573985152069651616505865802757381954093641016726720751931719921668637393851937863484878402057778160300201107076688931984158851375542517037158964143570561540489479042298699966033445944315340099354001538814158047240681347083514288807851714733238001769442718617395522324415869672889343901415739470882518223262540832182936590735746704716277397389678046966135317425453109872231084436968281543313995032519630178034219060939796230836934904299124990661971373332769722760539228070314434289124909209044354531490926405624139037825147009304892963538175908458087180352745426040243467135922368265900413619260334207065488031125299189567177459379562888164346057488654828009990937745407222017239955021636445279372716643517239282918149745231838008735281952875943488638655953592434609213040444538569069533787195012191977957340944327108243761232417878821650825267939623182347662140358085605303944695549104698450734854590593984127974303366085388701810801308604167283874635382718479286668064562478060183762036143382107382234679069267807929851905237993463775976014234056325918591565899337444504247705217556397760657782040847644257964109808995172976132614960504043635496755499714958649684216465604087989101855779085633763690962596415689261750612981771450374480526662960927368353814266984201243095029987955573626048855908291037782527109035043381103057135191053042280621098628903048937556819981660860408584755045279309437423257526214128507837434543882800745550866435927894256747000593356469423453970657996626847682430242090031291058909571012656153617154004750922868675294357944334328232821885648847666663185278482571975466528000318234285431677808765549100819078571191609909683305604743673630733812498586712403016484589337285462860659364128564650446761572870631696985783098130137289789013945025660758979805441481233665784112138022972547676286849281054267754080042132525980625013735637271784069098724909055245751341789741299667540643609223514493360780772350431539511694182439520969166819398663097036430831082236679259274470137626079328716827199398074854398056289205326399403123429629847980569860070635853466696840452930255736158055572650570654344133097959893748191204503402009784286970503909352440832169881626393787391090807204745458109878296072989145952115061705205962897362965020723070720726726990048854266012546002673237069028056159377247480824683233049640526072161396385345367695227628220020897884258222809807011159098458115655729102633503952813308406466696093589125578635060492652356288415062075081627552882721646533359641783004266978900252396803674911472554265568579681236911932164344327398128340770057991843231681399684950450417447136939675250960649716700464294426950263455296635424415256901505856541581579093256044052471493207837941897302983514345550485048827246404187382539707679518065638735086585058229766609554801367743258910688139852585486788353680791532474964891940419720325947938180520111724958713958548675577108011205503548667229839100522225556476392341563914892001468058864793540131727349646964387692119468656709820059345245122680349271542449586284142717301338051337142842218657789794288989625341480364115233271156391111790713624100303602507871589948750659004493637593290734196594323665201565493826956974272117572597702301618834711415715092557096227945002267098902101873385518943617787172217139870256224100534786815781281840607777785632203059271026696438424037171465714738906814692694996643252493861511704331473972949905100150331778578990074139857608897041561600885721777778356922519893784261181662871070746960050888659315627817677602953440747616390483282357998312241489516664170414726908392953563322824320681732652453316962415648546072288420488083923659053663926568460042334173693365050989033331339229096597784256779928584078093998718127680498531707552718149652521500159484378787829849919622700364299593691862063292907777756684196998937338144641605212672787358511952536913783246221299315697429132567048506920015987923951415008273177896120858129311699087327923373136232779415276101770044421600018949674406668771347159943074675711914056315662822872133484408165412931290127822743362994111616254457646190981370946047295086818305616109225240553221069783295804353139281920117643793946595665257214530131378369002654192916919836682086180505883158993096689612306430394945265179143054870246235154401199596072201153252255745295453218860460638518123349932816944751170534310040010084723901556403195012024072617397170368766523946955772935617521003514414677964720439579738085136633697714477848072114445226677952911164466484166217322438510457962244653300395216385805770210901978712679860813508117771679347863860303116747736993719037145938526311379451604318354750410546525683453666494462108798888921084232057377488833979942645990318258659242813879506987576844634001351172837777107546923075601551482346975687779653717382991129092331527318018525763868669277684563260224089972422819941774100384747319777165083828056614901983105624100248334984911698064375585293260910420180841576236009173896991246709333560173697036948755283071250341287759988325186970461227042646295389058242083550863073753955228157187799307848654299605927718769748290041722328155751207412777106274778553833968959802520014508767720488201472682036713119786290843604805048719485012337162956459046231978732373985382930766440057331336198512795892992843040860900768061856530850046387609492453478504469985741914242342518753470872613677549639772710807616457961487900387902107608479080125632214329368779022190506225525009487452222898254708462138717682174221814165228510980400598367490343776025568168943616624444571706700727353127990772215348636026767038952365830913135286327685317133066362257477991873059713423871629132622827085158450254974256191261353345846451249233642669261805774491359931459784458562138197314480985034076205393251455967757783256116514626720907255154731782257696663659097440635221274195193484248122479471123722285162835806729224286472964697713854172027167883867717259981216751579395911588807807990865615350725534684807314010729127980534914204380161060116321895367610012948995388300367298165845136580998822578369426024305483900917624402351456551959893890550844793257586930143636735557137484590730579478008514479590676384608355872556063636281864635435795564122086482051345062498407851761950538214486469670532981521049358181635053709835858383688445056027880047970062134870253242308703391795096230928752793939747628913827066191884078342360600926943490979605311118793005389979247995986104384003664092403559442400902241846996779489452052579151905753256599384710371294254558749173044381553533672874578035893971098088529432355530469232195094293222065446808118674856612600674419384110495527408180047694003536464236176260874099532127821707925684081064466480023457984937421876204993748180934030521849895928552016631870635354018590603073092611514978502347030740051860928507791054517806992609807299508552350173655981005309175156156683045773997175296364305600447727846569333896602508930906299716481632908405579039070100223188950170317061898739779423407946840503151608280197535270585458353417014364256378742394984919980359809222674571033917698297227820506936807844686096493873196977897288469864100657537521441027994166982016032291939059044992742397736506369960748521538477087515842341869916535946336700988794048950715834884208855286093388422936799574793425843448454842363273835555572362376033965294367434663069954025238224608399850745889721211046587234042799831337725819809089948523815055048025312239482402338693546143089958738519785822041851061232734958237867194908616030767711943592374277798527208187396582790862821992921788560793812111761592855256577917662862700367991848385144617524369017374863321877135146604196669574922399173523759055822245904417701886815048891014897119821226947329780783464465203886768490323907772176560276534008527928015639633240369812607132033621722874746875423039208151029379920456310766797200171566867966535170996096235616199500357114320521095294719738844145295424139945123746802280472460989743167307641066546745837201375745103033139451222296103282747627910910417172713367311879303496702168477766571766723412186987917743087569750920734492951204470785978750513085147044745367256372865160421487670792623624774191861805065284051123949928662797925703485685890582102058860740624245331302383364500485953712998670381778905356881584755239319280670946369216097072334024088005999322524829429244062402207074667087757158967124789961760707585485178867112487297513985050826631595032437131322992798274592710749816429391578600828962808252695490921690960109614363087603648079682018430045355123821307548497569678591334385177253863127834329264113037995133555760066620834334463205544671527547121729140540760054678401789395717126915550037662191193683159917216223737332362711557794705657323260573804121756570327289929253389923546812488465896059486941616235066928548831024508682659382682916494580744235471717169205966105598662400294453476111114422992944700849280327723726628091795253553229435286322110119441662373534702427957477808701912616951878741429074572661928053901294279633238788415559770438928139683696125362744726634459269233602580874232103950416077712692811239375908374623473181569740913855744424973579793688733348712732099909932908751280961223696741222520601709773489240097651429664012895992815375777732035856331190916278361898460935288286306660087895402630658148358651308900626771514328238742516087884849846326182721879958742311722451589722654039004387256764626601377403767378018259780001145214622513883655900784032970849093848803466329020533780560965060629049995579353659387189037063770183765195630143420536018970549012149592373662452042459378783205437661757029776414086638797264349464483757904882226046164094760943468409440628253062791079235655039436856049594716006739961783681186561690762332902051658886464813103722850399763021692347047365766948688918376237722686267486052102858220990594565932200722993272780322392267381536340298176751417347938322265013572682469806354916687285342894020477524994410107172596417317193786559235101485110277583394997570429357191454193805589705510607308486948748822882844025673631172039843621178763249909488958660625044253207940203557852308519679331746051989383520943160733923968563410407329647639448532611163603373131110780994438131369148207630468269463267888666301537420098164544034074362748380513432593459929955190284866472929522187635131606221404887751358916327858345789724167725234520737347141436114863053786609231095533654384403476563072321200487634240183777530821987310375024144864948844276105061843702339663728377544116002561414845446570012769206875779043708537068443020874126924220117744859372609905584302899874097006592078613855186325701813415514879497849620401557073004557393771056741026135155190007310572135572603683188102443606631191791783268615261547201183775264304740392696582993685529544039571492644800159888585096462689367231190831271359806501502098398024729248940827193351782520562727634044261593515031815449082224400744604999084203689834195030340184649121950319405989989687042435015230159290166477904461801544681991435471405868997900209536738551219703125469928463148991487419502175720904804179093355358554510236089533815520438459152493346313372352396566472813779116987082635696443208167612774485902011406558970599090786019668349562658429179233254932994961678156959529346329877939856894510674268218161188861620992143121532717209671793846380853829236477987626959862117563099915645815332223021642148717459243759378554078662626713027070878963739598756029637245443697231590003169130147208416189716339987367405446131287918881969124976978184153569415334944529893437084009713719050716291498349397400702195761375731695905061212826321182373638554481848176435966308815366282614243235338704190556937812473926106876413505348259682753877078236382149667618262798585682808929816061152467121904137742944929839060425093637633269351078844078258324669764192690664652991943956166218364515107827058668590328474942222476240330442629097862852233527871105750383843806750109744830634856000173058004090558680610806918394276166301433266232587450839259166297026671880482655367802248887103614350450236539827351804073771001609877310711756519569312791000237139104917698369964096079417549385926114129375794958705641740578188645878004056436637860677264124082441776642891323945461231870252571820759822901269455667650884077011353332533672925703898520833956399316024655875335387612753688684669462238967367955265741578680539527613452888674856055218620193371444925051202817900171739357210067598199188752811980994834527882399238230116152421984946982409475534120879386801097882293332225084507967400295441627171160952286844091429961626400340066317066211426252867960832492992236255648403264568011739765483576703415860581622518638316158141731468049733017197127979411581686348330831464713856725947491617153142067701313839968065753656610429164703370812504421650875739243091148146299745367645013865004948309611369663645002886882241568891439146056430315677509647006786276827505815762562433157761323835878884305921472351217537654146208602089652145721870218530138916177383727523427624429491581445206465430295804453051509632341436012853619349619159971529315543376852869720736513863273707456156205040664963507805770818269706194320701191000839618094129049222068834122233935020982732495693977499446842666339966725549004959034399586032782852451216440848479164236441294233517454007384257767384842922499972751924849339869486513170834197303547468428516776194802932221567273344230943115391187565162191532698506616712642571843361480291737023310133844205146763858050263201781970860199530988076255178557722614050309027426361784503629338841896524411176995204596340348695840162605021064808392535422069413657752738508494026442306176937028574589698031296247196277198366875293681684156996492765852852424281926186907718736041556031558310892478719671874660964410897369927943487903769122998871088044517827456958196539511031305048692759510413904293420688313621463083021005754894656338048116651332729517650392130610556102221595740185914417273100373147001922848580946262273631813307902938979701475744382505539956522003640287833605974043325917678458961459254654032815107691780521435110420376220277421523992181216517577081567138361319291953377716183885151723351328847995876884464234448299997153388891062534323727285694093744937297982806245416914441608586380234334327220010910075674709285987086872308862715564596277342032526185285915609473663964126710352129351614384910618766376925052215456941544846363311500502463111411854220270392969306893864749779701418230505022980147131185601113033097376525801589229484677090366688318893825443984612447412033733045171169581659881382454684216492166715903129754531265314681442386360862209152734372662001534243540081682847337195822528801642246258185916493091576844400556958179610548065961996039373280065384218350232198616754635511057955195421071382919156259139363705855797658153535678394290070382101775793235527354105486075003854157497822259916554873961166571679123151720610206087485463252316887243750449022824712161217939843901047541342465605902980152657707171514336942282287737442107549386749030087070651223808226231391074397462336476365019325169441836069352858356150422031623457235670732198761548134691701695524126844902820924539827756287530064867697526921845236071030178855479074729933261114726658071018349543308522029719968321095831001941754384531642218469891797401743211900751871618829404867242492295345792171819780426526340455368421991431399198057358945158994705933306043614899697495711452064771801030901240634861601021787712601405967922227094061322139667003260641364791013381128995411682116560067212183862061015111424690005534910486454154519409395764774749568509709748321008318770895627749493766078666091349826569192556368166176426243512774978644900878072959064532803055049562284928389226774400250428482210907361410335929701135606171304031858323507136034896506292669270028121682187230657286791986733102774623882635672899973695341197263508734957668927144700025006876132590543725199472586784232435631319838893959577368063251685850732579147211206314011564787167580590984072638236139429792087997381913167563585766351664866809110777463228721090561091842500741434241139886718374134983128686685100878824149130236277486571412177868596095682902466034900883163169139840572550598123652553869898465244678688699182665347877132671427442158292935352241765432908003296716977185500433623812008752387404605776574723511518418205684173858261705191590049103298497345542604380479799210104330753298378843838818205850942972427079142275662756669297211624223073853141386336465403517916473429655282638307210628057410656520898819128121131970209472236351280831851493518809824715968848127682574947570984184842244577375676179086054082528194507459941036176540411696952552010497542566151140844386916810387952524973047203139743707595992255854294013305874399940340553820269366169102354585489139664417547358950050297429542018973865029600058979800983480708997432989543289148722369250437730214837264300307463798638401960717138410088491691528625199654935614763217944234826812480175216951579319383758028613959841787771499855130374165098245700138926933006073029192202708462272315321838626000270574523252864158331651684599644305951015606633381223728128341203462354753606633981834270774570534872080321695751169275676689105038844435958725725089122837931914679486316297369959934769960570239567803849089253658234571512503307734324238265297696151347485293110738340742150707926427407193289836115456483214123948790478350994460273056766285779146075270080408257360396595364510458668052160937596617192008085899656723305766451081449186181212160490707310139699374750425128923500517771600745610372188097634588589434029074935588667918716330717518615875032437659728677214344114387111443546323233590312757510138023880487520450711896795567361644086219853665855677800284367967232139323617874561301592017312218298056345669374610825220010971289628219560279686296163200324964053761657837333174822562869978474647647961518784483160074951042480469412200882521032577704393562784930882135569879362372875268089688220912542940894074409234216201132979646214828574785775435882865310488386837932530339933650066038018946081088704435702577815071081014186579510338927514524451894746299326280294113784635776452208062212556411332839943745886873354809676921936337252049346514321408834182929294312019563019094971332223971078088096588100607411371897682456634545932928090848070778780762414855295111119462269889126420871488441974704757941747150597556626050398289070547152358772395300530437412640641979323499118850649429880589364240062332711261492018395219349081699028313791183682847450286559590161306834898695547242890725323618652170395706873706602243421557778687868538009067674670042653514412798775102359663929517088315506411668492373573648757070889818723522636489268060384973108407771669069046150839633640421677956311626904505431605422372971490084225150985450087926242272433948972731891786035455691478320440925274488424308148615959070758575335611616628972330730030433134911183659202149684134669598197183290099086370594886533694785373230513239125502861523147194433290708596182730026617814423330357423273816096275064078463382051060039319737511618452948181925802130377185766250269124127493035317072393922455571504859275861872207076824282202645087122338269435092133934003383129457470217822611047563732341581439841894597714941474686322917068080215656763078637220223967068969746237867191060079315668949511868167593840091377156739325527930424963985366371449517106825670923935541683288678885831609224839045170305465270980646349863300137476352426186805806062274131020073606777678532611284411089741309705076230501040635230294268510978550540742738494610480624598390235452074235198188589960544467995770644540415804106836065539719760158489787223398193467298617892830195811810425870845732619963420209120105441752462040069799973844951903983566018469152863023754249852959758533999708573920598889275952634305398435426718792411111230715502792658710425663897130822768726394939070940743801585545998272477253775320017847776798231462858672811142944848484865787304267344225511629617976929202126531184500710968566450694941252949275862742887830207975175928180508380505429496524266413762700473531337212268495528663541790857111508321454694808461628663447052729812499592297994584772276375360509871850187643049671604884476309774212053346679517850883986991514666849376252099143953934497869110583492715048843966433219618696304399033575064948032829394505547556774440983556583415392220757072764765119162302271445653911586209647449145570963761013706570620992686188557341674439071939159292040375539930373913635026584915671948064185039589970759694591553656783128892201558461704088538109209376004525511518723040257224314288212471058684953672116943802422764321669744546251752695534115695801877104577343437321644906659781684563237796062680008418231808254945806424504523829312987910438089573938708699549455748296513635528106561450984505567898982915743584752659930697764245540813025095947667791069933888397023216693594359610093472461212087623103011946602225611515316140306788224276491076389731533104118679413912168021821426923148541668570524502330986667064737683206395353176336426216875552888587183362121250873925604071142331606277283274952712072273695877245779633770840591937421986867301075082582968900500844109105425207148460863191372533671337316926363833705059467894088228111628318122356589259495249459687980709261649873399274326276090465891208082931486354697289263025470523374144153179247889812620066083381998738775059167718463057198920669363500267835919339162836884639654740734050253501705388873387629610308630026619269695984571098720390167022746334449794772430845405825452296187336095535810081387673592352778724791004501895308284087177156346787633113250329703149338391808457394801980811684832510207032861638201265528654663643839208803236818291268110491076143608259356582777228415188604365467995710955530741040596015911608457157382605278327717706134186259056876781167161935874812246342467041254727009989530285934531406300343586512930206291055115621833917597645887077861849828686876257481452902738835604178278502842502522593638888338635881873880058059511949024815127954572768848263645083851152344858682611555755661643429089640829655340185468112126153628541915791556649045093517526978383751848495192709129830855920297754987317827356623032275305908565981873560717232202929351082794768943406301861523904405204349946914575904507488381194451459185480096752730781550657699903032075200494585818954931235203978588407432096887799835556333378488834485285792969137616532642510429004042523368832505050255222864120896810200541089853381381053904055775247701851772466895448255911233734334058755239487686300366231560328581131452521354649936188044608292745881455026045338804996001722116403895680825012416584431231229027290614598153413744306544139852912300938296772112808830074988090393256406079090797802816650784137056783790653963323418651159923150794817950850426485222471244350136603781694511490524890908373300118581725517379052691400564613499869688573111910570702923464856354690926367650266409713716969245924225339563968411871510852847570839731060878364911684615619386182341933190698718617880747669361494997594780155076677696610584377913798730789369684459575882198516654243437291329301546483781319237832038096093376316827994939319601763417547602272897496343892181191995435912041057360242388094744125670391171218832042669960490127413134230071861912504326088772455879579657968664070361286829846568256200197605252758085149333088979989436474828987222341959875744303747377023055414379700553816503893532783089324727624143438832846100805419437307133511215450366413958184105986612869810556508934396680907888325643877509867617459695808885981045899339237147468707448655523484842334013085528694655172731312487934562109388995053946318256647031470594123663708750885628501126152760902933305667187232938110234274736677365373780315768793013962778940888785770490324006642897108325281572190193315911173210807382812518262799245214135278309487154334662002660850332554363232443768261248640584526324264604497746556343647005289000285455384932243025663342871002815828928917161812036661060442755203355851427565305926508272356276934621035393660333629139811220533018698933224419577767554865120783764525725940667756627191049766316867549678182131689550647656944981825658759011143579281860223745579111139662778567034567399251865822190717752828029551425862126655969706534455245515934518019767708915017990058438807326807654384301846111418129389922422225979792035844913895480439711493246403033821061346331338906997405445558032190406293541312984253177654307402174326538474903838138738319901119659778040386296419235812420325502123333178531829558505790336379911357174174296371080066571278785537557730650472066115922360939789487221824976244376217724415470554422221803587204697519563288879084895775446832595386534175385745108005160146270863192412290069808523329773419543968625861008520566422096730168716841959653307575183179204409478759563806397397297316464027603454141416880176607213627486731719790579501656476103124348292757020477341089811799779926450721847710898336823616616156821947162281712386318662340180304407207984982036708491518086441446271384928702023214688250682150365336932227358431637731291534983251897116280961304803687977821224978704791395714478813832704476154794415914545477139897166281654267451172204855010150145450800056771906197005430103308288173695956407273863875476020275131741926026908229073374703698088591334761921743438563567998249337435600232656012464687829077102013654085166866713229219054303174245113663456147173323901489562187774163781557271232228417382399833326889353617247022873599499937420250915710021277440239295440933639810335471963364214650051750161146225474443412826815310546000326666450986840571497621817942739821848412395332503589922155438982172061873630540558797926966883063281646213453473697152542454892851837837237707759606625888303123826864654859388774399608467144602134467889434214645908566878482105409039285725064872224645493088189386440708396029896003287295687062731342596365190259607020155765881358702058687686693583587804032484587252001826761943255818429830887667916234543092452012356172571596536660982640694077392007830492482197227363073835701540679199370360738227086167632608220470886419372906390177649739475650732147438933671505043674222770072989582178602976432185722926148378078057018527929063891010540100688616841295459501263964443726665834986419647666180242385559492932991056458560341822096182310671269819481898609035850092490245519448969885261016756202663683488694249043177348497173121481248841715082812459656743977418851498494697176319144394925448451639283358302348734696678419311586002262525441980810412005462866533980922325276733017111125679884645055082308080206092534422687425317652517583914042042622388528989084814851849762100723854935886619707185633723375281399282430203322314769842560657492144840182817788639407300028222285736413557005348293306894276474421823673048610521332996526434411248967069470902718930560816581159885844645656856818482048189833933164509462975572186714977562791282180716229636420028551195064584705744873587692689987499637246367315737182386043094379191972357358361393982511315769838770659819856796086959015247711375633895930738948821503081875675503858409409600906639830632204983408084005899758763935274139051816726152339542785947719131071298581080933365691839208106736026053289490552910576006938177942121488831619233492673730563867830185591668326518876092795068900913345904891968992032646765134198275516172199627815913774742744724864508912281700911791737672804120366862312777643277917807792209101882202559232097926725828585023319487707774022548142074431083523678129164156558135124594652365816115361994408215571463407933336319529709205596305177323206204396813667145752371641546035956451793468431093615815677572864170253089728054492911804513624159864497639113732165019331809155982746290629234585798148666274537313197809849971775125541337894615088433044024975900527528030071974764402384473722185881909446012645421571748343758583907257618077019020890422691175301272358103238139417239082030510806968221528770870211719021774006975840014719541242769563230044703056154216662768990340430481135096110487797790776405959002637032060444682080232070612052409289678235023011707883171959049095043206962735476386326126735335108001875512709331235989785547526828993231704382501923249599752194208090094845770130894998628133723284694034531543285423438416394088476198529655089864509391294916070391506010860576501232029126777579029690437704757222427238980931817618458973145700871095037769607374073914419728583669009793494491273370551134014889155245819773544725818761202246189772618380378868464854890481033401567091059297509847030184821880117159378256325965939276406559469878934003873953377393835898021416302899652272959599239047746662015256830136183850113154917619793092140840385084319007478916117531695848564738088838424754258899118839674913036012267421993527948044152684633757051160192568432017548078294371354632489224034633233719185438162266202646320791735541079448651847663758117127518117304498413947411078312074015087092293833746182948708185564384196490209794632994274004734757464861393372868936263452945958380094720703379352439251951583708911257137092652258971762111017675179018963690362301872977439954729022313732624212093637796488012420624684752163515043265188286072472492966083610945995370719746378631140297534335572999368358057272627102819585682506420795972235370549186826144382020234207533042105561564526823880632058476657987175863413639753279660597003280130777563483514203724131043103379168455913495041724144764686233786347918720631399882472884958841734977344026449083302777398368886809359124320572364391723225632758318862892729765059173859077819829652942924141468974987639106033881409180118440025641088902541231779692517633919333491307567917500193974076998254697557049756359388621958286623907840929221231834873759394027442064825788679287626582916305290852550166194283787798365899316816795781506214051074195462574242649207472651651808139497443917209784588081946834626536136378776789672215461488197365576033038855235129500570896997597676673590951249228773807766658418237301648395281628472473103469124512687661087259876118346962894085819151243102133778269497964929601549770487374794097299493839751696491887063290672708681999875302113205870526135334296306702055930097830223391862047560948623689549092561562803730719561110435190066665975013396468473638767019116101904208368280631079126483762763028917450744841860573520175914844868032826240076176753399405565779474886020027830085745559640064972256502512057545066674671728581868902037476930592653355224680808161790247006986651571238003487563157204006588936236323614663454262455404454714496765800552980247994128204415532377415425700035187094735725500238310761448833664981783845811469202053864890771767806721259233905676675786253220380537638982673713866942165576462796887992897289845727626744516304720494138001993300235756970653804834114776724191863738283725638570470524005797437060686972017136657853206866397505893893010638671249002287062336014705422690940464625043065364597622499697714910488331877725139692107630085224322866738502637498125757622783866355350845476739467875171134151976789678169571996062622804170451461107383856160596601111034363061709794262376502598815734533453502730036040386716651431570759918090357294612807683464054383373096597725629598085021085943789916216332606069192939011018164266453364489894858083053041672936544157009321229539641859331960471285112438976086261866175919060264969414166111168496730598318200077548253589535133884393380753790853781144451663913630890730173496311594442601341377397459040029731383764903186626043266050743267088337834876433388862626500284356600354626286840654399236238386326782894515095602110606223651134808927442058632989689979500899555560698472300109966982209304437729694096308315834376960657685546554713492564181923878210307042177354430954612804105896461805977928528052232352168489424639493898545105157380063267758776047111508732254321949692037597426517676539038129530814797326232284855417193199219809901556424856238760379756504441139856438917043909874679991477884761630123938865465067536573009941131058191762819313717418524864344396652575338883471261933595584901166329385263391898556998524905137297207065136044729617368733122357819572834372811115490430615824328775217551017997167983028245680675244362629691088409100615315149631789152485551981955990580344753358940330327526230647478031291747818708495509232765520909269869637411175784408899741008191192962665615863200552121899218173359644617173115611105101085222422728432297790705293456443942919325867428661338875709659909711434594467238167312267352538983653165626009318070815823877366277671648578499734040550410523251368512580524744040960026212951709017489300501444574323177577163726080584900225042867660771599419931370419943515301589566995040115919545831272195126010214352300043136105902862536280990884319335735439983810338054357691433320580554849882226405025398133509821643871918989544698347787105432064921410520896527394791606748605981920689973648532609160221162688149427858677066827547066568305368571768393513311535559101490126575735482616896680043090625664046367148468561028691943268187670604424096727801517358305260855108942078205370636595975321342662418091618438111488452882577641819986664190016120830751216182818307952117542995075366535808486795176729268402607907173328132228058054160857524681315752682603828742643434473672674376486115070104373589653886287334239224127659992943490989030329659372384424110550178008811916954829925519246850852029672591928732917617520241677020942625295256934255978773431446472118015503569258862215177317055716654281364199743687556818184278580997512672967225100112080687171495763759362555662874095831513498852648719176917386771868385361222959055552864002819676620806711405226128446860663369897131086858469042393184496936854554004290691033267130349108967372311339111918718764139306600848236460706894910993864304706235030650194837427305861412789558897059748002315672147267030145799341553789624467008232130900723437505477736336169623482594594279464368177009368718906068026829389874373841193772109581576045403681692482338034623245467475813851884795136735461967297365338555210337921302806282078343463580815738420045647636395197307029831507615080431916272840390737898245938226078301587863416960803039340259899553527170109778217528185008836495805868715152346844800900618445636833757786661119104370623015585751570588264959602853125632593376622565077091228938374970376551395772843821691308669608552614298645497768049061944729976788357174800675763963230749838374034065094553421974966253017719380778237881549445451638409045478202632250632020854160511687910147329644282329573606840299690390497250587329481616594929591379546803966739626085862857086796305141543951331716205095570946076042960363569159463415319815984053917983448615651871309595118411535797774440850306584307120264538238706804269884106616413508396986308693474127899853111640757459300667641241836400075986453264788138576807197151196859600382356512548407243755637689259861390053003329849602284586703130762659301846984364193851962334319392625178928137085881401318002285655698516217192511964961943318223879342187884976705840406126084477301166385534996100677904443773400089879330964825100900898648932799976099685413263768618271398773012016120773324676895542066910186636438889403003618011432412219073118389943536686345016797499672516171722129902521456344733207688946883562832752645010348655672362200470332459131136164548486331766480776906299478830188849901131769344598654607098716864170430733480020722124405036866037261596186295286698230681077317455906066607950404787398031176247488321290490451681620219482293215820400420879842092457054724776862667521597563160541113352798902322376978578211379723080300075790300713439199881518446863963026570265777959343179156305374481725182827541877521423015571255277479130798556460481812109201850548534421551383415458747638762031370323519426989101985944183833315579871431876047564509784353213972045866102788475200789251425383478118138266684192612350288017310037479692435437608844247476145861036846806458290234057859514243238806719735706923479437465569962414211155017077247532206373910402880333647495162465184734937025701081780959577199532379106807288465973046991719989788568036998692079544769337286924636321785108400404150493898790022615941958633258623367741420318836226964114699884071702508508795414744778267832947184867694673693199405278460050654661089896744637701815007707402278071435812506361042520487491990554809901533837716044174809005201242705461904327120953498384152640827517330503363948212773542133960733971894736888861747920650881064676865731232005596527884707316787296535861266628649836368043540557826071230971592815596419898024702804794374816940224933901340654949817623247196088440973574557507817963191161520116455146909909612325096332372345881642752744597663092153078200498270623773558063796332779953433289664342225589590708219211769452278941607936240574721630351436121304944805637968782368323996168061181169728459210607364482749557097287703713752437334493397501541681388095665677994121948028817333146025854365743692556404820569212009475094176086819718087725779121311272067059985510635411917569692879723244799026271758758162083897689871138880439310289902952216346068910202912568583039961960694827458716959190232871540926265414683130656768897636633345461860351072003543713763218815823787024111426089647138916852365429981568917306697263178345099641947320314380444110377038196006326785983521006277788423093755509007005058759465140137198414215338190173232023472924750629771952336313791949500335662711013800645032887932583323504389661538280327475101044032006713670087498448427376727792106478991089740845693567170638121453709280205464152873070409126692330623141761544987044446341448306712183601383838075842317066625311775437831468815234947278916658584242162102068866470185322554964593609914558425438940701301636340456476768600417734964331809021382722910512895198624618243381492294329372186119879764269047361738878890735642918658115437052681239538904267131549045700028996098352020660160647562113882865407881291817225843265959208235072284631544837478721103653960387724129883583221823843298072310409712866330574436846055782282748397046886800190225146609244427379950353720548202531803761693959600053001295758289168382687176057557922408788500588730556719029442087819232111262119984797888092128052411654413698204176304425347417623669557747369790726458444219644092256477271455058349199756525007025960321064088309085643697227918185613684644152202266650491573281747359948893980324560849945918051712870088501244095166920727384953362237643284271493021423137116776923885583846905649247432660640050476789804458092408936807641457404416220776722923363432606722624685956775677876792157735382786017509298497896844992805722889416500030220055335438423975257866672271146891153692690528103373299594639030655483559471961896013070911058333387250343798024730421263846724609074917235068831090963325038659390506245074949661149315056991719092167028191620531315090868327406138408149718685539335166483959491084950258683114142471741469940913255287702423720085084977577605301787962553123011357918455936633354980457521469127743064443953284250100190141459798654387691820701156890254835700920725916292154609693271735344065163280317542402265726485714060773927347520289828122459890433781180843317986170795960493409718779424847299681427613372685698368017889720638316433756632453574714723508981787209463430307350542135566902858052628213033738268333326741281618299073799703288808555662440958157941481447848324882189946501161868293725599924002387939177015519513717654455656786029385542847966905292925744131065442216850974264186461272228170423641366980722364469932509361539993862264538586549432370393244406838115969773313951476960716714900911872255125666998724667563783792035830371685363335496208999593372457905936305484641050611632444366341198762198045670879789619000841223532488619423773937072748208057839736636954562065830429975130318649398287664185507184163841051508226930465454945547074128858153574135649203822916430585598578908122490436553826007977163026108801206844294167224938644472608784630849557047196752719408533719468679059373548428797641766427878784173667123937194527480440619473520455049645211725280518288670822361201762904150120791275963694563000268469182577842366478527937844319095976453926022075996307610256345294826332408688942637959931819936605815162846525965846535265087375859521232647995679996137930380118661363821760480056435041166179153000169081287109297107661020743535751163502594087675995398643423576289540358089561899838567994824463775887386188859343681749524729457619086030735345494886441788799051181123756608916923330291103702354073458308910046180265246312655912995792958392032612766386944830575434485835751675744832034838944373150392450386685652486798861434863704006753723267674761908003550876691171640904471024867916149607868161133722876733208429094435945029606270277450114002931504055687146639749353180093903507871202727808465505045717390095288705500272000264975203759058459862779485493225028395870365632535913974389764776684183068054452458343233336932653676821339836200804325752673384486291316316044441014311399813284091741699950688972551679437286293503190417583972829586176031633536927446040323429361073402170462960128842884898386479848316084425984255359822048436711407519879279239033151488696628359306445360602913057939289638477013718243089937365868019230511490894368299751204290262169913450210698978330424111849168588593734188221980840396500091303208185562781990967073945022722403701744354814060246606561882722062663583720757049776452361471296343734799525422986776306346409560277485563439125831178116807619679736999717337442826038621668808769208989388265382801327951088454482104035254108863920770211819868210684742704050350373365585509647781923412265775715944595939832115242515011342805681148251321349880941778582884224693678619894174485863972387445138227452372589278983474860088025122692588127513928193099709710926060362204059640795973599270116896920890311949492398677382952679982447420535097426464228770420409777637285352033672026677051643043011564785986794456356701044606357333211701147142996241515473234950657205911464629287913533313658749642795453691514697435035770049949733257163266927797747355059139091924869034178831338087192706421246393594341767090761627069379517304348740938888425682657713485587750479416956627997642597071210292204765033699692747570606000177798161250796752989075016209297629874151766159289223409002865585589556042403480012540828304017632948100526479054175044370366191402268855597339122346281397878759086595812532831697251579260758767012592918258949428234236021442886492112341644332710329825857472965083404489629652935644431536628827306040286718625045057454235563425257001562949895213188872268335247922782736659129966371975721622508748265918870126177218838516641761086205582390974017129533875400475495894042808418764957095572763129984285050024699296297691123845401690992183921450755950877337290022845015976513921911917592325163262194516871821832536907899612585214663658445107110888968259007942887648974130557375523694813506933284820304021568007584584825194420226500815840090139117536000308242343062125540200721694517760264768936984338572481734184358974184482019330922349350319496079906548499061765978581133328700307125989321740552087424011259608148629224811996571187320719058704435417929453380774244527047576145414096107635175626224959850474891490709684796378169860511306352032153181743957255723978120496609503481110999517614849657036131457629223098262051391674547038207822793755510966044181805177347706688557863355481847401473117751836644624910941341258555254001187683343963944554482439917915547059899439802061971025995775031975104242100193780596546856893022754255615260581872142269883403332881173068156963397764522651554691519950046776424271202565755302272490842233552240847554749027210878387316701031033431868347566659076821565106454544361761592001882404771488469874397027178047024263193076252463910847465253147764974537262387178070552606513249942064755588203465846698207760725022391079842417780844037592945017988971242948093000359929382654615985867384235595987901436585933740846065910239602671878269914062928635652995944077838195664402352050051132913631699305050113190681205555130772819289901781347488864951506836633670478516092320899333438078353923138950653304009290373916408874251329240628853571918407111339904769225884525098246622022334586533192739573751642162747407452517975748114431204282363407065779315197936954066400913664563004959237645987650622971562971891852997452228300717408540285185407163179044589987192760612250953639615500062348378733849811262536030659764197084320888459190868283407236428075778707131315678383510771890689272984880709830527183428997731788497570169307460619119016577477601763056168093480521672846420729034195396428446372926781573934947008309915512458639639754382362813514893974846965380169999985982244647005612820557955914030568926869889018670928510667003837516904628494481413673142925988739036319960779575741004040501804127558555268033447131454445110924679904096362990077034815407591015991051424183183983639282598369734984148349965866128041501467564038664654122349279970505111427650108295001289335052733405219584942955121324494822492811801144968001585456808454410154666832729474136261471078906265722868440286761947953741314258937896378938506063820702068094588149153594747214908548914227014263957859182729367787141209268040060402918212394068013512917593477647876433137598430273790246254863738119452629135547842880906363433747942429103044721373835535064300110854323440877671189142731258778237624035058756931090756174850504312606759963713039196926825090614334928545716951117823233142929698370357948300789657034109760558940195634521714557012301962634646538820307564597100046924750078661648411311954366840442797534272453866765917847304738582918833093497265109099506188826829763030600394783640233226767872277495322815203312012906142819490790390884062970119067557205072277727193505693432611956099176255516508435396515034792113247658971521030641213163954794952218595903256760595615524838793093543599607891425985977830301203930744293213845602597782907179083244479079484153759474064835239459314639719731326710052222451885428711489744931513996809602264582705907612991851631171366462387047945443798479848507232497500818834311170693802234996431712753558533269032132771494813111220121480848278825860046831976070604738648302694700252540720060687516614929033108590372896168228362905553934019500013764826811831148224356576590732298662237511381781539372800411955888466742563745532264354271309414750082522905647008626365908592496188445060682422977701473770108552748046120951615948083418269011668105075519586811091843185886888073486880998969464218374026954961218616948113120105420968431027550731843910630406782335702114670914072468047176144563806154937600477912842527285874502704051027061416413727488830140417995982171622974913076643398166860108897634746308625961279330102619247317701311489196677399272048767246386646889979826325724141171062996780148258214192579062536002228659220370986668578248285735496241872779250175570701809294412537922303214454073748039815915018699166664781227742671384589586384031686894030972326109690935988902526502155828954630208543785275048642048259382495705102599049451515277243876831180801947359192279947255360434575018372763835264286182172920715019585653115048485719377767445368238485830078360329899693623782907611605291278477677397468956494704900876841739241437699965176934847088182567056783929792782379977801798749367101895706588228192534549056426210452636227904208400061645376150665382680036341111946863832455794920229924140943847122920192509666423090576913535204686914008145425560815706903476120129102807273251011109060492087322956910046610176924722521583333174617210426105410778478308965477879580551320743573864513865068182679227199572354713993209941272038178278748651183152568186360657150280496895518308271288712954776373567755123539284836268347457662380562895050083688870781691898886108498522734307577395014118706416113344801559331865361837845688757453159286771094791447525939702838998674915095929520011136987728416283683052595593557886477848712340457001753849404902433023484347524636220806815533912778462821343903729896725162207529285086939414499123766517129924436027440341488240997662118325496366552276989252830443775635903638592051390775542111411385135367460886503135878585368282860713399700907832144985655112102651744187747576233730966033424588380497462081758566061156450102948142584598362791263189115925275398135277967053959481718954169814253414576020370737105838345302352305472698729037799588510871273706962453286038394255998429028897658018500175014125490466203100554385610948026382232999011646676390703148571112397348600566892662692244077106471837276255635914500784367683201148875034203661645144724763009299939714625640166540915839694567641621368526597822709301868679115504749918053655487799753982771898847369904151732689379321627578930046348269354888612369163731360499235228515548418899698141773315471128765051393869559868965336574393714553335752289109902792106770382445178417953452887055388757185036610550502040705002688458264939603775118994095620018734860064132069356694991729448986266199112844927761280061304401252608837466307703490524565712849800807079824110058183807860736561865972153280501840875751065926819622913570950572319408199748144989877489348586708511745877941723421419617723580724166077358932263082808796018948901834399682141868683015864826630238884905717659548672989591098902256995388257546671947885459684047496495601527201902639222938946675089893990192116607098577331921893072290899577849320091849797815802305004212685783457163563175133815300654701960678278180456576621659968552687527332562820581844626758227615390720016958615761842768733064775220402666032290216591846028302940605865561421469607074793003141593151713184689702292889320062416503395201629058141613081496469567822763674790285519987315444239247920544757838311167130630901341612504394358564742364690676037267774796464688219874004664333382805343090921456529651584727901499050130268326480065139742083833650932120394883030260817906105682617527610001825194016951352881627240743376118372261466321079225204263731759051319953815698316953250553933007450915287270402378473616504584399632454800261325997083345724368116512907811891485795272558441537927769189999442166582633079975777817867406966911170480962351683427760234225681556703526960983660957474445417516662020434438492091042666150162328099516550447259483431653287017809778477233514124217144347142869225083831018165305280021871987488089991479718335259695800645211989013082273127576049885667211889403814321751499880588816268702137048734980958578680813824250264328859726971512714861177403599601480900419685795130999109809139810352051007275108875602596544208866601614330725501593573322515359749381123989465312364223987691877739997541914230183993609269697272412061508104182968526689744738482269215387399915174965493096168979808778461342142149075136372911118371451684623878305322119976398068500046746522720692545659385298472475518191229198854344801533109455611892890731776287878037536797197271721229279769793450148124809654070169610911695210994266749379019807121912508323443436091610903859181875835374086754167791248100359599964298737207558535696994997332029076618877939300699080349642875763146318854060318472089825018331783891856251034173931287303797909926589527622612701526288844897403699444079627972872467382157946183203995831757702759641394543369241811703343797878570638713672230556660582192548135153073181351356511584069087365238472501176608087624482492083156635868859002523116301537945674452202532838062667802391433285129153225273217088040021771760440573644884076189856452477095572305802473116806447921576637430251188027250052501195686140358449956347240091234514877115057199011562460606471768175217794104313258449484494995410603183701670563214157179442999421579704107361995616691743231964072100520017170878807756744920836456653406053913671004694626258971556162258850263488182402129401462053682584438209423997254595858336663199765556308282040234774803634504535457137510020480131984334853010890779859791008764013852155614203412350996137315925148119088955882582167783562577225051801796589794860472048698160899038788744797421272869850342057831043719331668896448639154858047712517092615902484573396285299241799369635556695532485777236037081615641876206803455165596718551802983942738252611748923332314371816473528330819254558174167328231939820602038605148563643862991036754345074669665429391796245228873803981930300225229076538234545357150241648860634691590736259960085680767394857353484713535918542761365133428705273025681315707916295420031616094887059079974840878996217856100711997608306193818059852076628223736987636676268685794122207467571102934004297885841868841975407999053124455117330670442776249841185803867141089919366313574525393803978587641117566541727702676264843072463253527365006074745942932420143181251926614550649428116383893975262657634560643457222977618333968193212494352874366343220027950708408422487408373475963186072162844586074335540696102749844626533516567603885375678173908506673416316774658432226666362860082587223350347647880285251207838810400859586714075198495082355276748276737268598678838107156936583281036207238511948605294820964013728815837571761383185759227167920505603813747308957094731373706111829327856802541306146184417880366669918573642448524765570046076883172913039479067122369914533545914527959079319422925366704361254222883697767080659371450992130527712651337611622777336560672681746628440956441647163484017373605529702882444142722987972696825465953816513160333119807239958181812059573369523178903618044550693098030597327971216268094175736801265937102031000043166666088059006085792350590646599271296243304626707462890004357304771182699822414536154156944404833470458762732227724983188528282128089229752179062957281349244983495623196668236448349862161993504537793441385079793958826938966716699450556883504666283804892092655675327139827405115162452620368081264551095301289676167497338441838654120988770703560815836503991209370582972416495957145172804084679301197412283467545881806168065482674655449985128395648485589186271760249541751388820390809103565215021443031317447159591509255000941769339011058379924845879919421994796708964637534611895317854444576495956194358885579468520653829385464208022179090094923059635512882469853970088314370273971815924156941941761950736157802200321587642113781663292293591146645577223324071821058205250837898641445947826638319282441260554462904914541354669593193106397132176050765540135022608398279420648090983480878563990029639284416956416627051961890349807395448392121208102701575458723321483462786326041913969991991777928213785083814043417451190629309195849520726187731277520372481237780596728545387078075922648193288239163838778876175217953240324815162174382179326808706561728491588917089181130157495259502447555954342788042405448160602062239430975635096337176707853915513966311286299302962578210549021385922221821309232500237595988767998348475709795330877909428929521481751432847120989103235268520060910817140924462159454062600948562796343653902328032581482756663013821317779800909181176603169853333973856393960207954742512823932997443244374913510060583415282543027564433540084804967131406574503388391150495213480137494761000496639385520379906405980462884410548283078596179246096682443698827794940942234751107996952402872323381084481999543652771498932620769917523568404115087514618546209107813034336720558820085142015917096564684347969640698373004797774801538578870788509521616106986018141855481066920063601164484777205593963879614048749319302964350559381752489547757816191883295480365479986135394034052541553820275598385109968437935345875493876600544766322563601637533378417090714591929497673568616636606194615895292560904623851170705842492433935324590340416134229881086414491737662134370174031695819841714457463315111379241946611336694574957735651789339732886035763860568096958202297838783930695130589125395608010117123859863314135323291298306726317159141540942075542591086817803070738622218889869393110577927917077473362503607648010999545921945386376995996091375396863888686484843576681935622723326551190100361444079476906666787048739403837158300438224097982938594132835430263276907724526869525945577066540422817581095851103094358820740859125034309032329999372732808624368373363444950890166773360215595483773405595412873114201828726387274841895596290315125635731819000100732391132390157615133511375236403515094806435767002167966304126085507849177276302456562320914091737634222984020498346674211130391154128732418834073867273827287816497914361525453576375003730189467977668754768821491903578632791029535830538040160398901181783829902211361075524304179579524537642590771503254083661484956473925542032004664866541575366990551461207674650711081205446819057553813572381419521121712887499917180208505627475414536543754224948009428215107011228328778777114904359716864511607978371916391366120015540890550458787511980315853475832987950118764852582168626148366255598740161092824410405477373337172052966736444223168862676689175753568867836936294036011111563955307444789873742870941539936781739998904825710776177839909201400618764827180116047341963289277741159648935612105942271926829873179533665562242704751230461390534037466418453242414405324462601356444429784390864216846669265484752414917088233870559214892390427902416408695701580183063384947023651723815244264028175795600731664365415579733053967468058759617059110012099658171558498587600546305834481431768490438611382075098948989501533997683707848368686179248480333995011641032826089086906673749911036976441799971100386949593409024241207051168757567487624119011212047060828075872997293232972897058510378488397565812695878949174729779525146404798501782640681307660501308698090256957247593035730931797895177087644544407338782952015486655461596308357446616508278874289579430586636043973174455825789458932058961265910683648354622478078192430706416691353549869498452097398780426096398442341495218291563627516855757869110124664590866014879634886867362731157851551419785166525904361825626638247966746477657353760413789929173932887839748889396389801123496202670891158701338378355255836899482537100729640067517037942169250162064498420114732833923561853391543692802425682930701006564714725279568220059696136393929579174065272728716891005471152670060156854095037938636743316790452944387127949647186585779627108848466461572714906142091349816164072722170591264286466604095991702768060106040798606370730363676740515977993328526304665461144968595243362800232536095437145451103423412377840466674573837459699624686706705258291973040295260584669597997399115648247338669377567363642198425349154230550325472581870406350859691490150501391249280953176029149850076758885201212311756141484894155293667283506659981173689547520210084802295670405286482243794787443401323682429823908151314378203916143329316805582656156760513630881194507952421988247649998726390343237592756064616061593017242386430110828776549393797448841032412170453495030732164176637150312736686916267222740124182581105779372989136975529076556896010644845244466653121019513617621402802432960359033041885716009809925559850644437396314459120818422154161857396429725666124992090192170898205009056317980772029615328093213211589079507525579783254492205149053017869407552488816931305187797375633006994092882967344669438621925193931892378020315550503205399663506816891284636730353981423092104403117186188607558441563480285813275098598558371905934454441249465430798674753717895113841351962219329598294856923603463526100254391186578764256712314895771987360015313984968626869949882782130991356148999368293986690856246174455695916385293908425912703123081602033253342711748249131632527860130527306401749276646707390229599262840408390778674652650668123368035705593562377416386163833934221188131882884259618761048940906122973751210315455738994455751974360459679259118560114794678634149806357345137376284927138698896229905979515200494204027259360827872588531649790156270623096794991837060168209725008913471171551367993963504311443037624313802647717476297906208299643779318734556033372635211808509494861681395127894227571513836035358191935753277555679327354985606834128725896204513167755248279253429110731765477652666752908735632159561543680655083273834252593275582324445427463256169428631579035838154312948289644801369563618455029251817605802769811274322183769728966442607709360873908743376360584895396850135923905557857733681661750014286100183198505496895224075029776846405289451854673248635330193838221288298087887543800100221811673905604974783126980509112229208631400546926205582674831507802076249992842032213647271448790380865370995928116657598205746447768523352833888506696465992143725163817632066831588004007601494251012309886595501133791713712708995245544661719056952778814331064434049162258655529805838287364939253417042009259504304154864186245875950037115242501364742325103631476189466142664945280961827475073197285138020415888764983193656894758953899879615303555425280800074629293736589097356985518664389346887272768008904603459228352492217645997839481354485751149569730400163996190553983702985147465761468891780908563548157116700668331177781989527650050228742278388765266211606490556799900098030632163497558019095958609463398292497495111050285118427502049412684584347835537230662973941751113696040907490531583754425520725059054743397724332918888771391097179077940175978506246255792059010631616106588133527858933443361391809906927132695133783149205773784946034431705961415201000783687396172549821078641764009957466661350079675726086448354366966827012575425370908616951786988163816516748599373812705166214592064638379277199506179096550286928450534952191552255637486841432813053998236643033255481317779781634441131207220645946216190063391258729899047002554943723725576939350927631358596133294635147382394015198407367874617657612643679185102453087138700005460959402967978275950735508344236130634559266770133480877954680279025180989789575075274822343481367043474246286224379057978198369548427231126213409942829299265467428850889848122139259480823493101193496092465129807490544921431625394399650774467659676544142705782586327576742217641652216817352047338529741320716737489834010683983321112638963380991224270321020916873487069686381221086887358220487240101524326403790406877786821423720398040977915838836490307968568588545056071611354069185875302655764807167442821676060343421754598557375891524951540942490603774182375992469014912084535898744832187710093898955062439074396711179609486290457978694558854546774645753116765579961270648216655320857767142268895891352945690835932546230748069812094492959116971387895017803383829565889034123514861144569031616994220744320951425087083395318504898251931777688470057120788643727115417504187452192074362820830525299875906012198129910828706547449577724356268918331373132233330861806048112989305628887594052132851703118046232452726317902089169363932281666119105172604044487211859951075473112284209417691723068021281628850435842701118451992871544521398041573385652670128441568775748839741086654321424827842215712412432120525479489032149468201111347810146201675550212569200773876361986303658172921854626529891018102670792626916092024987616333733992742275575137350944881284900861834956818068539395362422801447401406005952320743158408256785658801118095321611200838069148560302553910111922015841243617821232176378009853697673807275499746115068359010919360424402060798026748137898106439251740220756411722219024623735589883518926825552829355151151123600369576901505399323363011658502566641325115040531945712566766632316951573704436944665715867057317031036430421922136298025880284753188204757700584620368974427462751246700822605716781652057073454299610829131596278233163415955026732855329054306967983902063262944244676818889596055388977852217866747199461902193391886188072453915769466509585960204412006296798894801873202395428679842832128165098272432987323626767398670339739101476340739354135124546597779836221609615190083017083076863893209615739337535383470153326813586101024630137479831400826895229678819019713395015165666907391912801468655613853086193829652252534981070913941511682965564697629146062924247874481200411628638114902086644502113377413211791821080935666851426724744172517928016049484346013725804354409088395523261327670146908722429433101443817123788239627248721190777327698022352266189645275040416992091962042099677523216789035219519670702393429733869284386792296800725567687977666359175405702037679499376634379747905655229104225079712310790499042404177863113202329730661065755641531102523262808450176071979973329520369602761587607153861134945527254616656493676064504810521970582246441544410076819109908281415716534086757313165776528192991049560013557334868896099639146308695801511133238933800473479093975378338472441149880867598929995568244987758821317035372996140999811061501758643270968138954030557098905128220477481004045112126718842153184628050693671526975076233701401274429105707296141995609266347641088911976960243861467274447467718944257056067453203165514480392963354795663491459609918452058143484993978222897291814114078915707476612030741625254185319858825177665446838854525209242429674159265949389960333500499835964725653659845203474846660038102177542112469366277175633707630705423109245021011464435393376660757525986017541006880657534154695549274082408269854694808000667644300213044406386194054325042287843800388618993424900139667397911887973721420173745828484247561767039356006961966817545484851635378405516047705984718930128993456419524996340776513477112780683544611197061235948288125840944213362838557796156011946245618267618238946175452326499795521160991651454603441433146361916080133406153063154309835352098166140125039267507535615046148504734775341633591185938389416756768600892354771147577070049596644916240519468525926080417269466948196551355178067070482911356308398096619325899521550024219729496458444237395370918450598340985618237632643036377984613894737789254485401758248369159924891161654376731160959224201072227053431336569887268524707251010789703124670319860642265916462418118248333463200366464344801449025096458268229166073765992039560409193627431721002619646590809215806605109896654463799822682417961593282600618663521443039976688675664702018849073662121733620199019969980968385941839781372687831303206176644000215282906566383693731342382783165122459900445422903355479238624129222453649437878174675153825146489634650896083288134568251701885566696856632095714471025926086372430940442350742795648712225778275173236003310458492330537231726225528861600943795526388805822780906477300969803387120685873969326700454705125783314998485585103061690964278699383305142033701449822045404364623136912983494829399440556362327434287946265547751465996627801012213560100757368505663899895342378574401951349538720819466577683615236168608275227626412842168670736669100994529855187767587511217082311813505586379310055087703714208108971949369955549090274344768922516757382744319463480633623085683137990835406266293329854439409555998401755527203741350680073189911870094401743466203580817433963767897505667107128104218373816822638291780948952969483027892664227339181579830123204815671014992654005506288629466949726423299857231795068222672554922784796168273925272363828024733355637272622468343602759420593538983669369572659725803280293843954140336032187148800362744957591823446830953731866737773495496464218981212463347496904696548368651266598461675116914351874196752678326710422744169152390937054579277822603020099073372017130535296174591251604996406136858931418583498814786197004034056999077098493604688248085323263363157795680879726982273394819091670659373624358840695072215543739201446860631998822768634266832257349728241159410225245029251930377234106770514044292667057207157868817234792761016350520723848564658809156335650606059937284562240670183060932926427430047681119529589662503641905392971111692089863569329892000802688976402268137887450819240666458484669761236845602114844384577472285843857447049713425493616754935419121819702808047596084940354058454101892502482207817298536883767611925887809216028114809183507439897048698640773355387832681634781381914187384328335665486366848988498429297241470345395879231930825067159212715105956914612674840884014021658515682150117317133122851828706053648409931679308390475338371480556235154439937594476686610472814095404858851344501607988153094759551400635251884539773020880706359640294271748962630497226130003159875917626153855745939213388043399045446172461555555064955058577908425576010512057900059244173559206838624865337294913626528896172580098486285905241499251416327689398453509175968333324890979095233955195127043101530872392774877676769612164341414340385492691272998166497575742583043093185095934088902090419055894587940344217081766600772004869387045710397311674050612785805708567171885710558601437608608586577590403002419608682566944508182903216334566718688089416239038785013384763729670655287537271010425791786214481031273562595613212525117714507108661185343677780126685065111374186156122084628847308154569059387264572314316930215882914952084410031835245350463073959086778943755400554559036740461245486251725483161006891005827571143268951790230670070430676309443439910420268431306087425746493895099484091962673833984147573961473151068926802506072102519057429874907782300874044278852331341350392166188811340331130968226715568304511487698489064624555671251253155707132507189435191157651627941670195209478151361790515017898069053624838968050620524870537089878652158242640769484961732290206958669308799107185103428251319214069286714648954336234350978674244819906492735023653635919068502641709306584343726389839993672869188645110442605032397670180518669261944631347345564506426241690708530144182665945716421473718098510187641382186326703484650477973953663879861104252924519249109034894588139459051748396661985523931716085412492840749134238444844194250096772826171387002843091087305737447814412961736969283723025322418013051344767597698387890874476392516811452057230137505850749998835112297005883523148000923146109087569755975740879810923830021305125174388088156878194157057549141534560980828345653516937755172729822877853480551268712129083793777139016364033140675311028696641709865663191263225250086565867694652569595041468671071295109157796997812908238874033363487180285019482660951500218412987564822309981719660509072082493208105958597206715400603512658972474369695622552336968035879046352370597415909320536080128464828053591158878746152979929531236756067492540568679033635352319592987958875701843158159833873590687413198250997730999077081232971967171626557472286540829137589201054390737150597647601289452624844231104811234704418315543866477155034096628294052750553065895341608898728399260623368307366331263969010280414585349432044412601386134465803140372872276729608637315565874890866121408404225072627793382329446060334637255981148619157315672300813482379828836347008104283710171429817272897176016342557164763231193835158562666058075614630567845443653841050640708796863903656456441065842223196397996344992679848341869383801100176394421228662288189024096553624175730951855126985740235256039281430526144009525839991942098561331906487903261208165665928760884833011327833381162792948618362217095301252942167621215327871341875854040369884489182744247544483508582187280718361536557151860207872318132237161389957663433074366784939061605090700474844571678925226612089305940332901479376556912765637133966327289856524432201613592121718200953064288566135909267565446890673246922260220921669207385652460541650340505396282066610651913661377855833249840921367091457197872864541956917988317595090728814328117977702447890030213883909884866280179808874900523283713282634726220965512152917833788203549229409841179234079591182883075080538664505881352543750376601054515620996722405752767918978890595896151013462623089398078598801182183057500761779727668664002227049758511845025938892867996050321969266851307585005722240393256765696711252357792515129914865931189010866433034237034404632933602664994226904550037758485660724060294436548203870000934783280661918399474594751744079725631038639985412884127740999859606324445027720867142526014345431082921970706478086363167336618842558243862361932532072282175592948841982813929169829048378206813016218338828688683403202455691053191348838360687398384821061201700589405693307826617909281507703852284171879446269952601879427421508415909832227231864981053845953470921667643909055447072597762319174523488818305833740217875072227607425160551546241509048292255049689639430563548785660517594861283642441339987859699794911451046913340636143508897384134786852477675490731772493252910179549875729123615731769824869645188396316086031940038712815001490600065577576945702681050081470423624240329601235949635619771914748996088424307631242522840966756220999288442357065759105975351675404089795441250764776857101275885722543380287162203232480654505682051812503136926983534370904271026455224560180004203748237969006625552855728915145987747505877405734387016282162293168421123021119629102580509053430796198112906239498784998840389206803366775074182191581101352175649352446577020710737724321246387699312739153308608532234154100758563212298028120756606534481733559593925184711437751222734768226771052903768894262022251157679170968202902175416546294975492175560490804336479394371159790190370678670848893484914597685350711561748704759160469755628470544746184456650048880937500958308098795904043123829358487618384151473924931246945578213222598744796503043294993611758619145364337819228837871265352139870075133487553817303690944210187480753041640058413128400678765673133243108424887169449498611783664051692224165602906804759382133955416285255947323694684357899199414302122870113011485510695794235613869501572751047871000301607431359482519149898120462290511250061544642893277944603980862538888906112123080064661159157903415438202297952339454669577215932389547753128774140759806124330490553956869558458360612404619392340834179885795561908058943644665756370908877894822000500594533242212075923981688495719393076981158263042109028693973381002566151234582280002989968058396055418506728530461979061308548927157802718724750680840150164790587355110398890464266486843606244907947936347179414046110537468553914085433516301687488736620423469876913732543776982215878346564171575148913132629591897080132981202416387924642257096718920661256027160301390906888150412761607995876903849780687928713772536532721288427897056467762992187652861670541832981765561711573156283292067797631871821322332539470938344632988346151048258159084230402070657328914349870980179310304088684486326310391834866657658029454119962761718374949173920372991473441940162823470459222285458067208771625935096564698800519905151623115203377835166574073406949996697565372028783284765887812928742035900168445353214475050872234951309433011043249586485340190104362094409351599389901841870621219812695086490782108228583737559608654362693191396558406342950735655626813628251807765344732090997553297358114652611833509306086356591259767511666780242559179757536796674209944538891231072507729960721730139797117538335340586267015061790514133974560242990109002108499645605497716676746231739301044278569759467707276430939142085385784025154869258065661419089443812536851458031205911272731787951518065503031294090163811591929336053231488955162242350443996397861649396878960106845694548619841187894890311169076299867267513735589244345460781878874107249707183759148764733067728307404870930167528023020965368970501898549537415751185220959211734437928564427714515675513591909185823493355036849547440324583524763504805508690767593424381647488149794507341179120939161013693105458140212286872868808703523499250524846726187910411002679950540263292726809717126798838188670481747973992398606382050998605210028972397021371362393238407026644835645318541202690435458418905737857961296980088587459521475893415421557408514543848664358846477852395779558827669186514801294562240137427655908651938444584392840207878636624227935947189113174514354767485073554568627855041556114735777699089047344983644760247460045807291675162467219520028740091272950350121021221522051590055509881680937058579083533348413793356674446576519985838494511663405651444906849445055597545141432020580707420470760526607712224308881249988389258197940652158584344476868003664587809474315297349101094350034717320962681302448224069146115551388928153907810783224792886838076225504402275137390992905458563228329151867374400785298211075358614368623681907319379311963070935732653865770155345001522375264517325826867858103480669424676825204359084779792950356521473404902221365932891685203470308826351048171971420871718627260055815724424347556298639198854688314942222388075930819183284997880708880248822170957983568557093551097581627845146357821200434298344365815097399845138518939813200565848286123474333040135260913238418154968147501871047855981775977562073428612877478373979699181587389924570115379403769901693986293143723819429048596859762389188062002105542295256365443573239290267742874215574881564849767702525159307885077437142027489908938436824089594591162674589544755195140373010271898465810226189809975331953558286103496451973606895909886557555758448990038473690613257595031033145069494485700506721963014300474918779343045284958960643499111641429145062017270519413294670923993475142330433478789856710813030991376783537997674905784922410511708540349919331424733596615573689062048263046869502187721117731466016664388121683720631308989475197697910265495192664793659226325161245274692941932513823560246096146486777163714756314467014743724649211738304512336916996541068975249278890662500162208537947598925014578903399924761133804527033693514521019306954446249585567082168125593700163373709075970364348486844395356604629836123311165957765420952496712985336712445601377653935435903883989661329256200760371308857500914160904431881283598283152773232478749781382749474112772835549198809403332564332497030380859994525502145416325471158716125881091765974579839967749285075550615944789242659602390289316322741555560159613421944940395772264720451729315711694612512371965325519363804226471020569105386411956646002178664505985054803648564870749142047191871511946084004710279426526131027450740228691684536824195660495907229092717220277812580483179403291221943164876767196466946938885557656374851675349412866667201518254216227182893853652829298602070871219806993892428549402172259734339632565163282182891160270582646867985390020001207511603258065109457300305312269251645042232434108848813197852310520362877892141537572183018123711136516484671171811147114829201346868040741432640978777948471779220972116364006726791269429814761677681659216189436912230606564764080585968656618655773007391010453272734674496188005582799285212595543675760932227105831705626333130913490569997779926022270537911540277460535411547844426699285027918016229901128557713275360718105021892254894787039344254422163437034373786025017268860825520171892759200438289724778261680591737177027838938685484063764545500561652794842265504474533878522627409399205234821889677407099913185465864782608397183798983635473694492097726307334854545553009364007593895620910908400239718822777809532290289194725839148419020845201284110774730248336188650342783930164684315717304527686657860553688753210148703743487837469229085221827030851074890920733478400038944948735645889665594507163812610743050329394773897327001310086138669130247509313861312433645097542453521948659057161149161240825448959911136998886246592500109806456548931982340564584569616558113364661084202615713713648830694765701999632905133248487162477959704376089430418398898379142700885089622208462929536794167989847012984640481494752740568328841503311554408670464092277177114135842565513124074299513662911057895753080740020153637316135795062668646492329904176115490385384063095773359845431667624380567477693077422643417585892822082084016965476997799752201945020871817066011078919909570174251763114825852202348651592957874800947639832760374894948621714351316864072198773327130792947537982901969821487912213461091855261690750220596592243692174845149337512544919901252005853292930999438766156904936798330219127691802591536294937234936843841276085975045020899868982711974449392680005005316686816562527762090059950846357458866361088209545077935117440101981790533993176103901382509897026983339058816880089676766016539622714321274445952749180126392777662870759026197265110360913200161749416130331388605778089862906637750135507748716169902653478214627904859995248635068633793115519553510770579292812087861678194314996658395143244982243066490020561188589029672961621829348726466992995403580301139513230920340922710946448710212766675012354747478023097798506921136952894545254390956824240558371838429978702481725086240088790854772297862055393781771598022722572580047432060361126432963357241260445999162273491668351383921160929059986025316613260012395577892985940674711434628504358526635055495408909180362088692066843764498348490921774605022749631793614912520801227377578922738662271798095577906194883422423680117814976547485086838143854496176268576869130701039209501009739274867865030957693470118158309863918652584975949337234857593545891797485796196407795138636224325433684145278382663780259285891307853692892152320371091784341340499465489051610866287045102245093789891610164244016380751310498928492512489187561443502895977685715437322984791450034530923640976314203037482693068364639981749517552448393345032691753871057176882839845113239661707085575230994386824482231048615272758228235809977982577701570611065095970477114491444904049200966341138429450345446247927861549123047142087753712249729951400677522400060908586308095573377205607712073096614643793712702682458759218615479764101852284838737175458381048155286894339843020365543646274216289296360271267161365853515359430835663654347569768448219213156658103093084279658327940253142354192585949150911787414978637933280251974013472014416964481251925086552648390522417290963911751765621890256978918228735025283175813702556392724637145750897905381889133071116193908675838621733213477268118787521890864809218806971921468808774170807376132411004989558847961496359989391461340121703110127703399288873429481965651479906990297855549781986637890183309019400915460965628263830251213808648586678559805656586486240338087614227712153720717634114378365101641308507184420266354788654144017641458922993916542562685652037474575429814865391437683277959224921184886947306666803476969830538711726369411918876962391845734627774543917403161919382655709718926351207041703140424030297158810205394551413899296713530415070485450658155778870324367586730609605665480032697129512856415294547653616045824194875271369476177543179482593420679145555669645904937648884882275173436916572835865375431330757107047267066609174375106529677012801356847749149477253986588031830472730345427796822903119369455525509567684197663724679106444410651294200633479859331768343668024685877109540327661075486182243137422779069445743167403255853796887307712855319375807753416200473504210360244491913758514081111278163521727413579868537465593254835704160066084196340006435374029059762538164297743019282999372429429779858192183019501341049780088253934491058038777315409818644859573683326576879220046513933705073863335005083957118603637226849537851680678269896398175263957227850579465923743031468149386020310652852937591429595787273581147694763770847798349714238478789324987770798723932426188694906623702677879715026338860023010411524864629675545153009686493470771667842610470814508887818075000021367747406866623412874011397194892007984990208353266697927154272269575219891694501933793673034874273046397249986076292002186533016535415041254592669853152373425242512855082871547757035161985647579630548197167267648042028216799406066279522526849988294777169657269892731353471397740686043254916603466910646454424374514905746865672395554334229449959903486873208728654617438483502470723597107147105544704828797097015324711787428504508406837841077925833693661187493473004677506575277756640911164268856086630171779029028305807180898592233661283865043263303287987026216079780100453997304161313651271545953748501088612076253394845690109663027203484710068859973713822893358864761874733744806670087222234816557547720858562182698499326268656361045387453021176297359870737729474991029843672482450801536934817291583826802487626355830888372925014854119218408073811523970253977209219255323113895664881665184599538693375014546208651761946560934504322973660421941095591770040927217311070039251993507241875732048023254884368498739966630017952638011784537063856603366042091525374091602656620746521668544713796361805098598938028110515101386471267599149084113343062149538935363652367415731076612627849636801639850036675288802504605157503243431052717984842897325065116637156115621670458476437774535053906841747001744703473731491920976721110760014123524143878617833406921964528044457014673017505290884516038852499700103848251542168439307065534320760182325952116940495276042193532876338825218702580561301620559018696310584743903848267144936468208108003111768283579216509079736037426530264089362142473409658571083625849371478832827161711516307703522173291440169041697295970632510922866525351912269910067536930911723168093071928208361048992731048561887354884062245714027452227212566525450824392446605174587467261450264483301823533217889366820108698918497152118963645502424504134620323022146811711906073532257971102929254682077871646909640987622822329153467934458406125464967690162591712318527475951136595977976773006071264459609694116597947583189008341934129624371716334240039465190050558758197181294640421481863070237557900211972322240245769618285987215979331460832777953699866984623824704907616608974073222261242137004921017721913584600431325841473633087274002134687422653119865476261614726159673435489604788539283529405846265917487929502190827276811222703782684812851460468987271068803237641717697961129400604881705768668123109814002604306558469186458653513149262230961723070113110488736172497709133946015208389369986838041656842887208259955422195927785449571860697571426454565193085744779716250537841409576710715939483178572541616451240999070075559738181547964603713135387303045928825651411843302838485704501460036460537091000681319920969989908007926387828652401243239250879576412839403931906798706066062706940897874199896504072404422287962466393516262265991573245544540019711825166861877129762713547518249543964675620798023236002095625019466770570325149574912542965668351728588209274066484759897294909052414086616279981009705898282809487050570067725848771643108137680551002716932389465603068760047419913670055838711881391239106952279850855365711491519396324727388407911783013133325304090908648982527926040684885216549168766908054738231056368254565626124416656250899632903603493138847708272942310222821331186432504199740171249770727229373527691196258553411874573986982503379939901926530949717252456231701013670191009862229089234176581852892167295006533382439370658958333804178047322725897319436008976178454113023183120928826268394383206971141754935227305339732253233496297036673805269956616983815254653112416626168233840656745574097668889707690802214265302160109228264880596527641616384317194650866249200088258594840742885970651944021299799690409908023027314144806131502212378339447390578047920835674168377176665748415259989278208491224975439411872112134903207323670575643812435416944795498652786542596456326462483449296364628813817402947781357269458273755602717214232797756215843521595547709583119719693171044460707792134732763951867874159550922423062960221410381170841580601100848520573890876972821160652574534147346757872821945887068728479801657786015809970529789593728469494865341448651996552325353216653347416527201609039023155185326085103207609236757172761442001615802924672856411440804995769269646218462350185994160315783450418506415051357521487368773923181323767360098665015622554865479858873866398912540928648017940422945267278957082322488144865799767189296224116350403107518157526945382986083374403098674724154649867670076764680594460115303698723356446629838400264814827342048317967671406697704488219113820126852011480879255667990970056524644717936166328392043967885830708802995137692840264413377202888084615716982861709567029997813877738649607694417433228197130124528501918434860188800033680571100946235286514424352358902193151253285173492363482230783475708378269107375871913947795831344874730691719313967492880784120724276108814522024400257377138909341696426904313586716565124649022823930980813880423884863653038703719491395114942606238216042610438606866225161171612611846025378761658402887589228632277673968235862175632643670464312828512157723258755513136532357336605497991897470747349721776255776734498137626853583555236163450906027416516525045114543322081912273572763961520106516478934683709269691882732411451029013228009325462356209761570487847546445258140651975840851727292955787865108463530533931458129498578196774928137024494089791032455234650862819736252093218468473299065975938704145745926047646680714466120116263647636598856027520141666327052044465709228882447176458016974113907258372039834551883497204009069483134109375223161786395045514526414771878718416995579035457399566031843095204668007437780284968237860043467153570120002043972920296341270626787264866540480244976498108444705925872359491582692736935865448341800161802383743660641697303229663285600051879814191097325727756320042661388520878952415873212586254688798167471920373182457910069864482767766107777279785725613428240228737927119447878381707755163277664816868298827081327827866788541734383184813165952368247692547939705043253138965673967102367068766525205134623717500588383808712341315271064487386905278556425888851488925456997673544681984665208783413606885074882174980999358282304648869147381539576695912470809648642448728763455563082048716809404106903169364175635102236508080235609799389228582877840814865412496261867736217076362807595394542961387241491048356164350253389805182026423064372399851628577631748904047391009854884929463887820215221669961013054955696707288696314466053177783263173482648529713758012524747608669554507390367082219790533909850526694668636604076516469794787737867225185927870966893237920928955540173422645793496790136771184503949774937275429427027496240814737055315676079052584584786570194804221282059549041669841352133500475133244128322286467236337304764318063214732976646983928053920557023046016817577183170676124370189095246738631750921539279248245598417099862696191524721154277318060428072418270159964638838081304019524849551633661566725029265751360640520414626124402008726786611087299483903039658748341956010526567504637584020022030713293149354094317308754010792145595656240720151961734094179523712444313392905731937819763912222597309178293249590250631771746979814931037824287658815441393276167393211050283105258470092493785142092554108347744934296361455664984742791885617698967540964922095145824909413025248187738889683940941190180489830158352870595220054663362152228026603304106961063712573003146798302268844962478711480652264791799594650338443456661128203135408778174600029586614610910802717227226610860151100678804819562105649357045530436142475745379326964952208944590176935199918322425936913204709177372462092672840474284177711052167051746320141598551699845595772506076568029222648028784896468846981682811454842439420182110621539455122813776228031058461155034997282787418002685152226336326779559503151278944208081179398124169000453194501995274544526580705464559224400544108040196660260994299016412380568758903551664992862191585081228842429969553414235741875748128353625320823090812034751882671229265756894375080510504300726956312721377291002376359253310109689215554422251662189640774085302001263716245131127285832489854278455509134117557223466975801809966103295018610856380062740350194057889335898050976561634978352975616075644464655249258004539513455172531395157552936036258435050479601278120764151441150757203694769579068008623339097746501508008073587678417946879748786909030770031203052466994599716169377216950334277573340050864723883127101344768815609455848569260750205566202021725216010787345655740809123324709006989943460115505758443139719300632509188371996913204141268572444994459034363233412136879709578524232511533456789469401412500611652195595151462608445248845647145669215740404659895163736684564299187297105380808392803205739867684696987897073756374499767479677128492909083497035231373915927584491053450462596577505856779954494631160982488454264216118578792450903324083115784148788287840896165636454986447688477059339378556884580836546164229800120139786765281366151746733813510706296721553591473606729440622719906582811079425853038308423127681216069349034848737487646420966226053822831982552890777869684837958059693714050101924626421229458549037449226333946793032946574245619925427549673906671343226194741605584529434825985444832189651480794667903280757929646201937867764672607760947644936687088758146520196518719435561279862890602160287467604334069907121379864359426737957344600902739152067269018345328920185200669602667174744451236731831840024548562051238135931031844539779090883514062667717547487606102176987894948715732502271950550818107610770382360591358007045947815841597687225650435251067018153391679364097581403517277135530148061029816029973462247469982687530678021378146497938107971663069203330111754097750339719203572635778073258821822637156586445205473192984960940575294794311277639416422599219321659423120932958941761013603604374800944748388586788649080721071193947946000319613353802114035930088591876552093796725342405633160161936832471525700712636894698813151011556988293132984099434801283166201889943742739049292600515250698538688256449061997307014137566724897123940677631944352516449210618960266009068862138166035471371597224489521522588699105796759395933365657785311157961208110677274714868491624933802420536178246657769112386977603941947271751127978090122254690548824436737641772106166610611811791321951388292773054577200200270515995876079227839220927352534685337767318751948372092049519245825858425704005219586612554558101017070356829304413383972524525984078110013928221524927040970083063014434510523686808542145560704534510820739720184242263955014072906185477454947202250560995906526598521709337461315157271204789686465597373866280006117719424510677569700391845987240678560164464605522742444798542442204161798273743408853180491321733526325136348189695277985765933719435035446619658361059879306154436974342299534901229596452009828547901382931555692885446821972828805132826573983083522562990025294912681628473400534477890929426504816376640954483121968873477589385607421877743737663280786656618231174737184288490212099017180439277330177118339545375541392280811469721958351845828105090326191312191510848986413764731427998779561046033210847768523790048668544419607481862803861281513364035146157409438593370648515628160159114357922848406923453840126971055000627998378192105287476055506311115225766952071971074642288589701628773521836328108483074564714153192480244677991774633738965139420111512788124078774395276011587197712142935716941378919818053566701940455089126756646017043035713557836836546609797415646808788491359774930752139924713701025788786588956094437357047604940402719737063070925425744823261685740196644256033328175484714606403422289850963227923664449502794733041519634031529758066725877551693436955620261244454266273578521901497102550208870994639669518637722666358808496270125683126642624182717974878735033666695989387842037051765810786886199240464582240124998341298992297169860905573146052908860182638938219135208043324375594983545686991274405252502421706638486360442781531623835553582976496359025098457068822765971688765132582153203353397078665886984850078042991799409064063303110492714080575844094170533941595575989461361805805255937437877866629860330976209820338213699964136784746939650366016658507158323123288081663678496720000390474775669187007533695094854355487640561870892716935221595845800144716638558842344940917195960659327863661601916005245110926470495399592672096357538541754336858887052417753426968108530627832285365670023416039166164263889621296182166828929808959970828924285220469853281133717425547157894012084571456019714251666535429525854223156470169041460277013060954874714732611298868704499832956624774020873029325197827325217434515480711253971253138180438856896711912343969368355114015199439120253757446838547409741030801280393620272597851530113309745347376682133875712425953239324516694437702747482815590975822090716748810342648621563396190284120878815472045598189128434254473650906836939934675671352496888443746017434275519758943247177510118437180017221679213930083915235949246515915351919669953366019087140443840773558058626030558827623571143669873689642184448280604044623339918805395154789437192888512351655036453149823682087095838558686209485738208487878237701981529366237265931459147528456891242564295803007644220932193906512498937927093531196013855040271194557341998702892926613967571375242114306634817953829340920845403875426923661064779470018977096151030678789999761188394756521523318745133703820213694895268710572765356974594272835541199631833246434011158807144467007531913234699145665200708276384456612976477250110349345277238811353765855750938717756492560499713470903855382554805510254834175927097012549725010826748994716192449931563933846654393291954281289455022472821432366374673953435967735986494865149992774010936856172326517422558557268279633950840119617302352279606624073303444132552961189298400547323494468744530417669914489290723146925041932668002405037460833016416607140762755157615775094252072499936100672784251054828087221666988209836072248945426894236543789043316289154950219601964158881608827077441194508789048158185425033382438976043884326767272514098593581205766465219826135924082522126810017876816879940294445335371598021175476436881455656079885704110557015387008787922026062296444733173755517707593293390509923610210635005353169693878040872914249233303743977280094003828247508687839618372029975567704844849822069368049605602698388749650627022954237590075398228491547618234124879254028244041160547276634399704253487873108905913563065423070307926170368071870647861069982205283699602198256602125763178187424049412259723024741634973023577951090014444599124892420468548955591735798650448889613402642064577769562061890313471604727215706779156450876640058287912852806007901776463900913456187964349882474364910819107302632194491589965866119185664427919437328566693809420411541033781377011363411775014140570016469255637743051991788546997321310207305581307858300425428596111210007033979460847173351862121003793717021751868493349393580224902448832788787412966536610359913683680264552748317297144858890314688728335263270704757525952563881097590418352977394082243681581971647363242834797415048539178254827681726389294763521938480692229925970375178238827508708077447883729513777280246747635643301877739567839833744600621090436994698685493959131790821577108686199613365119791059163605469707392749272582065885860515076643253926225925298759407558076280160125504718056060177315206201275174401032351222791304859912658440746729880411257756180781335209517086279364576832261688746416771671860602556915504002883396879084612185989189656336429917936709207424615566968333938924069724511601419593729625043456790201706282859666088022452326190797961473818968457908332897208531783440546207789479848882371295891785135485284466510378846417170896792787514856524829035478170164375388010075194202863229009771914641246885568000818868328303636004957529053605449507425067822208103559691107562644774981463464426062958634067023518216361764112724016975111966746944279422615739245013833169193380625326193288546918646190290890315634280167344195931679573342438050151363703357356981489614908313633406085984237693782842841101380838263685995548866019424056493046975284707683020263650620423257021467144682283053348937543447565267427098930624974693640118131914198522058849063041605217040301236964037209052693418606914232237796746456573136291486009447071433967253134288835563139935303298731120967342701942954067660605827139502499751695437120454004418016966571358840541700203944376625428118455412569807840060833959997405278389915695120843190118445631257594610443674811532396845945476170728965895305770300210399102344186919551056256319252836637417205825638486193810172498460542649501852408714152591738882821407151100394836056524268124416503018295275803826749619067868043112419554706082469158737354776236680302130438632094548109557113674491751783960072771641239082424516985961718295978240191684218249565199205057556918762208472165195648511664746125091583874772728878209770869269996096880140777062903544235240210187614929466016736783841251133742283718307029262189458726225238682586919629026062023437948441307508396068908081258812758983815201088349923305477928489939219054047439955866804562079145267272090032496193951706778340046355020716639405916360862195037308566112534845821888388565117233729583612403854152679227407113048630717382285964740813177162647255241626314745669938744135357163032819710770032100122242820432860018159933633377641264634687670407381187726313868535150445387546602188717524264743077262546865872771586509092720969494228798983544617285202704359072927106315184037844273341502031198349762996944436241868592586700234103666261409481834777759067790737360747038492314869677464932719858512440231641128997489241855081176485966695362883560144224482725243936836722901056246749968363887774375624325686335959780776073553529376124156717630153911284631641007309456562039509052401719576363720424001496549439170669372486442420599155589456693015453858640021040324341763119555669006171388878839855069131658616172097419294062969037035803283581673860693472801995586681449261060803130234094206651393253405820055306048074331564060718419345422868125122495590559307750702773059328076858628217530245371140909605347399101457086928708092947741002736769840869184867639161527659295124354462481517977780853366198469814193096313438724345888764929905985792963535043814161845897499724753409675790102916023798986825770233511170598935912177650149456360347740074434426424275856463954974088760845706311443083912264245318650658955506120583522665181372195647274759872255545215187766817033780266425374915299056750770545114943392354073005103677899225118943772308815679542243060281356428147044949038402009004222453754939581101562796439172834760573290536424208827794912937587449219095130536418039151956224558308860999272189904891652319655130680394124203442934389102968465369406645823036237395709021253191977635818697772839602214641379332309239936240328388301685446069609387638735428793378040776007365047386940523194905711842611374929439375329747087079407589831044852663702704595388458264992684908026716597995131427386451337899193417454893692902437971571094340196954747174236496093103395498423166561147863863680641282356652510149535435155321561694065885346237475993549646195562301395323116591645532902087966856159600787957645675862699096147083121988431918755489459321569699790864932914899461175136780487374554659720143381320474478490075206790856370992217139200162613185779959519679148943583649190759389511404658646645467525508891717390928621307291301355125100283088492003256920163718246637563616587943144485333244253391461820734108571791810640433670078146131020667158303639445733714464543352452506708506512037994645159726682589197574597921688744103331202756044873679645888862831635098763890593968814880579636186678512817979829183737047377025288922670978766387553041396722401782223371981332603806600319320282192078532422257501567634684852363370541916271834731814558557364411040242172613817659923273246287227237588270921639277281968291451210337350924733197030898333129601765860760669549999313574464617986333794538509572991636511321632907246591131304840374957526144935800637723583968984777094143453767654511615926594803895920077510800050654461189375366357595132204003105379694285230182586861844192002040162047826071738384865386853238878786511905764090849698815129539048475572708609465533353475697604907391660278639131013835448235097655208955108616675630028850985264061318562937380206271286073961860332355206478730675099461644408404088458793576272500913788410930930243231919529773023550650529887504010512458474250269637418129254342599062489483434567051745123905606600875780750315774782516128711198683149378875010648909842959715875536342751904402800214075850158725036307870592145508723637971736986161513623330063231325097557867852064816266827706378382378520776926450751749121408608851173920916964016091659205499310592701236372530838951697070335367849120827567118021642252546961097525124602681613278276712842537207309937894554005173012092122875348450012724692752609977124411675044002314056358326289683737845219036506278577269917758078376639097682746280184187427613193487914602926703312393639664985025105548286666526658046461342802977743608948998039157752782008832991424886766991972210712752325321762761788367029839233486134172166760165748262347370217103871575692825277955105142816120713633761132400789133954225223032490481605143606679207427779678186192080538534706393034567456863928615536037692092794583303367157880811594915931292514888993633901604459504169668844425008299188243112478568301065305732891661735569736958230760873870303429384244713953684593117261067733234682197064567944984794855559107563367554880138040060030182929459964272941388522009969434420614873269862379173634129079877809693058279115692407826096071755483452610898344626643320670932811468474265846150597604703396556859944978545491800437842155688054270601046225226636254608454255919072053580515354319167389510400642187564425242578762405889689920021116060266004513343972411298005587054519735113285824619542086019758012588906427442624897680275047298840705502666126427337576270892286071404396965159671996818445770189455509195662064337030852654254997935907411832597952651391862178338292988805594974714672214081341543816357442072230115481780235150845618910763596170796460004043564623692282791849702735183498213638758718492029703231221274870296343543279417755132982743656659349808615946507307906174868707544841773671622142536046192242297121010900485427033582626076143523855412231769547796130194537499331494090570047825358981851158194279802847952548310826863521291934068740213155098889847667176304691530165695660370021143442931807819477004983098039857379709560915651618535714559510076826816352731439421139196301087994480347298886602448972949762899519404620799221348637378098809050272412173649131978701703005809371471170235308448164735602689104476132416297259249051375999625074280936466149753827241721351175857358546932853506861000439383028464161593688501060532196601946121141247567301763142782090585868300366655345318265988832345679802390790421800245427605457000567075898879675949393676316899365254345540862481920569470538980648405813034775002680301158887327959477730249131359225916889344432694672617126201270212151807783152128950944082367737421673078263715293224993877333237131631218056702301313446676979167029100703935717360860359676529273290193729805654869116851763589441294844907605067273419348899598718284216888482822752020182514035377583651396925482379104958454695153953963518189998675577154350677839668019246439509059516587529604260685571610526853340385246993340285116021798585360656157457411782281782055141230091514578321876443074376927490545014392691445363256505881920489514777278137742697927789318839197444688463761389266872164225643216777271867875340644781736722399532630222468190588037919431789197113447382619710966744481148496663855619599366428440841658736317947815835505642621589316058105886257475460154693558937038127742636998419917099820187001085976105643297222507456988377825561419608669446478063252081101477890710635198305752514841760139993187891817057890410878326125613303611966507492740447840379736504554595763167917852422302546858086575637049106463385744175744838727859973746780750206816861834848506503375758643238323693302051429281477673574698885399441088237875836359993662156774846708071651763389971654944402484551060714694924801065735416979709402593602644022704422972937398818080868555689471230954694713052715734891046267714077642740099777376835613458960548098570848425738943464631460581205739330716243236667532791322728558564970056195103364865125525206768486686487886944484080840510649374530413256628954453663414528544616615377933154748557509218865987031477361848661396800591873960339014350481412113048834336312744885703899024950684842239570125712056271378490066109687085597251505951892383469322385241838852905652157294770117671307344470108357811878289675785727148535063303888417478774512809341439082777780502256603391737928023094882711265596864381319283226258640447453234821845714850563913746603637923261587604150021828272279687818766871953011915084071861411929876016701623730729739935437144216514724594492622756448766743225962534618482281904729591515526809034841392562773402203544197961990335794280074318544399473595944652371506800775288780180521048505517464274065297272679456975246747837455026030254090116972543351259583721575414613805206232430463338680502252919117632063054404618784270819561101409560248926257128796604143388476416021355813262511146047352793377977788892470168877579192218479605939726615628649894199032809143101710816351467104850424111617223433129192811133814430292723999680693650176310940729983698247188051570127789411487977757395515451494464201769636972799299179579882335067610279697066324053768647299968375946346822102786774045695996528536278422586604748681106713994318214622183756043888081690002729813524056136532207626344731147876814709312262806766362428719322688532074852530390041628501777864839826100233925961179893546507631590432718549801289729458305154117019534575701125356465077121050432235040409530500886390956148942100618448806819099750486621682391373483004606602120569305244896725725694025969391114187481234049832847301939688725915295501120975693227246771753540910495284282517538117566573800646630756841751863590893577972445902268006616918692508894683741608335158540175100832642870021523950140497512441663958213354198764568484982638679295298309406050668694696081390392250546788314926174385687811778741794304944070176023312238436194670294952526122548880919589114585808187956644596921953730390506079178954280056045716248367482667538202600821256666738471282681312329580325942170251769240928228716888622181198381616708643067339356367154081180629254010825323523077952089404690652614179015554418306370730247421247493764484592296269183411148033395006676832500536127243456895213333672692409889855364277632770313726060127392927479241476314650422566479641799030778030759362617439280833490865229621639877749125401611192821776566097715558561138209519854894294467129823785342698702336367335679596993354311063829812608361709888902877023615302061341458024305824722292346937017594896947055715698175592225675855625486260411185937537662126321207816161760561995575622867277495607745898375401927782153336366146966391188103977672089832689561404851692696635809766079302439737885455951656001203911119246226929284784958220439970042588836755000381936659457773691536614046486677526453232194844512375598955556521652103528621913326223314993253485319306011199304313572516402269079002910459957008067179109102365041191258851740360576137646110032150512430484398938251019019365654145499654137619937693877851164424207927495046081994740539643702164493673740043534867340110858685631138480273738435814725385374209898356878527950290856698865297785634760166736364165336364290493092425653460085405591761183397903269647189292440317038565758362451506307419813930074379909545633420964786828866433394192299844842743762419496828680078931026690729113407369268337003841971513090320804594361666941565423722562004682901747863474383950140521870507471705727048196428829524283743996404640406075185705603569205081667588659616780831467356379342534340294377633885541223949531673229944645482409048201757058416827150176133865099311301767154041517905196180850677998086505000651774563491496284338520433458957421300187068428021038867860945951462015053694927703161412053477256571474172070362493919545826326029546014004997470140151427999750226978810755487308564031715333122787787213170927280309954065508017925115883574657046260503771531252295138533405713481286368735236475345379123023728740935770155585142245720141636372572954171256470986812021282374045443760155878386688126278974725715391874279642433846678497231690135725573030267479438963396773004204782360635876235527828157240613025908875007882434374139261834779508158296880872315964456149423250060901313018783414655832806943321581927579644900018090283243978312559074596720639918869403876970521989025642505195869497637377737117516398784354522749033799723679221934538630462051460039751813046672333456795609372536317108746993034479504464727448999753301989874171241635283751831424700626207364667605060358635060338894518059285048008228154320803290457099342324310176730087448699827586494266469646546334411159485730818402630185345129181032854123432019637982488590115761951347404805487471721957634262965246488025681902897810073346824592057258761058931640920372240415270471521872711765903023772507870758086559617413333644165492147907604071094232472308409107953242531737921736603667520471667914372204017680104433208732882975956508784262764023354967024692270566584732020017626093949208535945492331425463568581903608015173319154180285571458321602495694828748158489013959826315715440879574617922057965723942122120963964700839777295399870809412061470050652461799550111545384555000039247503624054258173172693830910949650218396208250221207984414398214995305332899743673433528995839776750873508184437454333729392493372229654489429357338135915131532085354823093568649726688655977448020638778276754319259729951730489988798445191695289138802411948080713046970241211737799869452675552946020658535249879864857364262420090424418258230960954546205170880008524241745051645168073816359760927288366413985118077208511143164444454610427144174894987870308126737528218435116326521873762528007752766956099968003728638660308515829610887838834738001467118530036238459578205638584655907194201938600482901140109322532254353900361398415459233244590243920966721595527367697369724156170750472401682275588660704028261372333425911528848125088963966241645378299317241807178401571924615024199987426856858110830782900669740594096572762920969360435088589737303908559264212165692386209696598772808878110231747728845107491581636199302933078495517600189227975155640014314508978663909301283803927325716759434881177135066448782463839892773597943929245376165545494088157817999779809501692050608036915195535782387308899074330468150586186523271391063207338385544806424290362381662572815702058348627125372961796022707453278077162738765236658804283475655017935556328817189614881008064505788690406724479544111369093019975014058929759021513555260537109144283333851762530501506033169381020219961441838686417967684870318587939423631889682866212913344876542018926438579796578746002797145596856097346737710376155085740452221119423896914250592104675503058356235569072598016975463627160693587682701538128169547085334265879169569592052044994352129837510276031955526359049180706400509892732090649494828008607888559536907531873508094283586083042038012081347329275016576453457703541789996928312653163486143269282005933769103099084513193377826668306442164097030610010109601703300693854710551697359724701214174216239028457060135265767395112256430563314478065547394721766823187476500211637558979047885825174595354243923566263839566889170987595418203051117053345436022065317318756226434297929793386970880031069558984814683315342951974222433363295355962927718307274326389183844114292204336279718925131325479318537928469806403605969574544119412311978330444162083197706267457907550501704476954273203545501273236690853569460902383660056637291023740919572761280168436457859631896374751270654549635098733750461111003839444975495503652625565751524480385513430826926230583123329349984731152949201114702559258638421629402084512207653334396997100785155428627169878001560018132676966239658782578214566915703540200955561102335690992302493775406683565532573297891659183894264135949053203641160478844641891906877215926497781630016032239196685196942613736078674422797692042959350681571460027953756151507387887347241693917091445948605136105493868860708320500499486609439625978220723990895667897783345839569124250002220919869166881511015333611307961490265497643100019405943810227722149989144566460326029250796608184612468500923221752648149909360258198183085785709820771976018838454835539856877145924050938797447400359006468315848230262980854699348564402480332601385804251125258584443299850871742746969832715799025719759301807004763381172716353006400086921228299226581133146009528271204564187960237822629289405788344758580198207517029395670295579042151922847484299551069857272824453316533462862378148925854963231766778780179994583273390723940335150988811575039930439426282502965339409597945122415407876578560188270336429602622601828143100651974525499689741465656421014638689381540181334917126784138853014621456616009385299072188964538091748996024204105407813229832559927530100096330046213003121032064161575024590311678893233075615341907439445144519668912372649307909801869677404421369343293647021037854953962041628553543551601275915505220687282681849991124105942636013994993751643558570742007734589268117903040337879651222714043165393198480600416787269654115513395050451650297309030708100065738529933916359140387634208728911485910670945664623289344651155413435014007534481006250743471380409169761565591111185019391077507385745994983539181334374509595403245719445198222080542591627379467897069532999710549740205057449631979678624315490430890303336012541765853455466113755670859874743606403850945725760170220960417173188013081145838802101091798690363600345514628951763491478172397299170421612360723263676204836537438212760273827780605669267715522063084132820003990796799311812584537027247665219453576230315241990109083528945875482590250646199385301110550843477278643929803429352992307471386931871503707667901711230083556654144499074242203078164046874243008534659821915561908050578374438242296103592131818837995409994690102488714308245575298126904572025581806277242869173170100204159157152165962058195130007874623499851174798231808644569817855918678735315355353502310606362145487238731182204406881053823075644485183806906679074295100357226031392112913340086941651848612074004264575077541347353368330586877538194255402491542159894242447456890720792736596678434836485135453538802667129203297217680167397603719564115774221554571332348281350232994941196065874427563980938865133507560559023097674233613250869796021935032886334161778710017419261276813869541210778776983213333873686375375498065419288707747835697343343863269661312928502204235897562804567588297586004466996532423666304995069505534983917524576788063830498059129096477099341467436134152174408398098933362600554634463587653039261703757387569005074411538537576496155526879505721083338983601769335762790532264100583990937217223152991289072149585390057227078678770226022137465024199141094754340815775673970791369433981157305099611073113185836232957972710092791441739442883211046558939728055484631540368885634623743103019602488986811640037068839968422715496678060902657000155910949279431105850901895632045313054994897580230421323523982820727851591206766382561221351332799724053900107650199164933314933319659861354525545199430676085504452570798347137295335893347623250966017329993656832748085096424805005424592156337041167429237058477343413685428900521564756187272206901363792703710152252053043134272743724279328827549312748365197387087681055850544396918827209165630159085220964745074785018647782172154767499913148992712462015906465056480893034895338318662205564114812069953505023011425661548131261765934095370328993342898756858223561534889777739858543347080937194464679845280514010683352757287577231306039928966469374281174934778908494364562826661998931283405929228724142343891704958192277252484226312945715961047671183696673210605080255074583119597444782407338067555773261275828862160216879398675255545047577743992438146194627100389398502991594496342658866559735160459487199431389061098078126725981624416642203782476175274560011215980303397623265330892892381946040057620016994673802787440907798801502814447808533251747971500283906776052443432887099665032616508843012632703977242989020584000322491834942038196138656038246447208672414279927677763278995016080286693435997976691723597371715583566643308768821614028609788868687492290380187840817297722514514394237378757651547704301955383074640911674359766446329641154702383163058991075016954180445211568837022403135422494518592146961693316155266956626680844021754183680108281776493447421835819580220257618861572472891316077659642881677129576016900276873551823730722038229713909038529970458203078268990264450156806900520392399248465659466061633862235569624586996434164776685851530589532856584339760141215504031767374314981894186367612314576231486614600552178851492195233205152341359812235635435220844380687720590335583418624505049904089924786619773498084853522051516660399180825580063986839226242090577204130800121562959893902508653912761908482165371749595745517026763047047371404759487358315123128316272111936472735792023993398206534773696818288130489792931937222732548377555206614929353629152258229233532653352084689512950455533247703239631474772917248336491367896176419262637754494643921479296145772309379325588935632393045458699937162902786376334876410023147893348853565868191086666357376232084801011940994256668837313173370309921068631825316997360149292943740112861613932583651475486128637659267261608671697099789905864650890397912907581900140127864603101433347791314375309613936416007952111628182337297197872363267534498821217003061826585575330222428205462917042448431263522361862522222982096858036170861007371929435323950833804889681159107264461499874353588166239285813533692355662151474315617753060690416959788107595918170980914131958732141025752170499234851964745201311227627285738207773466570767918845179958755856617176287145914089525151636256099831237351579250738685844475327790762732072242798345871707010894836069831279265147876862108096253263893462947594728692848876231686789626951811075619604043918502070973726795365654015235499939935826858984974097884160966876749995105724100317364990426726125701561615759310801957959198302070795580904907447261017484921016817607491037464180362405470204998792474363109742050340833419839384795926757560748745278950085226815859128185593887756035147353341269688341586872674298915604831502288951616706211121961419447190324713415362882489753979789684340232991369729273987980373566602799108573881432752762979954567765822784280925630549834499315103395070755425130133124106581169727304631029731921012501897436285920194647540080520853318630181296266670798807142799429288688737217586470131969431113429338943153035499503141488930603548821877984602673290424839656154600650741738574167051724206721477309744485198489518814805809698367244596961547275928927962931425922623471920253409465646592533872745382435395990261839625716672050819447157265362517526089294085504115001850040987685280841756292465239090275855875155167485088688135478348604309265145301167184464672530915750530399611118904762745755724622667631789912613671315543242025578970221949096074602762175472117399818673564116159226427149094775898349151788392594389524064358511723635673596406582868798756785158494860139271399057613701259735935001423112817845248876616862942652537155203550534885447187492837381032889148921757984022332417863135476633424172301396744000091122142761199942043217158615289878592624679218380931768715663218805921184038425394661991441948948018248488553114232305424707184032310381928467187717539677079623874802127632248638660118359961008169442264263439258281145391826822756313482671338111083434696295899955081660157259657151360748594454671083350215033076724660212906790965028782401796342223657323990716637096298174223541389232112033614813575334471063955088026548496689854667060027411294340498022325240939944370643847275710801600310101688019521607536554866822267452227407455678787774051169819334724480446821500097166991825285474871502175363569768073201379068113788450213849345878602549557647292450272457870270422497617016392320319479691711038362560550760487691367494948688619309556919184284821605652405464598722442423415228106051688278206764643775201005781963166912612866086055445595349578596545705385069630843060803173476252706878905347183857339374289989112228980975867202901745010011306110283546487993547424762131803461616775897144180055769266662853103382050682747018729767334852964279373859950640996330192185176068344227392044440505587335463031932211700797831068912138431536068398778365872261207557030875439813078371411506993057420585295755288870095806354266145098478781165576314679609183662726575164176676773068818135405005697347628920432084447533375778649339207283469426051222735744032249242359602138066091206133973530484492146051717274947164947386188127950537082370881008964287558202109878726393567719722789423027828871749174721192087618600875227000330684369941244390592925055853565703037883840302094826401241773834803120369937513582088444734487974410282635288761655354963771928749234773795897567703002205884815877033599958267971856799139853796510161751167661667727151805284660404458029449441002419013294629519915912101937765010582336702288521396236337517133909065998683631754550734619512314155638557295433422285926728510750320021613279872264885814855540256709175571706226832198307998912451044258741741321308821328748424540117403610801439014221922681041901483698595678062211111189586605954431068978620570592029443397464679164817607045703850773218017955269870408647971471440776851090425881670938379080712969339188353169279559450536340013436340589118928330797506112965091136466251304675096420228684683612446367111026556795586444339610785961869103418552048938414506311872044081984012549584620456051873429837300062714444455140600882126985867239357882528687311579098788623848099006044776929543530080692316967221191191611435205005295067296546598030181669373359487091242346033869527524284358318204880580117868206419446650187796204954633138977401548835250243607830549562063724387541338799499132324974896049074253668730763733056562241591336523940493717153684788319134446809055341505003059282945673114855266077841906303734115812600042834853739921341745474909681427221874081060363793797747211435793632610540492074375315218920388649672556843480668337514559022615196135637312872340587844443236878553304110677375660522684337214920886898911149301994702232731591047115606904337046831243162926068411265676154369789357611869075627285985055189439207169642726006923155382142334260143831158980918082936533589149225137564144505525339035345502154020831748083974474816509710910931224085232229641202331525662406576063335521915431356431753855068870192333770187374689125594516006805712859128128356508970541706492056724816122499160189395457597876974891857132508466096748871811174313003431145539803321821750192947306619910300116654920330397577061518487091786633800711711458959033505947105535777923479145008054774835314844801633017102916037021673514196429903875114374548669928682303412693051023902942400600443548844933281691959187875512856459713059982914355031588046978477025233325309017234577641443281509288640065075179210762233047022429490955051912937386962427658141409685176971130367795679553355188493681642747627788203463697570382201750366173826705306518625858035521106111216283649613002283334053023343976639504589723924962702003925770506143836179022935327089327732049448218688007349362132932814123027025988774677718940676555619237927443074615494251242535740363392012691600408086454338156875276104173182042676456686418788101317444602361041454726723377153434408008164225608791759422697208106137036300130437607261378464523793517845714854552523752297969241168358367141839986751018445908358001545158140535865048088156217677687732447477769481305136826436706031280160903041981660103975917788143550653783804961060619238468032985463482630355974155215373480464113122648683796716237873145470495835946909047069987807400949072793113573523976499971396806542096510212798985220104663258402894974880373005812342790218876783941565866473111099803984896853326506770510279349179287016769061128030749963238897694771465987556512417140705047189513319103394819519070039613927000433748684440320015734332225748600011463008949459862842089673102563000515429957061837001273233420610116649286442360013371554724684930069592418711733744754129971733204238145697080428843720271443443724648555944528153856896137931344232095557191960580357531035879542971327171904775292672787250107004825228573695025995469036066344643562686134231665195182527858249626068898219117867354775123696701219086571013227890630121677062931038784119701944033839431900071153547453316275997403637027070570708080771152093609596558739756353502189371154787977468749157564670896646011373765705006942786846769297345496718481109964562002119994926820942509203733631959300293478647786083470770411333945581248126381197522732886734736495580537883896697668642347483551784383398590769877188763153052661504724685604051067231190304237538528762283790888441789091401240585891692431333496889839275409814135932995231653165017493224835984209341152337379796099776569673654476135896852746358770746159842777334594007715746322187696338923664472138106664674034368732208936950623138649940037870121776492370300735177822502030927746047034668707524353040117269972402083939046922737826539100371544528499224165723493087738839572304880411019196022530362339257189741559031953113398207649197110377936576247021125751736772249693573382771843176527588025349946190490293234233315991379254467596485957382388621098800125538471313657433573989454831212632958248879052634445518897064738439231827488117230029861141074393430858184162275782176240296877705294934478805428391212921720504910443707036842774599976928972126232591285062066128398601340555825367225181199380039873370525745841962489910066710327927511356645054125054330023910138156303947724787176564386440482601486564916292981760188975709989223979827316084028233766482752992892695411829281523495293277706370263226686385861581693794382555505731457373611404696331622364247304249674861964728387094240921572807332741443405489123999361539875193098134323556448408544276299201316286407333123411709180929215468557598989934061379913087101701682726827954701969675969992816037961684983329746764937033114592887832443431738425594682122178748625868731403734200792070724568490828149502557506633259500565091112527444971395969217663776615908179915894585532165208472212946894352360945427984854865603346286319040481977498179630537813584668715497355668927309904867260979738220994651185677713242036756731246981532689064018264438131541889795150977768342560087329702600649497477777522540288288529365655645361464815103435393696670797873724480485030431401280530448753885810016126796243455204731121457494884927064033514450410066361364998896981040494574352436718364963259697075076189640334172390898589655855814435103517195874815814414838155243915600059843365956131385570057760745173183535036810598195138411580363143722731672646899808648848119841784823977509268799168057591030300743544231919596312119772660801252960432055576761512187031442580744378755145515550364178013010308209023438927572663917120663933077641131939354160717783420525097579875754832014991409986343982517545124663134239247749365362842018142687259783056365867447789788348072699925699130253171244689687508073267948725700738676366619652521738369735855073377589338744698141307351045994949838585258377418879995338176607469110582149377928580468909978182633165828866677041082412407236668748175490404420250771368952692326826818334499567852535355483824626654724095469995121367098677482336242150350443215677921256939486740745325615577574399865175857129960648470023010490547726616022101140147295511659647873626704339590342326872319629968764445962765530021412127670539308026183197171651365902602056177693178475100168942194347638945479531330576145026329983454206287237244537420066605281548412823643000158570607314677272234920427276422286642900725785499154806179756676811937924981828798806387049750706566861668456630132719799861519623728189986179678109217272303439185252850499074391756060708171438722247327545209013896084768673816608845977732027685507669497227410409678764316194923889426033072304506175454218364883406534908811818476213416683850584724499372852671235038876155938608003167199131480433460937948002446818262611716305596744306686095401531829070934565768236132988623564582454843367594343061829335376610794488709951631305752926437088637070897096808171529099399688453394403377150564339349021871644041618112410925836896262488658415308220237141476173644905093950179190013533930461491557031211616018195793011067820751044395241992034732579472416252320634243375356709100987284821554610550488977983822809121797919685149698947227585381565407453528413612467159830061520060986668301523675115285258997653236819958862817869368404783325208910879227646678097545203547669354505116766686833425083365022961865839877451643930031221212705249555253859054077819618550988435794705039730604400570787302535184873600226578181745145183106633914027052011948094784948998536147261225527978225560220522806238262325719249531941056430023321425445843677484983714995526866763292629946539382761564563114851596289366964592932826653476020209597916117857686525978866826041983188566388247511724031199671372352517256757382131058712237959299069776078317804803972641745257280906663624620105963321065411742495090022876166409210508332644560982982825284834012128403721484139488399662384252293656233763223099586805555772546297537105863272209938148825193974898205057296653417653854545514473928705903785325186694872809996297537683086667446109041758092548771597726353139935548918491794136088017919452578921444245622875285296747056608217254284517115043970840791270157518259704156823071315331639672470851835632373847077645546038096757305459110015547375341543492587912159807210914257398565204758989956045171092250998491651505782962341242274285300802379663468135680969330591020704748994484093014950144454282146706455068051745198470825088509754900621296050169744702568189531519354002296857903578798478151256651989369247452313878947071376788649060447222748126539926732031227212633841473713206689711962455143733197373194770674042176235107798037414175782077131018452661268634168905087228302694660798736237353996882170046650127816788576305557467633159784589017617002994791934138622355092303683613275973799450450172796930261379231281664418850469611782379270134546302724182618890310895577756003250191332851165232174748704375060800070926954606337807056150194783196167788100304578629271697802312753971249064988288557963529923935945638559060974537932930550430933459054956459430740546229974205989642131074434339917388902007183552911661812052679279592376145229516054598205012876639640824929527561316207512822318168162320820679943287843422184457342140392495726596250334486058408331423156968877836114233831462733294519440460061130860285745519547307589862787173043800544600786943170901134639373351693523008347652998557370736385239155853454707229005926820177343966797525984465723394173579923017127002938673577827692297597239049455319306975955446682650275248920518112106141658576672423834062664067267665301929411767022532547747552205367139651675031827027929653591529043447294808157780301605894937606204377768651331274395670781988029619601215444314059315929429005478097178765806256277744351343398620583451156533587653789024318673600141868056410558176382446818097533573835499028778893356087923723296732829593277817262160155292363434698449981663874437304060043336526241436578580483923586858536989943364428572356613207722798331401768629103823033386247020580489449382798212812915508576530912153200005801959821879355448436624855230513799267728658037222085425313297880683734022655287746875156630196927156868982914123844917710906413931715699678442201642157310723159177325713952289287062890883327882268874704732109991022268941055964998346710543301395388019336689003927374152685741184710274140385101591402013432459992571902295292332109880280901382982757559581656079104562095145491161146420275714850120722869221696910257288412730823782228696235119394652818134872211769105880292214517873765274012773749118691359456066017359853417000674073749572314437176555209028474826658285103788611482298796068316062550527594776565903098164223336043954775695801139023219275480141328756217107096018402430379247216320872917683631861951514261560374157852887485512227997969844438229481498897303784948335230975736667002792941648779624936682862050730780181787885182087230173408863532271748170227680299626818455234276518396986861810535845827527420330800192480572843343805974178561048569572155730463683467659925486425725763272779754581956264107848214030190280023863824655920040233639151403648893194789361462489143904679407194994578111592343652120649827916022109260761798965246716074846240780579358124720828527488660658669984865255995400372855045732620712740849395288857438569270556205137850722961300141393499829302158294625482662435395682515522990321129235961688505523646384652390058570242421952023906918239995470165141349085227485950468165131339769863397003219088080200495133036115906833800847223883772203756797095635043316680691432310128829630035132988209929994834804080855522328469919024847674658182855361175205112801550624484524948318770618742064886843260776565665220808599334416280043595000656423036498687048019437254162135372580044383333427987889153568951193223395481528014010469615299484715904756368532889554960166208699559825849034193351340570315739529842894898955640582786303118060846939784884412917650819797558416514560412240166348588913167277196431753167775819871834030768660344306637159813513953973060999510842435844256370143999313277739180388782958022635799347447973469789135203724474731848113131650726503991911444270118422645003372003213566801360802774089743266437230330057192559790793111268911006391886054291920329786375489106484664919877718715758424020720419257308938587762476596785051773510188275108739131116030518753477912264285956483296222780486766653807484111395889947380848997817592243954175534100484751541092579334281150084394676799892352922050003688640366234128137498090500331920036741037344850184312216388733794845849268195509850821966950882087840905489018401436143689815358997690496052481459585533121903612156158506411840971199229082583055556013512537762562196420640303943150026731455177008407373856307367501416803360667734610547535648024131789724988853736543823829192715978373057181669649493223688624741340825837588822792013260388474054155317983339104765628226892342549299021320777306324314662301247511896720773771627850262032909999063022232273040878291307100073922236893375221337928953743991437837618352693794175171137985414268764859226906014041527187022215022222721156564814193257426483904939506775488120282841245545619451715883142050311391572721528160084659706630899047260419284025864836151184085218083355658560648355971135771007368894584116638559107023297658577739857520507745124032882946407535998689159144886007529393098270756188684198566126805937379750753946746704758952647994162480352929284634741274506410292927659099075598356397639615308935113723862733829879781187569710470370641993940264519495223920890995569916287136427175546990433721053123559030124474338326756943726593681422794272201321972712182321619878038037102561388162107219273600091223004108143957811269254116745422383214017674045647417678824907457367953636173953662770234566268908797953786020664431127115133748379106559153667869493602609958038566780099678700458051253322956737019495121046648143127371022679041832281324012504153286352427566301059154783402071855009673827330880950761944494904737916142187727477567565523901622635020417591626061472430215376008487158716902818895817147017791866793153931845235970493394079339758211145354151102826884159808084100036239023656018896654229935180122242379672440239641041108894242725450441555886347851397231612242966776229415632666415209820501294219201332584226781262557940325757255958789309867248302857966000196866710556762312329350405509768288096099064614269707255600606526581333795548703850994768300301099006384770896372797120257008507295229214244368782923244092138914236656147365966942532835814830551571093783179804794277855386080412574757025274899300932810187248761719778792529184631648875822147100702000091948358852889156459395470829591698610691417320726803115659969718788798878334126382728341889177261573601893788027330284052137708267705620699700006335900604791437077552631235601821728540526749878021048621302970962740752924891207728497383709695721321966115736788695098407108137477447686715126673383231106058913235340851294733530608914977207392302696756944132824178833679688034594702472370610919115155848950088115439697732667107926092904739352077910296075356157201298694317792315942594275313314293889693007464129792553659205748354649715934138165937676477875776394303718686708226170293991352322215509120772918206284853668182608830449694673846065711857799610793307788552466451892324416491099346111494208342316766204316372962731958925241515593202160450522426543049924926139059918567206925817967254531010698183505459164968946469538868890928938272805844629703951986846155571501878333015285250913227084217704036272852339371277578552306213882805557818761979135452006655772260178565410115295656549742236541403449544878427198838856006422821300969191542226293473000179307616214155149076357682970469438994624313925107386625374513867851313604457621877318199011258889534876626493982872789155961046936307911478106540001787419467853271076110353790272492435708836311757140105871658524201647661357377922720844707379427574350823572382818468567993589227987187332162166068025240444162047997942205467362948232943953938395820762934826682323333341731294125563230526196427412984154161246603942886892758472332775745567533973235195178536871698372949914368471392508267864402644256627607477771660683415831273756825612209937404099542775073003712691502061475443176024520813343240801245319166607915634570142685970166328718485662364028458723707488956506227542735292644524294603560195085618367654183348370314286781003279148885041965352158124269466647118999112418315834251842888820744986608511000584194624936569930935680353291246662093509549852443966792181781589547944513088610131200158108975145550961643709641277175734245628818151083740561806567106144728443723840460311007505145101853468411458034969218204420424613789488530787725767551694378583302118901550141383924945306994298039576422684445600313239188434409729028979241766356552993891750836782369814483397549010582587208390434973242061781044406481402486499196290350272963190390503537225574485125924474079182786079430073917160089802380010039742415674905527589881904271020881822623587927084837600790115028782620901421142668872533558510276034806478941221091497440117640152814854428372776427542293280263106225118431333937027447351593254416984829538388030835952906514826783006405985875926172254333789908001412996870264212254164345925349778019556536725221188797411449748568042604568121379370944713479284335797695628712795722195051216799961478465239853157677617685398771711450932733111458094771403727999595043391749844789692805718225640538724023059493246442060474516808739359650547237153644407290178309056110175139337156412605515512777190679606984365038733343982021586204988301881144760278852825790647197888989504572683512735072424205886834064246952902562704611625411250631720174881565392301275587514189359210362406672731758280504567065873167497406927601874099330056098864133029569865940159991615688624077070751121725724483828097450427131041456833372994754455438099321863822066514636038218800842138413697878683599192173023346706632207138322591452372497498198979244822011828033995316353887849411556216971608956186033772692117141082624634210258325282518526710053235298691007157093613167130850709794775019534573861114145286813863718145144400487069268784352539731099770377476684400211597494429699019831751890266360035523730868667320635457634994697627769406182707680081784765494612683568835677954471768008574609500497909853314171032332181768260959993929567010292450219801581098389053043951741650708058246317190597574660798247182563111574030413572687867283374132973422746405455785803319995033457797822381163008879020443044437576459413961780677692749199055273210077486796015749534616967338667389525952037028250715146361109860311357887618569799022365799583556539490443746052017995908812073442642610023246144335145286854428488658250082957212378808503536331312237624453670027587671239109722415879385765220737640363764135659486841965518383317174585881055220908195834324894838369945381963928223949615392226270282049149289523422650122957739064979849626049141195885337062936409165938244852714984239100415868777455427624063308843925243760434542482276961306484498229803786727553673128493634683525878851014457078297097525511025117960875965683632258625633107629961781734030479883206014246907162725034409580776303388664800737235297054509717145978584466852057387399471249163866921809005047038762740443964131261795953373110070373777007798536043596589381557427280998151733820131476918925935630874936036637694021557522971906130062690753911671113718108663253003767761461997770350673869411522744486893347801602481780690461533188482668853287870705671168380137378726155250475599518122810296957395283659937915149770350335623606020810301067292414553140271879452613681952897423819919541691819482342451540349807708774643839359285805740244000633405810681307531210531288721604589145621292150543341421992443470991569377536317325316898464008081168595348997284262169115374105236271682153642501663561864370873885037874021025208120495261591757495859105293990214852228943517733192289914164251839672639088110847022876195045556083414846404042815762860804788732017090018629731386123914188424182202186180878499374436789795636042672036542433582938009627152776373492100971308697287503668675994526808640477893135929285444361733631864368423027042052377057055898840198227404976554429290807244441659833865225536411970524103960328213615719712620592507127032815205588732617462707376390492145072376137480981995534464778867133808115698282077031442011235561827333474268734827980589949182932389759877158815381451505192818061619566319662700355273575832307515160772869156632236377905447547434315158142800188080429292877927624518183239632521534910058281011903376445453642429244164125295696214963358875657095727238073867225361016803694784515354799912809694667483753266392978281137115169876408015971455191301090061576434878730406482342377432484667043673862268030412499410253496588186076513085347138437001997219276304341593457830095126225494981799267215635579820616388531707368096306654930398865845099434858444644370329047548427859704827265223341160532484481844838513241526108322645152834668730344661328130792240911549855091426510912562460698299325759866355272136820648673660472221158257357728672732528393282356136584852617786583183604040492653620639209499766196925318807512349533243744356969651414418348234002505416826741439271508564441375175478546398967201400008749188484752969378608611330122571564715142045499557712370509129435272719081000513867185817619297063700311807555210657773665544338612621228006313341745056208682254028728022249877380031342216802821196525320285904701297187610470822087241827549724932690815533358934078747662980597035300074599610955475441438400278077207516777272278448605356059191839131960677880707457077392011269941962799873648475639575032797205643000932674411604305059777519731587329902060247755822695945414496204942693514396245422361728020535106528271147933138780568584665060618494964327316791968153231894721201535473014927554658357726316552511148176351908743772855753166804244104750296559336195747620318615717062035232966012643887355280920381301067765837557167478799974172647289052707698372762727114344071311793653251494223141693758466427070027098833734736167053760542396249480026337699285351587557202735528306537724282411207304014285483327908421658340678495931593458741701796189702043061489873515420291258757072586954892367127589385417985782927509822778097904027994441901550770644943693739304385895142730986505490289513819612624901832877460802152513813726822146349456342213604001972474008065945606301284377536374967264007202227367235040128446241849854199867095757525940227738001887329524155362116859173580653064123543190749926873250484053308860548200213550452518698978922461341218310473702238047275923148432908192377086728656080359159872124670887183759086183420968744618175043330702695527868502384965976476746777420317084086148563569002777411937408115639567346099281715268167000306520741886894352611215428772828172375006803104528379659529556068065251045437589074764730079947183139785417686338202487257505968537218733363625020117577204815891352623112765238534559964959137591395792073284991651710151465626248970571522410451176154316116306888785306140955427923493010694479159933465269497082094837621075817038849956598094973310682404976554690631719917900164975150386025903706633846523313433351004597839365941544257516438155910849056469363656906138389412416915676218120722532719262887265909968040254609289383121916661823532489603702031567535206844776987858058967878786013349983720459618778977839893989588302874530918675187875288892309298300114891246450121301332270380359622313540301966425400598209918244615248019632373757714166392027697459111352042148083352260572954423324201756452778067464417898218391470556932019802023242386978186499243107359150774375702248585575608245912581591820160704205321829579302297080877494326336663777411727730044274468588078070177082564765128327460906020192117274233311784423389793580627107212267616868262902736080787943994556436571709895371109619494225930869720969905686549401063816812285373769319847179149955000902890135560761404512433607505652508551019073686220095741276165741391475203803581495941393473388987701865068033829015838221029669314202815967164314058714525446189137642599858140391450384527971317516280750318893803853363480657702372622667060462288580482882931970656256627336029401235035290776244472085556720876707679167309166875866208069894429881261266628640730847819191218158978085438897483630697403146322162466910587386550998499822425189582800739931708106149212884107178791062377287106625890436098681560163301396536308019428370567626141380378701343179864061441842232188952850758709673963523304945378664703000237784596600034057395900436667951456793814519492308550504599117546618079493479870165513086747317779986915351685340336205675248503201480154091955857697642013457952624084169811559443362023559366383980627813617792177249425817608786092388145680553924526729762190291479382906088400504432903478158879447143107898120034335209316660714074985576670199525937087614845076724535209703000299661983359790830397837600281906939966226965802617639894195507355873563689007799964260912319968731668419151494495331523407432499610813243991744268338241516120846412380818612015084414909503961449577595846266588846422017908803776716804147626597761443635464979010354976336247967724977843744910850880958921986001018093937117159566776321699479410637309837573360687566785667823157425518676633847050204197575974199365429032866582818704263006342521125855198900952279907618216739000349714778399419849205791211180333513281318679784237676502082511652635749317170736510219988818965946824814879658175171130898604150335832000376328671542019956818500340150941644812682192675706415863501338192720935456803206337932037613547694393460731927633621670882986927487262665218394883769927759729514061663644429568568341694888368979117524306235350459743954494259450324711689905788123937716119619883003407339066881177459781723032350052479448575983711683578747281307961885801775446989777619644734564545510956705703665623455903135125779633524643257610623483256429324764164436848418040799603657922533099413617386565126298713191778226585562231974714082138495782390550098275546403121356427442561013419084597508078479144471272866016358390051187731004021097536044284825641451672535616196871232861991501702801921074409282791128053524053823928924968524564229702398198402751552616384236885159862062983038089685079115618143561448757657281329911189642447970436601653828211285913400984059415296155421743175857716371804808100310765073724909949356850656008007049017852357361900824587439285484894219416630741899189482759907019149408387601757242830543821315461090497782415315749439904101665296079191421679132517087819223455817360381425948576940489353842348697387833974364613975950212809469615934701425962981085569738469076392995627432214012206713720377521455376778520214316668812245913662926809107556927753285892469941133113538669320774550205493184254423596681288646455202206065730576099925772034857811004718969094079605366710295213327772856741541381970569812737360728014065626355328486170462298348756929785553857001008557528280436923198123960502773890851371517336633127517980378480049104682725661646711484966950055317051893273169684314724885268634319312332462359522352146855255341931025159182554468711582160759374022793160101514246267538190032390233647273457081949928245999793942960129225073250314940702840389403693733089545935481830966125038292279479738787454987669804939033452818645186165068237080610473417919448905057440622201922816746861287382028070156924605771028165402585359021609361957968257610778617452690374976286636882659293156630576938837048070081337833267342122458467070169160261962767967366975822480129484666944925137801477262605953401975414158804906839059736207511283000266202029028631431176957198946759153395930007265237636209117334391313526127862959536529002210681858776198529859691035369617963701534719307595233501049590038200012285105618730534483818842021592297336601146877348869406598020594311187791861585147880613573032254496525287359848271807794739926311368883452531368132191302997260806214323216581498119140354672156116068539724976546021663471379224010395311146770671914412639926162361258226610667854757919850301426703875129169268243741640696237280548197207201685562258738673922521243883597730763251666481581204819029361765922301963323273686830878388571101207611923484742809059102491510230870760497749797432639463133911746139257545723156271964411084544023228239447370986104272917716799424176674523993916258975866909603431237463383708950237929810264994216065953667102145891901596236155822946059537010859839505839717982203337606181707920693069965079713337368788594803836624591885430388853804659318840904297598958710185162032543850463235485079751655463557545078102587039686834330279596685097009316158826352416315115715632282122619375482651245163513723393087899961216379754703198658517055014719092345183273881502012593812952201814861148811894526782952472306807294464317334876371276261434188099481688107384468949017015715814457169991796378811714535611481833386989950500821189365757553588581998018618353092571044938445086142419536984273710709685974268988418489061547276418175553392989915397602404978790064366674048682300774452364285283711413472629510770346356370120801830172040737020927889340132874396349078947976795010215836074595215742767547378815003712343038735648926231398564580349012356370733364531963593745666947158351049390958919996180991334570882679928147363097630444152251825045645299803130912576269109999910543217531999246431585453204630729342964069349141278974730040872311916722621982972181675017738958778803662013634476094011202152623750216583387678263528434048208414259740047208322719186628665961814447518339681264626268278342260688213536875852633467187740933943057516799257215489677143590360912855310906531319122709944603387253871560768277294921315990653640142319773100095060031366510780317149291735734463236725370708860029078970058933259388065907908012373579321698236718003949437467715086585326967155906747864944844400136101321505592100817554195423758386469287418941984876238741157673762872826649321485325414463298690249220879850535049124973291998272569894186705906469396780045208978222493787736338178860784301970754021537697886462781415985544121256442748586765301094382044099692651432028043380569366156572586942691261537326100104402502936017869001392743302255752005852977346764656534616887640172470990844149888255466820482842047855566138619102875663027219896939376532860651837002690306633904355306998461623978970748136845000751586737245131837408315652778250856003918349432598341876450786218119661143311618245108036751085215791733368908262800741651873824624305426304032983927877802386054472822983859997958446247466012451523640683270424880603979485865122480225515962353394188989626411737958860740053260336758406255157167384674041596678548925626809220578033109933645671578539704390475583669238518473552191588614048482947705061078458928042833506310091967405563102135854261700913153573267182423241545229800156095547764324991733002410162782600769723245594492144047674164608968801941366804574025805240586942020104081640533963164923035377881452126191673931104367886870329103759005729555767045840848055940224087918130441085141346520404872168615867018115068601604652409102045564039222527489072436513828772914144254325519565773664462967617792544402975998509354548658240377260887941352199883959246158784719115875613111535302890484757326850683865077814938188713125021086906766522896305157432390666929320392153106909948006072305446648823896865610912996176012251658850056687706698518483926849288630646030284969008098210415321364368251145111922190715306316869679973730726329496791966237440454779171015931704754150560971000351344955511080271002168707756979136580427307932367105368269786501327159954027134417465933408398970302670367602921974430281693509433042542255504192061027617392780010135702968288213139619190189338966330892966966399797360853707883861604107664899969173569539873848969151748534622122456092103021058968754166974390789063916224670881937199535972865115910119675620948538224908278192608672181198974208563485523746054120823135260209719156279062153883797130194279965659681389273791327099795193171990695321104146532669848248704992187826402425528932658702879051868375757618659509810205878141499770816321918656329016292785305641323329890720721921571099699704368641861195347880763446863045567805394062108719069903528796306853154316534543675885889493624462273600426955876515422336968149709221280989948447028550344920868984820808741690705779114218556163001050522968165503651297905230360625596227395842695548037073730746728241452218314807219709131446989974305204884825128844492622419938752396358484636402612245161630894315786410918735323586840300064389488322409051599189991268493926104781258665408878162320831828581143630148942946734326027251144717812706416024491346715052126203170823078083775566246286392829091962330822913275857703910679945673030872317714960059348182683217919576654436747126073415196682568659788171341530777280809685822840002419924346515632050009478335081257739313752026129831731024567065370973323404703322068134956419839297321241981606229865392048571402928713733321710757478266846128012415207700848079355048472694255556827373770122850144046277461560176577641180206473088518956718219683645174832288745959120783621911766490904141323247878810430133824774705520726314192937092312302608156074330101855614160290835523513190542283950799961991938807122423097736212431782464327834229022239621201355159642865562408518685796299726971017284126731590363041769752754811378828670802169598673689414659882689716028449408819187666651230037219781002215233821514305804222432666092355959079391757196656250251074681177780966383403505742720731359368093767241605945391200895060949952662926275753742972174965319572547664427420862820035995891208011403190400283966625193166041247050421659276856118245939456370920405340180155707262221649024486630992552584563962458007334639130665070628865885967955707517661167863968225177823457827214421417149637636018787231413530420988807593634443072202202455402188467036767091246201845520352679578088783397630492249175315126133376937660591131076750711571589156724130879288520275499555732873389297506765798462011001043393406124078657298070077248421593638473998821193009016472191267521291070526372909868721247741427167894343967924334380912397770727798531471774390660510018995525067996008850989165264563321725090146355500149590142119220125879876581765075512642486592652127321349398937311315953750976352004937705722244922618284822332336110411871613278635388349927936123897321693677156273743096324968014566861846465065546330508434909712856247190436185243125263420660808287360317432362052738630868810061023277741344296125555530806240764511981768189495469915539479687149149473137701950496528293815609070548481948796629394815669477453393074481529464183299755801844098799235111496797503923755262065332941966844671142409376859976379717379989387337598342354698951341113183624694704955166177862280630194668307024914124999569439766199765170637018612873832922944226419515774265806079045286594778213793957513537870423171732951693574194352327292498807451421077724365475934471163871963010968325966741509384866721782784076816056633283207672369364684083072159718260395688240157303881589510416078490191282662892915565836141764582421867404702940266620325612247900001523425998106694844349522979126865790136804779091618959676825033133933013175709871103930215054159856139261292824127664636488888527055569413800220304276700955330010592858729090044494545479595953713634148591524011879015253498007130599765056052612979670400204831646609422935800251903335648043304920335376914165880713762241582493830685958138317065475205410743687030822077060587613486717071557879017160064506473330026171797946669698072630066802402518599847875510080110129989975270816785324082194856999693189005148888035759227977721902115767371547365986854073043552741635984692033287979188327102650743037133251178616670704344895843398438422780627382781313438681380947372834982090127701837734312738480266705897072835684332353392386329908662110196857510869307593998972672599762799693849126696665658319571062191105318346263623909956600639498563276111418639011284811574840881012526008529397361005476296044597900353628191302481560900482922305915802904663335170961345401925623234940493208277770659309233317741910248660068548866076090999129278208941526167462182947181213333598096202163322877938480837481082974606048820813769031173466172408412640477627913196995031280687952109293908320200373336554217276669475664522406101074591135021905626723292388766512484151191862148639277167243424116380671938517525497346902808633271507203484260954296922324562762606562338370194770560246283094633450865744624651077151410333220988700736357523074475016275902904559601150661060206770816926454160584197261199577684602748740599316937096940523262203543415395805649940110578856293812781648899548100924518993199798329519920126098196006854287655249806887679045093257335379652872991911077405198824949254405230485425509334461428604824472110194556414098741989449112155810664811425787783343312382953018700788708946296602877434864822283915099479016157387426082969555153233443250092442413254598768458377925427016915353788085538318404811634000313712683534332501069372068248433897327460265940195291932214296066202611956292040567036643924729019462490197180021767223880297626015069094708274692270880942968156753878074916042187447591303379678633873887386984170171735618944940647656274381699816072802998217599954221511127832169812441276863953562783584580460909094229519922707214880896968426182357228395713475199565875786285304839670804887997345497083569087042949481506315042067260613218814900887859869328727493710004087064559552087374224188224703035702914639165932624331774054757600646901208467153174946052805797189653857899281247148279740688966290684458083238450617426459638870830780508694973952102552331422762970634604891282350448967714331201379842420203559401953890392491314670701392020811027225483928400556923180845209094066788474262960618354906474680312427841028291935304873160879266534280600148712356417536764028247093617878612139104000191180428673284632616166096588999820731859306706415411414185623871819561305054931891731410387390811841433490402328335359242526916023823387093449496639347585486700665340246142800216821599492202227978601172012380259599360462297067324814969751376195848187015060498044572759828760652381216926091466465096868844504971300400381477247253558984373133807752724292004494450344819053212917872774938804384909406400210374979709389336412034596436210928907001554944230169877541560808008401034161808592191433823096682072857182226603634765087763980574313721733790422900596274301072087937065847643071670865268669635184115828928175150021678035639628252621158162739163471616046613146125782167823721709289024459393927833184359986672221132326378725829354373100927794278442895715118289152388250826714509663129673108105060026595388810353342825234271877499764781193489777743607205631994524202341682957481099003583532338101208200471527354486217457289740361951551777879258945152675799756712758625453440359096071363061401884352198151424765083618480415056046372178705838881807209665128139444829370291030559571022115003603747613386861652365511593046392928494628330154318727295856253738940232355410012704771455020721330298257820641389423365846920961729572000701987699775815798360706549959923941340020531932364229508686347478479291560749213108960052761971831333766598082562905213045868625764957545363014732402130926910801349114635121454885921041598948368518918939544237587760461957828284045968872382641519831752073975394783004346315335235190042351505120264043699862423594352805570861998539550701963276855244603738795803571979117818232579075896295588837076949679372482376301775719320856474534563232347870318805074148878020701737097160067144605478926043730655623205610208035039824954265716230608919885435490669853756441677201208662374456831827370275605481030870146586950711383425828900672486955457534863170360904683497173477529562164661075165401057341762570965389265748063941775925153817474961426995213601131750212618278735742361398830634033804261541273612349311047974947185783165231071185101375953032718228626107033880901006709840011648384005467493925274500943116867586433299343114895804126103390937101642677720394390056793749075054199726346907996792999306816837280623134450467682398956274138788914248332638842832805899818863343240191011721341098038988988936627263517693026264201661024792193542596286514986852812011912895925304532046492896018130863004028523555467692174346555250940631537426989982897895622959907812084558544803614858024612006655535429164812254879200064073720956331422208358203980005247953041232311902021315755822045143740491356473937826457058080436640275246802813195417291490388751233152309236405604583925666088233677582745644231444402341581645316103478020974488580701394755665656260318785389046639705569889468408804582520764537371569734611848617691677471569263666348941932408461330202617737172612410107826185624155128659905743795664597163350938194358942277578816621994691883107508022510052977275467349136407594786181817658789883012446230815487836621799290904547750830004410104138196985046327217160759981119359565469361889489868728830174212340009702131424479543995805822071415695655396004873888958991550573781899539580450858103315834013098551460770857501740721884587939288197443548189018274325454686349815112208477218876843889961942474997069643159836129992169743835336477213972263091343772635921133391853755161882761956765933823653156318636136963996858921221806485005750547350986331896666945072250962321426970149696218151097389858132461681964887764772387529980427227248684138741731723115727357735505815477503774215820407211873809408844608725433840899020147637977346951308801038063281307965690638931038336521743562266080375709320883506013124114124184811949786062934112636043186363675880186839639253876068218257239281732244219108050359283577480545009804493026220449542420487011593303829327149851558557331930586156197648737487046263960388641265053480076053197260445950847392830270252340860956885839603799363315523380885839725157927328530022359231671853902877984579368728910066670969707976912027462339409808634930945841580783114399906848416171752538416604929636562697075307379016717800653584327046131560479310308153242267887919563350971670619786650716598690480832290385998605625918791339910506814964677660509811578317087558953542369785047954065006457118730889151128922752529620884310466373230151453591694571601666284098310434527699427881129943528178443529124080633438217595710445537593441708450839930534882879807718232267653161787679842355362384709484994927167668432629456677950002646951319095831389243808687739448476575927391422522830837022816155121169415551586489739276458325823831373422998035632814050526563382376353376376376313191721161643620443858293107021560570684365370220579922061309792190545751079206877824643423254764964578430060223797456149706188813918284634096967912435767408132255598579850779900860529603237962477492994623080143328524693751488251954076010808691146605067807277410571277226159503110307620448960531544902475344646857749229550628604744303777432052886056174445968571253473569920835983356829466559819981206715785801926493920958232370760458447839321578954277461438287739808293566366110375430606213489752945836421942843465920683285033963748200339840428713677371190558061058064530065690316872772656255319937324733485829678723938911958662426093380560468997396310913640750704715069242249830803565001428692155338544367833151645056995383293656050896918745482548114001060244376351378890626505283041028320214538862053781710103073273573016079372289555647593325363944872701436531666282472250804121682389083464920438231667966680191173095576904163865301220544466018424566237566678588633573129835925753600607308444174201680201657757285059664009836127105637587584845440991727143380274904901219965244999825331260150074262397812858286593667458783838518534713418858930350148509545606330246194796121248250871152801809882503832222813672563554356843342089240549107677333435479697728712692311863895994135638206907335044603360140537553014385791719411790010157285144663705342779928256310227135206161974424692768361289471459502190657681536350867408135165706692262354243059399362747958130316586555395696825125252352965528382643512199200330380599982823454798508551453511701571895611230021253006700479517690831509639438265931757002595235117646269080923720357899907158853826759295807577376621126197729016895059491331566950330742564960708530644480043850326944603966856399299525586333168629253775451615851834133492690203918588157663920748179696468710738198027496496474628183548755990842143006670231074581630707037199165639682336417596243469515436020730170190941845783778465432105256164693178798478413839318176396013945590900758509693328821702993781143850508340283237759938672692308201229117678813930693743803529361564632862534963371837490434178834563721075958599132787633537287200769388124289483492188113541247778102544466321543766070319297129382120873654072102421871643223447329142972147066754743526564792812563895151659208453262113855034723408549944912828302020187040796041350483085687918096691477965637533043331935151379407804174019298721978498075446944157415067182176100860260266699405949414874500844463514393131133259579130564239687259477654616641507309261734104770117039272732263743671440199542315959056893864244968047857602248962418145500501760245768876377826604952489958705621177827390716605686441048866746509382721556530749521058127468519528306205695036333448093421148771026661414843137403710081611345475202446592874162720035259667843150236565383892731174344220026372799485464771975007311565079186506679105643163525011453892781207897437553822943790042714048838645812242849066497169380003385758073786784657206813036463538575188978155004447701585178458266200303286561229890940337576686062995751176066438392093168345181472531400892410977656535697387312469800736599319101929587987551647505518674794872349253662343386750310965054396683219260365766335899183733231686175456223749685955155169014639428667142186942528263481235703388924005239214253065441793482757331726093509958856044981274709708025068986241625184037641771306768499280977806518897242580104697711401989700594691396839942626760111111256869102642492212646157510174806457320665330761471222458839674561013393763029426163515629777710234834266397372399531843684461166661969992886937747559626108065731721808254952083214591713932546322181311256388621535720042989725208486677770161289082762131806968873883795110810762709244790036761656364068856154023053772660870857188989353417431739955944083511789249781869801870092872181296079402772776978757280142155056333494479110379420330886475956005622871592468852466250504816496590152555216125921677501911959257225985695926214925297659724620260023044149915422640626345598752588472151609592392945149884169113218924334290469996301358178357313499550719217769258195119106272115254766483577749557723456558607073738213887028371849432516200100182701287902808416094464572314067876800699118165138169757945539233618001267527524046067967413869832236657645002404905400605094171195806107807836719282014497352104744981297711566128858892186374940518093437823150334295888990195381225989973755650816223076942830750464640438925236242950185485551520470933031216586044293332871979516974339403749794656616186132436229576772996617626762296840654992403706264710796999146866624981051392263375968924291968260696211559292764876607100590737378225593008630389218547121824623127863258555189861548478898184618986458491627845203383345585761685893104524091616316034511651557254086301329022575973136839266682392681906670412810240730769924468828924297080452779033149180922551624117423004453666555582196832089483782577149279553899774202989037887127461294945442556677349600715417152932225014307616441952743925404938086081497571662412366848074343117427682454252924569826433063015215771893884973168369851264818504138998478549208600690160979211022679636740494661114204753766411718022112848969816890511699119008847768655729395691956212709162587108888550008621105212004044495584213547425270902433162162633921317477346712477147650930487581311080625181095460525189947016815507382090180435047789751099783702464545553541106233033796089920019025147174555313517840557692037672583552546584473380929085977171436624231557916911495936209794046479154195450848191807541069794203424372704205209527060649183556371213981345965914533336763292180883757335663209175118945110008541442657920691429048239187479005184378890018965228078178698937826557576440850955930029824686584742665985729422872188824134954252977472163612239248420753428059751517794625829758650632981236186389818384040062815999294956274093086587096203241985122406337308107262672571882320627719864940971121070684777655326597487422292480773899243838723573364208284467789496976300804049241801248669709661385246478462119233875848923867825704695061405169994940233217186252050714420994543379205368203590049253652444249149340558254499994922340960691684520048048531878699249091396053051692734434524607521642720838305840088082854443939624904112469912277861711501191898904666290131840878947452638676265064558483550168476130338276255666364279744869262057532669082357470375681078594494903115105319157557118514600546182391680001664990085666162935665800875925180153027753255533180539872473152614437888506268258582358359096121468246914587288080058388710888309206945341555659315056549285282233997526275696756691169932060109126359614737136709871431325205471797285533370347219958029900509409529070876346352516705803485379240356610668457406751282705091946335741498924932500474176035712911791859862759284000001464428761643310195521540922836563293779655690753967331507452389535495855083799798447541052743082130409992821778653280803566526486515274298571551048339459958847656735338708031009808127966087636849098607456691473005990281055623009854771667906855297754301589020808721354217491303755929632411534961494598562373948482409640866400452492437244858670325809813142377511354442330767053512969717016076070775090157142637013673351001065075558758390947712145278542621214398490591220118354804974306809773807392761976425256476648291723033709148170427942025842649840571338066717065009840910653642638734535965086497961505540674120730280193250321034474378477749257408515044613323428900307832705768121140266329645289475212062641097117115664176194723379054179891117964731734054377850845825906494847709420372118348432284515767051543999078728451112420511326789731230970434794697013827318620162259983191233143781481521810543344435402440938841094988175726597389875596903359392074685089525805815029788920951526664481978156380905411561661940059869763779337225849827402270842483066540664815014452231538100637487502947877115771299623874269537819393561176749952013909216641310246448661698367223774654007480391312434900588101306328096879926363678278982499087581974554557775388524690424066729937428852059878721174222193107514336462319696180491059986469828118184522470826798856371031520458391001264541714523337277965362793834077632784671695021421541801201514209391963367855683730835368709507065050739506211048729356417160011706555547719538613492868118058859461779258556850658716973422226481031974394027258071235139706535435606965782560034813669940051438547303656161949089928022854503335795579397696482441040636734891797054891973314878207153761222901994991167799808973162593160285624213168053126047291256144512236701743612499313431992094431759457221084869144746625574493883366990266145171840360120781442747239090956903448902348154184412161760381240840736001436212583851333145029435450478943373585828810256643980745319006421583155123927229585940777765069369670970959651729622439695196556553921416351454020832098816462482339671290357520547352055621351785315824272554537486486338224049957675455396226868887145016651041101941205604815433434816371582863959037765470714853687522503155567397786878268516841324066937731285814255831233783043957546110703036794574734911051293192256242556786344894500307599577047421615455117585474295984068246280189579351371525943601127943565007497595615914977367936935905886581442899824330969011931786978874656040452721562825526160354334808888850878761120328023835434116445517783909119584610582663610279768694209398122722166649004026768433201957633049439460136595718608543833303353186844401708888898263188017090960730970964971213331189345287407340997321695678224686001226997986428800541112212413687854891662160351482452107566129479732390722269195382600495538194522854416450134458556299531146007288392730001169250915505401863107916141807884190478496728744347550416442087423943220847851020287013081787290047259846959159316994255527496464471500520913894401901401400319022276806003511564532604670478271837302303024660145375901425327921486739569804646400315339196918779125135337093957595721627684868947597683388886245545637311319581433922692948463525358054202065931387315884110038471479212719358118290912006325759849552822485940423351528806919466323612230656363926968460707213663919425595779528059644071051287886228810481044541740394591392583307864563660277866151574128327413967948232962675783134050213554025560179546201041215472932045359329172166192254340544892437390970923487620707225112194760365334306843459639086584520016307108598161563121084272347971556434111794712361766487248973167014576849215581407931323961960369822789675707841731785991384670572012869136800450080771438872392490907353680639797657024854296346109670981893524517593082416095774301695007873744544793185535938598747575555311513925703811617945347964207404069629473883797060127254530520892968321103771427730395510454993405392418052421910919986906766222377857597126225041273861073646842022141619074034226756369159385421589105961936221659203152399877053040946831125669111106326371895133177988989708376946602941383692125189776266429309322145053161696036975034148208306251109606247813490248643946962698517383481797317910220085117329855823746796435949206945111791391402209239288966182690852035117449013844781958216084038772030038007314685982894420013731122791804124327334712211008893768974823529298213741444644128728448565172218234500094100769948651478104015828520170500758638268771639952403828756603138593765315303028588997875966048383548573696089223285871884966727702456945121171696041935200194050819436117049326779271611805921494752427999556726643460473032301564877925559417889884177584405792345556922256927174855110592920178375640704158948777213135025043947172949300854036931531301134816105601316191010175555592989397573647534674099711536170952764450521787744166408055689772132966822157612200632807406069752757119467268754890187899378854538717886078992599613844515266071718260959516029732497520134305272137445636550535957104496643557464404539702878072685333953404691448673503637145444636530717632834707435398109626315308167551440770221899276510507231789074548896565971901226271104165220378784356044281613608530131014958823252052475305271991834018364811272289895286083018553210825099473086614271061840113334406816504597216975264374723640362340619465057863354826204134925443990666177230915228883997981606164908239462178381453485417201299346321191449513233267685939254587015123663072788834693239564790994668915038506633986327674786724256654851481705424988674230644462109858297170201637420452285057773088768272588883241339311382852071930883538205378684529038497676968431488649701315905115389918882744621991077622937150424120305572687747683520397593053510034802569499897404740375303140747014361812326172665048695162620317668477905923966792054760467975027666815970558524318091358845505847844334941031143987801311949115550698582867438726705142473791105864778264322207359195235735204816605215320203134538556644788731284018519998497477318485258384215158407470490997988853504897138445183212352378090843297685134409478527378796831191069490907434492833703458295716560948489895915391312904615082412314413457023289922748451699461897318941095770992954576631332308941129631920105825759649972769928728193680564772392552990374034320152124636435096363073372495528179369280999478339859788139962795645257668987444086556626100864615080641640501531687676086516904384633999374427520073420147906806270879557167413964203202309083843849644546891849859446928170390244120525251167579767116492743716109515112350885842564531943930320444508992074205297391166478535642534560027963397902686217838540287069999254398211663440697182424121395219517161747345463277541157876097479709391604271693810851799296179128876604863903924254251517486527492627543226025127507324197763041324403879560040252496821898788399897971214646510997494278333586451404274068109647356072183398483947396040978624720120301219771942040525361180194728566624209210043557271276105960812691137753467389921292074412057457724805594489744587028016881212534665681801875553179178508001410348502056601117752049314910812866659508234805914888555430439637395007257982053617818215614473641740403641193576261042429315450646879950418543663375551284917620646207466211760499658954301524695167913867923583301611638833121439958235219392457189578350400044672206752425121905934071871799121259654295472436329343145791085486933332923073563550618911937233806824718609758025733919522893407585411166225333167839954230095920072561285223867956556983177678703282343557290949482175214681483022733970089351807076294184273813487327862782433926536955738945249187433642437822281078187625656849861953268846849531007629471761251858827939158657475787583668215873775775132020784739825930620632799950843111900987508471316926979067454167091993349236164872240758846855893482534734404613532273437414465878620690061201326374932859019659502668205013862832276398881723261711831352125803446509440647063988238906091803554075886303293254417360065580571103200776424621027135407640213921804130482149909844705659738914102574859172115180746495171799957066182492624138468163910998758156638832318165489467169759933908328904033730922251159822366728777453270425083517887406758294619665104924243324556121830526537583353494530994466100828969530293346144934528223390733360250041154507692242094967539962986405423586939471375247748010027579775887593910589425664203496353689064959764043183155638678596919650984098137228798542797195913225343525912043997286693234230103121175230176916742996122360649693163344871094620739198084279784198178219918651754830231809807495956776202875841325143145914592370172910882739240927347749284635746228733791342195445304749355780166888145414879828041445155231998615649989631869105262983170928417724735272403575003933296185929120514309255715912784701781621301907455538763100566855444435169359629557507054961118296624146522569991730096873719794182752578294908825938085485039433397200184651108516103468997160635847873345366627524056641357410811987205991639167802041129676191795271699755642779045858653511611476060740819019039628192848086761650941285356698182313997796329098612687886942500785005505457726668676158588894529135902946247669848700937648363460286720360532365171983501979490170335641244494877840288470057433705682287107560412720792912826347083625468977150498070145701048126738521628644551928279984184344904478443752967380616759062749901436629804067766312049908027417748170000448382842269471539149335425373888939637534141175957047936908141732940799812105812193440786534558963032873354031768935429634488265194228596470167864946730419512177720487248992668678847693468968520151999327257161294122875269098058295455726364318729661753924261662539636237413128858773312982395595264403293410979699424346384796541327565856024861364684046974132509909133318874734631372955911192741721137166202415742967664666019598661325930090524603439941486904620209116393128721537112732710279229563743001295847446718661859296155059244783398635537667763640565203213618959191259305759881949541533694243689576013338526858074914015205277817427811873387254407706531184546871589055326517540579635084484292574790488316951822804630897211160201754829066625705407167065142827392998782537054901509064828512017273247892787991263246069779299578310083343592273950538261722000199011296575074723336818246673837351342676364008929280005614026785271404395056827052628313232787414877091318430381288123816748008609748844906148216086754289354645153032497596136640712904758990505838522358779384788855123883019719536187091538212437746489152028435668402911532463295923995425633970310112125898025691725505884117219914430422964439814182331736448408366109507138765372257052372633646547790362279186124782262212835728764214241711449447620507291592274518452108117095803483017448523326672925023200368200319538490042455515710796706167471328073755922822991059036319870456006517732463354304215121028279285829919915623530063183780388974747489977072955897904069534341716866964582734096357522848702098527257350709336206652459772060677288387610297543810848818516105138863663247814407284881318902822140893537119074831186849476204452756190401965871703173830218619140177674747437686493140166153743072495331943260900702276749987006514861218659415375814450676247741257650717505059592756367674870618343206755135081279468151297152799947972118765935550275788116368319645173036193551100170265437666937388188667462167626571002540804935344542342986227311148319087693811794012267881259738484047839849132834527739353432192454258408074978841019456170108205707657878333766874505390881819750175204503989315228621517611218380162510894073021522567485234679862120870745875347073709055581484173205217717755442906396948574059524250862166434689032125434602229324229661553894267135899244367398020610329667749267477395257955921366864582721523061743679298777138496322788923374155404101097672932030167278308328373495426960970285582797635821637715902612013740673403978787019595059440318224922298356525990247224437987936606175439836292569620254037436325051908575417950043303352956750229246698336979393998898995029159637462611792338842791634806946690288529347762322539229743660719392979028663788828085139611009222061658429300547069900380869278240141475835048138073966416268518472047842544444736755837607872595953396496152401809366449810755554119720218501845569116607256317854934179707917888710799964209690444719981413772418149095496247623111851798273203131668419891483710559341704629401671280088660023285529237213710511749926200681930990013079488195137227666836527755469300072531257671940323315604663191594165889347381111972850449566149177160870143521111088952959998265341920616489206983834710710132021871399297153452116488446090647917006061711591975914216656602994022879282337472731998768660238040661039342903760088598750006493943438427522423856449728343768392415922803404370810597930935529020457112078123236616063732172008345760553499043009531394888149295925040051406076610614109861945896468840947903090326753336447452084400640066826805385426563749670665245552615935590400728622649919168795468542282748096483085662546098368170746121489582232597013631425082237178885505768203098456589882380199972162382281584915386175174273890664991026304560139822088212234690422239451679402430517834327031982607086570370576510254921050169395673136271989037541534827099522758037755307948569237210537973988406484895235549384119948183582067886333813494914980081135430686760642791477204375630680702514330929027855214582824457617449217235199699932607223059919322975414542625591387831801296031315898121665111570704970065798187253113991133197403127861935706173952525992987153077995230210113694156205239809785088518668809080225624713026768526539794287013669126043072609895014340941905374298188706693456617817494693508744329781261811419622953047232724562317700089307768100798776118250691304869074569238709847217839850944786007939916776444082775111195025060669995877107366018609566211947768254374658810927718179520637814574285315400493422702031108929802708493636039210614054600603359050463199211239313905710760119454095051310382547971505953872185728327941954374240705744243481215562091188683366706240144142285910934120500940058145895833690512798705179858758895979901636698782157378873132735183189117532230966287375133854589060878293604150106368300942434627553346316583401820316918868007031461014709693111140590296689082362438857103681842922646590363533495646796053529993519263952048742195734980921839307796286622035789403333101465650644673719510061744998029315029736810585561332594370389146642668574713301069590541155095563653690850294544480401472405630817275939525736014774324631728047170646046832166065530367685796820736727847179558699755233449213512933111521051826206849040028970074562547962654319572517952625896076957898734521682874361981892891177101775881146997716808499431592219125100214067157022436941890169778040113360424613966895449240217006235814335631294964657940776337385508571399760286142561536560137852812314532636072505531109858203327289891612732359687012431178170915966517506710255834086423218821922109374927465246444820867460733852990997440439900434408829860303710627042459070315221251228845784532440611090556080422943564868078620647197476324657719903457199604130394279432421832130862968251812514140846756923983209974901524274502428917485476489740921760044013983807595635426903387443560563774355228557015497931099538724944066538858445600950357246751115907181735975893688575843561078842970175572661292012485246120584848326058346717431042661916081502816660145041401713610109102937712156393134314114979017442642207101983989304350505548610054598715546895086670047066616550472176780519107711553331160579668594382877335260269074909495403310288657470090416566198236261581117802071739133407427195650454312105660257894262775503939872899524008296110857727056164934609012733574248852393429341414946613255724978797363408623829154777576075769771973386112739963328257262344355878440723664231800095749294160487957896258765301306431019348764762070665870976005687023206859114172427630821277064153209059154891588127464369712918056010351783905151950975934179927604571471328666452644259875563018935321778236869907418215324179435129834729991627825770490912945365745519682635646832043452204551834109965304948302622900637660823685590362761461787543754436572681623316514822545723883428766665570328084908772897374528410778344555755640255730767875041554638821255854798191152550184469471200261983816902554222884630351317952173064130351870322479154439925352377459757632757238696511783960514911833824278444555416238513632309651432325939310021928524139940369516673018455581100474509544578259707861841556483707203860899653823466654306156925734183065214123614000273901592538360667724850949080158421333846470185674998959908768059286298881856115775777761356703059857193761430713494415651830191445777779931999824169505515725862353177055258758915841389947722927093716484536041795014633364363214203372210028283516537270004644209578301862418680633396398132364792062086219347043192759695293482785914104668707663260213385511860213693966669931668978098202518956276701425194385722958960062595572503763285324106756275638669162726373976027481701435437468910174829128531474421548410306191691454551777423540727673460307568752217050341415581438890256415787187412022531215091487023585718378974571905528524207564749634764559656021964179860243080582017187664970270856991799583959141642067081441173682881706990303313533130211588815835279951339883709580809747566235966731964283831236559638597488957890708862689015207346801829765487431457758246894298366067217621384595463899497928089240774952136028224406033623131913650430780557495856523340687143463935482102312722023780076576185277569424808731679745133950516006950705769930131346423817885983610458254828659965858847452816536720123823524978061288391326571891601619245142095792404806570479656223116591119248121426371925549637560825103748646395872191805216766775225510933958219556712951992189884599873201306217260929970201790401063921205651872442394611372965455526324705051519715122073377955427823553216927085371766320974426746422452283348589460689391888730682869430103838455524047204392424029426403753111906363855055630402619271697021619260402908314772136523508454447620747355725146096298828116721979699191733736595705951421682719250949815593344303815695199528805100367422701758242871909078233306599437160159913729879152418972052450215521329168662627011942963398377173108654823040540750559275450541601838305121409499901845478741521224660110737638912048404691390209746711569645891140746689648975136047337771935305151596929754434060615167909961278531231229343355363018818695191484505438798602176648294690084304821120137188929485412827699837580557310330287665591214483868465587543195104157266228529467811510927042030317164522118526472649780071530737584440011128521137839752291913667356929665064890403784364063540576575064401952449472365248717974731807834209069920771420299813111275575248382365628075334410127689523731510384661020121784943458146702444696984410359417064078598087454265740600945399022377682426441053989155437391513135952778080790262213516078227859983285845364863071710410684784579888688484882255535285911491110861867456744896785704664655476068814644226608423132388979872654786475160267354058796582161648274739270215571740723706223574914126012833902651232326350255004500404228567564758816500843046396245582421684976270564146124928972665760574488441264209125304248715260151475225865634230740673105431290133175908311390651732086879814358445854172641167067564646766183386583671909728376300988030541474034044915899747475402678101140080126515517564417665116582063255221655530470123441884699759506590196682362215619491943799624812044378750406811646536903149055878588143679916808372510399320974868231256986083996496046044929657587176975525439699695343047137748898351923606812629367921619232472298901430995734149836995083517163235188892651797652552201198203374181899799783958063917786317834721713645789521673434106065905903660500821613845353890184294632210661803818310229983891787690062673195550581763173349579996462034707206625164395884506591117649949104519285688287978798101140189669964403177139600555105238982563389660568858456899302041228281222321508198470785055104877086005534640282287880544158609604083138346504577269333796773888951468987957687367723345703319135994439733449671527782201605281339306849635938962548823085916379136099328446597361035872179356796512068068639568634981883176036652921841819270506599236971989028853182145940695369277120971117151397106714220167274706514948537918106863374312275686418000519623048189237494357506432902067736292433241327861182784122580296424867957398087015629414751592591319689563325695464564848629261676677473667753789792542489964648098003477560708738991086717663532515189934110656951955226958576389894834103361214412910241024099704683315694983379039695392331570138214223306645503179589278907109316754958032229592721068573632385393339973454663059261028199808941233471565651746616117450820142402632275782814204198539621927990027002572414331202241490573306231460954177793775482600710593786014188805425345620738137834287557955320396007153190603794301787112450254441765901671621713441904085815330822601391693415211824015892782062862995791594899438249077014861071852621015897610487843990145102314289793386928636866808389373540729579097088720580375998354274254176147024655918198918199697230798981551372460802636790699890227482020914951583215815801118605412695660712563184242492834944035599673195212097915764452923679284779480619700644763027914658386365354478219145750659801375549232207542675376508513298780995067554472491539694188635613938800688137088518609963004652108850255883920705605255899488573139094169547483851353965085782222708531759522239814506690283325069460447797897453000427408631946785403355990964518949345659529514809194379847679455701230134228260573265563148897255248906275996900004266280785082736516140440079601101559212562726750158106812668877327302558535830044520469759529424056862023244385388318589720952139139732082874218623691819684303368994997436409701416286057229061760262835353203587976036928870579537460621149518756869916368196372925862999056299001165277371593520791486368753262963805014832906858265948862597846459095142701653871022570473530523154414169896643187725917331845755607721793225410188758504251907424972268548557976648288926934238810191830163492824403749577237181821473389507152656343893711085925382587184045797269644014031707332666404909876899094168783238633227274357766808467164664401407671399309754079997239179798917261630814535425555359914928011234271558040161271379513378452312144708717313889497215858382445874442929928517826313977412656173358465495347565088476216153661446647628865470179584557886017590471924015063436743973974146614093985929035761815444999558775438741434470398466240185389466824818604947292123767532412678230960982450733945454405033114235340690685953391216562204679806286920652916850421851058481119692059787954901385880476139326946961244124633719830522537601914439272227168185395236923301970237865367246102679017526074218929491985667501499479367001307473509647928929399831783111133136760901744132525211690515900523249680561549573990911260507271312047734792392909369616891332387864835968119844812973297503014354302750669914947195499896443453337943146321933697381167914842838064596627202186500225737687838058820044531183633283464592074369135001960217527637818802787767308185258870072404201800518038132032976959474529909975102272666126040417420071798328324142608632300616369569060931296775079447211715359938541149789676568475971011362126104151194502443569140678081726066780542733532337401080270983780390179926593178246409516485618181672025076309949490109569229245742854348185287947474704241909678341710895716356268693464458721507858427231431403379054149022597092128368595512372598668015396455515245206384496774352970505009376217812514710479144357985563961586392682406500965861296274837496164114973756975655370359221453778306065424079404915650367751398914252573940925126703923605080845114346342820822102387596296512574292016794351137003206918744633726885959264683015605395365311090703195856491268254588864810962477021718583131491657780267888016037652310816805080068402394099761637908982638940846225695706855106039411326251486609423734703875423900339323077605819309272822615812923024762370135819186698927459721188996632024158520775705167798103166051098710882062333573120232598313890074012764911496512893572929737414354458031482564362419982207670118693724689381223766339414010930863661001405584371817965371655658064320896897867222100548117381966875136943871616675474247257012336451956833988080948492610359312732537464743473903562343124703267075016985790842791261864648080883525337857596833268820393611292166944675162315961752357803727537293696355200008725246607422782042752407786481507241712352531058602859304408016628565932435992049873024681524671987619258142117030447776035905157138688416477821754068170943102971411659494905017542678920456377923878979501226706070720612468931872884221939332381134138939824554943948307792923436090721789291779151197075334114635461077938862829256720936194749007390239713227738923779370297214289591320597868706999814047060643296452778489527463618121838073209676266308216333594414426827471119927448667530175847362461506706215314953664430413442329309199156516054884371993770058085569805044920943628405520899140870550135783884592365161269212197504557608240648809785349157153091842324851632191096497479583989949372248833458499971848273274827584218196026500043464457475738561900213321736582848419791145446496688804912095947931764198932743876801818014527201738580515960357118922215935255961977219277830624729452405265195655705224002501042591613437930045470159956438169421020692490584219870157954761704941207819521925491370567489004750869697649979148580240967412431105125443773974212439137438664260094314062537121027753869777779363363536091726124079565428285227798454056381680325945522497548012558888973396587627292467717744012251799646224701646755312063614573855852467566886782565900974283817473226389098512672668818297111894189134869448177973102149336197020473091566549921154026538934546608633435721405616515837193269337669590000405284613032365072098646874784841843274922760547220214962447675163424366263815821851469564780209726346674157244886274088715935584380165207279179703521179148582196906689962850090385022152418390241733980038719856773739150652814821178916105148443818790290803996150591646502083331231153905960304349974072306114473473766329405790690439683459982941525083589403575858776631207770991492127544725527455493335263545241137874505970854366022630359756827739594317180287738780299514890992020973417710995103067127038105786437436241579512120745520955211965674513837322776374470347760774188364197569095706475206132471680011514485299228741291528182039804720122470594884535950793469363266842584319400825895842109889366491963600355822284076426078433590869130561984412811725273234231539215330392415640384667074324172470979129842124976688947379065003493229848505417991854759915080059390503162160111785749093302146842290079218994213978723302021426515499507285005010525450738858862429919774666179052986446260773409495150133697976573959874730731132246410548305310652480774578350242134476137539729654418444487002362363737430502878105301918012336059441390899497545341471435990676200288322452696994635980779879163643299458773897789450928233097753459659702696524986692743934975042509072788889460182552644666013854514706938052902552047437642236164473759188314781456690148339045968061368267968185496586772360421526382608985680539032114641440057035659230519555574202899712373224119016816685153337418612987958044597704343508351967599263188833351708234990092762058447497800750034798147449834116194973881204120369562121638555604727595994706936010097432536307751913050337241722783890909756630273625074295743814222814748408995829670995992509575732847971698016941853249827999314034534062103584606738975211669064816822620037125614816996776192418491654296164692056363389803143225509517414018086362614877751183379574180491105378716700808170228570472813992811726542717911451463508002931130436988362178872390339271066698018262258209374946938031605707351992101895078992832974959247914059348535434232785595988530929525413839500041665380569333621269770910561724169871045721573630265940580910769271391375317020789776281811327500765961423581274220480691500436543235659450476143551676016738953153705005840112587059218582006084491531069819667069360992184522446203603222442322876219173676258789985669106989285811711174031005035909687422467194598050397955159068098278068575231697227042587156381925381576148679557284183904188310673244552744273745201094620793999751484864801957196543552584646033628280866419381633338639481128314787308337103503041216634016167660321244572170256701386043195260996307388453151779210276802507691229683034420005506528594825544013981285482448001402021898618299714802473589431791060031360244683419971171736116917403254524708319672859628810499876583556073060166127746545849825857265133204915445332324825695724181182773514912025388274327781799896298373929878767141116196573637556131922144169416674391271886056071064533766895457240609944966699158407742175219318401089478024089544327318132163423903074707961238094650081869646808491185581742831775204322792555142921035843745008355977724336160066580633107249202915384907087729173448163734817725313887852685008829276794394990571899583084705948565040578751727438766322245171829902453512741121535693294319039911491004852937008298801808882338904645522452726341477371594393169735124578923851023691018303943489013970782851843597677778049845351010817586285788162393806769954848035635731222445122948078570611443394220976183723558246905509165974811374531150285223133075127208076125283659229205834412612696118276149814806700827254269461839023123170052656528874288785771990555706479321063954895400931088358825007506815513700171995886595408658369609971906074172398266336401148044353749113015687045166009365933226908675184422640370739695784752187631093071183903915878627017708606214322394712260002896234262756263956690293318773112550151192190293705657806206241846794096007734590398572820958475571769106375993291019656731048582085386296317580836466773677211386908775058839365369531117942430988059112475622166142827452483660411072395911472584610231602946245716487435537568059802887985921206652940491929128132325690121298696619135304450054900889673145046307450289909501501887288998016352539739802444689337462452634908718222939953815310997346136914547392557339056921534116895216529054156407547261988948051473573798475077052634651305821035618701959971604779396198559976016464097490288113174473352972626898849067031389329102214146623725265697073264643142614237536134732490090303369630922830586007592544551120996962965237507798430313032968617393105357348733781052283499722922908615417079918067715836005254247728751341819410227345102170416130869716106132103161581766406657676687677182617857871294926665060568523191016623538895821666253213832690990568123113136270904726377311477131962148264289287565305211400142749517268769597941548248131186200067396416448109499928032241320830809609316097018720050322527298207735778846432128766877094637993221083250702173335514147995766450905874993214480676757220494528166404390855467556376795268256951045477793814334313846697798998746024229125519290854925528179078665186895615072744622348784144434361905469855506512441754720980506728021414126699930070953849502412790951301712724444156330759023978746438471774990503766418721188494600403072873034835343334386898455796101270885764055720912395525595608014482054180327672068796001510580687525210143580269702929330425309808954645848792787597199820370519306256532654946299583786094443459157054867248560174983812266584160849053117143974228618626296377256444879406524282862236737378133427192800324958444155448089237683414022350874001283927122795407945683355032113013243581149427668157670537529864661807689119263683921883110373255787926643485066120714656464788009822640992435193439951925327283714767932706396097951577344488566788509483286458748506490308991402436767050734939543169529670190763864647573537498276271499648129700850941215278192152151512928784704276790243988741468018035597108411529160633255513544941402365887407828447635150226601538303453903866383608961315854164848255324456946561629273892435830319277154237637795661273548277870279813620988024450043050124593924322258549144354430161899398788524522453598050618831138129062549310089076599763222630602947028684257408690140347898657492151466973205375461630971695806437422797312810362055893599095670070616272421433323947307719656606311480280249683511306556384691294966461028218606488045544927360696626046762372601402093570523284748398915613924008562089287485014224394174412033198106563042984133482021502780390734824805888620425298253575503023512366287551086911785870962280898352364905658875454610046677906498884166544361002050822275064028408260989914770547024198422666054759529619310938081672573897636236002432991316488913227288870321815594731081226814032796637262175968655247984386891285897603684546193576642441537282482996780883983852583826544639813437590616406009965072024058068220392263121769579175453439136140334379631384199971925218908384327172199945781303554485805720904305535176835011449312000385603411101181231122507719549621456438718163068502735868403649554053541198238540895483295244744812553881120166371862666489963923924787561890373899614747073546295964049631073687544537455043367095452737835550553785596792449931653932653349232929529879463385201881986031708737623685386746487202108903090907174257467329009955758220413594590504111577369493646052519589956040633925497741910573084339471737657709075093789745936572959922999099051479205010604110279008516956908864419145634510879439419558314352453889127563374065954809097069027295236502005555340769907756163343643468897626471111273533128883445505255273863321300181087987293593992523157470293064337351022548085857984104943729679466877318653122905686939909278863553801371670384392469187034351420335489884105690391437057687743807616155705751019449754573828568928239223375573849755423534051832476473470062190407204673754914482849235121148370674295972839089904652717874356216426970461916946016369919871087590327322828157985028130182456020650407732744498284186950148768532982067863285101618110930145104122191462429712289345259460173811930053171074247885705333851925711627904312609263491721233185184605336629009021795890125589280263564210799848943430565718552951977545867388580250029433659484235044073685170651114379004400252782233201173153508240323924151450169936177423372375850000688521651026283697364621229023220407470531846691815328560764646048582879218622398183855691431479489439938951698418098189776122752596180664034832969873966660320199139434423516450654634292878457970657924867746981089776932317547276027673962253575954948357978495799603942071519015664453573823283209825858340389999615772256224449992926476321240095478586169036958851522026077181065267647274246303805952872058655880578163299698071865041161873641549088706775282877358944333076127556627014387100438186653575522738894118802601484698269617795744497300394835686509331417253306931520852017949966310530068172089140438384157490694496021914210214743121726021893843345322558047699963581982851948557616409531215374082859859610686461027119992932032027192596571718369034371308697005330023217482180167044006292757307972396406557650297651321193230226917568384101495797596940640397023561296309527641203231573745555940514954933345089237898607423395917191630274801064908518969401148447878062740464990647947682344449893059648785702712291356266799105231221363872499431599828294950371968924170850515976126971618807574854790793738174497524337561945147928673936981309509543130680411263403451303387907756708623701657652443678234760207802022556462728119574977043834244402298615430752287554163139828094384892655629432299636915985457654019461953114380595952443149231472765613441424444183095219965416127483895990501763771130177221196296452474124348412658063873413999260911368842577156327275195503121608519040013180201316179359341442068031029091617017404249008782079496278083160742705257006161982280987503313956935432602029895852653994129302279571428021189534763896590908535781118281191555622813381987453054325166843617715373231702839392583057391413242754280793579448737157548357114916724127101337035565467108408954166749587902400405883994643970279479608810474500591585613415596602500663504777964713014228684433441276816513468939413336977488885202778179493256155664332637228105570699282130625436383750257462684056314955609895853115754564688639197122015179621567353844014982794650501149487228248097538342899400610600209346683011583766490223563103793505148847129813133061863016020659982808394698974341716944599144209326840760419175246754470969241205823336417333299788939241983948229885657912605385965758949665262076445544763766894477959890248068623799795730726955888354402124753673150639417393319989269564484703697326398665518440345787752997786734264152809948103157281254375936958665648987821973566738294658567292281056842087973572123070976004058088189259666672301362700952814823251441125878862182503303322955779320629958275673319534161846876006725502828337066853639631590953841684289580973026270468908137062505468836948380678856413276983504768350352338358498490957901805311538224626220058093980170791961732958757333170059657334543369421044401871797460152829788166464554532682836194196974518110594960860159847765107478755315339060083771399026881291576748725580344551827109137284822544730592515591650475578747486658900948440711138596564321851077630747396964448128542747820577438085327239493819892399697144523199239133462768108716694676648487718822655768086796356656899292071921576599974970650151670670789938352641342811054993769558182414660593806984739766541583583141565178247647969634283665312410273466974889567496063918359371074798872952467934651688375920778503932242531307611058456528185172355562005180554147438789523483465603696875364446951197423019460868874480621649937788258023948905149387161832472944654016545382567292078115845914153815801876563358372628144772318228033372233910417787433049734389580219063819051340379381607363605548373083783099609899463076350320744803365842903032479022561573744971312878100763611758656617807080392632278756082362698255934217103454976594761147571874736400953807448464440810500537231015685476546129418051827691972045986205208529840239651958360949935371475124194384325028360669082593714407723200419475246540887588427311418142470115158868703254538079221396005092647074909712759246796095249242766784586127740541331060059253076489517245971631661668538851546894401427384344951174107580595080981327838550089359695780606815730519661182536136155949201681268505155876163251360352836986799768584851336404827566708815941769542750448561946094009160581535578749829992194035192644625274135453862195334753486535200233613293813231110608222420535337100598985059878152570898541762587171562556791191294232226223110289172282639423225294353877413343562566133415131065842445308428926063503227734425163748656914878546466518023154138084164750345959110990196182847748463922262052625872040587211761630641971262075787606417377155595952867309508680527673232255636173975033954784228418176036611951736255311239698402056816295370725295929970718958285036647787873075933802912849266012904119371113199735645129041903429098411184277002460827662029944881409676264824222498343142759972274208754783187016369997790240052744445905660506694783230262533794076704961972440789513034257839657462142631246144930500473106309830279681866879125497874823798155974906763729729861975196480141474013754405179365768728679141975978918187932272003150629034072237831243510879390041840478589502653305990282616617156513413330855150959348238650906965889648734989862230788865695775447505942226286219842661351984632033746889605064590466008579508279709749248140832122992580875347802315335872417467720086773341983272747684082663786811274127552013984969392538153482910661484816487558699705843838090657534434267818561679452154375473965807802338237437701768881008725635143364734958414234563606927766143815748282210801241595337259265785602743264683042019205251696052285397947102556444534536709536253196948433011620757542273962318263807174791247441054842833886232539101787823678723084627024198576797690462823274262989435603154173354302518734325744831656532729534725870140763492486147895314688298598027071857702347251522162744903975943333084628078490374081299181612980958955102995726823931863136261214200471197473077709050174079005596756977322017436556170095025682735091005578866870917002232456144145072526834080104719199526058196989805581264409242767023049425571528284056189893781111915830148088562455292926889233305654642788010195171922420370118651239364606534332067535067033759154516255058110946003319196624743213320283017429710302215276316489374930431347279399826933904609884741933849282396040848290612451607819453680105737158159721628869945604402790130617867580575251192688265709386000817152781996211235454791264574017249685059778751146971397056779397817921078001577966436381180030799926902709956768556249598480778432701362712032219005770540152834003926667037016858160477612791380815388376351737837059902273504030529625785283377850287866679588378975620129197305607489703201596622631169404467494122939095429207115866970364052082360545135797724986941888702550659974224518280173952246192836872649971371452052093348845570315005330832992097167631443769980968847489349545358537476763935215136219494955761361897638587490263665838568014771989841264386789931312477256611537949713115760393335056332209891998679087550186914347016386623943427711239343251143997925975470484071501667341769930568432240183647625413475754837059269994768304472130555821215224696071289197115875779524606485376131640171931681710348631658835481549299215053094985999385127023130775799102565257161644990267469615904602753387330882067941208519838626211547724747404580463421802638376279648231872416653772893379792247063064345242840287513131167197091785758180713441333707414090663659246503618774069146926454336651139983771260037138022784461039690010510187621581455646215755309218938681518750855020278152859758674289479272841997726766960304207300052430560155803280639210132958992165412733774422914074404585026010813749669039823135747984004927976674558626765351847813745003991109732354435660923684815862327984516836856344721446758899146396517985250432792199915057648580813046591468930620158668363956228993476728712926923578213034809036270450486810536985573942630687847394650235254942907503656626814818586606419029127661027246447624048174142212448781497136205286240471951277334301952938281307341761854165904222593428534721750116790334471908810593340057917332309188128719435443574157937157948069394111427107154495977208946924633192979918823019960225316633468872139707689182473885738464794581175455351147418553247344031471127103460471103055243118813442837207512049476873242386596259862757563344058460388856846201940271518034529298932166733561441552009339640308448311867867868851599473439538174530180227378008751443215757077537390333436401050920101510924204162426263760252751449980395066611282501003214809186886656817498513925097454293700482396095505427181672205643329472388975147488996921871167517655185404305845898882525049476958606062101788171126489602516150911014668036872694440996060510275702166844867528897539491368537397469877208722353524422037345994371949068788740592211173803303110553631742312880063751591109720589637963253740974664907539619489127142952130658381805604469020670614627552252811253241504363507303646456169591454772412032888994898906803377155585985208504075520117660581372484376673659640058869834277787425584793991892554138304914761067599526170574445003037022027586645034885771061152463580472235390595458259433626768855262370658953809240737984839017014405200460342877772334601291957831372858652377213723812546803201979551765377817095653423814142230217387405366277027704101118722527386379308385441752696755183296715259068177244799179263211523435682294750640674929025054955087755087896637408968610421216067856888154572172987488922110479077319093041635234234542181977265281907146852735989062644514726270788307599484713890487711687256968625997852537317422803953707384169514685283248152878017672759249992214814541293262772703116353031760195753303425296754169246218030275191181370238816965315482618976536490847166296883414929309706732197575609866841366453326958563011593433579136524154896495854877360952303176854505184957514109462542703727038183357412460521466641894847394802364374369950407086545082136504567373208750589697940302090722744867235308668195998940995359498077663382766296052425523409735679912172976307377070855151137873322348808502223729799170081225989203180606999809408837183719030437061387773791887145280760577383505617285847557608487108881243801864414622103768141640035288019649275127255868136567727666075180578892652484352693677931289057940376875515454430748802886088874434559654368834716576827166539865745305276652038170528293939989823272391665881492106541990602345933978730422658657993767294939088787849929017870238636880082931725625762449274702734091978724019953631233628597833911722213896173246952833507932732939338708029782719990779718100043227146511240239302274488449629789446162660504084015114749776715240031564940992445917637447469980338924444137660826605144794153957208227189493829555048120229665500774092096707532739656965292343945257623360544713522419482611768782920380590837314539132676954926595500868727579635466334232782016274333528380142039769672785629209513778790659558057407459780436661602236045972708608381882741808822895354267611314820829423328155954292066712869954925947373003355491675429286128170340622039964667959299637840909448846089626518942840515047203125356634691849497500022561242093861991768663094240333135035448941204332127199033052003260070815648226904377268113769985680348626310169450504793907389509181781978815507950266147649144401088618298485186271077262319809269016738654909278859302684459658001842564461329621317497769742441547023378956300210294075300894950323120369080325696202981731257416786154256641393171365750262173304029643791913229726136724003569034381737503151114493263966868605645444124127125779039647555281028388504556091297370678151973804561045603503271243877788087081127646549643902041968824313269790637875473900013663330421103742744187781072068322745439369435558752206627426725569324297026412988398335706835630687640431159657329276641174114833013276916390985059561397654183861225361598124069348073499135591975803813085213827582282759753627202850717308817266089318455906645033277360449620342638411248511606027190793576193871728636538928328836070140577239000893731859117187872533169545443141928746222464125924331726624090599721674973541396124214832887646832044881975102044733909851791049876159305923723824178343830391620508260477667237143108213351798516526757413845709127049591358403029435800976297618118650278467407989824966942709869056418483280854708923882229013678944270074124765745417168567729099530691313720324434839945541282870512750540486801424324429299422582407932655504090376879016030003606586055790028786702620862423326233534614903312893209648309551832754771648592752814480993032046988632089445384978003851132556371690018495926338518651932163930429257016819542786399909378105370123652033754375694991383102370886693487317695312791189693829619867918068497369648539547292818524254242466480825678803012843066528320273981718158846998877762429853014847734814356328491414566280594862139871518581675677462623478232959296132242605764344530757240342702946346989723194420501017584155582567046336428620655228690230790402248202064617572207485476875988437553684584398799847068359425766397220651184359685451518422976328063570418602854931748208588485998915345292764706532206493950669147282074232314626930495550015973777995225976669326328859936754977726661041657073735369337487569010954752974439950332353315615231849551543202332413380550665299782137419400426704019341050694128230188530116660578123365676471469937176325135959950918284212474422380721707925835373571300420794241465692671767538247851414322586423977485673996258391090157573943847465960782644742796487464189648361231433522434286148822996391400400231258713815822659247763596557228513636439191242854205273872844056186938228556377349241061542682721918220297201257184751398525568517484882990421084917655154748688735296928862831734213132062853769685645660550146988180025217267343549422825799007813728498326123025473627348910572587121483721503701169629133754403604938188055763311520371176654064361540866636161986338144620694156389458383241517051663580808273702460979873938860334287618510719405598449306072533142458392194183160239746864730124843518837951230030658622846926072959056493161869854203277140566258259543236468510373058237050574548083970218077318668533461954690551973252408024994069723514206053387293084289495149527476241546676856972517549309248693733985191384087070825948577338994883207405746218057084629018850264407673640447259506484308612272884171321040283279552197253248832037980642083111296934618000722482195588752430889809179396435417593304538084230760158157889500262217878182441561249970754561703225095187212878373487550502271118449875679371672544757775722493022519578639586072441976307139040345771601482476876030918073514098455940474101269167356831241470178755471872292638727236525697217785086830092595648637317234166502995858683494255273223730679515411160764443973420025301228688729622537031219769276559635340758348796141273491028806725306406038258198696387165778688294962728265517266935402796961350504345311700757843702750571810295624224894181615172574146652902694111826005710691149114312132226177129584825274122505162248437186007535272787956820450917837265345254816703214805113171668354104836836144464688465854086122626873065175671672777832545307988798629120475705291676788646971692260685556513434133532804333514606568421650554904623302663850117722843511381097615210333676955722229851713715458066573739142972701773048422348515796614493160964274510770213410478381709567611362155136120507146182785485130358724086771438924051584439451337363797265698836142738202958594957940107949680431697606845249265109113748382763285304135032710779283160942531217080193418265795594810605924664151036966529682524250258018774437912048520692557513184379680086077327405174713359749128634996883839839593087113952473239810546386868496468350467202615665077968345376714024773300642489291229955401745714184042392884577081655791556801405447584825647296136846500790595347193808204428843517960132376028798513238621189978304157948350077101805037176509841399059073217899884425482680245449760807322785910590868315800028731158398136931742644491348336955922685022235167017370139857996327478490464966274999641402073283538613668782490852280758417924118630720407695323400549814853505467221361325642165676890957885919483928425621364134358613885613221002917776276716852440337185886552139968001470874641730082008349698108177444125293880534479373206180384805478128154115173887974907350137723641663942550866076816909135290121524602517655890159746633466579967554770152590578304801230110477596599935917813723232420529256555528555135724612425736284012375203703879296270915187753618418896358948816467855745755665375849279555085573072495449976887830016296693054854322736392453689106946713052456931027184072515088208566519644356390805945272546926902589537378632161645074302828764260029408873499672428235194211127737463582702038226590751112108934366522999035165092944770382761050686418267493744873386917173434376429183109383779646789232491346242312043446959275289646541674343857675136826682636604071552405367914793227605194429545039241408112210994469320360070878960538746388371976479394829919063180871562608213072537274557010905247853525580709379430017693543657032361775047019378659209105914358861256747419532927131022051408210685857346834852260547172386176359624793084875151332424162836415856009280611672119492406196228705754842817223428405230072079775148637520194024268962918078429067421533214390224671027686428381396137222177316592415906152234575149901200489344429030938926391826015816872110210863996936990217968157421189263696840366088558317745972048629165253971590375858814780019964425157076933360976496437865928874590588815383784216773974816395964380817578075910079059440126840722484260688871153072053983081570413447949079092788786042626572425227491152972405318202740880278198748772633859595584316141111928955791941401325693427094829285779597851614758300556428085221586882815691328141875858964449554059448879037370758730088866337791926461140113408253087640534594723728345171080604780181908594643542505345571137966800268838793368981549676744953846317836925752901677809142389285436935725324393532882546533955282729185558909184207596266280943513805297705606001027227619549903633527417197550687151833589638042991491933591218916800038008550888851605749820906186228071403399408312731299168322744417956984160989472604202517767566057203864209019040973699925340776661474175867105733818850840599619846302852274636788349662166325139623285502771786326457571042556694701925649926762785618893131405158789783514096766258295277366702761400844962299676555578509497017170227150850117033652355585256662509963151162737379229753432993760081386022965877577522726031490105036847654334461685272815325338742267092735511274371531622146751306026057050272681639246069340402299007057632228082705476486214101895782664960560613653902822119185613824796795365771280650414935070355483949454596693528496146772888216639533796328503286176140777377957449291945347120793627386918776661760668687681902951704338962606287867467204549088240919945256583843242300068685137423103354634412399093885333651174049794438636884510919569892549611931076225838093297191871628495222039652882661761156352442296828895948542618095530953737316466116475551192337095881760049305439638287728803594236891322694005584258136351750618683751722350067913746726579238448183206101761401985258345322362992462086758437630409049832791209725977396396354779034737405681146661509414903450014970381987070681114706621164911075138674212426798516552467157889068952106388207448714721397909090741320937175915826126578880969960296349513863014121860854013035925093638518291764317634190244567231758981179066088274308983950314274404221688158592011094132678832549840310526311820046140573308316615815385159317792306516933285585536758028165635164810917912243523048341359812376840091788103652338072431106203859779699885888622855346246226918067872615062032644824321771530466212383808685599485223403598801687989046173023836424539168369433196063562020594247482622814994367432170414021845444792096249374344585991260781409726951202318350525444111171461819838309429675111798666522380742321097519706484502060705960138694660988440810498843308186494677038647569352375214672063032833677530834138583158189875020211718398820906490482790777589649479801373271514229935489172856800576045139397747605749045099085024801025649573821336793659445156668711585987074987041725852360031130475185049516328922272760041247956736925623737364902222021875488393862741044151660899088976689176057626135293888788802358918962797506624494805272102262736441431151731687349391697479252128760129106601931128500454164041304287207069653889890267735901838553254373135329430415507905377735169164220986028350742684246499754412097558848245695239288224208015555876092208639713087459735773873853073856772036487388388958052591698886016198583520637071909851613514406337701724779126307035240694053158793655324017182424332093685204311474438620494917952565913972785322551994017624432500038641987312675296590625518300581241080506371667228675132838094681143943882117402310767606752058226995457226344250054119580569141102670924492799024389327408294956367800004198141041298719131743468423973789369977327772025421753138124376370458778072821270411252559363443197109310228117822520412456914546228248444594859235469919154518350525326901285934841843287037637093844690596980188479112266183563159995250146580882540522452855585985554718735050253412274368072737785586274458685049336240125719388840453713766663033891195728193204855628638687567685003298801803465441940245832442715230707451789320332929166942622442917779861803719981109075558655166867559176393479817381127256354779990427980309966786276940954435922939445284078748027017120081359991482899808093984285370425219351646077257387748181966332113629525418412333504128765456033521487468578204253873441691162613896889656991956111018095002050972058617933140855955093672735337062345367707583674617563769039059514063105085491267092333229107718213039563475013091181986559959202589478152344941689264120967156354006303504383304996165838764782902165300203665109537729651626304537645537628314071546496902609598428960469823135408341481533513541595886631619144492069317168871539976234768585660409525021267044357173130601210287103551435453335806631108343814096350706154204859722362143781420849831072759650311513968881172781266156484352525602821810795349815020064658643035193132270785965707111845402491822621704880898618688643713517939848316349247339423020323260958670949700717942324068859787748003983439609617781911810059554286011034281012575366089309664640165194971289466474247248931336578365292483431658313512313788671185779873369905283203735271628178792363781461022903323961462888660622523809752777519251781106385947593232625411466408314823205707023107539356746353805161548918717021054202714059505605112748590344625020859989312156009569249622084062341449548273270452083968643225449815904478874658975082038384639788213068616654230859659161498585882923471488176140515715232867060069679745412474704665099935321702397555184215743598014591045701031492659535883079040550808882908274300893019391346171283181482693059369110668349927361878691076154253222674236359793938295747783645658124163594539791560157855463188929003936174620830697799319456743398856029350677258666370632838234720133065106577045804976365445075916592530393559507003083661517766405132685240037792631040035945757782334989994407579408747450084978964264580465948978522157396191796448642090618454167447215438802753876272210181091616880074409090364259329659113670594280065148812688319178966007089596248855136692608702136601116500596491257508964720553266994971982342490661785776836577634531646350614495830679168715881382745719349935127882919459130128434111864050601254419688995850172401935911885938534342168108555850324931591377364898999954144352147018624067763668745415199909590898300738145174554405207964017693321860657641045848053987909305665008566869980788048639420794006183127813699892872387609781540569101690386107781330293663340884437851250476643332569531764518617796598841702970313753764928858272595483178098105463331720491209746092271291512638639262904522256242774159034510402780250741228682882784575040526498588248886808824920807310958190172631005759587762816058028411173951699644841417760843947047517548019733177729166041533940795115925403132820352352062239720239797245696865487817047369515651315478381134636366092040140158274362820801392124684004377790646335409212883235495348903794989491995363386935965061130549632994872400902902102523327620988747736585551259820108720738728568108491633153797816696275339314200969368218703005015060837074641535961007957911861155907309029142312245119246490600980087113223800087028059791904085835640486240515802825382719056785265028926644364193679627784213352717662718040018583343393720416667064260268020003233862177382659503802919335863572279389053594060725906260319999239531265182433149299543378034691356187881679469192535515760996268643537431875783717295978276799490453109490171228411943431929357456823879044296542266890017262529549587120813954547727138639396735500250027048131982989074350300162269086278079510827244437251848043994828190401988076096839549372367953641359136608854499131807521115017484472652153495807643429666099505805282826441640591735397094896864693011795953694413084475229883370619226541634067620028455533305719324303539227947743300052964295332222231469769159969048351031563058443096048203667973869545374359205288146324502658375952662556934223184675910060685125634112280893720943223754784874689033936321501645754974325805012694400007685794701091615712834508361163697775318687481921988075571279942435078571127229722942771600436477042111565450738435071088971842170092201244363242832738985167534933503064174192885607834864319090969530660649749861111661147576769782997495111228273229559446385290196831020230498375419466440543387497694123390105771864674422318018822578857697609799017654973475409401933751947814640164891540721247326863364940756736679701611048213402655284387886479907857138852665585888490908005024526444797494102105996927844176020945080803397530477237973737146211418298147000771781768454083269586751116816092419095924688878879149124261524571129508887384423370646623020326224863802620623489084621042841117575663672549576403860893662652466985651229340281606836611677639352086316216673324151763837377539141130695786861558748265916986447352121098586220177344037932344644299015427945754630685574943830574457842609046153519897243508158265537301784242279962309130432847325845324122153069416385326840486366316005982792837148963361445172827392341705693949564161265422013247864583863215339891723953506678470419218225869812962486964819448736014045520014628762667668695057096979783460207825813837520589255547002006595708608922642162278175636038097377333455252121628732570237845590665584704126885308162062949093148344586877771167043244446093967451434087557829339232740020453474978876704187879807603797757734205276384942402170260685508016018694095558031674826883526555359125445096358997888318093975510520067699603306874886908666123646937950971540826567710411929585451097355820525868561477247560813323651503993004300028157533310439752846445737733330679294004803501187271599172164728021864351836601376344782146572510767016690337063560948076265916677655492386733496643273417743857314394258962356525431157950730472120681369297340892338917211863516612965328795621151258237802932348552860151167864905766791797273672195203519290214534865528962991365693782508388348836945463771897136967828912335148348369458847857865002899671755149083699500631331351322525668221215532090779936982929360407960383052958080408231969170055429255337295204664164057774079971787475669735737496448370814889141789162003097327943171376625957084267797777673690871884077654971745915158440608807274077137783639236700866577612944212844185628366440669290026003899630633609915644489121370424069158186815887103003066153004226567336266808603354465185291745148753539798128537643003860281028458917448466562382599954188392243685308673083148369027567273043116181066291001538505514944703891812570876639429609582709426400715054378926706548703098068262356317755159340942912798181041900778676214070540229261848304492845068611419270711646835420092450207264010986841974608418506444593115628236385681581417979703585552049385466643966944922641446046439763860463649505696485824660721198932435452808951316834087221974186000432774284058037376961083360000740075364273774100071055069064784508525237687304310395560733197035389873271783523331874004227553195579713618466501233148963033020345079770768061756042481923344643182834052967577963012329810777201735497732300828843045070929812644272297100354228855905350195488141775644431551940466263077029861218318315378177114285209932656334768457924328808127381455917628339931975294924434472408962551405282458775326850101362163084611195122590961210686280359496186478557556351149591812036231176129663624941495462638112201312745993829864596344319785412297592815212071810665225446109400888824539815169872604862097489526455792039036696767671709149779469944645410742549202268951205825198268382111214214171437931232449232973788350281458424096183217488516565829113847625517105709176742288152514479156414035247308604942271870730537257742102674805597107591473676956348868412402576823944270622001600628347618253769149969116973212791794031081398656819677941564114811849433291930192877386977469661818869330086684343864876504459090802063225979095522851198127604689661621270332633370490446853688176000806004358880730003116193519652133079106743495605527746600378600986180668159041043944549291150341431025306198631134671270908011753030011709910512001425127330911769761975373017387437375508974918275269587911901663489203821349731322398876147106034157268355557054914169720600058510747351493715228249261994200468459751993910270518958910284130687958876766162758513589070302547228775073752699509904148409961806176058042766015544436698534504699017246932074713171560764616603775640783218423986914664441975406239896739032241036327308442950681287760262614741803844792006493540092860074569998523478667044946442733628858394816920911640809989191689551852893425610375983973546334166436252765891974204935131117055675277938074623571533248102042644475435742295459110218445949967726489903036418650705577951993689413696490764355001658919450662378992976530016333219480933126413291328060996823194237445843821599454831213119134529307762398376815014797548436020936877833489658497585642822910079808798559033140844464118826324783245672161014386155009779197709259702417981084383536691923506873364170750796676015242079383285474583389650895712306177980763473278956902297465453910026219528332402100847423739830053798189364312219775614735519643860543379934871444935808621031374957774091494232824557598437198871809950670575150528447134823926760183382481382430158661627471116609663122442992373103088431071116034120125211411430060221428099023449238774719576511372193950068148599675492083482133862338758510407622865237023943719707299823421766203405353936373180223239015889962233094528485119574292800702262644279214384962689113009402527568926042622997020770642967814366444285500583044478002316498829215602807823642975818316916421721601472431067160720087837100791665797005609732782663841205698859441398957524290128844109216284031425643365167400641230628505283997107506515153174468009996386846050492460947515339656175377519420689397665166900848644739542475342211296906492514019974307062874721472588034915705149055853937967684750777682481044645781572148621390302449418629554119413346954273151423808069922329998786346595904008591472674654047555582714798145902738556839914850667437237832643244604520008936212537611304870607297948329497791184495834737414217339430240330044753968830909554306052137008704098376385380102826842351256582026434120452336398266753591023657488832327109899914542853806206676131673615960656641587844279435223453035678529549667200803290951498785908134619368212799366334601127960183926155243967942174453102539182200910760434235175572368656093946815069149611113685336916614231733983830777809838684560462650180427386385399483573079788701620859892689281476151676796321133253224758750360798870538186495811081374655721707349862157027991418781725422003333912155120180748453467550350147582668137026099245514280316808360072010762708826503521688314773750512131327681104594674064128992534934290255349811464547241580862264381820292833485792087168397687818571220033341379299944796203340526675643107582188870398746467604387352564555130621231703430068929043999792494302731430123989707569630784164714381065995777160446559458280524985534202828712571411995636308329809790256601484488703519470052080573375269914489151945839016758913309769056496173505134712292050309780800258675374938142667684062536167686670811399868644669681168363557855117592884231886271358246903985101592552400431082279017231291605983442432816286598094769109898330279082821005958065933875441520142090492111070623482450482883996728078907076618654669229401102177874660489065173426782753019873221669325112974542712062792042697273336514649623291014356973819564289399765374972385833362071846306632395597508453631797098197533182395647474810278403702411954899953832751531506614300693336037950420194262074094128532693962081144511183012950316590805164485488715593302571803574352889924086642704462735471066229173832678909219914558611369078853010899100915359223792286428625096616028664203831556178696591345398517423140224512492709786908502386074520209293442181063367691123455885005897951137877917203026192727270098171772621239574040595316179299506253599796315661292283864600808740015440125690839012120992187211031495922151689341245740810714722647131901258490989304374004474866735992044962732807753428003867666405609182591089034165320592431396387138697435904779627655994229414030788956419426837828268831743584589805908058932619459632736023200865909649304193382794167825337895459298973849654066292970438410995968762128060111607434709487367337550340289379616626231782042487110915753577567136401935390710948204324601466448195654895317044858435223593025843822462303452454096564224006684208712789585189900407501557873532174352468168225057131287215327812398429161945822012040355681502940787455465729346261611650956304578358768001789467685579572892292292389582286755044804133453763293060465087212741369407159571919744859578298166514385206666624376686586743308844086634771807937057688352497443327939351958935459983607704773022556932126314571948806792562622860011080542267243973830469102264905335270213042150795921848047060248236291092174140983255141606113167997944771146826268846799499769827322750971779509112696679931996957474988355084314600316498021858365500284167915695979134106695578987487018097528750494410770031592321318935595834108923365478425074269572826725838487735904352960711165462244610898953788338386253596908080258429417522193792187935049784440664553863084263479658329814230791297542881783799187111472087617925749690565209376334100554073012174863439612243025597253390590928019764953490383746341247958176624829425456846219036352032934293256906508148219172211751882343872610184989110449922044855852661708834074218852837459329736285591235825313111215761603705832105282568924142497748062588972457111227148049209432051927312690691367142681869522032548798330237101480599215601413833242735035522899986832804458697262278013960488774457171965570052753334860222301100533757561877079676954958703956089298722286304943999166978104908971091620143705042469492566376800954538005468799832157462647279086114797803943149240982797726201809656431124666455563543870873467737385971500918184610667321357830042383557794367481882883041216741727375494605778588184874692219520622848221793672597882019116627619178971358882143289094931657422796603454196004123591571900936771136627740827504503338597237944059620229646615717674581490993560959936089410576185649086325988079746570025975072980779668637539495104459751754596164572935464953379596565152406286803315291017409425746245359541870951836436848552483131666274677031442785368067631560219963347837990424479972447595995957057116777309342528869907406019361841237299167959907886667698181649529232231778018460075083466468154314454805250791884762934842537658501172000170356151854469005113137271656134222422818232157412560576986387497689445646506441095856013454816464609685290855832002568341415982992466664534940332751760128943514859813664325146252417731228494485614644557774146946059132273013785644233043031216040916094521664018005319295599797808886366479376155950103955648243935484431165670681379003256756568590258498956321266167481090399548533831098366843494381477255016016687778766552114363606602292587131731477010021533528041034559194124604709414803580035103570368066094462982532008000371434640149756586065684652330743488129417515392523484773208245203744417195438013492044013450511716486281760424431489616298152734302332982978483815942245596622387524239362932073302934903431936557496270424312777522731441431983893315963747087584314049423782381300448326490148949026695004402835689589089607990543496358352240711913855103870593980563365451038699755443905279625473489533237226903094040174027401121637789464559802057885649077805271196315299705229720041489912046861628524334596257604788030740471395017073088440032373064453123854915973829919516737437173681749323994688850960782185766228811753571989873828693299403019723719296268033740947077208217975124470592534039967040954533220106346637107300935004995329294502011285424866591243109866888598329099103412920145210171611762229582463654819966891510856883261829124593788518271863731363164617909822859575679264034672183077587419465973592663658712900866317768067109496540072345983336697791252818565960106676668223629694644086532033429874746941708676114455044314734574126912235063948119788976957710116443659117833197115473896739696329744498594909715672002757496617096536813411346308445933209533311044356419072448816577349471187626915655779564460497310468261284785556370790338174874887578460590510156151375764032809507019977074794699090160181019433782778026838832900949774941073888413364993508432821399032389417881683399632531949948904971346498690882625596636666666537315307300141987104887071358963153715658812121009077464170242528489995149297610825573362393422540588019074095853299149255435663802555785763700119637611089117398597879859867730245486241639401555351709496869362323991270256703995666349131479662561722150576316391902236845202093976191457569241983167313196199753027266007502703005408200284226256005775791435460156557281982720409370141782761179250299853276935348745219153770181842763120133079548474438414498342924341666842231267118944457258094773067576785032418716415337961538257529269527949776081471309393515433129535339976224920169533096310264541832122477360436891117176687585301442612523699165854319513613446123348200384862974093635117366560063929236880458774094329093907248433253348479143220891839965815651881399674231715252068783990221009663436303028985602417607261304068058708234120180880140563452086532035423706668158326088747403615473406607810434478159821787145939431789898567769539380206018570880200326172272397264493539610594337069968923428683788316495988824250941989016232806777753335714813072397403081932379954100607145269840852444266129779874937071063678038606229997557294156320683180070473730351854045005884459679495325237694582148647429651058603839572049582685866165846105343607104769058421168579626585698206065354511935873132950972403231124004940698215779642947937158395950737040850236463118169225421486364873101450077627500184483594642773092537456838555423373057741980452653290339930141003643987984219494638376626343376492732053912883902617018318649284466483369105825784612256352758867838166292482818316282401143587326922736917474258754084408881235795429217292081252325975163616676757043695853017896848898124997859590199906066878603573690672065709012291430183422891106600286458204185813689065217659810428213293450496412830616161293676005607593666334821853794838509275494501685083636597578524030962138116069933870642457696064185627670226526997360942340764559248361693866805133761796864185427576911451539491050753784933037445385131147595186228738627610156894172847026898609407758571280545966962665978120996352429709042374837513523637345859547802231919634957603155113091495258686608350285015985998987703972293748469804527453703926015333804721584259718122338369776610514596019391402669859245048291140425748438852699814723820367568541248455892929640619373069405959714242155981156452472290531734827119577320362318160522208724507631035849986329256575775660059389238175902960046061943643637406247174998634147655867372441931680389932170254187919249677248242965743593009775877338441093531152724930234989533301621641131612643820972611512540191910202043440374744534179667130980432431423557076347176511451749149001793555609463751564285659842683507599593237285256697774141149506465661608357692855550670827721040771260100040721896772414699114494553378901206218312101266771882318167575988885750622381168532145491746646441658046378746841081300445550467634840626295849740743946557502907491217487690010198733929383958970662855474984755277032494335987515407622605866605819481469190615085336328896045023369697465018108240562737722209188704977910726540841591649114510089381794763745032300937826193786132594318550832957916961993974215811495308111192467051578575243103988973390098077520011953455778297846147831423261678600975115559624368484074892341166916973278719563766313317727458137900975742011481330137489007215442450670627079232114738504758469749047250425810091441356695751338490297986314760066569469996829106343700808841216697228030199281924999216384756360190728546613482128651580858676598051437254684873371453490815480413785410555132268265142930629299692558195561267108718830009131429916190914190012991482330774650930089603207108253894841588667721835745531025831675136713731836269063413514527554185147926777959371368859398550081928268402203464991704652023897924473287114543157422879083139465800805424268068265793828451004934887471901966592599176181494848227569374234118233018209790066903978773608756503859209971820213337487083244838583624615435396227338390232964955626846727858578245972336517065455845948755684103233838456372959415948961498767636945023694989713910066752116127440053195303009122881513005032145434849034744251187548740323557681868735050068434247622673437523974035867694875235124502809849724053793258669786216711134155337889150318686357265378483798486318611235328517577135953655069359398564213306943187123548762249716492806501918811437425176957389003806777650850313167230525611096871104317113188270545976262769035071971922776549172243539181964758064637126246981740382711868489734116992177040992168542605162748202291093563876604375259456009792713394637123161579104482343762271454826002229376742979270559440057001688608717601823841581412328243101930025072840922250490280351637258317519315382832032184779816766147363986554306474998109688891876823151737197824732430867297879561373020688630706948894575504390952851020705450275292347389999153089247852365263398638128086303200491081804895801110593815878582986092408897996765273942556491728506942152903297042125419654767525415786974732964084782854907866044830862101501658698422170206335901693482847340978840752015260423957730871565825858223740198951870270680730673015700998247940503596681104285871042279879726689321767687944865081447514857195493536155407723134221461475512186353359988315490919363138072362702286954914127820763478531720871025885139003845668256974219985053880485761322971700164397719347399079264322060811791056519719899523200247509517418664076599127083634547574051297060801400934595171540254931093562293726151084026294931867218184939978148342171930623986838639319529394718548227792993233954208797674055569684865300531724993321044110815086925820108170586717099952412093101480592187071122775574249841593416277775051499582087095401835082643950211552652726044876481089855043275418998721286053742868298767351814651285218898291397258516159796078756704664764101827975003740618643635143294713779658198950256613894760766631688381194743641203632517025185830300517413702072051051519750360045014173647903609899252634254127073667780871812516019017582610253233930704622353640785452881383740337648803380652500645823464066662727787053018493036576772441728535374757173538258880497964888051970135477892943885377906862520122272227271778752271418413279369598231929181443487642638150505228319606156660790233519772347890935675211620819248245074139954299091224383671783153312739288164462028278314581223471509448661700339493005510524046047886477479215567558877000999676257307697462405597582454657933367901728092812829507178118063870397196942058233672756347946176663258340901691459216624316104264520787704298151312457307246764269564467797721018929422280478814739975060709332935560617131436063821857770583039206597829266143608471960126783355681931585610345238586592219291377717961333526691938378073052939950311106722167359364474180145195438699486056565256109878069911384560792210371238448504068954952623885581016015456317274553103226492446230356402688410381345156043422378651075516031745512474828275015013263536929942403998366041523275412156826633530835829629319212042979441879675708019143625363261253375640821704717868412319726976832186225366002374046286206002142240434811456699886557525064523896201897456030009932496596976258316368961779944267579203750236732458802999553741148279753725304580661745048404389725896483582965249048791131526708116743722348479157090369421768723881418576953662145878230811256951209827015782027081365715117529184341858571117504347643628627227022990977862909428552234398028042015466799227144743188619003335298183469042459956199686002163484031266407923555424878072022632039084632767800337698579418483920832682034930610780571368686294755812481700006202203351064302320971261996025010373563434748601226963194982819190821149768297264164125184793774026807837270575931356654242046872450397790044799339072375747734297567580287490768924065231397499276989034426023587876565686068493356414237999181499523720609398823443258818793068509160497189455946435414480339869890421716562471110613938590825683172505301693812454372368951601249339542407899560102342146283330360627231136425498343133506715560126695528671516456622128227847234324519346313712906635303207037380502525499020527923977770533685888968970958323242302838382911733165794386473142854779072602213270953373019581602460264499098424314270126249107196076758549566815585379270804183872668952507120551659742337713547381573336574884180223037839609661656513750657444808612069727766306591950460179257672586793784680315200655065777517171033534021203283440461399753145742804182830670161785963947323041598947807703400045101289048096627899948780887478176290845846881460322801610186604041337459647841501390717851417323713050686109145337801100850531657485948762719033189245516606352624943718738744628522231478880121437235030236656882081536174435859961763299707974960965758221031002183839700999717611859422035437152030580488239386018593034750371846788226335149031047538891274876206252971187644431450464835245291896436002174318562715995097236155149817214828964461480255604719304255282466248253649622309909350045622361167112829554149057729553890918100278834856752868152323282176226932937489470712407388346997033801979232485015349653426878604810581316325605016885561288849085408122932908645798613716398828654909012311113527405594743437879107629233211359343548761917172563659773936204262654811393227318108923444609959499792598688726858384792290403859112860750009272949354105697473267614495251098593908724645790510001921037827534995250206719678192608501781443610345994552182550019330381447502076254856537382044599120392395345846195066326502309500431830994134251559171939162121972429961030797678873192305513322424376587785615787927746785134926240478431674129943517619396938717016315705501043353657624204846003102362375246417201229069050365530073176477263314626666432553922574988554257262064110429297771880274569123522272813187093188432556039851888290866742232211984909215608997797706373866190053997634490150837824589632397165326637017466433307483995639549003850483776955401364171518014113855717700185212407095544912998793548074152243192023146951749581768627054259803724122293247522064343281158053680365591642067280153261089327232130975476463932988618251117353066669151043199085076362975778506881221965565810699009574704569577275680614555951321478436490072984224186457460823827407573607859562255218940050288607412514608976820368123443721406458991579151067620714825673557528175299905065891397128066077614712389795935500893049656263519664528257235892401014886864303334306354614389059451274945174224224237206953988417026929477864602760975276542630656208370660592287627565686755309908054264669138826719031419940012483794348561183559323911652802559311254120682951379262996154825341093384087509506366713060857559711348954375857772992321221651785814569036367152502232678141215217401327709975282993738093028597137043393103426436569350908293756364997763200995391700303048664277850603292732610827255263646445241946048429957014457406392911768011575786925892946429702026775916168017919298594077208204975584590373973494430794949277261343440945050554414152859563593532398234744147491412070873190845036220381575793436679773415231963568448649509864433416920318933527713762182692949589851476977465277175182379876619851760383234082378085941592299371477348221266574873411544922653868910333140326616812116319000345969117519010999776006854265321152488034712095441110824574728176187633381484661587172428208850846069787585880973860302214703420761926777504312686460107429502060831836045535194223127701901749146380324946593726233993086503694934305723493166595894436068675382085447540476474324637891624701925716130387414276911989705784532003518566653391403527206633268276695910641511529889139534053531005963075200291247837069810298942055475023124775246284008693669567779661407599272836474399942083933997121616013676980698472138684062097055902096437789139064663662017287902655749231714457856675470666409132751253215341960835145793194513776219659105156707158657265818317431257624366132928802336485888753384890433262899705715973366985796722529793373130591885438739606557673573457824799243982284397803142355142873263615287860312637619032172135002367984784852989671915905688885703963652497216593939193084905812011673920297054593504659443390819119115798989656769945013059812754557354738125927869831933050418981356956668022470863010420099093777093185847344854954214806564092417073113287789763329163316311651595022107901500230467960863490943940930943279549231426429779063831349615580215302889957224253895226950775515193344524882507622169627539393473115942967274531841808232299254454492909830978705402661139802472894154479990936915284231747519410680047262694501553539490048226130782295635576202187615711910550320994581952738468476004472327263618047780903864825952925741187034288830122491031609297130563113238745955206091766995451195753265360267850929202760750585701485722327738594380706145197336928376120644487112369152725546367134666137773898347243472526956947265146461348115267525156579714216167892654801542235066961354304236733838237593418663264171838690855095033770099723698121186661167137067978172553462127755359577786593216229702367299104653588016272712361425379334457639414432788171145003519869845652986145219266878480044129399160642004662169731134820306920587927054377635435617298629393369647632719533767419335497224531144644492955852724445860578476707776234919607599497172769766077537402084994193033328416034617762305685706533674139781803519580731376297576876686701317630868215560669260035856670265637502656470068693246879280780002687443690893311865720115888351488671799579621257763226954099825009469068270370020648291219083785492186000981440469960161351248224154826922309684862448074463693960285930780477792005894647718658673075731850775940132797519857170615887668733313869333362267631850248455879892138905001559625101388272056275356135582194573373151764527483114393422469989103277335402457451625718500901350132792392262620781049865130998856150035613931817705114444835273677335559491047311776164079784730314320813099643466686961260711099723170151420311202689144554240072430808489327934879136684075708831792801048332984058261148687044080178101914414123846800339692713175723594165812666306610493265321197842171742621596171704104232902715269079862532732536968223502649435456729327504678066335468442536433169388205674796994541846230627287491994849185971103445685482685996296962999260017040159035976187054615745170153735081949109619324138775725300092789209098140677528419356864268581392616833384070575637277250726920481876515971561054425617476641767761676602419389881862428498857785562404682348354910130068653336227111067017559188444530760717272798264310495776228928463081842395906788506770349293458294402215672776191824141484991244712385476006788565569886523292488821935533793339286345695094709341329827470676173445904090290808391032984848387081020487859377282547230667707187015315345443348129684496038844035246965952331969221610334661690521310407864723513605291783174754406695519956516826693728822371801605364920717247645599065727041639792482329934344596723598848804122929462691908435112831532562903420673079348078741856122013814091823240807031144852075096158374236653900361050055999971166413330164681626163021711346119840339632520238526739890402691906923205400391027316660143748316247024838076093178612286861323748481809045905563041629518669002201133841987012364378745488554293715238229598896159669427885111619790634975175830303342654901645895524987141218070719965293792572414530555627481677640812290627664082760128356968545939433682358004232074147644582068305477794964330511644010699278179668524259138036535849615438507319793567466999609828279126855595947419630853465341960819868255973797192365033912799027949400850987232091447342016560988446717098191586200736519051438127023701935764124618323721605593499005894207674648133197916191603728163483847533244540111836595208105028730744593765411690371316768412194653787964127893532875262071031368933546946488695454969565873721608273792186797963732708920481972302485271513861446284699386527842621697254484713093965129711039495891267375759774680277884062136276798723421708923913678492485529370899503665573530053454917309404394793586268281658713389526562998132047626311322645191492255600777807945451959179535308501030124627288781077757564041305207724268918821582787321684326054748306725396299497779330907781627630499162142509243015293852984428276876990756246416428901138365232467067211722141760070426931312264449708669239025878896535451829912931879367520965273997177009867200511337722200341777701454205248701596881961795839596850611825328896057006253258410756278073166072488538033308960405872885766742988883487978931387648823228343495015226673824723984227367598126660397076474215806118248616186326210524487362313308170008617609772127402073054193935961053690927795289936974454629870287013442660506397473813827232775850387448595831970438507952359676294318756707869347480051073441368287131335379275052426060035079317342534114619265396173306844422181442632606558386391360764205255706829967760599062357246457697559159442455340132206836169731174962484362798816140919072667185913586725869146988652840472531417438207153240880234632494851047571956655848308504563804578118077137170123234752261894285345803524715504738328925834751436145799471596017389304989683706720348194884531810155681290150106444817291953795392929398218352057264278317099181865914624034516449365523932661347574545333721496724771151102549443027489694336085051274126255796402877515664559361894662934418918906096976814783621051039649520793700371304010558300632949203126304636682211648546232121846489758120571440627447715100161941891646995921982940831994028037431682648870875485110141980570610818859183637228609243014366379132418850469567418792498780416062184161647191441941972459367323672633496824929666166720300979693742014474605740871078618804768797938839695957191814372238346358728171122996210631908011395628703418323311622925312883143362391767629198517797314343986717674906850471331889337713490139784940118778143320545711410413230577809155627688559368684862207692074233207761456229272127240283109005948542954527073227379917063828398342358509651662159318441461553416920981866525401045611672346200895986125854572616621216427148203053871943481884594274663318819995656175386273630261998409127106102379454070956605425441190090625784459925495837656294833633256350391397373975406677571706795732982423369700600847618225086190166785447151251369740250930094169863194071431188591028258664777976888835258683756767433116028019801582140976634970819650560110048485574099312822938272950916182823356188423836749868383075841569349134692149259657810838311266703855915865479541693909546355602908597560739246677651436595899930042492531420384803873442726108010734032145915104732980146165935588615308134086758619178522614142345847545994087978761684027138934491899070365739906431840808838781434862650168072036612927674065469728587011988707434767973337860269252547153731082507327828786771497794332907110175538428278828369582436725181674915052796600211867107417544043979672295883814275897964244101761537456012588009418843875273179837019125599428156931863491376635384135123922525467339434592076982533892852305144078781447316892423070825926412019672192128806374490711316854381486138933381418660364951399958148475047376824763645673138184782160036202807291837633184945580363604196422876908468059691483999441737165305628522577985454598243240139689991423070111744188203667710842496896428612145902957565374751275692320999022966693727311779363913851249352001735929764464465664682355799576060848199730610675218310073477597449638698361216506508424030614197958916717321878918294374349626341096850368146358036014269411309242272682452884236290171497089165193472208660291380715967320766122533041585775570739501029658579883147015254343430971679510807341967850314533395824238576540634519248259846780251845527155071586861525021853785675272664155270877030690132070615943440015575132665025573647624098323266159402082671322041860933201230186329893924114833403671835176891324156607461078708561647091788219957158155896330958307185942649971522237816345103074255710920492343712453286354268771066956461727942584641402979088938872957727406959215933945680856438689160025572211416999128588516573465762009774303574666885448173195957166584300000090175640110009788907200303976156346088478155187020083561877159498037587710575093766468241082044898066658264221804986375352297908528120126308675781519696268296178925326366560284765300169117400860843732832173599655776986209742872249128485505229920465159328574411706013501438081064960471802161656639363736207233801814243671680358303805629444078397344584239140259213715457437026589300445023760034617034241442649380615547222332595092644612921347392112938508701566836163972217152996884560425932216640089544267655186170738145677965905093029027805689841152933685225016885364317489791246971264429668034580445436293975447153978015275125004948577825597233251746990849146473982605005928521437854502715136078212668705012380017715355931223078258249054928300619695362532881777892276560336976406392563006355563708424848669526389791329412495364508516338741671045893635194509112937389526237760988795635439978461081405017676647049154419348462008227032113384779501256924163225859227370360024771860081681277199601916876243750373238905739135724102399642258935306991093760485952768761262125653792932327820949889335082564990165327834194380062019825477989045965089724283992877545415547039207617464217123082700993411369148938759521510596782145471227900155369079121067943054420684362884534097799427510518521180262379404862173569044628891115963022341047505266000630710230499939518593237381599780554332796217780102963394793243280055694532326067738916993553699775882161600377932987708967391144859967797695230328875214895409290685815379289370769563173943521145571796201152316419475682051257202810267513226024328624989833916130642213156353801587551771931178162961517462688207250145417675358459978747180387314937330835049217017373937561455824049598720940488210836737051758921811743924699204678630767313708011403632045592191848498377085297812838858594797138495964200162026588147503972856942403442748547838101433983455881546139726149392163300904692315735972632785620834137397764604846479996932680054028748600564194529953035928856611300798711820452793012104955720617070807850247808455569285121764600384483036808822457102112933412486630863703258718112885889458023854340272753373636766669394450066688619091420222178220325604210041403676161492231092621153922157231212010409931680459285182468798293957776534428410285015960601154481040011005033974993215117859843894760114656707569489267719131474325431454867165043373245613708509744628814630662479327081163286177724983265671557145878161292218856433342003908558197914636164635901555019977937825535379648198095019415538704089871535112475889377665024047803288059438775683326670141980499424196609499041503794152382370032226535492748680016485632319189610866472067811896474181977768883649881183314807148539373478031410005253805957221112379670165507620686065753917856826855062405139460827261806671544039140068297980818242929505528823610013515946022947257942604673448916700281184268022027996676167677919079858477722418951056889393377108099381823493343987272635553294971369904770799351502286184831790190466251003829843205764901688289710038808158797029815466538807806836069073353977635660153159447352870089251742584519779504852365749047618436485319428718499774077217571159719481725161105864948476820562881508017636867789794574504490736272351182783485103881491457600384877085630823350778549756661234150678293261066677126957532212144622255679210949364834930008666503866280128870992446562377694362247607080042501684210672980314012284181485933427648651909214818300037344345203536724195362033804195867675906458594370264824331302572849433487006171099964327173700661285010038103398660817001778627844031761832640892603192566296177027328401666535772978168564075194698520541139229807442769966792907971347668700530401537147979501142266788326750215334168967900775927026326509332811786380393726934103831593734672038108733923702818054365742933559102591363317423618464922556450423980711198014107462501933958041969541285309887201876214794093703816110443473200897728798510953783371832846678760895876742793368404791879303311053797254065330334225411313198175579467607062364741820221103446211953715487000109557912943367366202699146144193512814089667046390497647403238173538228891099280941746160405719328969531922449412173583844990110157895312786010451236011338738120588628354157974699716664296982174725760531891835451147281066071047583542562275734562378542499516285588611159614181349502329850193374870393966704450738017538992511180153211955516058589014465876402030976475923216291420808325979844127288341851122233015193425363101117719694529396184607278165973647759835105967670075296124520412749161673955003415306268946603992890584689864559423389363381714315267358801194997676961405614681170974327938826932715168364819927154959438065101441687920329073902779634083799054719964725475801052339828615793134443919396404000451391771615787370744803348498844746501266377366170731317895052497704084687272550704810781393327796840298172411296547684590563178517874046194644586108740602270203437621580653453851028043575731505292550089460886486420531882932528209311777928461205836017838030892839780039565684163397337871913306769792464350350228052044333923669729307416788983835548872834488259064172516227664431053018924098806458604122958083772875229901241957502392910164840438447671497865929017717174806097027083744032604934508570858644504998786950999906724969343778488367865730974422945736091289228682035603495080199644358660180953753478775826035868297523316204738524672838945348970148678741597998157444267526926592889855335619240671877033063250982347591028460030012850776656938427332178764029960888899774881933673313316094089381730829656117262444912686503222263784603809905321804771117780476363020825138245268427775249525519510437057990641368785464159723715230995386578588601530939880619782945317666211821477431787287209410392788752018910203637712255894864026324905523455665253989642993509216367395251768980855036099763437381480473538531413033279780477390858889746266501671280132032723760537133342810933111315928707179237119764619237655608571534287111880368581402403466616432387152875288738312339902966619411799365290961149858453469997174590394695456657321618823642247269394995961843277986446259178349995168339505531407906824860228479933036808698274007155464426232274065914627751847749836079513261057576318360104924839295015883389877334041127744265992679235707936951882912343250319579677066355215101209678017223172637496589536214981855365453958779226999057173715916879024305965250016961488038114085076605627628759342592828976805723923623887361882063208389915022270245119686828602283423940546471282793776973583442238863686476986024491162719079161537130902939387687816895370686557079372461238922331231502144399718644062229634921158155495123153448146297554830376141376868898942469854641445503950841769221113634883332770529827157640443121655984947035927518040110268322619054511953675330157334739259559893406164396562650313519732122178201364479356512487145026489575058108343307665146110058645640393755888522739827239491800237589107687713775873944999632085820553175620681039863942457579760302955784836968867280248498044869963014686333338036639166100299983971765068717028707415502108093865229930871261673186025850673445722787154355105258941334777479291785362136851410354966663643895329312977882899253865828215595320558061606915836322248924780706335860767754183654257553320856019975038689597433322553376069766760340296530041977019361220513855613792897132614157848600961564645031606118125210133839744611849521816891049299608756423293891110808774897294986795616037052269444087982705112003413923871880962250681327072425075340348372818965157256492679949577612406250206600296835253841164558272196707494082255367954232268501983647377152967530558409556002754984799892601810567529733217785760995739713651131275856373342220333879603300314910259950797086992349791028861775529321067499052155885853426881143024373699800079042693697881290391778692292792599422496459332175223291583887759918650430216211111372146846103764649143642254897621536606258304660689411879003196828343174423019295275349955758059644645714318488180293821633904947318609868184363712967140157154853879106676279322113653765505372197382066196062478234109420988791860334643864353715157293684090168867621747637134245726676405237656695960905591569024877982477362798179548356533568098347102463664645788286269498346357140617414804702614287263186006842085218087711756235969390611801044023203691958842518987653969438915179116102337817309910093749828431251230086190386880971644136529048828336640349759662406867475149481033790435812161555281387331315624672913130503376412595441885152402451980212288830378707148600393442332329304816470200344276769449517095236765434352092647524815757750091534493179929768861972090462806718211845919241195809086021896790059302033605586500781614559179904564930022628898434888111162057772716581491630670683197951300535903470090051668466641320377834915886832390051208910932187662558353829449740624356499004883434252608078391385995706005263527166271199184412274806711749224483294604213941546893799679696818094802588270539417422813485597704112202177953110406382566465598064364424583843259280896481778048891379880940777067095432042207542468725151567131239459836493649016875135003320470763890937068249338945961446438891227009256155445356465386240278008635553542697558399428166530932437202331210125885066869813843419898471379790105467242737301738214067862750738527134394423476794118063631500853557735963606315813335168869428018623064331778266523462890859567766425026483925481176998673260473436146220557648222565262386077937404606481017127164063871254712033456888995667177069802483477491527352928303118136579421262779826824206717562911628991971814321645805885328402510462337170285517536471592237644673737831660838485257750436384861700806516248000413490919295750826392205972547143042115507956021582491310486741512912840567868628924192067642121932802053150004312359708464972420952366395369253635085919307284358180369555668333428911338633804233820604204086670883224528310664498167799207372948306778310984224931341926549447138506381663491058294428142283775663388254685623106105435077958915449488405953198027242882350318647688522601628031311607280580184987839763240815663134723746043637317575735737689120810443815570246391001525623999022168572570848822070968889182107199381176305705970434721416317920459189328697957609989086544915335251894762969904868597340997201514240323115055217462764210959620892951591410152277647126070976823967196396752766976754546319241619042774736940265912008522816893676584419608109735501361839848140803287603700054390516615680200636507131269121015863522388064023586345953569630980679871065115392022878136951944894708515487809465489563940169098012747510977814932643539650486125491698718637366714126744109930948047509555270075928450398006995897423168371358718741713686673156907756397345660542226252367022917125463640788644725825384082440349484641289836914481934658183026989653482550688251618641970791069946270895522232058418785901373685395706087356384323928365311157685754696986566030324498118128208036244074803030325250603340166357957387031573467989170289197859707455997266887178975849390871894807119401881973006272129507008879011174774394732107992988048372862275586334275863438619510992848404054624859768879297000478259318660481729264708758354726668996851916336997978991992384077348447882479434048968255497946690468415972481486806327396041948443046244312933014295382233071182750228134458378092432473180518039019331359682792928352565408988464459749938255100075730208119304090265003853972574243887458901032926824773464140717562847237329037738769638931668784246791559625544952265733186945741487388709308079999398609709283283020373434583482156363006869578451922933719652691113091728005809908971896953633482753217394696676593079308081966537333157060776823251383578246456040312130705204199892163846148523675667445162309964698706007474208457201754447537189707654366873484855626325458796392914271233918647634772367274236048643250442644600488878229692562745534180547388835833669397159973657883285053882341940537156599201397973946601198029641388800352374202284123498378147720537269744781966091618158895657630907823892895652566991484224622697675915492035145353285991362556444525437600283373599498320859900366898825262088263369447293341831143871935022506192337390099230295574854983685810990723420493389962573091758449609368808132817893642384599073017661401536219735874132608693267122116900996852640402992168513090710793240736116394118955638166150123826572494715459399620330027376073339180899445708124760955666303570705751671045520731375351593926020450718087513946295899396315886967726908187683173493799345531774399008803850602023886581351016009686135146400640456884699819395418874090987620800661647941151851293355703495110957850092136770588479817264388912720463384618122393173605614444537412050633703799172508522587302069391713838220823187465130984071935331382640068021876558956777576438979536549125370449493907816481231763573837670705173488279889001413532391427977626450124842611641060317789802428609471031242081637504145099496277221268442188456751696049856177867295933986864728038833251611262008369659387547025143329278725064927738139051270012609398035668796790397011893279572609683924095367464748167345308881668988646745245153551639101165212244774963275183264602249877278681578192851858371092239927804145795493303931307757475514947992569513088289288364914596570975714249368834447609114329280274243779408021682497709572494787031424935703549431788098902441469142747126738406668814454356544054388616041334138549814554283425032431239218327961354110683538936467746806852245286568907141362945718057313542226474234994480659590340249578470493378456417341049088750928227036276262322291762535284688229939327590247474989473839928245279219567877257393760029919233829588594101715726265892509974785918204890113198791585371633839991066181594704093720169627176278698813931290175768457483170728466353202362949923348447361980212033093258598184101439334622624582651629260077954664737440483749198087788412095723166766526418337432076656824858657678444015196998923888202074287533390592353372453022106899263062140010466698692492698975680219421626538579229832555460667126255800489449981955546284471602812775926362912666184674763483758312260961252426283367860830823776928573552350494884642252080907643651207763454404975900187300391826396697309218380752042769791257594361046173949937958566579846354162971613652800521845829241834396364124378067948749834519695319527736585512737038021133833922329262217948948053618085983043228673495975847984208829699601124467680658216340569681624555842305101432521144840047389562559660759539720916686853529894570600996308621088866004950397806895463016478260741221245772579124021372061671509971226115148984150784568182113272895401438240508088165217969434595263264203485640512404346358504400558304327433065949046116415967804569283207649389830944990294437445863999461713068918172398737851693089635021804536460608797225709516582180717558188709469142737709701663125813659833096520388471221094430281866710374629926661374797113019973719719998634533257970978929526477607381071142617369197408328649016606654423684239715924692872522796353816693173161419712562482812923691188586653812433982966392889937154223649594536987333765056982732098211185046627526590026998105890403948567608475298304577577062728636970020660918992998834864885151848582962836723769223113192898850970573831532204669165013112410706949498581665879074229905042541918865656691715793201775128753487706486502533098658250182518336500050651160576849184508986502233598411230462077931781696734029625669494393088575125523481716586320600910836382961852031695043019192505083600774563254464687309737150256736091126730111290638659900826359370270725164853824708217647096577983703065697317592852956369152349575715375217385846019613354722241453919715433599170600866538899669770072193271899627173901322568079982316909541020877466532005695414937831040178973071167189991134377559954798846179974556729211580134880139787912441100933223316943922449564383935152569895900386241944469580548540964283307147792939401019887189076095233783279203490228980855159783697538244431605087513187860394379008011244954536105133539044736577276208931809253979610967303814858394993088825826662570442201182475850122233621919144869586923858382874193521691939069511544629960771430129886481691571116394480851156777109569426969320090481892423584184223285007393572128263725544940397466548518157084754660994325732000582763055710639359564861545529333124362721491086858994292586511866570286636053222875571668148586190956866183359385103395925095683810972610875113854656795615354157883691349979869644929283798880701467612500764432226084465692123951928996691770453118248872717927226444193443493264601473375930260458630925176621901947058628889479907495588313929969701564384218906423280375182392584742429769041915468594694902286561190837779969208674697655027897917487427781021749690103093456752910240842255489773894334864106153955789725647687952224114258120473175742846494998322795937313893068494900465656029391388353376281138901365754749950240258411267286997187339638840528269801037719961195663151209771986335226989492642029786962810388691101734082790727866806490920882306290636661773923248001169121570658409511456975815607859367951736572036933699764735070238162672368550862306060809555546759384882216013988107786511927807850680533921939367494884276940754173261958705317447465687790711899428317386076126679887333465848448361577555815851402888778055514977609607054425883366130105714010437270480475096738188991130897503946395563791441417995768676069408207575253010721129484106852707536142328435438138370701210449448086971506519312951801684682109188427567750126812002695086104078036797188219638983079059684107855964323234337538533216651056171608365444088056746854669192834828200950303450245548059492494141487702127570885848142314336884486849300072101557490406182500247895440871475563914801051658200788689230157513155554196107254764545410910329336932709756112532754482190867406224015188795004243707505867215279854900652347156729531880672250596817450859973093042297879041728485552529190495008672270832023546373683092571129765930016469528368911445558278293932822790751823588079486955228072276840324540427658107907017934713870854349122045358781098150582666358318068262966161467812547905364565378468220556698909054192455974049345554284009186261516167915363126591306576379871791843910834002441448639543728878135724783755930668649492457817234859322766157283984606632601470976599089525471058931799402605983453714950762236499364857111358885461529262326071558880130373356161230819771348688903452591547085066697033702786362715919432017591301537863800362744359851029019784142967482880487057916901828691007680929121309245859656276328300254503263383770868208131503255432048019779327335788754408561529566880973280033161891521217558886271822609787751628857394084522811604192986667281723864997697781553700595601707378568764323823755339235571002500722779973374209186051689570364846913083600533210804610578758924454854171431860534884976552863628875716963084529487438632668077041006989878396137910157912143712007138688162735247793911666525113928451379826743768925091538963167047462986618801180841622925746066219732867404511065262542598053106112036816706932453255487456534436788067299662344027610817161796814404848978369676705897233502182780226451870125318049440380815570316081001968603398225154686621868133391191861469879583239554216108154927152022372723606142345870607098315880912266599965811034430104111325338046554689962922532220084523277716163576936308838286286859960409086983742905225311637847501303611842758382022085496784724694240846059381767541171448999166490728830569336703404623404036590448913136956883059595421312142403385798933481989463257012284319836708265727409818098103442249858046064950424344840733496587909509950806540697870620334891485006018823616527767770679147243045499286060099866596411741286901850358141963724138692668357023356887873958033470951029126243786965557692679500009117369454617061471523045439912568054837361839829032149688268567788540415214372310545320694254431379914295890951672685800319562280677887076228520165808257755863639011157811064711823259407356602480143899502748825952121110313113066287860707869195132238098900289503270858283357348685070877458843247534113298988738776010912580739026434880114294731854931613631928380938862618980623116840320625705270198223439362073314658142478256579667587842744807978130620040553588986573952694409203012064021524218557003311317566685212640989301471122064339569302801813397396591742033285785218261015133127636935989597589419116084339893085065952394845425304202344206631320843072167799807842983742105390807720803812148504452229804427654614829680457440804912405465253808116306520469003443246647549865161728603032468524245416915746640700403880694539345779797383442490063466075297824569145197735278545286094037543544923431606346872710049192251828743035145169429188529230793885006074558217916858184085711036673745403891321627125652879735706717455539493309032505528389241088742493756966435370508357167335392553908434472302240415107964618550762583585943134698884403110291453115601454227862383633546532978478233351737355556984086739769298424149944328332331929998238400592950447367945314557672675440969650530838425508348852940371173259713599379260186021591248368379001679118122803964695086479739036375738224689322573422856889822229139109610075010057676870087558877640356637342703717002909043598944907270495340840338283032657429917697778657730993074379326531324732944149931331761087501248133533845023832476969314416983774126820289055173520125276416465402929391651586043812182669934798813119236628123850759356455949905047609036994690944932287897168249522104651192750613244174292782444464094831046968146712859796985912359937307872194105014075916206394428726536961714733053792790891880994083707495222391336809749479830721522605988763747810445745351774401506171628823776490844128918521622035609300133005302284703302119389767534922353621211659632372053909892451989950219562149588186506146787859734126561309341808931342572116590166185277750591497200025193624568596184453866889367823338257954443265570703365213874201349139883370665481079620230483800014097815154492074490646941384694206810186032258115614555988710904514063769718669673289646030025602284204523977785015230529314825739219333215093579415939488913656932103898495583472554832266524229278671699729407325634320196078068156350017728074752448254240991058590764666141408544813588102899291706723965846939722871122649820051955546375822922654697485659938462470638641095255878622286696743272693752201274839742704894722972629166977504449373955667597700130814530836520596483995028592410825980446155087246704511258007822268543896027650626116158318815390680589805528295659177099953463149406469441714166339336820879399326079888361376331383426611304596673252945664129951736331725956279562230216208377424308228200798700909203884469244157977063827711144554224626816599336005466724630962433842301181482205144180007223097116237522837471094960104973152645059514357465683089713745642785485500870381885492252105913637433866331883703678577174163847632901145866390892405193937595107019094612072010954514499352943971134043289073870576181266158996767861064018614277824828657469504154603389187409739470120178308071548704184003600379107852168238139288261044763363628173009416658420014542525417469206194669090379142252341075848567539087658016487657876253199021329558402788927047331847637476792797293412182378969211449493959367389555649745232972609658957020985181152845358407983405379889198320023221274970799479833934511017886594414517967947059754442337371290261689890318835612078718225041997657744307324155390087755183649785561509899445587868428709098132582370961595606798659166412844235327918104021780458896617912272190444867799188296117572004430240104783905561346951251468287935432153169906220224769335520156821463972587689683762666451744853748452380939368379697865504611332175643964843497314141808534717431645902096554382799712083713137850244625811145491006152291942572234352585180660051880728301094423834539055680088310605772459085856840927137454881184395326451903375716466887147659283178589449612595940380719496357805061230942194291027835155395594611752507728603489819752628114612467216291548623075042826919738163895099329894568641403298046797143075879168267083495136464604736504051530696957413258818366066937171047352297190557907708975299077285374766317350776213551406736662615785745572142213969363280836457697741071837654798229588106851780289129222150686447566271731376076753024652042908411974513705676702687076873435518121671863260386200004469977721667912387721589559581576901377676801146130934252453269071257418817709739514157684894676962476036260706576926238052966097573765388506462856388636176008405713221702130150502489415265638658382161643067479201114303663790474804673050133054722831733159503257652873824163279513573318889316025389021407794745451225076218641634383786850909892888151052571109427034472126614906216371253571049388862865465849260372631834334576523921209262861399867131835382813020542369108644911718469103286921869231508053575691436918677418059759100019328402918831551037805065981228759233013664319885770958561007903273263596167330978319493121010366523072602442745848563555937712155438598425288777618266596365920232347635578205108885122909907887791667901718409873413855897805021506598712809357079092763081887490671629611618531856715497773815359805587937023415355354624983101204896395157564317207766294119591715347374635387352073294252383436784349247322221790038542155668667432522192909853723202412283464297063107465461357423650424613363999438602366422720665574457671675673513926573365987267627172661344899074612639347820822265138953477668504871361477082105657369785025523382620116562850940951166674067112965887250865220299679375582101213675861316283183461562328875030802495234967278522347353424748705826374692865967089913453687084162967002077182012422223107735659670309833501369793481693156271050743207086827925028977078766338041940234198152768784014425157493479354590627221691964749446094583624842330135718000717376418164891388460754109861627179238641662616485509252651031880893630766831658350544033019440808708740878735786952769712815983656375323289253189372424665060062073505680490085834680122016931519733692748810540522800225076429316204056529535661291570467419915951141049152227424450134423151241846789690539038453569343970300538100647527322715858546794744548078579593040682710575758885276644368253588028918014314939293180218961789231100590402980032418013084866291417129930777054669043137092567120664921765710482669057219352333770575546001731881237803053157191634527779776897594604203499487856272163477287609625045088440717643796749479295876709129185864102127318064659999685378893386561076524774373443614022424798650388181353709829962123972708003620135623584261479682670145417514844853647424883970846590469503165608584022588486949522931862422309548789936303046163359414968875950052263765882097738582910043863998315441329345876517267490675501657441194621481892776309445849520154443271963123855541240167070639670705313396995820228891368299731556102137378756749674315588787172914912406684295890069144469647318563108413206337035857762773265061113917184474573331629871109440155585700165151243400171287687125469301506854334054958308049203235467184038288791831036516757844660429202673286492881278726279562632873289682512119288044318948130524144009309034597108658347928401663810004383060632527868474122075930171931979369011873779379812679344173541592124517893160192450420173689562736077891961004529324285064789362333204164737139224000324148127323293992133401585183450337586304865306702229939494695788352901817593742816343007922682191714663317175072697772751029072917545954388826194156237495683809685848564382353284710961773985254299025867959489756441935591032269161449735952211565384089848283341549966501240216511683147649845656449613399599936714340494186747266023287798114376661332173076871721553935314758928016377020641646433068162749178216325954312474011094263834982147422362928225260470517977411123064074968620977808546642418459817183193200128666092806557598124411467845276661229556929796261108207063840248559531252324865842375509930393917139145592700278565695414288417956044378502140379344056118161488425192965870369744982897945899810823618438928467241040487309547746804148939754175773694368246239332327278317495447330287495571032572491834590173255886274294286483197879683619672465839049721852471171439073874638920213918269123754077498675780991439014706548438939458386324072501123856239598543361913571984500814784722838906847117454772648961234866812371968586669473263252549773162222038732282939493783672695125901050652050901109300779051201915790776674728589116395292189584402564205895456245595685385276522851268848109405438164369496868551772959535665946687053746423395478291901733953307553694655578588610908827962997146358618373747935157723437712704119972766855424333105822211424570768116440190619218900929816059939663674750924988508353927009812798191186172560031653985109824847683070005026399244064020554693933249710241620498740615329603218234600907008409209774582671282010658761373904784966994549717867667629829835862997002041173326320751152014549836065485879591266426439661785788277398168341587911787612001743682860115531023820930936184626600515909776658258329920405420962798801775638875562360138930565565772203369086360176395819319644489055331804376706265993607361347233363398961404547752467414623770521911994729221716365939704996760192963558104507923114745650099057256878686492990917590116338228843074938843725073649192932380803429946449004678936385700260892823991591796945854661037320800702108528283728211891283748021883720179298444337580649637459115528427064856795281557942223273234166773434780195380761854028549844888986977373400589998479994039197057613328360120525539537193698284094448871567307310596280287831816331257137798383468582890402361585074126036071307292329919058394339187283873537141522959490565800382804866239869231366971924014219491524640418128034278633737450175855116633315860884710493586386608246675426406895483219035308011173330526581286466425070958891916726988984247402113850356849502735268055947997644430751522321695619506160829988440928303361606280782458807304851765135606778243783579679815317107336484529802800720063407672529818091426514676769386504184965203152574455855436987163486831621823966072022741763711202321787283224263794944080391126907247305769295896722780122442231804735149384238942835164951119030428484170221278147482786354392292144133012637949881410327260654271362060273466268047040205292437492412305084548582465920013610648632388136314545421706423543561871154217358721696350425580759257672154016248460176600169700321197492702320508084784391707092372717285819729678359385978502209579625482608555147762009942413556293046645738654566266574942354241082531586740545990513955882272395920963406184186747625567600925369320870599775503683536881372773645718987640698563269479275298511554141959287680847154580864125556607387874124375716314776091912077091664252111454529680138924130282740031012975196148319608419886624441585452584856132972122266735136737452005016264897952844747045767920574186764449851222959669368109665524836657913276146246710032868483510707319165720470824602229133072049048275834460396779458007564918951125435614999075970992125432097342217125839571985976440990792655773345857311691084587831361049995761589865975560477736670691920010747729452597608117350796962495928519213470511733946631917456889896379243239627184239044940370171366946467554416035474876149479217179582987846202042829477632824972063447923242400299010951627805200545802256592573800057705350749881890979324501305757144607953275103190816995636851684183171606758697435417141581341277645089531222003089858572809375514011781957493473924921624389703340260814848189232989353560273797731541985612744189625397531116505529152320712114118991715387767624482876647286340590555928277794748796442219045387305242171656098093617055247398932041392597015545787279733621017467070284753527243163433176504869639963161752134099471152422303644011653505230895979452499176202874105734294223405241300828677016936634721707800984312206200930709140465666139048959029009185339717113593000430969598515399995481733268847681586177322995414169670032901596019607130706777789631468916753342324653681444020077464735481826720985837296075172337092643796929976944866473393219493424377464554280759745350549497092917633211145672577403644308129866712182077541700390513419611576020808361272322365168196282247339344556268048362922494851839320836145091009297901681237937969726181796358603518100855707000979431945781548404946301718366187970105612021513987668742719568367863282753096366381820681006876714339120991453320584615133214427864493169956448326224152725838869511780956923666555884822053454576318310525209029270079279816436675019712571103578491536479644179907142073812190968264652507263877521658632249471709690534558194555896299574887121442747222793049198822199170645375302546783510228577940175875638323206942684791023329430272105244739097261887175502634658789714015010956735493876644214712313671405890549699324242675880682424331273293594441493103096919380598333577444970212450949725071839881812927683730604022943758835558215623008577266696331534537382470918156127012206632984776078837058289554570387796843796688605284917984100111067838381157217518624305552383166130487728764818696269988583689509360302175186027493252185937496285855602450936359121060755197218415592414580596682972048190261994946063012676261321126155925573080342226747145562586751915279117458730412036734380309712513884499704874649709705485524529940638715605048824451856840882470992372309091187562877888375274569254437188571820753146291770139432714499718866567116235039732648457841280528250133449700417685259905127659646197840567902399160619952626965144467549734743449350930772289752605612401797716313611547860897886973306214896714176742177612304226700356443678079018752221931290177398073964513903186331853997647295392291853735605992204390573143215298845000489125437131106504203801366217062247916308028891804814089082347815403430675229453328257486795272495282894635164876358749071419513697078209992791484014822107635523198084348183855763146310424918544963416969795770583053628075336975131111379562914750580040020504734828564968229535934196197543600964499811508438454160790691872183870986470452087813772978741213194793914550810801323069075296649317893513526946171680404032038335345269573704291953858106455915550179294002118498148534270191192978760082375633097667435332782278525043244508069619009485623860588676123054162261877618819173018019604670274409621087600617640361372592061544706055903208780172415943878383226937432857553271689985779652089828812308057170620056839419518099415399830322133651980750992084294358017566285129309431502114541013726571082554089509789325264160363336364515466157976923741050735624832953637387520647824631061710397620508197319996645399944671174122398298111145973125798847733036887893714212625408560773733056464377991196745381510727097208468708582241052495622119510386482203582469690110635530911864358421113171695186318060042885381899705980375429161742207555163610373630258452168507924810044428414273001528960311155849371628886882449161571339511396619613901736349619905431594034192049849188311936014212102589198754952935772124425530300964368561255019661851867542292002688772854086942528605089681788024124698127276613288089309686602555085009255328341888015379960407883826819836681125812171558292716644828761466543756476721099923072801467074241121338788264517676128251956776216934797705050431934497212879022949320947202851436079274182916737283443445297094257199205407451799416645952795929095075170034920212799453842691849174239041331386142053540176034044637362497412018402691279866041016326277778735313568083805636076025443752969900293266441207959983362889369062120721110869757711541781492257517885581645565127326088113920782778841310326774900191519349511925472122604629231699811740286953467626847344821789025976205197480481254747362170404007666865112664627747906703549877255181337582171814645400038573237880013658539328696220495047687386838467619267046767722976746861505138121941900037543516603618742851920518645707477600320799122985522047698746516726925750932133674560997330755216127272555534467358546690401021160256189263680798721984721153994020686628988957207644190683609888792909254065077349831149138679915649093608077091691381521344647786208257957177543720625830998902261957671975240290955082337846570570016943625857632228717015203759633153803404046888818345697435307380197730179416603756049610054939828664101770116715007287873099644025723044523259123806837447995709297027835421868141349407338087619900587027011633383824131052507463160866098147978082263616139939489218068307185586789670383098740964063170633669446397873184039338937417655127228686150208398559863395602129857416484216998808845112983472819693628022172367060365082549208057481884665215853828732476243705231160564178650126974061066183059063275941196784536736681343500125563458405649049498584833647367733074604214097487518422310757256368348763879613526548078275858827290472247494556302684516712474718634315858930614531674079581893354687680564527987896526521759971063332165453741270252663905066121050630650150584147634287804699319887211338782937020730415733592282735211110933849560505281848171739603359165089713519670204788389764676819701524778288795408682157722301764403704861018978027769952180920683892864078543695601309124894369660039830266325930337453936489613877158276141486814063701482542169929666372919235863709472151892221827400668771320755028511457702926719907013804356147391702590016825493719121837034524242089678086708558824457503941041609047915694459771241451971971654717349631094958937553859506314239484603424828476379392005696602872131421502505386091887510600930593055709359233459667428750525120627150125237448163672402053839575564682721377888001224552607974746946525190962761464091023867072367209804598595877256825156521028404327958082842748465113822617671910858602362272649683900535481449995178583803823646641717667114105195636869833081814682559269932516937969746967879651040349408559747971348859820830033688101878402431112672843395730148959603320981407638607786214031225554388437794205402937967408845658401121452504744132825016934990398104568801466333561578482819768145777517727900776091024303028211335045629633110896822995198388335569305601167344543735104211607688353660473850207093336542283771246692197613170227263863788981672644335976459413048057052725185717871343635909181754534134163253511516115122867559461492843616582808848485791064134365780744717330085165748569654623655832373693210631390395911208976247606376326977918647913012478945667780139703170406003575283951464050895373383626232308454090787476845484287971561895719134279784118960177218131265978593591009954688476775912641818480525290522380100617113050632169195196292281547466453778847752023083558425896426621267191143506310151384534933931467965690945643263568460373055409607625964627442998450336339250526794572652169134410207515555688028967834005805625204645819164244788428080323020791970739142414911234456381237620683417325587504463117171917526869014087883946855402577672826332580984454782415526532984359536488380866802985067192125986421507628179428556458086018392805581525836342983193048483781719335878597472798930864268201142727660986651361243019032602781436267787433686549230564617742142735704956087242025492517467335726478988205867436489864796342718755800636455570086492675727477768510436964000154928056639300064295590962163776150699906769848615076780093548175233911868377005050160171817380540331370173058308008957407714721855302473467284136430895560012453811747296848047172847765174964903983273744974675107205362092671720130709291913292171018979019560094455726452733421550866964816549007115197330124763546977281549987708861144574905319278923482064851396200105873809907964059903213526225306394364194291298736477866006985251806180839480752371924514085037336506698463561873776166304473301762159176323685912613131359772129219775641197532902228942839972956690101792295248839659036527575709670709381357408418130710937422920325051449063962785829584649328514737788509208743082583474422505477215183663116009734437517871261416303362870630073811275528690989568022234538975391668253636274081735353924459388333935532404121553942649435962002302380289795058101875770161429964279432932973059632907777788548727536153417917622682657210341007436032685426415853341267344616561662217650988721538367453310390856283592941295059333328028843693026150367568325675349364088751999878312428840587656009562120157087476499289860705686898007455690038930312902348681651287686208965924396164874150554108260160832295067881051387389392085324371912986082668676188775026244858182214274612495512834695954522215519183247373302512559842914143639597421318001064691265903332577282854967861352715136226519688193373392299207946949599470656901130095693150898035286515319691333804007585871798245298459276419143804121648668993559171253901234587337664196501268244769656807774785725805210358194724680889767543764732567163387909220601970424845274075825671794006653424645893881869885531522844723902429378286515076453320663611090284731934966464399538263945319542418061367885370806929508612023032567594148220890611075703531294578141499133279747409774770213258342339868422794576771433381811236712175695569306616296893238151913032310172451388758223250785356058860537807425754535020299660466940191529512792321596362690966539290305729450981263570394092908652793362302946821152875175385348169330124075725614362395112844743889775227432080401155879738614864072477598796184605432628346794006501701058319502119596974874116233285720205807245350783742666701519674897628024834846909865751773504028124499013802531469031605692339048769901487460810374624638035197025547468454683482777460407465688299788721907497913882001092650625846307420875480726141834678475871831120124930470853605814208089211433375246740297241462904173092743710234028781106990100493461332510345320052560387408783643561662579653387870395776215140181128625716045328550934597810026942246128647685348393461727994385391399586703855309580699570338546250054118401529300908515472445725193024248509501980034230426230868628708426402093007420804746048518975985311097889151435890842263049847948643844825644962154018544977612373332542861162825239285017345526075579134528624634170647400539298340060666674875488792050807975794592401782327609193354437216009104979399652377276490883172449968589547839404164918917261439057828435044691950131140680773531834697317718345496081897637984033917183512244167857864390588713620594133990035564460798140624307383265239087342951013229685643451761225370350154762719484707444162832730044577939924863895864940075818544043955417778251315451876275169395626581626963241977930100149472809459536485164474120074029006411424983973708625545176464159207487939001925313150170039808549900750974662939388571523259245021398509064797172018314469584484568457992305650992027098977063729300809407049485995651198268767485564834829323505811963260155704653633742936749232989728260509734911762227174694368397855317398685700698664331563408263591512848283803964879058850744822872917548053681293866264632817540345732402588583640236747214451541926826744054251113762376746248475056211119817529253469446015958289025052374296426697749419806163398133920298813379762628204675970044915482267688164083114333328565113729278329531555018027496777831184395403269633978207551375701251601115311023190165100590759917548319341235740618348610421699721622294664152363269510242748739536938359891646940722551725658812088462709987991396154310673872106041163423043981607170166502814768635318553752608791779479263424166589858234471222345533717995604929073870110557475782433368444095720056170540182229621086616434032871815333662770373182692216848992167763683768861511762934101777251547846003980361775089719890476768881144357674605157440186758647029099343700088349097425524263862035700542855204074785006801993238730970404027112630680453120001959478524343730988916581636244683958569530149041116001702636097985053832666181623610680089456764298663589497211632081888162261445788109756350421062234726618023124250520015279111178597490665759316921671279935699595479174837937882606715010243442996071964475113565163019629583814210150431524237479324000297717513916971880273877636356741626176374177639244670218676958511410151903170159201209687273303276239678441860909430856849800054970724092784260143120335910315487260702957444498938375646335949007747481456087784291147417356793878176843601237347014821510350046396869640060893553213910688340626579559937262890727181961230722648027428043268025826723957727037521325508720017076939638610009329445028358552035281546278325746767378265868540996863398005017334261309906417230693344754823339812106548625378801812088490578080735497851757744957416582460298333951224453252252056661741637906696207787350566080017758052307346065532295569566858655302029516940157884937403585636886490487396589834754916547565454606741746463937135604935684250288709459243096114217750402704439046847623198631063510991291762463663030885882963386745644825906727351173166045749246664587441914787808896933744553447110454744132195068640496009169956873685664367167952776703134678480325989483264583788825486643362900739670968376939857045807840312352443830036811770936457821985525378180681007532105368591737691223409369777158345399311158881646478237703005108332975955078873098473513514705620733730849550907935134058745988096218920996402142770849103256222094930758459571026201311018407140374831226895365733130226234646194228004499329131956692124424874724373353639236826191963424821936823014185448445663501483780835503517744977855011701191344731556757349815815904362238977852559741043055448061429513619750895285233050817717709719519967012864524717838100712514595325286318550306455459271154792846445072661897311862636656929509761647284822352929295859408930403344503766282566745944650767069212885452645396333437115785852680762690089254498344730300995935274816588781854580060533454052615163383477199819125174707689907399995361305404323569682294053022643631743843950421043647138480020428961961817171923608614434635838471618793975458103028223941304678947208161419545534421905434055390978326741332481708490281343321993434985925247756831179278667639634530197192121316434448554666528228641200071263786646703302279518376907776990722944858698287445778836438508452995088434504392991084031048873545540545015763704370453468651330814664276567978344998033113814169393261449743474039864329330947852615883181085002859208673393601282444994341044791383369556333468925561386899048101408612301415042379402381137101293433989090805584878312429725482450551348253160492846108983677367416330744437035293371923529680204217494052984075863695652367744640708109964381171551631805470351384123061341778140443123567480314531613209840860377118106777464812449477851628432791659953047458063294182905209453764730992122382499218624109925445057734528415767753616503128607330438212080122978153079525087823362058994180757459130592724286199262862086685893191841837221449993760301671077052115903159699003413006128789602262054239899789970748574035854256116816974030633233210106138309874312508972297346918903555133092237821677630553946076645828975299630199817097776207728607219605678443697526351077774921794324514553969787283437356961242066860883515842391087530914515690556501585842543518090749994091975198746136986595558650919120240685610790737024470991002211505995278090728685370023961825572976472351917479639582191655285186872668292025947476538168379344869070647125313370430408057670729432462263593016810530026003157564682039340356883688153346100844049304395784155976776830320932503114922023117080674725619832710241119553032540522945323539123665273715688607386670449009544422143743693179439887793353362083916983684244287226877899700901716488178785898692408613767448901249084170857751321807997575238665445821986404668934755339701693761024385982380830829848486680037888429348286950385405210339116268539576437979635499411440146176435644998922702843429041225341146757281203918040204993002321260592357554047392051989368208337176547160982400138519812886810837091780561214022019992631029910398388815530452033554279803820596085012643354321977331735783169659798303598032637543741902936215670571561713464522306570374713443308750890475605264424345698449279807788458918394782446171798592746380797474056447977725702689157410792363230191258300273380125349367791990013405663144241277133091385669494524169163780762280120927917350277463760887896167787485577567089124456578175686468965727986253274905108829286903478127737356191362708582790375850477615423591100449198840471682680674645148683025125878113913779726225189582707039266490734261369140087954598056913496422462046478745714100958601187434436008061088007534042855631188602986734504031686342163198280884700826412035073333090069758459953082913870252792059454646783287724050436529813905523380420336269398232875002734877093448081430087549659593236185673623011771693788398858494043573071347670396047027248102055145814640179271793416044896205171734911305221963388068302692596040177694744564196058898002029661948568500395177145352056095711517541938203116318243577931969958662343788198696990905296427008661326220369350571058491820997524800608119379883959807354989154862179146370907709601330512704532648322419178882767641119974410261213068509276624475596358641522202022232927229446634227144829751755896772493432606213516518447994309355152825680125880224535669392733212351400276477088918929584133500428019889428452125172195770669705395684201282214736714823765169287007749456595591320758899419775407708638881480963099886620735883089640777912088349116949635292337484726546387344276047088398473802555053331931917091922823271083189082493961197842358087684453090555365830926007625093758348535632240939431671764790852369101227108976038656843188038581418854420192416089510459602524119689759644102956094373229678891531000487132816490943060096536805175706045279012757584326060618639892588592724081597555289550224066153856130646093457318954556826878349978209158438864931795390322173983840284182886201364945064919687168445857038466145064580277682947179295368493637824780604358825142630065461135522002111741968886072091812315325652208638298787786304605870033649767150771519690504376109633147996888162749391397838884883322712664256280470936165668410482618900249248789272035188992658598584281007221560284503713240237030582661092241843655018023744230240857239780953032857644325131915711868017752759037233356146733001731127214269409092158805815243409731895648590289342897373740450784217361839639938066382138657470326861183858571585770677221141524177376101856372544204109146225643551313282704584131517877255391523478537172792686224519090223939751511687844604418825587475576743042755780587604937564274697860850942824253821902335673668366892719182487592348749762317314302380244021881102265158447487999240150527034427437447176906839429861473301960135905785938325056167294195690620666456163745233936545805949173515221386901632801491844219837043854342796626760954721550558209240243613597489552777756337548006808500802240001615897373141653721149143938772324846282423977924907819733488153961139828282850078649143155737530499124617138289755888642196855808662909232875437602626814300984398756596601932113677033357623768751717601235763588681872514596415606828914479095343395502161309836963051317005928234080489050904391247608076253570685650764849066267836837601063059395228157253872814600713709282631022455333276173660657583039190398564200147125821560223948556552486785569711515233041328638560049922606312902096997807810039213248287433562499842832524276108534008236169520663934027710778766503097222810578901038729850011502667644739561032415783983863931717781489387820966442553777550881916009734919421308336596468152209849483201685916147826851404241266170066104910194214897108303714609641208821783906093722425138549245994720410795297687051794823189403325673532607614826268746604079078928258787398852381883401248172745137976844261142058167669897742225336896506008624640851975332408702772977232412513921898958383111472587599554833631417651898657336136194635904919762662908599519133150918437501674084623161072588775728156926960384115539868693009178708137509644270704437920657739907666827519771339727469762062167958281881953071762621735747622049593448980911298488365318694309460670087005642786874802065421959983206740848392873492235379051211870198144318311076796235547233667950063999486080954476920495764854947176788048876612253183158514120992264821461910034900575498076572538143555119748133652276480993760932726848228275076545747427277779740728400793918158892828291804436898187563670230612780965935117297756044373666772788555225553119112453028849763832693729967108197359859773153579467830127256678892571280539133003234130964549241496195896466414583303133078696987577328463781576558430477428516598817123465355999649026294176590876293047637589681780416967762025695732578676941185089045419799844491911220741447671392093386248695169402605282143663917828716471297922827313164380199101407725586175197030728831432852737169748555658551562682193109207981186821828496960554330680978056826206243949530335385027746530796399838339217499834014682557971883306433259980287926779848001940432113761914859489809623151240164000629171130078818030572930069975213370211856106496348803247992433450656898363166143083039415861570073854452193529705337298572555439983130762891195518372787507196565146517861508351633473848437033753275116507342544893646926969547414562345728273548699588771183808706467620293450864268684470679994714305166549136025120755688597081439545779287883466498013261611977410040940889717355399407453219644956200275953246053149246378170870851001035840703352382862355358191853073919662912055638182719200519002867324604476531512680899350678608679120910594567613425365177811406948951263137806440489116462942093620841267491140376230761901821594838770728325278911945178421196902374159086118051469746151319198172994060814764857193843100852892441251897765844093128454079139246336478942057177794736167281139227141394618580171883878292891152291360483222963947810204221857040240644304817633851022908746160106584483838846688800253761700375922011021343329661040795792582969934545447749050238208017217184491890119374693477807111527411424568782097087177252403020997045301290231040248800470832595032567584070249645825388102576419379469835743078638448093009080580287350193071688452117513664229613346962093616779020645211747092545660752108378458777172070021357753262880930993986430153695728341188326511136872894877037201861902537341625118087287718419318023789684650874866666471148890825259256258652389099698499161017133615445002771604900396855624553283020426429517526098464878467829489527597626302411600157209550241813127761857978665620739891201486085068326620258490461269994362979974524621114840727844062120149966089707636399502308372170980535189699931486426298205630744579082105175058985269134824728206369041414698489196953314450314984258775049343470716264063281505661903121057540092373160544028928839070140219214642059078535001026304786669539503238251739743437702226805086632019005517140703789518742609980636199307787036075014567698609987519061811134348736334992164526192898035933038477454583680248574138470392332990608462159963926892967320600948759765058725670755798159860041029018324044390962662338471097888417070056892765957356321941756544624074184268276769067456459692711980790537452257119613757407902092424836542152497004316554152529776423957607742772084217507556113469768771734344827150992791797139866658967494674532861133194286591598046747701535105444748278011279099501722231817828654917878349248665747538573766255222693578157463550455962671384790276028239966836007787879666883777904101294747666540000858777019048031197079677391140146011568543999748035513514432356711408737151365387689539480468326909146090082099438137529447714989742374427834886170036802744391081049538460176900286309441211851841257513371019715634412688463422299535968366646465578469172582919664396697215556745518186922339652995679136206033919342574529875571855856043790530085725585512811250367502110803208611425482270474484891017413143560645442419586011081996401760113786468230805813943849757210094984320397784310244796611143594772776842268004508255259931972113121081587439706847814683770427959295542186600779462881140641744486856656104505665806468113221510549985220377101830231133430207359184614762209339219820797192688456426741150239218194882547646378861887095357426435736639341209387649690570568780174235609403199836032677810285158480637057096151941141205270863411823458448460944230076129574492195492824012030373286864959059653404075610519745267825327602390195620720434963900609395075237761009676433680626093225919723273900165390017547663100106278826746211433192095593351909415339138931387610371897201765640591690931481323548749943523053067882757356679354647118357378795541459214599921343249627946037745006571626706105719223659296100900052028060419516867640462251609838178930605370522540885337933988703266104721529766932554665076623617085878377278815914937969184945929965007129659172383507307492705773416528185371721237956133947625179521347975018926233760747912265141428644789684661827342276423420140981706547362001776434896256491127339479515035116107977525764596380447437226578645810869071901055876308872999195944351067804790551586004304379451998144994193193153970825094857271801878364163578574199285875119974572407427808418127988751000760657117796202223587617600904809719000194064833112432526904890007143197797803354719402040319616236400632311689981910685630871919400386347755059094754530618509467524274426845351273732797909826219720235716228451129389264809422933504278665484913065475836549100861962269145758752762569066726762458718302834643899510157087971486434844477193287490395240501433157126293028710016436695099488010952329436295600489455771921119750983588441555800613008973831323172096763840288899811831415736017001548572589684774469517561075482831748386732124841987057661235217780173227584401367006207599336828281052126597922308513697671397669401828892607945730013743085465319598819301294665702106045637107328350755079189935277716853521950463494383282537310407327445336535658977845505206613330061606985467233485711246449461962355467576357334635570507894582189560439904707500849213584178757983059245287670832133431585157696004102799676900725609659411133376770718298633062931439267059434836631295588663029541104919848775397554410937651114019050239388935033141271100252706106197814572738299534923030767806176687310650783256535485631754297706341824616535617125999254505550000774104175457520072775224898513264526886971491452923384756617306938560056752486904343057501601919100984374954985382292800532770070483035773958313963529769147877174383058093866563048895406647096682740837895135944825316532332647908042463261521727994565878473975132115929695593194826740203962891339839305155028114672018850422652120886001622914170122069577661345515001321548814286927718572497671468522884165591787394017621110950949459782987781542205988567649972717124469701051309426857075780889064331229483979279265011386869724055110902504707680957082514947869411242221494235832321916513555711187828838254108048969771436363268448466654950576911776400625727970651475974811399304137650572172343009098985499635360993470602042515112969099256214903154560594999054639095285076653902783388927032379723416050218026028844766984525561053884833778512337685080883105751527211226328114498922286889632086162410139853053999290639182648151444131741956944965781770485596846263628376088552232649068708731223526074095431549806999524926016360648347984634248295844152085494490318391985706278762983544218388838111986204933860587925612266340724844878825011123593192361456555898307660794015562490003492620589001146867333447237416435277460248645403034355414886782749058223563651819338381769364099663857581199274963170508835630921354046353309181918416139876210156637463967184344365493354626436689790411410920296052980615900921020836615042727101031201343108229893427364977910903577874686669626574097980523440405662954995888954178713797265401367077337906958410106442200937252916624664993702602343394759965534679971427170032381254462942695704400598229391911469909047526023592261527946584837209162913041412662114411466248507342928039157907799307255231814172361425813646914489241145274637906984483401363306643558148504586042666701667426314520652469114803778042584223388256272931409526874928658750943370512752122042278801581139058775846961462863689544580095741603097088788784016253912309014262002418589449217517091503302212427238952923474981484218956373664261694866679267494218016068493234736296976586720052301958224722008883083594947544700530256333004649843422758400684650043186184923024217154745024829739076815753673817460911771302970190419231808020465758687859952740618491237014258171485712396059548331869462474454610912178810049705848892646427880708008150811668754074373931868907144991826843039989387331795952726633595956633423133816267219029348068847759412900111853872403676238828636466394889683307702187281471505907031668476309205583550703867445645147505696221605349132550706225530582246023846171497376304733649003145110477106321261533804771667174771115259032865775437000520223123323089893357294017462277260326467722922554646362459811788197923530219721311621618549911797849647226943172568144017294735346768870364003374902426968115844590344713768542978844555375027155388084978567912489254874478504106647563029833160278286298779903118612606321506728726872284628443996603227247148136873950678762767838450223160009545091339065155873238853815325953381339798517205709802268024530594548007959074205682767625706092995643201526025209485581653435164876422363080197322516011929300212182774308752952359455922515731516507237929933348584289362596311572171724174932212241627243787456818249919671742259908594201125418724486634430015665344923750482217273394178189054783119230331436557099587553489715399933802964121992061654050490067655671997641814103347319571116971352713298943127076286703187371020487735642178457871240518805778275552124721677725751233402419662081614508396031867966317418229805029386259945248374021436942458866322483248625735246323699647042024045175291629531227136898144871765479982099031966529010007425866068122687142297570522981732379637069516177374749691237311195387726151252206054280094172022064107451261761006035969775888494815609795588504930664430699854644385249177623898694170990627042767696768068416411385444617226639454236273391750510846348462787627217149772338289074449772057790463180138898371116701290324861398481434282736637707501714546415604744121237868714078889796728978629017043605080682012241717710417688645698479149760167040876179150712005077584143912621081661734444013096778649469524282659160104225831241726121121017452511595224677834106375257125962767178251192209577489855516604516994420893789233041924162683251992051952084524413137118233451638051557566306759424794361126448843646972338324440857282624694918946620529898106014466247082445938449333760559144111923539743138146587233159195567980312824365860655200529303581700349862081404125489045939712923028154832589542719993670021858609319866138620667937365112271977448266588411021398232712497223945663918527555540977232192130563022021637968966898130318203395271414230833902033091812594051947515977265837648936751349967807582749159394300747964373630845166045666019781111074058710435345951532003042696299999109381878373001742969445366517667628200335668613329969421826954447194913926101559810926292673609315392765421245123762680761308415119006507469126698636904690331233570203083244592235367350439131411227927680946524114286279210558295952431670000170225339765448414558947665880194246571867169272790820554161831480127614578918669624566602240803767838671776223783398950472883846803185056897334119234952632630501429482394913866694902818946323618653681625566303629920351260200914235113643381028870804738185664530982740334639909215878691922553600454007722132332020906694689002960802258620341520593238103943141584743799679490385820862227935736368808324027944678996349046132668894510543167134460538909020548023992174765918354588537600767122915457218418282756250790914170598588590442839090125457694847194394663538845050460008746585894383789007096869448912154866467717535783735322087015171645928494479548940078990912430487409146633731714925505496349185157084320631450968954485476010169163008799420645270164554916894119932619465437765768433310633137709181615099175566117411402336461597765448557362265917566827260106032676078756172415514222654262034572966583579895525523198873516775039798893468466315136135196245907498685077846775510371542592856705036107453269657453125150215638932693506201285954590499309424260830024820943099689814069540443163576205601636688862793677985060175647398047752964028032675976180895184579399665119313997186893272885530125065751321823102509083468427930175598360445315964548917769388599462785754851102337245876798611445447253487179878997468972054848251049218002804660027526467126373115290578932158824255014306860756373347840689575049986639141957860148527639899300016956429748002204717908166478252182623169046160116532611938298255421707354730479642163374383599360055930876610405924397918005135787370418868698095258819215318821902970821242156461202563173827101765639795860305207809522033807126813322687658514644049789113786289113058613164942322680142974426401342834516721682036385536182012486935979247761136103922201385227024042665696891778787391653140521905498127953356586570559050354459415503109519370563683135422096918345747178284700968399741534864780375238661829752425847902260197305847642693154309287768133476451943237108073723010889271810982692556877019388981133700845787611878882190978404033024098175755414626064558853007169276809283701406143879361944426106317117307100009745843696281519630168913247931439518737147311244522259657799654515729857752947117087990275160723575806062104482729768899659078775987528661020158096610916237248324718336658161531009398932175035718559212114825381894441226318891367157746946663897444443433912500256166584357151040280587751309244953349530425212925304900260559652699508383221520891329633948049856593939189676732176941023026417401740996678725916903041000244221984239295904809204922712389868648116409268599568570315303686603369747665461457629302370899092149989299155024573650292353471183724011961612984859350925370731190362918503293271067235577744019647742609135363281650536364384433061586871719698535614597753976869063619374517604553217584945818351577990959132909925905155819842826537303750959669108550803074971067359220741895920488919939610723870698984147158038165325707137514784972693577783815080045081664808329683215754715107445913840564144997955008996075594110949809760010559650798207700129370433125205627051484131514517239725413880128053469546857901933829724051580127706333127242401367331085495597887865411150942067540957543538112813336375959691422521723636206155033918630624604148554929495934078733853947162715824084412994328683897727100845102614905546830055274450740827094755026578488559810652391806523835886531456741148073091457074225543941465836166112956807663392035095904267093106434728899606437878024768239755719125984202976692743022074193344647222258238627116743514105384929694342761537859911832854564699788323478670089549411613085194866597969242755181655183089288293544587675670025460430870056049736979220095919635987689627738325616738601370347245978244960666469028233874985265733136637663617155541641353459399254210777845207066424468677012618186526763450018617489349072570012603385865996952439907449093161581319002385500547217378032152632939751115432963580627077465179843465672485403912947162986508702850676860186661863960773301625188789851051935287846859064107150606186320921586263083517692041111071552890352051429647202581540482779700613353688330661606422944476451919179702621674713675030548731426366012986761768838141057790367295129962586434254357387906328204858222126913184336290455093076356022720384574253392490664433056198474086817359552969574201805893293062079566524941696881233014539063920450674946332409146471750168804245911964877043157129425377254460996077028205017428080065001754166173870561193331194376361894423098767792837430363283276759880596994488786927383431350483679455185802405798853180934040867395312921631695891238172283149419540354725396115111907271141474267513077212231913894619867271687787120891199813078466536167526247208709887356939256603913228724865224147651038196565490083592639612280143536678473548230054301059490340746040347669162710495940723275723481837648507853372317642882677344620739127056927372026137176943736845781621044633039979250833352602507608027289175052140671400530610375265893900818441547173123253494943339159643660807996290058336133561567862462210017089390037682229200783311009341304328837457443278986452891258426321754356132849309623360817784564853224519065345303366433092448028519214158701632801439132719878746861622207717933769571067201339823496842184553014997707947983782354949070951092384223055657174336738650938301925937614257612011118148947464566379914845282116301685090107241513480604551380487356447758777622006753936294635950453479258506006364718841865749007006059882112390265112078454682205959247533415747920308640954734540447449436190708213254886988596782670877207499344277117293139142503627733211318671047766250760724677005007054858356282873476237771434100012009974973479249540782315445322935163515865992252386158544213076740923087289631600934350109486595850707531520390702274399861598591537234064747722222139652233917009272528095407870231768985713972152206445181587634976337984916007295418554945165056869970979692790209536702089218783645731322027342040837894072151616691785321007078538289145880620078930442680741971082651730048301871837146205436875960907987082288797024177537028551949027171413784424134918400173491425701942684998086879503421357993043110893286745130233819553062658267326526967424194959544101223528085166707088045279405830377266678810749193717016784688006410795262020737813678439135276247592488799102363297174474830469599999768644898473026949499753417324456601029424169965040535877451943917158020109346315705100064762025047093992709132292766112116786214163330574882307604490966980123206414042585320156977274790770663402143663496861419760923462809647795038877493097275046403165281331060706925769237675895098452290575113397809433443531514713799639075031100000748256442458052034716572773618618339239358883897572776618632930370613329560485375616801633142681721819815224235068011427395574998938094559120986097427141637846441349832659804003585774363192810366962324034738964363034713767347155054163366699420095033924895407434544690959722387117311512202067544752212601148148871068977156890043050070133552290996467354289894279304452498730494222583941396160647228619061561803876357634289392301782148990737441121483334248786394533700540592947773238075493314309749019211195449103280417737566490131276074933097455898602682066464088150427464675036929826003724344831335570667438511987510807850416327265601659722901610987223000442723448294405408421049768390722844041989610592315562444801915621112767053342146198638669301697156996772720835861043864139442340307946467481832059427944305292693092969845578290660601321190898097945483137125557325380117256305585261710170740309095567005550255693376483387486939886251081060814288726255428426014714935434560544023094803133111389613918890393104441871352312420359092814425861512018860482927704265656483656155368921082272070424048911752457306261228212479274725448921793314429114149018184601071195606030727715502829601263964510834814000007937524261817547319727592953290827945089235132876847650632289673976219042355922400093174580597472187020296090835251331914844871437201478973153788111478965477094445285877516669436844353683221348451187387449466681321066129616082107408469059597524262809598294631628569751663507316934105695024699475744665472082080663561844333782377524382469486644349403245827799079639833993998629977817799039024480616244130043880449613344987823419290841003423831745481453963091773369192314109117257557291123507659230942747793844300649878207249015075047137425776138856650109133545319125665558660353273186214188510577101422513170161133248524627231450823035206083481405388638691948449540112474680367169532891951958583543123438914234676379763991197015429688206206931399830374858843198509666497786413505461008692120574134755952346524403630670815533849813846618281878511848092349827201399202608655903445720313719769897081629009190949091628828327359820598850645909074289749100008655405307694808823959459659957772276369836405112446010863282176469573225333583009007134612300068667831494858027651738184907652753785898778710541996957820901054269975109398443798198112908089081488221258741963695440745907419266147053673048834717872876543914105087970238131594504627416120573870459991672324316604222657703132407866719572276675511320619945924170830627503574904534430782074486600095456063948311289167197501408164228901026496682252798783677235360309337585812787999935662119783430456564947987416575610073878008941569894846649934246501728541027090573440698018971389451744939900103287092423834237099773642257028906224537377119766738565110258901745263973189717626528442957667173775211811668056424834685686401295877073142700844598179166622260738116786561201273621777238368624846906056972772186181305964745358794157340689032568374652152779349976288266869837814768192905896100348968057161201026384814707265826913074561167798252864019394205796946205151280509455540279957625801054016470252987682148795016504225057923107063518902000308656621095414777685005776500451531052068929014894255264500472361617599143900103365612748062781782741109912143357298606971107863477643465231836887474234032487238382786098446157902759342849951572987162584063127899760222525965239960628574237429543843643222052100855481561049435958183019935310462763305232888313564780837319612945251193581213077626160029119198614524863488547049985387370739529341361440586382489476125972614360599026481095411784810750465151743095872096582868300802356069697461125786665202305545102692184787967365586792552493975712473494902976258170458547577870377726003017988075969502098857428211953488976773624143440486926428521486476756226448859236454027017386747510672716328882677180469394792047212063381855412148714488772616716586985151727403360552925829630905930425253557993195424664816190117652532499743132112953938741935091145371743463533434335021833889441747212099298058781832913961015923873440882223002508554720000249235906427773090035211611750030468133787493215564037515538348784309150796278186329911329580262577867236666815714902750738867336346349289257997258690979149379469818222736518097358956734997670747597281460425465219354873816911403425271147367098546377843677807253609551112266186499014087981684051071166420384019566410567549801887510898474659223975333659363259328216115437167875580631378750944565998514341886709778103511360121850426833530491169671645366934516375450922857067995774469380707119535987655049493843983203185356520464242551237826112794188100722400571626345249822754217641562102832016494594149969467489942222901083290799249943205023366231828249321506382260910826075277657715273920101980057434617579273070940753097487425858716470687352419940747955388875808752960993460838334110263837052617106590604278359522619239719508644347377167119616015986552594693911214169258392156468935246572706755782197916527930243855320736241965323483100674007544205862722472560466852308854967265952796190877560879416541730577040089394400954827084105974003189306290144778097428366919742874613476566121689244624021893129695379803032637501301763014308535893876354618069332376524574152592037414305177860706219953233399983451468522231817519698597914046539317066107935998881933503338710126183410556818808989475027037715442740701533904434791384627155951413743526787056561867011637616510321458399123641094259494146503825898441354808460251896143885809513408747421400782464963214870392726077973956691826320011975048033584192575929303690331297959046756863076079901481372137535874413894109831577738998440981723560464087717659390673483687975698542219662529666811145809581820647263676485631880445158959584781479724189102155206650754207241071212916019635081366000466381801351079700033793009610341846112514826267976114097166766079199036107464540498087962877932648777509222929972323560828754787462063701896858634326269313020567067488879644793724180541797948155230290850701712936716200134701782299886589763753431997689720078487778265450197889266343800448855159089214601036646060442384125755829073393286756823136020770703781152795913677979500899318535863654340102931621553935801839667676965604828781668098796557894714926693795579721770051893106077808459511082361755100870678338016957068925783963957821620908504948874043619916727881527085387414729433579979321729549302677882873510927340083776784215265311136012548607956651652463081289255561068159131968737488139755000484710086774025357939418707386170648558529765720741415246458686760690891122422764036732387195910732061047865631887089352447110760297279115797300210656837653370560240095806121176832258426258735746720655305723165990603789094104744470436388504108651947359041560915903295779823270639157640003348989248347262771906846539604259143325499436475021974260313932689698335615677822060546079951355899605563904428196638636471003518178265388452908404034139594334964313972481655975205538676397350110248086222871555659958839497074457757044346027276415070466151799104779791948780803314133000107665822999794205168568504025564342499114982685090686455143545206221423714592491399288142687663859367328881262782568567739290522591373457899708415052809031101726276759900001416975928035677994696782049530270166244484374528160308776600390232165526561120054118883905617226492668521372772265810518623780986667801335724711471708514519205622048304469651167712561350335714661249043746745080323279860155149872049428561745376555259725952127104815022880626699176174136339601707529000396365432667195597975368134250668008912667782803779655050447474503861875376671181194168321438476908376496264625636449543916396268626019699560652548151352684987266024987601667081176374922208194441429740216941728460660436059685278814521772833870207291408580092038060877610981378770110856767144744170999343789592466409790419606916427483900071680663815311677985276109615031808396061255322089924810465755297273107185975449569772040272197642168140698127028644991173846878896696954353818529934503855040135863665433302746191120744320051649432097578492731811804663489143879204076222416986152023884660455173563860235658396686809683592524282240949619719901526197479105518041249571363573581493233560612160400267532364727984183281651247748464590507642035145418167783959110927315825394568185965662945116067924886011630122184608562936151483807193479506425322930227539498322832206824424520662995007728683295034917486283452338786175710564470664587440161420726162392901338347542059437323512522305402615834970925166334711255953069795243655394353291879161085412229827637158045221208104112253429638248745182704608041865114622730802034043066010913102217831047916326781149805593869524654086357706255189889157688504532032695828360254913709477283495901911441086258979195295158623149709881677432312078791026107461311711629915766309135515584853068157994648803829367519209000467470425419564214856205567199446202949572134821268206325304642813024073066357240074360066291421371612764900967632876213019534488896178880965588158850858403594388297768951476983082956551493597044638427325541778057578902958898017322419987348529106041903488593945757029653503733840446490289346209160686364429501328018932332301666778525971374411013143528767526853658436770449452976749091307960672071191533781190502728973056183854380059833294685825735017749234902535047092816345922469308904734814792322606691084965454938116256229200928836482125421064295221517692683375041176678071677286484221102650101354763051615352852117319491266739388175104602491025120802820609586218437045127307931771147107889333529130205868551453471073311484743996916754656334800206682523820603272545676417011220077049532151861323864492622356209002013004266957470878277497273464629335260551433116072834753408120888627646841529639155128039356114084348164295887811779383358526058206180803691603665561449355664058972164174060644901191513017994561014337922669339214262920371282042042193966407925735164096398249515722219328190379657739154616376905020737634006082484293831663190657440145165137950291326087262906876977599295186688523073281020279353283837517068949425991747412694261180666610715381317118064823858027440549907593148392933239560390604263241921714583496903546687783909125371793374947736983272017001832828098062904382184772478309604293208383390280365465248901532083399707730298357457685307453685848689742799995614658630650693220177160072454402057511840196944482323031866278511244991157969094044310064116300648078179535573994672360487859717072531632405184235341213446848154519635462055524560840143632775346034498365786044671512674242473822379703168019795837613894684783496424577508955380210338747939195894888314102033765380241504348106068267936639721625301251237754888928331278814205660768423515511857167423260843773153814238398486200293590882320806307232244391953827817371164036982892512168550533933019875958042363866391262025232199460376495878588211119946164776330000641190036318746956485042920676912859459433430838257965143342762264182596931266058396501036368136725843500596929337201473441600810085171606195387162869374192388766458813834478089608162856417704075727561969074934570951329215511893091953734818994423969564344097352905370298833579933938212797788772074510905787724134918585329693949897268929518014832705553762762894724840895050951550098581288191226278913673935084052478352819898396490441634366433300473685537670986777851086266714169039688295834418299647489329846237222060883462132356044456113791182787108613369773102151450931583318202054036507867555195358739625894869894901612827714801647207420272445180802179483461939691192154789150558443357427081789842057043101828397075834549369386528275833145629683076393077507741201639723854963844830374946299475473814307535183659509106614374861287946798765072782878718442820591885961652675633809596594246892142766081668136331811624012824894218108053233241673234286139034497091018137335685917524396572993124271579160440149840305498570484361921275217342826859404634117539341178254402099285483216020697026083865200524508841409836679354521278453661426555390527937410414451301531980124806519606198933678141184320458557411695321008131110562139401549423519051809202177949187465982645630254601015751668229354895533476589104902100054352937542825299162792367883237910605702740100025872553035795368797867873606187669602076704472589372038225102071114703423938349261472643754689649315643508840088717312433758950443629941112853126379338733493056516358081435216609564732682349385391406106080723235434252225399344158953437300379063634492196919620200360612659302942405284606285349831735200583454666793333300672423919848832213086738843040833219963848614318954080650827047102525779668670212315803702736581925973838906767642781860674161166863014018138112930067082911619968058354906630189125435846685522285771747999169975526258362761859798788558080719947774175601080847407766978652038071403761140997065902647164281022577887731047227489413079649944331278082620173038378788878562454082287056485787223293391918648430454816798665598826951547343100697065692740158362855558167381187922370369603559240848820113895899044642395311414743280250621089728021246217233283637896814998710181193132137415052342493983834719918200690818934066572760655821370185467840873137428766071434332783315008427521356908700530917096663007424864018323973720927539325046453427563164772063382794031060622418257490865389375948262517328542833752621549892160430951219044170409581962696481908549846891808308446489449460261706613015014230463815630579668758484192814922174838388344252882044080002838405312313134925911100754463766346794032066757213228975040820953413054769157867976881641886458837578423981066697368237885731596249920256383168778938697905054693155655723475941488212040196217465228252622292600045076058754230710946061092160374882168158268867715357350942669947339245072776974830817738387001411371858652898225097718213131379767718425762459331366706066528156892648117771223977175188302568347037194514324582865467231813372361490452708347805219403197603069961541894407319329752446901559586611950936599427218426935947080853962343389937964222181581511319045724739018220059469678827146284804613514496149120090625003915750233635742102794638810648277575963468817765809805481545456711997521671795470461010084146621391818048737666592131113540331504540168768099396567024496974310212174300588826526228768704323320664666549168668645874537081967539370259653559009582770084229284017417667525964411334669134326937026311110123861925357313869389569144203823585393403056397928799686948695864165770172175587069049412126325509486008715524295253806566855192094431365106729979714760975127057143545421239224837111189690827593192008717188641435691467787910935613455775859037886372950511011511294983127005309980446195956449652034618838222880409262156082620089338492392468970671827180708636074132151508113612468725777467137817147525339880436314699563472374850568337440448507679871650824273955799358469130771755634768359339863305958757232811756329208077224513566385951700208541379014185062660481048147208724143045163438532784994933269852639564091098765316312200628225257133314890578528268785623203199079206616265777750989269399045169004683134823182611029404849955559330007072967893743387432755569279706235796702671447820090746397280566664841681283296548876917916885769014803976944676553917242447138425896132504954051377014199895598754186447665094097732658481312327732522623595833798781794795092175902235686223386823953701734778785761355239615538137467341649114941143065194380534088364652385719684287394357290734343166849445206320626094847419671399712481236144643591956127830065643233057893568653350176848753752539873855072936696295055035503241125141467098622852204909646076835796404861249639459613411467270228632542056867978235340619297455443550021196881948185933446375409831601248170777036293124485932628990851503091860273188784680357095873969816952108235160736375437075545373021466447204150591341999533503771190460753368259002213389446371984964817673781744953114328721931976172554056416715534517737394388083379713959557434408492949578053534683486259058728728770564178422219389965874749672603426496782941655745485083927696270108321535718464875506327303702641711534678408881685732578402907141967793668074863188925702071754782571523700812803664452337116461057084452115050925873488012646947702842255142605171267772094387760623979115130966389305848527024373119601243968789229396528044960617387406669760834130894325792423597061228412787460904611042025047850071613440397334525722250740182530114496028642107442046939557206824841587804046134808733549676007352141314800824898468373032440780903345341624364706342401867724238044697591048407841352414978139173084577223524030048774209477703586092946173011926726538370074809607429612294991370986430805524273860941800115716759764103571301816642118316762937070760571818931556304507342750050402078333310051071608277917223481414848891473205263619047116080488317227182462260885190781756871589656475521086286372892485032209468047920984012700662393577170132187465070755973787139690559275341447701488064104766008319091421264553825308417833299110694029991765299830829632822761392787401673179511206219641860292408352002750945544817478153030661284840389895942180587009108160393997078799437435817119274927778558219543588257540069126591105379582866061159323901869443650142645940561410086854241939536252674345622307450873389504520317261101704373983636017193476660793796694519367632453974259604460278201344699372080449005173981229085213217019174514221120224543211292297560816964869075085419925461934661473968696777769424035993211428655331969502081966807233887400561020837740221771001007784858888842590633748754269052699998102629131489236703702464205286070437300399366896990870987358769041578565464690346451804850007363618533986812377084980830584106667545642409480366412887712066438080418722757761180547110931953751819920412612821490053739859000768105988407237645020840756675192162315133858656400208865548697498396769505868715278895753514651282440194152465487438424489304334278564322197577778993398676854497804002457912811768193632161517095279373868713538997098521048178565173718716569875398559283864072455179237518650568095331034713427123214121477193380672341084779372849201973042584540721722448054696181394090210972548030882739969459376935748175103674573556741972171612038947040637132704920958428298254815659556451068459279910832719047623319460159673884794959214226315634238738054373171213628761740019500511626989781272529499961081192423126584426419181588754894486007823013351802986374237408197650565453041653633527528265296614116544560490761472707655631575378190182355375799046918018060202693382898777864676737027690760660400511096467511160724266537732326696886072919955793944894140012811378557669363490496812322976282122621352635462560743402168933758143971118639135035306357027541652916294603803008811808466871640882565749396462258551198642872559915546867358581889564420310302900014640686502141955701688044725495439720653166562403376853936370282483683751963565049617915410163550403634938407510130632505310373023578579625336885931447554119223679214505469449690894263158537274958274916904824155497551541198660381598179258571369102350691557966806646653318360261047731509460942759079765993829656421717622681571882272612739254526015453441361764547768957854133777975627876948843761618161946815539082588024535681278138404173059297756579038607579703263451331457198923757669091140572804470008548377092517066446252079085782257125487638947127509888604084989160983988497668957316673509341220986197452501570120224480203701050328825714529075832439883641490808470133928224860663547802689265446513435787318508432152577296928131295917660458967506403611912808973821603049648793109310358048132855964414222649865437446401961334062805906382975367173585156410639471558039542940580319066064353987546098593518307251401133659853356263519711834091217957548598115210056743423203579025476238135415600340134604113219581899624892812614490351307322698788612597247355070424176436720933436339775128342386410096302483880929060856244669055330827055114926941921677123976442181472353009516935645483551076079989019711835716192913702969139237383077422624302127452574619659534500291889123837738275329654548318886958255274661457935481373272184517156800570601210516658746360231040190504984669189282902883778294077167391676249187730821442492495714651510909581461815215724793087322328932066466216213356628432319576111155116525273389940901352114470647042470795676367277665424394330116378513645372456302425446226135680949839177566738266177363756628584441480943160048427335287465649881481301064426908237232766378899632458208275969909141666243904413445507943335581993283685732792080102465451265251481386360842043567786626376146573433870168790272707126395080821859842534574239526994793954188472005099025395189869368657090035994982431611253183858543663895484159784425176227175242660785519201318408800703543028918436425610197952700234009959227479755403182249260536093274967459865738978828642120792546675587697380460385621584595682060173997875405146763721354126427155777893879305159561212213974589397780293434135980617090143332768925887560143191003752180172435041066179924270389321006157242727525589937926967581365264360753897514264411502880637388813750276487009602482624344939986618371010767719418395519254621092574094519644070638688463724621399189614322373743948242896136222578048233205469291538042129616335630746057576973384239114571334274101590716991957290014329198652312614104609417970448588548434445815959331122287520713615972385489129830855410240527839008268463958684282998385196212363653565944857680530812267791910366368389466816313612971924254722251386621215926813384126421449716376932656177723604813772932093666167116777412245845414387833524013302437474741487352646585893508504711834454165652166598347012217222465164082041074439191743582000670855115195752437293531680773244562460294798846081216931271447583869576937588872592932529950392257242948657959585556805575050847458958503731375924613092144959238385213288760402166612405883022896593005487878216485618218823101683313395306159062852070578450993843190830479902888717805355841175603268414292629936451417984207829493261877941769047313952795827585954889307687599437401670808437292111359545053053323405240675548442436005634496037815628232333624073579393626889716426829012627103643190257129351476795455069765001215989850577880945454548589297713460467457539518054202658037020123386251594779199304887101595680420824389333506225432559593146094243784783573910383483503096253106860219286501988146009651435591510926863856125159549994446922711787799083174398495742282807318236303204607581568006260276111595791918386478198640196655723692128573403945866683675854162442252964766000174922742878571671086330264418705461878615442851967255578627808300100475735598271749713211585225324823884486499041235363959105332465393135265809286691129536863073845928726368238472328653615454941135342673222484185022784385010557510495382641394254618482592810519409248594176385136867255368953036380566976426106207032973157144505025943887124351559505403489880524623126777387210774941199455024390932249468175996285824210865922585066426311547096437956722125591682868429607246312707629357795198969632064817774009868326922160278791256531503238391891890142142502495823382656924292707518622046293784698807313962008111893920006416670901195912921222165576561461779892195145401490379539068110649355895120015517320489307156339696185319827802657176719309193213165589158405962850409534084114635130469196927926257277366623979951444479342136720747105385377579776171692959418798063398392351171383714200193215265357334521929688211812528975649032586586519944436015168478544115623453219178374339079914613264325846768023613068745869272989572835903934816801728490768679591564114972716979167098197482422321064281278924553659172598529627790386847354064765571899802608891307255156735192707017114678745939087700070362565791966376262181464079482856642084192205322811117076176810589777194905801795242737972601124597858196543707748302420211663802874089954327484016828468263755228131831419145906268454123719773689796312082991731509999280166991466977088357272672952968312768622255319115131559369884847740589948254348687672428660857974466601445217939448171766008273572266729197761963357854016485134128486927541027441713278344631024157363550413472614668025847457126553977311828933116773737419740534181044786215864802928298363360137936942219536732637333132108284041361726753682489510742506772387252554333273110673720964186616566634839488735166842327385336675814554283047054434241493220727606425012183703523173167492306971011645612960270798740195722807749012056776050376856409015500527274587713151290183178734720599695041012860422936722332626056131138449550668047976259027774083655727544613943302759113642768056170372278553893262981774938906478266027468052137856403221692865476541111096019374707022395336781405276560425864676687772739894613814771892890813199051568765120540639346119822820639601075427608294171280842554908115842187456989471486575878674222591398074773784100144273200109204153250662657355407458321215564079382904779044936312254864090452699511555664866709225087238771186245512303091427727667376029324169377625325890326826627115572795487755909704739813798462038618037237315877200197439732223280702813979572331625133132603042964061968011852216087592857019325659113046345824405787509298247324421868727486720027643347324188653057995154936134765338622989168965029791936404199768343546526074193037296958185686889558124995393335637957616826520279009752854313738501042677207753814718205351623235676643594897648798361209065770139855185210072140611085015662925455564258145209690858449586124922289283082583093423770871076658518172517424422086814015201188405229444479140507445736231325722909770168836619297914875572113155163851468413713194852197626655627072339542131075085150943479156698454358595910167449273490435366083460521944939067352897497563071095413054764880620627837520285866030515662573020989935055948133856405962644752487609497845586526812648106705371214465710030635864071678576244129836891012009145162756598118603772634467626680764220618866894004349051598144492495260718710069360974219960851891617643382396521084280143498488380822924567637373994915422797556919122504669184720963645666931023883178655257259718457307912520756118956539345149626031461066933567846859660798621661589066681128140084289689955261168460337599773819929676560734402296483631137068857210592469514573120609827815626571506983795196241564328926965300434128740418647492819443190863870877487958027390988762620456555497271217155556236641958842309837623467608109383732756516967389591696998871696563887407065250223836152679494998451301071962612240508167041074259387168932044227516387903030868657218082682473265046297106875357911983822114483411762427857482669325779701263374806695809951310795386014246415878272582114799270999018457801096460956711884878694513717220170830593442028937306196239391539976029743691491838203319459791435485097204504802218138812742210560894869029141483848140671761812104479690718134938440815817364505812962422011068663537841586228251079534645424012804439191824102811795642123856572660965392664594520983342477396972095455045657903288720180074276580322535384623367363106060274558085261439161113185249232240548233509945028723079782674070849273271873951412597066505767512532526986729895802294770704628733525054614355515193817808428482756605295711163328299731936506727257273096138161964723207331788828456135881635428224138464744443257891654679143377470759560595821320819719515326431328204004751485115866867111629344263431612097432905745738067078999633260096872900225874438845946605282161934180987103153491454542632657452174105568842031013486410804606152634857712385205108872979275919900611530069763817160718711186798496699593199952384336367268458486591140316207549031848473971507874785328751658730483652925801509974500803229125291921529592998236714693259984701096129115093602125728245698352151864158318527781539198393387291819161538615145147340314533051443188901622664380155133957262600872136457434064204890122154123976535360117819303097923592791985263399073783870038319764468207459767834490143175845935535817634187897864956916478096422140713751190040922868231582942436341838617364387100867643779596767945786160202067089657000331351200999383872135312035277175981325637179434128451683255149005098440527108561960004152525279854520440837411860152062412075384934620196914307717608281253258298783450453790437649375394419294885691485068374735841928290127213903475725034755557041050861809185283175601570873659621470345354270496608045630934142364298668859856901010868370454637812181377228943031627047106674115046803323437568301733469066475528020873758638210753101686917567312402177061809688427471208438627767383524433040107373607301289021947578060343619507483636581647345851898424120097211142195612855367748651916763557826757713257426504828383927113035262672663063267618533278519988002049983408106505353404218640903957658040671243225644696011083926859721161028943571429830799354646251818526520351425275134174936739465544040693534022315671516733985503618645273449008818335536922085749312372590802885540208877920760587690813949067656149454915431828279832533297735867034367705931549510106532007494091274644453356723520675588788327441919271869910543775034914894603072996308861953708668047596370293421784364437443657778926306339060453639162993207723578078234493701201366877996511683375034438290612776213342398758123727323856647801310250493672649445046078649830759500963177727059488379394569228122491808909294762522362081070310890304399385069085657055310210771358169303848564491222639192491101669765426389161384295976480655375517266701519745962289835171667348372774068293027324951745126656819919679724223601230738079507099710780526165670454002752856072325466467123607639513380995954402127055823690220054661652097096993189731921464909375942676981329760127746081050368301525628455760778656323670716435223062772301551124481016363586564862240736850239700516879958704797733623924264330319762337116233984858517063356545604055824613591937379154170280463456960808876628955868528328034471202093175129781996911797104250441833068031723477679033321836563211707332346176981766986412229212492704626372133888494765072865669125204778302330796531095383082467887546172285309735037165593145377806843039949464690428288557960840800902519992579158712358287104780996107785897533768441216604335581000696946891681877770492358093287731663432818266861197126887769064273236521901723990061761109785118745558890718909429387187302926084782105213124475318329655474842062785770486861194701077205231267280925542395579658473691164537337840995215991010909321901836821748694898172656762096898182386525918694253335078101646575085093043101055539423649117376259711397502603876373134138262621009419179885296058781700584766594555042160091988646666607731580984101928401112621373267936175741297613352028109462195381286191917601635770735616470564456441270825104262155676487980651125283699767383147927048783823441311493290722933944008858033115349293438775365235730018778118903010099137420201963247395171362407839528404136420440376406330708884312000720006581603535759640340615283803879931234296258002925043249577309465536847258840819706277655802234809124296241763090924705567593445796894768362839862214967412817337588798876206254470415181045470126709385534086298139927874850764980304373164504197021795988945387489917533085526231845580306177812581293506256202562188740095538481138341785344298252270848091266226314008863900751518174031348256712623748700599802539496255608835502943466524069386089579502623977856137980511552375510753810449144473757219391351710007041682356893295022543686417311440997102737104976295137190181793857542490588399548001089256978696041507248124849794766820677089058706963441855478969430565635640912453157328258123853305811340775400553386037444356985068889536036502437433747942413533128681496271780719140883408115003235801181970480295441559047787757579876342890946736006882494809726987043245093109891852285653673093228218644692354063343587872983729549913264714296953992828730489842521935020835111165087155335571640417433731707345066970100039005512231934632138163999180700635075677277575054324536932397702382421810340818102857421000286734641265240954626786549324148059189731414180062860623420989142171532451066254003270662343497593945006761489795255084059960056996603008442253315268291563077206354185150712085496751759957206641026179994638752767327793682498603217544230563651590039381830173844589625607359982532482050535482230887312088386259349481642189925802929850537673590605589875424893764470370420091651656849217563261210914297855740184312529049884410788316521168174912051233991005438211219946793775466686050328276631031308239486877385472166080076361082323941140624039674378394042474856757526477671957215167828175238524624513771078340494559924490477504804063357211459617982044196360082282955712820240231225304086773521820257804387538381185061565492122867262659916404478935817284709339770418745697618752406524595641349028220451067321561721349798120642055567410420144482448441820891205187726870008356182710841126928642071374919538458735946305560203937120821059646763122120642072891717118077338571921595863690150969965906060691937265048155185891180920909788560753080337148368268526872145357893150380323072196417498376405072328997053536246603253061828503202045318714580095418155650369171463803368942759243062738212411032796133130421124130434727711185368935644818477301302037345950094869307479687889628395367199409047909516484107301990725114582851033914969677705672618118867526327623409678386395383363367214113483482064308626692926558918429806235300417795463580497798794087938800136835257534097973608486842700512893122456649549806552344889141115901057728778015006362228725002240992260920791070046652450258432016094964192262608417062168563535397829265740883069293004653532441997333511033676683597100397759066441224771429990708883913320863746503084729580102103458842525526938525141935956966321875830353342236815898158762232627260022140983351195273733358122415741117451465162357664905960280141738425876744755663379015379438468762575280170603760157243721612223007574062402322057685587622835859677890558507301999719874775182767818861808878480108659871725157720381340698412825078808076953925364990855845110900715239422341791681140243408356879770002973851063092136764666809766284209419585255910940139396099241490531340460273141474074088629678654906467612991378782988726558903763832909749763083503810830762270375127222522665170593777591317420856406967816030608973698712581608286030680958207403908139353210352992150548290870956777760269183588577106830329891973768450025468004999709857507804439350037763276749671751736341174392085718373625565110957977842667137471940972012100703545586824293275495072529350378021466640487322551829516037286773533242823481531574262664554788998670880886349949120116277605804571331744724967589244255402391900339991421833628058200295402515693594979079785084375675592594200564447750650387304928013567575030910987789919069450228423245609850803990763479014390637576740039975979336314074690192929412605746884003381410047156345683864159864854446736788206571792776981951767684792339562574478645810247191585308153176812720166938103038580155149369386608842496044408451778880215510723627961036801890796570122242606005373524051104554428116084799195310841697094521106803127242990984560749745642123211565144503348665038347791070063719574426307922485949832114373117685407011855403371609077865735340644864451456582118446909899203766926407386679563391077364465802833986837546518714858099151850496831959235443372527421250178886187946169999240053269600673984814776742814478794634786882034908355047706916968118479026623430407070334377855687647473493869408001578299812112580413869630603881803449752853549087571292713549433846150150365953422037647277098940709746736714264876459603475138852810882775853162996369581653699764531860832010885410375845699465933932734151445467937818048505758570866997627500905790340729364409643011163301673417722534431037818014104697719206593154594381977223445340104883787710229043917569406062933976896106689499808520007468045847944521828350989408547314595385563749256836507134054065869101687071678119643011413068251996864437381201851066529723192242872618509145062755449635530908152950813619811516740319601972577248984923932562500411327225975436253299703044206013888562854780724149855849962097911057467386780646929162993657227711930655689674573101824056973681168735705272652671659929797237539062096479229786994846285755204448839578295422631318687405337432202464830602388052017203929842975505725897062488555698414275546229296535278135126747163239338082192052663634083391100806612615519594375389144687747727333346549499716793292014205238960936716195653386617299818041822206091533582670520967247157174201946641297664784362860555510205015855964945034127231464382473082470494557943295389858605954603338187880172041984879797361471500772986474753969956500681907691778663511610396342538372389927811034634930221788294623441429618353431477489603499647036710632002767234118888362850205648374039377383710735064828572233602152166185730210125176000667484298138989429689599473458732124948723904394753862701003599967682928253540229416297812774569419925231167652646830674009784254332986294739713145467965034668953075040516638465796659986846685208436091569593292894772777962202753464183378195827910294161058802565030180204214350978042215119097994308337106312172573314753895854798676236080518251380606345515144000899533424724853872374843468972770671971899819111913806429234882636984244048497241543888417590868245220136855528102940039623350445178376158696652770355698825055924584029899683902896615758461096818883146727156928019411424488912546307990307599618850626441135144471069965339946730747874587125320063243094390341333242863524746884291919235305016874074936196175752621615581008373812914105353538664560745888942181404584541655140910046463131362994251432097177343548591879963175024939981494958286855192360886289985279323177133467822456095743500625457975275522836091352881558728928117148773121350403682521417856427148612561922409341812036044033030197911537972893007436974503953237994252323867197554298031467140245591843720550914862769538177971378239712350999345501216600984523777461991025400408853392510313130647756957329186600644406150963185401165577391635810435638689337430614219139685124224621576582182744524991062685199068809388045760214501603382845788197924538561195157883993400859923397739340024669605338376301251413593833125314373670503452879030060443978058382468263915467343822515778954042139081957542869034939631631436463522158168304888953379015932636267170307128097896912823611658137742360885124435674335182881937716799623373364126167398409877263556865642078655917863300134858364704576529635046075756226036858362392606790180646082294985773097792287320412703412097990166804627923080373132131149119930035678402558242702075707176765227682665177266338323779617084335057546896710023665490121512584833994102732075020487472980820101122229566531217182489449913427553517610610526554054019579255793868845112342256617319621745485444662476691990925657436265172614729777466009134383353270850059780527372666449883915283324602384504599423689961164890020450090207703327131386573465916914121914027286818836875407880677172458678016356608595402744983949704851703231136130188052446611917369470489776787988182062148612063454514369999743931736502657745935444538113747766590338516871231165471123173256712244834336040363942250108150667315936945587855880385427296065208693824010594213388813596871219166905741101331035520770073405408409702372682818747963768242915681967403211196851631525011955179658472676405389880348942135868556011498196560606626485934364753790724737390187768954455032626157974209120525780420621809087495678829785630386436956087316107167053885033550493199176787573505431823469140830046406443171700082292542057031564892589599544473029145964480663005489488333230466761561399901734462665574439256972278242468014656610271227597699596392657356446574917518980189597254466341323930395176620673772181539561866826141938635789293047105309578912384501592077562014863398770286637008317822258092805333290336645970258986357567834780131627655281305116750894969430534760178134228984610244579778321547654649285852119616332854089194357020768189174069446921087464959263779883158860843189283502666787981011218122442480624520711096727204364304871252361750496377866599113222027862661787819823303435115651689772643189395736932618220787644184274559319794424001825528721716338649767474538057140821079753228993714308769909412910019812702568167049505773785157294022671756967730501443955753590186991455457895411254464382818032912079622425923680750680802078380156290783419594506329869649103705642754159142021053313359591287077743054656689721139267641512528804772964654240300135302433426726175382626082880493233738646914180883854683372246506480186442833935388618817933186116012543871485998871971188597121600090668780559905428196237011716726616545206944561064283396371847986414792625816234347296396456625564055115704127001646251548974366071010553970659722922946609604591042674785068647322976367761655829363323784993786392041761115991738808454117337607052692137146828195003010320933481843111807378142363621295061957712177714486594463982650070941173385770085464424588232354422918679304232190023540128135713552036030186538807177857577793185347525536177376742597276506535972799863851015126672112921625827631816399877285127600864022289398586007019386576423339496673497236722122212994021586209599803556790371755236593507088538388184561447019944747817568864147819372927662052881588217768247442051444658695184919221456840009242978098884693629197132401827031497219382906676572508730328515515570911587822589916342043713458461949644238417954652747484801412853381110775725585788969784212154500647112586545004184484871075733036563050810130636115468885823320550256845496158146065489894481853264182695248987650938841128227713530314528850629267485969509661211801019251640316669840809105385617760325946068021436357480628281747867186773145460564367266803729711598512265424291676262223145319204123330162340243084921868509791027261929486656501390004325288178942363835219451556994093240783478427354834808252284905348353608773709896604079218477119772982063355496687207316910315969323104056062417874984482807654766009607381747737633834823920047609256606151283332376159402767303700073652731261795557129531121046549472298721959919481430879806465759019111531832662195623160910832030954988681710360459444544686509869756198109069540994520261270144572483941680804144360951113663687149903666017141650921209037174107869319506786212588738127167187223879750180563197908234143340913963139969206189710060480887112096842464609356968355818734843824768632424960287598019237456614028951269508054289018104780873239449224193896319285161390719997155894485640281894755087964714789187184469555383779064888661290168697769037810841365145601872311555904734013553701008155331178070483068748214616089871182410003661182257533436844434527154811889590960623952920174849414763201312691621858871215416504631752862407316759025630243351758853476649508671563660056379475084667800685229298059746174702217711805372958263564389617412195781826619782207999491885564506559632837502764189402483367075343487023385412463267251415639445302309689744740471313867693854196255674089732129308101380793060305982936836701881163548792921362138300295088740887174849722715426733950360557220454106887602949408328965072382077067737950056228870899151075659896009995475984125941082638445639664595887843267379640450622230529984100505970234323764982861976431488431782461594593287400844747988002622960171253004529489565862238191090004944947629339950278146925712589376464486760102532426375962557093660035334291009464360986165654835524541367103585954083333997145653654098686602683718693097668633838644279170971058158662809721194174631011366323781556223369680137299076829973684122004540406777117422500830220499684432905633909063323742118693662951242596760189749814257731569848258697013662199554722530728346017635476332469954897444947273587830973714287505485925629668281424922537327118479044851377828100562931755906686205195028650042899566799575057210921623521532809185001756592967407987095968221917304211468680358594121977468967331036233235412027843279808868024317802454829599624473783944942968999599533839159911623170972801585991937781309802079121604786858313292934095499938643834136057512262713123639872391543815519089940421339769751166110267919624625104560308982608090352350353137187597248161064140456829287647347533330431186802602751058991182920662729984005405073923430543113317341605447190905373694696100513621925255588219125468875714929310638144799405268075403484574196143447788962327652052302686660917589058365409230757097029363314782267703378208321458430136294732248501529172950771311088300172438664936953220037016560242617562403565842079840644249184309926933982286478497890529110901110339192390083673367664146230793954053292906471268705948498021806355884024740734311567469792746136704798707283368625827602250413666550989425015241397374440258157521649545518328160346727989527050971863377818362798805561920985854785566014108599428596214947580586496404024467329482591054083019208236649938209380195298930866174562664114195280391872956643862995690795745719652601827428007241486318747831209220064428388507177119603645114428613232194869463105597759793275522673650486926686660764943303483556230806816982336700723875510032464584381559584862394047739000546707046780302939946330569043104896667664781798551242005065461837893387227247395182549191813252188976263965275168954601034548155181426762437174210362434910616489609364765875578575063281812054847692764872274832171359984711359208848978541575738345844020548279115526279752869543152524238455930156615200239981190522773651191138378317216903348198845157620845181438030630832013208753422057310922137521911359738495477440409518240165060595257720139416152913148114225066004058971164676406180294766054785696244888337307282006291500502655011451875990005464179345025946988823697718534353635508566962047550131679624926183777343389976544318472278951418718750957191348970914921141866706608976641212604781680911323271225002409422125401656054611400660818416048715379485654777507571355417293549750287842442284594328450965275560900577865197045777168088694469065022198561275407549781555391451321020019384780413076951318795401381169315977687062336228820849454061188435343506852516979004815081255848427592058820942247863400215044699081597758051655068732218641118043163281119559971053994345196283114224526444975357899421060692622155283397046825251677031037368394000943453639687946709465954585777804399609315965105601990722661105182293032897838498551886062561146922632875670535277212544843443687527552905441546716799446764116931718723829732454378268166068619051576837884438809422226529898383288633000021119618273682375254313409597295134471203825717581832961136043767106490704461421527886575861205093941229108388833333830351556713053884704491824900331061253097088511508548494415684738254439152715328689257095255179840953531908408603356133773981178200635270852367835226740113532823493163384241960224701397333836180340133901642342161480507254616600654848354910975002910421271518873976211976864217932401418909784112322735586369308013297993116867791852330523013721199659835946749923227065433447987375340162837594119947341744304761894349069264420536475318716935813067035268142536991672682188634178767664333395208910644632586273036389234486055151080959370578036824367838892478703934240611527012408145577400694779419394643352363505253945806837597175724238414127703312646094994514423419832126511209687420702062429821496600558859476127831979441775436997897529559465773436791796482152360062861306996361203569443475082773684886359161042353725375037261344166900229678984250645960944897337627723846255802462971300125414471597826241920931428061217635743319300273944741870139868303482895509413629225261050443179699544445674110284770862848658789031482837004373147359457481466805811276735237579592905240153069497487676687163168073573756240591010424344705452729346725182232196691883248458204205995750712960296029025722557992179184621392145581094092868152487478181987842465761778771537773323335290258081764160795560026743578128345373418175101287021569320476479090718102960388306098321037762795974247630936911972923831441997057341886792472233055325712523220660442163218691333251667515410238634652956570107621004771486247032801284397643721347477496584943389119208230247948684023614717633963092748070503764156011203788566307847720141002795756265845576177834268008022744367225175928024662625424317669943579010439310872260320467459565592467758041472001753866768680146886748888171727747702055123224054301908325241708774493930652863062140544808860557048901854589851074420038471878034483270239623975459400523301889213681161654552437547759507608406954423542495974013904137892104638066126106824831691801803371285335623506548673309631049598274792165861567924172516369689559761544641419935821604266942611569598714399355203277085500802532033788029865103483303974072515831308910453902303037600072619349300391673010638478909953983675036507585903737277847584804383253100169876176228719483189377671083835414544908149298118952939109759445993833406115225730429505528043241037127875110908623822594481714378492078966348759008068636010546325795338023042232152074390914290565854868606765008038487369208009935576809172301294774037504027629867886955796058213320093590855350729866824486997152484715166883384697285134636870708219894032506600720774661093533402307214129481022283218626443103822247644263830154816964366705026646901199993348127864504661146237432603002203252969687195474786445183075512062238171433992638793484896135589448594276938265600458156363706152123031675903495698156297090285710535214133022709338902482664142910973845788187740078364458048222642431766219998341262880516177646385765007352723929288315836647461266772332906425144445393025556545129977296287308072203471217610298604484740668958286382465191198452543837969953595198835224100650520524389963469175468986651152129222633904374762591413328140788504052198974056948561834741248071659711878074678867080629871431720706431640166639814955507840544552585567026638101819103089682674642352510692750645881034688946830927066694167756919388635137007373732866391031135642575086067766961799009721111792375925994396408410028630076842110920619241317589047188741845460407859662739343440237440508997964678154346686376413792196536984966349782580625826765607124304224603899235604044726444903355899754792301089781281891936911953229310062278043478286999533159298379738778210148617650541921595742469204227952788341751785341426386958747499773557454961159782958032066588934646552509631129227489015995364005072390327144578821002599460336959316445357137708928861550538245560960598644371544996294187098886937288249538609003732062439913373280616342562673506518771246280820409737787045080350445670525569213831151670242744101954413966898930320671991455376083113339073538914060338520180919691999543782250401895381393621901314306492022400222788548406817613633864630771570066614176784094890326027752810156039172884754696054689331071814571796893395834923926667552921882783501761176121857732707933419924162869424554023626192975269419083402174845150274555133261692909326042833743034400441139195570895112286100990303120709477222441820596728804732396485685947977014342637039092783472880527372961422843272860273279563225644568884077803594473928460204929692547509156864675082115021841921708056988901574109317092257355944910533199460086052774652824827546721206579129735040547398172651160488697686813892130384631661126572827915903103617521121077772610688250685145892765902745899357343638988278499451270436706519348718173113463004450478300339414463052615207101517328608879706642593606765263492427718686214967279924386325919359919508282764713173741314029341808295992175112731238480585998482599039593888247359261862782123103471470799307945292143288425688897819149953770851946895281806074598659426886431775734549593195458582170090559757123800800819059797948037280868097241260155211657035256667690106931866390278395620657278266064364818606492564196109181646924078872620493740892060442740830291726194994088458158016604613898895225967614251578552560260120953348686784574007351262730758931582819425093549327132796563458239415655722720772178980651195728132494926314950059948265693360508787253184058700391442497132102599250948321986361508392126188684740517273221738972739023266100647698560478235388605502859224973075624090867721978473007426612877020492213083110309399412460773355119682343478815440034468076735552142739989565533298286058566867182719239293660000961630826014435451760414156228678930000506615354579237501470874502226974055536996897551301891805781910566914333637990448479451860438668370831474186823056148903960982915891661679147437037804512467483662893983173587851648951610995936321759345415865844708469759128345565422092828325034787239076754578242168705626671752843541223368710663906679933627098254257570654697781476266393915800960247881587384188384463231778805728496161644740498028383881406312428252654591962644549324048348603342771230803786142737027590797478738646213944924923090414625678267059976465028546842096605902470526763807795856525621468340083614105898996638913492970910100866674122716941930153557596600790021699133198413500969225724852299014746319164886765049517964596812554536342239039646161894336747855935863936633391934846519878498938547076838621941159266576315014493501103643442059062745125416075858614800060579323650549671920759386682134597654202781171119401905053531909471915909752375894889546370493444843242463234254231758604568899661218583034397855277257198904742583069157047489002387864977225063662113075346188578672502631975853150846151035841795065655850080525617617403652753944500756079765693757282433430301260538331929932636908361667250767828081763977094106643444255695025179401873092397427254304828966859054579665873602608754018649289804685304789563023106877680316599871329532258924549066420192521698957642112077568074653318118098326531685678988082402166673068363281201431761939075800474526662397134482432811236027754536408346356985052893392140095033820418816890101060972497495029493646147073879821158094635091382680014567354740760804075610247774734581666162297988992454608268852966684813071930861321378696631090934233721785871797416237359002833171139336077276546255836189050391345067118753929714136680911179994883955782543166599815628832339175312583514478217109194850190428720422080855867665838497453886045367383088952496914167636033378654375736177686770309543911681668987898508641722713481005666527655556404190512867989005185460557288875300170652361685215504560884245318083700779958590713710625376327733023121531891674119547408693922504654406450453601517145680410732541427064272873872403582735772373201964969324453508312442688379120743178887789312235213746839570758951462535661284945075962194876124738827072672629235582665643080423410763279943914940813147982725115547689463355949656330280189184492815585030597914498881866022086509535223724669209565025602190112456045425225755551332672275717294703464627762437685898724087419034085704488451475644222804636236233807145998179401710574556878042453185413257513462811912733803181274165884162360813128129393655103957929224767342747361050010822419225324041477257234877608133637713722547276508611352607399905464961858844628455573995727642295984553811243099299728431832108736258408607961302288667587510917872465647053091772790834276223897048551909579267431475250781868659356858132344810893134078175651836314139519204208944790580099807487480283740595540159404826417768874518165889926506338691104800290189665537816949662145272834340025452281851520763954623945162149646410414368243511358319106843401769266308985937260309665145084116053908662464364890454352695843317937562357911213740680329385082741226902341841868648720845967159618235242473427527301359863343652500751311824918796823079534195195584745798576504748658139470909042934197524195919017907559648541279318459764006382839870202851995690980690336803175757851091250037728340574725594979090141582136426214541697851784019010794936690320137862425832274521229347341845572074419159115191501397937668273825884964042299754897382814718541702115032617846523666594125081994089973345182473662439237704465604788886168302993509183455107621983794393822755731610319607021082982983413884364639212353881654293759802779233390699152607449988959262577889580975188078098479984087214314521671388754683627946904909087721035561158813341416573392127007830564399827375366378303135131188814951266289800395294970033714507498036121263025977172418469282744096442251468572564305005882040745420335988108101479564592308976007099281659730159276229161859274719195300300676545552591741024149496594392190856296943341151883666829489876679411506534911623522190916135799270483438635806538176907890249869373215499222584839484196315265522615818967530487294706375527466573884730794762945562849904371979188398379496676942069813395291134898041381903199076809033286438593437782977192234109342031394226589416566944739853626657212120628599526191564873425627480321830469469134075323857954886002715904435796628071065178480331456632941780637844314689762507085376156901948489223201097371021332632152851960810196788340883912225576713728283035572035642198438106358368604535691825723224553849311926260798189399724104666364255440641478589452135980312297473595625154125431609275113243013847078387412067746007124340195812915831715582359026154683462473426511463617441917881779149966818609910739148820330051139038537869642699174343619140275319681952208992453366567045749558033009171546805748480636220837130356566555934960370995027341651171327322926054670147264458526931194125481835790932294827953958178480126657283431074141926158914193077897110609175870086555964838108734554717203022466832466699819327827687496194118974706356674382054523878480580804276755070933632912701905883789346009082161647691547940926144205454618179876105608968242459689319068028721641408597271259059890700588227842208055391847970554305186859199476759708171368656028858143387287264166868927802337367084916867387827935729918926283468542699422015891996617824392065470622381400437396936174823850851263917412053508910324406253043498921380044236506772146708030658754148216589360290981789371126502660734152344341280352405983007991488791372395215097204711651979546561422645794565972964258847546715204806138654873796156457807306799036310206137826263988120501110364492483264094479951942303065513274027979458728316132869380225868302769942142637868849468301131780544734333293925472123822033191351879474526678124846384941292049061546147822192932062923175143156402473837640927455669739628915796301339602428811479206740781861499617147794645699073338639974284939238912684790429074184343337549181574303018264896242280357532655436882501522093418502398152113122387313459507802419772261785411457214251596786409725247487535525362948134126563867174441947948347611858884029977946033429512274724576414662051033020217087926851549535837306238038603123146794234268817206305173789885960029718644559844873310949970669340817445912630737573667057528971649673837947876094397400169088969120051029754122059426655517333865806960351268600594779991933049666156690761656788632357614740011901599479901190492608915573674758350500769372848503830188229302048886927553213184192470360080190901196241204865598682031952445018401490322120089177879270768684331556309077891943338348771556753420129986669372003347491824901528778112859726830411469384731174479809246833330935143551822573694859584796847879489213656406082016433552922083181183152131983828206799538459437871057733692011873775831265936375425469166241653549966842662560384583355524257526372339844955279915980628466455909865393216210028329536992270071242323043412435197055475796324783417767637860813514406025853228232131446870541253262552617543633426253697962684757292661120936966872196006619478898556863573849622344211722169456809816022660601484194932210984012455252592156217641961740759861485617117158154343404637632425201168882789757537040466053406822689867897297704167928826047769365048761371349250696082387958140080897319767862948456816302787735040952671046777926250065892535186418316287974167128525295925870353431138091011253569486392864144867823615556112507104120434981038059504793062253890026530483997376211632060691939330697572349038381888217286549166265242562360948691580902978812694440729243438053938654008951144608604804282217277349850108259879778567836774371011797103491936787776772021340886380877739016781823177552535691370072114685143390109339191694752985948247183405796072851044449273096407259710205830232727571290320878721078567948739117986387847947840379117881118878469558289961462920289419165371278061521906404779689064116614330756213491864374304929675637900414065405736835167652295451449369801557544657630089072094950570928448466099901130020752785864777632806498794511448529635876611036679138828137407084128325601067186719509928575857082848532176733966176434141167412220521040261988801677598904711156243680785048042705015637955471688583396111509507980213720264166758211122732349688683876447985735474700097918113503623036368422295750784778668706463351597783924713172444589016276036193869983421945286463839259674712801505288132843566249313673347732247517218296695075267085581972129727883797650276270389416166031819827178844774559055602019938031159876050431060682823275839959113890169417826477243485975997118658528746883088391449723786351736705563485727199598368059408145491118127629456960906648968265174767452931313406581073073922028246496034108130745779933477301099125774448826957894934812781325738439291422103559244405890683536432971346363222308874043040736905510940809616209451900479058830402570996191467065120967416140155395605549335804713323995464636761468774736504516747606495850850180984082667443464798585250763751722876762800196432857919484393676537794061388047794064815140409271971324169328081876236823687010549513955454052006919786390116463962512438409893762651592969600180040862125808709730775224544965738315906367670119595802840974416163966737933140432526717382278911825020947442363734760245340999529717273847979665544328935981288148352769513093587680570498951515030284774506545950882850545998164163649568321258170444704527791520160990680485708306079459413103750677747173345538550889205634692827940226737473331744631917032449068331181861520927099889010474749764988930002582206534121808075281011969656042362929240544388152850647250668848624320647333624417331853140687626999052037401406733836711034367869745926199305167643901728126695083140523061213608189978606648851344504376141228596147028081415723382944345581521808026533747279459945543892099424629334227505077216560540770837934744836349849903250579573364231334698801450471608468769422413526283208104518265441070973173214986054320310045727022424966296517115197502481599037550007222673948909815986645503430487308941715495798679591026644133033179136333435885461101134565414985224638602619010898649905135144480625988705122283843082311834610071427600623248566457216243076058125094044911023680838682153797098195025767441111349651259713026222553658965427122095010319991474065360431082713300235086284584342067444724343937078854783610021536524971217878223958256194619074392856427762572507102611856229378080854295838796857861494652746684320549506643764171976300425542096640816218515037849924722960240961246201302319251683392686249981547154498992171578280522880031161857592121732890881805856988045560583091127703827701099659551061421292857483378019773613122189622963587910056183633073602542332543710007458441160648330246654729660299384221205996725524679071633610617150812754779372985650173593799319201086709754103357797555576705278477738999538483306597049013725411685209633459856559076535516547425079382702611111194280032734701501807416577474764783165564320665587473461756537799419846821846559907861164612202002705472003399926986634023381687895170043908230653170077448530160118831444842795722538029587781450836852448947998424045458980188529625970730492685832517277827992679453650505547027330672928754422370791235718182397568790287999838406875744889972679484422194598841206572823407241814754545659939836694212046217700486126608501658610287986578942237339076887966795482045505019361275293077748946131145463386717997939125096068456109880957977882866000731452584790283384011566851785499758195154607182331075434096688453653321784709761673400606069199730557495366941583327031962171178279974373207972548844561792362005248358836000924698622257519799068783410259369609824206203236171573568174999004108592612570734776333766346033311752654149988233595587465334740542322136937068180712252582837925235664974843252945418867665724618377255629067609439647795635714253553919067798484158026931361371439749494573339848855490493271531196903625160913702707806365273983673069400971662906499190051075986553720854014871421264888749633569924237153500365987669756035430868074769608270223884641713962603656566035961367809215183173041884834200845337329929228364312140175508898292752119670165511727438677650977444397576893699914718952583452792201673202178033920291076024148486948642902698967044469740708066435827857037432688862922638685543938787901885142660183209234929794836965366002160411003332501523622620775131423270661369047183655283540453771965611779771160994422970535907481455236170526479295143708925678315196824361953738340412295476037413537946119404179383931752637820531921281961105636482042520174698038010642311910196171537883605638200250804969144542924797251645710938631763751098634955341245862466056730383880857204107886908480978209177199123128002231529053089784178028615721334120464147121156399408908611194801236075149306030761166062667517786673474971923500385267843280698146401824565536433326557551073417108965315881897455883680178985981722971723308423221155384823922507126049081262816471038035231693469453037434581075729975983913795146244744272249310270750979867985280623271202680639816059133842231498962083666678902616556144836565151129043555113416402515191725209787935211709618941433141723181522676323893900785454716048950995522905623717671920943296393460242551683359073494045489009606647248184652074138575129050017938182587791188437749735928817068593563831875525386868534871054819243431126808193363722055729399633876111363412832471798864569910363605269571631951756381246713392807009177756210447783487484869718745287826730204413676936095495011979654297782447956386428140433008283812533788852694371256670099655923688845834475859435962102236042763220490359532863258133481752310832800059623498018930714184115874732337611529953184210660520457434112531152428618345267986398748615003083854365418931514127467400039587246480590274906637350190758423444530011146491770780333485200301164161174127445585828107183408788119517321497244637753485672431328147377700476378238140714602535562028649040187007144521204604012707082051581481293409337689351476884993951955693691312172803500704397577211292879409363652639858544770679305202920372704627423723408799762000175058345890635829138704302385220739003453066541018089355096991697587885833037418068259589543786027229790407609730802670901237142677134177495447592763987644922300033299869576808519476702659897368012071836529464215066098051685924803976281217551497728062815831771662780080246583243380988717817665989828751240975122364912725224602627122353529249539100128330918139873947213234368936210791489823839485150564866656432285663282066046652124339280562960764901786489207352468447974853199165546024680573252564255452774293935655035755164532942062607456220453423206485165604707519247064058609229471868209418056212108979642034787552201216070927886280066925166457985172184234895226159983182369645047598155087466420418446343318093809304063441587074453926019934652554293532131667443568108534882371194239867777183130393770046903627639747426158979454424799635680224460449112141625785088460538531535924560455274850794016425992749814395932024734421377321969943834993836624475697024306535367864266833757329356368429317119878616338480742856385583140276805686586576573652875902166922992693866693466138564170958037015446543333699873473870387308794502510796181170292927452933790757088622605180863796455222692025629721195244209033223335874400513307552306737163087081659428222025654587608125810173516763206999490748232094437819328784948596462982059884955153062544643715610324235202109520843845644201679001618661731584565359444998363797987579889387683095033152481019763165138326325811337174378791322417338933814557819216734813684565459276747605984135123783872101082291359205206350800266184091716628908058186505816021962238704330403628651534163601001121181993689204889834388356343784681477001081732337170330672419190586345331609445207518523980193550615450348737277941384998540929868762236191437744569036327296135993535934306076671962465260527602669906491456098099698570654453075099521817669162072624891676974529579894775478202599198370658728841264593128028587969884076264230457195341840927847410074955987827089351116558586054213170767312780489481385127765845166347647627327605636175197164043721226196917321894039353263395709610558706108770422408721344990500480781251214123057600404904754049126807995994137543888259148291846681104957207029270477666274739998164130465535710159310525787607018619113339764756674787456263122236145784026160746036672877047930252663356171714879109058972374682652241353740544048686290145276441242506735656032913668264394853459664533223326716600501406179554505827120649403650187800588896595783258243408157945061221004084084274895803682119788157230173958674126434115521457453162271949619181009261392289253943864205809802806631485189453867506239713173577093347708250534516733038730337832867770156951952464446731316319087268830815679989236259122239622901219839677114425807475869049968227768366458780661275764784822131977543821114987226099395361690772370399705736111945422434825395804606898174404353669060410184140263374988145720748020489473993082109073276718833250966324383135452477486503661391584160899519068033068347083768460555365132922709412543008148425000065968724951475543397337559537473488400759005710861251674609258767549946901286380253226003542908197285085201972350278698180992152664829308740574176116279085272692229325929988833245515924919665196271426804472525051055564565183297389944174843257381846739826466143656043159866300097689279889586837085856672481099525577322383556155672878041332443975219527827046249175089039187837528708842318428866505153902399291660325108730146077480572785920455752492732402815221555198230774617594427232444224405361731584710386098607075846365866328041144648327671279027828028579748084125929040707069121140149543904348503140164690008482035141380321311678884216563349300671045459683811602987306481137324661071504688541143790001087645592260171374274343746339080704093161217532596210639981542271205184573119009861750586585035707414765076426977464230146004853534492564407055936090919663022666668570336117876122946825614954652009335074993995181500422247220083132434830843726210382906829992533815881864475026838232627491781206837209569885293176840026986542189753245380847070236274671512558995238839798239382718048498833913061852171132733712076429534743518267432363331847115954488515810429076478411278565881031893670936392756495905038530679645912657421157255594068075611279574625608536340048651732137444992110149719070514026273696090102728613813776541493297031061720264193778584486279939754038064249096774976370619486619286754833068353145020691802893550275441301521954692326323173999556124310777011029203926697013952708326089133126297423568839115990671507101463579136409637443468795752029653374083333086825692966171908850083562633533733865461277942324834138251736235111695365147063404178165800924392033512847990756454141441450642962803802852441553268744812618638921295322440770118369250762608521466157185852381824753748439561051133343213034381636679534710562982091195085926445963165596952908053499169154212646555950524829426139591927903469845994283049574569057539406938356751517447318078176059036158076403563605540124968235242604056883217923692858144773169720427325982834338252487572282586484072104900329855182403672504637997655416393030918247640468630012074274569190691416001767997718989780297201628189210951046904472863876259817411135103118701897767335292651891320477242392530423990506591224500526494133975690344091252289512684500343836034196706358272919728273569979866561892998951269357312077207323536431329275431072181471262120757675019567670020361301295221894817670258825388516244206785892155939636391425329198862217009290957979807422437569244936897150926154914974541798515819126978690779615418084619816473352878496979906623748294317802712076147568083663378769644535265527763189635372419841376308556569404010828327440931235559062415621139806214786999940571486774842038851611023308867347059550655486026903483054920734898809184419185670935176136132391731016568624292420489033648973684003919043345736977477371246387304132803136194333087557039292444069228434576362999927641981910017286341771577589582646985259652970006506203364145010228632883814758300500022278983852483536086098402836820954816172587162855287003796063912928566192686763445093162138633986620322955528799410661774161902457932090677951382482715555072401626303155255999626789817338283788137681045803573301109235246859708240100223310016978019564490627873123567859708254610214480145772947530296779969015677169258166140190738931463054490398265231342136578953860605354527087891130543309603415095538434656905945201858918559359220057165585191059704355128877055255630277941445155008231342106226946683965624808892302724353199046834226300781236570484831071081661014229668525945728721287380884225921977225820129572272454102288493222712719059740288556012946237230050047412330547609320717371006307602123126204941796368666537591586970742073055481734030986160650353697278556326071188328395638101152784697373620849826660408387616617571211121878059383066625054606929521186456761134791249479212753989004088498665476168765197094201570999872930649437127557123301973735683921352127655478870992925699476710510344380731884753359656978317629125318895804737288517955964679107254221886843844568272964526703219740205133936458983095506511480494490967469022414814181780106866823176091675175776484770872864025598889595174674373840917186922704958634353196733230592912294182174585044175571646860918741208223350984449764489781441348921276048095552767536638162395468758128116145932485001474144687643875904204968566282708183384409809541279970843285703028859741464926151788507099437864024771409995642952925689894536786600463465190698378327511703205188132870539259528618679009164739046101892856623757581685402712281312415244538786997333954054498031444517714324208631343510162926362116506515433793305660893869374159612455886927161415250966385203414173989832292196017834960280181614971036294156549526373498507843132239393586413510164326185668338417588692578309645982910652285651115161243922299514169042553880165276043898528042795806315403814631863089258290391462836289531510007241790519721774118167315842948087497306860751715628142237548625844957452177120490014255747074335208411306613904083155050533185357574649976119054803471049775054787760804454734409271834603050263260366389905385962227235614095317292700764091357243155055560995179141172704791780867417495039073155201246704245341476083375229163177477212531471076099963334779264869818527437969744626401457440014247788923745988082131511576190051702513273505870099533240315708479320898403151892566320810224626670267333236328737875773573047881419802932014329819600561150228593295936152126004055755721000709920198018560626811731355034122746814451695115588195274086963816281865937551175929950371617964969010326939151042941027220437629312320034061478623044934888599709252630831864956869819922408037192373802693038368803942074862913718704346931168739251166606894499167760025436513124226610752775646004599734515780462944139347777316411234076434028628741562052146005873999927268395452637132591443604247300804936055112161994435201355701905065464108599011381240757445438057649303727353667491148536248820319938318305402600389655291443993913836058030755701759294612360748504076669896569428050712448446452248497509921691136931846837743715288680052183899703432304622794407028873238024740991784037247407567822795167364035114643900555198832022475885517516851780996580797580505126135497165869769619377195070356571042791090020100290463820219831486462791748143379367993429979842156638004016200587521385078079699564422458355623322856543570513415384211903010192084162514735861189724556209266933517389278351291588218253871197579231561057389027202190020965842368994128115054554570112639673953083407314004475062615721325955310234918712159139456212688527652155339329766630947437150339350697791836836017766759281861138326672584156403941835132694565085132792188603925408817298675901902195441370676831878810266025435408348647948442240343685206728942039151611577085750335126166411657540119994708390236978338834095379465132880462012778947064046052967070543648918416345438896775598745609206661852725064094372021143893411725030662612321995405312065831844656465973795237038008251129645887646061723646790959562607778861879418244656284523037152646249102210339358152672766450347116644639786836517432578984638538452290799454969024115601421623974399926781320293379943486403737360933110440607296620320410519241286251855355288691089962794627845277689188655371883355135350190618389893322725533796521530900526326659553846100577285209434354636327557152202848177502227463084154731918826139302059260386477220782560943710209759610042610937568488128971709703903583457526960984127792986763385778009835783512163733977811179910411293612167464945272338815643364471756126165845359845725807704219286109939023246018169510302047608848738151847969274354155281683751969136491215037511772898197819170469079847278874384034323421916387453197955195935655763543959223964646184355066746098343511463023122605283240918285292845938094896878643589248719589601708923714672835008496530994356229591105762552794205786628144731347972691216550787519453415371181645673090637781831071046520550400215548969980441665119360472569831526793399456278730805591901223761949844566205677266410692765440166960993325089831104785554473411694235896715364162121877251761151848829406900175457788956541619964840826441133079696158359080610256179412100054697846177278926548644237181445029412297305185698943677909605955276932163150508751513431710194178984084900382486336709240300906923317629070308408581450007427323615976565545963734134839709473624325184673899143261462582989319023371475060543509532820766922132361469865134571675937970606559307340426436237498809326573921306569469637692754184489923310918312131289468286841980555906451786044385936164401847253653712751316646918360394250150335278805218839967989606107928286387439068859729098200972855626729097076334545158590770223983471815048524542819707952631599042331728678099561368610499737595202097853787442704164108499689071188682589131123098210705955710487341987176381540136827989521934569412461894142114404714872639297406889822517788635451172202946240594989872178142614248043207339839546127135441537178821428754555428343332884114709014230316560773266509443972365576905186090222155658510088825800387301216819891259312725084362738083960860995639871115374351667220701146089379261985066845655407869841557704297874367655894576692070744730303128545667203377460297939953538061966872201195965180507717042337897410504899147667002581740763671676162745988833352061586879791347829358116231544876683932943950911750919929058290689154780270934699948780954327238474366005002354654419519791597966822790694225351811620691686656781374360383270072232854735732607619483148179985051432498314821309738692414076288781715177917520754073917978366297074937525441782748574477559168360509962692131861416292972180336263031456284212283796183784153522487256636391528203735669390872726981490282949520737468227089991346812686100914758454822337870345615425994212626450129400617553479937314205258860025592941614070598052666860438451614605353968384085008186446219525004671760054798875604716323177586761987924740977026952128685020622938315491011727364026171476587902914122467556576618528791193999462225506136895536498780125298518853784954910840959024355817253692593383248557967546673084957528402675808241296777389182974484421069993822419061368265520718221268158928195911734828604144018002538997343308392446426242599339825373999167895041321046076995682385199650031145671179026668675308959797562361601325932627289066196873801704168001168124487557118353313378442968247532751361775990496060914534247777466684965105487304821763952074963233480918593126116021994004164208339866299568325654042489492468574440308764129116326950904294332562497460413745136880863547742717340904740476115834532125542312562259893832120157130157484687336843197480364170087831784871319915450458160452764964076875107830821690906569935949704945609776029839027940154888146459420037843688045952562471787361256743959226153841814293594196449602349736609492076137640562619181479225955384584105425886592523331563723643558642092733799327595514029632253807253198629609454340005885036283452633192540461181514797781056597931498859342405488080434030258601991618228334665467160336655577827083563446797042867958142306991507275280030456643431674887957444343218999987399236229603902541611829161124939024052165794202739798261068842466790290897052772806362578032882051480240814741526715222700201812470095356950072351807396131523914778717381868765558565106998480128048982286347131786709617159667367762368974037741828207555901332261794842322005324595666385221655972949042581886621873422394778075036300169284718172767588644412757594726527924790073820971064997931630023551561196302999610953254626226386936154055119778437369105616365747650427979535602479382516532287140871371361349740399241194529747567225058618975040459189044994658018940536485463033935351453049653047312274008753955211991948318335368706641886601647034733748632846294764554917338288774137592193588769676630357212136416482065762811889252532509782224699572650922746210519711428480390318968253475601419743386563379238851460323097204855223748624038756778824097500127162018086071303012881395030327141358618465145360005122651897105506358569732977944154891173271246807175184415511829161498555396195927077350674620934293521458268911312273554320779490333678391643902564446773643469837174152339673264830461340681978341071017737477492329923959442124836568090891454122317880617989502215045207189592943478687069771728894256518128053348810918128920064039746238583130727483477650759332873386458662210337623502957366200849920552913345096386312889684503731195753135864166931759329996750619160633465026268268300833187045855214664194875792740610692212930309083448564290008337411060022769720853376724918239984810002024703341613465145640091459209401013575672944641347576445524916760231797339717419133566213332729351970102144586679478183015604255346810055637202513582771075602881758694253451209690293230816402686297303085546336591173412918382698118358178378609669773133128230613168354620353495673187900874117589928887715672424023673819233131191692579605312557474772815894253789810485493606914685777705428190185607153954666288330739132195831474132038616166734545728643457282600694234639512984987759423249555757565439333027098977144305057151182813110835452725552205016642651778891791766422890660327963659759795596390125288081759023155726879889043556441404387189648850169500307155973836646814614290846191475743451072158674538095279776401541974591759636268752078373166933217513282664464734830314330835757775038180460355122372108022682102756225314415951712180086905944400342168799880541618171807145972313445640367718370089595914355180525027179491884463190920393043506684099003097540591170377478737782006038534421544962769192450677502332803500518431570287313336389640675557399588222432444440349834374864198234562233938001619305762729736930763970156710881252334757829676875188952248318659361926002211506342628463849630357771940207145718563756412525276276390612361578533547896333843223688288458828795925631197884026395433960082345981265358252352084941339516110260390785243041832978339590968518708119652039895181253187926273360561248889588788120350571202545314026875173452512494874716527493137481959528161918028126659755278964991799879383449899838087973102222350355896061466460101775252112417056295484701538772409748175115991654408585585925984788985014268024814605934274225731207285166210416041672544103943523868409864829972662141685610956521068117039125162308259317541174105640819377951953346520791962657511722807911774858953852429727049086192503482710793928385893219323779785055430982595213600053222412799769122654652060818798962573160854502233308793313114931402843442026830145902155732803361433430049351024527981958313138753067154548028240345321505044364490845375862624607705396452043752504806915938727811917137623497447645394469688008999118858309503070901027198875639954623962379317625058733798480238029557127033757447643109236578481727210504023221393833708658481077417297990260295156025418631632043791975582160807839856424592723568218370785718116835354979723461255725805006514775737910804759736529035013518842066766030557187448145933996101084793415767555062028282303315411628205726352151347021495492663545189412942612299709153491585309196638625521539871303178644893087989967783616216417050373874448031160025337139509532290770535443203410868092620154288731931806711420622265490461295857165472764250274896893838083338460012694877361475522464316746575426761849470631093724838352373164689368988033241534770016049322423507791786398597885774882405340688535285407494919511613922785886269312658559938954231727569652021970051869804450586003864840099093524991794050082360946170752755139224520939016357865076317057589422938006499484572335131186717212900244822524412561952332986153647259408809836173981543990685070361390258156628125683366093294755865482546425503154797159164787180456645309141609389355141091041398432547197768493875292191501739713479311289635359884083550889899463736337848191498808143210504352372014547977412447814532342913379578889639375643832066173896373621115118225108565712831190240159987847669721697115121720868525347454659500451046658714927529200419559227538979320043313218838433727644499848649672004402811844886099186176018455080900661008621991508290309192006538608233394295187000763618244770287361096369546447781516233774323461235423272655904583077203189189190056579010300775142687733904451997294925504492172650051878332104265337257703781716748175248583119112224408560962329949334429657175353538478253309334168150553275174228368804361314808161793060349477821579856051223949063585224551692822713062653156487330983255437901794978617227884123367272190950388418080677644175390399057066749881543191006931472206440884273075696258986266914555327972059054354980898159150345918193655236533695458759808640132973865256376709547592119672484209793121756098579143933600187561102030771915016483461363529955093387046596908227024998141124388813177124575969054980189923798289173591527339544700023869462397228664215000431313263211988955518944487597018749789218801156815090132068902492091338457784103583576992490190675807848738636625784320289508569936243034195572002437945955950122509804422219127483590394077717748550078804343501049602424526252538848663094819992262901725343867970461624011226493100847410013836736927289455710214552838956858602606017347096784822356505094756287360126878411969038677605953201719985545667576212749986669293538342438371623286819275468681029004841253832163665437348407670670796856300890936942424248959371252395078368176105342972400614938969605271049024441028028480478556135280121931566817516187184979628162173613618388938238331364922236747893764187006660231017209743646178764932118557329845858155792327627002226045465456499923183450580461766665800079947982379715004785635727822792859146786578023816130299594718130344188960263502969380042889624250356109913368028920477403608107492006329585585165698562954877620239926209659996333335688932380127084897643179617134972695183273741364028933280361041963939152267734563532692062763210261805116397182999641232156570740928804575373072893038717121452356970601101914118476664879252739980770020838840092996937115515927461099468814471298598343616919190105334284470932265357072044878392091278551260558431014949217344643676193039419801845514696257915918390543279809233144473964128780325835984368364870349919248359542416807646010021012412761642963977463471207012643379773710638089636218830699189499359670212648881326791790337639269439910782710623381199950210485884056243464663815888174619875312487738397988623497864454634190211481342270236213697466456750066977363968575814182243798329917704077675577054787100845650363410033674964994424168708367661657396749577242828830301486507293660238556411981183574449282994465645477296480697824319731288557800277744536980392322346231945795663247329914502037695977144081861782536588577347970254412973308708084712225064661249732537002870916608176027590948296975545305168216141357690324535353115492047424957592447565578849416127722441509160617930976514262398944742231541588205418700001337513410576523868806035595872359196003561720063543965499123412180191494719944928290676611836186769622856274510893071196694611722236350828128531970902502838939379388665829682756337525531192152930472830984569471542426848057454305704108884979418518399811323524201846812931638612397812575336167576637053678068049139497145291122871978183845114125914262887490616576623124071630231396695380142449563728395605659757178440776015214332633137384951666580674878410794206630812075127919900605607678502736826868912440211040016051320603672126520071264675072408614336468226047211774934316061870620731779369865215180804698354393255416257503954223239521494351731531333247143645356581783916399303658225007122966035123667897817565134530293716660436030557868197042077405271538087158274599943169470027197594478661146493458227345437399003134234858398945188256618682144537353543525137290440452845074595426446141991645645250400345571699041760331149748271952953739544468601477187427275405269150832640811763113455297725140272806352209079992724832102952664966529687797773983917434562532615005430274430927450099739654479106765449003563185082222126538223541660555304952854681869601403251724937867837535917257402086691067772919041717491787133029813780094976225883840086416152877076145240289344945901924967854882803435320865050748904030804797644703368029425368583643619975236261014393698612690858461838084693200301546036617170218680014723350178924987857475111895861638399724908230796944356016395876651708946558338930525330684558884829350426878528792413837261151293605337664769032977269551407359776849293656086485244976741143614664745356375134305400746372101659749220576924897034047987332556568095378310294506279786691770009080451161360499234456977464724853183150176579234304436248875152223688807210267090973846381257311206752195510233107803945281691648678369889519083371718610585034246180930960364160428892122977197457329482595418762341411772418273884738018207425804894274086654771521769229804380075947430231349486942736249232818537150050057697917143820375047900249930921980181236873906632566583074184679945836315243553730453798319518866131845658232886601013951733966537996458090034601975417296813543009801315465298238761300301160734990384723757601935319885509606360537188236464254343790981292856020623877941411669082613492086160084244601771434461421697323157124348105492533382570043690186293286147717769177124544415443111622466698898943935501484598483777773025430379534291325534197784166092371678179126751062185127791151321406132303370667164445043079225394954967409433406451270575591624234522396013140139503589021995823549476975447672472938578178030065258227114897008336969272901175691612918627338774716104104178735593912385424663302060772502526311457640316207255552951455099590711639079996411674870771273298464100625307898202925636644710094729064795559839653092782318235543028131152667664464935510897615642089672243010753315905214812831566267794661258982036035875861315618569410342574877822140938429072098877075020786496479238569963466561095703492750433813441532019298062616704075591892404341872770726345909696720480585238065402510497548911904970363053086571163176712656516744885274054282301703028830533166562884093136887419335796833428999557791439427116307594894244047632483323730440739250523025520999408301899877158573518847277318452766019739362914512435400415316717410180297627866496713223996084085918875111483567042414905415108567230803819303675049242690664186444480867433695235433007383200127730021883038924908202490881445460647875700422380244485397655118270708398760550235522430886760995613715780148038135397539890033311212828874358611333114625605705470614258283224990355434317258527772467658039102736650351522882050503906756404675475124763764324529383395858710239819132736040191595033112559449880341989993740064081630334876061304456056676661199892999918474661778025318874240192835694623211054093426000640102910657658197603102474415271494313531926774902446728932940904808739272332691752885298404037265373613752332549787044159652616461337974460351237109227237431784076747064722953217637757225753738314068110035923784706471403637282534014621047069398447496773238815868949721196339361703533110807364125433825522360882388905165968221539762424322629134161708744155606786915971180214964988102925288197977590286792560051827761461146484402315437176236950185440984359241202273585897987431280633946008727179315601994622184648694907232957024301717961258481507010312282390595179166369344953191919233749095837951605335552407505530606663989992681013022608615468470193232274078618692817445959944550769418790289445177797764510574083586369396480631816553317468822092068436124241632139328091642401667943011890086529412105623300965009611485155990379818709576551850103579835273022161417126331290926214087465080155315247984602960979471402752055021084666641944771966748449319360054149598522812930308495989120610751044085204619548295430358394411425832283353614668502922605911409846753181680762988235586481848263741995171965710675668821186665168691867515448342610331295644191709418951958840268349561714262435733526864136693060059601456866654278385650708337787642753533139603213694814504542667547186526318556925405444039817054493011340483996391656926906537900896199805982475928469098683044905957481088277652269513259687523338222975234697450985842278391367837082803075692793886727528336445225139984877644556497699142505485831027172393481030480103903676337324374560769078271159723818501222770563098904964873367682675876839635592215268772874504067278531614553289383362539112456713645486179241705255165609992124709806375298495400436749738826301931531336174269698160337880344949897504812970092616709468579288420791462674965463488789416900813774403709506661732257328869205330189560438736104072256929888985286949715637216948737874995710674820847048540851001937780429322891236883285417503508893762226750535514847677145003552194053900012484410537408193334217186875769056448407226169414740363300237748416263177473570229148911593955865272439713645817516408820007815352566488726279810324655141707904561437310289098754050047907245612299984639521333375584114953845227459590789249927372610489827475593908277431142291362212603246878541871396965862195056102713972604507228964470815532764598526074475085476967908601476493051433518049246330088741074108207499471279535574122028821498405289199796917592629794259072840488772650230842074580833335686759460751023632350635127434471019622571643736255546359956038615923183269471010876213247293968512565066776346139734923902589351696424073814249755659445745883044299389158300422831241604923375415189331751764098528021404517784077214718920845081543235548910035483063109885583626836315929325206019351608081703716094168273944593136773746214034353176379292293942782202113521570348843981063357931246856262157240866605130423233866604074578939219087535164037820977178462383091622382871907206930585247158089723950059330117610847691481919624255657441481095543799339949719946119051008552932768508711642662705993601468768137520339547402203101146559069287652713841293066493967818712691472885822946841118557716448452941737590138064624710993172262394438523773857728729206786496765846780573340743841682272981202066026388210832515279520388548091182287628319568450684349977547276520679857211309648196948602783617488813486908601118993823450678770817831033679327503264705308705031429786724156444204799065295137102846947805392799490633644985081860425820231284375736367699675003092263675880231511147719016835613541931880634895130079822144501712192644421814022673548594898371479257161908757227124112280349937019786026008716609447909850667922124192558923487947055192045529311211667319364402516806561060898312606385602718794867385045625877953426042644332598616400046314374148422043639324764744335613118929066057548568255939776230951358449453221160448511671867482120689527339786250066230778997424507682700739022767796589804969481645252103964922701803625964657000387384954164853076500603708560844774316496358925919880799308946385948086691687798636873852615113982982966579597200752509632354668325591455300569770167405870620099362056469577520237998955077676026845607165414008760104030320644952509183523322707772089635263176022847976578855883451963747685871663115462996275653321269524661646884776541464287542136628529925076077505251155785521106303750859663224424826849141644534508584309410791951447649462393513518986767490943593878835109346652153326736353593990159456936293386019606334783537651674077369515308976611093362262617422185531588839181611985851389496825408100867986499460122843421066075331434700304953162691276607671593977871573922138334598657689192108105391502655653040219251474701214489905750750851148234061050970318039797467105300794721308280788137842767503265905966634909071596043503042655202801817144306370469907582363433706138916822763117846255223161840319201626930336479287570345198111317603198691039009987462239201118898098433036296338898250304224870277360609043654065036871065400851263969854248307269778004141132449147892318991081472465967149430000233049473828188781595165399744730769532571390094391995734005805963988312857057826839592504203495505181511522328124100966845452518655008647152385186255582996125604025319164395753218729784495258665327821529906114298841754463626632434407204755648015825403718702510668173296109128396377213108900989642224091473514307620715978941700424889233623040295253424209267224000494780494324924038600741003114020510010383118330276189785392099743556898780358546441899000576326478242614513670945300120924532717844275085162772676106093754957015819097793529382877456639514963925707785716091245927670159256167091055897394257468004278648076891218058969376072614323863932069998698097401924739546651919523196500015738872117749914215825633612469555178178506020282164643594672925252221330587528740740328564678910379781628947584600314241902668031529809502821968059989555729843366200805353329018333165796427889203463479647653987211368729079972395488446603607750250451534722922782327442006338876059656376452497437360475945382088199558274325260437578229975060702910874816172039029639186581265900856806463938852605312570421782852966523161904458979947472726161577752275757001518258059406660598164916907391746571572965627660901645172389454282064903937306299884989582645279315553946506380832075184814553608868554265615569128567291124538972027024512202313681358197468882112280566943309203922728853657508090962613511671306383176347070300834505052827697737243750147036273773748426098978023723489946022726496449929720218437795043242260866006556894722212763422488421680498249545391897792733778738076369489013458766775548823331718124085789735219078684727574919142106345969361565285714980646314014567712410999468603652390677558717818694124572346753184800343051318149337986791950578262987448666533938456573007516288561939926696724744142848454215874812578612708071374562110573269781980835279597915246616635421766107114196584320464833384117381330942319368551954632357946279068815340658881131668964319294329977321418327100779517708667543788114495070118621680265890621016436061068931834181345073435596476767464762294427854672260543061625063311313223857456200543201455598604407661515327640267643074921944605132434312035361485914081110244768852906547355272973773599437590947282995130868126095102132608789434094264391649389130711650603538360119289014422990229646398377635093328168067423011679585440865358645221763583582795690670291518332977387697019489445580140099765850099131592476591890154784196631945975592090111390952698615632144139724242026168984436952987384709495101878314021313615046838408568283099952707696971182389267747662219096996074213563763968897375738849261930563351941231007022984058343383364914582299641790059124172630195449006200407635199867297539608743578196895238806805327228112928502901020173648683960566531089088990431136055864281892144403019171021932294255322653002822178732778328469648191452555692481959604276690553488391516502696418656578373212645797454620406496737180281574161396020509627762231415060036237578230845222484000150426702107205956207951420930209560341722811602560582350714236113207319347503229950473537461778856507392449287341938281394716939259954288725023208951604708831176873742039566788838350394879511414931270715639204006657203671702617197287649581327507395934625169654425496301711159038098732302034280897306646430252962052598049113664815049634645928944486285276791412427115717100032824393332449615219967347975178440998302962416725871008854453895494073706627332537944379255936144991901720653945317368253148108370138579545672866969496656289663499238930529204831653138762438885522225927457590476096631377697505614261480609215988366949703257013864451998151648558358787354819499150974372189014334593359738509873218314183833985996120197746742844016429824066862308499394602469894133992518212113004837730939308986480722049606158466484180155482823574421302411313938945780839654278193829501880416515766162739292639083162916057484445768959780538290330921285124854096407281838716038405466951992071400776155234955734064097840090290340863836183788309033186631020772526638401705534620237839553571259125562764531837003477198643774998208095090790884311401034971933021487296264974604364788690599951480879375040382304379163678790834232411546544504336662938034004760589151364527055606685580482842837177584314102159389769155947818908775732986344407833490702325294794761568975196888886973107747337815965702567107479912321484097804249182904845557712835510547957620331532976208235767458435617364796538189470481688575101580969444180412472685466372770575214539179559003789866721105488598938172970124478056042337934001702645841645522637538412760199400662496409627440108784359228952750920969528015563348953580558064741011995963008425420551812370001671645269347465880397212301722016421945098178816067405951373979167579589868673146281066575487326448099417236612559994990875144610861914310584697491490422853089396109535701288673924083227913113449806121546718277020813517175638712798010949412352988293826776771821158327893291479927571028239115184861180565891876274666388980742559174788966030081805020148972195655200843579089468099552923128129408609754593947623904580326091845371483895388164145667034555241180502617869348225034204567422465360189777341251762329765701411802737197003248826010566994633133969577864724372000711600990326927084785750016530048231858027115583072814360392687670746938108134059044978841259807137524501757775901470458777767424483957326165685669777670508421767679621146518832207262902273832127367266596849824492013131573836505369386945085496016676420204463510648389490627748295264976016141891052410719190560872203350932730029845504349640639773375868616439904617920073522984971366220140905884628766603621434688308246727109142370574460854941440259033557427620987522365183616215184474824019077216358307577174247249418345433683466799638263555021501015123230766114588892478182898869283101487354515955159411874044152316524854354270176847624820507955933684886558876612440211762698158576082746097007735803739572483897925857403117673384634821198199633094418707403170375867917998256228529022811323203374596661091515756110666652470221942212384655296062900369294748146187935932874542172276415895758055037235729853911770896249467119910683965160195423504683778210996286495484041358918353864233904021126977134528698390985334800485546995269426828888886312595279216097997880162820338412713983373868432053440811301444153333464360466467448422385856482463672433877095376806925672584369365397942621100956897004637434422561082343339992108627653138689234212268814813893898110539568244128705321349249231306484504728027563769945416357046225416092587484942968464610257447004956897939887146530449680460824555307335151847948273722859356870348435789005712846717745605607742258809113439821189379683512687101993121699827324670288013816041507812568439212672455740915916162753317476458774493100126657991399115995782475785115432653497040430634822375521460544175763303999409630745387692913421860503755334140025339995444166311371357591169164906431246094230166000746217612423571659528323406589651388419833015732541956361707015715544557845681361588495942703319692697312636502377517511210728468827169489284245703760065074080979895887001051472241285206719398693318836165375978488149729297829273043261752277188438926878648551415061177959210336992222600736797315901121717290042928341155126246258554136292075661301688294955758968838949938140912875829679214556756031393890604701348989935274285636324039826356787244470987597664591180118815384047481893839142574209555334250190638398728459627847158133765611762599526512182815787563247300504471872624851801410010494840256250392486680008326213370356301909711931630113014520800636195496121366102879124427339366270073758832940359886306794976061413814299899637935371091027839462835621077891059631454394055252375404470907788388836556322470242578050413962222556143261890330724877922957201388907734087282857684575243835465784739047966792840278928632992980275962582724650379717278830594624665607701432164794354476079530784172202026661332335169204426798741863320679144460086115873475833076386917272569662620253330848470886277761862911882577321296460383805340414773194459719281551659460921815782736885389118226883072749645809676973332566339968911182994163893527948363039850713432966583183735422810810008631141006403785601590834035829610931409626109502641421654919854856505472414074245262794183134816839572168132129456515552962790894218939902657046825491833251722094645885867265639925591090271458632601588946233543569671894390067995513060564106540864852894033406320728943788488111070786848592283513871532924251501292842319950755961302896965441077103763835225351728806996757011902110662189482755650576879219037609062523541914415888193490196915593473891441814333996001782486443413275282168476903349539963676584100645401307778281259244987265663157566333176090050630313208503151205819834333569547131692634737003141750916151678834743156633119793615364169562647916115634876994421631360764165534432279517015444569688227833321170299077035440927918843525972265586030385839035063188255523438923018773210402615213163791531984122675550071170339997487911560514851120777055511131981417167334382733288630506383373311604187242038615408028700067999834612259144647712318454683294608260358351244436782046513542233372238042578780131656489572878962255710584224160283094144158274346120870133065936916581868342572873974438785486383974165799672839726767729067755304020675437594369127140158822432634180449055569417917843717062767464835335767217249636909697465431767804165460336255847076616892208412603924942092944574726141828836639800498844211884534495705158362619817302675001830349032169784009492035267048907904489532833155263183693163474382915546032027475250108357007872552769756778253934420759442230951750874894088977845340150660003689522032785805459270865661677442043167375010275269693217044690828018895273564830731953155137145452004570625110163899208544271753455996493598571295851008200139819326784142851694428322963917969645687723999623653602852350253894031331902915516953924364157746358651138228331360601936896288651594037130131371407094439779893183125017261864434004216910845056128807409568399210882659171736031966646009114749647406566551547137040150916110435872658850986881496092279399891940650369386598298840286415454394596653637102976574329883233520700294503810864853809522470632719021059408581679290719597646591416705484202251807661407917444025815638887625078479439510201006505130456100285624869106370967292454737933186517921860203859554356653883927445788962942282064185778660867903395842197985882241729299125610665690811594466307858529246804582318757391560311543970016395775970099743953302225281653971051161809390040012368272943325089451600132789222037849827304347485666040430336671468606158940070366915563577518481162876764225889202191690468768733882182461513132124538218619944859378957525813455402858706513960107408156280501378670444595888993455042186357435062546601708124422021026332888600543355582601569217729601599352175392048231186921280441816570403652821952740915054669163622159145205286405584231365968862729438337098223369071821937252305709609886481113162251387538855157748162502555686569636007531586436306842849731908069376010501553486091696623529505841823221914271310265553377792900566709133441636165859457525865480853766632610488066026102874508302851232756453425753457411762707235565796334216437875741911714542363318166082679862361206106787220710784794025908881131068986762458870215991017223255829857997578874167738326781353458954767142471884938325734208961960679823763197407351064220934401938811285516265384945319181488778667586493118704960419027036389899643635353295236725775041852860509796700716827621106932999127513483322579034515780220276184843367293247667887571538219910509006202932862301978125219270686051779441082519799702473198716737672322069178712448985849518906460790843290563631946166243308263148188349879187202338530453972113217386313734274939212758427127721588623291543517816578021626627640337342922831953169457406347777346711993073514718511093909876849339021827534734946383793441811495577012487785552820703853360438774648674421636841516413728294004799399886906710684106345258927766934291446724175887970063726435421954118363952305595053279846401424965968860627776087948078111261094394309332252014188010308414155016420671060916937731755494980518229105668637382955945559937500474448737170884996461544509108443443560671817752563093860631997162253081338051221938114217558435204046568260641198350623832369911752120001278438856474206802666325975356372272461284025040191214619879808905291682917072304951421388104502446934258126574846193171004281500346710789489117112474974915950332797569084091572031510156272629568532510246535128757758306309522376514940888565658378431781401853856663831742352584475015587580735530317295434132178450068610177586852263401588883429927223601965351717863926712577044608460200507071122546644354349945862768639551122136676566519484981862996295373544565676558615860451644191028496136364664990995239461148922499651549942553351204892990523272033299571386761520428268069317353093358036884950517052943463766903070896839805244596232197052352191926178676361560685898988465448185888990407355156149253692288681693835756454784799973867157131412591999174250751916293546588423783096508425696498290563975987030970759845293714119757852591820165277399375138204057455439485947078427120637349373874753709056909439729357113251783736405490770334633374081738919300584390468216952728792204408714593191127187940944652437045102176093367479515588168266380356219627216150907286165156331939342524137291677654024811100157565592924989224123603554713524228614905980754225891646129506740361167544358469025091000622853791720333769233177794247860384031715676493749916783796544221741966671919916822612606749119146871697113406764723471663288338721473220119072441597236025908922734738171463452134667827114769325646380076732606534090185822500799414482188151951198694913659651484741352455940799045470825069881755740338618710134114502735420930574867717837677519509007506392863866850905621872492864697034686764276254160246957546451637281108514374378220111263741400190678660724450359797616721187586855916047345208117332644582780785143798948957603663488614267614594443095685951995607185789920708543909531322454244557315583532194770077651349291073603471556715282618859576851443023240665735634546636978010605162933369593785632822573682042439876916473960268176014283123312299586318716238472550979279290481237682902782773755525649367692095772425264539610945716010846637205200326825504899607572234998995769401127030156965361060738458441701782322096452278140450940291165125014568909407889726576758121176832303054428981352978719511846642006690846889823127229386860289180816503207037170191990647371607027582181725124686541604635374743534915982425525847986503089832620667179319405289749416989371945479791000653090061529695767597997113807768905698784302158852781603677834987591323020541349273389021030252437360467318599396970061958603115861832696424795612763014952909610053178141416068275537600453296567102508346483068829287793981165636626208698472939271187580201698141740629796657449225255137032172395063553966423290576782655955580409600987929439302822026970926593864160229903454048019228364169033697502646813964063881002390756996975775864877198683934260154144335027538768740930837670918291941482453629142344430635335729064058236837755858682166941488839356509626256316923513294860724019149462636921965167739149805503209697913857664938732874741688748212270162710402915280886006180184188535432153010444534424466602706322919550767664101474345107093645788699760567119071257068996708285775303858189984921589779726818480039209269318458408195798038911597336765357791152221867616275474103308011771098739987599910774081180113230119444449007409135698298354956201014746817494899105560692832156033451923379216818506532785900816404614153247357585925922182319583000731660557369452150001259711086382909749150894285253476733633964636447641615060228100298646186571191813421875528940722684235112624482053109242861471166487685430095524648517986190024586002115187418056291813966998805312192584020297615105650444955475465561580392660416323623552643679066150268552175089467118434124228014892711023428117874958961552017375826875917191024742750892449909342424619226649070100471571212525634739251891100862973622201640105347572982344728010538769159220715037082077457135017619022338882258767653095482343571876046140324451880370405166057974442064653403604413252256865440010333736529482975944294667768137019386709381105115615718339194195870717395291169684829110474718811489960633058304186845238209280740379532687313513299969730411381898103662191455591925122465518061243207508465710220992017024356711348229249921100465841181411117978077456648514522419838536977919423047227512851719591421763225266659414100425169891690446357411507799273628421445323759263256216205124409977619362319178789459740365698380535627685041577402561118543063739820345016008352764370968937838685802038415696162179424522037028935229268605882175749723333691809732989321983464578137651848825439702199069549953726161782345247724822019580811638901556691904769768057134393693686174523882028250335372500583522429659214660369956868229691050417906840174387635995382487151037341095281072345062245823522820324952530696129876079385685286637482507406784160937882237239009648161145942683086677503252662192072991946538502886951506235217539020466258597295732371083434071669566472912339085976216577119834252470391327489928368897136073719876398474115583696718666546928090131709731124401998420993024286716623576466292941652844270305138688898605586275511236140640526001188630422455061624081602038384923860267244101113668520722545865417118555715049964057443970459551106726511430182366080527372875525792191242682616286817230548881373716185298768952092182319037645169645327898694783464369330653957960913654919355074888331656032207396373592603123318425316113162782901466166674732294090513880126223721974884337265392719187854615041071045181853298466468749043985575561089770894463059557656588158979097002262745342558527801089408654971394547482092074695999718775912932978802559816062665519193038480979061350023652048857604239337510976398678330021344581984124837271166130339466742390709082673245140379368745824897794730972248730507480114776846388028246999596789157384607325652402280257011450992083098432730421674282759563680474352818634250254948776161552433248510009484728787056606166897097865530290290095782620777504124222865748433861650497276368957749100788730047290204775921772385084488700359603197984150066225626584128732811989747422330382595715724067090355162019519672703647470298193936984179543629199214575439923516927041725281017830297091363094561190080362712212835980659718325796582986848640055376858010611557822098385037017983399983772759721362749561682650798732434103456560442602034376179291602141222148810724781536402342184407597957671238091616660176826983504971940533464678092025954221682184205672405731424587037517626089327325686971173663902350168664556169432053255917759818446670268526952957741964565009270129499549238601858614992585231419988260286607664994454395266304841223319541203950255382770805541122095161968391008757879904508546641369906609021150979984689283425789759367031357701668285765018849932128674382748658525973507168843057947754071980343069239628730864571414265520654045703699225592986198498672172548621651831443169878397612159529428916161232247959530903798884771084932292484381392025481334493532266749997517407503223327151522348749144734114903265618205682967485816401421862467215031297049919482723768882792891877345653167918891674414333969104519186242105022607197256905416573741403900687753929612531413382092602230010171244017767015811823956826311432073720426693454861284200570567830173781354247309344764244963677633442190386428445703090937372483042430700145481403515534256204502481963028167178444146095657423462798400744518402874187738245141403621007658342641100994317848144480121380166712670726956228642610640544160201345515982407142447233031952158360168847628325705286725966722486251716541002780113014791178476779485982910832390167815102667420302782679502336206874391625036106187337679129707374681599084498126662762242969076438882201617966713124657388518156004165879304782313675724362764165927058139622393747110505806202090947172719517162725342695353929375166011036224809135656170361271286932942439337776120986848690924852151321427939755269492733540722948024053781890406694762480259757177277319600908037878754000126664047238854358728943614936899181091674138113978147628865614367515449621787737182070624614436844791554309560958314178738917035751568419880631938792129339290987800735474020069380773263509877769471939947855194240846623826509366562146153713163292071792998133849372064699506912790996809042757545086132578186769484183938985333092176616290264887934424608140741905979201875668606109217088690944157404737275463716791667019623372660550128122895357071896059209379112677928139500279679899928090950857096244957619910397931557544361835795167009018751883890882408740333640873776627590730363595892065055685896340088324396380714035907002280451616249153951525479502385061681751059675735747760976203490837033623239315594316927365584446870757289742358955301727660132833912943744193839970717118005163637813708397276331473863953149263731238221498317549174447464261670570603944085820386148006787862805228728286408703624759657255773552010914454663775589933177617101759030308898477616132937526011616271021975220234317404597590425605255127306354876800872360468056256210768329968136471810506835259536634004549416772881107035473254705006032467864462454006316091656883442113768470559401668921918380120366742116498460844513976893486216241701169055052866623693982914801859139622524932291578602711073124124254921654719544079506807667423918162086575534611781259966210563046192220917852664466696808700743309614008754078874163968255777405182964649564054162019955137645613820760691866092998667763590086270264947381894390000024199098536726948261848061292278681100765161713515698795152180083428526345202305623217632290773707654934335530027072384305478018475029909390815175769283625313318196132016210354272268363479931090775571773672731036639141399007122362985368525520969148279047154273090449224321495604865466420167614196694303449370247095508892302327507495142386977335475254181150937559357663549855355352147055165372502701714033702409526791044495087193913360829961483296525807328698648746678116494092252630806423128613073807717648898174477195150929845290644205848204238873206766428820970931365714052619032827748092494935527658758782156938986051304482350826039827553027924635067393945153750710124413841266274243584067635711300597596671008665230001124862177126148997536971640505065170395404738705610858263233529903356000516410669524319655476447709395783310970182656234264987832576104693825811631415295123892627840015731163632336606640718602070567842784187420522046001935764511625108816296834579028146423015340075323447964902624863482449268742039602367322506244854094937904280333550602027657749187187996784161119555965109519352697993607519095413096790732498930036119560112541630911763148733279275627736468745499324042273715582143137482337159665887786088906728616157592649181019635250085443995128419514974746150475921606576444193819472340766232218125512471885899232868957675624868256821104847852992886481387871371470392552169669034578371253949179399596793837651975540149907595669701891264849278954222837114620592637699733490832536866755831003472037526446184749810857174790980120528774555783564094375847651076570787685191187993993538094370334724612098743876049999203180508574604659114235863921405541318339753082095852355241131921558408428590719404150218898538751316245571910826035009814610301804990643882281598401959205431284696277057463773094837629461913239833085951942589796146447903767940214928849294228669972060512349252093818657564849340880639025016802246073682708675825773438540414775550252043989864180240890441877294527057427605379773485187129312906299513862222926584234038202242782202961206757363756709718966698790397505183388930935182418354956758060477193709873841708898293737494389370897414279739470039850320951696661550331394083222066779329705112365787595970231436807491819633412779724062923989981195753391639746433939747395476954802971936013726372402693566948107312266785737545302060378486511886447828630338729457275500794326566462281571385415602252256242322139292350150800954265638486871177696396757471029288813532386891118892959034734687313696384477755933371076973811623169940361869454600508338392550614766196570035291922542038923501253075664166168320312820535824566149303732608235236716842305943500341183112952385328824376486801179073601316159858153391239437912384771613593293808818832327785919271603130085281372977417072428009546418097735329840594857246099379267402327420333756586907195194738340626463405361810762901544060800351193373680365369931509095924189851652086943422479762362895308263031452537342572445343835185762611364905741941459029386301135639689791113166235127512137146958153872948471069431307356661261085291229301444277072549475555358963641951635761762623002922633283617641571867289196861529839823635390862305303548953000175240181613667015483201525035098219608070244323788803318574455646442940277583755930936830263507608266544450928618919634163489069149053573194538555409187661406988013739346080960882775886336241809516848485881016230964167475445790367234685460563597690432804751335004954545966794061011045195528017286559462797712408572717026732095196832827111159846682871283031383910463108809192400162502912705571861946314680458751145088949814163905100718004561045358412268838004691043790111832827712319023488938916099946176253222499824637032626137902259244493797545427652209517158956751891451618120853071713597379554551583797505247729855925287900238081621137745001979086286231683730797293743759000939013918723350067841997067092988465422882823227398108235326424685362345849117475091362351109298250773014070473044314099492469366492975197052394564865296834554196167437686377126033641513636298039628230454624816963490717212841042329825349206904717582705952872679269383802227718678823730235183457581280648770276336118861738108022000369606507718650285906182520637942093069306444406605241263468764963941999702659653013957276284581811518842180608705638520400456317318753573378286845274089207766678173409437842026193029695082604300831835038833515169710612071725475956638200805479708656610132709610708122512924616014446890455225785078927753440963267627238382559010973513513161319369824213593902750284552325299529910355796784888701048557715189510620562503264029779883322314131617840398935397399749861917744701229559129067339933424396684751289749062287947998236325889698500514142937243455614316355154960226376233999171121401170654424749409499463254811322904013242296549125649933968817420711172509207199853320027025289301913741359266169536452747086124970679289550915111256719668227320454920673996887120728927306831227340816150931489294847501079065371459604592919836010044622598322114036525005042130648898871145471638276979686521245639387915359383817388068182790606493170082090228140137571548856571599933091859800343495674291072516938669501194770693579594988756793416428970862475673695315439197155329995229780684724861417176324893632303504489652993526678301347954586243890198513952302300031617458099563039729798060714234427799067937869511380239632654754055602241502049648471302261813217821568665120924884014961321344209245475005129930601279843292405816570075785197707466848689652669133834941952782504862655211204613537025277596066812434104800437183764243459017390233602054159740683102485384110541506360254483348505444489360823576509524861546201093061824541600877837577706981517239140441933572747922737718026538589815359112103130700644234650787483341336454166166386605541911467073416140663049784077989400742248728597786414358065201805919693660199855885624031981184628208408753290999644867556128329413523633917052324944321627512880261259046879447891664482540905228205666954458136407067084393489897716717519971361654544022971827458477825844490880204344953126816918532271078048927002564263698029286745614364717687366775255414120266094346568014101091695458879302969410912435938681890185950172337124801277803763524313559448693449594420239029034426932430611365502131361194018263703706903889053901649584513351335738776515532040426168790084015414469109571870884596005926875116717839536412919271934964387859008432369315357119865610024374036739495203961918470741691671559984043284517774597095921207333773223466756098325889045975261853218878594081931267202175526404823598761800510920608399512636236210729194482119802162457848702919725221117163150534620996513846788673267244102585507290461312451812711162097070622150616938179259790874045667659127497649092787679469133217086000731303393661352117174845821984658479527236597204407457752296475441068584109648830834263882722215573365134272131283159835592849521042184180914069199541945898473812597745865232962528874379000234128886426640012374257086911358771654069831754064968963452970868835211554185366058361995611901788549279457735022668226963014817339450655424596874123702136507629832230681136993781646494956178113485322568074378510785806697164184380951037411054352119428853469207510513110996039018134140808234404493921522279533852192059002213035043114162312885169303583413424115304008396005777796508931192746197048109858766141260693701658022808597935662875713415693629053879643150764713944430201849400646936702673012014998215924859417712919855766620195466799975559874899341097535342362652566377447099018904456994511246354165683228709248315703080876037721161655301444254760798884434268534785150079846395785714229975920195456936136039356652896243960081861651597115031050512524720203871394495817785473847638028172365256548825001834848272005032081639755420152709493405117985459648375173748417692034207265550091705736710321993416191324012007683014777487952236453663900719066523103166422785267571996361091536591204153526965801373250690110206255760298932474226525283822471362813077201153099843309645470433958084639286531363201475892514309282905627218717581104646296107709319366559278805427540708276813467237137590078257152957947988098486509383984347524816021914884109597313868073168336207697292027496870639161823704454035453832374089776225463288206229177163432587097972463406523665458546078874429193386938147255493523718662643469756782147314386906491668050574071068289279198706495956412213440549644427151297702282612406172716419292286648799214468835548248313126801632241508914036664541512889303364141762150456270051485839310960845168661291875446310503302016886008537893115162605730291205618218224922731593087278283871760618849428449859392897554598602404859304822132256139826546554647920907397003085070236632110043278235766659496644401793502357428375397567101365326130661422891556486670668338839193607563906106769996062484990311846239034282046811342075221353889813495312440024823864602587686332859813875815294149591568361329228836721672774683181299229065593221576850735616583667181079042877892570478394231021788899417137737675699124194044376123485717608656915035571593260453922114177715502070323700492110496304662726908838696723829879325842824606283350984221226157430644915406065868108796253115327227199058361041581705394808193069758922545347898597570432266938620212430475112719887164813152728474859957672160779884216559399535226198410263414651344396493973531122476294771374646476671039832376234340409331327063805439699327676352180330894187046702143866997973550528974299281484113758925083084836148470285295185245726035825867879435296910777033041287277026588872797374738265190099193876024971759503903937073114972374257102590837119354038342877674224297410893414245018168439275636070371585022670257284562309009029200972455999389184460014248358720260852869363573693214198380805701841958500610111895215408413510279881815849719430504865713915815421572759368276947331864931004624479823540013940911527035939837287288380925444913262157744506092368445048527170217032806395787442246348605300529480404993930548827397115168251532298349967257418206448666565269170466906463916663912036220550791191509553810909237329504997545113788473517384064534741018324189385308367050595600135284698649595637118522476530958732566109287338609993009404627057450026617557872330922967508914965378601739303259543397180423346770430683080577421957635135857738367331567032029055847819125129501868681774555857605895739105862544420619409627916934413843500215308533023345767365398548487535555337519536553227863156931814358147372303111347342218092337461838351639697938115788658451905180454099216321231925269312054659227108425219938707037309677697384731145364847340150118280497521888554422602633436044339825014868884508804478558197717537227684717063799496529140036497765557802515903196289907737652764608981683363982345605414592649959231126172201875351869667052476013463680435027071321002774256122788219594591147727101519647426648313521088090424630601893049532269507022149338077545087490625682548016989754290496123868519001330811165770694763688630854988181403653078080566586205343538611261506557695914001310673399740587531738944934327583575967645363755579914187155221283725738027301921360512838758963423446167109877883003433038682271614418755551378398643446160656986527978840115534537634338198523526847701810972300430575024647884104487276902658785518957874495849706693974022930501296147851814265052227267854450398205983891582523477569896118904400554328679783073128798686179031977440032443001529910551490963684871343947497455312242980912557036619281041305733959434771473738923071994511724968392261830606479055840172307592245860290199173069487890666932465718615842407786275762664766486873836550912986671888757552606341242787006268470519433778725718137851995682540889808528868218778234540747995503634207057801563818006096454754155550603541587945266754354828206979908253608429439194984107434682383283434835336955644718389465516977370807732069452704789697502861514615533094392710739854926411368918757365395279213424259249012475524348981660550954055910073908348617832208640170804857472701162911500785667945475157941612726994325758956609780673842124951289880010522556264318548959505059281785644117859033092537279179334927155085807881752626119590129835729099508693954240983168545317007847513219158141741084525352808235908837603464195628223631919087886296383883526403566099662359125020744493122448132322820373148357748068966366727264024005663992704022944642714787960236786825346761066117937228640067814568038944801114128244360736909900771449024822377530488096324883691120193027935008362615790681490479586274661139591727412017719130281637227271438784450232802711768480695015904254192958414041384465276069046923211259618890894793738021487234637840663253784407346390097191520547025994688978396432813690741430357611680700872957010631326924854677174759204099679794570264506222837701966415189050170321398447793591303409396570700850410776175349115987625926537005931223369911497305176077722407793936097796229018152537857282547751532092437951190476761660224301697338552988481943976804506450991136704053481835023407428974723115656752142935668986981929447810571052790262987017177990175813682612867730616453499585033986620322692461255372330528709297496673986109141280908598271532377960769806335610664545230382120629389578440749326690464323671195604800013838553694319130090433784678820253417323861038467499542810981638480609679802919587519967496045522605699516475156680713422572502202592191591581794772561251767367657784437592098658645514052889592631434694879919836580075932007135592429345927843834691228638019916000491493214608598643391727297973124696268127024070233638913564402559356397398078935350799369100839591886643702254975112640596685832883390069051167913829638490628824239920384842072376535721922487608142387432106469034066733010939096519237466819334069401744685190296858613118737085561386271625718848766249094684821113586488367815822239555370790858673451544729985906493792814471573789228373050896880108106047409504094793232545363623990348712421020634635362025111637331292531441862583493714847191648967139466091871952058474483848268622407250917129510462268651311304960430303022772773139958066683888880283512734012091348643367602046240664547929631182030128889682461864823391366485738930029644266862206978442961344712032215783536813327275623906493911672964680168790342273312788040365938892836595159473681684266017731116198925179206363781757299606322901908062951057128783467726835706125386832216220024821041238351130633538154187389059823946394717859272960094404127389303036443626930429594921914600953991395551494144938153275395484217478006000995922823978766614033494150621470829006679894669470471148991171052948361232907966793804617256033020305332436742252714324115005507399483076401296384711712035935063728361138459779360506951304309320189308144493643084487613309918588660351504437416757063618465564655593461589841309780665036136038435018079724099698147712906473763630621902381721026532470026050300707108656095402930475708441088333726435200740400617697852077945124214779558210195507814686996628343823150992355815728811762201365310332014417848258603005899970265931478835669404825158549503859001972425447411928239214186115486115826010375060772720418055971818682822806713252497684473957070149486514539886028687045699713183352420535788266227862601241456466718460119093350409062591130085143469750681492792096223373056988115058451289489520078088836697543995597965381100362834820486236127925853988990590189332196975103967509326679782737991745248602816854969686828136576674933925271622755923294645005936801584879016847521828770679730999775393223770275271208595448155642953798500249852027290029948029234970659439988310869067656317663073605513318495220965781233423450934926455850267294490906865048293901324080582532206011949686936200358145734879179826841723408969706368769914954066876008988710812370230496163910366334150890993066457311344459499172616784707831043898197273859144397539148959355449683511190671399136499759910695634404102724020501396842440172898319882086269355454219645810321223158454002910146535699696409880924047160439460330643071757085080396573214245101091912260550550002202939349012243542330413738446030840758817027642552394566529507770529895325916424217003305837738444625295928960687563828649961692264710662985656777574800787867959584339420534386337812371447404415037114680942948307097960412712004375162903473490176829422919186621841771970691605829912713140994218552494681699292010558245122751529127334953943727461674162548711869885251838859186103992761025134860139118572805670536624286166875994609509068334254616018097967262685065823221088326055502507150009647567128981241254583777517105147611423394989160941477895580504597898721265430732406362666865599549180740344045519041919274905400390744224615726400071061710111074066436555987562092300495793333850490684274229468760599787313562785145283183356080955243819290898674078613854675565050035844235641563045174611307524103771124731567209137374950252988593154951359313638234081527804906132515430077929287219858684020538682121909927503071538799658121044768842576673218380184067169048465236459111038234227418363215733927064614631628033255423399420241363174910382479273942076881076530606183647493789843263298863569554135193704656576347374662095188849417436611535918866927451129286386975180747977312371632528778534033986252143881717223507900006326268972419839390722898695777351933514563761985662979136004704064077420770804101280414577308341452516149863058780873815029896383220091409701713010624360959134909846414549491490642172342925866925926177544007332431961217507397324649206289864078849361550586654181708695528773607164193485691792039728330688643762649946783061141005760688379828701260112901998046626049940578416181838041116020165026999668410200207696345109266551523140664883073329252663561470964976788817492047549400949535185237969627172977622683982532019733022432204254343238255949847131689944135774507895085634024866353521509595949537641003785664941993903643811550351203457796039076830952989466467396748257302012361780324829042922455376961149022307603893426347978103936601347838006202292488873584691673513261873033559887035381597798443880529013694272238082302469386037768897149882506287129615329192137819628561089041192570358106157472690636663012312883206574877058729176844340313404546610944994499161953491768314730143060046895176451118935839675334349373954605557840978129456184860741938978870889038362106018673245796597736777195146108284936975687259652318836105724994454864344503744352857620209571889909154934964200155690502881924253234888365693052199920649305075235191299775236919057342204078686933582616096147660878208076953727771143921417862585186328990676895847093056387154665119139152519715924635583187278405966515373219738256071482853521162338722266873004258971702990188527397233061027836040657044583531045490646158656901916994138585716787533592864946020260084421046988477189901857726533631894721194650823890326900552341418367303815901535277420119859528022493840988517236454699009968480757937720348052011885478056756294461784960022864266147402310673902467509649508607367863680453511286501826241581653896699297316054748299641443331324335494783956537216851115772533931121418383859797392056345597068790837695490088884734728714917808748818655721369301958597669744278530867353926276011524995134250780044069274798982051126957778946020027199433524882252729344326497926611580029848668696081063307400967217218728806187570239008056150873549172222927344417412369491265598092707525477545993540721943934227162463204068684732539783082908236643547015972448805024740925134003263265906434865050362584232271637904630831026427626114126684644484992153001618063798768415821726337453949886919887429339497106408529534539068132681004953012009131369326228259630405590205995102191361741884782166611077918003799838982650342397562282147286388590722355949018894857988924205150707628742990044723280426735795054696210199103411890633302814002294170117062822796701431624258361803867378426022985281986340369178374482810436918219615309656063856426511818836216779340121750051266113140290841894102394418309547665358498510759906753879381564182558350229290249790652389322378544840434782522393949603732442656794886064236132159220501901261061909809974659380317808555050780464662338487175022407376733759291593147005997255554547017880542429274935916772450641170608577436703801197472125492879447429619264744755071647118485207005948658964209449425081761761245404695085114802592471249437027193973646881043542709110521891658213005587675148409705967358807684859977727784033190584718738620650123869359090205824345707363459611518957354028849679956499361831716583066809159696740137171883295976318860351579413654418933515941213187865251578801669443271443144303735461315787668030718209044213181780389906439352491225532197729219590724167274248152087488924523405796724022810536994467142202154124646028224109753744314186007578602606198965081411602685857555915904058516643967223359653557986749711430094342130725854341054450745009480508228998108745368761261933218369785217531572574672589085892913444734661167618701037500933864442585677724810910897789710658335440839075437557005467907559289389184464335358055401661088064420139643797579942550541640678337106055347043637978480252118175890966050577563313382654049124898474360478047758419961804267365428619496276744140660600395011635308046404791071683664029291044312835911385480409033251634159141448678314351056790546344970754014539649656204153886354194824317072365641989172248956627819016237013491876433781555280435968235324351236221319469857850375115003165185777759501328423852772987769021950422956104043671666772168399421590440204517601692881978051435469301354723136000572733781225926543182691728595722769865253903613625615273711858391324691339947008473738288700669616063798675082384338137843934341785906493360824772893863225786782087624329605426258995975654755321553586733612478850370908070244136778930263439446855768011426979511634221102411149184909508175616121252667661865334362940307934772418389819833018365206857942700871664918976231578781019985759080888045527628749622102225805435623280398974501971283974624611564797616934212324839500262817046672419955213187449914425474958975006028593588123637285986729934483432758817803906924732305990211224909841527159234083912933344132664145418122249338902046805509276211712722085329824819373513808488966503106734193314480387547883854862084534722423085645239569071729835000911033898964667536123282466941586145257824652733504650182346797238801317835395721450584624263387459874617300194840569627078115086906238326501136979353456251789386599938757477547407202173392760442318671137404837074220887852954483567047179913473038380738812709590318309664384064757029964830559639278602056291975287434406814966060181726672159262870313821972256751671203114137855665734709671143019463870181736917244463848843418383344480283102345859894140033335196475445886677064973699573576994146652726482945078385786702069771468944231663678545248056983444169720475396478710905791877920142503321486538730230988816277395947569327030856108650233856827961012195828374110212369249433680879106233396915344956840481275766997225639840836579612045552391124782955362878386700965569922610360727870956865397632145242976264953042050073320746930220929294661285055715950772899883196011171558086217498463725286432671749977749331552771222443173858515319513598167763867459105819182386759156645850911604799597580364752971324629199974140666004226407878159595573869630419825761633112933918735885994911062150512459540872574915771763556419504484266336703571366035956955445392060231285480724667291110085522914348658353807261096878412407947960727484760028780612545533069735536131536596625408049278851233491083082251930967937192633604230717353240508365198964802110898372380736714389308839774032331954040237419655851158128431998885478838413620073365330967445454492209117417974462921254667907909903594486629577319751967586735725241816104611789751763166510280625018289339201281143024336252859602307370591471110054784208418556031029445333329186565811293216374452274872320199904728180760018957941422462065867354867779760477510656848804646203082143187495358121073646806050999661130735091566226761454935717557745209354087835467384667805558247965282066209907567965477058232992902774494944904955730698004086076507623792499773806700368023638577641178409558500532081393500275073818732748201360343418668388962583903828304607139287916605826696418070050488537569270991055486098781787768879981010843627859515164455378327586548382558471703571688308956420696713155564344052313198716625188164092793493838460498501161177384304097012527083761015162963332991970497383802029068002997780373180685463863493120691825214975850963207354927475736827488005058484623829563503021195334304749100763557762151329594188970144429431242039981480512697424448365252865667060189290603115983533812522635915687429709073199982610878142925045715920906356698552870900558625249691738186424111631348809262714400041614855483990162029526297491207492660934242525484239506441349170939794667245192288684889227750827467950769742514550369928117222143718089542970942750116163525653093834541194010534929475718501900140271536534091795162741856205853038623639299309972311396247801254078145089140562291813434589108953968694018706043936547049339779026377986032351073810918891024259371296003499730400787634863623678630625526686443550956032400068060376695979205467260895414797436037515580083979671167388093868983400678695315755514501757287452740702800659176232995382608096515312537438486330198379167019218214204874383561799251369611012189324049272878693963866842991187109475662872987168929558836269519890279882850233473106165177299666446558017007364456686070278816005875465739925206271270155856236582893260094919804100620879555731281692930851603030081224661659039209134980364289355116060853373182904576107960508494514938730369905604635441324518711531986798412906627513327062020950362806109124872578295024914631481090480711713898154046825388536669441514866386378025184825463043289325997150671675330120133359012610118176099016419747995545457459670261447154315836499608433741704715486345371161233359082959586401495987262323687083994917950941393419612161095607841251840268470791621644669766509301655705021851968418883433937095194428581978236580204014183204936515250791136097194351040072025339451160681183865392323770265951013675661733967865903777637185863156575873064342826209181027698901294134338396025961978795317580502144329243123545613977007358983842368260994798406399063520680989207471968983121036107813731214541357775739278111073870691247325015878136358088187505391886771612573209539488561299658345526303087964468317927911134259899067188323533026737794044414378602913420657830463994804775694461777820754020711410860602685881236929826313930241702813172558756124444983212591387146504901451399923443041304873421773800294620203998584212786610761483559260777787212248485182604819834919572244552667873105110630791320552821885380428193285529764334637419571029760386350781668765010997424357018639459910698217935399741695858988873416967032295552324256588885041061668276237018444961652300615664644418298926406545077782644968537629866969645534689522933404571480665725201876647643313275751253422609725820972146265469595557366490597316432574067926494848185749381316840257022294212161288899684016895709892285556597507844750546689197837099721969279363826888613689024685346222072590826788684467637107642238830741597903470845308087904278593725117264078516888110769241799608454149170657196214850186999068089481292462271428186317365514958452793136509062709676925192102420226863219536183268745745997848481636432592422290669975496600450768379028437073922706780181442444238980777538289456804942677081582707228369722001790655566051091324222727569040988319771047315638971599551178049718116441989648086107283252581234937632430163328321635955303219031717041352354013420430817854848724224789863392818461713177865612722627128339761347146945648085333345485333788267410045652565259754890892680154152092189311239215627195492977007667555340549739572482717649645285579683150931233139428042440802769648614306667723390145263388539345167114322358609482465071898854879952578432246005246166693451284790605963669553874511294430943983692156947194613341901311313637626912770715924474749165150501460317143542814757301802850036678194032115257982286466694176140802576241394614251405617333414130176648278196436417940261424156431268228584474682498522120243157859106479496274188090315937172248660039157589257636663804359144753552354647731042854853812870846156598094937167573524395999234936989915704382787988827040601534860605726459665545050867422126066219531613222972179115190498484377699018630070737689690988527122456070230105879267728752111714576038608116762440227421565566855558015547342910848249160918293050037612562325567577547158301781457292745740287721569682742155896626524607672794244420823810390627819015034993685971577576067836181585836933117120871676683754777887229181559623838976542750648807048465692711833296452908534517355893674443501676640286704111200269464440328784226229235505396061049998485155270629726289765609678049979200236501084974451476603338679369334067273757283273660378131710699847429441548553569919397027658043804513013830024185694807040031593610500275224778939636496493555736872246570109060974785760308683697158628436466059814057191387576396675686923340275273196541703956859322899689823704809905447796724261722203621369995590414360837960935288910627990347725052560208114891110838796802658427130101564279402044499699210677217535590234295194596369794258260107300940915910846394419657695270759063483245400708780619908605332492197497032680038852002085378420718707218733187816566813009907488377210967201523357053565012752322179088576391005447608330117331560520888437761613832517107513277016377425419974509252823579439375230734205062760979532517925288106749147058685294655653822967305699700732261871533851795230941742000058090435473005773254172144406511395484527723018285582749787426793441437479401075894097850657024273951064709915946080690198895782091864066132527665969127351470038317834823848145315456044374933046470205610470358401717800268481951151807157145280438750919691262259904316357884406581136752398403566979941324813236599495554787688771466351303394186728345440758553670769994925004145365452289900789518528008813120063495113478949571565430063432699931393901462069010313006953685806905758300587409554694504875156700030377487047342456858573136983863421481735091492352808279663648166400323064290151896912258032273349270814269559046444435908567621267835557926037470247026360561293031318367847885432388338438803604446857296984745752846164081670861180355447114572741719020020359463574326005735124606278549791501445685623976200167701433492229695884010196779095517056858886638362023338494996369401335416752595632972476383008844735772168671195743807568859388611701916600661643908023493354084778698831714132013956669735454625057984007657750321340541180675768469062134437035109029765954112295009714934996098704817984794781904951943920234908166525037042555123476785168264279258585655698848667970883885948277209999095561714991259006809673370430176769755305047862648474108087269623184619491177423795831423971942532863426951697210635404325450165906261354660986891848598229950934858782560009136358610227109459840229135322035215670149365780023029402579161737259378846423134443754039145183638877871507532721916010950634349096082698597487669439594572177562734397941983906650424560276576891817878960188644641762934587391700654204798822185652497904639801802031576293158776380682559509408753592113986950662461635924273925448906672500626228177779151238567278558919412744855886535856321078967906304650372687971449530834107420445905587489329746146902960472895911086260272319911505633892257841937705996585874555859512746431076733751248084071328754809683982073764248264456871513346048057323654106659188721562778400491717459237033068859577784611991121698421261828747109033084657449436697014296377931248897047558600986108885262071757900026580857170422903197791145765931166228842619514469864101397817242540654497432076321623465323392855047011436187790849606428429052380957475642671137309281692745016599413319485831387207163989724276432134692328226382602601914696884274884470383728709138352284750056287566638778919206441604257119739222494921994051853939956768769855498333510737340142168964750497397635103646103520975617212148122223743654060848784405760029799896205555097378516506732399172826123122800132410460111681689812072329736168043842921939534998000008472436423883154421513530166543233062047183578976867904286493362733137692890890207653551649849062751211957289637930398724287216863506539366890794739711295081168564287677890184261393265731823871673087267711243391848296082736591691637940133660174323777977643961867244986259318674851855772908946944446615198137807310798113853678734583490148319360552493419085574009965516208919120678228593292993544506884858257051708025105260568767159598899317215241746889960035982342833047675556842503537734414383164586832690003400263066208536171359346048807241946278699645531794235587846764525518970042122453130201980017832387765892388770327732712579012880434358355417497885469639785331064494282112035594709724052946737626315004310318052867108281999555425446966839283674642900328301129393361045837338314179303093766059860275084831604196332037876965557384107285692246356331143628935983400523242797613783953132213011079013851899278627557431396931614462492471185654268521307069341300612503281148363315888209169486321985996535102128110637486059814039799895622782969565955380910972953852368557982061300890988667691105083656224434255127459644899823884868182014527466387410148059618096829960451375487858461811739125046049378780296165795499264183293010941995202931669931279459138361408093902042307442560674003042112270545950145692096436901378158267278201342011268899466446110703083566205228302798273807375805283545978608837944045724352829991093287832262148048415992952575710912602000800821192500225211292776656575311628173792486474717098452512332442012556154837444451224733958223535535716266568296478032572991985869876083942671923819646717935127116980377910109551448765052277736878358220788520839471902712616378131625916790300312056581486196102290447788911068939900853528402148745545473259628580537246212620662740824715208356503008519163445912973154153340295020864799490453840655761054340613908807830821725656090713619071124060151415488773621894720403759676433373634012915391487220429644768288502948841487309668555243051561411599865792482628366279160747280650895499283032342046008503453208090678394283786893692967599861400043014632097495459766846123825654054423557749450036722423715023251575097333052890059826245516702878524591047679393575497598897431884685797790194106026497112618642740292189054405140778993075925734416003385041708450523811206637573305515138805890061587815468517323103693570513491544245553479928467008703392763984062054023207217841105840466590663712858541743377961700969475136112565420278059922451313360145153973303655059408027658837950290592922466892789095457515246887551651462845098216735824207272539551776558197413105653856561966894969991457035436462489659418232618862140761424264270898050003048915033359051004350689033049518567478254470200953398285080394415399982210816310461945037175371217264175682731834201349383834747860750369186887129742428684301229323550099530727203120788554529126138525754543544847256533084864488097793792106417998739085608849671071765703960425641082963249213495633215635603826092981313598259819200950383742519649923390839084796496116709722144936531416155529679705511413340423044133727611595563932751067301565324330988264227335830955327297312631918597671414323522020873269126448676854085642680785319237424072987557242469168046071457518046207730259427292599975986783708381007969946408094041312424371258043929495121648090910921568086366801266551444164247579682107708759651460158279608242834164428257337027610479831505682507558945965719696325127952619361507818693496602336944779394328909959624759445531441402423637185053031905512296807915067687246171558058731007342494914461006671891350940828315368187686632911488321425650195892808214867721075647742931550662393324638663766944138180828456890618671939409307907720486982460396357130080875250348585896090733319658495903807585163636389029795547377861550463441921916428529280789695711005444495149333819467353518917767102848739066373724106031407822663563930926118008976586629304954122012933710211187202322882637606773618333079240437694168787656966419651208604766208434224327290085574707504590312874021979149631650787024235856761410511507989161347340839655952799914327609919096482027525344594608502838081551203699154471188550313308067075683081385354104064630278046042920734638248215426018360883360157935452243454567380527825733279799012464325930515647884521292533312269075583338442898087230355286564308692124910758103768721810469204654712163060231547586032271495200029424767573390986826043377207553183935219129697698213820266243476034322370296136326514474780221781855794666265218130307047489260070868357764269072315305336613959468445788386062821396462905733937486526860175978378828662600929559488146388584831002269372340288895019602145245334621106812142334894145950895714592769009582913236795304706830600858365059457142641552257716781388811544905211953531514120845264203360313785177616616844990283572245459324698032328992404632886096089942760219529867381386704140697498118519483960357391747457849949371250634999011238133838437460467556179737681974199480457780824734712113514951425281830896682839834451096141706933135749818676562169959352695070509451845736464282444110273360782864651174089886072183553392078686588759600358867442215507943311766963693443393820118998992999468975256388286952607311353837605084870828928915144271736607818309037694033930860495595418309818478648735193901078106154108621178446061236843633157025442428029233534598558576151042779149561531833802345279855498533156119713234564517568178118292270051351446708337428179383519107435623343721291251586501570782438016799759297163836580920882969351268628145476274277695189927295758537096166437011915081064444355374133345573352588492191458841168435175149632064892100454161679469000655271304336874934925411527388444504491936800503251309984455629132631958938363439685201717559314451576250585079051838051206998695199281303631174626042184720868938691629891444740320053564890702295096236328059524301369912351279728600148655015715765421843752456055289536202881638173267359641804283228557756203381409042027932849925147281140502838343634735956997336686105031964789561708565694753318667717336237056967774267711199740060590034738799693125487900262661788192751756300905768796109103551101323783665712220551087869066986395643378929521850515756656050302014912963616855171350497369062645819143876990467474607223216761982173160559122697046734365692754899700144321869932451377144654693106571912302801122447972568707513672162689045183529036628186028534123231548808501804733132441847539687294154912088083823409330622390067172187052750893357197614732703357966846457437323279435750073248193574013894211586453235144852506249866007615975320513433896299789223006145201774071516217546144637962113210754714103637310937846456870709547733161914383304596789221824675486874932511136899991598757268424106067794429715885285270155014319501643561556982881405773180424542456820194059519055979396760497483210416651696657403221599917877079829657952057856187590263126574820873106242504164581418913597492503624443866574198973129265737739613165491425702935563774444522364634402149405882610062201711569627235757200735537004040686764780193627336624262226871942767575119315529379921160717002464441043574719917732583307888569074857364459242911078803831924577888050003323367579274465851115675353881617935801248712157458380005937282964669820843568931920417665049995675398895579670602971036961255881680527385705608738112631784203761650262337989931072797793759877464492671742493528082652505559244875690845254927175078289635692657192750630379743286779184473391437123429546224915932937714888728569294890922071440653139141521519384757838061713244070404512607497450777088449086694965039681642871247298783998480593051956048932058819225865511030805370692957226709875537280849997130662348506798556985141730050354803318871861905906373369045504432561902163457469471865724793204889487112515508920339948422771759811768780914461979918331249077935556416231622252953437389976445863943005256019294679790352452651501225499557239430435133257512463886540039880937756171431487559872960602346685406012388239778699031766959001401513888315883971938668715689284738867632647247447291581189335243523525667566068814698606692371141069982106281640510666109027994871167467445842334001050220378707115270411980925766372896487534755005698933455306620384809957202874406925557817013685682340674538722656393294382809793213935061707056366229085013972692891230392212307991584493121956455555254093586006609431305571753638654394415852351891327057969880582927086721512904966204985939518245798578980890147433773768536958786243787578263869927186867054559980110380770269082406293318771849241965670529237205260504164172805763303543394684086036313445963512380070426923471945704985947274964922046726033181185034756139088554996342222284846717493801285374433051557617936626923937882415865455164099976694038100531843120655242603993158883274776314197323954696126184007956240483139975717074033759510171231642574731832067751655531073318975184485842528275421940264576092151958912364374604660403231281429272048253634232870966079179509190110156427184955793173146454994848421190735207907409613581368408242935954928369446365597888576742636700003037412036514056214898169766675951192427267578410186800142864198012222260632341454008498182722585293745958821882215419485602725226735873827829186346244075424809824006547084814255677245480135125639998054206468816811583853983433858055984280111405987603993226135098354415495406881515249820109895862830677090059074355074494988628728074049501228688315244442757427915361784655308927900874535023498625884053521827379162679611590675927719374593760010476724329192541313338625025269794548917508462040654359825648257059088105222941019360362481949238781322654371108079391627411945056712902474064573157977199400171906529414845898469298919501397239116194256014163298508575359755745259060756679256195394082596789074063728110718328598268135911288570850629171002742008704545521307682569363199445158485103371015704514978408904700066931227479664203969077695100824976276587472787591565858221785146761211024013562961550506709966917825225361339465510415684749825698900854235395094115009102495842975888537921184735095602596772965581190878037834643133601563953709851147176857318470266002400664739428805623817557045975294431330908321549999539850804440957234447182015954023069973477668534626785284959095679393850839638839292765497427379324852800355759240893538807341155506549372262939467359508233437165959776911902098386020090056820163848039026613713223654598059313156317115251688095434572197889946722109703863377970241520421974026086306016548782172093992194853520536801878239658932701306848243827820204786502356572990740270699392943695152138730583712894268418464051463747344251270680062818350031135281736446583476714441006424719218627263272472444254009841854639337263158086239915182421675675648049871854571942667039263628711101490873417061231229974069534890928159967267974655829483211428969656027096907829046122580222021851947965082951145854048931111651542378583406838947179664882844154809331652831760591429581293257196694837074203746550255650452313591968113397068135653838217215042832641180710590922912684876269918056713716901983541746364410769303619278975350423122859365363277377169303149135953376901976478294734488422109382769133699093751069396046689197512949199799200561833705326237145410667253997798140200239491530444259486042422145170787849684019777188487487653803603858958630626184690821228154905138656336369278844174707937765423063661161923281901001941409249695527257289903855456794294503098188979398986895353664556393289727658328818363499220547020664473044810838828181214478135448449697572287110510513537485539865188978850936805312640744891073691998009464542198871363473956316127137568543231233631462688085272768295512247238633948846834016878459296532844561899485444460905083572107657900898569958316380668963080665142123236391493299693634270873173710384761586086681899427121733655426531734855187377686385752629540755688346457809371668016616867162952801884397822280056658732998783256314763708038735903062582480034057353202593567327350937002203174117304689061308109363082564218102239060089917013550575836690118940880024258194718556282567723832741013939494895306834014175589784880231176893385203485138980598060917314164442289873584722124279249981549676954673630798252539419906206469379956078546060340100945633470692412086459942982683089453277054397840487636599523588594441920902526383479406420589753951344028447054349204247375945372196210946944736225669997977377987419315973344507788681740731726076092043897000902113826399461001557658117298180645438585060457512721849579243637650739628441752628007520456754151732112795286564782733416194163982980403570759692437348837477865950932922360027586330976745726648370680879980234378251216455878230632622447119592510228511718304220832480073618185853181734400378701829467456396521796201406438789463750467673351343485362139006270114948627160254174070671619344012231667658157125295967327439122254870973696172008436005498559361830449313730631461168325643858873850333033976645223542073464627026060202064661915931282842908922519415392816025654523263284411019088160675985648290080727408415166689351184972481134899468275481292408543982396607284665652692719906796559376771447915085304968010100759595740374216391798235706943117394954645981507178391724159173373544265595251258998955592145142857375369520760326889437255213738801485721442205451749892725516479385392199764976812846906383475423784161820198883011342864970609780639200049995714264035508940651833942352254782328957429860310027568033313421799827330840934077200341425631440367397817528040954195168296868998164638726515395414581834629937908902622302854230015527343034112887476163557684421192255091462599182290293501610497229427476759995947231184353553639102421012619946039940085926698189453490376838167465824247103749988026377047629631509354377186339767147954605018735415556923304254050278199329958954700809386745761940750358691510544945786209021329817011963569781578247384675894895356905358481814722001152136560289053664715211002152199196349239230322095857052639695844177413299528047608180302946198262937519478381821229495171117614165600336403765852039185701380019318219558644312710669611506476120346261664070714445495213159151287790355429347652533506709004254465532649657795972444030158505505433682269656944988410949554417986379476282330254735240536558991123947698379522415853796570115151197192558156616374967479270463996608911756152155249437572039977834485400534820622830830671343839837804497481327383107762498581159704916369555458124919254300798689599385991944998935749916299159749166381800498730914872191899390510117942460107874766252152231786419466993935400347628158822342427791424543247363875085306999521392521467341656760259221396627326346290061869998126941732930475009272235017575730525046251823058772850394709709645466448007430372723057533464965118716327230245866163564433587145268228365145908146149866186668769441143884134596289591015519830259481341680560043938757158884632954758952458478262199451662577389213201130496385359839853253628749992825983194019451949212541458962997207755115861245917624409045741069983098867847551902322337876763070043957723928195457889718206958308927591575382901959631373763984659676380858668731814409442907843047555823155247845233731076623800948985052941619222297789133767299753851153772963188150188569850657930734207686069581643313888364643436187153355084254393145426438281655423736699447433383682508463249322370035128388437854557812134845857288179813563625470928224307221732673008187025452584261655935047054970516697986186156097683775892075493821373646148245714249405181967803747717482497356366687843090977133459997890071404100467314416710714280090796372702660880686760192636989340003138892925905949927917203514538073953023631968321328126857175793836419389033425898715302984006328208291784593685343107859210343493239318460581025674767388575913112710369748758804036523613064196033560870716083125210625089110751846213877538936329683591733139829707027616749026574150669423196089019699257093902803163433871103282308417403753354751402451606611673146831320362449839688876026349190479079792861864651328374072388942722685865208681609795086070386437128354754438130892791342391299788662883860619576725117828486659236347040835328141944013531071025511207684440726604676659136199332801725843940130105925668238785125006168806355344158850216700430806338166858552803794112954623081236238303843429430005077226819716909930216790268881355080665176972226228451114244827046380749187805356097567687745565102242375474876672487173197188792948433884794362486277174587506476492867740910511003267963178516489739169849593232950286682529769416970259946310735897615142824289253465843640787942904098590112775005296814580494597495863845930272347274128488467611529226145872445368967486881890342380104889422277865862107916734179305040460821999613493454028767931104156834890499020878178186442977942574734518784559447031885908999772478459832395286769598342654656183879814419129646650944429873743389583843419638387016175603510271022851806635525497389606672032626119197457831730580705358762782586262131950763759136462474114686936113842335116782797907639517670796460096942770938984278276198663757115510534821126222145469594628379525045630305741473736287307569455245405471676547811948199615884903134163637155608971410573336148488638301420405922255276958485039775785929358066243697973292041406767609646177444190383623020803418315822757715260677216843559762410665393660631855342073534424926155689519866365345449021044211492453603152657838487851567532898033301485590300001467191934029858074685124375216650926282284200009222919490084535788623142135809403637622261860754929545109657167351501420623916889898486771736785607164333588284611184754318973513702787001931095016677665950510940277349083086467544591205110713297562732571000259439229145866426038438094727989490941765309983785353281320549489958675967448059313225556859943275375201570063380448970681832716586907464610957668347147834372984310688816277913939385049439393225085504528625536009750292873529828988012045730880515348423859321515055372415450704882516521110785308603376855904182337002962217575087999927232822673917759431287683960422901775777243227133274071775260424792554280673902419289997617417686283092381881118570587792991796608637388605544846799724477204056854380479314779480090973252020327628883655753001058932285415177897326003719564672894783209760817776378241844119192082458782881320117976432638837218855301522598519597548645990494049162097977974722094938573797069372368411405756089586999237647516818780128206383512479592506234899594586843217140618477947830626444535571028281544066300336201672826970421063815402385680013779495210324093499115007458211224796170498119835539635135254980553422240148404817474261118684809973821273775437653674812604101740595432462800688000968382266996654732242939686553888333802600428396855669791991619665104923377236443142104803630461991154312255907060708028017460016507856012586002089910517036576208634029700334005183813914837622812470510267049226669005891419442096294942858316058138095241050036383370451662432881894907352834042036900907622035355469360559902660298187993541341718575031439987027904802250133633127804580285478997722089061446282065176534366721808127588572528400667755573038674503205656001424839358349569291437743183884082109003185168782744442703302042109161412334291581951429001018934449010656182140346755107014206919737119718078001731020765500502866201028919388975967911220159739985138386846594142480696213299044783049664083022528631392137470504897496080758665193767496330704683722372195607022001155170191083352076375859039092932703480068153012389322941154969443802505393805788575880628662986264783189811141320761171326430681530362435856115629111990271790565463690691105093680380039300803695985782669668198703130198160875068512847805981430898932835677401466602959286132039550769433828874876100812269405803199837843939660805750488637941757868674071027506698743625283449699829485406844782716481368012648344153788943238229851674984527072521361921405467406358937403465225227143151129140922524255491943323118081860347899313335722775102906503235554547928324176382534737026239357025126243834723676242054632677972044616841734570303302423220406090838887571373955435750095425647330981396580352409492846236933405105731592378573514546546855690777230684423350543736633311545305021770687095439893052633504797102140924683752231485338083605897200419718678495793363821766650640955236732279087977808306561867311042768975947303686242661278041224841356473794253611271681338802016239901285865740093370153088531974367221266521363336274079644162789348126714463150184093098920048437407499601201522801245546340287298545531269962320708391085798488420921729701761673758762618145124528204878796158930929403770328307218480761836286904210898426394680453337785011343362875289166432696673008361940564102052564748493225761524644853484273315548201296246467965406837867712206962680145328137887285907519089008016741922418105265719681438716636835225367624143875415247514242814248284097165177947520311191389673132655539046966502096161835466145269573671850859233603484189787089631667656390900298711885751349721107541425997625574002728683921636777136423892240748684563570783065831107613737433454766980360145814850246844920397577117282491026355885360349543972861358130998818916192389832560344341937180483892360667304285775166151256300616151317169465806054125524701428877108413237555871649999345216727711963414951604636151673184808258634010195220260920905024925483837781698637657277785596109650297882404001388089606941630531216369630034873964510591420050165797587092310891489228089586338042319149697220253780321864890111611916781260757882884399927215902160450271866812841983620235222517012856871558523602795556502866026661521611252451903644715429595421284203100648914086428982269337530940952429711615744369726846319033353044290578191692733444892655131901025020894213414806968137533991537769466284723189669663407335071295689736447745780952737982178415037634950202459441519499840452648176706289115311999184692043952578371260725700253614508724960650222656526246123177337465840110816773659900330707499161379280450803688756029277787123804650555776229784557185909743765728077618736512270650545407504166256154970584508873649564456688280152406600229908478172352787261635936359034548270345066208098760158257909856963161632164328389917353252221322963116011171874573561104038855711784231035728343079671066587028609566398513750273733646732758846350810653262611968830825821191285890931927629923768104717268306424485989606956404730462859630480355926100592323461659603117417390107125850792501249624704028628462119942953496328973461359321153293844720370793233569158535310410206596547463160353506849795616634089633973397198134885257362719954381829935718978086002055860502821258548114842361413153276369191816527275521738436430461380839709638763399467439508359913143696082939116667073734155382392926551002389895638644694289204652308677936365157641801112941129133939446762743812807997809904248115208096136854081252927379179350587425216046211237839766892200226384029494896631469321860426148157569259361968046024567744571426013283192542660428810858443444878133486091327007672501701647626950217089543171876607080751389003228909717092936032755226621547891220505874741636086580290557043014065060763895089085445090297271486124643525236586553814263658348910252270140339276746564695405884976093487661540628716663277841258668287142414311328508405394615884849586767301185313519171204598545780298737861451240251795530527097194564832140702435830459742268295682342945120377894778157951518993412183459972701128723100352484415246883496635618999596602631139302639601327244699606734560519779585422114948504533426589283269402257423219089603018536020015573912119117448417060616540982611119412759360460272505801404574683039836128636750505829774752874672610289696653850027238277863004411344615195963567302851414161795782865921167716872432637184792474990330715479119463466714137956705317080451313215125767831802767973837591971583587559533769698802366478212675241264108571214136047533108246207956382066845553254860371336587128116267215060768602102602163172115600573563069764573565362445176245461897974095695050301698658564603932662788749666810289040682527763814017656774333711251534339977161233371063310771324164553094127533583232134287142788739596355754929804813553833027000449255006140719946839125411859544759548381900331953636772631522384074006326077304343943472698383526634125980120393536312407576481602054755335919374314054219731377141617198765242851220330468631855941330703098757710203567000146892433330144881520929058001886541152952745368652761568013088900244976795555701298051584715934726603599502080640764491573904566349897183341055297993855854806438079145012780036124516970699081867807165771974692822243461002113624819720466726798726700231564449173721332314881310153553070452362899910653883115412347506209505630660676381020203245498416587202584475075354692755682951255358363052928350886560653603500556468570175253326292804148821949931002993754970061478010210284084466570002216970656316744803194936102946329649624080669602116255841382678323201635329032492303651155263889726696391835869943105003823937227559468687516060228015762473369957422578235426191863352423705920737555855383274455224826720932248071060582963698407468859656961736094142243295541241367422157325828753977349736677558725212241978668378822974431951701901672750041624114214381008208462130274239959534406391470596795686434935195351995772122730026175857783350944018810468336732229905715865726366577138882638962061492154841611215191914232587312741237538537553924294661354802784849130812541555692270425659521964611668095888113772330390429558156180935339707420484653637203412635529893326623097703104240228961185236314450846956877107806398772885248108202866710800306854254685587703086586252527844478438518431651940662604536578519154225855354183761057366631876079551467750386104504422929374609603641888547103100018156754471727139026878178921025669668351350654015825979030596148118547899204777770204139457228844766520902311924833408811970007408512988243842063654200764443208719933434558238742183277610123238575387462664556653071476081717866409562598849711666908751450078243816274830169098161409953874688544466274739594770510259533767016503956253866031663081767019421848951154416410069267261358893376070646679589346928498266836374600388934114592489122316294774426934946718056937976231196758064086253626107491832464034874701818061972320674597026379614653394198968208155468892666474839578211327653048654522250249390187219352039499018975836568245999873280488307133833669022170620536149494399679267243624979448481272590232927487000718219292950981486836924451042016179725971753492598211133315370443093530806104586007815886265868971868033483499496474987137731824669850188278484275856049296093662260765194081022556843504131772192937317127612128615494339430811853100280388265452575935710185319627456832115100330240067082802835239000497030607049029231430283188271350714858517942548574555268736184263319198041837583062205525341186269292900911359484535021476617647966212424793408625382464544416672174492085761104645117071931298612820656382380756335738913760510975623506630865176480756150599690648895308226146584220462109581558069870521661164123824096831673339928352211867618642247643299426379968043501380570750470976925273803214012869111908518650586949032993550125354385295122229610344966305418519403505202930465101841472907725948325880422898632655587856430017306173949187309990181307279764639152756000653944257738876814609173979366049132653428567057190883701853291872533435034641371869767148583968205930989598089095142583219465010704721317195998293382943513616382348612343236499204083873286366478111664873324511085052346644566416377890332258532985931654545944799364156354231220343511483678735929997087459793755435265383640494354116706660369390741191605934339672314499167337638645387902422306259808650328021117705205974852973776076637887467148384722965277345441826362550084042667787725364911550154464649567829897101933068420238225081059791341255602990648533158364861443266974770768114658189529491803744686346999167006801095758343543247618201016201239777408092738407108009545746724706575615799358665284019522976807440893330563926978313774439738892188130515352538507582801336239176567968688253997162108588146275016766352815552889349626222275075610708539801383993429508162745030503595319818320161702605540883756074145707395566592428091456364067249806356559616980854716606463895603608662499217345075569154718913136267352839309092157285898960075934861807604315586253252352328539897463326383982559929262155893293664852561708454294286946975718999488802040151003233516052951703786642814113540342667933702908213268172953074195547998227485453691171431633116457167319712158163496389129163421720580985563610449455982321480312946456369323685611369369993055456357225267075118841473473859421975902188239221578535695641599341578467597270811721217554730367266800523421519079813641671424648650393502110521203073958438289273223663861572577357796429033785063176259283827791879418976065622232666576011391904534767361196633626137006504236173110776130009096071797084315991162358476601381696321597975573759245750342676425271000522548483961734869157618945101049903762307858958527689580744607916150301428484993864092187632890167466874851584089321724247933208245701064221048745458876614679720526155959851135683224656830900160331634872559423989352313577109865057165197900897299484414166777472496940490425667278050485961696332316961823822430923116132952438065440602139272579329711561581988415981296196336488496076034298594247175933869504722976478275320854479365717399250068871838909980106525591725006596312469017677229934016508591272113923348701862120243475398252250196485343507174086073920698596459422215073600732234869995769205820344876783291682892021833422424055317912840897326049018880495822071583390928797318781794434305813085241602893992398336295167616231318224020941332588162431229031402214291367073559964314533489954328972679139143220845761983169428417921852096083375111303983941640431175713207481622149193136053553942231770577910956351959478950513705266506127005339705906314826536059725640568764963461760584939570368397118486382419032284881158430943872626106047959103374031837767851209828630862895842197146923198556091812324541324120073989062740098521443759138684243494841089353476968874852613566985074810454193523283866689602146609006498308819445897542602602376206247904407447680595156541997585444025120681391778571573101293397760401054466444004331586322579591614988141289427037241865945801092338163108831356294633107971196566594314187859068671822395184061130761751088403032392368556139918613968243328573014297692498497831424549673287050752870252826782268496428089952657660065554125747479311001959053110828133532982340027932488701621201479546487900658324085321484014652216479639322625911464365840640832720468897173440539494465463505699161268662227718964865225237872903693696826946909814385383216097833596773952633589452496196417010609286383846922151112742497338649852587556499768905064716440619729409755472189542340012073313771660150994335321348162649170326635677828241935349414985748350383434255292040083193325399524090577145630137777384983394703433782418867041773660985463963255585422349281085918669835509456996345138861374394836625625139550056398869285329013871133617938426211350102089081631220315704485702263705830489814876399082837736442820849368244871407650492902282418698076197230133111544069094992782670890650431760188988973865030728204037918914165283842601296416793877463184641134212554909954833635928237244866188214952051692395833851182786571033388846929878992241248669918452710584328264205242213499696030520596100137497466560089148506517687491555341293782766839763195077543613397680181076062844005487436254672834840997941283943132279062507389776865964244409121198506147091209353905570050868304105018315602181771367111569547096495365151688888383681870965326642051817881939845222397003862738289306559135913115470437920912526414149647108562676230885002950048111471153538794224729185234734410842772028048305217758908027016016596041121723380534542608424646043483290013529900406238332867762030781619253215616285386963184192427031307621450287492644122570611099947514791806176422067555963487641277124471496689839791117631527615318669750150268473804291091438910471746208473824991366690061925138167795063463117237789824586388308831364509260572434736885545955763395677560604369870449411972247622910238657369588051746012653781285031742564846837905024933289487382777571137858839422606050882839635124169136052098708272560294019125680180286366163573357345773591173766208069328937604350146697183521178245087632454156745106260831775614657322030958515620507987454941806169255385441273318349213370753745727013266072916775922291257608523058687250299323802557071622841242560253038359467716592463507337065076989482012317911513604178804735171004512312902962534008212018115675164775878528052278346891158107957344697491303259080337754146458797868875255258476113353323481774450076619490616176329552687899690075951842996334611797641862421203383077349011866990466505285191239783048449450710786759728985204794449204873024899510600887198718969017194719174156366829309987713633383958739894463943363269640742310916385724096027686930266082712045124610094618112945535232348061216178454391280402709661913265507191432938550835706586739794273292614667023712793116727313087262857232499811221632922347363478154875116263080052837752849261448348098300739951450633343615755951980712681092374565791237127102031374710746031992347353790958087414449337520429545246320735049637905859429056559515903064711322780104815727045533240315323486798646748899602037001615390662651160358869304356327061365623286224574453183855271362012787297862792465131051798136751798627740613321218222470179082269355993340880332770389345973599997826809022380374043287580420712553963153726061526632486136979160035173099721240906111108860177905400206272830762434812451011884977526424472036453729435139744647030280747780473047958743015594321493619757630467266953793999226801509259360200833192290173482924087001577304390793966560384958128922836174433085394806257934168940836529819869480086325802056567977817042468345601467043438623941655817662185313131864928024855619553189526769447229295939259055344490877641422028593305062452141761693224508768222533423715341182720962922254964019935673291488753894521505124699499356131139369776143865416352780106878884131421746512121480914592870078910538432150745108290847562517861021022229154883632647480782667100587138508766708128108099314627149326575225108616266973593520437590492921174156411014128507585825665052454815921531263986285954167154889427927210327938937076542932955762632426134968389872733543096870819214869662661862265193846119418802123511909599115207038192592179593076748310845808734027676028629858448645699015899957205635713663932845687661261393324689971501489142996737495232688645881445463219016156285397440117630329635722729165066251413119431189065071857092458664681253694341765541332848555327926809987095938210940409887600432095553391939337710958938325651258086442153208211506540226895485151894309856976522237766973315641723911718769010083942327521236753985775215137282785286085976139432061255434284154632227487540790938820054020187082155428495195027237493086769812765318963783520634095475162945483189322260076505892029131411865421295375388553382069206946675019240702998095397298178292759570923616482259307539158155062777230146392903894274986608037281685465693516457504282587589689007615373764938339212805053482060541053962196609732122637472824619717455919691014382099154414411169271455008702348846383345463399710316396542001806216597565502230855098069767171557966078438880425438439377215671785100009629546031836460573725512802604434317692466470121974951279920198242616581902902475425518157786478708338265120795734618466658734374245859752045668171570819778039953003985222007223684340501392380824965893546234797240862446134940746039025888900276768050402364025123598793538112702182593901305036069353808308084094969853565492643373159492235050530314302235500402186398341341950623779752607816473003395629573649211542680808050165104964667211428774411662853629095288852724038554657349864610904198704869106131422454507097915690474744887594627859248201978399729047235595194636766075611528876386515462584520128264384093172943855569018619480769295856903058521129590408760659567262686285060370005436884412181184112781119687201065813519409175513594034832672661116716346871723520081287900980082052238568501163341227407614310709612796990140620880563282040583136414484910549048137052970545469314687284334212131330236031212480213948764197902428220083298334336610757269895465151358889269667411450059542714497897049531333610215797766044128367814070888321799551625482334449574044092122689567700676788240004987407516869429297059636278750904700641345638872671269613743220330900613163127195752405593306349852048749708816914676179640953112535258794514401462335900667470705926693675435661656229223940471627142431822141012407036330351337881958968652415142186479694555938377312043771566893927875830700876755720560902291407991058695234056264930808014020165328898803170487827580731682711419565069017696515453612749735943247889234983525387242813204948241616559826244490968901100036374431693928733369860366185276587535345719559817478936328510521458771476578072238688980391765971743984287374533301195707588289136401572315530689679827673676757480191264756007298458446824383994735921447098878243530881479744409224615469126160239833120108419326574296539460360003775703825928914413238037662679045034904740918773449578234203144901603911556058401875895095711002575793151243814789932227313546518657580532645976253788820931005415050201857186552203795605028871800722644081453777988442182023851204542637370791930415828092382816953825061185581381522639398991921748923725222101065545793249917091722323672603062097452593859480783903275271036468775875118784247653067778713852418134135176799907613081601993615465558333755976943580963279330676516641631233408121087346099756893364969389917786204592571797603209348498641207763346712152579251264477603595457346153309641245980869264584697554828444106351690834695961414667811351483942173043737592645002142698203632197522497517020600673404375587052981352513913397728662621960755484614187648056430733135741468342324762079342113159510645764943085643809320335694969982617064513706392194142801450519068710254893839274440901029586761803799469251808746849793547083115277005904364225080162127988636314803330179035716471275728672787989439791728969185911302892675780011433885826012657468714130808749180040809610206294059538760480836406607662397185501962993054187903802391355903464460528352428555174078541393040392755466892343006294923336054507741625567442958556527626582661866220081333131159430547504001475312078399297852616598295868590989032115835552328194431313777600133143257119441074260469029259158782443368953049981332253712244998476518370585105458289729652751719009951299954075582047147490238882216290326369512245182361729221018366989876034648037168453657867156754810854652562486957235911382708092062497279350995436567873321936362858946863546530861529396389312268730802806835299261326190134734475844419418118468081830836977328722464770810790094160790482522751403064212487339213596297622574601187838562979906018020373008216828196291803436603222186194179113507639493297866521004392807931507666428369842939054233196142553965267636042957488762600297184571708102592412449678548150110614998885489007222598640270474373091193543310204102396059382035486120140066093076497846047799143592111013510175664599198850623427022322646323096344189501650991247464122285119611674936820639211131950681031924188522207866438156028253780264924726232043333222349309298653360917438365643421699854287978527174661103593805788271113373837355936192142393013376439810061389248199658770107815921943431224660260842583856248105650368334922935900225248124348784881211041201856239302849746913213385470164716377344305941565271743943151764153183263314385225516058774165496556275211037778311516808305893116542022336870447898555934768874843643841039327166890388674834648802317870916322977224379164236593924581991930202279771780703542023991780308045935616627097831883764985299134011561643409773811677003421775480379579248562094214003221951581312188613334314848224240418561459518607236262335633631856990371057640142841800656757042375856982342967014100787868800313814240660939934017123113609552813316687542055951994043984035865733361931213995395413094323080579845285176143804013822632516527801796983131774166207732139444991794381072463141808518627502463426003071285686960334232830821768169849302081193594455872609008821993807571795805783974111649259082107987999432805109972689369940317819341100640791218366885888180509525901026708237166316652777192397810873776990442775136528931851634355304032688083823260150939522781576486766778793255710967575271020783588950895584604294744101551652142703958642626461061409223385782051737787113477012565321029759762682741330819099159690028712677213663818608968585749859099296361584163862388472156673523982081060830015747826706707759911141425576974338969621757693274342076069809483239589660379173166028732793389487506910392033474003312399480537965048106218488273673556047182964019284674197326101980500792713409263157507859279479183458576556178456850313097897724464053318282588865180108155821783611217953272638330540452041384251089529119015243400355383393104626654817233583172084443243798970198861983687689623135809340633499837437008566590246137457786472656735683809555524823544259236451644756965621682960671883045422778641430686109903149342094662231808707902261012489938876317802938781873426030421712725619245450773390257119492173781358175394860246514671978843840904747447896655416494236414280640065724882162197888249297265433075851434381512015979021625392103275333300810405278883476783751286842838593880335860855167337546296911487295833482678581842296483469499861222920112770553046330712694094767430434895107632864886477782738523099790090880093951380592273053755501336122085032716948323126084550857859072278436413076816191229699238632235728792066643023947843002675336137652790608331323174226791106939361801666514849439066627250107131496050605506608112447401606968528050048435228983015584360767028503203969668772825468452528511051284686298209281508119642401194051348163637832410059323611508279558482800806167349862609108887809631856700796978533914577210579164184148126963179188319873386257243114697722679409549745091561561136323525972994694645938077759029739244533300488317925283034124465745085849385128073519127615097880662508171316183674819032498429326927038046124295358926021015261178770100144263615468859727346043882061355970381590222370359519682930207362676132645483374900869929743629169305645474507458911794096062432795310376628350124715566292911010494480722467869101058888687833931069124442291695081864814404961103257212551278590513586472543431273125125784521391994063133641033196361932807394070400765527050851181891734843142143904056245114619881769316513539894798782129084977011386238198294463878276888647370709801402215097045155251778228492729272018166898935617775216252777441135950248908868313018516821359360756134999217914985957333019847491200434310646693433681076283896796560250110357211250794088802964494124751913973542260434229773206996156011138705439934025000793123614887163577290371506772103208022627431173385628705118135086037811718387697143633234726276886940908783647487053249001295511695146957785514641048825533984873210531420927748584739173130184322444224571176995878741068977012956711298040254499170620350466713705638597820619950382040830061309984800908571105228610806805493353300329001384395843774467619057316034731255066398746347661499970227550242204523573080789794547766411476368935008344174379743065668892044338271462239668711394515819088264681164037400215137576039132071510177677022298316268214772126928704336447071248998333478654822448712294018943856511344393385006416265835300930044161916578246594104460741511523000896217842545039788509582375170251064934799046409140953294349226717609865220183567724980137163406638631736976410974386776619691621626508198830420375089135978854632000780748403243659643110645495100210679719826771279169844825999131146302847836331712715668087353007272194015097580316496642754964179342762625484762120277501629257517206478606874035943970789650060357047944729852417526478965636867194254317841893226582406416316678329545402444170791678800014138004305613697032512973906296292860143930871471378470547640206339659529469959397361572818703354599402900648813107712717115667697069475545566050180595703457950170777161057126328651274790814655138528673985804234453468813949603491332497733868284707738546848667006613039868547553279670273159575806379959034111104297441306357182537909992085685413207642917406949111648238091154170490925014967264520319965301353107579417108418682103422092521223471274360500738804368723636744019697122107913163864113596757566549410924563863921936537536608782516148360668364048205976465788806929637887880204877674693887022066468909994512963041061156289960880784302386882140080395451871127555461613852601359402971856992428006040011821446228547265429155732207904354622387222087107603843092330147501532560609460730251879947017220722660287926322856960840064673249638696777149165684344775894115177781806034322707029547306883937020712807519337651703044906963792686970914223881898645888336781648673616883287066521800405211079226529759402263539223489515373617855082081838932335063669578425187166635757123035630497898989837226133684345596981702844191367209006138269506249399922360630841285170793819939089686235284472003501619088629765413923167159685317264665603630565760953372608192686252328453142834502341223838791350931936681085532695351153352173948449099067709934083553343256114681055030998412623667161682674338523394648265538853451928330237353108976341548026025684881767837304335755989711568185681484129873327014250105765787949241584915748844863453862868854839249511581990582328891623020810660264792849728747817731505893942015375683083353502304028079246039475911276074592268510294102580579463327270244330841436158858704084610589869296154380088931007999049874073383350138731661315194571542025966791407687847561643895079378733024690272510135623212091107109663570960117492505767316627568614159051424679606974984099303530720361207240428097309325080924012101982091561405762230362888742440482723612484862360978926313611656375668915775593843119972605234324879069712340774504242258581451934748689725212577716354084490432619371651135890122115129249356829613519153533095318114268622463702082393975921425179815541417267036214658033981353816834029320141107843981964454698724380767020655318814688515052131114875957708147552946480103407525388693812281759568465249143614077813142264699194840372912344796143102987105420475494825941351348022633296420789430731150936139685661421435233085635819360837012190624409144267963295124653181546166825651293764779099954686352934275431361972297178055015002815296566313195183756755162433432811881020952121545822435007792851065515624270886557402259206274955099460416872454987061073337614443786798898785588304285706529290126663934843323804114299401288171083632983797951609890171383383495578803333086523835558089783739516224067504252798120616721792190412686463755534722826512804864164687863690263888303912625873788339520469513906509777284540482734465314314407504298925853862257829274392169780411926082790229383922981710271931403668002826782064533543980625275741986162120075068753582895005481781039923030686755788314712942218424887048368302182540151748723087492222302971967755992515200847423797660467261173891419868687728453301265730740643235046490826811358327307524307288944317380314885203964594763813382688567479877240653571713875362766711720369685676706128126894778149788701718491642984754884326658627601787611393443386327750712881825563502591004714706231201663186941374905902240696256066268086003531352753167328714735147524322563316058603931519100363876477286998705133189607697921153284717334132305238370270074851626669444088472910473729273841656646334536359659503502319688914478677117920398155372844143726533256560294427064463545676314574124381774188098588782920562283921853525434444793406467158006453553009888826097634324231782799735128668126712403333668311306167816950616128722847947052914885753783689599537483564326516117646115062805976013289497027869406118532096955374468036529557503246765986277151108766603790565712736102895428892381253898902328240153142071444383849570930667529750523847718571739395299399300411012774237299215484566166481160751624982366637971650207194471512004388796193919053956805201780658679047006741321274773245048731400105317511371112767335789358298508644995009260855289688031262644357233012894498458759502384291327458041458958340249381604231033172358501404974350135855158354274935653075162075119667016589067500827868867195950284145002591065237426561739047710930357323944619308165318282572391892625090900314791996027875379169928624177994364644557085628390570109806856431899027679988586260126528072102365384571036491442686635384419484947695033485740776168205736122910445782997252601270883026092664100007728686550052081241235610639598001871488848384523397050909990982759175038247525152666330293024265041278363058644665503856051356355092708681564999419374630453060336470401829224716752937550072345479376676017997197277338931199442654286207789431575050112844132854026874933050340860539118582521063354069789482671378541621472691936215905870492431930407952957817608888557677835003732195103944099994656424627790351391816960413575689014377796344014667888675449020496290681839480933955204125312331222075741870714143291975269256105884092419718236470071053475162954714184207825613825825139933348827939851569855639716519420555974251099487174637346965819178700951469920309169960822685940361278237729800862872597332863381630903429679785656544688706024709674357173123323594137519087815241511232063551386761899711630275185308379762094118967964475275853994491220253173029234428045181740736267200153082995930584288350834372461845740942560688347389045920217210725909115144993860421151352263145626098034035133874342653677540208930131974781145677979828670911987718178443698162324330879370689661955902352907940127600192684532505211655414653494630370356957397470767366403860955670304057600462393956938892381890460348775101733985079615686004152689885836413707869056240073200756820522215873807193743217540453753027064238376901350675281797445233928336086184046343628216453239452851983653048202178840794836486689932367426738728277498404420376302354637137121338717469535219161146357754158971003473706253366463612450850831272649127338195857614314157405061874851879087313999283234278718370976352985399494857330692763357574157538907157499264775515866573410325692269113439453789030835215222505050867224497347179532642525952932798029112707261372314597644500764289504267961530107484881433346113467547240997783153859496023284083464686861848519819290110117790109816228569635267725989682023769084837783914394380410041401353639770127119638381181405576451047623185905510596242848780550348784357233935265313586958417582667209580178138532776074344571954149790682338488745907799783491731160213118782734008663077048937291756610064806518376045207328278401590890244748296074264133989611217448179033402890027181438549837496370272666236367585019790936016230073166363508313095484250202337335474772877763957364394064145437221052812088382407160658237537256236818199623464124837506282606651173591390298442356295553237787284447619629074573083956820699077361500389736200761793803657351110050988449071277581260518003481088536959708085221544365839497510978669379211695060833553578244801580628714245003157287560632882095693963184034289874330618265742281445237621142294422972025976067535982660017395559830651445582780780246707795345322282822689898779115364095457876468112973075111446312945362246919440997170055207114406407123550780851872321112134084583381319902016092079538784098960969243356076364072633371186378328392222994715101982689725076113641197776572966463588707748932705570388202021542450402672002041818440113933697764096628156154639466108544210446862506273538432968200942582135599553653377398930591971974902014524542725104663741975704099570634300129504465980633064742098968868382224171312143242801348706110590589578808387643607510192604980911270642775309284861072142620653401136123441146947721872127041089220225370653619166592652468511660790264047082741999910331711393823570133870454691828196672147951567071090328348120242998268364475173250172109786746421005100704964942757753263517409010642060997700001753914738393748001674352175416216694568194993118922910052505137938772000944948075908585053859766671782941244128912449384330046201601233515386262491022660903491717369152862470430396447358769118326610313037683339781202935357376974921886203181460374111510113479860471526460433440264976755170479591178744317110630435024002585162560020348663524359257196628314896356517743679584291245472039115924060104240639598961842101927090044640703759518761053036737448566761364446765437925535664324918893937290185252990091844163346992721871342597635337465094004931089171620115353194507574513113805340611480012452918776151912468389096354914640632764189351754513667325450698061297791832867787730263114608617501941170915685149126926845933373796285164222771843573494263800193876841103441988108741386530138024536310527060983453034708851033307249976888906935850131007454544228736008333761818147821177864978115383896786418175900699991441117491129196765686334371289040455906560199716224424661416758087777577713591280435868272585114857053581710248056950198420987848336489018848110433392383019602992949629894049289582781039366635130963505463503012507537877951693550876774562423296120126024573196359790998937532030405781720036825873706287918747096525483773109626118301698395142195854380492409758775010231045529647672953288434966107288809799922314175020548464683648668794467431790476105042179056258531594466061903844827574519260595881693916137733459389708949232320153953300264750557657138710793626073762924717682502304977334060510338660974671124877165785180420857532643718741392968254957187450821612572554863724697555417684445497909052843982275420048037928947427468194597431984496439657977398875736983807073363127027394781874027250849493258372913575049372763256047028945304841278316667773992141323378017075004116704697423663358643425515182826018103891285271859580831012092948891511902707362598007276203691506100392041501611795489751304252049180687005157875970992579825579780384418972585855289503708799044769370972417531600557679501802415459217715184684544914874519722950087656635704101000049163086731150721790967710210816518988043835086031264358628641270329202991183189875401746735009494936039742274543817099898567245817406239687667613706039026178307079154809968914276381499691006773896809726291026834169826032040411645683325337222393080500991031140045690140225232479351785912255473810117539931864490828666723322659789689746610789215383588400018579597698690999368487694486088994503455552815465278983465712140335265563363901199067827591548098643160358583036186846741829198384708434805868907069699056584587946472988368736982714501906190587180147575998508918153454917909819739286859490680812768374631040349070860309676232942013180863175181910958388238054980012028321704546149021017004378600136573231189876492749915345772043039180860367828536032909909795784730878834734035896020489473900433849475299013018034440123652617898287572907815879298078419219088086957847640038579546138137069026312532266334843670408304753353910528198766876802577064042129352330653657880430517548105529459754716373759680663545236264292854964298975235696325959554664574543247779529591732184053526543239809037494420648156429116634023653337370816160595316452140463586753824022393530625249575066152291383328735338460451829645708097840535137886644949146648831863165990553328566330158883477281268655276334175829692421845530137222114087102482797160335406120170528476137025769217426437417523174435733955310631860301823904239480045355313208055939545658132709660138532822143554774619733247232199255977657013959985041373496429154753259212885292653265157313721032320498870031988840616192765344267758506825422644473794812785315296203904911093821694556722272616229930628660040767893185617944053120777242937248356119034888965585318613005120693745594750691725564696481779365854903142096658576741625370740329401963309435103137059933955340961698068614502605581566312905023309164328859515929372691168629798910823682869432498023197693087898473131148444316367006066945924700984556257242774247210676729233633214843234715099553662084144055711575868257064233338803481973420578876186293048713679225029966362636163608352355901598176237722431046977701679077437883381644988607491307041969398015270125478182771969631226881196056840501350621330449249999456946050445792570922594560034614636933218905816266035361585379258797638381834729549165533893045888409102286570900137332327024332989014313065039875142517373230521608599902426709776967319925212081911694597118829852383112293845633789126288290332262335462382781651222743466783796397564305366621015319979084269542413617272637433452128300704821721131394050454160609087894222231781356668315026879022441992426797358580695810235950318850622135201486948374273103744211556072952411223069027205059598870156229570339226730391560117360625361712499110231417731733109735333651682941640157207512995915094845206476393381586268649536630503737376899106853835185483755215199195075780635245788660129255930701130076143864986891743122641583466688354838807681119302651726217715008800934700589218459160866197867612778760410053664469036928709872592843714573041286603463482809157724108591822924046612527285035253922551825204512029522707656063748637714439027075554434352743412148534330996570675812171307097363470635288317336796836656551920639035947683647469720637301379170160699322475154621677293208710648578543447361507251571623738065952510234526636911943061766888615155987194547579826785150309013120695470160587336386752252954631950473683908588512651621650543442953087261067113394808078684703580341139940814170763647655639277505397952398621519403457989072891201241876710587993311013566332574420137213289104522410376347782258194708761294919734010140493020004132003297327370217097072135622801861287767582521325312130407784768734230199164916799613729808708939944577456271707189784941027883056669222352403002644205167638649224262901890310012605832775352067540340197411378939589495482119882923050931485454937299976668634870953582653642919350750906546879790026673725477665221113215484928492042343390280574766892059523721921383611381467113532927695428815492935894844647793151727146108206957041604688375973860750373287910022151839730547305577876929762839199235508726890406827580126318317749006092670954798595616658852716436835177775776337563769854313957245503138275983722787291335340364483328304057459386390389099678050979795111019887609222674889913395649150718777233168325714268362556685345887259866445568772172208713101194457455435981427494535255150096933766956407411293287638514499421337194291897848436208852495244362024731733532251290635394828685851210827477536914173894325729944463529720353698912315151274389430413000731317135719541914920266107471139820500769707528103667485513604361233744867407717812569904664435523619441121382500893974619078114009401971365278914934226829854361083617860133826410886327437709918798138934070774222695453390608493694674396928627230303353977428645722537439668343748492591721243393943767734767326790257829963205017557188876320674575123584237721849540033820866451837743014152159532044109644867343331075858817902300157750644460319520219146533735969095588548351071367717977657559846541288727677900759058421676116033356566508030626194202798251677273093499051119079247914144601779736428203193846687365725187618912927209183535229394907601520400275342733308042431788596850249210475512035117965794515242936900513707199269573462641932628817594275364283710948183167564295926669161762068480122050178328150029022229957747604456535268197010960646881011990351632444367410929980607529074197064480702525584062711456210371349076466712369115089362109203235042178008873659230832110209100403005930217853517479411660651784570756682686214670826661879427776254289460165626120140877821569672777269019015428517692888591840351500627559646684421767314395761016559912767230403044699162881884069856934203461100176428015894245424677001599983814744843637237120145719379685669863858592343881671947397590122786645548366642534022410312003383523870415980608773890539006262536898636809552768366933196797536267131813346159953840962101117397989106145788334153825965575654404050225357092560723746166368693457736830852226300249024969953325165898705297331052300576232848568943075262510004858806320555814800472169126358204027916015468016093215852790911130584851785367701887094891468207536513899165141818064018027000076079765734769437731592882101864969317834522538602357228158715932670996482770068298104606229288269074032947392924907873213917510511075794938840609689071850206743047333045746361524029106692925280418502434875168820475114733903022918434417357911109682245917559557906142398953542303764552295244197236464294952364514556862975725917729569460884604645731042953442411108505337267189421286022052348583869937091491115818625244019317818618310413236861915861653458410497271904822897804013736842501864288298714401089253843457102084608211827356914639166139357925894283029630194681618680358394436166473893931321786460497212932698633776405209849528893568347655731367765375625296843866836138545520530415338084746173402706727302532031937039559047620217638961384384365871239412544538236205281601760876806785151363733802328111403674493030277659154757715421457439616090202663338808863826358314687044368295284793162688288788514743525878626638427091447246487041399475568632930390036004971281280601155664736078000689548385800957004680778341608314843336692684480410623320970391529640002106463572937525091681350973558944145463128983038636983709603908274575496389082852015935701904255868471664606090512613678694666043596303607133468954107540070805578084107733118413931654892715902598904797757594293770676448029869345066295784318980008756517954918385262995680584274014268129837660149787105897159465490489651904136020229591618949894084805146784172979782265742878333612513201601795433049697269408072036466471520391533724164640263435194573622142289794938246901451030582917744037604569554805879681575249760262377175175050720898515517694808169790267749752067198942689507302941051407789916988581047804013042620677423985259187744146046738511080604365398729417096582370627680260110759774632103701840497008309248235652719626438187544375864187189270783784955033136317118007404108522792631789824559483830706255594317793761329509906021724805318966680768810123128112969206889109092318970418847900889012267131513144302725364001223724909508679917843568373800360325457973267275797478329748016354876213984988450884831775549143680183244867888576652035358810493733506293205053953366921101734107488847364142566783490500987313804803887884236713796417651437340129588518010141767322205863794837579217712073302727031836112763908494373335951058799239222585065926685738994957407159316754753186996831890449405465703378223851001344847741961876940424779574984319030619023673887124267282790200630743351231746780569498041346605951646000587471693021535210583132586006839919202981426382540596493406412601529593505039381190813822723873692784510256020594072929452707845782983360382964331325062183008733544085914707815504474895491502194582750385672839546164775568193372438305317304757531240587432601469197387298367572723401626057025638916684650836754750572207379277892075387203590586130520281427074090167792742455958221601983532816034846517549638828277950959466914540560223472888129083291997146664772612835118186518591173509662831690722551055825252647221808332383197079884063163128130975575847027957531982552571405390175372237897076800379984624880309659463509970363853284791800664031253474857344729935906783216006967866692553186526394994476367439565874643113849480634663216481479259359593045205433179752060590402525260846614671340337886952837477383084153430822774210351574872301995658453182193698480226650439374448297717853724249542927692849261009298004891997149399380229390841288868196052745563231357502746994395607358668132045354636439075926366328064459931511883458120117002970112516648637056363752085683045912901389825941363629048530522483235871583548922685131347746628123096959657609942550031893748579746171494332523073597838703550091491975684146941984527107560944012619814964424239805575316935207257303845362034802590960184898766548934094760735471526293619502655475737472898362028587169867389658492099939930508771756509755733890774725957455503892895849595967816006119773261852839027008658983756624599738059894170163153490027312706375437705146008231908472885146805161574293549481742905307690937940271024784744464691360178264310865812162443454468439909309051404271702692292622341551360124332071115029522837056405735486595278871396151997516467670680080847413951161820249341492374758887379853807321642816297826871867698241133858504113322628787205174495788796401713517334922583459692628938410323317610436418556209028060134844925662320560195698928944562434174429793982338416573330991893588945035994616245514800033472092936543204876036322193165355760664833269318335937417990873274943567844470001570842436099491308381411015395014703418927879697373655675973438568456317441257044478004214877386670468603016561927817331795231903986298345349690681503195782418371628595275042304037754149077559624450786815413392355834083131042835138859851563867334831202049452767767016538374800625830238993859317191908022160886884401395070181092039308438382419849413515174385543857541895893864675563010633497523910648087674342429813975286121210390062892642264770058471004347737262273480103221641087222254058989047286046982771112498857891288214541717650635781269740846697159107589065471139684799475701515454583283074310464114059798178080334803844252153419178082774774069872361073563251407587626235034985693568578078311807189645983160514083730758843002335854960208857525969560548789268505937883489421025469997111015185787576329819000610174647833296525854765948002510182643676191959350842255119975633356035926929735620521880185756892931130081152985103805352054348891887188652640659770640163494624612549066635434021638081320238979113920221218856318961022493059285678280138263667161901974472069503330823585606804283826953494310601069122995580331318802573283086718069139203347276984448491536379492140622595440515910433172168658585905874257824833761417127016544499163133001536609250706997854668194308461135604130350386537617937285076157335840242968829926576384263641280975078140857095189127801824321039054276380892513336026055647012109325283447160849054345689118268714372962070483539480056920497283348838538659100530399844038357361833998791198762235733677655063462226936982808653461349422008006740225465104385683788824834806482619544609819701559133932215470787601163659403064227383119662089585697583744810481425656340503524055635026231196429567696597783475495398049411814508844197183941247900920774578891783132590579599566295240669759476304157689105867842149668601754677364312317313163892525484813683916681889217904963444450995247491815173954542352022721959226350370923432602876255174813634679618309023570985180547464589978286925552438321153181894027677065747690847977028734875560445421154159548966169043104434141155532689392438997119343387638847838950808119458511415106474720875853226986731431750040603532647200033260488271320633958623380092673939821294432942187328521641920053708359677324653951603022228261641544241047091861341506223918412594853242897974946164433917448081345369150054645176911935338825156717308994751585806025223637544515349946438599555291295523285974242478802488009733502763854214705893883578942109897713529303075725378027634414487271623311668096115699783342778203362993024311337216352458418566142077094233080894944906730165895906358231295402630241995654829082393336491641251598084147166536176244725500319072754245455239655017038964096052147346315111649663651704797967594993271270107340177437548424259601646444557442631376945065911804703053807348444840560142414222739917617606696256444068697298330872780168950651516002752814862947031950252578139766312469110432033444736223720096290086027348531362224565598392696994788065444820072152728848297857217555530320520347627734919941677988164948728519685066678910311531775631519255470609516577165297727849792557474901994745672307755866665602378090528294348905806552702600199185777481989624020886662782804377796678274866362593262972038241204875454693499278687878542345610201249209690403811392137604645824395020603486610064340328857165202428481770186118651898703668598728547541728750568661795110149572327670078766989532375237304565707768384076571201907496607233266647164635004056740173820529715420604237857545007611300296172962371522446401902276511691486914751257746571016714856424547937440620078125572915376494367633772764005448865984194665201136405061436474355836161838057437880073502116101985153831739106387611083307248496465456284492310621034871149134436334367406577178326569812014166429575768810246312943073303613763441008627501748460297502537812902747267452474665677770957572284199262580680896789851423972865027693463437834163337612443619392905223771063058889423245633136694909451644346148750550534728266317960371515112356451880858131890137493821662324175574928205729035171388727212594486372357144805134457504497063331688533406993754046797790330930195253837717905891846007885815545048662323292636981513259235490500085543550176423253501097966937114208188306636282404242051377017893658527873794611254423391660851004563501758204431961371119167106375399008377987885529442230207842359017933739102088003820450694040466977581341689477771357850550546365192038556730995018930410795065146546561391741134573837501143122232234969737118905320674898485867985806676464519836965463465827812118032840575757688678001800498494467530663724450771433008472989189556212342564813554977443130663437724046539634223567092348221661867170998249200003799446922615352579378494952950397670508531231083586840867174810316043280633349858869431245072910136782151654740917485667085500155574489368115041654070872665507391912838278052998897138946495686338818013466745979493281776562837775850548421001939359980340269864075176162768321918964932696120628635270163467979557023785396840624940015061043871394206589872089221837368690070912518481703920681387754735626118348560184669756947471473270393599951014003229037837266655385731711894490923375165403384426386419355616166049649691708936927504033227132000408205543224380777648934253163682758949478965434585518030332435947274583555449968892125015162222581084629850566643132507660150745947292517539004419586546527309991545579866673904350100826649866062786053715608875408834501430288115893147725812404781373932494984504968835581851056832248638746476206752781272391353107608607377030339077691044892925616889237237024927802931644658952853338499617498811592601474333274593458533545712243177794713577596228515772335132222272736023676917524143684552594532213966121906892962764570188953170108832003610860317841779769643586032623839937350150673885254273477760342001619766279396280653637047827765152965426851722914932483440231600654717157474211336237659354914935300084541104170274377660083249312624272871581521300313839712840062709757236169004301315866054173723580105040421200105358567397709622119351068298268883823626633204665149162137668605092230538188606718696556752479089097226813348437127117365601276473824800690254088719449359218124391818725486673370169794110484794705586869220755330250822591036035771580547024779237697317931205098812159128441246373723854648346262747200047143374388439269191908388504616246453192146295914188063552830279291476734860455021795253621392986245524601408307584219400145583125756457946819325168709683700882784856623824516650789115321712857427204556917049499513785803026490713431412822461391877843380639293223658350286628551118434217746266900226056451772541297126703301023217796499573402439972391654861395776207286092808301877693411212363934368026136319088216579560640667468033418600603362877124838665940857125094499972328671521376628728628423933328488741047731244295833201896512599223967178369324666330166873176514644987494964689519629779768415898373787884848979716342152354802471402000790600752074275787223287412825368984507143616690510160635055415779958894928486087882182464473577699566132822730993264219208944211586844457509873929599436706325682772000214690988644452013329530065484923591634501843784325959095844204711258192996204434227406327222710715026062542098905964869013157754754058392486083651095899713489916843603230306124566905481754694907953700545953308833295046207204011276117824355920801227377461080660822351284091373421688201417447222902046666122863927580742430965898778417751157653537150282984499724206881664216709428863048561545024996674553415797683504779974845103385414171310846272673088674463444809882990925017778274181231518052320457252346869634876945423705992144602743289773629057105067469546494693134403332758800172040765022019172842576793196423486163136557803936924287583257464827482149634360565788868042341795590773383819229710139901375774413483095756722167884392817249229015692908276774244944267367930901400695592871816731777178420382128271989735890840433122356312102928058305600734983132718966599271878002747001108278532987844378268003295596795225065127289311589851644540639837114292638915675804096166254844364084497017895401723379396224709679288672495596959096587509114982101887851796136064983872958878637049985849454993107165775242451148960841520698125298765210888738677140032858196197532974788338374285963315380110666298048556644280107230760882134974400639914035308108327158443030893152161971118914760922517027951885338448737653505372742082720418505943132589747924002268640206281897242615878106921850291560916247899481362120714063265475130201122853401859219013014447730905447464725368265071199816439719086125754220847627153086655921075100206871070328380876925750013250018761495512147718059863969676997771469257180839607313972357204894235447431040622768445424460647219698080950081136102438303043020821696685346343782430666516495795020380797294771401233847694786878229437601174731502010130465787446345830566948234448591989538121555160933790325971873004079122076710170413735767492128085175177353331174250198093529017807861504625041052336144855265009198208237090895329264814492320926824226798812129114663117697586846995898209122209773543031514685094407460703023104859512803533441674350601004769057880794617798333047742009346875941184864724862532302387009097023225770141926191374184680819461126257554011399942590296709599018749398189514848344156768376401973897649535774363689123288143070472308872755186105050801502179784108032541980240700247774811594407230841877243515648872483725878947848498564383745460428178822740866830496708214359817098600922826717104001652931734837915600021048952010313168611768440639341318485558026248898465941872672306965778025314690945808636497949607950354284048403670684719836834515595518974592719535737109449605403837607065883374946162710162757691727951241461820760297467597510921990024781041127241383775517316865427213672679292141837857818068034240930080828053280249137390482358888955066612629505943794460870676075700405519152867191573002145967835820496071031260770814872821270061646157412369242470657378448118186715834012395762175936995497595787239078056466139110289135202088933443048935316531398191478544336306963099106245432275643177085200700620014830363359335323531912436832090121116193765090826389374230299759215020489560305809826261869363155228661249900628899512991476886952490052219709352751644036238913510610026447052436169301463850137325600414035321731300799010264744456245683757842447829693846077024533500583297418605983765549030463578306528379615324924538854837909103450669890449398334275016092046693834327187108009810931681506167825181575679896090461661637049631951526817426145675494820029892788170499178296371415136025084423423816812110107944877864339396046517110104742656651348540225668647440404926205746206609038759370210153105818077780648760135299504692697914386551637313862965830770481642912578511174072025653106579364188612930702080554427307041735941234688572264063737898919108459255316242240450231138155891915222733543100916664474349137516693361265397157247083570528052585963709068713328008031553110387003399241218188572436547089436123112495585327092340605854439600443474819675721259953936074826615359334681478583871767133682057531981381233679303608939120489439038689583256009220276936779069048640560936944792861407512013547119890829888845477876394015350848325526306765585056184085422266354195134319289375389668456399786353896764032938981964410760375433183113758263663613389085167168097953226041472113700826128403548886437833738942237718945815018223580499867828349114647413514277281852245148362571793596130883927884723899753713191660784698904253175887275862795790935671338752063108894090238941944785424284740783604474421444156077237844912242860581131767013476692082096116549514423946942965652538238329414463539527040716734316827927502410297383569903828580479013245632790427181845550798805422889553203973037359804917934373409023349644227619938895165345684069775515516721251064909535341710819944164413278580232223819904579729307258015816068102413465193292504671868697298174574712191220520361876801690459016108075742609252060960012888931974893558485946243078745339668941370671491703975632114192632855221569729421723412502969330418313485199881470589063324077838414567755552994959828209555478989693109852134716863997056946519386570623832518196612944737809832576294259123736643801336368573268620863575483724634837089316849589338712073339585995455777312270225073193676132219867369541616584086414414463002666190230729948259428853123829241325063749286921823575149530882031350232193382942694346818342182170378023486032246099264802502059449388922695306046929084254471151800843361467995065884864623777000421195647358488023537602731790039858663432383010378643634633239480369540622017575259128307783759556560975059802128977097304239132803650678151645234666561094172809756849757920008648803648586534226453711968589615035723642800597922130566554369112396293450175879460050530384354884327646526587875499704050923109877351143493264589870439548542419248471845961700945089225534703238073934866112097273545555029155025020567186846745010082578619444543721740926778042901403990108323267765543538203425498667460363633673199743555526417126377771772185365194360636848600804380989967916315088024832373617812360107328064492517044343067516911906684558605576349299905773994955416253553914782852278646769050617908328372271264523161434661592325919997659865754416886238073861585209410575675997917152015515457679085141173633392221785097805455375704417392803477638850907623405577152872773714800721965423602011635608132244936004990447170807718621315737297260113827481915956159289059246556996525081805507920196515550457094111667939886946853397532008837983514560349681486264810759956335016277922963702362531593010662024101084509786363156009623493554046765725951661140523589082037569682293544284828194942366886897464540892368676013940359537280249815008611287358726650156316785029736396640932312755297127863712596620984632069123164768770942396125067586400837342954755097205051224496208724111996917797838890880785803615875923133454411188887464163603225617044582300979081910876022556014368011590695602384821157666809404258391704436347925731525704812974987431848618766431364663402129068200031793060097261612275030949996097161741951432530393394138772196173354836056252822757255675619659874456711751515931223877060216599252385250124290299731282045503321204195435166033361239012394175997572183935818600721426518197086376406909847447583028320066716606870668295140042617153881440999196781460620598444768262804142821191460034130626686726307276642965028890043045680219616569181195912749809104980319706119542282385651532048255821149207410920128671494495882478807249679383789071680483432875852906907938162935447113880799767358510418558422184531870642610755960670244388608926364642764595567352324175458781413730727830065247329607640652216540062016395034822859177207426951748114827786401872241507849398753901745293814306620738333038940242851911902870418768055672112339401145164892235724149560401480430756648428639232990835960703416766681037260434685035177695290760984005161304091460930520778409001037670905762399030190879497845720551797231004596857388353162104432961877482151456914404419233915811462764568859738802145907845423997713754301817564575884061135376165067618511363063633994628944869779039519468591195327760136581738607577134340509253627976975248957485683228752025818723036518635606693839435673027024594672535752444364266101598595051812571638218080713993527825516488776857914378378518443885299548914501391610662063182795828515955599240824270203836959383628450146397853709983377789624281689332570844773219844488169438752343652065283403586023051506048874997611710894214470376495908351116631415027453923552995316641387301119643685345199629596820190224130689791817420260137542534059865636176837578232358228709421482372550464116626860295570678917525226781100501431833466116768462137985607947382695478562059064883214526688784491116426833316897902982713096455035337840135129832325597414475274432418921167072797346341450880058314592108198112569105864945266399662960298039068863244605953031929977916388433696010007216072762646981657278382527074947858133480623989831610181714203848669369530113714668663752871700340275189853664051421642372699426399193518897526067932796341994824095815404943263803793618708154022127695024446639645368627311911486749988250185418187274805295830497918974758895244588221736575950807845429826417716175828160374248213427888403109308047857812507841138370122991290120424405518880937476526019779423903344280162896310175279836449815069172713479468576423613518047828905282315661850835063720226892239845485382087021449345852272146643435522875965377516763404473984854522337061184715669016983622339952158937435066102859383811183655789945196510119197494091413282861977123353680824218168880286606987584310236105877913381859886684545214006735542700540241128433966002747757209010118003648128848089285455489576229223233446079807419802687045256645334384525090788900403723040298584661821670289800514062492496433552520131372822795551804248603831796127946848708983620333381628337704673867213897030840856845890972080843512195872689049485338269972119596754528901115070714798672053991922400987465614890807872871604381393368895101775784123285319780428362580782114512494305942838799289677302246609359830624490746288247586337275422937445670165481498065562154549125380534692617653834731926624703048157381694223037909513901088389364528795191194763130737555367490826086845959704846736461871159069556021266255787104908677809688380092729306807682074184496712422157896222549739380127349119368537195966909489744924306321191286111885872784055796068209409822740330330344060665613859917196383804872539230090859016492317879385508492321417658723222854141963142328079946558458500004988738459168162870589643984309793019797285148657290783829280459964406330672699146668540302556303831007839142914655046360509620622313020515892009524015760977142501376298566231133896948336515626785304954641865324841706807574630067177621554848045567746473481903184468314378117424031070820146750911592693890008525317605698800985573974784643883522827186944710008733446736921675369635392864633771829443251008595571732902549816938104581921447043183697659362155676363120560917988469018405609038326820700902151751328755490780981839877133048379944950951720639176954347623618187676834835232738054620367137174879814784886989013941896216227185250343910111473370474302715352200047336614728268900633239467525741833984665342566319323986096233162342041538860231065225251567709911438295500979333554752138220001785518801832401107497183732831303155848464809463596740069904305188124994082556333163684573775131159638061903538582968487958407792571120038368348850456453150962077522876434933633005609471700975248996700842344143138054679798087222198156006482621146482981090489275103819327576604835195319176442937678544233236292875935681605028094442896231118390394451412342686524212715182010252354880078648069846916325601075704895348906606926991619307397070408995357571235124558134363892181034271941034574446129495418786275935429966160140372559477426498008339420558475201924594622408744896474756052048229990692802292039662091551450366342059787029872148777429778748411265605151650703866238192645298218270986506757418261543497353331515154111709419258860813563148087293380155458458322665801330536375454780444354132643326265292686150606632192919716540982370300378666566512426648775818169750134710948451082829314620834481565758943468476933438129613886511850270140944629533875422450631734026279232049925325985837290494359505817622698583697642433632899540151603189245470166513866154079538444316916092845015465684131779036296356027175466704689141912277697328281399848440562657821194299435574144427429333827151640469353979270372525609755395744106230308218748242333440305887670088268552521080491156240024149969653527929180272529061342580158049467878683071423561748312354640455641340884422883571045801811538025123051185649913135919249412265672984435108277801408958515084492076564555215275049912500726021414858479543314602462584095736306717901841497350104874507897365237560331423550181854489895277373848825558258962511468894082915795670397217206786593485182343242448603440240081904649702142291122307502896422448603234791484743099458151695450504085108677549511365498541009778534491499658317101276186085510284326964193407961547841037613731916650619511915416345927637769079600968396591070179684255622594121678574547980632804898737833448292496123410846826241315016994505218426259177957849591355052550875173982329315960124878819581418995997157700859234019878995315949227849248429087706659732673466091897522614645252994279672646624738725465922017975509379013836906208584900849371880823803326849321459049944646994343663678673419981042956809658997945449447962252680954821030531792291853270664651088089281878021170977783169226321851631647758563841156992266184595741559842467384155352200229986564090030931001395729667598872693677377238571588350763142359537267102990605883405483576793452429437758251777961352223855422981747015117555005612005428554341673203416877049100678311172322383634629457156391865835056695977847461857934754053465935920226858021511801581595212106850203512631218713839729123588445857044144023245241538183339442797795784972397459145022372857318570157821448407304982309471894551059008533629215600752283772450757888519822672824103488076708610822969339184812461001524652067672542054186553057997909646702821136652497710526114248821869321547388774889971749131102083598735904677561321744853702848316918123643506109116135389063986725848183901637887771374155533860503958845465010835651700169381627104858306601678963789809506418830739363320551639973811293467599121074830721944613049179524479969718718407493414937163832723026662787235938594481611023098927177796159618396376899599994360193437821176649599690722153773493966511854422365874670332790280218043536754300653706545743931729366076240005114721474358865984444331541628799092491427929216812205866969218817037755741549755847593015815425743426024054061203494533701488244621568157349078967818863216275137857608613665497816212617563180793735340099206747163628486464492612903251727077453044904037919262508030478632884094467825228398217679582205920174161777764760712107460668248823492681832309785781243054723439457282857839014710201785821316475846269208100829506273303796065707825296882670017744109849589047744453899070085114805452745960480078009271884725898056228689700994581431988220660765406579927928806184826545489135506159313254269674713540092436662592029215696644930231409266649949649378780702934139554167738952522735851580693371079058039873660652329476803350033986106897785285814968731616173404263833854360091603241402252257828353010592345201487700459810417986559198792010380259998219371338576257769038894437528807137153169814016220827322419358831054512998954063841939939449873319597788086057970055432546562139792032212699929580829959532769118438925680654150513779643070395499806816701880391342719395308872891426114769368277400743090584684127317437151025178184660241094942594659363563859066303197220888967335584853955772699555067968305950948621485798198770447667023942694141207062014242009706445796947674099985848739186644373878697509167486541131719004334791594615644644908084254382604192680976827746657869947308374086718629332589035147135592288246413996996844886855877804098658636083741070877844705531161299572383967540700698836592191025716500000287406024932336988782632311791302595056173138924946681371893340455014733130093358839566175876913446200962271792960486298814882096035436516393990488966162018206705151494161200161158280470737281187734776973327407957597336285083986227119640277383664157839928568968382147375167702064622379276074129140318242162868155732434971520068274567041015396036043729603666788674009363745012925708791484335542288573859719785814837032819937593970617437448923816632143207353187969310428729562947968465099963360380903417739361657776846072543717577624269383326108357242311867871969733738437602037809629750099752978729970750223004542448984299550139997856207482137077107597738921927604342450856776128561410406264866071670859639431445071054136190747766383585784744957356829135664696889460529412376885482986224033018118802530950241580740256758767829745911586973184431118401026063706244318792097995409075620801550638487369282246097544949997974234749955616057846104967207709398139687776646933326203168857302381378474077798296644691987660467707720317862160799858750788244969631099646342407013572956784833402743791399924403983872607240805174832518709414118186753085365108643952755481735753840299466399140194304220343572211390697681716141629643688640366062132047060918547043159878520875002986189066492588685764799108007234708116531990468979927791439923286931448726221130327028663656326147476909172688186116756948282841127965354897562401059232183318582576398862351436029121613156912840349571439361448642478435007501413936179210251743687476509347809617903332135456335364943156948524390183920747491473506463632888506639252823751195103072671053233564346189207327796822445355155606812185945932281431215184530800769342252199837218633595042710482384941066887157631792445834114069365231811819953651736187887298981239811970481230649691401577891373262858327196015636813541446415487448354354828362478896171332475730081308016650655027279115642210645844035143153043656445736763692966621115728217226906996112494092868872546108744591816993825597611730325491245854010032290201045536236120950732580491629230949772999848537104904225686191785810875713348832248877666735559153296553965980738688326880218860363771727225921089871705613722065768392814642584087714055084048745480024958760180080221258031921577088509063251610233826408556371538672762582164239495291451330600494262590408674676017595146493361154959549098306826067802801867644320871389819904181496520109945026995949366449576827662575298813881461168220778607608049095619839379939672834075589511185524885613008348837860531993419551920648779372307360047768301824450533987349549002043092730042765986109377558269654539890374254769933373032920722270712901514936902819771470938588869622359598760192944916692398955010897025652593305865452768119913933735851734397947691622035651957018977747612228639524066762973352677556365318319206141035926239453679393810371752763903911176663177491172515712166680798926071824341869421612789480097093423683694951065720328465353266977252222943857083758547032813236661465431795863078604778861021713139326393522866072886649583361020044422314391288509307335909578765305775550712947466624618134787138323128470083039933093547730660113162241526212625561967072257746668179554673055689956372024323963575624371669486034600402603062315121093527476130806906481359088668821568639692664383542794409792164243125356203534913076733494074945354974005771287140007866268958218186853527077172358235538438864825104993530443538476717671905474673083270222831174867392855163951545447813038692560644188515677409253350315496162788401109341953445525180720426071807180583927380695915771261472821061192372987203368861117596517255865011957333394590892930600344750862887369174175658440335268320382969859205917474058340686554443834973689088242738778103116162702144620578242921951670921481941606383879224300797008796508330958576096038801483520319898183123972951819981990043904121711011170421735042857201697405576850802645554004968156262911931929357362073788716980400029063377829312836617400337399599605591560354255376067530682152360267302850222639240196005389575513835545674787212592111073788863444315662336103483254903889171074282923012276090933366300056608067969492479352277056530855428001834723158988226017299429222095872237480722997474928230686030283759064529079319748005167056220157723367441280673832010300751111726924861362455927331444637110840040805027882103000490926684823834312531649998063725213983916879825103104432996831597391519679746211548481595951050931001740397303966618244485088277932226127557022583711562665764864024084603876973809857555529072780962530949605747720968175109595724948225092760286969748245865451813887282764781782776701864392894798324567845751608278585702395108216134453805136399124641357079909771885700581081368364646856550129680985480885802231573008582168073211286183636104913674197298784819428352327787764021794945615703724616170555615816459491581403802682809508664093599920289731712999763004945019831907043000963376383089338815123572052350375959202558448996390883813679263157997965669929286977333153367865714332928997014338450809960551780329481971533925156250468464437982394456373345739064219742975464443348725300086000770135586003576755493115557665975581875602073721616929266062090574475678007565464602273295180353903452208221702225981438477180182217107531770870672084304819564840729140544806114321166386136683632272455773083741048349226600132483860547682251036317711027988356763991750687152488759200549137597350973108483704837468413350594899220455719930837787130045710519389968612778909989747604761867730547561079874986861046085391474434515955232542172819604491567575776414026338932250619232525782773080340693740867115714455644265309163147178643414695834634418773267610000502784101729560478160289254870281658809604854200239083524445456400149491933660021765104573886595951243628454553128404264758480100858192059196508056248573853340496748333634212062896858612145006662126858954219939556682235260070803434073129060439579412063795948835857732257412050013810196273053576675977957346769416733275282319885490710255995971140021914149243761065716052598413048968813896313790384695467797789516576735128648719220660075375764455612876273905775786785882278923020066493758106462486220785694496502859126498572991064763812734929176003727745905199736491342817613292872728882288891436493322752550467208388342324675099970974076204825548505125262706514768800881930879205163864122804406435249860195302826322286066188238824756832582205054148791365392868917629086052132082654400469382912274358041726198238273048394588375519383254025611877360008870581887699742833502122463546046839952917900953305693675433959324814142798617662894101465247830728280761931218064085270544131226427705009362040758098504369256396704752115494636916087244173509560326636854939873713962369540462722394852467729141387788577614307807297432568767125128495915704921339778523015083751244535293719740789136964414107611681234899127685370287593919423811773823440788823153812190622749136445978598491203976337993366496046134996161073874039597842388929174183536097959264925424419924600019956191694395622266811615977392391392591815305201014736120273920045820516740458717318834516668610164103344030468647555155806089997049583291715318719035318495628369563074113588979400530480498832696589632321815685656125215169782732001598818555828879753393017208014715745133060591645518599964253843405696648271610374212689075441859762950733218449748099765929804693830002235887084148094118082463297527890944676077293769307254632335476096987413286914259037686966322905801911248224050331843472583720431295606808802741755620449051232061309509099450802726633500826171906272495707609326199780623237319696817296057195256640961078974559210316065613945876068374701551082791211634026306301082090339698751658867239061082632011851066250733345982420790718582101860477328237236199919801282871510083069416873730601769131347877457160156726678232245282230134129179906544776688498192295636555992881688196664701062329406238091914598420219194828676577071845390110888835807238417051841716342859253114348074829284950093998246736414045496861678284571326265208643361120492229322858294007064328428146847968250457903719089159873665591658373726238886465894734481008097421223521122677747582960297687423841880394682660646412786381842727692412998535189870565548969460540294565168055121516690390877739949796197347699098563166374780965074809468552971420977443877391953788214176735196202826824532854791462690475808911432472157005674460133009495434705365490938541818476471305473752543970654400453681492411656411538827717312351940786863877230028847132198423641604177003913558672142800125357523795797063645886915762140715345338570760985178601461623974422679104797199937333090053425733951461984932126642627151794290559582628037066350144762405388500458478752848287787038882336355214652738392136768666674224127178857370814864410317401899125939667422594121891842360607310917573562477532753414240736891676820588511023817929820599344100160187385048197322424493135527869365071115836649798371676414453567462014508362145084365662612085361425234799629815856145422741764029685736589599187333846545322546351867096618237753479433900489013823011855477775341247241518180984284252501214621298075125209465463397988916484593620973543799232671977948413306168523329213672346799180472556940126597053438991548026833946271401845921501719748287507261668201928632746138629936049662068381213781666608695716919921393299225179510855297664210372496209506518455099750358752343089670716368968775601530833541965011509345115357982414860582611040350726115616842715903186686998107091935052947101106792363812434881510729598777658260164278163678913366076809497142114232848587236371078932325235660218922859754038472725147867234927458343105153617409942488791421284168413664348826023612004501207495601528916610639635865423865581865707302891373171474979202136456467072547901538652426768909715700966614101971200640702884629899989405648668303845668902194385585108170387246395719863923114573753342514290984451363606677046341348803355762623505650527027737865576770421938784774298530259878416509886719671509606047636182280091456846004758269020191772557329686438024236234474602029975183194990578202739149360058689103015929113170150728727148015344848683124611516962087552022545333862182635926580550016113521577436816747040737354464011434514022300645515544103989599712627618077951516464018586991024981205896452429531830838359994576525051861115923207023689704308688604640116840324895715779004357695584398559902411392645047518635177138598362284994928775275929052608103643634542965098943602955434772259614151629554103000620218012595011269371256337822864260187926588768973660499421412343375388571398109330668396501464959789880021351909194129908427411012221916705243390724313929600074507562426052467227887180590267610456792779854446388193680209000359175939280884955336605641872976173875011419779373938187861102950708193569139348974596247195772243086965572500854723150495196033107413660595199212659163922746917603189048744329619436328271952181908902568116198593277826415483215124155792162271355046486765074345788631058770281315966876324806684580295262051793816191517119967223124565644445231458177681112882095267670953895466373172340900720102897183116495378337475106233773167338731254757242327360769777037325477954012634206086956989699081906089435829846109229803578295878323624630918972554167661629358575672155113586799627080056014529840521989430443756063720051855829495099613352747133407840642573440534226669647162201214882763188913923302997085308952810084240649400923439206537137326209614297122271130123928533309696712944882627730008127934766998848390704079066621000491771628930982891380927712194200971576726545154937671470294133777452033333324147902383540229854171541981334588714611390987813231210831460914797208685947363526491600711956452485101950460220662728901419429910121382847477633181286949282098860867180803480451985290290817969530924819015790427099982335692242533301955827244960106132493545941795765639997923371526323667574125025358153288752848984386187528147338779612993890668729127374888570540360736119872556821637023090374411016035267063965356912855868311096955247326557423524303684732158551325310640790978987337813289959410066153028104913926520411239688034087510410612013091098985969012734270289070638072186216227347909242722870197034924840721925850270564667634105375946248782583549076868761979332646753058189349278014459683979587207416446518528388479041857826925427640336736416390149024573664736272099251447708563169932255721287654685875588752825783459429150383321198397816052782715601993990065452201529213881949053257410498644805969117203721638953865170337841695260149418993105213837991486198928918704553509835647298719588174025170617965784313763311272259931180223507677179308432007988205963879587904487091829912576720388210183219722543501381056866847570465369900453676595211369276939177724737876672341985575896098240992739104551400669136681950183217846806804043106930982016558209103155291714750075899932160607330078562200205398292273878045989729286520339182768910211123573684120157139591965025354355530609347524595020454941745443772308707026904717329402521115695936205344858267885937689117134652883624330950916947029073402869407480077870141947109642786438520813027213969610066485471813844305786606326569139989509189442216618738930969808565054861482572815244687160298648340420848309608563216646570542722510395768542703763687181782165199631480183979275977941305053707202589382142648851458927152123667965435751024491065415039594540478919099127974981042502166507838337196422615436686479865608315235374578921719783637444387388343336097057453214223680667301529332754894862162554469361799425324475354797172219872455288450846437830846525018733170904187699913835058692424531266685166028786473792656061210088277480290498352781433917258425999952351002515681089412651822713815152688688672486019544086935066059063841161975176342080331182672679420316438083679170407710516802466310179788590752828565627702453455216065364131408710142248392497962754078424808960081479181805985431179508000049781206861475193105145526558612069150583682664187885021587409910974035572555067789966433621315987817104945589495490902404639394091797985512284892320254866845166242579336154813905247281484599177147715827055876685321169907291563651141913370150118302769815806103388628896727074856440778655521135162937503625411060249153173860510149895043475592801945799386903619258316171294481367940951818921330897887439994370708638719067552035082689714564258328964937156222263865814705079969584873116276747197084879386376912516715336259501924695463283614698365495899963967443222417386266754419718252583667795746404959475074913561105018982498726875347817627266938076653404734044490046667046856513232615918619479983271923149756197385915949479804637087245323542536692143334955281612594334236635003828926173415211805721358026945955752213837159897180012990781470496528622882613918759372732262373514601867948560334253859941892373702963554826434020454246016492036125755257443683636939720012938902284481886423143659975228539864954083232459779844714192743948137336063160115543419630455471088018211185634749459601756016935230815399816339889132614917923983730073508430624566809243127357997186490238854535348236553739149806668505678775436845656899879061077941654383918931543750104468674244291129251727833081121259497665834905205913954954591836022388967588019569318126432495474329137986973457814618899593673694691490576561732042186757704944898405192376213596579882018036944994370976673087575604778999224113490431343824454215155583051899072567047797915373588189073189948249626169926236649093960851678295575125022696162981474044399735137219350061553291534497279960382165519074913788150201671202242513218043779449111865188715362811971225567114740984934369432827297692755506955665023565407170083906441811049615049031516487331574125209494020856557304965803986155797555115840131994107002892943546628947398064684093353603997850163119054403874257689892122880075424226397508436677376327220662405968940759097223974524396501656446995039148351474474321251685635064727015225268158021578945766225926293369519596825997942014851633144854548135868062389577678537541618713754016703543689857710517176554733568528161044144612329589241390796360000997406433657025617263925555763010399229727388047050528180994432331179882020187671305587557659556764432991419449500046984840493714645054255837474310784760925028349516896992096507316406726165855911029221237383917625651668546688208054694277296460496751599061937917418460645310439481394269211612126424840239225772064571342186683135391598845533434237608453450023356886244528278373295086168982801385964533922445394531451607758357427924299526246645780635170155633729977798423823541415151641897189009997615510104146468127633860832735950708201236111512162205848711996222169292005310348525762063072723454178061033471788275504155825956210904733233974588871434401722807223918823481924500471095577331722983688746441808474137643681069345629285296269112773063151593260822003002926537636312624749691827820137656846615270359524037653291148236610972864636208408354170986982352233766297096834119235805079903245520144271581360144370870742855352430957787869129952520344139724904333111215863695299639083218919111353088957065167247782535527882581779133592229080114507602357905924261065915059590888261872743096755118328900888992356343422751773801296980194632960820042409521667557631660973048544183211189765626451959786808903483651549132380226511875622594074817287359629183071090968658785856470397971327369929780774364030853233022818060457654576373055803994922581221353512302292116758909766726175136867718537985214470834061177128522917123351971815404514442202122002752468260532869543920531508059868809018301515797736052541667635611478863153514371507948853248957907914895396921634011400708852087520331505200201369377949384355277713850742532638031636518112361485047182408017543254865971849190909748782440718648533309035150124475106514835507416574117139654348639295521539433290438577935521179227899530146886907970719146001100801458950272851050891125905405974922116526682843800463278671233309699001645546465865683164192272641374434761826159279464909462922378674655247001265951588832722809554350445883654081293799561907897108601833208478232447134999527122384197602317793905291313508072813177141526622031541771845730901705625555891475118258880399509690169756197723538573727975005072027862049642397646113387763635539921989608617119553858795181946154286969356291133425762082803030100983102652411825630775057390498051922236953080733410982172638347102599976415829264989218046921058276424114546633356044530128900456121580422412448186877247126492589155787094647714387196067070199248666440871014585989457734163413531839338447888523280761210077209050661228715952549029925673777398741884180879758263467249483151377685088143434394250771313327107235316719052656094504721863684482167625541373611184584875526148455407194706234404615575788049574634809084372135439046699898340453304199663776397967719693508144359553220560663412205687026447346151914345400649053497446056477824864717138133373252498620821885260986655105589412624433378520804542956397860162117940473939761898847311078354577972683544283763365568132101606780863373032801957299336397963392619150358962916615172175188560198170754949983039581880531076048543319937545654011311290470120243734055232372301158896424623061946755304473661980130161548450707770399979786277734797728285404726313775357967596348201229325750338887006490035075410660143237714056857795964893932201324302485728797691264694685561026559221127481530127690307356549890507476148554106591846358772300835254942740266723737388055967041481045753158317429861368143068330764013707782999057677832868599550670549813953741872768525120292794635717290013643266654439192697398136346803402832077212756899853427803187661898617422066030265258033191220455926941796954666969904620789471190752289139304326005489175828282484687567521735332381484903985955108429687709257246174228308376581630384605837534760291949836928919816235014971859718048281371730731256076501050419120589649847411632467289773251791443089329065262361950569953647719970540007540791486713382473068874681388436425170022102595596183696979699590610108463145730844690415072517108554696089398014774169295967263735625952333463663300929137724569468113676033219662331278807747785104896407291255009079984804608694395370774262375146790859348335164049753510775271657592585481787772694595212574658586855043494340528688576697839941847688267942479885412192144740845161932541444122241314494327353990221470956099940184022650192273390139999614232667596376224112585046547353575320652040555456688769319146666365224021422518160299547303975001292682092009593635517732701822727237191250654215034261225459229416281867550761073751801751782198049914918962407018250228024993122265290967765144143237395503148795928047548403609618330441608071920717157083265222392844634518916170485155138174877728112238823442105653693087013660403036688914123733870258408769733478303046424637437876264519616005659426783045942709922841974174570707929541265430311618227190998676555201268308670664577964953261847011313584434736661067143763428798073239097042481442925424643500761208898637368304371228582619122465313594540902522139522740482776729909576321265634906957443936418500333483538217754891316384351322176427200898991317241040316998042614941181897592893000507727994585052630590087649029121395078823923359182788040798270009499618778793620034668126344373340592961549555576518451703229273527898891712540475607951115768704405630187773136888779655021318481619895987318014583062490290163310545921983885637824818701870451296520673067388451067539161881171705646136690803579100826572649909412848806041192317571001835367846524187860197024855951599522895693090800709785081865080326931244345545863127013708659111090766205834591163928739760426420052375004225409614617725776440638065961100105737850448864057116215981408885853478885207924214099358165743769235278713203829085698664713643935502955797540795534555856023151748567416501139887585339845700795581136859618182043715410242215332565810826388596202715551874265875914098394599631302834824905933712830746800076476646098747551515985814510636564428482693784258296278563169241174314905731002581676161830884433542452514498902423377488798494355266209629548100035788638288166145169732679821877633738867615033538062506273260064764104659100287277493392527589190553392693222401226973220743751250440626555515875212193149154065964772756582540562513397309275630804491817380500323273949497539732296853610051799083369389974673955352626605071294148568437499860353986569825164126850236662988142456629500047673234586744575072652243029113226360588332771736260135769817122209678733035324958219837798344649457565271837972902740703709685561324946835237001294734697659739363813224399959697566716286231498678090834782878886449781158304644979582530858961114582667348469548037360914386856980207594990156794659301423007428194131392042936074182514199493992781767976186122999389389253122921830591073807102766594031231867705728247498459290184994699812090439210046621198898041032524359068880972462794479011084247277369248059785525170743591004709238490493730087773424555113266575316504273373760188036124721746567612368018627102258871012482906818767104947229202559047301525315064450125475972846273515078618544965131542411023585601611988947349929341597568404694063938100365353426808517048951086254215228031586616538510834192347326001118629229696366017934259886865687753958446097828306812241636641686848519159520881660336103182856506634963075497732421170508121486533284489642096826505318351172910126025863403369812591165135118864457495893774717883734873464372889932050490518815267859741406534765430869755493833433578245329589966099062938671070474046550350677946344179307734545002639874403946352804302889646821250356836063015426451081691965644070643872795579349089923557988129555223179770629105878650545061946081123189866787747323472512476429763497153140185115035657623580686715369442718750147030398707296861390597163361227170450127596986168283563688327997187617379721457391661597560331814310236360550714662243138892900430485364808561175234729875569695121574957022163658429564891567969228773378798660244163519242205421279340301141224037595985745473420470110654201869589464881829058300999771563786684114958145830263952400901696483021218516340543675747981925650074356280901666794047472899588811641180421273331646300388541825441256390789683384011919221850508323276621642357443149241510287678276735319173829698272088038595266214441275718698597869206275731237317652839252497229089985580454295034377813937806327808867639527106979549345517306157246969695979345633631867632463696929368139983677015698804877815316123700080583320732962741621972975496833933658018852741423361631026092958238773581215247307467149925061565134532389157082939349852664233224770061554790987553133834713075052658808136563797538024904507526372883158560211735276214143012468542260344217921997206185753003213834742633427495677424130903032382686090675469450353035465686292451029498130968820913582423707812237485125586760299251776987272157707063084285705614039599104432269931745290411380176687109145815173780100629656040898955874812414802232427844269552387036407293043716262301126107919323932183164455391763148034137664437197850814696253879059819142258021408401142241941627977083805000846376663212386255333181447231387107327754398637186140268250312617561456772142594835215934377292361823784191379251901885979495038503153702310388743172291970823637735252314132763159780210719217111051082222561969888753881740375860947987112251230702998610373737589677023274877310148789877532339756670860228722859638050184666786230807634676870387401742052473433567437649213215276127433761853990458391937267833072533812123165034345397350812737742641204366763322389122497367761299773831730899466859627972717055533104037468788614329368817910326237448067159340627035263755561314842259517362791264165120942583803109827149332610019605844787955402262373180436595495467574430459649398199711684486716959283596403727815319876589206679176409419180285667866893186042237935216269849391261162310784483099728949475561920888235453991879554084945169951475735411184917667223273740422664255801375620331155369435222568131148405147750644100635887912264596859453658732835805823821609879929296142457440271416203048688683718363283445868363938860210127205093170857209247739523889049193883939658280040081849563657571422302458362724767125723173072335930087488714317670430975687184593055868306772529323375395871469625488123860160031328775191005902237052834451668551847434668542761276963232323126496427861266386341578135037323570415853485628167304039272006379025275318901764802057272745781063945118538859454845609544953226332279977486009665306314169068053813361879389992294420168119581843602090029239159335884146946482554151872096050823216190195485559041708408050831926157735211586149417525989138329156783018949387373723477973306670077767782795716277818093175352828658094117464264405676356904307404083989170271965166882644792013643762737728827800237108264506656506214710175810857701011047471424876341885599657714851160425828094216071163134331292367248153073410416047874426103484961628208181127766992125555933452769783249866024780076601309661296606816992242631391669801331980635243104108079362173222275556076745550229526105971313694319269407676751158261761939548820900029921857486104178226105755338374102245278843118085946760642606242051417679814935289279362672503083586628333045285115877880108287733749609680840716388219286292377373461232590330999414853072178426163486024318081758308286751485623849609305999913666801293250277441956513643819443386044680794854153459580014250254891898136307236379221847303080952048143833920090655258152117844535076477927014685236496685298633810409413984520006278765983814672064459265417139750777762548675331015706118016951466474617616650738501193488268480655907984564825353036708798217197822694074305721282611265817174613298013868856673885010759572370043461492476209285349911965102753775375103758906577531957613852835270638954651018477613029770373717786356234109918625856298245822339102815777415715434120213861348659717250186589424844862529805399038963369487292932341511885896902593501221675227779500899476903670952892211139573395104798097126729811715961894507974364924890495284263993090367406818880682550759751803498883115983032508318024522299239145247754810801214531338242212916426970011244126111772818669919254106325428427932244691593874224862530449850560560634564478894001252615429558121804939868726163660115684019157770903840401948773659843215140620698108567909601638177788417195996716190241677506412919265332101251840815321333620818392555825842644669802867528366520512469619406791624674773576044505775034093566564829902999584125440157826709433014016172383946183335301576079569290353770215639174941595050601104329146300482197289069394014570651229449020645961749694940860970143038877407993276964168990447891175444406129202643889055503379549309196049337242217930815815635445967669070655067095174498450408086018763300604109824878657951341228599694844733253477772931818625633123500665896754626872698217390533996411507799455566218144059708734393583067043564653144498212837759605315674272468378358904529524040167882177362486785170830540092021909926169037613181671638816468705101918436603333421266183852932414507268179287313654356916242935506760991804059340241795442111765532609789275110192228548546315564561596721694539223011507411210540933299655109982991944980544772986833081646627203323603549374241944185948029808237166746748148564586820541553445864329632364340644618791339124375801968523242425031351362174907050012478498099916825506692402260250506464679056635151865551696589655650162542434183973961025762683779537904841416715900095093701461305117325730787118241603759869285359767214450767457061693279062610525062116854551479727202259047057197268527572949831184448765595139437001514333925879996991609458556485347956979989729516305558123352640256373393865416053313716673361918196321458216881751537875954001673088873569220354735007397308053520730994432301610609743142958552850569073832166839692620226307528562022864905743207023235591530816446820871717767933046515877757185893458916128013996228457826728741355500302488232213459146204746208603728082935326415408182604686512183270969082679175119595892604628650231270049126451868944320976222311691264978557384647761795222095446706046912801892341876180059345983890557008036624857876356865354957008896505713022011537930233080431665265536091321964263316405669691784914734474034201828960704414606516329518088139690737641091536919669793612102254583891668085340330512195134741266796159417290461794616673660693916135640754173909056170403189952273330148358153521410264751555835433055177428917611211356702857088746409330436798065564654000509878766284517921333945274551468276654229973008070599106067622050179512128204977987474373381459003193683552931020314305688682615695150041645658072468269065521275803141091745663309882053502237222631621515557718364351547887497690016202996501181785304679409650045060312558334649681493717885334910655635350706757892408559099612668095801508240609230329102692868091223936238876190062838638426274207953106712637915781907429836546118181362119988507441876113063240983787163922238163111696979454524488274179333668677697471414004862480883901129670372200074801087038811310543866789818342795564673507319102641386777158336388651252525606038516096855634425098847040232767068197135946351189150220772104013835850727282426391389333452527575162004846887809700309999849701832911242651229072258739959981566947968362245303132483157401581682756263141354092095475529115093387520111243160211338576537816229842871053734699904933715884570017728513825194186592779807442014205989683385703656081422226765366077120826263602089643629258911993232002074582936058699716999471520213340752429485527758649648851575131993223203244452486887896094376342129476337108735146381339735733075970631866339702636133654333330127741724883803071280210941546336887924891085532200558225353699599279228314576701997530654549561776778004109273279041973918847760270327276893974695009825013846747414621855610263424741977734854969491065352524150685971551642800168963462887032434798941801645869614778023170434904462568024263163467604047676374585437210145388277792351277698943745388819781053214709175391574535296061754579341991796366809152088370812107450656846732885408367994973137004566123932821960029174639811981226538519738627776388797212984659114037816007654629919806160039370249493347141922484509624843688971545481605177117985452519428296008665168434378769653453271925136788863309124978625631347725824988735126081670253461583494616266309575120657625492012808338789534680876410023299725392056507670348128140872347346615513923113772985201422275619934943421465841135308610661075065690186596831221679051302443244752731534545618693493837597825005956456489331745052622433527211509976336524346666395602837041215761573002666774849538940007529618347137077385972534436815328954735005693958590146718139462892315929524767232901756046532164090071434825176683326471279684522560060800463766224388432677638471821821012434276642292809374911877234453726076215056146430031897059741360345436504477827517311907513100989684274489454993762932730667056467447244960771935910241242241307198790747847614834310050689481688140002047562073827570377143286748272224416246182970459538272280324298520788308765013986726522227778568175723293073078731764738073211620990350680949671011698420925400192445939459292873240399290671490231466795689123091750505808803442971248300238040867774157508496975454675046161331258420130206335486318041947296099491168654998821887005883958781595843734849139716698417273708671784455941835786274160879608593487724933098490042582311036390447814388728008169528538063829031919247186348790399484195576378780663683439657791919873011275200584662831500400634180543392118487625797663566665645606559861063646508642339544418836412971311128371014723653054118947524008008808864976030681229419298152298709223126832568627454900977423750212700789776173306189429773183020979182803921986667507834664391583323853030934901664319361246010059869360074142957509251421103865403349579246809861482787246239539883915807102099245002997669954808006664498697730148009114932939974244997526510151494634296767529615857107995281417951525489493188719421895974454227312522178332780714508117206790988441263333661660579390186348706222027709361834517304272055250478399874254984796039567619321683244425718342488457507019801853630701712073115455834541061994887061168513126749417028670556432250444311237369990167040049271692085450649843931423297956812702020975976364514724508050903769786831862354834173779864691477648673078446670735725134158354780177492004755840116363504692188028787117479870568037880930428647466998133710309415476919057823680461060738161764794571905648428840534541807739599697897711386862933837255193310541334117176459423064508166649027267293341761240848190757207655302950708261076347870431548814287053067266052602741781269375606739095929657092570333794331538326963304874654698960191415560729661056518720294168249605463784876372856015915326320160798196619839179178902134995207296224528961638217180683902776414560568908834617789092907909416126418183358933843390997212305557442476827617186121080771960478406612247647857027274922650576146356137589149437691360946059127377575954811634517588268543023028245722717930985886733762177708916867889103809504974179249293226375249831354351480880090737404817254371253342617203601788097125546194104905945336763900277446839673006418379584128454107401471097395731456321792843999574641841246616210439958054929564033531957431206325457042673489268640087209644789880190544363323194164453676983446873778969655189610781607506204063961739913285442833829324010741149465923126628766313876420889914255067066295162483004474243219678463837543929095148488049649599987483709430902947603805085534641557181109838170741335034625164482418448808876011265640937237014287352094114866547227064576191062127477477347101608661950725901747716156664477434792741679514528127962275632090563817825018515360342812355301590014144882803403748629723772715887252040754580517079409371192051733015929953772378713095765146527505091275207641001174046587461861649613948505735638240084643641987481140911935190160237794676266695665818426751246645949472609780166602012912005926421006309903879776277350359553037255896920755223667860254887957454443452611219119492048349835597815435126442515428823754849953428190901392001542558770910093346770195935498500780779422842572830401905774551993757214348675607130452051375301445613408067253682550209993463752315630608611503710257351460298455900037602624461917837883609341907241053683016451754468326852164578622587901899838830165442796829495170378542104348234572520924923545236955977661312003832270079707186453175993958363664129728487760142295413677230692830034580335205368167568540582141864761505108314895347932777904229541707271961286090121498502099476907557786574028147581543304972136452518502463533757837755968428192143541908801904561455304208052650829102370234249987776107049480696733373605814804926081048360672236470577913521996242980531075651465879992404212785631164762008984087452355828410704754350607271995707101561882283091621292459172436516742104607597474047816413157583881110973362230147493709763878435772553145468501070995254841366812516614497682482924982596085611224765953114850216916824913614222459296376914041947357373744065711631601932684360213582017955517402594908814003320345097979277714046666226641054904225790437444927010397921101647263467350530934712274627898589905122076579987300433849502190467475824715561978593214465373375819096062691123665011739773050336861838874777217338939534790317732943777378695766651803754479515191717362081947333117319508849686007030342741037581373749006612019121309292997792670750855464619672319363998297889417901976502760526608344782448836686484494060114674232331144905691247324943698055985432436559284537155437293412191896121568961408966623379786972115837701147082051777469375169940172578926332821454218971747349487110224884768909139967052368581041170914337810080420195175017870148913253105240458489040421933701608022897318619742943848264126273603970591107601077618333314778261692808316571911136695045118395127985658291358511948544076254115660171857690108760858416439336284819310674999921786295749060439067924296806056216511479809570407915421551459543906129078525526677693436330935349171210382294049237628639747577629298864446360967392761923876231365446513103810798812499802574859299281750842173846831590235402221986430084668849260291341061236165617350341455892829220674398212349371445093511001062775584131586297106485480117278541478685639131617879245361516688202876321023567406658925128795038720503501390858123475037062138738400207116638876076503566371747845445436612397069688914160350700593534257058568755167260893778221901442228326061301003724483191511603571450481836512806530114391840801875078629110692417830106821202519677088835449256257779683089588676900074269061419699217685208855447938798999003560552487686765085411639169505080516482723012629497032239459940615595879140232269249547310525476791090568786265619498415824112073083843158367884438316265997777896526968393305454177803781758920187013190714510538113682336772287910633585059759981822638337349496826118990413078707929819463752212063076991199634132972256786608242925908558586632251257243306628757756468619966759399422283688224836710051281040162678489388237856819086481876818645036890489797363005074936307112255610540289512317038630811017095879835812960822387159712924391695976932924894019490485203644588827327883586910722110959121987521420674981184498602362451940754463562594707168557012449720574965647283815440559048381911900003043067979375438399115791853921706411510160919025497256986148481911465817342376963944046346014057416672161158317340270206435440362938205924515473652132124380343811748523750908147730956479972886564506122630737952615714659682086647575019231177581460583376019821836679419384130012865155511026405943241616015768529267643727455213485758377764277449665226364864900487629389467356157876151404174583447455022436340700805432171311557392763223439951406475493585980037850545352161808724485132057670598653078157613339920708122144214166152675617401716327758194309492673985292187855955779299144319255921045214584316153715237192085595587758573569898123723370719087698441164488208373023411893943291804569435352681454539033281961684655552506793812978104121648088601403776130670023923464500220847238766647111939306046645421946045908081209519266234817808816450384340140310210193359841838594619922818786150305223562100444210249411175962263010783842070811412733313761399950830453123035431360381123103981303547842678520139606094064775163252186686893127801101260699661087721380925510174056301114169052046027456983411283443904808109206059397004672417311835348072859069722429019492622572712936256148207410399279416356918675325541291776662940698785766706581331763967448471785800079644509944795693415375601662300624700211419882782709763141398348499206577531494550522304800483130284075828108733547126323008790823059491786929180362720574521692104148374302818206430511164433260750374397063052856301766680247148178361556674425442811210949808756109585309778866926076011803976447842082299016773050195674774275710090944276794032884793723754402543011020299060903654879142708965188021966805139955874676528958279592190054969593326512432645432528807052715932320139526383097935345414076459339975298636639530134338285167758038515539378334572835479435476173768671647261220309004114182565025960471760984641146413370349818603363195493819435730582672863319135675706752570878060390950911601439422870851755963494857274831494988382757110699343125771523621806717842487674907277489086932020215863828702860469888160438317491818426500898085550787610630080496236174957007736644223258212227756252271328140084272143428745878108155754458079367025406681257808599107276179163931905037927677139355928259264642700935272007734441574259150210014082102598835200385257493216495742755808711837998715354987729154547773749326330632807205280392818566294419773603789034945970702439794216257428852677199936067795328317741314263988238146399225615457164200804631211696738698706860891989794469470904309506921859203908645356411658971011875523540523323250038990684400284332106816093249623232034715036478253301555355790872239228321196967140483516085572385987422669048675685670497633273652565152969187204022406132845048280162996475083486231071527305634123651816740105110878676829156427562297278632296186428394069919831153597541616369681772109280017233284085227717808725105585022762410792684272921291423912762055453171623843856145278475313553969242272429917161230240608204061358978760958059371943401431681973286123100026663432826931783041175122021352976515313410816357006837436888602035768575475979069399729732281249638086705649330233735090414721501713976324016781281987049607572569002416059342944890286793835983024525397797781783118676064054629212676330912570375798351783987425129927400280410677534892073025565398683428948113867438133795859447089953264142681714417964546057539695847901483778619583342395797544341595045626500070539407319321595231241555946878478913330416856134286704662784523890682690482448007779275306739390239105694978205259434349703675268686691449606325601100280261224654048035358947474819674232050423824432679276533874520288410616456883448411871950241385049645165176692901808481574021047886922276163228344178361251373438998456140221815599789643908025493109485420200111686940537827117238033704852814510299138056040079121718419232383008947348741356637709277091956855100233644801060881032701523190282312036207420530909464101775806753864499144031992513232888330415500994107775009286567138122781602488860081725464438535432458072751114232504389242910174905662560437869732352965126145773826168370239187036935563647306587806996151961777712583080794823335394647912306533803771685166072636208697840470976918957050643424623208746105824762162100621239400383336145101210372532048028649939522789774370072991255717114761849526322508736784222562838983118552823340861254078763163837587463144200659085672998198385420100862396355792452782952902111030834989162243761851491788016900655809171109563557909490906944866536537393557869971465765770622027644414817562213088493882124348104686383640078829615316696825971458648334991406788623401356923100337724979784814067799255953446797020227737535808883592220797914388491269699459484008864180791375711628617013593135304459147707961743550963523964487786591465212333913796148714930274292592393657863012516134317197365924674361811502896012151470913334306204364159441586181120097115336949784936027210609878315437256543130382552258035817857274420025597531897245400035245995792900478754258000806146284813393445522243673423480245816959819670099254416111297321969691598700830845732310236215321023140133094721680840320589072496729738640648761648563663313811705554919822867219024566647969474039738802634811819993107878358232120035685847876233634591602905656673388716485712302774232313508491949260050805661840464657297980357389257829392080187631011526527207612126860414042215013424431623503439915332031009174265886634223941275647178245618966687446498250373998625184445330661511022101946228664757948117718503592085115823741733985783201923733898214491090026971910825499864510521037057153714808244762905993956000069246420527167237621751367628060392213050328814706814588875282732852834295399208421238064167064321861867290382936897030806472285161654344269185111576202314932962768950174994572216191129771269911901369709389214927908601454846642252507305463847863182159438191034280104788693277525144489910326266112620093622755588092981464713911756725886154752351774887245778074286947074470159058219966700681770920125637534555831094970310830475839699601838763789069939639598588033278362110743172480954065782227224068974498549553762104439727079845574733614590519842422794320318886330965395420603814037500823866277132913666250617466762439829061486832309169456365879688485517015302365072214964332599992134664804099367799432677955955932960616758832722842078078024796834012319191757276811155783511432753121459982677184362826679886644187250476060176603568162848577688668233051416317574442632945191878725022537273113434688703697394914244064634377608393068203599153892059689401780731188258504685165836409082083539783595722112584083851861692476504544320833713486552540338401910967078820793178958450122471620344730103244783376234450679835199069343594785125957058607785440641949585984833191680275480278372909786068448402114265957311811116058111320969945338843220338797231171952678178336443060573212530105136553714408350666171316080838844390896274920381696604947690244238654905310711700283832809646872806642600305859790949678184856449626584424060726699658193049819426994498054771717544644734261031442547995257128703189242553784463181728357701731705415895589051267842789146150271821623458369101432682904291015245246074676601404190850683002081470385145123825315849788241454333043264206474846783808021944960509196819860189748223422478300705293950955711045479065343090730780329461598437118793591334273155047831420094358797516923899965328742630344553283559327844101633091899223964637005517730106084017500150042956459812749086654205518332454088008480534076756866933821993130912193514869445410653255382421273335430413732607295708290060844642261968129596677818561876315112001147331717660373972440067231209335946298333312420434663204105479310804745693229559169160022450538086475345932875994268735326297024061823087238167037036786851216581970809868871819903480701898023439395084743300056609871161296766600273830068866160263657957567787342870708952124468902295453813145480432127207509796562566887301187134566808264607745185282116603493214043517671384637163802945216702709586567889204403293298043464588213996020842184893051049851942014123363045742956401032115771102729697829086638958648310374091083950768460830568183818256583677139451716860641632413686289333105328238448423700953313848904573342166174901366057125370624960588616375557724451610060397115401354629357001650726387092225776634199766952345074083357472904032660491749713969202863545694596847634845813504667467568175566683655780802231475785041938975434084641484856412481610016727787149975414992908175758916699133325121403204623986684632840992600340785531228186128375110942362675336138572536585143987721327617438060534810664931823243195564852830696873374509998626566041826075529958279926056675063647117829129327358741999556232808710456469947668316268672727874566575925606221687924710708032726124985429008558552240768261102101568519723718806232320649083543025019558385538029608632817615647412106718254918730135803976271607930626602616153907645194341501634760535674635472838548888204651671750134806281022576554937927219170755898115025347274199262763918698323297895048560476840827136281647528709540523862479868624488160924119228178816530091619259513047117019941032559698504801080289107594162150339984590694169528204431762000137483695488420084521141132413868779929869206537857898671645170040797215734488309024615182162458667761201913127127364907936117732258514037944249213905392619497826386025466101243187252857945770348387262382488752259130797825999412500051026014684698831331885942273441384711743887611249026117346653127126020118222102022369789498373911939270839076281117661159495405649701789665384475282034060820017746508394134639895992197943333996791663250024493823776956154366366658393964617366595430850965516043046707080940870207826740925617446207040353629884523360165401374407061240611229820123166626886063450631959068715736757481306815607518027957353002799618757165665907276886601314200944144920489967733055163846289893604221619897479465985340242603658299209281980785125288844130733304582333830044290722643019320704606821493168933452489997781955923868920760881794798682496581388227065708745662982007452030462308229864464352803364786075789648845566056386071725732422902794172695254278061916775350051922606237065799149187662603431055906989676347167522729746700862326680912251809932651071243653305064048754757474080548386870217826146202461885062552719346945249422778009338240295102540412024269173649982916248734806328056737671732513850538915779028451058908733587778812185514857301581371284461864469938664175677756273983819313004644311077308998385823219392413274291276349809106376999275258506768477453042882981079414058489980331074893039603437150620688026727318282455159493077456783087055760622678933534689069250068941943285285236974879681699502503769378253956984957781178251522789350190319653012257335785956972448337520268398122638130720069773236932755657891305370999599571799600146489823563603600207728321706827515994467094993504919951733795524635153922346106022172229219830710436725925078075181642996725405010407204899566598515088382878610459058327099699032045213180230373574001351214047899982745189948957249950857028611072097456120517199912090225709794312803593217490680622529291345242536247810672558855335416952617272355921354321484193401702448176121904709712481532667034550301263260580452708955671517844223488081408388156288580694566844679777481530668925161900544724421661822160162106307736406945658273946368989181364962734815970450003518385570438602056052907898709610867015650043120910943906867774821882391405520725619194787055135278923633306469928341468415847176664392633563971727862515416324555431529463190289519737361963009372607579612352750050833006094985416371516963786764255296403008150954872051053516414559513636088189499577987977902426140145650104220599031983674134138104711752169409806985219113678025180201579356177464920934724157885899666610975921188252028155293510264230625243402544109529182574504373778915800332827392909173632009766099976704169503571810233248041789041520054675461490834577498220088264906268961806840552814443419334331736553456177505645289290742992858286967936687479815937246324702852887406591697293456790621900206759979102898528443528949363109874442777019339278760780753022246442269283222268314411743025848301736951311688699350055932786260111772327432248527776221806744369954153599270968441357621593012854875472000760968553264275661664981953372541006314269082729948276074072407920311669988915976712298769665000377489394882183427231773484220572459489230592879436636352038400575969601276113987361666397819073001900844676597503480416783591868753648506443065354882434647052736667834034123281982974339297671419552280676067571309301339247123611152199335200094737355318555283381823329967275500188576210218053159735106265870221071786179292554804420542482360633798727805438744699661621911470647254653305357657721269525396391522209561478455271911035843797653472971705105454924077117961914928798747606129320568041486895134978479662522331632769362217638343630867911841866897526818565438661501163920991051141769016467927778286539808742068488794210067084206021574552302238837240257406994285098086757928499694058609176557369566467662944254531229801041427275288941878485095752106903213934961305137338475408087614003541028855736848179513967928600609100934579699767083880775894504403398200213523020009418036965964528700750876354741069655784484048379202824131460282659274551793017542707940201745825849523621925833196452373722095186075539398509672707742410648889612484169245829997291463352981931530323392921959406014168169541038199912039121518584006070924535333130207547854530521722483122509975410628254469599016746556769595735925615445428179992540409949014616333238441298478222649479092880840875108880074304814574742766741045263805078051099814598664348954564338821629660161621279008699295419851273124093954287839216105888020597287817256490545264822190035502791694912210744524529037821779128108776094569844927287082808234688393107612080494382017012436118253894435456620013901094456987370348490025510338587220159057689784171473161101800977086678727914247797838797810480571208629205618640930602830481364383696041171681965091818246712033199543278543461506346539939208373237649273574630909616452541723562881881710646544977233560201852637999422264927549058875303683972854734676047288549765004896695404406615799461102088957855105033542063812090699869709970944224719216875292153983039894113744266177355402393900171298105917706994825330825046157977746852576619834410888734344222263917951071871412456116971724960665400691788220623465813250920433771617507316529933444267344427745661111213177766772584389567651571463637603256711452323818265203109702458485122598687336418900266573381526190795917234085484496816618270905586171514130791685269385150180006852981094358536923864432120419114885411381986511557488997041905724474175183597087888166804976806152049571511201878931464870057482554320791051715060937838610932134316244114099860524081102835791314287530117084186478308070024759507245749838045473709270109778272068162890476534565286385070598355499803021401082993642223005614758412414187899856798905092877122448986320768889495576533505885976927597899634262532437095032446448030358147223539873517927691317058052296954597990728108853408748285595629435759270366328719334890604562554739381602171463792242222851337506142655115947292572068006998681342902716695268925430029151832485289759856363697346697019624628809663039574510848178580032576371203313586635432193465858847504650684332396376521563151630256589258716246943411740978233692892328099436712855347499437356511644146341738233854353304450602732193285697080853936140361543858778208794242906462191739199908389493428672496655148306369623988272673072159438404373011069897770379093271206165630232036229249633661001819118753905641653698478731637869625278098084071846852682185125846700883193251265392712261369465231961071490626445761105561258376320368403843668405380511510340839451924801506864882347622950573696041741511342888272089121276123359119774435414422245547986449988775108433682782780038719763635015821491373808219198665062913263797611298868095214802225230363381272049460690002993018387751696414212429510725318849523606300305781357268388919368543999738833687848327610424101352659338142255562109311344450286782581432920700242294040227672068737032217395853811777693172256996933062588928827897376523373190119443238856471862005438400325474639976835871159731015343501673205112265904868097167095953625306126730033047945307093471005834215725885653916252297764477146804930608453972860438546893910058857470491654992508623763053587307071258130118575009907887707228147697167911054493096885013592116441887940811711189574890074032139708499582882874501358278742533582088129478206925449545695602670523293069824840090781213495732877844081894489744097686516243474928552730743587096152915351009998727922673830413505329766409937041126868563824725486771614166423256273881713957934401661012952904513373778633466191920503324334535268803809826380839622973332218863492847495979625877587666244089094414270700718390318602465883673082050473410926645494051655926221715384942970812738785279200741346812810559311541286953808380796855936565760660533858029045442863349234433057670886417768906627441682257663554091324956496687388936897840705663384565613202111520201414485871770596921616541321033548015113778849483627842339389248339006951603259460936264857000113006813954054756547937294887773799870388175774448013129796706268181714152327841037630532709337964739779801443459067726814754529855816420899305561849778725238908292457518688679973601552726139047216450119504566763586999311176060638444160598078321453956072609350565806806569787721111321515680360262498804061274341142840834723172960735104159337034851643624164412134651321846203776708942553957934728455253841234266102798495192802339372732123632452614715176304227911415530712803926185200493695931296131164292441961118021252591712755700016346947818223624515546775329581467209543759640692937167399210954524232754120955139325567202108182789167516653443894347648017164200954077379619304605544555194837758808166736520677897864715064830961871031886788613420373145883554461446257925299423579647142498192692145391759114621716127083428434293048254798659615173138950166391613453553482841215154595250184872235936982451663727729032237157339573290304798676209410004693513863953259929051398512200609337657293124147606541479995976766015593127670247907199265771082865189341529726931107805804359524576537788549484563802010596237161220999001082796279612154341836463581200256664195922034066810011817137917598698407568805978338804872539780646393839744694165531197241352316575808086830125478797911156541190147591431704161480726589511972393826024318923240156568882249606734065049099504706736198205611477969302525123701319530324047064502361420407956496608575060729457347306902082102907255910928512893129714140517665771684189629167099081583009126978302338515731826949141011603337308043733294456352282318326682995215187159676546872506127096582523181001206756566597349144792202098713414690394529948886755646067005190485947096224526719519289883476150411771657086879881379855460015096130148857411815569605902888567927296207450870279329060931082436302742887442548962987741619779021172907359671240698858983268081991542491541901127960833815924797049371855171839552151860961502473284334652745175304779265902959286782415343169909539558433460964276786070669543950513672469065882298925283127361403933430474575297620089204462757397939938747758021509631445609548141290226091505901540728551038393528602150070492677147117670268209457911855880553796340518233008926443035661915856464636967515889143265201202627232707541694486772283330718176903198387791262010244817846956718510689107289792270111611402842218288228409331619970422443740577128904537114311765361546183219847543060214597702991983165499760795498046876549810492230942588023848950536690433666978394926252532358021200990089759225262857036208628037860717848258513336832088865269583736581613908030294528100893773506684836760958620053290388721192671080815971082265528608542901204020828234408195377072025633705385988695386666795720797327899935890367482246415936640771658992096321252847925505913362785513573584191560800018301027591366327620865878866161548318060151453800207389465256116616466485866485571528574544918728962565182305301110292111357195102509692669735644894525427868234000167976047422879637400170010199508262143246687964300969283042339518847004583314341256894911637485572012095428972236737980120969981277558285974084309523459882452024699245098731085258683659316260871604096024911712218666793619028068285339238241074998058370315425534176919004621094695968795854089208289543057044808137588555053490634331732657951435038392328843102123039875956551587899238716709083630475288311180375149130059937245119865476994852172694436485960714369179475977872498340575636844756683049574376060512786046257176191428157109504526914919865576428184837966761747376540788209255209017795605123552584080463599617077495079552883769275058109744077763474185116926680450911960572664664503896504673271423906121900566068695657929621600108591027113696775676645519817081728604921261879471779559234553761745532646504812098116743819046936381549800487787933232312058546523306725041044210157488516203310159719056307001404368790667302572636574240663789382319266658588484974547457400793091090616196734302855484089673881692374121245876168084147878329169788961580523212625364923455783467213694193607274955302395421267850417827517647820625462237047106069561251536126374168132447894058858745158895320661781373646709215893740424582559665291330926621290763054987669013287638265118468024152205879974027781508962759731060238431093143246900231134524508523795934063860722750080331907328285064331387822404809315862254638684500327789210773547500402283199244484976192222535817680957012302332968174121914681327583712637859294592811992655676236752339229639934604596267385165843584006122084181156104061650643005011167844711018697037498788142795363714713664980210114442999050802771954707440409604463754083394215900999153065644233424354981140576964366787791789000939300383408388045846178109153995326309402141836685771753843368069106647916575431536355029057674760907340675947554362599690800989397505944931647229520399585160976123271929023021834133544833995730822373403234354747770058595205040055317580477412527514660416711658272730692690816447105946096252249515901630985124270306277986171220895272944169776521699335166688991099500757728052689774258179778559889333447952553286727068983360709545887068914758554863151779572415898711213115674677341401877443568469021172740130934129356468729856122757225546862786052928950417951236924068098772518927366242136025144057096559042676047928825304560934783928478110949499762829103942488031837284122375110252159420025428897028031489679189611164242006216949112841470575922388443414480496663924801310885416352691841186768646810310331127656713275327937168104983358036642365902320395418208975945826782366408441930641573754919714945855323630479241160990288427819233202315422642227283435558534017183147331328020605548490008452126130782568701904994360043289376894949869217568767315900364940569253590095863132279769428965764500928258287053961230892364943965172404385563572195879038271672629859624955337222511301218018904606119096644700491534337928587873448506520396719243278874486445080257437834435145146152303915245063777429051027733465403982152750596562103488238147845001920633750376074721494715647915571483150579908851680454428247411291129011181958567256012213781317774318726627544903256644477221038450187653792601436186763987677274270813581946105816425243411694644116563269863495648321498889384332964669471484124293684425737146019959586890616626388014420539560319108860620956923101400097115873223023543730682865909883725991050729659038685751993722697983496683998988209137324940250812858471529871467879021293873161406359258323956038635588241175420298822181821527866340329479530597391059295005214799011998971124370327985490514393103226691234510050535159297240313804363071588225383670106359962020626466677463900714018571098739605342042101957532261584505738416638419670790573700826755143280076694282979265177190370573446931242608505392640406402227872539678602309543940101843462837259949102534902512294322377790540412629414202711205079077988864165557064671850213871622979636907716927254156791885119930700490607269755678317260150429984439215230297507212503140736173805990865318932566338378552766546892062462594877357924635126325298943734266222124216168152691993286280573011566728131049616826100785527054890534993922404383174011200657196452195745527486925590133799268709620830132043491375777514027756140274583229762796268059246973726817002681631378923779326407000988016304760644779493478592571960580409842113092463230179909517672931719690981997450943117495164701844940445823689430235448630783439849860062691026496081737421142704350993803108457400085101416481194772137686715091407431838690604394685264048131194610168741187689693270072928761452541696241360488960795290154698832682357443532682516166110312180031354655334513190279684314100117749938602568434433901887653768781082729661103411835109083127916289267139077498407302060379373032677098874304641753078256796967449333891378788137478497565974305538454433982815371836123364116720492167540843061766960049233165687390742335489839305050300949882201068864823192806727202209506527566591998155314152644828651968776316777585367863929537252591925585204718480940424602840140425859520347381115268652897743846026195145299889445960206104026458054856201723285308998239349406663968471037482692843961424522202744821172292925013254200022824904533848550251259476533806123519541780113452111339885674822809145051540030165804331795774609255198235517049706308595001593539694836894979701457635135362846148458597591914187290251914957205038898361967562707905115424162891908818780343842175773385970086136077669401266188578940398372821852505033607561749313009894545167288794153426226591284094467189765778853717729792171406320236967144808172275084007970847760089421819283366443036286772397007384875950989837113590860570787118405643358395280542662051644801094584442295286083330532652259540279813329810486324682223847413616096304206475830463612700708351695310827356942553117289350953011154682386140212132252645624412714836934499084782111469067266609693914971500674163009195721979714885220687407843680412364114340212418699953773312872522432884410565894473076927361824436885406873313502058858100302270775489235299201296556934368460599448875863079884617726724375281335377337341371761451036310860494879784815035464815688670039424735200680497290721768356948573006580818737870940232193183175097117394862348063475972698960325998318877724609728405048369942766312509032515173797891354189328839372291607843618883450871997262031067049418241650028836692048432972589382252910267695286615674446515113890041572937649189438707163294002522279889703987930133960532627937780683764837773189672109228138686002594137308734846585200090507250862718586997396741396656142844271788986098763038085117455759425842931362315370336873338525458528299661962700074171116482348270380551875522937561398153249264247589534596889416689850422549615001391125784703872744959431788265992925605302754919871432378834292764946318326215939615866869512247772264472141009378396868213767769789800484758611510604717523882182811096168376785172211086209776529532906150228138158254867146788697297484703400252610904183884582809081609349734486931085759819932229458115513396641667834132051980875479024689585370711391474449408582268372120999384327691932599169022255232320090841604112780963241754798892083713560209780935690612887220547114288118934895032942256839696069666159292917831915510678728316680910481557613259943627097282349120249777508025247877409367608905315232506991052705738660111916761457390825646758391015741595604920216500609475640664026950810292477380505739847819205250647132859980076510829525645768512533757694041765200409825333746292716082759124600695447281785882830979061941348071034021916344714264701695318978781185261500883703690437243626823463533572492249593848255534996484802510052483886129314075518746089596004637541013660090277082351659940510485149050187807081755211117300238694232945189115793554690576648444254579537895315884349908893032849001927493067656879714570596406866348232536991564758735567643501155360210852954645657685720504673320638686417622681269148124864821841637937960685764670257854259770952526120788427665222228818688129345227740468247919478822704653603278002423090835566510222310462444384174751892598167815399543703541836948092417576109862696345402214355396867146464704327973123844595307695698344441294481506282960653009403188060415323757933580668021203102183016456859624337878223437163397266582695056729250120326094029193108221517686445465168241634755067331946414597126651633213436575023433779344074545387072065666309421824059420201116626482855930119820024576971303115669348131710881524261160861783550680740194911639671674703405922031458963046358517232573790793097295585164724388333841297084462630592829212721858952433100019627306978622978117414083991749228363060547179053139498761347553762323052109879143069571449652387845491121922064701227436539438879744804172381191808630185493009212828009710910980851490832345726671829320524157006469253178842426370420846823332521356975717360103545423430364273333292981531691681399836708592968267535440302783094215797659158932710967016203285580089954373845226092308692853577407265510319467051024386182728912210363655404884654417729725236376089627799609848288654541338262671966198324929994063380808511066848619508533260090488589637013035439771520983629442011140903187421859296228934617991472633644061084350084390824442354253783632460196681233391632579459887340872801705135878682472182552641124705219620795212060311662604587010317387625010688242771768345656152516850476787921932158579142485831549578735879230323884171024759218952424903412168650451390413765360670103905526910471770101194565718333819279056955956210313582347774311545154538639472974564057991505270024461099730968069570757788677307514853149151092312566187143955891490937584042345439603537918488802866369941824772513677728639323977790709126391616387704014730783128622863246409510595152201005095716286147590172479098590512780848192658799746061116067218127796609679614952740081063650813247643032768682715912663550684723697370242197830928495821451667037785763117815893625557926886697097052507137898380028600017689280649270418076352730181814489223134795946997046280363781867264892457389825826495710401608133758604655319247147479951055311535782170078505020830476092463604088589856776453688649760593498674020674408700016892087205820146922357776731055188285931192558239363373287668886785529083594287589348794415017185713335566742737944601243465259629371440100180644602607181090241969138941668459677585617151316293880543712128562268453309471630440247409889748080059155185456272278533613025038921871485766398793013067904578206113908860625243770534788228407622649891464162259236017521518631586865360350789457752872024191926730373493710751448330005406432816810953705816226972385220655710122923674995960317955219536791239506109652043594076583132954816418704248851903217639915814320814025046573125537617313950691327267249048058621769561883205342550520871074701585091086109544300495160463992401587947262253443241826150484512528753489924942870188802052957733303363083331874359331739917336766855502316736006943244963045784064145864880450037667098718390176919315548475461079238078169314080388107460374907640190589877933622687575776558780583102735170162018687059345942110771159862535632883225061032433175724129075346964209582744552063001408164034894403257186689670385937234404439380657282507650577854143919508068265703126074582684719913044923705519491332595415968720724977430865630595824912648181142184503864591392837400447420610971425414673176211240922213360603097981428393285679041412529011852312960336330829618848564034062552505778133683577628777437814700739031955209506777173444969426188785229212815012220676741920598213603991591442655300825720771467979676194153662373834015737307881474368523981489912339912325490320432341103307709749867013341543665209429211641459794553858334633733456199978774930525211006788625249805622011698091773115662392553877669071717700622284383879565932715565550981443987591738502717286852520344397727124509821147862615187307092336403830671320798588281687249835027880054804430649179227859989364073444236763746652355288073232078208761925346875571340986063501224129507273811743110572091804547037276497143561367090884796229417476471870408708184341315555765221983297720046562575302191372703224786435643344011699003351247503611803443134282877716199446959195607501188687726097133404534417143507116804689136370720846703391883454159760489367004798356746993755865359753666569161367498779914504642951075121028665817873205781028267457181734197585375955959569407996058997369002582384779379294409610537714507626263206024820831067209747529880859693912672028950273679428120041029896257905626858957806540258710769610074309955749131954336972333263548916957981443053187893164877197283828430345341876807289437177336754658172567434912374129809597736115675550775099833091154068797997734057632875657322814166109323728816413904964773403230849829205130574243953104574649904407794769298739697416314128222765618138958321712651687619756732228178545460349969705285761230596437230266089488578057398249851313280624853634500043311219277731552805750339826189148524816442801954329203168380139317275604391009659522357441241385685006414431004783872761931947672919756217158833763745546878563298170497808530289905831282880558595292862662849761981237516496298875002416509900655146490923150137963185016571561852134773988084960543276893521410285747936574245548954805873238462448476136781881992889071981728418341582573732491212104921408579120154907597693694652162233195769256462134438593675611930004445480487170083458785775210223697500082970971279735338327256422460680123529053946249039124966374322337329331476701094851831482236166975523746543010527359919388702322884573179399586603383022528291963570371349731166880263272229006232360725836200057028709798293877912223750640799640898608099166357573628240880612157769791682671181642993822388073599846039190609768390408236382734608881585923982406624264625020648622781175223783390101877115363601009459055394142222647484032242591686178050465780350945374673311802148271965256732288873604085300149938232535535079683327169561101053799710903678609357038313229308318083353134401901324500817947088731446263627284911644508747925991514469550345740129400398295056330238112180635032122638973778134362595326201594275030525746473142889655370922501231281499863188483988674731477399915158662774830018460548723156033543845540905928560650809409516396660884048622899904344657689122353702818454058293186130699542685284084434403306114068474839547358110591705303139206169882266691698182359917266009580648671385305010161907420836016186700862702568544124578485446908222134604914254851271698069744006586413941589080963709784061301262853922312924370063224644085950305694712519062034120235147886877123430889314128220814182561499855603514829703325631813215410236623772173714312184762088399093751593601744026555120560038978809935462675055004100823316910597182771301760398500806442503992905077865627300688570921974257307409242906286843883609580839292624504994117581896394577457454848082566373489307789318612980197130883522289714426684518373320208747752589906529298231638024375607059140587743518926785545957155542793631233636323518614362425839690299063164685482374625141274336599282731212423136673629549189959737514086893778544834865053511458388617243715597981657724739860856756249852990465528877687615059311784448105997347686625328641925106662503101195601256818350960548765861163811825017389200592133134360821773355161057721360398115443604041293968036001449748015402768501998952092064860227383078214242296459175485157253029680517366607977742691291513077910992372068566284428672853730223968901614236203754328845026138178301285977615982175685395958374723204402587325556852051469360631177523790241980007819494739030976737824326222798368597851248443896940900564599399794973287115673175612466404160096336448896304229801163105584038450443611059689811900152889733054653667940609508542710688995673226426663397075283700326956822851047976250095774952647292054295112588165513172212281062074114806070747562737991350044425651525120212124356829401062076808992031064472054177576286745721953499753319606735830931202305936134600074364062739930868690092500139338311569810195340629894523242088506176138660665427496760648355230103624577901496071589595685241406724196278507787655024241948996162671197310612377337263016643478208793274078540236967914542016106724148093705267725135902274722612531916677833707610320961175354179300197467786925363012004223012325341584173854448496035168435551709842716066048523573802510309136132625542631486548413219154839775586080025949562655367481449286117165126752304757557679722219658301055764966598350253685354052058838309781875575903478633949219704001904426503672072989919757784575414590681866452704237010482941686142096186195417130010782760666285676878761522374913208812855889621644497565936002778097513331280153193013074000784320499098589177056486225287445727843177718348566185338019337641417035881992647595077545823249788812366442477155952523759175253775166538953444867976088850166581919317451476446596537181687215296246565719052423023382781270801112254422221665904398896925706953385454300018940545613884282155625175667491663744926192245410208509601794896321591642252466289511143268780659193031300053319775437915744794583638917202211210811146732679785955449758130423824999708032993409932631953652442088462354337308653419500358268108794977780184005366946563186112073830046115100268565546666234846587417309374682892580390401020025142460226249446354742794131354591098138901216084591541084106669844152784634819500293524105006493412372455514000743719333107325633102828640402667395323225217092276150579981282567705865946646052723980107687642646933635118683006621178297100660567150809596295847962757251861428345027730665193187899251377302069026201533512112944842054189759062641699481684934732012563816615022952226992736943885621692376652489370108688011151289997843310938136646046517143794538999872611342051902226020874621651366539058201764320728619126921233714773340323927855467809289593068008052042597301626098673741969642633443892249537996856876149395698988666308645086792428978861241827772849785163481413190828309257811647333600045617446380028249437773441557803047272551479984512226890103936700758952300966150062991482324565129671833165752191456588658609192546235774949489954618208602770128450050791431526604277525764852313086841519234628622687509848782122282128791478338312342149020168960294209117940465490672867958456278543169418546250944367743864207763278398238311692114720475652296561572621856573400186552504613669772823320567473911363644637312627590022555520830030265136949125113941750824789596775647339651302880225627448948454838382697677350224153679524353944582385285655205783742124450463641498335577106190688347521080687882978369487500806602536959796254342063425756349750760718214436585781550559010386949390125847571442709887149820957706044973407717213718970672247197602154710021763192031980811329490064060236009997243733296415655150274146682994676198128717244905331338523401827079749845967151874445819647659485343292228576264450447876558383592106941705716878716780974677391181284505106011741979075660400583685960505485925185876875435527318756778846310401577141701279196018820550792124471377943547197400875913992981943953170725871135076321383366365017088754776301162528212104558262931926376993228984821300062713220123454246492601327221660642532391183396579788704031332920725773544666690019577156133667111591809372708557063833066908165937350300038794128483795109041596910308451280964160230025069419704236902912915016171153842921611889902978228920430599647203613196727991220010809508902543377301624156875539378075899028546951839178866882748777414957822584552444065341505908721080953860008443876623966515085806242671850007856088932544664094452472280627467798011046693116942803258360229875510207148880670769131040813636319788521400689088662709143762286888799632345434372377556614950582169020398418215374041443516625646956197176004912300897710298743764219773490079467150111234190108071088045080648944112990570259924372782932493783662536864458430184857758411836294904614793951873422396355681497597542326315663076190333914017203847353031383175466534051950795964246242706145426116856689324593272203362114703068643534211007863453923904288606892669158372120153122575243384209800856267977333355349754286309994329520266345618040930943702614640921533852570402441234120705095482042170077684752192708464376434567987843848391547737423560118354089561435627577702768796204140783333643204396139762860164524707516825218777684452323228480975873765767276735303954626073674369566533267195275623886912260445369838981891295769600931791377390473816267762458128917531789000142813652087040717431214451804230716943356879210907299949785620725885195870944442909744977163978118679198954719420119514634864933923034420138586767506449948320420094348551838914714396385808818919663832494934616517702688843971024483778263560288933296020087449804587797592720941682794394902310210772557767620058826409371323096130234104949204178956007421488117296849662753134994598035402298154651732392588027372841228245821600511629657099837407743214070716708358416088902651792649808682289326876441083885400619777459650083804352919582616306951854494803973784654192164846084116513117716691440581174027492187431500690472569052018937915802133845843054741212550775264980776961443350189217348960873228180213349180964905613164673735793565824308422242453768208572346848203613287916727866311823286270290815686627727877776409716317385732805089765769809256801993275471760463645082534865786582998154937546362068448718730155068644238951186690149805515451308739112603106983513352329583794370206469322532280651726033683951880570854614145826315980157184580176343889888992869169779540014045543698038311808585880157372612471940625313793948459914991759280355311938639699624854506964894397981242361023190037985331690402372189223738153262519869698449115574114440142926602838366721559196901816739199698043645809409475072968209328416680328634718578374586491293189284239680427031383993161026153406640262515098774202461576386730332996183033553056032298041341479863779008708562049639504236519672353012478420343626938814199144990431772280520702773714111255151418677574762168187258781274668622804378415467286137931781478549094251359040326053547332698862011636220276934895550501836690316225150905874637392800362454689307804357502078971193335407828315682525402268379759206879061784377757869652394988798553418567130421380932583588200685579592407180798395702336998294546330810449414848821383986547752243355943561680812586551033530331904810054830867028861423153703377057526326844320501507025477211591409456845287404362068540477668414375641089903322137315909106491096201847522958897379144050263707817835934206563377311699178039351193561355964465853678111414355357456698081002462406760170648066031154190387360952289724791611575246049121300241337021536228426181889153073550246789792494752564217114660026349187509974104637887424031886013222212435250647701890849573420336450215085176242876472646687799305832707545549787531560686605332187421279294123456523610705862102769562283325149040612615805147454313954375090364367602475958045989741654778284223228870557603040847285332636467522544164242559012833183158340179802042058283566487588194590630382498480338336738323369751009884781581361241019937163508731265055987456751173355832812712190638113408455011519987668490808837647294091154393107790904091688780342966651312443735504700147337950011346827393694099178759891770592718184337536010310253125901477808035829046555426491037587504295406916954064547063188920368645220910448808180098841286026332374242872237828737556958509123514255656759106795766308785237742309681387299234531387699360036088027861239377630049955998438516363525958865256879964283466272764091120543655676548221221535858312775196644042166257582056757993820165714581090094129664154541917684448938080622889905567182487845220477317678827189299194487398487254092727089604745751243419475389680416927059933028867259524473028332732002412645023492936487159384610588842381406869266732377060306228325732983044183343030183382473691013538216754748774192079342484079189852048018015563023308050107197091657509719311146094813171651374395842577842966461302163564760718066475964460830163932372439726274295298968539480795997522990016871328469018412503407245431271670175276947261981349128664212348230255362571356998780499781402761616515070099984185406868438787998786329921962821517497630802631813597592165069071362968478752664103523995530457049379115251115853765661480138879619536744452069292883822637529252282176883736228811851542621450932961226573580416352958242532873137409657201516658024402346097392483585369954494354929003661875790068596836438300702508053872516429506295342258617149224938361052967682411625086775705520657380367289404902426036588756446791044306491458906623433564377606123573961428528140613315595704377970042754671105367663333489869765530750269293342342489717965826719048277567508675335460682742073235680695134525145645234733872030637858104332137597322092792875275826014608069452513846704097521652626176785492598344327684310590124164299324695620708921753920606030417302121473356496271020282373677344292578376247380639480553534348461716649717604580458968754215826719781036629229789565252359946442164490717429197586619548529381248337319083440869808425597998040614905017947870939887602661896189867438839117617476723287561256643209057152514930574304373375019136848965125430866262694769021046451866965193678307319650556795131590846501412791127312593688791298891125762122735775381679604560554222009387799992520412538616003239628964291529474933017059577060216439709335250391743237460526175642724914137032517002907724920178254013319747658600356542992529412886568444941710803162649554754862773864423044267279404734730222180391001992860095667732643953461017993570176041578070462521155678437052568896164872449382929490221779249268914913659145826531455002969237750452372363092242805494622345506537675059177438773236013802021597059230831612554410381861334732815919571296916512729811111160374751763296566071220192393179311648501459356990472440044319435023933174651223428526691460135788245767005090727106135206446277971441152407316641221711200823999027084060906345918889429956440456043370452065373721285005009280770133871795579924455987393803308898461827992186863643603996987256675651021844423178569095837017215561635560877444753193501433802124833299987207414073226244735826287692522481180832181171143954355402562703974516309169330549274428509973843196495179214762181406073247329080801339236969131559766454355754520254610073184437349000814943572624821998668131625385069456219238782499692789452526645696502876040725787784676660135820964520728243074306006154957713567164430260713278355837963588003663728287376913886979739481692737632768476544970776071107835210613812948129765151259602901157160706391963437049292145617900134139338833592766047279835629442370144914802307945703432266732359745712214061166108730844827075333903992567454478236105018648381803492395628832383521160123806017766555973161394006574151634012591500240548132619214377710145566224119726866230968499335156764441097363788018340091577113957274381594275009416472801121265872961001578832093848448304664905846286753403337661131404489582488561906186394048882997690893868100565170578653477935452039862441037495490995009185133043466589788187520329925106196925011420040913883007008780211430422272528307679911235329898662746826604010531904700699134496692457358409115562010953606619946745122340373877265597113418794454718346948555046159695292673574338080103698599349339353510986200987970809991742034001216840232856501544333389924264104201155499728808080384568334221707348379775644166883688372892162742232069524647776146518006600246209906788231143947666890004007142161142061909121525062170130260671928688229018557799008308723907585395157579085423278028055018262061688077622329819834901579561699433502566835919334975491329009301490943680761634971349951409524827929912004494354570978620311248956317338537658606784815373397221626697034539758060317297974659851770347237826132749509462099449513272890602828158448947373865579968899827535876811300542913190991978798433449805764416153683578143886179723070782131839635377724069755512408989656811994119784616471889372545187019063936043113494146937222487405378397441537626075296673015382735234668926129238978478074597631207500100275351128659888796261648133713231800281093670099446490675241293497403108347551866675407132533463747339662644183547367298414858374559924398479657255880912157810197540299859612762396905151230281989676833632627051933097120640348978152340827996332786394522011353686202129435255389875301022963647669386625796717788695238173155615086144397339148857939208918353687156898304684032341841681356610821774840522824766806878404561065050358473969291719445347611488512804689858396298159020358034235039437708021047250577913537927672944399422028918174298332825681346111869063742384946697617535218052482859370266367794051928245977903158955870721863656493186260832590962800464007064994788750402114428449195935544467029037139385143809539078380716034503038150376114462738710629137616004831487649306906848798403399400499908204431144622530903966633522876253716810277597728022338753453348195673683071686236393738706841630544307451726811499907965105050856478220586907956599003165857828329611199336348951606623205070007195506335665043498827673167233437463750219774068017706924733300105159503689803367478368831317757371392234791354399623755003285864695240556390179587402839427729643011508155872889144015045852603093816147003488879146790247612896172525649067381184965885302839554469178304276928108164216370899606625228046738012926270196949464845102073200045411182450706060432514779917959976258718220501171011444994096801848019178577602759956947215858774032246046059449977413848369268378306572915521340767068410493333147739871652206259818480505261959562832405151534037855425211559369080306442006617345501712012303777839876379581797018245640765029398978282429590663400992604852376526391641991933535101599358645612538428537076004556343448332553736740908408469146531731279071271626987406937639891863115520504144193586179016245641870614666114492740666882099004459997723067136558878606164262356384308506434165152492939092158127183430877273084959593186161590209005471052451806629974936658041112573007528450547462582307222921385123285118985850666552459020684501643541781924926386876282532063892707082885288197250979077167195196171532081883978900378300461783172133033632206361123173104100513324172629704627371968218798797018381715660293710148115454842171983605997211023613129645373947709971860531077189365539967371312308006508922595539022412035381784962081532805665956418788756337096231073234800678113732878777860797271097077195408419106062358367773903912228057179400019816507793897444536117778128027465151482836945617895007585378074778037389757035607798198449043256108459378483791702515622404777485866049683273905958828013382541707134712332622706888247835736615861673263418010385959180651376912792564600687096962887035395956202180573585924054978058646248475289948183558946696043007379975752639075355980847680253771907567679440143209250224700376046787953659960469357390167705036828741448339163411252869223197820171403354887645115315592599583479717049498413983912709179470062880241945407050215412112475358386738768658982506003183854778495776759558746710173112401285092742970804119718292691789662404390117200258863645928415850162858453104235138767366985167429976832553765095420491419679248119242573757165013803635013791646673744388353537324952525309918640360369257948560126758402212378852401959079321395092641862608146126572702705434437424949553418193975228553833694709677439974715607274183681017530321115016075150406649712776824119284984789474978722282909560374775834930346454695054199979813951262527702182500556659482847789727206355169874069813923528497752307658775580291690787594690605565674991183973484183222131138226048877406499280034295867641987293882716033293616914865235208986091723909142178940620770718224750931650076418204750757954769901349058999072966025759634694180831882507078451407583038781344518493966486365658573650171889462375513230843449447756091668043091197251392406111212235250477960741679249690251653716780619195304009449257324312065395457271081756414879549379697791359158299003778495856234708653225414054170592477189749892895002464439406509586434234467623266063140796048390934783757500832233064993053664565484231728096925484880377184874381893994701015292248637929704390194051770987485387354495253534477849807669929031844338408701804506479838436208408566412106929455990107090611910285116747531447335213845373445383576792122611479588113403735980217494113007827987511504109064675349736095269124420543087476894849699657991294180594453689746746637108317502560380211212036455728555198709372482836027900025480867134568882928201386717689853709810399837834494656090613882727614818918821645202098671917414172353096014242121558691014351410740696480772207407776381473422172075756869623576124279491019917845509410916496107726181246691533258609635624205686798266191815982589474031950810762203582636651496569185116154106358713386948068787074628864645990626295120956573786949612129464087903014471491606593598114395513122941421561709404748240611178059085294452490848790320348315655482656936483762207252112602632057773782338255117726205819665117683788396358122975890279562612775209654466935064887968981414123699418201704728112695415680133998810063363866777416938821921174090633534565464291915462717315703194640958538399483144229716831904725125137811929039311442429333754615563590647927512715369544884488727134375634358676714707035635050697000485668751988902391856980029665086115208084744936406127970897444929382038377106837306309272957330744828726241148364882438130591609508402174353510869649076040813625328125103539774692427487776173008342282218654578651985726547120663773420817178937051471947949092744348344606281982057489403495682262373180272921524654783121314190171897996575014561616788793428802489552985551165907800703550561899852078046582068105766177058968631167758668144279222544598447385759561329263901732672636836487135368521950351392234612313828830332042549047679491599303608265161149000791922259036640748636916045164225896170281385479970906151979900187455323610799259758227351051962178439412690629955083807962909140759028451573699928038910951691794980476005248313239281451537834438773665863195950821886221076394561896478927682067267278675412017858318874235055275186167026934242643013552152306802715709106504580257528983116887603983410284413144673728042482730243326822672698622004029452119612786649599079998635057209146742166647730531677605888099904792268050350798071213263317239444522915454774780408663710113937413737491541193295363213410081195163002734565697627591291592833595334623151668166748384785918873480291137355302775590928175623462737681455724978708910371670530132806134144740116320589903766023830328890181363808998050249868517368608669759248550507377681675567492846782217487264690596513018870631903510487202658944596920509460754538491370937341939930528309378984966989981207207377424712468439926876512171987397764475852633261888991512331204136119523148616879850074938021212534995745428121836954786704815432575105082567556552581989023752125196543587938782929195669533106099847496998972537796581278723822494569533827918925927009676119628256545902727079140834339145079337083845980916112709291515824402533027203870282494074612442564892525326656457471718694287722932100515510088898150967534628059571050828610665445466293779138095222902408694731885110932762907486376815874417958138289329439686373517821854771176349312259084797945288275512648184601803858300017076124533795401501734938441309547937232788085671593883274386910537697371097401421008758802948642343997220687517044814163758548538852368560050704573968755343323381573532851804976280221597681753817136801140243220062971010599610154467793275271297203399904968164062745483215042412152773977404612353113230620266051096495795684395465334498557358552465484677234378277258688258653929016781703703096015150133764154427132597539184693804520232644339876451261025729870859057383701552861583215257706951802486222773244997879627810988614974072885902478792037324060153289517299008888362897281128091864024285541884461484118173564842610518531830677887211158915416940297854132969264397076979193664148891637054248137247344840567301269481502730841732885698105450409118988131789454991796515075372549252426793314611789201658721628559835791375519978290164454564519719528756947213207713893601857223874675087910796310014399596817917081611076233813516462254476266318519535930211553072060571175523647351875053067931775269964823869631477351456914948795268823019346705262185077831609763455476313129347237598175486771576781465466938806858058625749031994163556510798647699485589558215438111659692457423150008477815525606888636635796900500302125951101278856560070528954833509693265274246000175468485279325710125518448795212200871312538911958564403929662865401603583428155745756377814653409952447548191782331009795542946489768100479292130030907834548241406760918976924530220506660262524626076869940526307075469914950819698892007918299966939452411554487506888364189046789259296231695476751567376118968147742402668964006546611423344283640314359685187893202833412758649062314353103349599241203035867256092989800186462565247085453224693914386037628615494911363884671621125539035463642228658251383587425933632557652426820189659686508400712726863604562341803617356460162621652082793036489682421316100683266043045127149069541185280950181152209887041506640634769544047075650625454448147285111358931098457575664758043060297815339047008211507292182948433912398234444266082425104802843329416424425847358940012108076527614871645950320311671642336336340944985852546031221243152763696198406161621749095413626862482464835325292857033907345927556761484659875402628071932129192418086072022767553976085831640277032205758700331038805343920644274292087262580250978409957169479867426054956193246031975189275464578230940625981424860377824539744156023222603678009602264827364151689717100762299423116587604941065018433251428713727029295122341439745404406502334736649712733364066680812978952056774396777006537925605253026949963316550229126107187117151192134572883368014495055445564351484244062214752853133190371820255524521155396820074402418615859859455288109438135525281807628060736142748943535146398355208922392512714573410113588175398088687201784949450143975758383771669493794542029419918140234364469954893855312496960370938081233055523843630534591149416136752718330649154643074173317888320998688560420375969457696357631175806415691286060164537559988781269705421588784169484821462626705200814632748365497948452189137565095768307580289639808174619118144006733831159733787800170635131635304511285601969359834119413771579531151500202191579264836151516402617163072828998126487590306237152899536210342116125006571234213809914498012409536023933140891020621995447434514543339450146681176834032521323322474379221311847121957551034630637865074158082005114204624927005063771425481572950044102209997973862657028943368967906485626683844524386277935086681742259813364743418650984801090822195854470267691201849134438377923790051257312733890478524924135347037994815268873818404793880575259040105655639259839458132727263373673510561686885204731590397494410815934427893872363183020313988737077444368451721352269605249683859948289118570771836517039538365458793580548110920672775320980033430736087302731865485146916752003639002746607234297244815038605363670939804081124846751479352484984627412590171530086437846468827327316462167364305610121680002394160942678978331638865344173576229986604727688280779146524751558534763984294216245677612975667929563165116215924532036993227148828518133920707175522564550846056413094548534557895075285746243709499572325712804930708822270197352386794915418042314707474766771706669191947619873978149865159336980609875940889198047625459533444766329913704741358428032930678740442139105384371080451619399596854332194975203437286457448821790586390139551159383560962484337641372300207374322736888110808525693981369443357161751677731145849223823410410785507572794547817613968663614019089272399973024804384665234697068020143844195143728711706478670876606520988171905771005432763292983118543238560181648459143238772639320255885993146767844693888822866954997491807133486589326132186603191676504339930432217078141190441504834738147815070039253592241040401429651559798347468671843618645767483787773122292614175569275622377664329069739080846660008850871140045630345764027157690739885545219147472239353216121417003891976434795072009527764656814203635247735895634507763791410698462110810374490386918744191972943046801099479835710750264496047178426015305722120451531018557358765080839534533156013285064404748367100225792822445824538929193296024526030233807306360851994662055133360800777062620695979771247953277013216025589397192289286380808759319305321162651838024777463853277976893905715907678966281120960787834541548160516647471944029813292227648736144116204796419552953671997744597220511788858239925749975095072794717925452133029171386145683400034105772903636906847826563623505708260805735948437588030216911797843937168543048043903362809154411625240415622564049351728178052064905568336197802320936946060386655835504109764462786640746972831903692653056527771776621007697732298579773582143217443689048835827207305096971161056044809794615628172191664408453350570054620880815932548176373845668279164975052682424591982829334387094392073148348672534785111383372110912292355238106335376713989447250584497518003017852654418980015573149643304064183994952008316728374903525055600841095633829582849992491576435677988375539131767254858953713224145677500149281050226714017370971057378882200610346659040695943602551744829974396874477833700336847208995424601163753761575358408223371840464373755608828550711612367823120560554862599090605126848195729771374431763406864109856222888370085908734777029263018343919594735432897562936302571667637523157150047490563247100065052736322931846516240036247676082885826279605599122246399259842798498434645261368662593566477598887859407032591709334645715793970120001553600683741816830212245384881547931172767866904736432150084905706806694663075311526223973385076813900506985314241899956866971147343751486524364479822803025600343700369003769884227021042997869332998761521826450231629682611445952275329937886133192184242324710028609591487834757974879957017984614027067768927200509561427609619216166928415603420779999772977995593680760811550719312366694271858849707183692094282799709456272495352025416550223549733328809817441898968130008285318069672255553816926682508852260160774605454620837948845949155605369010893746561392576882097162645928272231512821678731280828338100010474614599120907775000133263641427946236381642511116699627479896955592053834583867218050836449268589275876837474544433437252553231443922704287430490470506649937346102394218295519648243731868619269060701339526855691469672131679907888776382875195011181658031115274950545856905441860032588894336685732017705715128696260521708491012704671772467144953805878525662772363298534976777703817319983522103083496332339127656340946648467351330334669842885405718294408524368537698255078545963231082535525499502159890475560843103535905663423886492620011685006022773952144203533375305024830745700967468507891393171425320872362249213170449319422672600016802177895389892486630786469664217860703193556596229342402185903366236778708223324333867414530178707361947640998860893136105698335284255397446342906682527980260869934948578856465831687973491919680973019015229755713663785534241596788100052597399639268080389141526757324549478330137947714884034134273869443022782088730062235150662501417864607641288807210958408334634366378673541201202949161983008787154785419070655771577395668676336125571398735141090930995251633629528988091216624695062561363443688642764381432166812086566722367181864902852291002540670542412440397822050588845044422807921820068239451449727996709654873056343242552518047869426458357261034485594480167062301186661946481835999987753967747435699229892821202746912309047841984619765772941053357972014574577885311375676491589453686993205989412928330157415167060762994409738122965553793746036613231060907455358246089780708337528759620101904582873896893157194753951550755874843089998075340954580761810547073721400101116477442142621184614591429578407436816209179455411513722622882626419087384181895834230446638420147873942468302227489101270667016926969329573699198137295980194794400331407503152531424232462010923482297697651822071275905011582481959513527459926131560034005439888345714732444721208612005911457691397820043291578242860785858204928267247950509489614534328124830895661227910540389739370125678022971319626640144141963747267224761063886114479823864290316163086267756623938173171998790522267739164707519791068764230434772113161151130381384191163018514839236464017854113491527644182911229196009362286818722832479328755323672456620478727362157366349245222246663272420655128759489198024864116608259059676596863420074420081422180844358100085230485276218383446444402680616563480334325290535922183292105317690366500241993745276662597695251017419952153177950102128168290786309581835371482715080328732798875160894541953018943581364918833123124608233611943314868636317569145547423327810237950408330125755470506553539428075186112815316992233224925774861378365617343696444867730599622818016936226734069626799667660549439932051919643423443970185371769529926725474836856856444885643864789112887525524383395726045828690058798061035389977875615047968046213898058984591884828795484531258979903581862823698638364795362973400714111371170780894856114542148079440003341091146280340179224001064686056689775461599479334244424713250865378560881639971720178375161053039289725951265441881057627418550722203941941174280261209093282344437716381970222593262064081844786979719255277821859615852253659974539710047307872959228739287376565319663162556489398798882467705967209799922587161505199437503720753944924875500586075220005617291314640449001017772114797756355871768363519703412028332598288134469256546166131332917017153630927655796491277968148664748809584437078520908786192063639577365313071394733066967597843894772392854856506957715397210754836718841500069868765770919761593478199946593797418517915554329456205481338744412224623215251288306860016831729171227457953675888960844736888108050929774368896841855699337184117127105663261909290808167136533858535281739658727871508807296579527314234286041299690978510174500249703703935705798413439342303911006072140897962656425082828345005184308244411200902849138720711018418957622404266298552985227088500258840716602435420127732299315917509273575926248600663549311732837372288811045778735439252193972083278604005403375130917152598197644083996638787285427563913913516801341690992005481399976831863125687250173118386549959082664840432988562492621199768734547236778095810102096054869256140667490315412290614042928335822553991837753532893737551160855621389603102744070885205506014376298955458970093308089237748710895938425232450857507997466867660696274588434969091284108302369649147860419283865949606045034161115441002136408612651960693009953244721554224532976713263492122433329215587373581724007999260972649608694721171066841369966461029358647628811245242943537604332441448946351402123490688044625153135828098682940950552834266755890226838089119113485851417112362096364371164636753875055542320815009092892791451637730285529372502786109194995933108401323603638868487896686607920015153552099408665575604597964863439273882840451382860013876884599209113322381296710207132885040854373605128195609751755432894323547298394673715023073490193224187662636727346852109866550907089357280588539433440971183396987443823454530129173976937547419925390760696203938573715945008458332493568554996556172141984193931190614745179080410193270381837862277929371411357815311546260072444915395645397834981604992109649879836079747431706276401561119623249186910397870508448237595568661019696373814136067401811961812411943318781189290322476770182287486433750254494463374580745095296231333987001088582028365157654778146032424271430338825332975451665070532485962143761487456060147880795980913874015935190876930038673503830972558591687997875650101050462571917072047591792453487049437612325798217400758574177582546519595359751632423656258771058033048282197640138675456273626033468893121428323542616686543845761886592460128502733307951896343716609927092840275720013029748098127254035314798733464711426915538469983302773465804841494750234137464072454472795202302444111465254409229746164842286647852241348935959335675259507244853658326707604847957099902883399323998749482465397471160821444273999867027907749044617710638557179504526536336690659214463246905027135511176655850341073266811093108674708665783514455332639438127730114251715758097186502841986634900220914774400789119236588395148904523721118124905349398284296473938656065562216967791083321634358315280717345804463958811317214092666895691900166028568576666971687471110198347943524155069106519487023159847026232905719307106007020421173211698981491434101878770807491186680807259111397342475599874979312969845994644536156899840869246821569325316588072931767986041788018936720618665568329596919193405783440910083412009384340029767064284791057623609670302094492929842938492228176383707789073200625254883953618876028720933142176525858961022454683935023192732630080020170955246082550880218438524142663764727016717656489301281181168805949638489200530111497351065377100368435843499166000078896414959498257293252367061802689807063297985225076439415384540533610644770557310414809846443797372194761585384705939511744821091926973056251909548449143884369553409955457502719943155086772389057891817423644513908515721175452637838836405226853963323620894708732723667803392072410952527902821188386615354455241570000086759419628533265613059230792653061330115406494828861865762854633125378626416639484131249235505679204668873322273193795591053357004948984003284227303953944099087561558909459175466073024623038025136795627548510023456171938637644241259170475710379925534681454596000069946478224211591713455875640360322176177908636197658526466871442290371614634078147002682197059061678996241077001828520269134963159063618169657096671589838163392766442928828389923555658037898364567854502165448824166961086060496110036594108239587672599896235409760340286173865655437185475677756780479003512203921431721106131482438947991811122045698566293400672600940512256006971758048169905513577769109295740684742834952488340058421573195335202712178642000081374048625556608212910605926977392277631427162559891462819909340534601121614741993143848391825733113532446869022017409978264768417564921057109635499921039628409392596130537474893746610336963279778166846349518092338693779918594790513805312284435233392860118275229365899523720542369539133412856493727645317627713746705112665514363758825818432147277554796591266429537664271308512048012984283038839038507416034017517038599289714392050597262196958557472829252602191437115880467954039678246800878616727804452630332000765147726731937166410814961717625044475912474462160147493245550088931077783347580957234910787919133031604013972449655617534742704741663753645365655029500209386227382807654307870772007654706166367182093315974575110600877913832948948971163602427258445024188763543182868427889531091740149791810258768000956167722945979450815970008417924592643509570891922031248492190383678401904421659048688555573988612539083721639079205079651334917004918873171845491684680446278134188440134770923648694556146739723948169443609599072500081376483077321032206897461329506371978034816408112578657524800482205488063714566360188324965305631754079442218971703357217332500261487415513872100800994924038517595174092962076460875058217507935002824831268022550819889937333367195116360588628979283814987702183822173104016284469562581184912356472529270980436469292650435553760745216335848587953127115450551340373007698403199642584504792691893273311262111633016107480462843952651444481206603282417409191623196933383301492052944946129478433439189856927300152195044433414338560753365392996314804749942692074787731068898127935680410874831905391560112099641129060266412053786262170475790913574137831350954555536645650759876384656461820202705073789328493284376692941867633809042038005037519756029165714612781268006786648498460122386032966063438226607991584784526353186455234947242986095756525882916227700345173943448696252113145558368633329335984492879239803404917022054309884545918619434646457427093978537844581862128142395144928013140817079024036896993180242455299767529810965356906825899024164303772769393127220435594477614103414584719324602120061196991436403359639611588227516328170063545081882574446073259126814702970858234690833926641902403254678442760206593742194515310869134768417822691044357446562116392053198568613412339839647433963877185116301920327478840246945970517599999993912298086284726900028312796295560248938097941626601742052300741269680122044732309321140811511059838333905186522247290206773354202675523425676188396229005827788875165795421158828601477697509473576005912283816776033146493477448815435375820770446829062280787120203038831123461023305191814350666291940167200114406262790440223875645612649988582820931925282273805798996041427293475992443015980203267311773297564884695703061470865891501833774778480613613714696770349909009436487646530546404288706036774467149463280411234677283883841340225287519012924446856058981022969909038404355468606006081569356041289223678188925727763348927232159827547631382072577750963724351550830735972596062612679038798138311820066393221538557187045350230886624456214500326425626920921400299072256272601990681987349290266563549974555466993722075915599742511176649057194707693099146843587864948879321443732829311269288043680984837789844203334801500964786191455433112071574724388920263669882850063976494434959664360982184249032848164351948235923141004249879101230091050417688009985066582201224587352315682929413146950647067111267833229463891167402058778018365347624770653152594900800449972855310660671676614672737842493346275809535933386567699214763905819046788045344001253543527400242899067692581697213256920937568890648940734176653962203161098838118938024986816606867573149402349208231859461019572568112514753831971985637769916219521616662270948292186343889515731396183206501478542489767197675121977431511742805715612310115106586355681661325199392092439244278657922279667294065620539959503128806471351123328159352087324423332398350368042746996423918634770339534246915503324289102560571569639638140266422031115712048164842187721702737368545341858966993901060953533423734887866371009190232916534106539950752694293465682851822791160235128470685162281596283469243444219889966998514789138950066062813222367943091531807087442137741448934886772728733289368718032817274703033749827660328490204557031847555002493147878369794759117505085034789530752926153195043984541755440529064665579272650977045628908585838209225518329498084075328224989630767694568120603369203148163036686797699875283934369836357873835251213987297143464810142783774570695963704318300483778848523895576380529491762288715607751852026347536653231091642859543880022133413664175909246963449169859533230270629865815842980660891739171119818010502607997041162686106220993423665044655742027199549527492616033354921651425353454837379195711817840429856070119767744341532193986516511031775171187771437578252211197564507911186257663135956985026613361561328980416812798543977415559684941014135198324954978188332337275054535224123297430768011785045328357935826732748036199365905454245433342341127624651168842653906420434357212374558368712995418098339210721027312423222703720894158756835595518171750443376592747943179825411568241368134323028612782759553750665194889186713267724815269008201649585294937466323076730888171640228564629933060747714310037231975630319845183976309669459259460875896245524029499706373997730746225433800471529157361408755579717535224585617929987496462170279148751858387908894994285228041968517140813265630611883758123683562470985789284227586048666282516698828721685741746809984277194465631895574534972707716279013689779773089053959768924909753189567946508339766290762357379161039751117026274292352047916215579290346779879341454688501144788737085062865753455421040109036865260174268694542510230893266651339309721445598026445066091080461637665009341094654468986315063024521217866371102515518424263643942349909374242575123456385432832467185893259683595094982140184780773617127836857580208760804245663055480387846674237308315195445165356681495788657285546244082351612227435840950450266687118753939212964345466037315848248226272023126715816738674013281515402472283200457153129886907512889611599453817296196707408718835252492191576475162850591329622788661588081812982963626951845932391218158820729877500081317364837498156550948098046165808520613342405302391754678680949512346572582221028656781807312391516778305594169468299715127774686289646400240534033288663981536341932874115934384249416139789847204832407725119772481332605803086791615432776985044274627931318827876799650844973916130487722018989765254051856146713395875670344590626125762977686173118329363499969132115536227260442122583723540196237659673511250110079611398087807949546937679879192571138877780383399141117186522217376143101201526029727338471894018316868204146906722805666628816312291693461902056283027223546989060540753328339118869760007138022432290026007829814368362747165987547609030924014609223661546357402630912016687225865656246623306961252635322471888689176017975767103378178670958815113229360943935393729213380806224549090589516702361717714163802665407976684319950227280980346827994682191973935996484184933682663732463406351892385563845036996841179191006762059538248878850201540316208696553071676453762145190762111506716206949923274787205687372448682902528103036374140105924963271765455510992493174970098151846601599145305002269712655390101044930152086174325584025900102663555103608362175353398190633296825034475969260751584557212883494760506341973886516180377241782769780033485826489795936850603715047383183340092959818493115256593765571337594875433282580152238345533607714429821175406086328366976057167682267228219571343948353699387983246700631442466709734592038425996477432453629196783654588727664846053861431902490036939161292230256979977403665790476619695421012410120664900626206655928790462068837126378080218637258453498656737507469631093353572834192110157110347676026200729638556940542755509527820055094243094442180613889651907292638948389517091439721098367450892338758511554697957676823794854790332172501806494961500416789553736979014810770206590315199611527265120606092601752639489192453011426727156977391987149895289804005318668386130582688304268752191993795240080194092320339970778053195950524274461881367389308828209877659319349208430245742276000198082476734142372132574376527630980669050586141718032299005027843137143916255153712580234230586039207247197331201041032296127908081136575871522668721423692725472118260251918388837032306132957058312450064808014533833260720556558470120225446857022801397553403468117748101268681446771351477823345796396432069801351631541702810857669732140322149319764540407194642550506751624477367168582310010266667997576416112328629948825029105987512466127390354188870179211903313069548126450001699332969506559404918607828939264314221062038033753099369676000863995592102927959667205630723199943692014090512402779904223284472604620392691968323793092435153753251549692033726788881151650060476923917925563617662556046067279949165225406560874193769195407535693565122608114275152252358568385220184178941718631831539127082175600895846004700525484006315686131539617291944641565760079283252787483238487854156762536433792790822050412652108659170504850585609368111314749228370506215072035574185859917844428087729898821843711180212355039074289215663634579410281497110638487473286926444571117434790096892032379053737409109895770665274067706862501725550577512417587457635986227630853663455745166012175879713437396915330730460865227081991651143590560909665372666460237304122676131827007839176241744482065834249842179962474460711452463906394743445771967847185825302382083883106705960256956843208733492139005133059407493901757134936301628527654106089429790212087858209454013831886607889183644254924049149880882004905325069484152151332013604794810174303868325652559525626148529920237137860232206362853111081548917732596706896384079088989820284269514004367440776652647042942260455439732045786866081911390886214394151965614535755139192453588852395862857203004793206877752814333472731486954721053250367251450492767420606903293202606312884818581972256964645395113221630658776052841356961375644790251573527623506940356547564235612736842816588532488939416387781892555865388633974026344590066510723438817700477398244646883919085029375660532070248907124052620299283911008399599066857008655556107920332060062154081272150618522044145736488347417955186905510965888073825561964248904354095357514328051233448612264350911254546899352446573599180763194219638381265916891016511396902686540632564575809872028112577627241476968606540551343656911605750872878891501146578651819075422181266895531187098024175434903967734402003487049001287636702423894830406395040479571723836835973906892658520950353658017706865427174657768328665505130363499074440527933916750322350045593150913201189399355402664188302679527362005266204688989973018077787205068592223487706183584584292441000990926125649064008441289719345927620520745328424813216044957869966955690740239238621922526608386696725454651001461230960418447335440671516257333217027861544698315768544703121747570381419635450007337037007777911078444120260714897371818319604115843627024571024858688023593123699054087002278562408650887145883584587456585433139578388804345241885223979338570834568254492438683124773511302214577073795835846160935056113220273254182390428643747385173155361126566388348250104251465740020383191712519751432499514644396074000111995461525680932821522391572970735462272954508746926172351917274490489080753067380107747683420500907642433549126534839953459415048618712836478944493869345137619374000614051540599372514266342575318410711354830888622797966192297322760910374179663524557038517202736484281844999014554603951585171124810669147441633567669007016050219772472704063741256606160678513050169228832080736733160435547382457530359997577943361778573505275557095924488189814987548006496648490634401902345475103924845166682088548295017659709005047839726418208604925527652421818330117112141939821550342747730548443310437478620418486472535307567359152179781973052631167819442779366663374548929194099574864072614038362279801391989431039851134415706018407727237703677888356239353482387419447526603063361734267629523945719650648035195706920432517321952696724123587893818405723208701125705829323319429410357031532899612003284828930574014301563015669432581076725803657549887794416366208174577860360064967192972484670982640077272528669126627650799568291573615726120614300219046433343622250775507499397826405152555475440023691429867562472264640095771980048509983705783097364538288530567038047702602328749344756326779461949376481249919732257826062995106440545535719014083559078713711457930046273862739951490275871603648945797899980802640718248860835702682683166751072157935316611100402203460410389032588269126273250860585472093597842718498647864903905978013153205166448849444373781421302389021148935026062994389326330148737913508515454796657417493384007254812718765734655984366311498786965479697754875604765514820385986873771259065556000786249681793325680504054364512498440358680982962043272444155187830915715316627280405617255485276387511698909015090108336605894550971964236698115978370455254365936772428103613792613985259953142006417465201021395963927854104474771564316026204785533987246511943820378618612785171104587786666799633451164697267411014888094700083574945791800760508627659746214495084999265663030862099829308988059092034655710914517077813017014236869849127929110715918867071774842501691728430154881413144446846257317742122412698698346738892585470011353564638585598482281907989467399068020813804228297888562492565812354916233801005599892134161740852899795473731263614201730752698244486446807842734335775390213929292925744045273103440927867740876404392398456186545641834395608865972957366935251482516205221535667284070589732270600113116570879024411306406028410266627033236644221942756122713260342528954523567724646490635597889586280819482678156003167701937594690643196032342748781919578007462664748819828279700518225053663201307338824584407468135251047093534460307649294870597295267474392864188027234166563866576670913429646894644614243334590166785160009934780991849863287828046931010676036223441555972363241632639138636522305132179295885793122308400854053691976322707923654974872314231023988837503268941728837818306082625603289200323986324122934438662133268612997830919240543571341824006377230790809030954722552218114732736095449591708861726059639923652388313272921550827130724210444868919967185302528708382322426440247196988829762386946490749913244540333159129340465972879844274251480033509626959345648155875006188566526132816470948953142254710034560161320379695215534673015344886332636294636373624611208631419045572854740213780443226480868148845896238528215041017636401264582026064676034815381082951375505027014020725223775620003932957798374982911095835279453295936455791957483330283414564661900251998121448761481885892032723644834202300824511971932853423895443882575522283165654109448903368544019550874651427543205142324215017769045543350576809029854254669862606508046189155022247663171616941456495559402653095999777209958648812351381493040415577095628600137908243955232365242758991686479477315454065872141234642563539049448568751473455574936929167312115975857912960727246156729319569201414449972022179673095305272042564958437959134213123691278121203879137364891954239295571669848753264668249870064435194830165275407731682464597988333357049638369207346735620707506301353641398300507991883009315103965617353675793907019151376128608152912164235085632879519788617652419209849950915444263337066170935706662187177409166605472026909832789730491077736679138470490580326933114892366093716752125935997331205036283977108856362777332278123829377460262721603742778925424842930367595833253347087603905794224248014941759686687147853387491824663579613766689688146193380147823899078260514823619739957863062643171153794802277099923614443185485062904813744880920094989555407902657517415354541678045466925844462750968042789277055220103804771251371486937994488515676867412852716391649114873321569860781602038086096486505888170313331547725412275734512086692926344468617356323768331374631420557302547595476694104400183764259461911832679951493523521969997916735746226717088042367672654680531481099018389854347404922434507667720649835339162496846394408767785306417120420560401176474418921960059487412726273116364475096404772962763851133094768841528861607495635866160533743070418084407026423532616703310271856706937135480780624089181266401446943278375650301956342332598331697823926949439434988578362385655367523287657689155550668219281032398694833479275606145410063033493830007569078977025961420360011071490499400123483562977808754674539764182052145816326945343374788684719023083491206495539488512738447983615008436168584409116867217903774117608582644544860662087330261798360579442553081155385690699436633808569843569674234049442227659207470694410246474755013162215961163452762734388107987885852551463889612685913386627250777230602769921483090575679183455506199726177139554249030753352296685661422631118264689328567714924312505364581769525706886800060095608323651446160146962836716131547261458090451014483335758121488453006534098632992769592653858652656225348385874515469814977952446816413264123466499672706394317908425532049754819470659915571822162032513026521100801067600575655161810737535196202372592815226703987744511889472405136329244149553823485833196448890548052240703786826729305848834082369524107021579800708471595639178068612698029311098038868214724510414064504369746982208168519690423672147281658759285770316459199298328492876456128790758463654877108272767538483285709631403388621350364052598164838196708432983056839276120163723264783341668258690656982323165419001840981066091709291052352765260966369086188257758609920673565973421967421512627214248481667460823166517556511062948811623293091316970685013808471842081232861473501944170096182156780611352787221058827831722682104315756500712337979788198198940334237231649239751467809518905841122082354637411591801805705961713441776256084074421242818632747906963244347266088479459406443627008651363348134296952473882358354680747204834843059221070852012906474936979249613997490616617295976889431018663105953979412418687752012330791344865418883665296484491622589949331481278693454477788097670314990329509914915194367232691082163371962382336443704348026195634581562562724220943098489752817999298703160203719456133533251769980624532773457330657525732579591769540925197212560779327277409041588165256748445179799133041439303508330929106647363574863567256915627189415133833574804332545344124475584079104997765756483926831576526917552561678344816862726016404925428252117672289309373799482308460147733757944633253802446925229871416730689235693247984767841853375140626308656724174961641227148295673979822644702122748925135012653458307632271548635109656115689830497064497767845113504871138247517527691623593044643984444268565693616780165130818293628391585172872886566558786871792590585802505636586114417162602272017094334887726213946593578524502587310723312699739028636406511898469011120636516588462855425232289876095089713603495993962984821382833956770881798889029881652950483242308901814228324156922720969190227550589422770762869239465762342594865332800200395302024276843002076001914122491703685734517828034172032353376825804000381810148764585249984401760739759569036838783856427267074491533003941809291349618115345174439630542519539134893101723152533683256371484583556457877425173226336219162141323243878925630824105441641830498023132072425437610544790135814814536276592362583120532806683984178201762644594725636539912457384344928630911831601679677224478356758720865465211332629472289253205837694664121829857559208722237954537508637713331604278402621554987367383816974471489256831292415537176277266810511650762128572204079168416608719646461240049016095196883724058987187867192013523365788814049719943079762676288168110124943137925165173215945862712747174135086118267450916450729070823951337642134789835683199075511296648822035701394739249057120565473722431008560898687612460573919741747184548235974137472883518063352681440089429302512226216059364983119891916352377871457790210609370347063666770320015024760564854478012114994836316102112476003470911540636785886244248740337635193737183386945472319253655645723737949398892777712800093716091209192617063361370681246014159748666161052117157058816004727148336760299400094294594295781674868916672353822553704563242980545484707879173899519095639536251002601425395715061039375238514349715704652740031115997050310628023260131227617179028777465368966059973032032324548306442273943588595609897744563361427697215194931382958813816824999541380415969522366876626146061320753820972731469658006446324040313842968985525823816315993876025443281834171738357478432772788755260759967006308560806452063086026606288565585904273039203661332815450255436786215218318089612868881960696038785267192364370058873946753158513549962461093573283972146760905256620956560638563069609481187128409511611455744186305915451220434351652631172852647564961039187115414433750134306052503314799803661161433739125843671070630584369016278448613357772548244877190997244669423142089031788361533834228465606207552791156149232306890388171705493728640535041829141170504065832072260204182124690837311558549055839143328012934744858924391364832958486878336480975188410329749392876064451909323632523635268492543840991433446947760939566498114794782708714954150687379378618557290306569768446157459289527126760035299562844588883872882724849982486453789840993622607914353275030236027886364780273239526434943764224979939715972619991556587019539724909427726729118225988444072590851772512604177843384812466787755375324128780711207821321771775833804867685911494627856968011824715037205688997046034996504968508728746606239223175003279482721808893925025554368098498620261207477731872913743138763747219893071331041388488348229334395759527072000654791566837110090569756460575892605669760470685749325604467158094833467026786343323545953175709097977150864462747440700747658811572532500274298234033907739866032011951248421546499614373998638625321581282360294327484804186015601431390068439325061679432547726203735557667537598332725152764656480056254821077785123980855527528298370484161853877631922934848384743118075620204616644354073737955956202557486073119833170930429416932692455932504010210771571242496268678589285252485308918741273294978590429686772968797545946950680039406424593018412098056018150894972425259826287729295450331984753489032572318960430910931192304420098160433385935304744477626447153531196868915877476220344559741112674708547041355158272689093518218903068701217586951289337517185681739659861843757285821290854600104597821774897058124930261187586818610977754868463123531203039600206397819006830828729412831867803778255650100507403273536961732394147506256940883242887337045185663184416461000948613647683576492160617807534779293556367418857716317557351646556354699546346325232138197823480121326769765890143170417070345945719218200968928522744155868869058511805978388665935943498347023985907830399537585898412529642401730581346148254301546390962718461542882036915954198266859891428150026194794747507246810568578925505910769873746746720412983085787725497672308216467044652104252938836398386739742358840728661645840967372338269595093138362528930459852063708037539740758746648195858428573011823799551571076489327915301393548517879705669741836494425212189667782755007252572336026524389643568146376749416148397629038751680846101429573197440815515976128147253457608327018886379774153295263817758841261197166386106215184577284896814795057166106160174537282940711269787179126115335717976197502170711920685125574644183468976459379179632156550202685051017100696885509094774535041753719255731454053639720238052188663803977935268917216036481919873695967232733075025929020857107869666699240055256906258358553917680762098231903318646111659120653862548423765873335680244238451748373459451063536608583721954061796282381531156494826815618606248244254957738130701772457374466150775258031460342152772196959179706602303760057056097708921968780891838122095718551815169119930752094352499206339913347464555926833801108173037231728777001586386982880072904532410018763504178329095939705588935585751525172278019333213845231490459390069142030167326280934742174594649051488225384049462585124669700614959241305197305223083597336421435398275207204327590434357170325601916893167302649438992242349863960887130144117168098448969880916558923483628005749704418654770420934852902721083529034372857377258107164515451704122000355540983688080869771018556939568985416359106398999803647666264990403122404490364676096674618166021616477451951967269623696334232429073894370839276988212729784570365236644515550532570204488168768527311356098409660147623509687035938748920597798258465918383608483026586254767970894484088057688850173821762862958046520434521937748288870640882901178932736235261391428146894306841289781404112881629030443239048445971890477858637288354852500820143176296530455892090490991166552608904694766431872614038341461106998393986750170262104168422152734364370056046217482944983291215226558927575057547874055564059404297909161380907666434002337526798289636714794767706217001286487287249506054491187207950635813416594251229754530254421239704288146681445761919476984132391313527283242852290777254679237177999702335464381208601046228031853832353326932044548900014099911146362628315526238553512232463163362575346743475077363660548410079236535321041289833587502510576965577985706411864904686889153153234471009402198525587715555599571358104492866347488349523512815108482361508112144370443271921922885273588787403691582545001654716232913191933791028704671356317981721347158990785123574775520797485592550189497882138488876755482818021879533476823385408373559246926841690488659936319517653675038589886062947712890553132292794770085814990833637429936508344261504140516870861251938819327794989184045639475446522031364683108251950453922679983166476668519423392586350993020693093207957766419954326665527074254189217436271576043696836956162762635491553961426217160398383085441634731734321926314859022071250080000992051848920501346234875732804874427637608840392150315984260232409228830303598817046435989988870709568503096882005510547086716795669148640781056882790227202477662623784930964568547413123840519430013233562184143744738797187208365295964780380704399664380306438963800699774937278084946106128012030910909688014311996069433523791058866769693397086316030075334839009266018571723992534106397510830885773044802403203680081847398794646219580761741592751041463212400601856748571908098781167806633040682474970680580537218282673563806355813390977819563352015711709951622781710056835477002936684390022066109064470739779719892857718434449362603780346067588089284902901656486749750517921003254517909296282661632777097139691660141912868239043477740702713993391630456148415843349176058652922378970032948076473841516736029681186470270050260886125552559125763893563958936408906808479464041883954438253203434976183442745115666258408340629962896126470858342202876079802699409225655170392783835280039005544137052545407605306541763750749413751923973729485652904314481416122872193559419462085091780068323877062027974140164184636101626185870083397574895377200685896855740016948988945590149849182896336069793011078487663606580796735174607670390689275760448315665245063385187012826381668300021949285938739055495777270026053688686016259402612067290887085814034564154003367892490505771139905896314492969225842845267743065149369455652173689721386478373248259896753732653373067334513411629021976766838987375742644921610286655609586470178662893734592159151179822496805497178592220126125624585263682333586698214882452693321603830340172424616641117882357869179959567402323264205942716394688732186208254056153753893977312515227725481014712975076488039186104253139658666859682297726577792432107249006558861395462281103025900566692156269800933719567702287327014649463292576734218959927966306187333302738550997793129178874978346930923120428908855610763068395637177058177649821128018662144900608079239169790055577634325181750761616438674616855707470339234699112027043223928025308513403103391117832642547262531311315504864166143099112294263279896365952983512292689367975128096044266268155214027976538386866116372247434789532771086986077652946476928080360998715886510067890722604183049554663357103982001206897228574586173502436263918045909847829377195560250057346354998780284735718320936385526479455509230934579338139236450929681712692927193234668838692560989134795753435088468737524021508741612690150020597895677487205725555042950905402382098088760570856302438741164005676875874050713347700594884925302302480004167811874630453555430577257520759482339728571873175248477589979590354097805467557138355478821100052444204403433569315707306414077924250003429231203137365038227186433481570063055864059765384411901092433939211218796403263804321725986668027793479409548391734181212311306555902363922426804367962398913373872305804348425477226310612588512239140644617711124468205596300230844024705744119551686634159239866660819347734212308133238209416160042875365901332658011214460741295573702735584954843074948845549378205241849638617400052918744304658947275958112034567559805018055266868761386041329063591766286931435777030690195598581870985318040651137052658081156482607243962489037787008126288739715897751066854665607576149668308504831937923960289446241578416995151205414014042945009600994516357869328656257358155375063483683901564553435272169028274543870326379870847676483433104000516317295285612397736775950173197065336089306194828946771235712886392678340038542183557679592874301561308352996773258649884204334439637275210344988457308038399903839794712603216106115659110035898264350033908088275840049625984435138048829185884791080457094170960084580968971108661032376021591823494440849194945156633211460651659071294165140543805770789647074186942529589310996309121623846214749587812186018781492159189591934554545314713741390618609153691845074899233748544431096694357163673067258911410260622416108644347552100391724495024911208255540128076746797006537480360298520683053923966795162755419484659093767631719951992760721983474973323486182356787101193233690778709684866526475615813918233741305853224749647464577451916806352100319769733184678216904450700616894943239370188110437789713223717904802535825225019498871455029980040900216668272282557425295640244620344510983256877432752233266492152002389075403259556900801804708027660529757386552310496491562383649980003860720264163272686941511123644129688940293013906081176949479177536751164435712474965949391438262685365893763119682606185702694124801822837409293676872009327461059347246844965033910397470729256700229212467166727727921276513425363651031731587185515691262909653716052768716941126571834190209476186724855051915424172905867148167380995566932251476535868507782242790997988328381635012792702310358933720159038538717391606169824166885804812217183168236734392263453012164624729568451034197997693897970375568468554040761617506303127340060005413171937799463401903882680451576884383195976362695424055146167755196117862139598566962943329315794502975423950522586969639162493824847916406194540588323251623248631705095873383591495292098487612088211899361693719279654344829686693580417879540685984766621117784801872310435094571707082801878665827519619911970919204930993351084306352034887635946193184410370886346242958666042822300629226777161594691267208156639228352996261184960857046090987295088418643125978636858877638878571404153605660387529311139156565645604566866016651052914941947030683935000300760128738840978246440564298797628443725017943149980501191466968437062795882732578565113670313689725446050281023042130597184154867410364024979727285282654696594048663967809411208417916034751882414270264042938820867675054564099894904252540578603837363151996711993407868336117479573939073248988540267263138116638715773672864835069860292247769191393260731151877438373030147034457850061395221258039660641307350292507569160993270938709722091418407115578405746304091952907725835380905308307559195573859202041517387021741568433760995396710569367797288448170268393191724030343674380797827694338387013984574302595151132292602052294146127065880224125694174906227261597082106947389132786287630369525612347102670322634149367850142755358528848486210281371665827738334484399469928059484977576373675008706639888773955708455133397624350432544439496226324217129602986064217596110874253933821918252578536425221200829625271345422035282275963683156685153724981230071185917793307085707706859782061116861844833455142756995705719192664467074163760303106068124871167967096982863702575822618357369791448498865322632850854327697863826896592790928052485238966594802488624064295243375606989497021117319256530132405606775727675245515198312606066615209916128740784564404170368314622638374664673401895471730768703511301021167112852538844769871811420632786548205245862242408330624163400266531058233263450619857840743080297016556020792473980329194061945207408979796994721166576213653004105142881184795523527756985560989307965246952896796843783993359359702775794911468830240353924097970691646795421861719799883772772963488817604942833185234292623114085294070177396266255240431871865582384074162824840762166245919132885356530402370110490779948257680772791087384186554564850891131103129368754521230120406608884088132409223326141524765129302365641467750348273706780494943974832416956533852523501107599655995371584241980171274645001095926700879646957350722540886303979158539169079730504753839480933754299938655551795586167345543264627615910208935229933972082190534181316014418926594519733570073340610460920863912703593517192435557262341656770550280212811918443406571656349263333268795902467995051209774200387562700959497503585970749292471744335524613339741632977021195654338087968697090966785637416525507534506934672754879277274523355169250930552650137241641134000053811932693408681348862900384556066755811065291469629096367265655620469604673508905728786332762115796102173083368839221287318193022811398061905715704614066989726987786384242565182552572026769543940991349786483263775887503203745480063364262699280956701034083333099566419251695865617627290274205490431669726471202405163249496657271580053695927404765237586784605111810208177389883264573641897480406836267748360944526787577181905824869856960555024965747362674816463144219682186887058647146106443063603546512069460205615174869862472018326833513791342808213361868263677638394527392215720527982313730211304084500248578665720495852986630682043316717823056158028603555285401229269672696530343762733868525190342637322688585739185954278076168574267157354206010771482843584656398521550133609717518274933142305419757631688882367220279553834176787841591764920809808942081230848208438186176354808377978902415570504128756666919204042527342222901591831836371240211816520795866505907744863427185332545676057851381476912710291001392051260580190496735431940240978230261029799513291605182923635935737339467460453272738128790819488293460989326270357706634110616956561218744151463414321811461505261178085018309648246407036436847535051722580493475992212799705072148628521859888195554151882648420887613521899904489372007970697553973900771364078629343200508180267780174977089943733994688875632027478740361552184096842985724645754476403479323035902452141698810488146693885473562565553517460848244373283241950104194254902616670295942292540583771842657731079636104726831393472711781510924840085424421127900037093382339028163563310132800822641587299998149940538873386586563027947093555091243492233441427673926204099252976008823916004570073843306722949198479848371083378650990917075424711470325927891554997533415035440452214101074484741125882740560590971308502685486292984891037302850451468396031814319057896624020072586144604506338841604157791356274568900258287185296041358406017660385997617934006875457187958236514907079938974357991251886787891119318430749841965136821655256515807171634322924456788434032116580291631055692804102816519457264362816834760338378965778277648038062072203194482451381030436613681255759654240992612255987661232714365296048452991508164535004912719967548584098231695245285607833145134868929337674461894620168909683135015553473484712199413622598613011544845269299995635969146866264287151966079702569723564596817324828532366728421865790472392297840159510444510433219154887959203056572262003366172556041939211283367805996773195601477481683491071576244538008398246330538438850237383414912228604284304485177928794909296697157974031103168910802805143868597665175940782246843026879193207236967189545794394070838529535487999238476875783838463177706811460488712854414007358297479814438441474700269713154237444892178426202430342430195663990915340404428754574368888736954021225241317405641596664515221355642688660552523250987961886544561058669483834450419164034779267638079737625444727607869542442134443029643191717449504747618338664085372998561379523599757614623722263177400315902191740520931229532469899313868494268832908750283049178730756416876441314494080590261360659426485218895402458317587246440559655869891645200675306080752152379333673907399848111111292052144313470371372849012383993062850779875016817957345827282918768223005974454738152823199533809821158730588072406779157382321618339100837239389755731168127920977977017036737986888321931628132592933733889363321583229904265083785335898556730120318674251948709415497479706986726618743589299309326307379838427582585222781390837415000517169212837711516205001934591694261998442235273637190150634142206548286325826596782458636332653011647376814117913976890227878581676577957827244596636479732063343042950907218984577766505877978182903687238553252145186184130106892017286968937060032582810770676041218046469903479987857911454263896828362185418036639694071872041421234669639334278730391641883618401454939900444506292201605895401668544097313002159263637844342864314674643246753579701101060771753400104722750017677950964809673143960730105532251102293348519640742552093020708804175714774972003623736928479313455394704716677964634094687752578607430564311821695826709766854350492625394585321086326206922763566575331503948342674317801713781967627727102345280440701942097078456438309677132688039313558994782320392096690453124724005801299597083116090664363866168203714297449503245697505410487962938630445052891900313850707396563475154350165736550200779915445197471900587037164524976212312837798730510194225312174444207115824403179077879670125112308904114320308836775766986968481065254247206060716328057431423594922868927759012753755155216903875885473715281426295180218380896100247725114191441994056444361488360147394249260839752082212057404004436403603557759307860117747357469766905233159511422165573407090741930177768250391827338966506129767974192363926013086833466965677951576029014668493321675460298729434989308049832547098338840737784854092116530823189005198098664594263300156074689739850431425718309828177787410573259641481592575443759626500010585122830192083045936137496373838415400945126541783699265871164896767526678150889222536218339381192190885204541464845587060585386726765463583691468032068895622432729959403183326663312420562800479831664613883086047556893548903704173780062665019899611612651641407238643766404317109106773334056262801082536121149822302619033221663029759630780999320420010314452398054119051047354677845547659945780437381637604801735617443875691453299610200741850308982848931831968445016809019006882179233887903560509655560022901174625675507014154202709937745673287879893505487415730692128118551114291140142072846253735391796854934272900666304892759250326379415630476789667541046063671351529785627880058074363242801470645596818848452026937041570531624826187595679059091105855686005407669952756390147939092752589849196599110555482770107352468862541984190495740961454352436099289218241681286247372072367402350679990958497429334627798772450933164137946009455292671302969973036783532886798867919668927318276493146533719680317554360780315647534345039960222302006342404701480098713656032962309381442266290333667901565406341107183204652131032886046889619949045726734125862036070457819683188045984089083178446470175907552993113493019036841632247925477038080551332933076772318924675400298276785300955200844377334257813417990931405713941275895251968153206692960224956304327423817975763221747684778927196876356679838509760998979733060572707723062951993209085185450614550687815020718907708095139899859207135508501441731723818438884966506594983374392448962800442036845966345961071969436049978744387705064504243106688549193517666499453947108579870109617081617372648041981836487496519210822663251274068020561268505655185638092365852338445845252214198920349640222602807379112213929217777422392394404721482204650108261543096482863084209469163346013780062247071090868623971636321330447654573109388830436459824370947597568198288529238869553919435053612530180338485781075515236912391050877998543886636286908204929892452705939498438230272557841560534466617866984891642495502295300714559742215388088835719685814105311189083792913275481026361257880744994343122235523066458679863525004078076480496210384866223412540050733979386463914676636133097965167028507920748616396937399563469589791496064354249496770517123024374080849909794457830419085488776486987186152943281024233473267440425011752010717840088767687630164251977294599812891976770278145877976576527552377010468917627127499283035285207960432222431196226958828731055835611284332486145853651846438649476856160356712151425656946415978291009505860798158040588078183813587323052063296250706504387044174381207453923999839667504719663858110773132184668601611846574906851437068672941110640346890536564560930348637690509621002077654794862953451580410428581580331349047279948844373261160684689514936062736852908420093964938651593159244851716687836187687250970186649089855406669227334135375103221310768752162609640994669586200176072861862456713535448343540736329556812431552158475388517752143670921019699571204047044927439734206875212622676193270810753760951142997669027923500633486893046761114221179451943824023458245355073629674309466151112784047568447835016612220228408369262824721185539757359310743541642585921898502761961837295415709927187345301998309391213401880710800772973107324842209629797917566558047788387886322959659848933592588295181519986510848984145115878560642303650306839172585960678130107939463369046416087348613357193282603158888674582870482235416865685855617828632291629240197129904481829078828681022863652670901955897737103072540638155066085024193184221657098048560538470225096823271672836626784231648174885152981509696983171398235021585838947649823705855563455459234865710357763578422289002112803697920801732935930078419721245365593088228519859634065083380479842173530118032495473523288988486093805544249826721926829907751606663315765038533954629594657734168027842801949457091395486717510958841468363607227820290197849687071812614438163274001500505340429695528967825261920331605351862327201100736838703922311134360104256430342313172250711349718126470487301850384318397134131386928273004827333774354216027621542068251051431667567799501806926365028139518770896685912226208295382548108010300850307717476375183300899203512156796701762925055753756233822163396232850483746803830144402736179484906398492515473309386203093870528297728819844087719937935874043699474639637990944842237683070828249403791202067344657709854610613779644540990379624299296856164936885675200208412132947455268474936515342584490180667252466728055563004744689892095589484805070627633122091197955069153777239150485578185724376409690189644233264379493835749682969780616852728540926236398693558753840447795640308171554687274442569915284351313768385860570181931693865419435617112900220945183256255816881032247948306366675980131092288569426425947849238110172321040627872345860873453990402419994229552950583160046197600863823369918767431655679282946396344179440731897533845234627392726947737491116738732998499499139319174758493057756610269260788676810138788888518036864206586781542353435248087249939668679977690284603037678305157794829119107597527252306293976361486715347893693207596791948881877806851243083626127922868823331684581288565652636755096349495008194147908325170369632059452746517888658223351657404514704987937945148941348705692589975391058532819634977805470816826683271253426848237889703386324359699332190431482389402059709200380307389986193986846292260162133308956267290786893728161322757384494910933570840416047145782953496925707690135014736029912847395273432467220372260913318190306607571445543977226807157187070209528467249496937616207965489869744891330731840578394309018511052214328526591340962977923608047926273569924814694549480714131573411649066651149524146788223659790721405503578022589259238436276850314758990268993028063743890683119918491166920356433215014569589407146845188815355036318597670826738203946170692744599255599001276775547758894971558184635358467142468806037050296601587226712418057813325788536151502946859971569542763526126360029244524300691296945690560102239736763011651234463730717839971712254364857553867495248958263230731225850255045544828492032119947354284767802422542474569070847469154984000082702199644706329067393666062990508224202930892505988547004429245097710498071652352601313789783757655466367526098973173119467703186110852529571721595359284604937806314917407173065335771938156917698335250244385861699454238611104994559028616794202813206747214203238912810114944144267443487347802059624425308015520704832420706480741881757040899597799542176425544240921819663513258899624874465857774946375922408819107277999740958092258727417712922063895645244648548983142292307358413717943953703905483415631532194528068297884128600057933557624097647620994956172965641575613438753197016194683476364534410728869679663435054673318578995203162425766126644245392580197934416303465716301216898089920944875743355146021365545918912581284040457577143684495596343919805235458579624432600025413373512478894403263644772624455170683070397789989382778594445598260913912608337608815992366572142819223556471451508547588794861321925741461294591445575470464955945243489524188474283128713998083439174753961568310273027146492198441848527822457829514527161241496854525729639000966545706390180895223275958289350623914621179839522321828418788132034853874508116051516124442999193904683993320107986651436022019206323934781013590742666635456821411915342719750842564500767577921934722925564425563002405926881969491640536584087741498609271215934375131258645040479329736840888520001906648951881916399933995316026887390657800146888530500384304304764775329723432012400395869911703269098802601904781651313144977179744428642763106836984518395662965152068883246600181580292111080438003309459492038518506318748879535321380808095498278972860475129847036721151857800719200008863198893743429695627168006346114863997726915860953796725457183722828802064667183163282724596161145566649343791595794076065760240391132405283590728454696724419818948240586651764535213219227120817633193106789002352821089550010791342297132358894737117917370140926009183246743333239743544501822660286089777095162657884026580750916992163993047538247772811388176853887955052245143738941010709390677675594700484342444085047301734591060192245306754158296525549133333009310108654881284721559708929052749654852316018710208444729105143963238237131111052849257805350976765412529336501470263455387811490458567182341272006923299275826714216467613802923597963838546541889716891381115061441991097941863389524847778379264702432952535690409140213920139847868574315498466940809053018511108834184369704997885457811435476419369250766661315632487389093786162823893108184330337028465485052528671461460618992071720035235522470354984567147826672835519658667303122655288558838689825065598707820935437438926730039419079697446211559412134023381012410376555178916737600606993960386115901344942752433530340412685708624292307018482445561778939195279487139537540941296356155791367516845181483511227640986807857168334363615021241188278520338508395752976397857055329130948450074790778118626948869046896695183239554974825958690510427225826439000094768543449552331024209521776906460764693683875310699831034638518151146527986581407876385625126163895992610576272407148872017152609656052944636415596443845532694949045526219121529346605613387098451103402158367566838902865837752910243137865023728952025894914582802871639251215856907066818906031492527086362667949595196376524154357931267382404266534806687855113274489506524359633763385865697580754871837371949158735217023267681255719763128481969603525128555406784598344494048036855049418114485231050358590310812848595026548477057076713149386297182054634122375186593904765562679761848281802615001694954942125829911532272040624337834507374218853396019285715557854274526435932962700697423734978212232441921489837610269958164265112558043286540977912894172735553274092894592763578717149149013504429713454397155245171934481352331064365219498136451357937798135823986461207211134560775395649126944701247793255645925309344805933877532434204765117487580891720085896714537405048170696943840852659311382426008665875938923596842466291432163258887809769644371952805306972305519623458010908266426866841113359017909657746930597782917305461652630882766787151363489471274982360558351371319634780356824928679458137763457250990659147258383619560272395501831642455085850336303716746593071318024858667222177532262318378655038116915379055993290921362814385388407985864051322049266968688876266083463737737625363731349138136605553248562008571182493829815265839064269371769692230067599402826002451598502511784352454271126008362365893708250223480495331459403979835656515449673559028996868837905337243755407266097882275345511181715821103465193227061032765222778877028033673664130737784577438088171675354455949614951335543974798262479536589915361771446880300596641324252534752065009374269109724463449460864056301126115702753753509619516193144911368739848414248752085692297872125546249079742878314901409910111939449379742817881507921310472674282593120417188910284191779555824166107429021302517238600145211691200917888583756360505247007791409938411654988853663961491699867388440031044739088344550326962451238304434709497206571273493097699049096718647926605679479327941058087885126771865481462590688429485801353133131547442806043747122527949368605500789513514950803139538029215891526130998337742447922055272746859989378290981441700651984010319077707164150483633562944068202940053918378425481479430018047719799098316003629755093318343331916472432755932454254812972168907854255159504248761710253660158486582638138828313429975321090091065734536527213162466954329068703629015932851290471645849151635547062411642688522674248646580917873976407248119307806820541639969148075427207498551956159121386149820984449322925779625893659182238068925851335615656739711968704572766199683807389406026591092600270404000818645533606494348373089272721969141931599779633163227162656860314852731551719191995601728230430958468571706807407244720699789110488762910943462603453598974692420475403203192465114765769913775236461027469559321793179328558071280404006546855188029572730563241404223850006003689441789540392148489551520760073440359061365845951902888994635552978474667413516785425901520764328582137914743946334494648939798164215493265473775193739974031081733173137480397177349890424331798308096715551420589331455400547306532353290472119450381428870653138210091797014635611869579854092586121541505962853581153712673662806898002440343990854990961054272254504727218254889851797704676738984003386296157996500010290895839883009455305484746463303274009011571305616343213889616306056280435012319281267337109739368571466228398396459639724274799339748226591015287843413661037583122564764632427690557569355280833052628320080091300417878289614369130595032280921230109845953482693966352241784039787426179521501755451059738121704388390826385364686245856812185146066235420011447219858136784801683275760264285820936949079342751377083300829445916287201288301002140570398753454058593377863567193613622895450817081960104588901217970579745656258411045621616422336298686154221311049418291453818132204343197130506765123038537175540764765153985539310192149510655691903806761837817927677170993571466114231049221996672898116824859118633405281322906983224603872285753625636298740241992138844150314832292760401823012287485726025146310383112886683225446288218398040003013891369165956001724424637171711380101226503347543570571335473812282346747935294901559207797519416569804603922172568624427309947231870226724455523279769664689747175106865249171803107097014659207142351610754007522336126332898899029512450988506633701535402492353678564425756011364211141360924307043976457221719741153070694685687334149938705163391321353512586996226071118696114673386217504684828350411445496785904924445283327254255814376870227505688951462636250818051238463529205466933246324946912714344547815170622821020650323269857003650692045501748330173739293673569225916552629185013024252106248175599423553493677309112549427402898726159272802291523669245300415994783010148692749757079869580913178231611625388080928121137296480667902569407585656200648194554065334919554649217678730616860156158804754780881783336341209967473650894527703274937868426469783379585117858785797058585538508497794973105232330031546771624277864710132975659231205966781258981167778113865569869784166945759203724352458582785037191373950468028190259985792157820402217212721452927085618359086100364495932508225523930205945782253504801053899595194996833254331136532070383964798358199420759377040674980207852052205663712701723215121513207066349067849514467446380977187143972583475035503713834019683335684192321082744458801779717440028160396790530922668860361533752990856209864259241697858891862227287747068096478233948489494744113925822824242825240652959159906834329010483705938288758012511017646011717885294079982078686218323421754928229711881124202331474898391161948264999676298685786678047271404425747246499689555775414658204946459604025888969857132379654741544758409279693783318675647107836321364699055484802283834868848118805263100369770646497362063282241772273263163070554328432028258306872394044843815152366439963715721477300444419744426581196734506851033713446590314882001036976887999212958452567706847418004361916965710702273661743668962435447034196411461003531818783121112153622866694551651427354119328398493970081795801209719866817257115764871975426140986940898499080279667532562742674861135387936563323420843989722524471152757496742268801664520174358402985015562308740714423579985730916339977131150771185259459338975273440902363816567713376226166616793257339967499365516234027305596877113774251295421917789812076041713237511986511723936842182420632497518191817959117814946097332430494863430500505234372294738980214388482357699728450748924661482683285658463332358818353269808102278438352358719285522210012783308904741037001219249938461295590650554945451978318899152878603185475457980994234289431565424240183042399266868456831968707622251813969229037023126213466784087701147702859846290990808456410789500020802398766190373911402534239697841107983899614577522132142728079962919543946240858950051279514379141241668245314158695612293453647725567478559587987429987187197938596990382275714646992630020150650075119442488849456989801543770060065064589455937706563025729188115856841597123169914076749663635587267820892970297824641808550452872320519870208526604911204957769092214039910317951836028048906340065961244239150056350923758099902492900397236718399952924240819673914372836299614521138747922069291378406079503401922180848465915302356582154733707152443131658305429851097340000034768541868577251556867205792971504448486896960219514280495219662253391128902104498797599003253780486271891587168864236756343964091554060230550669686234844301863911101957641702071492925301730044937679144763524746299786989177667180487557709387119287698629015454656594380281105519061028003184044958148710189700484927999330623209003678985188377926848647666916835311548101937537591865156911077017924967446298700614948864331854911544713051527945203724772048284803835812340202853925351051484770943804255126305815980113232099402231331948292699735211018189166340910126926310053407068621797622098254753557344870228817670015796215409549638499455611862410427422613463667522757842019188132528854144327834925049741282375092152733225319101836660453589323195848171766222717761398253454286436863330611317124250026373977572633778876968650375248841053829614808476265868076365201278807712431655293991467378230353596102408990602712883340154441552449559462521225625955062225726322192147078967776288855556322613040459171643128539252661763840973212920893262524617470189751281744775242132430191843662248614294941085167548999410578582092479322046037540675113429608066740089993173468331915522713566334651457485008053412196573593405374604819552547908754524492689798842522790797003702077331202189621797052055435113575199214105981386696182950298281521102662075553413953273052955685149284011180005292844052587710067578071644586422429588118988206538705429057517260391899413395822082254218332919332322894846739622411347428711023854676469736379852387681832456143637225452158005919611887928618076266993407660687789092968900907632031605284701770295153620261887824073643918752730507398989281292192305460727306799436476593994993829718254147637190256429539459261695456533109603624215092114430097279321590961664403045454581706987844681430688504051614237979836664395397235394402366376730881379437925513096636425975100618276200520750463842394546309376240492990691849770452421510919348998011604183595351741164329445220329495141369411491668256217270680562841602103340098806685949685846590465776478717812409988636918764966901720197501526256555743312241183673380197887395780291375298297314289763381249924733600832364694933639077476577793626586861563591185391403741461912417873270672933959397562450426001702513819293544695395483477662605654685311181719802807497539812976517961672064727785950665957702141261972981423559072957802359986076366942625759977486387056325347564314831037014450372723064188457314970389054587601217338050689127508794859213557566673897019438365922775727123485045686964761986704327619058095773806260574330514357249314221612332425582094101758284473862799675940415378764298806704743445969323190504447277410609349817162717919385007578489635830142143626408525907890356244871688983724560767520369018921807860946529181011170721316843872833555353144728442126896590583867458668997317869000874529277847088902918655968354879676310626454905957911427226740415845694897575587906536065878954191823569876906507161418928587209163391604769712960713443798001097468966290105087469294103255216059925080888139857577421460610831111909641344012015531589470321952522964808501918779157652802992515959755142930782027471295813104199689243010340537562224895897886252588418776115882286597838071451950585379666173118847351679659210348221642424448377983325826256864611516422795164907227836980538200646777758009282999245372398535433318031729888277967801943029257636750418867793389702707974122189906962235149313733592807324416772912777873978587621239980972414895212433276066493641555528663127398305474343629671003432966847099824254175343390377541117394473613115603714855311152830447848855130099797353162204269335240960288240167743415569217018156182489916143113171989199937637222654817472875852847694738713163916309281196829043505770655141502433142279560796464417508899522534474837247352998815730975157489972280364209079167786229797468701860278430515319980434678191551711359197366271125356586847118087184284059215490178273420041652766088253272040056475852862272407475853804063482935570159533967590003506728907284389605895743950877003401649922454007420629994587144031909275505640834942468447998693743410747502895426211421869120428796762901123333957188235665238302582343618843500405010122561538377905884562836669729403590544601951609007171603836730623982286812887439993527049126434036996156343207069460212537671134137295266961219106001407066232621226549018921876493661438626890748723484073938794198430531254485634140545916413125820688122241391185076892896227028109885100461948495934333750958449232606821049644612971965012250994943938805136987868021468792875898448351483339948380081255735682192943546530580769636669370608203544165831934141960543139734542511964598906290744582637106015669273409196532907111346717780261686302014184802373588165241192176482735657330772165079967386225088668635947454578688539108638312879503708501115078464259204279073490322742409704154259579245434364021319586336259185346584024978533212158894923109914974768899977416764061055522908397483600798255730569507847537538236804906933027495299007711114191993101556577875741081680735923053406354817487224269778980626798635853888522143874383382416635746919255762993699158465850188758881142186490585173308847397162594104936210106103415901285984678387174366747994771077435831984934890114623461650504322833585565691892930750662739872138533299873241277048458393880018722901667534355740633689466183647969620648683476015021882779902304305297863677020223518703526733030078568396930575471364824093974050439520019520753382156938968606553706736794219167553171521711850094438799138729777149740955805405201109669910812043398564750303418135413458019058197673194648916145820862044691647237093417367764531336570221031919714727118152906634333603657954995536782444202086241571117805690277406847816490912077856412335527331676409514139986081271659878742427013068465563192397972953733868285526538644310610322748649191993578988213597520725850324080993704234742056482429431334245638534461402959818354023225708220159800903392504650030901579677483987496133607752298524676460083997323839799217434215790020288082909078072935836051341255983318791172702691280499687488700819986070789294008961835595004155697173026822243024730896973752486539888034359507373698861493255381827558970577835339256977336559994172364253845379386735984767491987606579598993940402742229997681222441875973029049319238887336237931375248695588455961777752625635338660809827857401883502824008153235310157958346186396867793831970448701356622784418182059430390980352292494386733016373465411413636447451803717209983630580569544510302582214123632200141877419804904629581820349837775035306925808053634124349182833192875352031088770710030364622598921332373514016220932069581829328241385422011514520770151308421008725383616167259020200034301729780487942528004734535121944425955355627546247374506810637709207426939899950702577752620469133946205543698601175965307382860228425379793228405951114087141382104276331523347054833997212759337811943493289812258582524454311616528798905660832055620389776375511380179826813398924089402395154819844621445518998462442281045400914691413116067817576919354230407974798576550861550266195119519723945993183775541542003392299954522764121955665645230066503968296381087616930124962619465647423751220278384933297976924000280515881116172610445227764202470577946209960783865190478756913099329565169520451764202887223066259073137868274494159260005746215616172711084292809290963123145081682615635410751702323771823091689008555066351305906915889271298670646161763845308638610054224215103727606442736966094309582035059107878215691847393360381699660143171582138149299414607275894348634624555102186785722715979125353399526957563533988274290958894181889146489363151112508264965685746810574424910973920527350172784281828457205598517764261774458071574896096591666094483479472178873787114965487005463233437749433663012299292617479483500693387931719716086371620024052624303935489297437292823633863006770235728594316642249845960584629260342889118337241188092317951823038412396859926184138914054030531164114302430126290779872757626917410940234029233144198090440453257800208844310676642708353991824450810699236259975683009522962975221620142512987720236707100464009233080930247645246557459215165459540754508460729231490282699682743555330836491523658788355439129841899884289413140381487276452150038961785765349386048349201685142177839780658823726470848034060079857193110538740052236547755388348520616001589119370823049176427370167863254876294640272124403580978419535640737504114823498904614995195262691957180282918916688554371802123228750537678102717343800831014316442780419610103469771868488116550203534533248060011332904555442674789311375206730776151234536804759541122851203031595569762234145702830707545462915439339135625754225884374939217636022816439769673875102849505804202077351811557867212760698399318202935218200470940888124767695472599165784924894991419721456363497779712455486904107466534742720422052375066863008864914865730922186536494156084304937804271763025906440628172801979766279746770953865512391823261289825266233199660888705861834179877358670887395318892574430539722113009136860043043606483640634694323297664364372641107164137710598170321691962054541447124909717547845787024603195039465999579518593504975725965372770045827035972721365240593947980445364560298226177249681666989043132653758896800689776270989931218475194196715318545159881735858632324468021902584172532557374892426683226644794703996469635335424883506742411395008807733053489522019947596228550285575707857212433314584046316311507159253865410351637756585444427098240281246833672264195565654297201527280921731153692106197158971150969828238895329040229071428895578275282907331717558605938769023946769471276567733409711936572647362409776903043161679299069499974266779792527212405605734782956632942297372314268740923573204113563108823150591533307807708105057701800349385090595342879797247413044075656308193659846605209326370168027027513252401785964272275922420443108924682173731006204025150072439438992636151704983800448709209576267702463336991676242594940874176306146930897398747890331039114410066495569028383497635969198579601629255275404668801090715929961892407211478814567955544004199125341512641644953888258096973628975686556335627999495107928874677928071932999149220055846165933429705433214452455689967605675361383996671081614172183969622140037830188230317745049472007563546912022623071074685420962893439506479067851523943434711874569762483481244121257705270399750027596007299647162743975495107516407893923930670309030052648533357287525212937614656641673889264615869472853953887885863090018013765343100982115386060767368582033627991326336124938780201224302450399778073065595012942948939555343143240256933732519728814537276558259968239457212776970153607875594180496287454755923871716146812404253130701300993824513107031010025700784860241238089968770555400239466420438978530829688728712689913987305171173157846445020796723437226783986671844269045600969267724792217208803502166594316060194125034287324523028638128601069296853243214328861711442410301498633704831582020678493194144188530496643500991176539711253333629355465928960158994942403853135118684943458502940477183147572171162131603970082902637492872994542102974850771190752094727636818670715147565441303563471528314575134552326297955953897458964096047841259906945628741855109022133013770390112129733441227433340351588300962275950013671828843112494079036805214151239527334929931319882174238315704436801787632235699857184750644148171968847721525319254771809729884466168385157558860866064849513586046440434908108498437719933425069468225059478633061361767895543140501251581641441660527096119126037398705871047941428878139849993927337547154954667535165188730086342237391085251804944839443575501045147210745024810030961251056808991304009994637473379299370668922817008648193202337938817040148591003255712490665771186037240641226592424359587939125178943797391968634864481391849469364959523578905927920774855333320507884012141303492241517210631010037251501076275619361732176415913460159606192060692087895686545691602223917147137485733952897457146148962453996039717113612439311024477832997571473830848806864153760225643591150511681406788681742973956623734318350536941591789712851939740496986300458103735943172725891322507891948637355383679834903871040185396130422390333990010506153702187150348992320916579808975866897440139169637640194219039346400178513612613473439338855371986096104868678401154493579470085191414826360588713267218374719709986533232514251179421815166636923589907368492384203382429970715667665913913511775367656390482735546261476970695376331889583240294258556020386415781921533316274254195211969520160331676869870307050670614374844939398509773492375781803656192794128114822659387300443506265134784029931104211038869510944894368403444009932298230508136739383737876489051166643299836289657893155897583733611650732706883154297745870486406446957367567547246535470805349131607896583305494426227618178624378697198168692226519885029079291169693351936543691392982757047425150736880716352637194793538402800792259051779586326083993664749530630735428911216589255681808421124030970644776904882996092212063437794054902550369656591103777745115596454809456458592013693383933936509912404664859697321079814923439708566849056274749683724534332858789231664453547298499190205231877483620029235058219418974395606817214747279526052944091794407717157467865622738356422845772643139200210716990334740233153161963155565640494905040081678147281903350053844400838217472942986431398900601647676415494989698867697005827847295257349696304590956503044980851866656194632140432014650252405082635487829394380595893601145607941499765473713172413866545316611391787646330011784106801447676096308083804369169354357474492553298190607662562953185400452303488478809720284576644263174620763447601830392028215746379147184079523956466620754872300053830910151039163884813857560612886509949415481236877719682407337154109243914231078210970551879697747126876012007444331831443922304227622389485480562654246626527218762119832929642436784734010533252966651504247068021762588997543672773274523221094812300060138629835872038159916241607861854469136123318792167998859113418564934628908741099401710756036826698075225913426559979654276392798313773487013215659369455787144023351799963300189433080332952092895132567382926911965857328749201446495677314895316519407312103259593274990810748483318976848290190840808092262957070248818797623519070690357841016178764508295916825819387408723987969408112866331165233575717484343647623335612998107269477978407982274169776526233484197469218719065436617468971316855522294135747484441270546431330113125447744485785535900922753348636070018275204494900708485672181277732502117467571706150204269942073643150058462321911147633975033572578825559427173236863755019330687297818002019145439419376395779264182044972665393496104297538509157802670344683341867908198332314658026193554185310125434438380734964220366828785175941347427737739673455035008859332179507936557572335932165073685173878034371118210259860685698019705905671552732579870690274900305639646816655750391839800458985802912679601041314463833591262907205467709530936643097255153433528420307373364918799125926949822513008298499083864305056729352616243919657108965879126078275787646201288555771074755780965341721183181864165852223291654876820759041551631519930218932450244223525325843795174367958707390423832961457500293636547684743223245464728693041386153593161369882215034718331522416404245309218360925594140275460214276765062149032785217181745213831370111448478728753682416884914529840856222784127895297959266615680873296031332833762121348451393421620457265110808592924452491118273906057581358605208201996887695020529193822199997754625725359229116554466109224029388831825166273632215931659540934764782146535948467601462173999968779027677078102652724164379597228457490924473207055304963910786857316725034743903344332266717416526310116410852915797816855764699482651066833293697584816667417044629091810772507407029531794543540173021979222218066560602668559730279548839500836456049003043453646240586650794678303212394965912545110649686694542542764192537303639275668206699143604578869574564860154152117178403971005572010070503980288964240640274604857570712336071869005369005226147776042837908109657800885785910056326085372728903929042861938326903692261701205901345070655025633744154738091479674883341677627875801355819501431941628469215918919200662376671446779892986222099259568347766546895441732033997129339670616936843566931989784940183664744937960632700886868704428659933608146019884554241003644464225556909727938280922390430922265909072319557108990580738847372202793030259182785344336496577054410650013739538827284280383738996378721794201498043184223182346759939932069728408018842649257488270471684144304538967609798654320481863908372861040705779781969896342459241251729941283413095105638481984592493716388004368219926287780334650358255444047535143519405147169434759250477608325494207129367395178321411907519249000379487430691873875805215782810270552767735559918041461033665722428642257143191706944534248734872672007872447106107885247778737939506150958770130321957430236290946108962614476764218339784637465662604378851344256318303618051468040123359481902258144863035252622383158707178718430191062530729840962391939176927176863278207725104589005843610794808964340384939478513067199764082705832729266121782241238622280567861485791517485695103242914813305015013500971539773473612600235752637397857771518423389369388630772087768577041768450875599576518452155969648824955509650738570445553488140347498066352031169249118879193314528012852269284079855081298057343979891882230400651608544753793734530525093121646888820250605410073102242501517203398341485398868762011381945824755671924017804853224868916093831351809534424407825373316733130953607694873339566135697008743989157084768645370300018684315379533154794969634928025745549712437055137930852927873995198025166935860990193051158188629626884558001405090662837473255766514424742057253406058515098253026508883459183717734259612921806111145820279026674206244729299066902184331690375788018201516017660963534340040294388977188973451624309328622814629777649428367987666033274902993115470784544146759295543520940869815744195414666185909116058538796320358887730552767158676551776997681620244548392768380790147239342944446691210883748748982280314695925222327883439799699992612105571163290338405358964791733424809288904869191401522614330082206403486866856913148942389183548476494730689137627183370099972536091992141049996348111050679387750683575080273311079270488415936531956823856673571713527339273437857280236772981463998924616823332371441449096489308137171082198676132680147024762906750790408163562150184212216487912478996611451817250015590083892924453945100313535989211495930406400415021866152565956417072142063649608504189799202298797763659767779533349969033143345439842133085126234562049035195336581485849831424337441836236608660472360131995700424686570100677269740730530546672116197692007245628341967562905190073793418698326836493029105044397395449607924444822766999256405293195266898344401145484282247069168411686585522999526781188486835583912223510994712223234755857904097665460432336076651774961796800658043152375038137718286323313744252836074311045069541226734893115089867453386171676815930666512388765642876411387645113044635734324553452064715069189259436294453236534839428734563376368436324063457102988089582102899387859290237077745553187773160350428962840022456921720492654960660678101759455795756555408829552881980529904804426416630312441167536230760104355662584590715652551766901713922270356277197242696281721956197117683945146237563236950567357421127497370257937174672192189267491132674410930888515479245411386176521327004267891196025841912270632863568680257081261476136904305810279304064300623228582615887060682734960717685254105386151938080981464262846195590019750855819605896340151412328476512449441485368125589009156153406570092019789070087126256528418444040760545613985969443386809040242262935267428797280517791412808836444852657632457311744405911271329556537921981697943829284323188847113809677520143027682522238581053557384384177907349147567797431577832054351419570292814299596721978870176421268939029827318429581779949556993663922372803969924990020662825953697372574611452719846293052752988283702712467256146994315604578316654847135799660722731099362861084565284904132723424065416086994337555111447007210160099032890733446725770112579210056126364020100024840452615572964640799708391061676608128116328849805542659201363331840801471430646816032970749807843902103087769330716044439299308672399975614368274472945261913800609648283905614542493682135181317194081826817337338231539551028283231255379706581078951860434858887611978233606544991823852806010092094982927764537431935474080341935264083032886836749736013132043835378695053860617833663056608884411409369797204226571144582366937175379852927095525153638671584164044323648662385109599547716580398728399766274038348832060116068736734952514221824587529927546409308951736459586579567121105730304233409239326102019137538443679162967856865449063949337489636920595277003348781180602941719279257465357430499558387980210201906535753508096513064640234661028611514963081678929557454462472732388766492134111104366004828556225789035198369810247337391985129696951005870792599949525351826276514366706811214758190129351004096726787717923749035509095764523522138628727789553913862716007619823131837282339942290349732830311436025699135871891364431699674690705010195399834238511663044666377836422885289311890947666267763823467994761432579467924901064360131374938706777238797794731202627908583168244317111248864366261640953441814795449497854641728286098658240386742002170370757634827802200046400900610646211678255970967470209902374684303169960249471066421742314934590015571014677482092696586907166224758887944540099664675988648531520202210009967806529676574622451205736854132730259426536991102790904121099937046516198200615912506766518795007462200429745066639009871571477074540736817422904904718863667102547914565031222161868016104540504671943323119107346261280068914706695177020037706817263745838016715396812179693154416319039977769329094949734885725498346527247875414111775613865856383787339824241615616095482172046086887504334968356888026595584470150482443387657639129896862757533386988186060146449954652800833794416884745404304929294344984997805577194358832947835181217288429493306513274690705917445768893491283029736965245514151730070774392610722112321321760795916778288335628532870764160504790277421129996076783918128173748709114756178145369456251105159113144109051801494821209634152536073027678020110465001389714043092893214845888891101926420796033723652571476399916576909172835052296747901952270691516662691484337051520244245745207682942993841845250692941015065310588871873953340680457428238018565614427494971049775061046185997166404909450562484272519330604908656437748878257887070927113087214831670486985424660854831380745720520522215628843749190950607165841233386278686262871228090307164824857010418284333828048203375198113560394058803548139258487206258348616918532958907050108925761313323394992357314033876534285851607005004428149643451033965507334425431373459770864287545122800904889126513153836854268972488439192787307828010921950942927656231403253553015642866487093512228946469384559775030692844961723177620548955909428117202367685499374775890241113694298217782651925190718280057110922068829597227200211768171702092685692947372865615723304978746389339806676904844722159973686588043195910415669111021683009857504345469329144352298898822991039376588522981359647733294425623984962136797442015949463484010849161849429969196928707531624968063877295393067541499619870494331657884867690511742820012678460532906801895473686707717578648167517357763574172856948677285715064050334662659671577016560764293956595724546128836810642157527051508208462973386087759887071986953976947602266444504418788349136692998825082767798687420520331470811091873625408074451332612335568075866711797117849239711294261518583395300255395631107086726405839322252251580485269369022247660159526369758183797289598805321900505345904165038147042523418846705965664733953388004715163653378155343100697229621336745575514710476207267587342977645736766956071914483431772630936150172809591151579392998055465752844690686111282284181600215762940847252249805646408989025529529883334834809284702350175075863477829942556519908200213519597585434214907579357677480429119516516528109114387391657710195461728993293680703428212477647433323657229736069905158124015763284620562949883465445972203621204822256099324740145438524506364088272960314087306167210285045411417396597463308132643323401819893935350618247282048207127135535989668875422977917601119645499266767901126157218260322270822527175437705937030755498455640231666535013386954443271181306616619267551828668955756559793822887707724562374380107166435792259127871359358449778767591605905547655876537500932388488170297308068662229770745481794556074495438297258123151878761054080493148949931222327124599406742902095520997053601456434663764181893916929593350178441612236291343234343303567509517109754147534579292095586584824354833913677682410924624964272869581676208880802214534605048561882629867487441183167002998726876698360090271763008197284209150034883263833289992984274166007144896560514414790409463582840809039637624948677298136187488088606915383245873816281058669905413490257031724593101838117311275708482189050396737984874304708485899377165072794512696971675293954627762079499068376632996769043356590556390253751898368538753025867304419037012393342859963008857806497146123145302857901199242379384927271438695510349059340091464644216987858727396182761432835303194666773871076086067569893268969944510357157641940391389271985026004131341190546099577684525525499083251815302143750096883880070719922280079245099334404291739818287777004265019033152138015072353274188235145090382021699753701693527035450963227903983508690927757157365528429093109488286962885743444057852992573834993865654560956113946800517795758784860290727767324165009917451161814024539998105444515647873250192389931456635939919880145403350842859347309160777449102070545473800804760286952819819076788884194235640223864116370468787784667890293869161940075196330810796046950332277220173206140978026827402934104654597020346698804134852564383006453237683619170932251617555657637797176307438976223151809845101179674254158718236113694227807603587369210362264022562240419369916688016089244656798690337126685690574153573301110002555796843273272308464817246736965056710681193832335220043464517231290789489590447459997314295008891056339195437558044075046423168628393617647998321817743838962169274408403158485970022442348848139928421475574349658720194165800027994832803388537213600990977746304587429643308822260869216017336323640210648178983378800002823250901795505506225927352139901408077129717837272515230124674379632681294801221057074868900002741751868746930435542199295986410234636018385148542346438497562442133223118317747197756066616362921344979137337481025013374804597634395263300877097775132574944775119474160443532790780480597966008946949380630631172450260754858778726957892817962297149355708149667411995525452434284990577943652352817775786789030547709780663178849819869966075328584435141922966318642556342107297963994028819292004637463718503843604167497402605523364523885231528631814887705934257958894870184242247977569308838694353808821688190990325167745363685675346933973161518784334738999348491991518345854998931187729378069129754857773325437231657618315832889937885368610806154664053457973344785382722390978876794857552588129592225517379915203075570907490052132358380749788042776449705698383876290227367496498631716107135420449192896282477857049812122201832779045529595257888185170086720383700720862882018416352604655207754835816423213128795515203334778789701560515820015627013217089964120705942411864246603255973257291295953803362884935841342594603720372175445533127017850494305565912956498578349170745938894754785676694099354922865960530770761019033670194540828771562674808444359406787581802575446989574175765939382352713995281346971107999594824631129075159505087202983885372999123384785591862175573432060799243069881990086281792615134853255925580593174336526881721972613931695986055482086934707185055765982004422622697403544097005369248965352041636651200083717104844506531940476412413700910154166078199117374789734013876193972557901567156346490448405328293397673529617632278567867541143910151886667099332112920412633734618740728197535971292248531371080755743607914888220640423890741889803159286003005793287280450994549842931551627542815662382827537850924554599738432051011900074414858112511623833907497082068608843547299105100132566834957128197790690249311069468777621271379123344790820340996405837791795344693684516044029933044011478008302651289146926936721974092925457230626274633136998334172112913360718265916566791641747114158037245964925027280923868978407927561106988867033189550650949137698150665413194925073192910563137781300065590939801900826324514507732549244682752253923723864449887788581082067536060100345157631072163846572924651537696866715235940696140536283650254210027011760715265988515006532845194016616812653912829808913346522211996958442692216990377306985206081833110813992796520965748510182062234353067326518124629772729167217137525726020148880303886146098277481849723081485427725714953406542840099770669648111281093458452940228052247800164401760831124713448265847474794092205151106935155255664384046270775384195233473356268381322701908208137563050448289105299250422380120411460635202230038098742362481956081092319849340919865690746207768585720270534255960688728224138797153580564757566009384875440121454619250931026711725877762163823219101207883728388163225590334575526060482782622807749845090477995311611877160566995862873723108548290194770939537182230146462557927836828165681171491709898589472747631131782710284372741338008592002518723038336571188769984775176701465844938535908791770537908249191151486839573558531245572195015713419201841545089298210921956014098750301000955737062419269884988727379513319476424040621752693132977044998928345542048804403838173517260728365476473919615838774649131023161910852863561483522449572557580185004883203111497109361849844232055017872067305767971040357475846837475009917278474376048575470676654966975737142924312708577788249486689099423161657940541217109556979098381097003767882950912454465306586870225003471972393856177700460994014550963382485874153851149769229169098852843059882746742037592084214745070828460032516609245158589446975819556396841601688599181289545731977236194520210998034752456585063294398980298554307270072123057452836014203503474549725163051033226381581171836253881383268660265128804808112221869058285094595855864407672984407441792064429134777996374272779710371145490174778062509683241100166066363315075839258631909861925238645572011197085751423240640816114498679041954022669746330527106989082402564226622202063135072768512003054292961117092649717874022818674586456015302001087590531105703393468090758675514909905606269209762427216439393009912166333459971772442087078167113270780856949053845800213213415561695834047168691965190855331830865564587982862740381099831234349243573265111767078780124173199357917880897156669224678417315020439721216880246881010071427325071604438046715255177809352222046757287925119173691684115797793294509004472764039182019597660712855615905889290468052370360185828360264936822847645604577376434587780153711427971720178573686313756289642051272057838306120885412805503511431871539565480716027271980884929805074816997467755215650660616405815908239304999236084482789371141371133793406842563276052433612586085138931133486015903323927960696151881393948765808967866219009804689633319877449729362189235699088679670815307534634247922912167865766881005929933332448114658139292647213349952313823076521460806633463125999115765254371532045455291772684022061834306055519784054620507706967362279814665912409429798057640628638552807599314919407863742887469141973869394765998616503771894225048640558392123883203931880995128290989488967686479365871339197155165439849778995142260063465429504613492140507552248590178196989471750327540581267007012106263609789326984233752059932971996803770907443582379196617805227363954829821684534965262503414266710630047970013601356821490677262422398484548247495713693399196152354253629508361531040408421820945541961415130196926521860125383671958636048712284086476306764394339813740761059868232133795072602267757151319135539507293673422992001426328676088413454259444804616739996712276712804023622725017074134701840010423827817715174959966519180183993873601958785064084913405798903699087448218671386535057505595372205611389663744723149647161117479000038865461586079243639732132044805793292209492656483968720338784010584616355259913145784750871173834770049130890832726227679665863355533091107940269431032127591171712593264072472177172049591177397615837109937286257094460325780683847105432295891945365700043813711723454832048164793281434318186293342888602147790621646963458430616118615951707746083463798183953009318585489996681806571122303937066793127952051156252757421434087497803889559485347503147678793823819832018145758340748128952950552887043453605839373257280162803123358971185460219066453788947339423301434059176141182491536006384829156988703956474054339918850603475492721270451370053205434023082170434175439724747265832383721928181988845868470235529183424934890283091447217566509035887481967044184724946750004246410993547807122982205060991274183830000456074951645084381162817717085340283210108704565865956924701972214136688716819247827580824185042834378992642093816345685816714038164032186661160767530431699554544401990443730227984074687486614437575160422158694301944418705787469016485368561410816739096359395884215691151378100410652522182787723785861082942929320032310666239786500436779513970582307478764990088970627893100158846002052652804724266022418771264009816816852348344431080025638211164072543974000974654377744941408810002344102424569457271189450825401965005000884981490856563328797363964239197003028079224643713036955879301701595284779108922589233643503120354862198357607867519919889305059650521495655377314017668960191767765245116357712032595138812149791166245113266465134419631841591374029498972206757763090156643777297767366627748635533411970352121058057892763488776973197352618967289155701046701712289241838071573100028361656950691957037813089067668943025292299133080180982283923240887518790219862185035731683316284418498937492567310953039423480085575142927399880412093343383587296014502957225513148898768600030291838979903313685771484143110455567944314381627156882245649929435014038109634948650329502028919313783473266711357934675847166772807599695549823279386896216801255619904079788731163331545420567329739259252168781514555589679900807969968763503909036925777886652459472351574810253064171331352716545050942418082354670107223199343090258084176897409489144049026325373735849400891775685825204969640686728200625569580101312869021390071302629577411982929132825839563638403925004831670818764745108355211391070700538889392311291346163950843065412795082142721639167678187154835195410222345154559310609560199846699266830055674295073340049976807503275595944864953875728989348704449972283457486058469532858592346441188371452382057810879961463566292207818616366821409768920591764268814336029153587991503665390000625341045035528071355567345473743045881350011775757304994999263403235274224836545656175041432520078986584080042438660494300886593751502069453236135132972765677946818875005860419454855512605997172018598483241648303949268618491620400784718893506263182935825614926737042010166060326038706713942383845379523422655564315512895097866926402929973283089976407330228711464490189423552415900403043294733336751967529927551011985533003980470156896053132930103769641685784432663789609679303458376986520286455432266449336267039822666132486868346570140118695542673879664318157393306837186964661062923030110340082255162501680660223405362502882899891135271538336523728906892868508965985854311921637166937736060429804460634446604825183643734713432497388387026474729398554140342577985870821956571571533282526578962876161802285703103194089857176781167954462190773679109445600511821167526285449415061226953578344245196988539283481051652896473730748902599926837487051931031364281470864878392683583791923716525870747012775787541255796411910161630603437333946749508337966802045819253072279959132707085655740996551050742377067240837484159813378743595925352284637311440459137154549611664918017131878897394948626070260211144400234658709390493657421056806009865781742745048213477943909959270394675510474483552195159078403479735710477579315137792152901335102833114197255537633934033328868468410259996971399609726312560365192026570091511313706605963094073584765293425722361526475322907386967724699084446310032285050728275300185018159549179162952398569683218897326041936176173346783774418189002454568682615192106181445222333506308979215663940775683431699503804942547385676820953076602581724438184388559632636119487344851580716231235053611146129444678156236812937390533793386764789990542435681489381756205733039124301428952559136970813021602584529584250847645571881158245916192174212945610355555305678513188335973564045557527519443198273132084044953609217498503029677279777339121738504639661738757410974123013808426991615359000400655413716864056065165237115080506199149886274143287703736653480479730091809359927868682423176222845358382120202928333736064150878386377791219800184740702329784292461193051734037971163270879351853963655355521892962004458077725552786093820425666559838719246157527651277883534643750992044720881619520568177386096416361475335685287067802384663790641042145069279577616330810755500197551475166098258931088552809200756903042836312253506722497210849492652977917256927500374551708773592928642695164240901426530035551011121003745413441267110391916333471984608129441152459988209591672643601705637244333977312692065330469244580115544560811151299637593413426050947886879377470702228578438507765975347189499724026810010267610648264629256923621417366936621572060646756506608795736284645545698005924168788574082245444079963882054209387246719599097284761270056184136958211571854830561256872680335658849429506185485656888225657941345617079117602215471169258796466463060359763666774179952850315668818994634610984475098084395335195117561366957514425220939243427331253061987923947671165021525552561638368514852202269961736190393621317000925847535215113942014898773666997699329845640921178950024364190659051354486969832413647425858439023451163926190870334840782125979648720865927013570853424673685544645088482707702905134275118400254850456626371080475788071627505480300427904271034167918572733148966900287172953486769373565506457767227452118533712903805357073491312951209195118650906149988541228622849693294683242527441979202672676102419242446915645329713273698419921690152910615567187547803406067871759912690189431502701153818925817890544917017795716194315510001659655500492796112699521750268809091230626557621541118213354305714027945008847822775956550354221862711204850911579085136946753162545321524011427688217102800353165179055903649707040378712165768557460095250938325300755973367938311432154465549269514198523445879587634165015458957533390955083127449431841927943051591321531642237650620282123072708453340383120916389419535791326492802909007538407426203545327302939602617974043770859205267640423587298499809417798783340214818094134785885355158367604508719269557334893230968719121928542436957324813983275850437486342988348919790362093079946206576664646431822706333122920277308026349053513356973784601342043013361490791994983490778466095752204949375995296375007615585845897765836653895408528666245934027143736037476632111753706069830295569905079440457948748655391413427741566146913553082625083924105990559984728719982266133431838504440009588749651489153217285121878162751856028649481894407776549020761154174942575425712391892966660408833843055867052491876095408745182704399929221790007399885927343316066549825832592329630703507171613763056433047267607102913117627613321954853179225661178473207664785004879080918943825594531369824065366937654476998081690542286868561222532265604522898494706505289895800455290130871648948271962156279127627563315126071982106422691986290721021767339254046535251963771034213278240110418261198200606940786307536155737180047018535413939532477398489166779562767813944675453548128437700900213658930922604203199666012513492192285934058470349119996247214233580823481178090635555445652209109847712509112827203209351795539428572374275379447318368071701797380016470963130962127293124927736431629717893461161885342962261961278949349704871985327364371797152185652993263314989288968987205001503128266360688273688970479806147550996323508909702510318759892607351723632864097385295855529887340038429796069618520508483465974155476399014093634040881674792262846661188659563221392663395156354525674810240082362323130890585762203275029836031838233542146190709103658206367194214358912391343472001050492771897667894134166653215397411203004031769784026791711694066905397807519961259224131372848556560333958491849114971918336396701870197960256362973138251972822378374032087476165814303390485112289386425053402019315627181104123414416913053824692039934650703166803606605831804306942645501607769052786325372507998304511656202074202929737231348358261487723569406287649234095659960607540327036127351896175709626088918734197619297849036704283299488518163112833401500760347924869838350708786126245728291829454631262198368069521050867726484921674541668720480050828643328493569453100556155343166085571399335024579197463197360252311374444917015566385478009332577235329381816592371635754261330454056403442302185205524910198512896928100644796507412696171455009710064751671489263318138065528069432984521416341961709089031728274534726439567933500329341937749078947714850453957569200018503204483104086456379379847462250349680954382640044559128211974728850906901602260711702329836385329912081860986511523281636665858995115823024505649867010514135877567435505591031217594849600544141887303367392941476729538604392964115098597775877956384772907242510936886941067627057213560885389075286228081146866601121428199929471727890217386266559057369289895320374329974859438443338148012706287462802393379914636309360801372694312308938941174285919726198609744056887995018497080512009019667924291474162726045295919941544038387120666207091741534022119567080666173016400610715774409595211860796119799547466182666302769830001549003833753382633688162389235778095744832740415776836746211352486871768280805003713771504189708896786669138012595844989303749598940730968668094036259285267030565535014598669948437711109565357915991617870633782964524622154457141615950092778715334625589748908572823938325364920695362311006370239745449162688439221666846658718077442381752767159337551755722844961802133954838944177766451914977134661937436890584861435815739256215829508621875571230439103148029071495168231661264585208490734514649958082617642697404999344455811857937197366029163159694992263895276514534103315291880333862277171193435948253567783003229976446653079779763903936327680292939224913856908024835878962121197518409234727525740379707922068964333718116278724949455440305834823495196474208499454377558443010331928095282268544276671562187023597547092743064665774507476222154968585601603407305225672894743286569870886918046002512434378619999168475787556915807260968442017699972532865634373507733104682159181157280637151020777074077072231308325121666854005698635830938946800715082542192601814708596813686183897277079199326508861177187242775205362320965442962373594837453379512217365612911697566715551495961688815747451115218183129802829129179485482329055745890029266866390623580873495151178586184423741884693943398553688530627916244137406112795211346755163673769505500446537512418613992333802480610528370456435401465478636442387257703987848191215233251737704971898221081770908529020938015678074871406402048549893631693571319856277352714025393309985720693847593441784171022518985980608874389617413793536233423480567869925481907156849909378851815952566827982269750066071237177943675654265662793890325137301287929599313158151514505194096150981620012499079264218726183485956766490521342652726564419820839370738678731384861889792401524651621420971298830321051101007989927766595568608212202320604982229827915771648375154239908176886213045987991535385213217485055280304795167983574820325387075507361057585905844517312074651715111440646489903564929714949278037265302224670157116596641940533616062345728739010127558460193745463028761101538969830516865621997303881074973738726980787271888741273406428671306156960882333353524567489543402634736268120709118194659929199235295557484250462402386646480599878363911826062036243789995146340049648046244832522258458025991454805355476754779955917597874613346971810481549538481474686397432252032748685081133490097981732056107985728002753545118228359543947070420098819912657041274911375921221526411114229007730284099349921200975446227782269699774627987365832634569369638833459514550793158954560385923027717007203734795304669021162429787196573343070976974517700178138528120353264285790143924691995062644278435854809400657461164224631501696801087379901555779122441934643775451806963369187274460364141464857895024370284955020132298446885617425408969088765642475165385417499473434432071677652097458879269901454116341810417417511420719567449207048740598025225978443074093975435798874212017988290960516376965768286501587109641886017167056128330451631791786456527065489977214362787281724097274590452003372391685286883168641605714656310392540573732062957289931869888943015515795802664884898501092396779429801742349189533110115855920132710346207067599443566431890809161211759588135611974248699855893003109680675549153429401201077843960236803348989413793602561686144606082298138389766381939844555908036308332816225364523214925160618298285584451869805423142578453488233787541908948840139956769780386636792597309905122639804228000922645663880838303827781287361558974874794485157546244070925599201433356225623119621154407682054609640639008464241011562725931639599026368535981515669239464601300276441589947202182849437625059587668773704268218045236996981208256601620021636071346123111968417416592986161767140016098240406590396979655461758310526576004567787055685680586761766541436837647036506125984983369255173880906415043694471999434014758747744185992601089951094916276040702055714968140478587957062579602848123634653920269450053816201714818875692338346507981038164000375884426012294149592550377839968380577137052970525128640587809568889081507653423708295681952037898731425975819164811729105957377682691633590903008569496077388314799864679103399672344651291834940817299300792375236177877913860351226585726102569801754431818065823410462133045335165305846378469474728579316910963137817712700246390240469211276625278278307975339553821654282519291994068959675968385400482002137435186259939576643013222596166721343408917075349549369923653646646593552616282607085786456524833489446426743659379070865607384832368877323704152087263083459298237830572935191657312496568020192736169570599775550973822732187200841562981776733188335203869980195668366954348435472593685301316020553120068697276697597321910218044077482043119175495776284329651057927061584304244427259129126013671262679085389928437769404315680869612091939345750370914147468778437145429127318685087406212104951310612736288029004263582440425518555944026522048155389700036455017463160602029040735753421362657666291376798042421677803423766328525440171355982167008211665310406319624232978539003460639990312952215091381957932946074442290736813394331293010045798923991097522642323327538259031370232184232678844909364332782830888148810495636420967433072533618891853161132872838305994559423697178812965588229960455744400441011642196979834539186232178001951671343205911888600485400692964862785023307390733530840460336736852665208255188629171678657821552043753666916692130061970711868398021334791215563221321896248513430089849437863846618287507848597925063102855101993551370651478744336198014552063427955801767374159541870504109544950358273879378672085299717996167282369456790744232559164282719236072358983041430074051467282942703886333545296894084901365834176818383864486328763063582540927373550028989134502777058352672698586502758094858479520236305633796846771904263566050702278747110011410731628693013058319553084881610665897296908686167162369064748216488000492477962709806949895358444801316448662025650309725578924831919318416451429671903979226706463876974852267381143392817274523029304482616801748653197233514373260127091361059455175658921287968997570431164208310842883197646498783996687673650460915116771661580216500115463434409987663511947260809309148282815559547491180313975742567161385447934282468046217823224799362311392862998330568347798585236316100704660161134064041817453049431273049485072311973553050663171103020283077883831792456366714074223105355190777267548900938615734160503845091258429544772066714888554231810306169467718114812457516353302161908431248771763464217241039533384757449961990039258366436309776945613548972151113728271184228042847665182346345735863635038282621150587020690306552829291289054483745969850752353608600987895727545997949994396100750277850268312748451240647658182720312914961614881458948917423747532357979015213759444323049243088758793548074902334595109834836759736344480589722082275590843994193636896226361463836393193405435734923388739954223906129959499501188316341595900426832688329450732724941001678841984957338626391614752164532627161283479713640107695944367397192096296391649844776842025048884973052923795440194822955903607834930074288882977185046093494172259094289208125660677142603753164197235041058854331539183860839343432817161714580214235081662490526687796677670124717360768999368517648547829110620575424847253506370343569356324811664237106031302262426318913705466443501183005892995258996656484909819768575914548108426901648761044605043537888696798749552051890223888570761549538655727030979076421118745158653772431969811952674063358541114619280652968972814882144891071161345029199114785264568316077151249976497817116962731703963920549233513122413230757640371431003123564186497996172469354473105682123776919732386342073163923027959373794830508971370975324624537806275355699607494560334441342438872451549421130514722443776031601082598065532016246520999028430341602460422854950251014210691120704093502554006309138867127402647912194663328779625050767848871460554190768327121500117944159766486368222121390755550890122297892526388999302891812232471667074970411340593889575431392044562413940812658360374316789978330059006915291713080537782115586080352423728160740190379176836398094643088091981027051942418071016968864064802714556839987970786636169754718107719938383928141811957632081758356197952184657391328788637291650653841084107445930655570224055453366753392383620226036856219791652276627023197718746558096867483308939482290795947792033166645055260122806469352708973073167128460052681400559482116257738250887294099304043361983127749044807975888430663043512192630674777093681137767003782515171500211837954315558065405906680179871209386312880335929065777163401429935565314420995406609943204889600574874989586675537264435543984856506893898639574049783502728409262461795053251287440270177676757839716209568402993247372286673453310090659154380808934770547687925902599048023899799244620618435626795873446425474404378868002937765255047199504741924732090617054837339569751714976717634327724616439647061005717996841701639706779945495987786301472725471201580614930113235815366868622705920349329056527338315058173452523520606402026739202154442202409862673146199290077163946224774575754849911596508919781763603850217855681167295034656795983637242544842780717131574172962646246802453830238966623489654107376475109967935521221087474168874392797689984216122341085458625309249919706496797630669355645754403843923010487804374444778634181045497222893893146359056824806026706142181289348099808345478973296183335274352849375864897017432030360942512589268851838220431454320614183350287847982633659679058297865114956779249587387582846073937446564952867386059807566380899777472909009556482630514097427377110697905848109652560363985234454875674062133998154071267834307384918829286707406042961112715360888235841203838092731451343173548685660908029197519116462740338224303326926551319888325363963359464649973076570493850333085054587471230062090279647684997280353110863066858884156800367073086418547708455217301717810613303406162308305680183266133956609521264805708322634148744808518403522711887592471233452081743698312985974081436112664614676383955576330424710052786029821865547606336189137067540639992031419470168082556299106799128682831142318560196229687577706356441682454541742118673280706252674095278202726253101466604898392904632690872568766083656265067093952489564012256854650047596767353593459786395865530379476561788386865422164335409146274233359410636486661742196829721917738048972702765565343751324312018896685537384949341687953758183415310490171102962260977531500478924554283342786113697881299963732523596544164814188149202130026629496790860192966742130037673139200429460672541632083619256997458678310710739168616572121506002587942851996562543522718570552780859600710486043479764941863248982932903179955802892142157229326009751668619064527007267933552171784731528626847184053850270823961828618267681138493634167453906897121472351515857272725133318503126688716497113840336900905467035135171855343797598158632057615454516029598803632268308623307589282431553309735585542313556361557005165517581801667422714657715740173978930722837475244404594084335190760365391504572023867525729740779324298450284493257308671403128350389053246510476483022249903067912948870744756089074541816408065827113077009434654702258450248454192844099348391134924743275655570798833590300218919831686538016346670157823997912216267974833567156426348800247720677459039815836823695537424065764104440285445842860641204455019985313220726386659045508258764128805291530648574222724566700389513371636706905814283773966549340197128628790214731632232576387380208031407435633639503264352268837427993697806894913433458209226241927757156691266287822751983757191777338231181823990511620531355497918007432400453500968596464752328088106910141331014461661985533181368462393328622310663505578787709586330754988433440206236876773251562501062959315888281239456698441124817056972659342524457620319515916458017395153728362483492662489318138015871890529007184682473743447089231921189291264260388938983258727769515708804433552301377861387733010900451987083273555169932591895553655835310991087643504235079506362532079246657754104351492989615913365410956134180604353261617288130127986163290863850638154222704640185289033578666676148309567861104689168815918636924133763876626940847239720350428373437015853272317214200997275220465687304447114832262252106829239782294475512483278350073170732661195091426680395788498499666013018025198106411554915650478883821774904743324687458617395283652024585648499857210833516292544069917313224255922896481804983957399527009067944980625542285747729848792608237783547176058577967319111448150854958979396471558669654129752033830670148940497350031602338686483033921570461372812897912926197860123450547253266646154208605674873419583057955871206574483137471783552506728539011457988953523362072273350406105679657234626891641944085084974708587149970502167432276144488968159449247648490059225093130729292738306192131572552090763569439893462466362286871917591537085774263009762446215954720341932108281491062325136708949870526201239937998445787195822740815413131997753595280910598732830475093230556009424669553638469589363853006436625677220694989313192322904846881350219762624493744717652800838130056200809001730644869051574990608707301782835716735896698517798768082245703285223211090697699768971033784613087506853241195949535809568589933924879063528766340962892772516511037516075916133395860762320378463683950089132542546341562327628340820821931687889673424627007365444049343858120330635825608838432807379623840903410390531508952289894656177854632051675460808197549925429756757602211384825111255485035173569108338972205878099418196683722747091863386400468218718020016707553682341237314637458645213619745675151937379126922777959094740389502993085903838220375473102939577890646377294816958922334388243077525550164047938241772775926141752453466993548784064688185682583496710142718222310950225493836089754811709033881575320758783133539803049522652770024525637502378739509818478703186241513133025128960537686663173621503701147214624271516314213664665607625623203479113270212711359270814113296424069628552438878583402355044185330201251989661502621585281363956944629096250153513469938336969473822314400954236494890012825785815723658858642428896064690193837643687957209726749500396805752012619914691700546084101239117599771809410724955710422111237313047531709080365265855792212890708076896859818216345089354208252787730413942123172790367643803665511110752239758451929036601586002936835479871527581042899769620225144232780612008227458686100997456930074599713700704335225854816681151774579787150540379730393097600436552999488947853561357395331254928988596257427417557097374856116186288908397637580300562761198125542896200436254171960931676000075772365533633033048070035661368200219900726631342998832062909916651132077381581252430264968973364098800786581150504477732455445493987358627561420925840767244027030237397885729792623147009471517154738531422901624692520026910407393854515626669923162172713613893884027861481595831532951070658309217719317626350091395645689767756483316683985334678023422843439406828291797495935653913714298711937058897278947792403831910765804067655668067477304460925908636996760713308657262101809642500185022776357195443856890969081052020691591190722053086196427877144829531964127818467801180269724126102043304323051621590763035813547173686006174051426658284904127407258144632867888669907565628038888546428657458207237951280643613238842073939735203947305594930203208604061052276288763902249551369141960165885911760327691647196935759069086901169128763339207605811141216412681631646292001792033339134265612854827855883969310783467052116055341128601699875123938155899930842212154777347634251530691058024313389220687197973662868095241130940473343174590703253823866808445252536798007050226692696330827458800483625962418668080379187402155816776724683925531631182287761554845303756329606603640221133794281810811896877806374043044377823095840082456813409292223491403085064585228321478489434764624724417457443380493443911854910733299663313447637471800873090782226590158677292700036651872723644065779725733592323469882266887301624632336981089568889708101349518450056904900684847749282034094222539705740296199022242103935999486175690567568817196077207443060221203603931527769637119412842302666073594684848802622667862957642235073281002861168353093273168223266178981284211077213121081077853751821595892236301224286354210483712489150534137285812187393002959490278222879275197388770575636476664768001607823030517669245210178685121860551948347681622294284922528233921110447106847147584224182998137919646535379208671507342505379674878028145411679097197742130404157839674540937703064832849843532240464667683647650984391203787048476403879164977332036390764043657294563657659309221462418328916296457933352534033430077969493805497427808676827586163701369352864961030708760258431384704556597548751592913065937292992591672450346566052079791138161177657685479540554650588763439584626228859741060859106523685636185284044809790722370934961916463828521914010252462723105985875396000353505359910235537898550700667990941832376497066687114790935089419532746806173028172966924690563411109020279639483045340864323420450801893693259621567531527417261079661832770376740801665242102359351248049084499830754983095423284768219845568810711195758195810344623203014561869564878176563830906206169450472578857736600457330856937457973891861450425341583482612899487040663489734270862913727191139222925140222707292748511564925191274294835420665142234046431432558911011296792334173390496066744027927469794885429682287578809237571256457257043442115015665094365698540039654821589858627895631399616532213919925373547702284216989588180876160585667495049292874734686363517379138621705479367367068686855624923836361373973338811900997729200525422869524072711408355319502403992786258914373389831407727139961818369931749022127302729530712164390762489945856155566048186333171281142251830864427967253215712225787739289066341138520350301217453383032334696055094050408900473485808397918362914124782821783262041229087558097334988161940325417079846352974222290806937649700130250872598658926966311165360120384402427257750620729332566022970810241860593026448570490940621392843087684277446241593125224346871397291646531550758631958942488773430796324515960589448568737158478968159703990382780275603181336595915720676169176514863293760150964317680117971702829339075646568808529909944551511056035231516859693961170850612029431466278214915373478117741629804804145357196333148708385946632833463399578837958037394844282018752167858047784934529291646192224521660917903549657901302405690273187945633928721357853762342332617710753282589169897794113410071958661556531666214989305102859784317323906196648547236717423046120406484573180030652522370122901151635110207191455973117805719514851624897849230745646982293474790904413476127746036676515558432549270776446650364778108229321426086490544164706848980593226672393252044995207076290586703635145774632062218813904269266869196519499344404090904838286120096369551248545131901239265109822150520062129721604482590467924890949432373255879502497514189079489306120307076803483050412016353567316506945839521811714330631952578831244070726652657203055893344758700146604557209071049915853902814503530025767769583209611817177559233616891209863098278223671753567475446386949371208066514689676663315141897999530382782176612501596478428721722937937425206258729259140810832099723284647846960276832382541812231520766798344420424315074807920882971448043225776804597153597442436837594542229552188492841980514390105078098929507295634201058222570721241786753970350269139817602275158768972619520031580634626535109565787476370502730329613111043703400640045758961342449980647257381500877394992227227314684858416559788973793681236696976616264358961086923491559896873001381910914944202464612554353182541942787905371173940726456720040220648217965398567260469777485475403444839891309170124805751462137204569471028734507055942763110671548306506483506191261846849345747043158695706674487248248339737247393736110476739786761043850558930877231072138522209497239259149510491787881684645519805985976150535186578309424700215884286508988299761542746926803236149507322897648987298673335506372039479769777200539982334093451430353279775576491037664772890356751313978756464757082821292678253512168330271358981160855086201393835480265160797418259073843714039677241482998453670845514814565517077203151860859649024337890073625139931830153180671716510871672400832476545801004298772853476301692009255151737773649128549304874199108972846960610988803545804318398609052917095348734787774731262053404574013807477009830422207229221789205663555667702261046778316821750802302139380825120505057835233811494481756661071949612579368783078629439934869591631079971608339102306935073194775202791371705825495034083923429300425335170829214261712475289225632779334027205692961370417500152114285217164091637650856487089994256163823399328101622423450192282751467155543889317760866855644785698103801999483000742792599432197372247377919831969311084707861356304186991154702236106787424972013424347182139680099091617494903411170638627072227755402775685813008207540150298574982111599608535709447868038210149697384733768043003995473447921334170338553810827174589236669521610645756686139613696386586936989406956515100560756225621075252233657185715487706075893517621272177953237198575429859661305289279290946356779996808536837997160631501631485954399765471291498443639795687476255118237588375695665842204810325472402816886786433469320681758989753901520902184463979108295724326362602686892981097246468996327206316401437150028365340380526858860790410312242559319593362608841053801207013674988399123356937889057367874344282066744595290589509344364175057548347245338355178938468030720577328187907393046425054942108703600481275789996002252470055700822043084097541431189250047426716503089524499483379914123211771764808886086179934495492282312341336256565379242192203173399303770921582518695875316410625846988387542347107436796399245287656290148912347716946761621750850818025179905773862540690190424701029479550681845126325723952129822552130676789696306048638716460236381937623516209602014227653547740297100418355554703850455579711827448317469718507281205611797708735926881113804930804426718424573032941612178695138786363562065544941744136457941031344636064844186339374518604740624094932969435387563104909742327614876520680840684726687320340693517597779916354689634654859731446349649612060643721814268690245573973706530076782210696102329834629535915948543629305845021639634830322868438300565921002634624909764915526660368514892694875560925908552855670823138251157826904824897878081217500653837608730941989642441655107839614927414964562096048135453203887365544580640553025137654104975519963065586760575521934318692080313316721998271068967092954136989913790791469940221587475263033437926369896070363591702320034659582930129992190427443006647499634533957597673150970258276704969964989037067111059770968874348781514492747375327385679396326734728689861416457786418391666783736705697159360416402113998147258178328693404672687717281876877184247227803457478443116059543545753557388405040777571197667961428386533308727969514278398633175684971403968168686279923343221604833060919519851481257497368348425456745178810390533576870716510027055463675631740895238565713641981316224828015290545166072525834928588831450000218431917510398677059974657610253175911027185144797252167509724139244572098978697096054376695469787991610405279208343181524018574504517568257686342976881312779577216559087745711426664672033750876556723697238767748006869423152121830073516618733042352023127482078788030154029800134523756410167572996913693415296049844932458270462570763079011227572345319177661940525128782805194558005968551596666167925101748067016140150651501758353358184206444710559222696703621452063518308636025604994236332640674757698346346942681434081999280331808036690779205327686521539080629528235835354476095791952877396558247000685886749554400348525396704220727638453073151221007743623381967606117174048015682878133735556685893668315228537247136478556605992421628696096491499032699646009962376544935447541299400353830595700582479899880829994012806507260073186026426619296597975431516256555171650784565116137385287095334014179998587451075299519803463612968737136347909912682280712922608298462469984158501326360986802887610294098872634031833907828974063081119123222656199274218969320337802354980770928217593463828388760523386059507840348253376199970283308839751734367019386024128962253853121801505277573220766358604826014748866348026544276873332995271128372054767439884376883598330008546366583103821218407246539019831429423961527259372896445210025608545712905107170719294600690580645048656620138152559696021168786883726483423672537360397816440788761518730022216339072117060089552250952152053965230466731421776099862209112229780299135536726440607331872556113556216426011452566394720818816370984395753212146513530074838044814400152828131800575623390136394886087886260168828500409537553833570483225095326577059718425343382697833074818277390705421213332281828586978060390202941968266511158298591894416660800021020998322400927667638808418967790688363212856972899412922587502607344414802528021334619850233978138636614720129787543115773970209851508138124899716612666785881444583153908788311739015945636989728063925580257973826694625856292103867711542137411454368220103926946871679686488310584232183459576180960410246501452827676793702799790787270933939843440809692126923710603579571178068340078291962290523067923744002040021190206771420294255812332581577526162430982519200030023788194590195248114925435896643033545351605400276633551391908306785094636063761745901743327704260261569390447630656338308009842472199346482828559877793083225784524856949844933531844716321904150734055635836147167034687999253630985931684438772023191426660461090261894061852954156505722653431872675382175788503943833403584889400397244913265157210839720562186799413942757672313075730580588769193918972998324981269536609492351266837911400406365022072983286528209710755086888171984612863702421833910945446805647266335542085656769862135060973629438867268558371881588106402187048094795508001142039611799831458616456600159157140576615951877731754197255861567674994096663291455907265912674615022924058479887226588730480344658940085937747453247978959131962559156270603209490286836008511378869415754209495868754200819202854298458856461112737818980320450803183694133133622883606651749565433133771320160076789105382734079589271217516599694886244759546892097743759722156467508968451002150852904082657265694717612379482846135478886371133915226249347721694855401763003773692487651199315911566109751054019795473460800486377500148489412508919911725115739810123247262967937920725814788067112253038543983994429888845053623879594918707896097223959910672876284729194739412744923787679209895147718662856213878830774822967007432100217720372293314023711993294255216268183756848818535064736339161474334916172446910159637124669968070158017694259132493665661115931185820224897850658492670633717707879435948481359075866184606147848432188918951721925553436997428802229808707584573463691057490163574840057786957531304950042424506929156324301801817291748392590771221151638379497403735840603172924724691973439184981580471185191144812221909598282185807719437074089853966480054960161898136208421260802251013138369196455109452229974153345513673883929633424375163981340177347317016392214543901754962350612119274565242228435497366213683333417387745843971600501857540589046071067125759038142688440094435947732528683932843959232345009196921948332531227635466774580819284851624332886130578113849733696328196946848780639440220324888512652349762931996512717790043862035857494921764949859704561590726769801834903724926746883062138808549114522678790405566139948353642556694535789869821422831047935785201200977428871369499344994454329394474116262860494618740440181132414145633701242058129103148146851760743401289222652210370641719259759150169225992309495282999462468134967109602927304273748689181078850447255591754775424328670993900653943384874801061734758787573005372086804207084252574727836383187509156278028130297109674986379656472034490827997927683343420428747240318424730534853562723763687503808498229326083131025730405168317603917424597489446645865269108133583217074645959203626161068898595186367630245030323691712514659401607259511103011376909101464146996032267350133425624937018599680628491893837838323404567066290112887495001862631335809664181553058779060941468482027300500063360442359849371831298519198750231365500906336759984835290594250944156617641466620326967360534058920962145909898104605088148155415916753508734195728954136485611825028059789343350438301159405557375500774337559634469796943934368242966651606431753919260485811838796547661319588553501964555117054597787992385175049666864134404213311679047213785023838772883160794297259959451643198907876293628046739500399242399686317902892597518708543818891642120037226067954538867786224244218080663184632204937598850418071218480072920585763795448537626456252785432610948454036185799439385821053401304633551442442948007890006169151017718546670891013504417742896715372044489209624505133106612888648401684804166977650079637937470991051345920529758546886105434422932946090070234310985659118125515278910485186581701071644379218422023232171631280814616819143331049764600643225042835170807776472927468233604378412087478971650853822006146940047120117466451555863206785514734969070439581798215304621317701081049341119061320953729827684151884733041092571234203145412473924813219773039630060454346607319360460167796342330525679563384753777363992507512693657079726584966130704231924501642865175997816931275875307336000898285652861811059964537554844389500411552083317866990553889897966223405073153486731066445091499121473383306155154160075722612466367996917406594307411743125797862500500668766162149760128071211031160239305180814765956236399870598339199306800064996846036046064759571240423019158844121607517909712353146253996557479909867981749546804772143911749487906143848939769964417937277259024917733726010785670784474057791787302205680910002370347819718213342773975753153577266881213347632748519233723176035682780135303881409835732993343970351660762968260737822987202580607942444387679957476905955249286422553511589951935041197109374147325305460600537941565322525852421285193184997903758923454077630362043301698279071442009135759330518341330454278799436615733135836923286991851699486876224679535763956792539637539864474632676849417134337132338992525219233849102220731863539290283514385760364002299741047092456612524594333461500941346261106117478913283028113324086012114095513729648946627543511238727029050271154449997524759843939829356911863318791987106168619094797113192353912409030357402713300553740539408202066761136917082565715031203554732581944092132437579151869190842579196522637872052128922478308742294188620414429902554218571573278122066615971163228374080440206840601434076965646194423441306314025790409046381882229884054941940708492972187250172263643490783937355360621815919116396430979848657568864364317253962907511372107963498956281906341470301711658494808967337824230002875237655090160328606811577131945022387379050561206023667865777560252152141883161070382164646112364216170942133266547472516846035892263649632155001111359657179277846289709018790469220156308843412468232958876500130847182037678551800832368816150322286682511531479063955929963570027639119193730314462591867329220291839333390971913708469257034061855034004869796838115849599979434982327733711529152096416554352981541248704792161309399195352185578863267837664576220609725603921511061987116912878693865913860945505354588517872885886652108945920508290554056540191554905582677245297554497504335406760840245703934218399365177748243354103487269071935671697908580999527319852000202281263791922361915389017196230452258036655890366241397178271177668593779518707294277337620318077490037100126003589781052024892126234234130370681204104070767570057496680228909593827352477305936689921282167932166601682422840612732555738403522996447265820618665336012248259747120831250255164305788231399690080697827894361657810635290363403624384931371071684746292023521134690484577148876325129033471879738678769461401154813270439084361478033630385292001281182418619583130847530947244357402882679158393514540725648701225111773639600182117061706600748949262240997708602622094077108066694209055352138470035813221235643053892863802614606438593875556502850052623959996011220697693948587874576834393643996649277697618885968897890233619572631917028893953776843998516816178509834586148595535767288897305485082619303410680078453754641479189504990372291551490921000400678518960230178704597097161327271678653294665401212240979524936280838868945658049967859220548416588288439819808252957528761934846682699236902937968910557228383063970813742991009178290845225828232079493719646128172715998130726101348115705697794067885963492583650778178032775122593699522666407124979712290954830348255210348832884154922241356436667568130098132150458928629300820426816535582500765626727155210970862432990587259930468549747511126651787985817064865385459085059769539692095054272092856312312412484435303607915468214242739380863018035785206693577685106996281293956547800272245390560795533632998137328702787920716795167028337849822232974825681903075830323590388941854392406681484577942694578134516863437854237539750829638882621655540079271660171194596187035495705893142289006507214253085949130530307646100026958310628784635231256970073139097240123985036788845896092452754277697840870916611373568670031178344178446836757065036362040667998199502450978571948689818015816693737111702526449824363800406998037213506763095540223924218375936925557652177077124624035478722248877624988554278504834126142484744525162750769106214827235381437915238967160719155315090958512124290085706978259961379634895049994205390553371482835686187789043235177923650118617837032594950019879282134106814060554118086998718756652964433732032386868681484193578549702666309441714429561154978892736194792135694812237469563663796086964858929769136873070554236228173863985266567628653659726289259649759094612001283938376842330075010709406963361155529927111001116134724801052107878147786726410608057945836452772323654058821235462809780915055959173752049913488171626295736866629651000622228628287984805054736900476107764031724275194696961859400391718324266902539383088982076181845208587032104661169880750133758492237427983514350556101681402963968189319767839009642245485739818328684818211456973022681327057895140175737775082057881023417249092121502253521275831557277620628651802474409595901247541625531295428934058373190250989354640752899586741235869559760517877328124085001724073939272868694025615071721021364919989263294607739221460697978185765076884380946324791081543723954018915009984146007460028169249876744379762655103530492988251102061024787461954212362347804772474959080984583360650237011322704633354846840999584425365303119896033689759586210055220414915022584801869618317568743713402163604519426710948654230923407963714636418740897005383148047026140468076846242565547789273999024505426908348676608517933955504002922735812137295883067590490259600124651434194157233393466047536017973051545691719734786288272458444326205141748980319218024468357148412887557074550290357410889277325187872548950466433405762154962796448120064973178338941440866576964817912772375801323221189768151908685023878218219399374794698144618936732081019735038961031082743625863440633137967592416744924091108999262711635091762269869035660605289476633847608784923591383887056813430072707037846780313075309745497900505194948873790375913213731388908092428465928687471292478702063980095665571848236583075722139469945430322327668590125486507950272501819193446441138960924354987400924012471561904495392761981916441180568558474159609458140605556466857975304554463798509397622006753802332596709519912502433693898483941906110334828682187762309167056368400757994104012616428558101625444855546674588048519186263562673088047751988766776926202428241402961539680918950868945206709212151012229541661185323914110348120352686714123949542272426511623215899850578726215172804868985668600815318565020422166035809345409201348619729398032461475812418400455600925664040524330589869160494854704299789222880368643178854622413821557162200996079487806883659656655391914981951671214070859274420641220916913280183428814461300776682169224553676128470231352594085339146610747559693557330442751496615241806813670350737360212235137108342357171492823896800321364844977968370251788037754530455318264915363567307113557562598655021289548245488453150889837688400683567552246041942288191526133184309976257680914684287777247700399882358433572160545845000772223847903508552137725270147223261717332862065850937746938375097829538091384418166883280410670388238184180110729722142940638835787997399197064277875219274707566878947432161727387955400724089120873887744573380908028150539105364367827957167240175690160412080307021504055189567716653577579693053471244366119596398992237611002902455989790441770899404346855677948794057473036223608924007769935517471331486564530099932765035520802309355975395746182736403810022362982435597286129994497015770796098414469367190814802334148316585303281029164317714776582202637381850233267964019285963746859651526756538133994251290075638702334032134327889546911061394432484932683494371656011683908521858139523056081704947336004839950429301145322602307207197080279703944291114536227290086674695550246690886237507708087544634874164051138306955758228315045503441285266278018472552422862266492439187345921203243624486247703801206598856778001937839615120983242762272589230727185650274399942673445840284549253448976616613563921638261666655699201864213804111510430132257188574820583955084030181556543638289400346675461355416893659130904064063373236756299843346961712309236638969476241197480128080797104949411915991487404703313734556388205443028319456744032899593523360261320713714831318693973701094860651086956443764028002251552514045232632557072104662751500103990716509772019307003528972612390949034546614184588311494108709573935315279806844838487058466655036227999099592909555423635993538991529262407846671502241566420806141899882510798369632725300331371703002179119739244247281192448006700163761691831918039864699993099678620116425061737687882400209326537212688208103631528016304615433107336208922238656909104286711549127364363858305405157857365624423670910019390456969360035591790629425094489405705713769805773301333286480021571465772038399442251432911477644502516455886904927063939083277739229823656990147535501393672498386566196594990312058780639742922067843680333044434419689738438283807072821089159074929061517886861993460489251822743215010999009073828252854663678128306924688885472382336335649706402265194010056697966276654266777046968430261144802283033897305082827409585433303467853723589295558350099391393393917170059871928451126691990858165658786432790079694099463825865218636544205231047656454575705123743951818545214845136457822466380608380087392518648568981238152317329345020042218074025434707320559780609465014491096884597883251077855472299402032910280626435546929013984172977549146093318358751061187379708092070024337905351246778702993196206938268906223455423044727995315341993093638420635557627730710226546157892564694220172051551751913687821814011215757569262445103446786767209512621989970568613649995794657858414803206495722754805181986669087883738634662344309160591434717001775053004200948916572425960827962549612468992385526446954040117317495591778106620738825942839468677928266110028106804681526603807723349777716767802283757560606509412005038043151053713771845509544864499193964119223882096818749382624098379185144159057100143104206147268636434061285986019400212110989113917193381827393919741432230712734565292392334295716013976078780611505994718037615524045547568060147331190444495838529564483722517331601239683633605284022098705724927165148779379103320820077618045003310398144189303241302299889733800858371185664215296841682753239659254197043563839517627060905292879285590364829865115515354994315218288928918960015489828388600863845070781746617524931405397252369858782569919456608701078456828088504165264681692114409911604317546432659789855787470325723247681820129357748153323540305667985594434348342345192584407783154436765680710211165783196640939873735588646119140467029024832282428670601121472345106947515331588114716034021764115678418873312980161819647838310673068334996989252493740031826798651469957168125882553326135695296675460169014318436061296684920750843346117206513277272917695787274471514307917730796892378057945247396836086770249619853342625629156095465781504427872742647132845122523041748801216149102738480229452461823901281389643206291065747479168745801881506585553344220059859474947593022720855015585586557954407392691074965554357910690422837336875085107032233388476516749270016162733630131146616577712424998630335168695168623388436253382878166818134420229267230157128775786898395559499312851529505602733762833101683782321760345569017540560156934005782602907660169496668628061158598043706713892732770430487654019917199876168412520078096241391670929242292117969220218132604594122685052484340080942586526968383614783246829018755079336564054538757102311650117049220148233532886003333336354035169534070797313504756417426872303161290951076917942551727440524418354477240980450789917809711255543350936956081748585668354118233577480212069348259818584669478329601794568930010083332541896666962176248111015292061000152985139350384124345307422280615905681153939604826232830228552033009405963826630370359994898668695467228819932549668078094361549270194907885335160694489469611958125201543420296988386838375445687466758415683671151536664953993007960348847854554168655308719229335361451230975761730610300350045097886791229973942564836454846308815564999721043820988522041995217187582141647580719412196769513366044611078868398324547508083812794268833876735666269412420954251442968943137090943952834391886655889686222859257668206760117618328926432692705150852335276434068591438419483269686076117217716199463035917321781149676695877482100192716779083608899755906519993337318300087212022350656247992668781545996953072873787831500666432422187199696330358110774485391356053828077770305222315656692255797492473392631094487045634098716383238976639614338991422701815933287904177982697964416892525573884828752650668881024412339955787085375665343662060310393361658116494751894556350860818854440908826400073979353010337424146050887840554834755719197691461158609552152198796824211248983670996284116563020273110057530620370147095528841974299842510732718939374932479836348862973680386593324381229873384136881130770219912889346719026220377637396787970447045107211869451630240996386286086581715350543593443026218459973355136272529343998039292074626513612725849199422799965327176780325838445911748448556642870108588886611038775453814762259304159919672729812719319800999373270886532509781985017938671456850828021224650655174105595364110617735557490234959331528876147224292171814615974991691014505878435106738185929892459698777361157001820205763725474056054452323379168647137615496767332570203180963276985381098372629774614182094111953918933167399149631365870094175286445771565060072667155090511205963755724375049884958497873675922314727923471092304162467436947024232704297661292711137338491229845799203156230465457960004146741340183707709559725958342990524779818439504303261784497858003169893875342178929958571174076192896436903651439983210064204996593244034862791572452176483257968776286361194726854289126112053333414286609481193947482302188226306236431961133118542285489361924623317856850207288988848070429668899171697493722863463334354923569016662551303260540648259793688118052238499694132311728451216688076547254874830715578218690674370219988771441115846507983903998984831154864126874384169928649120812558403199669595135150106172695105464410701401658634438083884161664820715204126276994935778517148823297899227021578657456859527490670397505290380963731702083732894588222346681452549560733658852676237573061197169411372824501286296765487653680372474273794073888871702015607024524619600185329625557892420469230228665573606296924123362842943254823326652760694732148632051161954416127334844219221114271365780155040492757331824029250945167848621935369867581790516047376529639094724659580173560897312005197079601439386559055021071948640971204117696314592881249913854252813573094715961156184631545181939589833053567258238598918748539041894962246674111240353253630598658787572638464346807975194213215467444961776326345134716855385386044989304550726178478825916498139554763368037609727100964483499319332996022089550969482551875309573169505045128959986590415628923007224691802646280216428171700644343076665870366549308551541603651088113800626330373156327308320295749494506638442787217508118611391414798589618727834730320145069961931022360500228547385069540049717393726935028130110401452640116135099484881438994946205780425130757981949279535366776297820926158833969842103406096957876003489833261365685723960556817496672313685141832910124542222927772560538944822896688285278891825571288830742185311786450756514726146754714419531041177819608929649002974346753918854650396307798331519305468488376542365923349744728553464495097767073695989757080368655541849191192942657495290881711835271975095374142310834767990288018684640608177347939021063164618707250483162684550304015582835741560024430299316276718219943892263280001992613365121010424436813921279062528450056623664922720922434398686822948580131416948151125390272387577359930418026798500285581205855184386036620716876915184581651749264096500613568819655798413434577497420514290205502686154435545674349091452429688683691178200142560492693313761490435473646481472725552529269116652161902654242616510701894217732618113923051512379394433973897707474549160771037039684353870444953102466122515836284721853738564503204949850844828189329713560054990880941785093515893777007011173244654218169582788176228580766602586356810594866806871497041730034194566086530550958115877806321170329665128924882350293925455114892719310635913797727527939350849533023239875995233665183611306959361128015585275288123783486478698389793473478034728015310945918024984659243621015266656420755490439599773100251326920245622872241826667733846447174440075809938552885893670543697490920492738974270882962993664800279895941369871731725704960378209183079723255345872160429094287905008453283081447254599597559940028586006079463943481114471117013405229341058547629579479170870458760135375746309636787369990676172948007522903367116312440193673542731577723532284797651052200281483273490981513627467047948785002185787475945495422744780610442242747432122342826139217077080942222263096780653408775011597130317644623767011532625420915416482154749237711787141147577246832380739593047987535420601090080202984170871302720989703528265286586905625105265947943719747426713078337448338180659673496199928911443639156665019497050454121191357898436251190148069589300971840790335011314262781232583672526060891266378597613037715698141205963813065588460233091348747898734778807146667660284631994670943620858843700845616467112242612659316592732060035738085130269938070760761527816736960717623419489046542353696105287979238213114033986707638197621331546406361685662948802820282262344649417014137271142146712420078997009850045326809923530477064150908457855201698768926542319214172494506633882173725037844615383384631739366409033243561803775673492434890066181057327626124648947855640230949897103554723806948153191413651329870737994316391016097417644556254716339198142642419192058111888218559556191127569531921016745518903777211414617757209839785499798693500525333946541738751862747028349035686357877504077799042993481925502273076806804560574032705006470771778059749711515426417526839534856851426648848541311917776336322921498910901350623116866324538258896059339854817547181447605963981331636857586574657287961501104692386733576138471752960853643174744177068839478818806995811316997723432303474206617798615821181483394356370857130822164364011463562673844497888928852751067013869170138950709614338862935357945761803025453586323489385819321516876017246991739169726451099193599853180826687774720304321365765082369299770856770115289716719586468601350875572763176826701386747560733052672287981302178586887269947673158944364536987106398406144606421455516485482306152778897713799938723111070230378422724639430144776228386277848441433736549340295477577486821718436366434377967444967051078159756779265494504961093295940801989287674879277273458178331364982170877917123849640819268148984296968836208344134597015734733730370262426897607403211058374403830285874202604547866563260529518465889445061744134761618015730043277405790139612599867332339757809154967813724210312678524986195929839214093038081683516652644102419949122464979987523621393956422080569132946834518226696710729065224856460050094246537236015096746409699675265410938879375314828741192209163572173095282929290840665157475053078834285032648632006912601592532532457193315317214552496012442653395710304135986474567967961692350948233080671823545847150450876634381551155127658899222616298173380528458444263318343727626674746706236498725721122110377764840567200147438900049228366466741799766901095748262120223254447765517130311362638741335279232772865307855833636243566813866375368850926995921118434953275995221724047622234035200193487610194606818173640663411763037733403636154035836931268734176240584914206869572895262523131211741908646003816755011483521449014251278700475974227200021788554883016321729167589334150659772867661491393538868937339406905607774904336008494901409191552240593974326621386820998188353029390647586226189880389542954399975385672855796828045626484741697714643672521734168785185870093230880650645628828511556143873375898515438221456450534757577671495802940067419147415199294490588348074829059693719726642200781491662847130369369690210263230280093332676098606497923945754736090170265642595331432479787808157356770153129124489355765918615799982679022317117992171568177480215074954566254690434154903872462943207538831091573355802789126282989074352550477547445140769589126474621424145165728895226645564511982419412006520737916947521961827494951003335940523773278790865151101358390870041264344931586509410464323392376508816255168988808598413641639052370575207247188992852533371702157766416369245529627915945487518119127166242003482586476174401847932972985186104193200999412421154062923377546052757810561610629183590364471470857975679637703917456955522128495266701282012789241559352956220602413138010743650597980837603023976049534300515185811399116031586134015383396738856287890904328231242722282824307547249617739527239951457504613147655507925289185413577568236236726771731164778018945917956960975712783558189835184107942909592073577984587747742278244105681230903895188014834517894777220444831764046017626612886707075283055172821765737122595612626117928655243503963842849770734923627689157315302538631433458664208333412205536639822975935779004182603892979822265464186469350874850009635557438910711984892666058224359068712167408188986290109218259867785821412029451727788693696928856336868375395714125837260497288840040782868365572364560929113735235949284377519721298314396447351100225577704545789550849949455832093024600872717166841906427006986663178728177171225729258377895859581782891575361203185932604043250697059395021436214988887830658480296077291605445244709134659358618317094523301825930876625954078521529743293982453828255925990931295312418002094657136392278039652498978890637994627474927532424955642618619686792826042212019187177308915204169176286160355965500792449877090697281547582185331637688191705377779162647046594637338426329289088526105904442624187211875759834278443179761788537423717647748048840825817719620344827150680596959201508105710369104175913528258890186190347462412171330207517500871024087799747536284234796643545685083425669102628111638157099235021164742141386555004943652605076164719672029437949471087057631599243832096828106718180085185266119286758222152112695358474961809213798359393228507579854840368487905838423178435177880233076091295869169394371314033127661784808665174858308343542058381034645335135456225139048129921036779623503209544672476770958143525735091609488480183239808865586276943538274012174560370561138043659648131192419876170443415256418726836530881359432986213534053024749296290878716202337886905395769757762999791573033534127893130531945903664403496764130479653525845563148804213891187100279345872987933687186984249364258083125697022886832412793034618675068388554546878228409870463497380393236695620908621321330078569016692627041458230252089216431301808831488861058242340329591663038580824257983066384420294811843847337723424302214815257176274461119585787573259690761177201896442103089939791485616361213421297322189159232741233913249190269815747729039224477924523463938808455910072980042932805865729393001289498869332473975027100104866609352020089975511160514602812898857436452972570253266708838635928973682712133155017516712809975444120657535859743491247700523338845558736181018988114395106324027987802349005808161449939127640276723698819652464720678472599946300792910389807366345639845441602148293580927242898989482450974290421623080798151042207852272283096716664437707914862139420595702296577657575504458954646944394313543887317929833306519184634412793731625931593118157588575156090228243560146748295057213382792658674251789635957983528213601866829644644837312800039059641614029113433072765527223772667022441613154100117363366718822942768648653219523746888004821212233015474469818742010736058662939502775945060931370917199715198452932457438523097946668464363728771151486174729768730131543860070109730583116545534427377346893018824338054656523293192016717266947561545629492398890942726730914176208988668929012489754183678954783868176421419470567875268991806204845760645798405308775847371833026602950861240500756422437418746092652984593253169352003691285185116441225713305840154230459169560104495007628034599334071187186280035268412354801806425598424391058473355227915454188080558401179409187454166950261405450748943320590666972292877536947574478795532414276239776509605627510907804262710680184289581760840834008858211962451197206278026657210565851509173938521424306949654547379813439014590928419094783204162781234856457147895781884052348848907472152819556089027847990758732486699740248907246166246144085228744121967205693898600024410222277589820077519200223379272212659516028960130380944971882189515489332962355498017812511036417722040824694544231701063866445984234192412514894051879669766233357399585828723568416431144609746816814688389241703180166196305322476104143469207891729982938850063803230784412553853945343182495521177892152506154726208576671805420546620760952311721084455619250184397203906779286135213051851226644816758560594475038983592937428911593195062420971803063589014336719623867046269766624185419013365116858683998723028757971130777746332886339703148680637162683559509618181113672706263986667829666265346789434742912901336834434177423750243444014150221765791116438946159875449100899984741034784724192349442432287335146784224460774224077102463381735520969406321661478544587838280094630890494582727685522191549383619218323165047849658419650309054521116259113842024704207482541428518372619128471502802162126763352549755100109937836149024146769317830164010701061468567024333243431233552061345815738666368907793635882816871627846583695683219331105949258957170754446299558912664035287476589434485415944642669251697074770086995137375779343281538712177722367448823244926867509021913736024191553343106037578008886834762911074160642129095415493968727443557796988909855738842290519143282854322275598543912926609123261708618531441487497339247919543456156550547600581236169564680049385260096637237466436588198985087012885390666422398170181560238596153257220506208398103465733330057798239227436342694839279006532031594141416413223911628240111451508012891696052859222236348035351434426901842088954927336144694734208100934583148975916689949203934923276967459572733229304784741234826271060887685171804140543815409853720513005881072513886882319426240641223221687754008298355168758976387309663092794588631786978353502630785225859503314918941970533492829350641322051907792861139268546389464315179375725963178806700179410529575461420927885374860548388328418505324633155661643490116252735237698162694517035939251593957831672832812697691756043934768597405791800294954849843737537004538219980323551450780917735190419025884521710654281724574715265538234925665358750800196507291637443479538808981381706148535993320085796128875605036297272320193514964943110519775898524901962226907543965214692127838026003058635627587591556925291439480471425185629386793718926240173032959153708853907919780861201468726695008994257738305688548555375880488124782812245328036411838019298386934805333272540029739959714164152102825285895728027888874741582048267286660168856367566824751323557270572138261806318410981336785319571525060615596599961096179509983838959344299837741469744239414194447113162302083879508615967932876448433686122231701061295593768398368529253517427019638058402711297607130175101238819736305944601843757986075827557919264725575009717734088435733879347241094703745204896613559036150269533252755016966378306334151472998999369887791970828370605780880415681906954116255219522540744070510918397233597582800151749501020190738449338254955744651117198945730629551024750682819026400276755478931603625712407976506688633706996543446926422264310522868880211892099341955282709051216373041406678580230577021856382199081862159047999614652070671147556481714145260440257846627095918019879623780808540467342780451213500567263971272037460420125750698669650106835391912005457664697435555555585990947897238674057303462669983475115360310909547625716794585976529147658772177045681397133629324243119466549022087567390174370794120416837725596612085650759542958350347700650097787465000883947903402816313199800918684657811469272918394546569086039655555381538738953627211762565647778138338972650316686224133988784059670033760782346682602791394537173665678724695199897874669345314943161296523314482769370246232056269093082187330465318490222350495615024033295891557396388247171241907864259107112934506830170515675287049761092591167019372187968457079517657807228084786951767707647983909234684133601147366990417503442819785042943087134333604731602274288395300477192680640186590665638383672199267087282239174414691947862095583312110298194527126249554913675870532982443937718390208595118833812164055808812120282876687117028654106810526998693945852833725253823546602555985303603986518585321383729020473289316312942330177930174170491862168500197327164609852946248949634802693770053136909138395064112628438344547692435994998363928313978261282208947278574161689496619218415258266627620534627559378080338148003541416310242949729378567388577455992983245478233296756070626072251315309132854547536028519694125223558757634162770108420974347837534588268119241619805557869711532383825690861518171705640898572430112668869857055601669910379890214384389913887323207063444706663718989622649552947885307190451241783453901868470252110049089308808311522553810166037788043611537853762497606252002586268608357022602345925219191888461724439353239094842346153105715704128813825377526148294158112170262542524849110668976984033023816769313978173448153533307714695786377786253474514851408110600879538626392505545766081395265580337773197371997351272303298906014142469032756521353185777006263865632076577788015595367254641437016253508458281858954341041729981480177537455609441221056854416388915255553782746584057209955973565280630028026958856671153523850400013391253955770193934600537188977903502513310279529632739510858871810892261760276352191775948243170180858026580614171328044566369964842341550433964058997196682009971463839213812296416323858977641646625350427312350794478764931352735099692878545569839113286639221548125969176261986561445001225309577750660360007830689169655338883054825122288557991969636444580326726867635816810950003664983646502368552835685145163589332618656867018242927556135086009771210735272484044115880614521707407496552587946242475660587413864128421912478015104886008715197583781932698914448329593716172118914132176217090870254621178205752961521627402692132679676821901916744439435818187643670707508887553509173026843630464466541116914039916162660599408595084965852167982082227022086699918223524236363987382117345906841208585441619002662811782295973221872709867072666498313523095500477363716084374170533420316745530541446753998842524622970525841518292305102297399755712269118504569458768212034689868959389203581363588088116488877953944550802396804102042349251771669381317766871930022438139215297153478223797182741992514598732766505115656595134644764554037631589319284839391007947410376416250172946528672960170672270725446524150393819491560007486119218843215743562089457892666620546588808231989117638950997517472643010478278471192579991907460962258715373572133137219842329996459466808201561452351179901068839294408144290048622965780653520393654122632628990006244895579088165416459523063695535443542177921869521906003637239540618494233772887518208267833283268813657719158146528570397466489263168535789363261959540751626456201571540421457987612473126837103522292922456148722214645102709045017641844677189653679503400594144515962280162674517519079960421120783413025039500850244971597837590036261641596374610311228217698180724268308031944803554599884540149517006685086782808116772957620248058640228059963073840278461591183653071949239233552813466826357285231193170972882912668934266438190852718471450777736695724618061901648389914107628378950615499792643070783674583511386170890007572176654052707809447124398710884013054501679545070734790025507858737239853895966140828433758809457125263701251045163062741437794055055515225384082442638581697302650983075992960003806537476373753714726315826015009006143801878821472730064415837843890073772709456095549150152610086756568348010107574223279474795110715674375184672114156317915314908786288318714225811518648084319372412853621827335118235562472501735943116830363261044553797920272712950314042547302387187099196573512786428285140936394301201535670047477859363746983283174512344038356747366524124123504590775537491003965386302693924922465950800143410711480234586320852376447743021702771360275752190432242322819032997791691858597929182488444688628724648472394768624401257315221961060104052491345855822878388175919848895442151535486736122961410585267401958471907668437920135111691661517801540959694692355638424894359724268412015588878582641433114870589893392150229226313053605771926435785727489483052817908916980354890536941845440117784481487572724192297044659650701939200810607214562587377547543343968737649075027120442981130645101904267273306558950263622183640910958872473016196095768553849646859504536689885896714409862415795177288193198240451951497579732520180492928782802993931359453312152465267794371791218822290520841083097332420042289352395876253136600689513649220701904184138683248230350090886017406344749861562284191268633828479045524948894000596687763036133184347127402758840905663976241083595993746780249100997903417588279421203765158738813400998861257848812701128630755632996187504204673943911492973082048862136976369587631503585398237585645695957307005639048640717595299609685878705942229138709231668247806792131738028395946799259013374116582451729519672951324180865452663683550770605550620866747329278801408632097219050389359426215159326654942173262243419370993146167330526974468716205474959668306368159011219521918177121827391068675800781879064837119212629608957541389453712366992356011695629082382717696076130999174965669014435010963611434242100680858907706293800244445192215069016867324514504175556483704826143020656993265230449827829265652470295850526861366595338817088639280533526968065433808524969812326170166367303718514233626441304020901786388513105082828677258802280260148119870395856410136544444219210881863789937248870477720543736520313804685163230436691287467325546342240036505538355011555548230674591838698139484445879753370449540122330532350401315931704647828780995529671142807514224892626221467285067233563599037804788065340749389492109625515583483598446274209879285426264247900015265603317383532366794735872590265127273525801776465186212482481168199302105249314022284212838329081783063037730253369069289694287607786580069348784934813540123944003651574830176863684064000971959595866817642396893879111442524425500319715736557607695282159823440886440614232358849075088049481556748889178421103437712057902941797372126769941034522521952393739716906115907613314109569140325992269972230692943007677415171424719582744069946295141499422873697206838784329419788844174452607743625257749918347736579463342662071129510362026844949500427274189258458494083014618659182100050628688557533319536522282602473204094910046075636895905788367611012130214904751575050369866762531936688215560663150269283501242261557244558774846205703561574322587943401845681581206983319155593797481684291135349041270124138990713053246847093866778774156076477784128792698235661871472353071050356488933536396514254386555407545848122380951966481814960919275156974055053945787682559150439423201112841929591060957818422555673844917457750990800019533191555462842012019934966932118220517352203933937849107480162311703067878205925928634351974371382455873408811773997577322653072754838411661916591495096734342056452266882423040946114103738269846732121719722825913029869193063223983966898400481687323186157700791908264790823393398916217533497399832027224141836206344488016675187792531838091179165105477322388164501441772157787420779092848854100562350576368540518315215499139746768503073258463471145797749537080537845498731377813088994854971868935685664906430545857086910153278678080305105684184962852117038263710993099238220299082391256576263345935679580063007879916407790975762698420109415934555911856324339296438575348051406172589872418482767610367979327377007873209752482366753319585262253451195485927937995356836247873526786460046311768186319139729926757870567524506681510036595941234849445389420713828844855860223345701369439637727560760091276354726313506083328861283196764930931842800697011350705607542772111646398991537695193392300419840112203847956271790634422264813833921097273324314393358538806634300297845621287027281543458477161327800416169008747157049259268084436263218722189496518121878573463662446163957334426086752675981036149266016640643369123668748534933530365420940182918948770634347429494474273810099583352698059776640034064290933717901161397732628172730927961159107093063844450012530238628794311378052304881225588525682135159000160055053952864041110737697670307470461179854189902471825146664654886957333612580392335412588724918840025755295023962154164808306205723686631146694028464400778018762743128528651259429803078672298530842188821343162823287154048667930753506905684964915257529700829270305327355907316700125011623102015457178709754237315188732882937909727070363421017258506447128323846439221131157729504631739579478290777547988616541357585246309642517789597269935212944948625211466498833071785708648095382915273875107264409916020364224868179107747282390444904859707240927292735622343526975069606311465617886293389065913035548208226082703169712627529257710102487312619741311941269428088524890775451624625164277754260188944764866778498602730545024618936250521788970792004022499808230767535928040667369583798588531517377812122124233916944025417204351048763258840179786348969524847185005314504921778361179149027866500415163050697373298550706757601204416041723595784970253734017068826190769039777200120436517063504121663966165857933469145652722941763215391100813810727266974100385641564893543208140579874338611335444900247206240602644739712959162560261813063738972116897404235043237785314810447339933187922012154983231580687636020520890447833099775846821187230159627160344434543218515126241464400440667881027823632744550109191243026379041073551593780728776395298918144732369123384586721271548575912880705760476621150838150122841898839134519357924150567737381625072758974708367259224334564131387491383678735957275304438184163813649337144070803513561644385384170803825104230917720964447411842015031476490403049001895592137348176926510437354151953814981480359603671841332124993278081950391672544230842954092858742295534539647981095297247472064925479442321368771123737258196027222661035316142209926488206199853284952249856610385210933278821510050052717256344985171496893405018109594925206598539884900773142145432959563204437099385761123242567765157137791481606717034533758740661345843976638392888282728994743601690685171281296786293788925036641852033376119093476843034011858736308406292274564523147292046626661904493885149587242420845104594385056204651491516052458710425419288914597214003413577982887171325073479762237781424847945974321482249500695587864723805064650380524570038193923112419675820163335752447467910777538153314986673765853939477208930244473718970867285836055855624276129685114469937354441118701186176892975224002670409045657243890167683268505973090180653187944983080352266132337491311708716248837538981539415863790706030931117788665032329312179437696090813246563017277955065328444764144060043894104084136146906407271949269496875665823995376414618047850540339234188334539952030440089185599823997313784890301740958186111101672581209777981301478867451733791490621298120227200194250396051969276649281901259491761193144431748966674504182956297582811293454375451424555172271099915188814732773952054910032010575774043180458915553897669341597979622613324203786312655962848289650601967607690169586424163816898398990749223512853990287733599127741591192359787392067684388293955915810045476391689538026012308677440569403016125936869328679659918534025176519016504087990587817374263893431707403113949269997353443968971702125750262780007201469097470013990252807948167866766140709256710899958561920954444462781165324422978701557876066192140493262362784267347015284343606307965821073779563341924214310951873372009216563142979255639566263520669194029303646722319668710699776217041776727619192841336848594671367740817922857343480138935834445013629562792983388223523166973474507027570563257547373646612539116688649684370966995144608242254657573852547247747792765003156208036227574150334412848078613197891123658845137423454270387308795013653734450011166073384054963211173416183300608086117547298814004064852132254552470173503479209668200398749599978371842793714450823142766437672490731722733919134581170253780437310078999833405543400896050625386820705646126556823137842428152642603114279686882286114231720052624196885482974899252481098398846684817094024754655701398689533112854225682248684805252375894369489483266532145392157521599919692980632326694250461972969255799055159065910069413672364088670357490527502375064786314845881990412501976532276609616752000395576696944462870016870982683664035360922785714586521339463165630211852547522315067001905084276077350687030023617477990087015478900212632547116108305015927494122972154140183235151743208428521614043516444773367945886462708707870667836340416873023539610021757751327072906839309512617603510743630249721367432039257289759598773450379888057620497536890517676308411321462306303314304921766166701469738025681097968997813896198256347923295519358818460748840171858763692547286540286858078230727112136602361640631935872307019528865957649322519382475033583857137001897856674071432171901470961173366634965190032469677202143583858853570093063971768460805071596165006040477848625067703331329825994624968749518871190034168828160252296217858847073912306914896175526512092475216739969321846646985221697476259250328104044013519508538963393069992931903090216309569604441665698212055505200926782594786515405452808361237685402648294958648284600431247003026226179006011856838753777659559504995917739058378081411848316454281208439170645078236934781958045592568913160699030455090052846902708495424167649214392312893638972165896553545371150774785411172707176420455815828093342716846094945904939720295962308943395111200021111866585744554021299671014596238900761927865734671319560842479767842067892125983186855402088252472112224575399498626773284571409465498151544446570951551177748897686272955826489770027474550191204483366698054627952078407323308501139497402926988490841525324878273372109055184446869214991289776018128529872403941054675135440466134089634826012990796678807977938301384291137156002345742447755251965491728963387938376502813163104621663517900554236247567100842726038661049126383232991669100890118847709867773218966944552977986822271102355489755950824381686012761771705783702814450609656127321161101352741255879013254460427427598496617030247865240872340718680174542342164447452089247224731664143702966357208369832205213407381326550727118079205817655151369611163282943077586043383513305169176692886714745892486405987719990871688163631781989032773826467766229613793251303414106674779695966487630376911795614653208947741090944592355640358374549534692716676771444910657718061515386729854152298157926550311443944988654364024881675076131981614034328951118093588548022692328820165761888693196841118251577587035947852646998652158612732577111986589863534501610720064405766470935703422595861754721049836823479622376782231328971417075053986192126001458708187596857175585269145616340875131689946733301828459614699899045872465468308158544440638605912702963682994769960709999691878189118342259038209580199581494477076799492537272948105134908898159704894653887616328981252870990523509697445110831157373859138893097432043197798294735122218056031539729945783185587458757027868234654712326619492297812117411631149618505936216968555755998066050368230837335223493410437798114631837488524883414373159814810220836842019336267969866212424268748370828664261091115479009453461512320251594774783042421386277519031367206967067934037284765450385657827274449821011777696078635972817171893642260733761847786578531426324587439841428802349623668467026796389748488816789467250120817328926891966027071225297771993355258182436694340229783377651047643160322541857072173093723738414885732403835373548954827833831101200929826401085622537172965522919416457728601374562696259075446360848295844557115783999768017856907315346661393423149998504261547048176532724577703202355047497879447097102136131315289658441138849072136192762759065436507131962223237826593110263125481570672482717665947655876437146704594345046287198353186832892982659686411522580877268104670088823976711355854152669357332976149080278750564070878723306325531316059653415990715893426219364013839670268336292790104229277106161664428525843391179578935769470801195237066298443147748935483426522607275518052571131923701273942454479988435981488055943326125016998015249087597669452570876613381900288468563580593990155588737288969805012510379469428328817444907658506198109977648086804153490564067208061215865270722171610677180147157416166392983052713372040173642397116184475566223696354886149453532263149862836793068104551269826444207718049338648984538487737905609298590499375471534023991164851397070955083526436254858796913782827314985482275545704974196527798814971288292166650684170724080993117938429165909607709604665556420595507243037030810151416149933821471828795753084432559367752764894833994910572098633016903909506248489712466879779022382154393027956189686945705613400269777181377504027358764542793282417220124280248438626082298277390894762683604188332943635417012341658674213816754345664836850810526404611509043172042264682976578332925957577163231791765691799245837477778915519921834484925159278683302738335238277342329834956396753336724770006989946489895346537497462569268189926112423971779886165357250755995457299683013876141335617143046684578820308322086248609846826299696224851030727408154174426710939732114247550121078397157569412704639176759997015026446849230848779991260099747358384094765490179930748439063386783966998947683811282799728468877717992484892535409680049635552049970259473377016595521944952424547248290046685323003885240979580421893212813185425650024196482946924390058779556065424864758979634362969814612881498194974920517097781190474907831248628858011586507964368039636534735764968021193936647347251581036361248731925532839989007518634137273495159166331111759379420707757323116203489173249699410961761214359766245746621411255618562978341809580811526958575665682314750224611446988337084985026089290781747549643878353823131318406371145882429033951764886683553874454673740094542433272615090116996492893328614936420853474388488615293816188950568318924063960348505191664014489599748674372881775770181748031151623745299623905831767393369965962346414398708465664906830219363909690690279084956177470695765046362068015665912885386525727930355159309078586160391372666885150846061550544743560247639917746615365679659350299806476760073253643742174844341341258905342391824812270442890852133783898760547385538563648354482112224995894584206150038736878245957689992016654736760535593172084879426398931402939943085211653825696771029485829427735991454111259841837914660164209329406841362515039365650061913050460651583314911121312948674776394605661350876935996640267723419782175554322695249534876721267184284446647818290665418576811081593174507175528309094061249817476763130079797656269759024216075247050476868049322524823217241345515022517085024815598652690097216941796701838217681808760015844839851533089791129886998235223175703592451873134065784942395611136452089623486756057038390705348882576620043929494076158699583785051149408150511763174104757991711296550442841951871892270028047527558513739023978564671601501809602922788744779027606652123919364830841354814570874855819675795025040410591159553909081529267695646197942992091740674201061695610086468232420205975655459667149806057783989480273791085288544410198035160939558697621617287205856770951384929981016206984249199661689192670579405246157143248392456564407041730625648481663432927526237833761562945614125030478535042451886201997601608255271317528203485755527822554530888988738050867631204044967168888369505658292989482993048631804238381278232171703229502288543925708916510638532827207254166216079534413359882482720449699295870095906158472047488607878815294640820269481557600709065732032774933882034259949043703998570148181515014165559501965956265558021743593278805330982769953902986370571552073460698120160718549026348695616428228349405596025724655676840351920997871684015432388703884354089956073317814398727835600892195704478831066324773910377505562144317905179846840640554707353780228418337914589317920011089789795100045343627127332353345553056296980085056586826469123913186725685444591436814052990373819543521996000694627170205947540896634393775847932830589606294299001502880650023314802756336775982055339982603851159471942022639905393814932950369429694669443598288544932809465271946447637020749776481772058423409262961418390609864555028471986053554437610267265111439586126803717926179822324959204297972409561758029684367097025931640898259428606638257604253101204251734866136413724856185648515936913932756371848782627275630038737560533060547693329233206034831576102144811663672169256935953773715755985607869085060694877822239797887832521024908883114438514585538751251228187164043816902966886562038139073856928426387153440355007425531835063193492107333395591534268824294417609151886758466626057258430632817206770619961152303835282713073536909114927634888653467631350548433000073296150044659441106175719021337323125613662383134053728446564682561398569491263482806119358419251088492718236843529824769818659948529703568836939573781862016933538799035412102767082994285903848639837515447120094815254077500849038691933058291510591383021504133790881002983497490240711280686435605433882582793710742766332257616105256882881750067980613000759387822295675802910254453859076913884653996883722109845553521894303232076354910047780441987845937399236382064287147903850379261183863252907196479423098706848976391671503113804752274789162430579038717193075044795197931542223776352435982179621861715472428916247384837049384671044716929796626125205417541156554327502788714943134247823925372023781887976401484775533175435032445487094686139359152912500983819418771432549170750284557255003832549142222360041805299761811252499462873066833284675171138139697131336109342532234392603399918236619135722989275538646116192841208476780928719899186742125474131838792382926248592165696149968112084676674928824828206832102263211580789519316433724371835163197286030159566464094480448919416815414807204450547703343967457018632209423811490460175627869275666695894996096856454820653680792913404814733779302087208928565410853886717332816047926954396675813927580939303612028182242436107355771578247662441625041332591519370515188759507849324886871604350185840639266945050924208656851881093448358618525690700383917044322856569452972447936188542349299639782702052559090322765791069559943993979428456888590647274289969549390547829335782497683835162680280683375776040713947319047310306788680276039381277542404721533263416872592052146705627975071212565835427526488567803382228362286161573970477664217370024576263779816042469840107396474539618999317900810873787939771115681548295405587785622566431911434078463182081811661798497272400018943173322114307695281236025592352115842163995557711037072129572449965386511177030408535002797200333139530927097035714544024338595645946832539266061392351561059257668072182724710203401347624292054643479452310105774717429064807833579157021255048669389217237822895845255564607134073951250583834416241507000982672346773334872142458801844324436762027054000457345443766083300026439331088743255965089580651769011257101040012311064194782506126731015952073399397000986375632884697377564415079688554641734849251157443096957160777750778038184182578723000476540539820743663041204783233398625361793379470028453162740548953581004442165506214119945113419744792918808074518449821426649170807814827805574505875409090129753086489163998065490203676027928829560445122585028020977105445023658665264128338555968159996484790010361867258129779608628958014715934696187308103325802858565712388055816677512012456392357518251279223762563992770081613430416804957689459019168754380035420807841843335133627772505311915083711027446167978688135361540480794519212650050896568586811302374296231915563487298572397517861532160083226121991229168881476715810457469143778454916557446968560004673660510647067106178773337566761155925210886803307996237213951975469715351431575562437746111995682718231489107535065912277650503028490020579314640460912475187525152448922172490413809785548337767205596316469173848842494572450565253697877919851247622179898828019933705201944036212612907552267481102130130641011300049969392047249357905063931420631113756374059687219988265799609425171672806466637799792642630881429479279315392129738763475777382985523740044992936744702260491211408198049256373313085413492129453656282212486602792593597357961792689398570206802091759390247994054230028841742572244774111719924950422935776506119932059987665819564572892447608662594228455988337299861661963525711127664077926435622112053413835092535802514720466083932354560258674451527013223869638240777772670175470569241576965448180854765337735122756484387318598413719304919352382279166861342160982433949866996590485108303854945531588158108131820835548898601131492789605775410140000096420598668994188086394098330420710722611886984722562737849826502284938360325388456621711670214858422764390685715045261120985015899421388358507152096424249597853951454525117339288458159060678177996105550098253853589549131702665272684480676358338575852236150287008996574891326891248479569364525117101289171588162738777462388407857564673224741205078018863761467056069507306687098492022261528029724195637164825614048293098835427158948118220058679231193282518362333585805209618269297133680429437103657026347230229789654804409375697635556142474134713146722863228498790844428471967731807614846360202120026845726945640654520626269406482347422433221241953535928309817593295628055980504683015028028177905822775404247961143732423790106403842126212710393949960896734181360126442056486213771520926567399069992799584056623841458169508441722096806801451593503252883231705663329848730779720742389035497523453210009077854863410047070754140526632815234668004712327989147164666901393906745039263836700302263863400377214093503069315703216317399382769948439464812613402266330602687601836084816726507981781629145961441005028834961872802944782377122334548111605575294810078812212953281868854565420103278914650381307712181945566567883028622491883034293471403676837251011450550661908589844680135096516359367946315803038646699463985592373680265580855418406908034976215284825678867534409504713075226515235217766232206280129335846347794168137619476900670670727845652189035445066368890399529523957851194452114805697744109762055937699791763630672576083098794906374548738835310464662995770578922885764647448973053991704944487544535781709551636848678657472229612798177534050412596854234886478786695959102445526444635613305010421125376403917502141205059106204360125609290206591232494033772575009777664781937854759642901227455455316766209035024003747808553790433291359009338161244310644471220989275387565367488240140112097998194459912803528042737570580427651324821489594372419654879965321975222285569324294869254856307086239222548186916380004169782453092356579017607936785453544636678449752006997523772016719678390026308095471008532779738460165490349387145167202541739516768263144574246255155911001148503938004943713676577132837508402182691302408621680831027035896537003153809678499258718354615088505088262798023168874703363419073420740371541527458999978405357105027661169310470915328005667402427703802738378263509775595638228621625175961593359546603955912214147675038758099554384798717485648806874703649987128269748729558352391389132810441876905253989929256694320268648945414775851270561628891353638761452435448218744602183261469107750911783851800737371900408994651369287026920596593235387926873362740791448612739003889660910611062937684854158981077830175601130117198230418506975618503543545765476390196725791957132739799211548694150306485275886918542804299798403962758192899935318171907808091877365338667972957790323416072899587528152643392139809367250008311122089709934051514834833626055209770679476190950536765157080387729314594268879361092607598585019415626300298581859905202682505636735137647497512304262710179085446295664315311537814832398225187146251171078094291075789119941923561125967918592139445711364431434171755440304574442184444153413590480873280520323428325796616240408759822361148443152385174390413600190566380936066854036500711221275392227308811056290479613194640808744596234220091911640139536253039042056726589677304320051737429467450324324745865439058462005828741461660722279584107879053284932173782667972449834028155358723968931367696616615683522381117519999850860860358821385094990136740909550618670866342193847179747747108397282790476229689403715078150456227182484134531727619136030642439679963453605547197920678901019458089662096312101614922056273801024627427626736835151327969455340345580190613824810222226653700699137117278780567215188753060400840214181374747130584229044051269516776400036671514449965694770683409096540279922759489920294384367777125516223403164270431172210264313761480283732826171016386164721149397423710856353917754511641283528223978750207090132137186681852738245307922295111410363144142967858881533667425989719946506557047468197210602018885112652613968204779187683407097334474739209473404203185734510646682720514125340539698457288013045636911114198271602625894443993187332795365441349770004591743172044010136673053856380965199636757706777906440311586555799321127932083844979700264097829503912636515463005347210406302890286020571222911131731068951064302024393426653836526941706290258028216017594265549707938029809933440541827081143281699811772854314496407379408231732763587627272585160858698264059175458550361716114083665724749692084884441177243339926629764185670593709390400370737177586139898342331478121256063426048956097944339992940382912068565426563170845322025961687045545156410331160418833466915878299005797924393292848168055032670237257480138608603275799960275432213604682314231937613627492694340418110287051809579754561210659869376527117130128672411291263994236068030449485300488712993235621249494554937459180217578189348390704811958178068194271252217898500849833658391619100505411227008772057456259855224612011944980668883964807730140290679094529665073206173937729903964148589483954952756216044366733262795618103893762880758622762887596106924005682989115034771714656578276356751730603935460765348420837914557729089143145672242976163791821183454233767131053449923402237817760268458981678584834540939591009315794976102460243943112396783919791250887760866567338627160240036815018545651115466525109286956398850240882868440552141167592626869663473539770342051428700548718443902302716171454816961063428698957885635969511763856128626201524804606457148287072649210334601899718103778283783333743848985158313712768298726967239515186116328856949105718110224933409967888563294931623529893655700517663907587493608966247212765480257084510194106591949013558840202066842397334141414493264884808537373784466023957860865301898160768226391443116204721942618945581436170704858244979326970878940049184977751050861687904547826997745592864674671465534385628804974461266777995055402915210860391255969758782286728893753608663937831803120596017932295055401336412560666700126433731528101150475450508241056402699294122015854744821093712056661621071338980985715265565897349597669992052415539456264714677569868905211083717868139256890333228910183573905775267715577100283231067229225696623011746897588453192511474209372288642887951548504607867469270265083726625856077318944084339207618517585266594222964418738765241980644265842663514389329164190096490614923153959498376356629950686678545843330167942125867716922031370843754891161089138876648517387498351649191568054587642838902780597742348483478087012663036644518671388909154513174893140208514354878825569664810896020807738636858502571947582823451969396784204715604189080685527680922081054237598903041062813131629259558951952353134314996931511124283361335171469240722949850748669566277424194903569173292974173022405874706083702581918238567154568078509250530193944275144845404744935489975185389397245259615816117826018588280387918489686865200467309955307072349720349128663477007458461610693720130691636747953984965355210303514123912153205774110276030187552030923259928220994137421403192585259040736301969236102721127399766073847136137382976446982736654349002813674347702483382515749512936196936679073341833502228517626322716081664348005490092610289098724642182425253646363976736991367499062977870653767224437927019179165157107493476321881899564379010198544067083248659101490429039420204526028644182699548375378051665654543927518484386362106038867862236566794442542729894690860346221173304634087807259228402066415572089052244650672854992913475153057907783080932348739993782904977130102719150764416122720475979999030863612760802583137716312580246046282298191279280903258071730370179557748303838573428365604860988480810634695932644189491900825156547400230545322174098487098150101229296665237815857149831766769652316835965443081701145224405607865345029181575604755508877515879168321114499390808881619450305503297398545636771407931073721579375647550931946792721835985537469799372355895593509172854463407727407349656200369312231538074455352334970940423856806251328987437658456769620903294523650949734425152413669302006485000488268393175278952555215809069889306989023707258081665458445791780065600192162034050584207320647989653901769640519245457880096420088203184567234741064685251437634969181002824168797210270463871420640138634292191453269809313083702760824286304882605606285258893633371060480577405994248043998492573426529290227712576431993994159758303066818464441912523670733983982168910675197971460769536580993564839950650041203616756938546914502778570276641142283507781321055472165109661988154943878657539757616966843751439545947987694754138321783876535219581460902852541794969287001668442635072523656177484835087430046640015440205000246902454024377611084300694201326022856421142002876970083684330703537763781405503613319150621121788726315053934723688963911585461604260048583711168404916365607312396840446879268720979715334215826360187286720057946846860742662975500550385310488529461663555140222777793207883689005248858692658719198979023423341590355925629853190006795906794338123399335972776688968216063275127698178894403141317976165528445061773103546445408511011931266466363954773737939567989946076197361876673985645948777421715270423358774871548622831926159628719454286277320393555238535977217958284567780058830045159375766509371742227564156754730573250601746708324065834282099970244599534396671816147547132361524176477763548882979175729744027434953892872081772785820523906367350136809080465533930222369553114816305523744024693351796786007038143200570240597355698540356396861926241392747655609128962029068373972348813473907147396712138375124982098508718337419006895530103612951283882201783710228596376121303695082075536220059638449035446854627748969238412018919100912149904896384530034740011194724187709067288548637494996187032270465401901418096347795556967598906994341501338254516756089465765632968300203273840354121924069020177508152531065621952045720103165403422272748434202532721640142167694783631414463599110869226854950335826792774339756272705476574456799544854947121113276230081967517767604030164855789367080849690708669584709496288200638878813581902227376051487333719413751659888197591431805805019063467109162083025815827014389857728143516867335209695188804777963941832776674284599568457007591153170818285184056319746039322577495197976208408437332801521691921284734094933315253956694198259200816696129895419944978281929553234349044089866601059370899017285796380327847725632777205054749942783202624065309339524247678897789519014151703020243721169311076028025433573206150024799900451607312539413823607209975295310188512332205542593987538565002779766305373094742694289286656114017211318214125944054669380817560640944748105476529055170535711508575482912945425818083924809893294486488082316944435734636805588955940848900564455679381461186590431232605348895855706517297980063376684804759701725602261483346918216363512484866991649195705938042322015390121278484768197974471569462330578215378416077820162421778715743231656147254056602283131237489311594455858129903176745879791534135012333925790159990053248651848697564579739282723592751509977692706170991533266750889085077442680423825312975294465573332262482430614234079967208751780713015781103445883655635726595058376226402856656748089892145431970528164661247732113123672210905263438246206311028524452265104756917674460005327639793611051288336633013491034494563128770377008190956840433874719887874176888529909945737869541206294029569754873651347999213626228341044893693817289178848116329525351930530060559695140077991995135974369589298998662566192063312281972896630330712005194859877320445976863677505421826831652880064138671587791164268715648528247540046612563364828984567865587258393621283326069320071156729776330963611420885318352807744742765492538030526211901944846889508578011790994929537177324730129166166945019172821189125558990408149295489636548049437368004313161633792429548526116718806102519026179754558750783739148589040914225971710287302385316516948913531049017800120495637608451035106686250046942849670468747063237834833802971309975252592730299286238911168358498082712058223902998848940413717492044063089219468063470156992004308491845436657867461976500040901942264958498555619154429128407485218320511999911192352367668233226669477655332179846103397482845974806737295529516352013571258958522947460954097929634844619213345521391737502777706438427426684043134118607565065039875373848805619966262514277124683002515358774747573409189180337197305342694062538220802218707372721158790441819309725369032112317340109322411041652111816776396628899715827867893856060910970997284463108201490316343011749586053685084982601438756851989705938817598489611358562448529847246451783342894376610219651262293761825436136620357445674957545676986910680685701797237548975252132119355932794887063686884992631035917137529414587317223643088214050220302304441439462610935469424757050220906134859664667770266662350584054829753757450927781945936424303945242089781636590644400611262616851584244721303795202345786730668685381754385358025562859546103910737019529731196250188259954174285698325067002644324038443469995769879601312539692358766185993827797320913033734887912499619502159751312885907351208815984768742396417749772578351251366841408215002206612935728567980903629215559074752005025173225626261134708564011807118331359090592875452966110651568311501411473151648033109865816259968793656040554582111538177424898332908229571479634133663912463349542249618142409722134646247759645357329784982436507803482975408396313507781846624281883322105633795375932018919097116055882164802674057976455348411266958722673377820155332807898761171897937841718439323672383287672896732625174905615946480372398542521235663536661863233183749780469961267568471640941810005633286419071729681516544638190189141025640312168665293875240768747758599725924175399008910251640815279720081853344887140163095220872932888612109795758953137863798911082385697137090088463138486681830059931232607080328309546831339367401780088048326087822475139042892696201746749495003292257581866687581141171367154314982707221534751722175070070164790425832700711887731508015145058654144073902823536019303897733954766934358686107496802190932446063259266927604230430867663032297470114440752948607146287189425860398398708746960998988837050858173682273429963958326612637422932700805553997368844538106993223750000488610445254299466927000848008122505315138049768355788589260944526987806487809182639566070093726467117030513992525343190161908839653683688334837035402535655530863662297797124331407614535540148109690826061970125878293039520329813326610021263921932431730879047812619410910169513033139910404002555432192338196272629999340333055564159621192673109604753311045820064455902790779505662628567445642408033566872998152899154546698199579008178703325326657382199455374030801118413952305185815943348128616106837931949742613159519150505183215251820196643925549689633835778019901278976668111553194778352212902438601480076140350774631893693972526366601185004536933577165796783538987455561429132349342198822776848863985191433477853624797971002388770464653451085496306343834706854609012817263519120307309885895994021389406789911464173761967160347984035572614911175959032789066359332740341415185201065439585370894587763448923466099215422918265131795727561182711179101649386254761116510858101899568089852570294039930644082994423184453767233806484744579025039108181293137320642905055428222144539128260044878958873813376963380484276045474441617589215883106143832936962420260567544088179048326681050904747572070076331633248073651979349367472188186022334070205189093386931691240852719809392856215139954687630680484687177346736612026636180973942824145493137582078288281927151607876981665643953030616331014585290665212863134419376277531542518151858006498915156133699788109508551298287166712786537748519954136898093898898583020779221518547534256978592823798776310979709416936254196827625817519818906953976640866664591103109817065465013506263251240840894013742634822600919191225090300297326371016553342698247001607466037808489489466280634970225898669999721085091065628687696626664622784263225671475299983643250895031226673212540990274873327446356812991166151458797426488075154560071631805400407651657044749666612515665747186706029886805803186343929329684049171401820847948967462796638614840096772822367719377249664859110680336872649217541835439770636237694369347220368877867797980590610804701370150663255588905170997805652119700446825543864754692128488101860189880873914099282681531630484897195450335243704519490849766628813608472664759976093278611337889406584461614269978975670920640955164079820347830805163189800427608083010470195677802024952087233211915019637720707207933097782329856354023694218937922332808817697883053136401391605781317997347298364016333365453135918275890731428908774479284069432119210969069920881371053879536220283635694341087236721137938315951799300206915700081481604700584311048363551369747923574492234429877140013596161732694740635440371285371681285348835499284476826772347136636064111022661194870139589907853344648388330369142384094445057632740029395874960177053897436137965633339929066054757098194187436884648063975244974150800248544811465084691376333951783287188765634757461271905656469187814853827720532003494152558108550021111366534455589831258197736156360330941444155438282089969640352794620226894549053897002341601342376287258577485153943717010676452941962397327861961975376326311414018272289811270286175344137120228201825350302610452904548784359091626358613648766883185031459544831762537754665217747939136566100031235697015979035460493907929450097987046672382638523549068072512005396656561886903794546182994341351290309247913460786671253483400318034866054387561364192360061938158957262949661642378707631695735732173292655269597445593968782048967737257036486770077721580553844947552045511251931853329519614799054578504053232689226179402424435125185227441311470637368838406866817026475855570602177055785482469014887994408626806978509847593310210849953884054781853917198953355109086791611474132026977924453996890321740568712592317232816869078406887878746717088352063938868595388466861390144680563562250941193659814383298178200933783966842444639042801176867553626855635330008501674877011624276769539651143983588651005083980953001950113353338283811638692601783477349190448039127745073143473206578500300147283208116949353407064472155319227877095623920603429396963083941428504828008983422475094132914695744404757091071041407462560899590754325723108868995650224538369163875599587088670970589231152335370611788442920547941418546504943989998953089677615837348677072873136818326295636940790059393435805688543080290696258510719724349218961279733052106829664894652760829686190637061399863133961701086021905880599634056532372604813272070354251573408509877329605848622344655595372839098147075985844055861077854178321974687609069718373847276252002621361607753933958845102956106952844145507037672703901805140238181566746666314488392093005670819889875347701696204762833235981713255750745553896306716156242360920460547555945249148440499586489818791854187945018293400566732353742960323451018242368134346040215802793134767137253966350655255529500871801235008458256232045278143258494309699838421591582134576707761443066088433987502689398983646286151913182583661040004577961886626888054977636514859426358060499365392105650425060098220700618839254964537012847602354613011177201966662281836593617880004627182757796904300021009572494458797007951216803580881868880094799371371135013639355138228934536914889247376038843793063603864320382677223059236241933041272123777246672077880740795522999796403757415603886704372984037561460029846850274799655921807465898311596154660131188303039091052717743443674836108881931320216356278626692293002582238109770338694014333201997389600644695491336732284622848809839695126245402942222355888289441181431906981577103310724814146232443830723186767722916588963198813458768363954436473234488175006936964368351265297302049283996734495549348224727881790490989080439390174173956669077577546626110337430467005814281592390494037535700179625323794305983057399470675518832531332223894613031649274938485077709575699329837274036437602766076967136936997172623496584518345195809338307045197418205658516651227472401590343935598667876690902835731882891952468681334132567809364791838769195043234720302471506125546480185518402050995942773458298062683075235249645822533038287869598359002036451165377337961176242424159587621878519398517642153752447542280587861760887038187554572795068864659297273939804865522613289557271927245068347548388743492430003205893416679762980313385409604207406347232628711981574361060497720253053679500259423687042916332257688746360010335329749789757597285300780021177712451329259009687986273673930335179452422546799659476282853276053240625966129125757089442625578519738499614493110866069125221138338997168186326057920633199093151287331267031868563584709777918800097504063102822098962365377851127980012094964228487560067709612732473452448717418333972813419197216384627220443312697760683777688297405591424751167554111339251248775545596065950933959398206331578426918640871518273151239324469357455197782068308933624536307011588825313881335108827578250328971572596855272874665111798544499665480761812141972530452419501381861112919309195346576648500396268615382590526176399556414137533247138710537404174679159814729157073119408380314284065507275094397669595551227776915214839123025059763038478641630072814898518503673419785849725393939011357622795430528426558974820874349248873540694164293704558886073866947338615416820834186406730182920423400707692955697122475360144248856599694377679894959844963775275481241109336369071282243544259927926704595141545108426969654091708670613560071327543738711602479979102455217337461551795392547334073966430887175259213184837955146021007536601498817843217073716421329615329656967452702838004143692185978001840838079689711158775045373290511526916884817723777821800684317447259507163471540067251388000380533386767439113273057449723067300154600850181211214938513416681182844247913448618134590005218040652230605199739748603146279880515738639355220377828794295877288762823223438721744712637099804671577175305326933300344387842896041030350782925982350438919746183642116612628337597636433037743096419268913701663603132608116650986530963209887763713828991688432228206628339088257359125437149868578855110709326184087197222400578943620488627679790644962958469377585222443140492777812361368586098463716826959026324474997584182081289169365639574261179200969393535616369429778280704786347012623081719806302679906668693909644055970085157249666487691093884883330164433001138183204934332544417171907141628345786026370413780172098709222862495103888982435799043016771686003824999553560976176276156026151016345111082205451719487562217038607453095974161773109600710857441004545567363517057670125266211500608454222960186204445631009007963793493118830288764658577244363763686796566625915729454509313542703113131927338638145444011216952584080890127489681337204093549750896873906477998073453609505635052971047260271714119750736480259118584581782571254767354554896472489901546049747085344491448363541405918228657098274557104886383469718493341887583630096848835341786661613741547633447982335833464437167609376894791732414967419924144180899459734103037779306482483990292548309618899163177095360246867255264117386682864944308081735973475093800015234315645208405061831135705763352654912875929942951816688830087794275652370342027022395051665687130201861728182618645262571211860835806912867170785516827676742719609377299139578331624267789991070700823198281291328045907580793520277456012409604180573086659848262668874480581594322362733016845422143447990448379318952661234052391109349680083684038028287238280268132260184498706412729027977757275263321222064605611452120235509324635021142515215336297023624370013854388580351952878823286713344520031028496313695069807564649083921114628665056064114990555463134875807158559535759544150333623610073928934037705676580536362603832985350892941885088605712941837595639682952264755188006591443541098683883284875504512128415599810934749631554565144790771304289686355084168608804096971402165078619637748155874395025636618699967442735481461793258317379219042794742255301003521621972025915703116906303256188307664436152740956730716878692614609910360047509357719360742298796671815151768777286975443125966077937614055937344754719677676775902123181270042626066806434933305929983021115111065770815292629253462395632893630498883559736981086933486669897094508598891425187642423337684037579112777177679019976397069179923710792497125324895890988405162235222769598181978686509565270737654477095645231615993085284936279325848784227260505306001551865272341857677304060641154283660872712424382713110979998943977676786699113454643015511480831441594885304157237634905179124771012779946485748954771592690598216912837438875228515877218174347493611003242089359820611958905788892217104147484188393051878929129089530016839743297666946233887897987757773741955441287585124033194818107011799949437782297718758736937548469712764129716774734595175327825337916702021852775630482921475166367943751339118076166590875503502353744036369637829910191268733350194318780299453739379725711074695401334146521557599919754614610624075137151118116689126681200046309189176324722816359193123515938316295798939063813594305295360367697389446622483281552940019142093333162344833029651638645481864941334668444509594571010183545250234386155097977497016845294452727404521104074107854349698511692127414670830284994636672832020174730867539440139589483884950568912945102305675391733473139543960199985717147172766506138375043859131583530323825978868230751541767865315141311790930180558316416951523807997095549429813065482186077968330243347095735818131150151763387704732949804006040541373998423403457797233061328633503835882190158549647231878991319226450941462621610057884730167893947422796843924329815561617954299994055578064129526157942834245015815489104072111749091504182211881266504738507549122667674499613189181258565042504458831699344785089769140757794960114469331459784663981977891873751285855246341689450405600693162510095177166693975612931708790285831961316251207618976578764337327085706566221994956741604652050732403834546773728849008464854784222523226806273982922377505824449802632591568135050863382547663953868449349577848454849659844216724784579018057621560994648709938609589832017604166242754704497162172029723140584701240958315419719020726107013245938100367069817547211982439368552206721136502787324046863335753323066892508190497188667519241829430304821949567991249113250542360684371552238428896282169032436882361876692142057121665491379796978691694423121799753487712412243982676592315662463115831819184970941134172713186843908731861934453942298803386554281689158693065838008240958409919188545394934711736924295599067873256898295588438590445048382866018780497359321686317100919598541743128423365137375728932678293749714932000220769037047646644320126873465982301855886490644880444365220399370837638598406816963567843680321306157203783167939417411212501844799305817073859908407359331880495209710923415785699061606376923229025128051301158169329739577737631161536205983872292870129579068056256884348959712424700344760974435780911543695759663726647912558570544520942809796048964668011186937837768121433864953019808116009288618630077594752474096514373232122449589358669622179694340970249517419405474411425594496418956050722162575529304027706302206352072366421294602993175378668553575218344520604475751130897075174349932009642923966022546380596384802797399887703812257701772442128741425672997032067761875931768187929282974772130296424528691473670229609673889804793414281303626633686965581685919219467421892609972262692402564208582604220765009103019959431718265799505776496385415751888245796931710381622119692831312009337815733512566790055050066751533971061803357558733954009024437953600542639031078503139577543515372666639929861877782597015276682024285489663649965075551871680326851438532800687290025412382246994045107813295101325745609977451212340745372520104313382542488283214958552972710028255695796563945918084012146544878835294922207216359096145981231904020824439920670777193276929568514605998071081062190350886169507499313433377714777161961192235498379178109280054137442431805920965962100891585664156874334131276920631292260610165844812859323747212351011691329761338220560000903987653079096652339705803976580956633736165762108783014201406618823022888309727211725279482905804478814323009537047064913406243356073719096577828790101449968594148353243871965649014414279404944812632812591192412811072039699130449186126774660442909737445682724462835025780206459410231822081730833942441061558696933816798013392083406503704646185546344484428438661533231263689214147592643818929549800833563882507931621824377684324513423187065873337401533833605025567855035472396849568523557215475163043777258579667786661907633521406878975199907409361524850639965999969512285521330641577679262829276270527520114689489398929324374280235945992773420012710633173478550139341725647044920032424519477428584042047416978937574502878752178153650011606881047331097897153701198231077948946672797222360381919487373489989792719835745022325548320911861780916228547336031041446717428931430836298629699878978900746786725665174509387002860354736516882806632043338042444940297368066346651039585736677752288749159965599927546581818127308401778373505588777560102722059923819760442882806955413508732635365653930514961510873712092342589745527618602163705024055140579325930862771761793818544956312647005434476628272177248778731766234833957638795850346211722266223080920766634739395380249713348980238352121017619337899690888521054755333809911302792956482642914576307961357387233260314424686401629264065179169133313865060308896542108342357358417500747571813313708812751093723912907787285851968839796445470461284897137632444540420217125435242566335604216900912158648184604268005873920797555935767833982399968988223494154332356769728170269969312168858728140472950245623044003746153896437956755611180238990625876520123197041821528925808573498503029322763262933597251625165132493529124027531828085644216961431694114058420234912255058404057363965508191754071559712028679557222909468941268660930697542503673869788608205915157709672327236195868470726958443881988414138646504615119664443395732092080580708083057296553936686463993584604634322766476153983403929340435471384333773831168703218406396987964546555823952780354304253343207842993866461218388232273447122249272172696124672398600574338182345038537600648384037625836784858209736886440087796322167882969227805801375269619424618335312717964796539640272916330788310854729911389609692581446569949929184516104250232937119228733673094201031548957230074110414449378846749467066501922962662312623500813916095381805985380763775120191985351306027568463422928868255429222535120961340966078069363661182454201358375205746701017333051588264665322306753904315169098292773072891493891683609976735696568855342453298530648875040918645773884071316891920163348068824407092810253201205795499431786006330801508666153255773945945225910828558226074041554198615814907992321332154464869151497360327531491918572054962920706147927287054046109913626390036905824353442856495486546022988668520313484384209464525812918203998374638314101884122230694279795742696867784872098406790354534469224362613065697112746206188774517881644405456911867556563671023562206281737841125661905438658320637545939172362444976338918443904393971588994081540264049001820495759032322301646724369700709229150430149712520345641726600570085835262314064892252566633911064585607637145385929971872707532084609193974776013320726806218191114084195227659101750528112768325752611431556513614566511272605955601042311736748837455963468346599963446692035394381168864134410872133175684622514226984516453857258207556751820436972967809008718616048646465340668941661777274786993427713250334546267413989440545995051906585428302335037907567656499521112543943983775542698955102805053108446731119630002007477684713781668173733189593387647345833412404083389647792149572503934267909963098920611212879721987192259685532632939789008616181493900723725452009543671446426739228418358030234483469616179850381144321446141950792925695101058041639525229433686241075308146286045337868228704855612129464001288979244592085841937460905864454337413766580930446683035036152325061684251335033922492940546936126088927637394806750862114980458982388724468890057889890328840248606099073118940794566919416984806710095826143492730656638949803668499346889446838368211770805564609053357956988046576902151197873190642987370002494373525853193788500011139752063606287147465276132461110332981814701549269070332225990559052230818379486728395939466746888751518070583156596493116907673737735543555164090421113519404452050155993926167034323853876937085200769050656477952145200087269685805192751079164925722307465283069207074830301161101333978448378353928905736117369450387310966258008074013167143892676265025628069487103894960330222344391655475731279215741925699227519062301694727396458871348049874075465445448804107167986831647393764288798812662616260500893946682209877694765173756833801278314690131970538892825933130078512712583342222635945835914782041006292062637153367891023924219774409147396252353900822621486112411905007127221067305846111814075090912418627522815487344104279675311918884209818578737329971120398111514737635226628198290189721054716314944720765319774773302857977608255683114567363175238019957172437536612033743046993206211283333044677037501123345700896557717876648630825400265996292775360191035772819426429019000088407342843659300855656735599503716509912803966198885598001948221298353648375932295570503475012792960774822958711971286705496924673844503724880164493287821378580080576046101692009617753049121749215531753136241548157572168504691668854185950198379636386589757476494337590388352787047103860464235045212277450906642111225326624469439324140424976048938657317260623933708004693816891354062277836565712092822021930435457965738588862757720500826677772091783472915766412073484670711697391464509245823396203201579858209244904278584638039117941239464001776375307897690972581934544062571522272108658906509021079079660566149397606890306863491640344206077621290168675337469917455593294183316724199115020169828688736447800696440401646426871188311545044889677548259470919689706507496097038050271607576233398480263789300709494062976523230970797056368873495482838450050628285579516015061631678017647570584047632053566176807657211172680439337568051969641311028154279165977004838685105972156490763708759146276510119374367414225086131643221454723184013724035870898599853357025094126985360235689399582701955439202829933388050477487137482547234719259714394913340330278338346873728473036774689390782169214850253368789764759426048227667045035521674756316239484320154057951361749914898832338805390820211105771636695996642044579958669993934669091329715279575918079688881814725686000651821674816216395346554979737817768268745207490063483233414957135926958710491230248145037945122365808826277581546091845488315962491896460768720953504399191635375062699578429274570218793531407780820807548104074896494857971034524101715624202870228964568962296564813938841637707465022193076168078783420303076444902212049031826589866605003690205569689440732683866643912741516831484478616275216821935178476913035475299719180922306986849305027396452569650893654556795453006601901572765545967601860396284208027254524716148859583302243026883401924671352680929220314296135514769794356072386990020626465210759552143053663402533669166193869224495211124903449181218249150588438855913566299533781191268584997794977690265340140267066395165031285274048342530771793475315806728618189395367049520133154406785685122606303209490772217312837217647046793565043155383793635936893016475549396943853274634365760117506514513759518626293016062281230952540180247512363042022657389509635786518472546710325396754436491062892156922746118973703722269240762703121847975984869072230325844771894964320523656991134254746968923023803684375994106338405548094482955721862841909959109073174631828010110194654094942662518567258890484161917173022908126569628213674605478407070084189209312883480544157344356253361557291777932008091046163755693100456274127806377501383400608290841965025690426287898386367584667786483504905849354201338393182758055558610554834912666749937376739711039929994980173914735857162141576102892811511121430083609751121685570400115510425309243929541538336775263818787718426994196433019439324566069499325457640465314776471225905116939131026887262259084827114278814047509826045765161798320071460850621548891429873971151024622695519956526685802745865217778799431390386615579761230668093199346574843113138234927590387538926768937885967165037379806579955638503826000368766128371459220742026179954129398433329588102371356315187129802355826553983454524258609375131462350264028090197643513791946197270779624508873459507339015186264215162037746912775461878412914588107893581382155647442183669369162147192535765573595911161764698644774972839625951031941198641328701395048087075952126417483122248981456709370227581446377409205557631444208699679020869542828492901748316999133826836009576186764936761629867668760121976481392035915601082019915497555299264863141300971513176182903717941461180706782013448139045128008135049402008382706525095648332667183892980501817334360895126143405694538250723230189936375381189936515838705947057551270639675581287532327703646953788591243520440150521568865534752108375240319595776324910216679050966586066093781031957614766439690726602448205712528259398184868190050172895856656658975699092051863745012804763305196751404109485212702553920524340741050262697003600405854540681521196333385945763518476216246650518768209545617220592208664905580661670561980575506204247625083316367668149350070483168543891549627695273976747085137765429335493696332751582195386079144250102714157005194052450452043386441366879747275799630628882340201731791105659677946720870724085867167227695600999235416096969949124344122844871345068917987473796352453332443468009190372829101538512470028832563489153548277622584435776118635336749660738939108207559436200089090376620160969689579580025589330638756042348906529529197943222631043646878909943610683343439699987271937196499477514663753722588095142158155774604300164459393788995741282216437551596795702527794164870168103014344362512058373827695270284174418972050333441586991221378917574564479170496811784174711817143491419484928445811517725451545738809013517823004678761600740320223560131412888592458091629418653154834229807200264500911580212293282310610540744896989916389980064268271847061611264030941434164565073215633836619572203460066460327413664302870396528808313337911132941342908641098814013158606005162484623571454595208940898752183509887320909270415845327026617620811952489078073905327299248702786158572103934071213240502404519812579395762713408205469543233226174040292736245007962778109611350226860877265944911614304532259447248622616076949020994416339854763811893045661845392584779733657553149790640622745803339186247729782949464866689566044143105121124434748508385565302373765738864101801801375475271093820222979088926903204069986600283086842738879286296156527647231652261472185220083626143939881224922215253040350247923460112603872345609745782633265769398156136183298820085303683692643855255639669693215141018914396747104581574405927829820774216820575819652826236553446700653864916150471105190858476218119622337984943850517035546198003987129928218713766942459375303150880011929997090660499004296381296581008082347964017729279081636824907877479003054724800013080855770028535415159624232876347508784112974074625079758215249654286880787419506912974228599925484482659303797293017096080718635916140856875466867877336863486245949076323828022695238371076287294278357791112194014117744413520643284281597760600203632789976205143826707030408618346247605762783105160702500480459153301029972904119774782237449156353436151754374480571476016317106483498094959539914328338741494922926993379284466823012323527788401272584240260583953550879168193999619175909193651640581528318750828336637251917391201236942820190567505467674646014664837594160039117339965128345860513889278858254762428142008900584773548595839198709332022689797743721985890313400285372066124774546622273836901201584800349761684927484132973311298452941703321843223460959678763540110860346286277319322454994389292511633954257764225737552238302419688283126605319604188873521689022749067699469754701907757122649076714176848275187479716268107311970456553929298662858360807608760407166968484587251703123354897988855351814292259631081553162224368997396052580724677384685415391754978626572377756674254569217517741502139048181849950363267550292436792710834850723496213508429256114879500936720089255345945859875734791267719269144280959151759480855905522159543708412302309059610581631259564769664659286413366015958784142427462433385782392910676048470309265428758092427628626089772045759303433122746869484814350545617521452103500395884431404403529246203099997729734199691413988014560884331941957763857826609896066959982144126812112883408372935027160874791198992572759650419969391995451344645972519496012276590056222713103514085478835776915116378200651209758215582765991413821930459787100438707117310312227922438527924049215958181987426004955551634165949132949460775648469373955529814064093417277236959077136653799134076852279988034126166744956853341540299147267443008480635657171221091668211054630560138685952335798339478415959638013669350869793702030041846320524318368376790060743367302002871671191906432230544638474559585004494437474440254698328520430841674069971362738039053831376489826867633352604799614050622835423300567437180515031772296313827527892516284061873706279919310147359930877601902212553393527863850952189795243001064825054190167014668133110578347540330312276796245376920156800351022468760799989798961306937930626761758441739639332158397004963595793815963097598213182903660887823978102776569359412550598189938898643643915319115495815481307124870659722463814843637803105446530493883850961918533447523417569613019528145610151940921015707031150341725328784143759271594600053339951281409082807486212540285603404170130862190983911410172249669288942531888848676260070045305306715249616796877769409630363453980196058001686192079301863044536838106483427740377317451945614252940640947811730134241068083785603151273216217754274632609512627406388103905004015764220332325706952924532317977334247095237798393214908888214582839721392479100751550881395301453951960602138143868979426944428885705007553562597153338109209760893024337889100957303305960095388790578210522411222385790271590988295484232461594627915091296480221809187060928362915225429015822284710749978725315437399699025631579970844653536095749834308611267952199128201979112962376171070387653582484000467244957037609369910570333589892459758576717423730335388959158814402973252151544330496243447416298403968350239359823688418445205255190026584804417021982467667555928795517051511398336408000148673201120030976957841476083136287284987650889790655524994330249560337301943658162340013994365435770551028762964449801866374383071953867920343976575930123989309857330769402662381772864528404267158355030419475329376622873991589613361744560178038920382338146185138530088345108498578352375822316914480021949579644053833791112485523926362546457605322310206739479861676275096507599535808799198374606345083689127835703967071245344818203426696810910135429216532101906397762996545439743584430070569346193861202093108823955603635997600464697276775917256307476660916448909783973432078480074303409464933616667606469705268915411038676854642094140848653469724998380321781711078508677995131873873204941494680847823208917028402093341992666477806310820217443006011822718664019990945888907330037461252233575574870190594471921233960747870794369183962286858291618416733831353774023830854272777240483995441311766087247540352296809089395200228302699200658422644010289212100484801972547949835656341679004191021105563822979020890867874392257648290472901447218740863708698598167459904076799567545146867376935379757947227957273199976840467158840389889594898239365668890732903467417830597344516549923603451356074317653383954921602728956549634051680388406070844219642472120200373117110423963060793419121112558450796579065113941612709647837168447898918464175496079271890175852070261871366557961944148495120792413504867467851072225382220139381912346364581902472516649322095504290878315230693540216955206857617888979025044504213330467396805996509730439374526032159757463498632163626267145527895550849999714606453566741062007671361471801554158663440084765846803590826351890975864355587654101380876192397468316179534853200613569417261252866808095546188102576750159457758786703824814374340063589012157627714157824146972961167651918729999768313337718020318745504183100804453078674435466868214369325130116275541552567240303146721370644121018239335216655646312391976908142727431586684960735288312906706806851885310378024933423274968619731018151431869927706353537442969448610971157916806921405668395404693535238962016929092138755045247853353554233376811900364760528625850489739633534679923194834037207239815633343361542234742023220493770480341175601639471147364624550280304728854951954074407908672645070140507585407500640981798062905113188572528611315595162267830936894423505820267453746239867593919426385784631738036755866999785331574452870737851994867052534510610550284008632905105383122929555356066449068830729329358591142618986921418315026248021484087171032377304082754824867327348402814139461368474566696243717088817927238456912792358897739635862176188664404671400903091653712760960671274581543608154416930238634470851664269806269036698549155253348109779235961445337506134908844178614472461115562947138774097063991544206836354491605207645949711729169138446252485274619775217853136282177490741806938817779282880709495471948419902939418235639297273852960170292605810083416583820033056919497306294571649386688521505610212243232418067795036174191667210571831238337025942237788924844637700685693763205968588108037209215408262444778336841277585257786175618509673902059424290190806816433959582607385551785336221131021230910061409986926813644117548606691602246454093783985558443223797037415846435243711828863464755037628451673692212239937457453885175599956626279229104804509506844777462630312544113362691988147901880748878281102920939790829983561634928270491749633461433507316677662925551936932830901519572171982235820963843165557925552672007915301291824650273143698867230809453084225124021046987811342230953824835242776031440548323112396709474606268198988538213534240552488252092910489786053541726232409190046867687271241312829789789455360967066895999151619881500483858556780691894376763020110451963995598720350627992483879393852176893484091886076554337758620924002755236898633226499076144605598542343874814865582275936548697923701130397724163709165810720712151499637196855562202361707599370189204178050438872264109266946182148572499738951644283091895668205013003982388891237651638609733228022129751665557080137550213601727961950815603532545428311692041874668846407528955168633738217427668464383792422635166912934771844877262650526069901285966785632681135526724436076110026550841905824355216383026357827083834300425560093185635058144627004227485465207086530315538181022909659611790674866707488966133846851915943011196876324679431993343038856873150887094990103789990128825374646834032340707091842935399284845789872068991252827271617317121774252916944078512136336779395354843958430254761249838782443662882764617995404866014252163453912475478881351212334294990151382753675472810974832749691791162762735974324412907538756652911097008568639810995249370566148615929058049081963922762268955439924348413451044816420452768150293763373065608491758381534938675421489827122126512593769335923366762668883976032473634886887733218555949567169089816211415019528426249549157757172597757502511074723379082867933294992152506947358692075144772059991283458168144633846643478126062867484460688575505987909697200818075915615953166654204538279736667421857084108058926508146968542268516107761631887024807119221387318052899142417388252117362798575454484269124949835047462460077765680546282555964090436054450959870437915511142393447310475399545253217316945791338251188893882630827076259028230450699011145610190874828741869999917791929697706216473478592527830782544799776256221120823265008857663277322743892847527183042001812515868139479761357342350875199278866881520504985256568831049808740602632576745978962911624066782142148308071647646758334020840444781787985115150245127085453285429532797676087654119852060263398507838232790907568006852054553521692176757469519839206076942816384063868927609062245149582363255145980925170432431742781316206211452712736823087274240970638977369904281832233664445406559544574597183805359930861706598493456087987672771580122394395104856865326087619280756570215875624362353928320011081517947308465038229053824443498255593610179255227643739305120119574919210985141586405685864974953110527126873503254677944984974201302588793309920656510971194784245645921299113543850699114953762913874821868888895636546063931922416020855882248108407842897685383569153049310406119121899407231639607938538886371803653931245094530387838095701416716641449362458808250457211304309578670360859031822832889916035730388782142046416741104276152835001381091265174258278336849795610414033386817485585513366363726926005927998866215183905371101435619459016966779822995379043523781231681383579239147698323226609901654329609927731769412668402821583195894918094015138770338778510605437560748227109695525773991805592205132085510773258721179200126833548920002277670018854048167705416679042794505743076426943754168128074284032678569296581680198720165593313471860032714509472689202642746154376020295910710861260484980804384075094611506806077128335504063562670207880016877590610356617349258635792494360237313604779353902517607070151709639995569709890049673916437325055218095129674039412940112916377779602897847731915370139741935981862101451105959578067729405053149556972572751588027600759915962715687765939789949793456756491299933855029641999228595815091725470758604152621170073070442707756785520133211775005624836835923488547385349228412980945828962640246905990172748575554314592704000395379108452315322859826057811728785860905535126441066146736475743570702444164621294922160624145885171394402475513513915055672483529293483760222616670502685154422570598166081404278407893971427857053989022787545886979560273190834517563341499686961818364652928975436895323063940319225247618990087528076275884248271262001912058719136744858593775695572149103552107070918369603323242283490655557277361375033582897782566734877114572606388190860142806254487979832574072499049298814605871070371196239074711245231471400118412285472788498744869397902445097992481944191391097070856306999116583003473892899079283767618938470010890958646402345543090528461910138561367518460675351307141195903652695435237792158069023410755982308706718023784982603461097253034241703091690681907102027088469743146534042295985499693851682536354882678436205904775448136477574348040110292161697576283085811860570506870518130478387788235569486180280506194615349586487955712201616455475832882480798319916827884237223655272604581766564009161827386090200668066088376574005111539936562997427787713132117890574852186408264852264629957585112051260301731464077311799167578599755931173839721682984708572006297754736723697640748276834700289394734832324307653651915668354404713935379003133396786567622693930513858501785315911065980253907006627675852173529462421258924409552915962185632705530496090172646657206038539124998325798245615852279620075135807630140384698754940107348741933594304833694956920924167723181141168214344837510713936552425046439994331046474679153898165643381371682718884378054633717249084415213840736223863916808024387517675050392215711962681868560309590085075451863822831508692273060187251959381953638608746844595797496146443279219711504452650452486793953024935995855357753920029984994545318997550724606847189849463170852040167711608930077175259366975369136416881874008679951989117669367990684332530044013797783751617857345400593130985926137748205467280294225813433376851664624562953068627243620681618376987604200394546073071973078451122731173497773865388429471815953337504329022473143430971182007175569391498960741886450198428250980477919007075948770980625678470613795099671699063085524233851897544195392030709696205677921761345998762079067588561357815611682563286490264818170800555658283286791163851721387230963043710934454793047993050257825843172088340451675062480229921203619755778681204720311712563109191866158809541300853159585378361792675107621534630494776864719320427528017121279356858518502542567369442567931607214900636077463694967782036674606507442536183231219082116337285687646314191863691419703743129751334521431458344646050028780214577842365020808117007521230958909777747621851883675364208152717554850584067755250877948625115410060378449538261132315778608645287051506413102841229730902447011803833051283673510285949993590885119236742546421961387071358124187075335820324127119675413665916949494456261519043305646550634366440426505921186914722334265459250896049255524789565911640713273445847714259501188131978019033759892011383355091351889468857767288057058981104396274260466840712232454027560446070122682282893035974831149233066990772920781328881193914753289293284658570302393186137533049961732440003940545392892488514542362345878098272860075057402283640990342180986985701114930768600791635398720281589132265449873065447269061306377444327414993430202379700438093256739897777662551812805465965261901582469129487165475537992869119272273335512172946238426604008962722464552329536854778223371177901188840145601142338354745479427403878578243109483786299826520236548479478140021629663327768577955605791901798934511788753283749035186445893618637540446858926450099344577461467040198884282855731523362168039475870847337185633533621064713640454453148381804560786734479108234039651215200767110536710521434922441744512677165967983080601269145037081459346037566230494522712919880480448580354272715538121894927636101599521738762403839891774146481838773514485988355410739227353146593034460396973691203296629022070879285825452670417955345843224418050708648651559975241492150617253071065888151596100557102549383325261692912636123262378219487698176086630969518038826908823397614717310510010731935427174798337451839845186594569890500440506564776740927170703523390698928863420359479763635559268123068882770417605001684017032807567057943784799261348674668466022139587201288997162097832054630156650169913470826925130325071540747801917778998538436648045956088053484196747001371262606019099553028256507624057260499803757510569979564710524351827165432868025533524478649068869557404981324582086463513043896346873754794114182901468757562133051910445266252702147707778807232064998516353702808517866192394184620005285525525078848451308302513731995236376410778357186825049955427745694344856453670982922784754099704522111026795760415611872217227369670511818965857464263162985837187109128017689998160888718004400129980605207809760960669216983698416919231206600558743734281023794756149037429440774121918781312484215848292831207327976100148880529250944534624860354488110292677973108065234146409669171082819879784694242880653062553013376889117578972912478975157606976496433281915635796249684116615662606451552633348076135796889843137348704896232554069358899898855757718431824680336636746969238267153302587074270798648846392156757413811370996258787893435922650623464310233564079796816491033942823022338926852808829446576375344080690599457371593203511120788092006193830842280403934616242805500319973126605960350775063332238067176885971784210195142207082510325317807266074816849276986278106909970441830275677809819612229769588131485380223816203091445710719546931566197171183459048780577269452139592787671451556445549253813293773720434531517817693634288979087722081863368818984644477694385229392717961889352292272766602550905534376156883200756716704735181952465713659265482232150700992753254761258997373594899585670611612558199721404483013016468707935803066013383245516438648649851300591304124092183668996028748392604362352674854096263696681738596339273823456992285901779255405485512010441278103463122979544629158656678379914152320957573180434561632788499340594932112149534129310200533848381147964651475708252299844063205369590681284442386223936320788055044734860503895963153628440181406662762035593302270038740324045176680699487318027794641264874096353549314996798129887273992791531127790427606888527023212288460219578240263929769792616999681521389166770663633069169375170040828916443163458635527378508635493630702440217868618532490511074137540050668871816294033317775775239319068023739388172326993077272868391798328506945924572208333517750787429819125736114227356172738284929299760901192684052620944304060971667780081073578205730671913267303240984882566753111575237148111252645501421905734180648462353872080077509650021720536410035110019520905565859329953161111180181189061702195787339928305411420801160183459257863805557110395205718397457424707171000840151381979985174788682239698258689430936687168459937751036529107163714413980180196832128859151603613470987906290430424942612059000354724428216996303267841979117643175034967142409670139772479690712671452466590518020081545672432295599073545022049992767918982777313299728546880532145005258421182944690645103490519499323263046470446348859987221993305274486626839281984135434014111261129398242122157332970378814508667228757909400859324787770094301367431375521816147802951577817779156112949986672035065460081319920034129788556065314940748879756342790812271590249047195789176131198609495347618175993063648824495158895411422080783040887907729863728635452984058819981193157446333322125994768551713162821049145465862396780482933431663509190327568866706717540805462870058648053896903892145061649980140705657939824037595089887858285878973644108504362558046642515367128679088689879312376299522336539886477389882666009336944289076525060964915334783607802682273951995571006635190948782345422528547878796436256158688201113414264429768775230107941651127629016142283734631245386980997723270424527632204241116275928948744545978162005363486703241896561194230125537139468292203066087734220168266913405969062827885418509869840542087818777116115982398655299190763938614648968962840850036304704591477269909115922021463171373697042643453723014609103100195436431582625436820452443198364466367708242206976550732243230551857113128687767409485134806641281621499127107542449061917244575695959685293446195871381180800836165021490944581832535158581277720352668664120566238974597789230186906823319222028118821894478225836601403162172329008485589874704445331438747979658829721569279092752940046783369336559922363356197503682233152203389330341310063875016643097704135070827126605477114531153050166638348351801576929629912702244238873556057395334727336738507486125722489871735493367333542638496871488729565702468854643632706742333439833339101527964887827754691514029420293308182215743031221636073220280920798111397758697587522804595281958832752971758888605547459595611012732329407022669327584317789049000553243137127936588030261144808985588479544336340233984377766481084895568062074468300772616649311045306402070719284067561167414098073829402249381365310615882587345067160036361060048691913047983059055090457088358034197941722333601540950181382519906300651582192773443569422431762723666702186628103612105935292857498381786951440531036913214643375420462939220949185574789975562919001188228913969636223456118867537491936176155641831973450220374645493168294632886511357262982929445102994225816250973116049653318442511820138350339620320897601409238277448919261942708725220056842008484678265491735051010231810526744563919888308098785991928856591217590254136671909276087932400203687042345612213716332962678607460145485110265001999353288827117812149263894226993834646833563210347582713035543498823893601476056993649428277011698487832377308892323421032386417213401135034922590785059408777944292019746759388349437239992154775537567855432499018602783970664917196041958649945194869338011386647017391664712713588697791370883845348996703930986397482022215223780821441173624036469219766838423960821901641230242133008237574593627397667784851913436187599912028701506923027468952329020466356969577977935770652034322271870135919873969430828577384350632507391210434787452909833020188670484001292109932412370931373530160955905736368584580051602250529708612192869198843641924584067563415569701354394090532565214424081222660568019599676731349199539989815067227359753545279559767743366786322608412513837807368895252773458167323406509933256246077628927627912346125748323111471166278004860113663605885814830038197267898937678451034357369436331190461653730733937080426370509734487776548826708739421716531774858062662806878220907056949693403137405634612963198089890298681158697708815458942005440338028143690076673034522408331220788278321332628054157367368847352780510403550566020609303739692543017291797683436737863582558154023048215133324530821001636372113252885286801294890992581392041020215163532693926191723218082281866449481695969155154602446295683170543042691243972029904799286493597023764897553275130083501277879072475746968525339765180633089403764490396052854379840517193213201064707244920871753252721999582745270513478204566237387122239127734913730199858127638820028068756230262561810512906770180579233283344158571992433604504326024820147081299548950382365425411707572617044556777863466175214806314165674846981645985278078647078312775808923456611767455782604934051330304449888400899739273588247807694752098379338071063855346124739256910522288522945639260736869306464691312954988961352898307013303491587985489776268154803237797978966788944872605053711614796886142166638083225993928988729118718769755050385548565410213951909461273964215579104213189916348218863120255967782893522163807461055238344534444262033342328737230736472488481689013897946111068566496548321195860686497921394425828358480736771278646049654132863841945665232222653998795478598652109734516526286244305152195007190235066676367978743021058453353294460507457942597527016852089088410719624110564664501720043458732784817303817823973343633752188630609018969931780310167190770491685407385563879786766111307659630145533992799295975588779901386814505641157125198460632635105968000636945821559988996972575399385616621169360486145890036140110058724187917965847952728399442302436638183484970235169081738228025820176595633060777938909422711915198173752447789921985404542351009749781825090585242734481157881676405109539331176076056644051809596910282379158398067941539569136271761142337919610960939201811196912375008223994855643605817332551634409048450047612563490202427112711130221471539179539603173243853062782835291817765970920050437045092019825964178549012686877246914049836880423940675970149948284374571411600966972977186856475582846399814533588513071421230522755206367152432593514776281528948737112824483387359075678690046989783497707492216159639133278616195025169019248985155189528884459319339583209449985762669109414279138607937545949250798671720979297558662719673030698641904794081000685551701000610591200059711096872604951344242515462040416025966750939666471780560129448044160120366198262468915336117266818806554752561988323262522462380470136946273317291750675340392562657232641834744010006262828609095602632003348067383909737665738779731836463518332689344223241819770862958903798459963747908011169929711905846498615825447822005389326710988489926637634029002780524356388345278456557969545347862102606906403533332063800886739676735239218857565147085618180872961547590513719509604467509829628950693966319013030615567241470681826246963783992856400500907095432540643710341703283094967810550196531880761857081508697993969202882946322009907116509533671897110582918441268886481689509061683658147719498927310871164887792379028553651857534352503316271201108100019967186470309133815815236215376264897405572925075689308183799948857943615049739497840703966732191180985055938897207640119195996278134356315764205594199694428222243124027609288015512981243500285668477780071534386545800349268212439448769633170468493526125433326556375705599828126661178859862333976284718184584154320841506548894373776419572795610933208377469929779920413877760234093977452015465976553957820794128849038163253342320833471742202269580258477701089915415004123634068102315557945713058490723222595800294233049303068642943000988591296008312385316655074462692077476918625881270925479106144435199406951972501758314268595194378726747415528943600995331426622499936133257296889597092299735007515707769507739928787725176660713311199652777207263201697426261391486963055531960931948847762210710856923542234276367108276652919481356248036608507211810637260805971675952428613209553901390523046335219901380276537724125265820020658625571651257952702077461277129826058803866486060824351511950632727257081876432539697166239033659354493213312691406108849159450513170133459483396526914959606363636715591204660725676578949623308823010883483669420179511162087123727694944933234563703638565674294080700511605372363016683322745932644124297404529757314858856284179038193761008808749861043434291767182634158565543554838516280517822963206204250432129068552030536031933990206077896372098778430693846110471068143750538971122844402770396636834720551575762714035770515858607714909390801495952103793232104007026537377196838445860643056734206535694400986687553112584748442111504060450192271684383805050994733939734189187247374123465503880639333203033273598757318475546809774272630922319974367653837604213124487345102267136658112024167039825754043228360389942388726891285529291566838264577643649222944210416395339052809141836994535124650349546971508866963245877315118839973828998931699655789248323726855308839672469047295066596798713457871422654617283107965945136738531677580988347545998925144620507030283478487243174267552173258073485146898082194031862727922080833790812931653780941591579866709736937070351342424365251796294590384253582436416012262160226109936585285934915373996246583500626101494952338921282522170386807131027315283287417938477185214941818186470720750863612302918914590736241981599713863620290574904283043209382620873643125948986054236165850252286872616519940704370449170755807847382551718663897494253964149485272537162570652182742708755160320295455714909537319032329419123558707806851290918886935703315460482496792771522761428770234352127516555173205306815394098943691007788099661589412245300836261873294193604446980172889806750638857316000021661845596969753930699560954651633324293831176564988330693630686108141030546276202356247648332523039670303723746356064360048559624684978982157778644781798155888840518348380214557514396886034750956755201278126226454743572855062851304579131969504473235507144456629229530565436162836942229762035119700434578653699886098694051499173281267638067762466450703424641911366614978865247913185431831992330628156137220895370749110886756766669737636694101953223725343163380636466634528015598849892659232692431990388302927245256913436034611165177797985245277869645589927789414743728613597089436740515225267755348021149361323349777476337698010971617403324727645561451702467581099512638398366604204777191705082879205475312264742329645091508793471180429780105376506725487028820055399149840582957303966527581854128436819755367703501611562749154518630945589263909337667569024574872370189903411483964342057680093452216012407147261378962528502861852291870349473581497158832979551830740325969700278586104770693788214414025699411000312571812905622313733826243838159456834886462289151464141748850171431997964846008577484492769494437097624835931855363381054430740937114098661617094911454863406052320567646180156346863218556044792463931728019077783871367245522446118152802968215698899589071907221009076618509710405934941478220607210865381684832892030331784076772228313303029709143309929366572526862270920239399181982572221677835729171855105344636686591371110372665813204471959433734291389240622280066264380894197291737357108695672168652185930633016714181883805422877550760031325567188377428513352951728486163918277812323099263177863031037173615610654535695800441993468600372732069839422300153145044106109320534501896782615235291195534215443733711479804583545912462655569849473237405726612625678808813325409224264807805555719673825577829021716872588606904173143142859215047918977237649366691160878931813856443602190487638115425875021654632380188621084962040103919853786751826706933490408879214190637844946135213310542987321118714079637721364476161698833369428113467202275016982390603881546918784847452634498778800230159965865504963821440132900702729313413516611775457680902389420559358106536503604211562742931591202133434629888603420365390834556713131196114763980193343246198358512196332459566868061326924912634435956764566160389464777022278901508106713651329251032622503175089882892069928247823439013126201795008713777524720148128039774598211336598592682807832919271557832584674782482276121566099795775374264359161441948670141506764929346029675851601271557562085242755675618527594397005511100776543016971862007018665564912641577208237490853376663203577754481117343629416687021209948078628046190954454949038025950699473291295945327747671079480577681084006426702312726439647231946289515164519338591826940405421661000064091804056491017249166614031726425549092041007227500697205586717624622484545544516813546741234514153523703399537750021528215345214193897495318256872126655582946172097643256736559093313950506189661582948628799256417728791713141752347916188487446691427937395861687112561899129252905687480070391610062232840782846540897217887931603588567109935464976980644820852470006187059037762718100764755827067418839111871982014230206411764515899553118758094032434112915801437701952654878938190835574574462799727063297504145337163626471730676591417437904520612269432448059834209077260350688146151580908602826796016858361154345907707625923854838634285020478657050348316363791699230077642386759847767742294232757816527424202952671036112340359208074796678742507717043531510602801792534225894012128301844085129869207888978142967439255296664009546659292959557814925694059547600475107026473600352487974330352366713242996751850722989874720849627289618986770635837716984356302317638435022632646421705999426119911934581300513153812909250693220659174600357407951375446371436916971039804186007708926443042728685204511950399815427346892182628411352696459588389505089339876590851650453919131735686291534531752705081611859672735333854241887362373561767846384396643758015932655276781000371571441405716470538401184936745317679870757741179340779321495327537800563704914764902959299553171945371403835915390360275213397216590617693180124790620737504231946106213740252330091347391940953733436727143145970226988301421040679817171207374398981037339635039339672043453917193519474450847426873199683058620854434117978270945457026594989921879013046483815513269526580041029245116731781641924239272743134072643761195964622823527208511078349058037048493264864936618647026219260495995590249468363081773777306355172081494499339829692430846328669597722940257819142704331329243636371403044802291112036030336528970657673420073829513267924647287219294156738490589556513987850059545141939371211178306412892148567238494206068214693324788766865122511964607927218564616779907667815801451042745395539385256991496337093919380194817333813387944284751592401894870133458855768782718509727363382431194004380381826767985401191306350870623080351526280260965285460495431237545648846555716218783140697898204125462823687831513565232346868425620898444094092474774860403164845333539803440775211990511356826309526227203284703558097029662201391230943501273019927929174850766298349599652725929843551185789614916560349408203090631911053099435444071807423484684536677030441364863391512287246962020107031813345539622050137481905976550563970221789537079989009117991795345204416966437261629482747395089257987253635479589770863710711855177697099224151038262649310237379545152536778770114728877115402652997373048181260013767207610903114910921954996340880672896264008403069503430332494485481370180126458133451842510068234581726893237429937659910299886513433303655590908090906467279667822472691729284877881232974000521559906883661291561269683182347688476940749211724960674079800393944459585492795602736637911070231890392099930111475384661848733329442366908081370374790988237771517885520939998235486497339658652655203710221007294758623539237490663853930985573202304693736814506472106252464584592130501088359545628501741099749210569760203255423609602150126929627951472213028223342264448513500426959047991110575044111353023633854002658931389469930411946140766517051912917929366408487111363439291065972855957421477494747050981686402017503283640111910700851446086657012475155250706030879923406204097601769791853670414732618756208163710001326825649904386286582149883277085443739424963774411809585935175494664748950711406847406120804409332124428691565557291233482397776331723942005909320847001677322027934886219351045664003812962680031916814827043000868045385324090203256869154596877942819312400716758098121269931816054655037881525643363465324681366417803759564687430963719669666628233419620829390571639793188537357730557125508582457533138771261900543191070117779033438135770661789238588392084764726777047069229624909147541033550386324204320949686637691448701545212198030787816534564385398823217876605127755517333024502154931138242336358103140840260300777181575683305572615631355982955704071726056872030800658462905985537462056730102974256808773063338226493205193592834635315259573448985988571213771532557165336470066691779827327437618583899233582795043765023918935821474434906728591886079445703125205239312375394740585595629420444736523952268299967773601442334549981550394252060170264573774018762756951398160083522127585573651507562314260606088145108560209115751283526514725634687388403433736421312105316261280506104168132870122395235351622979526185263048505219451336472913740815439704291142875578734055408635202268283528107914033708527949357959270658031652045160949110363058813554218383375705654297377257064223159239515723150047971333925016297281860200279491068922757225195440421425091419415382878741851878483517760004416704824681752112578075872846715748401518915872276028747111628500895747428349691445117352391124768318652881383450414386585092205012341239200706103100022379928735764116745012426383068310830597737551037955353571299962069261802149282802172788764300776952524019686826634576997028107795332835429009455994337037787751035000101529981901656672237678908638479427727517482350769416110679563365384819251257265842525481124353347890651903593474226104469429207977000742731336831756672606464027368142065418521677182991624201758912054786274277578586495800265452965746691902458301431780902661305692785988121083014029626732101450247490126312910787143240577166225071603996991489350923850161080206566731477260488165293968461180824719407825698401371262951935622634028606750573780660806628567569225076826161424679654705268399585746265292558441286454470786924847909276338350309794552196707016183585154150947669483350620036851559826092811856894790942077618893386804717342331379280926608319940408170585379618271669438642972256623945940614141521222273544881087674508778012001184857114439870384640752571884424213317517582199936585739973170019532437391054882045727750868765072595753915061578827292543128136813489601784105476137975234420301154473737360449135883809990194490369025695719390888652024198604374684605962192649991597724524479062455006324396322972302079207404266919544492387786212696298354304131766899287181634008423305338651170260926885457926699892202257958843852017137827377114532066146649850397715903053766396967305533362373944701406742762069969626213861592275795637457003346807312040347242400554750851506819678782468104345485007233639210102672706921359298954181886587120926143903787546322089769105352799621424771693683168512508085447521038131158796161573562686287998278089209812179642977684803981050170708837407235108640941297831569748253074881704810319844287378227664509306951379523690334947247030703013268400509023422875643163454024085109443709911953057417699843590317479805290610680941781761023831386678630478585737105872408344884629035854948681249054627751999737413238680508012939365992710641593432010709582986915553447504805029372502390016415202801909256085811100220236455288512603842334635756586298110580712275969892063036866918434398405598163178632308585721706951499046890349364251207335567522927324698639692318005951933176847508746612804575021244704509441839986309280663810313520784911709095561521391914537403612840159489690552754685404167094692387969361904533660916042644149831209132305937808263772457363391636732360993141223097434315184970661753259021854284572965386418492657881385812585679838583734044285339344546509043759142374093894754296802306553420680448360785509770401842957606798440995729249394183330030866639632863892147289632166094011913747889355603114024249091691187320983770987555357471444589412633949423928116495115862125636516764477488551479627695507073863992158752823906392533536353523544628419488799674309351142959319511059300164807376995148493697366196840590998117345677700285228837116546789024153159391769080245757887389279605642983636165086289917883794607787130060599122946009351978860172179575065505341128145149245516695019134162543617284241109767618667407389685336817665056041744931344852221621312755837165436397446044747805867409204863911206747416632760894628346222475610536041278287743252248236242864353477636095357398588563296106380894298526343164850813942497959085313391216161934770137714751068137283179866369081918254944808691518139822052942584189634959723503866637750816008481487970328875206042611087576284652619846787326433493336868167251975760467959266354770893437195086510338438333980043921334257397701796823016870251048907171401234847751152370531318399850328071344572104503951693910684815085763074672543302612301389915378273003505634347037716012909017315968509062391042525025656731933096715874913405109214723583840497626386603864548326352015982438031649987323534598237550989307644048671315328528668561552273029776545299058777456578378164199555573300294308331279034087893947157026590703805258864211629267960136753747705524526738029585550642188241671202352010968622987528030539521249413107957067730991137030425953849401751561570797494651973132702143085046026986971475574950615690926906423563498276438112100686601251710190474212140191533935748209372910081680161157269660047793321374954218845824397897310805817625117501397030034823040573347757474617014227443741357445119613861648044686177477637617448104769724731877839978863311990523740570179044221620128574536403999934853975644475542026127162543488344027907134770560083588858059881795220017012397672797187541827345302897810376103168813581957707163341507642903690843419667420911413300994490729270828940624698878194930257473822635360777868015229472714986471354115085855554428247167708345545064674856727333962670609272741799681981087201709522131825325612949485431248099308047125657829870603116259780219518258627493081199758778927780410597677646346793808468993698269308490712307564613592811247378046980576664648581486622189200266799669136436189438584800208666006139421214763946654354046079395325138239005587818408720103889316039069107838097056268340898049215419452340831323741412821237708695276793307084243293080572353610324169955335397597360473061427859530861903853251784592159434941899511927435645683034440272777266523535784530822865712311843075035597465848469500791241788420526484591619990353308510810528857269118016034582115867192971578026548275855182498171975021290192209527117172486095309554794167961717530331257711790557949983635605441226397822410869242591240802524651523360602107072879854638569213381594193924845374508748280559315428869140164375172655202136013673489114280108440381976595219237152519827332305680070396717668637929634649721842865661267730663944066008931175600692500177117732354145760569232243815483186905335615524353718509103058740668511554530809659155882338944111195526180978954322685204268302659999237873961073497481516634945485348051505010371158753353782455329205635354101436442343825223298431559315342241269316535044900645994647328406256222361962804282656521685384529872748585668558355569140813801089128308342618916299168045527835336309947498948287578077690843625931825206721531225621053417413133803825156583370924175143963719254075239960238537390487318311593240156580157456209333263077757436184862678772695448074767054092609392502007076162796676370734242472708308168751281989120280207157326817124481402744981202370279456875403683728526211907447367429201320129195140559116592516846191641243645007699835962216260842049650053763332086988430939233021919808938624826010239927289593571274535886857470221632239248405943254362740046349280590457711038628936310347885161424482297159082110761181697575025288700933223898303038392305249454883350980926341488805279224597633126872432632850846891534199544815424013805356585102826239882404809744682743840622142492204521728645721416915747531782766907972321326056038818929774293321518860672901389415645758705136157210915852189793350386893408221896493049303523809203335777177191085457845817451242775158533691339913742576300911256487456014504796820206940262610002970775997708726206259450747142263758838830954832731652163730951075653573127149438331634503242709183280881564979389394899868219907185584835496868512274666145243638911107176219821219036026490358133960084848364853029647408345525636362178016110390330294021686144541609422091424041123546291364022281972951941819512320971572329132430567678187684998684444152232815806685309121503327360601172709715616069864172689356592222854620975626404388274339592202936492175895477957616290232002890447874552083691471957874201342635766326299057249855458680138815844522210671573025267854573801116560366906762980430120067554711393482100508168383516793086424900534838529017060655972925100022292273606576944807771270027451378742328516157962992940658319721048151247630115550060965595265206483167274170113621729973370539618979498097834503823716721433642326263940864058363866256110583465751172244426233019530240941871598728480704295786226713162184525199180979781800244320769666200345901609417346735926945808641296802501867944504736369439333656356162057748529549076259606018863965589818722561551132737213164460786819605914268801086769166780099816503234717178906007089415403799278697404277908578129834538766073315701913518139198244148630157189393446608150689367460714520876182135656419319654675440107831946086134427183050862736155853910451166863291379516598567883656457267279246707807832096401010021161216815590243049560563351653090986375117659883569549804690851599036090799259852638483750144525588209847334239431852763241615876200367071281272854222800600823815667638281621784884271519494537318715894976438423985888729568100742612160017447216843210702899251785160718392936601986774137791891416011997176314980265951659777765087124639846090950500967559577270795980360450656549462858511410218680778981991392645777192951870089566072522697685327925113736862002716933493061559667368256280449568354464091107916972979773234810666385130874720618822424173844176088576963740980954938571323305844666804938721840300632722764469684566936988817948922630196072584425356186063615224574160013890482781185384443532984400546245685147656969472228115193037796559051447733986080578240050411673605634793409887586613822367266500366298062980579281141291128832183350883244144212268791737893260137827271264809797998361896728913524776149439821062102433812678651255401410524911332622515686954760476767288553911078381087919283155571735064121127477794479396321607402906552312579974412455132824856271134890707642382405030366069227295922501468251989404861219679992959632620011222279598760900400345248295499337060300296369653597335072456669646290224988317951892632483993396173551709188433462319356762940971951030080067160971037686519829769589702253065978393068223274930037095528929911217108505111502174929418757346029354287639594105617846019093803817080910635792248371347182358709600939942560549960496578122628926883318404531950416222358539909105411098553594022007203162692920788650444112603947114584102670647494791544106634284223116984839853332988868771842312987782701513700083930175972828989243449710123531078533129035854940078618463841043575359636000605251282052873788966361859089040311296683888891888922419756380174338208109366124867945205422459434911976582756065956386470222363633135904240824576397568271768486266593461880575912715793483895226586938627096120572704683194359071475294386409762112160268255733306625843842613546663298509900012373425418230729167172562823819387462275819825079535681205090535013597574952133210987521133875428384162562034139627528079985293347450056393957014425106351436694401366570492533551449819775293005049719442404799313598679586074828806073072604682052537649709660987280856360830565568985056441810045404364101348679454825522611782378548302159861627573336927661406835128071752826631963441403814130067562724385246517556804898081659291898372900231531650273010764898105745418489149392467650991382729393487371876368687630382163575098855292780834255137608702056946662791936632047709384959912800134539823023178607373334761700222484258893987484752922625718926262512598743570725981975709244517883882241894083531578842135852117227432421698267367125135556739155280263788968711328026711494682722228577565925976738735714572179096372283186263480762906396782722604796865491133318963286976640897446040183673235640486399154767223129311991342964989335115439975222738815502855612026693767610492124590895230146361299399136200850379795271894126528986196563284533820866872572972007622234463340706697488135870695647357993188552112342271538674856457851329825695113325844077052023401080975362166207994362518651903074448154393948068629190416283446349186020695435507674972569675795713742842252407863027598344191829649017515749522766911296255690203976040512313431905470108734191270183932653318321652746884471641707098514217696092708412063489331093784914747911882915120929740804694433305017916162187146439685124013814299974398686031569127799684385168743830444084548038890943060226151190283232739325001327842274909494802993345094059130334104297366617338166755741712955791997267180287912091422866690298621654145875794882322346471060641594507552898050298180721228041444478998932173707586694760957332148403828112332391823745330893660947332414907165606553259058067715691838589977083290292311100757697768069345044092172280024269419115176947723780980892514175378495587813126323998739962246642453922914087968301917274459139187444073248697982141807039802801104376927447529367365658977979051697816585044427512826561914453206058293035398526009963926182714373285184471338479810343215698467447157159484395015442804579895553517748688137665422426035111183992245890320440225215917052619559030968071490540026328746743866067718022045920719336017858570419331539911537139654676418026918258854179997946763010121404272940168839414449834302938975651956005894034952814577552553537479464630984478702098303195482476803092695993871114260723953688805605403278585695969274506201585230659138996667823529871740938415236388587549221376763785465561749504937487372020285997700861569418492592193593720159499564214525769070814025284676755205370209537342472635461646408260716508418870746169132100094591957885141103839357015750108150319498977136942831614269634921535337115546275713412978588054335168587458097652885364009205028976500635574100535616190643304993857398259779643923627907167383606644519374827957185086412672459792665952964964052953114910217060208716731495342481143630461259148347467033252343439589515685026217071566099286984904474384503203907796947728759193228999635039138943220253938154820835493295329810627578664520977433412425794983048142195977602287976551221761153508595777353505435470227561808041574707816281869005505101998547514291454979075013781779644144514901403553369304586653821860864744887030570783337866813841683532542164980731397047685055667474994318249534317415403289252373340614678599853178285686407658031126280835803098096685433839177196486479759256187649847052015436593096737569065167295886793886565607859763858399385230752975277647401111694152433635993462833962688999966306773694110069986142803410530348479082947009985865749476181263963071806122644409932280555511744790034306912281133698122232648051444515424405326057937979249559585621088806528677109963852590499004659524496771831651081182996935752220093806528110748870734355213892152838051882852469137868494781224654973037402592741767334476534865579696112642878102476816778958413107147629579514778014022945282286008193574489466606481649625812316982490218023946028446752402904759684075841271155715983858946608037740160605697972511890536101389887118223523968131157020700963176347013697472978187939420538828791506899236569470630206796945668806148199401306663952417152891316513690461796157097388773683617117625504419395590273243556913012203867699062617566494204481060908553939120879386367027566808942492785694055267193817070650452989371557743528913639072476588499190191403245188731963752325295015598900457518656265542553231831481849285106204763263036689336514671611242064449762009403750987056218037071606312454978797597982388050544180234813940269744454174052885577854027021112372503806612068677211750534644175921510332674537488613298968257755590906415629394014734778328704368016696364924106636390057329318294687080629540664105942250658077460365437784033785366305059363924692104546154295712319067733294366795842171694304710816273867497289491900545188582147670385957362078388935415997613785370864545909540135941691292892470940668772153723693838906281276096870976432768911813446530425803533825062209840263695641828802406578360086348546625163971981271399965523691944350936580866283203295159876072472519410169570210401647339889395464900355526384438995537555402082380551679816941384988098861973518906209314238148855899021774216279538066836988136452921055206270759893367776706613261438073341166126462557788491218835162103243611904368165128620935798529086255618277555705284369899186381962011775215795522315156979054383120591729107372441286763339324677216722456626764911298612076835056359126887192317935186290613656762320340323209678079591575893570675002186532941245316858085968560053002922157800649100570578746217112475407979009105536671617328919533658323258928329922373966947704280308968474471585030346454619645660314608029824971128955022492976847426669526566031082784461772531538413856263684702866280824498124032852089008642019504106379814447881446876365519736488946427483064638702575168041098284515787361933335007483623697342570405045903449692089303984615890312984710252724154115291573205097340153765693257594072456585624709836846936608590390473568831658651295476217685619219466567078397811818104717561951142773837479933348851309800876834974149883049170868384848709791193399101221840295463298035746985902738556654737740099260302372045620728697634008029604175984326573635592371957884068950334393166217204240428758861051764342232248281063649602847078383788877797593383428774881575147182369063036650840297065048397237540311634339803882930018665337971692930952801803109147889962987702946498637830455307089580142597368669021933109349017522504726005873533845336406555266005988897247993689064597184891328661709261136778137184519729259020865353577864191708443331091104153241337440644204099605027392425926837852832070099785155144578255020572302317555034458648738721995451418336812564283636528161787696339674083938435854939093398529880845863174441227089665094449499888398736807354727905277534410369102262223707305715205676874814310039368931048724988177859357242497729559696118339679924539617486625211887513527484582878224940388744107589667838656652232182684323334107636356530141073259863695931152017631893407945167038555215955540711918519350468723972540706436914505557792158500538888485235863953796714793963161500130669485212525915934674146738712104099501663690352832990341117941978644559874603370888937597692310375645087188918385681881717264412782774756765442312409561886079773706650423244907826217533167416640410440756430848627711351005564090667086240984346002934663273606236976393933742932433263888115697107176799162677820808008796187263602081705105290684441228878655585287050614447370915429832500646580683712783586768875619534297898416116730465898555332024520686421504339339526945448755499568536029274080415965659532025018065294167516371609675625222657122596705342616058836826643124171525144685135537662264878651638030025352327833340182165118562030015876966103262375003301138484709831480007071653002211012793085120972186777115551823494632728350816315610340446594902421174851565806376083357760905909027336077488447524446360748844491355141135933423832556724712196336651324591262642075283834651626160590148734780511113573563588143661211657938588663231054237355625618165367801929638193971075522034014633693879278703585814253339188295624048525336294151293342812136513029177954078458962438459493453684226120576937839253951455737520890219242483707464355401906369311685040063101586188806389441960618703372313887131124015900940288601311839069873602786766957122448900296658339348704625347540410340388792040803627217402148296199413516531479398674278842122354389562071094768344838151751754230513677071423003246366414154992782235871578602215365024332404029776600499312139060236143779847789733422084714464971320306521600870282695997618626366172653834752264152733668886351776578953743079374484686318123102730211051892009294467659931779343030065901797100345924924274178402717863123273919590662466247360816452780302010638233525191356913391467356682549663979157151189613775113780981108991879379606800232057806504363541966954239773589181562277586461584970584973830092849913508433401962194948940895462061616030596734238217851166012521816794661743140547263006427032819035467149168665887686887237979453387999239343146995084680017749163041816482153480706340003548534400390084630974142765007115961562961327660741275473928222728792982512927156821879133160999868242283668674619653569548270850610614120826691925498246859592336283214651508381033160484111766806001537358416926576031747839649578718822225315177740932377536766293052122149740158724574201540490340031506459560791379602276406653733145815696667979138290720763868806783490958315847495732979729531825390684047146522159221320542886236025305319396344656151987722681549647330683275931037107812633951667764996023245588926549419347477490859952002241178693863708850554185748891284548551698909362652954791957448246109922012078559170871582129614835259537239014288574608257805588812158961514552573466025297617850975407283989544623107282830089666035711504156245946794316742522287612369023956157650514245381553036298720074601669240404594918936892560702329799348794742747146513128729943784281625771516125472173028625592458172790578505811147384358566439152142924779706216443241350220236860123218473540724821165631506349940555260815313859318908744186156824572890111307804109931577137280076148520037115835241192524390303163948647404743836598209297356361507198740072713874129520082844718439223162279483806031081999511985132148930631452495118909253848498624394615212801943200776014289106946589505319364532721986211683783978520641491316790995345455944009113309944930223492404188599565794640594616341044736959235169400248454983707111551061476721000304693842715247476694394840399954564695733037736341364793512514255439955320301683400105868857813583741422524216540444956071772968957328490363573656363159654126882840672120632150007762711960359383552166889380239996541353999993873530740461112029050078042152349559481478062678998864607288555389343737520996550584857819469419335978909066514246099291522362236725458127767859469626162653057872216986972496149115053687201578193415353697228756298259893549352523167660218911851825635292155116294168736455244220291174732266282144896993675005290662147918678241830314762856051760202773879471533526797997786089291448576353633083478665863004944652644644915207230581949144637408972380753821546909104343758975655001520707875683036025427807249664054938413575353438753594949495976537510844711231908389681586655746608081331065915115427377277677659854005648925376153849031982793168948194122126421143278004469113887742974431543862942587661854215277372968337151579766847522470042115198176755533128256642528174611779685845336668985213842268167382681650998176526793748004718304677518563531575187965714668559920312761648997450784369935354914201728868352900069792925515843459591297040127631225320591543875584974160896127910893337896674929278690718440143549289951208056732649047101224740288155630339074996822588308859972449130842506816197975533421527884347227171089653055757776795128494673669224712825530779596844741670903133767634534817725845135459328145559067102091528596320765584665891461018019900520245600491753812955444236710350465459992557692759156117780699332765398365586921656747192587350762408015917248959232445454481500141010283621431096454132092872101989791462708511802423324633710772473475485734435035860566757058987035794984724059772197603984052891666357203608810665268347495124942577286941675196751518133955717487892826773050564244035281090621946319543038569900970458358895495732371789109467592081980765860257239232369040213388918042749229638055672583443610444332940159465742834078776613186582491972936638642915323322706569200040283156428046137614727883836868965637689665511653854903327397648522421491625560948327740495210854646235450155381737636694099566232213075569595089172553767014208876890151692329338281469125408994392408224168219197314815099876618993632675588657021018738157867121758461501722179827508994653314518773379326136458849007862667933740286974471867665418750082195696017208352881047652809388536334865704913674690442024707266840168343101432295864007194215050113006852863590682010182732895141907745176428424842032158510427384412177487890339224934022421395309428800263512488297540565625409265520547529264909308166561436021435047773982540749311874384885776019799620157206080295292536186528274768594086922308752802994334593185666979383757382208105399655518902700528678472683736884884503328761726917318967406453371460372456162180620084983823287276323626780942816413013037602168816645457959090509018869948071324440353936714363914652231007764436169830364818487249808331833995862362832807953237371255587393959266103582431352087748434610103533878947683523887678905623839481274086109143792831552614267658254508538938994972650301920804840219632785435135098719030975253725832714706564298288972231402656453257081857549036282644133296604591600537115477833407594762525448949210763701461951474808151804157358528205550761662725300547412342099348795078033408512829401675361497714571189386212767074873018975492161199420378785703971846204137509596933689964709639492725851046476925250598929683049988973814545896031682857984880374357973890720768648214380716667377644342011471909637768245411197140591106368405825335379246225647464519792437430418052330193175155024961923648424634919484306265684577009628342497253288830049127105578547458277223307927831805314572155235286341567393008463060638316454678851588560603098788658413641082319940429998407152154148574227485180707249484903081044137924814179903843906302840185171463248181172763345503989186914855134277329754594757068007636835898425781712523733497440276555020201510371814820789843124726040114597299850236380366019128661896709512668147399832138531831762095383609101482708758823689115417032389021008392179944925765171971992500513612718321851934656125237503936790366745594277170147807927833162848473157690396031932402377424353952613245995869252977856541661256500533203282543918697574290888093108147591807351235494001195319288778867549497487113054296822326933223169665808667964887986336367737310133058920642600097177691436787800279700522926515084418492821174466311836915202391675041049595235797206062704342643885754812094680779660688428422742147752963160057144950019285251704512379501535552851617506519174313608918672579157277344176108810159833500179113478032984339432052266445281157052230986442396402342744878958749093538759036874949848162871298229784906811645375640813492335736577300602056113123709518015066244438532827775435455141373709759368075488755050527610293389421795118628337832890952748507342808416698477142102737095382358575583601199770774511476052940054469073051545258576434847435657582097722915753269856993673673902015213057768568102839635440861962870323186719893813961116520595188378371880646377341470254296286352348959706798364474134381888119623437434017950956313936918705623234029156355226051049673010436267728284938542109812769662148096497875311103551837295786961278290972936424122573244518591601784941590874535265519916667659814845884144578954492752925872922779387098683164188102146720121796282022999649945681816480548400148223056615970588001229681378253975182070398397045396166821098214748864790414344630815952998636055342294279091518624416000474670763038698456329298084227303405155598398109919980018364186860707967228156672307154618140463229969792791033189001510126860427179824503980080126430682319917001847867978991252473293269092807623959350065697636771479025930466735994829243484836729680959376334829396835873350882418142890598202216549465085768825678820551959307556281529585568362639964072223222700189384092924570820548336050552641364463730688527210864574391487328770826225714494429494398805880398975001522523181668174917079537511655827004779495824391798355553888212554965893896808865299268247418694085305338138637797596058900798961464825658087977304369382053967604098493309349634312068689000905727836164644051254698409300598923586691126918278242314516622771399347765963713660729929241874317525546155101147125562575345095821578451584818293506038489095323442735922582573425217513372638320107290901695089829212502630925152765627110586298309563344412623348584086656597033667600964515926883466093656818778605912967243520875066036771277891476238888086726993773014895937477488026247628698570929348152566760296192341649341972990272708827718178154337612024544406521351917383941467563606348355186226342203903821135993372121827628305812911789230259391862897289869005522275150464348107578914453000848543494257829064483163760412009526955769794263556831266271739185788516707263305816593485255291367159013400109979916117864596404851332292724383002644374054994428268274011459098530523604956873775037146197529542171168049826546386229417232809762517657767684620034807567594104184293384012987914643410445104993733942218653858924323657035000435736287599161310595658381842588996209299908235008526236054989864238524435297115282260946763508070943003422290242537458765488059998048304941840827272125959066123025626369342995176352262234505439236163497373761749523436527464759692830370403521304907440066548502344611506544266727885219595439351072717634807756904474486742632495533888147701996619687949500882822832782594475081018904839640534260647435130891996839734227823367136594253224736413909334722962195038832819985211721883370864939811304614138453102455863311051810745923954631917093331980246652410731363373051014593348517054996401118316699015905604012785027519661693741722757573367268772180241584587227507410516160552494047201287940923274734670175676057622376340621718415638202412062841434142538617273790409936120149608751195823288911356560068550775466005133096380132537884436297596549115991151483754292465586448165183230115887144743793075496899894218099278868494059144735226130505239044259994033453310889785791870957892958425356163358120904504286940503577021501398430076386304408405333873227828003180926579624974276073441664569772591114580451275156868075899944819529445853407173188386979534818514706615518407057875713936277038556751307712080104966343095357511862508956463083250307121616995429266058037815676872425413403872590177040132510426111629240622204012021077435297208962925195526448058207681160250117650325646496934959994993471664653019489710067976516151844084991211692329749694083737096016628307101431641578432055673776778408986868937382138713343803170426112648737001646949717176789923876715956712149387726109264381971256380129044403979411097837941942320767915384009287223860207139727598102234356371696765717343250020993611096788716955786182853200192059046832470280390318323464838133315764850586966188162057076491470195874358656075233883206377160374451297254741585408047279989890695770612035179088542235231589233550107373758735921220989383666641189209769524419631313768875867389742105051364472329790700309104641826840587500655528695736832606129710757763811795482310780475203598422005569284358398794291194651654931220534970569767109437836262243767410108701892057044443631516483337674726807624749664624721187406361739653248820428134058707228490747382242676472537889922849985698325055969994418450843197189062856327771257836340038956377520726892689997618386007326112122680899893236053590276990994557362515662316557609697325875050799150378139972267267533353794129308888491722453116926949443295132007591768056802060549429930455981123691510906146735953666981477843869662970953336639689250648517636666739855416758000933106407088563275110434797499251483538476682252585837222644293747047689958051500198648967624026655663495717330038563046392254560822502580493632515207374522563068880826329326681524714615043809909989684156899784547668280583924314629457352034145380393335107920056351175043064946509664211842349271726759843510004269411304773478860058575168751806303233468341553495516812318609593081408902745602954120373964751252245719942898753506936767260519674396482061411120220461826938670582980500359638216716161368833217085459089256244529730703323710471285118706565312257815119403372272294469497608252780708325232608919967491940123109123935647837724699801626060015668641671377719754953847708918250272644136137008718265948805704118061289362550776460629917891962520531922849767881641616419806807226713346925761541490727444529442423941050952641453515604372956646525064965805576929769860369681516248744435835400619632377063353679313425393159154801783536224138021855235480875516622958100298900852243408454044381631368882494404065094827643574162773539778414123675976705168849551395703928530199537078849148326139188868902715830077063484875514932615447135581143866884336090748085170538536688406476125808399194568678523020257666995746172258898111507864464943816340030653002981251898327304152172104966618088109560470407611184915460440359844301387273532401685964067707505377371799600863408668197686280636186700785936139517149432633069996893022906409977173230323633262275557603031487303008624765066544998996066620172862449595799922337615754597710410377850476430302568383796326559028757921927855032951752833821275660472155567260680888051206323671892500236709227538036041178637363541743505532437818442579482543554831682289239403825375641386770217465761716730353119109263496654775143338529711918721127356906517903987662898714184503426108838849791428681852566798348392512939746897977510971424082289166895756727437154591841708042830523101439868842049956258221210656433854631565208694395185133342608568553476736160445882270020333613103163439679334977828039842971651276678169017713261048441116694490895273209283907472219893634407933783031939484675427358858669190611778161636237193620538017528021433357231413563327030892723312732871321798974536771764944561016112487769171595579930844440152158977976302239246110474106851481923751620194769342633953863152775455038632318487546294830586469050811736861405279420107964795337135677520002932385341448873296752500960360130543283417800501056952046988809632739321071311211552561771013481195221448958205666830421858271181873964914164042538598062096150345331651124506055375741263626603119569428458136515203325463828763884665650300528220883084729608317554398627615691472200408754308253596011842021197567075176205108804346230306040406776987406036115565217748065651915125744055848969409689242742588078231523367130009951489076797686415876119432859743058605985580851769866533360815691286379360893855878793774728754953578547778681144162253279183198481522684846761767509119137855215428484823688076944680857562214074239779851442610631678224990266860279333466798974753206412828424577328913875065013476579818684995611356932935681169850571062916351919211147479608760306604914586179290672377469768266195893014665759680231323436618670526226047095187878505917430978794768874818151729396328909420490243988819172755277853806600667444020957917536952692024759575881166125597646558576148557343587256350591248118751971095466850027156318013062251979041754921993709030244700118057250924895430535779326598861818640212963556588544617070657691420068344210727771458225800307108694830454953310746806970927909861547782801041865443204223104552817747099684498828615578170160401439908071807452547744355867960328558684648070088786360437662141942725477739564279416546475688131132524173973694493390224677587104299282168152326085943005362581892763799692533760126665373509816451355174448902774631610112278223322287798804895113194355217181177996971989536698636451561593885501331635475981317300364471076556484887979936168697383443899203884546224919622590061962077904007705998028704320729140521205529867525774938586556359560119142886807278647303558662385141549041133005870574124463683740582778567376185628001170737470500821385232032006438390806563938509666092243053566389567650322407624406785325268171486389480491109154076942657143524703862000088716449899338869521125783298389873195354363485856051388095530656953771512957710188977213296540013065782133143030630328147591883768109247633329429221033254975997301664890642886331784502726880225658236902550135126032417706307852483617404563846244673076839473751923391221753005151651626621300738565127393990628296274665920406058816838035199162595295841996244872636267800474057886003700499234284655429942216010829783272963323310888445894890709463185939470139579268160200247677402749692040233137284122421346486468392780091099326642985427734650261834563488122685448194993899360666124891600684856832589372603994707800908747650952334164791530668336493608963156771915380854123791935359810269035054339605524279626823958612921899877365660723184201969447806667776871879728559627800492897382501388229183556534907740996229257392322894630390506462644684050105380499040434835729078761164222281753635642946438505538652973954217678886429819127394295132452423331224954286566302598057926983169679655241800262199837755572996244714337644310608479429426192878494161982895238576157528430770880746117352940782373940191712917543505815333222654497977236952017237220313130927032299776128871303824994934575402757279356479621140424907475167037704054069066976345292723753982416181104316181454552513629338667284006534388008187259016320632575407354175455825340115191344436611162021722087348834838591195332959976234323936901701702679500117623466342299487145201311550628582069704176325415556659289925446132263908239193954953438471240185396857946942005346409098935328953270141452206542414120409804961324111496921514481242885024086771858433386155050062281538854643663754986155136029594310750556655513174541636963614193283947261824943085725726109031960715428066218910745139160066513916717768944398393476129412579115550687244111846498683148804508865578870790747336441443702260250283030255415678202960977388780091642164267595100091370964518950646318283386210587722993624285399004052620140009396438473681308397656216856521714436412050313614661573528644504444766230075530572067766114293374497122655135828746376905902522294094731226584975573780248822515577005180315506433833597490420616429108756889276257987258814550609387690058595309775763503155960128166050459252563265605132489881661470520938637809199219554608522454988776976098305215251321984033682472029252558348337879607343457901231610796756143844708814851075647066431569194172795840338686831276179445013527724422681592717924389350595554854689059336196314120375949882943476485646426343645264307737807790042928000176268193765185888867366317654578116337658501743523090053432759758616758139955521732357848436497899839944181502313386968560177958918079675168596163256816033837160726690130778950829319135677889936778452592886978833372414329352283977534921148741118162657796607985931187447273034141903970485944545899132793298048609620900522095005970922216505071153117996357128194838294453753770578644287652911858298262652899475029816553123451629497866710902356072374339718237800663133376127281885975335786819937862680459448689784479734085643032656205656443186990298684662088217960950716618959196913005162075803976703138629475708902070318657278410419123369165338106359129439200742210258229659247073920010922479449694172313003012410322395081369903562424438038818445880949532010490767738478264922399446683902744182472962773931255635010391621270897387861411116563125024442747341986460920456873785451368376220665961449211049334204333094251498563110521713274313198906596577432908337477271916801532701587382879189217553197571286129277321605655983864904883838449370596870706234206143363831321053737590093357769717679004313055701564984545392997269200365669402309202218716498349068823574441656282060501169596763927972489661214698977967440767189556892144159800954597746244037357012898668273030511135290924470671301774373831546553590130982767992419632639701407208986502850519587922044092844449150525390031936080553286277567883465298507088339602066906552485515680092052481537855360903956805035603637451515682720253086304244606834202615305410082968299037879565145765098411149875623822996940817008599819440272886932588520014925771595917828439527802200387033479195804643834180083152417814826220859700158070599789286939408697330488734872693605806997187082064668004551015869457070617951020959558247930355122611503987683113389238722754058191167226233083224272143705501798355529149758203389325062855150896893285718894070069155437860982028993550606135973234526117134627084999031066809636793779840586295123403104290085263225214904687063659551651396562969988580171716554112259529253615947229599041968702773945411558754311933054131612783697489566826243502673392374055370820893396423246197419905667998149338887004569143678469419384542367702694214572755882341863734251024031266943472049205418622599289826250264394051922792309430392857201632161349575242914081278267246063316847542605287869349013112892523679162523879429526607598202820398918830407585145267324176926331687173477395914563435633752111075289629133385308156092447926441327070126954240842519842605572662752834988818238326411750461937033343904700403025537557449892524184605905973608601038873254926841198561660480673334710410622985476047181440894169400127343704778930604258182870324663868248524255299351588357746601869389920120513320470295906891104878669502793124889672181386098576456456831233158517389211505599200046741165604813631404442050169542082648109224219285606199462513750030884087174623525915554195999972464243233167833531548246038628224403563285236959043714334691040901704494740614625593392724498820713014352613547638989836249692886913284813181984057003707419345663262411209137297337989489842523766599677461819728165453440692399060682703699556137324545905236977074762663489264959526775619158591014918271030574314267673673577651866376082768526958266782286336243348987372147212167848047086454549961817322484904824213724475248265997314924332883875083551980501813103994414025893471250601782133386060036693472157343913008684496862493711237312258593269255533614636281347259508695401913215702695381181939613304186402232035807326522049222239218732323166331728433864790892174044064172714617352639297228708839457164229191795787867407833131538886678802146480383435701095063616949403083622728200074766581805918708703330937702261762365288452361360189698543067911106696579151845314075389276262283970418238492032287771977091938474878104326312445691093953859531981736101052296155643225219518989077988485857304462464225672137427973106128259649102183680403012326686992439279192258480846024774143409424213564004260428108217275186476818607565987068748807776653896035974533748398492391135875105755855906938851123794391958570090034844542741928368652265535724643286522106385024071223976550546448682409799852180005526445606019600633209952464459112931110288814725667393551989536492984277633953316768181920107459485265570053898022842004582039214203152469525838961185218563800070719858998103841869051649763415488845822682613998133185469362621329261782549696522025362743801885975392511343922600073493227992808742513337902848379926365624433611796696851320857098217086572772088542287749591265955552541014096674010745354306092263090277724482767873349934225190236411421699822717072735367567323450265680146237220101496570994394897463134043628169759027832336586695973186700410290747267690640085810864307375466425111713623527235882128421638583039280181590904244980421984430731784142812471196708975357937224367034131550864961165438884683816513626932377123827196614400015409305099353962534702034004176066732214426769793926815322729639922294766632277251986640197599180947219789121604424370070296212345700269256051092313017796722451010868283029965925591414464255173809584264347845407615012733997946424466551236371786233050368118004564105059403059241276897830154225799815752321763362099467820175987892050569548379947459958560998189963438595778264794367034255270312268327056280428145891610614147819311239694201195098907542627621970702843966245827018715609391105424329737286597585198957487549060895250270904559519325362817689229681033518161002651128815112443482578259415456883597408248816277078431471222725941740422663942452972540461578455130264748360403511260075430084867881542953449178664290934301104245249864198782333351717172240142462708374993028685015096427784118232689936843950434848622598214856923378423349482945685626704032538656662154574611654100830483129716494555047408699143363425028751730164755152898306499548996870159939501461592819095200760105275921205863898898233604578609560571480793863929070443973309372283994702895427435862123747535844714267510166265648336787519196338787289586033206882235042194472060460912472607046795805197688056169801751877572758102526585142631995353581750249401898001404444439606559544909775682009788462109376523181200127379821978381205969483915087382795016739317850725828214154567287723885315276398014613120425342764916343384150014134569092932672119833547370633195996208163764305510707730519143142617212993212233301323834155461748784047694162795950621259413843037152443113652019470965706209500670375685731209405919190489320385212143935415195906809380345515860362800413730424978412581095148245324056655891910393947863208110043464676416302339036231854205103124656120498881591738414200744035208734895152081514540458203649642399654711490454117061636514187005988626875366957856920993641203429568161719285228753038833666292668763289449595985725962768968738050186672182940375731491465351772214595838364870642905884458177106133835788617355099044722705198274666489590901363778434850352029366423461446792882913866608625515791768561260717784588966515734283427172965826597213756001806949579103497337870115060935766561462310518183233993063427421290853843474251585701826314893077122717808673033838549189673444979115996429722140556488140598013963057692292975579465854764858462149998553855261007121032793868473017922922690146382501069180463769698560546560923423779186569786827638819502491935014594397193498087648136287150074162578042782855136565835980576621642179386866992035093778766977380320047017995496848847645400103600883950114890689711772486862032779923845726524242973774741529391767042073349965390234370387552121066380219169598808301541047733802691699931008562355692653627559431283461526472409042011327595450825686975404685597323086561157781974199787638053442038250681534954270777551214775437372756166680115553066560226572225006260153639411586882222552591289025357182826100427935536384105390856236965579075770082517064230928289541260664201439289108507821549041506314519976038095540755291193082109417193023768420957577775467195561059992114459804791529867169020818253889175564885559541160030306645189736769672357747330549536340364471056925615764706761745103068341697167637981390704494401991921502922761898723757771100419073737150404329708288862343143440759933701658020696338104271349457666779335925037445204391071163424107433427759194768849242520547823108867403538768807863905038589839373341171821532652842359584714025270076315815568109937231795096186429472061802956064726471793334845114474165051069881667087442156387424033314962468512018754519616499112248184614745313534812234863102074689418337997116539468543617212483058827029789910117530394731038284804864908649387679432833097526042693224987309606139151385000329602458708273474277030194915989373816545162746436688896714927567232007908075224056847831600860521827722769892716495431374261737314127052097204754208555009178142159341974436574949939016679673227308610733670629074961893938172624954509618201441269719870622752350039131813493072711767088992103767085963816991588041552423501200443692369951709556591237750351257818995594167291558253418071230031066920304127649857743000653959882067995950535313662605885575307629561263670192214394290048865347356698329328543684179046874823725572467883399723643095622777678281399704212621044239441016158889744304680123902535795994025832274325575687357077625109506265566399821801752452909636167308804995499397947125119709619354289533375729291256846398335473521915082288192198228408720550143311115258492687694623869182604134182804852394648807722806160933649689116267733639484531843913398156526013374536333616677272362718792647843797679101817939735431503219576151229535980666608212131752779755516609002759000227395820971098048283150545805742256091379095803969918016131319532638132393040122947045956091224168230656236092535608006598747167259822975714536415333919340546990786139292151368787463125266964404722335875158887338400845224303698592857821178335784028989938815255079809537622084619278313642863417437768585520387857224715896235228477946570674449366671669125463320139466946722153045826755867430173270240678366384523058584258698789670080353574145035860824979152119529242083514521190943188044430419931736782086947129781688952551407989990652540866102127911615361061113772971336187129999115414081996866465799155448337566172123487671739382712794259347972623159541108840299270590888124934669952724731703716557024938102965394261975849858284188659897866694441319951924665951042639628586683181968517745253847128837794659536787274827439516668424508577742447673488199065875054057236471129017253909234423526477835168688909695066600073926676647388795522621192117999699215819522344702288872258301911859022013664398945474849705003041011538891656145238825004489376695364081126695194447089871527456618849398013803893013492574717480620342852575398140352349362228976831671024217183647958225995801591192952824645769636273400705172304139836800487173023895822107659993680456336892939618956789275541224627153343866752775016892166643416795971239708475814866012731407528341220410077692278980700066296665600939152172713699472808162029804895597680929109948293846563032451833328150930647585035443444185061877655482748944086705378737660907838788281951452821152321354494653994833525448366656147223029506954349116661508884150755577303189792503029065981505628143450429351925304967654248412690245229352158117454563943640748603889325150646883550664947535054424877648846353015536848007124447537353915646023409748397787730806770214478707059767642164636360463894053189335539949518637142395564602138567498765606611874667671881187827493716138570687692141870202445990746031448873493280371706615819184767253059843495361656582829448565140625440956150374676102920636943495542792747141319548139841120773527943612283914360489165471396625683330025795266712780434569790172723374768986475742458907321540807324038000674908684602502447889004293896517437523576110815983805879524245249177064442941345333892118451235882112496629897005494020486347662462284218576092492780385320747113263218583349170764388910377595619607859176452888003930631850362097068090250409394120322728276343476347548292328968003374472036472868608574031481459113428356510974876334424321332629877057645151788884769291495698185450582384809997477172243679953675613167774900968225939374531410450459116228995914698920214239932765554703873924263566882548888161197285079607307468375698306820629057491187050922385929656034862429046769403196669699465757584493257187759237797088863792310835428838143893958712930582719210959271297650584319375384441810347924227060882914075312103108258789811583728815178999222711807945208309802382422378434913711308987561850631541646132025390902123614247512315438073483779488869124477155831681211767221909109150179068663972954734765224810513729003205824291936873542386059195897797924303075407877918295112600322665515393976702745280636667699898869080475651095990935917467023141969803388377398100218880783933999564456332900959272509586727364828179695610620064701501374821503366197163130214355952019917855028507232520695186298423396216358367678371330703928068599466890681955249925535123597823314401960004860858583483758839393970302981514838734285368431736601825057272211439639942178546362125648058388799315652426743364754069721205748968526631242524299257077081048829023799121247327094120953731446226420873644884667913267041532714248060660477169160072174305455625236673617777879541549942807839867773762323939032115142200994739873568437162607726450738266909529669089162798144037592157876124127190632360402141114778893334619437236704816113747624738915567516639970331002167281833324150389288914615542246810745566658741393023040582704254819487806612461032422879191686683250790147220274105319701934540850644122720615490356187651877297580771972365490276231297249992501269016196189003850431293094812383177928804697964544065203734156554710423832126183498147781392412526367540258592076122938028554854449208143081761655300009124205065445854374465617524766237318708681810601098627013225133063631739873003109636770479816144159737660031369789072218509137528626085020207839633001311201526556495506212388490260515309111841063368224928400890030650843360812747585943171662040271681300643498298000452671892134994721612329326131745099959818870809753132348939681503455656553950033231405837593280992957916186677617559864076710372371404716687304926148514465850582862130737571481274348051078219759788442851004454518081378778402270151048135650608490148092565242945041607889452969185097126428189402145344566192638718537237064673261324507391206065179756762984100788083681776853569803041038175365908007691308124192149805489548216417262663332483281923823262965850280334315334645683749160418089581462163766546679316425037822399712350094501874865494670314447572744660173244842966771626177058205942512565090546421588434092957509499080969372026534326786386245037540064871436432351477791958817377841022366662117746448913046959759532925999932838959803615755158581707044905576826794804214457651886047602646972157425938966768300254566052910621900070228284720394574947929868164735589626734406093746919634725356540244140184182944986579297692438315563084083932262595401854386244348469930112163043725772229079936413047285164162516816644954273344954473890216807771350935522501147359760486931885005927869002832371383810619016445501228329099293501181781063978011666212687694870662804670892736404341965768918293883382288282083694944514072072487550977456384317209997437606034032981515964615074267213116883509918906765894264819463872772766929591816779858992978830800145835703982694123889505871716826964205071662822022459251378051699938084461825631332646779154446855660281138914306066855613983311949418645480734152581201186833138170411408108483986119043110649620182401790579200632697019639140145839556585535219167698788669872828223730886517847020318331684419411176562045270583449661394922255565673057590705181447123492159268861738244925219027555652083276907521607207617492061615259007454492520029789678979614325815702359129980152591230020117715076589232773896182582715466751884458957234496921355093138365370691959887069721713798835314289245754454452689317699907175489370311392427003545431410605977198907393630678735603559085867803360991288589302462699978895199149780669229548960562855045230497632398645372882180000799094365087868753194976856655234791788553448878285526446740196934930663520975048963162798343131377327724442863402375310007896586662835864656184126475671300502405667689043712062604821913060753414801343841463614239800243376893844890898400939512186453933562969220840260340894607078943077126468481277097247818474507543248191135992380774572971655694448430188116665399117907493552034327916168654897781687968432745559200543062558269779527714350836526872191500319551684910300894838136621824125574447926534897315467591358201460981783696523159387460656495048827984907119683509427805504624178430472589658805767786210307589718080263398127576939320902194056991442658131679560044253604016408401211363308759480538493147221892892020223150334158010075237228447226746734378526261195545345932221370900823180668776905447933118633687112242324381950768498285089687425131007561175403316655133959148430144497426927025276388673007698302653256183563426836341667700980507898134223734489885741380444972397528120805903029673482138362042388470181016961117779887692467647681868789233169806528600549913716177391133082126025454726631511608700818655727591251081167485466317137370900571988024188575181322185566928269885483681626745043869372153840040195947217516352322298012448679352768457524523305049117759872923066638369502330808232060987577469253950613027634264215836864844770814276912368210919547239558934015672565251054814893724329277092159096667490411455991638772207765344371459104448938353040954884099978992747217093732930812338154228527576283465081488859201527039444565728869885173739756161647285534373188470261305787889372457856487234073098206990411601323974711393373322237806901824611078840856850629180800118151410094310957639560821205861737876535099941830570619178434100513829847386223779254673690154915500299821181509720828575003250321748225747657784301156396674908891758149001555479930725257783775352582210652715413573342481126383756834572917283432073117291850652449452760290428475518139945964046675562739086800097663206409785955703379386806031013182706603556976067606316560353690003238294190190967745577569124814732944564040278846148067429623042673967707440834453463944951833353604924194042320694449430361964374338564331042289431019658839160558925948374903452429410381405005269014866229516792804013272519761510358174759209672978717420999205087847476236157946302215835153936472750473966902761659997280147221794547548927195178719977418463755101399266867022825117236560650324519126095511959818638650749968887200973773627625008373194754750594246031346170809912387543668460867848872378150835748610302797856244738516193070808191309561217038685186989757781792984635875635627818148071015721877376983993631017972010671553877708702381593341851072183701577514726649835095484854519909782692050223446399145598906962071245370472255947530370192064788867491214707574387013679817302059622062575851958283511523895032097254955339611467108821327558508910718356064713586576822705938718066424717022304977160778052570109886578327483572247569071632597656665674025675548600070785699692232580230845491502110054102629259320454262526012672601712675577919402149016612309694769023765237745521742277224769479042036530064194509388710949422406049327943597710006048381273870378842709923055688478584887881647493985047830972452038376528620494827196945702253101197381985226245008141727641132519956517682854026180836019034127374333305037196787151965152936915844677871289960609341244016531998107079431852709328894203280849732720197388098955556394814717277756524297289038565012692249488100283395543663011620947852472239636344186300463585600522740519135683095156052068369594976053883340245475715324715274660776401749312791702836859506424819243069495437201007655178537191467541494167787684251893079946118757289655363340784290042687946862884305438784260484906649840212611465338758859294043606807750929069724452313107710829201605505457046375604298385189352803251575835124025850565965888324347339271172973156694379736609562962918483648458980218298653152147528480379931417265163678730968933892096846847249452677454329264532229160407285819219047048308381090958320329989049495956713330112760506701492809034773108723450672562020914759322111979889735965226237216613780628336073438051817328420629646180888153992404675470613802686754586109547602346770726900904919071895980608684816825273635445782050219422500439201237606547331530043235336966350993235819911967488423883441320184992872066855996873299426826500731246016890072117509219558790878209000322470898057298322782278330871809262402984039708784009044747945355983863358451590669881417915679459559084054237239241641570229910069268340365564992065042956108429950190953143055679253960986518400194009640889263436482783107039913403387292541997817109455750967560810868753450629613113809862826346720343539372186871100856290104225623433448495182912936255494381686880375899364127170973385504712629590535412828292686014886639515474362886083881833196519728593409280606972499101106781274869955939076235119652289650263032703577907049906679188567739954246211060596912224672888584647746189235793016455924682218123562933807738576926464186570003411195722842173043131591468691581177722517501471228588078361642526709804914278886955309470906737252521228637322711526430809874138714026986983708250418545150090568350646447780736454411040184063945758038090602704981527325043452052147178165863707668070646718989191519802938019101678706953277072749898382595114129077320166919689176857772487247048700753643218566441292420748287036438034385529930930674813391978438799824244460838280652935057929548689938831194644238010257517753012462817269864144835310770214864308983798196713302536401121419944551137798996131674879483392501121076228088964933317537719140723551297718658182144076613713292304511296034963353819753087209688549915229181903264648335897183837603405666261177960529233802020361376355663840659546893686796718620923464996699615274226671774418134928469706398428950306530663032810966546190422223601784287800157552612046594607774843949216959106399900058874662442727190871765636949992328613262162150510964498977584681780633107591202531421281839301302800473475056213100048827278777769779084257280284185336814014141078688394472522617143586685936376817270811275027035562566257718945365485380118849774786409718136632372426070186190633806373869688064053322274189287212824641690935962624633642080987981679492587214631473853830194008644317632031084346730791813344441803075031600726057643958882911551472836104723576128642899567110319711918497622369128162287247157101282012744827217390595322882704543678022170322661501888975065674676226914188163352900369055041406676294035952411556092204448502802423858956284748291434817361100617471158037059163515128446812185289223059391155389862290838941423368377281464558720135416533538645449973210191838622136283452428205195491406314842483746198381828187171602794598656128613212937359384815335961707095118733099444468230330410615586664559294699156283453806581348311996974005342203246353736812415237510443417753461293911943542072796155588492829337852356435013925343486647187992643125546443115334774814666401933753300226672491368530123847858535945487678409202980617158765623218985554578629279342900872704618229221794171853844058987509372869857009483146047339756199637461813339660191428481349142696090216086865647978183088232434668462729520460098111224884044231688437016610255518511204318178603979187594078854442252992370403750891928862279082433343571971412086849297209001273537367548384259327456572283590120937001813880570039933869905295577128203733945965304740994607026905884785502580892611005696519621377787421681807588049909697557768572155404730980112889976261376253934436045619372418121026249289604757211552603105780756794742566972116275386014718641732636576677853938633285220931095094530512478639899303280139486932341684423159425868667382300291244039590627947651594580317114025213334447153255843822597121029027099678417613508438859890226235218604120046107548414541820015488245610093651985527849375459498376310084956446039846506228800787614392613338989313819828478498268036857541275108962733961840096921845677450256514909790683686922530310533732758948169533645274151700819091392487114438201359229143635463581022212544071671727964200463757160352785179754452186459088811983386552336242567037171068056750323302692474218392430946668094327765481083220045435905087825882890660442880487048751131273737039034492315402122831196674098394531382347399642334264045373314234360330234810336261812334739837126263130250833909277630655345756073404558518387892992415530753311692164034304751141157321991662066850216577918979377485292763751940111883477775174258450074763683880792870261587979804512494160231768876032569173785917670222137064424646444788457197956284750893232512951324682101174194409361976470717586192709463055186205702124754296346933191418684518490412746494674336946778067752261489057602454100568995909721712458549877452615641801903220189922627577699923880967139877711330816984532051845968391023240685140756103040802775694486880048744622939266760999031464281461726531709329005414532497554119151999638801649843825727714993461532754915087501948977842535659523894488439828627552795222357320670614750457689794695764484694903915560194814511396356129921610253131976452441448674835718122344206424080378009082055204373267475871880800756237757224089392528496612441881696413494191718963204459820304642732243644296812151687761799491608719917988355435431183818214283841510433584811055128045264641876553457089330114340143779247043412550979591338603497069348539022794508022414756758985476154417966315280195007712894548948604400747273315529826846614369747033658180859901946478071602388454147994830338402133451045152409235275113410599175829244676573709285103460286783798974709945444025949030229226119397975850400528334236823275563784837154036153148379609482507699223071789518808171596464460468246086512889843291451372564562921486976272872993566915229728936178421865597196339124741420613424532219035018632445175010364176588208483261949908392439054775785451757719224623100153164772712838378241418806987815159135707165499698599291428104290847141312477980079255985249072010055703584872216750381494546896860241891369178098614062470221056503969252966302622697682843365020431779647703543007206211254824623477611234427937986724705209600541732464430079700976858369320552497936134252968516520838479334542439091324025189699073371320522234905109556972906703696845821944640213845537859127829294876244088523875911078041722052588379192466126817898391388871087493561980214632347231694973934970161793985697631686048650255561123699110500429762988574804735890106247272993605183304127789086778568041032241871034243961690728020854949772683445009350073777080861869454539400714193079334019248692213048018204098697775062448216927702444542842122924928775186374070767358601095171041309476474266056331921762117141377913142446488094355224363924679120310451128193539716493299974338614820274154256919725065867302637005932006046972185847305249871308967053723514383501922744934707430304777597435411251827418264285230195063678892697984447273248505246615891496287439341666233127434656913391621915464304942489399810990294430212133423648014832269849160726081738456507550144515633117031904468482877398955766350961593793219248704857447300889146869078652660170660569170741529463894148184231074898689505226951786849033733220791229512487290584368288983256438070931922555092425818241746126509366203971333084136061335786673669365802284406216125762561058699355722996524528785613483370874856835169948315476632017292424476918229288507633551808641912443744161754640547707693427285018958024010802993531633673067117495281389478187807644429644761993256850210706347391011949098550172619822629657053093355146163442757980405506095556706071739572112245054962110899130478820441896815448159080662325259264443361418648739114347761590855209830096520260946732403767055310694568313862559910870905481291035775590875306431329382911969913931022681943001623242466887123570829005887937610624362261333941697375309587223781801459321722878029986480874738870364908706592386864959322959764025197952878623035498485580096522779427343779038508677790585894064873718075106131953051575243441090649554684326170499035441063778904993951291663977199597635136754316256977624409964754692853582044755084044169051419468794820762695794798343168524915031933610337640823841672706741917229305987033215510815472252005228464173772440986790219801970409774451431496555137962393241900396554019111269425163283130536951988058185232459971151120514488347370457898594388891181590869817165278984653566836268002546943216383977102432670390573091591478417290397657345152969594183408303710529677520323216059368956107612824516626028714743633957853332989570016393328120004629921976806523911906745367693757311423878017980768392642454439993668755696932396511491995809469531990181363853071848039336847262060191971213391533599878066939562939021157679930460509042666349401621466011973145314811566426938624800754238191483051776716408618672449754176458113186474872291609801560073378120214569688104826305986755415797049975832189767481944071409437887722280528384326953554523484475836206926161171656740388793675306628741055426628668985159752805133852845935243098113795061456983006740205452026125601717583597577242051905035138826864202326371270292322929928385208258340242156487297245412589702056711308627625750970922567452076989734090373190923327944595659244938195254632426809032599221758890028289762715331810614764587954711540780011065643102394465060457726972185966132292969174283924152606177116623378163917013428319219968992605966704813183136844090722549380113705013177799026168953115983698299413848999908261189131905251763118744984512266625569957105916948767368163049340512636784917764225051311655334013435389714291591328703924794140779691653211136684251944406664452805569770396580332894782275355251480889241051345719398051614468874029579634105848007155758226029444023437607718548641820623624220578967696677671745299104945477994768081916092570585548636651737980521720604995563947108245568796096176042421844623783592382605295097759381826098746125051731042153676817562523632907944805886679767998773602877194561945090877013003176138301323309022733563963235677087554375211585121423488223019306867426196976536905419275596637818662408977789449368607846848114939430391733217107394249873615756871929108626000532547305965725092910900040500132789764893879484237231247655154035286594748564113299675452102067554752162767052557739245614387862400790995867763808455882123801979823144652018039533282742847148283724118828736003739473123658377130484930214100352631804291570504999694889568974339183881459258424200988643606882346484901996769836137472899294759027086472811734539461957280935280429713145358237493749937691468222269829893021920995885877305926720987457597373116673925474687221152490513513615291702980189609711490838945957285533200627695414939092897345035586768867554046686631131465894263844294539454866235291822603915555940604536041416747330433099709451660389973909839665170675083608425369756494393033895414320003999559456853004030307686966001312274685668469974265183141632606776351889124645787972801154331479012847889362330852448966242419344992524788367247597448246634259654688541847832248643126026014964034140690529045788198609077356549854154277482672526008886483161380946653536551413798028067316744995039670370427629313162711747807959390460549938303058756355881986687355906895550566016374993831076279820194513688994219389998202021336269593383180161898630602263836438845856514028904710821683586989365311184952167775165644050111738859072864876558232780438969250348932255883618538420418037665396334314549009611358574355174057337599610308937209494738499369638551057435278173360944329168825100299763595999607969431785005153095956066471119139921009511310337504676267609574171375851226390265775636822988097862015673307829534290666353008225283137908004607565572966483585103758137845436533106718129506677611203235849291924344917803300859077025563557325822864747338980764131664928810314562950306662285485959447459503999471660688877521457083549387323741985659217710540494075201109370676446490411944620751870979056346051557356878466532819474386620307140923603680312859575404364010592502002427922015509396753799607716609256142115207233856064162091383786063990843120448030936486556745376346138838299452854677779982765556697648024096790326581939796084833842882794854046894886022391879924084699610899172917302667953871954569530686780558521191724300563087020555892986288449586412451494594015264263551624016874881149404451049146148587221515076738916934792204438182407788200689966943202784397482150543236103905781282623883984881556877315147085879298548663713213815543800806311722313040343523151646467575767143987405615382022409658164673617702051031848648286180458128793249257776914440172569345114558898001639727876557891932838057663749211087668163628295322566744475453953538732781735774280547620993893297099901913134255114767112235126966198130896235060144039412883259897257219931245845233047394500801328114898832004023784769854283121575395450311508031992290750328598663716696181069034400831889337547474022534100035162549271508442488672767174570184614092058918559238363110356316203612258918522671267768508703717327247606805203798342684145289170148036714350102288338753234330239423998317866246787722961846573063855099782955835759351859700347858213232915897487832608055026537515703762005873697028603885899464962502194664164870166400939275025018476065709887433733621361516755990491270280466399695569058006399900835422398402775164784674974614704800586887974056999595682724561750065128675819108106903742513903151375910540705947221637674611415217381700806039181798863661085866234756768353163804812036534752726000329510256097023203031774081408051938587800096319047013896302331062071247683642090656589064554597882088776818748636721043564511238390011302523255198621824318744639603431713258953164170229389770609175970840607223205022110234477376319636499238531861531502565305012530016286344250596673314396532648285131828169880637192066938408586967922025274341382098300118394477005237619975344790718577658316563448316562484004818361772252022039600841492086191168499540575005348365757856238939539356533890507714339287112165138368302567325761482065651068189331319588146201209456770643009134950641322729107734017916671510137558734154981667235292079909995604227140962162788004818618440100067285522487721727901078124327060173942740801433466794264311466887312059227026663407773519211758665893612464587488737823400010356914057448392466674831446557093690837744228757534749080358665687063830962337165664666762235769637123373230701421867704712537661275000968133796920082100302803497004987632574492806594732242965921499406501878429064011196725028174000210914853854174833901200039783595075545450066453942127596856403056174135829861291309396995354825314714447875199238360445115081071056052478552664880068164946418953341831986385766260687568553596176829796620214433907827980371178280902350452997280737818615307015993859196314414713649674340389776134456356289740848293409509290545423952874328034371741373042078087764048405160198305510209207436593153213853639359611676722867636879030261041154635623044731052265338382658300268518061851230345105846484706158018650625966644487560389919102355758143079760102971675248657564218322789231073250179225575355049073073951076079776126992327860413673269496638005309443781523169100573785974561718530166954431316759672138505635127598217811718130278775485316764469710819358494847303619465807859605203715283591497839911903442384069857934186444374566929638830527852912072852609170335818235401536278242440213700240996341537212327157886616478282834337216675243671736333087066551333919153619105217494295059371381481213549147360423981455174361879361117252720798637050197125364631123830996570097102907461814875059345913558921049156513421095552607267697780628620601862120632904451608668071279994046999662240231576902185154606911333286259584081657244263870679239385206865735251558168390666193700531491577883119309142559915270518260089101920543815223622354464880997890632403348193512699342265941648549152596382168683721151393009094884021129488373794086572603854019460353316995033780495001916907073379132681784139290634595046272244165438205599813563766183529414531221805806366686354245561058370531081242206279871332951985097960027687700565185132491887616412783275093384363897384149212727827084096192447792615445843181613050213529777304522120843514959189353240796351956205911388380874163372339735818819627270950119864630094634296085023477777720413373580322843801020727239129671360067054890300389387999309796974833347630240011709593259282830838868547120368807364604294765830204852254805090532154857641023738081201581197187903410338781824978666834327612606253336664338078485853204816183942027389214358414102841864304134476738981932768910359491503479183189923711695734912241489262626043046731284825045147403968641437345888292381467288557781581412421752280344385919551494712457298066773120152240272728327517370749550963549001256672756030482588609826733356154000887204520012800901826147472006404083835001432130214505464848411495202979018854968092593862402696945286720718748542233581613987992688213997002423512528152462797287382029754173835503333441923512738461794964032062094442031973690104400325944499820173099387620070092526095515178154436079669608518282756721329140603455445206762156469643187168703417960337059666835658180999447806985858532151277028309455456463120748198641759846200937176321751337960123791895910115254159409946582860962049400742061622941821514594338525681969773967409915168942391165691252609905190909421655044131261964715014353424580119771852339043073739057422784439991769332846855780148508390797589373906516145569283455949904804979238287326261397155220300975507369669828493742974580055296044283505115842156831350620342847220905995651785667962578353946554094220552980860215996353166215198474370906088178338410459103837351391068479244598925635249906960718184086430929442825187369100464003211305074508241563436059921874018366042004937239925319450135826990297515524537311891614302331691342455436131423959974709555715088485256347451105164566837864782971013553880554695448815727851965098413834908645013842641064825288811867281618256214871398765099505008813344462940801957841591090394193898490576870520211769108768408905453668446816757475239383969819121003693849027122348123863720068051043644529631934606263125286034891166401740429280430097215281810616792660092456885581297192758100942350350396660018421825512622801691665149487719654399512090452478894815469223043087472351573661198749538854198662458176070545012507999204847828077562636583503807144886806242770498348454057292108964142610565854177671215720309681183450861689589175027652376662796028367895445829562770918093623032259777397581410052881346514279572387349980378639461564048850465850045767340902651468856434665961741714895240689115529697754538870200432780162415311493937290601028932775429398599186385068604890403639053125777871381313818017911678230445996630333911653391039180123448028319441009080083738776009658049475031208152019391375602536358382293014677028727825466933072073562896095451409919244162356744383027877555576568407265348154446016067134217342481930145521471189151720054454492407665833226971276200557059663716290527010041041763146533761674858706763973726252570979929906290235735265466740657011448695129155935380798914411278695875112773875841291838168124326887261547733711436417397138181317879139915726219677521889955978967674577866816488490641690837360124283774752316299071842958114381048872939700093605732956554591978479674278768356572313313409001299039720327747973050255823220738919524140308149050333573488908481284549890851405234726866523187371313346316730076650330997411401092602745034243599085520162555761236032569585068573259108101896176151069015958705390538174465782119855672815257226692824506155837730892208690808618095382032001074401173598793416406464172206173040186018318846671255088538932630593533989053894686571819911235879878134679266614928612938011427502024359196348986369173551060611915448335734956268882847844972398161208963483501475216382007098792181954910713242581161225086298071348281627772314002152380293120987074522670171101588866868905958545532082989633646881869676392521252302778034197617217874324265379670884139226632109476210215006953586362172733437082397921439768897358332480285356395781257382112708885506122799015971014518349503126467106635358407638957139741394784671033843851634248443427232007573791623684458663738668132214069115123070421034095067766426401211178970461278248947395763466869662144409385506471756022768390544573451672709752105834472105765265116248763311503492221872172227417874829856815113273251855840751563428055413135499749223946024674631855233166185662599781789824061059729210658559459431299743027794169595153868147939933809946826525287173667881875006522325735704309181001812458977040930938614315960997925824459361456529176108846249540935361298116553526025134702885776526872012019779155307364003999125520432751791902130125281071340924078017393243207919803570842317606503807515250416910183083061099507240828121276987746159516975497205241959981523505604625335488471305482584972810560601731429341834777263493267338112114553074500522913551950467814969859297144665928511659097591027117887056119163655382155241754229985518956169060960242896879340736063426461123711405295329687944683283098995595813287735953308889192006157387617760885158633245140148883750621490050765919496808431594037407659527280518406942066865959499710491064139930031543463186843120237443880266936800160408135671608349575693000862823158526967143987492670264551802734793049900289657114634698637069919199996851369727767022706470583065683846884919496808074350660335037717819983919777459695502361604038679995869528003206341126840154312813881843912808745044276672838213030144081534470706968449779390190907278410888814943840643178267074698014930850389794302692512323484031971541374771138669081766778515754823782096048926667754145585540480397065223669614623382622239201576321926652129536304887976041806783867959707610272167479636902321100831447338774464894402234963960230453185068612257865376972201880948845925900965271367887833114017500714764113532261645353609852749821433830264543616687326829962168180768621831950678842017667598309455491294491765245253553373464447863018493349945728389968184203302818862177093948925742625433081157173224427779130769408452648467210092866193380271653806621197952496694830365441981084610137690398195994357961527565713351870191357693863195930858474857666397540693540063058625464855835061232459087248643592211752295237930183472578823290788099887813350506266237828005848036826885687709162318094858259306925659140212813080268347070853380612932902056863818615656826275612845852827762238832598303350516193835246284971149312151312841890331056855025366166594510938432401654443765763745074087941252547157048600584403385031144923146307097034365178587497735571726044057312423922164121373418274877486866869558595278405321671933989947147731964548652056521457255460807508874543682085832930421679384934463181527421008298538999547455840810115951810180797648662577043314851852932774510154187055439199370628967462042692684699438643951003555028637796810324186773110868582771484837649500670786968210012051329665671586453810866433222285530600572425422346715859766223985924693806956209601210812539246320923211956236242207945168482534163045789812780964654287421890896554942122596078523128497278444055435536333865347275449337574592097088419822734570983949634531729919113670017020371001698871402907935032475283856331238928410346422718625457682541938403772200186494665421582193345016278233947322721060510029085513395810063691764652006247746893963326614437643874977358394456335297432172419016943010887151088435315553291167519755424978243566614548937914741824473450041448631096552864403908962584759028569870280575663103261490267903942910813557482124318749306639999964487597143575342913459896646119513973499747545215883986484898458636354533079965475306674449500798786486011395119165643979663915191147698515949488719939041087610352234575052622730346682769508773007078225564190699326075442962751473209407164354471540717921601124832802180192182087776877919816572637770061462832668206433919465104857787253711529468914847879118301364415545783264814422348975104984420897043902816677795621344049843311195846163650485478615278935167234083532669387794366869938036095023582481675244082905098164097338240404639753796968201822857842683662776304603874204219322817972648222563292986033435089326292068593148255396826572917834073352199605480360359385216226791286636944164401002076296322186461942465376362266145515566737483578814074571614595782107618084681232912137035100009105225662018403893534678650809039783148832651865977537742907840605033735794045770633294525322854884307760561516815052903225385532870540973269539881820262103359862676650941273397997014380137873644634037398242768718069745901074882581840202306755722717022544665238955002977301169089927001317337315608429876243868540766465322199353064999085420162633001122864356381809413265934709607815319121470514573513362642852867929983042174051241502483336195919441595774735412490868295477434690080762821540677333041652892410574917162320797980606606131633403837394936295364515113790341577965167427245835803291620094521403109585366937518813394320419168264523658038162666298234583067267704446765109193289506195822225806575005883781417093305596470048273989194024722354231616220854803148139832851927739904013644112180047474354634258758479357591771237217949173999568952249986629721154318808564476904188336934780063365180786730267640182399246551162079777724456798507492965796909757929005762314491254049945182290737651457272312314313740136570791196766909043384785672519115935117172638463734034575908360168038443080747283051969438980559699920221932374768115605247242535699995764180792623062466619215414073485674098439137480475426623114004591809977735341418423696443926273751365348442467942870044876405850824853326289226384207121786675791903051424939065218469925871575908481958994732736787404220095703509830983091896208233711815945349913750201136658705061871429579383793330849544977895647254187088358589976787919786104520595181917606836692751688607444781158812157297157503530966793669422066818229356707200160631229025202726228022562524402285254293481626554572469188395940271061488637682536243426381717177303912410516467306845957612496623741793754119705940120486019963458015354017011107620944419207207167461035988057659440215792766617139031866706741362301993868506715060775548117585631101189080412906939383162522652791414682609861008613073044786666507951730139978317504308760164033353132203609294151213063349062891261913306228161913108064057464176212933227497211265461812496097125517368491248938610332308234467556683082805835865539346706207454233741124443477595567421659788875397661069876007967453517432762769509618973212294991641585178166280408180531560152953594632258351730707707394192446231308314696744067469061060012239273799034564515782657934506213803520716011125153313496979631864973755647563479191921383889417820353328031735275849700243049466348242873599195942762375187022908229453616720214117650723808173112451972659438348703168904881703336010577944162944680088571508721101594332685928743097633974503509504900494249862903817324963456776272592250100437918854900131077511751901664950886066344094067515633592828975440059867258894148760505510804292151953405686003145693580421870294271000219736679516571313045194309918291506269879210796514122228514939701153477380051655364408798208862923707415768528751888757127785342874734016738805162576163394374084348004802693555655351407908338444867923932532784934827556601420823600214102880417939138651231314248223619837974808831923279179119164478731294669241899345317769755783415720913421053710583312995816200368038125480926824299654059086020673905306218225557399826028559518816588545806061001710015727853574021164995958980481336315668649204865358608763004388315399352317276342720338858096885638236340247957558732599604618998691705951028007513091353269267555859864854398783074727977311715786744713982892338749218520987727110535574349751598691229956655341863154629136144993193005626164754667307960545827256570190080780203239021793578074128630138845171839077714059523067258391548145424863041044390064103315560822485670028442867771257609070966107382928443106642755082777581778949920397784446264377596106094267710004007965759032138397131704773215023125303700707016597757042035779111574763972465125308574021458431766476084023974644653558249053306260772171230527033800035568072886811306367809800576304901183674234024438833173921255005786102701900678862158016885083521665852453782189505888998543120079197408459124497338995131759098160378329792794123412931957885791991278857017173625135795875802038237321421988130808957482411766352950108420154759143172280131258159158158662119217291449510117646935661197429672332790857180032162219319017817105394573860150401034362125332678324877060259962675531323778413934563278503511367985939217192772454152438334782708175969325491630784861724837618501977091721167778426768367774816506397185952414013888471672041109831944238469062377140533552568979520308562088021549109965715937731163374952962339541624856787187715508484088245293147403363917762782123722123598358768160419858990250887033924560714569238675478855080132183625004386590320809724040731965087137432059329028874502748035383688710755862202610482050783758932650153422245906407794614857773921776827234949673444117918536106105953864930350593196774563411743680489407852145631654944177296576867577595858742848857627299859415894637323050732233077396245891101656231302403553237872369680317435232826102598191604460872002662761789154816723746907227706135396046639224524783335197328382857581890284340578857906874307242151318973723233088730124700986267729936893655413105044930961204293467044778980480667395144555886869836626842003835575813234048954572127854932311463418475259083992884576127438836572353650869405892056949337398376822034687978532649343385892470535912880770459255411568173278325949780038873534762290786369596271527454485719127772887380854870059161358252322896071198129929871849638184757285403035017258569170875515613663066723480455835868731591301642672462863315983686347637680690498203208363017610161178707017241676242797967697339577365609817220643334471817709121770986150650235607586229786241909797360140848905224629018267798926581732944160000473590402093341150340132481482863842907805986603637125011307758183333036436070402764243095710612393975338781355715013635599617451777340533635771183645963231752637247805141404431581430575594535716979363355807668896988244968128364483306854468128525867574745593474350547714053525243379097996837785952885219582116629099812788899613184908677556724801674429977017962999666155593543674257533314830437481280962970204343429845110845221164475466229487714838471240821767591330059174283667548200617128022602321192150670524343338245922167436206975931104074456101325785648143408452376875577171977282614446734590434853588734796575449801960696899065513990018941277522484881365548535868059930675883581984525594981540714892589428671699496022259173544533001253592703486343722756444320794651227571639622092229340869287535036924382537684248591721233041191700966597969506711730958571167140392998856567613822609635837373231216630471403220082483437260323471739057740809571193415405077091819354901703362603921786845750378828623688547517763892051789524988849524799719314306114105474945980847266427445888981677333926995286579134540799402976189128734010447637729350365887215658506537728346056162026983395371562510067715648486082923071939251834557965983194869923779042260849915439219989509549890315727879239503569818637567176715363863549666446758313653288191659849525922787359020461664771122699014108054424383797363808258572833460114081347252365901000900844081583363592564036617968164606949876073114982797322244012276600435522240176337575275946297604822491784256514745016687441225667079966436669757446235055004915868485044354798745011670270575483583266983881584677108516799145640121247717972717729117344588793909607623888891171817291685279852822180555940293573746793785162942056625605707699995954365346558149238076377202329245401987085786813547394199366466333503678143003189386391175589931921932627861733779061881443583795969095225384586970655009425580427447030975889662108726223696636613981351729483412806737949479455158776529925305621235381659755207107557341120165298257617792066038122368580325903115947968686206986093269108347988400050424458267310040122372467268313662903886432060335386520510751729132603475624623618567528372080155986949464360277499302842083676058704783168555962283868320874926833053689309917486226738386695870171085566364968681810465064030072224661528067684129128808719234556039459863308217705376560787301523735187389407136455731378405668222484301275026726243498016130874047150398787739095557798470467590274246822574859090774320694886412672272471533068907322147900169003270651552789826416070626177060248060238738490511290299413130778786841851022923362849736216134310719995311056650830174803706110317845761460465363979007222185199350069919001454528074832335489106311600430152986747637020133853435708191500857563821162750221682409149726971351429210397470014435466643401516514634701876790351464909912381796811972198653463702709933307712891191061561180496109361287929020686902837454150170481015855160042589954458393562232800695494540251164681713096922413887119608410446666823146207513399514395222026459883807558804683030687460069080302773397894092034582622039042085691360190313155179136073850378123174934340485012491504609105338565652631209690813730023372412918416921459625232617243538239858173354009240514267562440696869269534169622129867650804514783035782255726664561261322378933895017748188336880924742645828851313142005045816911229480020699999629910459304983940094813465905003043679541621589651096341026025265448907476504112702536647276734566437495899602637731515271802449431176778963983322704000322689201860286270303035325714484203726701057290091799662682858167463942253561831653052724843721774180372828351489203042826015702718454529321891163075280561592277981363081622054295151089652213425599814499728671577655623185228006878634677117874938605994530420706023955154413651736726344877756156791868761660237003934283526240294255803450610706643053531581088183850191197949403260926064674031364311254897883014626146027945021002087882292961569099865733510968286273741057721763201942347962685042817212584756086296077356633203451372793117345274570152508276855431508271447127266445102895742997290478226053037946124963185239068021670293070169210228038622055886745997763040642886809856860822121398587713883336947696303668790088674559859236269396906849079744590779415570166635330855620163610533701569925779112570788793401110314048472247258608350484510207617883317621473332316416776706129688237806559774559631234558209861127947822151658432332471759361382707630098539826828252198853149757131414200993371582525825974740182622272601823079225846695671630694352131254359742992739078658232955069610580863069891715679018957651735316035909088592809276687660591476777371634025463880362043006346694857711579877765128281926265844772148356146346248040069797377720020926690116154999731724100977859233856051142566846766680758784374984288527292605931626740055252019386446100995282177586452398377972445501055208493607947601433985467200676474085208742464601348522629236040762184202254940555594038907810618760359337712042459176010595176210621881279410565082784114920059188066462213093941764188206322921950963067844697485802903968478679322722026325831414176490449345597372684170011236951103651564635229574840741109902775641980851587508787593534490786288708883804077938311539790848078941330278851271836039944938139707388491037781480686053383123511123480331430817644258051893249101752375187561572570401961028064584751042929502564413585788636424490305484772179173379874748845342651856529449520645997282475601233171920940193268799566863812091402850225878400416868267270930717078662055578061368356563842074211551393031115080299411874256757148953152031777058770199657381321790017915106252124675324468574438261038967100150394730131884901964415634722338793331513023190336070057370902226986590441683657384156489528738814947351259454994886227244823333214857637957375811553340775349188025600613168633171954136651693563713388329297194629692152419280524374734517218396372563136316383184502580244144898720636304692983945040535988779150602082403218764089351648314795317184246519707567807364637666017804848627009194947906012723392689301618427645388581534654687623221125730748350352550537909861719545239250414661612831996401430666741721569359195707858520246261605236066659431100202680575322653988996486486945976614037423144023748731763257737645658944709573372314978725625909373102938383477310231647206930793254705011766105756727875825729694330141491885323557776701816946908629070557977706119124865184941000709745401292351568652491891361737193134613340597349934333198745817637241601139435249008109941314414232507200137524728916147678123448832169606125895456242393659747034333841134532385740405981587919211806917811121002276599564916481884267134677724556594467179708544872002228580995337529002288698299889492626299764938183943162160357901802047127540017062406059934349570114456139263230712648285023993637899080513251171363302009902734860390105769176528074781051194172163146626005936019093753280126291021400059064792518559988439987883523503466022768111277730717838037836566038145300160139445727173341501046743857227482175931652322510981052139853479831858450995049248365762985474458121839959056411135509371787393156805362136457838998510434591682581106603451121474013328656002027862757458397299418534506441439763769283298619264898320476930222937283822209397455337340279077172965027440101475790617211323689962240558610376976135284814361379996173340475167637045494220687953875438235172234719751002676726378686050040558941980927849915867779258407204754980656297238553708743576370077819088161836537157519861440372768243911601458345502386895976956595173097448732523809544834778071577893715915921521800298657471249667503331214029064893498801130277549534391113812010953245553487176318232744854224706556100201782130376581216913519548661064376999860298525066419623003781050709727167224866698329851144567821396935869639318244598999598839550108865733739876824434494984305050248273904236936411278604319117668811488902148715703930718644171028526017856640423910796778221087403468753874901494336877877648871479267379589390992862032568104825348649966845861225623105112450106132636559564940826401692575620615149819676831827998662148819893463115743275449364827565784569816577748686436983239792563135406387428796173008565150553950924102431869215344782640675529522758353265692121887197333773747723450347786634192522405532524080462341947516543621231653449776137605003953279471150213484360654359031108437118043468086444385991970493955827928868105730167116648395729988833400431284087037677572795703018513394571878637567631470208947462540166462305146321113786015212424792539075218871274345438989320193293653993135082023850080006749922412184072653084392747373866590176091454521307915522108445556495529090548708477521574646759422703907420928962996259585112799825332206949914527134537371610523450823206359539700334243224056070059056445071179583077344839988029064185566387445590188792012768977979156896829886805889697634789573747857523356433929437848626654639739638711878300351856820154418898511836709645400421253831941579636457466368667838724071382474998810314718811724750323904464899412672516033575313352245260822799840731448293910499818449394632488214300867369257676061756794175238160445656204208360408110948535717022800992919998409502005731817418240897421435435976214094935090692264882545106289036662639796725058167010257883074849109215219832757462645821964820469183408217034542227674775012781859360258137926664564571878799084319391515943329489098786239511551121874556263797793767021792672293314136341001460451871066461019830960707955699667554583016696115713083792238843256842131051454085230120250908162155933174386614737534062935828798501513320306062463036161975605523950202411990156205656421464694547639432943973791535115393353884283075520688422574935679241438680113158253511170179216942373684823202826887081350491733323191765306478675012868170736497861131714865986358711295644999092837974453289432908753705365995433636800826587027403136985817070970607687834645352939307164871512167587180349497356221180591956634575575806873833485719393449542257985949706532727117412154758857181305233028215081365622186673991293098501490060155740760107977837880746060038296123017590439312492884285408190259655757932285285928200786976394540087266560540390359195712429939431586265232146206460308125072546489716938193579054468884121495926159732499441088798807825756493906761217755951776820021767844257428553608250727508898367326121950549598181392935377297833279261146073294087463519285979401874176607015450456642602310911655419077028897605032598262641854419987456102478485417907249118537878243129862778645835049871675075416051202290404726443534548656158545367705466261712978870796243842375000628878068945224893049372315034753173982914450219439031390878946094623589594147505271568533002697506008774095894364073391666029415983668518916520743590811509439953456607916087050868695515202393364409288187482032258938925932427610953517541715473485490423234473712106568421244264203040600679469695283458184063142956181556341306751474453203406855386971606823756024034075501587772395059519542081483202484789648349176089884908286378686005904952607614630709048489738628673428963116285517720690518986752833894244342700321868347424481902491350083977049410886315743534873932012304796252576665331360139100136715697254742368916435810139953530261475908306525093113336762753308256067822270774283905983526551600271706313002141621880631210058994976600966980517918765128674656317275314612853710021762249321668156221179467431527710556199781002091424947497801538757518053872694525440643454070452967926458344937252464991236476343539737886986155039640092992398604479791635110753839766229027992436710135477337274688732307952643383180931051465644853636064269960289447699564376924167238909116414261836014608747449262982071438635564264520397800725387941790338102965138619423810295687294876653239695618106574496163436082884711011579240685026946904623028325007642267799415723327552219750541266446383189857105377904857265402155496140872429799172222390382385330839885012458985992329453269070763131901175676925396729211647301514650958011541538200754415396745827036370203948381638372409686378031747733506951293615626139857955764349370417176781435085995207648000596931580484996213064192214879766160381925944473857696002202395555336240558692820504747588120687644719038619843484546249148876077008453716956419414913027647486868761069905557470564071789443271828867790380105962669601373333680619659837933254964997919017714453328481103153161142662308351378647627099358025828350541848654663232637304977214712842222991017413847889994710860103242425487685858602618577520233168626722672173866631188556085319769517109192376715380053963023157326946176679874781416996022082489636383753512746654140077762386143526829130710294362296683954655797732345080522268115086550850864830346719325861140870527443327989311487863354081993799610626408255215188728882564064447817501343686651241377802944539095119778923903991000023212697951390690243035937925622476136754584065869918450428183726510359268392953952786080248016511858862488734697387435731979630264877805369914451610264830405788931412714812146146318164767037577525041099434983125499664700122453742726954690489395191135172970628036565670851886973056653874948636468999889331901948216840304223817256955226371981832693494110279812395863616177239236962019261302671201547224509189032584818669319863352720286658462574011351614897863649177619001003201203898040261054615679624800791153198481778054496663529880649237843398125529209814220819062496716200934243345897477123823647276257905506443615679539590066201129244452508854599374873980708939703128909359584107670199207707632538412625780655976217665834471016253642568457509513356164997250693232106819519732423506980126104445231586915142542004827630359731287583708289204141532861903046048280789765584238758878126374284060765336263975762616462498186221671879869867706081695412914805488669256711406235246739834599317804101253195994739754134303685735923095567141101158685554018959861996346083090523998488820880412690507479775410591320300527470280103669668793574849017515027871090034178924194228327166610762327690511800947697212408092150317598892238415615546839927031451820094656790698225071445019697704456457785103880347972431404368939142201811190690894586974894902190169861593933952512951202079216946542994568783830018434626826104530593347469114324224003785316581898882280000179501540807563882218839750651180073684057746757733694023492458343595515739142975116773052519947865366867914618880999947187790743302679195249474557162598302960644884718611767805819604848272921636188692183812750242999750991784229722730329308292161259460219969516764693026632029343592808730751822529448043672919408815048934998264495914550319873655499084998980288526671500953198158738942416315514422109914933382200511870104569377616284916825157392692513178236819521757022636239371945094042643227125293946187794532473630282567575889698177320570747374548799977748799581973620920694506232488557097001317189580213917777267873427571153059717753094830153470540937061881851232663375564528265511080008567445323889378707899066717378270889768495270343643512760106789471430304595679964612264498488056296917772686901445303129462976723012205331275540468671534132238320949624707252325387913919483709346298169534015512739997246514940358145305246384808052721576917686375255260963474035140419657979327916161068876977159134574074511121675732919529779209661694600980162408456754098974692455625033130267851006017066240783428031919428275884867813914404320626330521377088092428774076379671141578796925551721354187468231090612136851775918733399584320568953268669673721911794977782316711187420097413649633860218473693976744437966355145852398684916215149298602582299785408117230988224472651610758688179577815918423465077331899602269685497593875077444328328374918151076846006947506980302499424366935396202141583665578872292333835463810569721305052168158722645389400796675583130224523049641146469244399187146947449049331033049480525852140910155129122853719656159599132110444458553481662147374474448566583410417981237092732476053553399465954823740001822689645971519744856482346039626014859492047756930744295740223583880337252531817536511539864242145904508765607627181807939088329304545185685689201378808962872197110878784406075627790394324514044053566348311294504982985138576658958014521031281738828275555113969591746874526319432182982193823674322349563111522653977911525370524351894584235258223553838583815929333111465349374594064401021157612626415187357758436294246409483462574576122967064028458975473752395970354959506148159774282651216500021892186638747915635417062393747504653928054830670268886174321934707256135720148903508306264685631720989894498919487234925206738797305066596389244065034599889756499314279578472603772401403589364226607935851267265912735280610113232258011627075708079378936825434518871682790316407633344662073679371908970925203241033565432188641040140888069963692773489065421814866572242933432509904958073708497234370087281719154208154808320089921111565758457344309658116059464232111741799922606428183172384742588788478057598101250507164362210375238262698237007372197586128361386970302004118354107696389118482224289671739715488819804503607480732846890085654192907482384593028294032109449901733050332078581667050075885597625945167347033540671936515019426903474592879644209853622109775350314276286443388922580230748000981846081605571963337533807908418685556102815488142158437461590802326417157264372911536363635117390237434902114232447310426648218748717203526441234101728242945198619521706453262507714935978407377375728844063177084579737327716161050247509450743640308076896458126325590465059208134990165050634712412087548540947274430795159833265051272859412848866181356627956604211838444990961071459257329590874501198744373740552061275328041313514038172531036005659927509079477787059125377776528600597454370405993886398344907787975886440574905001792080964452664166474341422410692989239377193366545494114127393385845684570480974303655539402649245551594684528601628478946903914445783676932721303439037980671513727327039364604674212481700257441626639769014824898176687655126073252091849246383988487854472786149377039068277153200739154969748434414170667091418533588433176648116568732203804020370985028744298078541686639273970023814350924225132825834722466269415369903419737027119083981308169017903218135504899689800210023885144845661012988035846786114723135088846384359836027123042659952573066706270624882035962143883019875471600068849810790773368324991588182992301010059977441083137497456519680830141271107730107451895327032196283429785243338154092132789390555264278489437554585155082210369905174916441186993203858515795973739921588514836047267885039947128709332626506000945702878394151578793916264342552343794119224062099924539671636014494079968730952467597509958558918355017199334524835270043165975540393707195693503016059442802406233915349312127109118578888753669648567393765413505350227561832009828530617007869433894306197492731430676486699684328403795676932799632921986715530890164782231212317054974081070306049081947269862601201458453938057031916332853563173661278086393641147160220159565435255118013284855000307493116221238429163141284777742069788863861025551732078037225636127297380542100562942710417592804798593133362213300663952621997658016627182619594381857133231153777768185679919903732131651351275962553983143470634714607106589936613857238250513937618576219909557420228680084282593537147018456356334208551691980418515239604405175300285348587250556016609742322462395196377769857238093098534540877658744736705742962206225147803091672848282613387174126550017017928758023151304504328011181943468913276522133385299636537883192449636085243007522441886400429496536701201025870869417635971685654636627072114348827406869701828129396192150497489171030167205678408379999153124705774784717135386037372783251009300355250147929114448653743028115327693025584377509363578021926689435442660678234176346564084585134435884953234994368685137491401187273996250781603872396125183752708597243213182417620977160362760621942912418071169101138575146137982393976788457686529045470307715600979909441203002714986971627641119907317145648588166645325723633337799583830873946085627187084225575554225672685320590539295354197282489026896837476744788748337931609593652048806718781060274599384040960313793183246040545377454304055674499501725176854844830323271421448466803381923786611399292184657959508014007958682634577948259947735798010081674566513772516125849227363493073939726069557441983332724630154990777201324469178972785536737867053100589656300469251479653638108551770432610109801525069012204314320979415249350461687658998568985172452036143058648731906587085762204123791217611897666283864468574216017424638920314973449306399744388099894473853210118207531102760701444926330968262162932988850325272904050107653126851406729046357411766232405173451047449091107288260301768904909310168428855045467438821314361110503394038832291891581153115084318680908085313817881618091707297901510496482496728692761461372475805422175895381325614213996921427505336736764618901699983578049156256156072931169737803797428230520550200905235175237880068745438248288714867071478087275493387775445972247563456767606256831710973505890373243133276685510091221473626126353586975220730911437164082220728642919345903165544134088502213278934185524531026502942802357124195103958253904737607201017022322028639435942935791810363181835466446131420112573013990485413688835322175620615374383670665325429160727130183671726821007716380904746407728761197570987785727026906970384838580933129012996862451352133682269331370931106626086116150217137622102751133506678913085215966261888113371329695471555200902031505009217465810288103707327855825909113309407473218028912495128795320975407365406182177577954185639377557968495215194159023733645346089719727125344284015414972159513028592585482699781916502138462875306520157078248617214384015020084682930202075501830251717933815701155352160298502869008401285312036444691069140325234563994890153201218749473427785204631072213067041928136032190185939283069637407007740104067555111180503780572556725062352064854345261476975281024350252638683849113378411046761369012225355077527536340407654779904627288552217687154546426500501557272355840403246668898831926523909556340642069383871569529636267976433994214486874888798806731628171043324957047765449048298329819865168275124905350406937726231011381048150626535371448278298795964418255621033239158249181457906854241449365535992952706241513210269734179972026604958645717674982347235254721220280548009399440132433453018376273152398800140591519432864953403109951613669862754712666301767053932595181946232470766140853703379269395633092141417598585671220962508026346740631452020297054650017427481036787001809270994500732420051331241462717471859392032505408705778009874869421532565514164723609421842005368616222479640332685449237304108712795631544248211794378081689087929708584577819531745296772240117677166986827511693337157822622033138051982443019203263049301482614592986364204283359574247782797239014372423636991480005240550592585240504352711100069598820050034368940290242593704316792388056027671854169911909476661746501667319221446981803104068429277108921677986277310688005847460442684308392678557581434042101073854412760243169676148421934886628485971965597523771898878547777669278588689585816194613491101110093355733196005737621819593576502713248564840439408753812388711552878465178062612313917125435611798284591462459032796494391516265928753341133726591657249777785376514242343464942686460414317761256605534097539603385110268550937862364658980244869876950444686945842586947131312021144003149284796176780372241687761090081724242854068553479805215930956891830359944717046287447329335308887764156912757120623432146142456478826724859266402189451946584055193237126697206860592012106010204864517030724953449603643632650822429426257156254467796281433182527161780097784874978452380011660555581623322004688974400213534311982260219144502158575808911055440505282949220793837475669503636055193484052674984965481440885348859772869538601306362460171115140913407467891191243319144443146359580835825683172286806726461640376640809207196479630419200511096294568742641563056211257756176684989302419806613914565163183534321282825552427185477995521637827087693924715899373270465928950858869821590275132645937001975480109956022594379228832290089305395325866468969925243356472290484686193060444417883970098923456053561782923508753349240022513558101583114803184102959171423379947118803760415012207998074114562485164801616383871648529795692101044204925138479023913305541837220026609716196193499605786295717929962252980945465414204024413481186367701108190928371636119653373797672319660016300829226256674126104445405248987105559820242781777260681318277984308497457601253337603974394284206969860468791616564662854922555444467033829481571107695343761484887474169455122762673679582254239911935837719148049109476666151811094455731803312434551321523215445712731451394525978624555422264098212634829167974580787091667931583910046077090694078012087698261708194623963217135548155207916956475205058211010988345674069746453663120917258923110066676472093501941792523154378250449777199358939402229465993013691782373897831956123565071053502670576512014533283287093375202203505926269084166587120614200181249910963124161553530268270337471692390684853959222698802484745116422939743338162719820476675929125449838452419683803698422014452073030019130962758783972651782086721785455110785784724543043980303043703216996755781324728397269630242188708255862585975655108111943946611719028870980896074166774274446141775368127249076002519199072842917778050783863195334099607874109714346242855833077151337428189830143005163660599486791034951790967306574504351471485578180822968030023770464303874838480106065212984278329684902264890507969481965471661643815246821333041899524839228983408019361560821535110837307002086726513931674591962355868074293143223635693723733406996465601158705854897499131766736265811710955718750228020033992867875696588165197696799014806002624039351867604674306088863561785564886617205111905047157909939965457806337651869295297662903343550195341293614928656222296955173092243649210910103308894524018544263900065664588640394603915326168812692495671810912533847579384766540339369558028554462491081314047838167365504851078712976307045382501300922488940078612207162354028944104310154621714114886433515347392713572611620430469799585777304117823042613041499498779003834304271227165649725566177597146257492055134607012679277321401502315748660708254632810035971226481311928323776294792210009340889038310050933954356805309479455630896289925012900444104803071853187044143143262739721482729218709519113481215688112249896318838684309248491878862125692022078320897334234260742386898019782493668829687996076053732426467786326859053728387581734860186775327034951060689136777965485116992854987101756396598984273580698431397319648008518362850176826018803749039540203250688187567498548111201621298874603747750113221167554121321760084536659545896101108890842509260695718296406665887913476017663258161250806409158981356231331080078261458540582969371307196497268874178390750577592504231217989192588313424084757090557689262630901340530577732401114764006193679150251471416688171900131613453826647264749569374481792974147470245129782113013691846949614160503797234789280902332410184082736226090214169841715281573341965886111931291883018869709277952570514360884763602248391516217424522893837203531868629464340259511089218463539488820334235841435733720737393356254239458453674344836269202242866580109302984545224770247734141905402328875962838822214966254872471541625368096859915740715757522978310679631773781720693381373815830087163079737013182887616452909865377053545043914745063414085619531753899120869172757715230215159261108290646591041859230721650702621978139300408478628607146240346380658541477270173563868224768521160399164084714233204232095999561023360918234202301207601356618275110484687563926017530964741112253910730836786098920529442476621297204658186018425280139979724788316378025001218777270004906823708877731741815496406612741447241287399275416144256530912214212162042690953922032807991302538977778830156039620719797261393432728038380262889305700589733325949293042606333584989435252071059319626708628968694631892662342077035750452644628086109084354233672269409939445045226487930061595620617512888125314416091138226879424305714366376356977272595952734351214296654508554148207601276478029543852765262509982110477638532840410891305118156030718695943232982980271969417932963155388526547502250216868919157873995801022271115504517120162231722915317503473609082370588148247536725268702722079751630186251455388268059403765994459040646194911593843423894860177522165924555666060145866744501422698326848482666120601623073874581605262338519540533337930396644198553159577373076108581116455468044079407293393753894500778456103329060796394455978172952874996344354078878086690480828353697907177349653104136640335331036020792887040555678022657872678599835514167034374283042848966409728365094197359334051243252127266423550961060452730533667793422119433841491180170835736186046442874139642980580778076893951868751515557776737740295689521447190795695825819889763150418927785429478719113387452710800256535294595496848955002624473403116143083353598142070275190904662983380476392833719066436293780788321903905894607326466293001762701946557222851142482430777321187044688707192830069117162091881765055360347842376024149948247853215642266279204190752821416180501760871284087280028046793264950652191279407913866313679253893693136821217930480156849449997270240602098556565544295833478020685617211462753158939094190785747979413723446844405384461262635202096601065213533583998916427152185423364701685810329982450318368830667892769801349679272849349459067815302744947236243647544665768550975029107014907834432984629151281969776216662620699110615444939995144736033905916962186822817558747447159861992103865916042069351294514592970291367788234718666056719738840959632513397586261489486360552146209430079947459819748673488489129995660486372103930803264230770582350817398946222828396365808766287788653703359293257773038788014017135262066385841001337718739687714317211156757262998991484658312786676278531446460910167404077693492416852758032708087431484788906413794717141720297234001804593200094655208650246095697226238773998244195514993917831606203202494801497664705136515326857862900277136730400161698827383640065633534368413721655646179821925301192968718262505673877683060295712168987406682488316160932743119842709016295726213713351597692491167709556743682336325435164191658379788349942276429311737834576453051816019822065952867797091728896034443727675143419083680777454140511253539578388710357515127240759777181250192604907600170602305020731076764047009391696019645171483768140211749950997283760648724692267010233999954418701616547782423484618477742687219179792456032947696842804465287838840036540491061369614384242691754173598028813104029486077535805750158191545081994299637677983381680603777415660373505524140725113390008279219668282346878870209434083334490176398473808375791207373160209313808890424121373910033790904342919850208979588888143937983863308863884322161262151636754737773766668886490636429991894899214615380288051697201777792742599636982438899945181620172693932818650134681589818642653398434175522204220697066825994989986220274680589925386780907964729884683591177200140207842635796766101999873036069543484963715166809424412660093803524334718886727072837165959567719909822158038764732877435981598160356135318121446576498928203135179633439676448842975591142348464265865468764292395131631299882132825501092142441084903220143454542051735253454226266708250588034898742290728581265157173318043886425055160423808235665653090208677463327496113262468227158650272864787242528259172418040338214367797998268017273091851364396524556535961961218803719482006949871265239874473163167055521098479075623048235981012202690712861999050614921692979142596932198512412131999188701505182450062941964369155778837014228436136265601730267054707455584207416858645902180504734867492343442954089879828183859617373679423016502362720496038496939555599955779080679792183530648949658076094779952684278989393170598991169115905980433877338486554017165855357383347480814904799952553040711064085765881852067388206600510610471550593584018368100026064975419275250262229087994636876529882684712203856051654868504321488124774998013694033080927165879351269768912097764297189979383148229009689577237502240198425839900603777056026190804720686380645804359484448745047732600857320528851535496102689402242394632087948288521829864162864110571221915284614704653022775164543137610373440867568688107486327459616443791343679652035302068241732204217279942120231036064000011850887385507763167914681250527278397664297105575607620890400374133277569442306150893121595861906399610466649921765771398781246281740552472341721156282354548402507092520408079369419129938420503108532431392806013984728882621426560548155821029461492630826333912773714090933938651430240258626434485276485581693331376289121189693485433664082260435614704613369289919643085995166821401192686604858284183064106136782547113074494429793589591984328789122629496009673131798652021447822555252369925873575197049026344167615709728276630436706963093960831819437460513969170352246452885026574764167332012246566242936846943703153093478199697617017207324516910907613331272513800878439676677929916715802672762262027024265039515443268107645393101999185568420681594629533534866802532413566878153485848928188058352529535382434226095109605264241519338166831971972509173126723064261758121461908359594130913039443972977910354074069389956552179613812509571575032105039457479400929203096887248487744719688597624573027361969662664375988387826642709416793838180568241363421999826137020804819281936954632259951140375450497379725525646665767764456972978745048895217961144690939071503693660031176011636908384224993599956622483299250232946262215823360426729413456721950016697324438408647207567217094255467583067005609334402744779936324352441074180239059520212179215479692436656037512199237382710756269106321306589738660790721068581331428116091188840884980492296708721710843300973423724259763020441003510640779158312960410110970155617749980149886829601398841017256895231032388567838449118749765607753114279638535091544788931478662683348545642655166651513469031804554765050154900787058004612879682469846384973658981756815633980651211285694343739484119051685992525180447074289546671168229944164846869623112819540211885084010427996979722221442718242163442680552827718775325887624255260522275179037667815995204246236002902298047314267978975512923545457082002542484567204074382549834030540603052242288755660355164207313618358997342928317063714357013569335174817737822088058816169435744531278674039509793366094557825561553148467360901761660496478026137277879449818982972208211497973513066489303628409942682336005874125559245435253176941218103992261048279729018037369377623803520444058515704036873371833607911100618495984506507940355660903554683914377024113303747331795084956798955095609537167031293868887479170889694308320355676366759035021618754992009407415410787672478008972007660154033907079604723936649439133358599406978339931432940759195965912178027298866029750515966035892841291932967080507733028358443302102664140627373412075210015235747696245606113686084984220923769862344025651924179204180041787160921357030662633274351264069857517936995868208314933567310714876987966261187681637238487008650448525935483535975747639498211225546429237661406784189465982562061924213144857640757475261843803462257088445359086883610747012881598055698058983477276941927616977041208894346809047585159514190286774257027584706208907547768381576218975757418934183275736597673877132101646676465918599298694543964263240732054815496780408128788242549313822386875715227888598926402865841877025539633106423423214498226833738570570507124889871604803243999749054386876916765560928134704203731790642076069823305582384745792130499591873363503471790927021607033479578027517956854113517268187720714034269440479164133143498563265567725438887511356295136735492880346908958123766169138427590453332478754354783038846756844360469658860190881115997633632464307126165046014675553209901651579474815090221902814389018112761158516106755660404924778942368264125994087552942451147507414109639443511728907415037125598232398143526036164308965513672778331172752008870141770948970981863569547144958937990069261184706776706947583616479898482204793697320299674679567505558897267524184580430089149019256345041171458257070648086027173086638028738071832359232980622026007050258590580690063905498314924881151214954921711748022922434292358010887159170727838230782914329033458296680947853425466714729712308294338955357654753185613653919407041507889938249734630159562358615272483088118313302901256004830770501068727791075372051354187403656718886261325183378801188960480783436128049355060960585238917881985066796900752451376235360159527747157502415134145714163405738587862784605819613475887034066043327791075935996898924707417451970863587298225275754210040770997855956441354226686734345721062633109977385338569272438060864381745791813013176166091619258173924154246117506647166955746863340334519048018356326552749750111100300599084195792959457493642051120697778932066547681433536857005163789593895193567170883906669501855032157689272704069579174959820932470755634213434118255861394854584708608186228178299908583046641704186481373297086209557266362197306086257944436098700106553746673660010259866689258581811802845596994995319559238502401900393514435348457368124861574461413513545255766142489514812334777754093733564256808053447679739301689216112352375192453940782502611646806302151306088388617316855497273323552079308120755084235159898438254024308019793817856258487963128086147511398408508077732691005409985043117477599241965255497255832502204030143228416215991523738477534251366338990240943030219596596536022395592645059077196018172141932408611563095315852829094138831668967289057344473038660368240498127071161110045400653085054938068725287707678028059969496722194400648396897448384383344512752516141845264093505287709270157186132225490280384879996590384804186394540429169076589453075399001179613386892210789094102517549882871701395742960642324831457412638477232321711340693346717335715183799461919429798249975771204948578726171091047113619685266446050940885102068909910212373675694084013547221629539064857768567869781526763736842297598152270593739273639694594875235066247424653767562356873824940242022527711839110479390692844292977807063094672089358380106434656333626479166846724877498226109281351297115535628694860961932759517714659534282231441127746254551707496210200752554072575721322882625399776535618226913921361615658418967015636542546876587300853487270796083686808356119487288098945005051814589338015682209652319698618705647102347843579374635392285122203129768037623481337285008238197015599684995314691228426226086007766727361867573999241562414383203824526994080107896179761610469233697984644820634143996437947447468398591140693013607055543651105834909175440486692109668462318172967220095127866256126637745409664424263971246979817070564310071718925645038809839182843157837076432252334152771294886973753433052776205460458532962035435092428601366105882430757989739598562562625172778903161417497470985847587039016877736311165527186319638369808930677896579202785574977152145023854401260259239608891423201178928340769508807937438992399762588546528731345193927781129941358504101287891541885842998980005329987972021037719089052749295131675488709241223915888764552764052926055838915737678323336192562604715754315878342816668884805103442546208664052852289498889388022557192105473941933129942896717383328621535050594778908593838985422819373023900237624590742771278555197938988546927092248130034532299583826169104686047709445515557952614715795770459431234740625641420273371143556079362883075850534704853491926457481192769374735318178996213834774017945902016862050886769211562993769480350192497013212676535239609755076117814420839681701853558951492085068917557983208737862781858919119033647445785141105804652544509038035617502332683739841347236015309408896701151166918203442253327812245119892436078918885840001699233144510227169399351109520899678999505181660144091467150257706697098534306396090841582948388319478687071517736327606538651887153646777941753601299151286096202342222633938321686045821573060179356899981912038121159826087381530474417709036360828671893153434251177471537339957882892408979881781848313974454121182554967274985302359055333689573789633964975825910353420811200863491191411135374511913561101094084344895694170261243955722964569285056196201668665247962731161017354426140476832353693856850248929752743330961205563865730270325980337825785830744463660619243524566104873147149510289976179344961310657927701637047872002609509490534463040834949416125895441365014276845246723562502363203015509446613849953630256862871302195657159664131762860105005253898076751698574067157728865790536637985710790508351984501383818378819026373027511648832469764993774449216537191930276140578056374619670450305953451469736736731225303386225396359482988497860597053622162188289750954185635060197380199479901960830981078496226220402918878262924199559350529286868245032188250229100632893716111929863883033053312311310431952625695649217639349569977115733077127895571821607712151571511071069273883591635842972432506953164857764969129531166446474157050493784308470602132914821096287983070544179070788856646093458974536493500010378136795057657819835112830283022978035024373601264874432365043727868677911456013666192973817729425248831789950877622393185085749757918365673272890297259354507413438330459821256173773351036147092492116624595857586378931395008331449543049713081149160225546099616108418189993294421899168664582933778754985324708709631841940566549154234381682127893426601096417632336360623825102321776549299027350064438237832726989427816318341079189126740135698962674134062656273031678977476274877794450845921740413902324756268961206087636110867116033874111676696679690701989176092760464835219399191848929226065098951811190869171187702492302301245618332576612795940565553351814516451010126115357908258612191080161531320016174741051201571199767479688255054882811493981208526763503379797054093117665958406284538729300274170301313838459297687408054264872742346326846139581149806516790773705643895212819501283108351442879548227933136146725554572879904213436231661573627979324315923001594441185435180365866433991752363406263457874698976517227441509558790868372896313090194284033118021587876803516706248105026595756062812143138345028846558150788824734148532854638669735959662108439706721999227338431814104712421626135566624002050806403048917775502405985889661136389412777375396156558738704012160149783686283290248149774628923937249755266585279251464017287821375089403840852425337869206159383855800126533825324961551365119244983815462156271519004653262221835357820193604235385823094282906634668314705470520573972525081298547808345773429492806607553575384705488559523090433762783325463383414323259850091037152336342460961508606363312813762899932229943379008661974978873455471247680213684579211532241208070826630493114778178247502661095558157005845422407515115601697675819724109914336025787760347122501360148552899507006934824232246871825604399033183572255836026552053056367439429797995716278334638817108332094117108692607245208832189455086657534283571424041450965659225869969059325991349825813583844653137969659891076395451346949353209492668748473284512638257051904296800829358395553497412980090100378584629080582653258354945110511763139075034031783177739668319960569701222806691355153732677528840112035024558654595644839081581968675131097207587508818538294611558125525380049865111524158145945965062290178836648735702498392847193670582630748307109248937619034706667126644823627563904528782016597966365528180516256574966886284695156363922211581025237752421042356180033782561272915821237632312385778369747391421308675948631119423820920181753532982335381039603808463739770016835167043464387048876389063359119901264980689537510033007016984166076903842870222838419387398854016017502132077000851566348513719333188091872188013944642023310780941518460220889500267549518481149629901945884802738347984648734379547020773086668878721870622688842255770049968426699632561445390459729001564473727946441621681109057077544349494842514591869511136478311690205888093862778778812750793552650522963976025090677704007915269635237102471342487476380169593262549601486217723111466546527483835748067297191048918478487580501482000182393203922635534578844500631855581682093555928212292368111028118889950789277052980604956456766309216436973390523601521136843880269520437716172600650568154334949738189494381798833667680626504577420171345470517816092892213224088443507503699003807775509259670941677662612237465782061718131518439962402898146276619631198350160024513329889435497165321673673263144039670987204525603058060896728415483218725987544393981991346711260414268403209363747923582440288571675113503709787701748930964475023654378289155694273838793677233740443815828647990494409052014491052707885489399025710823991509312029827745550396076263943322590908251837306898894680352529627931709043106783489974766762633236738979164124467669475123557022674467607622926670061528806434401830236159520633415427579233712971483592510671102682626517916710746312172743164178237903824049711954729457769909769466129210750125889310211595485833005091914203270948267059913046581697616685353322672778501825672223291737168408757845118165063027419553642966288939736055743155039187232038795743972081735857421584307416116486452840841879905692449067034298248722637397484851851143045201506316941497568133125501137285546124304694916358727768753853211181741740845581573593861332916875463176434980681041723646096316804486675375305703579610169352244328893946465347072882350934220473876015954948520314560102813270806518617558535822688761385063703983322462376775469831911640390446039112078869184744202795300200612691488912827000605321485768675477681566754484518092690612016384724462094254768663968944874982287883852837966878996923821043813106062522288939480698584453797118841981887844364697835186312972924256308818408042684073447317414475273670369918567766200428143271307480764656723101812710818895641215127660560332415402175506685172485765954634961332776415162270847096423820902265277919002772956848265792952351927178007542307039691074364119175955691989698374348554160993433815092567760367762105354101532720012800808567780339223226197834353150714248704700567915612216922070416586236352363460467870575776118192146943211768963422001422986180060562792399121374496519415513822730457520741949389461875110973650653496313127786434811816169515018775034404937449573515616437140655140470758528461760799766223945257064427577520727252421932444438698913734359519783840361003695702607407630483446930103010504466264340957328354671965121414088718566811779156944268294306610024738319822567441607254163223787874665817972091835404080565072247506926371006053547976334426900183165817325228057957923737581839575431408681738193793249397678207769066549333488900421415827098540951552484703472143143250302716414247338048506417158043932574551282084970490676764829814112975920226522970271128561113857291479221813118434714712356639843428522859436443691723983571397927069464757648654880803746903934172015465718955763704987174756320240741315646862379188905353684083177147261183957507368173032498667805276818997766059790040679268558380055993415932874133223063677172297807805508099981356769971846148999402474949570453043578443076759854502799979503112407212769168127892256579508282326143559814238970922879791396054698011814129145368047395298617767390090600767658842975790160934541132307402303783999303073529144245695322944546749164346843756555275078154923740199611672843909495174382884486706150245896974106441158030224020408473008352394916296352369037031542106236767794212479932566320218735715101029047079416144164853848750709518894799361428901950351025568015245049808983447450320979471419083072620356836525057865276981323478851042794731101092207855278882332382255006258741468774984903470744629438718640906932489838364989521592283019894026114217562061905330579337571727711215004121447357024327742959893817700299341502222219644552154746766519384689633600344662568400484687131270570311287981119009830966314670711018089845606541971348903954971676804738799569881080580492417760212520973310347505746581704643030566086978853020399534713458957771327371760246065346531956210326443773574644053866555034672160293688020877414271532638923544442356832604468456242329834441853965392561679276664024483066898905184894356064305776343516726123287778587239939978080374893166208055581777131914143226091844297608357955147664041573778250467819557389127383506628328339420134789782765597905541424832999440298857178607690605068227149928321061539233113691179486392875086348273350425951372978781976218847761955432096300359459941965195327685524199653856166396992649173545345073720150997426655101537724449411773345799089468562646407956694794795404223588364413158769783773498068229305857616685405566230200359359144664699203316833804475728223612693530917875345045623213696174887617651222877960433146252043383431513748238385193286121697002046775450323367953195742104658264500362438618036042921805428418940542271783940250921258822538334605177649470827041170004752683261900336280645537488520757609307465098348098134966592197522590231280880980761277714265001549976370992684809882659274785965152200302478481504117816915948918780090561781559094679844609612953497072753016715277674275829284640765129637433283598229762160262468129329802063871768240398584399845538076207768237424067391318459455349145144763269468293193625859528355267920787660253504643101624436158877719987575542313055702224433985596262702782993817994743088006745386154679367373277949213717299836290348888521245310924418244825908426163464972934763328957432997903918664698720137759249048084109448595284085031086492803747154317826136889506371017761474013168008743477233609303362263849623240093525125381327817105528561754704362404824621062048959447319788886416451947115885000853538810226639151417668776626270681893359856025990684517198246211882186179585627022830673901052231033792488902775896388612414903179848678513193219472522990875666390119914433497305249452573998626770054101036333476935082225914898994542364285961124266480618474690669587987736180718062326918759540115111607698349691724385357710566166917085316312200038234595562731132470545923943996932836734621010687130880818269207750740023070318641034990811249195788095618534097836846344441800562699006054638235033208490207098333077992865855318613131001558540808241827350276527393775885280186309947424137636890471961075039750388658270837517578250787356147981094136898864582521725092558826342617579404339085369984080551547019138028960899983423633856874902253092979619386690194365510447566773886944291941926819745144064274415928213151034062952506038009319962421052160436443882637643973362287089343423357992383693984639923716656915167276446729076283633089102151777560543371983843926449874715274568895197985636639424784667512680848237874173561709024507076799663401667860759503280554828129633850173057557087948818940664023645406345128943909624508094783595438975903350864669361261437184478664745244123998416948064559886306148608046463437154862999195084571778755048044744335925527190728098561395665817539741058541502017756709227020072981168382314364347141599391990902025297362168468882951928324577011163565897890773425266486388576738833137997796371963810959521954718487739726304138691396902673495932196635206056487248742347235951623504984940583120507658203426052629092695911480167943447223949980416032917108668782231346419664728327958400862716144341349483384586158706984249788357627809050032978058184573436083388264561270545210318328860652919840218757239285210203675938745011312903217954679454428603202520165250713914744286654682180217546341614491488920533147306118002910777463827709691620607367261647681141905956628173200243709082884388006480639697382703269153788349755740270851716143102348478204622923748697392266798170735023597561798653151834572396913942432077490724724555719411097310639937455960145307664523698043363707251074312816505797761325643040226672356037149152070315418837213703164608846102660377210182935199079861150343389412720432569720085412644859899765372965278233943253631556137838224970009166868427670423317386038798437737441933225102148298463786907717447399102053283181055126216798049454773455902176542207466295736015930983422689288228561910671886525188872842408065770090198012991149655769883746912808834543701897683446828109300224505090916589798641733748973610954564684981969445923481087998650514570743671168643365258753540138471034244866710285282064816409269265425763315801856848515831944512943805459816155184828121790440765699629983433560633835035243171563636988676071065141272110248284457698216499631616533283404600610391891311477746552119664144126437559671774416304728009206932535344065929036742351757034941741237160155713030320117457233067071446126441960649855139213098410719020335942578772858537761706847188667826227400213693808776430706625031366834219421591303274521763694741518965512752063902395811157520739664076386420668488569241567541108089357968879259179554887849273268001043741710219494836547934110630287638135040465327857442278316058049490671352588898345709523879116269846429536930060017997970940253880198549575603504836738292700955674298384398119807071758091426778054052239305171373638261358237880556771113748291210366179408641282343252967076180379853589237582407156524460290173481329316975852364067215012734174051800217564429542418446827229376352101558986987318459795150757534206828513725025149303575602602262621614198190507095047051884692341143367805556356096761717688909571874347791032326732560071725531065364230616629450857622442468153757399484240536963973153372717118139099308667872187936270445554762144629358522449038194042745411713406650093831580098798770005369856562975189153642060444983055509228806630038616794293487161905645443686617043811087988074279298919984944827352377609322230828002267764412995524913474220388006865641786627702763413776395754443433460659147315063806020857628592987758761778962058469255963289200021285081027011884747164974642860817070003841896279932113857581864609915672876117418081522857916773571524987311764611258021698551617513473292950494483186022697159185870544484484088389759965418350333408017411880187328542273048996146842503009516637436734141428411607157604688952240264418657182416302115156127737763085103762173420185459797766879576984330074108256203822306758759062123978983652939925273169982652218320186804253770575823402100746737408994148862131402520957782426149036787706233804381072742083063340140218141741162465578405661692766772668671597939154083659771807091904314177111998116874547035126391521058216277646586392194281855218298151695189890794873087772714665059749786959463729089501282532100576477101976760572084223990731262519612173720198026672603339940819526476485822994541301519641294795073271695317804440700925021415635569882558752898199907379317364577281478830618605977691438779435960383703694286592146056567199734612955304881367868051763844313144211962727659846748425903647501659921113252086171716267067481463297432254277731108752722057674964691445657119508054178192857102365070884381109022443162450391274227615942802476355746567249840314791521493339349008349695277897165550433211123650755971935579859937557139437046699555602904430870485880003353824557456514293554500596208807091378125746469370843125788022804512384890919615203360723344250688884548630793268118279977196454457540577622121666057955987076047220750519655267186490308101437319417332217030698522996972642526114580662789431505742039408151130767009962258318241689442587612636284344669171169323454265085829486731539898532487974370195049256270944731359963906026578266181706299052355288956197802459220791911906097776912413797133420886347323735734903142474778718011891794734030839752676884937304316703012322303911209456195593760819316385761670909115747048671005659672515156331428594311964480840138534803502896297350916386977648387548773071477471213739367742112232731052554701338504730146142769554387520174892640553214142708098969615440077697991084612054990932402810794428515194434698858562423719575069614684156362012762315837441574707058100123632141799748849105167904252894771019124768477382429858327883292943696540035909401024784280104828464370979414338426182782258524375928417293983321269714005809470104988519153018683629252298937651187143860235558049061713774915749497871740117023787095446346925088730562999017100706242380134391977715745474801830880243066095726336696439518937854774119231601305769906836116793100276257999822484086082243074911763250943125635759323085237204801102467954651076819061364480513363717107865016600789364192155223408114450823097043471185701315056597301901247373745595268412983624168963791665844001286783308016928263421112592184933994834835405634787280427551938037432333933554852727882515102752056592685512148111023808887012953909097576449334573391216809672839007689370090430423333181291792427417930333042710234331598380177918435717311770732640554453707961094056303248985728447026218069619082484659216968550065517293360048991034037777546634176650884775394148534939914662115232372573489633325266522450628148180192113670779373847006066845789921292367702829262134818469132683933648135481332573007907374727328173468995723053854704183792996764654087417980965679914541484890213644032398461098556211650351610924100485501800409498754188427543841644918991573002707790756422074626337970812010224947382564668679541783953944259736495024063043750839334744661682318250492792743661683450149061640077821623916551780524483708848223511664772399922412623629141318741412224360470114780241640395751337284251170267474796456748663373291844560384591130045932354886491545954477842699923348744063198971902056798218350869258895068635535116380570594436219393028373813501005315913351884450790624586247444620410574564609754593945594078507443737039445755897156795578273077938641113315129340507026088195330539634897601798461085291420730986736119070348624368525236919575368288670699971355058631220207270095107883302619115973849935881554194663693686480006018566440832081168138856588249221954728036823566771687197080731351941432597028040325437627041721377953020853502701715965873143463136763758626616798711645697457501261498431968347533540288490381158544966070001621681613566725942802002660723428199363453158754935314055787804399984626039152054714037100434541428218463315604933297930295386569495349810043870613227676723621325181097226043061707845357921520681234021459690482147909615585630112650932449141115457855674570751763396939541907550585122061025098047436349880760331234311101948670252884695096372185560284739943064740692359672845866629061543466528938923354806697708358173133407209851902751400130183838509823855377767306705366517688108212343119555711237866213405572981588041784709469623911141632473224368428640456178210384604465057181624291676908620536014482412263712127356362178628590738595237301448352032708869866508400626663099695334856711856821696103619217202978720993561449767588811636638865044997203352934803545294597684918933045070563866926851816342669606111447988592423443251619292531591374455433201890938495746081639539432558282725551331111964999768142078034717747803592382519379579683174293209887777201749667531804117604246674522842080428740381275171081363478531953137765342199937740751662313255628026175134776254586959990949326200350516627570592225318610476800862976208243072328750537809405011612415404571333027785113674829427446846318568266867366584251132612908233447135327721381798169398719056511910201532779218457875344431588802077614187069429934473019500431790111669904996498210606209405798755599105671162623325377148258516553582570553292894708112678596938395926418440182849252338295942496776040106894807468142173212452324344342334086359477631255836384221494875934361223238149159510546000279581317668972798791706019436643462758662493268454661854232474781975572797181020758319977378364280103385925945533315648971862981277260330270616795601245078308455070872171122223176338964591840766574101371740079728651684078460633942430570939571993137216484134027578643840830442192491990299643911250972846218295145085744300825288968730479150674333971118523103114267246919764092670503132672913727263040174072910785503046480891388725750155955884460277539153295447822454611730505011029385094480772093411919324694632631718201143459014406984056470930962501405191896096454795426852580994656560244054732153925239064272858516255263318759584517782544637035991778386708238513799983688953852285105261995567976187820582915398494900719075721034604174502316193358482838899544940986498681673105563459516343567811129535802300309959873280528339568521201126888245759484145318559475183005535008511957184929407055122537190846169925422579458863848592764263401530400661712075099939641585199081193540224756277832525349537672121691314851064755034291961621404184700176945579837930634969273496418855617029509790190128145024041230033444240604632119648494454965831590662104208883677316956907282274251465713382193597512127165939513117803381326804570258089518181810855629615772963729963246630249255665385941535785265197837501852457975402770673222189218928489873429462405286348261710477623630508247785325733520064225956743127220436573020666476118382254004543108748115746080323790877960657185017270258004025316224650255886037436939517632883488980330509538770366973495042837126046541413662035217052158742629107333235197441560022816588194730689749402362837044392657124393302318574153838118477831742099598813975348856470645075924870226718609185323517341323417332537380305663289015754081862623364300746217779088270516164607410781374612284687848469108872320327011139548194900786700983969325253990633065079840263121398471262323354965000585299815020621087009961790141893960470817366486087380044242433073503982671324802469907943018478844430527732797187746225805971195847203220430073566523565559966459247498429456336026237094507051999603857351977110166757316137907351119747975770419290799124538300959143332381022372358428312705305281872379223556894796104852227916634922071985502521568954323182111535660793431149531598424682645956850722570471932100231395223134794876547287885560519531341966224249276855598826032962249834693348948238350180265510307188586852390658099944796899669748853797536422478673363338982267546638079952682683829015023900093731917506144384326455233287278655142173658041749379667128459944203666008395362134026089159471526454195125979487963308223074489261278940339102527736305318245988512372809261219977089022836524757362882297520696635371195986407764495825487650054781272616605306025183111779668177324694711568849163506722807734944683432819414048654414669711457040745164745369215424037338908082170769108046927122844102649621161232590375750592728497042831064692608663537044246132525837908607850266002546898067891404470143549899092926503745500452626315331587627672820730834512818233254834212410761232185251330164157554386047730044735018569763950394301330277929540681464387412988469954357901815976405971964260951070433069265217640511101362308674020073607188936390399189697385727635621111428705610476533634601040715221068057585711446481675844633354728257922455887610643335924544800507802191297592528102068258219776184791517119270631134701551158498121648172419348977620438541357540710264207447648750487669926965610162819258161282137991843542459648219740223297392734408699507260272915779891950306790938069983304840738872500574301073245590548929829429124378539465340646238013085671825164289682545180123187585634781964004507121166353653994015860190937850525058718297415459926068259765158914843096366163869156679079552186621449099902351329649099501765024351202137238558539559082264222736564099300909113282931821878945342296616411148656351138575273225556518678824199442491280326126642175615964322633065103993120385887467676796123423273278762782877687073775978351031776023807895599082875743273816674881076170433494558718213289083833659541872284954937300072263518308148141357122336437413267250323953662830076455663828194224710047454585648758164782505840428236109674227632291426389684617875330307657351943047344961197018414616300556476718409812453363482812814795840584508628607985528604117427449360016771989496306653200121923282279986803613158230113342176825435442363400555895104369158402227119151583400712377116872389092617228052328816694919598282679424138636111164021965372614384698037788266477837856688805360725119144062015047998416297876241580944550095716144882503180456253564840173760766373149802291065242845996418649806329915177863560071900217378460350613508382389692256572021339926730407866515977236560920802571345860185028408151271620260984296899424818663945240923813881714431158300982082014592235607870655341215313868443854097003880850151516802481739773721408334988392228781374588176465020010428120090809920909408956512804292985411229056929523539954422027942959828181335036179974921294850972560830407788436121827570313025417146112680354846169917081404112693017090835880360603391792268959279319369550842873620332000936031467883919909247960237154027934280290402802306781724524139632899037327511191714033730552981233945401789826758012228837280402205910847340566162664401501817870754140039849587493542085992064344636773603911168379519306177256009303776947896421482710130172937520541935217530053422549795972539546442380748486760258365103609652648611192360790340784083033338732180898248783790106979456704405531363622516279361895254781272241926649286041323606008379348170952616552545300545406947424323678614225569413687695001760175758468220493337112359033145127002026844224787093491381741610158859777493841906327070865135609179914762768220635715417704812969017544991462670031469482154174931412127781328939282209284640931314705996379167662103705790227826995180712768932022034002259207614208155619291080626905545515425264309143984886731493520183604783581169620346828646600323125323473375576613592949630846291696700107732200683162209555907898040232647249820317435666121326370431163755699260605274477420541442165012426866515279304481180450609106815293991931608420922673320928343399660540745628388287578209668323897596394517188479563325880066308114091887157232395681254857931605112035359474653748574730434588531553810772507719136859962578227910826840495549346322380912833144605575832561152744158315246556436866058015569814193632495764591051599024321282814619764451102460221234902383303991165710316523752810282552064881929314835477730853796939443560300776232751064300452436391090137346572654360470898818891734009329346462218628803582459797135442389051138413282979479793053393881789953727297690616499876884254198206525047513936595156888080746018745883736243870886100482710290538941077929614485578407619744229657101006549367560151341934730339550007924816824212770956615676542700177733485867855109152654220635480082309752510463653503163173880752884758047987027087498140067395262761018308558456768887454890939176841138868893517508697400607644266000472467907619114360993167854025894979562877326615135980333902439243523996250622212196994278809490364413098786999701551360732606443273291187615256456419592755080594531305782941334557987724467947401137591299815803046496927565194353518359338699444715216204127977834806471351026447351845765951918280484323525694436363207132528327293831031831573888676148273639630566155889047359060278911082817595872191588627399028958725622514967240665015962971323545532702521151080128468103782842694020354767895839676655609465529311919056079231519353141019346115594435410115754084565226540349707822245921834787543525310616241625005915045177636225889239536710205506609004806629343784904563277168257416680754313290100252172230036259303707498840500201122954409584860457940268727370674680421286348530779093931034573876354345686378963271271547061161017168275402438931437012796348672268232496310035365933325105385315669556803473660576598029077063769973222709087407214288344892255294477782082075217367115975108286164362649673287158689071656721893071263420342622540975449880606924662182870001560792531850085103262431035760468799317518120307630860904669910711895284967930117962285343036366597743566793478537015923131153577286316036247135123751346853622098410785294701169348850946156134920472286269753113075521893177176391122568964107517618388964618809276479328709550113591721918438545820452624103704265863453716583914337948471497132672481321296332506714529016421855386698554511945890801623179000870610305528711928732089282674549703603742611129769830338160816944786492877122950716516248135402651591614036060886580805665241749699253675771485259293911604973634586919459145099304286534705747340762063917102953848720469315320427566583235575434577758869404564608799786055576208062821264084372260991379235363054367912899229411054551359788385672567373234263434392582868195306003469036176065524874927165751656471035091498948927195821969091623844818278423935510240018014199185262451157616710894053606442292705272892941942855157512319126656867818338962194244949121952595414891308946419445186606137209388169179522741692157342341147382119818971280923847176811340600086985002824767024839862397971079451804854509968211789990568745393678620971569040381409949826074535459824310585524509186514786797802415077719834131118304725475668752150967354906332252401153223754736190034216667486994771541911288057063567276296609880327033439335340981767290440415598379354440584144816427926395212658644366887485407770545719202551323715446304479505079865976915416553281774589886684309381771508183493486486008133913087731979211635090487995202749223672613985158449097809334057235619223406127473232391663266906405132236322045926583761610207522329761644210043930314392137529315223678670036208415562786813701034674500735567801314944220359839875510315711222131504514066591473965519736053869427870219918350398010516694642622770181107613399905059635882115441299672758388265625772472177573673519077891455031935561924105728459978488988463978175393514317235271534125709354238860088619762493602309862842305638056114275414256870797563375039946833479160896895668014288815748238731224439433952706264547504652700763319549475150658026057896667123889051907849232546233764022593349164040131116893775406414034518973335062030782545750669685574901042254973926665161493702209429395318799981933765844443266781478453326449545669668430350113062922928025926142306941025807220124472956788932159055732438917460258929399173431972099958229133375312089300621100723063718340102948563270055991293482295476811521285686907031197434122701379175731397134167096837883223751754610030371369959064230665212315243419852006921395273337738540540307750132025118274808347549092983113384903447222503697624554143317699264545751689413443441986035539030304227718238707205190813493084538092966092543183271170376623806896642929235879789123832474663400634966154277372592359281729231753092747483148816469523123352199870721156420388926613011835171087599723895708182383437500069751965561218800450399775056069581692248202377522629703327718847253864264271034565269694253818569032255612900766951908995768756616221665140895283652313635713456776832128091665138375091651158172866307648399970878957515025130262407179971317694805245666039174739787842119435234875867498983452679575487448458069238340920114781350222710268633190891771330583042175684148717867395893175075611572767166002422236003426863604891445746614276233451567813861864514303632861438388624448381816993810883929065166349040012456877232574463060864146917187648158915222637404904210085835230609675638980111478634107118201635456364403746525194388689409463762093617864816287959040922641999101947079974007400993783230070972742745761340222745385730973279274144632493557513607714294806118253489310059784919097272642746815048097797218344867147131355635065951382286061861478651122041107070161669647154117407369628704127683295001970265493737377233554219264359188693151714094923713345833504813459543091282279649028921096733697671816046349375931911160848879944764143543023286414269293433246278782103298355257744743871551175543513205597378786142434219822451510440691495535780759283575724189560391780040519081634753392887142786348891436661495162533661577328742029565983994583778604991493282755727922624657638728368942196225163506480015096459683685381075051486794197366819151848187340288116275102421885435046320969474278462958962978834802787111438366534344724672108294759901019811299841610653630108514327588068978102321824955874346932950258046556948636782026455715129273862182148554846030354588000219522339675760682712318257147686511326311576456130502655382765429170584242115776320709700429100330826851774686982725910823145585405511223478991418215967925750194304890779661077056949474330455808740721691683343527125819452708032440465036581704037713869787825150886701935568196669557295753577373160508431968916945849208834101823139291061236614772005279925832178429926692607955850218949041370566139236074115329773468110720441108690562730299887967475115104548562677411481719452417106682338960538544885176677909881918462646430065539274543989314033308378990410483948859027377763324152144066133431620858287434101694237245478976160655939016287612962701553964685541463054156045983440283128057164366411295932348961918854845238090125838886342172446276071246422086790615173075436735697754685909289743810438560959843865229200425980624327187913339572012233078996943828594000534899090541757155909154318608533240514197997328693869995225039346377218319325917239751504442960761865425733114943478605463376657887709089573879132924310126135459092475337146517939945955790867068248366505275905737130903917751039565769059248861192749808355094065057358131985630191740284411990131255118207113238546302641048737807107013678163828471289431146326875016856673582576068398222511875342411966128463481394235028255516495859157331763385879832358283930470612832321261075009120533202647454915219333713475996295963251062371409391403539197198409542073056760720696975066716195934486326740198422447182427120812671608362134228441299085121924818834971027842839822857487621628139798325534134185102786304257227581742531876116161459828054540651311104047751869253098301561864313718526618141962556612130025541728332841029699040141312733842509448572033439425026896022274154885049493553143653537562369665748568488701087993216941050300845409940954919667113949583232821726171243022499500820091426460620739433818755774246294487076113300238663527949022749212995437296698587403214403010141348771787221953109482803894726700202186123031533223543700396920768828145017294503428919123643237535375713848105432183590096871575892971493114727025149744319325959688420058781884829222152152428417833369054694693908002434315302448420492510206540007376753295290623905906681659980620064626461706781204937926075100862671599234929915503032727161010802100236380838000461247165943148180876947807649493551738698993193962237225002829277056720566820100025370607404864063677388154584377877660860491948443163018331805501642299868415885606094363014402855155848647193784798201221471795610244771748917344902518068810333300357687646049639939838433350617018185224878088046020228644903083946184095878451768245150670429622684690626322190197090653549910452980717866962518651326606300113748690917544903491755393223860734053324344979749101996143911531490827650232997041286461428779401161473848820837276882793355096702573148610601192710125058789944279599098535112622148305970790389932681374622741579018904412272526038963466525557060754182585378662593328535860513866264627462829823176978491412927970990934456025536540087502177678295575332496919756667667027420807936827414754423721201929918353408416575922021558132544094099878625311618843304855212987721198112148482115582384448837859177928512958544111300318288989215950035883691714078616269876608578887798845712275658119614956153903165768857120354748172407243125178805889541361784992931688405749095261086176343641764268746716093026144373116910900926924195296414455747913527334801266377635792105676758195292897977858610286221763703990128351554344447493225690154149341462005894359670138594577998824785092694335907332668003513287551630462705499194225980593181118334257031768747683391961091793843790547050095177903487321032004947526807112145785619159087637413098844314207613974584234788468013539159703726737659956403059955043796567973205748207030467061919891964036352209978509478360354273880092822466638717067520326094537942179057807511719319448465542482274402374645520469011676378329323164578459753579718559019246779957297139167209725777403445239188417786551775628161818725199667157873975596199321483423985090711595787227472260809644925186227890291793963549630245019552276739224636664501491340519979838347397061659855499546976499332661979421656972795202521059502653786218436121117612349952697005985116271076054165284038273797470860096244794738170640966180384437413246960118652066295635135448993560441656155158580291853652529927844104231532235142426814048059151318991275475579801538327126697309547049572396764598279369973632428090382090452857417616998651667277196689640174639194321706286363298006848491318677236651748088781907701678228442508056591888144356729713548837927404899460320016139162732407913705682916030766784218566542631682648512052759311035025358145034013095419972393015753758251441290584112652910423178063570561341244815330578667792008661762321418708634656181937177484471904522489637779415738518345241082319112659239848068472786752634834191568098028472729650354553858233976502522999033412210802691599391329531249080884455626795277322700801969186823433246710053407397040241215894153275780902414061324514199546553393831253566141133883787050475338631219372521925706958977093075606058279059032418842711703840542887115051996033169283417847062844797097592992864329890088036489691186271537872803415124276812574879648738938290280508872918204443598276058107233062009352841776453473019851611113308714105108880773615104384066798630609821576523614063082053062606248235836437834493897926042974178598457758136997629625080420757173915992933215061042162714962211399139124823512833834417920860783817716657012569509851566780522944278720020813999243562917555128159600755255253163325697486753455882476837318584533496818427711900991460620901179997392722023311250625215429621065684008639991902195840706685047933801104205602531244312973494583199866151674157498874741459232751327221740706411327354152004049890086799137882761616412317048479744759819531439124878054553809208922875062834286920565915003417093537879152089964200504165013009389004858033356828913985316139908542915599202494949433852792651636704763295943502400704536625493615186850582637395303041511525344471306177825251975067728030028970929962642605648464477864156330170940497759426070680213822456687663199931363464737672440365694692495991495023068576798395821412415892806821851159933328805912572383508503881943202184202651566449264282368941763368488151647960558162180180732166282886622750383275490585296655697282516140745279230415643033497809580205810684389199562913233849363238777067445666824576591953950074569625269945075595501902285636121638719527108069355040188689650648614635803885223131179903264971686993518455576177608758654688120586886936769225012683749194722706838231271479272615186835157929064720730865488554664061243148778855462643881125999366291834490763701846941212902192300808247516708015638707520115955639151233819885871577737964253564009640822678084823903876523793985963827412289473645054954813683437735262639243511095174161770762824115618130472414969771309060256384015795434231394162241070788745948049649944216225180136539120069038836202296190202939431078536737318040537493130875720944792537567162077494221537870593024886570512745165603869255688734670252524148651078563772454527309479440006100029238345030997188118986169875566263266086631079082149710641524304987569639856814224889807013183718725815619514606520360359791986224630426601772047799503987689645940670957953156569996822308600455350568740251571926137098588242225053459958357586157355656600396379823591697734971218716277373278380272577262499175125435764430289122593637772961854772850386454659853477877111591543507344079563345964039760810937370053387391292474965082561528001386158198211503875293769950390076421408760524357581076174482512849031524531650320860390458938789623748649360487184251841534594658312757208802220625326748208309396180687680910956481925158187236094977828793728740920305013762309229256983485526736635492774466373430753287306748675012777568331581700507019034848184194426570114559596878160314630541364153166340065203047847466112382138834843538216794373974092529005430396396954644507798541666547184310694983431493841658299013912490678154154672016565258595683424862359601149165848530662059195806089908684866226225326017432398850942426092021406863817661858653817134358445481038504277278660413982772983737220567165951838456228579464405893555618422385309371436184463816378267593669031363497592398730232012658718694804349906610197178230867515445505109747462544459106055126273034376329428715522517152086468184574721827240637064881336671062226233170187871555331890843250190972250990083933810838980177659980203072508847667682031279400732915143821732880008981572292600305449590513767247559162369839487269412825253373290082643526727906872585448460591268498774238362766151828707822834696226459551283388057604121668096615721641959518149413356234187522753418062200388052961507690451725843817932919453155582011041324544568053055916762552805082309306159794125470114485617554421895662444411381428147791473820858877244424443833023565659887465257650314174536546581071510902989661102442888174923815108515313494831615329357842484453985793002932277827402834661242218719960686218636309552082102562667442666941617739642654848944472408925335008205921568744309102108645744810062466162115557425622749586967269574863579731903740346800380006973442308715689719839416852479382127757421944445954125903390643196524495218507454118521827947554708197321581007597459458016559095258743782288764744043270518245340032788033748950418829996026987332204203774020921894353653257674741830400039710893414444007006343989269873332941376825033730780487369433490362472362253950126329514497782201250889971890787633813661687356090159887036936461135957190919734831996065702043728513348547413181687299023726883292796305231490883116188502904174613622711141377417045017333568069967560567600767069722393374830285183938200378959757039819286553003865178617846471134907919597248602624145263134774157713943630204675599766487028069368067372542908493211593640816679199032477346711013730401471274643043244354606027830532425667173255404713336618595288059835316929924350633438431365574768915849678853344141489390522337712955500509887158205846278060439611721348868229160152427468011618616756572104316819093679063528101624560180194958706599803623346692942693896034133146817226670503974965717598927426113707505915834702222561627586969503912644197121417026332535140892443502640917121912793471883674773909827177843348627109952721589083140678049307782017348581093535425697252860085187881232982737655434772354414254491493493405237148783626932085924259132604708837576579443383817506452703138129248205130712476109717564462862029675710952731466142807674025386352813609622498203461659336931332373612402151016839841822495473501622680474334239753243545132509015547142997923831432554458857003340841485860414740666758615611463369253054335020598069345220922650044670909675527604937125605328279107851007925673743672711985046649388324199349444966979143330219672746847430996180820923773105894796646751124875879191003659472139939947071570959493418573316087802450617414217058232714826009150391974880161334545497470797055925139274977279526089240248189235448100782712868996888929369570309740909576894085991152520898890415766024996208889905242940691888723190085395354116629084994870617530178737470829980196500650549621595107424123357655797408947192883640754217120091059167842908785897721760251520137164452204075927920655821059975428409528409197686918780789114222174488587228224209047109328791977252918537811676195974445787699810588897745052174904236818868143748664998162983149153197664060048622065693346183077901871002633700786395457738391737243688117890840968179208615466718199419918551088263474738211006507222939554727488276731880788296918659643420515456815622141614310423441597511831921312908422355427862069373367278014360130897914286072962898580552604516513178036015027630164131890868809987210617077796522430457303048846946597315077274381573381525387621322977640495080355222897121353653543416545162463290590531762944076064348212130433640863885447106358354433281215108728597672483921663874474907576384039241460482560153140737724948725402355556178033509408559415917815747407734567690577825975564482356844031156241780100136688580750586602206932668807685007475078694145999955988460639014203560480621694197858076224874216784408606982870731542695957101997670426094669032003799485581645177139460358867659733009272582665981426218688505144099599336563847266715551269891392518514922789280693238359420098289517153728907015800059676254198688118234112472237571829540773084585946755760461213194123886890536473080309306061185270046067598891821176955149394446663285998742956472330492727253248900941284200371191952796861619553087882737834799150779892197726001476476940188174303490410852715829137786850440058190674837422176980173741643122902378625681729743239914054890448259039428441740428252697489490770809839093234207560972016217992538122710655563635491728883767140900644824045598351443295051415363514892622524249814864223061204362817678210100443942032502048504941671490191417436676724766750086542482528619891446164994947233074338157562959105088762770504232972319817651476328221431775571942941612474584616630200374521374401271693544890391187309578421922201566630481728191980701340376496700403731943979305407149251456201104683319330577861264516362167528423997383327522552973447459947573046305516855660677423608108649158431542999914277890273600510004724954468546872628071131218477120965687718170658908442074641015785162464748013559263500782050202843101065096389013564347122038735291871615719924392658940722485794557717730328026540938389756820453019277486860369706150650055811266635514997484858263277863375730329031324340844887949669491001938671563846875909037380469160293926197853081588494592834284352743852275722075915948160533311816536822841995493701759952945722892366174102264700741618061344748899606202600143051051493669758021299115050307507708095171225351939777864480217500766193728774573785343116877945191590421493721684444930300286927146877598040086915856694016555636341882451053278250991318158725199311635460747578805243144639261624287434428430107644525279320565964453983308643595949402903632550771096033207095568416303270363775241271233989736991747111865037873076534145286109700608599765484776784767901877936778075425907005980752157632571502625827475286250632442435538731289099301874357163001998431786730681761759068847061807984897161523880205716850589665383505325627272728749680788433770868340461167863894623133854346713224253621251731961132484787401963489446710950476749445784200891060241744756927463204160870585644153479522312768617526699676205270283757966818795829795459553246449486368140356852591969006608298569428979526670316584300527728551077307840435074716361346241503584012180076342479542671705913638810954307227117678198383876141971113529915651393381377269287641762489100756193732593936307413409539434809758298633980527891897107895532020315782967352171544629631560027093100801008363357809936231311926411570715628080981228938880655023784321516155790608485748136919084273872387055734621708537587399292457528253696269813624717287926444032993440023092481654697617328265324087424239178249690995177132167701314522133915224207542794036061699051693891264457594610395686746312694062297305267793960423657850093678055572688463586678932491056892758369722807451327817283773984584200203231769117869833764196022177199460096967123153346408727195475465065013771266225017113845492780415277154900562954722088544762905238489012288053072375750659391675943301186092599360583068357464247482112394006825357231141772761950385804592805884954304723156310619617585711472418555586245698361321664959796756538046048565288784135596006079425463205494380769279805354291598075919588157010318470574609585878810428901093942742032983003929202751991574386023461097237937598895759825606944144091595723472936357145335798738146328343706605697558155359628735203912224974789395689475324015951950062250971480884433167713677421062079120895935767263680778429285761606013585597531241903150182126289827595520072021748852241333302559785101947672205130930175364922994624899462337717551567967005405871099753138441905245052832200630593169971281342173613132554079864928238959899760970038118398879787511696581583930556950106640772142217242352907380372432240689456588982755984269500652802204120907497888027954293508949834669974471242361691932038131155991086313232442054522182854646496971031304937516824599089463672801544778286984882585151966315549734619786048899586313601625531562964768970583630743366030985978191819171460470300455416948791962366636421164586419206273254046433183681705658409532889326571715910073205831214117524179099428737002898353450560560973407939800556388989865211029314652249509977320214399406437438863252749862129168710234871710042161595202331209907405692280061851736700674978655143765666947392266379273979869839969924014803035089169801306582579461866482015484827118630269627720448322573864443125771676919246572947513019191049401569819210194097880530053143921192872673460281222368834688684536686412221599905010874984345273217669869474375431529170981416686280326261093062852290400655123799199685111216936289644569353075169941008614864825811652591988278846024833301445302890549493531035455398259820444054007494945333553127001622275639540384478322268988664628272014198267856261650973645629785134378018281796373991809213310499795952243828946517989316441534451570168123300655281999429143569673890876984033959038711144674113232331195073827892670951905056212120038486980673539999077964011873653238150856665802597969155221933932782777435646254628416327753368667978868794679925929383725679041044187751972540866715324744833742193079264642360497390853186828874545106666338471967023887961778414585511337560825740570513098155960179101957280897047951956263884942862993197423954833007631010048993556459978614302194014916642612095319573936569681977076474394423632511896289410773450747491407564673686625974701687367353033229921807603236455913473555581532093391357827994512856469620831853719774944293535151100698829109395776229485941145785657948906593602591063694570114125034322493328046052021298423210102280789096140497182982281958274705768738779607417425114818602304943128895408282652983498496139943209524680445259911891958586171400829177923929106033014024618557097070399671508940858041927118552404800424431222167679009316244254735266781970088439126404836899589671973505718861185918129703381583752367812126429343754172728584675991840198473695521691800513087082809576702244796627257077050432292036722824496082116673478251542152619148449062260781710230667369756141898148066812580144798363976089089433249436680892260005971577839430801187000414387863907976475165586675076109711001495303917209909215447404836195694413772862241055521074228381244522508672765644609945936160208081461266314499795688431610600637250084504099938696006170066729646547821098632325006575099811424934086289888983105478080646377407218795711285485806480762943463605318592011996090846923254672557942132373865364125970470442401138729034346830459912488777752760593998017378957905068083407349046489253389201630677551158470702032010932307798915445977471536418461855281839771569014873257522917583707597368054219864679428451588138148121386339294337309447908304638042863544982533161709113564107943141432176465151693205528674333447355135933482043290361125484190691124960558218011881562266682981052268127952285073044205571397806246311873789226333754099014581037844550540386125233054170297318497705490317380391457896030848690507765764116457260354114617410843188750819602098768197549844286982030714996222920885620139899020116030092180966773879482974209948657297152677953795769746566231347685411266735174018336615616176540151353089984637296088404150293098782196361871228137333781667422780225662157298937595208404512191698835841071882169136872367396158944528401353143503196969585260328928959438830039962817996698269349504374835155376374365610994088614098665621329411460025938038748115816717327579358233807322620903457681292331091400318826547952406763697608317565294586877430122234640899860618475262554835266283770215732440288010626684754461445439756929250962488186146252668529830522737025771995168843348754032010329939279902895557672329101444520822876361712115041353564773310067139858645162878744759702348066687759362606668634231403297014870428422783991092046065979837670964335184895573492939696165196186905804695723778286127343413114355642724353080727780047562961879227211158643219742005264952844752565802111014536324489422265289107964160743297019256385743676493741890374228184593199746507406369558615571547799325787685325293402327426623871497859548992805304970598437820000893418256428097587253615431456965745033754339280043427327859960244997558562499320064921601034987674423512099119913268535463992491919801544427391978282403983321821300538232317414958361997552326100202728122594715191703675290929623608150003140381048292601778647647681095249746784554133351072768730277567446933534858446516574123989219403882893487724418512503937060160903143572351575013375594648527922174316394396145404793858799215680226010219751857185981406877385102272363793852523091080056490584334432089414939735508140498545360596178660271506907076956320272879982396026504484569415151762335793847073613803215078308660755037446814346086496921809862770013741566301712227814426377829135686729590242174634127639973707642128868296397655745215066408062577560743111922037994496833208466918402073518837479103607190101434248994220160504881353296070795481784167869823452270523483240336922977996540051283735808667238298899981675988943909771233327181005358398033865905794465813978646405244046784648720595274508329361222925822054646643302365094733371926037955084082299016454545577939199035996566322150222494621658392273127831100149668628145863373268061198104834783996202112865848573473201821583207418487009699326698127393875028299223777242156761471847218212331519023602480688190053276887573569909653271774222500611577584997760871103748168025317588106234507527814299464905560361080510686208358295310551259032945456659015938930143333213805609620811627432888245800393910439101234922992464257758222995476671598553340694453193631719878486904774807898112425600175943332141907703351009766197668504107380474604728431367930272497164537946205094167886544212243588571652901415785386425113947500534856062957323128267651630261439947093472581261988891511595205152789419422056058732668735155948931968408468810999519739412972885162492286561421879570505511758920066493284381370169382677929161724187869675672497818158025869028883408053775648869068868749350612464114855645944670392285020456899516237166111809071355429326260229989462570477754475675457991230120262054283320004261797653291021038474638796466451194851664677167698652130758709389779166592204786396924132183663582574570084855373054339596561277703024381932977226341792251985470964388021009526893212126899556653354206690338695893067411803445914276071616403458091387903964304475038535100326652568667316242241175223227848817584959320937441289420710961760000573332574385727518771029977269448151773384343872491193911783086475614996236079666313333031072317471247042448333567082936239664026676713045523613266826829280639681886164096350595029786676458595219894848271988936219779947831331167312223789563521265094688433433723443984382911977087787706244593857036809819546083912696521471976248031065758800509668253902930107727657192640850677758607977392851947367324173746504068964788431732531142537837786423822724380898437129786316444609694066497577707991723390980662515478158603891209063478800010540696924229639375210918480561163096146687585971299712222371589235339763360340114895460339838561877187872022585557802750460409195944401444844657014255286112589456138806391446744167320925391770566200256648062695076453039374952991374655672700004945222212923153899106466723531212631746000060052387906239198716906895064556636362734528264758014251906827310513711120695807116826244748150077608448499947846346841425312420712942837264718743059444381858498419840933867751113507404314718163885228160768256539146635930079264933215221449147023338632484964251141276896781608593196672999890575778759041260923423605503258260986276243387128083646730564693243024714852061349522579355612726189469925510640489334349340468660406993154528010127028262399637821230020900492846755744950411936518585259204434000106300075243819200999435439649752976060831461855288275536821334934102883828957404405872890433335144703073162718560700166045082712523224480350545103303836269913722013127372813160525217458751392465991197950109056626285766055887133324611385937033409579369733199448103951037251766828396170335905813055334809559158184090724705753250246542948046096668427353648471947726495614474044180627896136017777067889971202641885342244798823972564859472012266115079578795452123929607815166881883304865845259019241474403348937545049631563787909708994381620906042443453737408674047267952736936341531517196452132155886900903645506476974951684334311780207241859084061389263245043744851001537290538920285340191763724360995620311867517301210331702939603918828904850830481640238966260701779657689901768680368834949732119182402260732427380755713765480979796072186714146226863332798424500226618935785783232939361469041239514473992678261304303469157258308904650008177446547985589349761394295739388688983229090772967398608698976685092267031698949505777341504382455349418022437887229317457083804218174602975058962622987890154770488411885230958714490087220016067999876210286664274731091853593464190026449959247468611759955805843667149711826318065804401290572670176417426636664297157365290399903347566108899526451755953119621795554344071639337937329874278786450125662102432372371830202147028209797598676805278167568268881103323817650929744953494409648630728834177974667267125044986215024435998524324554208029197813800576866985829555204963375631162852035777017853117084173291237793378037578718251978645167970587906807258146095682658187009263718346417644788106929651266835751470649756149469268677240300559347093398335057759493241627696420001542317117862286280026627586114835568120391159952780468145860297025855735361414090624971773017895441494771165260110693086263035545868212063045853973658209407560228084486502359747333863685008344629369642060274884022014740427485824077038832632758807468426448692616728869932581177207984983806849925461741001693676868367089261696901229171961667150280537369012982769382850609817549528798655273662847434430767972205909600704553989883554910877175607847778203680763601371101754794703027185688586110155220067859007860535127449592720405652695989789896431241662873156187362535139435403901756810169358670622935532578552897105156236008584537198950133087683276454501699896554923444420975071583550918005601426403768901689646398934632118880125622185563569833734070209487108689126085411908808875981322797279918561246601487955888659168983026733239737010328709647675754759143054669411714821583615128314183837601852051748187531593505810709397182426363215291478506921918779072436429909507907574459872662073541424709111415370327354124214335441283963051603996423365333192385723133816401345683696348057119164917583847651480182880733121961526201980648025579188567318781141921404041147795663031329006529413410845007927435610501782500084295384675025599672968465233762054992462450415297204864082161280082465997655820671749319431686656267629721579996343541588882171592818842626527012027320202183431034043637167282301217224158875444073491597695365132963500563561211327165702474398628327008445914013761965738831501270659084413836091359367328067943639264765620315127720664688962249879363624221811768330761566552998738009447808857157499840899609290314995505889565565771263305465418173270560991490502508135285558058677554268140917929690398659179444880395337215354092992998811773345734926260651925227472406721628859452287222264884352362716862910755988095431406346751125325918829462098903154918015408016033413786464951965036428483628608812076005049135753320563909037969061227513523127970225745043396666173207508035423374915354201836546792688604207877776099270178888244927111780676952259980677748238664281308434766074434475160704647362886651693087362417868868772909059869418386976085189273654857265582097391203767123713666525541050929163450536901070910600877333404728295673192232872184087894188113510638976296136334265146395505633531525261886858671129091290183412112902991221512799831243895278245862610387622139163681354187083422598406351407963649594996791219193799761535681057891733278464358465876670308600131253218895072124884699680683946524771542638408092795475820741862104123970935756995874197208100305047128719534414821191885967979766236837928673959532998792432776263982183166528487134972162235358209605114694121083424710245696796398646612989415317610721872184942729404047950955838635953044342538456375231255281113096904047876117345375451388840028321780459593960400401027134854020899961936385720436652398480328951191498706315898304023429367868201362073851574807905915089271071135118765259704799864534747468638836963791496309502518504463961330913747381428075168663318961605895863605302767756157607195103510686948017528544287762636043811371900128272653593449610633419247105562805449987015193362655711290869057726979084929568585853505814521226358045788083873643855049620406164077363135571434572578380448574559444671696983341945087566739489452642934563695639962384050763122572091487518137520035651028261539400646619251368151024258505346372775259639079990163136616180654117630358361662683369264145744432873602093542300300225076808194264376461462370586817364764062007452803410235236054303296850678656770429961768031182853590509291314499901649301289747919622676073268071918318323715519204960371213923251696437387493990689062990954120350033369295663321317804940194218690694420494174031632871931806015556613379501695847585703879024172961705274317088085278495251441242908936253625959188613513599133889539217052058035839374217693449480462859165096024451124716531705082903904862882950901379802220226718995076766871940002745550494553162323553814439511871846155884711546753029453706844911819673302302801346641415367189206897196886593297848647524035866451119232412344473088098496622716602452329125356794532949447100653705972332194573030062992854592433200371955753575191389678764652253005189335482896559705060399662590646160463472380113489404659879052567786070240279975469289119028112814216029473180340147136514586929272152168099029443414186758723953596280359626845104532019376122796587835862625672096786685574560867221451224509096031188055265435301331555461862379738215109385307118164902793811614437561855953336227173285935285579031475691765648800657287310628664261766516757528498167496667710023281471683108235659326859700612515641392941344357558622811090615458980769441401276196421235677584479950659993151626542483876153790493893814106788695276680758093690817963566708720640905635006148310426975244432979964870499582978529077508791781702937830993748756372911567357283513884543117862818574813364964381623094555736510598943974761612367416177599768719101536008832111614786981001907789000933772563054171128577357254494400878563071698255784039936565711586883527564320208468639023829133287554661420589625232583998917238033514708713570323326247777084852984534992802928447024630352099655397921746341697041454757055563129477626275746918437268364197496400756060642008270469379288178516957775855127444713312317743284253729473120133067228694730189274967801145410787476320917059726487519375046494427419379392029065580889240044206673623110878922155692768133030039850650130464898836038760098635268753546326658904022635887492418710469651655943814523504469367080671162742807803957633553737282249563752748341703898139189030493408313198321111867382450626172653111629608750302312736838071241139468432703655891193624755033067764094698816535871230753127954755651010903003320988489023980251221036058433322362983140655760219143891708393891177460171410133296413130830007294730000252585903871632482789814874984482121109274959137219802697053318507840366199799395994332975625289567101411355353305466300730232861937826205477198495042178711129233653651516771240116063158188289168748732053245207858586955350164281714040555373362763238196186278299784243161979840499815224379151759734127182424792329241682619441329846922125952436782296484591888162546493916860752423718231302910323548655972047561942674263149996257658181060690395861350508069903906244431437901706205888756220077152782962155048938956390876571188830764844565138955751406751091618698170935215595578768632423632190287477823858259057427377996128975056344612754980342797313470622728336679541677114108507012332762735469293280397142952821814543253343287642688216196871481359185536404581353119254617196742455983306137717508227989278501676966548039496863251564378016706665056559314584565097999826599201192157244437993477065627760732167450384927711936640842178062411047845545353863411078130343178447786633752466701257705536581970803328174511115243918545950266236403743957427199143749513647574426861496365158335655657507826210931454559108066079649833230429646635974506180332434803697024711408268233789559043035729015788433543369383938563636943977321806662801777249894826052003589909768541618802109008553945330345699628276183024156477781294456067629449964935976186799807687306829130848765067854968394322485061149963484721648700028853180566660745805921559642942066976608216441512221592880658149654473246034333738218551831407816310645835367047317165368252256989768446914368547851110838680764937674782250913897683142703102965623622191155343349088779381424568505244782651574702010254054897786043313545183666985097287730037926397190546707035076665187934665052741010818365280758590084837583218491773087879939178940438693382046552517024442885936929794985185568803606455690861815102535316991075065140520884203101351875277160884155900182727220536914263015493638500802519827556202613685839761605292986743970337790779468589588342382204246629506980383165702980321253703707586790755210341926841899263239584390889789255841970766201215894561893093931945292480718434000180584566372145550546414322429967485324100331139700701085594415705178896184724163714613452028998267997790857470570824905585049206307790067316428177593417548847839852205375113359284949133804366958131197065657852361635467659079119113373838850097461422476973290406425117422125852827519782279992135903582765695442554779763885916659667780749073841417557631978347018931525524471370466122238351226389456856361464932263872494433854165570736784980956157785045623497211988875844379173462958988298085814532156206760631418113724715105361943334290229615308279581836621647452875248069044909939000124111674633584563163720151585603075064956578129713122214892806906164225831677135352784224899632403704005031244793489295487827937128639726384650461818249046598361404422913176545048218257836378891170232155775823856309395815022560592208289336823200649469864515529787775767054364650428195163770397372826568555327012812448990568649722598654269824241134510396612388471721524282663667604456920932908245987444391490931673085829809754402563167167190947017029311019961114934741070115074989875287045813139287000773099725061626153399727096444857235548574180414173706789921101483097164917008856615969477385194501199688516632378425760597160346679490110117882739995326809624815554196754549656021771752462563512942331331869592141070591590055300186480834900039558260526544532258107564775477460180177587971494823570073831308088434082507910060097115155223111352819838723423742624625532065106365188849786028505208921500719961396017737529985281718163122398979945767017172114401371115120588623219660844757732588722948059263541521279976758485069338114027465377769204993284146147123140202200281124977761416577473943253810662167117698628473981387520620416470462967879657223669151954111525863277841073785563157546960157216043393769748716208008452227442799106993193244030274528428065077272634954784687863318535106873284026967570474846643060463363625984802966796781788514810693183163010227564885587244330093369901103605424239742943981990289983523046118665464286641014960668293821070849644735878831845885595423992435007750143809498543999763465272024783033956891305093800952572374162750399323431345717162557508666193795661255935644706822945763652473741539858242642461894898506657429573412698635622701547727858931024900396764505416379647554059845087600652632848691012200172848616773689669612790550373436360820766951319930567353378294709783989955340329318849390812371527275713189285053837994552960502351727565170740156070795669588103498170373453549212364321615115047775942014950826771028279078332497894731311878144199250131861920507761244036377091204545766239607016428236949544856442450570492386309640704862741572723459765647557918343537840486327053525385522454211753184758644732419578417194007463409475687616834501388267883045851816596995389005146652192213570773197273616593316309577227542643970608955085747099315368442128151853122749072468017375852784249007578723940292372234648680914656965932910732827832154647690383339853057858673265285028580467154315073928340718555948292203529599604213115693562799368996102559126432518635387108544601270068311660380327139793715127769015417142824190275933456179672302358163542135610266982834250205098010586106552801408076223806918377446547398737604691936457415159101463627654085839570773079580184317202433886089834147253540469012357293900039247350999322962467273327797755272434192630628221261799004160262635685374153448858645968296950271388955635220091019742503635850817591646914352901324502998495172486819985584217799171619494164610956933252579597739251064191859028361790310005058414950014081900740810478881550578682804988123684495812286306139746408887759455055510987286579219936087895867876336349965388602204982559933743919926964093578627073754226260119822743025678918459540683034374656264676776668550355719056382541373509058351772654544032266878287010770657599796442021409314854041144622091886690056017106750901573378655810349937586956565341156296540717880036602732244233489359875159319935109541400765542173166531843600340458696729803345255761413319971911045459308331967788150913147959666890439646645720478018764900440513879272304967071830659080134307846666825259074839195260902096403373318078405702309107933773458446489443685885103564144790653074569174295107347939080184464520963591426661352122934719830152405659964443528931032474486441592876161615270937952184287018882891417404217384889323817171975148137945131192785117030079658854597027407410524782513408948553799035253748767933250948907128022335168680419172471015407393368291749409165037648579494506495619702788791763054377934874458513803052633699139869044434525718629570570200868499481435711251401779232971211641490893108607355273266461930252021451684925257800295787004157976806516037087303879663824218574810268610201534561496930780109643552190708702389441568357389881998533831021037616392917355601535548243209266807951683708256850982126235651081648592767574688393241051011170417269762897293045393880877939052716598922603425209142067969013806329829599398539001032299987115959490911628606958126565310949137427490421858981896424955635031150456371625151457102904386317100889313434174860227579709051384160860342267875103240625025973333982807922849802451331486263622973967854983133207408302426458782602054965612232597115307536495742436963340307959357417733785937807818148956009820234005706544771853271249553408210066506434030248087960273204357139683505535997117234873405674291563644903057268346739687249891770883937583913231044656640966762299092099323378973372618808880949285597561304262082623589086316314472446894164657622378214004943586192634688507312733030585616211012290750487559511475826703555056730837345842109464875927953933416901748595893620080674965347528536390322282324433626991753747872713218967055957741016538040625424068465242002832776877994706318948157391397808906856938677513519710841361133667780759815263103089815376220008196925330124507920653517207124036091887581564000597254552572473462907047680478946264966330431419193399538418504443780041331921841555147998533166863718460289144085999330453339907646805424066955778032136700592608411551704136035017248768858454965616271501011471059834808485482286315020561451243888437820472944335166541616716542718962043154782246323679648399227023811798567236330106913401064908644592574253376924910187442770578562272460792648534523438775135779943094442241772818856155560664636347430627746665827624129271158261405831965986610280145381674234819134648686142876679740547876504577134390586373783065438030609494165013802671191545949003503523901665912079891169368219126094194782686421879829777158605393582570827527696937212060926844780312812454152625537991654234566111567064872838744715253173034335206751161437179861786294002323342936944772296918332869236683655953414296172046382759927919271163668329693514483269107243261128341707720519101783121293951239676957333710947317025024294500218102287272493067376062852060860288670686766937721299844582474034859220879927869506472196084286380919094847515705924341900351632136486990379999105065476572524174937458916946706380788364538476993817032207263071890433719003212536493668170977951696425103206338763182942380749419187362443794625953869834594965579964712510656625777035562773697947556266703590538201848244186927504504525294632675543954033314894927294370371578529963609601544865272090423055288416745329465564921590804341238375374636679535264942885454132599749689502153210699506843638926422087995675522011188723767370669941060440591784509637062935345986379156042707517379540065110184956231385699051849628541677746673117820632113446371004226109254470250339930751301017173009738102383297649694360946132159958664562901620317368166088827472062658674645998901574647530822713987185181195642413070220321257628351724674502432065116125763351947500285796809322754251576818151489282822145790899240631657267331264917983354486061945477598853881528202530092353280713110916916190188457032768348226919879983381555217375793633268073418582859464166512564389774269813983078283978460305453383691277499633224841710498270289499221783915921443728786909578358823377142842528184261222498961411345570950043894959625049287520631396584850149107802336267059286861968647850070301487032976480801998453491261745064728568891925286865110504907189398861124926867723381539225363662825120658837321155937623007135788302412873460143498843027328322528043022873021794137893131136681967960535444702569264625723629691215510678414032449674420478948580444923232817008355374752082337023668296876909151987228648189557591063106962074393849760017034205598700361469304135376711535251293568676024088175089717173934597746166131611267051294004063354010798715758431916784384734514267710297125712603587916370554988604062009224452953070218168220897754009302525667355416719168243889360000270375771371036003981646174578077870805970869602050316996209778859122390950981954232751224144187538524373075867976289810972305052606736215555685856841314303317445950682572348836415667026915656987657206414228932601955006452557725169938444417319114545554018372855259029244873595911282759891698960141859118994764737436998476540500161698199128261985309354130844557145765150602352648644263467068648996725581846146908154823864638360676415321467684240410783070662279092086458877902905111738118910598744981330279498692100337179001176675376099162869136976345422298571766052493644615253958429369098327559762089064819251061828015576692714911078907565122667985567038347598985402431489749199253806389195135524024718065346756318583489921001130078805438512861049504337938184364207946128551610248383355516261958437774328988691616424275028726610544767926158756451770318090244801098877569375804156156071504953007421668338445188311453545005999920998077099972283861023457447827224139025628773147477192927586395606462188890105243576733992453922013583268260792065743264755477617131822957840139874065593434374080052649554366652026928641154075948771498545006505455263443033944518167351285534232223826483329328781477509971077766723145372942069528041273935540814417954099513850724911932059729374403691487826603583875874143168912351385161404019092270886408427643564323667943880033566646727871596281558450025441574679992843261741525733779508969003568750619011629415985961039142121422754735552702634517914727776471863909663332807043532670013686357531700110497680844759358635373984887594497065645403696927807611096529827649202123023085725487547107508901693393351094349690283593816557533032570082861818995468882091137955547132962284387932529338095647168681674973055198597851154877942264381255027878005978571511837186365635226917352034482505795777911422627792732497821840322285589999153891630637493372640051859086283236084654459654002007572150640177195156577498776440381852337945889513505778345296023455682904190540784574488558060183309712654403951804290212326175953708384688721895057978175960226148246420436959325999603835804473637420443012842609102754673985983012860271035659502028377063718951680979621565221881226017559926522405215787407472543792893403076120511196770079995588597175342579289578961673124656813144822986183263337486519290296073355722060508528490520053570667180512452843574683276133090204982653901784585507100738319504686795086062967917180532695367497392985796393718354273355547564447787368236553733254861839108909017875743013507921394582720786713020935867008709463186009106420556945567435321262199167760617640365774634838011505644117141451235286116286599317467190035539940626010213341889175895426252845965932891077395994144300381638107741655857577619589118357494328736505115919858596321396064041461767967500215483420250384207240567055214111575574514960968662379113568599196435094997543470936991461231658629203509401847373403867328239785297152025216546307363475561258803279244846924678448529486300460918522185350552276204832020044736414944401594239211031900966767176325214474932049180966071178325298926035024610714856577070821236803581822264839843490509618006345401868621134645888045169808767616583247460852964737331081618527225702061976921069268397431417281019048933795357638838704277438591339616888206896357243651752426499909658309403357441289870075626126155910772305815587214567344510521758395476358277082196732086846901196435157119494154370002703626901157594767009449700682864102414568175729811870915212292096949099232913512966533887781875511430015629186499158944090558423851551189948348904995477753645737148406583806344826216853506575415028390364189553291802113114437396192358948353737064775283392756094573916013407208503464921150278983202177862284626557044036423725318270274180904631959924979446725891242401040068583557403641903152612390517416394745251742402706466509644741036513410471577044392023151665492973795592450550125550819451424031190377865364253559476145165732055363369132009099117038712681118606573204473743446306833310389605913854947384899097328060752244296974651227226847704772100003151397867133361034723844099304694033505281574277845489219425100812826710005443381251575731234050280119918874969118765296302963508831944361325123031451237678726488881269931628944816284768857788962637421900767571734338266656922680703779184173944972726458832506686440877872451129760092096044542795382052234536925723813343054743036523936693344490405374940121857098647329956103033145628509906853752831612948772127073070865530568753599108056655033679304440282894241997448017349644152699250444008333822925831409508275601343634355374558802254232445451315562233137965018922824528934742928174437972936730160233526103102709273172163011178640086212470479781764690735604858541547915258024183769683404667168516841103237773843224299752818723357643764851851915970210572633620285291722056196268818881736143916693641100387483082038506274259924481606399923566883808258495020565466517138320796307739864363083271649937214454539760451320225896115367462494115504275736474100284980859676468591351860499090987321378553660008522902940669429715429772812743289968498809290503564778184581958776297363283250557690875313686297038843838425993843842074635790348375156183067633130147499903001312988319095831647919125070863973726846152299276324158559731351729028249276050920617895673955365369283166391655243647266135961084223180935119771413825998185699121325448336771971041067256353215216137843674639497566642098888403633331340844785062107910579439269267302723878100631968268867833813546948682581920725556233630144629304432615328400514554242504635596405112861479510115246029873347532092801951667750715512867690308902335096487172856759595878903494064368962892612407079026341477364821070992931196563616911890965624274969295060351806827683540311934894234977970007703116731285998354213675635989663939227804140204966309494206996786784306255123075421467691585854453518167554630024846643236029612496215808673499857645176697969538151542246339128200415301583336872205207297877579716150679794465582809046794870866125981079867964114878324043078125397965788365348741795880667325810667181823065365325499039896565681741220438077001187454979093572788630983998406097682746089936814332748594945363173665107713278432552105110289645762139553349458252754273251565345976988285186329395127077647263399611089539058255131295856265058174523942507892556827705453931922080315342686599864963252709593128992546911864078417385010218475805547821963229003225022080189798378293529443308067433930604024733417429611418845730754546809355648962773055170552305196741376689697452687024181810984700646654999283237640642600411446651190190340186041793789290920353160890180269982872039368938360642676337906910791262999450093674700085836927592170133534233399268232070846284719262619780798563678418403324746949165329355689957444714329201501434104754831050538861840261957573784042378350814803112578613602201925157109520084686344158010582473785928411558694041205109761680190874167889092175648493036970847242242954676990934555632220429680699918262073777428528575719493498259225296176412823605949925179590745552466551254845308084114410012306997989824574884758320183741193357343213244876670846773624081151590929696254630143744800372063129064146798705276480667273005193346154198690525407760033524481663791575157277097373317561064395437340937391875192280042657685890666337010528511061711292400229583911305580376271361968284674680822477305862644101828806770505746620914434565450262434593707008888942983171435144099248088527800957267321067950720219452390372497360802483679509476652897352871465759895396409155614364301100037967269007522927936969625587218695434567806604316942817740609753468275557526467636309817504123081328735098620156619002692043841442847534215160862560224572370316547306794576903158144226814291772839042581652061884998407027583591594720521610933970551858412972825140265768734253880983544079090474199090426310753807466631214215631577022197693080864478228917514474871813144342136259569445289205910904347619295088797861253278128886918925966052117621738200688800201229481295649243625539071821846339818030195703764413855532287140398121767991354815574220463518306795900552382146366696824807617432134269613174311712017570989910145149627953733226479685797114735823432916858281631816051089391980666070829009984732983860601759968125781084003808585894776392483788922683934692238753987060243286538920850586111290559068509622107801128168494742610666014554009535157921255556062696320936334579819711895017351405008353430614134352809550257810051288711826716843624116775323721316539448311139857454622889983796000428278886620511187319769990464637170665092558141449230553311677751493689989614508854081900076369412451825147571576257219241176232175600123596800635772860574638872386521583550590445095771856056544151512198544439028778208056445691266225831980441087964458305144572977261928548302803401940182426948024482010489162167338524805954236291526668714328384141011792561550251486628012756179815514237036265928275052934395519024476429687235037871064362461875222488866967844596772665969871314943411369860642104419966778505999970739969983850547460640604095185211489993700602495431546263928345969858271289744831102698809115573339566650022003547900155463112668735010410469156328880033473248033783466622799031760071508622171336317211846650701905570380565726914635131781377685287518889146835536423932340490460945985318049387480585183964077542862780805538421601969500365713749942244180405310591064546875161587957935141992075350702330064595932239261581435069201120313063323590557923952313466361169574985200549053561299680760291184983716287577794632532144094683954991320034848578979725984820950264613899416127941048975153036614370703046915387381294299153014190559932923872588423072110263026232458815154979848101650245937751327846983296062679832322711075671176113597943760209396589840714077141783890018847802297065566555583006265104805307983605356799418741261719124449336354942236616612875109352807611368956144654493644406603430667562955802557424534587521964756736614653655208208186021581410881680716968716209643599731898650878882868805724935496869211702927049020479258567913501041105532891128617057669007989849147959699709724339674141160409214929479802329896704288086419483037013993011898122911676450566390798654452619003612104382894729390729995264240495762462765181534819919877026744528034079921678469933839695830353114532199727746841239648863376175703591493957936752367745833375640246805889768355197014904751157438946326459867674754456520466621086060283277239344006461140385513437590322722925151681033844743164157048170287265902527787361820109478349125575542085009360999582133238024876404391759933854114559978612476239295726965031071004499114599862920830154188908521952784369699191239801965997685612322207491768655450027566711471630079627953365912692853371104508546123074891116553859502258060383675143668712930719040959116368932379574733369882779921176794746518462174800621627892007186018192323653161159553804597566503426389831081536211425782609874184845414334308561855289283011799234286499491228024990405288462630063945888527314957290210601173067395376161341199727910621444821088729298889664919974893399508795844090721813086945930407541959884625336442781562029108884629636434872017965288313331151963582555813503946169412130890405390085784484706728532137773384689975062292910834777092504478863901313564548268993719075960463502493053530444253810188056607921003645369637653899602157892214455183398954963126614270286729467700928223860359468390059070241039364458112743999336253498730028330056525568678771173588555328830544078325595309910677163647263144529058787701979670886116056083901637564075167090930547071482668109859178743462167729440604107402324892793400011719742059694294811538319191157114809714536873804856520609680094375648936542469426496714476955129195701791344758621183832242447842965593474321605499886961163953226927576134166797745684691007374669341169066594553112932925300602366570994477199971003116945298065211846302000965267264213418948781160932674496973116859487702367171227788857681751818978922774872598642954746336183559186007095666118609119125958163230330962142453207096262581164351701058259038305829549055856541492264264721174474953008550837827081345430286755076130395236167548259321912368854334622406277561794089517232297666976794241569385116163846035793842917472761637332486549116708980786040876470279775195873855301600725536982500448207811538733589255026720191636610322769991880590085912858129076053021641537719716165368809957299465325992519515457449349976995903428090723361478353290792190845546345542601487923415695191499528694165065062805231763819183014780378638234831433948575231852142527963385167513888977989005695310378641800911169130817434354752369367601975523050000094850481602865654146729147137374561298956804472759013338291395321709094277753542318000609138430820968425948450341624922683450301681093128428059298013297726415222578013300042401843052889924625844769029087628770460689202983290151110129182865182083960616807847628168438749192355297833295732574972918291540558241483229075771649019927120605484782966553740769583001467443357519135115091842479266160595840460480844874969105918161970246299946776304509312182945131643038640620948810750465134653020910016503020086744101801157712853141424737299987773170252729914764306764042262663163999865818817048314380735705993101362006718039765786070877350094021727171072193652715096035247569016755335617842307844184844229666867679997362731749303964057322678738898161844558728792542500827011497170428677200855663095654712628890015698868130999978167754481919502939936635572248689356899699555903454060282881074452644584580549242371162717748408630523531751482521186735599168329234970898018396219947287820235915507193862499098525195037966926725849279650089353616760723579911158850509397512411380699184138629034160239209672078673705465009404000849008034486585698907740100573281820342535666399636539826969769305698088386903447397066904325090151232585444333263602135659464213827556554600887215440242000228887963814532957550226896373865998250623326369708269730325861979795208834701602124825553992970574540147623205088870400838948467701730889706334611833257668163118289799530462216689811845807804009495597113798532792941870093322140435690532715542651766772571784527005245564233792001238215454215427886736441482083459044279367203509936253807282885927699685708949859083500375730023552075314140512134814439993757144374739195613840825780642168500005327765899918008787661984460478608704263737517297165617041575328788978357894634056946088333260340070141920159318663636280126709189054043151481734692678533066218568178712632526916710313674911499374354678232145157023218460177519525526665635348836646707946760493565392991679124138642465943634436649356279807435306364911669763451041398868903651526901931046859391042018740291126469367756001016704157764262844047564045247971554178988702295984742210217434056068521336910970257100553127729715011415271637018248092178371678882198295877819647827707540597951755366704098526349823273412170562798109072408902633806774852416404904901213997113284581233893655654773300139889302014916863737148408494202193876608968341830288050370284074732240274880853011482221270895753288015450677447855769891502922553627401774960386292328251497687169996538779120642970713451870008805089931580538913147084891691826953895569418569192765961325844160069010298930026606697550160072349624663790205090970908773647024084922423299966080130176028627007616925521903758145804866448915667056750203454990091625661254832752091320286137301786090647832656906601212003114885144365810260637922325875111004217663631981105357648753253069196677253829370004810382265881494988453970548498368556692827331085585438403742863693172943303504037135954679352212049795704518435440209527899673341226605698446997638848125007303883414985771497822080154025227257885133521060239163123726575532641763005956020936351128666729191314270103714031999863057819040860036894626131757339081946856441841382845889884633010271987881588015444855440851268621379562717658923846043537289222244689720404483053977915969801818244605159535876980040128296236906146594231195574064769907032977809055944751480596251502357324856102551416199443005535425963443385592019990610430706942108913441399516437906927486081868213370880029757676977519376500673537575611733937372235197619756529266921632668472081236710117563706052680592153697615671466821458984136935432620242080186326490940738492467654638245515844621355478471434515420137795063745393065921931984280674918834046272638693698049940418075681063694904288539325087275028825211602961614635661232749306762614777415592246150469185445152531882249221671352006054035378255609209190175636971762925046355252066261523980833959806296034227075355600320463783528764085162313861847770498355397153295006658268145767376224735397342918710000453817756807831292452468179309745668794596743792608834047548946464852201925004278982855686028684060936241142428188627277879001293838862325598185931905842347918346483483609796391999392769942339560133265766293493418553834197275109191038345463631123557624150694357732297574114965919756541466323913426819916976094232548535794122759615658271033759492613612287539371431475450753190408053776229311319221938040470757608693430403846693092016703434088305551982608064878263710025166144547323613320451216740910206121888485424718905769800664926420890322440485375443385710762305096537017005200618526224922921211945077149853279411177771326713232901315780204182598879346331499619238679921871641939948454468195826245242520419318811536811670522562970161194209257691912194672062902458570788127715986423987118025170570051517597124589242025962083723939690367189761570170476276463980844577572735490921944346890144096733549541398234763838358225444196231235231196547715832643421384231247076691557534455278922873585399231460934345346072118107030875631097701808237729292459904849398980069109287878910121620337345693820728876139412554342923599944153487378106858857775130201852312114950645672816452387649744793061197132889359147920323864224253547711693542996405368655734622252341372462357627020376504777935493182290547358404679105293204094770427669150654219337250549580345084054092237231780919302926727198793426381290616629496765148894792651602448312816038037536017175228679372061930261242378342736963246537118299486107247315348300640400843573508085922766729460900231140815120272495738627688603741532915921461096291855128753567242026295676750167851845552043428980438635887511243042316553031943939693546839954165187115295978827157928227938778344221872783757438542092324097255481026616704919340636862469107227338929802249310851466426845282062472071661145077175614956561373884623588056024901580341019747150474592465231811774998334700497833184701577747317389568338298903377637913239120751168957621579321944719017910312021633444197255545033106943904972510685875104368884705706037074981947722270177271076679676409553318965760556265547380385370591828255366484210419157527743684555047466849818415647273862535758632694283585894428164723357776810814085530753111336400724815084248896433783959303985698185184914730653569576739463431153267804602715450727239897019904700260925075261607871055272194809207869430204960454914307481667567145667407817595922472831166633836661164449155588518471669230823339629197631663922604078533207660481503346920984506944555601945860795539786473816395219475653833980966651171483740820617505900009366434785161689952761045732033465130491035118684741779678814015780213109955900353344296475291520598493931581273772416762080606784234116577326375360920483358887125083026298408402813832244988881951438487590713376194166281529481563713725245573007509260822425649714156897836955159393253208171380783252772764489154162440395903878621231037294946447789435688870684762706326527520938536081655090165935012707918006108303175733239576864172146881513914890411860253343160084181559366397771600107797926842183522385693605932687566226879484059929595619471490628902172469421495593338529138913779935272980211725285762338757724237676723150501254516585372737505568101305009156002147560566545396742621969448404027401657405594124506740715456373672043561854104391912497934355697100842887013595525056575003256604065878670220229608495925950099374605675464876373284255456752218539788846154603161607319790887557796695542374522076374495532388389245946981240234177246301682389902109532217569959182678776383072861421569689806885449813424079272365006930060922054745783467442543703557562174996355428751247755298037046673870229294124729749611501682976136844296012301625192654570540068990166754333333635748126270049738005794142685892713363035224279792086874956398058034163487619177055181297488431729126631369963115783820626379665454619975829722226922740601310091165772847724145118868124646959553371442636594930454023190255257617055049584212608349917072275423526732615851384981818384552473661165913511262836872863063949429776524939246293875867847083872078435285046851780321705010980418921191030008723678567483463247824581690382512366155522959325353468692006768321280150393007169287639147382190838684728964427720638116486604827991625333091407667788729911614156415801054633090528926084294864840666769280786403261085673070042969691576248191086089081350640038926690137877218869625567527347339255547263398577644669470902736487479596574234735761912933465936516048093253183212563840406748225627411761890506641094391893832995742692043633250993281918261991381959760027333968447249469868367950949517769980193376035790595119863756997980774027985115274039292502530500518275399988543133361385548493919300274260549394906479807264493897024734998691200280210292540083562799891619173534534741567746434641473228094907294702236154138127109796640936820228964512018807665341733645870108431759829244221520243952376538563830095237896670986265617420449852554390065574833176156796076819930887474840176729019830509600509630036959660223499773403581352821957377784052212550666505630637623499002941898315858943736799195076885357586085236842154939841517837020741877461827567509623310352296456078534710629416047658804336321900894214308432658875405708907161516917285393683268983812354916977268461420210456140089209985031686951133674074476133280837008278557997087193590719034514397687395209821366419836591917122576339283864952466443729466600051870252326420547680356530506751897160866612742280862312207053802892413771169993621682117466678714184572859778151029492424237317073252040987304450049096247575284739235039716955491300348177493945009323767474788273125678002474864062429785417080451979026990848058270456466569552024125964167732896990930978251128186893661933441702394347044383256219283566145947129359592509247750086969441400068543093141684435854476095976682421589658948035845054299101850891869853869076574011664305088133615559336713551557238429333453915287232760384340504168281166698489567157560717723967429533050593394125590250083449195511822808429308202105115623548360392270961539267489469946556771903070511755062618221098067825458058680760574091203912539868812953379841065351814184881230769628400499608586440289259352727065624695212166233517916109035874609027276610659806778475556150613874489629822326845685990823780364151027242700572219561927176714068251420708490595337215418721480977601721008245192601790795307298446326962114565598141734451917817347655426510844883274742266272297550244031058343549021198293351737614471965825990160247703318901599286762813024812347139737483768461676340021872628262021333466351137654342346190428510441557586781746004825153520819081657482873862035085391286084177456650219284364278991387293493258506803442573952921922663746313924269852571831753475045507960396308368245982309571916045074163962713345944543737859785590685654366201372678314625981990689977741220105634271747796612936876579755822634986166101312726215565565915670632549954831485123261336884724608698045325783214319682472774125557432673226903635793394006643893554429184558115582191958004169007038550877641865189480229891946286916120960856808920358096898629650992213013401946896537219417109980669488242806825166985715636614509062641867070008143408331875632339739713090221053999632673832875660717659843221162551511356582754447391473940260216711429212649752601089094948317666525021579683308101029400325177634337593984234724889820638664689948087891033309530876762766888598750985888564384281481480750739652577243600886010554942754212210753231302055685944549889777854384044591370712810540262900501043032019972524519676705751585164219841488165134776446338034005659470365069875897563892493218425279299658103896482809743723503141035235301158517650021011902857728506031973035171613174444691328789522785041887186467837042034789103035068730795431175033631674270289613732780187327408974542830988436769046363296085624500301599414277425590582447263785952197104999263997503390427428580040941953147692049923418491878406143647052036591059086153753123679308614165592118155941006362099363706311914422272578885496695030710281765132226057415581682944619584491474322217645669641334369028018893755103969641919046993018527876397320339188443045962707572170558082233483785669131905080675511861261732373515098175753271594001018098811781913552051213435248077493474248602168649308645725860464326453280925404324122750052642456715977878245553679023119628026297307893890717335659272235650259953827221164653802719533954887429771579778271196066281649014206132640326028745393446192322379061180394122950834410843852704585629096176501450997289380767538436452764570596179866870821690768266865752625698013296290494669616868307246090785338022974613107463326245371616006490346278662752862995586145737325937085702869861213862028126773363357076378495582846284280029865305604529981802808565256729691342718272629374828599139811178458347568607773996054263846646813246344235942299295297261691043343827050781408374127874962421208444865472587724162257942490101871436425477407744230067099910878499749033330227731392263425179436441929448431687155743643461867849796216979941142916417099629079344860676461188978531743474013536385321740914877717043148346012880978779919653478387589294257009489888125568983557775440327323523009448214778993748326672973535070370176948067853925371472688944351666850498016060089586431407839701191330695834640681679099292822136367641201174031444212217505402682209871993345732811241597638205604253503164946755889256908570058794529336366134812634445374011875833967592684810567681981257218160811823037037802130122265255946035009397253479011663605268012987294288766427012990237070330360000434180698460010908043229856836217422186762442565840623759203984779409140253830282734657266407742019354349451801795385403912921002483306440421562012992760072448548269390901837544683627394698879845319356701452190900579619066273140233096110444002007866999308430518813321463137054045417344221867215800993672317079438286264979652905984943950876433288242980429001298752590782328379673636036419427890487433603179895240624742153488140205066598213254634877818491388753595800057605045869657813139759289388156574109035731395757097531561000147400512003034130220426962698020167415059931351516670562300385156740828241823778484262839512337042659500525610270220620212232978062775406171764410529870196501283265378850764371064187954944328663596586387798581609818654176546476975731158239046356739141643967564650460439640960979486336840708627796605991974918924287031166212280076252160983699086562386756728943175246562744858349832588796043341734048737233547858024272645960431116915099241598640519261415089746020851073049144358775483120898036362875311432312644109173414071481999934934462462329875582023275147263910240921713379959406837766429206538538357110300170286773831446560692103912378767649536239454003097003742850142175690101967387127422322966262708001049437142305943082627873031574798127421158782443667854931711512336361236090411427659363333897262921360842656746940210938471339025013678519953427780080664801309530594644566388682105031009682272791561931343225280298020430307975636688797053564695133079072288337055988793769022555253966034871624257314628264330258371356917692861070573951575450515904704015501986806728320993059665023707159108249446456045075965742626166572327674006365545436613453074173183461908020830407245624876653354113742781320980146529800906997449082244087535760614445950299593158891603665518068014969113367391773523366224512845281776042373120817198384371728158324912663020445999961673274724576204221520866715437297196064083732701252382087483295472441459061407411962530022862906535022144060811715643463687643652344491320440946213849991234908125331221176034116777282776723156220137438836652978076767373893528172539605650407501467496462935831319947356858323384966669825114080273292337430333813141574023589927957070080204532081560615205342328521516814897935653542391076558555356013182422261528155868291064438648749227158350448420190961774863219442095634939462267295202652946120538936927464393835284726759231723277133321343856069340947777008000332465103940795104366242753528532159710265110894457821420132498447227242244459371338562210540598745895603575353121009134376911283904246461725697719343343813975179214760846256588568233672858859066581582636434699636406915645159327340640827207070020870349314180566920957032529403217617596450877641500882107588489861431842867062603211405742464471179945574792127979120196927100625706299929325184233071582853824922276515662179812718866548016417504789509044309346126361115692122870517689992897204807641989274025068543547465101014533521007694216785327234801784239896860400888178523295020253908356409383037480766832428052455543482514681978591352606677498082267955264084282959145720352124560977644745957384572732529659525935975127508815133004567789049021467120969028999338718847504269806413236174404618215218036043965251836768622858493108363614093210405323759239141499609901237846663995642656732716061045426472431936318508534088655417281868385829972923992527409525261610302947788753331854146411540035188108548618174566600581828366564668000011505950014798077194071721666789464291224566127938798568938792160561922768798437230114104252066911207000119560603095985846076014884329224158827306298170568064610381552957582480583103669623321105908041605013040518441391268877022258564700298425467361209844491767295986305089594392152181086843461665449657093536951369618738133326414020866352599919808562656523570700821072594203818520322542100393695179066700314414256997312002550929334124624206321513311866289688350152536490338079864432415459495946677595579031147001392506765098071595358145419342681028402789796348028336430492578495201409444756780251656854565822038734454810519361000062390548597195244224702027696148499342519793411077946443242069259443306137098892034321538406302194323650274170839627949554454307905198882559204073356921739129444153242715047113852556395319593036339925076821906923316048400489851361009182235365578701815178810620237014252781884637367789711951298202848368801212000706426260068270239893722306128807128099314589677667323290001578166855216231712229354981897052732553122932078959714630170314913087407774477034332398520365700751938964205734792220853402339211281764594404967427746001955265683972978490626369627347144372807966675278366270491329021412880801275499617641167743861167603468691025265083366022903049209313537615957115854011379182555452049711366173211012557085056624963034839668997824615406104602615896654094869533665960092705438840170583222662906676043237326449587882987287398193826698336405540223955064273350640359979611555107872157999189508416336445068447080594149074853608599534394693628705501687773672679948870213357614873873725951911986284349373275950170953955629507723923131104587373254649057946730552275914531879238756450108776646848292710878507917073853819260709637970280624519482904238420104467975741968030895453072962429177420044449303723923458307175491840362773638667010753477340345145806414138214615421629938849757489998403561026416567906752103387927862487752258564972150738779699143410644177770004560199749013586495197529032816810573004560054378667515930324108659458444200439259085868863890361584842295044058600528588620112995222564787247468992276428724194862475531977673260611825006630595193427446344277988322170501093244162736003360812305777821826989582052881212744845299825203065464172916499706145860955608562163633624492057747717519980697512224755062356013196074730348206149975526664349419281676640570536336281872812703064232434012684784179971185179033251208584921665667311827718165068632656189970705446470653034920614744304644049189778548337404761191226687146529217357711702454839630835072972715698766358195162024055367003615396646830357987160075270048095765144119971457065755236788277926135916404351869361622451794714648449251747898897218458082354420004435988736141455305922877492957230388561033615869568664019026487749959951899149116348057872018984141576677534038050119914793066789826861934607575674032750993176852796734461631215687212916629007628064916356488864077661102942797387405432314405980440983775068800014031956360454337009012700647699354675277985837549020998027786591014377383003619108363708539360058862515153705703660049842132610464150982999795572595662265789244296537825083025827122394859169048702510762697583755873171379731184041886854980989201725756331011035684097075064971390364880852498139009470443348205057734154519309121953293143207724044895793154755902742960599139230190682374250806353119765576149861793895216029492564712004708669897422176301309184732607184238667212202260685703203300701537000161305857423270387578833737059864696600566744428547793833350819044021865841991313781282044360141426647444510769069320272058155143196462044328949762893749191602277465946067821801721081086140193242922479026946759250931654088891031951068569786728125834828663380676017042804073666887017246276166032113956121295357936791693007501393806792845236444419605089020629547915734572068976073382999569977293267074251817228699123374194839939898137850396339393857249421377786379752448415565391034351658811077629156661304656905252086618796624914499674189948837219634601827921811683948286633465349671997361276184877372374704945645044210211093106765217720831392086289873335339485518937548814696325883117557397890541975907186098478747144936325967911922059674327940504750354023392479280232902056304499100369039021623964914284383679801288283654602341044024490414839648466346994846019852371440293933280589854136828056687406447332667715471997999215536227578193080474942882014650431161090400290367216731113429768620151894664839757705675557797431590912101379981392415109302525315836362621900024486485561253563505632494338082432682990490590775892488838591812070255689929167138570891906454656813420776556263697966163987846432174171707828106020896257210185227690123943970348987876799614178835405128221299948446105848647442356199271287926098262695586572748873234455893414996214209936385851676184246732923028409006966325388778761890003919347688238771928553820988829003583563801939947339679671967521080855946103926080951716664318541855213122021922239875170870499325659926036098165865347832110228610663707693240020172929013216028810897469913782770670592439457752632997730858402963888844048512858378391406959309672194759848314636050170996022993734243909620013407617107031971371305963592434647142425916726496097809127863668135614939374622612688913090347161018056075209020342324071782512270418986079550654179815386937109262123729308441779558287519624251665878762155111838658106911564960357835374818338920651378596360733506870760564747121732164969626884163267544323641281460604332842038452047681066859790363804837143174340921022609938002728538877723225023973311828939513618301703858655728925563557917304974881630717098643752129452135611113003895169498129096922587403778243233087711143944952860742275870878129597727459410564133809996562249794767537343990712367969242680604407366988680510922873732565533801470017818439488289915225116733256327727656707997425180738576823963882232180798398904006979238586050540377429711577585944812267319327576546679766426175281531185966932418045518366154413859235642070136557499428376001653182142916702781224300872362836923258717290914617420627063343903528293382990183452814960647911835440529204068506649550347521730347350592024947818129780320043240554439398203040262905193353524863295166177951453704765260309548731357743351392505715187075233497917459780730696835436951826380032913687851354051435634356695316793391428950822618995674594978316560515051508042884286625943158272649546931394816480422456903491607163370849743717659362136842013361600764234723253449910076606656453645119647560945890368482820731608351641579140164488928569174357094905063803342668575949189044033107854155178873087103472322074288381075444904394787356762914022462947782989001756320718412554107571599418519530981126846978793151007603717967196814610995027748986669345408738480040895342963655479965080100003962595515057214078904981467270626073026939201925653295613661261467088393005909382840592809158257036099694933379650681680370263250394813907618050094206359722782284919188188047987776335584384101367292476109788346741607891935357590795229653713623684029474915489885205068157727782535589487525351279016027344277463510121320773297759939976004182174371278410994306733661316496952931884414857151640316726033016985438382845698696360891791637705691894773335207157005372492227200266960882459277461687298503710177067208930432259246585190389721511574436982528123936824215049703182312582118609515251785727229708701743402816332129459594897795719874422747896270427450406965339668311922754080391063831683358418045490133457912305002960343106663908067097554043586520067436676287340661569084003206951171437574292153275812548147304745575959281882197765467590840367419760118321845500425593593109221761694195060636146933907801790423886078824736923378862647716409964774483875897860615309458269976052112672113777707013395385645754999620875530515854158889331283442894643428376507972862101827010853022444667124207415485633906785486914423417402104475726684356654182594092482896178409192562307038116137375051973663064355403473575868318552214456847688800485507379839872509894178411457625269220547778438846519798573109326454324703802377620907907708443094971228319128269793341556395046501544245344503148690698623527481813300020251480345814129442083656100066039563423049408603332948508895369903168317357468648431972275300772849043577466676712472923597261331317566392205170580793293161395084687997550571332407088515552898347208014580348240462121568675914394839943084858710593269902286968245062452795351986812125332628476986050833343637896957262601550939019992189161041082508627883984665778710526220263877731052779854323069618800146061123667329009541449897891117481371085741249712386998371067338075734529517822858573479847521916993001435166725018052128212149086093887932437753995719867300227851783717602833038868349703548303438139082317274741094309949303113670191375293792270861121356031744980812882928100037904698171191150894240599159322581139535060996087160276814100042253887793578771010116398501032867814892046353691045501171262750478062255832771027912234129621937197333970410298082859863228757851994614100169073829345823798340509209963194566370251729274177721401928060763525160535008146053417012468186228680407919823656402066438805065572100865956684439895993595627422112798801576127092108801879819237824269164072360247810222938510843600331019893419924888688779389871921488569588668608341668142743310796263515378501343607743221857504491088226906909431595998311624812048583436725753970254932423695843523979042547522044794439659298462169009489792947006023197562267781059269792449369776365198488476303049876239251524319231412014722333110539464934393125744804773552236670384767809719629727671282155905393845990201941492720097292925288266140264976951484896694780952530464972803260740564538055781612325942346520350010735368112987584237874111239469826246695175041874318408021197521133366670794378497807579895901954727793059028828074108679616916669092679639863195698019244280659212810888551288249983735154623007427792771227752813532323853695626768045460598658038264258787858129966397046558804263074303739744085449208067598230953013879583261486065348255858033918648958828202288194809350288538619473569956856488052981597519516022512862851946342857268410198873133300502771820614257984635133421098011812237877500764306060470491013890738000699245436592868421583084372071912239373799684367346443109074280202557100403029130213231484334374402107051473132807409371413788988723333938107169708893926618011495698788902027949469297854623810650028689254002919521160789523508171390330091953893345348722780936583631208630359384804340274313440692244850881532323692713936955850977059957182110998715759571661958124004294745551176146940641550765882432091071487944970849358851096070012741000162957540038236433795881059538287714464460022242531848997436840380284573472898040517479247509350128358000934276207623584444553259379465081026866997295426872132611551347066465987279281883422406681746394450696042882324477997459893938688542910318942565354613599857408586614114891939844874324574234301514007663189988007828211232729229208586716590224923033548408164492363399372460825354201309999791362766631953010249566695432132073891798814974830024204359078391890006914518669073076027143974593096442209238314752668999933367580646787644042975519665198645118344754188173985734084220431053015036685616441533714561285522170631784280581448958894237194574357373123921031609039609431433965905809333104298290526065201974468317812312209887656404571872014107131910354801227853697084059639174817005208723016815370795861545230006242526639801473374841025556402004718392718366613161472089950557941762463891436367441288284447387724503287038283152164407338931396176766531971613747413686810158105294163218661009671798053638880480051827255897319778157224630434128914310811211843552575805963330088681188559826117568700144471395552265272437246083155880919705971910239329789586703960438211614501939376216959622115576243113425648492709012239425086759706731342430195489749606669139241257719801742437884354100292538668695659401067423723601501178209815846008886355048649736222448431976785263157977358152919162748743614162568389748243652157867675444924977590485556356529227131396688269954741001344319397585348779795631678187237059139330352179061379854639044392098503894553415054070628155491570969491216606315657295886233996316757224259413837900091229816546095858123930034007925132940794695299232875082774178678643099037851445381486436142632703068873355895672570409916156782813509243393224775303529980879870279561283095727143119516947729457734003822281016964637316056871291405405593645566895208587767919158949050404035088489381233640738771916955930034368757842416763853287341066558707606223246800114976028512489834723317531817437596306714334394128600079136124640404720326648334460826633992674913740948679266073564498696177177104392375673900859707287324410720740771993857922079865103789062097244036113776926402602022469901340133665714304559600136329574631898956065675284605097062613690309109269428544280940993382999953365927801226140530950820623004358945436609430165792636020421095001114461410647606831682228996364945086823372569699994993996303197974086852904796248760713651195986818764703164209741528490220849403948862531022663045610299248826131266064023401765425893528153783039797135914248254762080125706883370532740759699904823416603149772797203358881682016064655234738665722412449092118599668287840380132503851204365971368239181973069008980270184001528918268255852160994272792134346719488676323323989513904342464648606217743430055598588964212620601586381529525149286832668288135751622585259789645621654895600629705641032159964291470532787933644697759568024824993089401919456471352972137722165920975272800010049713434350936051274793495325378495772107583164230253457383056889118174147552539715808149827512489590952420306533025613227787553951011311044480120760363551013219891797418609219437114112649650007369771801776295147828379216592433000605756887057793329075503662145421316603931880515183007966754872889656563779920351791760085849189144417527969476860266495828657576494072330053728767547899729899825254141076838737499318167240405836943181116764676941657524424426843705129917647526258765905368264443213306370205998307203481775556313060852489147555265409996239287883734119366265476256736747505030631403757621859038180531649888036426857540421417351195088430072538544130867753777298422388282851273951309719343563076153958744903798427056724475593656263676923659704901599343509570861769256522020902933215667632029863685826058868919674338468178233285107832920904574642641825870941219961719492210932306316991113966039718761141602052034575712344167785196799557645514798463856410182170651258738217168240646576330825989199903791568418777479406655131102089182054393600159897685468526245669869944423383816557572139672829829212239155670477676972762635446492904101611479474652147728771572902052345284615976424761162368662764464520733688846432462088540224685287336999865177627772012116785013088369108694202089488779954439620299514203563981833685987008405022759321464158820112624228718546726485235992596786332356042347545288630047230328827655695262148942642275814775516426024498122308992206547897352582649550087094540033196095081048170625218568047539740484017842714093298377741745513924183996534949805314480701006547254054676338081218531308837591001470527521922763946091803487011012993121677756107683867738595007601598270417320865057674493754813800085934435102924122807008597882934804061175555169921248122546587590380384086221967991207824856756904417874686860050339875368995439543130807420340965148612310621576694929254139159718758756491297176712173642152764780192301210194897690368388502563873290664311410328959419349033029420964922349519347310446068596642367079797769277434392409219415028497713433575718103063744490642472935613901921673311613203661198839069024413193422035887018860272301945421306045124603012700336130572639610582407748321741997242322260657744542849773803622034145202354507442937336174642061423805572134733898782804380408889393034635988331309296070962495200593634720505007443822743514506464174021923263674013579830146479594150608135818216156405252463519106482333216596807066141883809093005685019268866602422939816939055200940997769883391378347268379095855972802500246161931581388289175215620434661766133272791755719773314612495466882353426913200537750692763580895564822712009079857898162344581951937684187775433793050283902743396040294330164246104270673358788269643137437403436956202922168443991704817807035253194235703679831473343303393099094318852454222057594058025314592102673929571164008897159029965882454409211935596826895120310130291166325681649277922830231501753560000089545067882098318331764163602372379263810410588819739869468466112299199851274244171075823288213531906217498261913486890573192480789792744877137786124470527489502044576521204702351365769145070029725372091499552570476587664668917639528391707416333443632972603802846332508878934999047094824090750628200357418568117210433056309259963315298454023236382954949483952013778838770423737027910849799658113071546823182350371067134593584408455565886753629180740886872730841456439495600217839319875373791810484267220278747431122540386847915380458478877137688377174435123115794100768779365497653718162378360182499157188337433046746778242198628407994778284553250746035298802936570893951312731804012729689811469669326529359471560265598732892664963355013752335101491558844001959055105416352854403800847717180005173204821206342765376160746917434463332740372191940787190761066982002402984752745421691909810275550338954300981399415102770763195384758326301325906416668937546550540669807857583062276414776663685186447599991513880352239945325283218958992798090836195940491653126468788853344495592009065243389318715136045393425760576770175005198152218896536832409309943661698248287103211108976743339196983662937735448706286835382486088739861793024854562601421163986668877532862171638836813354385686484277613812543205476720079598925697360499937467759046010722978635224435892818824097795219462024717162217203495738860038040815675248410416363344190959281262795914413494085928640247438283377279636333701763169454392711152073338983585188339731153283915264796548578979315704603541443516730025966449308281919014141166753802842898963376140078339181223600803305174368819605728504096839901251364573880283017582809171891106031741963042314207563882426093082505430052455831239269801540029804509438755036982525999925077671855100267248545729081356449858231366103809584650932957395989450699711687802463669297246659889148080593520273777077453546854978348045031945446384504535784753266707151689043097415281438579652043998912536433286618301477373579476843549591175089258454633905134391743546087997964324312162393323567249292880666759030267771727465711204017985214010030612960686199776052054250997966628613373253349164387740219123881309564794341672328292295957553935035298618437331327423673033518256746462364766349030469458553016146479658924140495280951798047078390591448814063723343012395916200943866148686971450866172992497385489881518225484847752722398465291828843441516296215802541902542099743151102455199887341205506116435553867343418912979143872853706354705639322188369201126973339932404026186520299702686606173632916960585148978385765713450794491957524673269270990412558168276871902139674971270276685230700342733653539369075906460203587205074830562629047610950682357221271536269024291837772445488576820900862444239665726290156393800222782708979943935660642160119376753283357050123509607016046735226590677484194353089098109625275766081271772231425025887067695139191657639730923139863891698573410254973820305020443789523064577638652705938739074985477476288682612973926233176096702455970893024549556385692600330926359050616810520146964044214486875096336314708745151410184711774108263741403152019108918028649096501471609804406195244505220581333431774182600969154571935510553219409129172078952947571274438194519795606302433934069275940867084379292763936487617291495685008379875583234503114720215905231040438491453093305604537557136107042831813012892759319333199389150269561150483979030578459762437139459418696504543028595870639639356972729392068410577083146972449388803705973560813968239224300529826522158804226207841574186103256811016321909526794170444688913380946443367847604164513502282716281517259171415960246028599726040903501289759489649125011527391167925797850401036949096881793520578000871251252553074633234635348541265875796856250519490214045552388475977217715138992589837385838839393473118933143925069331521315934923676112210578695090633380630430312275431375040533209806308836557060246666899778672635401600359161451209822095750559090778896139953968614264094385544105519871060369588343168532864604363541957108800513932160391655765607216658354980206362013976432870129404732171146081031155991437267908317741408659001744613177034980154989884066695765235107959919322971383540617181901832345684535173080154903288757918080747535335181824455384717143805794180696747895032164734501367710273681597660129368078332654101085988076576857692725780212352962002138474215885653703583366303187999974241771169309548327346070260656299312490825087415893396936673337624591994209161854450858568777535425636010933984630373702880796175835506269129058438661684737512699658864462442053501196710360813013044825751094380061734654878364291968382087805538020862501779478436166065268734370143458453297174734854361241132427304501195747698310374771583155568407888622042335658728433291598666263891006190059840980882778011693388943545610089500404881041863253676267484627749127536784846993322298974947045931892964592609204777435428431418561452131164804375227880396985214846950599289182009343112572310359590466923363616698899440211810933266402805461845822259172503165817806889581289285367881043471815414786854014288554444783183280073443855781112853037764561945483944137013619873411517298722306665627756843263438990721758961288078353706043807199180003887578871494093068721956853293779630557505585383463440601137583513806332655541295821870362397469176768670013421515123922380289776335430755820665287497889601418241457552602964045993379184563790603186660332178791505553082238669535322730493524950039516310163741579454208243137811758200538862386176211037423495242900144190545241905435908980272954030714770597736135854677579589041905606433964182455742252235934867520924326427120904760879570577512822776110827439196688044112038231258977123116882264919170191823083660276031303292533560125407635363706389080637527397017392940453132396952191623692003571858875910326399863221401272803116818787784465274532990418201794356727001063044337347210684706641004115708917171073753685137958235896034838939902331455158237447785570837481302025575572814447882354083354677452030473224854297893035035819258622150846907226233529898886914648831038943395166819163995782256158157586420627646238208922045229414907805337384895366851182883566743472632596934103353794436796391476174492228764689849502406949431497904558119075322495007601302614929621635052186934977783244341296688434433946536977919225563989959730733683702703401773414037472174363977642156758160791044283869835894653973883741252735902779627620048504447019340729256187709150593813840352515610148159320500296108057194898161811548444605165996544369597591273662581395448382452633090572034673569335790524236874121775936704735598701537035402711206849440972273811869492066180186520151293266718291070267671574534322859824206409219830385978487454552771109294686541976500949602537134886350710185160699665724565788919665531052482586282512960086203863676342708005477634147655234496197596822395975922817549948782403633175484394266001361883132441719604965452295111021646377153136994717593894640657125772517891561101053551351942605664481105565699415049124496086638351269249831344207278255875138736129007673657430165356882838514649459746064167455444659268322424314679172965900160731080413920697879186595681746000622477696981100870181702071660899647214851982920297054962828308167984600038860134813613682337915420624967200004333139286199792107009087906311685995004007355987700791225434712304958640536785262504250234059139523662017767637877078405514561604327981576548834638968221433077598739539026850354018056446179385264588662616732311420224708956947285018188257624863791564746375435332998100083645529667304626104282275224731401793555345320696920784738588390863047113867836084618014453274749332237550630446374194210244959838603042822975114214346366065247775327690413366778611600753214188863979570712865799567318220900773703346480807168244173196836249830331757339305249840999291779155866018739800053538678459742993216456504733160645863440796137472354551462012212140616026787646308286727975119289185949177031280205559459995331530670234285655620009510393833655598890247233116741827522275904293972016649291860117399554679610436123160736529474398308682648023478282306167241424476730587950510717798039926013907664754563575402501935763070549920412151760623541099679843872053367152778345809074626191101390417927875353819573574418431266503527532144566502175736032642219820756929025263211486642061141450357086403660188244385787694341265245255416498077239985308565565778943511898273329153009689179523574692751958447698681952068480648730657696408313694399735037863404666153304137259874045974992681138525905375118454747380419380451494595792249667513447424766631509585138362511294339792807980043776439801141717873548804851243299682884880391934798520843071118123177159613199448092170124072204507825426706271983159055863135566954226055458253286221586609285645968435855007594655839546400402627546214317992137995969996666902237504135101158133376159461080484095190764415916303722506191888617512754368628292369927890737801701938294371278423688396135740265215069611872902886061606580340537168940155320993809935982913308047652896995630589527959674564172049614042665555380173511943474985190074030256581861010367166158102572270859941105310734850114669413317947234791541598853440138767104326724510611881521345982847993243357605036522244745068897208478725916922026810984282142547739555440341522907295362754785404200534777688325166850527012782664663356800367235025150735226475027384647083030630514168126294686162672768216037774046421666300123094647831812173132443970999072398029917910759243262483489930324377034894982096805973312553204485733607706161306286548293977315399036095864796853765867715949716707988921096541751179551781600015328765472087146053028299180441039153918720817159968693168956667654607374156926730908617396955949855580091526959334494685200746992072842382000823390744729587213282413248147494967169315788213844509282573513371446858057863581301081884341184549060802987039596472132529279909552103106909015294107924867416709006135713128823191619403862427981969377052810199360235442928798433583285496752805518253140390965241542835963392492892804924169139238858858942691291514045550903028300066712033574706180005019876654908837442589491872469351727661195504411824340568833422588127747787003707560061345982963761527584451810890572902106506783372858515588262839268430403468833298243017484070088351365751698885098801017870209065765926100382401660385421784760305640391387639749883287434039507202063577964216499683255983276778708021098953163630684276874423346542222886574551910406290306773015758960600305616465733022541757868195201067358500723824843207127936258857964662573998074088169071491737652391894387597394964111862558955324037769468540301753049405777152563739299760423336240682693394732527416843521946887842583574926559687882229828312016092406573960841170478268149828720544875284467403455508414736434188811310821374680013479809051478816508612142764872340973235052762084278726778011394518306522992401981778179545068505062184135665174915330369400979361843100328717559389921412595858578936432723460183816992789383144425073107155451596243045837097868704517989430079124815544533892898444017792749981841173808332946778329061927909809520592118170305894094590661975892266994632146861021251557969382338442401066183617584806186417360866420971530643871030371617364404898184381605211148078758113191628840103714001889700558867251607123023624479217043439917746694245698388881203699562065007672488760358554355701304125013376381773817688495160145823911247810541735093198600080042234031069339866654335610138206566761415109972759625709918571616034299543123884514224938012311281371814534184621762505512410830284008182173352706022185446940949650671778069561440338303507502243858193387633678863928693477835475475159990706933584858578327962258671035837043068731071505039903032688481253412940944292243602605158449721242662336649840345322276978174531586818428326516189388360751788965084664657463227275230089731567632281047881473920284687932679349263898652070456412132310099387091317280947785047953434802585954935898135088710556424516968538520358667105261688490926987990041602745645068249816472277481845943516403118537938249176568977260476646459881427505587233559073525527376103915090577997438519149793193280685406334688058174614763388905045350888082613155117183343956450525183098985606055870874007561489298098528304947873883467688752848012384255249195102443981934841194274011847526466563331254922829111319996904214812633206524178798899018965228612944065995858748446913489475097227438174654951272582250890525087390399472593890934952702696706744473078928065425981898480885107380070622116184635362174812882190615690140134270188430723993458319691883605023810997130616013041556639576893118100584679182479736507462127750203721037746611205088798625821545878850497076198479895250064795433049417465636369679444331618268087854821372066563330694217160909674397301622660138810894898649557203839689067981884723222685176595243046076911029348536549260664741133211667889245621867827104996758052406905518185781649900861215298934158880373794265301922690085727060735041066914542243071620194590163652137220529472514250160564033888994513766327791995200431745939055839091281783824979803754392996416486841115677220194373820294521165897314890728498187148879733544048955699483674886056332213075762657503573260490812332303807082114444074357012343587041830777661473719698207926460461194944144381190371768707721375788973192324097998140281034590295682297537098835450746873635160449476740954791568899476748053730703094499581392722085254018783828608716841980679302206380461519318051597812371088406562645544286459555300027972861558742086767743379490770211410695140233045530354685132241107947327585825893675240373148465394291142986810661775442697908202866812457872982458914875179460459366428148648096817448085772580366558595227410986184743299291827807003468375210939729942353883427096311063382739046644313212364541192023804687778500923273150567389829403748411244803757198481734681033822379123388640585816420093664373668038022833053714319160975185018781790968588129577868901134581025514212020062146690347352501679793513496020138183081396512135201481532795043760842353938118138962515837506334687016080237560582031513250753095937400336529410820683376460279580185482905720951065638023755875627605518673473867423524976921362748956100590705900418097510073872634300524986166234897664612951708066801734036721450520034537319018228758789465967252928304693330905292848445937824583792884673242413009370935445830047316102243879977113363122265062013262622599985188499034093655020769124222464375291487406967622700497112168843175865390074226573871781516995906955618629362811575210381736915825650500467057313659007213579766765967810938392212848925191899689695847767196286359629378149893464699088229860205623129444457251123014475857072687888860908576455485374505751630590927856258734529973127933715785800432825170374089562426734177303172126685360998828609998672761146970339877395473635048163495124295719972735876495250117626009982180675491996795812820599487241165220984750255834763027005045191395265063287193611579081342346186175828362607497481515166267106580155299090371229676686524858735529192696174879142628657842170790199490693219636921772372311477608659080514691266299626687144727389298305985720439979826901478015995523190454742082869887560950548480016686357394783627771599772496369794296547905030420440931745997294441396502874629699957727791182834174381867656512103676414139156764229814651784240991911862833987426271877191823477420348915708371634334822821014065746751221216042139295511787679921161512344112127976977378659481054645360462454887282222478342459141905557864652608498010950965036255763990241666615132583495234277704105236552193771719106256934713786800400389500905413238744866467865759216041227338743327391678384952456206623330152391988651598842084889318337746628642790656504761116431660561874419901361409808403122841366178134391925401530750135657922499909826889628425546007887967046114391497704160441356371134061429906665594172046485641812649930173728471161322078698332406986912893239125832092504450327574185652926238066851306282008946676683584130266914264494225079321161213706977583198560539194713396652042446505620591277878912454331372893835652094546524419533575557839665643032705118694814053909035063298332900589579678104309933895581904912701943583463366753452824055864589882585430361270514820246756376103684500110792580372991307756749006321564763774733496722834702067437197381235720775513151945505021339083564606775667170601677289160212726062997516988354455545498616643752753246929856173565550345335895950698367279524261858004977870597256979045029833639197767411456800878273256304179688744159720213476121935561804730940983320283650897750817306418314195885626066342910427632168201195716179418585710379952608770425368491727310707223477840973067884824854942159836598284765538021616482396253689481397874915674185740850657452537512272228653176985734426959968121439747706120074085094724166593774359935692449396530715677599542662971782862301468779128140775429600836850451174385949651478112021498541676991083881947735575100480682687908878995923815656067905642581862708405021740317665302116005709358371627372606632076443421794040596476658048276256079914142537633831570437281622079772094904184119193938278246452744148275505375078089845256277744977985974346845518504966602231233638380598838136911206394713743472221080865394485669376346028190895135371913515016468537699168393214844921879139399931266805382585183504256555786517456513224948402777913245003466421643627800196777772306704870514317480547338874813897972200850106608921320375679987141083614783814401265981098348435202305809851604866581069415965895625228634413293852969155166658477638891178092205761785622408188734445358454496570595072611477899727137252444985944314764015771764765387875600543321218389647438396117089613864735284192768801682414800476019196990899708111880737930861505439483222927741590102104905845263912770422025094678303134681505581168509652454854583709428277952028439007994351360185392202067032685260135286826751426997713345001554004828717039254806716365840610459366088455149078668019131211533984013221012491187680527843853313698228973542987282938407742673422091079607591582224297621914683839883139523385249439475593657124184784064085999331646593823946019128878148618022436385706443074644817197676832294402486933863789522928711855356541574354405597658182048128588664934331608378612718708374212786859817909516607844787551337172830065966040034797994513051742004523171805585865773597569333513695119425803456805743074850683229328567606852559210343071932538901854534854265818190151323073664487224922610183998754067910186301049283529940692794418147345012020698295333721294135136896813682251401383045355102156709773327714020460547518937928747375255312944752323932992318749930801462849971846782302904098982234536350087785238171923432790553078447618745591001372671113702770031236151140001720931223919979586483196117606861001931233146245534426557502012860820544634816414395650865061071070201683490758881921201780657066201553681783770461453801350563413897491588651217627150199380742738311612548792060722706406857062454723332670933489564041998648332457715122622831937541718652523231040398612922965077303687269253891727296607780210620457803974343299673375893885439152980768087962332699588810686232789062130231807084591774700851229249644127265184016474603004907463250841590391366202015137547350993860462293451793811067551889786054287400238378871499055111465428358176886086457142375972443384977293794295238152943601534734051278917499940404216180991106553133605004831538329906275677791960251208792150769308078081922862273784399722926151711070109401851480757941906304759984380284373519513102701332298522249830816476046149982316339719688694739294627703976315281975502114494076504046713302743443642567153887458085179870209469831422098225106635038400051769163917183408389091209315494064973877967841478477766176666916426765054159574683834767417140579105509776729374192464864244857130456686093936360878964677332789062050052687818522696005822240953211911374566272284912606246775863836586301417681910782803739186166866516368592236431445301034560750776863597526794909536277936861892215200225236937506196896745485168573182196007963689113655385559209814647102289961217188724554293579709526775429124039623761147062903858143023446669612209089018678174905274717273848777337964429199074907642395919120663796046298604211289614367953548135606232378368234317703825639474688846436581987562132043168401978015925236991426386288999463691601011335386076157099862612865887919909946359719111847207891321259242535802842705076805240211747860517293324340668276408600620667455424897409932239819227948256291655453694187706423915084866641720306139474746689889947897745089321212858823300077209270101063189599116786329823473555525387696336910437661915924842312856836092751490051720474193113358607717271183729299347556225752508150755523036094643904322050312763995492091871848239734800964371332180247730041218796618140794166389007291958046301963433414185747842070003828909822090255193261247891354534814017655059684391623226156001976920036448679453963222293729713358882576464276816707698675218282719718153281998570036708456040194248515153460548408605122872942521950304893758465448305181295067053450488823050800369909782319637983698742332667367390894455648892869825588583465062176574223855164532850295849154776405307650224894375756037108044694173025197712375641661455622545749346492472773862498231763651141650207980744864928327953212524035141064414491051784310309967329679580639820829924018205031855137612943266798104270394267029718543188077609644180488465674885795713861483017639305143655150933836675941564502614110330126532362726800165419172261818694757469858448061921142219321204039263399887211604215426468078255119500553619378876760760013037927103712000347068369696087092307446233931951576840960119895152862343512029653528834590579014007834570395166703407510678614346597886545040520711882456383528960964201358154340079295252266495954501341939045576181198974116132575762456514247175483469742126204554963386216740193501441157608303232327530283493445706059267674164705112760033596528777974525985421712026242497848722828755748538937525385737000732013211954868925022435154474433938312558536572558400669964325206328212593990519906469679084907069270578185917342705019290644522822184933566463870322842597906843692528115698538265932415347371196827772410511973847799581452192505542509549936496047246931380911261111909949784290157054087662590733287690094734570201838643192818686624392104302903672746251837862936157458927571099292264391913368842991369749195528104622650346631331916917546653321495121385312922865417684086968257508873710410729504610230784528761731924647323716878390804766661532680992691994590176545423599408530879523954056970061071014627989980900418894576906499516223691578451204971684854682692059935811716657555232563303765413956086695340298686983952528848700186048591778133394545045085975484823666782904546242924533221916784357272980615242283783303644396372710513725485195002047086445605253731919800617305570622220415240186759395885724173831665297271109074478991917507530568263447539556363707601511650710364184066465317498193529200997631079257313926003776612326094072973241341699263679775160233682929813621121087573345833996804951449657827341049434881904525654476379966986473148428192485746680660393192861985543018136830890780096075752880490890343062167032106011714379879390039467499815542961340025574460699774868609891463105843754301313342751382468112680881543095802142571580830537481243903342524313526152172639371134984944923546226511254416838603069525046468912734652595378985455078405149190208358015792729755591768336124961440097227394902752175994220482232566423610430760360564515737018497512075425145485767593879114268380302341018025087298219618111337499989322470578076794113225803950084092067514868491459432187248917177309185326675691314574062520512223090682840378960237386810592290920312610501875166669711343985419105960726224100941659165285796172158338262258224958248728813505524875720235688593864339382814965528530959421082881834161276926377700729325465594413282694775832765862681136859081547369145381319039184497479918129513714783690539314080011874647453854025790906840708003623729655339136543024101672410887583727073080472590131892861630709372712875971166782158922022134343190598870760332571325497186899877974843442117453775980502640006613135536392573576203557027685303860110942358698616634477964590851248086751904001351926637905075025281005026667954725210716839534768832741103295504971202136947174116754507786665174109418621871823274128217661968132525157108133284950084273584424023461275316418138444346845354922381813046083815395999976664065770961004875599710846083926338800048366973080129271627092881795463011080161862964891242552484787513376856737058228434299501673551176291098414589964053936664803187905035696383480671952143605970798003088794285989181333484539786862666828044872149611560692105488574128554191870243074680775630034978880614801223528475249837635420622227979380555820745716670628554743954724850014011417242360629952653201447957803328439677537210797046019100519356359835532176011224746664639263918811667761642179149303096843599913733197552321975558941175472025781496938464169630601119986656345896496580611436040553405823102352000217830661140814079980586608099605704129029523205210832240575889910981561838373209460396642524768385361948957172238857617149997697653723841055553010730210625524655456671182576891207417674978158021158055741980917953925195118507363893017496167972054858127239001786153380068891654059414405172521110348575436353487056301854241785819732069926632309005278999698026808274898136005800424871494638958959577001389914031989776799675035013632732742145132762355567855190192619355926870071073163882491511606178893618657819214587338750986761060437837445899446644561902335118235334871021876237668811022387574172423894070049940405531260145121271172381957169921402887614428592171226109129930417247425994465830654624420058441989076496625074963524367984336974244776295209531351131514516095295813056221393408168643285967310825705232842115764626748930810575327049721875000278776390364939755681034093758058814893734886574721304728958873401109279109198551438424773168535186975864602841308030068617390947381199315293780556144712797302383896354194950673673094363725501916438522187864940766712856717262028650393910987278499820673553206678408239525241512663884176532187350014988195528438808658344274447544249740423293517260857495507591933310176473396808487075838751249463307863018133992517604539615696353206091178379034545498157586236712129910553551453020517473075671167421580742199334422794171549089685540656417562026388330515708337479835490066697087122340074544018894907729287052803089627209200536122578039650743888745200524146915118944546328312225820614214754297811061586039176832096284661124417814316234684630986563657810366242319223711184439313655581346520071753128166888085193353426340160138760404763235149020740131616911710913509924439849933274733114647719297050709597029403346421170613738797327364514569553196437415653691820377324045566195591610094911933980406331565485360033600316943688117872718466624101785282476988695793909960536630240383906936027134037417405478671554062825217439740152452082371129745942513439636621933715552587312606797571747739435817954845542876145076739334500982714293702545261612949363456181309179722751266423075348991565119269752162662533498171724864020608738440204329015212564252381639703032058946378054850797570906427619987351243464410675533103995031774112095185693833463220214275119322941911055610173936989677878734986471233163663204627356827852935905169998119113805362733844183290501077612316417431734872182111996078690188257198556603624619319551696641025690118066049136642565440093408132162676907998212813088521269694829615169920037107421665794654757959149065750514556497511687616750076271134157269763803000096699964743753106283590661075353824484719050900716159585015678132424485376385665394438262923545940362324487744639209809305715270834454544918558673229362210642918972859739866588482669853936451073629582031283155975066649413666694127632477763597311054747606424148195975427101019044950032441647516758928409261409535432708279185705866689507216765144217334009621824839197784933442363246726044776633384886176592394853314816830005781364639708734372925962144882501957958085263179070237065692420143085755388900885820969145476890167864803577210142331641511450397928381079418541930010036391670493348181959961376143078084583621624613672822845550943389653846699820826122470735456580780738140937082576049812120353839743666677644830299838577622969733414115934290418719864303411409321005532362660170476728273539811175326694324275134387561953741500259324043206895536724355479650687827500170482849169028325528116203268201433877810657292439839795224960023615664501651668198334445592982767250662506034059290137949738522541546467690951598356474550788759989475606312499953705916682956934463892374653118631921327922068323225805433374167392054574709100364908442715744115108785880077046734182163465505109054249106925276097776423981680863275450130618275974248692243058043929856374831785660226200118376874685427784637926637197029527482084807198395096998569345705919276245158216829640327805415380429908391713411110520277876782237022623385411036724008000115384648212332150368841215166618321667297954015566624239481836118853733598271624099326018355595685610968941848406741308834075083969671478904747601355592015368641633412602412819464244882049358675029766056514649590319170533498200743495730661860254534858605703350789265354278142102012189312905855446195650516948310118504853937730083441261468555247796531937607068138751998782323469668003110708518248883491132676575681315528085620152057538103237441606007106114883027105483336035358386261583897051757470518356829065037207866811735604874746657720087507878275805797221991654742652339580200061817953444682675108170859328830588070184679030712690930425413598315296267122161146586143594265443830130048723057569258451436979840832858790211719071176170509744561552913340846219466437778707898341562027293343794293632546651103562505778669520305987949372484547012046764631980020974045563250858249783049278307638332858587678383026527628913801469954675352447108246651219229286539895581031511638972062401357351921618767800359959414022692806453640285096370502191817597716700392954986192004710856347915525798312369550403344672102994465622385616239979535133982791326392318863496536385317598258420868337221663675622987318767236509611638901270725186085738903147078792534809500799053078823232565350176823518257941612776031426423962923288423184330509518418316287947731832124551265719112281016271615497078267044340389922902550169640476065046221435992508769658742968611137675168268051872681053286508019067615671380057129951287974288260972388800177283464282233394492137772195765710444268420787674727451588975168860678133197206280881980787563525480313722006740446640016010782943313455777109974697054631513018041867487673108383743812439014666814363602742769915150458392342300025892628024249713065415916889331288795261852688466208120362920351367077557889489759372029762795012861242887693478403136994210301536812491781566065971535897698165115273865369566053793230360018845567136693200537178508483126208450593281368673417480636202010076761350719833897426336084390028628683677065771999940492253823642592710338714599178945450424361417772722938252633897147427837284086855312672791996332451300830079685481383208884792635651227012620527103639852400632879877862531143105188187794527726356636439941933638031607360638245199384735495139340674341258742249194242546548759151012563015199204975660441796906147451313419587959149014925408249756719486218138165057136349663806869203468970398082937966068887311618167474819312199780178979742154581496457583035534355106192241181012404978665666043614274301474527749574717522838343840236582115699488670972258858480548471694783014583131712924867834050058486417283073875766008637904382309112088048626819082771218215898485948421886361318515089285511335466924407404702301561177666240959158443225714589216270754376495694454525372972103021327507758377780885660953500477064547783780447361965275159139072751215721126279484165150524522230459146130701366453920808985781003841572264087028959296331586783924618522655816652376363062004215374362446456648351088464782532499229321993800552772600618629689334729613409421579145279239829001140324181026331862600886465771267946403523844174321766302799878200260918907192070512247728854085580856629033236206949017268773197005223642805724577651881773383531350522153328224796985548530702978038896060279079459028197058628346485576703501914028926974508171678126620008522682955546362207644728399451254032634115504601248063395256584061419055632242190088509032779627076158315444216052558304932706483944396384669850339460251209038731934948235503907185776262771939859772899004738105049626497742967415061216253839466674558795855184607534082181710396466783165997111182400841261365977502964569818857996093625632246350430299369615433044748356130643513393542679676879567880861285853132900808740092655302975796010275493846183931484072720652993101943326400363362018656983702847710186525855670141149250754257154108552088341457351140051757514995729426105912712061467927893423479066984700026670937153504659179239125340897389831750036381629155326462931433272064316623521181412155488469118160417653802092073853899593073930294327804520753211038673782769215508927023348505960282445460148905638592357962374298578630427613818266632907081240444086848844989057065119230334372140021993697522685888719835585444476864962302418682424873973754916194968412647372123163875185955540598908907353485204532031778209633816891466982889797273547758852643873101443780548291857765916203135198955589172916596021235151806036346426465640009442453974083103224931697214305857364080916836305112927075059692875363227481548926922089076305252805127010839164006193115599294732643326200107200191500471977641220139033428378649460953854949888021781193735903004038506207859661795781021125095817380620417297824718549281948793269417090444132569437513266394034650210790327575912410824151940520924509775301510384732031473418757867882133028296114983848511053684083638762300297934536669502826171335844578087823152014637284574569487685698214686166703110987656348694399116871056302814488900851832379089222709629492444978258027017576221113433835995795027559815337851310022784239909425482911946628776071523933009247068624086161365203339355736355646735436525018759171057007680117569647773421173459351076853410472792997795924983607911793258736174877856571789891052037514682536230393320067007744426452159684205711238476047882941232080499258364713482044711835847520610684042675064953074408444547303786900986562134570783113054465416997612732654893575859770643228102262815924165618412302600717916642692312578699658629892530594225874738551964633634186866765411206891870103559331701921745732633031476981977368806727386847705754193539402055595240027428398545468429745383970994128801526449456259907076867999885672483677498888628336713230946665087916810795948966954046611005486258051241657346510056096237354926619029496552829551351648973652427093056045126362261452025743742761294617146243804056953262749139648648946830043115497711999017111328566554106105863366567431635756424147447778448910271207987549587186438183947339029098355243076239168901738972823795531375822398540558270923496881865218408206339643636582168298011729264161618688797655091019046349794482165971741468305922829252931871969063907596879866344611625970839766742911543133288758448521012677208382961595378934351113580610672199978282572171765680400112982538367803996092303511286360944328728204069665254925085274959989171793564369297821156509661385365016802159440844878143917579655858958000117527654264859781599511097953585082388555477320219685113432285436265826351149657785195807791801769147660625779873235137873487310163699030880874104907909578814562529021149837334258874559140939157321341024194838303769750644215501406529459729731813549557938318547164893911647760896556339586606420741515232569454039517381642769230802781689262807899526198372456301367587967687107898555930960326798305762456368377628615113807885580933045131089423436508851776167334691675774047277094572248727972465296782020039691259520601398900594197056280534270484836821649312374342018093002266126602253536674671845628780032085974775142987183471409449785096897191307829097629038992636786618629940651056201318291619682261418408974106171766340168739246014847716323395931580829514572184023937023343879258513519595439792016180617240264830330100691802984774490266249343880320427751095537896559475278065092317969685486355390614582269586231593294387702597932342275256214215644702520902733592871280775651654592540019690378373295535695871642786063784946942316998149849562454223317442595407246307703085527711456344446468359335641060302520773394813264848364579332180711164180193840554674381073692264909451380216460385114094631369834057885496284838886198211584062582969350607141117838198433111365293033729602504832493798811893733259395143508466997245719908458612773786930127043704390419610251747814130913276032574810855464217700005416234902073321032738237709944877068075331054016622981994996600148454984705929967441141303029878170023134497434804726176007926396064304083742415440611303939830713313804819814463493312996450441994706374032457206840381990059490533273045251330158776537445005482304911266799182733456303292039737158663111875204852152267812068733215427793549348350031762610158521134728214881563800009805518314383569509273762018407258883511823007686580238019173400229480660230421909337807898284357825088439635221565463349142487870927377961481378336275152834222470137218040299739830615578693736144242568094711256420319914558959950109155650997585706332152004041410558874979233202834358972507536647649124468293384405833048377364240920394353350862442770670074103518310018657494710343344763210120649685155535551202918954149419234895640128220751148099565275654528533537377314139826691529782045572208206769026422858508272346723162175032876860998813673659120256664568572218275989303852479662244263208691260612605631525661679314171355425881467251190378720146947440380386557676805120614579626083744420984534808433846524231352770088189054587435859760661783234093404731141627901716129429775441760771927788431022623583425357931667845725778106116887727663232604742991559612660567514875435340699698271945001367214431283603908544481053134269402087293444705845488320723817240530780992645564008485833892592957182292020572533847884896640287554352162780348851150864689527717142338339850417230426729377123888351455042812230400296364278221631621168635569122109941139818652542920806618934356181097062924419807685881232970720850276731617864767526387670716981124133504355481517184660357545795926656790925778882136878703014781763243656018969102562412705706967486179135356510761920975847834673977477695352821353769572779235510890752518384786796512267776954361433507253422531242176896207054824537999797168359857435108420653221484380841103188744308060747725160759090983761513714053176856427260833405831894431841347661976458508024828588916967551576870906245164745200059259696692528963035896436299031443449169141207589151835446470837880189698767172351450175723292832835787804108140644671715826989792161611472082450424890036449449686053875797454559839133511879515697918362970582336860182027978890452957854754491995268729107097333037085007888385038463270473629778809749293415855209696014506608841101566409324007702574353478291667525593583065202116180370844977304093144977235159856053978885804958634070319274667178717477866552710112546466772543549373700220136626204405425235450467587865740561420623570723304280119287007263026408036053060058713143733767194269710312879128080927395820713002887414167790735392232072194421261369777151862586500382282048760706002991002234989369752008212573494255222532654937995134695832986309175884125340638317140908509125439172016724143889197854492632039208498334645659147254838457376593099113594373050547070516998194623826481662382716355989988321473821123736976199020757719792150195883647658486126822220327295106751426499846226139096502844055393297744476377774753381475496989449769201074858635122744434484656711362679930678599385938453721506789600620067511242117862073443579222525649969943816080548715774557695687191836894400660635010795058648276574495656892760174086627719888397318429895641145360687074331747693988937304474358519736368183149361408905446468964838306875485042747176597706506032927251590129256125138421702881604359094483231281721996081790356374035838402508938297749258444567715364962873983121971910208612768323891761354771705990205815921832449057390639683704019740175463895766188016881292641113727026473406049721079972016975203878323374102153291506089701139659060463862583288359984653201809861777187778768427948072332807221877998025211412689308942054017254368507868738854919067972343647937416773435581591624164076015092366730933824121496460364822212269763955058513073331175389443623262736194671842874888360403573191233664673657929557363138948624762686377613930217678128761508043353265436711596750465972717691310635947234638615083988257524725263229432585688903702778323766949723158777096263799327926893736514111244103964528843406388256611726803239630955420823823747803176193727774456497835801286663326899120816114181992186921625728276274632142123410323449703657999006481803181187856378634880014420360427624837088975522895797034839962660550636300502293363588474408693004262488850004620230402790055360980306928163726992018445870075785781729286203419335016711325669682372724577024465897712503499842202869494202765874969335799597064556646989981342767863545043932458292931387482562681190966347491260977331323733325120743475386721612280017630280947916158310139727963333086294122818417187089751659043358789718305328396357474918556290959025993417469618023197149142548433255153771676188494691898023320476564593483431266954553599264311824106084675487377881064618186479186819850345035915008613845735609538111189977990084381620015846269870502643284901108409909400994742164463092674099576547633681008729066966257800511209699145663311225584142489624509984168832859866160004966738855092539688969431505815616155221543030443346671722960443216985949580874478967730200194476808110148749951024201513015453223633372837370855620122125159254777402302320919447073924915194685915839984210211049652777959206676622460280185285626393673921518571777737039011410761600104580009277452023598059505899944692952226469739206137854282251316267136306221509689114154676959714476522765979595301949816350990490373886942410356072802106554764729949520132243972312940239120263055218462210723470463288786565145122176487712309609931052935867866221099623431373729979090072442501176171624023067009782441518161938529925390353866064043762259548428031865716961153904318579448470253902298698256878885373075041289644954155410533203054291959307530531702242012794335128441957922093062396723168377239320772701911208563721314809622775875865143620523135868678471666014551830214996197744215858921961997038678129454801526839536504254750250512519699961666234253676397717414736961140152822264204766491547234275456357436608797011951528262356270732839282662106839778389671797680632921947656278692624923256886917523538643751467634538975061573057039960117484248779270991813220385479870277610454607266724682788056492267884504497900749749395896818810259072328914691910783379262590523325286617314979080957380874364137733565655136626399754919773170627889340528448644257610491008275114644156080492095815923255412744730300877682510836594457825441964995859229988950127940375854148443625602700936166847206813854840732247465276924819653225347250786880570456794352238075445481595827372738590082670337598947642868840453765413197099069146019275426130037778250918727276872026102182598665398702259577363104583741759986335528540243640003736870200432462681963620655219566453753226101437534147913471045270763307019460632504256475136076401613030354662096776404272641395563470831449063688207189922369675606348191477590207013151947497778952825431532965160685660733032331622494354584979611245333345180574245385304849419545334343657969505652230113751154952067817089320965703839042963597740786149376815118218779394587580345103430520041905649191808055154884895771229830750036493882865761641137232283616466842195613317642413575839609413971889901397296628124704242279503136613796441726082606345139586300358547230977689439249574939252546727970094513457970137977629084536873506226722902646718822774101399755108315154790345590694180072514044031061192356347169020245002102575845197537463900481817933815578534599322530126168933884605659407294002731661741159161919479763700604199935868393953075350817171977612624317367706614345504333279861001455136005493899596692930453492579279562983691721176324560268071478215711402732126441551406790845861773359371510369065588695375112519513940988344737445223021729884772712826360038546991081542647426081528560325289774273118593436126130508987580239762172635330700194241742834647694866467578867367652657638480584923242237546743466630180281064162952081697760538229215580526005441334843498053829768642125188336968613953335998201369435871322992856950490219024542626215183022893540490861948705363416223325602058478732551808104272276503651930724447979373064286393105643243613366036273659027507234427198630292200359854503087019625657032905598211012031944571710235972915456334018355272572057011947472593899196259000586019735247275475399811550765706392762493802587355936846769041001164719039829587426792913907077984422468763228058203465871911614969596053770748970446161565363949031183098491336950279193050497039423818105548908622900206039282332247455043115592243895558982328493830683247086093424661780557915758211287280004788491877543230806205781255418097638385096421394532210635398756160041999289204080384160780949754786057130122748887812365995065090897171630400596671841124599912632043817726774601773181716506156182621361187197077733338045487001424023836929994919776825985563084765396389610095541950106682900640748573216573413196429075941063418515750809302365770803982414974953621556872522477451528684166819120998467393084522173124053966813959255538621085087515502173541711136537530621842910161409438798111579082191286253676640133319143547845175333003982817595948760476406616088806178510507714298107253745626561975787935886121366943171502146681342161873232732460864258243446734703370452998868312129148985522891270121566197510845248392162262866385985033871965056748233349498107905105246076154008093998533010764671785880922465575268315347973976113725737604470473771664983493667100996101791546668131721812245895560707774397476492663532329692985270081374254686870622065399794174254405412367336090622972597686896891692087905373201201999124673886349639515689448158860994380477631017561454553245579685738538371739334803426772751224467159070113719899314924836008440288366146589340779420867522125433075024026663480626096427771300482908444647202396187645512861602114400051474399609686758200955628052625947902537522962874451803524894590466173494921141813207607355938388072532954394781739042945532626763287481284370551268227526398195188373138983848805444471342725744048715425184009444042993185123593385813918573566306295222391285480338574749995772406795503476420178560509623919236852334715637218310044563123215415609571131955623575798049550737651752445665322390204221322725672569819705012193435203866837095804796749430158988415424859223933407567674100963889884604079287973624170603168950052153955445814858674591624018534158780743283029780674248045915304080585348789873079487190915064944931292146792966690524751981755582428556134573098008603751478367347721203198162682331683814167986233533135620932148971650433348909288674117286036435860205454486530361005318650032020244219422040821387550079190246643650173170237943599947042370447882006467462389060892755433685048731182604265079179790763174599338162631928654059709044783757054247822069271611728011952752784311601985668862777270080026179868764215456014623882507543019806566681486268209711502914759291426798297960378790050925423417687088624041613604295289083161486813174065450625008946592224508083768331379338349065471648328547968572688210628784002561065040070708020636015246335058244056018709821427936579714839630227384598841861840776774221964215542509296685537029137872387728676734263739232223905418546634230895790383808107736011240240808513005943907899992621792495821166649378819038367494229748948009536694691966541366542510659265785208355657588425341084776226206913267636465305928879242482137376982214599100591803548458061978173919027747747694765304556332335743141062235004680830688401397471392043802150679052423075242077959409012949765646526267853753451154908080938415649962902930639887899839514981610038766562641264795620482334478582848022916288315555614451828096949789556575049265797695214592832433755675810662093448052371030365394688060999486589774936032122928067041328087382349202386169990970347730093194946311508688742963094575420298005478853700358178549379150641476805951876853831703348019419742262088819689168265013768896010033125081497180549164479699305129635462466871498724254201898736587540413179108669782382341245731594973397875583953009723836082024641115195959919596931421292834340744881248907690109650349127960011077637660158712758261457010398863017911374018872204745649838557872310361832300213677263440401536631865641241067695004001305627199636292554086767203373526171136310086855496754205983551618055291316377451057665504775034841679728145364200376328299490083211550481780861045550382761681625563769423514433503773323913596654429086762906180535271840781086078382417717488602843080142539331698013388716736821687113208274702020577955002415539146644513398424164625486034114811192161011090313299577574580869350557394670097120206238994376543084922043711845903030461791069746922134238702165705727613226648969133195746927766830431027038878644320584304827829590326653938706811732339652005922601529638101262504915193066876911364341678745553320089745245236037337020973375709648542080705358436416115843921065609324708907841002164355119752253555480610171856333640595094133532318329942742998671525671818321728352791385573669343641954384509010617929483169034023220530376152258133572791649672354188567487958525953831600452353120616557883319907058161212987075256957609286102067116085333082277157688451810573200792571225317172101810125784979940490377723982798034332071190438130407192330118496564511693134345691531020086861028015421357612284739240335547664951484362274347785543589710106959636967632682693830942790857085366800147867797448253267638518445802474178113414032670261532887553303105219705143100547436637919105310314153108779103063440912087819331092425766038844444880552329423448433576711821394927438509730823554730902453850209512597066163415525718835972950254175708235268403063047448428719245456272140815561626958078717072706546447982173342034691749037335627277358258524052961788346018806055028811649254423199273132160286020089929113353385740903020584422450241043621832197977282738578047112960044946883214654824383574629096897809956788358406183709545427213335202462899154788806023911900579909921368188782141650193199259778870460391085824283168739157096500270202160409387841125400608699742692017214128311058240854427930922942485188572693219770266563517411048933039193494021842226647729593831576226927546489498705314563645003425979501142658924889076240453302965672287209647488193514852192305892336269895771343601444281092077984208825766808454794976359502233862726063988716039773959695966081225032801281210381444557850996828720673192085864724013507923106277246153087954929250523401250372521951993504341591389036148113174603323869985319440009018918519935230868696962101930246353403875328660762283451068981937695029462896361484941943837678538288213876002821548586767926420815504761582463856904571674358275864708673346465261993525659257039292282984682640335154653748599767424314578168020210388948338219791245117841181913262311217460324777014527958272734846459677742920701397802070951867007621525830171117195293107097328828836241367373024095842356815853705186074984629298413115061384173386194394208098069994669215734162652890586092862971583176223727770206660552036170698116191827089232319820465889819165597622824165690205774994918892714896184955873606189523021033515882465926803808362045916228964624534959990004695678714628804415182770843163184701149383320213275236310708863197319242448072525414290918820976052583994810800991437994322652216407275397191063967224720523980721399183019875311001219337470367779422539120854572173020776586806717673181588322556603857444433527489235541183451608189571059709499494473420824067492818925527007819115951504357357554360981827159546631224803471908253831259033322001473043644373193717842315871647000440496491428028067463145853368358938767590688075950117528860546535652981053527070511807393861094599188213506519138672919961411893738117684930335118802173073916552835815296363361422605847222274405489608766908529905321778473892453077860328680188326319728134480923139250805191368484862868893331373410480092477930366078806073503244207606792017061682445072011002588342295402445083538841129967680250865788703142562921697071628965053230236929736153525731439855356695346676944681884064876513175045471427898032341396092310939055143302264052969000598236158954287392521186376369989557718157220532599900800529681599331072460350948514866305150368350583626608356949290817241323968641913910151511202351342799362436652374064698914827503577228405573252860179509928100444996610432895570749669633182863820924517666152245359981786198654915011496399032006246485310752582730143039740014794135113669837204510257697205004698514490657269772172857312519872094449439095663798511350236148497080365974656773806070834907204549546373113106274272930621287731175177695281790088658490555126774421563123084261934516966611150207076822584226297835215242973106642214281109774063971874824645552754518334742683258249800374854122528932514969413310814777460340926969408347007373783128799594606766763566901394445847751011455330106321776220274040298820154576448310864236652013881067689747851384468972326984676754065789814128413965802903037149237337450167139079216205449231298095670440141860065145529641742830831654235853793310394514114239475768760453732192539056909203148783786537350544761574053722195027893046019959834214064349693703150085654453913806347159006997510738118518789819565960703438055094313033136515220648981071001234788346975058912734545913107824795798371530515609596481082335552874975344973043429419325711769135921205826255122592880801532595817345617642656451043960333922467798273299605269183529187922819506778374949316765400400181764731519008044540394115823119663012551394181694616356948877862211271305648991864446119192312106974180351586392475940046134498594829538111447609233265911210738141831388352290692257689256993390750891845600697257048632066427880403220902046229227824441033402414667262345023752277038267897694082629267824031320474415732019366152941825778789536191705454583571349281302714530119982634067906458467501684605367443899313273874589332691152959514607792386365100466162806746771656733778694902415830485731819164728775659971328001015922999869833182166722272352161158965631554205178894641801033563189837400718226515381759113365029427081913456342786820436406460629909619252542821382319477026260358593000082458408309248056391944546781103251907771487840977937339531005799887792238435161642938499108294580475744409090614898527636343096711137341070864804300208148962683397678682904054982301137227929043044002635320130727985038893117494320606735961041371543736501734052403852459228517606012885403403389966245524741849162821356459472610140193228313094702732171476676535351454382131812142505062310883268125669893761673373168036323383286283831882078226350000266583318750470944945523444157134183856600346869000741942004966949959981974041070784040753196284310586662825311990737200924973079632381359803072671262480367210875947209732222032901033177323667064357665641815986815014185447902182647569059615280648368323116107732703435104711750943321681419034643839884536985896947331059302150246921010997353101048091036873885283220341178820032010247936587895522182018124894238454234387258598270453476432261033816600678362882584582444262950911659338062413933515600080921639123652887158672845397198336788602549130223410507892181332633529759554083605877424800956771552003251852684031856687067728958785654899818377534894829444951468159210265424922992399016676440757344636892058761616561518967190503421039725355386759136167655527957013835803056229618561130958212791017416996562448013056146270091651223139701902881437996089754492739011920031813438818661150330846315904630499518838438290432048493397170856159902360231659083845008757258112625168124444650527563268734581672428006818263125083771360927000182107943626712783660654688846047568716638580802926712098039831135928981330609768811611589775934479109895739871053377942865162999752942859955224019802417579941225939143494292704700399475855968100788181652334738172031398450224699068513442204895660018191354179250828024916906206231725019181838552309830399107391690297644228119459347302717742329074457480021149678775957073381833850069171247869878906752828264635194914532051182688872969676017116451957970678229647416644927098642491586430256423987860442669638901956317825304748027435943264668213674698886601744655222407575439440399149190998004080116202962872041079035556616036290550405233353566778448899426190656117586563768827055904595397180297837178961668739504482833477210047623269133122725253201141701662178024315204184288563862064714625144433385203237304352166740323715087673016840669784869153253381035031520801033176248949902806538190509845820905884918494262795148784631969814384201933702812910796645761210441684743854186392682776008853365550374228547406232771812225141636400219244275533441168630917674398445531020234967618372221507379079854601865438975424093849100587204866708187124124530131832069559349046114114877209424171616358320727913078260171461622580164790741069498087589011545385224185437734475036866616576469549841351347074215726257597414609613521389416057025794067468012240768991605579885575579733487322277176642020583361703287973827855500942640319090804287261282084343961892536988002403788517120663259254463927531719364730740025441149788586522289416155723377451062999316045304172336323947495443589889992378747441745028429758849483843771832903923362018918601165001512825789583746741305953440885180980704653913280641055138035024169708320442853046719494696807887127319331041252089371596436875091323038931889145227165271088614781336255788258291532877346372999532304159472881891470332206053545647664764670711735255355485657489258021587491066225293450065926229980819126252353545103264233327845982854556631458068276001802633992394667812216161691139461508683701610525705634140089885301623267533363888192484935569749655906558249754792644159204204524537016228415842529979084314429784007497380416485103682127670985976510382530945548410221566649030792356556787417860369422999778822872373398827285272957007489485567629953699584492929165973096412552204760282447279529105543222085119533606591641105923605667267907657123557482206004873511291806307710937557059356780452111493012418462226147647658008489208126762058299801000973429395874104993774646598052424289405382070796305605211478296521865371019363232218716239921475503001828713778275997218259894055330900320384142534893044012084774023956912715015864046015873024900275460012367839100223685939755927468400175935561440346629439495345508366859454918972291070563578580871112305593018183341352739812749461982458265700147434932962881517633158732293927149742500018592791397596617670815394110768201344264344769060622326987109759646022864060781360329279863132824623899167355180264856464977880644509002414712647609305542584376651907411473023271778762257018697535673014708452011435746721123490819996557908138747812980910831848867833535068133143996572584491694970181461511878937212530968760027249985207444406901919072001548829506762516779983002877224114323365149643903518712342257371306978927054861232580017753738848505071033943086196572532464317589012790834905624518622275517319520613400699823055989494750620267927246285372252455102936698943522844074195340984596551328495103438243865880436951570185179030441664179524358539130954119727502981152186439928640442562319563926645079925461103511308707413120646160780916377264142404228718892580618989448596661767716129340886255164562109364766787778876958551702312243470724905552699834882992630491821229703840618298028619941038773538439521711194358126106185060380706511053704720719398522872855933037989462735587746952455498705734755717537554554759358986161571669346288330066574251166453751614083285435668613215233896512271471500437399708990849082168122626539002366374655264876554760171830403959008700216650135915042687187839775301002749839165678338198795258118263959334191366831218206376721624914925159460491748043679720492851186156017427875847535180332546809556948343335305186678792005403205346919075001991298470145527136224230540767982425757412403058025139108016861444272725406395958970940852276567719318133036260466057019512294595773701583030534472990770211279065812523401835979646336636773605612063454289649436545827941675938064373932558424647338561102085143863907151449001636565388090373034551065373168859536626133972503903207215479416776805386233899802652605178013859573185008406543738920959026709503855621436661117458662667466645268306785806748491343421911915888275582433310537169477484084678247569121071765866989479458086765526636171817411159161609639368235281085328371642152956259389476882682096201888636523791840866214726186155999886835534578694003243959763323733594991841682392768272880841355052757754032995948862894076528740593441639341173875277319449367809195762553634322000932967792297072575237880847443561350488471371451671671763266116220683775571685585249061325680492793997618465676373864327602350789787856860391713237101833321552544584856523794061127801378465001597627987506185246800587700768830393507623060001618244121275713161586736233868891180705311923408381312742163701305074962785371511348607845616448265265906643861895806120746455126930806021382595963802045375147719801927250866577676376367294431982698575327555488091846209516473471355945637954845189214107423026594282271733512711790353546124653598604534298593177820987489208805316129602973976967718143426416141451423807009129792632612689108101794222406318163821529760094583172072197087345622191907533636722631714591446808377494472427627019085366044284074614356172123814622208394638715450109160275353223514742132973073945026184041280571868272494640923742734380607991030217507704816744649665664426139467115026839321934355305800512843534033362754100903804027451985501178034368867048633598442176815944031238204752200106235553154160420924486350114374726147570989073611274194016556487446501723285553938730293250934473180260978259131483058133992753788123791148071234231387769362925281368873412581827735015714938245530901415381785138259175713931875964776230266923334746616811514941692273740127478104731949577246558972499718557173232949623145385397083129901024134720466774932686696771633353294689103893219806172701411074099875968435421272041844987689830706267563899823752468032406931684611976435455604612594168056675858720719229764926605921078645568581249875435774488461325291366626534322094586111173667365479375269726379284891729600681398987570169662016813381814438402145567840428770611059210638381839790780987689076329150936684372690068258838552313092935772466593261592972919859001346313907021104740608365530148591585540218102613019881214415141321300878381822228112041062333845956808041094205914869502263520265786749210664843959870752101655966306712842130453330762850585114386947594495638587273437407570381437334537327272423398219396710529407411036027327923009219979194954576864824795268076092689811229038865179751553521083083417177492463924958580614786485051525605638162800963738546072797227833543809187815412967782665653483466459307009594320585691111504818138648334996505441928757543999307315065200000858994816475902912622053367424973929267488386578249179926086206180420491627167269302802440272145549232087707926444656647252884260035973984355319945624194360756329138092854987518749709732750657127719728638453545405172148882039045832889899548979735636506742407646811878860084597306889125616885658875921502217226480887791898863491269713084879487382610496107223471045633736484893756976233703171865827087779752592823937224658971899955378560554253797981870896508007196055825421423631729284443091440807798827803205730044596304924992142949558382765086914936668848095595803902834013985450410573873565049264627120933865487177414020156683856325937929412528567321966067020603395887469262736559934769807050610745184462164736348836112734797426136134979748872805239401685934554464023507541488533513107740618305808070141707611645326353995193622709423948594073847841911984430424871565369761276969157712884834479500519053975699376265642156728319632316579452658289818610309634697079255973562037794254937429853167533644128880674334956688316318011057565792629780217744743599598584132178433544450188050679345956902405407801917627516994343049316854980149976414315381850224328465621141297045133053847468671376059041169774801836042487626469790711104522367171967439841185178967546706749717566687790134909046996267594129243065940875053769179917111119816236476209590963037082943762158075677512238288633388091782331428303269626269013239098526571913038810291064018326915358199284309968560428188368084458279557052118532194029037097879469215829920508555841179800716060869345622386130012658575980837516981417185933965129120735317710750914343934868194930278402219838125503987081296438640802168124342406988625963824986394256603733233247508758382058955361972175501804416763612796772255848619321131403749937025712308238928281718107845447684891677741694337450699445508616745409288153919271937321276726942748030380610507800164652862025977592567795398005112746120953087079757502202683617882098952180521715736484031918057866598018692687097455286196694683308760020717003004511877518349477297615473280835377595781030408721530513038660689410215528300557677180074145554310131957980041030572081470966049101315475940611826464900875279854176108205661418359337489508489604786269623397570573612902546205841369213381945541516221648606004032357919365504462314246133593153316379197061079165783421635800442648979427249442355006941138157365733440232853961054999138068402901252145108321462949715466708829519157186770011590047217781626899364901678061983636935922265732725590557405526503457131877537187872331248382716058433235633442195345827536505734101644047433152653414412900273749744418327696319845979209848596815800913047301843945344496578674172030813660391062308322574095009132815833705284583850046356521683307974422174905399008353338079426433598521171693536756593878411114855496643499345324069595987851154711467195893073851784089646650245453959710324766938832787889108253339159783699129213696911250862666523326309637215768459606021186264363707406556849224557358295878893639513495160172896234511118286783298157763635904426481039861322810978124063692609165878740510887593973513615221568148795815701086047839311511216216081928096420031248528741783599554479422252464232162381973132509095994276476071813819488122569625160595387743165704886461414038311811363514108003874175013945315836312441571596379842907990055120439989180590753054986300920227837438282543354398072994809432404153686516717173923925640946759964313572855825847826545518989718730585185745696553397899280201472491354742869874169518917006560862279764626759063958599734818660252521858234001915909829915063855771477375093833396562805624507883332567824944162265257653168364517095573236490325192299244516589733863392874417079901363915832638029764935011794485492817151930387197677837086545815700548989768591213089067889188718552711714252327647041402840355821873962659496219611942940194296002079356306245225487337971563516747987471006051768376767033909790128549322402839181711672149386538183738374418576263250191842455697025396961647502658256498542153012623132076550093003153964097431776045509993294435794560530951025310919650382006546108468617954156909057487966744509467420582562469313558225932044611629324512918757321172382721905549686657247055304682376702634754963892764888764676209827251479617768670011901272880894325237202462933521639881868572014378812666311273258678717150126508613100977858952389589757437108843838137224835752539022131799458838310953118006247617899464233171994309645012262078642911941153529516992160424913163669021565930542283549613890843967749016574926147819106270082023448966657829770614148087095200766322278723712457495699911629163804629790389315105432806302145962884915547897798697450915374289358817015043348107565885963564368976805333555699315181500009647263452018799321374822007857964209338312131358975045737547505479364020293705927436749106917849340863792296111595536059057508774401466215166119102319274167469796977518662025183415630025454101873612647588141621961666596230931410827490097075340571809097821327369848747017444593228118838895567983890188961566341607631411418742878129127014487273847728873675811609420390136961610717065652020757434339689192124109375453498765952312212655607177941499700363130382608868917276486967375376217940571135061595820146873517521981156398548627858883999555944082493871204266754396460163416265742755686968341191328788165785646553502819770395661931311342614753769783812012339005996388950153552844366337927402021451386013248219374204526629178145528319792917580337322582433117742835554659578764412518800760129167148766655896945607360662953831502445490680875529747789849149038368559591632517472103768585143495845150648741291232817792683929210640932835123743110118085424201173606808748887836796484414099377590549854391845892562239175853917814241720512782010475245021628710095919770678216493804424825392195935380387632314562447118694414337484122465808510458291024503278254438792134631527322760109927812103028487801933761061015966667890034995598581062531266429588556530163447695530143227327990076060110313923784903519240894253127416374562765252755730026550806099660642774009702574464386175029616636242610311015328749513989810011517368980260942063601473917443921595175877260041694178074604873937567585867103478049079579850786172095735083805822205033748913590866408752696307153306532061593197363230362980026468367901397485126080943756723704906203971640041971512635064182948923456367183264186856699495292866375738957917650272322029938512642197866406174641044360733353436323294765709467667325446578959439548070314637059841322831952669625593360668474185254288973456370313185301355341587029237350423594600732766510953738929680378644155101523779485876589945681474210881863884698482570373644924508678039947581112201147744376750588552655281140428919183853493859862562875929029006712378590668387936984373961211542989031058133651175393113609026580855227669024314763911161761844928987760953684625750140064372550177503599445443605524292585758650150884767837498725669035358215635323502593577041912023115129757762521946835168404934629639068992549088642719463200612384026582057941768593958536905835641803258411063374051616936078110635443795911736181194259025666042418418782906298741992727022318576870134010742710414825162088919399318985224719531735985221469339069875955257169167854396547662804566740721712387959532120809778244858361080980404372173303229480905365906037640623185301487933436942146938363485422234695630398776387883079419289952019706995964489909628220755567771759098551149331144472102336219750770480961617030011350126385081816041426451042070851027920546716416956463738846767111313581442554847055347424586945194680688507335436662076209182787996246761549065704284008001904077211377559885617694180666107023206299750346417688985613981234480965710841213353314854534142383972264252768988033529832194746593673749623910108240421507525097831486989346600595127959926112048188475751882039121888120585559804335314926225688363266741734249236004601577181717807556827554791735789380117089703456321974034653754316179968829541375085143125888316027370798124821999833607886836640729974884526067032609119551159460497284476219042004063346340774494310968211129991578621704643763191040862039215020977040395538632436188188885802679361001907865989250303030656027354950928679236636921819776845545294868075697616996437586883599524415326923875532723650051739777888454040797161228983530927291002207895432119699537731261726478529014256998548629908516899493503787360250361874389495365008892911357171097555801247527537929514856349611628435962657492551173407882721220087267186052374804923630910008204164902069168435383817712130425788623541030663040323278052905967473502239086741544233228277063190003002060627938480179070768660798707851534527777121748569691774999692131535797615551416257964483373596814013971219157318997185288759508790192521934342778030641887479051328295232112142404864002852974675089087603656684247223983913065403129924254599365690552993676139488038403131682168558177910376746834766805203085696162358452967948785088144797324437027309520842954606568771888406727455268347887529744735725397806288064650395353898796123283868332570939459924698784255458695381341475128565144964476778913568627746905200988019788554693094333352314704767828028648088099635332304820311628708805927383312599883646488471054951086406828142133399155703676045499124029228167757163583989339921741490572059104663796920321830671526493992939930370256160258202679189523484841588901801367477571842018583402043500161056914125656805155754068262042397432981257357068026923086656919682148253718992997342508978237158055434739545299711300175672663357668697739238610369830660810830825802861362609850961324467443840416841340653196963078027742540666016876535794821672562167863100997522502056804648802933922002346253184795803492538819318838419534642716472259002043756146525053776667125167728247267562954990706912005841917061472561387690660428042098274925740945224804035165870801356454444377699719743593907781348339006626205048974235414842997591473746101074502359130210200177081758579521944457194410878913468254448988154275393141183239511026802294729228368760115174650979718948717421992610940832369612543219957665684898353821845155708612797338619697795889028280801440245731660210499047778284764445511558983852878269094772739042458550723017015720651370989935640815077280838055559521916541069011716709810830775854258826838320571856155110818422566890561669819863138789085072678359664500199842185160723997704303907216512592130579719065847428311797419446139481359072661610146940828814772419610229660138695828665126523934281037467997593419439957595817508630137825505471169259239054715460701722453641208258742975907909551090879942397129316738572704455876515769860998221409476884804518734201946486250644077658981173249798294107648518296868531052384645794160679874947507543479236191631968229216735029070037449190720257102758599417020384308060998024683878261170348592756158544242494983385175417233556148140354074509796844151866148596743542177177820418934389137288766742875969386102156172476329912196948588182038362311571957314862611476792623358414038787292795503102642706714697870515554924986556782197385495828756931242045590192160530937852739918346505281370312742230246743738616528904472953505143246115582882776975902741856833084290429235224636339670141572539827525184446310123430099497499411792587451141260047173102453574696455231188318817027363962830944561618233334645944717521309560119652827376184823355771058232936654960193781024522288575926088409778869452737103263939765406650183638196544086731356648325917071648719208100279675782430791996406188218983660524258476798914073586244478234261812585383696116317148615747586230879860074415036444582158933488332866204851587891845664590048200707655250127471949454160125481927822081035260126362482488646144336508082037059839531865058835645324504762144505175188410941525146736281157218928966109628365809827807470836658675472089692897772159096855411525853219758282367353397665956588496497303698497425748580465680764467706979457909127724628986273116696112340296009941735176147300212020244599720474491759901637825233550289734572949267876335668143444887852395906813447127852066241583967965531347565103627474642356776135834373641412863286011434693892829706817647968104466358303819307718937693718273204056025543999106186230189373905414552047878857458366625446672366903308450543333570235455156833284888114687516866287052607313061052240136010486864873734897563200385110062974007338472834699319682609820883757440264200478543758212215482464154494595121814791095258407635744065466906843606891967653211556153432015551848799714205734661392665731816018442614244889227157963886163370999045100551743834442720850285084869141226786055498902080850795950693394736646047381568174722989045132820404809965083561520895317694495721604353597072495969204551845196048383245155467985506708370254939356320325393018091609655776570670372898466972498434190453777756140030355120323138277621927115235621651380106420304633838518137718961664743638049815953388823784279362625885785878607445454496745951033059385266743016142910641749929790047912442985867923490210490523832806792144741959363679435299915455889559062741808851961044398154240226971236642627908285988054473069254151449200909056251573566878179332232757985826224877183643122758740044362250826291727453852825426905966715219694184083469616710371994297914137889597349490043325526454134980473640846484364960691224661386478825557289871360797166527346529227962254381374193002406496197313152113348878569337110915916484188361408375168692231260723021837117376993496353169116945611932821740652888257251320298234374813066266550122933701403675230590036769237865621459527932206723647102211351889331593283477205332916454706196823711973687916585442044551302994613687575866182848044779154091415106112760614024342830688864859602646003195416492738443682126203320432575562194954372292488099350922377494465157825823615889545062956580757984130610819824911082177622271495752901845362514959320646853165238308150016877128436416052198887390586300638785734067557990832668172268830067820850712520723388329925718198322599849398065269059430689446844908418593310101836337544857520950752627092207775197825718665994070885082746721735249374570582956773974653965225545401592531319359813436136826091588850744136550818716436460326212059187132874182347152038511554873722294331624180360710036369087253250621098466346980570240917637088765237626394381997048323904520759667469446057783634667537290661079414221000291127449467802047858392625044068329112290101895435094942313564314166377046765371849139845043589435909196376401615020088805724997504570938155096893621053573268862109284878950295467365297455682252465541450301127862360925309650181815925551830442227477287154069840871136947008582815720061480319384563191279495322827879079463468678209734299739405032639368724195636487133134345450096559767098921831847884766164886144639460495605580288960508327580541419486962913765954115524219787401922907079061092713895604804226183383940456387181242328575113673283745781299412984268449288316503679824097388980405235370570293091595543898733260997218044086763764889580445071743772664129460013670136142690653676622432193423656583883389847839585753575096278691450250602725149254145610244981445093438862269752962450159230296963324876169898619429027626607602287484671127673872147916792681476901527941950553573457462130807080562655672844012627478464716738585692752008960956151200147580365055731731703395343118421432210722642000513690033813404514966097032132203385440723247714240784434553573275753783377136917058280051485798628040978990366756123925848944754163222443752010471723926940855594894989739591664910043424481259128160865527633093946845509628774513700409442347845157658253183009744790662668236162547075595227699611564645948909670672711867505659464159203788635879116491027083259643763803930687374260159458778021835312498179206425750387858022682455777138706484855696876735891951429844610499626759621994346722827888492878058955962188450763124752560960697322082791668161144181171189408326805823477967318357278604405131214255212576043617346106332269290865370967116504694382354950523933184353004743942746932907085851222338343593295763219349764056377526682164248396624586095014410601186007124516063395893867087834452671031700013319646304334831051055596628582922646089661899111327582852318075087998672904254547355339724077999960166496646329708619258006047471438423170876096811990655071394023252429340484390256039542128634676668270611820041574071286299797101746958448832544590676845497921155875587550555840676618417554257831985471123595739994718686983962841463495884106668837600327116072867370087385014573520321914835140487272537369440843731188860180400294334775656905734026123569887830287601700477357051428390352984132102396384938056756510744594975234906681812918752060251838474462083431521078277546267899627259363038029469204058516427117936642644079980482079962023112145139107379756047253007031246413725460645556721309797288025595807259023717653451391721544564623476626366002334973371282210626720189151991769286128483812840487983087657829053789017124884700860461289310338361120844350130068110740693439065424157820949317515944031860395273879489418028750273764179861892971720706018902710691840198337633253171576944981018941686124477421769492422288360674394335027223677394851594274106811168087286046628830105434338241327939562466553058877858940834225966124366492032635880843132788968797455652137740739777956960082813835988410407700471590954896075622641418365147103020943161699996634860425800238601136814630477452000977772346209325948442669581904495868818199584656301346992451443525642771649417891953353693944019798752364462835303326480984092053141619803414241671986040510779971007726881969369532470996264631274631977476567386206835933042440376693904874418538023050652539118320046867989761950477591954233121669101562304342342140107848674730213580847724819479065409337919093997310173784245377932971858424816314341453803786676387063254391822199004820210251028294927915568649714240354734342125811370087008542199449974326404244859356046564492314341264345230493448038516420596677039016009436053132160255884783120379612001116674213213678525653570162520338104639627508447545869294234176231027813947661959693379755903211056872434293536881911590701734128847989847874761437417988887654114043127101989342127247604124105916771092255597464781026724819093744789386896807388571873003802512762140903180317890248349309942100999199242195647603504775725646863900233276560511288350141417293076894497640826178579106698469311031571896291745191885811234646321576381375796023327450478764638036431449372144094196364033611373904670834995789327762561783794116339059873754875667806250654754685712632007202798429079558446428939222593061157328389651726497365429982631790917778488854778652700766054885671798277925999676583383662362398597658636042129585308097386823626602653471080389916690404798800898712568888653728313044243659244420729002077714598082277304103682827095603899693177785189727967664500849700498379600876366568272391916441968973433874083778003321398669769054367436723221306742285271406453760804756115108008129638942264924136734529992860597188793174089120780618862957382030849899901190297067946099103044172795830506259855189549721713852378601765691707363102927326348783758333543922334258163613075021761249068660600593025760549323578529711626732997453728265728050609076796533783602643315796507874397907786405082462059440684166878258962136509637206058970220540025182115627221064542122613650445278842451664702394952789108941268652709696841269973698777639621734238491517775067318927289569800167574308940330151190071684281942686338565576601564766715432537663724536074382326282240214640352956707391410272275706047112060927676674776474572800971457203931668408567323579751776014468277674802472189993340377824065860498390195747050231773260554057047301158128848220167040224440988926813404557384631434779458330474310393407238468590999734202503957043233769156538800527717403211424518540875082784994011946390070953693872340892824187382617216108849264997261882956676448435057638919506337877474414469920948114296785734153448848888456404126097063023931542825749144499568410319569192978584411644437913395723751581121151549691967581897117147070602046565407693624823726376475938335961413774090566750325461478609438345581336999073217972509683127173507604553725577718777672695462299642239403972562023894525233393939776098681973728276461281439468094563936041405331231779798723354922457417148659483348439176289304497173656610858224332690741307198072145329988416721448530335353453997666324779017271403413728984940445173640429912151558511496664041536899869522691929537818851478608025536871654527460849027054047995486037152607278800431910547518233749884712565134601931607445079420755155341136357079816151622925321887018087958487064165461186095656239749683163466238415814232316307602699764811832763975037167267989027769923303016386916873524698022263168816956623080674666778468513688015478423471272128611690389457063992716263542256185181494369491770951547110903810343297854948407000654185976654254660314318614706464748946207037062849840406480908008039291532150855793883750751877934063137170116391535478276758042444191931558539060778879599167578296468063939357299870923393856168531848462866632096434977739289713510255073899177433103799601861328708986845540473732043845266367455785258997638491771966175298901331572538342989553744186300075530329009888046546056198173373008888429911161205167324927340384280405148795053617363469642806187094604579622670369035424623102861550613552242622232251028531548865726946679748256098780834477929440866020240834942568067804689372735639409245111961698470277432981253116879845960964732239807812202449912202636341980565749787990710335357382751211846979534011117345466084300790907336935524324948377700294533776083384535712552501438299812083428924837534307927967546203745792238740917603909631924913828912038103542834758271681252233476836264508697265704707387346169783720699488431089097247648081168404600305919975094892582359895718703041168358520683593683370839745890406251321379413064741943767742842065386996497188914435347225387226502964686433384977462046052688307960735632117701779579671688266467078845825167755674183554678202381650386382286916265990484100414475021884350844333982837215532301663898184581478463032943161233473098175420958894663309681629383828290066294195866272715971325520182522385070364592352162872452788834553664826428483553032709712848467004955856521564583105190257205803767851213490177290097048729055401850175088612978423541677264157098481112443710557929631047034753244601477934367909591218937770016553623025429041912267986226065981236031320779857937716229963561309078502743087059565316229501643514280566510450014902559829728555945582692356033673900028020088362594487372501004093412995084302412098425147502356526504837360949142237114976498278082855231876438782642071704484271800107498131270668121012512828431018930136196451834498364576537899193834034633651010050693833466127053634506168126999935024689356776164552624591193726187991950764674310377873204709456681137136521056001068547974683766505630997117142465674918357360166606389437656095975574313550767407733146280330046725859192332460281052829807552810457338029718922314189020425047469469347312571770943460268399414412193187336008983632687042206069384443632298850884661888823258704232432234989991373099666283869274181723974797146769108695932007810259878064923779874638243836290063667709417590630464774064175316806075035529032692491243601842049579139083121674073842474032808217335723300291891657110418081120439919284325139315201522276797637738923394611221076107620520551813513814457438834299237081415223168824620535596907079911588617219010435327166387556293943082606262514436622766511241579850986922184653047724178658782639712662266595984650479832130033234625014129780206358552893715019712787188909214864860754878493021220031649956610751361734896371539607095869850423307383711493090617067660094293647093913440504811280134347744301126715750754503425997229842624196759003561637011544741012588124614524092310693080139193306858792799478686368834529488226342852643055264956577262010386251168493227868031976182140651503681291235317574190916118040824884402432624856903457183494804045530685042062496615129589573599736323062883999513203964667543723785671616611372294563395456900288158515278353811352439795781409364414758509026386233108872818235839439238361538432700904602075215581506569958908909201929692905526685891736692793463613041328871810524359199114772270920402999933704739862560988349549669159612177185005243289351738127157025550136926973039441965732485568274969584224607226171931805559731346390177130675887214598741235811631951259858996250162459072624978287935560655143863797514902647343824342202751675319619676435218739709951662146864045499010779061187384101752262403465547144494974843263619298877322746621667655422110735164545909118396847321868505059849183800594146217567776734626616274801954450196263422834757626843983570254259437164460587912102310026616576408500495127446442883932871341339200956844157979925113979251270833462671457332565310963033315438734846197583551545613238317260401607480507521049485485626063666337219016270319170146291471066297730919890555859768588487232940038905152926942129820264611920748471953744529263182940485715651835035370197586452271566042989629535278072996466451995473251245821436428425868826588711492845717835877567758031769437324038216612933628781028090439167443961076286593881014066334248905333369369771159457657697609485072047826486955365969050023159900009229603566467945004431703220388525954573372474798274815035893120247847179064431650318368927509506628630517392271359902073706051002263655653522468481819729538896862166906874224674908104902290730823645353109238264746859286035062108974592774897345081866873019664289770884119568160948628307638022528922965669054205348098978162793755093254217380418328754668534049028538708094473307599640138471183932420112293961402434081258488285758677795437154390939678458563410327017602568235561831137323574261987449291135288306135380226741361253801394465905900804733027863053414729432852548019739975602256062625341518501241008260239656435593015341575368516803246669696210499110909975907487943777367050925067294153051322358334892570950645621263426624685477543977447169879905514092447172256815972927059901995159057932087562157156612866886924119527053196418886132319693971749770950445664337341560487000735727006821432584126132180102777483058963192482728129886469138419306435857175350084790864490558293564604203091390803796828189468639241399179408633574289492805693720768589310869522098246755620145772529329294247834532773877455263303156077404811635507386991563355660565315306538458608300602500495814091076214552210563011804880130512170400707677106934552584511851523855175542061681751366671247739058806443432041193929775285400391770198148819389988658395724252692744375772367572226731316888557563739038198334322874769209903130154395665058219616032586244600575000904027011665070302392571884957973261373447598239597804973812346663564869019707475551026429333915812503958420757135316210914814369062472036992047528108763144642871974082292877805213203964572628279118207565762014125337637260176957864818865571657405565995163367013787993713659812228800455855323447051755927620088089553760663827582312426297541240879357198749150500745952250833060221985796821743195336641785866094991216828020644073046206735224167564680575003629366773565020267420737975062187249979680731889420479841787521679581885126631578688693283075360755107289380346335375743919097217329243309830238803105096261988938210748459145981948099470715807652992867575264947851638604423369734171974246703847838602464743074744889303385050132125817519378871159810810591107915399706218893290964713422827636560845659126682112076850949731985828365045292425815321203477852143696077032229546459190153654760895371253983711809042387091159699746765740544642187253222340287198249058702942353283245798045948501864484278461334598242639545075402086033778221595708745484481806490352309278541034944933370578717787792379504552499993018232152417823091292212882472843477498042431950582073584719373632344354846987567220175203647512280679358889126302674585494464227064488447951505187630138768353884386905145606288815021548551228665277272706085414652133775983264357943983847183613701882530574649224357181769542609051368666758217066899635877021014228378299853372400131634423391823393669271933269222130124647501500969685527527717725655318366671388477843121452810378003610347541394533254663821633455825834153902010811859097890386974839703021091750111191630043713101069363279886477461858566887503548501217998061332847461857984299366187739962825604419289656039504022005572138090640636011249970056486321949419722303148858558435009676723388309899338408198186827109239799066300073528685859374727700448503256079260376730018006761737473657034546765496235045608669584151240313520980756438143270524341313379830086411909870647575986313327570052696369377210273688105039845669979476995346952686201241833834389835473138993363171146625978209990220501018286134304413069299842658228600010499606847851613481504244241602777004439736524191555291606639825652012994922151960565225919727773123368505825235372572508520123012302508038367781072697635374957769094349944655388165549924366460772584394699805752844096327023692085586821725455883337853773753898793204349263000716978796878251952649653860511984281702382176787045114284398010901741043927125905963712257443429584980500752104039063866791656305030300070589085713350696446084175139158674905195241884834826840961550196986068433044104344573826134846635604454462603221982164862470934817174079759008006758496999345742995550790771016762703097226180648453535252382447903286936764352369623202013701994394055156894929037505678248054760725346947889164726950166046822602060018745338139278041542169757947439673279016938694467792242467788041947017749200735197831967239261778474046729032035781584181365411199575249234561422939591872954691032016566568905077605482697581346554360430396271044416096566991386452322118798485722384981028127051088409769989520105200145694614967017759498188768672164523248078173654051014131374154127265899039413788246055169035946939622941374442291902745667457541985436672225378979661473535005950631856088711955748433737785717854752668346448710550274834247158157358967781359692910209569006128582929638715905065378370036501061857296012123245039089331697572279714716993774426455502305312600397982592611924407612790305634225471116500023315470162658619477663818079912819691398540747397215508185553530463529144988866510758597962743953689678415568484790959514809119485653025766385837056135490429488421601284854679380399448919464300882223181231040593139048161905541047879016449769577129383626683593899421389723507983855079715744144788438536081333668817172994387526448956174452533510865394213963587638366211384304470511445999204687056592976545491785576032501395077537382896520501647937952864343200872445143242697060989060910874388243105715169694638033832706522613195629981251539389046672797162554587340128491354710362885138324333486299860929368303307979309832616588896787116489608057408791466062744258742371898840381566512070964071345718665023350118595736642683465644921170874842822189367950213121689289124152122171627663142973139225168172883857373663494976054512985683025903854568753826393551280518438755335130148491023540754321604179001535920464186938369574170857390872979737945696529253020090131561683754043714237009965806977878967687986865930985395250354282971289200675249728618109839549361280298824455676046048343453409325638659173290713533526059638757494095526496454518441265222138875984952615751229929782012396741582762154725593627350314793145841230363759383365250333736260374712766418412173995858188365253254860434505059638325324892465528821133629975461741977774630919585401990686692143578425164671848527186372868268793998866194977461292732126366488684944940785826989611993893633575441905164603012761311405696455614564090070665156378164581725440922356820554592160939742955408658090358634527920736848570838626128119996985737453610620815603633833737882088987691416195995681022639916298500902044014857104613293171608816454823015818791816826260162743024626533447919713137918577216025618078060583218847809752841412490077535854602861466121794415023460244681243154297862543613210807430549979387621743124402040010894675750654716355589080350628745220499378321332293362091245705433892899282371550914880236304991961607586649073607196930794068582792810656904996071927660716863751829339796514781436533037324004227084804625515953333174066110216486252174884392441067271498005438337979383424008278318163329799686157658128180979774963191992302017136604161629686723666097507335944212278335811607276524116191031384885474953042635138871402794020931766934499492902591319932944541775390103245229294543123590132953748427039777173079798730284115692297952279177450146448050018244059388484027038114740329134829826618023481255114291765486538534678653380388865597023597474621082209032313138315156930761608586674892931456159691084102501380242040710904717929626334593108024124102397870133741200997418005759951083635732341421159080210250058524443624225220754932021952282711150625682530765231566186191174553835935172983207072731734612723353401542085911939625730195502482192070154886328051957057087391185243441677428555347066725370921837961407352696456396351778773994294754035667245511668750992926836905178070289417281195318302103054581726559544899164744027281955115386889429660872110804668873569508162361748351922410030365828443396199589756344126947827098815936957476960612588269584658414686594463655370371364870047257658425301899971059038583323387960450222639119043724409820918475338171690811552852259077079250614193465027356439809183542087929995960966124912856143274068025525607680474488749675922152940942780855980393882209203184929654559199406101532560703282577910439582619176012456358560871310808181516666420946030128329791088618385045219099608720692268543193198727887071760948956533119492459477828329842261303540552198394619818318575289389726245894691773355829689034302332969777852439767886247210759070848893844552265242668443173424933639494730235641972140435559171134694026505618734260622233394386857180960111953203162249313061411372087023012493653489995342370133253462485518250917611550351111987536243334351708373695038295641363319530071807962502776600705873387685264980408639062265195895642440631056592199924936696977402150610771212100685469726864449056169203566353790919227299164448225004930896117705272981420679031877800236904790322271826512426852130814321985277346615758344730470079716877161278010356107200372311434134433757520528710148742129705982142330261538169793497157606437563464011277306607949287312322161677848529163291374768252590786003544035319091367657043316991193392947362921273473704412719701958029537788799113903057811019057910286366773259540967518748562483071916455693711433647217382109121071713953956607382664956247968756156593345167611671489184558967081665950440720041636364134532223234047357276086779352196439126007098540935550091931544039797403929709837328809415230428337580824043405697475921061292732445109362414334852335505326169234853932259762176181382482343883962661100682191995361436984715154331366786697172198852129000392408279430844258538897720625014802474321495009414141000600070279156422233652643033179518355691523876538318495270473394224924199086166026985211478565987502409007385806541284310908160025035166283962112317903217660796958286399324071318210308656564995703046440375622805247389146250767276412958034908503737200235155951788895420811788079868033538554300431799667494505625280931270254756369476737942580532099226704684479236680861745361352943072266104832999369686566942106792477348696237642944127214714122263941451775668280466409654040473576919558514068530503300025585646982909807140833562267164766951969039642402466163348655395076407434549234098761295793491738624035123406370553164634244404392552161485275349337534012318155819146363544546789118388904724408767086793589344659609425007445934247065886939125930904573690567414761047525691102147978236209110445896258763381177398786661333575134956501258699686990418238144449975069923807134770931584693164906741817836421252049801356582847637125047096505136412452412430721912334735646297012958709083234228042037355393777923343928707145436214301743170022512273733603721716336655586447075953654206722055681261906611150764440727871602301772629473731638151631198869250532355459320196656537917378264095351301284125057300382266854081670691508061535581726091725071643698940931384444590537116251290514017739720572899045263188885153105950725307015017779307017490824498860408677877965396512581320594909547347151172287771433431272236987909861610003593643845839723905698524056188639756993458095850816389542658972082117207752057625425083040424049636397117662697735115950674402543223793767229783308002721763952116259051233682446576309875086114066687886120795464847699288876268642132405246926945942635933146703188845850763341999890575392380176661478341009145679701449600604970437371518683332894788692702300516214979604807938197496121119484979619522778216966997009296187989642492764661837380071015309994405821788638455132962894095832247830420537894781519878972225633754325347188529437594432348091278549593745028498554115405073213888602394778615632422219510681110872733553040009255087287703353147019007915447414809221425034523618921313419863912603198123772398718100773611184607817359230365901592066380854709555119124857330230012477353987969050791467977335678973775010820178800580182183318099826796820600243585575512330049777777455979119724542385554649258506344666460282078181208619972414925087473040017775590090390985708453300690206061865191761018900338936665059244365081098015065752834730513038426879202460684520137171542510760240600952792703467901581589386218341384576196331366529726253019814766529396164884503807049551413359823374119823654352899979170735887015034417997823566117384174199024019706616992001610685670309546242201264446853134124744051032495178801879144321220964166870884481601795419527736017566569194466559593790606309153752206356653983562244591913310535131560888226540382873679052496639278718964780919396977640849479435647178883016414453666165067006238404389796043476238234187276362561477775418930678265834718508914599919182203833276128451170491961969538005557163295756419381931731606316141364418052595099149591942378967828209858977403649920460710695851362766740623452459177451470803032651645274856769608182986071035020543675487349431466766856959312392737399840947266468822120802390883345356655332263516511901240557028899853266471127553098855392594082430934975835458047341325627580606409211158274025530563705613998042309268460842248999839703488694095303821784198503748912521397139840464841019293960905789848197715098856379754864071297755196694942202600371788426029011049855423493701418247090040887061987650792701942527067524243274105291302624704088783171332421278299355442085099974821893411278812719282819535658458992491082969921440825704328507733397592849601943362791345472617231945881263923459915626414856110034899519623996023689036579740733079907150352521852904259538809496240518618840859493239922912881130921907696934501318766003446133811306065706209193667533115323153122100060794711994427430392479145230383207682142618005678660135196633573473292890422048655004435958869166570549898140336011921880310614169125653677793938709869278634373571830638386916172670688442354070739816055106564279812751548354902931627618727486331695385268004155510397140417864337357972905448562163487593776135839055686688962321114838874043086371628507453618533071765373564843771196808619282086023312549120202155064808088555996101529242106817231698943005649395668376052966149470039501055687305331981672101074725102925183640836571670746224230744546631551447565592910932865518997082965591836788387174963479795839288560739068139540527215478776462343188743205196269502976880554672853401374987068559473721398121410078009931139664386278268331658096718647100650004351001907447272483957756723698014679127809798364263394412141379724326324244990137990129081348111042876676989512612793043559023008399416578316906895785197829803939301694178652345787433060388563398181060024562014977646710190198078418542084378709015839658228385489945148986519436933069260964020939336968439538127659277878346728531870102220183333423527231366514741403160941330242483513437883610181872564687952417305864125602501718028182338744794524806331004996689556391832194610946533412412083431067219192524004196575521318255396243955541927297345489920730362800577716325420605131724528004497135154126253343842582594912722621944755498660881485496580531277825826206209470263729074416920324219950840187320150494567312848873690321353931078105636167557573404446676458481167767493564920326079535473856509823796937254031140104104696043465201333135438417340062393786007728645723651415865197965454105370838560406028026281340898999425311287949956672010707182948893912365356533289958863476077452397689891548627461556653079518282246977226619257862149623266076147169359092062796170472487298075793895689877621557342528390829349327257846563297448743289756582015203704182665108043021094513738975281262454589602715674547880425665938261898588356796712202100506820039609436335383710161993324364230498376401930842128951746935783695131508357507781945370346156426625518440449923016655004553695554097768290107017558727008208187322202661889036305795604014528936457178099217837341238280971789303573018421067214220911363393317986660859837472157271097518725123340523982966633035606457099377386702453302071868994561197400856205575493198654586365173474564986485548581473610960914552359159431066844065058747691100211249641428323836291021862231383838229709692874672312262028756736201606863209271304858826851729587492370819953473851339358604327468460100414399406590486829329712060303512107332958797349770583884561908488042620084751781538647368808333427250229866152981475173648407255592318314085942159117272940702261589809703324981590835163692202381683928645846794373436771464886038192107465389914656295805736382140241971855214310912667917004204355045841434079806385369394840439847422624757420497981234001874102511702291836775311587356339170494998807068205101847653554248182107879828943521431428714475585067375397681111164560735084594695648987065663056098595686823951215608569610317323861271738125487171148214122505538599845037980387834472820961477833550479702989126466812534603848950968507252552328278304777390342851149005403916649782929863541234964571103412652819415252844186457483653895375740002009414052906386710054479850914720397162708735104417575893298052485145418752314260465403702225221714917875437612845109526346696482791802526842330781278592705096810780802530815577361299933789506000106277714004978019866205557512970017837685391134455485735835135178758609742594003205390600736395256570677976269945497065364637610150107849994648939021557880824260656610868647849531877604215141988986488375555967875182640223350917585365603317476831323293459290969191514187654334361370429762977198911743544887533759504203210728124757811639265668210325553257037219591856111178960657237022983208824260287669185176594691245670167937660945901278300130441056910070630631758845774074087434352754681714446072333730532405773179460943910063822370976639639895689126713141587163851568184597724710304344209449515781284513723333621102080123230738472005335251352898998867946932294570376933797283224037341583448047964479754963044537809703229416894382096461948730906852025119612505310508689259820436464064918749610000600808328561224494594188325011908811725093168480952034927895128551010040826921216629535051127456123565331381182034677358728104456028362334085276652962143838242668877484760216044144921141944303537834804113539276467680316347796771216686276109816561999639620161683655875246553670697334359262271976471210447710993888413348023457678243925636955224966041777349393587408987608249311899101585411883355412430982804086870531025208200848610466160271127910829573805749844089746739964025844392953678036428346438100901791394453530424138703264136978580744795845234579413582057371217459373400611606762744251459773190811505891247369356780565993537263665161613725483251770804726985819382914702079445800937772983042095300365303990429398523111761777235925072335025938206971822698407887235674666256784115045030817110279653136196698247303530307472784725293678696644686941296432465920922638685229579306318100472273162550382055713908332953829106613647982932202089297499943237275109031449288996440647407787588663282803227297795597626438130891375820530898194933727599124609156932354242916194801220782330497537746304013509214741050369164718911998999914077640787391662046616520178998361527555489025525828230718936202287798489500129301703572431816613551993436746218297940723457659847847468406243921499169627849182945845752499653508914382571333175005267065410595512468965232718247370938861087132235669771378379290369717098109482126162070858929846696708760060105322035626640234562916764345563031810911098383242731272837821021303845455268515923826177398694012330597047870752057270774326474578106114875078530427111874815159851484842467452212043264864243037033723360338559041657588853131151686904936264148284132239382103597438944351126520364401673904058811283254326668736272253725385921809202726103345097189661256595673531102163374185752588236040522142902315854302245447853209055362864428670538727334391978260949641297934417688157809815389476535110319524179833512178799112997465780839110397124643929298585493645406180964976935206915494782556490016970218468182862171416171541408602978605327830637295680627600496622611724441113867777585805174733543317577652015400676829414399049237530228917057350037945040079543950241980315699468833595374266357887603257256005523209783108712856471348719714900828940039794246681182234616573724913746461252407695229131571409308805700899954264802406787558248039790127510855198265766520386669461297118222959616561302073989100599440265791216480038769600137326617282151618408294366357388075783453280083062537413914830772976616871749533631681438301898415847729040663914449121508397284049100632990756074147863609376962080326697326147960962935253266133627309915674769855801058728997575785653017934405118250894035360789754182888972569460597747390470400918162882805744271664824911623336415200466839639202247601022264598897096660777321647012158894876311768631623806511956452158242637489739391645491088065247245808268133168937340247401178654854871079626128071304155311509897015107009261524588339673680589669912529055331762309924341484533024662422790499627942974866889734266364021918174598839293181179541610343963852984594627675177104773904107961631462495580109565645867232437620663290326312902051871285973979535564258792418543415696452954383181810719412748317486995772091231168893434697216770452080363822092892577722285179965213378989802894246633900939790828099521706087979838809185591513404013297107651405602497987063474278799989893323843574023673892621262195493543057758577323971958517597830359433320851383034677145110369595038505112677599582918777538215204702678981535702750941540789499760766124088739231534861882962057303808144736629892796398454458661732980584676928866754378470535175365517652957251829720715464950936965774824550686668148578852417575398706129471742668513656339164136759726658249736728845660144632667482383601724426876172976740315852097522611624553716082318345916205950451543574820203802129048564707521553437916969570306549639381771569872682791843881349501096013593319366475767203394655313688332239567900207662367969558049720425098897195087924359804797133933601821959519414869294682652681273032424051650934889217992867523636128189987227099705339421430435025121295864096265871380063020532417485530277041627950112045788278869073175010573588930023251032828847234052953070903159685637834027156594741173725272555350932425557556378044365516850698627562538998601418043720069619064009871363816220814885194515855356754620643154754040938979797455717503598251424658019498954397615767369040653902559571501055612929612066022057536471753904039456407427620286822454902722742091878047530023674068523779851410923528399042993392509976470956778608990152711013267091013759227923705089232623624051771486148465623543431466336153987062504495785013405590866835300238275559588234627557355137646106244349491593227504996542129331670941273310472808897898473017568540026530737716496567943127550300656988037605610192456683364744831312881210561997304146424771305390621460987273752532274224679461195926596651219586683138974675943619342833465348866262623703522949821742693389636780248090690053654465633042321654256787658192920011899621257801897134318012789747762562406637136588987671814447042811126305848545125871137722879787395323619129452339322552153822353062884479281252327682411621719171018515982539061045964241624859603021343800273125517850682980318311419227023587855954109247235312273776253393897951464119221344053853870576611646522470900145871026660426308243888558778957099173834437217889000809809698456103647347434923985813457671594723417928155858590456595744299650243411201446386773615610445571441045306081571311021854605946250981260105134739488193306822363297954401897611015167211786801314936142110555716457645256664169852655805233113369753087696239415113318315445203247678480571712589035467378407314449466947774237827557564439755098314818215314020638466678488309663580059632989141310304041425431355079444656050303039233666096337213805379382096002140145863453568502202780038252804479470777047034835290343830419548877726093428356372492342568418323662792963143233622957543703640003047985129003092283536542318805866308322395637605970361691873832283405100410072706269259166857812015689178541125736527840216533539641711871578316742019893531621517623902643823531409658379996796419254422841714546225745967111907455354314113910114069730564030352323876927225486124311523039189749542187089832298550235294414791659154904913536721340350273040295646597452027244197680639689069956616133416645497607680535307760984665655971314764587371703046221974156511569135721428876453076625885480541607829993515578990553965463919955238630460936872519672251415752258341679119082849025331011304004227130635531621477917609897488291261992946812369561831704174176588080238248591787990436764455396093717701393686947578494993172420093512810336357293567451898213696921210302797812699490316811969098950382482861023472370915265904057506452468877627083198237240029268796078540226375533527693010306414261329706532731920943227725912360334390522407335869537457614223368617595194403654675789608278542850282631450757393594056675138751643409470054061402218676874943228527816059799770177164094816303575273379644440089441551693541803117245559282963325454593403330515951801984893079950334525651665778137988835836277544970376872439939745981510423703914292661375935247475925308505341163890282927869942741411465848092720813318116984690289047799281693526923869063371986430872232322928922968403324943862353953849476035469845951016198491824852859039260789433983391629515498559265379235694217228038157119935029089630202258915948591668937814626542700506093202726404971168115545333676998331427217142961913913003819049094720494169269476930276760229107688221720838572751114756848390356271615114988281542325381905150011623065123326774189138311746077589527895804950347838285665161486812127408201553784829623229956916253269763947071048585229794809866184077743909122937059793566773011155780260542460669029377366217374123851232981655253131190737753846228932641147881433677380967809528401292471367158524174148325973737843417396257468621988737537975576000369496136819709497179684144806598665816579373034408982250042664004328667586807112413074849750531458541408538155714663781247399291715996728020020548295525552739491870979323435346315490757171737894818556052249779672166618925273980227455685632255142229902440260809206106826003575574984050523850593331395076024072021019140844391958836479102562712402972471276155359434181275224224883610978918552156333941872331447392050896815709140363836647230455415041928730021228846725099377351787514979766811540687249814463582220129453576998086081788912396946405374462736703255607803139845790283313127754131667668660212004174316246641047640463816212555446909376000041526977173994517398027259610291976312462080355690845401207564980636677071861083873846268653819227236083301285834922481784626459044268331620064001222813968783673888479163511060655532211131417327365584849143747111204265024776897126801916145730810544449491034556385389788072022098253238475733405922467348868623736478519600122318980820494661985425320728831085686543218477222714139047036768385117006275315888272435488852271339268562528898034297526067008951040858757664956208221438987904297241760605081293422165694847246859976463482222326629512482900264018549740685201049502688262203287175685094361046818340414165642983641024692528975968087448576199517348344834569314197776872570879067249567877019510214491384445475273325761256414003682929144483509170062053281654268764707459094037978645537186164969682933611036418312984859918638800587430338781452648439066145907905544882426991527466526249487409471057671876595795388562831980863337217944468722379801751635360744318478227764604048491547591242002467532506731670723498303196926979408221178884486219712073491778088245031978929139237624532760040563346454201624383497519780813129164656141258756680081362956649262056621889018637388387326401833811852341437351142968781824972396168619918590579977341537272328040906393148340605652904278983678081014249258806467214793494880131817808312135332478765543552003890554077248501771669264025614951137387200314588268345475206736136118026933299294174549799806550472550199341502823684772612424680981851171706260105147934922451890310867236136166866699285680042689031552954473993763092481525068330135191321972808672697135478137624730303863236426600696935748600333976041755082206419627748779363337296691919891409791707381003635967833911258039440093067954545645701049907165233681769464957727281932894254931672851253953720389919233095813831014164699542374955817004776509379918082140956471702351288839217390270944020180212127123154037640181617368058221654656829544508369543244215784840179769415328348774662115661123133514305544019941047152277012991979192951715858330820636328041413386281238785522826205677456406795853301007352850750456385905628563676230095468901705681883645749662135428249775711313650848131896898208373291895708012955135626403582404118901004296479924203311383312587656526095544089451763028025468029096418534005559919515210576588196220926351022634624662357936476273772699642602482923172276039918058395346173589438188655210993464222346975191440380144498509236158653435874392580622633947085300087445382880626668590269082910366983937929514797891574142345014692830614193861774342655310457233023059195247869811462409044065638878244031443659164673229253604786621017845522194869197823520639977927945409865098940319921518702023505245644790367524533280787101712747354230148442347672031665747117672705742126431353181788035979085753728313361994378674305354432119512703041618348419399191700056180176050686686760025811803158458898811766285460772002912835772252497493388861440292184467810757430075744366428464398855146044354182813770905240929291026531121969156374430139462773145779681647810870708945356024835283147451252000781001410843842226641051055471106527412785669803685340700998538660493149482942120682888646050396613645582920906383894107721545207392307987492808736752006113801062486627616153774798250296493455484377829556083378618673801884387103861007613721811608512790575052072691998229878159461232438995222217640244573003051183876767952715855793388043276965267612966173243996757322346914080765525278420521278132621210091014369813016737632976297485087576276221379093095293219271142206978088921890365677827266323023759267321855499607558465386973806672434337983311533715745303530903965556376883657969009075693161286217448360606470929483967439767988359787982794496002488961668309071328956109909321077435796215376911708300703389714384721067341093097924815429216308932663371622057535426834069086265413804981137737908951554988845337514305052304532679522896927569829427969556967898344032999003536844860996674778480957289709800806694035336922754214080171930435550945561430094178959978062828096962141530376606226338471438187277214956008906127323006106505258853114709477080743048459685721300823535435960987494260084441238869582443945537916437019470231368498256721231905304451528107824116748461437606948566725948819853682560259936212252262605232216863017099578437976371552397869727298887161487858520042055950901426259884273947015254580792963077378803913982711839172474149431371416417202921114149540461285137366596353818162388821944134861616095543319958172661343970165607430116444078827051039527701162263959362131679518139578593162553216881578059449763995145595829568005659126733727637408662482612946675908813395464077928442867902380488034370640319374030803878474565363710416714035710819764651486492231352298000024174511736540418785352528313362323928937333957515110029560723620861424476499841072649160354804946264553913012297942327306225052282200160988026043657314727732173480066279288069904944937178729192821624269302729954088205419915251425120824738122497285850542414854534627100637141997677971966912124300233396532160822968130824340676500523965883371383259519481326761367831647120264032359583531638593423920882648349716956803969500016527396906761559391859714457300327581338985088328037086261829007617788903258156884436586319714528389583593257456101194604576230909489618589557645107094147338182212196939249448700280151167561056596789610222222553988329272047995134041306778062381688018145272787758307543051307011150252452206497154831142734047092229388272551444782759535164634996172806442027588389869833716910723897081854915479070877366068196675796962437516746304468754704248366180326876891585327323742197708918633253074012023953931796478246614346103225699872377606085471761422895570314867824548257697266023749669997645568259853526510865079188865936871830411384221132868424983843835772634809165956942145495937240193241554982365302265198808260799573885892111746004650365569874911032494616280303293465777235760177730036204263427199493421453224709215299835067811091594485434780875182408888706252192783127996066190658208564912335622565185242457608138726597612326488615537031624011260431897743445513218226680871459688117953028026864372914737311337786573342529312202510220266203909476986662788561099559197010394667313789633581610894697946675962286377849508377732904605997227825281824649757821815056841018852222773137125986832029581920256214835643425638011277755242433395350683851778229538255595769333818822163240076959112056040017910242149260736332514801594486906870576534496798908159953175393421643860883872873580950451408694246385213725849446195360679411194775444265850549233639059821803882049283382997467254747354795551858130281615347468319832356692562082584803468805394576933916356369526620049398441273780196038249164162219760605249361143614746281216795403236549074318617265497073643027591983810167551237063235673071081745269853445359921129438546743203018344825697066334141694259376207899433091069012038888011835882452753124592221775102645812664427457836288513896737192105946542992793684469545481941113342982096254339615081444853533103721292543833678898183940673569693109475753944144704207118837973337847219153920995671265528576715514418089954784205188983775657973026476984277472840519326930556418614043608463663964631400180133146349689825541217979901430419893780432252847863830225063664452308023151750545557696237053169877560584268584259225500472296246218863406180417982306973309810747679789154344526126972744366374115101987007759801530780119342790808109080674213718914909539160970494023508249189445395525527869730078824594085526946244158589079924070234037866106454774557601946914976610496561993059758606595340743028082735212396019701502005763503724868315061086401331335689957706488570181229839003250531871881817327462887252997647097027677202768054753246886284266874381555059679491079399362500568966838627722431478034278987507435653392931520995737937775443384634735599248994071508920979976175391472536045015017025105423365301601028428919154138847334628795338866386597466840130763593072328747245907878434177861079119298299538764975777930211340750746096100138713704022288157654784949388439405885023189702160386301505003154129814252270237987930874454794838689887979940872849807353272742571222644004064209607158053096110667711506746513784928578006077762200768961904855971989707243520293517430799845342965334153284902603233486387148823090411504225842194674395155509182201938316282387187881815382416938132955607919392028075868508491578369914171283469352751748962412612078913063182627789481568529484434397875426018703483563545173512573294716220813662707572052794542736350511565600598635986767632001274627221516575738648222214709218279134067606434215612030176084886360413608208889938424013035727070902500913322176608009677713805087833168864667220503145270555134606235131922499433799682083404553003831773053653766735877201173002597292587791689578117588070096867362405665811845168606400117010067415216658447347131105188313562373320887770153207081065295687296254640451376706843830529405549939747794139313130228524251998559483765116554760267640090363368137070614768347524395861288585210615189110597664583510517111059381505197054421429688572068651056160685939226847512139583356812260446984586195389448696096088620088249247186255951541260683362681121570941804675192401193848585944984400017044372212783865285012674536280574189294891451568546542498993682839200867859741706939789261570723860451033159401509025154540375067140410009338288909993614736971135270946959274358260308709119981671045334652616156874627370589707463991736428103474585490629097888356430958133561348719907168480388726558383930752301483905762934933421486254516095845315813456371254892370247959491647216625236065144408988564344534001952165034125412989128852578559169457769536381928858049092195838169274306502695952765086193715541109263500166459498973053416443386988308324485054560958373580932044145064910977210340188759690907175463725226317606815155476969246971402767007478770024250017615666748132705951045961650761560036072081886946469479524392209501194212093426616565119752067372656268567082272500018705496162772133140285327797503908996314922016257359230732733903592096888183024369495994132647933875094583977927132785918133804999688465478567528673616960259409403246828588343901377447857567388189082100958669944817250107632530574370014889032920574172429227643988844797548313860795408323617492658284587628408625769062261293871132364949901571061529983395990303421223533813315773159240910567749006512875575247378075007345800713791635534793999286035359999364063156304848934784401708333743588248899973781429756463569895901254667130056099745232961862114689744791055989127482361137402946184598801149961154766256284777281489367440904842489043409394827686256762791994494575807121356010893285015047303145374562109736126762273331137026584691466111288483350086710719399966668408972211245294516403882694058639693314575355378577425077154898522206724160021431923962898007965579598177499711438916060410811516230768985966379311222534536101472081261879660717794919705184527700338424567142359546143031709892478436043198183698882797232405189787960043124223417140800947071517515188248343705340309782420137460980443886795669257673618971956085292964831409813200122227192317840213843015827168768923408155530626844261094223971023855299047491610720195435747824749706512637840612945424157648431728613915176443426259896425644453445503609018060931957471567885428426479505501287007503420409967961387730764917773074098388102547002700753537872504463975752956543042425414407809485714462880139806123289754890208861418174069286269719590580082810853290019885740918986386026259245474001439733870789405696805143010391519247487229141033192338205269287280718849326145555018110886895585965679911368251721794618931144152798832769032610542355042531236301009894058740766026854401083966715825571458216151123726154905190249444180589050811137137100952569145535946062818961041585883756912284650059592804815111311779207129610394589895167317715365701889017739405110595498885678010752698816023779422468349118260162434191424390307524262347368062181559775451170364796195290871838100768825634212633203849521681759971215501027478663866269038770165461334918354127686132965904450250895579206873131160246648707910829888010942450652138882381516900724272095635060375252273900431852031813818958262862900599836145843490622916814429176810905268571039848254289357463716020908966981465917333544039356134007255077825899402834580705771478632194101257506453204959750393780386214067673106642959452273758246703164321982191863721888088795098100075363655595695206819165677491334016805596096924028167211796197068910800607898527444659953214888846981236336889430918260474304734172106525288541246566980538462515970830798241912931446655568367922978728197610929415473930492031658432599027585300280946093019852184518736582137187021063111290296134468281712921025748819939030376732392755856046616707050278041017074624516402565035266751351707280111146431603430478578460111990119582753266570785350516567059261212966479122144444258986008971103392362055242443263380365152965898704749080644481143855360639261799521335400219457197166777295454675439152682866278913027775323955138426956858662240741547382186668240408329300196905339084346212525097255138780743182328293971052133530565679272623199450276236233394773449967307602429904652369983365307261426246616137480280563764108254372492995351706769843544730871846463896145160471366202980154063078285976365476554962080575201077459118470026475244237543237644789255981813793248359977111364490262655805652123269589997906033914184009620615427953487914477935764627554501614986918528423004441939904368119925573263147306228469572558142357543234974173189570975575604210016752456336292177977822593057503894562443686654087984271735317360568711195332739318361890061020109639926525116715402773347352615486196764284056013790810956262722252493574823268586142905277894906282110033382241284908058578045778292221392639915954670383380173530259182774948753755337472233134627952313113282002553655461913036778264771598196237395875027494062047410297796484996114244991485039642121177430373769189826159034236322227270325699812643227247852965099501707977064961983643346430540879754160997169222849276572453735570744522582868407205363742550288234117936065206725649932831539502208536986038888392801569548338682713168022584151425884208004325095364267908132437710958749905416925521810500760920894653491444648340641032325811921825791088842794574327734939880566745084441555521149299587592954850245719107683761061293966606378933319443103751685999352198987431882486370549615918022774628695217644778584163131846517488132231003445255018552030158086541421773853235167499277249628688928267782185013537430087858729281924876197620017648639981040008664327359252461021548825933897937640962085957890513392931075527474391051133666841932589533164315653511353634762011871202732236054524081497279408262750952083071419737760038336024772696586188695146645642048793919783861600072987460838277529474463880320625051387901492318257858762730445393707841918232973396549369750091037098835336527414600154486000434949484984811107126394754113803386243340753708495685103225090304132111285418987248098923952166363098221355728726231886734189206517219266458211390659483520471604905319294410291899504491609856272314367716399559633582350956565746833241751414583005620203771796676955831155403662078569216288114003358748403754164068487776416830455126961139127399347413830523141867573561084647898901395849994441381862023330027829032344144987399468214857431064653016976476163187774351135148400558469897856390856634812354523366590226741668986460085116708695096064383307708807835698510824398962947976253231484032159695976550278303760962183560516309096580899597446129420457465228011267513172701217550516675036773753920869184143373830500755490861422985134936450058983177638282584501089583562985043760355353376784298384038971530656833580096407620575721645375822060131038534594487000825973124716713557791620670341301300852880705347515959341043904746346158390774025287544568991348800082038904128292121703650294827244664787943917352537791071852644878667214040197306339608149399582788736170696378842598559414559064566867627009071451217702596701132946945934964166202566213093608343809913126099205837509911542479217122235217286210118897740096530821359073574892023057615783142188472416497853947534491000651056107914114370573215587850861917347095005838872524648659567313796847296442277999091048355401669727620069464436461529301977858997512888437322862340071409398440818553193708302239110822035837621540634994825341186834088851566265862970508479156858351555701610961670781428585982572328447335372796093204070535540702698468844553376834631409951499681790085912966566156320336299241858879455763645149552670509795823552080700996236439355987100386704433690921846874898453834170840271954561441539797458738267812897337426207293531269726660085341168700528358585674244771057155358113901638316515217406224192317076620328297200682059944849799584935370120974914031972052536136522062945561645007596395198129442560051352356869063369062681860384933620022354238336782225534083749201768259752066877598844444644502052658182294684912994080261757422735372693040255272196421565210475077147110343992117265192760087394364849480306069042975336230994375224936508084141124390048541546960819991626555688236293836704015003597458870215637273023411551764833913900347830470202009284578208890279259113581618803583070034096999942793793580090199705214238414706065041072598362256075213086697127327614347880155408951934122399238572435276052198124146122695371121627505249913112828911496797179633307464338675970323040507819231400447247140028545938742156742194164722665593848328582153938148115504200801668034091494814499574128833151871729211449678386319434236931344836602526029789844820990788055850071635799615751663015186303232519081630391557144326806080991436848904708021338297298739429088727582558535416210492448960529363737050836029617597007405281801811683935774776915408510188230918574360485640779550893463201957321223069205774643997229640073448993511226132917973223025634149735560118455108167376252170007734786188004885575777047021648627762811329809784171907477895532884750796667900991424401522885548219390158072067688449412305748002227469316639618351066113721831056459071945373436953978797866857710788567169537838756422615732306438715896645780491646461113609379470220885422473739868646722088778752691235367905099839981411528468244634717937342961494064241513258676372302412245954888363468679283408232830792996250167973186010895405759770577560860149539945575453523161094848362454740718561963833889428327995907286772300460568231666368465931926124764429210074008048735683101966253982970845159476495072735231162079542140690464836574167796075291267872338561503880885606018153311783526883186111336723403548749501407387196361652975272298037837705849973855989303091971727574836484193293463168274441947487408256736467747850495035987411634201573593075063536601684006282893606028470937803238964100267680000173569913198905147341748688131809854412287138154100593885457924403176041400879009685308095436897146458404804878530723352853992858115038321574148957380072490852069307549618720182853474952754908310890999710958313322882959154163066919532509295460148981445814270750757426109786670374362617792684717060636537952373485317409942993117546887747288372223801319549164754869492445361851099661856822621797961198914688819159201457463883773660812166467289603112865502669022780483318045700010602773492625203066477751030711356349692334554661303452439966865056989888573817563193711851274435855086924257982146429999700708094036856355637420382761181990102451365789646054599944336580040476041685912964505738543527977494691238005416454771276394733159556724468693220933678579687221283984019834700328300188204903733477750851316810454941461183522616747372258049527334127362323592616281560118110922174611615434073739725508527061024309916330690612344098541225702443266729231122971326559438277487120268506815052969299953785591123887011135577647538151317369112606603762940003648270588975334747678418477862292817913967563168449760064993745061568123646869015821538014058755087440852451610810823692705594074738235124108665008966174520688196963290318285766474890862955039941362897781373591302872580624536926906058908332929527746016556834041833898365124425851663756246935899817496071447083295693252266864013366880673617173207956941380628797007232406580133755041212695411228813387687571444244580966652934924371077197523295562549664381763644258653020600143735829197977884729734180451717140543439060618411728766216671705851992730145333612282117271782225432454518409132772007217376549234273471866166814704870879584633273069442896142566227998028530020787360364390675195380208448601527501106784037314939825453660163072831802308451606542667013131033968019489710034723043156029692842151752026003915346405537873739503290023261607858755195754345736150721095669511527795170165027041587007622615837489024354178680664250440383576179120242777319577454273987687091085370375066148177079175033149161820454641760416461798533231526369030147341736847991131737528136720903415749636663076536329318930683809368513028400431582889646730112195102990697706858595100786016009662478231747651705527971294764257727510066471949778893448420298676484455887711248071299886883502270628812338070915131905346654803323742100711058801096163309240160474199873930166200030507750802815070874581057944947163795365295908091680913507460338574521157861186585875002057821540903189097090768167116397060288305555673260198010045961094176868359032521667059595850384073524690571276640523734272796336449600223491363606896825025478592081332331897837984601486382480279179648363902778565547172493765088875012566179417766939374671646195432408117954738551130371581724725791260720368266287381609849463379722140605145152051571409270125097362773560257141091476334550815300534407146165986901315743577805468510924503265085158039772641320498757844932111767815649584787213120186785113909373998926467736634429976017211947456830436790173833586754577880733280120475626305279828084987655621081454218780286088012490320930596851441231382925693259461024781433524529354397540064635473088139597240450737178162212269980101206855898875577888180399879871180981887357844478114464610971018507108732930858768639853483752230271601080521530997801617240964943568491983351991094873389362212459910360682836992668304373129775147017257627100110813348457871724020367185635217545062035873389032973465898083678120451906923076633900764797234540006075536993307516422238481790524828571097005359532052899147996026624736809516490406570428515061591176745721564811075522374948467007791511800480008745883828826675051149638138194226004415563575028098991622107076282525679735286137493755372644716588056891774226898435635244013280556019894398941761432233879990578528343242331052954767048472773661239873489327535565732879055453360658121544200454645728649739428053806411947761026987134626648564510519929222459609607323879602286910207114497736886646369166445221932140748771752714469297553100622002178663993916450603925976041864683650972829206065887714802839748522534565876560408798125000197620260961646477896443056704328675743423001431817288836045165326358279264669800251624374038117402620403822673999257924671308436577565786200938273960161700686662448003873894431467129494850578911882461668321731833983231178379896463044517536429856496497294094350642937174285364423194175350236564316675119011584356663589758471279891218130733863331729846828323252207448035126435484009593033788006207846995935449631833356435470649898484703351830590239744900168766833968761271353127932476459925833010269509675569619574954545960538082991431523846416796478626324573905381270561315405279612003649147077912063870344000419316147494011804889394849442856773350317187053096950282488063764819678411730485144790710924319125968274622423703009148677588092179581284402575714717574681579199805227887051191628616103500661282041157893492649710802356622575040997044250951352708148953001227245844924569824943268435691245682574447789312211377703825354502481932021414062187005833311548610822399116888619692304636762978744232566719330000810631071369323303534191942694144271484575817836238263327217748832695771620148515441972373969531150414251039569815004350184630851222628252992236757069245028013580742230745498848132855147256265768694248381596844454403939447213255561896226893952467911036473410776056763360392036790178246243277348837489285728202643531575290375707094516436621330716033081287751250592837253497773898533930977289558696428469265119969635959778044108378992319513938842619762891976480183702475934399161274197158374328734587048796553546825796762101505703254606925095767057006141786837397684790702435561193043570250227666143401357414373028123073200910734251051235104335430309158175068845559149474432525612635249058491583354271341215978093954215882176821422775222418479076091328199204682760101344693528172517896278361063456643761298858114277381099636225331734222555783966842243496668487880460451029640612763494991857254093977825579698341996364455527180827248355604079622247604062034834928227003686880213727012002184985288724735768915815328565389914588182309388803609139406342384910966725023541543358292268041285970381810926707397580036947173376043562499717310780583735079957972221768205129334391181812785678127320614096809253942805578538617451597829858404464552415792283367569628185175682083458505711864739767243429245967460870425780202513575782521636908706623235547050485967816494985982945693708806543589332754246126654448840638407503995546912007365022844740024097999778382491676195502411847147247069686328370028394302423964474116038608125072713376307218557977123688452351215467327716585580771222619338136992474423531815925376582527284728976373942250695001791555435276493703181551014091273507521622417429681100329109188036258050395666641356304829319050199467501245171042862487747091122572260805478848390625045949106974003289963503300925023137781466081655671048218492437372133854864522083511934416471576886765664249136227457713842193889884868056262044567011328055522470385984066612030094640778961575917000848461468598860183584604309891541115610862136139011841445503531594070402740180447505321974494344796463559111761584028245415574793932384008740142143112684547165331643817845290337037537578825179075678785391339309864489313158254785471762701005330545681459969080059074075181693913592622152763465400149938415390421275373222707469918959695874154265625494600816337380814281813108028989921967088023691348289682860063351730691480962746084245485556205181735809186931344788267189848550469268128804467453792316730937853154503744086645744691898603132326869541734784211582852287943761342666335431786365860840764423415405817119831062651015125250785613948697317453866233804066438405527183773042496696514451946610372187344059817110172547774048366612521296972261503540526680835164948705275687228388258177883994888842323989394053527970490749170229568721715880271340865590558971129097660701746965080389969520770693778578791061286488320120456310460225545460439615511244632957673302523735441335272358764123689175328050448502533556133700862795623918695258599719409011709577704580715345301803957711856057446854835851130077008123848667887609054861292015755747000324884909788818488609424925697512378580547029209980555615834372139430150758254251724461014336923765449030664965521033420224347435324866565616595314652092277144889544377401731931522359559040792061700272662324482750811372867390389949405698574189538487205503867380996461151149856570096313700777592143911329097584386579838876223667151140941694203129792243862640283645692208338416435390351664008121439978293972655228873728228699902238195754701135254314175576650604456660981188704853883825094158105082687073193468548920264312519227023640921851403222682743419218463444039166496778685962059689312284027506130339115406947126692273281066960807333958567780726501809981154756612380677126798326845446820503259204047482826413283841017907963349465486060889804775903584574008452342858674773142884402801167489558268907259593980120916148224586539479543295536823426795641034837464130608779813911498054404365240950119244100898639201945428710250127917588605121527172065162990290725278922310714206013652644344065278075639402712030694593469088132982066090169347722637906841853681208285433284369445122956910461172308593880831296752672080689447903900222854211807870652063879157690047501508451465557295430572339534316039761152696975759638375765861324313233275764477807306305206278125055046924863093476182615816052971472725514212231605231952501727749890314410750389437044577868739442736734640688122931654719565408031440194495677184045624508382789840312443398717417883908445645077725287907513617642520164206318590545673926750065190706277367494455048245264004592756436143728194099339098116933080882713521849510083592702826654253984071109176522435429368108973905287097602652344904005253731191955760798205748988026592925631994674446224007529244065564323295744701787112566494922113819770403127596071632232986376184853086969311232568866945091237135792455922949944982669266284589983273872550454146335083788775548080794445029333147038219085743189810225948692486434557583195734525647277700754771955961766958849626416025391877003728222533465115044506019617449704930672731722873714966809477287055324417288310907126958198306719797994209736034342025232902162953449219616422738265741511764942683366694391999489831777146458735849695125685515976074281988510570088128842396310990853374075240487435456516119002510154107900986744989183894426439599463837917418330313368263939947775573865120910539314135046045854985639437590091369144646115505932655392031397611722118210886443924876251411508836100064433471249137056868970859773315896506839612761367349002696810493040112775958999229949365648717383004891396565925442897813952571260220564665514005692576849567539189594383229202349535762827738439826888619569842792428511718395622250196963342950267092961562514529849435258498985358705632400307978539981232740385921826167474867264245225928110064428079061298478848268517768536810435969089545553975167795813789567271985641847988080227232563458478088490311149241773516380290809107201237733950199866974998278622939925597987474783538967589682079014818464467634342496617933903070119859906910393127647790713046660532971169568795446431785474727518208343731504541601094271910678332265431858004022982391221987385089052157980995856941222445326478211816197311517068499880364644392854589480676383956019812823069581736168205577440116449626726631810666923209838509378823692893570265238785289138589127565314626622646370293647698157102875153896491099492995604427096987996146831325137032789450060750613737105436732192602125088332744171408994497084339296777314939430538736375673874752415761726968683279404734609955015710307702013040223380393234999428412600264614084633469088476358459957337198768351082509710944409738420913696740382645183277821220282874276831629626696613443069417059400120326748022355583455781252201940752581257099185094384103377584408421077649878359909766319452266244954917024539578104941883456510175634442444752803901577906740492373297885218169672265157163768930881201073173833736361347155915720984456937434043526946210556425827491153559327988102969661487318541579993758310329742131324970713110082111667880829828261119289752264038394657240865424193496986710053833609768206833037518970463657119144446789028861328352326101633858619124976137335112136591102617623736008634799384998194806656451664087252329631087262467348236770065901438845639287760946879495720594034287771159772430872787091617884382637367347049780492600370313245945185016394448280588556850238662643596660800259244562414578822057933969925060599100673359809311827945581288264778011947254250547084814136599054186462121776340565097504679933312451862827348155751703332314241162546660973483494870829689784260089768194589960295538202585496624963676738296244303445209691446532094306498452620200599239335600754072631690289923226241776386979631495749052643416740612816720308348068453972027522022413500209153376594319954018745183335892608521058948430324701679316499862719713952999509678288567714304097870653374670698772963032503848598202165408605260975244536211821918215243813604758781649097575395873841692562161134790561955760994474570973513737515253081704564674065182764155456009008588240510131270401975658322393810763297838670103159232851399685539771215007378681354235488164783857441753768045383352356402891421152920176951592877794123839364850326228937245799332894501007555969065846669203369394637460927946788992780805702290349987387522281690771708516416993816443081320095087018409465728148617986980313251617458313023275709627194082020147460987551721252271020553097445479271689247863337741550717957923580688872125707751978004655135966453129455432384879562046902126800022869511396746937057534592621094949875940888482769332407621408657871672763283713312393913780229618430417311170973683467993979225468430721961495943705520381202396656100284396705076749495928797282230949850717005330196283875193436444464024949198961646258592580013249834922637106782433767577953880002471377480147098457940263094038117274768607132164391235730639150035721187314951980031545387407770095839748357557230171481574009494283034241296673488097545311315602742083119234865006783098623919483395698100503981525073403447314618925321418592432751166715707541155008551730275359537923401067941574120913346198237130165873646273863924144226665486359592488756487930017312983282925542356231191855664231322108751072199360746166825784008360040802335663460376680089881714168388938181461726319063065044094763401546885965414192905656793264032602746535641957661160294965729903964929986626110116284025880912307551197848025570569034735642570438086885495881151521858902283114301561738204476070891770958176367080427398763679232746320616380042830574140171995152656946133440185365533488741111232924753374292045104176655950359997354613265097280807819537789678069459557773149254329556405208485192425631683055703375110829111606145456282093062965785349687602653313718859329563168045254763940109764911166959473259599303833583587421268833665390712369932136492157076654345773184950928086470702205917972977066497745786149125290930198919973816095476506949287545662483036673636259154697189670716933387138708249480616937458644545216547171959936971735352843725230287596632376789531744287691247672717377000633737534070352482403651201244514681636309569268651847799944531979626441881876356748548009315234637069094996952468459698298789444563774800750586871778162382198400101614073622022042788535008286805006439275025198357642867977054414500318172832615396530099689939600478846332142056195758584583282597197164098197584137988397426873823089195839474412476507108044395400765083524887960203888759989620464344867982291115830281762798616704786993548226395840961306075095686165784379031177313267979644678899668456195996755554332825675155357840441235494192753665338897181973237006558656224400983554646405944154601720043316471071929558928866081092880720071792544249488301922869744552960921724315182755333224370028128368843766881231533603279568334365342028239995109463394264739754434223236671360724788422313653463165953503707709585836077027886374656885748541347450991059102617872120610780696312503847147601465210531043298642359877456738942243479394350274473490014273668510178077388011967588172512643447130047212638056787239176388653280139165101195140688546920663970699913937501936352426739376935083780332647492953631962071014177820503894756872244267887885940722866683364128646438400265238115236631645786958822001643699106450932653735363748802726075199405728138330375278010369476466394844692177480584359564030186427816060741023570357034448390987057914980007749395016930299509689275806247950628004115248984858979504478400282335957045665156211937201015190253597650111453019204782662587893894366227459779544038020983825793644852766202619743207929859213859041101585132903331604627878303961381441528250298530471222810472592802632165397463205860649825037310989778412766510396798581537550136944507225043083149775676579267012715438823625948032978272974179230859986692631044338513598697705139864138835590296797797387363551044501814588249059986862332382835734523299962666602989438527397938323872273733166761107751425141091078299912354241020782759886405668860846179186145312659711350610233161468172993551281508059256574557566244969852656626125412058068042988117580410609002637224114590266852147209944596648791638867878966142333752820445503719712956056451183449460286164483826173010818806122174074076977473055539432883092138446992885222905841564816367520697837080450073622616831228360004085795478711539097654685652657725620743265200159678241293370096604464129636453776949627322843588075908025662231775593660370919903133867910888201765913878178662923581546657244974480118195317650019849101379829606842246637751231689464522743967454142285612537489556062889574021105835124441844999328524563745527719292261941742064755879695138954460794546034839537664965627300441657823316273022283473847605256863550585768816703430047826062080384677147704211632833504442503238112824542489790899509580972572801061645520653111335069008119760449985779300339794818075741226617798189117602465045687182228879052768846687672179125425505000548339227407402480810819416088621914418061882749456308677166243877808069200327948446460635077595334936924679954521869997097209253620780397824316154790018615601109698412335331711074412356135995814042816533274359902133251191211768010196930058412271651410928249179726331748899033469355374364831871048486779716929245182514742868756239728239562148301425904285223356337603594478591089506639742344491788627254549095278407899094875661845584326845600246656684710812677785785130586370139090595073345938974773953176354273570200555171789355608541678854061246139054851588703187117017814991812364349460870260597513043503795243924915448534494587559640993612086210353626788667191452987332476183722686354115941720308806424567828594599420076853700835888609125448103202341491191661634919765343646264890583074385642765426145294950868458228528419874251765404260312860100440310902480309407257989619790088475686352746110678947771747954894963124355061682861339584838720820584837250201573029517237032137101458187358619294700061386741563318296153356638737530618276885100928942196275393550926187826444893832420454463757048571199553463679508777887077050507351786295695229312347593692537291410362417420952790722840862559812243158104787096396331629802517487077803875391894860156927990195659047510165192260265104700554959814792382605680316900476317024986090757719540698262028547046811314718106134251556133173192314715908041369621674006683764138949886001535039373931007384741870557775835237214430147266733297119201457344428847348216518458185595562231156645468512170193085445142242779671561632207266806711908496811711618373615806435331790778863896300214730362190038248133110546480261656393387007047188512482841305784475214074847323216079708590070270175104555217177377955788342391424032766222875816651703985148209911786905448843559713510078280766829101235839588518548209650191141589755255103710111997207685915093457994037858351178628394505064525362281641846903057014528301444194591875284848314619539146192791037774857776218091136763350265272253906743217941866666398946266892741312237257578015745918765751584012649098502373896303487043175760652260034369771011993568716965512845351759260574757581434994052393638870273834869734180779031224598830819774455301341586791446946653877624009776953028212673867404731887973641410716534857250254639361524730506331111280312020966350160755615499679302475585402339074596215438196105532152943780483925199849438844349005453698677241503547780143439765015124427953150257811827501822434156578604906608871524871728104063527877974234604000406679092679540737083080555862205936751535941478155515421174443444547121721074908939312737281220248372857460713608307836524097903370640830035950346618991283158460244025326456436855020683470471645680379739221271411557729383254033899318755727333143853566720425372586571250938806049828012820139742863851360474533995958148485525209584032456411136207604769472618677274058493036806944925903439940002816544786001560077596554966631757594125365575931953295074107660592440181866151801748437267861055029931200857355550135390064544600198957121279046383643393565577194574699793396807593395579334229065241368144525355281414721264364681105568890981603056050620067824431242712391238678328529290350947263322616107510714760965005989954026831564039209459480429979683993194061618585077105150763564247072307451704356939685936608610616668587756410670420087642096063580065439094983146261394536503032245651033461746385802870877831566179894862363611298699365288480069668041022942001846818179800855974898792000772563007801864863831027360614842658813541717233940374060139321009631879816670782303157370649071631005711049857389929004263696626164505925164119277784193525392865621789458007214644308853283985344733969617192226096719930669184953075561921453616867206318578500228531112350209694688040830918084160759948278089039083667463705133782915898055051756982924631216314351094660816062492242844448902423261096574378494644197738053290125403383445677296705375261720091686661617817787576742244574522498033325505606526597129535425213134778479755380541915361652678499666562056770219201646458799256484123691873702508292650333644356496965910644980966989070772754985490349084837069815881818569784572018443894724174298100400207682101606053253383592012899510365065588129016850447995741542239125220480077619639775788984194706593141691141143817883613797005198906938997332515396893982573457853220217889232249561408966301880489958712483395486961571301382655927287833777684709265858912811725943424073917577796920553482290837845956360882572459350199465366977757568495823166339503030088535328662792513898423052687306481059278332068124725014425538486030704638848335530164423509024700221810925802198456840703083991824341478320388414917913423601837893324244064486048960304759292534977671990928777327388881961408865625598291815930777831850462802350489112986369880294580646184144837597911980064206925409074717020786272782237781688683513157176318276396579284612661534396366734855219553482112773305541361601105888584709957246181494355040722849830951596805066795193018243507499741419253408567230873779288305710354044076966328181236437520871103238230987234436489024306865599262792229463357958649579046504461041251030303666877693274327799596390561702351086933870812230811388865553890901001610282478873980173408664595501332101584311308799280600416879554204601463792944918683207201664025922219746858125050871936180966212286758273370553864966042708289349986907959983875197155695507328253767240958318663465039384022907737618878558136931212789678472492599470307321121611070738881566906296185640194906494731265752961644425899674801717414915109448052388298052072036641365283601054173410630984103440103512229614590160642814425696656176683655533291934226129413099592564719199821974833421401040369186352981696588247693514392038727946393219097215732087284572564184875010602514015594593585439661972259314761892727622540113655209161759463377652662479658150105181133805386006648236010111926685255404640497377354904466548612621992896278010126222611824802093893382289826080799421089450991732701532280450901636193640182238007178225148629492319889759868310306738087438779934248891846417024291476069487041592660562636147711439136765701413575239917538977952633977906000459814243223863206237111268038345441010308326220743542341964912928148701527413183248878996187326040802898410720524436646720954113899604332949986986271434243506489547248631057325241060490046054967658825263401542545715118983263716297032748026122820521715659814420709308473595239986430590451248184839052875151004926226642045375578166631956716744012961648620565926420551771961999079751237994697784164399562994291966452158067456996871076475847160318783331087611738227851061753189231217482865513528988450363362596745052615047575151738508873237874261010348994701753715717083906193181620922676234779634373748907217537858372671405331228580048104391117563164135348567575910925080939058942519736502318341158278941179936602293695171643647016411213915050187670179059817560261853236156696101595401555004968427110935406018108522797074555182082867408882286804263634405791842356647658542925275188975627176119526975590452113185531517208921171426603871069395276577851384139240718002842067160806509385491371946878196423673959166314827667662587395811362469866653876067194285214656552901557315113075395667062003390711623231454833359602728518825710640014615908457663174666874201534735075222976366820466234549167822718582976657872634934475987648850547731721370669462238501984314425273424673372259494483457228543042404737026343704542941260670078526279675504769753709955485415103373220039393002027309494762274527548531203957593889183950947423313646053976883015399532629699269099234094242665106441688587858306856222300664363172194203975904623948766807698800048252153882233109443539442931683851626692153151489162680255300809453531069200739855292060735119866734178855272122920018365132788357188025411541480125901611286734789111161187610548684361570574641983276429526768535417892031765040548624933162129229245071393865093043270203680253331966786579694483898660886855631045975186037533835344186932999194282735721431684889015989200148955641287458975153698454332061084159378462538030690738887548330440108109723269717496303116977733330360992038305779506631321701137569193266451690469519309831085491454517675278748971305583242234715802293677256855778400174389184829945507130488120856722397238507381905958599799656718909183479340082163875110755973699184624204981521004227640499792592459853618377978708023981487064662573429309657563438156537601114046578913287311622541975661169265634438196158746854592143916376690366732757092633068823723627890385846247420313165034178741817209549721521269992694496542080558454289689257923351245550031502331457856815875552059036900393670396830170927819475612634202859199141671962906252470703371581293564828184243084990740177387442660052879085592392790286438824487187768244867274870778152684810588597536621868585808910556485641041331581514583291210174356317423035914956886068270814771734937588657086623096565112828484799183278782489723488205858802023494886067066764124805723383216931676642004938301179564248144492317331130664313075463603621750781963383283519147902072228084202728291195769431289463211580532587971818609828922476968916466621149834937072067269456011950552727835625332805388187965240302067218953976248564503589541643857913900495294219137452917933899562253902899812643024740695036115229310638189971223363049992506998081429457447525329702317086538198349864919237395253901488337250235435228393045104779731690190095923827439766131837879112291817694131791041956748972915702410989433737737342330041880903812457311618359742940533691711219936797983836741200245500667826865444025286390278120072483322478792010566819978604423368444430806328480838166517513639254802614578750178283442314320261581262359413326191301790133540755045080811509968078493419720020491546088216240730378918819057892642436887853091366298024693943896140846587771269088313920199234716644169775171652746823323254049484161835649399831785658506869682576663362540437496803402228507612881359401264042698866367455509842689059820840760707145625172756766350015281846110213245153446953939801125123942790530934102459822061000508897422537244703392980500281146809252692225845373631605143958100647131939131992382193639392768337781063284112640125536662879411333803890881282245227141174005005838420224434934307006479374631564920430230879238126872465202465346724725290471273459742188010558867130438429552565387179366025386344672793427108844236208854420269350675103774598260992354961929788811799209770325501560655219028767421665352848553434325311510947137598396990151728693926035546898452660710890742776404687900099215801838934186136110544592735199179841015830409042933078087565657280119567398354646652815979810974318781502297650200802280677544662384751241557225872989186689392290143546621168335435619788263696912201607106085527616048006589936436052708055032721452150284311605300253919393086196646717271768920747555585492880819240011569206080617080335929820903471966260581534117241030668948878362344900701570562121832766304239802786878288398445217717646667142670737303242558612100261511427164266263937547284868746854603315257266430777867626525586506935896665806057253313829312351335820310200932000198709695805740308268518245615845584814311357553202427245725778568590974191312116471873577055649922707920600181100656012693706616274978559502501859384776024510919251073920153417435637462338181462327335679444403295612205388353727118931268262476625613791262257882720346671744947321617092058204424351460794059836081065948639114830305273975155098338014641934437726832700190453859653211326897021955301499313994500954123024707969413075243726787212083282995568049425254097097108077599186128250361035677446178675923933366578373869486937240139687832567512974537572090415927831172189264481982317141488882085219096524530178150740583844781145624894785655188661485835815347055141735440821939331165241410796446835764617081504962456910869901784491584341400753548864392352603632168991584856860917891260282082452322787502738708910304609638005123251970362887592521326191807639483557969734517917683312939560607279990869314753644843566903174424120094280002292291021420267431137953144338923536658169711234279481893910998439343199881322754826041531209117098669571365489901519001757901264142385868563096401832471619101191075404971932836236228518681366269663003693681307324286741523963337164934033739187472950218026765814443468969340559187022271248105803289629100333734248400017749898893288443924366250647520803149887242573118627295871980690191994864076721304968490961016019656081671425014898001515793201217916094701130457358637142225263792464047912467923172625559804555781252007665762243156026554223161464004261196773220164799227344191525314545102766459297685355046097927566551379999695223180617772178786868598268028074393846997202355004710788526056500430678233933423292489339599296199755533874025881286336932993882816892310907443328894264877172557218206086230429043471400558329258803331475603874459300976566858226877855073962176683964928391521202370432513458758448629869627587257988344177958302111956699324940697574516532752079784063219178845264791532979676941702460575754596769148010517047409869779933301711957941328506468251948053959618224800955398349466729051932625875202884686212804274966100205970512339083998386963750848516046731079617186290098880953226247008331862869178695792310927625325954495063844837691294701392692071230925856918040507457723418359517670575696562969285781734247509141558637282408334129252054761214868705298850927533239860815023389069037181472748509015769361091186750279046944938751557090488897122023229820938806298933761454747596951694318767614920716273207833523400045458796918089439440105167877798815216989839097685836847047574163123119124737279134105111226965386362759412105656862487744376035090901359475182513058994788216613233093818654851302542366520472735715235956923986741468452757676507202316989060151202538498987036897087329132318446565173413549116656424095473930754975018875472345331154427332188632352265904850895104435023766553364690888153309077545423416688226791637702391637565969344534600902093464542430832150068869929283179455138955660278318047327546308081744106153086428878846122171315440035214452886736239341330249375567034083384759975057463640102884800705191556415660828772418560393764998193812108661432125857980756008128491900701818296582075770552416606764355988358887961199796655938895178007451439952719925779463234592822832702386749725056497268883717300047037001346440470269665001520564040965283971188172941733969503721552618763980959771445947607486420405468808473520657649506381176159193997820291795283455689828973641362035187666693348793590339406021284711365494606737514613265972313604126235737972064483249170115398608557810183963658783345629304102006990070594606538288952051220051152266552079070644236229973361465850809028000076787735263721050836563499869783356585830116038663409554466403416436053597990403395211693026402303147548846512448727790303694293462848771962221109882023680280028158659392691713516598586378825021633553694072454320710875077290149896514501502125726256196161643628248381389821796849185695431829807295044511464344735517985847698971574513584630030372300302843104523938901969670809424521587866658632963715235085318604529853949979753245094575453655331936297682883980689913472769902430217436118350602707470067256761491997333829924333984289022724425071995762125925006252276832813205224466709395054508765203397295020222696379610916570252514836064338825811496138099216201503371655494598993376550312694543013230835590148546406446373410607232897780748578474170409735034593311995237318447306544697113722797857294859545843625114047651082632670600531267276988450465095163988181864695165397513491254168037909114284597924902047581001020134922446240608026291165033704219204951621057108474367860756825338568581324492012248933080898948005019849188170520414984064576398613591711421048558596312356747048339366128481107804751012675234413677197397452539093931934672667048282180290898579650330581538113979356571110729837961174445382353490391778077868197316475525793137735571638274989337483348237770786630237913702579314161328950034174348955921015704834608653413273421338918923085458211817098264529529540569196304270111585067659194098121846603116550671470939518279859659503345979042545141431094275743963893610258276537518252747793274199446793133556550883807213406009943234870773860128042725170138227454592050586222384941868398020289907896799768162734597108924615103526435849733380065848080988978356373096049795103923521648421299116382303199281772356982511522767939229383658977236614728012982475502017373389302035910448596792755630211312967906811252886785178403874053128173534469738882989417522035805944917491775980489702101816110370905283315045541196171234150457982501736054324664863547748610874549246702424334178054597685886040117276927724561211808294070033309338405879580747239165702524280645505311552918821951331014833465343782603787159627431459232814004343837517412174750387660701943079361999414925127416591672099312168058569844045239502231208140973529051799541062775016321461043255748118864460584508497367564421987383956869423822062403796934602596353778867011306252950469353544247191006083349728412996338600489111781019623878976507211487355411129929053672287701074708145424699306192644580827295041420177863785415345474333377484092170407255836219331656055541216084519533699710458475279478662179853955239184536596043905535023161002912216237368602522631365332151710523978374421988933506482293931136673390694898431265270869339898680991477254442153506650923203327949813723599596109211143327707696971743278234393147960397368007313039636256698952956384103915910219813161647189240641108755325973815968327931963198316111738877770995481463292718706788881245239353021699185209942245157876825179543459080046731762366327571999670083140868083133849897778599635894168043244458068043932102973413794481703742349664004467926961383072321675401218752996708927945839681643410400407991682375608424583051336571719142186826684993253158813504804579822983092266193737728539385665605875868965455769204413678482116924645325646674357161692551822021316171796461984592537162893676014638008764094492882608974318900021967538020206546778137686537431327221241804971028006058815403434268446014582348608555323931032243702830105957384391633363453400092321303927285269515055193572763695293427700891016115734121325886533133512636647287302788985505489984825742906033072543223849666524220662981576077655428399646510051317351409731915834251817573973027305629659698613252029538684422694709736201618234443973713848437183065444349118557737653541297095984171510666714579408031110672689397261881316606576526143207868317999286605420790510634277840980524373984019358563382713954315729834185271954167645960264239329992199916960992295302707545485990787563167889837437812283123497060490854487828597003017361105375452522173978626572150325768226124652368414002783464429567136977921039038821253175586165278275846088340863488420418319942998569102054776087030681999745342508927476880750556164831268178403615668230559417698848956194023841855659544432811239117105199647116318059800503486609127975589912224748945026855288546349641871903623129695829885354410355293215247752367376252735680162628859837821206399087178524279984939888136260977874226768266505104753660403198095857209165783002585215184797923679579152635397953362122122612163590152401170352435059805250289945497834600490726350105845257649888075319326271248824274394370287000099409584019193901985522309546179476156022978317515255996906682862661219882681323047466874936123232782439275078753037805093765049928354590968476300087563376935443095471213502389740900344470441704849252374796975549473955470721403608543681615724555646751380706427111142969327206079010145233432305043244405137751207369795451386248066206471767907951263087408937603674091020004869147124408410757132934283930271983784449925237098025462146279695296922248235810707721949458451427672945841752020652922553789004033904424780109361240482347667009103759746978528893521990222607911497968403082576907439158178196408911871574991719419891376786830820828539668778190371308492467818799797128208737986137911049903155646700952362572860488339418823124419884275473223207506588576022376710550480194037425179920959015752712063671607786176266239922309797991351953251518494379332413689603889504964432280697977769188414972841157940251806623167462128549417189510347499688295673799479886642349749472941138964421411500289845600318246865347938790587969850859751672625162326406270124816693290613976996840310507010013243787529273315098846331005997459754965591837142407327766795691216247630107945500455584449323742638858149712245024842288683094254648547256691042861702094905071682851525085103669551746223826811052932787997176705673504508709130330261776833745912933872725467745734654906692250420675941162583813192339481872991099003150610971464378110279799490997410499767002605647342602560118584536602432949062260986857915625644653437959051845213057024257502574991613052910355893808082139988063893416776085941354493802986183306677668638889915174691651838142716170413242740015884055111938311261129760439330690992903356482975853707348567938642468164411652196794279306720970771044089535285033220641478375021382242886597141047375541317149841996822514075023504704784675773695574518968389216650925363667205550330584191603076767488271733480085903332918514102562836021007249619939278013308871201281893131191580504428493826566561163752411373786909668281559371839572026867409451774330367010223281323223215246831321911473842018396309385197089337202573967579511870180550212050580287187282283261127467709606709658247570472381669016360123788739280518237524178315812031946237718041724016817717108719516537476510956175567235749601880220502489683985544281769601109954542949313292447108696451599675258966988989034951953413013090317599493659686631967369157819693796278067904687806530953334840202725038173665275144236028024839165082844374503617300276237888605196838689611667559637885224192157801489213568645783659802885789349229160628954630865497019526043223896906201937224640560228106093702065555986166956868355619333414874022708237621707428730591206691018626330998488231500064972289425331985496916507022951414846171926314986456495615844063341662744331348286579657969369471376568134380553214913745218085588217205664151687873342933891584764604446684385791842034381843785796804427636106369870027179633277313458384248088246692803886698675516370661015799090134232959505546318967207207985116809110967089414944435530063080260608371034472497644662637277649058005125165770673119105633455075970734100777286439549735476788310082657451893603623578161459356184531218445976980627847006691997847141272389032738900380952596398675762805091591644852680327137088431816235720071707713649300058200328898729474961252052204834893343795176738590448296697588742282098044316778270761097380097340611832746213945920277056200524237502187970485643077092997438960445962085040166028287920418400563364041961186880652265885738446872982079513989157887146434117282590953830210982898687234657983306292910791714271463396556068407915789451259720597445340468548239239978792314178494463968195501809754748568436366287095497758057792440781144630488614332059133404946329921217628231964040355266764194038095832560602742432508558815788819378418314963698427298616980940302566007809335113630237629783938052326991668119895645330334112273639639706041472376375799933917139811354932625781484646123025352236071248874699240652948425798840746516113324262611643714410968203577491559840818346914816715155115838879771036642899596358058638429066887815691324432206269164468870817378980450914132801989971481116116408879452200013612405390874895417301742078655787300512583117076292221420588213652181298573014666206474894408969811787252180551781553202459709810337846684247143702244189147462588560688923749605364745629884715392106172800765371625520470471733513752135175040313524318574354185710427366803997422475913197870278494461893252532107209371658143293550582988676693369376625314989800384769638857833418688733824749370302483043616088398501912946183527979187202251494741065838214900377338000056113768300715319781168328136217077021192377978322423641429442367416956270329761018566792216710385862008657279851501760933263550722290280518382281601763449674244381561206707566604104064228029620904377613833117781635134049470890151683974055007812652370329409149059805112569496985520562676692812884321943601071738413750961980824326273185916186953947366645980755139076403725867079460196837521375069150620110119456021465613014681645261544801487208012867700442308578982034916895586836390963360320901497357208316613413938481236365735514382023456941164506042479545783898824422215339604774925911381011155025828139735597639482108971436976014251008570017801313441239973369770929330472852297775175020008189670067474765093506227731521409256671801907166410863765551929936566857916522099155472081350308676521279273150473367590327739112401487531959325285690607032371729902426552090459576869366703288282767089497246455523289895385205016771196381194827210043063768106272915407503883514084706967775909592681241137734819811541087723851056212236332190004132580046612842279020680196609678052941397363540896490971311291920857712951473583338046915058470300688724256445528964222545356647010713117749190041631248651498048313509583285237508103028607311495005024013172573136145679494697384271137939697828851421050060632121683253598829456255395647458963802527294209292299967662921473149936249931719963684555423987685787922081589285341080093956971299358551551876641462121928202054369163943480151554560090403563977337067428150494528230989015752279353950046231696550370323174175019194146353422592229580246394501589123399882608352068697360996514077382147375119382912852034162338287328804486832549515479604517885439106708027481683651696381069441299954279244540623919828087767211437715234685721329032497852301300504426278615394586348746609394573144163674095816686952636833790345351209367243379387890743548466196738800416549666393446590895443666568020970356295785360378554705052437827957638120796642986362225173747798154990433413414516518357825802531557203518747783893234865783064396974895313933329924931833339761635596760389645925655053705338769571912995975099958540066085835960578466328857601503084876842061252948059183829612988313324493853898758915483340545463911565719849952101489821902166142059121506960441800487407430214657536950677314957182693393889566428081351024941198636984146881764902760440870217936105327134346341949515061301944413253351284250962176946668473247511848423427073131775505664550212967566101809735066725607353163632067150918327873003443245859898333268425042431334370035926725320034374936561274180389879959818360305733908803438189109128934434124728189577198872134239183232777576805410791751341579966434524511489048429016999537158217280746888482978270762745357372014256018797495292440865849393978704764004808126372551614198567547165692881803175838236868925933733743763529200974839975758463250291458003890130050019384488220195813024012671228585108001407707331275185812882636597335331509834441804731385379075372560757751024927308078065240822752019061540017747288822263784916846445586782779619384905725553468347888042628128925892322375563065722602820887336305046126021544432966466652363800903447349563788732972771969638498580220393567136159557259374379012822297512780477136482289891744233977749090366756760791551211585364047688884381751242340083728805992033673701288892481064004846616323956337211834259014431409338275263411684717172897855567175263831778964577378923278109753419138309741776698088180804754319191372002725787993970811061127432251212576188823613025472435239851014292288994276474492408028692630974875811412480831256909848762667413833549842003510778336529212819433494260338129909824746235872778793120662403802941088989303708959353010190188713702339837758096376966263740570875884716450141707134479529614878192136072606850142118803077098573933897000253515287300154307831340608486166023366162792271338754407466231134227115422844225771432103724698086201379596417303554410111108130776916543661532864233053470955122303599273048887844833343693517035623720833425166898745658888558903934048888292363150182186790659876406465046214001615426376382672554737958940481592885055738709658598930346570440618140650823967328033600996385543512714013087302618289326741300393714626751401846288542117229715354248592603155741757131510714688510996376524080494305051044632780838024645009975210519897946583836280410381540216957059159462724364663268161836403592298074818396030296163079047606944801931498259055025979756158606476758264610829876277694848923525645312202995688250980888332293251806123939775364250383406348257767993997015747753539587197996210365674828081263103513145781140617782640440730564996690869185175485477599115885806888818077407249119175505089235421726054231933542512331705188223092114999394071971544892512385633725264741552330340557999933117071069709052687018810523710349979370874453872216618067813958776106658893498129418253571502423371659803423500574517064515278632796942822757723521106470798973383978476108352796989530197877199746319485250080838259393677114852930631581356261308256549152983946587069406622977100450061827056953839898024198592173278608135720883002721568704461314509365931137226244123513565039185458341535423518681103579928131516208539908056395598243438223690762136530679608057482815622109689151619176630145821648831724504771648453882719371157079271899157699378074977665151994986350177073753720425765622289866492245417059369125571559942682117260540873598543035667219745144963840868685988649158886930207235115563987037909730925892864502352299892123777761767657413577390848294544181487213890701849846042652975775057191149229238357281344845776450893995858416911378974229459101932386249010890724512310487855448346969907900960117562993741981874065586072329920844764380903469867877323935496658172490534477025960678118867432728387500786077873498479698237548030142051769878894390950954670807979610610462093645727188583704384174930017216139079075968196055901781710203066783253695155199673885044013671663574249842030633152878874655400090859365921797664320424873757093611579132626375942679187504808327285725466411437948041075573977854872286410545289330395461301628880018888578465756477313837621548232723507560610678105854293070481290622503727259233709541008035836329651665394111030421439575731065641710442557849447405872034329725263822649559605977160073764682266942883846702250757853657579413732807923235874040820663524827123943523748888221322128112659711881821390456280155868503420737465111818540147188522752441646573980080166496695297243629396513559600721009865234147300172596466696314449215485585410621271483785677611315780164923671993633609938563847691103760205807467595508253296412160053638899999529248278684940129157236014613544629891354912752356678095850913643820057591011887644846827596249137110379446630704176260652770930176449955396435586790151921769241121984702259037411576516065666049928905686717808493329149519842316359096361047329878872460448358196308428338356269877626981598666843504515712066350756207456123779511533681136398546424383132631845281149797719091337370850439180566640658830887107054774614179370991209439286880146553604575880598130326707072640760199305768469569241528628394802508903636821483862229317707000853598643379539522130498201701807420104029180667075537175174219040880296601622487088382160067121121129418312537203610095094819104630047357166606318939555464963824347833525641687103938772011706799800366833822001658162813907851244916732789764917875161756669261877736237744623019546661083574934192432201106947437587217034452151141003421845928937922974166318104934624711003331108144320891981227549782917337945894036790137215885014512402630561459793671115839279691063613041412906122740309066491779081564692269509550823990503080751132161431027069178291310817789635386621169026880633047710542342887588153356491386053152276144098461255876124677497002384616328884169444578617771150114013310609547878689325203811716063773930269477007133520650913092279653819847430660529580993530387425342327258409489552499583556147272611393558687164588158025682934042593908421227806154226517485726049082807194820787674238714224441008534631569795295032010625669055347995476901945979013231033132605698988408928576333338245701531315541446261244814544670781666226934708370272523786694026158986091956446576771017807630358615320759445099501516684133422787902403489677570186352089165248796685525850699932581968719293720878475599104799418598869933622990759675883577744696463320275289955574989244851411547918014771763734123543241226421172787498095755221266618640959993063430765719058500590717526498996815180477813724502616546105675990145702024805450639205563920353425565222312740293294476877844432247000715446396281003369200860610916341734645528480345669628651116057197087560552386135432039193672899896003651641977907617623418597008123012348363623820659390464783180294904055092626900532085388978011906706022737796788840989585219689551291518652368564685490800008412834535722191017450323143699067947262784116296361805798067481282305574727900898804740272005696684629824387654886025502042728804702740201251835513116875821119179689113879236029499216885338750192287568772894052796646119888924069054234613007784623203092734928645829759611217037707531155573485530731862207802270338006018290389739002076440872481870963998142345459110006941382762597882230304843978724232684285397360298386335859157843276603490099625488288474103682356085736630549530858511272357165369793505620650218999942999169599972969964573080693955776453137811101836535375304878335598511855647064380333494846952778147354603424132370188325046244088318088262315435369800347721000303887924313510883158555417857779957619836079558277527484809839162313935009818558734725831169853558043813789695732262166321290654006108907761469483008981576101320207615330075863235935026987156709963210583560013427742237222076327754962321796662720341425785747923175388491720468444243779306196405100950315088725065302039100184048816058275366747007497972030779361625880058029070018975901419270719902299567844607165419973012543037688088501603213777734077076228345286337483504362302307072368256272252831055871006860950255484132592447845929374433206620025619607851763248984714540882154103095192338560157370272240607957203426083322852577840315968495169129520243717364230057006765885838546456021561295916662186481606097205349974987748619370492819171821646785425529894747292273028254609936381700215052320525166622170507160690364547586218867325569264319688393053268642854637260550859859670307452651512657243185857947777916859626464734639241009785996849377859222099995411130189615157209579273025048915888853941886552795112241364032790377163178355367719479652657217400911182780824055014450629688388286169578717648743868085866303315292421174451062733558032426134266839935261256569747056996773640331260583041430650058165004188081882103893374249643519544174822462892010342843532454100386506435112075107020614326065345760786353846639630904992757323764348726677706513036923366271983121595223010352085864826156779738946935769889665679799611315268954233373594050233898892600059697774399216067325374116755278882373253244837063615965444248753323716345042226065643763694552547042459790914646488843476096552487842403757057492491064764806037541428641320536791525049250140028931537347574527440840463428778173300785966259777870525448917460797544503907717266045787020531755351071504404064249569596195717066441074504283997113891046041856925140634300472969583623437168557151930752871377479050069407217553605939514073418791190309671895289202969382246605133641761967773068905378844110385253069235914060122916793063697701986847831901830224980768211905992130457284131236834848830952123681670180163793240872593233139473331467192017254101815631136706505713986045577713578105752811403371695466369574162650725450227905420264430893913704677402126878739210405506235934792369627004658498883837529113789815122836245241232207589195186288079137075205910025455255150541532212889771382438998019442266618863239255689357513018177094988315066471916732693591006445968570065943370545652691785566186096204443860891462427453413073502625238630879929964671118060999672565011543090905115088939888060680949938612797512645660340452370189290590415027858831432805373096862809849252955833493791371655084017024150325587441407233523932868126277706616216982542508543104198556217803185694670515944071572269529069682887664363423774065300922038942832803316153477017895743702137155791747196148067928394188938870899834244949454931297684246067604284544413195856421569317342574062389443983459438861579689819991465826474799174043126681178510199839442812675445441552347730405794376292281397662710116651913825545712123078404231075470261324046428532705082541000114885597271186533340251302726069920717638164665352035443871956123385273760692506488679046802593959442285339517948883703714837128510162031435144179007568750383360425288508034459140163306150463137670464267674915818144026829944456814511266904349405273110788667561469594856114445069352811624411028678224197520954776070466945620296990050900693972975887905917556444525073435725326578248719164978291210042077768266220211874642743015945090700180506951293603067726673856727543889059266917003838070643237111710721352238647469398313430557195690847021663759655422034902129895770919808743043171227025150081124643927453437949820740369352442287588486247117907786483511821145949119995224530352522222047868824792583945392197695625552274617739503243286463046571236725437844985906038981494806233912419377431121976093202187752064985804016152796032415764848597261975523585567602864894120551626771455091650810984553732288584772374148045566264940358946034550033613814354621385257223360424622488057621862867900328314555087091921366773837040342156286978681689086638741451077912425296266532040072411224491041271188970807516277990555421328551132751974707496747928749557852507203377432393272590348603857875267968562681277884485809999399089013093435314031340468580946549313521718176093779163865542046878835053432926723379122174890409243061877366950149451989492235987648834557781296949707183783056514542601908049897679665028481370854893262568556907609005042936775734311466271490469573018271409229371649227083343331167048102277153742200377598606549832378650353048267851309063731782046683538763157397975449691614999669875684263623365110761527643632409551773593958361837310231610394594806743367157393473302611293168872902243303817833795489730960054914970113793225312328120006440256264088765603340060551470655914174761485745964099915290719240751011614913136564936565522138615557236643229249787116659185322208717536661957387252693502552545028639201300661519031474075368569830929747651548296741618536380878233972509244553385953089676563865228040641038684926245999451501364534749185250225285860798425475463796001298403133843176276190573287397165341897239066629622135363516268444613834126821390265523903216015539028469772949620851947952708777449000261785762907797076097234719104209380740778369792217900782271640259788531524762555652772333594562578448396068329075010537782074134741453682769501671750149313049692187816714611748836941539525826150148315135765043560278337495404045296972642967654154920928590006380409498810051055433218545151185669937698589884144633647534834952940775235151812939685372376072711599506766115148669486081771682953111028728807710983716978149390309059048371302778897348754954943517282052060703556040391878355801721999363430687858546934605716532494222034121408744624047604506998265747938880127774439529705707443210325289815324319571702807491901632846016694342742090951743326657094693706548105046819130945714495786226400463937728520193382834419813061327868278378269084858642290080578142131409332547551302409049961715999557405176144871259795464406817351365251673146811580878559772015770762497678982498785904164262159289659953568170938658786704954881235212229105423194589844883059802872210726579537185309279989835686308100455636648731109005569460305903267059893563708647174372455260244705758627129083961887401441405270791218398706993757207318565243422506922062912822068053104413785156727022170219254943722577890194514070820501882062319026685476037055127684904564678219848372547489389343083676940347170890458853959584085879896064385439579002000581905815270925447891752241584101549381542650835661893604480928954035510928931101594882743423192815078296751484347531875013117259771991038690325847290739203407325501261144250711520948502314914537820347533496035360493856348511745474509452120768280715174427747784668508957167520595014859928805353416517987958895803317095701481966932284879858278949539745654337946092342935321034551986675548530828209571024758987293810147080283852977105420654808428965313560459270516940634315033887525495520521633193767203683592830498485495411013289073597830595585503451903783505703873628437605171630168535189388386049807214651541484154045687971746417080806499715107347729440523853933082099741846669187912799477058007916396119276290816359791390494100873726671399290315800127906705866898645058082541240776712319739276187912743215679034795339398962572415224116770614498041807360586470820373235384467043123987560308395495001805197237268891854664330961663907239506921785777772559489158359276071698413377310458686194951872295530954089596543202057133351390531211974711465662645216340746070791157627320812366413182996288197462568557720764559871929858221168125439696554929161035389560359370701842716992717415634087028353033662444718452142331742064782369890893080008689522127709805030858913708332646321399654082886823090011006705401275481705388118398147294540095908843205725373647910268089788238061665645819556192403789374407445631932146663598867354810922296833467766802948743096782273017874073109307822101864702870772121618538495029388747868786518833293400056372858569371130818716963078805344439354659544582356853386533630705107678350839459678481259826904868907186983869193107253044486501524955559582556125509307023241012167117190142511175204021672522885103027766100797625752005054841139434253750436259748156194430418004371950973832732403959927113558086475760308026016855673896419211311299480891148107498544509657844612297957867506649939395639514895871099975301796425861492925602258442342202071160068659481010951824176144698613199470944599944842402569920557155397525116033924534970373146018772947798507637931006831545752768892073650509577844619651571307434643366731408932609236144790782961065951147189318423769250261414262934053249852410249797488096069526222091674595010893840099599498288942099619775708300945417012832713269384331448608678427818319095742443431238814052312127149266181380827051642022691630339215686924587565738628256246833464343658029616318454787777007685829016393364858363837079059489108091513156266957892424213324775909045189464044809693459507018344464162971658878649224781763875720805441405682259149493661630617801003031521271221065306646544513523614393505290630248102907944224508401340657760759471141067629661546252313198421823466978372425183264054094200317151671778235086788178969047903931856473143952456138469570239158106465304026507485193605573379602220587697794362611275558246547377655531481917333164077705100701185513461088282693404847621104473194884593055782901202938730306552195053523403897345904057677968109391929893416986983960873871003731472640341510957680299872074983270369649129865504814740221273093514204249714787612377167766599524085358996316908666091574584792244435517687073193653554110999062443476860836432682597261881843626620640602787832268175073515436784316843970383573865007949573247953237194094623915278465857387820535197353834871891607754202995454078163562461896786988943112631849947249064830203892029309894261090500049409095348357213322598340817877003176305257159954246132106116381744092635254437773064554760036594085011842673997380284426253372455622811774912570845267553140050131557164814454533162607596878803381320626150309834236741574676069826544758303553682203322994341597399267421572692739694159241378528972967235758028047235425093190364933724362790530652925241383227693639223692655448607969810927500393713979968956168746395572790980953130589685503790926021011552607891062805083060913557729437134920892712833166167633583924454466876267418716168359075190711567492982048193635013842011689263488966105013913606437256752494714250914964382594682832214364091681477229541888326875904769929393344155694709864636674372099353115498568502245848374643688554983038090094850566273184189184558515450255576591825465066107808383847190803426164938583407074968949393759772804434695436965423285580707408944656324699942757773786903593572361218884148554225070599965458416413519668424898624723529817941017968423241654791908291552245907015446601494173781349406977259320072122184827896653813013383791401580029523242249752765488859984031088000975872353854781369939135072777786814958867578026607516824616114680555244210058558133800112612225258785846626740696073148017822435121885801684570961245701441473291348493930758675491607662906285446574240543186936320899760688924444444462805693544853325167394137458862208126095840516056750740761759622340736891967777352987181512368977400084975201925791374670503190274661771442930062357783775361365316056136773226861279761072192893013514589102564679463909520954074980804513433981706664472788167798142535593603723205100852598211666467651974544435699333395944761740535901165302939964771320709486115266873180864288313478360629224114421383330034127752774543240186393682577180651885717339396454585245674616359851138743645355975390019870406292207337170506377593977585754005957054740110588715552596779355080465512683603200327644698160236058720287961179543520604790946584646495665559133578541941688160949198592216205729744418805221142444562678656641784246199812206586467627095167257737614547237898801075106599462298578689726331163847232220362663408709755004217971432065716259599580699648072574064910153701239657202950999384386713489863634167303172114657487724271651941817721914028991812068080362310126698712015359682552117513918461359044068713089313906644419439110239842158164622952116375291807249559708118843774349369814798216458017146524578535491185668610416997049589499263967469583214364774512108104816235377785006849824891189806263848143174789191740116660382915641119341162764072374143533701416254221665144452000762685575870964671148107642405276428005262904614223051349954592006250280180125583659762860135718909418460463449552063527319624025001061497016418314584427444504993416116320419685588610272992059568163661960110018780348240969245218250466196280762326060582105545014065900009812555343728664782770388317870343563984346343963617372656729402446544055732678302334680479609255400260723278394630817780183135344253973875411697025169710418799763770253932645146145213577743383562196835539442778323752724770086991441446494158624792905735981419595062256642960004941358772602554500995104356025741039773463378417276450680683565286076912631807794724239198166532063136714539906433896427672517772589416411565685565375118973724692567882755147147404236197607709492817847058955754380976609507396619684710986124634875824721926269926047266117293313725547054547487633951710861465769384589345356419848170529868955017157905704445585059070198266723568068389330860545418252113578439735581107402360355397872121115901161445435140501625775347236100308868352322740247302440173351173218345319300828621594252470255879831439150248893814251093245952459647129148350917409280213355217785130368165320918672085223742742797470546190015287790997223186247029976635618351205152746028376219796444873026092592974145560851886629972383627307802011383782348864848915892609627117048036933750386712948901857657226364743828175474157992959715252046042635086302537911946725845696612287137365695864953127596238086659547997390863794578196324048284015499823296341687949206023316002372738589765967725437810332291864643205553751983310736584186840906140563936040066511035762645840514426619938536001901131760168065891979537424573914814776437922900820600607757781493198532198406019961952758860734526260877319145809353218451257713032691285696086334824047246187261271898763676217845334546963666041306846760674719780145199804993762336049551720199701265235436473112118053055932217951026238624916081820743828702694232931480205836330104088329284272461910418916869561640892735878195409113230294414754604048633669174315430002026513018120917029700673300420758175929960988023142876110566172777558202121168909484895152493588784742978212206693920164127377819208048642533352706162364343256915452657796689570828810927356773828743486190662518886920875580319789411176990975075455117979124824393377855853810130797421680588013747744881734180359553776012398600878705813713017577237749713969677548548231627642836557741919763093637364329283922998602874113583627687525544839825130678197170093174456509461247788240986758166250264101380217070698481444336132268649425108971948429542841149664043227435934112679638567613695889154169358948404627264591394301659112983544112880651254720165990189724672969083229043514798622569426037235896271102228903287912708455575511534338722979652103327330776113798931612243701794473743794811367521277524252024276478412195726575223685781884670202288235538200766376152949627890560256769755123784294906948439074805776009526673755322204722596702169013954836538214948610963758159559182511196883096090715553591881357396698718309649984683651159736824302075161792479968398731850793737633940894154508186506726668108222594351467964302282653593920920040719138543586985721462075529157891948763206195811091391925959131728123900752678015968124642197775346179911838170664581755413081461950113733186836248453609864237953883387408652081791065682940679007616636608374390721053126922141063565907925011295929998132641618169768942073883206801110087378988112613058510942926407720328009651580158952958469687071690219280977550478717542244476507554706713144300614203822408964809598486936281559317091417455354278553709629268038518558064956266829285473292956927880035901860655383130914078428232620762278966102475449711685447003104256830382057116245114661613659344539214450875898570150495188865532992977580975516610917181735879796540682871456107421959383860559294812838011809186157154450542329635305936571602084393546914386346241386300532766637674655246024012877125585209530142052822603585563700835393861405454027129016281363859877948410498635039655374839225435946689697686203488725023203483368034626969776684917925311546059859236903060798923893223510650057086925399908469048428545905439996670496324788780793873178982192594337970595419975626502183364327626531879037704212513269741138792731827931365002382092105831130694165322201332228974434742226710331308993731791314365427918004036097346807728260448927350165630084113103842686259243114231112800004641923200475963549958890025709869403375406534958291398929825972308358911875733342680886162182474900052062694899066911161462134637911686017339125276051353087718784192796785978801000281472745806471562474511282599753582565804608281305105104709097316261688489639876362749122440979649859271508589410994363840890273096373450673710180306983964416311257484999278328829824040925037212488273990303757535907884994199956596713326782940336153886947774887876077748078119593652560799543436223977922084516290210728956531869734007168766755724081464244583304543674103426736201347520703616628625198375785213284446332818303213704231037864840427451881042656057428464253242599493961527986187154663044218946714641307976366585101509007267923303615444509788638452850688159117172211640011042213332419131351516699786418481144336709694420691109823934658112138042121260369496125943517161309046947712306491422221480520465504951446021175972949853171957650926193322131969169735964597992934613906784888537398649491687674818315598714846303268882941197941417013586402057550142354176897759683971106645754413033063928767720054147463644728747621228799323876442301707247203074386485453425988374864489395098181871793243566523128992928899926516024171509743815677236277140944476382059237575032275531193979176161354606169922421654385729791553712853248334598578820750452909559861553840258581701208534712195927536611272115395569898331248004259475012012416244489066613323110357659028335733898270730756208150005567405054402037705069940877950937713967351983698056359941227763417850842398188205711197526940031815271053097383248884741548644386056223997759699806134900440074776740599268762186400054398556439244234297944232405204586892419267304019357467936471409754242158089823377430819726828422866223090835587682718324124849807947019318213796970328441743905565286798436854734083992361321852360420036814341131837955040123882067607562760464202112016703722361172532734703435788433708023819003259926068330002880062751359163914683271312988273030737444531672261724876359985823127194163095311361683279926066723889628971284128349902403521144354612759712378234346697993494046844145184960413935449613131286972203601643223967527084322976333531572887523585383127525735801593119823625102741752211705776591023178658491543985164614431727711157374057948860160193925997788302430339047280380772549096819194966321334442324968399042595265483880699363581889009983665258856086302447179339014561949688622276631453845932045358270977814973282704314895646226744108449430629602446189293946919544977788975724222639956620929904087539872788611209209668972251346669050501844864259256565181855890077789000044389329048549814666968478187808729672738805059844682623744607059624494404903695429395184897734937762886342745048297054798748706017812534043939968574705929664203727893461928620239300590876302040303317874932966371455392429922925473237888626692475268858325596898134327966177959949748300334882356852844653249488469478314961042877072710052502034327565581325206364224324072123122677603422320696186649101898561015895106133424947469635792163267513924583354076206336237980317758232652984552111404274515772411929170553731142203730646691078513862950991962797804955499907463421905225009199402218099451204302025339054575898055056002416016521364654298320811481114020118115683530276557106125269177295721364728165815638977365046068863768343559384051038226291223580246309203729354616373990360665558324908631561666654786419255142099684539316622121987975967862607027592552903110996536506707341448904209151537046525619009322506251780582061744039021921347332272791423542150454868011948438552379675003363496960649651245546594281633658618886918555733321847075890061778680404563065821880032038586198446837965413780944293576194461023312959055171661356394744819359802040358142423640422381572194888732235645894028793305587043051052593004598514126557310053230309804431941725289430029213970519406810876391432352515915089113069768419616853558891712917859646791231188052074388218634197485312516336021614208053136174109642560675405215237233543183752203587817147383550498655301051033381868575163701531989813928823013264015747999160863994563703996421493719895198490995292520793766652460626880865344033611858792169293380742394946648674894403782325952600011267841503520105305288557737127574880909767238005587623787861480083131966278240364007662421038090939521119133798028233095424964427400815078610887770093549970196169394345649723880684613673508338108138259152880344551721816429192127481114010847607064857460579379422836852970785302364842260851346375700851170172563716514952411039033330941490683034127919907862725977833349339962948205731751751859352670376081776102510205352093423206752879832138048437166689276461677927622685900913677093318292224266730001647545315028121276259766018903385073657797446408311401050595692659568809953771821977124522752558332750574003585487798414974008468790321172570053714406387855271808706568625463770839511890543456379769497505071255514046899957705817188617997084202604862317555945090875845755941524216428312574060330351389032237705809490638764968986820629462058317116778744159876630003237316383235260416541947634579490627217669911340064028062496091329469020535485744558677571253827583976887868958828024581676790255666583703486094953133534358054290476131026178919032136615573761571372226030796118721982658260267385518554390048710328053319343715982256343758510716673724410495379106810579352923505333870132503290881479612222262572411578422499390188123098931932563047861010801974140450495579155286115680103277902550520513637584777643642475879938527392873365241423504312533324681228411093928172588066985476182218436656178613658189827669949577066578686808473774392856041942551783836699428934180541297154772890318133388658921757765327311137534400914320214732545836394086148823292629735833909121306918707957087511042111276867198870884630381108451106417283847122964439453140059204527902997000618310781997468496595336544733454879921468997467224665725000418708103739349848214668835023786908350703695537224531110000338757368736260983472786346854605536724172989130402521871374989214058508089897833269888464010135347344217798077658080256351300044132024326892612181378594071031895941018435185823319449632996396714382550413969273853515757595183941790449928047512046090143027739372432823322407438646539499601545145374537746687439458636938101670106980000517886861815532643018175659870433623915317812367366385928353046842924544659517936550732228894251822536405145525098127340075201722652419941010324220774065405600436323182909083643134541066391048207115882586310719614259086057973925052954546287873588108542397429335140207884596812733605840334612914287478210088032776250776944361072693360523196758897129084039044855183810781686936082620492493174085598628122386921451984062564513972572782861414288289488892726059488402185843874092167062251525689449714903334882720959475384344525792240580576021331856019762819390365281685177241563057112212426435381350418616078293667248995796987696792962017538310583879943734733252593147473589922538766412315361421904573384774096664207268567023276321438890229069107670225857257908554653145743195734867281271627185180832430985521340534271812558395401805725876917731371250322346976925878729332041377650298256821361343887470593177800157458380579960416091460144915138101517345676717825886036952278135766287856590147833864770250972015742400860763513519410578542138273291140969052189303852388911835919330954689129778333324216186285079126587847372676868193045779135908237818181476520474367733652016923048605129036140005937796574041684777779449928780541301289134592628182124654283877267833193347674249744524268743521626744924192864896360513924076654046607561089647188525184790974022209092287725761278002068143199963920032741718942765154592325981882434700182610345880930626097360320871827462357867537945088026235897142495922919110114746207976098658353644837082818546140167144894405648767130534977615031809711837493764277912658489649493915212002403124356883256386483205133503914625723182294758974923881075570812355519109421527163892911055515925581503229235924000834932489366907969074698451057323235806136230726086391853300587323258958459037387703320766485355544609178353846046952216899078862792270663031010879741364572889905167489261804562519928789394263546477871037597793531956857448011158102170445946814604265640753900872255126919512801220729438197274512656794859366125696691915646940537400320220327402594007427448167543934134647768978596435513855664458688865409173822845084072065152040831473043708204693891542003125683201533621823139437623977092790856465446854944681082320704775561599398024058590413843693163507049029455869927088006784370165536503972421683923111336478610490934470665503903052186842516369691145420814167922547327712718815926178030440939249560000229685760073028086586965726306125926216343212098939604389057394413414449045568395748230987589409039445050492577420964281039880114254413733331233802728929243666499930755433147644117702928344384991933177500216555224653036506438137829341597597803487266020771589928679662693396603081984447912043523579174786963198041072343546225152174309966102207313385651152316815773946093499544742240479018257130878231638026419434294091622894700289847607843201618480618086991345075625583103481148252839123120063287068418292017688783686772588897915504065115970028004494690598790854598730381885418490380731929999897975771364409155447489368321657426449268251340567360002995112191924775908467640274390686774067416323168477546026777724964627481416125560890819074372645839389013511393757695742349464149960196921711120028847420468842339882912096970250170720364216331283717185911732149841964391471912055075108745075100246470103603066701999745615814746147299430026226972960825743692160612765753046535954013796627794755491387250778147523814958239779595205715157526728605570563672807384562013425098382210665093622056826377430508080105789911285152685492499923547880754016859244925439140555353968643077847597420388424361858633815598218598349798617594840654292957100171841007867313560781700844492356070489273845092146092080245362018179686472712071451368943510932140508977617613919705527914186708498048942697590105041976204233209614317635481248734960641799559461717207668396107987876409962573850918675274709517959175528543942046162738325044412726321676273745781427176003711290172385702823359104758900819077565413949229959364723561989963884213781327841034316494093179421366957907190053966628266664953932805977469314414702284629275928909389578081546032740175944378207106083355864291242765515486009625073500472210610865377091423847814820634667384218836867482950156010768674291817418270088916110063958678117711154093697277464286119025475460902313584829846663059120642923244161509206112637800505956234940933935954041149139264889541011744746911889060405620283660798124716976609115574705056460978983318857853341950347316378776573570603878139887638187997105900417710182321555515419016639485525620512605657922212536808022821071118813010522607688546230243126520529410896639094826472364168787907385780930886388101816810927232580644477410028337597975577281401694088980318147806415167985346160004827682720906113272929934488743430166617813186613258346915882499125897589096022451736084756413751789585583079627764782734687480401581304262523143906417683303856461274084440026933572023786549018366675703860487467799491214089232462143525308886614060397837875420345915220868348246964027540795355009650793348687626542797465878238465115463635070827277870969266709699448841424309115229750060859355415280544589789959989476950876537477306031146060527569518909963378766261195954425911560010228277193452898186758586607597730758221292873870586859645333480357174989236481591225308566950068811871306785199789506315453631662178388575263469993294844329068096327840771915542381239543241285518538000014299478400632581821733752420229633118857425727227306672693294506970031101748894768535596412058199557625744961803333330901008380049175251885082858300703559830925884352439672361253333895196412146620280054255991773208004638898749576143380076365136157298240368194119837476234118778032036303351348962122408727494650745815921736598585537188965366349907217642657879865174562093405033177887169135465516956408211211868563690526315517628351711632788227149034255531614972779326538995843148394799021121812788792644143979457805494958796938282159101808128779623054797638937377954154519899384710455915158458777395648181959795416782286606935814657293533156491357327754667109059980350502095855955839956740433210870621569178487243449866612687801347409606232902953950054196606896393013980593593168574436559185279840724770914113972940397709091536953938545600793119795655238280152958214281213731044842278756973694968686789683147544977048994421432869143264458731046997348426377090897796932839089909264716978571770453295365438559435814545653509214265922597048106442276023747021022024817256990195171173680552999713622459015096841090970910129248574312454064440058308630057609894843990530066347371329362945314394466078931869701346256325099834274254778126878860366103496962481969824586883169899839788387950305344077959843185025814329437846956109751785251580945288316661323633574403416945838176066412670218310008367073529320565502125932405465176700145507008111008492853691886333445046628619268704649538251313910035732048846151550340404737282077887821976308186022686179715782784970020883359250680103424779296640226980278320965315977824838146766850817199885702539802504506923415382284570022016734538235363481764117596829508784438031478148195516203157730882887618341758025636669582899432277141291341272473258268082083851964574569502588545583520485471731482627770967484670115238395494912928527542455616121287052800284601618928060009933924650146127667181847172721908907999151914601463345851358795184698592764772390314341518660045336719867665418308093293218119420708196151046440542037300774354675435066067521249560909752985685827421753919711394186836454515715288232743729765607806006391943246264843621688238954727346658531187889178775054147595947921427154972603335733585678445310994053920038922072631660819469647298988453685105591540318346288306385983741207522836744992420060043501638170481156554333300526238555987057131538902669897041483670563190127372454028155831509238862671438084167067675492278387486355912383229983208829871748397475134623104847099861560248466050876303826948463034449362519707116532091505301067221381554966914700453234786282658084168304330873086878623223822065780926496138835165410322103082342450591046337633973626338145992389310930481405645886494242668514612530864072659020110489585245567514415548178007416641268525388306436257085272114576846924232917728831287646496826230761421718498742917577936203957234027345307343428249184496130955808006718409952753226051425346601657143095889004084155242251046393727363535694247314142706489682968449864056154811131429229997647464513626832972307494365355008287986641556747407385231787436227220901088774781620932123637881865787996337849591213939805703621838222535838683150287414650553069614976774484156217444199398633614063114248409130742247430360300195098170552627416623488729055463329328514759848903563010188589277643949196255716230616117854359185196649479324568245562905136647909348655412179626706505389017077440229326789305090786055228070613898009810241715210196841693023664808793117379129561432445300768150306271457752684709177804302990312039915543862377608152877470626644176195557077366022346591775320785368044093578451633952856039833861236318479198932960188841781787656134166097072920886054559109255133204583411682309522890572121280679556887273875775234696987339378040957938744754209412415230883086080609596008618019385178772965298236726658663959505823635343802799138132862017754211093277123305089375605305441915951000628236427121781930860939419883004882188413458295542249913315010771840233316727839742114403210100504997740374379935944263295764064061137171427332233295114216466666612386283120676868517512082438765719185562419527381029155408737648505792788801749196602974178276505531773145181115559488009165709806752838707124586118814824520188342106345178661880478939784116937205627122172476256979761795569302277461723485254228154852232882966350300080376870967731546147404917521772127392644895387710407718263136885565649885047125636294440233063903254729748812180820762167014177551603026442437808263435110339445033121229663626485481734080367978586959385129812679419817696409258848024158917265506994014928286120524245160680101111924583336413297262816839344125170815844200297062147363630702948805625822705140938132780128716692135547992192912599938347391212625996852838631886924722049820034728478563937014892642848367933791062033057599370652837934081704549930128477409607253127884845639219644917891088273766219755576730688927301323918654397328343177840275629917245226175482288309031310963569635659534363358216137809800939202338272950823077261716898338621570936476501174887333172640437161933798258107351473241633357106773080113410165211576328395836966494918385939742327153969377411816131803818896844909066836447482840082762090891620926542230786541125316504287183623517516298796247762664441323863941314440765832700754708883382683381930612253658786981473596735917123179353255599728472495633017705152775883830539040456281304244770525502648976142507681214814182798360080105854603249252719858920056842372506324615220773284163318681009134540793801756934829640195081583057747072804469013307089955065079955265450738425976305009354546926004736318083313115759384567144981176996936678863460951227559596884774799185205082251561056866970502727293419141766709693608197284100081411440548790467353105777258704170003160330898025163463896481337721079353653583564291337419517468290108809221833094878817406427163232218621714285433824245214096494975880169716147039626518709102324826838610477684763150731737663070175094941033121675758139405942405469081802292147360612578573731354048858933324642370974886990450718000667836569336500612226947330672178368344816689311941274252288018887133870265616095152658984636061296259325720427426441014400490179928630887318488670558056026946013317621771022867559906706506606748976868078501523385741325736214737881963552347781277608941956782981211726661838809861125967108111873356930675254435198241613254715774310690190995838373089514149810979906442399459337074048711441246094256972890638157159424709596474041036344214834793817809493694374334819492383721518908855868033572958589164989677556827280134037859293261596676247641770887638201498026011959969628747046908592620287894527710114527001709274439295473498053753791353843892426744147270744267201668660808472276813909729568301691868194183491532435796838899194911742594150189818766708411142603146129657734347186110321441689522375628863596641487884310629491330411954210029007315454591063285304884382896091871669080053015173479149289344734957400797076298678125406265419206554731553825385711874209754302146291117421840184116282524201135975329937742859198549078839997369256977186798586890655876965337921443024017345271266899124517664642285153033581783196371155828770060232171897758942058500740158995352169860219108315760341770235345818268890173070523029622446880251624493914363950631580082529750301811819828247781670856307588097536537269265954863746264540834804155150164622199110488912745712256634373445491778569599302641682527098862522645960237854303602589354376819519692553735831634272864775681673296189971744073627668661860100901055941734212264734619975485881839120741424730000747186018156432966158345366498558554163958046463028476955527020592523318004932197671742419160199629841363069634718212205861187346030876005828917259620297312755843078282861789943884175024748509364157895193297255899799548440872499109463698779332487837611857397225547673058782398123482278919730565655930137633832293788376097757248929419226270771169079811317260896987212430103480987501148902909753294673417631149763733538712062865870405330794694378624896832718215817917936254728644205145094668172016137431570266613411289297271805113743989707382062418634777642404500414718416633036269612477568366084628316117123119673461421050508816932653226942264266291324386007789492177744764846654784030288805359098660413193915543828613733905539514218467817272876718617750556764623859690218335964269493574819842566741152714914863436194778798841021634072909626267109237798518625440684679044098050268342266839350981147389760455250936033744681147719594751682778000837103460308898510289529942371274377071251885446133468777704165537399144612641156049042966436923850315879295686285216315572849340786226986765135013438418789036996604923159465751586424175374080267126330142258942887187588776681688309208571478625106810745770704085227425194401511679023914645056691286177767519148097236357967221475415555807075925834175273371394642680944961253399226255845261573951694522580009724463418406234487795007115436875359064390276422638287099122149211611893134758746753528132903478648147629627400871049129670069535983489903509094003130201653671463458925151776911716194106756255717958452110493555549033388733844805986119751201696014803449982157080789472929177517026007440910932242754440732038427746550772030947225433239360699623154538272909343258019640793838446399419798506877284389613618049960182643612676248196277403019009124049590215668015430435888583813687637001248268089899179833328993370975608549269558973701435405528481013074046326166914389675965485941205449927805416554915498402957235025996630653517620820134914991718077996442187148823146230361501491961236124403109489685344698934863150868194273227108885671101838666791823233461650342870212617960397073055403294408124580005687669501180801170634392646534522154348786685623939838787906075834637399628222164520637164184757999138210846855469067108082260633133706081743039513790676448525109824351551104132078121484639257310569025298719452553959186784511984506512550857680619239040035152225928133141073570834913060862341811094960729865884425554487220974766617374301074647721688127137135032240063443420591934753712500899158492050915933928912264800526788811706567490208619119996916759557647377905390128023939363754789002106548786640502578432998086401642638026526653969449748461876992793587529047402285370327340474618651526442228409056546878090618085880027134070974658265975739104667584358199183869730742146389015701640023739227350895760070640105796647679925205211823552505997811561239951202316851682735087685818456894975321565063855764236991914419683283103812872567457831279730692225516297155368049747351632136345081678493605063990772578880427045264672776270110996269032155407701291480823452079991436530820574681800528731540757048187652516497821032759312687216226335221429655497489608380784101862252621665811890365647023309652868915308550106643598389938188068656933606363717377798549177430519230939501278505104609310278698035346548346089475258788157005255574349374986932340523255804491037247615372040539295966627609414749902694089436249791278425134323277745377623269650556980750395082785376091302885065848730269595048175025898030644598368587828476116186174385708724685477605779417651265205867270819634211062901086273828464641281838696514346957577062478312682262721573209466879662994284730268765971100832006451666876232395865435425438682136752432015712733229714626581636215705109340562374322544451958752712380635930059319737058469415628595975398496592743374725308195573668693839908796351423752478671200557169576929194901558758083779279646901955099024263269576811523354307880013535798876308558263608367660832492006076184435633922881068239974975085911941195155725242337863163560359718460308529714643688850683895768295405114236335788357029221065428437237982046085481412373018864433864303421140230720537215248447615037044284007546010477288605817874371634708016820612740729949034792490560606315107604202674828919985493395211111465231437606228545168967194769627839773302469612022291741942330278869853211482943078226803342805737013071602174198202594238719654834104867009913557059376403678464644581386537530639532943772004385170530566486581402512487214260427669856590659559427192694858971441744496618341576013632267173848504876907665704713585713744084912089578074386088816473777329600921249418684304494894953335978836060597495604855088149347695073914907074811966519661956269285784342081161579736154429762477704626180781081003682053736243010066092427557263326829082591471129184684214605740948568986387415854052372025639807122416698341983359713359920390604611038667798726307450549336252224730115586720175552702940326901804664472238543960389750373658682274239979834120540360150980215898584030156205728830736203005635069623572624327352085653727073915831261148713064719281966154961174022745900372022787000035876454051766417041921819437236705628972819698870193421030669623994487327596592130463944604893874665611573028429357630259552491588394475231666273986906347800043474321657981863240805284045400366542142750735462738777044227158758437226565924694016789253473615504763549278290162128051418787210329796063369241589679572539291136464572657503601216236319248265074708850016005345554862746372143230759912067953138565791742288976745645371041586721102659066566934016686350260723196336225266083496410443778764524616190858113120549012837167425807312640160548673745328519290511705119380202642834390695321838993229373967589067060492439005196557000135407534639942994252687251684789467085465966314589411245635852839865875721406357641368352515479987100823570340154479659311104466282491802338004248516211453947774266667864041148468902706833684852665712993271319227248717823405721813501438132815193865007450933951585806189683913336321976941942045895455564931651214119153140730710216725758575530637991136602970075399523847621967246898006012345786142827996599938034916289370909951091821717195746957648630887061435115292110709120152820828654614609173066563539188982099531823497503184486864331791651063018770787279549245030739212533414101269780434148347500983608240650862876638715928729236049094346790011614434131223216196379598300278304389954700277632103922769760044481299028442087393692438504416609348257585694090397773962918544077532476514436049066475741762017389085144365239987166529605858309753800184752580146055826019638616474027166032089856288413903599039606894240629654182365247216357067377449317875541895864510983855635579889047836867106185465929799355187145740047442427947162034568345062496612255340429864597734858040340264623595457885823057630774677559446637165847039575829040487034603510074586690238109971770161393642005328067336057585184950679740913896866534815552993244583500472638209791957680824842879188859472419624689600963612962397265023277126910195482732675842443202065397184891009423781081050623058663991050770308542992447070539994309501357349374136257784332622834411208223866305959958672062835175962789886441805270175218380561326194115209160891067340454375067704635003773400882637183877763057874113567894654642691867851594553911943257567035707783356856138774571778136741848463305235089875197764076569587424713480010214544837649248781149397915990047815789714655841835106187364798270381171233454671095347819040503707289890783235967268385515283286903064515348845228702887518643465419942531143600324860193252224741611165826120601035092046326908068930047507013867949890375603661248426801263370847985225041374604772837289912097610948400173497075940158218222983927316916005968870224099366017713407801314791699856160587218910895348845580399830181759243679313434407088594861627896089338206337244243881890707038509606839045870354944719565747275831998526447060793742334462170591575962834119908365150511393100648172000791853065626411962977490274979352084605562564053476006555987630990569169880466208213798612014056570164498685085386187050922841081545748946236432542309213549628096541833036535945867568905210445557855174016092532121530610292841051094530419798042902556257299141007077458276632223454021696625285745016262020256766613153797596086595327532880119421850921114616879425915762199374005754231850028447877473902453007959393442930573057692592668125733208160010784026203349731984422530182750547067885588182197811174927682593702846191269041284895006586751522430569731455277135963112823336564783719929670804366882031541953467138177718082991592639097935179101645041520019401609365634602280074177692767006857149769113541386355157833165289415822588231349931664150831379788595209804869720158883823765781697512656833391035863617898053075530078039297977125439283143328734138259776728245421927965946886985247076589201057776714072727294474189063384906716808761941825180522586148963702417439552428421506992143108013434371791118387632128615681213225856007416660204020293523370160494281982461587530348047713595538747405708676400719434021619644421683762195471428910157581416748659248895894308457784458182436659785162449212707130557925758317864759445366239462300634582150227337955910021375569722754111532797344015151705778537301106604481410704102200140482968473399785968599694540739968397114484893575892222553404276469030821457139309641891248091155198748703363602183398263176701541268802309181410613313483865074544294234970660954789678649550443312370039967023175788284938262097972890524193271988003454661177734979132979224562343382281323455190610015584613093225912331227566659316421541100810501980051976466390485332770103916359449179286445111047010844877382067813706367081934870514322473928708924430991690152052243398134066978759418291463514054241438466541366957333751361575844080845520001983331088843574793338188478857982298732868623613363323467670102042302102282226707421273254982621801719686743666202302504019636463615936685010016244291201381302408480800948457789364719249482897899444085438601538720852241640496388909103874464221067482950255792822304988539758318291886316516096293703321611359271699781898616989326530267962653504532591325663349511904184279809123138756584212053250706850156850874299680254331362849211408225794710391831750078288886701494804679981983566383070846581221653587799202082041719255614571939072442824797906003586660379521683048672027700035656335565949351396132556471381048823170612143116445479787016381588711203397097065956844276889969952946788725159682182870396488669577910509927250179781772507193854246247252735210098808373490106576952946134278436214804697290266163283877316585485695117057938443477272541913547605882173978254056981284245828950537906304035953100714214867169547882931545526864443964639177815128633450496281718051294832653567888469098849757976336562051102425681314195321522425622955689359097231973532565634235401265929588307658216599535285117183013204086158246391403619220926763894663215793644238308581332037043488578024198920377203310227954579181232401456307606962206037602372006599986068264447253519342610415977267752276122138462602551119597887386814200570357263380684912295512191530085408682783573020066081531484441107224948744815124807670278189802165150533310848433044333019680283304483799197730173469175779581645153877245426002341443830662280299224793560982551480425888979664086285838285065361810873697553471594879276558017762373271429662955680657435811154471041565572089459373347320011528873742974361591295393881368847610614034457686407901190173937427219210811168101594005829078398082187164775911024602758957858451398663680417818089076799306169796481574774741333842452391482441709903694532208290090081634809672274719470692285543617072688393121797663049425322133468037455522397095884820068079076664663066027300936370031579468617050352898848210206791261262966793263703287139546469522171202824756318006784522357367648210879611828811266253037150597734419591751888165002140399130617494709835233121462220025769868966093251261586868085067820644918804183177731431394702955585673946495847737022700664578329729119175638844308637521105946165787164226359409262944726336171638555929413286726430539394104042362331138327454566770515516059025891915338035644047674693695846052096567155079284226715490006726883767785017093418127700048016051413095987413239255088657638052783536541933329417471126553163397478468404248578535969520146885471093402963989599280602723564415907080144754970569514418410674117347723545107277012224701587139230060633711665612829299761542813458315917992002800595702439382935785332203501100701058059242628425542510926402655915071501629504300493652896545573490329202154990046296311159605853921668741994796461989071023619064438921362566498703353277871413519110220338119007018376367122200628588795398544724935602185572514741312989471058296308999918454286636866711000371511184082103662520702186019453189233666918493613421443819149754327001811466359284167398756574248032642070396661839036518760496084810171941352431676339846909598296769148706770977294679196001537611728530439668117404967554227952705172695405979511527781152388626756481051589169773516026543773119374630774618693165972967759511362318358125304533175149479213515101413161511606401731147772177994114114436109307206133328912834344639503960796470394272381631623532188642815688880155391026740809518558076083826126251623274104477357389927823767222910408833389308536062843692393992262692285536940244874017471817519820807679934193347306335425070601065925883011400987801975772137759316336302052277781093984323727996740862999670010953047149693116095092417201078910000970559938588186245702580246232689662894241392223512355517063862952977876251267760295938180906745415348546727660066140419370757260148413568906034712500737730799374567879489395477262041316066900616936668478869601963493317494598304115336696677631363363367072673625993033487877159378622988148210268461375937433006265076375012403380658174050986249005636640405212150660033323784221361427789310015385709463987654738010612335627793917008411162615069161044552804693927819459202833597660112114199704218517985692357912490169213745028371233941313996504197894872372039921982800528257494404201943358622129159634467457392225364298659015967512999269728142835473414341380273138088208183464236179666677040217331055054413759953537121169421055795496763293587446415816554131613608735299301139118016792629264841526705853384120611647145810507285277419912018000677880010671761071715877128635965660602263869963219919351773077597235711684545707845427615345545910432990070379355340947510643978203750459103144183851771998480281462099364976553727315507645763080107884025883450141788674307224127750692318535348164217497023669260399114514754727228940466023442851149965231100945537192345233979748010052042621363052115213274031224927965583523208666643336952586918547695463962251786954932758356119387930557151624109535929103401843258144925897321621586071447831947493975873790399004248127263466235568987234632727947729556053796911390249574975785451249225362817090976003881139185095616108203008282613791672623912906482399255472159063010782818752793506820790902255866457384420072369144879146395588486939259459486998537695360858304607871585069262919851480781238119677699089135945393254168092875092955828117391887319604590065725066722877793720372674375448951691292880281400823123437693083474646482347814781289505777248230974958598736927628222583172165798365148555118317728636670811470155714187813355334780211132651901836227816487870425221133050847621568641634842223431846109371423366547992917740004666727566822602397413599047005905315575185549474555730562289460621079844987304792796805157297469189830215462519118731549991579971983829169387643951308686766611462216602361654520635898293967317834333379784527005381851401565765464209982243307833328257026437977041309431521709771530660019849755115477612177513740827967906519038829589684811682637500068797647068296778594752210507440495554363165249089141727963575482347287319746395997019494998908813362917604449213820909681721254969796020183300430519328553193268578857075691936172652766834564068567394616889891201839777797900514897454895424145061051573287866876247685889232711787135830163123787349343787027736312349620890997607458246018007559229884831964002965160512644113783259123261098836229631072163789497529827587948410960695439034468134925774569511731147910893641761847810493564651120439438069153428290047204418432283792176461393848776039665575971060777106680393902481472122007853009287720293224291240837372531477126974930884506308971402336248692786911214146458809080102282458354725538832935603655986627121645606002916247805634147764444495097241437620798263965917165363585499020556115436376181979689968068906319786579990386623038282974020026270492828876684435564975234239297376009351579854190834359891926000060378510184949043130079891444836234298134292982369150214093638992177468785377175842714177491939057413838082854827730223901946998167990061902445899418366670467486051598170101857607950719978861937211855476064673517953266625413915923843302267843237647253028370056474341675910522871946509007027656587187681300449716338615960110877205630116254470879019677824855315586678633688771607766447658668816541985134323504192446787187024027797901188006425935062152508874873837744169675314042700159756800374782877265347696931717162372790212123608599216127318416682975025719110342758709269933573276193580440549852940660551545680912646772567666481486982529625328892693400365443471343085890460413123459162675865349207449948577489454115969784008958526552914116018598960927629442934272360916711643482762282864127440226264660915393359822388607772113004285807133308472070927507514844383313200418300966283232197451209189580100824864149595502119612022447300537944413473181107121406422592461049825776261091136291164907294196535797912502768644141741129652968304740451653306796393676113983699912797455667301385399811547473990942482731979335415732806802514602606580220715376732581966498013039815198256058383516622737360679928293577437789978371366219251147904638070683624354373180918816399062686872928389411461066293296174074635933665769726705393212297541154844284005604703757803139070593418699107247038716538445340821835668427665322114983797462350242927520904762521741190997189873838090545790762076064506514860310309273652454314641379202869134686063268148675511903101510151341012988038813580340497336982557427030214388459543535550935661486307615411590225225501563860280897367130672811144597205845990028072238197695756622766722681080299107403751542948625368570259146534661325395921918732416030317312629796147783089904956999683586647926730116588104432105123877931275909220319551296443770709431870867267693970854184535598393185473884027248001394950204783308953503274804992723029334040408536882608337828550232383123864383159459387175922836820466186400561715865583524776009484034475951810482687219132647533014470491671826430458698155018400938767936229443911294222931112856899937977519590307924197064185873278088488563463752602284161420931476514580961169830145494599883198557725666891274528592261662724641907567864255232780484319925668503737577596847817769748457276439260025105393114651422886662302983352141589236512076911426293783983226877231171150261606060952976971771291990821143454780022038027222135763000342281616679158855517117538427525928587254064737851472178442580330774180712962843894428285055459582479988041838372020049919632435275811636130160616908785492863358707883586914791047127997121465842137701762007720145026784133933483647867506725295708741939570810934129707810586654864325585166275307720330576924325094221352817425522936269718502561938575150784841680936878601059096884831243136005557763152255721054203053876519867252905001391320103022239135800751461822895254524676191191038823294209727581532800856400727821846653411469126906971458552214495663088732745640929945231579989755301087870686992497679325489309495301928924997861416182034932211796327242159642796078865941058584536664435407915357353756652787304264258383798260487985956746578015887459779433643220043325997287130421776048146312450000401728188932501496861780685782643930604703555165063425220413838829058733522585238733917144096164714629188271564893808676630159073532673546531208175583031249362465587903782055761927376951537979803306105451245494326180875947006299224563569555046935261206938375011249335029001103962443002474113485799744595054558228155333045221824802381818477839535988375995666575476190214369905568705263716567656185991699029640584811720532640503909243714835272490377147299737933180497831277320445956442883819725073408686563229105324955175233566534066111780659997266801608689732395008169873661127908534277685036413010332099643387163180322835229037274505780373597845362107978754756184370279072695604766498750341482534843123644018732022216243148688962315035676703938016675603967870306307706705211932243732408589165770364316639191500616659975971315671261844897222698112313515420964500669857090481312495809460975037933328599320021311911072443916426136913961547994829062568382740897059298439956282516775480198585646396350860588854492980336131609432162921324830402973866023561274796281274824726905065454625826907480916695404250394074318047233840922863752311521711122732464333212021220943803366884068658104347830937613760512155085129556497106668642131213971851147685483282085811578045925191617249610274525977670143108344994245744473465296006670976250775852615625852390982714674939350674460130747496420658541617287136476607834634471879713140832624611746552399043371119985405890757960759597613830620047147410070646053663733996779135669526396684260156154705280653925108582415075414403103697737690634532787320159929375598267717625766569363570084504784311657424146892527589200954290882860858028272518547640401029093139832405633577769353495374511125936161405546323206485770982106622501765015300489702782757859483704562018231406500939246837877289254407226914191362711904441038505735810425985515125057993926309398504833065711718470179651372648266314711965749349819646196708743748715824565360424500554997023730502623461608553412559881508104207337059145128605650868394210377550423501042533162386858625463835096004775535439514563857809167257157372433426960104153848124467423588703574152842374292775770446513355768869237607441889057368575678068083300569611929245827780805040396582456005539062024761582976955771253737567266118474782103016555314388195242807711044422615943422298778207326527649436919506722471278152113731743580191961678931445007717343864354432320240850394920416801554590906983957044304499121750531656316919694007442373648279670369857562354002876438445492098584199770578041945743840355733192289653638897820259208225230387352539395482587009759498665042723364083762709714488550286411446016035373331509140641136925368004020022205316910276249912676877313518836198396106182484293442981056471727662178347066544850100092801547579947388579431058711207580879749766584774175446511310830829119636891030050365817318907000916066029491733517797904927229104015010696490157290911865624292873875205647404183414952706020026643291203227636640215143707087260960952142046083682744459925500152209908027330982548142075767360797952730068632592799812443843889354877772405495460922788615081517181147237157901797041565921913122343534293201467741795972424663645671394097510666398375852685504726761826873050061448537276114835957531252395206855833844069145702689826140276537675624483677374439064234832934117553980318431603990494190004926646411096769847024534765375820109706467757976106847280915696726451920789445817279859747989806672683143025607977740137540571121478959250363123119565856304497409568386002870854157007144806283523944240224560091145386804693861906953865647066075857524710071716099356072500081675642078692412014463807196618299130584890482091065171646307599419193055692523382185591944046337081391276754353811267463242404067941292524766574332600255257855416177000813575581371356924076653115665487921701989818786469717235651941714806563919399640981587957865536057828044169173056534861671989551767147177446753499845355032931309092001620237197084778204637948689106344411817004545978837629014416187501519354332587066460774274616962174457800899420213388996161100325444288370210108714774835697507937547499607862310208546869125914224189738483996176166903004510185372531863720390511400508768546610430400999886102380296797744191032935667567940897080009642591538901440571943822089958241555559192359560197012103521652713100539602245796008267171739381522783975611442209469321759733354723459385988669971735854761707534114333355495594758079964289178450717495393075100560602866908085177716626162067743192003464281658476233443980542832414448546751150659165096894197062618823336254719267327443791403325227316706085366107339762164015527581263972506623535270779671550692342171147340949288006678544842982261790082699998765588826498874232334508342270959022942294814942243626010141890278424463013257246698250875864363538097485480557026577626606460105607632870205162436273787756120015309835314610475581953895750884988961198814148834234293314407940647494461348334230870639851466778325826390617128901758083297398790748719940365011178067022997076741767358183067913730624190120811635679077723786042561010835441424861527691194255046954817630411528551129522795116454356449178760751729325835696367943095157981942639534494337587338529629920342157553547947761388539893190128175543731366994703052804249012229973618771096902730803064122122597701590483860765148826102591082901252999325367631791106288575245746827048085510330363917786817585521423592279740390864579872612011060272458122079001637249922838171237881812258049317886979327633236784463773114816710606008145600217565692434063059154394855087340372246322649104764682929922244310104324040904316694477493836489252662923030118401802077027963012143697470467523295119123623837579854115445515040402889843910630044539705805438002007155128437513916610717625643661532012553785947560679202328798574488537084461264708423768445657197186092298914313615738974616067254661619695175691558401671249872839646412006558016885561125523725649826349739439869343794705470417639237605363949079789495485020272202965075326418954103478491780329382572650852532973831825002130145353079996376122189233133658558801969924475333403717430260065098777180589027858646067906512185629833875111722906036885752389902785008824750903154163592410889269628824070474810466517946162119006072278867210330563922959644490273504957425063117729905644364424269704383136673257010215685665317131345827337492203394554011115799370938606866399325723586261589637901877071855831305533349447304153624717550362201343162422391082492754930172686830141462498966655909570495139034388546388160274201924459427432891343295729185417656613171901527036796298362334393254740205905357710667531615625451709187925020440716124794505171801578970393975345498522479623852972479507433275163806034010721241518048376482995626223653801689722974899380252403666766655192579772158042170982785282286219261325026374752970077110280428131543029038178340169728646214957476947602328939278548022375847295246048165684843233425733698867449886949228916574750542605141144499533355358498273380148584809335771015832083037139690329138928912553822794369859015747469194346748171754638573135633767535703641070307699251272905139468307113445381566845538486586916440225885058769260082891608286273346817122498942742537984441244957160482052924931972725316005035595618543342297389066683656245201669716727493701318471807185578243349050778664547193662907136428302901564380225657511019698718205509895560557009202157415747737342021517435480008778253538561803416147828930341327459673977521731594517642928997833997423560749116049309545177822080625353333311805965934949707083929430409891039308398250571142026503346211688334176030484223900734375575099260887800433661783630108905694198166481195253279501391209463715110996489836804380983994420800401942958000074605722750771397775313573560170300953656995016792562779487136458366451870818696250881989563781961084402107820212033607085547694476177200327621540334418329351595055048450095549924629455875230768732201063237341910076850866908961524693737971489318714924166594869057951610958190772967803923400621105254699721025166601014603520903688589099366910674672534214954975531385521169202127685032020025978573341107294967299916982665678274148738801281717415124418363058178596358162757774955814212429102310164041745151314551097946355597417556466603558141340046808395731282119927959430142293225269845083477568136216137783677926517991561556713560800207600963480838392360194843392324093710335729518284501723817746374120627667897359595813298332624071322494789756557110901153928091551162582765449314406529663652791263924888393249862671757325866542775361820347013709522308886492794878191475902625710330799992470990225466127183609307016954050458223758280175387258205995135733562592995772746452457451166948471819334673007002409823196484245664462616895416350356382247220225352542215703345198411566881333288832502243963639199472686222640654218353883556959883772773202896581430551633070300979048965850858396268842815867023181275332827610882177411849364895764933756165265271353340235937307121737531793748898627927686345023552800261345427112223387845724696083507191070828823263235410180837120347419660926608548464763623655971985872473028692696115459687510848404104132852823320694421432612610359155836560044739571678345125217822172200280824771072821454688323068797074313402487611713407547724142311699351406592046241561861882910050180032614883659523779520051602112691957238363739927570017397806160673519576266974022908641633674833849748443816245681481290547701872969065529161020113253964308382433442465938872768536784960872366997247216351280463177514322107420469175846390053837980149347469335843783090581239501185331416639754272786206127036901843782510473061200878257065423652638387677526407857070210317197503847798326557197021627334814061378655012033070328530207993019251084613591931808550042359770907676798132874720307084633148928052798411524242834776514391984968748586913086704225346891068971963971148900162357624947841419393632904934271164156512510871800533067102857214100406985217801071142622541541846269089150402465323756775150457388493128559227840630328761463515700145056770139571653900752527969435384490163956434322857420565142169880247788460271290540223223742304704388187660955947971826616401700814078998549935785936259851391516598850663802006700128732314396976531545883273779210519301894822882993740989192903038619774164197454407996125234758623261926668705588064766574074785916742363212743976826166573434365901861540510156058171582454818136067274854512655199207575714065497232723342119038285336781614751632841745312325832814749424715165352299216861413943737292594455877911506653631837625388933002884123190514736215782628958746303050325177805749404240107608130161768804312601364092499112884073657248112967070568739137273854103046876552224630165799660249944320111847974859479455062651362151580801517005614312085448740985046979937828809909777371585860983696259971339926693521087339810253300908875139856948749408185837346636717815915169602289998158031445730088867363416045181156017139492497762090028754962378738926569622223543347742600680778025483589440459741865567109763843298272471300925642230054289541259893953031269029564204859992543710199321999148239724353478913435449224489197414741153705073850786299185272692262850702543125238787728981845805508580813948724625133754106545174245814701412796878287109586600457106879533726462499831654369787506103893186152601084678848759678110703986531697797711221740810096320379874711026623221693339480994086524934137408927754788927013403056928940048984651676812688579109038963711662205925581733561067848719238167025896889479864386204633524249307835345568951787297593964933663060216297316411835383806598697308754831960980536521073386407050179885513505959564503067042596925779244095045574195756332273265155057588669347843984632892260875545522232268529972808700536262426912830349043625661294781960991559944754202688160776056384132602640765646364784843264512995756178703380051149546345797958797189638212306284027013018536465907519217121704900122458510162235089844920855990114822546158149650018813958896806451049854825301201416197924039478840820838998069696798973924887481578164137068185688017851178122196517521638889590887432930482496747722091947217668838056436611890209923980628422986685948206813931948722548963901504633757198651057900966843695304319570313292706948092666659672885392512055133649976991565620693385306007137806154661574844084259750802143937964229389467266359400244349765452737519522880543070099874810946888934920880343220532285152939996896697823386945846636432983961617417735212138523176147087005253527764678623733338927999999854618901491144026464794491106289590894371111742444993595462903814044095935859449914854066644961670566185077837016560155397462072060086481324249844452083583207274549826798098510526633877701619771251886047057229348130658290202451840893822113287574688847469526495015683480518672004919451767767581618724276270173070408393606866293309370537761003730037045443091023010998753857586803916236267799942649716798591395911894395835802475407587771819228599262585317868148361284808508760953356293054860483158328542306036044085288986808325174955009210035083724528831942464721250471105707853125582470057459686567561567537724154437568686245441582353146768413085409045922200342355568572113779006238887413025556132196019126632022982656504901035729347742743072415877265416550257010567030023787967643080585097672090833448762156477782523338414364553862478993381883840801385028430843056093464551447948055381451972538581615242146567291646690949801576736905825583495953080902223119215489429798326983262073509651740156474929368058231332577506846457612660662427660592099695881802979966402092814398542092011440681465027839295612425732411202875935183257964910807828729847955898523079246196335606033462389687786841364079233019153565863399675181858060946654039261826712937252561816441767585147960805006821194089629764731393263400061309137880036391516628716709088945160737661792898894602268098805840434278120048732580046567949045035108994833284741414204715209943615283949551810185808587110215712388918557333486547574945410976051108463960831777760566117751745136150102865762285553812096371982095287992404598448593128501796040948434827858156487379463568774594888781918077207490405590372085069194528423261854729855082839875204076309716677371845081216491638684997795225278810858653708570780561624680843506145080365882782746992550364047809133094622361108884227278931156828564170344813195370636731086625856498737070567259540100079605836481415298979795117058949027683040150931077786312857549569667162876689703546180595124752795390968417797049403956741353544342924690944806015916035482312912386926149050182065267905706673157694576958410712700114151748116879545257744049879196803959738869218690024097812459915877947630087069069417670870943134281454126943949657662915170152750469219397725461494974701538176427855033292025568080500149648835327915005702842349059785984022545773682447156790354714976978617707579782981210241056144224472627264231214337896952031412993559204303206522719024201657319626173836564221067798324744605858044378452214508708931055897041591784668095552233134738385124397204125146153146433962206685001014145485520857878141585879066177546407537444432596797798684527089225038720893830970721648060189184560139335464058466879790426233148075835782586495277007278941997005683162342783327482208433421225471164390748135339033742771847335353766069442662726039123342413309774104746864091587792921480166592750561208389357226088605561623504666936218783480381475619080556205520409419023392337826684397017092055634202233426664687832120733682863684847554555901672433212946072635640065682247601782062515888463336543625627571447639822808279080018025038056103742084870010151528173853143184500946784600535403276423208674735481103008430222701284340957412145805664687560694343985198159781607580139188419227702214384556508444664804765302739296725453682148356841776619753029922662164354336695462970689267357861371521482906884682820602118306557929596305949287920136845936838567128909462403836437279057164032984664568616959585179240826645441296597111460933594756423821015676263712292733618098486033752807825132607151632644918467512036896103506481480568778365015938658036237460461454882935763837574070265856228200949850177604287635530110207206052237787375497918549573459757998365883637004524847557614765000423260134582355533740550328573272538755698835504258258136967876586006596922099223901918425971957328871125995668014242000641043189203574183662428497036753454920147027151440780851161587085359890607766574172680252286630608395778107627662036471507218219229679763728234691006662417730677287798113489325157904003245742004264191818188738297755478534242466401989487985848585470891479296283535533521786274551756875083893829664413310724869964038802265490201381502330394606836628533963583320998490366757455064574775138466846955718612169406857571588844542202353584337762969582081341170811488088637144604080279940694833230216357893981125537708945554332765526651966220700822479465917915493976432340268339598047670439522966686872116437519496036603530052239383998200039597424799185081853160453953194680868424486982306837223911920014974751140099769736310112524379008605816578968612312612353185001622977858371858155394641674455753113942577085718573030722233504832609521611847967016634732190796010546097556408451338447989477212557968165544724941377148101072615878706758122082649156098110412940450102767924454869101425004252776981007560691407844465989740758266246511667620257967080374882369551525274543422284265735428699889778249096833142809770885384029708343889405543142008381711552614798157845925780492379550319955666975861329021135360696818906346661049362776251168113232807262845342855816112646959569501352474404493670157398527841145790317903988480902617427970563956131538302363177071813165553726370300268789176717063340220685995600346259836131332905788666995842891454853182506274384534707159974342108241789622506443473072574113029921677665514225008428941070285188017446562534063259825182833761594036814421913540225272586205074160940401799771839779220000446235399086187925464554641500747538417694206543740767014354009252153100100316586233664408398050488549737478001527720708160333384600609679360768563979430144355753522338870142782129602039388322664816168778783076338933380315704828931329007416351123337238656898410227374859448198764757581665747705548399297353872100809767166833996520286941262341528373430246624914741095688588777045687971601476921425509989981673636806731366123581851094877706168267053304598226917735757215887393086309749354107369260802076517047304273355443411518438295759526235433192860352590615657190487843577088040193536735498264897939383389930221621758645464950258215905027367541300055893679713221618915658668836275137967396330011796828780493521117018287435412976105414828533142072826636818360140875265247442957580736377893796911298541781294289385170272987849562110338059458485931740537218719854101254515636079686004792849728530510556812031986825236249313727271804162654921961517583267645954234611438225496199248445094196751802782765765164097325495766349218896051166660372741872871869942910685682419021454592120407626243788858714616631480428640964130961672023971380933036791009628013072174231523730078074989050301310641721471519662610498646873472451481222114799535010128976888960177047955849933033553507408720252111773990688340375072774437842071071960434156036971917945564400981310354428897198804134211886456050263972658171199760845929984490500089787906049606706172218545110752782086092383000233520161842905567813354821186409521034505371832629725637278686091915914299740882800910121125840748183445676813495189128358057931004050220543927998249261052881212769334895675393938727205402955829020847945107483798567804448588840410252593033605607498148293262132687395969632904236969697922885289274893167647989539306631526878721257512080522148274107433774160966966318859580275134093924038435176788607037562459095086404438200986285959916514149468700513119026453949530569908178332479867517418658890371354698382643363317121280080207118135644563953228159699766500953658104417306818380851287167046453653579159233213515711586748876292556579555675726384724413939714575744089755132516248534909454457084741300316095581137302290563732563834910248004560459522048780242387025404977533328871721535195172584892672290018897747828658051521766578772030726066768319414599070187600111263489441327677672709952687965266130350303300298637454398057194983786447472873170484707651542683840828547399664880563728005998004451264243510267782402523319259766519627331505116255393152473189472316369187318365029062560803268287916114160746224134289859627717520871724845195168249464485001434911747814111933364525325941694514851445267394562216646505894832993953852090912550448768719690441290527570640750313009792827780232519962453886319307374137789145554276185207873804253372372583152137930403098776799467254161762009368204330069639496514849952136897932151960406308488391074708012013354475215102334070696698089174392723022208393974964685045939519074594031494852344518880652013588592557308902875653313935135641696232186154825746667836632605160072656517866732279949728669734637055940867368893519175324497970073365773951167544201230260441145489309915034731876000045855669995508643356302195766500941782183795196306285355779943967775798151104699000197220983510093808879830079217202487155412596774102912629387553504376596111876618155792252223239108730277942003211990157166076935134417022476564215731385331335839699150363376960243340483097402606048103742575018385415587840813424958703425884184845205660275218528835544163443962016394277770997554597970612837262815481905127532863024365731306706876120669135528831243562917453776178767101090795750865055948927344656330226002438228147051874148433120206530270817453424983215619143913150156221084350145344709333132730755367242831694734101417257089823737245192812728922254099314963908640154735793465084493597239323687634288035402206722300343998145684804085401333806728660897352706141670374799637279009331963949518905015409912980214821392055448771562468784244042221705495110530976785393373189446189277989796155168979047531961590792333288251360236319083218111506387214701734865966875555866490478857030821938812587157369358897725575646603161345184827674097541745667045335371713482741580289101953196759800798285992877814268238602000880939240755042138850272235871121520891332274114763616879201360150298635645328751517587432696297141801476269391619186592184196468814117389517869944488940608503954486485460610168703608241160871839298487851885035828165652155067445207459315829236080855032095805628845182215476984625500295126912676353407949040767881150514362537241213955259184062493231108874132675105185228857769184733901211439476121509894960656708936733668518798093350422197847654241832985684865218015210305194230822609226860293132628437458232701675721714444773901884008385307176702919879514057790567345686665517029896666429192808861651800474359021429281325180741346230875188261609525354081442856482749988066678987740746822926785351613763621102116740888981355584470115472233998881497923064243449063945084885521893467263480674607688055931596376671840564496904580502630702251752246543272940457771285640421473875781739830856331256992311352452336221814480128347791184994613478646771935635357280604138552902378258216106518986943455230348702409013849887927688665250630781202363657735510672786348378888093320206115488717765400330084975044914235970746565135653725996021963297100898237866818156949467947843908137415430443274149900116331827423104148337362106816288238385959701378963870382689924643835907369828858839598914033519037316438698637794923147513563737705741669675808239839029117019310447871854494727778444956825471123894453978317349180122435503497101530751894961302851782820322281954698608858140765590614299074139419930261618453866260801472866643141923461109840820559558530714033708939169103440237352487426618029189779852372768046190206229075829058440522286325157076315571180346974850967903919801385254293208646363662068315358911478997606945020995528837191737205620976251045535945064746287445082564088619332981484973640104521650972075500604436018230359229743591709578320172005910407143947143142294914240720803254348364593655735791553930059677173584475174776375086319285181954268081470646941892203015335598644419659243739392099530893949702980107941916325511249081021944186260886371623696206353806174438412231989191841887185553072855655260995556840114376997054270702918149373454831894472580824254120286836715377119975888273825090329117631392469787979694597964748621073319178723469024916193896200931545587645020524217748445427955365099989550175046945144514027343488246990378926193035313600911941091515398648667315910572450837174523790878844957870681902974515338080322871482021090225236359628486148202954800783685264204273869629780273468732244528911689099286796146929412919950857549439383075569253307856444639125140124568951282329839844384478117851960966234776794336265466542136203133898548693524179647782799452759730345588737124795280950268385209140333830685877484521191797684530274219533535143192939501531076323508055735100127080388764292544542766376094454567375741181391796390683640131911782566387786655179650373566637558442523119222828078614682043048891921252885410982218714439662517977431134477779044277485738667274661427090298846768055458905785364365366965312148220432513118984285694228332800415889658069441969497561729232327903313664995135615009460047554605574429730759834763104025752364375869192582587549683186536075047232145237405561691517334072758835409013292393837535057767922597361781184243784867664426023209991288668220977392664162023967424671081718397906289778808824391413165659398752303885854595294680890041177980386294644980569468017317835949334858156977085147835776903527956671977766856167718648831398575763024348982870360843840209269350790575852483458369829938492259490073321041000459895352649096570353544225485649408710668424808055089995753291883922762756672455348216152055882228437076274623333800117622283845658258899128111062319692321198509504415324877621097274273682391184474827825947587780390673945042272010624840551542742463259830466186146931494951769843566720015743694849020717323283209309072861606733335542652000784726530437833193975888969721145189271473870488258770236306450010969026307374542257194281981261397210424561511166113465213186123573467125655287427231285909356916615672581021542028752144340834276846997418890828709582823318185600531568485880978601494555771750403689114181128511637003546597632031724768254317430603686125308515094053780584406623914517291147501558790949036662944502915065059822551226279441423760509574218569495544471256730565961649552530223073730631815735032538680359663753606922796596614415454478292816892429186667453482714920861830907600476231420719368763349014189121860118750892725462785719384092489380810131570221716875597376459997675497825473068794169368472277584527171990194960622444114838102176293582724842174914021326075581044929660483258919376680283852512110760042412928528351653553306789574320312252350760106118678685039069590828341962062536346831957584632802292645771652173050709653923873544982965594838578203067509799178195715072332562506514196621497168767878821043080896337145080633325000762461924645903248096827508189834139232022729084711560550212124603709072961259691041330080915390363392001035797815494766527027356010295274242492660209446861206107920441728350782730663008892657685539321869800453128572296803492607396501159597789142421352512117368494133767672579880260432520136573992792945195959451782998861166927585216095109071946930932091792226282491474963730002989746344054439315380387221547130868469114971043702454978281754223145658683776881959816730522604318408149200161360281149700917851748805730070575031687584389734130256939721153380231941708650426182596210764194459187460124891115495878997188525665076956930498243382264760177773872894173815329784903028464207175968070547477248348890301773929045638141253148626812563954803253495458863726861844787526958837420498760083316924560446995396419862304921508630066785360320931866168304268840678042131312415858361376320182699686459494481567605018359355365864499914770371994943064630324116960610503082639040097711097713470039752166138368659186758940018358596085112165807180330687459491772624561714276398535874339917839085450864393877610042650364503416190621472528339968988949502765515307227280214739257838671958613385199502554938937506815482544936144867664331641553769604294017198706035445947361984245783737180569418033593609310093456703014369674016021981642564554953701251209809950073944608788489096651381548917699065491444352172967332745938826440371571464408365013201692070999427412700120629729243652793514473078357707526254690347179370847749396529607254520620686128686256381803258946525745437872885069304394956646697788096645747769034587825739774202228700966668766805682270783922911914743867039827201792232602590425312609898051591958517607987495468731117940208970326677362320421239853693308825510491718867731670529645776819979892706750199518790792251917905466473614908142325257058040247746265974784075528455758185628150453972427496583222953037417518157703757787228248605700180513633559573362503587862286493094414620392595104054383451486374835727717239327144084793374400618921929867581132863836878519393781251291569982283327420144389278839348365189242933195017679021696839138825518965159276459487437699089677675447533134696708418054494215735748181335393909187899559838121612844838281187718864038192673071010550897924255645666726342988606737250043932866285038692076792967752076269413221414986385042196874330432865765931323032737429164137347522804966542974572256077652507632336177873696033323854983616445694344981053533168514087816316677568363096643385584655952126349113612302713427053077664383284998150672586810374942796569744031823000299749568310195995745358092372372802349844110484734597109848358718554351660892991793846985265389772596224509965139269184835932600981779688399548512324935187647794358098831606706168020098586707424757024464960780901302053414510823814877110908162167410528608809428424995736754444426458262168150951047290341621654992914060238656015625140567295731164411030824361182672272312125535808007304632311116936879643105785701885767349487818814072686431664296518570984079477351189074877817885737573279123082535019962268712501027848816957668424966510679355332757709172119202170484862914207802871367196269431953526414129046848651805850217412460204493745817494914340877369188799136941799188781581890703499219776555562852911372596192263355729722990644421454242101774792019547902604221796442962647866159757745369314500964186636930765463478731393210362066109953469745591697960246998396924300869495964009575740833219749302966909861949018833325228108994922290722476584269031490032558925742460698159366065787322314586141294934020918601594351393073781962113634024398541925238150032047142793476487644084189920892341948647044424982379634567669963196415133029254690180881952103340912824604520568809875375028041225812956097907841486196801756648287108060392716655499726288142936563222681617210293547979314533702022489682707217634159458655954509184624330886036804141116283686411657660379314461540539882545709140695862505335548435123784940956616298352972918989600004628604685446540162112783892258626714596397150345028941891940188693237924279629934513789977537050237368559308005521699500864103318418336036195924615864963610827811952644170064973171890144072048463134062788851745218738076328102687554193499223026789914178197256088640798914487662961070262913667409033290059492124942938480226807669631621665031173885750935764664944219073766568436959162624019896061077381644966717456749719931672910070036507071003825930571202631270993381687407842804637076904889661649281422329088102044210993055097579019070702668237735984983435992453431579264328324998685104399524241856540368812617381165913056269729239001320670785363325060761969295392768507089196072875936678971621158284384989924321304545399646852901575436739859089401482962297347494824924479634501636816785306406029689902316021359179217887987022339138119865691553775508429526272799498181518634548056614852389565829892874706215932606119510439394539895013795660713021325136795957064112766981133350562728135065326498174835990876616709229564358882612372891224382107744320009324607598094414689009161880188612472299174402615588475063890290520941400706942057845028604565669586850252457674622286758991160015086890270629068015888687119090585163956764362360691134235393947516113653204210413918383123440383075664187906075200520222104376766949000850413233932054967129061400010382033791994267849765886556241897753494088664779992254043482156770503282754770751367294860850757787231607828635291154225801716589468874082321559723779618652381361001170630308297724664523766839213725324262901054106091847244306443951987217591809608087474639123652031676947125319904346552625693669363819555361772882410836167984626293667163851132701853565374427555187109236509683054814770811516050149182870556363634264635455491321544284723179613517148811423443958244947062823249261420056373413578109460017267180962739951604509759566502282327355558874084864936681037046120487569709511183512908419455975981400374578718731710448666983591711134421805790364008515095014936929804605723994584066519780917755904112241905888122261449522630659858078569861771770279128657981382392283578143239748575274619282046994070504022276992906870826849413437484812517598162690258950399719617614921589425870016534753015173520280238304829099978937612379328318693777573549954718587051507334549433469680944353626799233177206871940340879386947351862063685869388634491917680047069867560673208399508774654729716800262003277256285597187051735026797791111944741321993488968952108816672436045782790682943482148396420455514023355058463472016050859359833252282408236842990971164462457549889310648864718197836587911100356321062133257854375306335880901967843655810896137426289570071395256394428762361955320875209367665848641616244223056733786057059703808954526686142132220913147658353270217825965508055072092825488038461222471006503508955401520927648920811070637763190975508454163987015330158995309590302085779878403813388202044111642833173691922996716226233477012401310188732711064019978783795087272181507690505864853561491509954525328852992492990912770646761329045325345345702214876633007625896475409589830871772886418601823415695585218709606811550655538550013999544530459424330737892963220079190996579542521475586964859514492197206004666110089643971926994105089665232349374700726173795703701055282351126503272431318891942708489942460716375481358748590293654042520003424960805839998654388187875417857560775943724167067381061582668836633879467592898761041464587253910405293535485527518980073062305333279397812603804161209791125435059593408661945518485017421065761758330911677338837692633941279605504855041833360685713256179915397949418320353510576714165515011724189948326317407454926589069069723760773110978305182239182922422517032810509631758994996238081018956320298874386401908145617519165027602361566787445332536445784619158605160243443816139405901924885988194879634759978334552606773707105272519790627140248322398403603503433749310635056922173751359033470102223649291013432040662066674157542841342237893886454594068017595390904758541049765082521144776390533105182153002450812530127528690755443111611004363843037555773702059538253536728353387951734878661990885213272247611310607258429569759249411089605843749392826055644662997043468532326600721338748104552655080224463820623685793709945145342748341520914402931996849843801200839508483714482641457311306738561049148828768052835104132530550071854208024669507622413351237042733739766781917842432444382172983571449948748654581721775215090591925401276105796581128855122837638316382323856737264604544353793338439660112509220999947107647648208492132898725416700656891269877315742193280581028769171536654313738879398815742571280977667154370901028182270042553074244007305007792347361288845970350257492781074620862834479911493586521030794445937302485264755010557231671662473550852270767185798581271188164694695394486559107092213570568896711190023818653248310310801788749650685241879125713920702626548348247274994522374280257351098251291345816974284708828857310684681983293076603463528116148340354914894612408580465135353540847550279037912916052729323072852696144261492803745731439557245983089713529294163483826675013373699774961417649991352105408234400058024691081687062131793657819114103298418854271032122028858466211455965458295697044863741669078786578306782480546756432073822907652252288346034980245296296424266262389752429044012117119692320274947817015277755373033216551386998122529508322223665675015346238878925349339262671503408919911078088769965711827190746296063149348369711206107892807135024454386692157037669616581845110103344179830597599896687339860277026957054079585130380166022711172153062693108229552185767196420398962041777909314265068970459570554051457395600812477244600360658743966997348749079920559513996351781200824861590965424915461690857192205886207817613890846196665000067981280110775498659399577920417630012475303016573937776547690641555230135277143985945716105705272915760472428760210825504818558429704466986279540078469779989801010096500485815213076089587547571304814103498831603090145238106091320127758326642524225694115600940336895836178068863197460595526259104677159301148078475795749332016832072082775288433901736579970943442053153674277935468140836432714744561196172426407453270853203135526950956180933529325512937880294013129152645426808715352348634335402445250920588025675382794435132416743269022852367735616045775587563056364278760978876420029526562802638250530503466909364326603618947385486822954616763934027458285727668446347735139983821264388028626718553430196406882391972201457460657209219391348460006293351944760935751360605011269540262857780457090288138948511816561819372172894439946123004811923827016093760813206045641000857763162300489220943448788333748406420300506227974095731970023384111987075522866642906407685090471951989651794677505935102070699792084710405079043706788953536699611799470518584280414946548865286064351329867146866720126536263243146283322027986466082609572369366556866315361453182552762200387629450919322466079924090088393933539031004144299365842777206969051263246055400080089365424023345957513209728616205781836583569364149504067102063931775716126356507916264337077345359078233646850023103761557657545029952129633621267804725786142560560415007258570056556452568600947968576538901430410817637097717279704392326028628858271490458405066478744646371792017750725011609764387716892106022052817198032661795537286145875279142375939742847047819364987980279508020927157832194556082930472141079181109372145831032623407943493800190576916184786789789000064869429949022022143612752585683445114058595705369429021005665941507597122697086428444978650148065256287018686726543436538191081853572116411531488425006326221736541911241159964952818521471353406401240010508383987862483596676627757747521356564633036620938126969237039954362479568540894215517462024239492615696929374345199780347929392897940417498668704355261850044392703621645278913050172025932963966433881967749986974191770002664988514192390731992283698869606909755259357213329289502865445483479179476051965957910860458646296615192267071154678860677112526331067333131375848632091201296679671491055072224201375643294823178964051577394169182286233214999908603187218897952169066305597214640478740474640830117707223220453410642538204530011028541226355942549490988072513921903944979258355638490342629890070321705394268285801427219526726176855849681463493274167468138694279606843863188376223642862046657867431017302294015311519679238108890528424561545439811997907012464678119795061722252286581613314953807502484557125749897214426181320486798280439791550893471437649699603935961143445516717708532307385290916086914254688851469640742452116536728422440283297604858128204538557712439329453381342261131495588804131255244332881357216696257365712780466385307011853183034674408270061424916682275958714009001051840986812466154728440202541294465216005187436087861663539978442599308521886047671161839004556917744576784682800289591864259879326207352342493728922009781764458844644963767825703807770152089818641465498179047166661513652323966561884011543841400488248933667956585795770822792080138261328832807585078552403531304841112284477442740844965364069720371803034276258148618249120466594028761357975342169040093393344697788538746039738194092325763346251306580064228137900399656640815849884638921591799812580204637393099439709517789781918882618918638252417708509569721197587686174060078496222129789457855726526713630208595606729009233186538567750554353826695730548129405225933811579639222996048389402942931295354546217927700445929794908819172421886995849652756826002086328098699564024127278868577112560132171111838879323550971706635037173284307816928423973359123785546495171040611359945620941039265443650322708272468490585062580808634780298024719873811130784506882104759388455343033505192185172164085952177848082867861883541195057986967270314900218719591645774598858503948068808778751460831563967668039821253013977812448256414342118994316705593664010213381002483326072090989762640311717579096948344963754474769010332948451012214492168286864691607188052751105477673617055941978859802603674181214168555544667648247607180196167973790456656464707147655934941290506229647517012169745311604035904889321762074583244556960966472769436257829891971201029254880164523060606478757643442283083940993193706751472165386205110055561809648603780299638037290814446340031999707022176011992478372515562579747772538891405876633877890702921276611463538689932838922855048228344452086657603585815871962688940424113462337327076313741618742734664145173612244445045510945726760743251878594594091374738767650514933503714069110253440500749599565523191887571035273748594890371503703429247869341559566853296707606489801995728315646994956600738595299141914194787189788740120200249295558141294043767013643543179183584820150005016254816558629026746480722393024609284229581593240436324818423075560910278443373782061905185019351968699526877362492822750840147243532218492112812341770079333266043255375086163432622034813018067952184431469838827302964838608250546558707154011462341238591656448558168215246744688210170329040848185641250640540467286006284243248399289210768324872910876386237513410725954654736899284196666029915071503832991904346281169687581147997034911321133622998945578709900505584895602349013275533696953378215643382812709424015396146553884718626167579078568676203603778119785825925762351855967617724518198225447181948535712424560548874456987005256398880252668665094148334115224861439819970057229033614608450646938222912143240565252777120586364235169881785186241730251132031829771738110279269457576070803383262013265179117616538736256837022316010058526375085852028373300988616808201448995942092588066415830079576592280155264512397272150954209286343606606467684810249491362135850789022239467277603163748443876467427834917508533137320686808605446079221475967696536394996828809166226839946114731684081298345123021105653373915833136682435543566456598628126580119219389978519402931779285744424961611324105256536915102143620214132467459585387672898359712350991462272355186773219141542069628897559238240378970211131409513156681834140545183055728177153265157574949768088561202066456176293708707957965745578990998960744461649076612258370645796087728966428402433524724663832721928781486464890199354723783246327687867874887432322198022049462855709734359797569360333149126657338540045823399557248171700168806454475005583020176504735511619933091432851772348612324639684886512290206423470714443740512429016953439369324828493795864198433842392291540355495281507237726198529878304095103265190981943285313986991725875356919311341110978327336708665986203410300235457642546536941365159170840943797395247259115321162587821348932587413353677790261816326343762527296732470192396101958224640510432692398530366747035073289768306609800741751064597122646859705938539145648318306266966988413505792754265991512579121571418402157970410049502329122462778939395624509835656792313659704666168469054038862274144480393161957423188301165441684357634146565822343670124989387024089818852723889747275560778772742801455522041876580530077469916566201963587262972198640161715396304276803336642784078441634825726061470257365685897189365530604727477964275792935176798162685981688539956451576801311057305763262671780570163543736927205220140381280342345954387015759646391169540822136642207857665539080531390190838523938623866890734188316249105363277600424088053230197332964305480173213063273653026231127308127038780642215203836835495394734940568013396176084415480443649343063335389137568609648351706677523254994963577827800367484523767475851413287926461322433364802789163120897629722570445785896968729215401632775061492988604586217166971964857415066295767883209991679080861530524722718428624962145817557531447041305832231466588827827102375067273985037092138639695162889252659454711505837449573739142321569458982623258262197358776464581284929487055866339171564849965870482663223681907936045118608707113227408843293929697143270183505004889022368266137024789701695414953272265073435939049565823339658800826472857168367074159894780340182715862735655674389501948994094829483699458750781491455831131338374781181632900847337690619194292197015747279903663421454073190198837534691407279784049760453715105997734186766295144010939446816712876752383149419910515580403029730085921110012188112265139687197698093593867809661718406814340352796901322408514490495819761105422459801009347529192164694060415655878659798055994649603587873380224026675910048312817554222815880235513289589863174127761347673342810552825849822917186908444412050535580977751409684307369239252927074786899565995293987843242369471632409387038598279050143157126736143612227700639483176686835863664469303166931446515255743885443644629384387632290351269654965685754111709165402057840949246944526810641006022595795286715921667442217114272822698090134989280976075700958159592538539758560027706825858413562137513559506591244948314580439917984890388294090571010720377977103102673200415806470856760056095517464052354047016740020680652054076600713260760050557405333879299406042200710871832090240802886037132387817923786664778674774928498295390499009183721332864354785383204934315240377638464778842813128055854805512398372264313009347909673409722542289770992064520482268500558546576234937069815443842125304461775453034174637285976097202467857848609208654925959391638707444496674880322062450089662214093208022018590795080692333741199215637791142034817436576566558883937889793005414245346720946599781058227715384232863951773096936700610460861352231955825056789739005747920175589228046950505211635521477846009740485571232752566921447153282218575903998526064351784435353591362278926663704640947429948649795143696682564546917868232978272422506976038058229464031602953220079985839456721675013170787733675561450478864791863975896425357649028692236853170550629255509641133867770134086653861527540340581543268598218592580394646965162855822472075073867350756447684117565623033104542539960218448387952152493832545623505587527714875626319486083558457129499762104679757901827457341600589353380285395826285342455836161278804145077381003540050113271131736586778076959981104421651610234219394923516966665027949317825161646458402281522779233124696952620310460653973283557422732955752622649155346686436412730496025280708490762451348324272194573925339059527881223400106982780862532513006351117894134902965839258635080744782719637500476380320983854579413126374472344386303460053855068146109836866752135797070319131013511965353971648668876265671535546786898285584247567446083933889727256426105104815413411756748265590433608038197712990721632544554322626928235780488753961602238110303365428163837663669067225187078269445790477380361812608629186990996148885102152049138433568225730355469691349976815690341879245892278163108440251886591723374362650550602605349578743401972565217574830735630369363479774359916177472341921831000129569379374873103880156647906868573896542569112873688444712032328400957335456173271191771623111203038498462528209353389080839427834090480064348299576658613244943737873771049170818240829569539193475871767011942915562116257503316906905147564667232653341536391716053794532044488766940913702671462958987238770479332634335303581159248056168100821761063651058239991049521812845883422584109908414820716291998972653457413668481565061152242564522754629801694528684157726739692454375967010753742692044753733266585537435663783655673245899205495529374924902150131528527358706538928575735271169334494562509313235961210623930870519737637458512597893798699550110396527807875830951705054843315709063023501464719518660658642448005535441063690954631478325134583490356167460544053591177730345046101430953068309001192114874334318171578599214521392508950486583163482459081836246124548968873277540597722434457060925570285387315577980506474777437790378916537383915983249116670216987922203427407036188272645190067416367106513710355429615121153398832351024068298598873996399790285630632210512101470296870660089420869444533952344055448422511471050588200173383704658583358785030125550036525484575091584130609044951353407389037678560059525843252013682304440208178406123303906354368580237544227274050172995700979423379724686254506462690190452367006833424012114771355779669996672476916784489361090426968439452265223572463033898620158189280738609004664580890330934946921694254020905530650018063716080267857231452829689563192959674009356903120670748839216565497700296642654454256475219489066804392828786812591728285527226067466108063880276460215727911830577402390794532443426785208909899240524659009616303803333669904567209507565416015637727781931531749087663508457730334298002227531011349279486291418024820510869057833398547860781443267548171203961229648215896657461732590043741101334829971076537591850720655528411750121432050760698743467428351495818229780528274570548174794591177217569473204503514315942290748888120484072485932681160021217319028713359508571237045435825340844666200214018994624870549115731013880840275673645167868868709905402709094009213143454165392020651442083421011484946251152481021747892646172545717192306659387648860620089111853437937514966617394051012727169305059755632225532423548978016420277108154171670436822380259297880750677151049108230349769088673834797629623780025843209949981562258751410010059491658444334559963670466783335451206843466183241334800849836857135170209885152363318454779215205313903001303493547186232221427478904990360625137838135158934679047493218806038193399349963175948129850294770733895502120921649236959651811938389647350631264190907390736790009217073099347127888376474213576601614460718925333568561827368829341626577861020327660399121901639783054003274000949893570100830722160485944720656341024512291088828626286211643015874362080882187361054941363944994740004112396976671318906308100754776456243381307307561773379621585720968582925029088962812085530275861805848733484492715668815751612168550416000490526910877390436007752785703818932856359317178042212910393069713367257919903831325581065753500939297029401554559118895118980326950996862448631102076140377892645086320676206220670379338313342464588985357049542439037168661191415320364532397618380114705366446006621066812072421927527308391618739021812682325693812870548037372082390859215721232037166802108715029916913645315728405046732998813388437578485009691438946025173292945692439344816722297706917821960556027472512068572343408125811727113057603490623982008028607056463138292489639481214112455786623618831101923096087384730665869426839736180172736922646935703786753322939754406777428692350177557064205974496893417807642916718359013682484531461190850800606436126070246676743025267949485444225321274198680742883570267898791373808539827880457099780750556319570654873899636718163161714973951886697992257312136500667917370166857205745920204304109240102877008640584845952351149790902741866449323069079630448644757952447975163492089552659967919497957479907661752793021502500111619168706597812685855805323454833148340776135837132815048826280410558030473406511753889400638100818093364047877442386335967114141572619509226736894860191929572009388400906293208494794532345495600526390412630603993538711372519218762309956233617977366978834166555935995431448248073235964888607448758659075604412873597626983894459544077957923582355537121103529487560240395817135505374081619355346405761178882000453842522754382330927419830871646259137940297903298962320530904747725791913330996275086954780987575442189311854680745357483851063032475734781471144177107703553038710122499821453119691177288628805067080307945339463977988545920193754933225142772259093100537237333014919356531008372516074904786543973934025570000998944112580811886547598857498859969746638284466678085057473716967446711972773899243346811371190052465445091600598871780816588855390052664739771743985699269964968385014902552319508125882916552288002824920909150520374437688563691713291615534251692436745261695113268434442556954050092233531831038152108722384653863590685454611857061298309115294672501454165419818459112030505569576699880648418372723891708030504294489990266939493809031989883068526902896105164562483269559257943173591881525559353625827786671025430345862443889508813548172827174334614281676838659373086008373351452705309903570250835499462080926405129097641336830042605827992016718550174558824349258683362543790513441806404611086943370247614909663047768496392377791807914831555425523481482512235101375364424706371561165969518630244909994074880592359175569062730100002918546593137425983074144295986614299319021747224506662702096421588390738473290771040742056724573325435943103389691587314849970021279152189743826908926540284045195385674076470794327236644249026672908196385510168157788231292199289268648790443761710793927180980592784927581630009157107328241416245328556006912372854264592409141071197965755686765052837559475457768666862585029553736905510248988988794272717631312276489712609254236392424712323220439854085470333892249711883072513633795566819811024067036512974802435422141131963597348991156760137361467002900258123579145046248714664559233403275683216272335882741968110191326371107463748268142637714831462871103190030564060241874523147220227507484167118796582514013082151288560865899363859596049962559629038361451527652121709988251841968826652037652217894141911130801815183996533827983860379264701335024133329893609597170734015953826115307945052793850836050427162534478148423708925187602023846852152154618473622594505509966496206296462229238159524284601875439390337002747912314017986096675722854011774416739628812830080516018077738884534278719379765471990786323078153728842257486327349231893465925519745547382771419715651726670067541483208097364692593643093450994151137394412502661895069699240230414528462652790482111724390215135962802810420374263903097419826833867758725762508258369272087412035721934009434327921383272806171293566456418556831267904143161068424015842939916486152907457552349583063189893845071072940150388579248584296041828841233882264152572390940490864800230857851474430718589669027346442604606308945850827280454342553342466014113372737588578627095935700017411983184478636458711875470739938367965990046342339958312610965044763675328476655382932940922617923994045050653518914034040787997659505383176365881196125879688075376817381528327300542672116857954141243679056021949898003785467952062536063289833876917130648263344651409911490489240490832301042772890543688542739588747850455728633049734808078986129818931136787272854332770102821970500955736326296450627742427357560733013761914987879449351319615385095441334591448921147926078083466937733515049382509691918398090320012184397778033092337879207060825457120368073886886564699195994531367466971276161306471286386779009473453493791245163731951602122464522736186038467523013766744065058656141521269019171629063644776600621735671144925751303079173558154858083682404867396220460720334502119049127855607298526642702490273268318671708635432563383530512871938828607722521949644196497313571731048079999680345827035171763005150964287263831470742569057790692356322238713839096060178215785638315392682259831846734013419762784328334470750500249997076556739073636348291905973944449258130855227352079974852358986811376583812296559784502054943106342103568200124105977326454939346340105312458904974418628416754543508015328837296433163253804533177407036022223980115026151771533122559863848830945113857880058368467588505964088564742899017484606249102755210008264749760461576760708240434924179149641827294182552595130328710147829520967464198941220454981115501187771454317794630510578209266497198242251590740359706535196316655209800416132704898453986119125422509993562132234408874077677859616040659634310572549539485068610322346794490324526613397485966451829108173504975907589338496501695671543925409908468861103759105430758397540918273059049501374839701151708455722723439321441580113191540352699654890164139602625585629230348388204430046780090971053076290478770144217208194741911609483825242756433309498766748713638953331887911998094823548970049287714625608259669395624277081611773239503979281690019739388588412842315841440164028985955270860648165802138759347450116758955191655589481359935074197951865985520941020639211161664644041818721284875621279671056998173382976924549649208204361394448749827211532352876133716820892044852374102453056352270277129154527665447195097404001971523425991947154486884593765659266400005451362373201653959436744686279359277506608299418320586614693086513860782295489393758177739838240227769685542101882493495638565390885303071356839359866125524040601633713348529034384541712021459777927234898138727567997323886221107816438077159103473276894572495882188589952888225252001501350436321845022946938353236190544745917744817881037253728234743904541803869801497798725556677106897962976081466578557296326429146848235009881324976428259257317079728159481277811649987031310934006770437012935151283960570973354115978288986995705208851222699163408423247392086311251319711067396948757050499031256854939415477488706462380669462519511855170856988176450418935021737694631097396959597340517777834986891555085143318191900101631360982568882008480209541574489082070382205743877586556976486986031383744574503014955211083392786628058713831198157559148128101262215756628673189734981946747068220074245967303425968008723918961195105371746502717715225157960728735676109571972448481854729708509797485514222495406732894756893501038070559419614984236752494709603064183565128292688979861474526671311572559114804935240230598981363439686644073895523192409884831794957872152273531408143278387223804094440680253005139499494976436964215885044839192001372524268425690471280374331822429911567112460669656959943800275248193468922248380311877244351846354768500408940355858253485418647958705332240666844242508893449627737144810861176736849377059029653972179626886006482752413749375463270180003065642907805244421144455470283001768218455355300646328684020115934858210265929749673176927962551861582592920550016346111621638001204492159172211820586288960551227801629803814781232562262152046042958498312180759512891591089057712735990298583158312165810271007039066021141537746989138788973766472425694329676282186831691875889091417981088781606456481534989012377557616574735256341835476013344721820573430197697464390475272837255543456779567012556618816667677050477558735073086400828659893772887832813402611240187558759881488509766435787957787147468581567656024869818829605144930849586987533366404100363431094480914587542570834991322976672965536079109920185581396566878401722464222789470157291795371193434826448519600446684422975713150374973788151001743595137032661633813406670004874514993446081568616603297978218879513696493456605818868779034559622656766329116594067920251609553671809820993643645629221071411994760560530541592158297086295250935585324171085439443343427983756479628613278957842251101932991130070200539011535186231299688212640847042759719216364261729684782135238850875943334571401254875831716260554488399549490655447118363192065490637027990307607571737828418241826522861991223233516269872022741129253568396370693302299791246753608338405338287879412383525389438267021840772766957012135971899996357882295995214001330397039759352163179039126093164119288992239835374025695055888876076907137132745282484435357404170578049838005830099097004959778814684568602101360726087440302683326101931021351347327499232767066013924611738893926447367912414099606601588726571900955132190996289234489667243599685644571585371299258315433092161204807304464653580412997231993172945191379101767770469224954504980805133098932717525752495424168186788064639182512498856999187073302797710644036575754130523498803148091760174047691104220335542674452604889846341043539199147997304635565369604149093921245908845620053928117477237116843154006613902501430205252088879589274533623017280791979911437390758179907162267069820288825336120464272844284796515272517114984370604817861309393329451328290803258754708314418515129340313695471853317386405580769899324083296269193569849594004676210528173276107996774471013746254624471607729551060409390643138791186744942153758179564309323991556392580023465538337598545237771058211086083188128874617290255374685290498129387316666773555460341241660769487651087923484242839735193634050181269592692131802290406783110958435600575572667505282755673906533425553928066435267787636261972661571615518065805582227203264975475582356412456458511628332029124615361274460493015615152294812713573592852746522562455439292084899669634109441729154670133662940521936348687157335925408794573460959476249362685083798762845009348946803705636506059012369755617366183974893064405337525824950979134820605955193725297167936995078009913665895385214339197590064237321411118151450057883328620565300039153337455200039722344889687993516166382213821162727359181746279956706251281291915172035316088033273072907946404668382803129742537097161440468920298988738340812700262683490391144060350284496530723042139578837046941714384715724103820800514136630605147445199651819977488223550302031738791081968272880466488204189451861562948360354946165748827520099212388190798910418754504003348085346300095895368883864699728524832680804775702080919187468934957747191660115559884891442240163443562447267899622259844692125826063379304073977026674397698387090103938262131195839924544273920615653553746103618217417272655749447962877129046098984710228942561651255605999700756398475950446594505845682567801925285836634844352448366009786900810092741192209715088181819541461068201068596126695437900504030244514148745845964834371342347113636980084834631654322835714816746019856360672898609709847778651357297773601740021755382054412916187383549796685061473944677799226759851454123773820712384716563773176467202192661109737417006749545962573242269208205056346169871959411274966165603245593717299184717008178513266942063708862160955757963251637917166878748869674607745735003706160769227445846591916383990060185913996003144624261962051560907804155790444895419289933373367190529032356771527383960669393617210691342323018400914037626451375823598704559343580144350846509035539286448512909330562477727911204424300247664553198494436319329808653512488066127283755663473877219901948623277038270991798561427765235385488411119090441287661114049754684847882419823155780167018668833457542471104109039670656441497072657659808015886422372717801852878892407400826575822330590125214928847935666708085493999751148578565338844265387253795994472442751357922235003956146093929602383208933871286569047478094149000335731355727348622734586016871536469722676761340209179352806218351314624887091174875111892682850082859821432353271187299792872831514759254446870062382472256217299502153000352423687111844803100374557280366684804706390336505890777658566743835082605082149677724954383535420185597505767773774637651984241498709894528702594640863814223985768606016851375933359943078169735222533919398366100181750189073639859813247181552404850992105079066967169243417524469856756555379560363959304969586210594096418344740731064404976517211189534191135961190571466915624570065974718387376805657388431112234675413976599258757490413399223025582132097708719972468710590329579218189562706670094935905064293761885311897120323357675050689250593331049299100473705517585659611278271635283055955804370917549796674212851592549974962440916259156468891942396534951384797186903348103653544888861999767192221548351952190999203431162300313289650145365171837999220398069338592765730727900879868529434089816286429670439845297867252320464134291814963594048448862339641003340484100936097130179770619828871718526554606892720962842965819853713809449001462997186789982940225928973247836825447725041306364696837833645110637379602751555113037194594079473762799639439395994690646044712031457505472969366576289004221446457138090115993657319316494787825228381765246620423234307888486521775958486327164821141564519617916389155097353737575758310497079346075674539419892805089061087791548418521280231123334360620562391922231339862067203126144216108205920518762143061339790645379164758340307046746484742727016675977907421780112137106690992053079504494336048392469081922077868626641300311896712592446499325056498680054969977055813054386554850625909423351759582772139489232855886322368723169504994550245249523523696341299861928157998518616074063511572403559958420249818164159255585820166424517422766541894051669847576400273496853082815140809912127360824335674634337128718668095095223627138014540325139939844130395180702811345411463254272196536993075940894048568916912144546865360324991049828811959061981378734745309954507369884914943186567739979862311559427012921677849917457658570932582003830005609769209440403199967181155145696756628048874082549029593536127262248472495345577539828507075482021202875595976331716565646358462074780831270790863245193603992726400317257089036558426165378772300902592802456176306682662531659082007519756354643354490243030483150431189387100006907565835754043679824260123186752784125256282433966355466771386971334794817547264874093938831298996965189564966725865294103672084907242309751589807118433391661555728820515427274001512941171388412241764512498509566857776281704382857451916798626884072591558249087569638463519219881135529232735179625657294905795230092647921571166073995405764635519799005938679250813095981484392122390659712982570815734563561823403754325984275210871704235015200520009777487776943440435258025663211780019319640898085938175998712633037055836500970356122061637029768623476436797377072234672015894498391762800389219347271520701085165190289811418512557681466794023082701623135272242508513806269094811329317638238959972374713485581855676698912643477933877851964459058189564892231749995546881834757018262207765458359627429714130920387645689956126784531333210260712274661458670589658208664567378396375152991479201045858497537346908244553474620472402987130833376681772805714533948253277879493801835990281907977667735093265155487808842697593206770470573779234632960068664143548764288958468936532628210477713999751919339358669172283358287539273405451792607517866913077894609512798492258241831411332500499363506167836616495541255152405267496928202860361400909710901511703875534479818101228910289609361697259997727680565380637564726608313873561046170498068401254009879685789487925720306026601332371791618853143322872345129319730558629224648272467511894969071613948879183543540985287260170933588432076293823397458984969640750908659413592955540455964278357583702371654184684481202626519492051530718616481907308166966449308347339075260410820328301424348053112648150711229607608673139942342738096439661793339022606099103621345139029179511975027294076002115276951335441716247104965194173428737247131311670190629019617105113649156863119108741039028413024234969655310823419312967617571285423882253276288628776345709517434584523514183759475389268985444873411492708704910260535750719829495075253254429306557038552802135437703031005846020267757186186081855800272899116116328463179636153827992215886860244497450199185839386711135581076204079975447963435584437719988165042597735937196923358376612915944460526720725347946603272289138634440529790451668577676269593974740720087653069926071564127088023710311279065383592746986913167738863898430623690557391330689592416252871918685160916037238359126760480335667260897870011373942957332592240122063373974914948551360160182160231143357535160417283691790306100622413625215397208171620461640937671193622084091842140529468731070034103276348354506504547200847115977518931736673659994809764543169243423142366202170225275931443893045444361191616087822581220164343568318652484580381499799487173815352886085858157899572861696248596115809978095919567330337740211056287332278667373193758655725309898823463792466463592729998048412166729075123932302920469051598944577125793834768835938657749850315031509221840051138557070672965420400276744240273689052587120850921407730588770044649648069328205578018916829920046877942340021060663238179496106076883316376197043327169135388722117289546697957341648995967476612190615907243881859709244242056042718667469244605094429450583530877369676862873820679907692307324913550791295380063205440136200848655737321622743130216571706471473896222857829234778485255688766437057438370449850724292623525356309368624743100991797496139955147213282676476478640966512888942774704715063041861651398742617457844437760562956454566951880547778102584790168119155448924356979419504216923882031060027163349462858156211911354060533894529567252589971669556948470171788905691996619518602572861110040365517404256089393484037257667057004362731667629300160620875438684394255708078720353863351541581787431538955088307918261167664941205796671064814521853552125819982831893396804277141285443928683319312938198426699155206659553041065718895802296364141388049645185085294601947383925418783425448449800934934171002229309225661354790058474204819947146965277379452882423935738529009585545106000984740646295173173261671084184980559656854682818135986921631097058828519605374223260198110814781078527747790268235924575880115469746073691176937936888025075403065665570955052585294308487509563054195211507721187740399539259940639613743263683446285050783479303149217030023400198613728841563963107314782173940929300796066976641084539772346778888886986291718427886119215719310484946867560726489150290551840521940546864978924355432868948003865678617896871316947746575830612968416614822624167437618793184978191081659407725645498466734654957329236543142865047907382130915222052045256890068045976987165389390048749670848613211870494479979476409846732480071433983880461399402794347998224045135575133548262932497703913696369034815750808070513000135328976009079198462203471906451659012717535918480918661496221743991210560354452909626505839187694432679024320109031403318934236543720732556914967626886687346065147555797877324965049279592002511992525360519907368545990928515933998276940334679230292099711031001755975933949843467957103430861833139623745764726613290714451365561361709627803299147615905462762978382132906447874608216866960836436683349052198260717317929759183339002627972258602678721153274539114022766502152200718123360176801239992835018349413858681097324877498520546545237469200074893845739738675000875608522760088339458063171356176319772518693178028528637477393945615006222796720225907031807091642047793659277158577957862186543212141188074098453378527210011354516060967480354360579392384922483680333329727292940958178145757802201686005579391750453284322641883976786262034987771039020377405033730522112247731547256622410568084344806011763291567423616183523273439736301895694816095208549530645005133897578768641247429136823891923016042330773799033145310792885173126076737569015835512710726591060505219565217839904195177390975019764005757247287417585601674155415953000394104970437123528112709522387475440706704101412099113862401882461327935801063732664598012754518934557653606229745160418389909364870133303821114594846130961631799125650005446214755020205810639459343944795369519169702485789542262381617028740863623472627418578768539510667097098284950337165260054726916855438928096507109998015684826631694676041126109312698836920322393683355707790343634453264610585121567058950810184112011888694694667941294846462739450122481996206828691882765422982652451913896882222468165877835002236364437241980759394070666300360100671315400980208060256484353731937892753125934070438935765016634045123022907004193100916396685647337794927137184111865982916762256610810738672993907022634544137427963093923364070906750882977902965364667368972632533364928882500600022708273469996521214883818716215310846053181415358443760374338323061403951449514121441012531783847506358678663466716551570697345315258328341499240162274945647219970031383450289989525228339995891963206709129734161844929663173058326830255366168546489165594089456916275007183423035120499314559318237837597549636685563961378953080288087000073691160734692672038521813626669332515738735893715050701103010507157667528375990515227489199431426567364485362770894919619817906932825021938842501737538890907167684124609749228947936742780399216440367867969772104357866077414319960214093761253583556495764230090045096631834465591966871633395724131489382443002621561350841007689775730836611034440431816317244724160830188579641524631016162768565863429111506968666570335157311017107557010880544543943715921909654770101715102154867320888051065694956000752395856868474502738275126625992972357326596120342266835972407526889303576102704151562350677592500628975548437604171174420127317808687840099584551718603077169918100252286303394084524820366584783294313862740849802290408316159094016667236335686444643285806858847810499819699437325347818992247012734048542342560347588247938865195113369433450232963379944910461175507017919401406778048840125931016097746414940459400098217533042314182814687065237951674867413999818183653013277127685878167955008027628790669971792369243561647203859953847924003705786130533367125975187203437774031124646362247761572736361945870020912999408467438213648674819141027984736672715622661745935183806008524850634720253757940771469840581027431290606242798038015095878438190603223046124095449590465522712498988680606786426072481422479410053757246209962402386447179546086460574010357025229191520557164003309169398427933723191585571443919597798519802911282211495413267951418807793943908044578990663930239361746653201085052812725557357660655771430331270520089688231464389626964988683100738369933251643366718962632815612463452781438080155065145538079602839494669361601489912075972913553913026192776649127816114479921260187551607500672560088860638422015473238324570084873268665578126497037033501965514571276910540488499358348843239112312761383228860134064510344426353836548786735300174033272639457001087848732262628810948134145299725858880230505431024184384404588092656832346764091430286681224152422144024165983274049165048823708535795909395251243280093762475161074320862062508655779600477027647630517168162790020189853346520887949909967859707472292718617181581853638267639770514780265633973296409902160809642385507650607935050662783069885842206141068286160233258425258949308941213987934181098977986210010837340881499885187927072290030615265390365098112253580014690118335915115329108484056431413993109179816387262175165191974116757267563663329784329275486659416779860184627430170627615680738717173761240175387629765124377854738075544460912442177650571070102702286925458306491564396557383006725227807356394489110028463782220825465029048291974852541134756327647479961308315927038714891072842053549904395622702672646876563146023561819056168097732734118193311289405261952160006103160517841856330403265502202149640685764157130548339281089513173682972852703994955900371509501582359677555583277869914069316958234545449711275900854986597544277208914270166005311403787408951106551580448627993992994007159602268344795690470224032559688705024691110360023046979376538384710448133329354134035225887615550073345973015200990433006481366452432490970586971601130692439694151737056439998066436892543770116301497186794910062000663256911299733331213119512509887213129463120064617355863204322755538223908509451204992892068741312276653039074210766177489027850178361820999148395595013333335266350257549616628766906871224206707730551250991850933267453462260752364116209693368249085805832683223256780241512241484740131902776019008932784172929673180292932428713953679675836031419553506249698491644734128749446900077465121133031012121844882484336949599136422293989349844172542290575120912621507562119406882197909032083339986385517375783994017005026055124855962204884798730656997651278012248223053450274258928974650016998929985238398724151693771742145616717403863062551795203567393551342447781801089604815156778566835059502711304770757629850462648525535767004953866463396484151219477234760766473398262523683891657417310433948315344722318088811151577508266483341312048608216345571891353331666386649230697940960081500216058839784746851975998982580816367407426981348556168156969201833250758849778938561036006905259126893019549857257653026283444984415229165720630630089730964748324918866786608604038064536499033595340929207561313013899034899415834619952232635058444844600747255619457328033754239208461782372859237186449667399234998540525316646688151959731248960625241127182278540992176735043349195868458395842688995484256068766374679158936869907994121483054966347473303723204866048525063498991241958726655116400833035595345791097463455669699967250572638673347794032882548559637218741917902679388395438506873553154089328600562060857932592989193134869928353999780804376835114879241375502560517160657159503373718715787162667248049786836259943503610692523398150201015590367610790548276034702960299650156758197122367406978567754747398187427292629074307990023289107820232335033239381607031794121828742229528750775983192765302800035769507992276410663183445205375681989390327321142027617003117831576842716076382393937036541881155208903960538580709358224246312199390962811583605224773044179402146825759393734992611328450081663765817644559196475643697603523851023644838365644591680363680825781338559291505994979869810252953261151572761941130933645389318842146504300833806068064942154887048689367535363788168092039657572719261460285926094673441551361335919694945141190441664409920450690538488077927353945013833621319276330778014711336354426774497159541386167646498975385826628656450511009788270736765149071161409831945822266294126202193974624349627565128039501103985615337603056859151983823729048549841733745476245387691924975640187228344347581325126094194298790625776202317815471010404087432348701497797362700403164189906608621527535493980097826644728877392536290870415371734915074489301293159668978495617925802965997294251587342184435791197296958958610540042193132021363379656250786730304234173038260366335769454857677266983536484381993834135664063891250834124102360297701247815944793147172998081910279964023612113800925357296212990136455180617415960973097494346627202395965794413885336848814025261974671299217247372323476398529191458054365756072307859213945962364961542989296073953924112717160545556446536907378933465749912096710629366613189301425805030650940335858938015994552914781359344540840678585599181595234011504202368932817108737691742974350550801407813064298154952134803579530429909827485867228666325259076665798527798776159891163260699186211010983569647115306888816070318158415205195497972227479313207421705852351061856318578316801329378279526270397586962181975549468410481572714095083931519972025189981597336386832276634703154692571387864391355841808088184752439647312375630701806554897352202699764606218138450668486280463029917528803514314392347410664657135893969522298925340285056191293091801863009579000229769862242025804818834946771910776811782308522244902357781916410457355498543702425780570876127423042838985673199474506120864232469350114530506214445955060396430843570140522726819879201718214897973476100823402658608521347754515489184226885864891294968923880160721972112803174545648398627208525039053299670437488678573629566913776732103352205374954219066280308467866579390554152560962503627612240851495019075832728227767950198957227050664001610057453250288639293109381121157553130932449457552840355441399776613967787005857992643591333047013209583829403311616531426839929055463517530449527109110988656892869580977706050816961916262317446328156501664063195124691140075593153348108862134337298857706634185197444042484419019436005268603408719973105246259630793885003344122672953654144378120289535891347447326102890893181298198038767122366516767941044668764837102124846875938217660520109025589983998226142998309032303528622893570133303883813508186071566567170957071287089590903194748053077933770522696865709155077861240678831453187285239950325120802643841894576384270393637078674468252381607546820743774299160322416098106783009128010287541571682590717223149830928286727817825229317753556848287441145620704230604461756832343850626614525699188615460994663560592741794538053394689280229688430141327460743464036086017446570626564353314157191700506237560250319265373116417894033181000236700530379992663333998811602848502396590084554935482565672442386206149455064230109163839945453427961276469697985032983767391505025182019431394583125900870752347463991715120760835751869206039702059449214065058764118068694094171688690914211166070729613152067603201342778424281530585312177415347177893882458777203466931056895223178745138811444749839367993233467171230798270407444418170098936962193479177920022945985167796217974004416808820993994564400150801463662732100434702248889003697061444581010160818670161620086627778024739552522864163925016554643943166402652863027418307152454260758516836686207573489919239572100851527405371836916724121175203730835835369151248704603824506402756889552992935748337338808111432827997210130748137118654667313493100724480123610520648676647448135342142343856565142340476935383640205309855155330051812016708755220622341703889737711184388075895759033550060841097247787522876745754832313751967472906742175991804983600668848724021211297775878165759996275869596090535418484985379088496460931121086002874383764465311777226822793966064589611777500794367419662820783495851027856638896933013259885123115317760052647781339912495328798177123792998398493057710246194957538145163143439665088253147692232828043365016849010584024565910710672671086768304827189432269052467084701183135672358850692304013383349187842804836535883110784415611431468236286804800495903732504694087698191136678338871183174478018204714456966070333242037798877717473662211732039607845793016848067479597834621907484350249710310132738141256671027905382014047918504428898375237247622937357969026937660667677883803167583382742548280924412940687381072180360174618672423543055969407821910871312428603718088994146052721106472309587509010880760413467864812884209738578325748404990426759518446495534226538086250029056026505693540005405587427213814658137378752499155719662719061621576824746511593820877717752909750900512907394344770649131687955606104755396901646056616844173636364780267592995360922632867995187686293077611292672169029171880738604924247773417426018919315545333767676981757433368178608323798514322102204801235453933009491933650792904798537763832408404487008644261422484163130000504158970602013642865012865696479637189100570687194493330037852774015386661304943517065049009389661115129186189638731154389323041292602433395865571390174230505262588209848349699258476465492939110199388831471635106060322986590196521067405256271372398036776360390632662325891103628733831797715217939081230116128060986383666074920167963984046450693875549446719185908325332981554566162061603472619435427635239188951228394293282817247592508124824994744640020718184291856756956059951520982485767653842374679955525199385699220901709258666414257919546164705770314637324819621588763551324686479975284028453400347350373209889769808910484972061886270883270826248083134247434033370666004638868491878720116606251804252393478884893491028063321161643794804001620476928434736482515911378815567272031782589620451782656518949948657413273826645973158521426338594800064828494145152040134110245505344459887926876350214195878578456683285213701625784261145969979706977748438279147364571708339948295948989475207693482173564187202678261336043048882113467618173712457632425426495482276300144713805512542464176417479817127441415205362822371538993613615946148963447265360826737419405026665087067484973263685372019871032944437422467567668300622464364330945064506424115924347940570424138351984504779865157324970906538189613241756436745146138153818661755855339452425555404004005659282244602488077235948516446563119921554068831011041041145735470241931528266750030266728104243828307792823020234092457839563320967409555345494481006762688522226301873270230730694076127210470451507186093657094361386791909711599807211781976883037719502600815442287003471084933681731162827636624860018601909491354375437900189094262942807906988823848605892109603369133480425827812416036229651127186851440307839626909685601407860749572116452752520809859201676516818608686933544116540799165495472293477216043586953996381960682156646017351294999537447726500419679021644344394960583321054244504529987879457819255959250556718492438804475122257775611259328538272196244910153744916298143959883759591946770261104095791074298511942149428270570004610840989859403933734562428877221348410785387064518690915797415986226274862800414490701227124778313085227398591090330006336164765328901690517390805854557394121011838569312459344325797252530900070146436892218367689131025289040455299201305704876023066328196661262418453533580904414217513642085071232534374964059257686301055017461364263946543365285772903936394304411060956465476959464236437892435471977149597586830223713933022675157850842868328554407398105288140537687942334660919298090573712232387814689622887209992523955526493950491779399107649019643152457372243526093489476187969365397572358814482515026170905660479153762707327431717611163888687216495586200870004924343236893125268422562081725899887190586144920173698502061900927897097318301725458247482336235319115745436137881859089899224359131005462483473649310927903156045166924080942996621963220563430412990834615977151112442712411763615126061830005619970181356158307593826320966101131189826085800574727985898940648907998103397226241248660862879186249804675594719048511944455807689214515254065060268282709905266142546575029911719456761246747537848106087360149568951757311584049794126153759201664759829107119908787360977327063408892941765537382775425430483581548913961220885127204381598759077190522326616599276730027956830019013702816163325486189015122322665125616566618175042876549155693837151903673634507275681838702944751035532707579673103772113583750434636857037485087400931272027286451623669058153169839517004319362784306015301347577496008233114136194139318212735101350647002591343053022956788435307065516253894011667479287279726622097722762876517300966636642059841076297113769408143244852316985740696325869269809781063355026728823872216973305479711811920284031704030251758451042996669573444278649021517922548452693278664567227724092314779037364744741470723723854289845151772637633586835863870780347678653971646559730940203778422234594584669287592562823787604689077847184305905767785978834454691683424188421744405924376290556506670994359249348341530377933011666350388659214625288014496125067570510346449903611914844459737503884627884588053404236154811099717514881022973644849145317553744495246325720755616490027326769327144504148409202246550421254095190306734230922316668935136814670248521558969091758020739916414688444238932397839795563814954985205923144584291247728043361536425340942563230517367939144412203789465999373853157915741950450955122770105894696699721460398287298285740462712975436107114610426327562083164459687735097163191509237338220155295746057182832786979727558800999038931424363969762823411508141352382563021275774348968780114531747638673689544078248963679767596465607375746673752713611837139438878503898858618946602061110683095608533673198117357627132179772970952493914711594887492756096481105909311348960117248935811746379349291984484120051885186793492903735686579861289231915494842646625990418170753897403108489385373850004853528643813254476830651930838403430262895910748825440663643084445263301108366300607941481922530288102332688938023857403381944251973906142038144231604128328526421181389046495927406816483577466818170595220752343474574010553739460618670623041009655730161030549239146950198612847584243229590925488777265594684279498479998500725423121816431268262843535260411489675848016492761396183172719301157018948966553727077391517879263178127540374589381968226650584756141574563870296966972790544909981146724636262544293668527064568707096291115580366664063347684912538849986672463921799470823794032310321093482515805053566551429172699052750250351720604290538554952493830174667483803698329781537664176936624294290770966827141583695955605915763802034085595417281448267452541515440657028511510991882052694624289317589115425961525949063547827658602459535555097094573149299983723172069176830909308693711532438601052505742564691095917251216484652430025992450198446474697928375172965784308261744429530234043400246428236222066797737577441243836139942023649294677844728400986733391313650494774094021312698501853670548826825866744078026014360044270127195396553508582402860394073531190730586528633308230259597067907180209157510874879526546401721988294128763176319925256086455924494550036689817555677827777454048820141670193794147699154856593620099839243664147793300678602437907958819578662151023419741687451242092509141776379385872445857489641777169583280140943160961523570746283553254865460948371127319351285047219673755879851172585990088358533863512151838258852917215790815347472377966348923140529053161663084467157511395019746141069747149517955878576159870396986277975972704244160086373886953406147325715905463191595271509291212992685868233413068231365465001220300335643146925192885271972114975098849149949683796681228370195038177522654499471022098262543986404522496060195436134081444704236012912859565769352389512035309824937246706601050704731464406069628045117260768266594255979744217973422523456320039727816937343926074361485392058031724309407410820273334951846608910126575684064949718853414164679423488734734791400132711717039105374775609834351989255290826780796898381705655229700443651062690439494993088989300942518851736527815233001052912359376144951744457950137388984557748212919010930127092387020557490085346628442422388952789629393867300581901836888941296045885199862797627165477374552887398749242222788446747314621970825097967673742779279259179098265470525226741274023288645714772470173595538993208888714871068465051848213929307472609042763405574288654247932718897860479853440502237791575475628046306599151845464795882883594438023823627345362019068697296791667121827686998981489750393130638444774464448143682980409812968968766438083061315294654342866818026405586012833795252183546642211478457708651743391565814093662155903020909121990684400829254524105782543075194483629386492338133693556873378444804760300533627958938387838678614282782678045021008839382236556538566762702620836349141490334663886613979259077197111072159725952656019212638809329178074417268722021641590421048101017220365674542908815424645969572578983220870790214286091806926509392734417881047762188075681696820612682893747912121607177006279201351248572704555838323285303873117530129477013142227468154328179316020067724284700281771376144628009537970212252064436160603879822142690055214271606016675162047036477292255318557833010969222077897017151039080460444707571302539498300706454695255801604610529021625646312333043370876280394464539640068861353554420651370422059095539966420971036409731489303818570533187560075013208259008873067282390509082905982552516244098857023848031307413268903649091293802590690816810485555112586915603322416837861061487246494548135463691065492558069467002407242230549862797013743831018126693554178038035328660428682551159009131033119545518441036639459498944039671273460647129642574425683309537519644671428656924772384996318760659883960759124931764674504433701473124345428858256629943689166147574882082742114234914747035017248363417457831484367884805277046867404862968116612835281918114084557464513081858736979912271574015455950837906385912755156636536236131616733926041471945901115875200532071606901063807292915735006744281650296913782158716268137275580838613521726928178721756609845940845338457337995866792323409613046601268019053527229421934049112748106789610473557368866278261865201827170412346300152076173851584511076291743733384368270921153974277683579799705968815380399889917324991947008022444338255953117101500169247437168524841451523972625446473242844262158520052725067988083371268614664240547154621238565924594288789386933537083780847962267878046520362484738551358322631442321204028144730960629792192197231868443537642761070500884570294166388160670773507949830025559672318532669127995106301646276908080919928299990300710857549275652777535000636612172392232581933185009048725592880744837784240639329895674180712545661952593439071601736398756028117650205250851794916881191509646030089251807410558813408716194546870202924346302995919583190923075366033874522001282845089787076756733641581500991313954163693201048345517493041960554468937081428402454018572877840297581525006856082377814659523309688786079487439215756552293673246572569492382849187572969005942762864280906000708269723544855807672377332202594534057264751552942420675998585079811610633128392278531108444200003719634702612064064536584309309061218702990841738795518911056189182219676842357991106521981717832277105577159859181559108427178791563762307175543002012438025504608321975826106721194469729676524275599752824833962798847180747444523762984545236675224590178291301992164432687061296852122827562023844812812616184786386205849118353137101826818629077103203996020069314802476948585013658857215284484202809833802492984620946212553469252090791563102158167748094011600413635632915145970962673606275130260499423434798180484033365013580882116978020890966871459144577803730348908272715889423509375840454322603668247572401902826668088179024512824177498053661148587626197650122077559886380662529160970771107058577011011246220835580441772933803991691575368056295102711281044266675886270158258864019010276328494390234851268616532257228061664520721564993720572863735377801424937068733864035407141421570565084182865261122974321415622629959872991535229329554617369425605442930458151370288305209777529580773972068501851105783982116275932768716165095024415578554295249593632322760924614676031015192732553908039351512960615549652964283131782203044431430704472260174931674396938543628089457041956394266962905857789048898925706553516677051171090546275946066438209492068703397639678104482296946373233401016946897303220879722646379535814718198996145060352206578178737995923432482533410888631476484084889524737204255152273001907039453437333715468699549634461694144363663630384617296490299557630542280045680729857045180720844436372102400737226315575023049440561420825691093071253451104164694781578460259250857199248066553516784787443060484369592022947915453614351295230169357394251683856609003751565508704987927361264506205966826632003213199264830603012699589348935488356003372214755366866633622014863984379267151993400971200292137991555385031687507582027785050831338394124052438219991596647788605108986951140281196308468281089529127106402842649327658230279773549053047339337001213204855693312263292188924014438000718480208417303861904122283728323047219740749184580783442148022682529772830405025404701638119751965377338642419082576623359150027584691814848053672325956485211588760983084897690255008136280902139755582777631569306953800387290291595378794691337600310721508606036359413407531398253735632801881219035048226925598789181410713858762669067475227683911625943656962488005692814780804754073554065677920181653558434448383269475522270802942113795875647698103918631277586056831105280968058322556451353086350701732459954864702251444169837086976524797971973477943135379079534378883568983756861260342126817363411094342237474264917013194767838444736621106621429131821863108392143178779882460690310265947861251642011220514675190533732542151843791115006424498501359338473859051975479146637005206631051724562150449253132693558478107838369114585475899281982432494025506623490835965131347416921563013427249734626205268234857090388704342143879072363262195616135363257143574234666201021644527011406623799276175808893638866998163030691929116259565827632642597798127788636249932380734396060141214928162800916136004218552873127543427164712262476031539177762609684288359898378784401724470767092659075284768775801262842406700541919387795395886979720158772462672174102296012006666149716391134374315137609338261882202739322185637553765630223150611950521266631078277801446340231356204972573947970873065158778694365234560413339667293840409238876156318204139160312835752543621280483310091673292951213369415437645371642054293317848412738004880384836352866695239309735628037963686975740725487373982146971615112171320660623419091649207925108207075956536844464639001060457565732995366420301408465287511401821674286666806852857610612988759467381435999250516070053245939183927908030330394729727424423325901226348474707174739219382008854866215647114581489709898311472732984371041213320779466714934167241682072403344911786470275406543678428894810860332505012095360726591816100562443823493566983079197817768045857244951407199468258827712339071863517057317681760827596625086412926887041201969401563673945511998590860438836694521204693092100050995853254383894047270178799561888390353543770513742440658572837516150885949612473281712528837958871362616255672665165056476954271597391220804408628097332669124888850031735936941896313106496366617629726140754485261146635774474881851021234369501907007714460631277193009388267152297358549171061426512728289998963080018857899988173851252978379806713047959198426849441882491042459571720338141238800097610185656396005925239890772573083526573378057693906022987025845920510332047303363566396875582525936498610072292464051058229936580924048737482540136966562803505378641013660614218792882305343314422313687634775665301004024707461271724723293545356075337430426007703332449554729341682851208718183758968709555892452546723805554237604514029844249549146834838173587866795078493409365970750058656464783439644019735070543434864421998377737293809872689184727584068552211714951841399359675457156330071240241720524979744595142252468195642339404545288809596518264612672667933632410664379698537554890455260858189023370965468444599270235139805322136384598306073077176828266399710431365248644087345869420643283646222446937211782198428344683377934809278792305342376368891530380094313228164979202028032635209173925385034206257559396632262410328813000122427057788301518211540491972585201051598441045293049136703609751841263492978113678484473194418467160861952096298431776866780836469223828684594528544099677922743815883992650724787498439937211518106723693564760512554669607262302108944462250586495373677781625448207171962090834842940086152797669468752644268826679120585781477704179332753694145877537623842029397543263315152437530965050135952812783991588945388858523958595779093371611222698892049906397110340148667272096835239201513816034227414188982605294542933649968360676117296574194861628141420170362106602032883819183559224499829419784916468385241934537377554604464846305066948557254631780102673000875162158211980175266334112566993333021666621190588778202145012588890485725808891568086965050392278709620069731205031640527811450659482015038581982140438291779488900298086816826125776571217743493541677141518333229964466954201588330366772405630186630077549222426371451083391489905563463079137479431107734929323321250669003248383751750692000422773060029670703466579150972985401012944738838859925225539725268303899792962489417054941483741873052666454297528794436039587684474514349362646653366587897938224399880873199389631887165347274111405325685438570532892471295859208479588566571971970922592942169374554891905692345776066832380946565990603093917267257240383726837784448781949749523934779920966316262014053770998880759476382321842902550296130162238549264145197951531930846491898483008641042695332124949958979840894805990166750772011755665749318708995191400068177573965669285567075286788086607128967021650015556422992348039494943879859071434852217183865766988616702510244611827180588476666952379456784092188043104016419466768182563147805604203202747713871452855434880658063706824860178724146162239041224155721946514836811371421024403828595513852221621210198447632516030737855619780657140515906138439507939165256906648115025600629686992670009210917826286330006619454053668590376477357275679867377487609368629831364850873217501946880170136304632302689090151505865343103737034283303528988043110388262611279528383753325348704444018383192582027380495836887313629876351621383877900838356299257549353169077426353386831910998059051835030756086578824648207399522812474342124887944454865531797805905702984293580248767096264102515475580529306396003320464644120368051176784767215295155323834603049543982667068303479419971479529082026531876157779443822113398127140816930532260696644065944316539453140212795114619284367932140380560345794665765830078843178790157438658847547146197682080903176212301383037736972020763051804110613887204500558438700778349178522800160749869448761777495637051460859608911908614138334779188450302830089570860914657713075521169655990780143258808671780322447398151113957435769371811922837714317370064086542261369402047731422483679550825116145622382807208829434338741419383691651787396824582187389027798025751826229988419641167411485675257392180516691500832891104326354424283802384069196992406271685304897775886905622531001019539159573310019261750173883582904466090108955190963123222941342512388647755606574586262815941088247270041501711006090375533311930598614434680081401265279292696078750969093974078900376818010131713443580830921183363232225365013281020832472211424415394887564229927186184347411637884453665562873511387470851627483580688251293205831293819470240363809069095945158286380591855530704896531384928532386942725197297220328527308317601569162231700159442771096344057604843620769636278740783447006092524451784648227766902975852610821673240794849460543550922873888816109792765502439681540913817195727019608612144648702337805847276063917434418466971013518635133399183378130581481213720828016380836696943975944308804664156013978395638122722625515225941047094299337499143112998072955339231177323777475165971521452532589549050926197283455451022536104406236805212639125597736897416919014487773881899417076846824785799625129075435296487104421019876096420077591012521201403754501855313709845922191216205303326491520384573276832858133196830608431389903791961319536540429369679854871514484942771176721369340166968767844319627878802649083939918260653456615991764766094520530657280152632668227363622484641925799515260139230827455455776193459802478061545806060991517710819101452085509750815019054035009398290612174785682775505654670510348433185322765220674568268619776702716274763718013213679369056539377300448745910839934942061618274970551295404710639769078304983877901278044912743552612247486470310829863361059633820345352703844795538907210167324347578504932263544913024815479335895262725586044181176750291901331079548972191347848886077407934039642263224976552805787508095119676129610365896189582964927127666618814739772511794441858270716398675638990109711359458256998678545596531693765082085414868945887346481486124454613254281674264002838438108152055834950362251807694019307171350104342352604243633107032818396863857245850834973214061960646083900263250843895764349305601791012742689364361212652308664406748719385718427313440692626115314527079047916004029231999212009492489286414049264833075841239291873096952972971121775370595467425539695749190677979161093864997000204854196527317550340288137844814105891784850017432793318541439141911943323001238423194618200020249647175868121260688545035229240562787086567504294833740532571289902682280789356052094795034863843025785417641280803274811221106888828097420783313904701664804628893641856788108213567854225774158287968551328732360982191415963180380837417818165415814126782028517700426991619376038447715074107732723704355416544168797198909497757330462941190924099237051226835942041610162811495324503184879514875720261967913750238765698526822448438591979554721259165356737205599069312736291144746102654980552637039855201493229491864376791747715323783734451595449365815773990703180530719193617363514609536224676019604670500451030742498275266635270592123014231459995176120369911438338292076494739485026101839534550572867886980786062333234322873240286393561816267418596159981666100615410736560565354116732974591779242479919518842759678787216416452416899832102938816966150013211318922718648748317179685600809751130867532095864420372734540032425469330916362190490749966224076462053317786735858812602772812840429956603776099652617373759542768780294365509318185041740321713343484950988592535285606898864845790691351626096536829831039551869705547985748310551751935799378875512224654543717848875364056577693495981133884932433751820652780838187702012141560612611570109058148604472465387031723301398325498910466108681445809553392826792227914529427055683499429006146122924927348663943760562756885622400447938986267148773116014830202482084054770811542316154892945325688577366233177662393751651735070292287116858080613447278508803597169849360429915939576338880895645935286817662701531552680915120013946069241589055615825333481982251644109319734919612344374152041242458111548750028128592366858399171874743910182331004147518391932870223737614158831212923275823332225676270871900987384179262981486695116938750025503669076017495579481729331517288472992798102492455071570318796574716916523072436229041789464259984523662002386893300943272855569053657579287540360522581885037366055842388142680141129167220877714743136779120191849168923356449117958929622731434583544636379885626768291732253874134472835054446461852103011755346804509669692295346427413068134259397104981866925701375505875102092804081526654301178848745732803333756432497065202813995622076024922945085352791130792714869294359697674895849523640042072031956691156914932081509910418099819660896738281882698592372531725840139515282751812584551555425197792299072303915355414301509327562523048991835631068712503489293907825370496994353948281025590820977188657902623124862246023527357329387334120377430074678639781698360089987538468152072353934895372310495248154639089833812527469670890148154129125169505381413577949824848669222688674338144840211525575993537325746251670998414754515092660173115993295165369671600307895272922007303804299876785922761201430216843098268756181862598613177230983590961639369610390703536853691564670358614965453032466751578182555237361543945758892806439387708926553919848996001840347262232088759065830909809420300749713473025749879916920420048141317822083249245639933422279229791990873582612920146417922496552017952585720764719902432199990621479188840721163224555631134765283356181456325093442806784924516636687447200507906826305439874730409746910733989035864925214725745448294068413696435041751959161696103946514419849226448048988663180808300337736736236293914554937601713061642566749192538009395398414313195697725525854766749453074116819916142273216071124504097542903702074707314579636482952425466322136721917227633840675771468883237506583195013427516258586692024603535057176632174647162498807209833521328090699211335834184803993865306466587210383011068073980422272273145624904860357191979568025007683033113580251138784687344155807941279037730925083070250312890418519531789399461001889067207461606309269968595496932546721632120676487912221178199825711374326936093548044621470139188790938477411870728319586604530702037764655793969602546582115840011871363999008549438554324266466299728847437444388206990467992465578288163251595333222246373805369183800867316683926474147779907769800320887846950211119077413575496921599180199627091324614385791601781887342668168801130895238338229355484487955661737845645261662020959322284068385768146585532747207077564411159760589212979148955303776188240258649862083634513495780786272137025384556631212097997709340947180341008802589945879211628058325550154953882550617603793067280464881967286791932983438397241534525884542659724504717844504993668242159069958682158890559505183234942542551063383456426373058711140085326789879107382630195046842201883169573921422832923992943028571071738948728850044602272478568066760581976212040310143405575040654005312349312188526491811404654095731703050493119859992022352320220411815854870941499454589435090834172095094498185459657801275910631145591914360768867884906473980510535624417767104839830307234166604586488461341349843756507544011346743187833075003229899316170849301674004695287626146866896788783734879427128359488090874319765015900014990174174361677443028640998548971602560128920852417953008812552920716760064080727100402305668491920018114804755320207361630671247019952735160458015110244582371075945487118305636090936906535350890563445040662016067200966173125054648807361687226992947424150593047647799738498447991253730915592914268400484914322346693748954860999399953033930436776207008657278366350849493501039520244867610734633424326879864563334884198261846958973258716159396744546733549043427900108414954873042323379608447089798895680858953301433752857937215711776032488841416858356595823361159447534511436593329197518809219377615188962276521054437070699565255244873664123040480209504120336797687413381361802077022701122744773524656024685608684645216073056921661820777634932559975945300636826948860218463878156343809441952240834347338167162781409072302840100181144705182982842109012015247942123648129440264322152473108479898971034828243733792409153836076803583248153793665550838015765445123066595308904869446242974834026815761703006441009794096119366258808971411562792704696958371005947880339318665098992704878076723544305228525811509674482227435819286028938513257989019443407780451171963033286559562228959094673613804044830764820239480285994137503739681510061549836859371101227498727070204083236576104227971874920317848509169891191340441776950321181670063667595554122265869200003400975280989147490011488226103146652844176237719979427042043845654681162929430457957658240651748386647371967847433618194945051920527621862357074452782729400370279890285062012167703384870063805065393716091839596056777551174997392261666660277918439993018275852479238178596417298478183968694077977540509242150060692520400518873411176078699838019807956343602820142120477196558326619118502688466175590490401514203138044190196796123559719229453543891581516505279955309074369570242043727008941291771046525796818227664085900515018538951707107430148429322794360325221424187764537976526404682111111345351913461143016989431633716931657906181126523413379914274338011508192182264193054376056469616925522908294885550669370217111194647772299060479366409803937583159206999229131601841188428024027430259697150750246850818651735652082013536340729443059063050296417278396449584674437933778912349530483994454193636669860056702331209042505709100019278545534734087242977462008390678476222416994674185300645755445898732823925258480109281373913047964937702347303077335606333085300377172915853806598698105014178914589225839171325783984813979978603063818655288657968333296120533053828146302442194827177401180868646754187421033320165000856121331468150114711871500599982876349492387281659194451207466178394310625797139294163042765649604680909431927247795732425494608035515656904675185804695211807638714292708277112427663343767721632745153807307624767233848973709742336735244771896500357120892987265999882475649970991887853302705343231116562554639209925583167332533510717093577045802153746457582657996734346363719001104303200920213446679303652157242391540626952266267492641069199329411714790206683079874317955674907626543210860673562033722779516214791383725996592008743063475947723140274263628524709660695283432817368258370533211757941085043281888275468474955881967765585424079373779488138263429797649428151017790584912460911564133536273095769861444248147814141249521840682706357397205615813463732176545685007447333984543928360878783595105539540587114356358420029513846641354364617487554477823447483870536144833443433627969528568721767441336892264826504873466870464647112367344431134766666772131869104746991789970265482814075471100877747347291695398548581170029735271629231025758684087695642235905685627356978939802596867578907346934767625137126992280342164192480384600970760803605957503555229533869118750431659450645357949659766764981171284104908750781024376448990301663511841250581859982519647688894657865952288321739366225004776629964733133506647967359581791239243338957262664348502073552780325001361264116662718946497519685567651542603892592624572085351659705249579268650204299518769733517470405768808871244327703775868335210170722641693639628387894454280587810208100502031333825905176244977205460282367415873991158569927530761372757386941915917505715579296211240109491202711566395964288115563199807720209611883488825231037245692806040306931008659677584679667947565035531744401639071266425035879055295080797983887527964227260368331209630422838658787142477936921395463117251762956204491919143950488091645348334629552926871401713373432118826887801617385387780812905145337610893108223317505973166001135383861927868161448684304922781094136633468919547103987810956249903345856299681730226825868880834280683726732052400926736319354474326304577854969749585866220262745907661136655831819550768437371653522141129519944741362507058946001391542529194666566829927977905912590152854794620961675962472444144743141229916413295489578655555706256399145051919880552552231759210313301754074964448155807589325805943766753844986873523867986023204826022017725116466841371148116313284277366573110486897208863386820232942358342223640643312220027607383092657465661484817444480067973793855913720143753622578923726199402866268488546950273245083842496326293989227358399930049116398812440324958605423646969344497857584692933974830993709036861193714086264159762691083757767005278909678006322134633732847233574579857744098531695899748807654050822152790649599415554495950526492340090508097909450721058200952918291082471679094616370750218853312011784616363431311168741746494421766100011357281625702377850770061559160255806396893452053994094442292301017356007446816800758951966786074939341938738631551927297462224247677914116141082596077881351198727042192604726069561622625673521471219823483112194947506619315943264929428758727275025111853873143813944158249881951794226549144625914931002877853459391356979769070169136055284064712702048086556323719180737389840998355775315033290610785931536258061861057682994323614730949518563144483484612491599652695302629086268669713975347204768023198926164618167952356424346883877181799144840312246089438754212720646958522385219401060360473987854638240753935244024113721904619513160515770789342572143492936820728732558694517021658042740394075558928673627650354045011375354834441743654624947377105457252454465606632038985615719176151231134587756435654538441690850204173881173467847532555335129788736661430390616815343075725486447122597967834721171716028841310501507545047674163894435394696461459230079668665753535358840053384134800914026469611410895860740142749837476063959903429260907942763157565552872476115338914941384306614795948604732182709207377316706417179865821665817281113516162216546421041288177102331738073920567609158228241970620274286870277677953544394074524409372756298396179623986332302409194088986748473828761133720953422193004843377194951230488740634609404212134194170883265222970751532463196256775301191249727985000070896431644374593574702726195374304058241634685137989167685327803655624954265813165791794116273105409396988820701657044335927937439598150042869966349354039293999981495809387303587095009071266530149931624442506930879712360020318695106649020526808564024232850258034907007292691637405684635866393428059436238237309748055004510951542959944485339666878771410829172783126407569810665881606564108725968400533946219205152480696712322553005539793442842980516552601284499347908147499192760904713698229364564273925272221153550412929871419819748110283147803174295163912844333254205954511493422369941959708584167302059309901783155924358667454796293136837656109429711724479553229810133289635761838555832011500951865063548110941718660936252570669353763074153453145237531365187148814641175044646595924484980326305828661755562274175917267532839443243960087359299342630548041779846123623150580126487606447588602219318381398032348669468593280646596880183015467676774426439161731033928157762999256506271209465481310300307400746592368487450601938457575131290361858025691046660405722798680583136878137192922168765194377671954000528200162855287161853955785025251149698718813142242772685115409005669460562179478443453055257364536337551321316202667821926163649493714715242257234442844249197077774759861728148576854495954464871874060570251299352674397449315248146826328804875726643574198722983103629825676585948768289424472888619306101618870884741472941088570980077189086929084636235571137869315489206109043375431082806251741223741119287772786059582316001353547997892989643066931555432080780083825424519679001901820115277310310661373032699386642215645016949229624441898141112275316171252642746105677255880874357069362520987319226421594603911921083436957163886639641671243479409279617004753738406517901822446212887060042162653733800513598055424877781066860968428901896406532015395962709321710999341195758740800356297405910766663719644917377085845878136329435214503799026107737129411059994154415011798230419620594219658927099051469737120174605247245957972690242572020418210333871528750670729550449427462863726449784043827060932733233418988016212950464853196967345043954848844393332438186216363644759241987426983796701358024010525061352954301429709237995175913321604820485955424832097422218635328001700373907192609228419995606888667253594886294299134673270047317491100364711150567864289705120712883427870908986119981304149739446673001250992478173395996656430973978010208816068877905344003611097474738377056759840382841686648546299929837429254553532712363543586771125255900791854258879365318703278345256694395301983325643140601745242366995053213829352304259893107444717861294648446383012010423677619972842745822843246986757132345140953867546912330402018265197076972116402393840298901893926967584407316427578795040109498429695840123685957812760624673804643746875106910282104296252080238364354514519723669825620021527952041221574511345584356267167583140335432561544556326050165923983230383571683623466055081472815926489523026208069926778681801448909694917288532550839694774104647218000927403610543660472269226035463848635567767774159438976278119437936404670070466535821435237150457569005275251538569894087992560508732760693748292382947549951701201700562100753606575224843885559980931654595649951630431621138706865432225892830583697575659397534044611380496782446661280020290447995089968277222569762794293026509379176273871078609505156578602370405959609355269804108584292758152512829600852115251064522185262852670092415520392495967567440841368282845017944733540672570602877660302043005861607524318131802034708195807861234911164471532869824099305709181512664430185189043454871493214703946494721257361898839682465452308311543224342577770147178195974997723169255168520476539630491912878596381955823804301865324367719622714002767497482717769419094363020420545324836914440733479207424400944018401829888510495788179224037648485226284827782839440923623682385879733313769870830681013205767689252366122330423948443162853096126006765250846313897368072672453070753134855815461890287308433240736740820509620759315951715796224325010151625835948540793003284305836069073734209114169922151927549034470431090499305776111992716177858190275471789696503617457146348362994757873271924247386910607310455178055240244213249847390637939572856062962280121384877103020428639894520450872695155804187290248103616668291469017458327161428930800931277711343919181537261155064087696807087198621632941495527082066949206969151145336128531947392394911210414989579697577659174665965515535766815176574599845300524554218433154642333001310063790892250073867325279063422183307296458709349904729501005331962095181275700607750629812793286484362968057220461831404371608528798778345338807539975834243473079414900486083192677840623919095775386117760236541175314076592619982482258847667264999490669542768889532213313547956965615776212314784383870626035096789681155926107202301280204642014263873681156249996156651317290042686422369848529029940247010728599272856385571606820390846720818010727759658787096853171238862754640386503841046206926062463821568351603849319247896328427757827194236647611132782784092777125703243608163438589468502816729195795033902156925618615787883031113399022060376272465737970641577491554547753155134415799228094931270476211702270436187995958106899019684719583212819502939496182753097060059355900787011523521072809346562951655433525162471902714221541996328526084304285755952543628589217332835225613509528111584599992745095514497857251414985468489628532052788786290055962227878178489735405832158869252005291067255009419464244722643154377006735236803505507978642836331131223756581558684328418465158084072415107927543386108369520688279150898020389804242347380310672299434304879550944320044504650545889959639654598560616002030712232424853496430042050583971527075325549932399875308514689643829838550048247545550554176802026307655640804779300265488152180505995124582201555596122570902319379656608498937697258283015415099554392266235768563159087707696040414772021801630672724782311169950641373854367144230348173240801619688160517866802240065551143527431641207038364401573261790084378422028482961075965680253561003380028858022823050629421194008556752638168007459091332291312220839047955508270444162027321840791578262332734447500723490330054892490096218463976665246192542793214772495944637820244236120434124735631831850792309435712574511369445039994653728433233347012414885066881615146439550640362884987387509840495498294179033341223718217924254035384091243317860929184625659171764323245876136730611165198900206316300424167753679812188794364504254349142640151244802149929422908430996800023802338347154131922864793663247300239976558319087945827851024822814666817088973768753878522114180038118781788465351518377402222291803567753889706619645033404780261338144230281045638157590758795935805105936795013902923061470333316218827623993626391051531662291577837930104629409723087680412694952951792821182998770422770761892054463465823474970522301715791029892618870863750824713228109842646314042952958987103361412806097433460949301784048087010911330659285937982517355924663000440964960433703908593549760737199367328770918041887299081176320324348828872052839903139619883365552300820397266983488396849974739934002460268331220830024289280487093959276275426805370453843000464435348269597228020357010355227330629702584817748067723072060727108583627058149542127039314715789185612142447453058893907291933286017807196348558803989206908503708816778400073817551080319357236080445423963713965793931084980424579888491428835736522035324917245613947422809560647461384950869145878736617547936299051855385800044499436908616006550215460076818416261334942452356608340559082656461100671607633566068303692545450716371651884810361113327798262868617346944114619892647511810148001070909846933502846678962767312216428602980401132345351753905450793824837574820663016149599112569960114893020808853277871804697779970659754031222463779900124074239265994660970903763782787981708839947870007246270665073246246968182297355061638790024886583735078388759629782388708749765019115992990809838260959983145125815481789237375438744492430119755438318004324736499405073605819378359224086783905813471702150532218485614205939379882112730868889349786222826137806105430106454731465442246468463642054455998148449545897829973164052763758497148418637949696156828395489540615846009942062610855587252719459518218056292334393398204321435776014696309920737673338949324279452855218432707106491943543647452542062371599299061787515767871888551599480509408633128108060233909677643541904707939056437748145491806627774284174531802152537501304186092421356383511982327898715294262033159741849747988810844945170678752931783158151499844766681329749250760499937222899621209566681590056232836409024734641196866833117530852117770229001177453844173424527906124760720144898203961145414258906869870353585918093721149279611087740432932212223056564967991227789715140209488343373640797655556089833578191968372313214473987876634110819899073426316009536518978707561234753803172374299765942709401760693664371585102526211424775668760946159412839054041405819001647147562166240670200356426099217294864980577016097872336726769244219655659416366889157557479287971280052370248040833393158103815280951488169963248736404783080253757617243496109491964287514635492234433591880101554999276013527185793373239954889164453225323052208412137737758309476764851246171316333959623705824013090519107023183175150708344640454431617891420885309289209332782540422883523669606667394103324267013728839048369611178517600212521004046141232110725276826967264532068251039549126060606995151310417988810932283324674128166623015667251388409699431573728349054778272009970718469594978708066031809199105058230594381863963858507510215021105746696483379524955775230740374471942326011657755358529497825458953583020165139040858329454197825971811912006245292304627872369096623362200038665756558544703577743784080943598554774926568715470255668774109365810743385988245288062886831364045268726650799025442444152811824189410874311880745772995177656492780288082508570900644463257366057084795777063750185423460059293927956755038736679858475740712000467786084302029548718416570276815392178983279906329233399058582011097239898741104497319484893083287615873762121480935887176899858731265345678816122850699667689629010299047304258748774710721836544071937888569551137280721950650426407537119308851626253720235008895619539626949079966922279383449361658754639489181306525036836089684068066150930970831008131925758405096563632043487021294635216783218411454961490284218062348952178903384131807288564559972995350622529520029759746764462358237526690920423731912877694657330086537975679070017385713363672241533054794474125805223005443956996357039391791564773663982609072508348312256941104030210684464648406553352174218063412178439348490290268379403218613756227721862483533458095590319244126256684469898105403319486819688374148261336498096914079187043830084540937222631878390628059098682553700922587597345002012382264852375793137812685505983110341309162720703905731295615978266961816836121204108046340759631192615456942329379213063612659648056631752715592609607821687222188389594279402343134253352331849370780856225767659972701070525585788540961434174401332054119208501197199147840046077708526164909082903552270849047494295628158498403897469198251631305999161242502902959158231136915021966478421156460776585065381895513885511455115299014595975215722148757508264671574566477147252042976952980357318806585211417462880681386497667117433127617457745797911071293897119685526866890040080544965167672157644786965990710097920888482807130597089634604846994394222204646023754448446999894499112686855120396176363197847937149748653440310087491153844155691376867335426064846479210378914018065489076731361263634692178319136982468326994029837347956050275460276456434574702437940817176115581617111620362406558958769927809788255595694784940450791779895935118437941438543907454903538076364815273650381158716384975980968924244344023139175759334552462132865644133209120347051562510688378496150354448291327862617386925620376718115230366519355877138056289437513173319880090736938368497481138312545552716975225756002389912812271980185705549956987587641807428509359306969555761983458241626910150176682764864226415823427342272377388266557206742253667178599405795600485775462116104405788513857884121859916866382852162519565711710869976007304178896599334801928273333591258959055659172318158128150651712743265651277410606763839297296095850568446659514026590741841918012990118538966014784463869051499437760214382008824198304835727986375892922149303396260740162110595546834996507489082325585005862864329793603019254030297603838107538973106154849077121488867237888108914150816874140872837573062419316583514339770485710613738860309044836375482995126326362150114832695031768145842947201454327415031940233701108994294791237985747364714055641264258398120114629730009232973658291925305280883593466723015429341872713098076932090268477251770683294388884663330086849496701939175105209845190373936517035084982353624994998319453954101444818205403693487599890069169266087238583895378729296897844366668718022304632703312724175587811026755381743512692287238500203640107642710291574859006762981028402396645662767483675383360074342561936351026544208580658971702959221803011674438094122133579674476784661948512905045106233787966507270764717522649748224836176828740699188963698145227518298253456050159449352235929767077882287270866372207042266003785763696428710821206314250532550606379574971311003998106210188168551020093201790502777563742841026746029154936287100228138412634145440752841231891754096681870537811981121392464974181953387115245677559902931409676821570438409597368138826116083935696743830571331771967980747485724281517981174817796327242499757223260250888121463041787478125535039444770453073295192836967962749733865285008461505445016379454201794949583533463529384227644379107879279784359529249609576887411805342411053964771630412527043899076315688659790684026291565013064721356464178058112181356214850573047906229829284888102121445553039741696958541176162226568371524708234434213403523730716732589945012952730724102436316275691498190553621851257220007076781112488348405243702757926091275823679712679933624524168375474908483070048716617495007146936514023335802371150404398434226065513418355570970560989933423197712298856179487094685544204021113224392930178475640091703961000653280173554504980614839685054258924877877895855407127126423148420323016305346591371895413236011677294121343554130392858367556865412493968830989627822138257297645709826161695049452368881417595746140090770560039902902875003770824960287073693468878316121074637366980797633130208609691312785155115641801275070584174111330506408495073251072111839555667571672714814731368585313532649456923617355233859782979391627279567713081038699832869025393761723086420849104960109718076306895019984261146909865004335604094636920482359438503845344249263304960517749004041189971004050089750074146841748530698706102020744193239303298464235275116726251505754158577581883453580634103571577667068489112753694123454982567321311720468259478743100889320644344941329148991642303592632503236805685221144622572748170065042498421599897956832686974367886940742881662107886751598479687365226059767554293683721490356584314708796142123144762772381863534769450165657336201751931551440479456133010512997213920532844709208604024437300855580760613300430864059674233913006474068281226386925213112302603948966831841116160626777912801022518381303191249402188368478824028907575610269654961631660292557021457603079379695810999833062581761006898953619677653571085090203084576986833074455861887142285991058630793599456275283549894575839605910660127062306310346488833411128594830009471099473731707497550484953439601645771152543528662616087404801070816885310964227981355511615580615424436297904167912179293239871566260439919994023601288944195097450991385240814978056943457709021101341094406814994030360864283406407508724763572864600595865081078717835277302292578552646954258001085535825555545776980687861698593069451805956458778557530192541933149825706682105606876143742736703259648114608637777398075169986558453034566161917679891908830860490873963111723856052369087718042502019494014864942932883276047954028315925550043150441652449670490825697912425357717881751346131079381363024957980488672627523314736839226076120375914282981360163773045924024938856115414149869136351352271435638243517306784922223293202185591124744670125520600616569963425897037794531380941366652504578143272360215986482723929941205146833937628504580344521326065091378438123853541928530462985083252234972868256782324754557472216882146255899760547176132544528403239174134224658214466379013213086920784868771847916481382044528667752244841559537373972162196960458478165755466784425483895845759158811653478759496411654779028055727078236013310584490878599672076723843019524574457320248518819148286020550570088406327381478426784536642386502225292806295662106161070574567232968259072743698803710293887083727238113233462625174224392554613916545236528722937479845120209377019036542161023592482446388962431591238587088751975262648093492710634842555034876811270739107041742263380139703867614212123454167783956101141881874342672230245512432065326406811450213756548179772926762457033894374871873657068643779252873848269789808376076837748561181833915020219671213170066902390099907900801595908705734641768226629504530172799783524836221275631837356132999441005049633961926369026765153536778582272426209555353113419869430346237882776898663676725851878192458138830473797549646356979215174042186305959071618764075915307282005854448552922035760016865512981754050112045124702156337955988908510986542321884288099380348081274391928249369706971216471231410552946955930766911668931599982131490321821051315925778367143605788503502241029047994465698348380340649735960932568418046111261370339448661159934397382920404035535455553080170210312001392705370107228948957428958501574772314610207901266912266891750448556395611762533841884604327536781381415728649021511907461187699858559359938408200340715923966016460073996238244232046279229880707465385769796164300487276155916260433904786046934611372568635923549830191254125594968809193806553961833203906982284646602807222592719987717852937037305306528388182941291804931053450074166342875041384638272172496684641861889531441399564787751606043648967836215776022152909525031415802919645429727387195178510162411931535026905163282311085834366103803413896205047876875890409971066793139291690264901680157294404318352125564595838477353231535956456853819712534675832185157999987844593879899119870211432183232932970638917300899338238676243239205785485680129631159594995114927892610438802201536216582247015679791104555545337039039570527384556985171896426335627635125420882477612728069726701971575121374337328313524403740980999521712551251982957953882477505934797032018436978131147605694588380384068325820682789918296056033560310177019305237427348692159697524173713661259230363549505215789193824638859079243884810676174609134339698640628426520693813053003780397403709267187822945300704077454007730359306967423628824449178479043834995858642913215485147007748542885152069849217229872172302343226211763713013526745805887268514774390330435788268645876227677403487212275761741381371140270831199867955402057516234265001204388229718033906898899790595866619233100191809767096175531029234598073472413824259447717543643206149347665294115764702430993414741290423858839364555064370978015228910883439821841541505745622508565211757964687016435473118620810519364358418855562426217352109172687192424425793983447655876346737331039137586703080230827010078821477281206542651544238138612617453937895932775097529691565939969881469673846934384784067637936479608375403429877796253404701693469058366565788711614133011443386523030195449621445814543681097769611276645190934205039102703896445255961224901946690572938249128809584145479251322147760401666793724205114740654654817547614621318954437145531827728946346130040069974643711787464118132440594576070081210102991758580839908041847642919739535322624615244438284729232729866852678814920381417674409810330372324877700650522477230615018542024653517048321437218467525674314472358295843737091996401921306432620574602354514123968567641882557061002089093988151183414172485049057855312825067048391546493277251432796100374589533843412913299096541993799434025691840397433439317323532773482870932394606263961286502049527473901403337975407726753887412448963084108471365701842706283322074338532943147174966064395106422515113155151123360927293735142567876913137675874580176319480577282387337023100573092787070853989314054854209587494158237407349349085232821150034690751977837048177433122497113631219965775934134576548551040574915599327104911855860396172571967168696519172187499125489233781920377086710132116071831766228620684748548501563167195736147554481842217690933816729561870932954704817154607787900497236571703876607669276709399916517512213897266003477394207303060242102267617461439899309280082230728149652987552358735139217861229858416485395897986661837140684764803271277251886053751060036288056214430993284381332108916475967793356029151593520790947656129008740438919243737433213253564318956315647521349514286652018759453796138845710611682219450685861669389995238236266472215977727673334226727783115140564497260780740920384680626465145518704641629014493366511323066171014480888605682587069814843425151577897235963570420090228287721911247096773635158334463193273688400685207355487002582200059799933425268084836824713266459065534570488519872107942868280362956250693426348616946658138667019851638687430143904563565439564014276341939307434681150158926655324235206610218393497528050726599695602233067542805849493875675295817469306126011626004595890234773306686696720996430113268801379848154873276430706194943653739811837805873165693610941375704853630835157266298798636386386570242560578998398731186348125406181678199213698992679696685727593665191474688223562690580101759577116543393821004582983243469405663465405501082743421926413650619472963163021039218870304826621471060455259847322664386500785356094850905773403281849398164386770423922639751028216985241829939912517532497465326291701293612018548602447748961357374767694241703404563725263765581640712801753403149666329325248501447643814170039202851559971018279820246335802076456439857805854231600061861316246904039223700298653132546998069234114454105190857468983067783620890767056262555187002948647913067107802908028872663796937921681215443980898100469550436537306753995165408801552021593061626774820452094699706795255276047317557890367217605465201383884276428793871120771488462821834407144713254382837818723589788374413392807973514254423865371614018058658593544139714422638726575342366100267347206081310061468569877328738164842495019962886663078451090360270091758788088663210542865500160579624335751903551196101546178929974969687657392504238342923274433764370262327607353723371966893042486690734766569013175606069324809482150758484111226047689229168235512936949524246044971118458852977200023927183824742344462789606424753184116531659973762012451248648584164760163187396275613723028340494679893951331143327295766506245100684224033131552794621212503019746992346520674610477239944225293280650995491196339065898322286345476194348246369035846783900877491439443297458316774829052776377212148531077627330889277043748501978352040607724732431789888000975956740890723698026125395968037452954197165934571131436219568631676179581476725856007739700140126204423975428670485764345565071773041083152300452332506940122488664487650830749015152124135629049221139745149926504708390471728632468790601516138634451426931139078674724734193883568028449075086807421741134880407890920935693491551043431898339130124690500373841633666695964279501738550610500539728258049712436873663291578764142878771006071906842756074641595865649558924426883951508649359388058218031922010938034681689514505971777253021267302562641298470444507494937395721977297362311085425674918329150753139324773362838447149527701449262702111385757552534576159669511352211309817564531525133097300893689213161760221709548608833002571590992486990275205981637215751117277642899791395578249279419244299492967801513921695968048800277297560040842209055318745311766845367047816841737541729824202949521806022272358848706853616810655315503559990437863565387969100606701171234993244905692468940469321921891950818281698021747304865554076249401927608284305490043826744428481677537019827324769789076749698907942555235375422966596310860306518252287523453734039057371283955201858869806019377412801589688651216421547911781503178168812933926947572141516802560901216561020622580434743450905676512147921329364827504704919095396723427311105228720039543020195224090997417212543456593928973968165479128069744614059484690586596872622650710159423206865166196962434258246222098382917541151964882508237320686502688971698327191681321134427214291823998631671785934674281700841523031543641710103600145285576981075684256702407897058151885289642307626370482036178453755138941598633707819294704686823196418851930742572450500246854550257133183652374178424460941555497406487876104460685578358315687616892691312804263387121067985663054789023470029476320749521931377206157788579849639271396213073753240531578401655556969281492175661313972254985549996974744022676377044810022835720974520067620152662605461466720650112705667674797608918142571313429287556348128285320648953732332548677911689314126854195055779275598152819604884801839204826372458240048325018221409245186733614673464932775979278578437479903608267096829333215061804548125734219357291452857784914129550205093435789346000005005622285122548251649150672193867198352962136555674513880893762900884603431581167958531024728830327449459343848536833465802324803015591900480652713053498444748970730984393489840847497918999562105376094472778313994442504451794904797502341972718062874425483402329878249708876329386916283537279150929311213795814621030665712239790182055937885280176558189812164426067418753735414372085501797049709201929998255374969588227758680242253040482958344050350473036660364026760360957785746538194614406879505111577228841006297661312832287549110953585588488111825458104652520064469927347475305951500497834548627047223892719065079699274614993788805676455445161375881268291418068546213089121636515289780428568469726503731869044407649786849671969671464437789987292408893113183972100766650497549564298532661327322044964952264569811409952274327740727953128690500070690435288756067336525619709191521436357645402057366827780434885888224459151179363543750835012293105679281719558672201553326696527372089255327687206440815397512125980861846904555410227517400521501088421877384062488853776404358547362439224498266030198536636372710849323079645193559577157261449668861986755653310273839511980438824112671006007512777587242096185606524645322028911305151879636201169085372202009455491570920061671039069166015190638498650080321046548163137076824881024244039798085096066186792042547492217788394263404416376022286494431846395457905500487337770898520553974041911373860968748591253566709373110681452864383014009554642848539103217448979028051389224539412740867162434764810716014777226100714962972885324958908194424814031098737797488128847073409302110389305278753507824882284047068116122676866357353117274553492622051110268583713576262749503488455350773990650166469191995441967555069321523475610450071854653445663203284122032594985539432476306614136929139368348261508669299163756459216760160738792799494856647428707050286565396544653389892332572128154226819166939671030640549387436758839701340385124419562758812243397069072912813772260224573862396349615909848214006140476143519318230402016498279364358964811930761210634913200043207059601952082947400776965432670486574461102047274323424731746589096615847165759960557778549958826584017199622674581586967118038373163643062632825007174210033531989270346549494739965368284247758645827338773504072385885388182890700200253187088318423568011321945773704259940344827028963874158019475927743483451476692123828486536464477781271094939911909892596867259564688844734453978493731919386945023553394471183497383054380523726635520033147470002700666864742111448786346811842459446140269878308693312947230298198753984931945092237010187226830570732038059852352296441126035179642666572261566942367559240469556943257504744532988569382060565642347604113242199943164985358823166839852371554041695803258392977935448903544441946552207367476630535656278131066092803058849190233425275484742149946765383936498477567694930611501165940790507395027866436492194380051381581745459728874113908716397810198962727824160248524309298545905732969773547056158593470562863789344343814758034158900247615416329700067092359940894312933568405154039716492889363457159483874752012209850916596757893766922692327473333985100658538299277521602935946601924792057364217891741264404551966398174343246639486963847194319625484225202688151570473469347994857997092112011705002209298203833652225284060964677436430632259154568323115745933264878988319829076776271704926988917907728752091283953808446259728616670356255940647118043446768306787980715878024955816409999351931576010513665022249018385364530947990377466537600776296908274379723305422975440868756212954726023278449984912805679713283766026166476083011223129207068576923844725528628991200936133352492810807522768768578032263268700773421876205077965295604150581435407495057069711922529827653780612497847497112781349687950367208748648186282362534905392452294255779540631478489796607474525428582521445741095715012032306261403213573711768739571463794371622650589726678724501111186773979608821563847677618953097797685068479688725433300309507846918270587200569419345377430705140047214165678813205806269728418815349602241392182057178798380857583604993622114022990910978904739822629586926804871238187715992375193610113855914126028531023026386583347072139983736295094722868519252455758370978684928130318741596566660993653271310838380237244871870364218916142568019735151693678680631648850948903071830876936439026031796624940072026556106061532670380273553361458379379050714862661149532798671465271155098354724990562485857319670880836649035214525966863518503984454182892665671028650512532931394634318170108783278736117433065242970841867421819764712479609683902983825873905971625393164943458227111093281272447889932973124296851155300666658670899593060561876648981537706553992523262241162710217209432113731800247097664715946478593296423718217361646285595812590438063066923316579025182822671625533953183892576868095195500100274492420130200350196824834072275518848032919579463617249179820572536842130802196586770382895025767680589149214128281522514687752764685901576662720481893952660623738440265015206467466845198402330034195088564519247040715616579550911053039669473415042446235361726308291011234255407762162201893089929600469818066308707912277616637721991811333365593502774095565663622108183557522157022032872945582626063535075510504870258044995552041626684439217962273189461210058318277729891919789917901754985236682570224827991813666188590772360813882251424541363262649097771383225995029071826933505806847768804484455210866401018775261205643226165868390105088501924736813486442389151037372748875340216882734440163947627804137444393993373291359087751895967742795585014918029137189255782984796446697267023444619737992938351519418062279829743036552624795111237507182265905903158909117721191606262038417772017094277791422250543650365674986240248880248509400111757672009348867110617584961861056124411806002612614793088916336786197024353659288566322183004060669736725920052157356546501904725302227974995051220347663080699286031714139833698267308135315656185378971748599114895710934266420738647079985953571182988150267887611613527030767014247368188680795190457406589325297642582592507430509834424529828968807203675504878384725557666262666840028532698012457653550700682213994872060924008020413173080505383685093632063270012745543869921572560002094507570486274866969857405667941983131914920554327749601574276991204823978740693854559222666411289566816693261247489927239244835766482312829223097261204475615057445536199320597435383265449455259190265005604317405664401604325929845131963805585827575082371929624025452101591824263927660533445945361130128816659619848563902789157636413404913917434062599221979404790133504757392045477442859343440872049788457289308162503579669103318780888120971074768446284413525061165869080761936253984464559147159693947925725659569966336508342165504624504737027357673829077336364217499643176462674303610143235652816916680892412591810445109381441331622987933140182787854895926519390036311941367404647044763724339725121106695108605090738578234188372128250161728636375976421006673925333549663798502248777389010661191335172966113982006360562371455051983539629820835998479141654100427773762991259171410027657585473189399234555153909198123906045908058244400900587109181413343941046715448903553254231875442410476793542796279529822163112050945272396454244361911896504962470917933349941656690097928876192777081613331282531266401278535503226413243398239888551990650464119397471299157705661172327868593436195807781957764218091975997858230612129109875465816623256079391547011797995508880793179644190402629456927902755681802124064394917240661596328624917218581982886434852993993173609789012147250244112924750117466361387598738953474544529204265818555223880873659750337631792345400147859218734313094017651895325059330498435476867646661590008599058203778960524259023962099025022076515267817386899874439520684399513602285439969742501927417752825389829509163867154143157038287911476163117247009185603427274283957738219402074216560769235767117918505400093247631917524480711575592880263294315980395901928398965191719315853335980737019137076551744573579381605851161453090105930299841800860405169353240872606404522219551503565667909113295788817596146877455835862575479946616430852621242206492569093685290196705963110356384356980933354910213680160721065253103933685333112215919847097059616798139429206773273003107260451366136190212588749273780903513248758883937109410344061076746453808658758423744323305260210584663844405413964540328282387742593713628255806338252794157034230093573883344607198399562391705228505193752300767651028340310323426567947449128940400675821075933809894527430788049616929733134868809859171060260626829991203416585714427195851765177410756119433869220174109520664905627093810678350870393511513542915730026493865289957537297618606412017893314835095332231651443500229612400865027799328556444800846781957933891481890753147440561696847555797073249131453047888231486799601916706146820832750390473401651644831096414357764348233184928331907107585418333389190701632326335382851032806267688415307177194150448544999925417864386006752151794942616624629535157398050575631019842013458801438377180264838774215787810135715147388802001772641493012819214160319246450006908694788183157566075072004850163394842663865703815561740073026880725465563017536854971864243241340954397158394601937597066633535502213528573999508670918746771564843745184413590805161734204403970635218939743966713670523050919653491940374209407119532700928992750817605739312262306509462149661894146346962276385391953099817740500394417157882075299771295642798739101455902501352663271090968682424343117440933729128824675431438460810796019125470953894774943505269491902701247355697933160295732831079137184825310459459378999185608521583755389550992872605171978475025938800116628854501184182018603454128231136499854562904255206688850985067021780812072175457778018930087840716099498889207545738020757293073400047039921055352999629624796044722480858516897642453087340936875889885768931977700185612596901702130091457057092573280981596276494710063494602693839607206932272646091421853235910870468691956995613744304634443812213887858297853217416982546529684763010039120255393150567632186535956062932529358223835655342741766316856243037620955574616941946089048360829053570506329340942010910507248040545013434778424106255559397823146852715326555337926474025706101859708426594671198585369566712440035366694876405486866728884559780904840043496433560013611071494942131228385669807650895098204451607214390267028459792897504735854223035258673397546131646200175684772306343025447332077945093977994650879727106616502459269857973651666337079794791456078591111006960202479520324401921363212128596295652306034874029442201936423193170300841984451445484231076730863235482094916913274027007366072558793643834783576053543088614248717880753035889414080406900135223599579312186595427286091067575568126170585999305151495988563144350919928983782776921840835898877886711809838843665601302563290252810552440710688672203935393747171182606636681935376198305440941958846804615159590075929417332537668667470098808068202810309264263263555875324892590579151518648934737486244203125017056513566936088283013741908559554252926682988302044284804385226998353987402854733531932208948880540139512108080828067743837484694235366816938957614959443176621528364082964840386470228336941452115627308218239142499671653502289537779391851399759839939237661543852014585570514119094471579470802343871379559627899904387977500819651964010982812126829156475431250194820370324339014372636097932471572942040765529805192596991525238492392864325502843700168008745244345009971664011723802937183203971721917737272723419224746790396690699691480187051237484649851739021572079156361572730771212353537096081659459225087012704020286746796568537697358074116962843172704940391618341881901672660131241638296172450063714918621850145350269894114590600621424831080637752351102609232245717507175874150873215278564920117497229637817523421215171883590220783283506221878459215897010493506937712868135221054625663631565150680797710211560566956456629840451724994065526376783783484744728213000958324296861479511844651102845558861068939667370699482144867916984184249126857684003275190045816913882017976848815998647131956635409586438105693480738357224974759668380530244691724266839716268022116341889157007573314672068668617755673911273151813446489559893021881958158275185902027711900391498573986607226556375268423985445463118908640275671852046839147209481950290873616766893192907107537569151394170220761126679431427720055667925223799456291516329884558014730894529618116957726199587245268052537411947962772762870933008481624399483591510029058185449985934256765514150204201271137817473979656519325752724273514305265064579622486986956433214670526003046991766083725005768583042687226333574209928255584314439902538568782617052198966259297946049932141285682900505230718402130742230560658628352861430640413779779581353746191479458130660703950385198963788515558992415880607851210608137975857431404716498663942747112954642426288664661528175947597920520750395351251121303177794630207845092498355570017855367775787154569830116607632007331365492498485336695989838442293525922822600625003395940517215992103930413063550398909113579595211566300913105012989779030176745652608801794427500913989292441261121029563048337142640590588018132234655722523474235194757313925864054664109302748177968444374610035871254787952295607101376324345121545057859647841627226068268565174176923964916499723654899058332487050790749099096364526561089272218911966732978867618847840280386443338902854724109659751058992955173650097090308650385709760346265419894293377770537085980307604033722643409667410987452343585478021654196913745171198586021324730342347161327314176914531703187237564009802284034085509806632581368127994948283881748722837009121366085987187268172629403043151848794376306996364670656239694622155484862749373513850789586184329988338475157681606913826826340155790323263518101683390223458557347291350626313910764538373219946921902811370653595734143370719618526784439841630162085895858134113169697969084399411046595145264095312602370829432243180481568656901588553279875083828369243439541903074683015012108648490687568340189732853065320003245040424387414579597551054405765259516154746309849554879832010988314633855601793837239620707655134303632683324335110507308085899072014163514885907138627577549808835092444874304373152597960863530431905040871675007185939229978822187061752430637770463149114785630713609615476599791882212516289225088577524309601779419727519205287471428975693620363501280504509157381785708480504834870386480794684868362346135529380062848771144720375551830989307742405163341224920869107133724914134769203275999498057604388446014185277379478431135345623577148034512784498216267360609239951366536781215999281177396971357826561542125395933086543075543728653563230988407091162145842219434588375517933178197497064826962559122684652421098556175502663200322933272176057936821429293523510361412227929437024714318898629469658083645964823451481904106598458898898096843859013151194212564862263507849154959134523557020773096524210317223922820124527133845161337370246687671684483061495418292464890216006109224903675566770808250955759142708641315833844754212761154226189104189327080719148880130238388439964315958229403329491192987721967519320297822865425237905979591627164206887933873539498910510833769508376717719842948503849492454411549265636694464491996917910807612748651793591290037030442572946053294184023581798145395073072891202019997732444184172483076918829987422028090197325290280994877848499647060364807864890520921721961202622557904889514853259225560062419226337121190720042350325407093090756322936774990263134659550753087224738887649057090090566631573456439863556277017420922418631916752097281757717138962588709228523673957380674659407460363566556213472229945374711100153648509766668305465613559336461604429979659937879507326459674253265444582889124888297688251105531393570848021927976976285869061414896253914113151187551047575082139912832040229798191481074965130029950790455256993628900106443984407898893677858124022138937868828766679801147363039511179672181680434303655734390634418441914947646760133596448017488083303538115806615681546499448549866431746633703520549882608583893420178166657725868280178814450882306616102609508082758274154961352962759893749432567396431151471796833117059413340375341626563906460379635576546974501527076268605508489202136449894725390850676144066347041473921100344682432724299030845139265006601517769189559302633926057765423018618290789921435639170219602268351046074346995272469529239787080185388714930465027163166959507735671341431751345445773289184708330140775877964863365085539108711034728295450587505823084919621055865933148532674452967092050537273899307732855940537058305057469755837135483150756635263966636499748690580347821280024126482518862677533828302158164869116220234083148757674092872410180501101826424400764727522702795580388388913396344242495622813389351574553012933878672768438636023599182533582164999820135158916525284185290257207419816178918085491342661388930729430569024940448736281372692379354664712560617470875260878847423873002662195073855502464027296274635408949870548708297455561882031105518288276457189117896496947626796942738911358876732282012131260227075401152407922515429886239336494361791600384578837923711614071982244508645318149339018729534749924973584928621599399256255104065775013322380128898220616455619757016793678505555562470644864952645669698785541759614040909138074806218808618638461508479950805502085839081587768808065861020923383976295589258989469747103474242207384631342666541644172128320007368098868975953277704659308455874479579034472348361757935774336223951306932137876489353182760457191876033399913665854738217309969496363133673482938001911254293685492267652534849052222388567877085831605584986182291938524697797796730351317032406307884464576936464899219988588092134433461909375633545037028172749590553877754880237471915320940260605179402137530239219420118543571981144071294241635711219007602755384451497269726423838210594072028271541040839107823944910296344964672218657535046685175249143843983307465515585580430276943079524911770035412681171822235366569255080270368775019052020102604640152311564878570422293193890334646125023152103073195704603495367050538964137741842873086151880643663569392372284842508184594864991317287449102160675141526845627643745082597540307973743531591519778561114434249608762734684571083315177120861774748158635167256867239295039201791488337773363545516897300374826136061910607676516809643684791536186915615422250035491287578878062770746796269445825774690996722384240434609143364216936418487144146463510793058481813404092998212384358661666322968093728582615873061244330365807002329604909358672062074517954237574848937060417278472973854580102612988943362285067360420337818760377940160649431163593367947681962376311768511699474987318389715018891780541993529934188759906269779803659005236230551670268278891095560632290565590177791421523390552933819754173758039501832260102892347762749605852994188729011546801120751241195887863798438435877087274677471372603704183122137883424928375015332439043229814942441486677371720219966027851694377120502309947457309270814447967151012174424445259050491351836504757703056362249598936146174984463780077799597927193981841698310085952223224915383058937373797719171573163195965091677084764073093790398653831859258836925747465047579845103311119426673620979094221738969012033470394763358130793205164997705122161249144846466593683632963795938350830194079389209835369713730406411798875471917588913984211394074437164172290491826257729751367026520282461302946888036761332890352172152272293859865911614559090026516250940554421564479003811518014950409518164349884823096591144437910965533577640446764167704610633257308602019097657897720512247363490183790940188174162040446944104692831877494664997377668444474282663151223890709735069168924404861944532013364013610139172390105778608245515020842072478021009921154306419816053001445461564613462224422826522602420146124829821242491227740605787694856770029529282386600330000142767802180264556298130043585542439232537229680749452436250658976700274945934416984490852820067582986588734735244630195436503977023248535826319509454115206489811810549031428019153072849782744925488205728645935154007908744982659985969200679695509608982869095359801334748522860147376342700976791211698200056625298333102165816107311604972451018118897388527078505068097350712756925977004400375911254749908282718548336995492562983862894764836812043138695632369281422522011764965653997008399074196010372560755175173596856673001411434165496996889205348684224242052299201943706563155096829931044477713125827139696194668872815761897080559199280578772626596871412015596252813043743586500887146115876053814358443943471127177937182196335357975661709849160086002057256854960286092635934134287642587453242250698884591121226425623691415918508740593362712662593059840844230622461039996937049475215170822376893841818664983994782210191199664252421494989461387810277698313522448368199670723622163297871596801179167939629462721654728330830996595717900037536747174989336928076958172475078845413449679273649991850139312017920352917323650898652035914082208605102123140892003843505263202020835554949690583288647322227121270244382974063400570919134291321497141011357459580886476605324544537343342265428225770775169953688046859672505545394422498488684079022946882857409347589916674721070015074098141938568974797545446149928942859226560131691804378119979637952635244020182598641893032554580156985971659788121829202425346637382582644764640624121177991445960107335735258797877140631482109020001727471536535795979741788501516252944335296048103332198465880971737871253141167105874611234020905915927462143036110022543090547687620310761898965384823930505332996399334036217790266009382436381034768798794632405624253448792747921950105313949747741932191395415754140774100989668925910220704765712420202692516734510700269118523260410701152952589975461558983751890001013407062010998670683583309628359046190278436558685750055402173826886159801566157646872872113848844770757642500573543664658541281703108001621905929199221814158866143173903626910243862154691574110863948255811285719860808195119106739610228992078183173898250557929045003923081071013657096033624951916653230729325091459828568435506679190574338393048717456669952631524308091647923700995018753501686293632251220811962292822146992099864995108199963506714797861523096670906413109626539412601878933103294713172729321278093283163713257321626775198106327743234126872993956298828182233218297327984173079849563427195964165142582380789836876111693178031158542353518378991203329434434596586248333935953913001583364213987187791966778107610752843039569856426232020527833459685073797423856581826564478816449950735074784653946213729332243035785382677200188916824115273710153950244104017138733016309151465822578143337542037836098957395299887842619324512977951469079140828461786876925604769684330429264870982556139692511642417696818211660433800480103130642084748084214629593083212795474247756039506706623018532085917946030865295801707346493244245762701495878525272832352533727854721614456921278103285991840240582744004129151772303080997303085151647966424351941135143841021656257391035599642315123764566670944073973555939706401812580421098212385236847588964368674356275030206518214618885083346383980312595171240768168945895513554055484629190554242662624442582177556051987343191348425098570815970168217965481577257380152594753421707143568541615537735942018343850485446404154222613592846866457508501542933422271331983073866821338571636893212022656227969481863713453645021023151646543025795613474509140052842711923623573072351137381442913911317032378723035074515621860651968795995274371682189684697910534542883946560385447098156874248317913640823206992587336197529349555668822185597758929546302853744355653972748361752254669624472010187014365222810706353407134176315116742339110653303181026118682130564751330412975014975489398884555105002936225165115691571163515544071527845023174968776039284991175364470157977564528742943885333482585379689203203525770891815366149131044517744745614315290303779911700619426209699832607982295722519955682139066973610925671889757417725990644783930686143245912489292140584420852099479612289585138504176565914873438304678304912336897831329676981715329162202259270998192052603680958336410866130975785477636992869030981470980680157938884637486324376148126716335938893492903278982748611998740197841793107634207322646187142717594269030624864818165587947787471847755428024926763921033709887773034007148425929402962588959268386050166253770442290762365588987743451876498313749289326927796159680354515406109345799266548988324064565455942750972492368739814703813786838338032931574461497466568873507751951296710935232802068574957749059049484651852896493239404986720097827164605071203785356252983033639455775562230756973191712018270066006329198869550295552417793494497670959467657613121579772117422730880203424167276112946325628193071745218584540664474498588046130996378968351164783701930841100263056602762189926543691665831088007953368653034065923241704418433789200005102978822584103613902549803063460257786366865558177180271955530426035289963299544457125124261787149982321439692307622095003564097331332321976285077741171633977666321420059730687059421074750303342944616505717405448242739154442368640981985391642415430016932844193073929421186122295828493674498528168932884624144860244670181371874635845616174857839280008462701923603327122248375424490899841291429514545247065347044734962442734182040885959847198543405787305965456414584172422200034490748847258103647414966870754614560639833666452240957498645495207535815680001177303425405906828932348797043178905510429816801406600819493915774861490856276710573708459491987286323772866416829759105780269667306822187250680612852213900547023110213986577537138647193065080802707030867892524807984068539917932219074571261001281861665486722986790821512698433431768453684413060220378092062888839542206604157867230867805951436480487542338341222012464703438951385193720693135632444031827793504846843549303685287212044509499749629009594177892246574335576973947811923873083973717403789444655944346380324157348193742669766627238949992211405124016984190667068612739664703188420929107311024602859320579664135500347919725395962374034503505880580412478512071570311624917030137708231583501720856478861586705117143877142250384254670530498247573789906513873320944994623501355230984814881640692466079860315005473179547340075028428657719205506176802885206589091894474665956280445919286447598628068674314937305764433315941186688705732665956209915170135287072268173980954601789587880993773509604298475528496000027548536249655701512587068920384165133043451127727127554399961812266807589741829444340592575313995842828369063106644885339638262404331441733871917808618207332737640613705057102580802034703304685082884294031906741506482358595191682294863608918887740938711287472111281722308288853703573303167072532441837781692729148822637297295587302107017933718074151897296648821754759631217479590977051552994442574818355856377609132716536250536077361202827367762856340682201137787431434838353992418196603242531595118993154339734662199300289329356904794451197552334499709011999258924315504149174520613834716482474373368830150093401666486394587559628027151675238410827142045541085394117041667564745936760683770812177263560514010688816182504840317911956101423891189904303418073396372274161188870469037357326012598010915389396272242294723142986155511050930600671578082786357161387329957810427634984940305859263209399528049774851542400139016893727230125181002260422481617216542580898540114928006357102047619543891538078571995153296168064856407274762508883097824459889103753926431005035712208629341614188640716119792840662567478435641863873456723878264994935846283853634165889436575755884691088169143347756963511962264633256409241953655771785473453140636296828294656944014718740828957962576472243864631913079148090108446942331990399517309717773341136914265755093704185128223206367869687648816638199946092277952182427449628622180865608877447564616525948506250718044441278046975990184040854149054802021866902142266662956331308329114689148624603366809424146572505757180725594664714805314457255290978568141297199127126701297327029058116821619783615231996578035387612604926496115773554830931467234131160007802006531869169121837520022071587022025867831738848144215935260030437954246734732643317274417441032331815597665551319464814176158787911207852509992034891230685497395734438080322741774963802744205100645375894453114431240406452312831455166132136291362000297462629435208501383425617569058870307958943555152320733976317554591277593858311284483349640716020935121785205050104601345965425385544006678475470195071694500040940282369910310897597478540507246562890439329591629990289745399177090622106548689572067913689412854952074843098552344110664478374172717155240809903395385572080106296239577248273166327799743448115271948731351967437443833069767453546220439516603443094421060336945802442998134260455041582979080190802241661083576809798392165722804312811134433343546427829797269079422135807992024901753789935745362488637202957379489276305641339902894243534919163673652796637171499219705052586159305361956136799777657838239156791917827098452571952614158153368369519601953639713775083158681631905465152552238067192419106210330919295368580433070483300478702681639602245452256481779839791480688886174428020320972695448882211511869790343325973738909727844033930779988605808935961638461307865082102695661687401845242994545808042325509766014735954865785421221429673584664649823683467446708596660707035979400259777091206880431620794314317749533663516604117599008065589489769331323978831292858959688011969218148495128840998938080106335009232297759492070754896700409677950164695146068013008611443043227265613960763511473051152384732867355617658339646270588151559769427608705320975753667945453456877934005859228309275158957438235583399460920506029008808411663201779266353372607771929008484167198294907022003158775985143324642323186603762588385761984663526976913946772241402964010727337743140999745027254941231784966268314002037787498502494257172948274338730508169106266876678949582729495979460632961068657955644833862022953916953481902693973135273311005626878739363646651437894111196373630269353807327495885072230563386705327751695201539126155560364780418566761424899196548422656690538045560966734391673827824582311703041935444049272121649951320002596056962762880707129035450155611683195119274151465039576881576834322874675213283124389242113476882219669001113920020510611418695938708204805420363988629731852918659222327370850591682167701484470267415204926518528461699289816849319414276813209868471203882593918559128295076754870850327296019801761885034488105182980954154009072758868625290474848332051939770233879973897639549872075569796329623768324230493828398264935084775985683750326211405185314374782490822917046291279856236396195536400031441311675028164073445655070065539118435930185575716265438294967102675764809225619745161467335132238087686181296537112768798194180723619124239034395651105796723241137968983473941756661489255736413567820517947863483413738942083824059822041160935250524759460571732888457288577703941384122512460824150074409732579237932821161580820398580997289300488292630397797841222696127058732857503647174479626887277691453100380545594865611384302555002789536562719655824111388647423147244480269938305298107264138882505298181962331637087784211225777169813708398690033357991599878231442802461984847550939757549280765977879275992135948862194350046767834342558041785664831040216841591574677657450562552613299402825405516490467359962842001253398351308442356345665430665101618705626823685673050844101961613215787427377914295221477127048656546378782135138602739457193841657898981115732734478935354603290218990947387973060390118587575906643067790877897679920049716618028866110852343298652818464084781401334331170716518816663518125034385741362055126981352522295874829605158638190717283407874983840690979852381440303085317153227314176622044488625535242097316934285465866646561683372283646407533147828366099333900043747402520163148283282332173862856259307987510959435891373928147623001315072982182026990840000607029921405369441418380264264088278016153269721583565076406775416183214871255705735934636424422881826153188651816133049411531749963487706803592660836446264189759788607307865466141506905571596141726495755489961185108530856894323464058394662740354576440194737448199916442059000916165026621603986846840558325778830191854194095586393264009338437426160726008363441705633979859986114626775550945175165517451982333550532898539303866471722552400399561023458858512575046196682104592732919081790691664777304208050541918167751390015116444732919438535973732220084097153640928695497466825179753338167606018915594320695727633895001146534732947905819299788773458437191354764672644224447120552604647862395195031194642350319359965629912549302738839273798945966016359440925835222384014411374024767556391741493263355484860079528483920844157067493022904260003178370173288800355118387840891358279557980366149214686209970019317517232970200610665236391452234957292793017437549610651695316289352730746753842641245932119044423114454453556770234200220466220681139425724162229919395371541302575788888624147484056131019358172685836883486828270840406273077399345118266275514042123332830996226923568505505571317514925700862532557913112939475914496321488862791150154628397997700598321201780244259293968369264130958815617878657829566302662148885382773200389497346637594020116478416188561471306127798565514676191510694426315796318921905630637129097764032129636821423029366936429041077892880918750093390234690432872362261818520233996709900771367997830543235717716553641379833706895195440251391871376816821490670424708778327473541829831310815291725489985180942529399225714926476649446769610237588343613218577962195528557426569250352333512719503276171747706977884498491607261890006793151734048893049214632221259432027957305580910452640628027305029198592070659971803171167262303030456981918881305848063025474318278106292022706667258292512379525194502576400661733827773418675648268068027437255206160971189914800376510771784633238677364958948952499950680865273955405738782469119481542017830398848178132522685933401991253996908431129480072848474363948723197876902405477129277697189347604075305603556117208300972659281462215205097244627240639042954185788713107641164451949921684434022915853024467879146166579098612846174778770562788551021616969474681253658309386942690593582590546413938095238932657495277323007975250349379044200568966151169292934981920583882392469195997091743849134420318622606670948290816467724634242394919598342905286093416306688994536860559560848993969409724156238303109932346522210876985965661107398727416181660763488135698597977163076711861979536669058725707492742074717030392860483481809155886270786353288769368529486748721003113769071510511827608420529866501277282261565219393284610195558423481525810746870626502925599295293517964491984330536426229460156365724835254645288016743175432313940115506814515922344856253799154040022621485718209566065463571567212565672667809366401213471528042892217018295624837706802293186885140172382074041617233640657984684760596387373540488755811849945813708805803077252633069792002139923072353173491755457050240909448793239715584795169760913574807454795595296490166810138770923031520767794949205868798555724797232842811378425952766098781426353917107689914062441054773126117634655882856592032662856904576944668130262673984440963330390403227043601169359249698398443159095258428314656322312005334227934482376835150709605315688088274820776203547231097058175188464934875453755227732755702158646172048223635545341249121814584253150285071838063912288337978948240548164811299542905795165070660775743038363788235099657113256173514686413480876369266835343994670668234601817762436843892279147870472083539710650994187911322353056114882619685399194107491260574357410877918328836529210761176800019411767683148230263548474266470008014357722862809545963596847837138435261716333203478109004051260355510175848322315877567143160553402086953469761288256235398164209315255312171746880818699540749240923212565903805984477642458002546456326045385167550926046990858987780878701752436160857318097594980000518379235480026273275194701224592657236438161496788406620958469402339830871396160072688108494469894291479635749030358065988861879270991884493953760384299378951620820429472212418027777725641406910898857690186247263339125674028998189272238763456887640260930276656304293219408860788163267733702633410301429445550224384865225093696308536357007731848571611320550361713246993648409407638436433635344165851154274514438179614425327908791717802578748464203784518349805857269382750730085141457499112213967664670598659012107583454091819928993394294446764995187769015171846898699065456784981217571668319303018183146838593631340960846813400005037338534940120353410131262865179530947485505481068267733506514612977053509671451389166947345770536467748361732354517936930654092561115806833092173811871789555625796286417890490801276633791230113093450092151889176483105194149264190151489917718917355749561232713003592783477186668446070395994704462115115093609569194043890312848578683982975811312931709769127746745181934996522732422952732390431936257497962252534481161200342909069414336026997081281793618649303735781798327597076500369191597284276150401720679569458359350377272177218734159910143472734954579733716549408947626294549153836625906209294296767716548795245053406867180428725002448658421971005619551068505268646871541421400859244895330835745582770638516239777813280526469272401591645813183808874520584705535786311342621596189653401953747214819256878474997793275956265706138507767196311229810113875326934074787568652009451625263193854726317743651348814004002676202767203692708327436959537853835983909485879606896167845984758471118052149317966641911354079678371081500115146497004899770079651994678221518173527873975133395211278025121739924303832335616191199432798915109639163449406124034591697744917982475793765811986248586316793928740586991421734210561224539182122012983386349513671626533896737846270355115011413322066697333194511848108179360435455553633073743214122562279585718245340473504465667708568510626593177751987161548020327916164389605563691090941776933525536493002913340690010191977523949473641930206104043883324711103023427514832871203895865391967109203422914384957371211381256256845262293211977158179306787016455421571212335116147826049115748896757462350343829403668094920161743143186084924330099074048373372099759605971004777028588644552070087007772336210047968574871044073301810589112471505310611229176469471185188158287885173483203354912561987084657596900488196153900592467399517640645034801325456426109853665844179552727061744317355812231242070472490334137844175008825145770565923481760974999675902108056418233716557802455405565316174182358659036585234125795721600095641499208745801738192289693915498995645661067186233622123947776865122732985751077166028336853276467582164016587949317809582819434366463080030203632567167983302611594799424840215066846357206056907875350161752548267516395751523085905102080992659905634843057405356900005278985746207445392704065064452097687351491294777128198994359991608219540104075183200565590373629517960223016357811304582934332998119575718330219033139453743769919119285090027287928801141430299070278458353096189062445366274021920052856787612638320540977183696037094493696963481855789677139701474524853037729234693223308248928181269510918061905391743615156163864781032297921885406060332602192212726211261375136621767169563943557629384625774008699178769349211519584416724167085946270898834814812129537550526515489377101681748168844709928189332330165881830229916843821356707327651205790005377645640223483226240056432368555593908207971459846921360951781035673040396959682155398133640990950237404371803566162212323095243921845480457264973990512232453510260032938765318093620100387228814743070539497462756456412823414928148950861100308644888221298176987202390271634910514141924832371957169619964348779372298099084234076630932576602950521005298132662834578545053161613071872578176773576999551998868405212886318364857143987529366794659802300734878478180058779782452758150173107330205206943141838494866143262878999366018600980834540592869693881887149545947332802032074244054593434618960818309929296219062456603441095444106675007987280782492536763705538663707718514576014088682815016547400126838987200305848660072404797572394139985465860740969704541199767077490197317500285252408100243703068161675565994801461698726262245043770320459040022147593967312324127207918087845806498709040502485900937616613893210094456614652216321681353936824004261998788764455691161412023219703742145288923196544675314196189259046256305487674263586921379241206911793739306453313960480917892774446842252983954119852364573385765916607682913166474770701833517696290732990528818762077980903165429934821145429741270413676321636575552847374663348718207072797162266923404618468056825487971573230143897522162673472618212516447779865805700980570938734230393742958683907261877439710450279994712922745152021024008502820623246259738780414311979878874236641412093791824395386872671798924794868654613510413013002051915043789919258426914351635812527446467662089131266656328866510853791186196699118038521530027235403179712060340063225846706144547267991685242740544715988751054350922323766364414639792454765974582343547307608236027421668232378826890174765740182585180059129022771886384069469158992931801823916539211735208049841561690101841416133760633371052601485311546911280687453954310696675213845746357765272769651350263020390052416251356497515943208955280899820810978410309666814024237448642033520366199618924862933214039126996109240706113958387252814071839908507537188298521236387600733478721133691888941196196987053636918782047287943018274418942985173879995374687478336337719739196920285011428596174658596960772020534909132124625920056581704789507381054276063457738658807775752563751209280305754369137895555327082484473062439343695833487186704479735730060300642016035554334949268744120576635420112208500018708042754378631272313930332812330304965496078293772284083917105880367421066349526504759433557112144387741439721635916269957462587825457946063025645842338389871474308739144667785393247722790274752462495806892651569143290023459947851758537878707229591397439877486169233780505299934169385531984953385857735295497782019192756892441417313071813003509410559872887121180532331470059956779793538675390573816114860929125651013325830113768755986866696636547462511909152667912014229113035398550542312097159905643431201330552760200817023463587373261877521099811014185027190312523915868671304559071718035753666559832111833772116006666684828932302214989081148072673123575936968668236166631535973107418980371067509719066246584406113830776575675699609017702720936924010204578327291904452605786810874719046001341576718136237576196892866968298947514123510242787311898536691805764119873515565278498035192948532814796752574799091886655816211320747231097087131593938532939862931982636547568708915160147887552252773495572193883131003366523287883258355934537054934485117247343428137221732164623279173484586215195876699732916401033458772199177468069364015867787362713940777555079461619715466027177368527330407987723082254657944055362068741444067565525428970645623373986043711372933336115921777174346944258200629634291010682913641001121215610106642526000978075316751409646366632295499397230500152450605793710776849512644737496864481479275199984648075100417165552496398302131926864037694017782246631542356643985456968994034062201702712988248550825708605333704059589629066124826947459790727797129490098312676856945149672686723757445695756850022675701756585857954529752528018108918446303750824783972094116101315805415568189752050194191434803724897614746136911535601500533362784909277735659599992526936941530836015699200918168181600390211087345860119389488087080434377469290005624016720845369071541070463824104378900834529064745170004176527577549575797213070067793953527646648693152691018141100179178464348556392671063474015043058440139994532945543549595838833341456757970060565417416314797100968981427135646685426484285955608209976905219023447670798454944491726586196776012809351208195432976382819372452318907710481976575586095144717012246319835443766177921012788623569538085087937405850717100583419479188321159792846872458004110756190680281846237613651389887541959766231786814387192097349404042135101205329247655117849617223196499709040931833089840379851182228834622795004623411823518209925904187677859957137277288228934351842966798888976001372993125259933616998709456205371875728345219988176289391780911261924787689811085694691167805043991389094899688348411877555581469468848596181460222044942919776022359952375875544189763641483174453461521624443467445254383393444995051578492156162461457631831348849791548895185240583440826415965100997334582564898806588851656711085799472128101734391223735422658808383782607320785461903348897221926080949688520008964726621125399361941814494566826395563192488916822664823428796782318180602835104189397414726076843692594109131652734321819657498265819241123206415962903536870119481276201939333267182573172177262613872310093305864630087074304061641003986469562356163597154767699673619234258398841267043368737120799359455630251120295344581711416907216595008597100537681333590265489273097628522451628029881957768433985562510463083616981152415683425661544462843247784069260702601798445395214418133630333270400435984102915813585098077368655648190567392465547608245562282231891936213204122640578324165379291290678133428701005685539601158066394772850239252672584535324187729633800914200292584785255978944013687788208507261941563324178389403189344203524686288221813609708336339220693822619672505381515876398976777864485436052679628636882549223893946637758611590364614130840654799874425511587302661523795064936569004867340376684697495527830756734104800769570029996353638067689860092515411399082269617541021406484519922922182974324076017486446728911710048712599275485372641429986521087908278044908079959081451027585131928057980907079766911882073618967599382836774471143945962282345972403651581393566978671164483133138211833924704651861749836601609452790157987060636064942298259556861451442480466917103874421585278462791287179493515480105794627259479698846083621314584375645890584270948953970099978857950948735019255996555146332481289422475637532280972765541653667666104406246262520231515128907080602192328428813271816886429191536128705806486680907644116873823794422708590309226938944883077179713893335837362294583757730129801494193156681521064688416835814732657447914930316116365421183719282594890385369624730598838553329426444925961426281845437354296518364492511101782990902922769695755705109818281066349927052625739337610469781102863817348782798927922687046393301064710421659277979738464003084467619083758332932993955555907689315605495373924720344812244084350119547325629937086781782902201840378964627802219537526782055396114732222115969586814548439748808706185062990383585066412701580406852237688300626745346039662928275503508756792253443090809774044829135322417503531837969823609467943363103599761382520606255566721829871303621112897324405156302206996434697516184086339911092693751380390136164993161882658516544723012011351427714470335545739396363468072830625557688243524006638049701683961453751343654167950657819162098985449087014562449272828179530401379276923568503960027161136800178710990040251217382517659926056333960888525187924077765628772969885379549835660750828170836622920789225670408980425128737926205015195773960936798897365025043946913046918937933263461074574428697188549236485762500875446903919865076029250423578658059211402287364757474260904028521594326675584765079554880274848222880944674427501651921733787965672937220717498347525893032078571854787128217660933782207262821907536716846771141307626479217614838898278321362151194781442776414354586534576927814417161257348343903528471881274262005514903968736406893334180629982204246446108506394038080991562147191481499307565979312993564535529140058005893385723130798518518665261230094438821364755356379768128733262284473434110586705108727318809402467211743804552994980355093133285854437265719666486245151714713599842962901834919601481636204201824311421460254939814371583535413989611564570995868229328620118955727418725856055951118731483627548091335159862523937582331501399198316776052028093787960612273942988710370721536325582807192654573143503192681690583481284086453048001521619200832631458330971352682981899688252411988112677166315396913307425869005879376463369986255377019480177977504895236647545835602561542733602714999590866878549270776364689594967080581467905896498701239752138068230131153633215916602702046904926673473011751640726970701452150182863052923419605995295510911392874122103522546460048081644638105273328440980121017394759352345047289545826617398377934562205010224802406330120758364556691958144729881951191454292698657526741843875498733581549322109419454918473732643970822597050502145395387437170652374505094188097141644327632287143971282332019076538139565971410042957999382980363889354787398602878010815613491962410819599377285527354837678757623261402321052114413555348909451403196676103965129485184472289129340446511142129729452446446276650077139676457961341480317732268283048238598722371920972817318450582795684873538288646680682201483766800321805973873613433562974227277515213441947769439905420322990887577485948693430540005317916213582300723997687362259530615100887394281133429342306988566998148473470993482630676908669239963804796980961684922863879810760656846430216112414986451153256149215629659958645999760540105890220556938190488008897007127666214765088162473184873934981420320424988547750941990618918559810582247975138221600756580312831457473311667298448333103209775263083402848526880715999662639479392420723686651330058542418580822584272090358012844074530333750689440664870609680615616851749799384910580342027452471704297530144143842527182701101937687870069899455326574360020422253336155573557899170933386900327373912409062453319266330191140802756044324722934738164175826936092158329660669972016052751680860225457504553067258922361459317884257197698850340449191078359331139538229136156482841408332307816961148260955646147876256843857989852527374602005594998899154325522288593963943922630384355546562846947202550331055865623106074909676876274088501900306709724920508429261292798709137182510710342614257938399931937841568838595820358565043950063143511564084865656505750740218199280788323446647463283541772898699165807861880853137924266122638896755164066441509035158850849534490825880531194706485630609539481916010972975486807809979127581082932664228648199108731550828522092761326697912331716315490007194660603631564610558417498854276314798330489051078309787356861473262383816066194466890103791377407246300376034045393191773245526440811322853848088490015312450274179107226090559297602197044013673399000889996409147365418468093330333658371586905846338329624982027945512863807119421987974522305897943045691045739755823671383502957761151451245224601974778789114426211426745367501303199419120300778995433319161816500844349267277791384055524211769557701720425002497030447143406093023789919030876358473593886109954924471077030447039852955954421394849773378569878336386462705912111463070110331356965605056774044800406875492329084969970383299376354974625701754673714357048081294878322219632519407069395299088707847476909984420711615691326790481201989227169796810623694027359871006455979089323547467309152729999032043089654587621205404692949776198976636684360064430614446813704227191751962234899096360869579536255947721629758539729110407014242541134026222291673927217730485149281556468826701020843817003825659607168201133069262902163395057306765901585490024518776138928907141831933851959297262419572732995865614686462823166858188460684387745466491771769756405353903678440686014603932480487759777646529851490896345102177932051424946509181928857668762524368429752269505373013305303671359258168585795263455672248157063730992749209032588018741835968502349942628643483108294034890985540975905954254929488564669973496687713588002177301862782048994209521646108016649967581389049434898399637386942952670689039852187009136419136139458186432012457515807181894336468237295258161394057119309981425911296973424069040115826829693442697320952380958709888297624638882442495537107989046675270790465566326861854731417940562886565487561524829680934717458504586247166968106636969361887035567823945278155804939719259618644617681676000624050648647490057891948533457642361200589460280886789220789946083932809725567902202500017916179253101831986786496248861656543383682096779565120705482759304589247848421096663121661665845570783265602988426511431089354243923171430332159033670208684192382556756755684986592121555054410612768130379237771703938333067613133686634132303969876537296428270287252841800191632776363617871260996355267098362557535787874209534476729135496556660557791486616510234019449820520001998623310112970068662028749373347637300443965247738467555839548966424237269943192322114754908395068087040421734193184696396611209229904997353393378762297956700191047875873946445053155957344660634378002901832348573768858184135847267592119049196641586688829555891203896120197570459891809738694065421271279951929372658139051873457471932412707768741219355230056275454892494832657339998927848174980906126574328373412066043933716093801689358625069877367684708016819822203680179404763285555552912778116633105323633450450041999369957718988770499843972533333287516913784022155159071770289167767616648883921344167267890868860428723383112543854770478739596844821651950508029530483257469488433374087391471445642875624998067628457876881932778921409080261922021606361170031604396178731454652404602554750166447873933770577459028395890349610445171297580455569855950875572874854275699461531696701974490175460031650544517302551523105223075773340358924701752998396607451947854887517253304087607379467077789231698258125314674845434524692810364576943473331420067861707606541567877339605051336412052515045930371392593391784782523693632859388191170948195829886016181282695616354741701978673731582494004267278058740009850477827445563241077921014818230859954185900901691701845965267220091176972055596774988135239731296723708325154670057553419532500269895674186418055216616505886604151750474006091680217211586721610201341803287315149558992487268226956369011370123366918243289279536690889624475820168694597005132269251858501142319750160520941390957659026773091078583696621617248978588641660340835220991779280720522617218383560655626236058245470385660817717400039604734962222199642034301605609394017201657306551102884920964743464108860927445463600473372263308734776927028801965856551687646051237971918902829505182116475944096810562886675440871716673840335021044981612151282100052667279034046655240448834319936525663008639373623808414126072347878773753027979648155790716030858729876112667478793640619161761550921573071600415348714054675245061695604622505398182621283545000890925542471016116534356656003141891088467662496766649266930833387942695354272926305614895847405784398839845743394846225182808924546347633602676054913994607263825664069030316460744406286773546354387050571191523982677268297074381876663408083549328871311543340239941452076511952846909093144182664018210699753759328760741330434416088713255037738214860588501286125345947649874275165594412775984710709646073430188902117265906426941595906385947215741644671525734266100368954365023874280173559769527620947277282263684910482165043509704498397107743939940244540551143166836520549777383851417799779088070594585328335004416671705331290109162610462118545702207391894509373859259988892815997304513287724749187123846453545591256650808720501737184521575775443476361626057360579342197190074965014219595823222157355475352756982434520077746403722495430322928622229432256873760253239647350885265304711353204950803689342951301754191065965343373763558189394651810634488743456876181939213061387454466708372133388696292270085416951382342226859575085796813901491458330799612323608812755392278413052318598053356925354786556810080914530632658306371119498493413271221574184919291937939175708990284618007533283614740298192036177796434975323409030361979155811849071744271723366572348506842353691753194203881173451430078456681818770110753294212363682976168313569273978825419236497141920338472349416823958574369024659330446037654244833081905975157825300358643838641518226181561463156845644759950410869559343930837415255352843235132418607324063710253570959525629815496534259008445682977830178542866176886901053028129461630370043774871563600292856373928929650739013678582780377922274695744996472556864464287931816446486848590018022777415464133588523978851966613320638172658216683234447999033602626657662903654307282149998483077958646470037842027655200281941808302757836830873621415528244597318824581758860158011604591845628611465155934804360514080194670330500483778701116225602860354898870792573014848278570136147894923339971157201891459565412145222623496252908976436441748239260300744657635609679000480064400907451415412417743812888637023400637108913119382159708079627188541666121485648573201392352612594928211021878108791414412556226253456884239546241211421888233888613522539485819559679666781342795391284567187955590018594487654604848308658413425954806196833700325162791210694209018028249969320790768090963782728101359787592461017384995640829505523128244114583006509427987010282388294078672806464849594809872819524291211413548946807232118493810768677641138080805297237304171051123740212311095066373109031284557344900858409052980378752470607826714588078568991561796318562173496338486331968471990137981366577332032724969552675732444483292151917275932916509294358487593777648199145474745499577479519952935819429138723336726644932999824840923245625803625610818015323893366399374559508269835213152755127735030535505810432110395052204022886663682184156473810579653532009189342018453662108751183192076181730868653407376727286944563991594735063373089278662819498629770382176573453057709298584140883863874818422483994767625430523243343779159907173414222903666759533096284506574107839231473649570807656765563342186904220501682370869876923240855171661174379373506848532461551974734527557459467122210992984247657558543215876586497273421087598827603197347207228519093070384026165339771024834816649745840784226823495505787648552223110976923703370766575289018340028866514385229981662363075711162930479989196967687739795267336297689718915278324357019498171139313170457616369780721116320627571005192834368977651523131904538344823463287518255062989800538138197038401470045849874816570946636486022127504037316367607377344905247905174852566461918066297646466900212625435759199528182315860514511205120597731521343758691908893233674638348665655880987451136363906587955085147148744147304139822014947139937297506711555324139716191526029207541242242423405869060716737424219491405173326750452967790120464647729481103212843089115641347499841492755207257632535410294222442494711531588987941624464917189091784219380905991258927851524053567822788472355243081172607104336665236337433195678799946088733127317863905311547572286333233093147664218803267342014732334548251990769068076805204808321707440892135872073570182788870706959310413962950897051653006068609624572578381357723184025027912566271912727849963482978090728467684429033309598426712116931403607392842695481664620167417053634775876812929808416882334624526189211561936817668799030538102556695522058214369282402020714371131215663259660106969148027390315369021958218553420358022285771954232620783562792155703425932180945294744994279646277379634395493473262931521817425209657567160635190456226051123040823308760668238597025744908121275010531193221454173556252728486248155725378500159197762484143479785499893867304404528975993959866626894341172099865367304026853185088588805361384613473389547107936166661690307702328087467953644516773378549480418203935405115517227444779328360931211076347810958107016995298105922920298456558387546164058959007170704650562504084435903332063236329809882809491153929530071659817489604960123063174042901917761765972526955625602757902863336840184986121695401063708073354132936150799065836574300672540178523103421348782194404373947275017847407091847555576484069647531494629908005704743700469236436975932139356654680890420984588539526275368315399696438352271403651907053689961997082372161561378503474070230282955363325496104376891468084727410172601343209870783860368099411251883019314501832256423544012647882877161280470311836191232444902295459203804186849935609295096040017848992355314106779461746722645379301165623622192272440111899036571521531962160001578468921149328479793101532621135641442326335130804210820320044628211657354285614903791494000689017949493286781288805207989642990018454836899911639184442323981055281177989769831039860276077763623153341854708157820976777706417804488879804050350196524196812877193444873918206716873973958868794204197357796097280963014751243125096173376270100669276857528895053284510781899618949693858142169054255811760006131486829722443221883036327598113918281697394551183186105388281488650517676318179685120318636983361223541512416013213934132527665487688672923431536624994429133108314818403408779326693042000773348366502003892244983927936023855737876772489939652748481999587105473202488909156995021812942704258266212574003627804590101924315981880085862396538751544768565510689700399892497409267194864997571429572456177005938355396541508449873395497277145359304548114381794555171314466268663320664635824087315796165311719602568396383939088569412184679186567338131584492956796241297092891882851814373471626148124138827677139489574161231522843362040119962862811732391453527691401725112148786649618292486391731570059125335497061227998326246035323855348290668067562151457313306734520071709143701417753794363900494129355866880924452608569830189484798626521365531681932355230870959409878722021423667732901322275432618332599108231047485782779297760198705255767580422325084079578353952510954198687427665403105014996415101394745734676226833118696108436921017107125793030110561181590306518635980472686259972691884769094851224458091310192362522376368360970494537320318190084973298568966263365135472374148261219881944110069690829352335088462418344363679901113599903731823954619722000522636887433319605006085670713580658011087386634379930871930424677320552982818940846991127176092101759209395335187701655956792270674495178939905265651473580000387489066602225726891214097320856532793358856544165055445205811406232189424294362657260795014011689613188491998942591059622123157517279060973318649063346922602325019930731584291841432058499005606803509917241196508228756759757572823890633435238079832917756050100656307103212269302846087692608424491953718028162275714023528739501843118403029941351073763424674365013061544824405204657009795376854689521761042764910924935915300238414560503991596541624664260479405045866978027721723335575106115823209534125687463915593694479499925574814093469584873788423841667817074420904940815688999478015518648384963647502748276713848789707231494843469428809383916452822012854214487640969286962665844058264471289930806764864575747697510937070616975143024271717354294067799813846667154953036286744877688119615235888399911451614322685408906785391474118014689552929659014051300807592853010944393954615341913492105986839719828752086131111344132990303163649079427687196466108347647296033168766343950749664867438614293919042246834404214091483002581798341829710354740976780818128904711465050171166987835098586479273680261177529761341776368961131024364468267235445636063847917861001292865093039104424421833953647319354952874827268127698401175145105257796298745610861361239836542316271741124579309520435250254288994143341215081187475195020482986283507573640052635085956127899331279757783876032169901886605906185377103608047415819237731504779660438906205992183780911530409603812586683576293887557446346569779054281122764099916883072247389015287948580711754720663579589633460948960539663578853307727278177762754591672250118867633698002177413277110723225195724167251290576761738957168039705256674369713998245662062265474266333338196965200499954685564853232082145755975495267171939301123901233575941741735238294232802399775031608034950339396303623313177674978645331038653407288493186265613321245340731731128604828567768790337353651092770098101632348524045261812973081254140829594632581926649697409456389319293251732528771638541708229663191006988620169256098116770423827161749209252758178879768077997075660270162646357835795017994091581223530945967957886018331802626398334904281432794240927803891442103490615284332474935877168957264827459305979585007773788402204876187283236942921759778436510915648157006620423540891926574853831586543193077315304325217563362095422764518666260544243128611511835815704659180308480245524838463829191301022113344202309123622864790740508491794773369686855377439062017859952656816314050016561899532417178023762048159085364534370876027907669747486890143956236244404802876809535866518066340136458778409854528246015629134163251977702881531372851213439462868089604183163227248236527805602925683377158743965119786280322623951896832123381949363899437437883648749331355719181694886211550954002350621700590236282653832174880753099427027196144702858793279900144928989425668025705035210375194849982962756253989618880489524630799259702350941291707188254607610352384775693001501043269442806122235935295855194305631865358469808138120861698852145476626387990472453899835374594974513712057713077864498757788138235447248256025662823524061165806989366797166181862991000167275944891039767016572146567235370963540882341876483124471997504546933868160037582934418716252091314147892457515736453153709166623925111639203255754495651110567632315766837030727513824577671035994371499266549821416673083112645062316516324658522480091269289166454166646467507580313353978272505448922768472199123706795345630914789682216402829808406362743762276681639499339393368337321004936794816706884356874698512111759015869649829506290941907436823396148301222374450216334099486426140690051039746027453396113750560008659189613276830093454318786279027974302484494284384258039874845346348105832229577595361727066766465287065996824511257993538181348559932569704400094200013231158131467263329761083239819069453552866328336243245715794450147851258600383751617300690347337281873592234640599530876158682042241199668373484150692522622428289207671561721663820422337115723427396566106494673524048265244935639212868739949909023761882723820013389703002325739025521079557802294305662185145467254747196137913876583022052779385594382715599768539128593785317327046693345991576501101654786356794610321961502951114471575236112361004982216714084871884428450995144761235590222921749492819162592728739694067376634563854029373942627710431578823676125408187972881091459878022631437235097254850714981554319916478677562323463964451533363896505975708917011883298662864012518321653494919740818836914302433376908000999551191894841976952234521222720809621106743538499749813060628993639434848288925268875776596714538112700034359130019991953679895357146885425443566707778417106663269983524056280306497338023673653159278952436159864825624130167642671395074094311326824895177782014566217536674887027716295164240945081433581865044783920512396069247493809127584714385960015373224379333931455369816688143180067074068114600379576392642327539120565682974697254618382132647776565693603258200020536627646982801175736811471604395383240014596643727486870846381345120887319669120275724516620056453703417972365613631570655940591986792766021115569593724806986841054021917723813566495634661812866213337371394132771044859484510987497284407639449982384074861539111364507007022151475442586662955496324588838584943990543731313162733440732433973578225739249517649800026522210997398479449328332010545373504281109422312035069246079830682800677140942190457250110406709738242087677590510202533507285449492484036318874425298005036242865325769474634385129632444340222690559544128540304236394186001411478691142714253415864762401614558255585300696038299863147073802674900850661209961561640537962556406871411609189670871697682702139401520393399469898531104368940183037270784416298381548158828839249967867149478731598952131864895167074506080303616382174581402763986800601179201124261754295275933903538598246401103485343033437424414709010230365421913431046305180970018566734573882447817870438968115539448060792678049956865350214125407875918034946884488251478595846535379687986754824699062647661525849031931402033172151982079611446318955208830903912560337429619651139245610708699011379968506254087673610622908840497318273207009251857037050222497227159516220745287164712836935111772226960347368085989455411159400417135525189667212577247531779347140582546448065374328082461867767538115879427139496523532449642896706663856830802591585737756649381250497594859515806102864950554744871187304413681791796926590644496528439891251527869043700697035910426225760376492525598478263313072500816168260266895894283725162536800738022384998588058159250025941729455840578383953300983787651245819732358467717183329592170137818904271137590043354329531128999659380670619167102647606189408906507424658447053953972632328720969491272397228068987687723612239020020276394252078241408917553356861831496313362067969944297730381957206962653556555719617074667945306748987121388852604798991693856738950551468192333352230798067947735642750469529935901871664752751288749274639252222388877544206269838382868704247904713131282468290593612468952255779789491807759422658441632201910484694121090553507078983409458498882000713100337115363760287101330225436018507912740966821211931568388993208001306422108093434466067493916036320575036437371109765588704634330925239799881316142539459057017625616949050352377357248011866905881646110273490712761587133571095054675567674560317825407107559039727083237663836426657564374021279859617364890643353137983817632765330953426905838124471512553633878556987020360817826874423423436919807696804669775945009428832744966451739661561326782131446205873862562669580458760851463788620377254825941679776332257863760745777357044354604925127654705640373024315692780120190451916152910692776079318951755836936893353131578699790003182483588762028465929245483245796669435219074481866954414778896875366861920512589333181203364020947404892417736604363473237216633165943697551399346979555864569779891893103737987181157948276862322951427646868223445967577021787697569763211204784360489330821760527722896632891423063706897137042517080625485549881717846906151545548536944365332726594511164453334341763755425754297447327134695329016252720753578159848611847507952161696713436932701282850927077579577655597789070299603698795874071620987443326788889455412617004059294636537746731472645092258819624428833222733606939066919098656927644203260872765720111218438593742827862750805880116914154714400193276420271660046107723970893996269384258735494904779247199575812429496414633659743791252111501956037063196075633045243121806732491005873881881718790789477531435925178512163215190239867854026156696558215257854630239426110225395044218985662984930674563310309222622329210264051768315929096672350247050507692851712644817229008309653654172056882204331952487473414138631528783052198638068201315206138351378503521856061174501617314355227592678739856245254179169728075656587613604430777028038026626520000754115711647268344179577209329331008595432373400994370870947107511144777559266876448619883453265671341506228284799548087072497277595636886298368478686241005444914807010152539165673077176465381574526951077041012190414989445918106185861624526243234397773665851042829068255515368922467773070193786764623660604292520052740812079057866780746698207998735284859713321602959860817658774748862820638508726161458848147590777031637932856741369436548084518781130780024142350506584328047045818387642420903470182343631752543144173915497820435185375464647734278961457126336839686465808905847564952764179928481944836443290174338630108793845611594063735661502175356322603725946588012585865777770321608389871394171966266803997294922131409960536904898607196531188600808074649432939462970356220685016960053943537878449162548068310234954294579079618138046404482382568714678375595440684888773832183564859103044104598510394793228072943175575689508309110124847355958890163011329754883192732420414031491961147756714377718137762362310970760822955111919204805210946117827200532266505159485147291159131365067420418001760534645244201485138570939847604508785519002819968321143232685313264291701152472649631702053418385387059669279710279424820101550582050014436835535054532816301366761827543339316572709767158653513455327744369356815051423572596108292244542179774744504974283818512652257591043960957568545082859614547261781229187385425847954416451537419698311402517861188578929125556057363208167539638652282485812975892192322910077207661266236406419558752707950239495837607328899144340466486830271662168217358662284271578082232761548091709931422119910940154742098144876474984434941195429119413393547432823404915328724187781908908175416304192346782512674467342815343209067052913083946848746537449396081562601025081416492597787100592367022725366914870523353493657389102155845021768080842901239583040694323071366237318741004871959593869679256672205906487002707270031297994462708441250375289543666927934203458790970144282276979658453104557781897358496210077357445882994716002716136339451594039106117342182279093153190013851166022323754148078740674085023523636048762430670333171674677105479452668221506852296388666139938994279950555493105104877233948294161095063234943626981918443199709891236740440922156740852520059147457569343156890583300911136919552920408900238086092258797639029456339348444618927739798550067241815310553122291573256476583117584582651368026997345115468988217235288966205289025936314193838712684591486660392973083943659885788163567184310910170966346650807280053992351930125949539515428142942879795552809556693815469054904753195827140851967570028603366282262859657436087431238354132215122528054071296195302901882983390644556690643223227278485343660485309511573286922018608132941976441452238779808502039479222628317856691913931630270326872620449055519708194385848714912028865175147485125707854060752864606229681587596134962725013333930395806691616011525265426896942364984734291100660950948751342166077369081293436922859788291755230755754713088422972337722694910702916522694439087033823083326699034402392193844355993862131551076937141468221758340521066098244231351153099727164608136547680559814121893047743498411212573107183849988017682733897381709349556408290867776123325638368363992500908787568653249680761635060766369020713379056640645009381187229035073461039949187457062752951177482730933196326201893818061616394141213683304026539703191277262205773006236513457028221029913081764839263489677328584112592205901661797267801009173551386496360260724461415882754214802011062194822356479091433276950142562924045255782483209168045708270227663346400102677438793159870268545433390484312888452118601712953422426564483301049701745686046467675983217253866285411079684491475287288915391496537666717899019775419023641598767428630446871008734766881092678019971368688756225240749809262998671307258222904285796485906314270117862624014800233128223227744867863789722195493383148211216824628371596476086015765868143010298445263434150138582523430187186190973766996191567368805478956800899233552557740778054747836177110935473640280471704282631980982071975938888775382795775277022548693010745999370947116780438189706160232613472671187109504558488539016390510921682236548582538462856818838589745590870114566478389680947691660780158233810121072104497135404454668710928590294020794624310489565824481836780826325085531418075095099216539014595337611253350067579810528524462312794121052206004859162577420122607185750518077190683668780753626049413427061544361330797946685188631253919660462854770149797248646780859096195503599169075695973181380880598580550075508664779646643574037765530074429316634084345177937277464419297769855372672733467364524519168294901354423570389910162617667840038108475825054738212425294395585018030769223928321273987644527850448453365571436572650975182914214520007614894530983116891965299325442857056521318863757738766556650433332988016069044960500287964529937608865137411091387544620597244355813592695257534134664101228143491084245987571819764258728114941006654267784771211003023512986075872894852067156725275947737637906146720908058754384070746028120675595263383557281679607201096195884438804635875102096800034993350679793713584776580729591994704031846321692571895232357853652654662431174636125102483978991953889628031784229816507987527723354212740110585928921245085500301874584474638960178578565330720611138733451184103155361759013555431272001642457179711504878974922477846947339827342669754359305285407662471310334598846461600920502465379082235560136680060496406015383690528840912189746171191504890920917778837482336316813015606287887079576334736933228981140596114648054730700533402157375966639658920158974499483244757436067690494069734036688710089833457456235120437852206278435442466368584810194018802309129230952683628467529610212506320075970986011252950635143320580083308517946752232048504583964805735207809162263957373138424103048262030862640016173263238346847741009434568984939524512483345840836176033763007854431650037016229157078091982772650572861520195990259535162570861444031796277386280212102945431222924851452161523500049327648217920381183171127823769658299248391119194188644479237624836105119188337071246131512302212681035871364238902851233115814134663415369330194862931139927927020495992632577086358791016155606431805220852464418168873242779577477656340729861240704328250130537157392626698166414503169721378052814166931304944883540247345746960501758574867904354827121539515040121565078152220197767509752814060740256738934618287394782304693027798236128462002488419088132374974297206859442383797208978921323585982938124758987609873827579940596306848200448571733606394660844581272238016356283403820411106887360580808588042370870905021815193157852091264155769047708809568091079209684795109180503974476059847645833314502375564482753212925711990650180908964444230945793186340072989696058001436771124757870461526758808244850877520873914480384442855405905280504429460209026285317130023429411827739603753927149667405939845582933174665953029392309489257708963403630134769771600360036062796004221612752375409989611479474973271753662313764201420476471420360407380238398286879485292831388763008454463624752884973819013761686386279303401308365001747060822005411981866722822162511316999043150170298088303445637849860659154417587342104079492766193247133331135681559606935050292861017238891125191794077680385394921367896863608213681491978403369819546539744280188956151263771051557924275127224648278432829768360437895701959260960876656026678424437078855902892231202317684075073118782711290098461604737077835906933114823449735400882040092087417526385949381446935837212659181916502500471084421929432730561162720655876277969970822358372061180969854536969910710045900235515801724129168714429150172765006530803024347645228280859804257541358069428205400921136573587887269812299045231303514953463212784492836009596607109886979724278692114016349499291881835412151031785394826491463978957975296354411640713122068851633107828856900242061152937095550555368802851329261393024649842709390982166221584381389521376103367279857427922633961249836476038247979614772605595079949279801177846033976071264908879822832933094317179314091492710810359759182286943609813565400689272013527349124323846392100418644216557071398479576149062123505390520268407815853669861051488034885839359390696867496722219201353201306469803956866136469572545685480489606827578739431302590423438617854964242917286702270748883999074246863267259229805295492937397791589892080051603886971012746350161225172356903877537842098727195510045266500651754367469073703649727413036805907843485185759645120727681917403624505980855627708694746956925041329922404412052724771912698536190090082447367642680146730773058112784863739868520068433678159934668606277443129166071010019771566590312269620773046882701679973426330870995371108963167453211962924349347312538802972127301831481311226205516107787246808202011641426763994400307432474371779868807903976705334174807105528929118975365314685993533315058169375032226951767041702312775097104169711529607513410928647415044022347434563975981184972153935295559849574428939984562365154149291706000830439869460591034514650632919443355360981130184562525194505132899882971317949476357591611656865095200468323757467038260140572057496618943222212662858528377189305240138074943783695130391192688968553141289019129578981489492995397666798153880288215696195918092337793635450219927558607592676053339350401593813373451415218809754985042754698974538402739261927223476779457281876487209546866988638055355655476799671964153209100113371485051737794377384562447308424024804242330062952882575524279710614730280453721340132477888952820212814391007533801935904682954206430394821387142514828054462083817578692624239275494216349891265717502925813434474789550601508114292668782323971592006754627236942520428943997537712140996844468884148270999920579270401554846416502173680970346683100811080545404990834148354559284395137033180529702882125560577544877140534777262255359481376939682411786183130396431205669535117645622075083730590519175973196812837408294876795520865889786896878325186340424040527609753272455962514504871065816440438029816810291201469307798541731376541221036512891884650502371816721185130874493660982919836953747417755288253227707931515443321928355707640304870576961259733332840457370874127526740348999835961036036739829366927250374499333079548611242513768092798026074758986650042942604679880775015213317820983867889354534466533280058015640792650621245536552320469759589446833248061143085159998896949772066271359252583618375852181552653608446716513992031780973225442359604231531765729769490793703586004249659964453459376856680789247779619334681823515102427453825042514820482631229750166569832473396369811566666791832434851225560835177052654669340774255895833131265292150834324442685951338828175921325653116772376241104653442345236678656867880315713325261056599460366347572579086874007898112251014831555807181813050621589834809411049843550817062989397530255040301758419506879042645502263031815151562507619767730114870436912145015358670789675674429328596170685210057038310556010084183008474657928713677296779468802623680947954869210608324696316737437762262913623972083071993430446673076977899815404626483532221073947760411290298266565244798012089724145953353441775842080820631908817509074208810703350987368497862448336726701699508269904933923067866076107830884653265762775125706976476850386122925696777208716690214620852068722626905204207429486115423639837332916578058156078844947940330771201807738661888809885942256016990268242216507447454537508019761026171290506461802437982125721657510869488549957997391910811373579873666654186045133779300836635578720484318530905335949586018132709047741224069597386648989850870024601622078678654657733132234740604977108481680683829676499029515327853442481530924526109267636617324959817984119032484568920081197371066340172393284879534971254039696188696654445281568926629783501578062161064554851543450205690103136332722766687027500952083856267963306997076326121508623351739533096150622668591828250149734398533187607858955365154699886520050164923521938349105620463327666901659261431421238801415033695636645835174846457616373076175260619667527659727565652398474802253054234219504859317457510511756976151458768036825574345874420485348506999089002925267260421590977190341870561178730912764353957264452018960570935919286345265456713430870834558114347620057529616667234361364201646266086287899016834860469290045974233281622208581841957205100938563980669514312796909584042505155189866786072666102399853481622540183840198085943464840602742416923743125145775401008597322124569077221929851710329848573011952924400202706781089805931259019197956316297475952722793217731925718757363511230384030907047034530757700936727882278681975294958836308999512850345456177042710062169737652511369540205218219521507428079504824659253493856812588867676230815743058055650507592805073701043585750452812104649058726897258228322775774324353158569588346455343702627643657606805521960494138877966698971261636665441797959849988746403939853394565152227385281336219053299025576043238880522953227658746109108434690833660126456629456008561666675385345558286268289077616869310947640085629839620741838084868938804886007066341547343590830014834976777665915189219151272376753574393869287287096484279594614189280505677229091671013843641051408716848496294910045544532314478023150487974809203208077999052626553095834417203080656003203379844697306304692141647410745900911063238866365805581366096372739130245077145893486132598259977752837311693674140059009151552768904076142204130098994037046900610530337005970746048880916193473796802625239881540050865107810527218933407406352673954364315217471675802658914097463941138854549027175553567959987980241400721761230531081553399602926261641640711726964004213707719157640067085976396118430919823292712967662627163699097652258269862917838293500723391834888869204622286932390367327607732410367024497775869327545979696482806703282560356569771174295350056567080897174321541762265614321530805092899083691324684367044128960406827398810222689105664855173759053226203878218632020862054397893889288761281340454960845814049694618845509364798456478520547903357021998705832288972553068995623492140517348449494005260976831123296082472667141345647300587590231127407998858363364733421537324444112938879989309157462667065252735899529597696588930173086571952536833118465788306022394974386793878757113646028745658614065308971261536495366428473030262878573401884226532302599318431966976614284967824981237739614962965232886516463209954398899087139959469513677081491912807793896706482185839088974541429457609768093986760698094337930276933526458094205044884106089147608780470189845022686733321463270828382570010085818901899590359386779793262663705136742816260240609698992200503328611716504129287193859372459590182354705618177468140142270154303688182716484238108690678618176565249459714617564370907839406433487570964481663354220590919650821311364349654502971978667279120328818898261052341957645329371468413872406858271770361445839518413433084995411236608804034461734680269359385880611686388787959306092670021836191279081574789534200651477260771506961790786014069487255807840205762426116765060087170368704389358989136575202484327482387992411146218629102652180899497183459010049868619941752872055337281187389118961360175283763987704358491163192246704267851995764817563215762169065439023884873580188095163988297013539209908527369417218665894410885820696685415997999727667790394835860500252717414970275187243469950919954492503163453295266070016925870366502799759820711162469707530513647835623023246736526896712875320024744423770099510041821826145620606377686498565192321907244365473223041919562467487144532976168225699831168015115326977326837697634479809538614579623551701510005956176642152185306450646886578018057349217033120696989869449656258489821681383784276352208707319208047555458492184214310631521312562765046762807629062010986997210033258854057135742874249069621449024065696823206879297685838929779792522212418708958384876569384255430653335275509516124806338102090573960601182682867205201938063818913262280019083392908050714167914371779475482038636881027147561381077645504011137380902986308151091575291119938274827794368117419629582927501114723432161940999689772257803529667341472136077487936449361284291663864832173750874297623718830361723226429016245229856292370137687208085804886287926376015212281300707303364193545899436297865335872051016285581118147109954093891670033667094594710826762398643557138093975789777316163010689817862120833379695190213034408401730417769003286146590089139616847275613512280863670848507713086904605282861565740642180110517305507808648459723216262831097792965608189250522155191919640258975538796145737528591059839454838579972399871690818532011282825717210081655915433947490458567193918731250172422279330246956527937317496503966934403526429975305629911854433750388206902782275315509297045399313641903193615169233285969907854332945611054783361495768527914122428370031474180597798214513126382457770329158898945152089450409214163949842175793903812503462259286749058146352021352942207193752576521331334168497906620340198360038959404171542102998508117646713539405466392248300737456204312421570740442829198365226989056213714631750606159460066923404243643751849198462527387526779851618571841451242340747051754007711975198212305202538591893880773243536353092881849496604510825312561872540977602465532846923837473080972859936740337974853791995134037948723486423143837136790164611518911024915107882769409877136259774726472323309201765049899463785431651711646686418992347309462177107294771867072584951520431608670275170687368352933829971912349666107865599567496215300892361404687800152175474518337856704769124771249143960288807277627491439195348379486834608655827637794678038994514749804683808043333317099443997159557741991424937367945614752758798275980541825389910202982947296425138643765614253077050283751153315735123445836859268474056135465217668848113872419143596129522416094549627106255843073661583017035365931558797723581635780048855865087343891431612407418813836398367940536310138591050803731644287554475167453578588903711639362165767560962232202399236767416408730009236414782247759051594447174697379872457331652345047905760633895690140007922726694218353760305253055027389894329811149870595736789893442384386850588017999826539831286127169183485234610198811980641529197749602731244348724118719697705088045164543388011583547817091235426002884033265822845097564745452209071899154984149438151740247237004197306520876777465010334139230978688485539041581941557968261385602592487586037865247135187625576087236110851341393500831780653845852606187019467420646072032922594030001284202226663785968347620364118961945774416461018088927891630570751723455488179045667546838923997682144516682174278381640149542865079184841006109820762179219805790185940721730895583352811619897327428303613579705154763024340547646531539375691394384824516422028039056635563976265335420238452835896378508462124659789278011727205453150991669108668561935877662411200271709898809030486808175303562617300596488973580706973202643981260907636838288219166964034516322847547616337894726640262901956899395719237489007845433716332368908157902193105622031374049875199971275551280554022364720800460045650454922920997378103102185433460758078344075680286700980331832867241465442715930229043785759401369719326014978617883063826917656441573793758306213191452050651545942491342465734579715518959560316394441474342557413137876063338281667712230927268450265922292394824048735629832754447021239160632052514462546624571820706279548747768510354792719856002925367482753247388964031231333652107300732499467857616301570130600954963288003098845411965674335168864041729881983451130371757003202019646607510257380176798271879205277085743945206704218100296445005488245177979237207809075867535273025330925184553277787743917281274636034505613446783393265143254562765134427243537612554653300628554511363636551534343814988473014165463294099209975985408821209354936660294388886666840943564488391460803797604779066609188686059775262300336451215602761288750261318649914636762385541422473035008229867673989334627742374965799759028600771790847925428992808514603769637107360388420017467025615130067613404656437592958836617542413706839520008798673069441562869153145455775687436045642631890667980976887833147062905184919677052322679132155154523059900644258825058318423627810975449253831648674417594086214462516193910499181956591400963820261729217535005798490802733492071618691069144570074340826511191813385837971828724108816988688963989400817612198524645051307436146142322141663831051131061590147675116053723048700892304690702296150433410705034623662053283654533246699815979011911419181067762577168407700129907020424886983620049642161057305201869817179713341558366268343701611984747681562486783741855736987177605684296904240032575368079195462899467818072151653307570479212443483438548545270721210398815855907807804334511285390169782611795666500301724675989459507234512578484001948817675058306398435950153815216301844875940847515060937906758936487564583504350322699790026257271160067062641651120365150111106709204790381828979957539090469045818931699388302768317405358666493745030964617268024999964581778478663622283709185995454105474414018640754687585395394661518350626334005569732438489980773858018691738467611332827299755451417112230117295458584180828584959004299210336701410778351220771840757222559015791188751443258349454095068434574749031215316884333552724822750460594200347637498570811589960409135262814241127225667994261975554601020160522227213690912773438475423704599021108824457769757625121033194913112571699802020233575777852388226135713308287642082617094350657132985650847887245899070720345975075884340344325527757710740284439868296235482751812108163217835546304766449198372398356978771928378088147160618389753307423396143802959829438619145415683179686402399651255196710509428749535310923160597391353160423519334020007236079979701801263210225067097728281716205356025136351212983265014614833738087432330283521379853241750621358191978785874028164459367394045792611148183013350142519269462546916030189879263794853289663203720997008847025907612380092315891550647861997980492719157909564420664652842932761946849928537042022419098579735718162935592842864648530077549851080220673624171340357605633445600317993873168443317115059209564219134954598469462558834688012057689534105695430307059604801754978088546668818108822781516931924127983201658830706251767267366595028812615662141724506741086154057713910923871110811055396748510778733090379263655311028619443797761491378370157327251651114490394537980144090506526779104507967738892023575077772661651947133591160387873056525582254640497693869374176819908515271464758813262183249768941976602584128717324309201736050267387910893869356787167669250005418576045423257427562472025130948465800073409757230062237420008714670188530113683418694064378245996008503787458430589211356771407730130341657355671473487082623058512934117244166876730209845471095366783508822832178627931191577076060572429839916300298448688762908216260049425925912048684733614581664136235901782576665570143227810181708218322119994000547484483754051537390251080037135067240359735426261374121230341367190139871312579563735482161842866715893734833749765732546342750148376073156731554632371335930733866550117335709963190647673753235380583416382734489536574835035986568856898590881066250504234442659263678424971464806285678804204389005021858183031780517965178787173500809316429890742647241165988158256650424111922089528628572409973727493760972811180396395209673301289008563436558523753389926126650212947039124972778345932229545098746896448235450951885937117028648324707679661237067602990338886425289532889005478230320508831881006135425637123587643387583556308373797984260946883936089709689146070506604013019863235148977588360612476318856156434963422199736045882221053110327190855273762034341247217817218376392930785207458713244299546455286566161477729774313350039907112228870146512945184803308151096438569871742055970716909833001100186524156100734606408945050151877654059665146135577934172456905980240068096792276792600978992189794884796446073831222234772069829186517539175141548296929968422357399616523139556273169083663468460345010311865329418649704674514180863222215396293191061080926771465336245906898424073923121916829505392392453789494454044133071343557326430896881599673562873837615767586231492447526415080959028607319287370359233978495348313429478455515350480826393228333268793359302202405220244046415567270388362860789607013755809361719681225174476337939608207096587464532344416825284388472778442386699688124846315527834637963998970662676356063869717334474436325062784767258882764653635141288132162963533129339202677242766047393369828638307939639353643506220054966939525596180476403333917459982622181079777582834590268348925289665778472912648266362449971455354221998246822044473475674624578405665644417026212668284921956647665887058737946363029427021505879322153992108761101137673434925521081297840958367769159563156111388438458559749139639050263695577412184191890312424244960093479842360806825830179314401130124910741534916733996682134476082167705497810796218255077301707664418704770668362538944248805272186267860735881355008812191524558964355136165053992265593334099584586590783705069097507198944536837049877594831016654261968904194858544806180216370596081947245181175413383269776124455879853256538706874210166452528333286536816359993000217662911714639495375502484163417180956117216219866217261922601817100050546042600696199527100810675178627315877188303259547056631546378364157306960403864805909914644763930969539694349659524782487351071379191051459129044496764508520034276287455143905027496596799255791512191640948660103365077929640305877704397445247450783338783733164934647063774147814231736721027780865549996237110681291430741600963943082597512654491005397052103665203490837674978697962264509120506024823150383645442138565014570537676487347352316563612878269672456678723332732873451458279322451309226776586424875255385733420717700099719739277301792750803210127572232478699763473665112231090284984807186639887871874068354833084752933722197087430694793309742523281982845766580297297222809115267502872327251561882086899575591169017637725277443420363191583233354119681951329604893740897107846681690512440481619310323548453512936541832692823725848683430110030734897675657661522282523851341775196010936983037340615133974929398841376944551400110979676039532939392712375527790094786595461751092231672132387806709100673347110479403628794693987293640558217572201996018133625978814430078043490478897237781319115656026988063840943915166789268254670818812738163881241300091664070822332413672403354524056587740170429039720986306427874239212423180381382115815885433868196562525744273321805088867045762494237723298358243173909509170255369814345421877242876656939243671433926813929258396330086118596139679978606316935813785097507420156858567494992345156788275594837912488425450597519466944355878298794477771916094417828024946647638875087777644661964305882433417523527814269236370971615572726235903147794262324205161717295348542413726503069206307465657847274009647994487385647501790210120264207953569189558813839495057029710020821289304170806376594861938419519492124488289492721172287125014937827827483451605417750562853773672700248331790247011812966122182199938454458183991895901402825445580128500941798219520097286236122031019814534948740659317038169055980886822556615450269315279415208382685396330342534933081094421885058579524373765758418665649813920974307792436223544316028527580241040483971298762943556859634985812324179696447110671454370300350791645601957652431390819382549498220329799451128934333480388048427008081633410587939711424431783084190164721007995630251714369817905693607466327244234565538804189911779637094046275548137869584448215506226742281400809405647702332394802916738993857533687210237514448404287623837172235490197058909779123626575670753347913315238930187029067010699742751379795750876893059890711281396927574677945600199199175002737112524864285483603987524633081037307841654855010290327816946125821930373540497971136059035597604782559551072800033122253402491585597148015788081383054357892241272557130412417721713501620172940449813240132350015332045295609839954479014699595243519737093764088727965060137410864651846531036209042570037620499669107114015284594012288861189554956509950833684660617059737983007384193384622226309496760973957771352777392611184390101951061152280958847663521349413897933727237385190115791078078373937626273178489145376000563025438115230484003310550350060851421694758790027155020066143780367929397376682497528239194426836812550881016280621048169397235951751361586512010646846228077675573258809320547208853430153845527935103884616157231352887720119378665674258878522883723532086434935685216163922961969121735866660225030116543065318058990932548992421343675439980208901741185395731720980722960955927494658645433522178331581815180976994724040206331225335299690100394778745979917235540283993211269336287922032217417627926177806279261606258882495274257415060715335484748797110980708756610462972475346368164608052049939712306843891253016729946562668552258736170485229616526851581233632341665687301782239820925070859463799643230042861031381408322096963763239292537859993762447838236084383256015553474886009797886948746095992439382102337997924573485772287403009375038832079794555081753655966286940240192738140240761506217128438578009603906417290992872477687059098348970421393523520657945124601541210821850271639511590569744174704012323331474365494846057180764326400792067416506534677362631458322538022825403901087120213332364107321317754139634126897464205376285271414693630768010952772837824762229754548148203211376826242376633482512495203310471543661211362581251879873454416704674095729971172206613849815222845946968086412259511816195847583002331745780826328527519857159533014384757276779021783417100574067471326536039001271072051702743269392425957519475485179509597250228550452093803750963294971261144947519731799668629206458396906790572987620988734660881452215055334831586526050468742321155467859517872924653182528491979322736288075874332335979682648639506339918609042552923873181488690369394211942538987455059774533882172475956816636031632312677301763270273765746791311415952254461055203981119595523198769203378781616443401754998673120050210625242738934180126078847221544053436652465270801362323931912755745131751988204582231776457258661036368900811472059916068191697909358691184815123820869300677018608750619271228500398409086436782495925038066232169233645443920616449135742858024540944509245141931790239781669055761990757393545834485422694646340756361163283887912856643823817563992016957897152715283496156045760511041595864496904047214411677030667211646793024768836375204121387986799017868168803716651654098157431016861357539265238659073535916542073496070205921828337424851691397319219650097596621209164709704838710664211048658148213277899232508258712353001968092805863548199841921909727293693635237612668086056740725444415603546093831693029993661009507914452506601428653168945420374518635023093247309279905496669985962210501129371464865703310233286312697364760644915761539045099542573930485538732114902236831353285250778629182340795883234796524187803938856249257178886302803375765750697038422219382639678139425908547215997918981243983738914306210626855464615324731883778134674056328583902927832209991193124639934391091203534141010093491933484533750840913613281165689928175644685770385439563325976008341467381180217015112579520014488003500302219973469894160487856695482372793849157877411934566016033715265472563946714162737680328115231542896432405844277149352693773564839011569033581885378246152384457184832611207181034334533394312360165322981232265315884057682788952979862788027624538522842522009839620198790414608741396873825837052693738301758852285926708391390872749677425073703486154555563215218105158709118991319966612163702551216106442873515613291696829836247391664950655999589125658700496098379835350882655058087348007461310706618151867259004077175149627361487069464149016348776628749465196618239070049895764211265066692952449851235765665835122577187150609737904027971897957921322711138883166572670277302867209293381212023862553359136404660831434637943431989331055374889626840463370387444597834202131847991523703788587778965672879288925718087507881027827035794878548670378828662760620280442758184132603085577667505729406254860506964355667512216717459363875176175641915492976105219964937080915988678991982599730305361867745652252553387194530794322512200708960932144480734000706485551079686946977787881440413445234879848892983723311018079005126871206002711195841913766772001521554786027628073622050951836820566702667080306297888245841880244623132069009987645698688679395525532597695964523021867502779091899068442843249160689903571971891486000340041992751713518190262190570936887064504072153313404823249461268368523818416408186558426159812186645590450246402795111806313847814323278510491793329533813437454300608976681431512894269360882545408114643099599783723631362466469570592380111285048045158989636314363944497911474253505289570234274602009093560930132590112162971971507239578776446842991143114626308943110180720254124480077459408753174409141304165747877968511107801392060702438834835707640069084791894061242532882139455742831648061219819513860462746338382110483469208224361255579699104730800179729598165466710347318023820670454276153964625110837495497708560535914066431054489034015624995723834434007012779249978394831860041910024920226206288731790185080784560777064108900478634670476811623155183817622247942405344202479975206931364066766006123925149886195836435969837614422996312734228487256826399848851901570302587965588277170581185600927206261565723974204687538581176144726025261113856544030546011333055654672857139807769859442208748491103507526601974767586668522929438944725229465263262302554671139136965562877253503510477684399880583089339585942053187645764228189993116214044281020065017105361541574218088834372490723560772081809151012689192745042358864237036296322468149541924420246652413525238229756124320671548626009043759967548760542925440527540343648355949504841939464267100825075548853721931345839518613296838164815387893016115969858574971708451594833069245270356948332528847648552016749348794740031957900395676594163129401318060382253023672494265396000347204066362366939735408508528637040234821782540539584438999180489569197342961756675095636744415690537223573816104416983917238984483260462241311019972349074057953014099514510582390035917537134437967722913887336260897063332352102770699283138138420454908125114593507575581317136665582888607907098418402105130493092499424580620407774487130638634273599685869028035300822535613961872364973587701639177634696237259315373106982283236640605333727793629196151202567579772660462027861293720828902028959224124221803683338122570608013256456833827895131065000214013524299234214335282653877577546503768272591016799863318687518147901566304177025689098877412442389516428589043800847429810841154473140308024237713969057864753118142228289501557844077930535274393847034726095864113026108458005900635371367336906488969222009052534752292313805742970628229724145092223353255232483342858701403984689392517272779330431891447408809796521753096714828770867112437805216575780406906452338676349526341318059998449541963254494963288063273832843644366809515956853415589851555071819825783910105311135179107004415040521266945423155688491504060826479597705312984815470773026181763047576560837625898966745089591164474768437875022161845666052046026800017110832144188314484851193044164265636336433989513876943114613630424785864545410237041564913699971128380360631280927269851253852453642904718355003803865208145399178012138804174132632331469995449482358467451719092652587008250074765416312559400348615560620141426080221948024116521664951642880663373407092088614116999455484639793371848283792669488277662737068194365701943931012163352266606899948442505695035498757759786142084000744826494357284406498016430009507847087368060189003129134679897082928115558439879808213509111416909745460882594847571865149084320260125570742030692428049227074025765144062676008429831494866931332684588763548514140243408355768625602847088755252010108907414917574655958828293515185113496500721573047517620845223599960686141805763110270387457185945401276352490735304539597633057065510999911324121126557863850343909579279448088519031778345353745822026184731586767815294987280394612214698759493164006452819036805160412607346480307287576292955750856295999797618943336049897493448601846054989713048320192144723280895523164338240067357263299475637829985642399436789901466234339143351596175981026637984258505498969537038580934326789585074250119230722140714353168701366948477574704363612463314833612562855610700185404409607063741379951993942598470232374056387609840933053120136101668221435981784510195483088179146656605298815716954307571202584461708719831857386031684134829306170337276768088859240544313194237952026594501917861247273503384717540334656173989318631293108575035233445189317041389836798608848495155828319298715281973706214384191345019067804285951152712031942039299467041511257251465305295845560413770960128053313305187016415735061573984811384902999213595339651397323841036096962876767488556636342589400736389973503978454844664743005304292571693331465748372485649131888751180849847823759179339331431974762070092673508144655194311260642325497382118218593089967942841165432335872807585096947911722297074556880646076298331666197562109201372150082774164354122363236713983649649965779366272488627467095657823585534176969858109879874860844037486471398359977519194471328268346284046595104186070249807720573068040780078872919333713141959141539486776074683986695263135864739063308108242729648221046136543908266073818737683732756868550947077668760228778693549974475200400869022173456257507433981270614066723483238290364836700484702696660738825742679619965703540050107897888911914208477792133550262638627490021049193767747018895485469788755706538515787536978806340569281266694872875613915469076626843500426839706741734015414241608685287056105327995557660216529061864581948090389339784017328808650299450142101384053261784000615151815581256924879393654136632013177311393783907814173837779159710432463853338997126428780971777286717909499903158542399765285887347344025537536979023288530687679914988547312545527342559027112297041438785155872970253697933159695054920000377164002560441612585753976890381420522623523814529161416201546989507036203761718357832882253412892116386260515568373524547476656934638715456906689768197068048057456414492117416916535615614645399236890632460164510933069766340951962677406942062202383194665848274131359044331284098032138632478551964785365000909468960798492156217364784892797222625859035328493687418574393210376623696557336022019494699008584019399565581738919512277623797291933471858736045958267500758116318807258229569145852730622793325670153212604289481448869949470176775021220888472634785519786561480082291326331828300374576267141255785487310244599997314832548753638828656336842329048145769119417789817295478152603035540741903843828343005944281136926057647860093333202889952766483774085420830860789479869200242979416209966743013966453417365951146815254110426200405663525614535382359623822373599690473753567950219978348042228932324784873835833660062370069712626941732719724810466552891769511418369660635913654453432606924432401488546456666061752168180390222636386810114571218973296071770749176884841916633793683606851817428989955539741580958331899137468484115888985483022341066735498653642670604736432247492231361548241040426817128156738299234422740988441018805229488796107391875588815503154936443177620361412193217542906021801887129747980345216282164438352239386877840713419994345473751595247397894576348037345064874510860423944453164055997359367108827519537378485670413521411323932610397304409385378638151932866836916718407663377337277217385614842172209561866693639646644253628186689198958586055669139481764949283748410810087644696202164751571389271994980313037967908668573860781332867139612928204223452249959519654888291337927987063711599517930938918418075382360102082316013396545284654274066003929550157172721368562909135230526178856313595356216161290765870859363042432451083173058446492231009556771359691060412577444498500694500661651168187773530423673652003473011178946686850681231123589592358783515299338096953809243617162873506307297548416268881871480737432021512802715618854851976169105823137240957181240087544785111965791706209734931289042124183810386189991008866964451988034793491583941309018897150527534551496607403230674353782352573969062205636033314743991236983512361752305758615836645517777591662699075022966961278024720347616743716711136095191199967043027499540124115516205012937522954290078474057373411194403359907309517237845495509789449857692075117736359233736219122888640970270295976277788229622906538982494490656965682868621133547691179990266599415833063020349702205465938980415914861078087336453869418435248125718956913170055892468327466180116148341676291538678503799187721018183557466804060895963306131675415144460413869664716392566166272800499420425522911890025866541778451358718801951950772586859649906170257116800063993889227825693020681056931763299271632198747780296752161451398204487622098356348661343755026169637040725615243596916800560294409633170217903061039402857149883505447855750115760998208219807183079803723122607537342554888877351245884956775696713561163985895658364614173152689506199950599990060376805323311076375605244903191768919522916731117715373636278602395924330807024351931521458603351374000304823697882235957753121307136724915819287906223507325263647962389653654877656708403687915124352852971395742690141348463529901732551138321084843600762985381719077008092660803216771595104649767255737899124016345865052668300230083527774189751257823891134154455439231883721573104727083842081696890109909429770806010783702568708441278526595613272443020567828048610836642211069687547547505794998423787373430185337495047342507970440968822802073642523688045099583874847810173184383310346594515749658005455407290702278553036492377869131386495500392756577050541249976669203460006919107288933746096649008949902776314259214607665027552057921796889153120618455862605290735797421384534828560848774956534922993823830229558543297984387766110516922568590102537155621629240404397283468029095072924365772915385414895150562594958975056799802074848767305010755278637866007093110755155323849238123895942214358341240416946064633658700535348411166129645555813053485283833967130684072137322751522215385583114209850071375546774192850506715670455373325258120921005177305712711398307945941295471697901696327794759982802627073592573594282447282133334971548859801915006830825883856593752834792020099788127414990040573022859069519713120401631177785601879825136428121213403598506773316991933074622819187440584426235824698033377998578515935493178284848375804093379814885532852780950151240534666719643960990497832694714763905655249850799625374688747912860530891066903597888153284335264490439251209912145145344480545228077451442663696006874942517135450186588351561724759415073055221470047202009286738795757411301411752827745765733587553949055881845868841299753137632858298975549007637872247336067801156650315743735227671527213156189524353132873689728836483024128901955550789050288355834099195862874294008427706786057014963280911252495075696530812307298588459788641356935118455142626694223892034287292288653491612286398703909141327282077423663885215815778410356672754712942444582205142179392233225050329689305262315202329928233907617577839406587371505005652046063201823707514979735614397610549637837954285797745405304184974313206469218090007465344980730305120192260908911221935209315861481802425183687600128179961756827337946740966589961194446337427913131175066738573429390324506832341214518643141031903959789661269518012349862626118559604069845328935344280741844364419441199771051762795257009385861254233099674175217357909397445316806198100759629909603075711177689008421486823333242236727016738107131086682065566983915577831378320058155246453942548506197101234036059722653454151397439742723297207402461482013950946777481179273645493257707825135083730352313984462416830539423393863152444010908396288201193473162981956026395419112836436005174554109444196354816348372200943442998226411824642784421382167757770942416809368429285168639859379251131664645253947403528345973256781455672912130985330593776962819285886074176501410923402679213729380668508889619590901706330208944358911341399661022033471962406971565617999423619291366864727053362578478452277940815984196623402243597582299179654791460733105774165149901480355221662703695210505282821932218244089694919465350732313136251787963164578076542047123487497212847566412323286651196311841520952546856829662174216082711422463037256553071946525700718819805050739478113625541808848017825159551804234539805776633739998298487545430295732682035313965665359852138050452994714477496762454377479827555519334021818815875630005228321560618198777744592952284211716472347780109626277264781394524476208634891360579776333577563907332115188072399213098819543843496183818035330900726735302932360122335905219117983738635409372748263664610695581328001517195192270862109572419294528118948589116581024715697164076545595514238896509093065216677330210663971030567432819913545937441178632988020644057026227780608561407726538529612889568297389830333135331883256151442058010198616539264759657086587673061421854790464692605415523168371437686261143951969865005317448309292289421278937379673073549967503239952383166160197045271881176324242309889017179094347643382048911530632236896194532644479577299034626070148020965763064157661347801525881889553655158664606981352955943480256784996357636419617916586362277846789699991958979989790247503723095857370680160635381733002448307971027826489372386914416110535040772439901029210270983731287884858532572080009602094561322197280071978582644449524836515160453217295017964855024088456091182317312592838826030024087614630129694660106935734739591585181145065649928913754929582647011403440013483197560206512792745345780958205917095024433412509110146634403887338400297309097553550865504094459424897454175335276134954788378246877395264315345938419157997576449190499316834606904356583070439993189191399016362834079612830376354203945152050024757805058604477261162178049600339967502606713747717219069938500734011351732223035849117558425836043679032119189146194908895962646407287087488987834250322368533097263675858662242801702778156791557651798776194073880820735520303389099372623390597520468686445303163962686544038609570725532015678903759439047823071623576501967352228364699237924875461629001564517920166383217273856890985427290735043992743368753042840052537341440448922407425373530909078007351229236680593002455683787543483242833963713820388168377970679696377414500414765297007744776030951358827366421819523856830477563077520476030629472126069491586526947278172302043529497348414468872657213173374331059493973056398921809656837013832917149102436030270639983948722048699178175283247270713235413677688586334801447732830817577730561329178317665851676073186554329534938292335045974137092976709735288809220841788553035408552234050960048301541939842645373858589763563287628869597125131441751598029380979269584619865329949630410683065917766510827703223124526531161078747272923379879686765940894534896138343510041999676358229846038610211565699387721355012252949712236286891172385578711236833260565076828306710956305020718510195147320168876756738986760317935018196412364961891702990672261949000165452836089689619725420455301693114606599078848496461559640455672779928736432762979974423288446644796119269068028155522766038600911564285415301938744285677472819734996321782568775729668291601911451441748483819495266173723607100545441684586415841623761841054060570508366459071755272165925719462177323884228606535417416523571725479919553142638785010085575106351489746485120503600413286672049703062239784469275541888190440961726958068326650603131444829287547509624506121707264475348421136788686848000843266582387155551648661351167091558576234587142508750937025716687593062462657402921896989626351787397465360694096811494987093295435935744755764931224002123788181681636718264015280598319426250351271182659834134024326535225423980096711322161266616205146359336490620400980894933952666115942991834575580706291578766081360512732535837422527225265112158785157747847102368444327896941053355792015932292312617114191310494161738187690295843685111827200503286498101155574147527552133669999859094572894555488061099700000411058917425979603764524990578101114154452815355270674704511260063550901923815489795035819510601077154120335747819027255719998094526168093558744058245525614805387126216174281827388669830667765751382703762416935943293086444551964077791001802363812430449384682069210071127603840289093245909126678496623293465246675480969199650331180328936539883418439401002897405415062207935000226568455908886451598313025057379755793421774112939390267001326448088572316252788585252483649411823497557099948734092539023686520497242341328006770163800625597349985948986731758216646952227726352529440705637769638594089461342397954754781708431679828564049253413646860788662257589105142727544541074166705006141965660890804663815175532301523138621547838962551826200111849201888406195989166003037940912139942541710520356922494348172305788120846610510736035981295643224472332264705013164841274866487950484640746891939107568472349442537300556148817081885858133869576422693607709545307640728116095453605261598767730142978894813477729634011066928014282487005693237671542814075163049712133309900210115189771722532187488937084539962945562510802143969331542572309469983276600646092080955676982276286571859185692419868305800049284051838388643565112858736842833299559977471520950978513149391741950337406311520964490365627637115242013398584993250173087550527075319690133691668110835056827729836440476442358697818090856571693868875553836300458474127606997028156940789894078553359264398043847867724549807740860260972715851465945824494588201061223449085256797734134017674585702437060533521524898168090419516924200398695833018130073217642129534717038985489749080570712561349407846379561980514852445618198044309867559637047719726963380867576601466682992664253957814404316985301519506496540448109511149575217131882828882594287838232572410232451120662487275304283509496412960793095656397964046476467742463405374576035329036591744424423645434962795017287871049529607095835947272287217096356804614020598079070369981378348923855325236059185465593588893925362704840302826266779110428169222382343301914275201870208278363688140494029702738560323933474031919564398536493946743100094173566982344240223213912247695546335112200585842812175549694346317613567670701436896436470857736110488336952342707676257573470569267917790525476396119767299663715364784276033051983860966822834870718712105460953008611110745432100628487520640842903466856880017200576873210281794786399401285430247551625808478620201457707957091623336730190761094429953877388719705000936865406129459221670011117029496341629553539884954997329596845548675923199899781268475097347699147159874228654377655470954859802388928277114051837481245064650827185049374992739765224589573611288473177150979069910538298697101960783147766260701956615523892554490527948873014346211018931246829160876623961702365350845493460014341168828947406662121186583790092520257768249732908457589714446530734041664020293830045806712451426914927105898516505629776993881808726074421649274963851114989456231883748790588926821772997440853874722513793177867620150867093372825159725252315855909623687798279456625543122011168757083666214852042038992644530271779311690086364404820922210564894055210752392001377569428110493494982049058106452825322099641886067632191126946898948892341298091310974286370822639633728582424735016503198761540272831479876755052359646066807173809850686019744184711623290822334828188724760300620205433275501361048468118639614910942876940849360922384653085703132747307734714443542215634650213001609944164133663296428732932187301750587820538243566206960429154027965502315732286157008953624547220693889455316510342259838058840918398819328011215746405508159112547392027047713329755262408354324485813694570220452892903933900167090271411295829365251033264694311937539264679924152832432978848475460383488436052993692805111472002039418148937110892818604857259169030147338172745111140973359670406826557376305145452176743576687823102388074851949328018953387493826336069120623710481975230496984981910006649055775302186503186471453890660090994613340321203059022278425364102744540851569827344944050217168852199195018367286133154707656202622946829232205970101102674480550856601284531085407364198789360951636080476760181493092849200209268500637946700966973812553114873978530211055017776843853238378126546061218249092531528606328756329472922430851672095094058200090815664112348803872028138099279544345494229952735927453677108811022184616513534880438879472730539160105682518185840984872758302871097332407989382191369554114320385024722763368264847650094194381989740709520438660382647106945585037598468105732022543358978172354348572576458285451534864859700026590213834268650825261297964613618328798526976216720997115978744184343985918589459434261810303734650028612945571732074514832202119733344097673932308848762299377486892949191554911945656323841757795099698630183872440145485897385079163479190077566303620658109756405966266196740200684488546341019563566127977041688739027489014635385704951728079455964278865070518117417239691862582892393856375258197050442465222225446936407834037519779987235378717872545603232108760152046045725748808544969201693358024341298928401481554412066540334598259497998245898445598028086882226102108166297213075217735021519453956164289996809891694110671222108253305882392219343808045053917748987274776415155748207901745262926260712226317584588964767723649448854360422771826011393986493607741161353417878002689064440877091415971320351654243495441291646024460926162147603811889265416693000185760911469585124377827577455314075357946259101878803594351704868735376937141182431817134738587953585358425175228126995909530480900466887441907565653980716063520954346470475648039328314494200535610862347329022038556655970009265089621462422793174616023713636748696638505706999980610338807485628436103236617004823570692543077288365461359461584389769332657449037366746768732436741560308212732453228938308194285652856431186432780335418182505875426176920563219681464044947036516871745718571470456821170306916823972831032612650647790009702150656337630839711081301981674120313666835518638565937451926539894759950186517876194823262834626213967180830490272995406174538660330814454736909737231359393309749815802830934916024116190449565393271073377719177977770093003786386186565013621404414964582779758032468183672703305004433212482883428717045214350691439528145934279519828323670747027905250636174634180518614678819039065959185505288626852812724552567774945188567248694324978242408115270410784673173879027186348795601234620740117488376825517090498296931841296542845367575967865618477784374018044314653121307423712900277089110989717017479448317885569051155876347305903957537624262598414658496103322535504228166629956291743645613394344544196035778943117654806466761929528814221499410130310035834964542084863537376169812759607084702605071353308267879395007861228820315828438632861587556294935120316606735681637733203299388156897223006477514065500670238698711797394710752452623021635488355052256283938983115966086048480097237359942502951430606345658806292807352157425997649396362721121236603168773200953299143030161657787580261761305756889387412332416629985671838836960356642313573107710776705410743922035423137766619894881742015802319310812535963466342291489420305780746582167187838833944001053510526174111114539053386023995086751449389764738733277824224872736740645615614088472932510560944393351454463043336394222431249621343821682605672657240378635757705293327174426863294188179052118514277871556148797873191239070350061624683974684525743928277846819538230160292250732752992263663887020219652800061239231331952598307495088295357811611810437455696359819275142438979005079520644532180854426941936425164053576881653723402915751694227834647992586373752065047865610022516134164087995813896212330798788468241687929499133564521925678648538861740221226225174309339868630442574452162680775173135764776010888992358936751856947436301165070271470392270525495301494950351751446477704190308313967243207662173521128613228718968137321662235268769694811833937412453163062214395968267584440374454998265766282507653636387153448723388201837075609022833119187387276560594924492118741346280863042216522742272036055744994930743851546745500482196180832743057229852757179068952293224029860069625620606686258002750060854404777019963761870056349887006627372874413806344828164823764999763658391986434885685065342970183983088828710314787641660819864102253196793572432958525948904368188922165315143615808684642579380380035322132104337348842375760194346292848474526822396145033651689828989353462533723590336144834093081555918547812747037003739209438868548302385516365842571572318383241269113959919480828295637678168353963946320950150247258848379832959788223596916667587228690987155048442504291691814432234164162494729823610880212283380753242710487155776457848607297782978127184821087894467548278463900566063403314971730944639680044522658111075235294684596796530403166138161799102834035540162219853870065502094745603920100299006694260254306917898690594277575283006409076837587479594046576692329628138530703225022200705390545502390221735596008014462508221512115131240979649551644906386669054461249840333912819793422430838024695082137912571107057742569367832802937808548251924260225300430854655141279392999437650651882381554515866372832101331935198351067497798847342771217160914697978303121343681821627335014650141724830698953204735879250052150420354709342162710179027993464983771596721945831990506768351557148231190257719649162774246798231935485808396202489855957701202373043167245803992492959594151945161140484152739948613387368208602662163882108540090256124449530156115779295247274229592190890164298045214457690533899077230828974270815240686439019033123055108443045616219057361888254952394085777554690870906651940417399318199628910568855191797341623537165418212210072740596496648509234264129430260970345305950399426259786632827544430587298206033707607977780016811628830338760110243288528131783520806517751778783780300695771175940235610554994978685507457787709299186440270399080993482267336694976331217463326592387223592568275862719414704549462432591068812965438275098062870009976041268832975417117992025049789789051353423691791594322284118433842447080738768321700549473730272338172684668511933740410355625425381743234579929702719603032261846647734554199796230602545061886272397502242002062131983341298605937523788248993785943444818492115660543961074887001097326519136330010538973301989777641501328749641099758082625478852738346249363395663520889621182276958678805066073109766279500205923059197554311104373249871208179671928969099976523723376326683288220024749389674678320506606344606781004846537732841078618947876347997263817430396450937462635814857966074828486363255817563266468430941273975996670000536681426742143967210296164374106004032760557190255104416933201520242737477531068681808719593021149949259926644423534452557393268154553413610201917739511230233425017770506070354773641978356335606325092821496461140179077531752283104323510490776619915874853649892742948159101800520978013868767760709374849680964665521507206539575730915583541634644907286818488647120359425602970873347610271407429523162941339683743756050608025470012910485737164644991970040842307217098372201551225368626050372371877486037035187890734835779445938108114601036419235865436819107875531845331082052667158679272398046389143089918005005979401826198666457472381852960556480280042508635056609706655164089080199129999008029448226743822895183004630814867031992800281435759857961312087939987076731376419169039317546191991802570234470093953001295452704816021091619401341792406014500535548977442149745601359195216414674497271908571617554207732478586469587643221374466568939536491721583299223954126960294400949359542783398756201462245271293602131198921000796047034647515206187108236887354450152148379761783927469520924822358029186308301908964238841909752048238982959520371690272407775108789031145061009437065028359360566507892210680878710539250500959157750704910758037243383834867100421458797099628918120698135342585632023444472001928435157054782246863146000531544285458116315930303994324736404758122247954590428770645229620527714310687707952315057931794797821286831212302260985196284019711372782375497203779953240999865606340514023644028713678411551923846838436446901238434598974202783664190766441521562862760102582744981486168375054988398780836967705056852213692381824885353993965575463000447525096853731751359665671447238175603318077287073807925662374539047707161672267830547211525414065451973034483417612528533456420106444267537624385210648732838045037995492490342096133160842082522881534927895647545266807248907670700946556951845684530513972589336908104334394766495227946991967404955005967041578529091176303009252954661751079433235790738781590247794445299031762613972291640065785243761857303617502765399841107447342898410953949235598582664306005980672264305045277583722513804044776534091033805036564287817750423906430839004167997116574203169820845191760479017243149717416932243547193090984073921166743743766592174559365352008001100938386221126950598309066688361382304915795719202268018316247103471241634368112144990872795507460851132749267597213868876513879862446474624281880726260512657518060596040641037181000660140344426670644800348701722196051579401941721447429914831429216138007381080931910809673455060364729738116433891626050987148160237219712887085887503030624595202705844602593878244588081796409466653163732093472030804648520649750152977244615859022019177063879331069058289110929863452625022145981377264518415836589749682275457756004556187674575649028090812026170187558588277747702754668628797699090881061649926292082723225540618651615723495048049166379569109989105940490722446568173350562649861367644910182066242402576061157148259997259209256900428220553142049817486982270990760411368895413879566870926551678799501085529671988065263311452489333536075344241215941734612808714388000949610133594885005479600921613855859096574617349770513860198087987742316725031670402733199321696925354679563257220013267395305948201925758000784717043609341685597341657173142311466311967363500676273511911299233472523779261841235784418041126087695030675767193491247127471542659366409880703569076790309423451670157129200952091969343951242539916849466272175239393690474262789647735127459112848261481735314355899550839329367518033065349985866766871972563577930701711888938325665135276585018829531177547188148152412761483204759043330273172137017184125009667775786768575384341731518702739664275602848604296331240186235836362805823391946465439891678441349208878746829474481399790579602685182833172289789392077756302961165678798247982054239416306619526013366538242656696979539027825491616339613938928050195079161019376017038835087336414144445183848926559598167656804786353057124467196087482018483146792464525464121393890970141737224587520353828127112649700042962018223112993550383472790574962310140388962277829196826378211835977664197688427101853666686014511177549772361523563290807791421611456481742323024361350431300342654032137686005098978088945638445108496580062423099436566765909639195919827753867968563483453831336486479624106919904573478298746545128365883904607460132209391513527809819121682706007688721225960207664691048921312223625732134539630807766190036241083291998908319770586886759868685713107308358545488741970952724498973476068044887553419479414074041910574913503152540706360968756185001776198286695320412157675909747222180714263220182086064605846605006432293724778011407120512339712011123741731097244731762482565151639541616841264312390567431570949848859075607412355847572719437483976697760258919347992306881218250616756759562488467699148988545314316400239616940128039279013482784726410902773923240831354384003972025297228523696418418558514460156724253184704237779194722652589812541734924237638192478035137852720291585165923406841293672523279066777523348354414487650973741002365994049134212152348083042997944633684146112238390559116217016317228320983467976492358655339128485640185450834447624047607459930547983967142604818202727234948187062627216776069581538135633713937344713740184665197576323111327969759855811331648283030685875636049907384470182281511209241303912353496426556018657571564277344386013097622006300319942503898304774778864606149804728190379235639297654656290063858898500232520510222297924226916058958793097625496446329886934870646424811476943262109198626377013623615976632314785402146821499233569612664897258448005130300741699173288321989099253337934304226925351803425366642076718237841421661400772615543135283777820252705761486461960812233115554920596540760206444878597921997718249747151810814308766940382425204576061375189755939271271342746246080230899291146146975956921931346004772951997549825854671429560974338114422138355949121168252197483292676254480244097937401276743285654775538416080545632972616808777777254626341566245130593621133636454198400661755711081504275716465691200092994008867820299754825611277956981670704569517972979112361048924428382253778768769107645151801901764128877069686677599613930396999059683946771183823351346951495379951985576814388422423006926409999648064779547217140533666173413587546553702534341117697594792616514461254153161161449435316804707777705371956024548045215725712916802904251290155355618268028927458220329180882694757870395632307987117135555884063096220379248490138045821030888967531747923598724944936508935507880973028010440968231343377365767339551901841263879204312538091054183503196520831923287348962855700277786604198886190405922693008558399522246294981232791612991549767282554295569602332204579572216557083243019755582489983678108672971820029264050480751985737328104602847274707979668526202956604679544729265777074931037104013974399947066895317562905908617092588590288313637822077105526116367137776528367559489962523942016817700121476055251194327297157070952932912377586497235107448468220500205189191604005604474359030622472205122116012033869962878421941602986312384093258263629041373737262866264788950934571397568589023427111459985506626145887683483182133301610838283203971297170728102425525906722531218239446895821258263519255409376377244151545455013589743378388268013878811513158645928449494299451103618961657935769324714304872638285234294872726772688446749621095006910551621627445258914433357873983608322896651087535344198109910559669355423385141080039263888865763051938316659948514142862268306910287610387707659234711538105033699885153116904275775357956512890306732633127448285365393232444392857090782078031962757045148298200424504189676348626828137603768408355157646533664440314581513405701725913669170614646273889342749839283165384558168822639198902251932659630936884540421545172806803552060711808016421056174418078104036806641713553937659507156171034117774278452187133984472341040296099769911460031235560317402539419963012860819921365325860401734571715773002051032941410680138032048772416229822671763884322091287501684940370201750173595164291719079603984235568227114960510248607436307163173925505693997831491092485459693584046586315397962061763863406195817174947766595838376420162144294391374130587278664532195797036239682733747842563870592315281658454679068839730055540318465365699473016222092029618533715373632927004018913665215915791609445119036109607027322947180352244738159608567299318882192125000681714529229598198203445350913034279062100482215794719954761459621896517150761599709742996616249082750858899074580654378550721177589296535864987145254491357128814005419371341737458202402821207907775860679400144126951903997513510056216518719140317464878105597517941333252792213829100454068890974505824293737694470138033520724095299607645685924317412665832336214684283634926485159765626140343147074448742593729127964342607066303854277599989221170501407738075770466828319114914372306240656238547065105593225910445355489063863907516941208292314977956497728858745710107689732293092726548245012998793383039682581029223825204565323125514691022992126299652468799460397410063297506489352331723911322439257202660714601664524599804019675558831069418010436350342549958527073122651310151952500033044707354673602243185780367384975445772855958770202812625957598789532596283864858297370627829849767291621359645367325684158147602309309413856486053172791719030146187132415047930632484558066987100918456864619495011552479048715716710511733790546855318630327696154643852420299633648606681119596641226269927969586914975461016974786605355496623883472030368984688329952549042287503763232292334772351487071179104204422322804937591921690472818603480595313307477293834859855735931796583502957116192064667209131796358659577566887694634358442281260276421062962257762151832745555028456171975425499520444025909102137338690283853450306060025845316457686340341280329066702968676230452043836329457495638543820035071233114359475177184654156962645671609019143078140853967675121558432865025496026300036055581501063124301001520448317260191437493130346119446783058526255422378279386898255793541569174898366137298897351276316891775150027998456118905227093648286274746612794327631684293807449342241078638091774128757165976461387181956678553649128761403602417177896411041836503763995313436960263485895596379866469248445744028069263919519427713788453206214159150131855797569744097756403327185811004853468746751889816812054553803812645260299734164407941798159986769380910376793731794252547368192813088268970179606749711216394145983930700065064735583172716796378332116043717398388932191052838121879067942770813914111132878253013279954958270688284995063166566874714390092513824049064492126294946374432148674275361519232165464538844237079597642690515833559974080805429110590907013120757902122557879554632564594820677293832270800104274087180031113189972585274894387653181390953125489534495461677371875336441650718348388171204830172522279545704451131495008359356021825525494546988698524867225870284601572922814564504852063007258634999937752861858133469862795846752701081249535456713274212927074164989177336881091172685370412057918923622031437689478496010917821143594807822584702966619519707798522390337455154421541197976375134737857347974775647449072269064884633511533491620992377055564435217416809168373463761344995347729829663817825572726662371114449100415599895584591422584292667899101995530763737395927317854327664029336631649210902675602548250915922289519746366935913875499031521291529269827630751392330946137051689108466002226947257171011942613564207105257653237517485426487570639555770345552553032034174973811767548105544540237552598106631166736667379654241493304126124138955760857628153076740638612676216130133627261538872972761158176871342162965369104772744925547162896429910330192825384942727088873970443113606050655576946867785507777089042348515067455951623209150722224189309340633349048097770002598261374338005878630327265864818022945913343895640267265695575797208098132904075956693838027854661840230206524370459559785402092158558592440725262137248915008387770275292440688119909495299640466588183550425072368415774207664895440091952762825322772857981293631456404883632361482999121385274372536380433205449414306162783752616288583052278437686245907249460612841466707183340524374325987668334283820640138384248621105524107513659927700513210735943906880260015359082181596779110872019140918511192726043241939560051757528247290735494233629637959404508154360391245588545176767537948235589826966246197766497763029800598044144500894891053230098069705590818636446432825317517723795055698156349291063600444411738057342681200083317244808349544821525206423356416193819930407396014960527462191072803084092239069658228436037240910256261674791033989339242969338505475864807181080188906258425439850092785401642197081666987347154278993304211345197878608685040408150876483335444974914550281886260502381734993657624770366423098261886199372779616618572828354196261871119511464732160080751936046853616363434089460829847344433491800037491727564746897654144220433142619298422986133059375106017160036550844335992342613244181996555709783449961411359761560674195261571285737849300437335788046915064825275167144827277551106802422769727379509088757279390758459021475756379687533174776644479701537534050050851069863000913629249607938294700886274756508986059758832772533763609377795853372959558279059657265432389474702512816486205663939781771703555635133361701946209792033024279389737034141293637445003004949774017603949856006887168217635932432958386215939485558491938403961602559271376319966909062053014752028163862473334805603885167098738184776520658844476326931047326627760179006976842386711427515855288688698595853933083573040035369045170527008053790138624380376335581878480870470471982651338598964911071527966263173958465895349853672982642409072303672511322466559450604422322548366335091407802131734125735484516951665871818607094157448871875183600687191709367429835711078226760118816389400137044071555019309438793634154360287365880998574536950267714584017939199774209278850678126043314710549653557707786941078696453200596731148529781169280372537409434618721647428760116654784023259468938360039709146789738454022404594682321817629870875849582728046947351879203606550684830382514849926647958704070150313361917325063058334538690437774550106198402321305499789406290061275366035787900289334070786985606017896321421415503541898945264524476005848380382552542983898125782603237501368693735649226784936239300385260849220854942359825162204827538883927854697757888131439649260741065059863044254168151535605758310645312245447935986595165348548715988327039058826211635879209042346331155573157957716033825481448676767654134490824629313205071504445707930222187664828504264933392378316637576792191349713519995751002805930335505020056372499067962213551406227822246796604348782466979728509791976651511586206577448475172628352733114626167713779041050277338081020698571030413038287444449547089499451873940192888840192486064087152140538592379572385261289353797069304065961858582984930833044016948821421224663413686900231380067033963059798055576190791540389854965363739884100609289910709037962678110282697202457557173914428141938401533642955666207165644026952366597352977331253585407992188505292289119624069476304129291323569329383565178111872881834418928640234215317679798118480665365089508347604311347420299653973530316782065617540808526219332901820620176231765052109196324711968305604281499228346578872736532391037783840966517659058894308286859425464212472565477780931094690158713245421700688116683698295383064941272992103536992229519059877279489493661110113767354831531451083709318241141789859530842279412870830702899606672621418723326010392625230772756089097375168136193158706391018408539260154659688930234921642772986606999363505088959634107754877613072915932379922189293281608054075398528172223922205095282825834979610635299580108827880208736575452705720315870707506134114872686904553651319591006477363726169593873417765700932554966958322156495922265607425268161560781597482209990758586394899848772604225033517384653293202781868731559497544065093932439886147183767099351385838015323074485700034713476500156393720704424211825507484482438099956446211107870285100699400387309546991995929818897801385352780607236973451410939548920403550274125136398335109979002666152216873630652897051962114038011241923706421988562159525910274807034152139359027387560042128575636211965962216705586744383626999473594571843163018949450356711550985871187863994235334941150572925138078849390844376758924837753849606032273098424125487904679845757394751574924106287484455137623053388803456138577050487641904477141840408742947219479628892925717412590968413656586728720057951350155611131973048460012353843436844845322055480670198006863290059711706772349741533143963806180554986112672273499027461642864339110718016625981527702837179259432001479356015394383637417892752042940673169114620902155489527479502868551030494687714751495310247562013281836865281728843461694870079607174374757996502933539641083066381587778515288152754881363816001522650154466624846110385027062917666086579788266143434548638986070015670591530862486237649644402251357833117667460167158314521749307325615510413238883661803496684611824717652993707377515145847104081234506229140725464389320520150562617073086090709610044928983549092002898279932007819085638537923125942686752788345548408067815725013303460383397654761976857051675310059184043681026327651487547461545650027908516369781155361564522998271018018335427740083870284622520896527222941581109565721297283808342695757661411043129955176152122231427419871593739551822058340497006612750776948866468428947576438790615237183719216376846441689677385628322574197980689219747039525041528037370620739587836893512215088606046014032986885640555074054998755292962610011890716992691191036280410234013685720611997813687125078454371379477503313670856029056719476600347068993647334267024781631076750372991080510369585046025892733393299257634887510934755966008822944772291773519780463020331789792949452063612699585289712354772433152515276229077916392482969729393074678592772985252756989690403070214392365575672246906592082545883676175640263337775364517842255494455534765889933222193735485057143580316976671894584723347235070501034702542803278052047547061875801256098187480396804313587656425686952436812730720254096818769193623114932458264253380972871682673866746766443443295554716750930746150523968519465862942838211744063044447403762939363121567838313181766300244307250851461518517610058221355978545692788870860106241954458656680656576117703105719758020422799770717525581753538010208122426687107667435201430676659918274019819484824492958116471620103903545569883551631737235683400365824246640807171851734908289050075639466826155663968390698154377093286170850891140847095513136795091412813394736402601192437317864272714366886105816965111136910439041481278049884636201167720795623247043562427910949837415968918926343642470834699845512034278896974277884062842826568635585459718168270148273043977865144216754075697132557671579391992090431047499767279103668360266892263737500292672488237384594757236889350493049030653499797449346645720690886184740952916972047254764281650713231629070806948387665451027083773003463406485468889132045200669650579169776722829863514406461052964498186476636256292345429613038260907164329170529563826136015450208432470082939341480539948216669398471928637599795452338358458862133517953055823680793812592428930028135037414010652023791598951366298766471053706681420593446936807005520629539304156778764914877666703293174298562762791108452173512574592707808845094366955479261262643439699436394310404232720158861742372587149758943808441434377534332919277941765707388966521160969888551386592407894032404952876784482753749657912456113940468630857825356466220774329549398441659834448775080473717080600925662427333489453043178344720417329196736084733606574322087115015515995766962189699577078231913074039247995127974173973791158193753244746392358032082515533951663952277244156387493058141418099399475911904205907493768222284690082669760970911088720363810178572718832466035037005359945306058927724360682634657156310205194767331361025885301533279492055813884600531974963830731803248066872959598813808789375774479338209742831537405474546711050738347493766473254133501967437799628175037717302364821440652272084564940377256450303515756075967337935558429105727428481438604499041153472680390461077072662554859435843697588613479589829589068318595752500938362135128105527061087551487914268090124367930599149971675437882453444245349998325679767001953020149747217889031216690965813498914790758254224698875575687334555170406872308695249214839943470706480613355834098188640688873920511714002379627645089302080152834132404420575536139311214722442585630382185512298663278613948203086065852895131617660693291324994364746429508246057114338410700941171178888044323564620536796160657024590565669568891565177616733156960738858241104221896796726735946072862730466865721091286561813430125177568763261912619322479770445527354038595551173521213480914561428464930407737869743183324109703518711696352331514204942411769851154615210564461680328005733267109233425769839315593766699034321678059658738262313580337439615439720310609466018404656405714183702051580300366980543899918701059102409506562117321015991019957520480705286579757413741257055381860540175247797871009052266872729790529178435481480355904302425090635310574560893213535371238170094986983242626108346519107924924032817302256533028158507738900686044414804934290935922344474981151098675754488888174348912735772210540865062863927305367519624658429999936011638741993747981369266834580699255980227759224012368675231715874943331897145692744950639396956390812807368242886030744748094276640277075167096118437141262713211229540259964751943585316314711748287121491043682378897204490346095743805409141850195959660694171480861313977633519781116916675213501750423451249086732541652164315764129574609681994677258199879843393980843802625743422059812005566485372676497919282852501430443077572378873505621992387769680891997447319794861028122997916025955279448201648448437647222029732285290105898465637155931853126855891661012949135840855824388652343837625942280347847723102564810846906199083428127078550900581406429880030024488555553321731214140201479464976735445652108674670405670377414527471598210201826166654080790253554746120366737735502546390851594627484548899542733092561050502245953224729000074175910077902724286696553122062991923506510453410600860660965532205213448476744996756490848176006658790344553964135497081023661679324682115757015894040358951987869081813763886772402690503105923114041637791152835900434211453804125476927962487937895342595647868737344540517986551652361697175992137447144694929287340796982403584242598538769935984193544575740416341356889452588516671131073833674912298789939132506168426878862978983392655285450850536932909708733244723095223678418048067489423476563381021576324880104195487510699105898934660880716437782879869906543352329094155117059624528321487615658967441969111358076575954904712542646030015234639988180449906260374972488906987464897666306790704522085176913530212201725123730795858075857044161645985717679360409602743251182897415922695877159329457630431161910939857358044576409412812706102514919679549389206648426207585966007743142654082177327659228864727601956976094537135557203730565940372964635959475538543269817676225599568053751514686548776686749524508107942162694797214080440713596132409375413387604993281705283681533506630726289131732269618188191641572320760721542841855915324238310471454033007693481235353494210873210882640384220568795116060819484787115249456392879227616217017650357614744947919574481442100723639976788125836668961922422105542327424282640040697168366026537168424684289212139024201760668458414435829660892266810565511289670134738129469153787232189762008418300584676629739781302691362468737176073943177842324751413863533825828349672828247320373423785745827146878653783467201374552984280739856273368475567085469139513374164246755989110585344468079821366053059839709008491808524239503351846167223106193658863152115537186494669508643168537305915611371744436287123577239113556648777092748327799764856151736289668072620510661569200091355551365169862865411205952657127513405718105699459611482834589017519840561650871017479024521023556659682967895954024981737208480124914865519752391514865778111083608929714610636038194921507467341444461906826869997170897586530734975425985835481453379712011863432608613329761930548678558808524406499313625745459171489426310979389801918601340262176826077353913706086876064711607677670185543087238913034428305935764897462336015025133655867776864968718213875559688999708094406481546222076083266508852809991623189697711541345769772043849261153287438746943178034472020794099538399603169330045353151614651954942727810567954731324102555680335175996801987093751044088431017197757973993620717520974848545364895971742906468208936273605662264683681307063971836215442976674676187873253827634900276328510373692127998345276783271209295339823882689189269731086353348597532278465647543137185408082608486873975189249689563682301604687725220664507322510659835734660839510948422475226223041142341057537766109455532252665862612710662157665090517215447493536379180771547443159036869671487706058064100735842138345154464080903742072801902081677024085060266014645129579518446693074657024355834728412202779599291871667919440569884993859891435442871411951798325175330969539362999022795042655725132298768413245545805138982632251543031680203973632351636405686384753422541626820926582163661139078438370573251532643278362456550983645359648168547659709759604155836061550033844435997043787038860108690545369300086196479807768416853504298281145797368676782931561101455077544620308575952875935862869581640242448889535517180436214873864503031976665354359386792157872432510526171496183616503511289107548089518807755624888117454025343856739661830882488221102469844116428969131928633742922819270571970925593950769769980595323307029475071545587411392645333809005546941966640639639732629570939390773952653481455736820811234545721750285847462576799966917746040619343652471447497002476798897428034754615849766402820101245845901250999259428997055948926824099424662132702637767193760031838593219683956240045477052077641823161509039569389851150875836741194216166204737147838692800659683866512434229968379088956459215375934812590456967895315770666428772708932886080998441640036121166907639497523401624235580361878317052099624082904995780430832810579697169726599684310410080398770372119056014865572971422296540340400293136355476239175330172797397974164570180828709606249554557261441502593601260981360701288469915034583762012401249812073679342375614238746410812490070454360600766098698221144155473516003146281381156265235733568654861903130718534535060610683701186694059745366671057326385012527137232965380030398298550534393024296535227065959745298509488759508259410998196727875857002952943333163898410405398970895038505554101460951070292727403961113359295080351662830565356890033845608032328952716994596066325644376067792522512099140036703645355322666593376302120552858238521153423908369801817063586336212015194081411105318577683109190795390397686243098358088730787288527585389932101959283542993795222316734496057720719477581078500951210892288495703917752785083164178976674320133027626510142708947409722302752738818995817552834437241337025235795974127561703092388386624901083054105068144543611798639430286382729780460414555815156765461260228482572528996266942763875159704654425342498859279899370740467993153666772826123501523614517959152065240910881315510354175305842465225058738812034178472328772244015398047924907413264093636808541155584721085556243135493793678731806652407875891819730339236496161111562965376313706763991763154585942271958899897890466720488151250485329423628411236639647621329326408230982782724485711347566072139033832597226799065855826751646704056358269261686982183720661388934638748381627776910155303215985549455700006420794730777112719080548551553190509428699614834552213946765200289718237627780119415754436951975653397608339329607218895463821300680423237221996366652843146047969058259941980663986666619168123170406367043165850990399304761550695610593217941887648310019829293738432564574079104422083770964154963734613302479878958961737112334334098943673591937686544080960090736011612151550939276682551630670111079852186817235863257691559171557251385516378244900698671105203234642287326276659680217862748401701462237299797936277086987683613125246214237323255014740857742738742039418670501027597596742735781894973685667138704901999750497907177152589157765421339936571041547653245504376993832393025121944527388335167206429980997215570778238156320006406396669454105718001909919309223712161730804792790376967130059126123953193877787165084660024233949594365088084669244001242523186655500502815990190539161528651576927190351044764543441725849576904448748191422699425783838802493919580014778170574930363851451099096332746204117282136020243108538161926100099752374782291294813662764187052587368414167487577340552059828781453590798987311639073913294005298134404897910166942528075613819823515295453981366503191177957301255810824247359582077485764135222138597050559704057504279121710141232867249406939268243734295014626366548626302211632209249798930039308336282714483422444942112329492104525941818963410295131405104617430664098358485180446142156627369418829095203775068538247423445416274196120488354765330952428051190140100924673809657170017843890721631967090990335332724481289284098605479766406211946614818836300125844728084959024549040302423220155319726759579532517820489090798835611816926459761532680924256301401618624888006897080174761261765341585123238037231571889127522136301139360457761960393063635295130314814340862504071185334338857151537246355413265875826754296530239987333006602517876976171012573903522784425348256532549632120338827702931894019482147286402395863805802179122742386533059201187633102771540002153692874675057189332088348126683553161021063581451176831661528645926763294015304764923650049988006546367046478425701492229227123988424163779915519334965541878822229458398046351693332373909750386746523729651668939500001262326080710204074607787224238637192973989305426190576792219310257553951619746323466520162950594309748350700745153794630165729144751023784699607113403232224798339889892439602946823577737692869175140854463863821736298621367520011678629898607277120502010142483782465412526219881349462068921069554742251740393418355368896503402723348051043596762968044788335382391004154302134373634951876143816035953921593865127692367703212692506657396810697000027037987150006817388828224587479019808486544891561309822422373278572504496453659644484078708498001549304759359347609220722649809766560657886488423178924298366213410798692927135563676985164464452081415578736123900300987829651082986123213998785173161614487947209294346336643602543942422569883758034489935356702263978530576839378804947089060154178816387654789745617528854537491965149381767891702652186288864644638727854045236344023385295688663148776313189346579912511066421823397767145043221002789309856023406517087412826964605190341836843194921963919765751957949769910219069949416227173000712703221425119485392955134297159211499376943538308186853877551371921526570394608363838682028831070960312927153383290379910174848732523076946840745436747556842825764719493194079437892705285247626588881342390925221902769098706668401289892584112342983695613775448159228614079721439367969621559227469367929740543325486834156159671361068517828095786857348462920112417364556607562280173182773545017768882440934592111747320261769540548899793372142909613339383077578874754970395160453657963563283534429142440077424663043429045028405585867821855093330569192530677030398129250720800329908592102872947588458688029186970547062817088678458106303871273542199090093292516600292469303367358299174893036738684534100473157128055693648463665149428172553934286295842313573402849932803103447494502385758892966485412638928522005367821668834008337456998082980795794712436002102783870565512251380429544936811935654278131133623342072417077954410752653252660291026260921316735661877023244767883103017649256592832669735624990192608331378322311013319413433740770677986281118171304996297013259373097217373739877101161276516148157568320002128023346777486664953787775457777689678782535535079842549097130323220332959051209303912338807127696302268343524378759198279771900536639401586345814019163399751560223458109262252437043962810541982520440530684716911691164853072430945502776796698882075446770108418511527953719105072027320348642571571295325035586605024926881748966553836647448534465185924374797036300127435199922658315606215232803835804256271692337016732853457501806209503234920921467256144008457740427587411276443258151576777975634702761545563715683981736073893363268185114283571887765063793317238242024604013645358519727858026966941222495112152112735124055304336148359296465339965068635224357347416556898917255809203941279634422270503191359245461340341541303214082985717905473208756082448103114889656915954704009764924534026053913827977146895494932745689482174339607470094327770865640571661549207514117910105688831305823737918601907096656001332538099780778515118536287433251445618945494661453080460847711700176306511017610149659378011722834295892527143397560201420637005355170957685285415620533223886924638740449350832245369068073970422550951128665420382630302698722828150167714087991804094392861221979158304413574596550351403256936248869461576291078523021383231977892098874489091285544302901209046552971789947833209104372516259723602300695358005564176080487650509274026243322913060782903805500405589165911662686426692685852282413036787711000352272083246092634844091976646365883802999565839600650037248448718659675451390330177147990131285904591574905007187097799599751474572416450601272667085065072979203308435612474225170718131331800600822815690125918811563271180039639129857981753491672199049491272068804578244569898568498200232998789980263796161901440739300155718420478212016777746591729895932423232481984274597308882057154440986799868141660241651714679797109461945499680763824468209012698099838690324117917019735094088370991793596650478677849786456836501578974828191667087660179876557162710273111342000910053956148395254053354174888731752568608905695549177746729871264106592466349197085459243309504521057594741061981826882027075207652545653922878910684841942173794526311074975822439854861180348138066095767698776179934412531251670684867518830822400670831314385468715816734001886230188571436739176839545497299150194462510755174639652557852994576951673863483821449427092326038845966789708051272192610714629445230135113990650429927519725218623389297281541061916520452766597795378848782257112092938664904220893230937758873732768381484727127351055165472071774951283261846359351041598367607616288205048678209088218055488218411366483603225737037227430615314010003059817038635170242678845153914399366615660660822843788894812974098661541496058340171103542652161069130467726154232520609728177612979084599819063031968717193237570616778517037472802212243829952311202385490500304240130819269419894604072592846101162444323220656864833581876489008359711382848883140036125110976053544434717120216808231744647100983387341103395225363135598489217457811481740887477550843939591788999053106629557143928351340293768742711554709469657830868399179342607800247582294565030551816794271759351314162007093711493977736591501685726655014986697234150850572504424989963798934643708909401003616549398581585723865465143508532383802674116612223551622483332535662926024449525353835710071846861512849734304371045044878899450137418934350599651459693711939799504413538240050790109406745831921069693069225739237599090187996544741718811833316782119390637217992411696688424650438741337401653426878899091291296946457827464396843936085850287495144722990759692371493457370084682770357473528881712642044286588732956830250747602378931728654359394572563901353231094061537966909016388062781354790029202993271273797524455011390095728002428408773716977257607781507792868547819862804815624174288752115021054532327228422985245342590990156615686089898022245225397177628863784623388808228932709271565272004407653425750143238539907149486960690283008974885218452951920390956988345517882257782106986513528734902091573735211922560333086795126146475901532836482351190609070211584219772392145219245083588524889015999182966786665071756703149201982975428413496088171868057922622572100763003872365543698454291134750055590328509107644739556361273822881692631052889294778786127821974928436325212042006365291650531096440750135679802841869407328120590737047213492959516970440307633749428803354320584869478795243946867767708809719962765808703470094559179114434543567294082990848604597949607732489208941246849637611286405033671228593710884359950025623348738182749612021461745350155010424292173286870867938621229846635475591807200206545965988414023683119129418992105809729907523772489686589864322477173964883021966879150345271668089869117890125038167025443498211920321683849546882833072017262361318595878763987422097507622169237272738289385252634241072610474539251054925702550090858517369417928844404560417894896074321475174606508179988151111164342194696800763791733860081135482533085302328963352301718781007888563201126745813879989057471127391472421426606594759924157827254763961639165092213693250562869695278852525195771487830889601590739802585918375588571269876248419637557778456572940963677648439513545631078053869351718914145258954309368501920460836567101695784790436864500171591475988725704628222816222123281166884849504754787850062513579136752640380759089384833929997763049493084978544998805500229248589739722805202793614379070458096553008432728492434775337886969263571670610973518449603315111176567200527490966268004617374798949161405263676576816392285930016945817769367645150397776485334168073719804281259264953935794607187384566581330405149057124544143044954613149172749847355644698709703502882149425153722146789106716657851527239066809670832949432059825062143072030424712558411352397704212153645049698049117905238009480359500420516854679822654586913737752111492520397790392331378074142278615017903551592874958905715195001085763397309935819780035852402718364728967791298393876477491859699399909781752598975187748669297186543575922928053488498973053820350495200371315179692822317965726345304283855923026507679732397754300541917543505536586932489063544134898370186622470927630023242577782194974500848858627048734671851655181501924510174331009156714109004175730504874577121129592160191826700025548068932283517311339573097972953053469758354375673288051700818293946938739475234323707252619244775396208555246083425029152033043287840739765729958288716292418361034830025959885126176097686917157229673514990670949553741573909330123798986842142606463477997983126680930932264119193857777859693307928771391896679833028416436376071354554698600158940781317966392369017818160067479831818733432696894160310139707755357117547515525808642893172914253228422307600316374608947823083640095032171790681869364954706732369958442055051112053082015550090425001148124134572518580034439678605342265777995655390234267264787062001456062306339038593224454163359319307405597693862311248015114533863247764404598033785770030307134273642505124416933463128931642590177374802265143604313877842396661149294045847107608946266137370143074645238472019751213129955023393846059082209397409224650204032976426383293252046593272940712429481270736925706736304765802428623620688081644898059381132449707117421926979139706143815797283538610685682146057517560984985843901378996735411309435169208041241292341478188915715803043239291073471704472933714480363377973371957033902621110940750603255144632245654957658394324195121285720665162944682248812059189125229578442691008897590217285242853906592957516009680914644054634732605763233217416927500965388881741450449942764934413408114098179045191985202293713070742123282811445295893164180857578994293116692603924502003628797476180354096981100713232194213898663856384572349861699617478757160108175511296320063533233622575515657375164502821283498342761873996254870665411285321857731311419505001120708380325682166139807866832966239651738413209427623926896226051573605067636093260160088602908003946813041489975280372100282538735303581278366337705842620433597775918852582251118108020979854253103960144124735571700307873071170890612202555683877102584222674286899374012011670491485660916055694236411245807188991570658417732916708681541208152895367347335201273854780159648114716714638055941636954946882843033635843585499337336684597825349646964565110361663207368573615168593429848504157359348066195378043479475076907413051208522713865125333574948611805064078571854639362385208648829855706799627669125317928307760599730355480543564789592790719525071651777390126010292884078546882055041099882527539659196996841830754548783248259123582079067413084288453295505854683837411420029011970310659450630457585628037247446432949204527132332871347907321967134913070842616704327689788994194824398644803243546495763796920842656461457214450318646385504324242614618266637604861119351715117687547118575961444560185077947332026140844307646159136609016758561039328136358697393349385765037180641841238588364657058720317676454429129234784491461488928957088703788115371374128135351605453314816004509858271221052886942401422577866464912850834593100340545437071317243930524553222967583441323450926558541197127521772159292699771869811875439966789616216346050242904995111005059025321344431207651055230993590419429143759947470247305736150981923281738965765133105430299489245771133462287884663780516143563179980098121249858035353603794093257207623793569648087479300790221290586249094592285836568217345986969067753898766616975158355161461970361716059147030727750123225489531549460302047110309953596212898498010912109891207742317803779699990345779910829044945352651866257653474144327880216227284666402581116435348771876973157679358253196853286764890965116231487371535456546620809006841368569112652921695297848763461952255529211689524812738809721581499297050569815909092460785559064174918882257514453688815670143965717704224642006136617446186247984131412475135318316037287358001273551736662084218598029805833306896187725041250186533841852411034159344570778055093433636478232238172990018939343444582279346512125043575368781865812073134308968871950078412145133478531327942290785586919189703088113067827160768373000536901811305149721575962158332395581051177677742259041700697108466567894941641187269021355360765658328191533203733946929154377655916945115563566079312396298361371507512915352670611989066381985569765173360266060544970145595360422884424381950374916555312260133947654106804383531672602657722420054478503605409220117604268140541863260114085888504100481574764110733464548067069483087977062739911406891767045153763753121639938507632069141593942732526257545469211687742724845005172159759641666604188441315518127328268194909266336045483358500867627724560230090986118921666156585592950653649170622219385826999901602842926165970787159767052714649450983264243813798185926318010285090365317721026198572510857035025038135807141765552844856918483672782230897309199564196869935474433019136696047403246496043094212335835127359337463392672578220399005707401357058976052084482900666894901623635104412620832916194503531089217075522942972826205002977822249424904347447663335625594933733908433524104511793030297450288315312663598393813604913414397850121022566102526824397945673864741080745216755654255517029515477553799310312768527685153008656815030706492594693515781924358267106962489810996691035313596498622275919992452102628717078329687338089728038050845448092052613476169731869749681437445967760450581299872039981293603247387792947674905863240101402691419881669747085208161199992373407582623295652485847381884258549208558855788096367277842885279185245560138700368652399252252347811872557480450195264122387868083574449533596379919685800359602189604257948355705619928400070741632894179445591709931029126817181716290626857798951461073131455717166935467320503744198927874342046116497603178387043635307935747267960219912489135275578763011265038508669845499676392430878583104691249428314186282476462585032833983596847618932218466228952163635834171618319456641617007231838323920298510480228074629002889088691722511752824132737913227513653640244910011446645004896948500730680164419175060798117237132521601527278436212772041282058793769380123168126424808575882668565293303925372916264595269986234773667160362895414972841467741288800246304007832093260538012524394348215142018889517739676272145802857686327556448128348603226189963412348316950696263429402090109099655483708355715918720431798388801312493037509385795158391545059345082431941027242659219636046647920620323908968637580394189866698118192289258946360907147079583285158325939150444459938318359100145340076098972572761279012906563096252124799269552515038249035307155862194168533622216651502743053651529958154388068914870692101651165377926898103361477368812798024844047204147097708604611969619031314523889644542858385536328987599593871097092171991039949432120607346511800236102536211035681474543433172000794393539161367988257321612953124908997093701104348809208286026805427857697745202216280627762413886589686289248733064015958750354549715146380428197007351899232847706305972265893106441511987544254262359650993504464500071982070196415924011227560630496504703717993966986135659678409187197453595726392153366983559891179355939208187280172400390353538491331014034517462352860104139288305560748827527612541380186441853368831205369559359207317854034742096673739066259960988990362356651079327569375960735571556616116086165902062551908075681530446916746000745848064116367773138366220655759615378295418002672077813807146896222802131236942684136573682803033617476449685083581999046662500975499570713697432919692014449522883081802699462010124948715556215559810591645401093529895442611180257815567501707494931416250341232612017558098800715280712472762649870271349977276320884269396126014549568762465872505854808482780436083802853241694795523710874356257711929688170337341584267826581641521922525106512891463213310961535675267376277918123555544958154347628541350896002206494498126690817938153750932709011520773065591061626768165650292525571201840958278450530190065549378297602630083519730730530535851769060298179317500828528470474073855563583421603807374922874073734262211653032813454297773398666320209153856724330451233115168743397305224202364912974079466960937448658834981457876560042846138681294962130273986403128197299266202362971343988528140222693038313231102113897974682136306416955700902307287509970317552760781060608003298719814239963897548623068913699992271370742253126088673359782610396451949545622445120012321889814903659686075443958680853107516150492149522550144224021218123196540248028177385429454051293665812155328412278987345351465515283165112807316615191452835728512823342694743749977315819825037963562274644646244058156542673611395727482374274705593815922195825254527220654477782532520881496128171650284383388500586783323632065513446271794335069868934952424838042693541295955071900693871204878439354992732867933582061066635117880244872524500575786012312167505980162596945293742996569789845895933387670299841983964224540147481390360152109660091424061010271575997121331978078960281569980427967574424784289397426286085103592947990119553280463391183339562686138658327926506191019468037658523595712274736183260515090702416800191123057792466676095923386916090396929174000366391047635083461125208846624182585399656115462271416298673082334716303874356494701136122056374104767939303591055303492015061980522259427270727262507452270719076909427747955462031881144596486209578039804193112411436484121011230341233609138287517927940351422552210645220465294165161104982575768334100962861753393969126543208006520966978937367463111481981358201559369545329586897029609759976507354305258646220901193763841390574199943369925482017199305148725478666690035647672938531959130910716335730635122857169858583201325071860974637422610316653232710196551828132959359654234636667102763844270493348414628139051554980212959594985731234834910455508697495618024137832471902760716952591421894343869179788560832119247491432173173129333199437949035947756075805286379138452628384034084093078933026768184486816823735534965927315806238074764820402410833416923293354040964662023444794679078980087777680563906634799676163973535622834299650430529784639457922717694332248446906633841017460670847032363747079678247900832839594420700898145942862970781399727076645866302833752743077543248747658383660802182195282471058750833232369062419085395535322488187008909450499202400462476515863273229624490718489213657724743451956078815648411581663848907336422520803484400531185309307524792493056991532729548812166058900755242476806634553541216765935662327121373986372961363158489766161647314872393659155805792954023326638627442662247174116464839034394644728333227771405945630878420193771458461572972953538394547002434484121084394901517725113230861837426911014064040128983844158632092890387537190641391104076864355692377850378542575860161126308762605139556533967682498134256289727562038190565958144778664705397113212927810485418709201911069397242299899037415623971678610789731443619778851428172700886270970776045758943590671967381399046935939592267616926594299078002688855807074215185739695341405233479154259154119455841828805947512871755508117978168425079391098540316940673955431025593949520807391775369457350534945774830002453881821549123228090482407160789807415369824891141132564815785277772330444456555142639729143199163796313716648124571729675711404469515211962771098802936565247485519236670476898475707404005581675928867990620436683566776060684895026212211108334589202942573231967138133394732896229175488679265676079609013156722292036781310093793733637962037491630198011889443767311760419525331994025328820380910691808937189063103675863337037747580605040649969939184654753722240383743500207171536630770483217303616256025189090826593453210374859196546945245518910525406675758246982849298786636953290481292961820204488970529150924978388570917853797819823235024397134564728485381130184520331733137543294972209978415865639412951434270138745990978087505309347607182852579222505911866690450325532675501965619156375340752311313012096229964566320712715600408576129908544665324391514815553385196165299102350053182065011646420932750805312546993484345892352856875008105438427017726193317098571196113602880215112288344914286179255759337803625761624212519782810848404022731356993978154152030630233264354128865696245635067778651542681806857195497026453783263387538912055322598736645153763986923185718529008540611782972607492012652788894947958516318870339351193855682181885400203866689945495625516201823367008837139706795156277934650950008567313950861680925248585884946516523092153949043449030742737454028205897781132270413553442022168179399927788855233719623032877890821751793742540246300231635566873860770798840604151489907043798335876574996444897986393209110328875595800931592275494004913431170200249806825048685074541450088986080124564399014899942842662491044117895766401794149052972773817729961349409272974616727365874244049016128746466586427855248245275902602548010097202796627669972421441246084990257688378789923350778718202038795404325161131468432100553337040440759880688836397768872892358209058707255762445170433430129278967644261385646167048360818547928848106387481169365105124470620828396683436242245597379449630465001880960694001210016296171037229145790519374817728127319346671128707198132141724326891796232695275440771601273863235194175280897358059309647823598081305372468188528864584219154148541214095551345418695750951501881485671508357535572304700962546449960206152163789966465052221908410374373229573505085099469695266054637517308531532944063389884024296720942075528507420990349111267967735115712996681250573585686671134742501080933453807103948421850369265060484768367452965621408289348563157120735870720693861022359258515860416035004520059191400211770636507938658303824781845421685781545547392522383385079777717496469758669173717326809838899449717203261433940141435431835537373297930782819867814075313982933196585647511541109078654367962957525992274457935560814544457471367493223591876767911920235054122794567086530579473801734288229325798395831808264353852397996797299424322563698356677027404950098489404254463205658084593102652552573765542788498599529655693401042866849808171852584267846248601661530293516759247753406364164119205331563676825873083622817071184808313597675554682952093692329036162321377564914011202793805545431269910091728939722224387904745793921847157030584957680951216770992936642537152920236310580551426262433208529472324884303833571969833039791942778084356478132996255241207812399733499521433162581746257635865042584269894429835407837573454532598267037327179650041878840661483291901935232914707407790164598887148076144302389184956575440542361987626496025775202783971933576076445345639406913629555302247656406433403017453671784285560121266270229211528458429047153658070960907712938633286910030229673923979096248562362081650488477162585169604542744666935770717273670534295530711148572415197501725755266001022741051341836277637016821777318281192023019699616782207726717512232547418101527552701032232053495315539875824185188749300787799519387510835000466634806329413492927380617555295485290473837007871395711104688914862802553329459715168419023403328507933481843325470417588861381817387543072436640455907558193721070092319632502931829804201069389748581891375594436454831886905080647049742618871680071002662450920512126145276360679575865861646589419488502313983283986909381069265099934191521553523901544962262631837674138165654040789206085248602284892068561509808025921951535674775948702768273453988294510185797196445575574025396798995427598701709211745689218538798706856940317441945492116984373312731337193994286426283868490803408749510189189056826494078725650843387399427224734962619545809959407076425860811473803970622361989394344843339034172634023448548077564118220319633077108096001705649690763534297772938882456606119317594351894158359159221547644626520006420497253576359607968442742549208954822471198096802149724510945945830138101690301766592418128532153963456319442282376386466996233535478448097443296505547356333318893430448556004423670535091982151397482293391952449433051648552741971577308304131980542619243423332405800845316254416622564832064041852832254008474243348448593686851322649012586907149473680574656368941438605026930933921886253692671986634574685208626616769196944644416125948632518691207317843798699641791668780679114162761023275055143168416254453811488011393953977073266693321755973846905252246042939229799926903812689781169878331376789532996576345568350466011333884116308608143761167379075743272821163969338607296416802558535694141948832144003729005649232012048508841746342184291255670178036740973990548564452817118228272964507090615541899221740726786438909115131112552374733861556391759438598435447929084805308675919549203885586711510702548267141212513898201950786543787436563660500246882830758395034602339499760354729390960261174401211265654049508097170503529202447243453848276332418285198174698446906053434691056509734135680868979941612961291539334582195476608297084205014712597220734439986492045423846644140979836390469066731057675972838171315334239891256822950055939763365209006843051336113647454621455650641661358270389897131910740836323203042737056161297196292179727108286669657255779328149566642430190610853459496115824938504691489930103617357432199966201427530896175078703545505780135775596735212442736116411015739003794643655082055561658480039943152342899047437238328442426406277919778073897544180006067954960254188493465413909656351632954796815403875651587736752986552920999470860701200236887581253122010882117540553098486341562482973037232834445700185357577796889322983237648436575552617096230470288989573632724307926459275614428099682390461227032100746612131624544232256748630610754679492759356949149720345760928521084075584006857770034470791225966470850461386939298354975538789861086166229433136429675760852683340342646311836732513698096296648246324210125070764783711380513042777599035086446888231897054623813539529155295821339629643247476860444201543713004234710483962399333588992650014065236127273078098968635432144011342563429914093651087121376033458537924877445523890524649709846807234411053131566131658316164539844590623895714152472013217668270706745528000079128591438785863249642778208444921459685246155726143878946191459321596530690502679454219129587852289835630748631355138616018864600982208129706285078607025409228205295359125984625715826187450366864543165968562571831893976623566591878785988825506581386475693163880945729272784046055990569893039971620446547446864660301310452076197086791721142053002587233413644893899737776458532553818967369488131048488358298888755701256997414975539031774230917672229615969811577020936463665791249256204918783408575290276894076862424165221446778651276564108142812254442129278665059375075969924463689027469733065150347810307344276013575058122939655049266325752038245535080365618973316399055903975944340955152889571291712646141002941263597913132601337807092769452692338859672588307834096024842450690579066256599858719835318217596417209930932365682498302496213956284046792129676276721688676227669018597011898209239507709554221753197819845583588979364115263123511708016668015853812995592845252965111171205803566764204322325950864058207134391531063438791990952592609565889622857701940386264638042062604465313328260993837541753933256297417197704340846901277537022392732303598974149161631263920290732307836411981420991954294413576403482102768490381144607259351322708555920735742974001610181258904762471667710003246016654534738954872653036416046497539197160393357256458132777448108575052780385257422210049516553643646018509154478432873710124362450004280070951976610154569542511512255657617948884767114154473465435348624827616854469569727807503045231956975807640299603242889145832409395172482723757566463074825346907253457042609517771059726160840631650814613557938950420875929166258183975954937850332763747886081891319589579784092367687903371532088729402117291454200795518201370578985712051316460130761974312376262757583770107730292516211857136532888195325824623594961665094030596344203196520790059932782521224939235141197517040363219578670906512927187014859056562972347093044765427561482832308549761650556219071138564699853953373961841413475919172002822719500675252878916510410856077671201532841862215746913187029699242752302162125269912776832280391609418674135091472662390051488858831606764833460501472317964330912753983045569214394335028962618617190754901872690712358444350031114267636010121116087920229178785643486139285550091316983754769657056324810481250326976779084667453275010105809041654431048431602696772488195213809901481201379719989578493508824897947050029510433761966617762322112758543539443519369747265600730889117860354268157125319554245399820687895022395330563789604048995699331310017356060542086765856394896112369802284171073142340576591406575398002123551366081047900072842412400710228732454485271862671266513545048616991721218073704740088641432013893727326330405971967351188416598205224223201447245820290734669076836548789858667398426558928781347881742677690358876356415024173765630869773029444338886055137290476441907832629850883050179473722098526622196452120857181768381567353329401760941047280375693802571835077140045190884792157794518074231609214869673846108975183285520682890973385910618211926666035556978449387314444465230979558602841689572649192213363788911586767907543890788130662072656069894143029914835269193836210452179416606562618021068260984206498190516312975817225968237637289885410525067920030175061006292310359755918097254490717379537527285595888991430336948155019070891417045590905509896892328751410793260734647926879715460649009686674455709494113137768631288721254441193749531272986532484691173874140662599914781337408730484806712538531032642045477850246828067989944443685830594955958798399981133863640720574999003756502869029445986215677718197644130436971822834221562107934428567264677534491981349295358474219142709909935670900596421121662274952010543608892152863559443821859745784196073548473449407928173202698585753045333377815160120252220237273787170758283748817599205263870224832254234873628014489612432910819835869281634703457295692787877669380434083213766646036874843940041543251475770025626579196810237742279332139341276722468825733790289802850619336720567463356352864562626320601818969873699381777431829389349088174118528059561782371628310307298086887769617115613806020601186202143327593724320726473775422514126786421227826529302247994806005203921686260932541413789128471089639528128575226996168878923564930412658056640926686566851974506463368099112801560227282724211586009804381045593193846938893652646365853544640657326954965766140623257124607124438382489410335715173436337702011225291479943702970627315106729432645389074817332327443356167488380888262935449375566350813075965353596107762495629011521761165388338743319489521483785280473952338585756571253636758704070420848943370336053188118195845379770568209418510746239756204575045229668645910108738451906450501405449534096806206405739288779372468307599114591570958167111251445493281499536170959057670522380771117328027216843956825800448118315437592841367718337026119495812706755957714091814536154797777211300145179926618968137427293030415704193215344115566145921305729967697461370870742624639317575657972164826889885274251189832363247439797317388586563434280715548083709712206115365339808076796534809430985043069002483570384806949665167180785232450920385208782143074783279923962238859003866010410062250231459619115413914371769719928974213602926465403629020742012896564702080267575766593815396465426662234149148019339523071411725520776744751590424803226627966159507101085138609992102407110865586091897318425031282016316215244032219438612757791978895817216618181765150261656863155153317371647404777036122885962533987342603625904940409141993856061235592568884357746495933338452388107394236285670988306859005995162980732468934169104929813482194976853969279238038601186055768634639798101212238092194026040049767016694085330731819265472841529505934596661303194362947036285317725809502440633389275450121327036159239331839231993111153037285119711763647053315969080337461967170454185099222387110002668628788078899298690450389677372011783855014611682618215653223015679749281053441828791779847771845108210557773510000164922263057878812114182548696488456843039705781555145890504642655942899285868312071700096779755023430790575723821262706299279560663187703294998067075220136328091769255952841791826900633189723500979967678686422704176775767645344653713915205336131856017197644844404948340081063634498351172074626431038770238887747291298938903451543661752622873385820811608163092528712565886121198867171195701017871510066289867764991242668777722337081500147369427590901041005550088278632858065845017018842486168700716277357183778552248515131115917347266513208102698393044669650798747590279124499999106266916704747795640927330424892579103098982422162605977357270349565422562673370034779949431176772510802423249466434807845522651865257645963628094334628399683348436285749259797181991226710786690090887419732842972590040430679533505589904363325309494541387583301898006524728185946640583778828729522187135028849813004327183852903424957684776401584742478912101653385576897948663053459870118365378182588277639251940767159325265894234757913097780317862013926592934756347361925914670399938181261356272470797930992047414046780177000524514664896105329033808819775883261561006898951841260238439446090737908172862674777733882056068391586586961849163579950207526495466117881957107450454691205907308159479406871901788912477170142729516077399034497300127011443304580675249987563082505746426414051360681242150302943513027839513186758204238814807108120540658555541051703694699620462951879909935133121804671432740162475475183882995768612256851565488825566609918903419180621609260494222156303343365946576416607416012001154877789933544165135496525773291252478295849409314905728031362794384485000707820334370081751400958933754321369984346112167512132529951767769363109855328452190961209994253253164909781340410322388953108240892292451745880814643952098153041722456653128866716243048003174367756771364418154630958958161970401172427714315407814686481661001685004777277622045665679714957916875434456139734761939977671270190576279919712458621657846083615195259065489959795914214664093876415741706365637195293179039498119902391939089762810192513185626263000253817852345941470792254105894074233985007928238579073207833390171008349140951814728672124512032791898373633669489178753496975288368502891714986803076725757584690335594584394151640140063226083531222843947484098746917381678344980143890055165490579568776125752471154640205706329733609785231347543732396417518867054967945978028971467892903425411040236135519435879099316406329010289969113243971972099773156884224941657861980055666136840636911428808809115226297894115949565013975743700165046373559706489978647029040824985205842384528212258066413750832077677959446573397800934193884339637953064599116674215794394283238359686720135343759274811125995975019892166361550004210012483682705280949994191974621522766187203225874028577855391930957451057385316753856093768261642086116400787369272651805958984769314984799478156208362731372172559865663979324403681477553101258723498453161617290309333563878445394487261913109482582548870718947970252566590484340984564984035226846021637544016750422789411105096284967185684864269228950033801649261592370926590584058109091058703190886670570932788065593326953118207479406054213819368058409517294523853019334768914223450355532736888249579097926237818978494782376261146355750758620389115680096019823878475308099596188374133541975697507856945002766469497447507666054836529415233367342892069399022950083659295017797793811345959401089367171694018363997412479986523569029942256152948503398570248061555076686042922330517573034136797753748120159067160689193703093260861104626284811777606605883210193067255375307620346922579551970952440598508230400236460363406716902111143379721203558017469980395472765841786354005627119004655570778855677653998459100351724960296677630222483414700032077745438831419015743345208420193320984938784937813630763949484997456327925353281267979739551956035903362498244629241069949507078212255578512030519324065977390229960111496322100920775145097242602725964783982642976946286631338931364100627366655071631966378546063307925021846496436493297469504243440122731423880186919246016061210840014912493005440639715790266806688410507211225422915486115687647732975562237701814207465131719706023566024771169423562937877869917997992683176883335831591941796718817935077540269898500929351284425615603677398491650788508680526068494413851374905251421357047934510574374026139657155106995829941498449411110267221137277599969648135626858454068195915519832610457548855371346234793759440732622624809967554542188439812442165626786783399100583822251512575926682774981053029602672971849102905893979231425110623683708136608170780764813580756941443138570677652328483620726397099745103514085324469636951234703079115821635006698718855895828158586262431205213192925043697321773969130294233806287442237687136022573781873912568987940785173091886845816902164444115764657935895548870371425936490714183998574245062565208659140001498913742299892661929731928393650566156588463650817389290232003681888705966766497308326131276522239422626393390642642260196158264408733241681006846427192527380790926014840993433412837024380538980680115649439624984266332657348199794752101270941224472072960556567596473114691877368374976113052229443696732050905201743325172885879073235692255596734519035670369472637079905749631297563354828847278310161692542972693706864848878866173022708178363364653932421781468201716282096192565440064163143936243007437336037737228674893723195094688468583129419775038803797194085800028762057431084710316578096280421490776513734827787510385854943836405834711445923177594614279695848039958656908821799873358342676886530640621151021300525452163235768174934384881801253206843308474393128165888008230082014382696723225131397124329615733021705079539500490251432071777198664187194115970727383829767444974902771764224238124862206685927942061092965331356253719259041497045733307087899688136956884849021571578069164232946907948649400078283012197693577014420429897849578591100099953585750848191974995523349282104216160143447628366449072253548047535605509084260844372331195444932617821569398137383297499594238168060827040810429067300144607683619658390957570113602191587478571884423063411753941271699901273897208379086875382225481688871104187711335637865910470903130384922141928060639706839101982319948635531358453784260593787658956527440537051784241277022041589123055956142069408228491429575897142380574129228847603138447538213919936592116751641911465550452955218965663649858152901238132465641758424801374490442011361211078977358028930302201013085132750178700960219160649228568519991457042312368078694261544958229908132344520190913871430364505894051258390420253304993674704483492793965421015562421888142473722787021575487838592811892241504860119458409628327257339484751374835162892019000325564676310030434282331949343736104153654950324661299394003302962481043038988951557847591712639554640068919974821098621823966121189336870060488177200622859737524347484261987246857453100491981954884120653846177849528856112030414153710157908845404057377767659950966402446800221411591632017968131888985529926146494324472946419550086705072445940395739737884244464800913121982530729163249362141840859032930228900765299882093786004162615445806781845242321246785009437637792226658453021982732099310934816606314516080368253663202386311835927235726752287978733686820107029229433983505397616556615002538569076114691478942882458828288885742492364786128119871055535082617560349264891337750538309021478173138210165127589342053941503100586317925105216427073120467209017867657554258659948020057891682799298010628891747050596466596460669258577507822800964571325286639982236121164734110528864449171850345282413677791538327095110573357124860163067098783325838086128293214932060370159092972500927287088471179353484515830080346522784998306057672845846156097235196103717108449945927297182300617720054526341394808051521478255126080483929028709570691574838241907047768407894044588082069732130771827680437516875928731433717235223972982250102784844132065494875755230841486835548181642067719323298940094282533676600695450371738844957190486336022949057235170152697283440557145588590238127019493749119031873771153653941505070188337204696847544065218612471111642903504968952848010546860428769264059510531542293728591307069632148622169197757440555034920037105636689406108006440717787886050342642370123243632378852034340287560601802146732001848701342960374035353119219533018441124647129311405995442013199979308628391686275721666769500236105983924024266076861603796797911474152164448316723027101295553502886880965579055529588164164765845511777095385680165416176266834161631289145368528576539642203376471302573262558025984167921945841475560224906868843463772653024526605218318604112705960454456165057641449936200398526651566967442949927529169641032579643681156286244926683515369895289404343133862828527460234896490409690371328172624661806270407436231558839354360655436668207166948319658299485744549845690666743138313898556500948032742682348942665863017078558351593577505552535052566162360999740707710018467568374489577832576359984618765878956300594710028789294221012615589087171373922958374632615812348213315070821895645634501633526988949970489236563472001747630794295344655230216609077655219254868190751687674005559645758411824191824305456704629474727987845010113897220937676037193291870284754828946304681049863675497802388625190044542478724404390116705414299133993277787205227295817957222532315100647969577441781335251240659033029253069403008679671822093804974101784258048598983106580153839298991880992796482556898177272091111360488549466961493880426909677716117125733002655467348671677593253034654288250444175038375691158499298707732184038737974093221957640631536764853857186775859236798643171366853720011987715583028859302889862809428255118244964185913898309433108643543322990645226865802008742904330766444660892093183957606389224272069290189271447132850224473528840360395809103402881138596192309033410943569381236011784377461149081655739561607273550578969458933675604589104850520364266932741774483614315779202035846249523946510784349990178781038271808343898992828645664728273498884999028843288635581242168756153262032542676295554287796785917535733267141641546138207766536768670229157369421606972148569081779550216810585313573539730287071985284327793925227439306873301169601103275342744263211079516627384278261724535602195461840550514735076679380305547306775259759746246208608100586678590414321093008328974399044756982778828240458748445273409411161295658195095957586255837522487387380184741953476444252597460472474291626045154019365204664168412979755998322977947819610469200537065450869210923473048636007005919487207733649634020934829431504004832157860760506772133059103658137074155780304930428906373222689348106905315846491991815924148382047921594863905124353955693800560981947079132293364858512981554056153658472810255151703451195427539003641459078808247254247788186544328590008619497891285658088598394126566914078360803959682503106789843640282702015139294843984333185471674638847404620166560678669908445189792339744313389390592074437098058755473960352098092548295437164788579737465512350478131677764130715927310970418304785963253696068997929724127792059316698361869344587449202279396858186997301794828375240665178328724402537781355925850703651234810194050350533119515117986640114596665435902822642278574625976260197177237904179498122168216293188831142795828371773510102496926380964414337227199649965573095887246126214418338370242833319727824553341197839101836490361521145061239097136324991052281818601567003938387583155873125908587494575382706902919818887809111523828120361037526075772853167947644021623588812371728096852535516631201461900421682323490418539209739963154255922440556598228668654807215369683392920815799708990809933842195783591758700252132856370767740156334064637013929154344593088982127368233679686270267295383351774313917845923407765898982560846162166064382369921408809111465989789834729805394132191713684674265667256770947127059087882369166173589929762047175576429309921522962493335247059068726454780523297319326286529023017725538484011326833206736751163564217376236489974087468995160622442802871483614834642247340336311356378705824613880727419759394282830433629639936609205298034377040705298426658032678137617383107709793166880501812833019005621491046760451191333359893356588182909008462781917893894593066064467564257433489614549044383376882707635977461636275441131260430646163072733567471991042206868969236468950169855624454887108130587074910288454478994279733977950899414671781317668254426199646833857114983836220064930131748675800748077153406484934023189505355580155393846065739085292050782036679663183634989536442184621697494564533550438240057416626193767931176794536464959289952461401861054568947695241620688212792951481148607976922554485066660997140239747474384161543942548109279772415883310500906635991828256760962226371011584321513874248369348934308322809642515611976457659885656519577020204717273766302579906463418168184337703243999396487857204596857028999733548316959254663902455545223984616469270558629793954644466660299370456871445340630519503898394265609824175895722340519388351928976181685081922309912540867021859245677148390319800488015476827958279361444935306724306572114948762943296201836530127047054961974296910118916205398840455787364298529355756412406301383892655209483004470017905507985849010754278514719361068329170225645737059670541618872923448675568203182163182501488377835974132545204707765057726861318368683831246524817841247208083038718708422337605774077938828307832158290181978358237440402761958993687949377403308217627029965026154403657832942188101671634635482000605649266278282188691841369700113963422901242874141601193813711260320912889722305997188719912579580677409289211267381478924296265724784076968912471168631756394759000512181011054295673178603272161839272205358159576358399438357929230433287582702243694528095681301028652169627434020462254259232037815989308523930759520644596733658832888692899949000071920869967787582256397413773039918894840607467750253873780579594975921364703065134948681334035820147653311750594839630161186259962052707275076479237647043017784355896854007780682554187705220513660017333467643829683080960742151063758511420199274214596320728080115520937704955968878543768019829524293127071655361836545490971823770057891953023541639327797770008867801233714431682211206106504511824412101562473777131746436612976451390422755639837634277844396132453205890781134318830780126112395073440767023190536325124437035945612128889948108155947475346012698429926993165810148410634393745206198818798361351865839937195718596942507516380590849848326062765173014077787601822675836394648180413371231780748295005025873266667288665135586211313956670075173952706020265565782853406299370086272579873098475642359066362044289387236582432071760036867616393170062932104651463026863777254704509395302189631905662718029809078739155404625375922232505411339956034370693959018950035260988972912363942064499830394873049247938487076235047300791484375066566926950850198818474212393208421132459786256767311409953225986964432247499874845062352732734184172859655174039806788734151564353007833836886443735694105479697434912774645568027447509469908454733238103366692654400183814241606561275287122349800552644383475783785139797991411195092986359085699415742963918690472607532577756288766559653121756194401983091562255092486741081775260775471822314893549133645117883635174757142928016752401586267960605928719554178702735488888411712082417349957720727146518154558788988437399660261598720739347124358825621623194529936567382097334955580176668325878672775448061718162030871887867410485769446222276893495123492129089264907050940694782574102680673538543280543036294795596833023979739760943257174200037601493976317530409484843673658637773143118852792420781662261542728732986186346196446855074773902940720264405071147098694247709249828240596697335228325286145634606312789746911692874921489417206826863890848963202354440062832047399962947274913744870275160825908333188766760034819541888494776897706565712395118271458855415075489245985897080635129068495427570717078789348187988885954415071336447966541423864453365304001506531982791055179101536657332864732430070007114385756484765528150171929311079956031007817612608743820092081998373993295164630627217778792304490378194735594321192653260967771867526317557996424865882607194868829809246886228546181571678649165010458943545464757363288541477764038113100482775212753776605476974121504897229600424379611432280979900724677880857397628730968051311325446494375348677203362546549520809895376743322271281096589834918770819913955876253873672711483808800412571675753018073415306320044297421454075866485453259723264613047577979705781241006149293839391141310025780497832750252510248194873437467286621623007754220393819014724577269758958649878476079244542481686281969583333681865523762919407995858884568579292277204982158249980827770727251513707358032541781738073771828621765880279798566336251215399560851546959018348225542392207268933630433852456180128684177058741759224088955113950626584411062014895421252817816194009309434759028658724409461732997245375721740421629555922812617749952787622588927152003120960363264223749850793595207090969871582588816285325309599288294091581641296171566361429282248199342652588617105823906662758967746964102754699573506285371929867488090496750890769950577457767594249128733879577666708811017724463879845129040698535539232515631936996591375648905106618292259772808019774235215293897623930747259573092870858999083241146534830248760137780736557317591616688003090201128709098031031781232592503301348657026349569670218376053754332507052212595947039894449853213771748257572503143306269984271385342383531889125287213520674485789214814980793449361661490184969708150364343691263325244430602888887199349940018682576234059803097990898559679243613954650042673850409880461728643938197106484910052457930864365734230146600438315270657549755343442769227334284370287332827708555227882419037693727892859056430549687409050347108309294125977744140165239093224479666656207135342487547875257940112456205950411187135277896856076854462383990994129758532673862320202878986136327756436708569624457167956423875117631161009194494558562405952996233447871989230338037105713232887974694509184293667448797920296278973236587751325085197144366536282998901969580957481076496489803512035625436902783387982644170619880962340767086203239711632616490055618696783368468486174808914031013129111829535768302891940409411724360186760489528440165793500409249331541532495457021269113299251725228710332081055559496034483888349565054788165196053459589729372524596998151002197177007091371367332199191224813034026731258069212995602023787130680765885958599226073719960387771711510730476421459419652395090782380272826584935432910098900539007544879858353423996678439145975693798657050862140773990776048608392128233927808870823250079280064928418423908538593662381523294241201203587244801699072280027141294613736534868523667502994800780991194577348833537511230533458264057209371302896736425244839491671770783239961811561712470165916756833012649071344256155249922224052040043943849944598608826603161286557558351077075040748901711550306168771173489839052499577773406779564342673474821562730856153354479057712980419169886290663466929964046873007192727115201548041368596022673235812149298471456665550235464781178006943833003068075651138625971143653649811962573852838008906101615415731339158659559940414051499869434415431238969467465151731444982378163970354512176546458444067063890507725694352844914585522869207927240454345990246725702173525552670216536847876074869178492084833225042634042316662607804826301279036810310320342638854459027627680331761346907425284741934127477217283355396153004959750293763968693173965213749516333976502382204127467784079893638213184179448972821777760734810056457457071072806449560829763024300168941477532511312373874060452632133685391465224304239979780925169400492444076408157726101964881831896272013213035878228705643116483551732965728928934076274044867880612091875784947860092812598091217258757706409718767341378541098331868562249524594211571007201786323460953524598623717625925767193691654988486903410566515576941059219534732256678442061441483383349748214746927833276720986032454823663278194765427121532107927100257916160600835064470884105960435335853004175991924609479481206226558163650269568568005066113363268813306065601905628818670288662834530291493362253936573237530234314285481438616028865231066631986885789411639519188910687454331518427195442535168427162249398226956157589981865560531521620946413235585383897767908782458034772363096004802916758248659696354544390287621729269710791381773057888326900104222987260942228522103834809762798666150449212820166568413887755146281779696451733399116421156879000136579942992540983409037816308375065937720388325854696296361538971558383602955160675469012723683319538711541884707358770212025114321896997075139497494378005092615015358411512396171217519111857288471359826560828953718859128978554140571063109852175027801085943631283005936998502349450816547830027170029024978872221277811418234292533292048683886668826611407713548426484349465326621837871500791693230413755538231767070132093323229946092455734629521971821084880961886032945856431411646658980478304563300086741348995288552526286530255673515277249840092637649029973054271743864632490156221252850527684090970634867643549191730009314150535837934681417693140699398923433872579899247145243287473382644356032073437631897275055681230345676527109057155827715930571923749649480841576682685010310864526031655543122732751947585008509209010113275910590154140677685198179971174793541998520825984260821146011827243265738834689796027371027924148407892308151032162783094794198019000807082217705884102480426879054903647280633610712771922865997240411732416133425085272218392249890665078141722577083082284301816969391319724973056579258104471862252123584533081540986416600595176351501767852275205029183544953324638283409250436296616556792017560182324883415889331368380475691986207266235599442058425046149091211858752022103330616141363203692988234932845756971668860129658014485624746700906367409383213879232545730172497237002671095673131338204047039186762282539861548311570751740069476722345791789560805383132035093799931493065553762383814093436476495990297156408935608988225891966826994413330957006300014986824462165983559027193851565316328754607573208803652779244570707768855966412648873563527697775837178097479861327626563097085977889833871243354507757850540505669740399620585869415335625613721823098378109986100287772810100356966863156463827251835113597546058602798552855320282375515980754330854356017866039753136804971421042245542944623735388376709616632077182400867802225509994308702861831635504743261171248325346434949974418563999738685456372088114340882734553311630624870700376261452260212269626535691956823475442606636657272087518087254353912268557611337935956697910206944584389795709352631380554599542985054816152164468102532578379189299356658188754871107334905433462183463691890872531632636482554544025829905528728770447028176185020490594976919373781382500282272640073033695710677164111431221870234858797748136501450818748943446434968814238323244537203911212945071622725182298345676642837307412125089165369562279273632134973975787102011917310492662443713918888759139032420593180919648823705826882749132733812987259386886269836346137659502989320634838494315620457705435593547853015387405919887382845165187980034861195923975869463265230873592035913942715720534279578715474674904665217145162881252131800773193330985749602394507180401880802646140568478319427472634182809881551962109908967349698082680577634842044504347442081102980867656360976689339094458298484220786066626444011206152761339753311070537711629923071379078498067658468835973850856715524743381660470657962816672977835089880432215714869596884779365403618171806856402953283846573731547960642020678654221429890890418356331290360920860695945644173752597928929121027799970452657918358757799125611565233405237758441809388242444269024811367488584358889262741297904395897476007542912924254402338868065316596907671368051597765519114413887033805077666857220310493344702199322953848008943161920885750882905299239214649536062029524556524018871340603659302864606434142440624250088170116128142962539763490735249173267650101583981394364309864956323060757934715584747124654157905444265587444770706000344229312329031163213143209281578735205127285029862587986588582785471969859298668328892115172533053033806741003271613972597368738268935892423776411402167647473895047777495610699272516268753521796390499723212144159271146951739574938241374511240665514756154990482203182564896211392874819941097778038897335582527113979895356566509671062783368308537645809339900583442784245588048695049299525065073418778714658376702192188203658151001028563379176378778760619327847646310388952800883651069859891862959036044584554974072757318869961905933981497665069989684964938708750395629488429307069964742366036715596913261382843074243268681344967697702726557572801215270011703929950172273574964914208448589902330260943297429643486749102150850513037166675554180379321157677173159426117420873520304433431654082090934360140078627773648265665598749558252183811753176938323107736755736728591826727458929407904095123977541263953472123593678019015801171408195349427049307300750118650893450883294774640547742823174162950548938938605912859674201486738938661677099330964052083734143857890365462158933115369626383164873108514555200891009975489647594773103320542841721922426758098579144668594896932440650988556397040716079728820690916214080850238877175007755195925056570276929366805249778159447502249646381139068942387839355900265933542294768166564940413437002602184946600588829271262874557297262783855164798546070152552682628210917908721932021383529225683463237247561209531237187923168210255272879440588937669140285993199616110360898145830548129107937868104649520093004083344769241281780115837806135385339716023616504957749144394112135257403287889586577071826317464560844615686187742274907564175779227332293012533004775325066259501365812230807932655161491696297429905505594413430647089836923451448677227065998683972990789234746459710652492149871562944396717209341397916539195632733201564544066206915293843549563901588554379543406930638914724327949393631794507007021436183033764893034540059239838590188258181897127310306514853335034883933993046938715626433331611929065257617773987062632480201748188327769093452409421463299376575175005969504359449205943938915069382108140189589758749111178106165489324573995410874488833448976900153587161153985348635811190327930839171351393039934240797394271096003177862027365043990513897289173461288202313957549041454465157743946999964895823314291271511265014605073152936220021476702974227839733140107015837605413358369813558144263185835648424842326203072182004055581560107871678302999712680470343078330347767124221503912157094192150938353732593928599276196738416942478660623407313470529224930004591366852824726868934968625815515409569767742038429379529922357168416529381094753711762177378061371900939885926030735010835359007607914243199646649600948199402126934518763302141287568309631255781978193191800187466921475554305149426945029810806117142869375351304363498442469259662440119812750711670624596864891365612055306894574746857036434304928315218992495494839946333613305720331224153161103852788111379503224913646699664240986402441447280823610918924500491833076715021835310736815006742318705332883926610571033495330604787183127803131024445987012279148765341316161353103269169883487933700893984978091336910522687043047553797183559227713615300486422125727354570893054123073776563625902531925300610341531283147627293956845517092302834706154419802612346509702784621538267938368971880029813017851110288256915872400663672055797456902668309294309960627902783452571088802671516880422998235856581054513033171345902841468256016519614548110748936485815783818079464226736463924778832748693545828286666233057128770755290956335696281046394103776481209571199284559687411955004152136831473470557687098398839729070535449033524415119078418292058173597597072941163260762513807400721027223005704989848096769331367313197726020007841213107868125605978154631863029967529735544949362838885220740459078517149541179124266541328382458494844738193600611340116087202564100085215519335020154807718693419398020776477752870343055423093654630902479780281571215775925858153506201990592778830021604480126322882929162948483583589177357763825029511612022072051926507970631041757840110218563805415664664360607477972672787134385033258424025886430583305545152494854419113262793758904196673030789935148477417678898160939842095842748617830139633570879892656380770361931926809642574265479646657965927363380529693031946495424872569595482058074104047910047424627749177075102479238079573370352219701066304466216653675769986326349322876831905779836443680240316210809324611390985103593377544179911115802605733904436223647185467353462780977957652917316845273337084254571069400829208286274035146348378728814527150536579286502838321319548515543337353815504251097001744434023361283784028083055416299243925930048641269019836612441796967462868684294756876839502305743546360152961673971227011092369016202693262569414435020629107925014915814247528547833850650260133997711546321618911044304244249234163524746503024451331273983703910612324315245425473610244189230381420752101482806125806402116716608893131656657904100665901219652704122671166673340188080582673040530161016123301248541647136331253146154515754878063369158743478230290604862359957580881438292531565532510366921119329539586229096461156937622834255012180804115598174629791506812280231345553611263491155942705755964788788769414222045981804537076026152443319756334440810254868942024822948752062603791878984929830991168525022438790911575236653685454420812616488166788272597709548781679636989104414189620641742725627100639209411791048619200907304105754984279189173341481831662474178098330439807339373386726700884104661959350416184441658654159911083687803004669271549305948566564192622672314790532528434574005534259057080478230727301161544912067356530322906321585801032427936251517285625121166282733395213255193906828864751493838522675303480429191788961620317316073909065568686082823397765497263360150958745605016101446660629509659291529130143381195472384117396021132100277209771381496884085715453205541080403187091738331043554837486171141506868978589033135663871582641648659065637933459587197452066394056470346183913822935330218787179441598413819873628282231131320145295388773889154365461009489186904722735082488896694929642470231883242828187901045559797451413937875882463973955189046801604777499464261034248621999413636899536810748373165458135628795956036734067395283448054075071512454432690015906177804192624047649511034091281819721106821910436671288515540134791408663754814172207541517696306351386690349723503110459689242729204354289143494019606349910188557208438510191506848568296352649008959651218823617202886414974732589727502606625214858162909354774707565826033748920184179170044705105991511687253789909873433229912320090781238528697949103452564003125636063169916339381441783314661426771028939257907453867419974941777159853406471799564107457789848280241272172706810447092853154044831491469815469196758050772086621858186846585318972267033617245547025520330821010828877507934722137522498705813657818007331921278516607776010800164430557672175123019436636229021616654642796542189230615382911782207225039827136632448057005353121866388706477134254506956847497772690753832667636800434017077870589950679735246172385903947357801359337897557764278652087455852942034510861397964618660619796898425755754393758745008637918751853775192363974443465772159931491352868410837463120945652340687743296406636699041123672397510670209700428600810008345808205587294343989891932609470028274693719576435228675240770481116530991518455264012617758366841399453050586603852256460676586800588563153792525154879984036395298600242064297136360694548662684716813278907538810160183671347302106527825784481744071088835085143573347284097203348729358763992039922439022324181635809112638562217355344592413316195207381900862595370303279461863823895497997306171713041550279062805465177354148945465729345921695055065076565231625271123929704869389455650698161636876979584809389104696689744987297636879622492752583956080840474099361545173866142866296486882292029820514968794998568179891411974020193630950464198846081976947362707913052358876539950087050026944484978126411874976708924115909952176647925465944001342766087956606010345443963066457883796131710205212745309313752961308099001131527567393739228620937694103934683730681941162840485009506547866922961313429821224925325840430011841365693359655409003185255950248283170512512055698766660332624530345709272754663252004054416077563090615413159461637020315346535400783948426824758535453852514676242068708424861540881471632206683915491896792274529420229551632138762615657184192118016186313904848306936431676492138788136261597479176899898655202361866523666819595259256438513863902559649092282165095806402303145207182585292049893625202330452028464572154876129291824809116351318370744232772653053154972639349795838033481738334606466769922797581025500204859534010301666605243834510520191176981975611231421520573592527912502028004431200856590490557508019718009653780786084317325644611845711593525958034988772822074707094802615101022522928442550270183615451386842065210601365495393284569684255314910944122539184655113240782382276408785566912086503826689402003470486128614696379175963214091260884507702462065145046875701535843231302864011579685868766142007213246452758074442443847895335260630837641332396488030588800018285129006088855202095399374531329762603078749064896479556085085187986402628291576621989893299090205361587998872920728544705558260296062254145777024846995947635879770988312416293197662813751448932336391769312884590335806967666779656214465754551392047393250526772799106081017539806374418288768179618710547969521612366345798363762793634548010215339001170493965009192419660780274666370660317869579481236378857633698249139961458077987662379453188311492912422089481408173599492925214315210813327009637479125775663922376852064092271093368232500178270842171299316461160948293108368699023927014975057874435050616565020516976099340432523188706857436515137113670307597156432671768091382119510134756635384776658251418439425687395264593143207090197867236101148623539656748439227475837106958862790878012755250197447251045182086867030243019703361618244036342576875076178825524374442208481577755134367325675987781178177643947729311999901603025160198495981228622599162778993152110295670748370370032639621399489470483531704979337524323709513569499908633103608678828274276179569340954570385016974450595605194352476184786428572049283289962146486558291818226061087015121218321902786238555346566450122592855983394774152451842889540788922288051657044516915024118294824393468865414400792744037768268792405858396778082053484356814404312503990885531570962440182496369748482286887507162592714091555069671847463699304569436827298225129921050974087898976309612142006407779866853262545118680087448899971138080196273572641743579433522867900379164827019450928884045085524512153534375343919912355254262573309715426003304681618363529923621250494602650771205327872495588914625039873860587466308744952053923947392604282353426585435303036892633051481241134688365971847283934721479013287286532566970760738376716092828529192252989620624743480126583180915944440077750675398480503152142851423999114593717594278421829138080301673506631067606012189334496335782785839283567916621261532828499129986840595579051203782957469493202540687819994302777837725576658898280321693106438493316758617460149465130299769473027559619335897661190563232065714340999988016219877839181658386270691368857961352046784167250294083096632537595032305051324876777355959360835911466342660843087661328907597023876654830239351735356946210479622255263864753531114949065386004329842536281238194219282778522914395681186517197851505210999977292224968199809518490300788024504019061924085961650466494185793454219608109003948382908353582552011430262273839953453063961076782713365597201499075420428487408465371638272129311361707593736813315115845624763363436550216867108901636775568819612209452807148923579080343637914792602987223077077454120814607246284295645230619017756819246038115626427711459814486006516102707898485053812761855781698034195466443900795344083303708792957685898998503490237170584216250280850060355725881546909486135448967553534249989571553357730762318515306862806493396873537696204150917296308791271002133372859675188864411391638386499311342166879055273600366676434423701207971205199730377743750630275118225692647613935130330446792297054444563807907219041866045569994160065312668217394397468082749175427682543303437793599795079934712350544556440728297708373441822412617305310882200580574359173646786105867856848370418712453794934408939242222454329984656953647700088228207780889035899677471845739047140428281095467425550069345833243722983627762888869887618574553675292077191204466847800808688016277364332620718234802499006010234117894286628245849408815575351412622646917224459716531665392618822663070721570606938820629073559980091141912986873106387752715824298782651648513508417344889025427456292970982876674383610255073828773692683200267296007545911283121451300372495250254699520514574226964761084718976065146832185163633422123464820758819113334922286381651099811916948758264375648867299395926287629452478664139471211213942661987229868697689875694151307813277491354776235744541263285802637923433144480283633184090530607853621450992324983748300798056344668496583435237455701451267545312929984110547027096663363110231626363936055332785416388151743704607052799357948417387384565131566318208740642635679368543018762397544071308898047157209348388858829273203326438117644573887175374917343079620692020143830875096978423171398285520305187367930801140488734277197262284860603898051048582258244460531533287400619817080247934120726653744987410184909676176926469335365032035586314885289047491817782130497885095386991187145247904825431760372907593882574508837589929272255234495420240785174781608377638857824362056688865587481747765593800116101967180953138939635647822062029269191374781101488327679124786205673130503851351088645449244928679302448910485170642650728031298287878445560961814498196803191296088886421573321379059727631479049629027076862372061217819099640072781074593989730179236613121743004914973820021366211896272479316740487994615664025657190264358785204582485316810404219419012011320986562686130333542557886573158746643027408331441880424997233105068669001436219724057343136943837066864443428476099501514948681388524560907774826754473665940445210614667839897758225666500743558746244885499021340392395222347302045981118292156339519296756236082789061671799609917846658469572658490641478845952558481716563022153649722716960838499556031910328007542609222002916297316235855820848743311408899859232580935456756663533658489729743479080948559319054153278438060443724735666108990024942765749905018232742905851468639245905925040160835193466561432883786846015597317703107582790406924579196111401100493191618526993231507649483081325610247698518505159430666400968808935336269929858720622223549853377413772733948902114500818003229756109769925027395774144610658918567695457613555098601307015564089662087599733279107110400776367744896120723571035392127793164377094660249776461929288809650610538350581743124567284473853477268489588768970689845794711861380968160226104532461773687670278263091664373998223118193642772358927884267309759654128235151576649637064551510584788997311062706487123552135722891557706009459775217105693025202589657205437012947969512781226464848945626919219805030032488513454068120039703261164265925823186030156361828010741023116820780248946701331696285602558139865411228977046103911432081395062155947842013453598755290055311858596221439978732499706007412763044550985441968169739662488324555770995905411044556911206710884776504525102036631035709825688274100816002654514725520384541512815091909481713073843362609847885568356217619069022263502161208878146412871785977029838589596706693439298863842638343587555842463827354057048950148774878640523111629574521137880764323669424110962044532205436138078932286856859016170253472287609398185735551335179588105197702162929277024069188744613421949794763597151065043136750985513685617556954035754781170808519143579399025601134328411249273522329931080292554876629175910037527502264079741464631880537530220007167741812473971993775851648158704818048147102363733025718460516190600992136532609135781647979884672026113184086948306336170328163634865113965203517832319717227979698832789174256212941831321962540295866694763993882033790127997745011337142138334483076476565627188365012131469226778848913936268404408031406410573852871776848658582799278732891745406461169277280993414861111559040625803375297039497801710465172971279908867750082531309668433123172084480133040034226013804703957773962205722140603856404295403069652649259837600499277203981329118663983738122698089879138733203708626502053078161549744839055678246843000213896101091818415123220735351585608315637678658946205720093767817954186131252923206459926291691582099226566030429816268227420257237790249733171406211186502417444260038510170368546136503328695072411951505280788560834490294235180092686376236198746339060856388911412186486005148983498083168243693026612283621224730051991332935138821758099427290980278645742891303855580906223357847753875531413720695419196480271968381301759876093664018288340522967273370290312698533735235821906923495980438487992198158030401930350077200077751966637402956036627281028064521408669326880727820735820846820495754319950546463165317505351765310087049288561147525473725624913342240312719078129511769834066863872523028354804600322239270576930914640990100953935791650178376132119477894777146131038933327110447436788089852988433843375431201562693137368735725878343005835459410177828341387247872907762705933347528166139482635258310843259775164360932247320767401565196936949398879438737447244259574971680077233619064014178613338227768717027408031474922113912192211038455119199853399727817918926697143194078458156012467328581376489808333791360449045841902575618773997820433341093973385631790546333086476414920966322166618469181017403542278315796551336698646348054324311004327138788091620084526409164061783294858413855861738242272168281743780125768550747399413692170744016718773498656426327764304329759447033583174635552799729760382717690927370259199450876092075757862785746578630240243248729491259086344054890277888172479072720111857204922082648269187443730346527876180594218937159897794582378037281017929086980422230987470268670714279017844876219347183243696753778759123708790670468161623185399748122729632528681048125847239157685880472126754913230407499830670787610634728057932500575015401037060230700764626403767426524733914963023137395725402217677189356047908130943564291908374532330726837916137385849146640324833768964855846894416055512157058823461225914524103697926869455149165918414151155388000531162624396752639316402739522378620847096574264188656126505498126153432160522904667118863463979032871070962439556119037592761420392242460545936769583243442214530071041154775324199032212366449241895219170489153777161798697088863569113202583391351201562134163368148098009713745857939945046194309814401651074300590022693760474524446671538414601155856958622585076705805183728637901792782968706434817405116949700610674115041506558321664702898530945870044595431465654194618675756487758531523995905785132244498502537647498402001541564208567422043053470843519576618228573372963497337099213736429392975552072298508769017437031964314396373605078084463554570591642072043551737480972260268922125346784594523135803853805381664649759824302065295193104282558412282306763148199798226621979357807173916260335390310146532771640118530535695143601238960694580096463909100214193206855524136003146652602880570951554442395202771758235334695606009959610739846377220298197343056592300012138981066186216599301207836185517981957829809353497645263415405214768572797294930774356248853991915394942012758577836737022010700697791063271279968588905001149366007052471257275709612525784868929652799508780524100144799159800274074270919586097652503817356650335640211970512320665423738880540539609090204405495987363184746383528232267492165613286689671868563541387835934497669035505103151097451270149480998031073353670514583354941413225911222755814883075997356705330592717375621746369253311705090474765048648566779211712575095877020530280515326876707648939488680297331747680423784948057263891057277111323125107662455725219664664082790260995860835577747403694193339824407958807816997098120241225465368618952895438687498724727715502742036081149302202703991062593544411214265326771468564809665053717650915606388675708642429810056838492754349691136036665841327192294715988657751908665265893618921245659917259993576308021157694144093976996064368193587329548832587158405552065373668076799896263696673606243958483691656269206727540673560157061081170109343332678917470290813707325351680101345398204961198438759947102106937604122217704481884125719170003411454449472729336588271985276299374922643762209682927851633558916734375144923146803033336336607925728783254680413065350280380678857488430280749213724851232482644201718344689478803123738788997705655123406878274640644571032128634250656883866302348170615644974198369810097735172680666626002869403116372417292042332936012924097334686253831921469277519021302581022787418674217444053047777264026852724534963750637619100223375051421159891339444152214504442186742809789558710662206892483580513442686084815599438002009548218598755438419481432542964207651756465485299776107472442520683885980199631250682573921006775378219378281299965904480239381505990569872133311806273551321442367041667271450900966423474349824021143779225563522345992739715667124027522819219675302416066925326245011405152226201462815275257740820233848314330064464441923157105818417780580816436263082329262178883443044118274509637921902425855307985207235843279199797002042659045027715982553489792057851245881159323090099067505522074562245297072159410666220733376883881928528248973353351295953331233102476209639781392164518022767866594131297302174112238581613118223187725233245749108332945509344224778620308730689864639498167576636441764286207923743591131289982791159814106456388630175869840822532111004464178784705755040255851603316994750184498736947697880348860867987763714638446089335863747768928046428752071879929627466106863258902573152230930711724088664223604349099057909354437606920191242479600143961224357739755849796938985589686308766722590551859756005195400099861824357921968752888805469739903594721923255958499256979591920839046725095556914570818425883023808011056970471385201020196079133275474224219995422998745794297138287606747289462356127317350970349667317839644371128846846954880151671724372693885352774221961988666034527595999053043238223670997371957238473612548645557048629934837321749091068957898609657153757009249681815771961343408123703085846745382679383510251232860041402538445646895249988454592700842397180615324745135066519572935848332514762942128812642271256029258983136512020455935505615520963391368721550004902128233186756626429687736863182757069768968546828726346723283415662205453945113234536386827068405710110970952643776681188503127704269845390557376808971239905017066018047324168198171726942171324826546343143386088789371390159351320419154367417238128021425121886958879350237633884173498470195732293047466875967077393207246218992740019511897463454018728439300922674720738809072797894966605979153799647260881243546013706585379561975325594780719209058589658985588613354622476177804583355108301961927957258085562940382163821648246250787469916695629973028330380034499310813832902107175254587585838444250102808136958791593191119355073402474630058836620291860513556437187692864987157021150326582727140177452674403038471530877221462912794551264972035824290438406005675099279084897414106807685853777415571343650518656171557176938453789253743803030782377221322200999407726256498453791699932694585907016058431390263103265721065284227741558110997022225126090165585765153673676865831829668659076803823953451459517981079439965849741944866684310279817664874988343633305331355592035765662699251089368686662684008723772287561442981092307134591625389757396368895442306568828204515799077254553542192201086125824262999328761809380354227277647570569195885123770993484233009712721015050163281123937522949286377350294808180263615690024724683263802378565533547382229066569477632613021386211148008683831340181629646296683654180282892544365892255188843442972963147808905742151239266124541821008981907468785693215150103381232404446821875328897658181822832380180746576432745169480084672525172963443465412996673437686254036855112311032716998606473549251644312199495435439221908842327910111629654574306278589625104758391497012276201517765631091951723674438923251021661109981878948849888683108428512524596187588353269833587900449281617222662167795496077870620551711246149368285048788417870108113936133765651278523146899870386438641954390669062236830545725327489095213124104338047180498660556480015326690902376574043290027325002040130312163160173345799699111266651188168326775732324507987460278174536967279862196904290949260943273726542395575304562473697790985259285715035211612448483432165536245284424744373083898101191080300620445755423754435233614510388452938118899336165858406307025439801799938876404834812751458956750687580681551616182397857429483438384670965754527436873323475885834193975467219739053175216284735527647078213351543602236838554695039469633968747611900039999524110743330136313662837760420798477110775021583048256180190548326024580301297231452326995812251019279615354140886869860806493734012643547073596408395634050370939624259639127469253048851149052779900226350354671366354499685261272642059235564325198862930001984480877307707831108004440925007555262376935227123635540543739260668841744720865302316440525795922451275059922218417779274214838647863945109984492578399097258388622028328973140262944987786525695830431350507495867641821255324685762677605204355430523287631331408765269965276782606480689378144476971524824551229541468778122917285571687897066882921727326056810641916171119575069609009111167567049214190179184831341411201654232408578759958849439854809475406108529022252334885211214628407745248378805933713191937575758937020518319172801928653134851349127122623037458104037657211915563314671394464166673960425694791782633305407638125147591899403836785877923295367699561096760400184659011637898525408625877762436166032454419520608697476466061426970100851406573443266116185989141539672277275455989452955386805913192551618787599729780739247914599391696837381685670529312186167201378119344679484799752957699791962814102832174198032075269850092772477933538106629316724581450559867702711187166374150039758718253156163255477194338204514283976620269928068501161751330435944276129324999348288656876192760140861231254763823745247889578951274188395003249976042724678088909352534026216076976447029686642684370525424236797559428959234768938206881557075679678670436506929501432015678533689864769736575246503430945066252511248922057335863332896571262982993572865169928630425430302665110602835807773248956903017724463200630311661689517349779151983177433862174569635046686009957590956296014477448844383509076784457957644664352411456164288870111111181048080581071399025958315525660298582678648092214367300018595468735579394232385390588855913348106223846733728062833868597950150381066305091054500875319181741209019146439011979351674387443485681510591762089681443818266159967394223755239900372744377378101747159049041255903562213072950720282882575235275191934808518919574377318496763731523517078535538935386620615353818172164877785771702078901914398183678243786228988482287015093358534374385971708970575246916588983991567901226027504372087927503061646852084254548211177424891582651230232208709629147416440502983782968929633935308416477991635950790322856664377153293860523066238458437968421968297607451599047715802791822581893664826672680735809886456448195099771147065338374617317026626584732226978301750453513131632830217342780244493241892075977320692150692766939560153569693687566515850757130450601407369860113812040770437920123587757799161926299416646197500740160289836494088450940622834416477816187291331352308596886614168887495712671614508874279392571263733981569328234713916442876473300269815675565699909565954548389094224675823160292170177066090014793106383838499837731601607198231616327268943620809757754166679966379411784861462820380942234318642744762876158830340212067061801555304176614003157393626402543289337258316167075038747130839282716058803300243313988052479610044222819194577184461400294806529597828413810647734954384019070973871765157215006093802727490265685462587519272046273237581623015490631141720699678491053722289249346517584190543733696264676398935144068094669549917350434837515410632145610028165503001738629274241324165398395302542154092737712049257251811303739179194411574658644483667774893183040584735743982480328396907812519411414924662781321558235533310585704339415382861326258468400182748821767811193001310035508835334522046032542444294792928917357839764297956499528265192211585622350691310287158657621850408254421127111828414418831488138805361817232970967446640982519430243501988994103014256167206417760076705062446585677201576213495351710818274002189940663265504869674864169303329190870923916458344627575358834248089753204675216299305415915679278767926571192987985057705893540278364656004107044580754180749785034459489415334301323362456484194280606314446769820443734360923499212744089720847973655726591893437359741938689514957826416869887114968945223442319415952768372532727404235098134973124128326112601894727958293788084390914316006870884852182507491596316876492131586701873587349275806947544571306740216652421797038240040462611456010267836847541841524988755460762197838392928862678266751617535617031183906848070088212106533270213367153444056279019277306574638579857632268691488444590754620944212340989718664692016098041915521665286639382655664340741097800721342738855086065892873227902355981235682461747501252374334746453869865618056036379297188805196392298135292228080858445347017151137475789784624464191807609449244397730551168042894584463034592176400400019032360395667305322809476544841395629782633515399609389481205603045698238773793753979600934156395758838498517399043183667912650186086107611399327308552594888467976684376178797807994636420484732165544113598627645368397969808131961910383186007027590635394326058122214713434908278146639837266019992860257890543754548160379334117491136666144349651358420271751831739613872894492689214419742536260515517804699700047711286705915723699853727744867084650220560879723130659175427790789493946465617980333516810647821716020254495195023671732638620652058158580651639814235124462332695860649909735849036949905051664521895541905728514428359837423970820670792432448548912171193086641026001534998793053557424307494854350657915925459270766769993128341423043163158674926814858343163889710835777578840052681371041648769006735771154266665627503465358404657259081568037926949625764941374929546628755696689398998098050601198841116869785602384055601990742855776568097692497480399516091366082581804031727047507254981760798425938446700035174741416115244901363358245718577567199171227860245312637436706656650690260774397922733027606027083815072466159547917752121891314485248658236603893749592047481965361751293753500597252828707554907650656971945996133600075205107960709349622673748430593519055388808354697200054353708407642286794907744423227562092541347555680907457552492062821064421757655991215313863222774197212718115621480651916402542640985943344423185067726037511605568387181781933686761709026860798279745493175797120302836676887171226687570534749617533033741510218142256827770365674516798111493091341939051317629622770139151732312596058091151761231148943149701406558024722021043504925504769016400327525647511188817889462101580565560423049975822501528921692780195858805611439149352124507751272442742024511727771797594655805718472683619471256768496425791812584633890852216092519518272108365824455696640700785866779801322343224608693612698190135781419817221857412319307779950472707347579324985581590433557309574503646392724896131854457273804322100086620719246198552074807058957950440351561711044284305573724960780343609110757359230105830947593078135032659993467265968616284550977856319170715521554936502826141503087038106583541004447013805796960000031229014793807889722738131209590921102828188411141650877334958062984607144030729199288364157436436179243821529978895174895467105058571365013254594513427004511197956051389248773151019058430816008745851271225559395713713431236185685136204324851927893307301589817028613732807585853317993306302119309964576957117356150458295356804756423083269008523587361692150091012707019918864960312483297899519155331190400668612873324689378867990775764239254829321784458638927261976831199825663637201743336932241219057910336533150462365594398572267751179618776720762632031677469379713840197623586907838459588195791591781125123632986037466462597624207503569034143640587749928943187608960709498942997989282836458310025978876934257725298377503803780404184988815829885355188269533490609762010206985083758534935460956793048104775626912367786233985801496040324660365362859209275073095494612130870862308993396717053285905107013499631535684148929562001836499005205060222916926187730700212669610215595616563154775376900840808882346104967872113044121759550281761587566209019943505281950151844805713346473630695250417654509714680921559935303811465585524135389981807300840017429905403986299988799815517312645249196259618002478186486174850937036819816280011386699089373247124476803326355158605608028415999412637409066475182895013640829078090713690999345693914837569800106208435960236764636032849097780080540992281483205295022259392509534255285942116442506555205296842903959416094525623748531714635148181476515058040574088451710236492431322524836939940337821866556642363068981176980377925803277909778489971195807611004891160806728452547320973129919022108032575313427438132162628843714481239840387693482135078310050057064298723414508823985974564657029005985859142028337528418688719233826279203657610464454752538268281078698647651245652855309526717277342364944412009874295273487205073976737813712557811233687964385626569799343972961831613590732658590810536637257500570260200317280429288551615544461765291361521510846310641328660262408638592694453470195558120708216485116823141163583786628363132684299806683566344325992788475753105721449047653321823994054619622745602077031583509048522922204412994231089280722825427010231011415413367872474532245648771789868735170633054714911861917109531699890045481212070006518769799052916803182565039261187151341663631422613310963356854016601372434794150812642802612944944288805042554745712520843421606048663902700666232997938296681847853714716897170217691702138156839056398186356801677736862773823155291690901699581049896958272796264178822863110550409438495213747843943529993132126883639057910236886808142777448104557844825742692118119689068825690625240543033356988616860102226108691655787199535737274488228223059935472878894998465371305000755988790710681776725097237220204140554557260431464799430976328015767468700825473397119497367942351871559797314187627060270190494586661873517434276368312878463936604793755685722894505770229179744770447545054944507461553795735173528045768787393639068581484432033090199147451120642884246517697385076310127945439800567827864881159964215144015802728938171963807014771631103823247020470545914717716781639054039657596075762059633100367690839840351302963001744992973369349143326334124074016494681870075101462031052314975945789946634012805520602225127248459581855319412721933399345512451057224313831248708503646816754614363168916481490146383472374835741767107856742137731267936571060699768860425365636200099847523889371242424443964777590215926871407413857740247793745673114447652570954458395986498215509013026580651751980678458537813367196135721908108014199792772030112953499686493310458925900483234945175911270500517281848037694714976237099241357455867326781396602585074763114376390650049375970489908179638767177409972447819706412323948009572176756725655483438969296557341412504655363820557202337980461163391693107392575434835519994983881825173702469565245518406222894911293200371027130664288649150811162925040109018647533240468917747267802389585195098951276845880304594836395462071487199548237563189458920101585577298613478761147529009788499122418900252681842828875032301746261635460303070222819116290231394382556544194353389330388432988970951577705888605587112822244287798300789624360960648899966817547887763634171621239602363384518720900672491337919612213718488949173771505910499099400230133241566647023167302492782001064935515299004486890210142921791032967388005784248724614857414619798210513905428591077597401542300324682233056535020811396507837796598457369192442448964787485029198177531300282866013929424693802158584366552056143597969226945216098646228617321430219568735440600653399035461243255859272510613294642138764901831567280082240564109236764862295776207469649519884092119092517258283121178283320913003884949321652397231747525531257306030652319073738484617005916635760346092999805237142334757144683850932748748030896317153276499226729939993135161946222058518771162755475711932642693623854294599785157427748475118451189857532087842341265569946936171803521423279410612207370404466668289815257052501787456039904688445242319821082543343736565259236503264516124529612954876163247327146031096183651115064525986722084241587459982695492883445834593927003378579295230409669675666297199314934999528478883611098454988734048738602569736528971553460793238268072347233335998772427049419745186208096240479693154988035972051851567261896190737555713861875475316563108218121208150586251673560782010795345723572439677797695458453736923029372592256149256732384049345084198200011259775078284138173320556771884852459226103401002753381576458495293768821636726826213086394857855162177133694165721949255579325325893630895731481145525489218708952141957907138240347098052468804461497616853172109371331741547348659346848708529473856588476939926877219576316467877910214808551209702717600021268269715844291097778610117843864030461705307019378768980391812229471869489451336914837779811103475888955032454556307814183571631462307362414683133244834806386951253597926684991161999556726773192034146626195794039316763575032174406561910098786829026053226250295536761710115382415088781520475273301364482240285180724476048708230113520406273358759994080941562867373293588889485718607472534479129549330212661583380196467445974808142538969742580435952912433910361376129831398595586960971926851460458062053874479779238446905364348977210580020012727815858168756428203338269159895116472762236422933364133317998953068252019021641533098608603314819665922594444163206267231948385191221510825602758653341085123381669431723721188729599388898917095973234097660366690904540159362241083497989280132792727469758712300507905993252971126747389310387615965703108012301885490443729406264780673319709176828703708700030255171028540395963838658985920138193052115499344209677774830708733631443985023081860901870145782305899564428796789551235705724534335546805416366593847441070533973243533444930501624819865917190570428796800292124132518190701784792378703584370061037565446767921124320511211270027897982951692136828603321624195112330166184588272103853284927727300722941067957391191610531316130904282623206086917026779946157830510373188017336264739135021562892827515603512981709230437513496955561508759235263529195843281882741611201243791209132505482905606612038596438564823169704604026811086324359119138237675427518632274113691011209318166114461783476312894070591600173772440336012232052773020727440032976423441961759546022385826730103980719239597725203531214954829224811810401477660191347233072173044636160712983719411490553064047632399943422788461398680304383749123550200779432115473241272077738108542651006321658257503261132282717044234157450683355548436478455007714864950340286489736126354929837310335388231461326992354105972727230074088483252358400371395979046862299175082256355436841151992770925418148572449592193953614332890866433242150714620635008761694389521739604112827875471934508149843158154112968813777536020476244949678941448965163714522218730721023170667446353458661912877796850035934204518862823927196671339314768503412881979370605760555709780562293257218311923624638518959860015350469256405789503199366490050009490109019408323717339159554050142304933981447871973443235592849178084278659931023141228055740099109532211844122586287938156753899750135743231130219160636878248031062798175759340233398507110378378538228344471101058762217968347425741590263286396809063034443741963025928589751396273877121655803700021397831004439654075943264210086980920049008390178204227240210071261587859424817314273430317693409216801553189359168745099773721500961132223214596524715778129003434326044261245458587891122653749081175926412323433035518556453616870071417513587299633845639397826944578312230599609223795950162507073389099407174588070461175580124769902344637298219882005660796271285027309553854700898495421962020133093270308701584486447039842333206621523951965294156215331792950438050916801989469527647974200109187055632292625260108041170704949428227901112385973697582889296400059206039830355309301102579017389011885972297936314027221670805330341708996615954260227179763815396531484623375823994336352991956798394074187543347530143159472014860661390986034694009385070835414924014021413502843432545917748258302459776923706641832399237695809830315603979921284679454639288214136800882029701097757636341851151346718281793937914156095771630735240905435263287313230069865208781364298281160576341994333580441397293256710580715290325958854822663612640631722431945322130069653542362303228770868707961633689026656551623400235712975776820830735035497461170956472589938353578727886817734824946758729611429718875182642607302075454832527830190404730700690959214578919519139068531965667652385319833254294373806917647974769868051257615780965063107986068703587346085857458868757843290328435917904883671696057707354372468603100354110226999092173855387626075707347458643187874458030358966440552468510541048624721763675667739700206821296563425659483872167517284310441015113743763482972498779765561772641701787984065438241494161108914311887516403720685609128392293958633332336079303618088400812855467355245356960663033572193162897879582421207139250376282068786733849366589113071331199609442049414633740970052496880078441779313480541983608463935776210227353397575331246180029114241176595937216468339262751909874383180398490140826021151339547811491497441946483384069172919821620491992661368597306130782207725334838913569688940985513810678976909278788359295161256297375302091400487843492825210594729739117611635426450417720897729062943716567108759426305181174901071994127928293392673111823908707131015144451725332485909978454939077537638752205438544921527140967716809591054231478882733480609007790579682228590479838242695954536051371278153677841944444659567602357385021685676861159299691619440419504670176923422397749837784956567488350346972245223287133415482843150321863475343152135955636110881824053305946742601976866879958439669203576544701840392672634913924010817126992565369438288239996901540688409518015134783244719483577118079569291218320185754205053439673435044586588910004396061118487724251108847246014491410925482895034960884052930820772921478525373624773949628457455072487125545323961699981631381926101652534385538048193314855794857589092383451010815205279486559291617720720266826904005713167869603447523402560495432050080724714450777306001604468987631150134516763619655635853761266642505902087523922526630950174057505735112771219043840587755511061215983913304151123386366421404033678226406233758439205217522043699183291337373156014360005000049243176249280982185409107880564295491807296267153397840945296723854552781844615001335405407320689767826482527802849957112948069735998358469440630248224525573515826104867176560364959448767266984991290125692829666746888826694447226943204346652390252055781756706341076802676746779404550627878371515914482714852618188689563502610628104028935100094249127756535709285757846826626032079766637723104232348090778500445844325891513513526504639564675334081977151222687038173550257958919979807761709009772961013657712305887997462051417071276481319505453651976716741190724586511126382711216539095510026574844705607007620543410097693051336213341157342894676367431523914795249299266935886782098079446513676573255830227717412525303309441465135101970479417868267734993825959582388660857295418927594903940227423366328408608338007773529824808631230267228693292611544038627627874604472406957076008989190651883231073650966340637643701088805414042954802479053919366990184970012921360932906180986986488176262075571878351031270800290040623059844084945497761185621016898555117519581456382200360239002035425610757105939960837575277655829438682040586060862566302889107165402453362397800913292651112126317604329603900434614991862351123897694450265042306339455298754596126521449898891977281704978965280852317758340257695293414102793674013065415353619157183007535240517800590576395379173860162094055423340336906934299134357240085647622103130081575967612050710616657458398451407806153870609548383968521219082924886951252565672328000506183200569680939084439683790406660221957628623491055366595416133093634972885793493478603414270553097675912933144416243755402075573266525140325980069241742142343993690906288675363999699464568829738921021406625136351108956034417624632457198531023804952320286116754519690498592191600909267013753551446440341067206700591296952963356680342828195261301980095757699336286069738579153574507673335462482236388526132728251178756044201859547252784273637644928093281723881777041872602434552786655852204652844614835131510180649423652843167142123791681409239003054475450907432672869873988435137616868378206784908109086715544964955915259545711651873247679221141137722672340925598828840465046707032216722987233869063640474772671072734970480264860955305921103172837436153834894324000239083838069900851661421000613887101532000387689264932243930333424385150919024317572595947676467030496849155263136024212977927585639094525801396549541934792016695871164136279974181855982013820617521916695387929073393419814376495838685233036204011613389934242181465698843583630621689969047697842302475803552836375426966047801876933535248390027837792814451546778703164916591815455787643983248043510424108894590410966266450589303775541334479329115151942970324737554288032489477987815520478094579200307555212472929103872793637174214176787423177110556704559773818791847372926696326349387735397928424873727606942344442417110563365774642711142769439104598191455588393082209302438514548768318231587788645405590262523123243770381772346158567117561111255316106048343554865154959266842873265060023121553528283424447480876107467522086195436088213680328856404105067624138805974835345715356302254002161074686828890258774471376270720650094836426614552889616874785393682852848770461421520221238947299579645112654040692632690170474315779258538841907686638159454900220331853908332352496438945633799133445926489661982067529745119243595016167532303966156881778316302732143833484644164220022552873683801668960668641709285807737893974106752458351074497495040922385436119432690267730922981772065322816797166675617927966084780011615969699908336491101682289204256422350183628530849370264970810819043584069426366922642498674462146970933334437987488517688854642621535355317455990273508889767514204649734443164177520791293820631400804105622285338559625868988246748257391532273280697367266229334780064582145137560684636936154926319140111445987316542607291793465738454573411725212593461386024945197855108575917979103356977608474531015475393219463377902157243881747370150085291524265911069322594647190388103702176034486287599140853142317093592835233793899505261870738215255553431783093409387690021217527887349888224141926475121786995941162095024771207990358523391366914705501810234705681219767279971461852274696693707601337908233820295785218349985999832507089429189245597380902028628496767777890687669046793414114002337543048694353862357906539915104986366993209023818848510261565877132241117627238800828858911999285373392448178878396154750326674564898171329133159170618367810221986028748805451680850846076116661820077497746305437258401508019637452608604538879609496377563058727106747124390296320194762597888069400916149844956800470516346255111759023033990547434735519871800766730529138937080081646473427994822554946762706796875992699294749642336786133210856291292583922182637517717430867015920209721830857430747306131054313354928793168102968217258308861185245762444991652085322470020463278357669244652834094759136945349947193736057667293875138418238450601865887750136406384590768269169908565718282058680773496125813671204669646322986528670526443772823208967443114275228396560062840572767823417518978354808270576579435041057893634320337098087581898336992753065357955530829343704918359227928724571144624373868429406052317763914798652905932856852010858663250319006614091299902644819515940083279829635779834714184007501421557581452266555115296152798925978242559000971581826676921053741906700021749513062161670005298179799229177863349170822065521358094359542546096419974152520373950188874983040114878208164219421935342171808778988140657683916630971780491966587347441277548183247069564444368448329116611794993579954732539830367748279600359343876032108780351509080452891923921733700257878793547592265849486594999657503927352594814603259030027131812670939971109392378963992720106758412074028883704960310730165094524912873217399209617313492003828012487012877948786360824865979219437503617055525597627182494965949340184168931860699247093353338746152535692476397032463038099710587258290293436146903482913556351439362335496960590633215169517798194970312101019473575598344154553472413476934556900967275780763959246829674184128813858858083719697462792718342821100241095402145543097124583993261957460056332487917723885852575291202621646612722038855450877205343166172217132907323021647148371055557060499902412144918543744319209507140345370847635119068448599872512386079824129113489590907755573264103033829981286242002249771125478485042798492550990765567996047875291600503054105735120107051467853029971903181271103274945094121213579440237417950447428301983811129781633267242853054286668719201086228206345355441721183126727725176156899757374456003430861510296629684546440283377579920483324209519776959131085075047770331808891519302110828578015823260225393134773945015048086477350776762364330297301461500769209583462675799498927681573344449573712956958387867842651966978028739830735253228660321545836407439180103587439361818473290647869902252227900512855374241660733196225261494860684346522775799965707105365184230158344962015107914503307555706593379122297315362477256553593711545812444594378764537042709051624326493126597428629941326913152875326324855752266607644805810710786655046248967775408830320510099080321755389052166897901569276977244490972984652048441041503602728051007643126307244088641688270238903421797202037312491346360463291891425037995160557764515189977748946567028848957685508852660822197622098601912263168879660183889808666111565984356003702306165159253060626160394523659229063470573543898470000977734341001045412241911319729052932889970133936076692704587861312034341205819522728217883886869358454682792382282826518324992010466188306101568479275940059566188493697129969777424013097644887466940759196762472544134323834443824027748232275037166784721956156991529051467697287102846870116959994453061132259519554709267109207831578689468678553314099598504271405809435612220357505361029334934454401078798647983307854603960616537649214782765894081926366784426429162811710990172630592288854267094946241531355847700855294130699743953265710800611049994781649206921279305226772388384582803271697913731998141454906626020115658787721314973134106151289209969987276516991401201412359334770831842480613211816492564675451740341555343588243274400833896369403920884451723476400651395759383543816818492455299249995597412069422074209417551394543762658230539990401852759514359790755895884643766890238665777268050061303324605449459593806001153072225212676471229450763633434897932610503258973318423346262603881507430696589063453684091699425991954184228313053444438433684913925688753469536093134757843525111428770793393891786644502129296317845965618593083555442446135136917986846778973515784062701306766699667784031485897124172242939806305262127170641582585741445055045799728319924153419815663344791063925003538717829598936112693194088023555871784532331754802723504587336157137997751503690795576684360296160725581632417403645004556578989060370419940982651452009698881681599085600974530336680013960430716661978563929494748562695517961719120763908680894115107594486716488330683068349223610327994125048608040684564735518454971267107855492162681391140744929632450606117968791067284617734904980989921923354158741845213629516998033641270158557518857946561812754962315930289330926283418036879265120947730433778355963282486166874247986135845120453801737645453118231277124884871391363493724635227214349360996114410835939548528568832219220162310773848085890028241373981679260430717960387221928658602845020214508102397076579923851963197911134201297763699378767264635415002477187433976293528699572793086743683926301005440258362172631358448927101266144759340661466290283384720788237218297755477436678210283195459852861881164811473802186542945559468838016188561132356380062584348589245856522808584770062105788233455019685583387110171118876120604088722115061910026685870650186621857829381165457532352797526029187330152623034817943228220375237486957136743042728003898441149082844639171442956690063073381370141349061424890964638697949490435132371705325507149983529968879060752065163226600776394731681445619737907804510178182709460581797976024394501149769426952028603976391174443734021970080840115032681993954934093611161136089880949363957838899434864765936639858141000185682510974968828502837876954043421997129776668249322859406805933712547570019576009276054215503523670601065728116864159703029192485090530493529598368214392475686400284484802096265071926992569419021428904200824504243177679397426748207447029808055635998429065493537123898163493251023666664354296250591747324707699811512070184064381410566470581650979709266267666106826511924836406691275012191596253824461220835238496982964455546190241957151019654259701313738448833700871784916168117432781151826827224811615039138310377469334383912406304682248709271150350282205497961225351075102730974754112536040912703566869000672701472835936949586376538076617077544445494998244511237815805687517570517516982230332807079851309784347362696595238978660697589990139890137855202408733221598032230347044829673439942283689474108217871339226863247820101661873245429862413193474214205273638499122366819332085317508018538920786945566737133259456256774885164384194770884454212575074458170541917364124474998143455758109484325733325336209274268660292835489851478139779270899758710007159014647450681946698556948780735245545466839687331492900254579775783929489415195220010214437649549861698674787388739389741741176371966692723405198693104395574665893763422807407474230339558701702780824480664849947894517457543799157920362035963490033141833936340343275456546606674144648062532574966142219833741737279622452341191309316980786489901851138710790158830186622302212275477494703806581888371295428617650102352930583010139562110073707867879166677845288082327617217230829739507155944007307447145541616122329453766322977084076238997790416759397596998891422921144475595508842234761050204745219751859554711156540742969610683265258132282963899112445913533341712923789647195829122754413290314117586922144005552740067797941924887372393248023208517410967460767958800969316707689701407964478564560073900281624714590840774049967662995567001201963257464775839615369112717381221061577776547584782046324321948260896152099323198917626306367735164927089207280798421618563429534468949943884851180043906760279122177612885097605637301848692348573566514319356835214040380939628582970234248080055157940410247463157291933890184175792194325953588960555998609981367609981204508756910374745713460054721351759988785499571806021084668470151309703524993099685412337656175926796361217268142754115495479070932971356086889095202171173011739592617293642499107568853328850976806069522336159262646594177482542716840280422114961866949307422232584159860087476176114863139394701753474390173306670537052787455076424329750101030335498708010658465766080553597747170603238722817790787552394306292193767366407612701525222974898758179553500332601232149883932217866850948364657533163749790561855024451779768864950397344721109158874357576289490491817642251436202967923388370543217422244435881584747679336738293679693970726577522263312026564571602441237619093218491548500984360958939898628916280963621980567786432363407870786634578330602043225518959665373171053379155537591118173456282088170998086651556671369192163349122451494475907324213213283696763348225713762862021803834336359245943214751650178288774257715495535981789696607865087002527306126624396627770043517341732993005522502079108252249899947617954303228487977473993919744932591225575029016575619794226013306036594857274019888531898049266086928705726069762284706506264199046177187200206963007430465782379177236557240751896399322806598563929489351987274793020534679388891207601301808991509090912942585824549742977511986994706833477812231053357930320854565162463578331896333780181401035950570764816997602458346713689096722140896297053532302061193734758525166640648227493508249341614865439394341033388357501669570781385489597652243789871462954785639322310530088514084854142423540223042961916214872583970091222166112145050839781283846533230692147078882435044987906523285862183518773836189940631850829704205431216406661782531804732693907992974566370991490782729703947952952443493001227212502894521172677369151280619722243837674013058908018792857557490304841252019013157318048709238128227657411814219712445794444292042037080987555531322548422835315003406046394540550191065313001288021977846041646672768055100937445140798153076375226042214597793943067811892276517815492076009450362361143621645514282858625847730671390339162091210963574838023816192971784162113691315528895047832766948794796837237196035435808091821088429908695553293610527625647881800620381343258166541510996830882942291225168892804487434932443023054518642637514375564349284868361833196055798370268597289486392820609205304677107409710280298856624378600334412236650744505854093292465074875971490780968515355472598329799514595590092788694826708449101478782538072424777925062307359888712727013598293712582188739969896131457277522479252683545415230493475271201276957338058837293981606251849514706193255682424092248475697887502357148003584425545491589544262567061922374376858015469120734474186467869966424701458859404264025267308165904203665875344287648925077561810270286786092246587707640910961787602473458671314530470879732101589311727273169452280182431843587684997974889867677011005547214634648807902134697744999321467829580455050394622570385992853893042552751921591184363772708451224618506230210195993158072957177763146875798422649986634315209421154374423018895715977232100277764439690244031146052497955508447162267306790062125138640250768051890760679182875319541515840439857897411351136271771046464913459662133676423729320928863165223800599095171567568571474859830828285971327864122323774488913172679994349887048257078903387025865562630129162206692580351645629102844039697827653122723317277221892873702706213441073711017079775954665558057385053429327355387347719701255043501241504832073053614587092461287853175528711549050406760731595138169950112141497203041975412680904976185862795280049569577689195248686560728961634923620585594596359779154310320392187589988632687072474775242239772460816513751605274801644357554615885608671458447774324915281958548910271926185826903908068291686624394219368897230702906768573790535537365080250047033241311221483383364721537488202553659881100392395659686630568420427949092211761371321158892913135471928694013815600903455813730306725769213514673277987887530021645347417953944746253623463257588907568205142867351435119847028771303411695114038647237172836486957052589137445908549384795302412434605096780997204379484166846667266872056528653333628924367154771946203292482725966250470588708634164350268124365157058649571267060205394564849610401880271457304439199173964655298827622638611182673968047176119117418418248286558424467566108926634374567323051966415164766313473158709421972496082630486752470962270745787280527557254699152164531800594708301827141526758640118936015217071143152663793483812352295378266802187972337669306255714719418810767910601690302524516915399032167882911442602039070821106096389954932080013572101802406639151443714679575020228136805359542590269605683845233234532336567002504069370963193703528941440851405955851416508277936862962661757829033486071485728484268862950925256667255559310418724985278951407770421173271359268191826598900975581839016571122711032376739131360687669612660254280462695009715387766638535749237415703873146578514341508507754374535017502494569642302784753660534926961321012714711867690066748544044340077497142698915614760538073195375184847382819242139372247949207066459509177280065115781290208378990585368039746527835366674026762329871800731931797491976241241655454191310301328845465548528350402666720485893192152074735763986100782557081172038880214339056982520843691286764898049041821179137438812435271089579177239062921622804560443699329845721598355147888850648335286447535450558432109896058427376377744863845606107749556832011472635244532149210405501318167127850671319789373225069956803246141755574884511409206176463250443303729435057677129372408683009081292653936776422203201835385145559159354994967165396366133172371340926278547706941624269843268168823987424347056156702510347197237207645955015108800488959645101398511432271194678822764669102745569611809498904437686569194165670225010443665823827040299612077033045893593301128989500407293817089869144283716744018503456925119244118154510856132234918944763389573301730704372882719295653892189115922685578046573860720837490663324919578849636203375618577438919528570910119232575149845318957983729692837503229223650399309174684317362424044242400366038432596442929479466819414258069460623860232649392355083251787348979369978290228648641499059042225299717171558381598697342030413405904821866543572256995225254200858114348693727792741007755910856242163004057763128640509244504391810529266196563508579591131559344805999168127836416835020367155755643637654819544925743990928125221227042382381662173751134293935877835821182409294975667058138130935903499431798194172430957619168286283207441876595816439501158674391844694085477225101859884457721296613375296979429424569126769859850697441800707892983519993830144946662906264787840032399575292052620492266420004421896738898322818041945143293019662244859860306889760057322639381492098385661709475306709037983766146854631325511273446721664624626861204154834884342278972702662956854030239971680723357108877657968946979836282250693740639030067231945365650406178033926333708731583274484682720405486037185288696761812592665637895899604601828467473277856549332102927011528057182838983412758503523274639463739048882754024588247665311174562786021152485210892157713009640324488753655877741580338891906710155937394035064608828677934952172052914410574037781455738960036256975253478125356017577382289018223639798759299086192047506960395050202117604700020012633651151308030351256021820595630633853282714032445491013200241714816111480520081813420307934177564888198680612098443668579711929359564351554226320605020339730594311273787371287311541786571236479859268436449596381092572882204522950036471676740195855461150330161331638320809614241885439594738645163646137876223275815600355582154096130570313394048153022971191615679034781516902513985455718270130480778870504670025983237692007926922231747293206584381002848801343606184294033432377396053194337668937181271281421560056141120520921143787809613023733932484401322296027176643642407976358054597701013325618466632392703206078091529044151278632594657290824734248532497345941086231951650277654960517109579132814743617076029785991136044215917243114550809673561227205188730585433980591693828937565953945333865892289478385106073333505971684211752670822424386583001439553187480724557915583504325712484516001460057136005748585326722869224429860926684193661348209317096206163404875005004777683376304007999025714309053933179673520084407021279144952484198667258804877617042225820143983296092396081432002890777797038616744807083800984384005924813609286111370367801702769646193865315943853109487038571079681144889528045743027633287350541812311070157693766092205802552566701969124368201657573413676831781817602190850488326127701834483506987978244475644338166192058798229881984483032064812103870208132708649784370374616042396213246222298423899899837033607294675065281828961153841078162024196017405671547705441252922751319582007725500539054602155388865731716578538692780368673663814971951921635473434507626313167345469900124669572319962269428800732493262598947882632240025864352988550932585937546001078051577360134346955956563443814303803384232719727891601057866420945521426798919020659832576085634377742710969001363656309578636085598988967646366957394765315466906939055978026023805345860178851569438312703744275121511827181750352079999812304531146712912924137194883473535419620264153954144624198099768875830533223009565541349967117058989115831314926817343629422774898530858131916279561381701691712074479825914447929754482075083965059126880480761057382965270457969733551627048597662213799638485146164892085018027196912931185938118300370721968159193190414915088487000320108917792581766061531144557568796941824982814638940440886422041861306218760341980977260278942678138046443793469027518732742471563957079209532434508881265916137191102406483573933548686609487522061247085236807346687571696852831881593191333226430877349754613248955134245702761837887878011112965844071108018641589367692235721955137068628342402028900218737608536767936186511137180080085766585494264115803004697649908492384364113959144610465976065410696526000247711642581688357812448040772161841410164979725727304711415110078480049170967258308219560887486463741388183752191397411118506552510060437507529138976499766481484290990964027069665702680673350665840270527823766283593990327550143425992174469253199151735500971253234694416102199515891021427792604237466558092730485512806808408907535030815379552306810258731744950090014782592913242363265796559309624699289497248113370406788369155995926887952786687538950900421952366276869372784365556654926041180329723826678410460029401103280152291151552355097499166212039220018346088548621238566646091492100895175070247119505259887804352341695292905766063728272075404748276077907688423201076087002570867303334315128481724507025893239762404354165916917688493696350480853173236779816706315027322118376306798762219221055201494741495316146315931356733226003715726530243176817173658890034642172135351613537403984099115585199599176885197387639372349403017944826738907516180650057532422726234910507947985870646592083918138507131117965973835178243381513424894474930121106153389685732465751655603743283896728050534413382965953927975947012439824614724797076098661307904811235148824400556026900792386580644376983239873124864603901327947329023674303165122415444002741988328731998427800315200676537040225092220490985866786848800444574894298544600110388521640859404208249057927917848900987063684213390449860520686428113516176637068577849332149801826357589398502064993323374712990427556950550528612975726595285123053164242331717979471303325761701932038931163514701381838888109285247258346701074872702720223732243504556751072612580250741679773151675085197099845247410619871180047558581022304784540353365887384645861111933687601787952506694107720656622513429519921166105734947436000636780269920863334218732923040587558932023170959152428777197575479819742975523170844454431192160712213708503358005928393194652133595004083408624676918201286151212665146248172480703187898195850620856767785534157590931790926246695700003952812708806122978472477537324321622981484615774617172351859605360878206845211351413230824673829355795158329213568860092287187682950012482778108568960488808270026855224545702775245642954444329890093232740027754483328646517005891009720269650364760457721583344797355029742363208026973499415217999862975502199755962307412061981897990740009349854336869297630420237293177467172264147082497248310328395560866165430332600045398430801558580854414826119121332974596353819755090907567446391919384484864219290800716871598204303178897625760494785073383486111947401253286565273691574630400751557110477278544754396587607657275948499127546356969390058579330575218322755803560343178850058234725228893610694813034515186710413671373942581319984057972512335448891249539945399565186889982364434271928556934206124673970417999427387511702391380737732751455453804876221992856366376260735353584113470133122017065399150673604940375154542237739134429306329630601302223947212208861168595293045132137792279027949408828895414548929784656047299056385361264388488686578218049819454197925906034360702523064032179063081061937986962388114060738249737376104306805277587866407893661784096254888527861491620825089001387051480054518226571102164611874965126023679534070002117412257059499137781768362431012622344681374085519752788422114822058054515645840758970607256592793545582888175671528577762284502748072699595689878405880007727139331935224362533670420507043058867121370179176569314718204166692007668026575397280317580195832036170014380963639211155824603755435930864187141563747051200052493905403160966991443851682866247184902956811163631065090070147549580211284167002980959639423536192374727492402497145129997476663868073646959809413447320611841622362951334009220618257331900313860522288128350519040164207432072581464535937193954219678683327709502590185007246317628861452942684898635169644404313699344378078768274516700433684082347469140376376287941571122631727543178591618770848495561807849268803965741414001439563043563450943610192569572921985474422631954582889798630252906921192024213353877613870367619536726853193763104740776908712490761507912989666476487566380600311137013642822831968375059345042091166710277087946449588969714195299018830509094915035140245797304144140730794264801893493581334471935431192866748972554510164480687085986536059700445140164511866456547571067736496933500922898553988943262939426471012869780261548781200082053579995735475284149512203571927790905581101414624955703224928412087599957175991022118283385533273271260880463616671684769877438734147398077190547308541773370243476153396684800088816473084988430816182565803546107778670964173141489775163270116638664182719537264309254494139289790612300334084497348755365578381355684130372369162799925066136343442634322233615595434956425876325317583349421674727523979389981633529742121616026128140084566322848349829241581366993639706324881779914794948041646659476540003826988158848157112736720578546611910369249539071853975993673835539340616045119645381160376505377505494283168051124379168000263874624836955201271170742598941537766054299152354166050576760068271986046986840864959633428260343467184264747922801832987237378315160333246558202264070734019125871213084413362903273289664861541615246885280911128910301918680291689256183495998187879390614922627391501908696049155491434211049149727810079317228653166866237801441447963980255796813322578395913298249915322504854633636993071893072597800404714857074349958147590891047441620808422508467578996867647720074581804659259840361481346082155323177599369668300572646674288312125035546749895899048465751769802969387938058423420067315985843720907726138020749755443196408057994856371770778916152064367432737770903514073093369318275282829324792359483157488281031739706900184629625090286772930582851734545447633426489991609015063845472701906932675622591865318060893683455032164717913870859695500244933553015487569846482989670241607656163167517261156541652565850801737000686039411957504837556840327762912113600280947359344905524250886478953963881495897729881719616196794360707738949378379480093070099931346486025677251457512283910241393431149987534600200815265432663941965450629534285350390832389568717434607469678185320558108881118024393633157393726948600181536980133114645089296329556352050757881034755284809221214113839163497363446220153233535337475690845576749149667225099738374732199566196493867425985615086048402145904168719189805200700730550877922345504477973551796460962051356079285239278655689469820601484594635376798588073123349275430997454230450095569381366989060218533072023276663814239744857619175689785119729104005157045808307179299941014333346724290007040170363454931226808706697611342998456619923549646695495484043159448520718037024458002618080434330447865208861829824877723692711002908771346900534193837898611343699412774413430892620825650730908525333018080165423676413271773497750056278260436234279551426686334883572064466548589988553534306316478684177601377410288031828274670195877627901111784762805805151538515599302977612715150730592719790698990497942209710052560368637958586717012365563079511208660750332003700326377988674035060509708640060292458847481002723205772054362765406468615771084017756527033411892371132512222573587750574627620652260569712107717758552825922594568507192007996983274572436757041827655498318531693885174911036540089477230761065271710874990289107337755363389904287552809246347111941885885232289713424134236272952677192436321931544514331652590265031906940151988072628089885635277690511436538048573690589597202686931290640606142555312299872372874588220794045150021364503104690233212180260891924815785273399945284604546962834203296929965312724057295644062263568719726892841419804993345116221106943646796503048216336194086601748730954600710584692227707444246526642411873533479507507156416984920430107900549375043219924894226481340702837556917934830122146201888481919627613180368469029442865197172823241949840701939130539465081472294302634032120894864623814800531381118623214048396388231737418888347172078689478983956217770267860438050337749575436268387370239321894867652135284204904818825888960934750445590608272520460852804462100177013121635844942934515500622204340671100285066387568857918023387992334328044120742425544892808264260529067475612764940178767910150367038326072091749055170188593362212999399655372545204212864584804286197515258803948121575302489859521394415398586626229018229856577524686666799199191288165811271042914126039803076034049814880082520924522034961234389129827905843239559806783437804323346026977123427639543791004141524313499077160257691222758460310525682628242915812257221145720469730860100918050781454068686432551761360394474662346520382813612561887116215218588307847155943363104206323515758875972000244198309126001389973979259721688622043755122661514041586698841715953816158119256356708229557274308958756405848884767342125053007016211270417666631266346342224519934421291304600125583038112043322937273333582947074923790708616768869352026980677856009345769970525420535863809178661941764100078162019604081469622715643913311929260803755696270020091323867312336466135243105963599705247232282456155078675739068079856493062952514017129730217689704042463404707183138459685199901924622656188930155181120562999434136435757381963562431299923982725234183114088765345423039982682631943763672855174565978131026195151420253047752344065310635785596913040366523369139649346188014844934297303277629129173169028263070862392676251994978463424467316667029265916454066919611812893088258787568391588372003216415438594788548275704767287189938170960285434464958289531150048074523876784300214346930920884320636676867180481244406399759449623414795685430883548338740860301429586418854276315117635533576711662437015419720128289889461907776119660076028259180837314314291409684075914271903812875742245182200914922920589704000131625778197546091411534130454723548911952161375194041826183671205898800003021793372289454498280703292594775860892422820214119517142628114266853357000981274215763350105044904020508130638180581875282742846474946731119612498457141607536559011398873593826349350579589230151995589071065979080343073399040721363069766032769779735366489029666143732200222164527853905005237914424362883026845604309839756240262321531933163661347811605858619269172085162830315689615428568517478449862521496475391763749378056931998663458898596699535736490805668798736374162852335544594542133199442164072726595071836160643175316824517832146573336987309679452695464677862330597089864307722837747840202481905954867729923054112653355519586676332582742285955920248639101454685880721008344509322231170517336930370768734679905068120438427058212280581887073595831478269741954304580487878886118505776016203367101077581054442157198552605794658156707884081358442102227541910826852246111286252217072277521523381312619389980930858695478248881998029363348847678493585575640627306948207058055075342831470760429938204900997620471795555731388995589890605513828124002760860971289719460070422430680700922767779595183107341883019331301040594803632074750447652956218110756923117271711024063570503800999027543679253782941769443948926208320740225498178805084821859556090614664086376204321681515858751815508056193330702878416142355338772995850045324848023468409935992296054276822853790992306415857170804115944174106516392478085003609242139165587249693692275162821496367344863199082430898398834042589084231404290802722951502259589964409369260436353549111730440840834323796501879661917397836774982491570848802145218551810775212167303536272756683945359328854903840060764042372330682179068513558026488743110094348259464962275216775262750944958337754973745268221806199804386308616862939420567410981812459168451678622777869558091753000082774209741516448269840103334098367415490077890220269812178965133902384632506039813771210349628623546886534061104521087190723569912563120696451818347762797599741712299863100595602368575471121413938868690956396628995970851884780838759982067362720164408477008907570281823263533400574883308567225507149546253871352815179320747653666399915408318917944503084377255744155306675403092121262471678184322222066589553250074713477348455299697355833060597988104774934951560656556982189390051770028271350164404488528433628717594471945593731882617147093850601348093367051137608030306737516295269960561837779056565526120904046418751251884355508516858491203945929422817914430234623767142331602816165640661720371967267480127560649279165503240848724283435570439314505607325624948134589366783942001697957413978911122399452975147792958614162888966340973974148872496150022859371713260293239119018509286586875162231502016389695656176236547252581037450683859985148322783075418785066738933487175669734611983686654363760557209921282991638493447270498788018297065689571041721354958988845477983828789605262314008553356488827721394097466919336195870273765539019360036954487112818093215904181802606329460092652884669049012379525768960694622084875473257827030141775517372866030320086680049992349324466129770095733136486730621381153875558879794574767288192832341688901654466802583177772036867661993606657762657607933463277102972037192340074064083719301821337895099936620458709566696594802375092158749390668125572571578984417607166158733316340195186994742963502308386175676250653133236883647376383258314191572029569342101603548342418057001017598825224618124244584618258714558482709459885675822930033849052113073179159206317914123060081411836510157205813848220783864144063750410025868398250250791269028730490008955754232924814420274801796310609461743418090393002714210596354366947876204353519783740301828022370647040574115490831354263231920867470096195697245961468363793084225483444166791413690589522518561470184444624367301053104581209429080911029912468268770648080555474941868535841525855100911207105949985518590902927542317609693313980901271808941802704582663586057557540801025111287632610287071860446509229669675275500426758540060509154326466445134227534319256575146888915330819154666361749922084870072294703269253215389227688402897763923643851170450782062305864397395346835947389354210366146536593201428965245090423108316308165384435876831439194957151825183443510412009227376587691331424338771664626883914550620450679612546493816591905873518851841674539815511469473750901800231842332466602674799832294131994936001433521323644863895214272705126636581701585780678129080098802180091486882032674505108858132198893320529399284285635369547640085806490513063950658586623893917380608339591320393324379364529932176968727626118387171282544445370483981625568489397642857449772515045982344881689322377604101300960410900719893256112861361710988164596863217351932635802455873401401755823843314717032158743469584636239631501089086670362483725841537434482637319829902341620577138151043119671351392095869685275346160120173259791151146027961660702198249095263962318871104283908631448175374345951131208647057314159939335370053174326831119190421091280179488503531443724964228456663330324294609459098833056676828324561542206400186923520098833309816150085277209076965966556751608931106903745082165652439221096613392011951823865804842824654492087069889371479344372065909025826679711867785580456493169971308425493499610432621670343228855445432077673587632884428413973008764315103364865488162326837339532623428216049716918930149536548422487584210996682972838280701859610212265062568754323233164091112281280272062109328079782121443840450859177119624269849276407316747552017761869302297015012975663638219637319324133387652386950386318609076884536412471881910342804622917369603617518192616799505456380029168040564151544126122505624808246073045210370980219124817600608782101320665628411253152400172102724028651020386945370987837651855669445854895860440326272544280370390345826300443295017280685955259073229351663816628464007455943086460506609009825514452676398512679694069838074941751206962843785813801556608715431006092805502440717618222434913869034773295411073469915304904394222321707451000110667128391994563072996571545826165215276849531465467979768472996631794229442107011934232934766365155297579377736725128536050071395324538856387576432092783041747772479390052330967760462145225814331973685497937369026687822109394465551706439403968419133892853199419868359039780255829343384188106236626467436269862210601103534908213576936330164547539629258760373361250598005876737659894358206117494604757698627776386902252522728328980543478159265269247080423633548170455541316578066480034415369528276444786121176903896986915259535778053466731201396278082805315824555872493120804932722151367151004638423227760927084466698836394064812743856173263600635889785217863287639268552977484090619188873017921983650881197028890111352082044290488333952481146813147634495867344686595172985804313633462000421825530844213870388610952471679357412742438708036877179250194133730704376962249356593805461931121765733274586807600722020072124973762314402835591138118740806991930818866399717253776875326092058636963219572241284997529901713390010807460258576101350813591281545286429363848776552490331035044021770925449064230255757758504675189157370769177701453135642339632479473755202986431483416012167650849500860642035225810915775400632920716250518131270115155701267567274725139052910065323381811402338507540978127778621172644157281426428110388353400390458582417198629800732621705006480982584115914923053759721170546467952628146011450533226534807356644753016667669064024207074513709771010557373144691931573942393529574606189367927501621548794661063321411159037412872666010303641489252721443854255546906440887589936008446224523294665653324866319599974625877963327338062953529862516095102880019539399872737141544169941614115773856277360005155856293710326064833125582415866876782222628984720353792415423431040190438496375162210516038594054206436960871380205257456362538705959859057683210862897202006011607976325821954365157269576450883705934391717230719732245899810190584555221817228878604039193750782387743698330107599019459433514034913590774634972931628048545375660965267879452844633136462240222451950603927783642184684041877313651270580621857006257970821481515548714630207260599312213298182372796671944722949372387072695181859474607110813055182214334155864280093538170097048136188068267264181329878914404794991856336626782920658221730153495886103550414554484543572277261175864463870146898231250648996332042882620802396938950707844439771289245883539887970533077382734354054726926680549464972482175648650077804637938487015347093612755298459495314279561558108838208640629670866448941459567741957905781998747412493746913586846177344816696369841087245198154926527179241637058154667010430082071755249982372443309272683358881501324490297822686851152911018989209653156014999593785163879037720169302665157658561137871488288722370868411384597148444154919567133627106247235127682486466911693224965232664308921230665378087731028711040361317111625170119465155921328548586164065212721527139037862075412293226210599588726900188348236787102846731786991995627829862392940017801242470966159327275312203459385527354827930127929339234188202494170327907985783989049543688424352468227406491492907798303764247884272352505854731128674368972558027944660722375338642104233471174967615953521195600039664077581386704137180663692966911564083251789360135352951422848474466139060951426385563461300479408041439468094886381472682418264543716280800582329505384957112951322652164344838396699951508552085266525079020119111243010473595898714815320308714386056864253662737490607062649752113190454138711585889098308687881875264221695765931760581745445083354691133160165165030930117608643579612562482606783235871968435528659139013558574287563419384489950105409993792307538573031292780010152721506114585232456513464001803161008667561830784321285716136494892066747025311169690021483371797758457840482352635672391039734927740895066192184004268173586462148686936938166378515336324857654889846111404636458449966890728939506994554557372000897169843095746378301923510536797975149849174683927031689384465141866855962193716544566017152301894923999904246440902707573119656724452112004198266205804049791531853001714318945108297487661954969924849575824044825758105919323062017989780165888983815130736047383989084685138493484250279177873753839776514488829642919404708238404770611826242789470656655391396315237455418050088873914929773613600222982677347161277382355710275246268043779474819545829488780679458741298576060142685555664583254283107703499704026260071582840991336554004524557294535651636129094288412659528140157471350583629318546332966951951201383439377775786930242498931769289249913667727052494771629092052267273759063975669806279624018162475571387628664624293822625647680004625674820504232627368258555258983427402502227786594159716907195133206967774900194041065203792638810108725635240944115656151893406507244546243746790197447939759230404275658590998116295921437323786545225213959683713198717005601146195773914052867078200661237496072078219266664652059790824108738747082960293354408096840001403376661868168436811286964224758256614645481668132027967591107930974042983142909539229972119494911549391330208511941377644962767162588868749879697862636542184647708540745663522450221725394810007452665140491780373160597051567899387746639285380986418507058712934007270609186995156428312087780142600851171994391996353173189590917233949273498818614846161787724775836668023251925634454076572969549197461254037120391057738141366972289229437900394287749575453475604326293682590820126338660590134860410598476805484897596944102908542919227426235261628869388852546304766146761169083208567037978253117743789157957224331549435848527862556382617125540243824688781455133622541631223177006052953727411460219449573870086312175940124112396028864040133588993558521481031652944010090884365962262830369013170012143170996677738477703780458722951517754533647623478742968781364948731592107328530374794800167234050865614016731832360867945486041671849052027019427831234246097624003032215318369636741996198273307108202779691620462366668965676928034886421826915090963522885587124443483658165826353353753044785578404900608290009777688082066775753179614339930740538876597705782019907911178646634089044098769962423675971726191336813222507832695044943918468952790498499269011268133382203672585231106528297517032870895775745478970144941522377171079328346161427637698570455888008472283472094936368002069703492021334102020891246413241609146991345965385556015977706392173573912740918675082259241533966601577236621058811007473592323557240244507005811454281204614532035400899964741694426528994636489220401866305510408767427748815009911832151907928748549335954156380178049678821186680240489961025724014927555414339560160553431701578113974091154089709396421566862317914691286846404159338746509503831211897072476932884523640433113567403583170792946949598385556967302954261972684072628653063147603246771575769710833991527965310870913580610566836139683865415294596082196690804713524168734129078284947141375634714819389241815773585601233382464748669961027072316221637802643590543373748773995002442090533856485033693265519152407084754614108152647813545211681878779099331993895080497586870470798260010468955029694862436006333049869792659314906023589004192447979837599515493850334134009648828202503747879457493955561710434475488696072431235097819130065054416495812070991867748612180442153158173207576723085490073451857074282536705250538926601884032785519755210751584157183113401918553370585169289953842726434692213961918185959490200198879142357760367068040498169877752499448597825837507204263770989015364676751740849847914568853198770811317343762537124137538346862072730482684324779514347728290480045394897478015834685035982788789516293163879202474800394583955807369716676904706353194533087518466217423762522677742631940262262074115803248109192077289146866143429735126264513394002655001110643404523148302520627967584852134520061986827758624639778291065500659371672504148548123777828890672612791209925740006405877129174781603667817771619597700800790621111380721882242356487084401018498049324609863380903128200219243213898521177664088963632488621677761797977580259917111686482685860224026700332148513569765407445294951067251361957831391985973716066409690395069719375942603846419247811284957788222384815053230291392353223178295094668915468262726275936314854584889900574156703678089849426685322491590664635654760339393273803466704284248668476095687052159464709333850402948828151087625625963275003391998226981658578154229705376268479522836410152033713008002900333546577640184267322853384295875499090428406235476304010086524726773369983394064974249872323831098145989740736469827598917982563923676863823113914585973591630261201437037567430770874867164443535695455014978354816585252831609859369280887371624554518004375994172977234380999033305435973024801914421253338753281571594573649078448477767336171703872314905195447500841322292446466171271967774441345807889974181459906498482512147449883495688402613873517657405175368658888810483884987551227131364099704191274609190787817337757871126718679870204045370052599945351353810350614738496399089206278851694267108975386118349088605173198804576285789623024092853057254680335511920358269988043310211077988655312782072900099640677922331801027566255593730575240743953411488640316495765843557417346822926831321642313052324187899290255812252169792600366467448455546808540818841258505884973863504169421368326535047271795684763896340990825362419477487946177122346456529685871269864527023819953088840556967283220373239192515265648357577408915084899289588883512812156065303530061845293802334049187297369135457944584275448092152072119027116771770751526750280143584471822759411249173916283707578058125215425732411063058721843543374983495280277694932999854209330869158919993342331291751285529950816434488660292975029487349111946751988216396378763121948798966867997188620415127734782382376472555882057228310558884836901009247703095969451387701711747276978452357179972942375782709781773596010024980206491258973778722674798471118387366097984601777907080370722150334752300410737424751637803570254369640686325709088060363012149492509898236984684080544717698560391722638918771911973768028989785971784835689185006883648584587653538439141804335308374422599339157006828980620356498009050068248655834073746836746851025111545132323453872005468331695178902004559703058448206291122629902113178901006866237779832676442601586485901539080764908645308914401303920804841917936728881684981236057489101939881831705084521127308915016596522020744254678497682369200566108289892886303427767028884438439925779494462904737522863384776940478933421032102366336491646650879286465307301735813569703578186624964498415390661703453616194784475788705415216750525410876107627052176757962857806957419593416111699648531755633249960487900219990604670592177331463277210885183258462743756419853286054188278281063600665954570010217002591418318389333133962703843743964949112920222066915090783956496763618053394909346967088510927066596722297443094664044308449154634626002403909061103524852886127235754231416854211851603338274986560843391179043230513739904782261679281700216524891925335301556718757721733235065288513667386156573764582351461239702426612341425466453119135839862209825933597872416762646215021281870316681071459063437341204665020883525503988303069378054691196027405226526527975796707611867967944351141872133741992181087832245061768468531884987506141930248752070843963047437611951456709047644538162349816309959969381509725687624961365220922167485565016945748153546613150383957970019610455267588784397650845520052956012580879412808638353675420970134853186031994589082099064026302419628400654693254449710977958216077220896955004563144336439654296287600122584833953585691886616218984484256846605927074443868069302880907944264996049180201597173008452979299037932264561030667541767589669995274072571139270315072041754731210638065891014208090834324296905158241133882786517282452937393001592576758470945275019053139260117889837449177991192266087635171506601459704734309120516618231711956650449330301603194368850839472247711026544228297394131428298685409539131158318459654069150283955036431188483743028754615287675016281979931407796437168901625381427646265197012107116885143440903659558231330582037295450117758360544816326471181225859443747788923607860786950936493454960681210259662356235482324078040568603926791097845326595468312358614068199565838443117935013788006809249174683257746519870529164877606924926489686601205868526836184190537602914776400978778826459767838597132279263185278655039426665531425928898530509518291524319328699086861163955821052648891254004845975768094695181457197282352529921632176258897748075792436365429025281961599703817491018318909931978578894539270197958005976651178580570880632556812903492654541412957600447252674058395974631955842504057974432385191877626669426518035366182668115375557319432879669994454089481928256558878069137339320281671513754233293458990053120401788573361922770748512252270415762057229791257315078527793083641331348601046732296612637164963835819162177525828750102355384749034489348912899225778932847464444961326744678705456064422712352277321379059451719315792307676724796694826391414860691699716616106298373397936647144838488919626588609640612407100798919261382484408647675186013584552816717572929729711962966599761856691098566978560556317242156463555497483454898263112957473103001078598338680047536669893179269181259749106525992783799508028257190539917789128437431587241667954302778875405039557902082234699746589668932480987580602601007774925442922050134971989376746106492474921599474153701406180945416485258048587218950271824974305536750353169171635894795180738815281977275960371205071064992294008175649414370158203199614210315448765810338605570983100081142945830865815409302856770220540773917543286328087624517087635641137018156367740474772812916015699858030017929687642099979576970255788154922079601758585866595011495291764360249710376661808771120336461179407181040166322210967995197577053515900473003154493058984789278179294143029308383213377982113368050678633593141112074744399897471643598779808114986446029767423906213071048248933540013385734970670589166530884735039826456321878580421106464728817292756303356674898166069945479550143758991006365417121638545323794026350237309835960122655624707412052369553599228829514367601316312882510441610373006083775283669178067158613938531699296940863629776176042821695455759621416521422140877838245338654684142474057741872452935018910286929464026272029151154772951417468362700470299447929119057888307104496454831568435460787916010561863409682124054145876128827988603540889772828549622887429461657153960758267060507015635767411189936563290754769595071012154435626681027255176462931598631002262132664641239010315168424585434136680234377794668866262010452151246408990580638220546877886502793424987660222931406993324798287456810450233476897285217767259204056106818099768706582421529157127169115201139220232149964151338130946480222873586982246495378706779887105701671847254685133546338849290055153181540315342358358346074519941039316428319248385228655975173660936641724581351899805020380839875362191765179424326196808494829682021087012132644501133102611405767977783237669586145714031997703462102853550045919330676614106449128760054065165164643630875198943538720890165548921180256164765092317307470059425622099671224196123190224726373384214843328529338421339555519738848850486536043510174173817604350466924919192832231998306704936661931709873699616198679319108990685062427480071052905941274108080417117808202095310888473955845273246902937068903712846062568664869808439180103454211712716704581219650976384151005241174283089079761675486789681422899867685598127157098316662592697827481294622313403911707302177720602533978386251456827809605346590235754849098536847696205849250949223266688968629856410434155231730026721487234436000183555885370377438364578867147900980908705303127299920147404692493508684329624224904090749297275388001069767036270433436425415250682967176868355452484276231679819929724304285031131726912553430489624638438360070828357190063566770336657971458926250068379107588407992955730381995795894867314852084687548863311364052979157042262917398426537259052500576271374105704145084171823488103259690948214553780780064462262585053436175242416994162694311642513658557194430916763174259161467553727447130739405323981608755943140494445507256225247776222969777075114251009187937904085120790421926468699979718717952663657618005204956816771169094595691101104758785948200383203573057746670994323878974265885011023570711046132215609916154250905338136037394119265592585702061084908108068993257783745571581659750504126893464954090217181766605704362650201710212938541584551820608163547253370883469728255248280098249198827777076492672627521877237152475634985834671038022568943906670517648201362406948040347588136569947751064132355573277285100416203912975168864307237917219681712853124012149537949958398349148529364324063705446604921482423889993833298621721422668857993378869876549246131820803315803886607490972830744563658140131498919828005810689998356874814669772565948850777106001765337369222348244263632587887323229326954860002248742337965139056870962573787512572099072689534205940780020710253231050270532048689333157833207706090976533749473801985693889080765802097960205864620499229004942292418902264652602235311849558941643276560222198056209386445621031977613432883128749909374017650898811848150408114036994387290434021150007607096052904388039728064739180179843036538218130632967256170862660877913282110301665789033362282632872354424683549241283455850671598692550537642518819610496280385190269429208869694786133051861081079737219524867480090202313677742731356165495047379813489479026838582302648436680462767346609366116751490444540651317172720672515862417128148905534135507852235049989498619039358503854445050020655826921239433274376312134260400099528817112174284672065271540377335090768561464000695905693723329424293015392032903103349542643082142621293705839170776692795165028990382277138478114602486533756851676628406382263845466942643778741463921036996392791029662273213095135345350358550209262762865971791699036623156880257663575162089569502716277966899363801607705407706043535893713183463771677589916241169557113153342328559712125103700068630063250158716730704747157047676912474888699242001806138688083719259356633642644338949293683554375973071167772613282509168340792180037002411275428836171546923950243266757284468400335131649928160301656721342083258548030111774820197786613689440051813232347811679320968715669322736074003996237470098180736475546843931432348963423857942280143847276261008249101362659812392119056775149849417882639542941227831733082007503142851828845641432728174914201752003564964326532136240349716568600155144860502324664833842379583494573222012042427864607550778730327279576523942446283638675749811738986167171609634003541788276473872085125126407880641640026191545062687419276932025999733906327346622199132586013695243187593651792291958679732466914094661717795550656934638809081925995589176052264566280238092631733119327178102559330748663890434599301199404905468098107757978275125365968986676013818809580517795343549897024167974807004918646647662971214932829342514627508292959758063786270128324727012491472658478654641750389041098131526774529340747451374329586434048175667179857383121653586467860718336676820724229333537704037125163862701801066553179975885304441992876456567932604703861976053051289243926158148139956796549950501598368639835747968068162610699480159756376927725766630570730639615514488104627107269788214141667798003629826995000340594104278585232799498991521120883193240555673549230400984471588555642963868793878766575507005032843363688383297454694840094856508646558154084217726963533895555690998737858839226596270459014993453872216746488377632546551862096410529153811751474904663105659246988535464392511284993797798136408110110162161626056632435098449639238503416071944481947520992803612131970268174883331946543204403643041259528310767741428294337110643646860855692929935829195381618802219164080605372629611108983339484325636872299896163429756997065666105035769514245871168166584708951943592063588295278036004248802052091493060442657648038357419915987680289246532216996825527235016224983332953179256096233941088139116487278643957560838363678706514546393658104823774886935233838533142472808338666987046957160306761189102867737661058432179609912994173439064922380157458235176538419898953359234958214919569340018365231666651629006988381134298296014688092489061948638039169432916688805033414571641344870882910171875691536823831893417694840485941866922794140433153288054503820168928641419116764458583355455395544745008601337678479240358374947078435491358971641864458817599615150818203518431328311081890662822823357498254422310683576655981707188512967504857107095194862073425218417458930506233291933136763746581917651667746102775579522297538389564107346361384297271087496815027210495700804747085329553753423658552531927789600443122289538924377368587598259978239827986060988916272658605822345271056306267152733856583796262052742656324811917615369421965571874860301167464770066767973019006341950550373113812954328363802272759707554767824040735939998180163519677306331780479626456653561612450099343758589428675908173800829602403586758629124224914600679857485635808929019732687205195449029811934809180534131961372195059946498027050288447909518088260938041767486056038012232494533253698272715244854235819652874420772033250726070670315661126837795349098752065355140133890325720977246083079560635724547022089054577478966695747977689143259226529395361589156153691090214361818699241972833932484014712847523113061358588811506453369198646106739600589218616614785947925906736680777489697286920622236076275601522772108296428952907548528089525186694492654931695009184960201942142338571391700886157917334958611161480437424257254738669695201925820419306573621913747743236178749189724812527471844213210004688962364186645604650264327725396465614791453863375791362973610568227274796362524879467693164584804837421182620633885809813110567927711497800829061130716815192004070368885090248116865651547726538748574072654085810264538298359406369945931746947924492164342289716142863849986342284392687664460471949710984367628163786101325858384152195220499867956812874941374057452489246365772509401648833290335813799336839786397916006532141377464589825518541401474268663573109087753512402920076950120093569547802624817997819749455975612237897995736662368316436242867337741344994030146798171567792754776446866051034935615167972131025169526566686883094224887241954100272231714227919369906834992938491889701392636834900755764684925401846334155501744503800959618983827205308806602072444322873221019738961541292314305493276716183455570100303406480944055770720343877962924071876789208877713146669173889019898757585594044076332200205226019444715686872893296695743011865367922460516897348759370608020858603671526020842479712373439156421137170745274416347678450566267445923024893854352121492886813887712669795697303274060580389379459161024657986471378355643972880456031746387546403861218422874559932601570325881881486198317947099375816486718089899090501273862258044952004349965377877100433862382091618134842580890953044255531201759853629696111333243471220199678965257963012761332286327097556182593690690425444117509767977977137356536144042710128275267648834458296266510434156529678709367012249352536371277748938398646576396792772833517245431030900508558661702003250334349328596085768619877606197362880683698100091449628434406390214900905277261750890506224090939749262723374604453413091735922501783762217699321885201047898698054419443008315058342569333595530463697883689682876358029589090681064774178232176938197092505169209904458029180227161812658291760267549965272166042655468041550297534791509097124099152693724183418830924469037522948093859632965668943757639558316534824692861878705766571705980741971918993313158314722936794554950211143072566645758036542652550052629417307139178328915070645377969622043469482788114332372662316408642519231228260143582745443133779794048336364128670700798553752000168758074156170680917755970286405608412403560188876701702982591482181692546318146925733456105286520787030531021123787918707806802005669888713455205022397054260460688183654429942945476742163033463396226395953343251816031590708421647494664370040662769336288710712722741615213007933957509556819316590985673313517483830139638759415344585968238775882167793983874353096236435322105873159283068099413663702007005158998998741203206277546656378396518939552669632348230239980273115753897653105593032368196574304300531428617436324516667383917008708578506234561786556698867842980481305417291615631433055261233035659724774002313052794596169140543681498271895349468403836501107295455163545119151107419887665674281692776753780410074083194956336907679434703214711700499495508809641090419725851235750521228798381277431221121787109540466783659162879374482849939751929328433679210870107105704662550591791442769279415110525445883362508733879258850166726082212078859735111746870048181510848449054195785027940262716113502044965404742854892677204928498407783490219567399541768929754029766295243241598063002820345230094454384223695502919777330477210982453197370336921376466190764854683313445323370531827536994884389730523155879963823353908084859490466368873445070144775154626404423411126805629719308645721601900654587403205259340102759182667337304785541446589826457171625017213400949924149923317574027660646060260810704516635850221596947231910347095118890217484927548728121652967778729295266667312716323390830849680345086161528647739274327570990297664339369618642883232590469597076438467070084354690086005097143425935247312989884710276405606780696949594401038685735451815618165554901615682445954677080254511413975901977180582056002278225926216746051943072857847107480783893445937552784685363136804958206509699035691438779044797758749288272029789011119480221587105374006386837214762780848453404183032012165243520571805029338668161923835255160685487765709131995577376986993336182795326268928508227049652896108693745130110577210963162979169288963810518430726325207656270926813082415998171477159790794743519468560153102522735509482270903464657323807093854366930781211242371283609584785868921629682516021180528727069673424833819876662993418699436437581586608964848231288149066805040508798601107329735252623838482786492827475050908318423693880895908207403871408954129524258520397061319393603704637577115160510297219674420548238641908494369612896496768349369253621356048797389128371694927555779941104442468742656902923150303619687699786740342396523990315269848179893646645729583124459390201329933334163827160144884491271358149645511804339727361107573490562978574137680007693827809297611575699808360876612057322894516215356070074339456160525249480714126517888087919360086206690368712628775461991067469296065393531340287731555217044031801904761581498582183812101165164845943140610605393321292999897417268841673044547775790317058479313434843197024983610309052087505824553089863779467900705196676441209097631797246786647857424719103374362698853492381279081103135101708754873391628952086937496120464177361476289492425147318286676641495872204204804824267347667955195771605012647113739739618712451450216059591133672685159922554846312098070782185728092252722551360530568419469323251671952224571258238301010258922802478524174675540550716688654167864294481658502033581584915706979103591437963862801369244331495515832416660296736403259702843960573102375480352258098353207094712109229781568533770182272085370090577530618832345495685139120575860693785274741077002400974931295237372301423046210793206625113575690818288956094278049184785456500228639951642962738539484487343276927956677218178623820407939303053455408545110923876589588957934946555531584019588704269568986535672055794829689901084616586678036177971772485276363885669817399459613780442202325900305565144349677375260544919887712270134445295622817982718062310281639814227786196029902647620930718580590848039817363589640326724955749980007837073567264553293265552951839721227873181066301394248761925016382728302688478997471132159297580478752720179456288232707834983380396604811928475778098034456495222161076792410935871170691400469605487970277679440631496371691023034210720089561655815955337083188720174611794254992878533654679885953603072381205015744669511055930280887548896457369998180408937297807494057467813308316781025061781304235980923737658695469663637290756064063625944493177979411995858102968099100726482718636069264469366744441660199993475272200049457240887730141501650493931950017482692679791237362044109615069208791725078562739080151678584803301740017742086450675417706563371407678617530344388999949928567708880152941178447222128437408592990400581786295966357704184445143322609375445823941002935062696827852117221334077694982234483716810998741735909300448185085407750704797228003587295911703478417159498797638646166292925600482592962432762064079475656547691665030204646990213290376852629136667475431912877055702663007665349232126251523892312319267825761898953090577805394740019944134447612288625776637953062274187925089450209252198171674663606580706669350575014293934440209553725299099431672036602999587349547276163977605008225470495528118202309814711216501520101615265832187834276864172678524272673157551852601620815895424157518301160826658991238358263910343771909681984707512448456876714833645559565106981426567641122158910388322871739113440378456048016310910582767697885215607140228739826639905932028320927305190407074689961736090791372542897813059438313219418977149395299979579594767848820558464975246957004404906666293248747468318814849303665245544827766467129498162758477626871345338673283919870765597169458993263858694721443061163882108325453670672206922413925211535841292771736957109052032907736974634765690327318557445139893494079911930204023999152043065559656596884701312438892992744875333796743321369981077074858996321851014876830494073487774780610872656188507812152769227673241823527283508034097808918519426506700200973253669964741887163993037986308635303891411788151284162857950983695020970931650465701965196962493730001134424807399683325329160241892932835503217705540538192637116126745847589237553390544901633102033131464647632695652523219379243842144522031868028478604170084886280323508477577608853543194334008712714851990194941415609072189628072340499895674804908633785281973188924091032403121706063153926606312474937477777314053531935003096715540062640066064983543157177270837993812314563039847883241083665314734145057723189716199581092999570788186974497939081065724719103695415801538631122823223097753196839655288342513784486619831030627431412637217508766066991195189143402801225704347126066717655733827191453887507248797051839490062153852223231994903369923481424689231618481315787224980720845371424677080038394869131156057606091484101172213969568064469647890188438738523667683920966492018025173708191131780912781867277631386051677622935943330735488160918486224391749621462933587107329564191239142454852893834403894892668783370450060566743034176470705562738116859337774952146443569949596656030120869616825910804474621413266768280480411471772893722597833500601092269367532044309217625860863037592821985145739968493246703105950270417227242375038807843083050288189224205838283639461302385634699915986951218560435770708025645360546795668899320587348423839900038050474877692842326722007622495811789032636264865236724640095579125567719625717025373315085337771357060644722296816108319346536905692312370179940907568334288664923835025394116537144959239943804778322846900051807889175991588341814023659931847183897860069526403477598361687741607597797136630594353272896470533795485937893511829937395982369900278588992422690973873804938214702833013193393930797047199101569059360483454742193566192958676034185994018333574568108268278054271757380016357194106857009393105943866056076507367334288258653047700712201189466007940755039805080107534870992915522402329430076462091421368069738794945911170086866913488446013121009788838959441160597002791171437046122692564358049218966032989662233004590774732917916714998987965932006274239755340833344414944965931959322056433124656694678352115932134141592393846946620926988095409481060580655624237870482406643136166306849778755547774863695274793260594098060704329629440710572885745596126435693220400930741502387690117907994591898755760385913799125908438990837165804696685004045423036170502388252961427356502460342257366567289128382693751276918793638228902881936033181967909209865217104864287819244288540919322855837758423638396093834455110551738040996103625522384667543641981854979962168244362000292812512785347273460029841718861323226824342945986980475352698293056036058409907266158791247271180977621879320055159645606664412606929864137328691669701533197371194116818528292091953620178949986652303308185497525990265593047092831975228909413217430539143031940278080160717042075578295199159069869977216526553879835746442692650929258386412043162189636625434127244464633346516524271326060848572674639845632388629045396909230900001161343764558334054209230237465830625437769964405259402317532673201874211952232925873787598006392376655123729344355277135397237607816503673133539681005708815065554522792298590050249956091496757762706492814737100734265081900932458840043422611275086435661607214748077304305948279994345664539071438021617840481200423910447347205688266362464768581318572164141684249810814926244370207119333726065172812727476597868193045495315743415584904021420336962311738906560255643390065805153389517434176708229316230607550171895312505915407376413044395349388750588402161994066644711645680446302518536659173615207211614731159740291942534115369562406119797821660923300724503255710743633986170827593835887609353955287014478491097019416651432208123417528956643941940153883176403650840185272142629316992232630356749085100654511516616995306321490652257412115099405137226256449971462786226259760275309017993420741204865328378577022337169781404774634495775702931055976651258530699749282860284372529332300265614648126123293648688206469689460807982349342256229059317886405445917059514282515084478658216172808196251157338210108001204534921579589921743920264807863790697559131443541778624473787259081899961117837305094497967342367691278565568502734949495392150351892318237134018731456893713005215239806506074244442186590924109098513135785934241185697444509154458760093955982314104738116404828166356377508938394723342319944499209269193419020094803629792577149033601113090657699292515048138281035228738144456256483913975187064206461295567456814012572370923586860094292653693129184689630505667025770405925737900495893292160088898076236959174252580154432989131499812519482346157460656953058501452107845411835701568884371807160707892746949803116257427469204615592743921281755029519460551365773271795747962011600478731921846096264982727520428230139343545270347874955290564985595650870293161313401491987232082319891274845871163434192060489074341501672334124248745121139108270873965818743077531216471482401629491019546192181467181840708039969511708724807320460815678915455821663381033659628625634287976955269494750837878795021732851051844555131084247519175309308582253162608554420927357305438128175644071063332601066270646662268221167957708469141399319682720011233871125652328606155979715088438845590220906738456998152225185804543302561632855512473327350193502644173484175499976241887598230568001383889948983375494462756382446371742296119922124024950113508642524935381864315033231064002978142129265853169930762419379601454705525979953411025146301104543182380699490987734992795436792756263186206748773776848088074429956227769877826360105224870013221966711375092762909352489032254081808270221552676238577115948778786949529182227044884271767083374807254672391066340588219098356424263444826256995521972768780603347162650244610232038857681539656263836376050003858977454389676696804242562760612949775650868604365953221121294328267007995656785209182446596645793322169455109570934739920291379502878688761713262806018792336313428228427826343332686982282986077465668260604897237425717944438642330261239429702302611608627464454750087161504958472965124698411114425247167028226164855612473968022577737153772361942200293750030268814055101186232223420972360369792235850994437248332255605030716382343714375163775999427102667330320528356624563240635030480975459639554137537323174044281428314044031452849266735979289552402838607493224475373879631102101607090118087461487979152263369246788090098255951361907156473259997285570683618512052197304934274232904764916372642504477692077397389371950946912330510209979894907353158200132848345571280291831880447391000604076378492927969559893097957532169826328339926131672852856411339571689759469980417944964019175607982652379762221105534189087101969247360408594941137215040572578345341024564893148828639871453482432894776955434400971757428277324239474424842741605164979125473407312352832930887182917723949010504016254163122533205478601327109979108787393064720579158956323171369521160502854113502788993337472516368970907000507283143808400413437520492747166794791407065225361297106238559134049457201057156584669149976405917361000254868595891446472255407749652065259024098923837825758117487630291189256089571855722348183594504938320205931039119450859474558231476304926076235549006658983525264307990459774250152215239553562643918716914345187158967597631298450212911285829533342688162144308459389326341031801314187526390366053204389003382914277399067106634634652375370444937371954188761846154067030396124211643465928791604028560926060241932705698571921515426694865720429083450854278307452276006013292447182912483168158187549348757034666325210709556486013766333932066823861647974530059282299827992947807822154548067437075333097025779313694839360936306599303471010094515835009983568998370555145400052222791925801299214520766056282875291389318405943905350782576843087246905708603777343216553435138922308789671900440454650053536949711073216189177604623569495984451093622792699072612569721314999795720455114207124189854246438054695563362579285269018673022849350735774459326676139164774173901741548109540037512239247882445979166556175095434348932457031067225801092031132328115279648552515827781382475977207016154499208096675660558404188082839718141774596351717449997167590978234054276370534673559623417036091588269792095146890132382573422539672400157986112842664713547926388358329845702709454205022707569723744799607240406853817278482682146877353316917771092841721078561077267698364350194475950471408940774561171729534292008479834820801499632951571591690619206609812154553627256684011752289124480466644036655738521223117986880133135767776204428469773674850667064846985290739502110827796562168840769812247597594302303475057598368514371040295956501634921873077811199175347400052818693861465734256864712037246627942344123455984899683477413962424871801823141431832205686946110395819108297838633500413154025370084971654821814269256419868648386851673263300671382522058749712536535091130880197577636478951391185714992113087559014795207578319415326581022287816090396837686230013275083959615409488033906416276539937291616378735235868846195519552692679100592133942498111908068577328733941203000629415098453112747764053128483176740803657546369131276543989955851682686015764505396300741505141959302605260456804641115748139787989915451909330045681045742092028683337925399993111629308917020752252433550073222954404319712102487184625826055493931494833340165699282242566353988309370482804327323571428115826274739867034809650240242069937827293220770674439720511517217068451765195549944027260201681135849780677279724377784158602498240639750446066259177815788484189408716305977906649413860143381292437775139345656041506739794572863385588082339038538179073662725791800368209193254279390777759387566704579431750375741058732862639623766418920486465518884717709875906145888757303009576176396961315607463046525510521278594648257733617701975955573936424925694675329379750626932078800207353123876786565165167089050947420579965602341060277842806811356820608478297092908230588450127863664896965420837435473016002179634738502069209445929581684557671516613127836348075270186905488813242702469621290141028783331192940652954915674461551216855874626225213297687312170369150998383159949213920319535829481832957568285632707398916906434760343738556936524410417265634155799726098274388275981912160570242914623556388263128570342424980291224874525763557085437703616030173290404800463869317998000705329549998098099937171322216129232320042608977555695711751841422650102199664288278792207684906030628893054992719562334350892473019121930562104748272004131054343374786750265539114807421161987294692318140786516132653569526695528187965850453488022457042856485510089922311270354129654677506811618090028673578897361567688792728511840347137040896866780759905289913781649008617599836058893387707201565075507207349778036335053513077300598829587697689390248016397092740596087628803780056088547082893154677581764575269230931471423636527027433285499577974708297847662472108766874962823871240243183992735710175915124315929817511708520423157715415939963942048893232285754821695026573826049589819674830365867341819771578104231272146980236256235981803023926615875293341408782901987137776872239646569331703740114993890334774299580766603109913689645439186643933141622745891211525781046553306471517340784447912569578716571452629370794471840751136745629936284890640009399491102687862117893672601683547503611147510819972190038926989930895611422904494408779100092884202082039874380468261467990979315526421973790736329645656015078396319308712600990026580600261791643287127989030231269852731306490693908744412579509604126950649717366818616403027126013645258663380936793330238146555724656715866404268024127935436758484403300064370973147063936962909837208272770088356750061454885503351274067459006215153750752932011776048689319494417302128616374078339072713149551144883556085834460115918413535633726068347067395843643325222030381998326418029444935238872999490239730369518329006102520142435152196029993509726105751396388853217669837539828847316425511803135720537348093873278463235355553411618296646455199864482930229556691736519862306756262384526305671414436639453113088681814131092971895639540660243918726400353290041971306803855059785686796925150251508535194366797265959410375431841076370167739389845937796233483410386691402623479706150516360833561368815516906256852760375411161241646429562870519686970596928019616964941275290953045787560001830252426110856125099248854674442206619064868769641590044846392082337627987845213459170813387429455196780800042164498715760372657670410627798792489331753888109777876897149943921608574779313599435372862368819622406450118706938490172867023189809713012370713495799481330986153898758850367481039447671245498289422196481948367060607336351138831498443824189648690960429262263200274924756303013915938866386049294973178704726169213187377358626724253195420299896713672439170054311831359636267405561472615420348748441189383048410076662717808699168346203916106895793523060615777040589839429199114227151111008305167266434781682871838412302106114031866650805848454652545992376916950814589559729889499874820329078385718478294657438768762386980108589114128665110510935470426861347712573820450879424661056528015060183964841492770505435286015372917292777425992118063731676261345934174385340434921958158722726051107068902282230551278849652072994536192342193558069976170283001493692967769030242344465780302879870389008874906574796790982908543134997670651600496529727584112748110201185442247551556091293862452764280490192259805007405256696127593544040349196592618395800599330582326622481012410303881509323758857940009890615910271898935473445851826609784852493086079299724600986338613271002840661937536062346993695866375937873125479597052446897907987005459619632645027669453846703360846574714598925249108521697941357109761124167917653695138691252832832774640267040257178649145052893697235231020569750222852522919165536770906280348841875673925361258250646764031976216726115560821466941663682915880912130950482874319650911024108337009082621524271365820129252361531852524028483384869775212171823810283561185665562090780043760720736613788547672052020662445161327833790863899215866550186525190461483304967694666174293187618856727877831705900221945628026727826559072305489689817057822226917131154117195394428357734169603505684122193776208624044761670016454264384133866176799887406713877365045648747227183909288933229956458371257672732421137201612702576011589532050000837027908108119041358947943157198128873012020071741420707871643041600231913004272120098246053226380303384773941930975663032061245113759097136013628719491032316702845730963090397072857391415849691817397968445165356255676344706871277642434653755290443202947734959644185708711095692241797659449947099071009982720387069123946455863073378341611648298627938203440287466536794746445001169801336177219866437075051727019344234182161734396513052463135712876084161673004878494418957325196382699702478813734690912337442617890544909113123449057947419326427828126948347428083094159666258489194396599237494192939419109440887618889995130513143523689699322992837502432509623204704602098301057793153199826069214560755319168655560010022045063890663417165378584223521354063393485574711820668005459954232400187379475329956435592044018224060341516170066612451271739093718354020818680656022448201434015804534494182732013832298158196871996201164012336138118590519501095208631291819902834661935382770500842329043171027690808821057204062492762368729092573565939282197396480966973084050002960784433339544464490881301556968085217133517929058964624261511782104316837841329374432905633101855736664488274275598680893389803438623984656731414773794731880466251922039453091011351482222970093838396123831525876493866918415442090543595525508759505555408153444746501603221360034550423882107585876317619600213707607703920787757770964192077907446378286195836272732644342991739489817202761716587127923280575894820575466623673559145899397795790711479708539894514543339890480378251364236088824933855354576451665655262943989656502242018079088803636220970639707608519211450643898242255108505481867051791811281800036770740034756113266473968666603908668371685260064202137026416591111896959653305116325452558881620484154015745281219669845942101596861448596859408029168054296974811809060590077264643640970510420934598168084055431639343807440643253416964848946646138320218464537737439339471466032365302297041300593895589335777093149105803040625891783466439179487691005858590844808494057767915433881116832989040744589756055561413836449111926809872694884988613647418566173540598448589216010945933769594071899020254524254499446194069169324489828722184639427313728337786613850892616130409287388144801981299834341968981384554169968897443711122771089027684365849406705849254722383012553882219736133169808460275243158838253956390672192421094988397652162494616129001380998386293440132701118838969006297834049357646205140814949630966933942276268552734843675525310266899010373841349047612901500366722545741467704268400638959201334034148288425003498385560818604481955378205964504536022056073918516736017178516947663661866814858579212849727388673043590852265574768635618648766900316339341887309402855807335326733558481720510924020889639434264553567715997215507518582689703936729158401997163592528373511285309043107770614373223809268584346350301681539444449579797576382290278621845135709075938908609291803613833328051082064741464065706229545095991033150605952909662353556460999184092383855351216964261364343337203423556545762731208957820469485935019624851898348438290599325624814194189062588435324363334701199711588307810598376147250919553218489682196697557878251394216133406491034214499137963120023384757326067220487273068086181517455322589792640873278703720225210470653522355436889776806718558034067034013168937624941750397513759970792375220368370107729461155504557171670766183120580987177323385938090769346242562591154984956504192672335274607968771466773060214630383126574211424379632424686177582568168772022061874943430440660475397034537130853466830251935567726755960474399909368822396227649648552813011245399140175358329370197791400543900789729236180481045577136278775668931345683054522008650480000516086042887930496944772460205990217085119152933011941577915009643725131097580863319530590433370318260822202104925724065361541148135036530498930748468306208743772739402351741173045044583904286986085758796837838898296474944742574970846959417643284311599421572002337253772895610168904009698751035357565204740152059551611538343698327658209687973717170953571231736593275817450845594180521610567226246162356744872244814542908380456968476264095598167518386309694182413236669548960738639894178597242492788112534911806910560916288421059390802341901894354863359931072776986364311775648622397487363399748946501022032151102291726793175693635987343692117277180362149977453212644148873610414161978658557915666824308579909498379868921428278480725475515288342460028844002512453571899861077095505413423416468355953733308418074089179015135604141070870135716960273272562734616345346280926292702414549265275699567758793665654918137358983274275940015958627392654230699012494676467803367355747971141397284329311212471338592376521567725207011993093930219589817749604838387872840887718506981231333290251924040616112471676472953594421168464013182479214390577683608916399450670409898131686053478895087110543271012796861229647168393594700701142654793122327413704475283110800034719713614361107616702318067121099550156165894761515683267662982294621762464212515476160407956027891664721852694609044967462793432009887089621875755507203558951916173004498469270577710921319270409674369524753126049436649042378174191442348389538470464520904886185076749863806211771220793374628608059201119593314997213998820542762710459950425461605888167891493405012209725108082208658895621677639301072215087482193885014206844046549961622347433685258397000170336786173693233466889821281935790151322177669533614983935739130467738764545959985297346424978892765817298500875728164363530321085164348913505614263993002278271358694529300357315635129354923452998980062367183560450814463577771557883961478210263412321066927823194248008001823305367015235171788849182193232526631834525988764071589664288971251899118188116182903543683727291528577351395432544378235007663945880550995191517849822717926731323516461274375413356843005646896369475886876041784242385685526420236676465379351693234928828162677732441638224544605319751174618161911275923449590560787829268822246239790120296699075209924240028572406400531990650105216075098420470526583955830310135190095291833675840815801491475630500392523404987561083419127814809829234213825131810319557916912709272541329454460153945752145541917185158629474386461078164646667755063484999712244520292157062227411291183676280031744804094448109865103824229746407007737507271611959221244719725533357788947261792649806506035355332142047175606396548186759337533896479463011804500842208732514532451082074096077655103875659178773572742615521776108509561746738124086817773564402820046893725423342025222741828174681660277954354111091454721136695402006477170847762134633797109086737531059159386645024091580804929422451683698371001203904143065933535561659620915626686034636092059169838000401487100565931847075119357552788580835284205649967860705535435382171187072389565758607482501754353564922733100626501591806056307618310293620944944790371114553225131204828530593856629662413898708256558928734698472933188311645563093368575946073050232938935152751095184934308028730933802212445276617881320350251759212032555780898720479052956054159760893250326634033635930539823821711239297986529877131420169284789222583936902723773533993637942152370345498144430305836184818937025389380895874194318861331161959181905414872796514051557114472598823104262694179827386085885870350218904667521443192061644044095875394844861069957527727470017685852174333958767262734283631874875894403385026291199980227463630499306142734658246105543796028098419935872386334964637143770358172115172143084523372721362614195580451306219093692869442712303819813001076073948539553547616014250989755131657817641425984067655095514339237434154754731259437879229004536811605071658866774650901317145640172359714838801198293187771310462084145577642690292421524499046613452042578602768046367467325296017300471488625162914573346004526766436087405794215198301736632414049944961840495057168032773093805036109951323496586063082083174579631901545593544375182594876937605723460823156095987732129409822061076993016990628036716568368308034388955900370826880803993875577855031148345847310420391976647551578425182286163457869545539523994246561474616312962449824597753814735275053533119463568048328848343190795298098841921819615253158666915756080928921293813221690445209659402715009216530479860303349186493003523483635929947069620037307898116452195321720536262545180567767076686229383213682009808098940100094323251239598416189323495481617116409006685392682366978670097046105112069881595715986330269980555290264399113990548551092577164860307430149429158814367247500537802427844841534327350058205025314255681592888510173478055268022137442394110660927029350303709382391827964681326124074696819834813585378989981504249708333258688062343896090934496442697045858011622059443219401299208323285257582779745531459186098029230769168598864442511104869395068363106861800589413238811885233539733557497268456012832105313115435210557214066095184172993152878213865118344357180031157085414937873309877685594687698975043613267038138221172437848446632464112033023521204062551304152683487458701854262584282740307661608820148637419107624275442031407419656388365507471055656252215384267502497304287004007764644093332409888360024884758251890804173581469831234956985744578674955156979111486061837860700626172912009865197459576834836806608155310163734522680632158463304092597741373220596764704490295027682469060456535521456627239290010303496234313271385168453423829729332842755673424519984000709582427390310014433719929267806065342962488474109430766865572526320086608209910954552975962027249073079145463765914862515844608449758096819649969589374721565544111761371781623174212052918856302480147900390059011329539871904210944365142213681969349950875900885545731156097362459313346349493214872753646404590938505677923924630743300935250176959102280753781835275443756511055265497264702184389517259673093115685389204381412576447752801634122413142302356851738617835971277729654521219434751355531641205363433259914122493639277474274956975177644421373919773027997638845360812787490982254162759958565643562697694997195385794505893112030491938012444361219816334158934811936734714135266065653418477381895417300784899421667277816698622707690292294903138382743099546722582885831116575382686314434877229441932219027746551598031067027527462245488599288521946799354329193249005921718942360769984314697677796582293376461400993338953710567397125082007603665524084333574891983010043815090902193255377566089250942031178891021188959265694008463092155386233858784071743326101030366574258244949908498144771497006504162200422735616009888903822162803535150591989310789909726799121477188268387247411260387740297304005287591542600754097079575809423074614389136525860165260973214452134112205270795522238883534416044502180545365593228229284605408910636633362135234725794682523631118493669504813133268749114782333740252210156781938143248663862990504093486677456439463415011155830326402532549145620207330505673352082931034736220427576209722850294011609452404033190858018780527378345454522415705659225021026213823146002306143991306657605597075935340676672447137854652718344113284271734069652938604604477469256564456818933000431457502848181091792159379624147634292630500193638918258553324972711312390166295751133262909062355777263124300055719265525464971613499161992373235594877404996006290088723004063209270915569222201377334059756365172493020405396231893806431596139049116464712485616347810235629047655273281712797440727137021792347931415777292852405693849493502635611769213271749596935813320706854137488021231551538470298409720426766704217607001416871809870861613122944293725302909776150759989694816127143324690124224596450559678188393656558803718415281316058420395898342304011690607057124615017527950434836526649653516279296930239074723956541776984642865867852630398330268991542083910463650025853102256236347604917509341025306109502889443426619549450358822458757106112594266879457071891653026312795702278542995759784030381953866431522270653589536880921970789265830978846357494288738077954696100141378435981839331888501878784732894375460431429916830840361641561238679022332142794134898762856580263609068610049277486281630343399159794182771203037301464175749989519386929358858470993248919875873787303212666138745617681782968077656223612625939665162802132457134672044608478394338087197351768452745550419706427248432008861178027403827681269327788370005552418126276341800986492880916972982525868313544592492378868122787007234275421658880495784297421811952175334110596979590046308895292284758518129573567147821444403188536072516749087864462961248910783190767740195655756806362998144434654078618808491588356383687488503401908193355530181853912070315400779207298193020881520483092567875135032263555181129482841811420217867216589192177658965121333914041347534196819000705877501075054591206041656438273347627983132121501881329459522476949124377857336588667997522456528261400110807588003600818782119207247432616298107890432283009275401898874783838577107899742842147484895283976000799025054216561748254610632328017989704540375227087066960665661182137395862472571036547345279361246380009577197207809030033185850256612232733304101336328015380117556828143328812132498997795648222822704677437297257912089680416252825502229315023711215883292896733181409701895174980714951381352387814871256168235308946567481718109537631607598720846427780716661364197287275267886735304957730258093531009790563118880335876755567008281511329590210202064764343816164013500397689848076883173473274199825088823835895622426458991930175520827825606169314311178921549268887160542213034237421591022175297717842888919128026805732407800036271358340434233286736949385948291928434738860224788642914123070500570407891069307266800653188176519370622023846279129102538742197865106179729093802551083259348934152802021999399349503827420840117746879880166491220473064051847539134865097958329792681246210528106409715290260985824906430625814439711572013940168995813140526019054801196337564062155776446622406350460554493676971526386427798707949897419634073252172467598640979623151509250132268173107004452282870017020557038139833621566307211178361023899415452450706411747004577934442337436765660919966414667030174754270932036647974374495915228493743050132694829625791755086655502862595964969690546591279370176835389338606167789495915629648680544158132602395043138458984749401959185013488762898821640257497380807354952021288436531182384538483295917679303436824880675485702082544272916306855249695754915483257530123192558361884575920723108107271291344759964168514649093270765476181854970499538063213962543645068636499950137910764439524667898544024682598042804022342038863731473918830187805268818203854877977079708002371806912147350845375210351116144228947713353898794229209318104092563923301740659112091771097835070648159009931145382298187159276821248132323167131598685090323586693701144765448719218485413640199605183448397354642993135168242079779614282001489702501782656095036069265633914251193969611966631003383191047683732193877776493365212090408016179118904400255610836340019930607684419117706256953343092603967054248113096460754724320945242522806808711789159314343474674404992515389089419976468495171087618855899360367355390264326796500966597402424616620719522826356601411473792442418537842907688655156415979035915248591332493153307018232034812492181842808983873269567111289869877378245654906618793436359194679451740056024076651745941800270194252567240817795215444338534860902410268005113721564041833603471774478352884361043737220111773977396521499066053145739747686303910923070372316647808502669623263825658531401372654262811432432746814023021799601804258492732499898861428756845722568885203877333579516799857989629018322884774591076922731348388465855744175274951146581405593945620751789249024109125074816303417399633734796539979342243679884900360099609047166203676672480415821017188119544442425276698162280939740483675417790562325252204754332250683226324360444168246981576377809752478510010324713845144572462829752880939679590304475555692301194907716801742755842805432098372651588250023192843856205933907259956371196488232051004008737281698547912015191055215204289801046776159940700244714094324464885351376022163513033786729280858057760526884606583593869363322669596104695999269754360962321566533534834512496499326482110432100452523195417395252037822956034109465916913264932195767652154119299803615057702447017760204729360713270380047484710715460950331200482602475295071422133888368468340369467173264229083872290035310442773019937219106327803041850488307043489355159877458125130169138635130708159542234627069619218382432479842083207718394920771733335461095719861267775469767368898877012606758582284021707202343533125376400533271290056605620505234697094113309175649495636878974595838355080239884151158856134289267593049542026305525935661403231063518154263559261743058574259830409172938993593445271996686384805562636490009765774171253596004978998942109717691072551479783452749590376264716450420062374181354585967755278810932256339703227689548377920875728732316898396417790776256879092904903231392839762799666721901720164686504019587009629109092480230363656252832788761904422658023623905700964769223299458944975006735915587301113270351250526760527186782424964227894169943015850352860540574036953085862337954027259342740043849788022152751847654160478602638526508174772384514090029087842829907061599554329700757154220813021308393943715509933773976861603830387714951222893465526421897903819049354384834695763521342689049196303294908911132208002427813543041285984633750310690019180507509459012219077250412531888373897277040964583084218251756794062017791266765118655665545854986373681047023741850757435620335039448909412702311000080130803620921530546675772031066870105496050867681174387427636423291160478876230903382603683568741749847244035524678912608866861702106777638278978698413103848811117887712327051979824483054866951819904487844632210093620878500730791582542615474149534337009021162050411829436676495122944997132544995114337505316454451535902576228399144067168672591497670815860352974462419015145069008979660956496696264280351146352531269575014423030686037805287162044292720920502113710848648741184345184883400842355843505305087861436488404638943629417285969942420693567399491823145500266829219203063094657532436169433242716340456074210005517313288419548801159362746888770704484077159471539061363893951476052251517874876790535809080773887930363284037930783248067405704423853251365860834524759466425711243171274352958347245243324521157896240122353462777716194583217860366612956365362565549739256858432753715779386759183688921478351886597854438102930453970677451258752097091804971344672349646836402122997939808248364412243779912720030145355215073805922584978209599342791545658927576020485704303321797744384064096810388611551855006862591523067263208988921835644728912487195039221273993263858950962583977985667532899118336899034246097959007702516428960398561106666879186509546171806266075419590522159544837494381830564011826515141888516809662914794039541977389804520148485453772741401501303553655292970603201273398425205188055003244040520757176078016001866751684478025868183247110818771427481505934349870130828799258371789384578142631555868320235511488411862464945673726996288438718307959922966611233427049018091950909412429260511579345357970719544246899129313118333952207713551377097188128541970634475256354842653814775556204528113532383266475455958337724273104531689225240102289937622027847102080933565459190775669847353641158304488171446254026276585155151447834982484573762631611894242871035532371575421049815076525851555574442760229439643371652986129536039734651200168893107692861214631845322527571025748454667686513374945033825666699551155238140109005691967842405242138920533133273111411361944131867238017650369532588057126588109234647627859645518456412392773036221197865729527091228435890462867442543262798105201172962872860565053727334747330681059906331455181980166081585811674584217301892323693686999671601460643795591148147198551257807677371460894930780157949825700590344105896924620092968025852835607562197369605260783898142492144062559336571018855428043254018968836472676080849769331236894260780434427199949940168290293892967434422294360323985660293403966803866698559593209690212150085892653186920705746241921866949835335774389139958305421306625168846551896801162423688776749245025905376636885912496058381723439960378484370939988977612285595645744392285026669508050254658702449855218745629650815585754412607851289703643243470129218868443670785049081911997067677193405385620410305349394010978236355332707428837357334212261353584121872863527220170261812037983221519081564111841527021107860041946222756293202434650085252137423832177644203346349294684772435307055462906963346252273753644067289122085717490762052188530541430589440727384678163899851375796123060933699440745345859888425723960993722444248165973456859628038935915322139028173583600477019250780291690683423782004723697010320964429049945288203735458405038181104397174280226070758768026341785531497384226492064810067771898915171537066098796464137848885955287063176061286439675133831983894157359123947613302328454604507397126081453997821212255448798026488704536751406288875442538709822706712195803269856329129300807291795205794186757054372566516722400404913455094246015988099217986745263847341072572624227092456990254211832442555877170389978044333983179401853237772752255997898760893657048174060092823196040517210792816934076127820522598429471357666861974304561514229641933354721284623143061101135747019398656367953797111059836521338003308064032815897711694726651303004442430626855388618937559799760915332784351008767631821840313997873846521004234460315973384299871505697824361000999713124243443139289569480250396187570644268315067584010361987901164017746205139594245425137452645726138353035691913968304695832625042474225277201969000558924582347841798566089750268306340431654433209391996792451128109149056639267465789251565601588115650848776772349533657614944395985803486015265358137858106022367298766880596257784330424581098504311774517702611450708494944304104397504730739957817851336652771513336295276696810947683265066965647768282162162749243254217992286780396381664986719302326682415856058145376370172433144969404327678346148305133473630654301472910802784375366460573532208346938038304563920431917567722244263438925712828009392879545186610735070404050201048406054875224519729934285946946042372050517977866242112067994445885549373590525652335150102200834100234589516130895598095230349388277953709586937785306912448660187498059647810535667734164713065719437646544366934607635573845763947321475084245535301496259962046671216695766312862313832631286067894783202126101451529296599209573321688724101162146618841339013209711042178914937743569877251469126342272517305962639263933342575988049707210712327783126895253828011620285585857106790909944068885699014465073237836633657417974021803930116105574432922344147559830867505060061886330110150037560910641094160584288345482299057259945700613209966999384515413881767327070130125673204339744745119413770403293402532183181778053642421103218013877096314011045668889585970942031538416901185403488967433486662357994906556344274846043465247535275290778236388885753586322793024045873726182637231973735736500954306942537640164480479595056398693246612528056960644724060882478262826191071507261870546111961263685260304242406312738092533848578005581926341054562647513646367236391256134738282340931234090289284718869960887603017341271703309427913327664072594960948515885202284614764868534962758416555022165765667886589936636316249171457375362218647702019214644443778102592294827326757592408686083055975594166953287887597911219469261406040157292765008539441398367480257741719622173194409377817566671756011045371290684950469002448266984276054127867065595509415172322943495981942096331491481800005701575613253763758115465636498780040083597658259112695701332339284883149462759889988985720664431857285199256726203360314102309863066715925571170862367256762143564847618449667004409646902102795213569015088260540798338005592639589897950246420759608960729878816797493401351768599213803527244269317154745461614299500256885184095216968573076138937721273182299608057468045572161954864950526093722411741901868376893558212941734539311667163089399820861342522759431435071811481203497288223731114911528743522309805472445502694858051276703336801444377924616583551356598131621022845313714747394713895015251453031372530035390844758698854997679851066939380214377638664130969318610937802529840963109845652719149860867053228684256971354573174644703936444095764333441491530632469701585361166287934706184755134967790006405678606596890539972093437227811131285429404803285954110022668606122964429861101726576506777047722943311855483207341365677940689060697715834647976201999089290085396792821717835415633888987621371677494103586610102738964241942823176138234414047306508324128711627578827207646635523518293515234124893458168694288771428148735338334114247339109614008051407753614014579918301390877292860779779772859134687841891796269809166454891659637024389169355021547489858715009101064493791016836909646908079995443647819595622780516222370290857533598845510856464685946007631730674227049595049684609866547230942942147281940301595952212203797524671392104936986083296389537808006869105600244566921682966034829438161115370428958818033313429282088314730462428349253358067003936543987036826019961001362598150123782077975466350772841891851407920450326513531842189991878697243526666426188669431230246577743265350376359327630324071073982905122938590747392511053523945142142593103070544465924543523514374502552239781542410807169281527119847440663751710436379265566761135986789801005250166217700926231490826245239703387241784103982604849084294145987336758630779542478580568825349906532189189278718963743474733765356710128917130639767950678507107545971899361214876609556269322121702357361517189654009395658523384910346640146344245002538809295059829083655318873269106830352499333898412770199915505106977298039987549561659675407377438350037944769911919456008886994476691964191779459874303033083713856136491175486007166234143454286969565003631066377297428330920814472881039475926836348657309008998084262372442353335572480978155171121260432716224102157312268111602343372329540999483427331831755525952159170234158589790714565338914993781625504551957943929330604569191977397883671510015169014171496490673197821521627437584919311619720345395508158336180798281049516511254736784022452220854592889434979375822944655886775252425903873971821061354498446139559368143149615706356410927923110896608713716628138938105663728266956232066385172004570108030744607940622833441004130783384230785366321886869971174575716599698713256922846224327083461409777650447877661290793804287185822708782088016002677899363934561071398847316622035197743110561675141540443263253296283544908987845151340488558505674398540259421440982724230675212932197000672805207925374287630708809906048437114656771605937384730245655281954266629751164308217918737293799939349087623682739363487178286026341515746304771595943647522812825118551118272009179071949871804564758822953627353887720488273555936832451675154292853131053080779218687734614202377636045787155113270402313017193669167384038160924669590291410909955471111389748952242415568331922102681377835835305997477024309510394852961462454263377618008262766467970900010471092381520782301843772896744886193130920232457739324686298359512250989776572641664768301000420271216121317437539494017355536468133707886131008281584017919489175463166524368015988542852469471100537354584171950576198664475642762891950521798403603182676107397242684302635674997297953297986588409802732978617720092366101246727652001831285888883685829261744534404896360327528084957393407642494911323825035607283994517442534123208168096990929859355544309534741314131897744063338748963836920309899681299672843977310336351226709652476624591381105964631748081007578134591534518053383926378610150676253438361182486242534810031757262863589877474344098052170216405888477881643517287402489243425235453424953155964500626608012785311054892791228915837998729563450928918871387752682134476879713833037224121082555817986048414055543359926686384897204334287838987149767164131374770963280400653031523619150836447893759221566876777888734587437545539141986790270952178011116879060558079851833686881996564668049068142065467509215711548296032929611839750799347881023836554959914579297738227756766731524432403764354611884566329236783143774762637915147367714438359682419142570405371543763672799508314475486666609610595820248919993475495824245717366070996686564460864368773826064701880032322730201061637869371457795884466142154872155821445943860659234304801657797457143147827379688302290393874004370129846752536508991018410749723653656751273881687538734390831514525190693008382528819691948034336829439492862264630773478252354176578121036492675634333469748102730953953818830913069990359366796642171940590788499637917593743863616875375537009793658730242872372354856551981523518687593800408477822591656558010369635704260875359297386791968643020127264948930017104818407098997013368220208226471938591609421987772451143977587206574586746913541161124018313594578968030867061347273220384122204545988896275474000630695392706285206306380439378731526510678151501531334631506750627351050119361475535165225321032684081493708642856987061960294402187484228770473008436287687042963063978473481710584723878593041094596564648925234022941038910191597680859864473699885177985984068128717818981660781662240793680869172841722468540327290969145509491023430200462605180044552957469562976492555628694449304962227131008754134105997793642196755325795007968642461367009738289345993130616245286432216564388110024572773321387241353510219088234009612200150308028911152919688670405426076449717170597152344711718080703072866205381002185816329933119751312829860429993127780643735620012025967327681475326397023052403323279481480160173101436992114689506181302220406618730316477223930347930205979607886359719617970414407398276276798265681816918960282419899293458608091849003635994969688165348026791815945969845768232724968669651223497086958035953597930525345358866045066516881100961168913778506523528034552294593706187082862792296382389397107901548228346395669689185538513860291630234187439876443947032966804173350576592969977380008576366759721111815903710055795342306267518193621756376103952179494235545829621733236414012220024326041955082421770736765136821394382864699189890061239322979874593841408731263593257347109528377568125466491557678357333152782952824111142142855191297134741815511926172112744644421637096827537373815442458403096563839102310944098810121989245548962361539811778800774267555579517960966950022296824632349493188115534894082013498530142187200088982452192577565114070016863449008975206809309059668533337239979651817999826526464798449786186660933338192549636395161388034526149953160503504196536957784329026020114643511769272306509818726428873879462703830245855640454362779151169237965310735513833328797267744089025785265062051777548723817324375337435550361973342880510063424240632329619417574926930447241100823401821302348943547705458311991013515682406162489270772326343082783299845596581394049253850809982223750628393391275990818703586651460635533236666494332426370724628089684027690134370970873186418028855483788262506493106296544484994804920362667381718959433973955576283236033252789018685674567998522064177481129670405288869271779418784826033004150561855132759200621244595401361451359583715488398327356808533977232377191654143026933828045280784636836967982077289666340432383545743456115010157929899683813246418264373747791913304750358086845981866193317970310147489434647945050146619723570810975081472521071111236881698740952787752679916677061973840997726348271135557117901869261004140910362992443141778040751127067696182005762592390299909433285364126020499084563347525187487335413631974882571259614646123688885954325342873893358067697083368151684705738117340851175729413562449503217344230492171763128105694667099278704870011021092457965055510402801422642997671856288173828014522447636226427841508551146755641323098476498987869449506784906480843544956432132544835185234805764233996486079585755860779647895464396734897636638686033737896251540307673826494285672423888700041579470605254505106722734228457628213988230960215596909584386816874124171573230133552296639291071481971789667754307745059389068425487164097861044709066652997695153638432707056020765629523238545287357075043534025804815119714255859617132806558168839381421746264568232534522361407062153615010517086403663340029308963369977183443226176339965246034588484904927112041407148941099266896917850526822782160050420368150636716352311262788656635358076567041110388769100284013542821243529757682008586737902515929694827319894972428402144583598891178307555744407243755893904703887557805144538646873368262733055523289197981607248982518314828769765388849755341628895983550334574700069539859595286664154101343930083080161550292144646095483634718733248679441491087968206658016866592663279266936887600757772606630965427582480909903114091973027659426318919492638420787181790932677379481346081589227700521377074023255289508403035924985666301699039672494857498034367338778456471761042057263771381319344499606722910284839921648114769450408421018759258554082084424922172148893881842495085652919156772847902462177872124941693496444678757084011350420874394449826414490339261332651556314399963961987468623141677728237883348651747504450910633411895812413045286721034373609337134252663770746619678415890552568964546448679867283067065490238726279790356846192951256094146244665427315398569445124982195418975439652545271329858996324106105116252563457732376191317269787336544591848791156579300407407489781176457011922594557218120676436759920270880373957498095934589715693063452666989631112469365781102592395011807350039695706487441984427262744664901653479963350817221162147737429214448562464323249060060753889291637483825183683537517013282919507770599609587194958895933538881351188206737062686373726791903199110372989918074852353178226775614862213062723252006301199898841645332574349958241220394066477309691399290539004443961817461268040839199089006544664197476433759697641073604150261399269868546766167568111362297101907904420670901943942531442592158850196431711657021437296456601206311410069285501451128082004773656357333132619888048662362847294175827106376672418606313868784569542331596769716514347004796711326879520071898570425564535543355204689017780783101607824040457436636474447799582515726985216787145175387538863507893719257621406495685518595829929075995846367134424288702916199822201799493788991546143810645796944403172956581401004593625723267210835717719260645899845225333946714582936278582188601421204672235599571568872220866483167824164352693719685220045927938692713778705711115366919840366067624714286661456132938566329059631158112046425516361060851715356876319121442993726206241619849477299297523847536841554117107011368446137388532974980228147062896910301968499009467332307340461038971680936675984274267025301855103546595075209480323568093166685839387607066821275593966274414475856748042739967317870732557042604099405015085942580772131639093211919150981061037919469330570395365425115521382899735329843690111436187056527467653873337930621297556650877695188765099412020930262159088478729711785095397262427585256932555007286961573012435728162660892406397489411388233112591959072204727924328592894295083043472661783870723622474305862855312169746751702851900290632539610922967796140327543662165126223400991171062690528865796177262694074319812024784139587688129872672328097842876507471544444465819809316425161442149540430841644958998690824020418967254025958778886231873755797499915901150378943316532946415375435962566694033024975519876021246719969420757482119721123870471504695378662688387077567755143343213018698186420300108493556841579728429685028441508439904867395782706498843943277685725441845116289824051481795189007051778390780791206041500997172363540679906056749831383183607895840865053191333519557906937869341533248888645005930415238365333118771415006189252670500749916862894972012688868029119844222457442161779398533977721833192705041489937790963087240693890269118466258645750624078742351284317776991574773943824445817535410740269670081497822461526174269033286379528430649438115130651068947142553205617440698715962488737810334915871260195651898939255595742845763645417622033210440811357126467758799392452856182866421131767181092039819151084044621168555018653978069539664825071550057237303143419403406765538857038080214181677903712234150170553965946119532081324953422257698091553623834041772774362857306184891006330261208970853092567779055408836800140509776823242339374660126546640214359186477294213844151033316708850134947645953591670198022484564237041273532904607581152042596750502601255998721085458463666815679888902533927963848767551023122336498560421050597316051680892350877747790898988984909186589395236922395780285073181915394889844893937905946080147413279502376505128861434026500513882545543392509199931809552951280351600610622457115549777081138484885177030076587250202064716226219001589421695351263975746923659325624627277509120944263673032265615368751483832580266457293948274445570412167544832902523486435997325108041144189752509537989036749360088580667910192370787587733188039639787071709734732984445165097400023045591023385950237554953999777210395174677679275506284734933663479083464751968332082274662182888467864179042664897480621323237372584459644304360611659272276192926441555150139524781381301881569400463897036277398327454685268561024659817694187611766257072869094048338736632432944140803961311766554238554605155992127568284221467386235143875958483005818951614854948780585930979242533038726066557638590136043670288320282814525205546372526168052931696165002327068561556139933266769110263819774307249414863618747039057548223369515308016268530684623782070362211775343761598930961656737837943361483829020995705604600185777516256908558813064330708288061329473212438269846859098568865916775116669020206829794099483046133641811689255021195562937439542624288608372569875284443527767987644141675958006276770313239432711375501426576842469855878616504257976289855753343572431100236944882689276451397120707541189111169501144738861576186576073675534194042817209200094352577115408354034659239997072365328252830356965769264183367852228381681041703664385457060004122616015742575294213771975981111484407755673427279653078921622933382370414602898469053175902310990297937468048231925076720942381457602875661411360936435554920453489123025175727069206674346822856699078875922076806033311678509498923396063108602348327471467663267938473393530554538623235455663869403041151862097231787139896443011735486492260704294899783828963267685703336155595359012086544928098555965430195322317452116329726985398037943024038944395918216119294152401622954700179127449234150791540164380111173720254462672261983686924886320827281552730162675938812722137772295157070804090696516737787914745281438422204867709380071817953166092812720532611615556643125132364431343535977357041133347895161714341664245623625148805855598040250343579650289218582192064434204332175907161467244778649005557827063256991193396243036508314637023609529452464191052082930510173796972275128429054457628040438054076344358364713417495714427722234621106513207799902721299202936609752351013283921490045504307751969299461222455118356849533121696909077956202612393467437907506494286735996012704948464412450932153307569440273156747718120098914874936009461646954547344771549135492591845622629426303820801197167524519164381110105035145063893236267086139634989305445146239481329312173918652789406478495302709602974240622940156784956282372064927114474406229669883828286581278159448017910962518615395720626294742718383766447450437339856465395746400187495666554693694560951286407857572103460425438152673238573180040119492065549850163322060999183097009494589035130595368237582711125392995913403794463869424383815340125392617858973117801473369352426999991497905325721830996564826875169536170173862421294358555315361739975234141511583923307118419558354609204356452667726926788864394410819678019594909865466419899645167437964294714437176453202638024586357035094588392149659298163500601519214348480485145296491165899267942264071520893294169834926408125350692593728512944740575801989053991054775110981556960094134319863870719958463687686192142618480422287585915608894296012935931155634314705589661766558800674356224410074982323243789911846862526197061287944812976665923105142000853769008222690690079813712463318415535477240633512725041725713207779812663674772676375294859142645914040271586069814219275787999980828938807504990682645801099561151517762476038579781402196834125860112308892843616979221772056618048694244504950163099550327774169680112681397335424639475299561112079929461448632633333141629914267702521597441709631974336821967815591543920054277417885624295874689087669122258042959817947407183046141787520626121832025050209404781386368360232827485977724121092091186406653373840543415765184162134314881156360728543208143090198038305631630188278949391681458419294753491252846452921342668442445163240359354674049059024287741958226775139991348685451403064495768973273995243435137336580410813715943245809585341075406300943167702526986623135355413650504994812475831948050853564742230479984369835814984709462735818756153315867393425362804448405786305674145175119667689099205970939297258761986305803292518156144214294948313165438217175868930539243568486768118493946344799141772446667739379308631210232878626931024185367942409820479099312089055646845794409426852871703373527102881519422962314871164337021834309770555010375931696928864533951912142101855387960459238909261928243398189758568769708518532993277608035533421890625221927946102581610234881957011857175889661589939047603509948944270204403257908633776103123260106213790947728184935384553380492063325319905835589586525732561203354758781991161131654586465158012148366331971407512454968391260585034949225056190070123251674817079690500403498498329560541801999648098615187677854927921141841587920672064360963579531739532540907052034333298199240493646076982329538642938659610859515703727630880754490048803064226238905392484498715246151069747724496060387790796587316934895434759565155872628265485231980030526253972046137218391281744048057097332344935328078706568823552788934924425902859186765074692764623684582386307790605537910700240445832206161422517179651719998879040929683079291470713856639013033358260778546763846417991903624017321770974467835202243895579124734400502552863927443045567164026562744983962151295939706610544488140609471833359446182547928247483200624510005474215794003296640108804836089845103598669662037847511978851266937183323655009782980803525849130780876260001185889404482143208051717308596844893192765087260587815415654322310234855525414878455883092839291194988757126776475393282674101264863994583758801253120416795394037423798840350835228162659433156725203476187751544948574967839854023335526475340458664775281818381905927291557255762156758958742610415352128597248832002375234566753912669064694287662930638261979321406965526883652182812523598203935001142631884009646382769146119074966515345182231413900173797443066493388086503697962647251678163347001481768865127293918181578396282665775582255384647273840760351469902937743246562051504120431666854281793571401116971300951006573861572939819230531166324377994466025300510270862629701654803435267233427036133791585571887718454812488711607792833228294514280386007575536948475005084020182355700250304801970396005445673473603412669153281051477639514028759970530813078579997805516107198933408858145091029484291787248851316798233231891383497012645157978094333325198908344114444020001420429572000049049866380521521780706707187728328339190499144163305249861937498159666839039391975707447439035810876556898745280927323738218291062044361161619265605684246568446223620842017313266103482732116843100847281533532950496684198116930307256643745261864047621101168023191573947232369071943433791251090355535552914203815296431324356680141890427446866450213841799088176014317768567035326607176089468794468442964817330870074883459327896851981856624807055357076795243194422754954691331767936183823214360440256685611717784853430658898247654334314531169291905429755376073056082429807967853352862125183521653433690583262892727104123051483460170358085589554927288663494688879807285696056977957614044375016230676130248871524901995483882760141848134835460854672544469290265678391904821459720070466440285923086325992881824841257031898881036209313756648590094614738235799256092632862566928158162370697690686052222603781213104836803425636010068804084265845144247081734992191062824443960649099427049526303430600974872292477684505483893243234455133782763617861639636419634877830849459720120379561551226888173250700428602025107320496837666220339547913413941902399227967266597601272914254021779589958856031794180490552100950472176095817803431645481421567851497839972909401090412633423693377687842540319633976359354348809276408125778019223010129465006604411278287053627587991347370585302625527730621767924399557534140540318682866683478329164067022105370712822995130065465846795464303133299847481962812083274723795977369278761514233100655046310867685789741350576017944700648319391229288097462945979581183329352558089800170530107879281395796174461101462831972668866580621781503153138648657505770693851331040556195121992251491113793235268129051449345431434729697494212673744939986140445382333515457669235031066151668545127770515568236640195603541771939242300429940416853067751902145119402740108647396570585446363066445096295487321161645746228908128838658109731394253690597012700554932656376861141704687113998777559424369272187700533433363792448643069499800203353555511181735427455719687426388465124765378579202130572524307035476456676887244731308148379108169445156241134896086185453830319004830208422459337683929412770182598176945702627475774561242933716282653692123257087709330496101365895826907562545028669785450864543781314832350342873648163971587386713598571560796393324443170784286988813262947373289396068203368694425408459078981857156775636867433720653528885645796127970785328935663098214382930419281599248894232279849900418503988668669402456746747616988975521326895834638263155465989139884460994323344540136556002601471209531392182005241831244293379493909675126914079407457177514199418124954997094297323777572741667994281954934029138993024616994297391667504112750023510729338979751254416074781787095407698556377462682655151090496561171792540728614633572940012696436538915953660491784666841384638192699170633201564926582544215229893474064240558802295379956009120195707726223148719693736095132696408079975238208751414044692829673706978811096028954515153011620327505071320806464578582753326890306636317401878887126904652587567521838766247738362847012627425851669261677372689999108480568519603723345883167245986683363859814434266728369923783942110400679080874255253218319981288312838945090303978301677410838065725396766466212721668994695076672322604448363862783065736236464364889213423438351587458028075089087503857731485863392463645293376442363376120671247196801163413614472003039690426924477651360871719098028848075647114147837315595707954381277668786318771750383456468368242524533751289420009923606185727015681770400360093356389373374677548375831645526687662597795635879544198015071980087020568602456247070467890016433548963780802392719391393154180106801999292887786032790712581456690035828720845846503661045048068357055381526101527409542027382800850984871772571001468626552198092330633048557859576767335623373681273901482915482860947623231581377968065404807873700316290858476153608698246361923141605786844221171327238511409117288373828819287695965604635276964826503138273573775215423996454734917436630631651915202562740747294365789290283443398356576201979476003920309815869555060779313449098456491440459413019389930701554418456711898908583633335486506612663172287136885411931744449946075679330986837014324936277727293814292016952036857114147695458863837112469847993445248327307703842481549873799230013171449449881393846535512735831270337549586299587677547145823901816350297397670085365393492096049681764966760133544500009768854653106940243835385893471543054856070754073599486027925579148276909680576778471403719972711421423209587130635429747765306431373681335563703603722884347533402946204689767977062998416889104970973488862480121141607067972629992220864546454526815224464933980261305315836468691263922128283118876667384124948195863130428734481376842917458879503719513110857510161723244167650382560884592432965544505263953643398250119060117939157571410885868766382525884909748174329069796694864723351268365809773996271518135393110518181740430788396954407531002238795191203668926856089316697237981774532130165616467664725223652063972537839534491894708267561519602864740398986826754793810384965391773005770808577577857839282925457205600856206412939504829912860575694798537683768577773313193335130269803325702770132723479087501734618657036708866497833694555011939069431541429823324342692456045750448012305362085445276320177688524813694280507225228054339248342258420047608786154808898762019435204636972248723429562778893083252995402716724456190761812081282010494137550551860732479310063589194306928477740136690505786602757643129467339453159582707195196083288827989398210064199556749620390727491512202957310229343382036972580506209774587698729385347631540353656159610258412973348749316913046557005823200714614370410991959535928439672256274429121477021995346677612603853894599817550245581796202205948610813799109812685612201809982507989972608998757230277366153403570140859603680530538869472627409162090245249053020861949983403557906615518567017474937109094470944190006866866804640901042900560055703445814013273242431865234668743601937634873402016078242988073855973361964331510141533080715127855145097352317406918442558756912803801940007198703732268041873709862793142138162638939317556742406763106483982965966577719366615458246195470584185233203310016208537955545845685528504612805678821906853906294508231521002743391822613331447089254002765614571133498076393398782889763091141148653207146491401395462484186954589969242474611126602826608160651944039507726008829806942148784911953142001659175643883650514762958681706316624383950977619341110116845118094240653818580481097922828109561462142493515959207450430919995156977761307406123768956929246383948912769041237547151968387063342179985270446861428382985217268529794564814987956248089750846477399181177429620266496231663969695830496164097222218926086607709413362589537299026346624598872469923505399110935102667241870751396320735172135402309866597097334947123434831141071000543132232020888852598689758659670905046738022096471168352925833061861555064947344520728286258890670598420603190051077041285140600989039992194453299638558627568630473257648538625876510149347536924926323007670661335503123354902368558851967525533257351553130964634529883907210139287520799331674135148426135280405853355431372372415296138082167416229065337505705653420015093003805436235918845877164273066600145300021999530940861261271085691464629632667454553308132304025684101795301935504693237658457593629778516435783970491568763004185628096912711359696412544612940235592677213073090715233379060352287938836620533477249415170868229195481773154105174228370045274930229481286521126481980025104778365669597849278952074954977864320138746682748100155740310833704097304448519410879946260047890657126122455278865843662536943691392131641804362689087804477599830536510444485622179108475275148757283303296218146718552928629494150830390116369740658928456608391963006230949418073934277697558244206885187979508235224960329419235371194977713918400022543940052271312983004755740679749137535240935387962451404873069782402619348249208896993295590368499108148841532225597374214539918311161169205485520433221729721353448871397291839710753047238534127303220014276925940369425081195433302075792662451655006908884614183495551965526783912411231798208276442240266879914936386565337310709405960726267402202905048261607898111947302297233391574450745615322772477784674112729964682766100261942349363899341112109458170491480388391700477264076667199809965352932170704524971378323824991170067010375771899765221169035494270394075043768434364965233240745563883896495317243454688301498477761082769868798545381288759745810290017496204880845877365078175381827992301893418944257708200427186524987036538096614834169946403249921644832707613449214431044681470200385153424584676238333890085013226047582472327700861860148895052855448557682016838408980188005014920848498159064070473612165756025353542099516504221884921041714598011261547802139130977698339127296372257341607229040295768312845062158053327758374570806035669687111229121109638498924856611262425594496082847715856236118522536856856149383517455372462864550132231267885426587084769062465002901480878381928204284225595135335629879834385296360254828156248523782752855286228915842488117839037386741820562880967025684117781165333009854400994003149095877187965122577712289007315748826388364712466981089597308580432542938494976796196638833506401906299335226268128559378054765954155994214581172717743309456213223539858800705316277799742449574757779479306583362292354106497741422325270224492690611935465041710837460941374721581261362001619982767660699321584429577981288507312124889351358850477636706747329794882724495690486920670880919765013871427909459064139576045959185879313865195332327680236482066081959157187595697185172819784277303181253253266832443749860971220617844680076308732450481964778507458397224338555368336447560475753139730543856515211533935854002425476132342308920426331656709769434808944384892586061793379062285568731608614966876495993011128719273945740435682593784945020164731962114811618224700172233484063197358641028189206425813366780029046877608235842862278738249514959415217043921357547515301700537942631350913645738550233016083025679954669643018495546791979589448032720748361880170294574282441965342163343710237160261273902505275772972533530964608123803521256176190187450361538778108217013318929887465936385630785570414651136990087626680488418760361539239954706811077002561973540459582664130027357898893095054416236289188984683217101032818119577313580001903909719053562957139085235951389995455258862530184109269704343512181096335710320912167787729764186268847309537980680047175149205310448081711500589603009181588518958476576950642923719568708395316577721439039582240409320640216998809486760280872825005479230451942732046095714928845669342957285906321614627451956553574286598408572099902979371750855760489593356260354160836329780221568253069957440156700944070788200145973733756910601079693504202403006149851474361701133061961322334989331069481000232850777172622610599586071638240882638012010252942471234739129853968500418762339248184459432230069182687829281331779162604792162678613681502422816932510967360800157854322588144310125675372835615866566747054687316864800170829946446256447087468835274343129584805346830887245080068499320551146347313965384800405422928468579835070431147062881469042536351823409622575137596747142114811456303033661960263224634687343160918386557881728279921130613328778447674162007051100834225903536217831295408981493744311455776854670787492806268997488921865862409378066646015438236770096203152110269178471132285361828416318660589518686482108941605593193373863258922928104172845314892663581154759054652799854537425072376114834303055044680875748656880583868866836464615712515807904508478351392026412447312438037174066543834874610061700395877507906943328616716644016468988219404692017552731337140224306549487445192033188798071128227786737070483661946008222252185122668325649308098875315335536946527834667107956867734805883198907644282363690834432789229956632413625229732850431026458057847994286554952664157707620784237078615667578938922724890991745344097464577048209259249847539650941620236429306150758339762468982597014864666204948556465811182553938043689942532540550383532361429503808508797362636619129861788959387264394107471538556204471481544677602958693255835132040980929045861213232297236236722810277818718229856330126918475503200508923763646474572033766914324632654231465021457130361153102845544184625445317653128235797938098354417889989620071406882578824757158032844488539161429615852973732021857465806318668705604040940007153172933870128111754506205699718477319634028377697216827305585124809665222781768173014060646560169616531985222762401014347729992540437838631997992270211316831305664228595852378858374407995394431392732626288146015440857782661148429915844572841917938379361074517657900390589971797590167922315160414997049788945627563297430049008849926743863853736826334569952097832204033680048926958654610118849515853448881002042349345045552754146485935431728547521262045105553284210664789194532216853342213083625880115442666533475260716988982120722192909977226341336055671815721398888725217287603771189934259966574744273518828608609766606638943289350588335155308008186593574771607620054581893475439259157026032952690193122251396121143926633196662688813474728623067058225806187780927077582299963505109399673835899402585184671150098132213750196242695949447288711400513171534586960413683346178340724951638754959634813954928579268986384724326408576037548680571854432418559366557963826888436503026414608200054931358002561080705921252088171007622861022303175324170657761209151268711912088404790297385248347949239259485171550894132083821737656495611046148714278833096878056624749667011334075529692562112323888869169786527388274543892899139421565951024592402711012601735532305958947859010812337528641819472374893403953461806325167874439829224189540845820815851136457559097354991553955946487615726101941786830777062292332183697909192522843331670172189369066547341284890187373027143427980082508777766292409420295881349917132165300774553971948050117693472537813056678008484959089546009130495283316147591678788227302383206397812438455147637122417453455169088577763003075645007983511057299514642972337663995234849032924790316539010538354153361410317102248375925063376319474189733458464659357628364526259329817449294689756045904641434496887359819155532492843088867879196518824187399602456963127372072689294976297432819697106978978401667197112182309432625072562374039962474167591350778095456957456694262512817680770458912527509344507415914462227195730315708811686263108255295965248022437682758918329361661751304304090465011000565045505834517885209430916139354757899731399553908034420423265327061202711483774515244226672144664988250090147537975743137179473095654682256744427534191272532478467756526120997660282949937023214020060267686330266291821928185633186204463932970269772557505966390319027682669907130322364699487149124925893868676981049679896329293368843924031551634371137688772929710982257264715549150584488298392858509093632938263801007297333211245528355703190005795002963753300597019548314655392231821956319515473181921587092032712988106901048859111821930769024232316088373402277870439170220842152504773614431228084929332009300936280241861293141479542751176714690151031305121594663706180000773843769381920801774332398754212532434565062537006357717938199532433665080754277243085000797500100016508891305689009872813218895437685865393229183857109333818772625280765765315383807509199000250519294380728692417495090829969306158773534311632098811097163775814926253275668727746327681496548955407563771544886694469003968778350187537371827184962423850604903748667671933336951157195904453019154726950250583595484599523758915170701123488822096757809974225808121757087192333285871043240445507949598267238912722086663718874690578213615321102368366813422910813811305561430232102218962440321475378325325599560686358386071350088648357960174728714246552703305983157988458465719658839062729754619619570202228542375344752959784157216263074583448900856936678366444854804001513756081655560442259994228869885232195614698561631530815890506142726960672838324383878805204091651596275262889396104145128915936189563985993158496977276737265208318504598184089498208343514333537228500533313780537754768990815232581711327968017015743971932641423683872226990541107707402649345414686653413138372121186696157547057201158995093978886531177484375720827613190797377843847057903950680647568763481920570518229222793002565141083790354154262592335227881951232357779066908998748022598759776238764392560299138752754159031494885885067049964227992051760912326805176533491551018365261847739935022635974704885440533096867343197980412159330316629298580101001085163705264804323396189516232639295417897542229497078019245421593411999484358830544915270101046234865283441001060529089800872274993260598067099212640424330700640231440099671856722872913198482040409921301517793197710065391576514162152888346464372740392410215888313471258948143827826334754456897314053246838287413274510907773793600212117540649061753398352205556641981808578672055683218588451103795129567725887332345767862729796579689639591725694972852281943677424336052578709496982974216011351292345849276904821513193701810996579364523443842842746066722006903281248505365526282029585045977180371327832976866699605692492082661602775688238118162309996260654979350876558242702223073760587992418128138880281814605839473007299897377182603784722759715173961359831531333922867276943507045130674499603971533248818228044043905209475306420080081960219457070369142303254597033748772816175917597473576313009365037165209144527453599864546368739165241243115123825644542371295267033078380955231654870640387905906608584557060022274098511066108749611995565721193166329601835055234491680493733276451301081458408222832740042142726091459038277836825615603032213728302870121384835484731318012839095739667854472464232339988759184645515055701419329816451598311368966273441951171208188539093026797057056025260961894047243628617137087535124691364942374038991175033903636345261768568858898413497392326772551552050800377095872295888308400688920685469632807595394404832998767567067004867860131418685096391386632178730616191419784735806896951492472012618380355278321382144843599097045117907389743834368200518517720592428375498182475823043087294456756920630763711775496838408918051108201319220778330967470270632931573568676868673372731295785941521567027160820187568967451645047419991251193038993991475895928935839689497109124432097648631546336076152395826633062962923006083802095357453824767166165317067063781704551691072954177799835328053412078000402650257918234516954243062850950720756221897153010200356788809999038519690268386770116224689671378202267777541676674773413771007108462220584232000296614189198586275134126969292324189359931623704154380251742512564317593389549622432974515851962089835581850916120812990495223774165112924815443908947085783496674695304110429162049132959810214062551758981667034571533378870863919024168771362920436603906766244833804186629060314497710159183100990918494467703258088688650039549219238722134596318982908865269669154399511982337914158649979630136372733394952707711820285201240913798678590141464421204996227971609221924485635918534075841654196648370930144442872242957042797958565020743888791277750215560151013986594047951135230178014292684376241555781404551232550873081975223208659199225012246761080216302271784420719834188377181957139001874252011571622899113961319938826924920311898651879114757780776447625264431491913715099929760473639866285276948719695278752934103591156496735341368952856390165025525720337477026265833073698472183707321888903377077149172265959569666123129003781984954329603490084958093639648039418527859954242742923318390465847508023977423789778634651769963694626398717045127227046774687849274554044524641709348615920805149758025478702149305715089460068155189221253978878432411504161662279790238965906313436856471680932331763010243013561038196964081650268187135963057708753416656053928023286972650821225601528525270846735646411230092081657103298451662786221622437051399139273336962201716105436581399790621293186818572925375821561305553306498318340430866246682711932823350726070724018134254736815595962379936109656956215852386950103010738013876502999005058686482633574785793225354787865803544834741727016236185768934145899755007254651586788813095755345474805880298597056292194905120270462519285567317395823311539027201678966866813195379236652759272813667667395030566293462975198002769064667209599284149991941183058416320425170575077803059623043747512848035670561960664739688600332683164050616578369102466969981585091758213396731837896934298646297500470297266362893315239604006835808995367455734099083602897361855690471248104799085285424314789930945883436265887801983478857882003755168890857197516878555440740828773092902289152957820943885263122380835558050096433713593311449124035940560483628198082484570754045621990567381054292805217441166658796276691424236281365719809001017095810092243046695758889604094684887131219461066354982422397120255828353035219255208966216385353795550996021365922927508819975364254697656350240471937355129547546879932822432665447786268731643894461354765596212606960426415618890169325448923825825572372815086697275134145798275142524340090950256712640138899669207752253451259582310601354360060465772936985310572325764440813430770299654883239825700732018706104729945645894731969919402642909979236033166076014111506290995398165491543939648006328504176990570645075734779915053819566022466175163347649067314731978692787498283531671500786152572370332340099660833050333390181693456352789000117097336039514686875967253237229206089553121594999762482404939726862858894998693984925541693495978594903039728992978456962351271248475982652503328651445606450039344455698837709313384334173741617258829207420318054547980017505643931041440548299313982219504619778198820803783485063779381887029612365702466886103532535102254737291628299169691282713381925380507289329347615843613859119840305771195961284540592396556570710127045028674050650775491084850930873795036987318242211519591836804090593390535494726835804343619649722957071995898032355380965178658509175211935594860123295986148523808010881323406118582531756244193965615900934938153470975124798525295028873795632179475728899513178772446465114480348666003633993498271024306669741900143213990118127763771586567477955803936483964674170814050253584157486326460666802784402393044845390709472884655140541741206034241982566678776288292405645163891340336626786885262536902636127617237534554623614590091562801626530859642792277020631664004140525705453865239964297616901228729697056739409883343261215895472501296915969971799878030034580167241992885862939115321690162614216215461782905485591457647555157918709043483119761799420306247704488778022834222053588418311811265555343063629116505347475084282250465394352225166439732908150530363105259723121841307407397544718237100030736096780891518172663038007922008789975351280914250491468169127347135320896954326348392405437259819363000820155124860125821036375465443026981001791610605136425744644094381936539991360926104444184560460626667105720062995410764377957437628835940145930739120309299236515021317931537212924660910591224309894150994163201925744448103851620574982772701914843155636566843193616484480977784091271089490744889036411550526490913234396574369583109251064522011244467137296739689884519165947064071692438229087237353306222740927762687799662730923855816366308773955146023279021012976233153806581155352662149069794236980335686545793876387123222354360287660946616363292723406650823058198230053817675945490442019766048154462738889939987053128101442918094067887596301740039676252808468562624896715834231013315671308152482333923468243575940307843540307255827022705823563467725660390037304331637879782376490527080825622562305751733621988146601112641280105682429992865915104427229628348677145324365772899904501386319184135842406744288054722274948052842203919204520316929075375898360176189445005817201031747059960051443980083311569254492198640474208694442605849994826195177849012108163334404658413408877435838083429205831247931817600425946762645359795017199228681367100116714254529849024474925447904828552099818669172058964777449574261393036600398212899178975366036366861601755618179760168405103937032731632253601943065886137228290659542502505744417496478545372134359340105364330798174712929143016324703649446328872870994155090830351052954437182150106145859793878280513232254377640703712942289807267795474971838868484103957844975404446848665784810681353556984945573979415698282384209371147333858589627156162896256137033048936467221206449176532894040073348819767941147559961761979734589315522954354140053177853945407083679227891093441572973972237679133163847535196805033729367394602345072148459350542248368678042627092301062152738062665600840991057790601117807710780098016164265017224120195532909608896399192865406079341243259026326436736455405971265744802509460604076154882313779676675444221237278772902143653744739550887121383176819679678432779296845173816702929722932762960562670347955632353004506526554952732945740285398464106621557908432888294303363726326444667719632320593257852172352319798488999576303349032761391907499713284641204094726361030962419105578905725188728840132529156418825106023815429938515105231897014735692626997388662936882028064252771210476279881929627788599226964707531954492950369543304744439853832525760822412809982454186699211455918445309871932673498878292172786467891352953019000636853543552919613962192030807058247367277875752110885825863483854325252732843286040776825264351676402796868501887705146979059630605527346079585589358997717403728953290527764844502593388538799029496209157875666183801876180122842260651383354718874034406264307282506557236045228017865938640005436175138174192701756809957822225628991951883117655151478606213797574499745495614966433424301265033312408630592507742171853889071202579216836574293185716424983864353548913258911470339674850976054062395700050933603302449758590010854881366104429591362851054211820352771709205708344416240506142292895787593820822368708644032264598050258111950458620205754444970061549397957872193183863714126763483483528421464016403477422479708413308223481430540211934752673526716331344428721475075350521801506134368978082045893345862452157594281349064515262005944513791248311554493439419995931825095515179417317319067335879283822123383947184403109226059041949645525025013459573342601539017553284033292614271923287395584691830427893692370675080501928529288403210639559787965707580446060596358824293094528926616455365522490990671469454568766585255107703286301205061507030004760087997019847118902611566819836434521495371604432138926431620195511176659154359206917720411569771835985858195842457026710716866553914348906484429479819083299787397302070206285495798969448776679586955845951326380130140829442926725856441014438974442916014681680619486153943386176407883862547376893440875006277073879324397430618436706970625631640811589374290791171787695434897756189536799219729468938830536684269312212833573957403404697289069587539710659766000802355207620408117367915354417106464303647325967111732163040895343289860027717218935328798155152817881192548251432299856839557874951606396689127364883299427819378376450329221947141218162818163041257041172264460404630961561453943662129537040811911103304405474960467166712882388998569184345726572436355847260461068040951504498152258455987740362353908494154734310612854555195799644075590144693400921737087089417112538978412513640184774209790858210240992939266103519536057576141317921612631016069811255124106250183619544248874933333752796740979263365919933174185922450104757286585044678271696050291514489491075954735884825477103560247487514178752088940687656071043672915067706477365455311472992476623207421371114598897925757067287659801256713305586385752066062949548084280346689440527436304694706100767026467178017873143073859879132931983067263810577977073148294225526901811708643119444008826348452686166416002634117289256003570111248339840219061444763144989149602264295057583066139567683361077858470217210712555051222851316013789853865608477046700859838880711030685370199557946635404385705978775189722948913367602713594225578728124485569200430354103516095607897648655086787922209636319271797254248217608934343281077366580141211850365913450438661050156953813569926372301545606575987561853214991935255805113379262177883938631494154761289756667059027479544007639009469121274182233308309157076352340995619415351280107353360278429184903933498331126974750894825141556538944969300367649892335201087748775457163920623018101138483857395915852469519934494822523237699568224252231598588086959186739427431385838048747764135713538298087421478755071810278112712236687661056761707723185554610739733205291736613910195272199298653218836109551192457461265186604475576682366533645303453069386049895855149202249730079219807662165259819705010418067605375451931253040112360217156706168168558573775967450919079668576328527773883098160313016341432530362024508246157340396841419602695368848889470313304871820646819875363820152850375702967041574000175424447019412911132965759147407742071696019055520563718615694185654689149149412442490477618807813828696393691931757086687641281785191901015400135362492758120742362189919200102273167335430767736208830810239026611337335184112412117401161421654140313684007497547360541761818799508023741809192007596362754835192154146497744912525845282392269499264960965978288480685314211575195498363009959272294173156999076983354504856778786285576459982828138305656183056721704018837860953004932987242565445545356396093627517655897076932791641809050637966227063715245727423339428872598238670787497211777588103136275089949056345686815561067800077837774720853553122724457814644983007183679872900749314845749547955339203154475867692566348237368145792944888831130740432703242124225200280970270617376924976765194122355392102440524030834335381285089805858884251714355588243417507574483762339066062949938964037314515213125551370010766958913652737364596211649104004472037177114713456041809223826205397115171870112678608332846131348350173124537996028365394660191715666216769661453440740557403228783082200525925117394330418566534349760803506297306455489222777285545235773386948866080270818547652859781630213075871065704898180253461691742697553656905946190641983549962181978987436598498636585850139795499335793402932451769344290458562305335359029639058772215884034654420351407926959012272115249226321083826960864733711754591224409258405554299989823937620645855238425971314215693737536084717147195841929631493230938652234377139903244778094169954623555169217188194108221880732542790017780009833685863422476093842087246098310261562680327271725074919283074736197442574700693562224929722490940248753629552626902956101342797489599301749351125653992260545260290493334197479742635469860757891841590916735870044916919941965069924214238680108817851055538724263543257603519462422669804950489646075121437828150330920094289453178691596346238676735976587756592172028421118227333267344108119350818790544455258125741494491041198004126743810640331541346868971568255864989560289590477925090543562548485469734327109444975262759390615653810123003266341132723233437275335834977409015174488558559336449948427229502579398892462932030098095271519988935896909164250425396508945879142036374573702777766636477760587365646084375645622018577838249747427754996346055796288449921800865903502489011675458418178703434863142433346813268798465714004601036081283828491544279165295950132663496144606673741096939091862402353872573122402366078033069126915635561952212086224194073301155039982084499643362193867192481711475370516344692259799435795669958148063617525675187214923274848971562242743570006811956341835531207679888084865229378075489564817313727959226890148386982640328546133826110597020955085703026551875344642255274867788731866162824331342481574894755924451881731907737797299085254643304050041275443330840704732783122737785030404573460341896761791633568163608888696414936989234076785901251421507421405921341485510303337550463212554202931007340312200723521903877942216156161093375966884931501715509011016326468568293425472813753868768937103649684193405435996445511699589490657617156571970617151056634504168224491603795995398123363637295776125965912416445132327280777059518489758957483089416823009804333146991353899115969675794555225524831381183676082200422967180860739586009867884204808514833726788195310965935227188061833691864113197384879212109295474377876750898159920133259271132422597735281800952096822341894131823975734454800296163490840791853235108044360763882102682357053944263647372460451316159980482412362070778803017748532079379211094142760384819085843483227663704117877370804136856633615045984513419692469551187500921136370575037432272160170364365883309918905067559224501595277793148655358409711246769422461368447448892102735282955956252006104445853974215580559448140791756567214396885900345300241813514177015655765664150965364969709805236568077724221634280809612237656590500362760477914053303681114478287232172480481801887127148766044258552659728128943591354731866555277363526535335469471614604731734773752863940629977524749891220216739131770734599102626574050394146667119575693092059163018734357799314175044194229677727065270658707694238397673208737834738050725402160089292044657199551222785933741995231800572707068690548947611123398333843939959824958374644433950605587482123154713598940602657929044531851115237326959642814087800950425875110962458874718497603173150067132379145013021860658297024611260147057195999866305137637905194877889207061993201557286108169044894698993976726840855504613551551020222786142709989714611686127180918897590015827268658596345947999385635991571475855141045302308223394711373204622155386528261249380945681791340621066934754321092696768195115043467066022052973966009528633539619121314449851935821942058803611030113086152240657639656459335192993184109617878428070313959465963285604785053787790357901985755866309172455656203222818884439461673829175417103701240764391620088962476245824761700158926818911935057991290365707933857076055985202673612815445298561061382748522089336296098185040424582584879427424282751618394062225213355165161218010200285645957625828759921687679434367954680092651063967087018388933582477671710606098397121381065908112029499808783986647280410038107135657448996770854765784787316760696901648413800119475614102641505435486680481618680633137857432550131707383859291596078915669897795551507798612055527650451287732817984172061527310903725750324563990057213795674437428594975752788859522255985426592008752694579070380205458021217484951767414943122556292977876367467850051320486285903946165285489684846326126840116802774353600805835395922291045839284132027540648218434626462136261904816818622642846595966497929175136559576526367019125110851277112878924950635165935172451406737176874755506892068753207665602419215416921218029062442433488980090579308009354077776817955364352829968573554334549490480289134929014283375164583216859247036645361292089349918718618472663379539979230083658206083321053413484675704443233444381973587062637855542078412771389896202167817161258958318029750460580878141801071697294016676130571856422670093109179156517813587013812592698896854251853816590403092248228664899262896866206643375786775776964238994928740533553096249758141611912959017958902987488538700927111928162329166318550357154024128831478239053760459998791216118280313522261861060420233824199272278003302063233847766675278700219764877697676338448424129210720521616594366275978100992072328614010173495935926270021503226427718956976245086350418078497629266729720984871962024193784073512762076170571603658381057080740549664797155052426996623199726621855824541786457145742203550897837413225397200559708504291797317928735470806568605451623781366610107454778067448044590509138629578894102622768051302310012645487975881044268395717867093175989798980736049287709499070236185290493697063742982689176829180084497534194277262348616254425951639824392406784314303729109231211079084714580770018523383994677656296423209684009202156308235889584978714137564856424657855884561192960783328936774091790410933117518452709048628366585821300321746731988851995646496741558004208292240218170321680535818064141397328706867781897901538532909010344966324899797984830275663050466773740950087807335862545023710012782906006663616751877451268895476284251760965458758342792217760216790018085833549975070023173850456279086891702838664085912089188246336313048947905576015663638288727026736127337434815569913906326631104175663036885260375885575481151213907815051691622951947143109030696473652622204208220342912807658484742172277925608407880537589894811455306137260376338005542613712551840298425998987317406277193142198802917983946186700887849247489981727773897491799567970180702219365116199324628065919410250866241062527474720821185340842991667433445543401216464739310455956098018356592400516533859471652354201818196707250152716997525838328293889283583400385674752575682243958596573543382366252479093537769665414439191647539165050356217040294635687331514147719539845148946036951394933833055002186404378887377395463159142389130520829555641700748856924152212230093137964611507197233311087809144157476577244000389284641686857486750446163591168812114074063205421756830418226838886439191268613674629795983546076587254889075830188246467384575887031033647623749720208605519894178026779927255519769173655445602169070289415851691814842080895546187298090979240212985735111447886946168436222552543718030907786614610108010075871599585348802048322056529665084804235712521062212127821198364016333520165261191803418046690663405920875448201299692746821764552528284122902208871378649171883661384484888729532470137118999233835810257043349591868159637671572448465781915089005595584599726894629221258608568806798576488956671415474464776923287014784205881031692290102462774381726392749640627798655401144400188497207045575742199064188646427070737654474750383458793227500729936198080527340784552763785028495148389683932390669141845503942021070532181750269717206813393939348675173055998719704806073657518182455536718850201996758563451555480852149809940878609235287346613279628389424019685524216756048129393792183898333085575975784402238341161049531942572083693089488099407079561537041936693976541690943158616730331297161749527283800403876967079667003490447740457044524490862431654976109959353509459628025585887880850776444208011833500155706283639188807833884634358864501518456069899585529996762995899317380927068373752155221509664107475834404439933452674393192606328701769616079676388568367009716600151439408020288749240457097517746213542634705627630117349086718513961118229096793061336408925102098278533895824079553737076641496666295250572266383511804681839299622968304733147685419734766712510484498887320701694645189416976220625949658727440068937150523590227466283941265886664348370446971846496477365363716233007969630192143295195730619432263596883942759692827508329040541200188614757407820840237029233705556655179708378414961479805106247977091994287431615914416011082938646654259912336801551302930574651436365571087179224223625674519827822845589419358472386310797416911857770249257945839639007826176066397456376330388903270183835168473465474922041155639897123239188132576191876672265884385472465005901319883577678227241901670731518760801418905352377685082241540514402719359231416157194097473226641549377525102564299317629681657095473907933860720180293953732759712309038469716525529100388734261814639551090448911582319195103808442145718308935253712072128652499013547182511956776036309232045318799400853876414225843737165757638206312476584650779840888423875427928009543136024184143309908533111090144396584782577258740666671532572212852423977118016728521202427430175036141693507238834396613673823479564798495988816417235555993313759640903858238664154811804035978067777409167785471403939843920339878092392077860446190012503278496933487010947208735357946778567769872189211721727802458536945800436925021867978223242105682315262959833556446024047122927391792984313233304570979700605410719358122947367239694799618556502262082864144289280021949850046503458605008678202629697520137993511276573673605062108353408353176742487649611616003186288126688915569653280303162418734862634382344557210104186815854124618763197187740792810661405043048667834936256656108389422114095469000259613466541899401553628642946583119680919967229622158942088972478128607755374660005966238584760226828031937943937880630997119334515437772954056142344105144006909879307667580479963756608245402195075891744174260925367378779981221057747060659564436272513851276063492963804845133759125319521296291810285705431670770223916998123370463881013619802406004074621089070694240130706321096300405038294613907239566430740404189294002798557579263307757447468214214672540668923792877375265942226060093941831034501451257832085713424634403771922952746512214547440200202754897638038758011128975984892462362594777628924377721949581538639931072817137613527420063808593228887649431440709572455954295435288078883765853686668728430132952650125545781292395651489091300243285640207113857774590422740648488781373152036423268078192442567809942052778679654672161986926667481700302197912260843338589118293354254090081901226559184669714505648096698303372069982662978385970816522082481680480630743511782891657075989545370160533072511646434449005644569965855488350293112782446307904134282684779067962024281189493339684272588748598594264640467382938035292643528348487369823164026861797654986035488670451810136199631615672238519017515726513088621511647124418610986383897643395221768467351970074573457512102179224872226217499920197757803487046754011300344809926460961310545385360156517967791650837006172893789702603161852308387351075285946731177392495872811902384147496244748375391243035071738969638084286754208568208130579541777096139801899259856261616499044712633528146904225947305171142475476029075963302743058414893861114818049340489309312148594231462015710036300829987693972032720555087006240192695090651658718869366732015022715272833761065715823385812670604402357119469510149558403012301580220898452583508205332339766029782263767072786379147126604266404698231975910396717389872744502835018681622261755744162783872735140653730947912274095225912667490638962701239840452419005405533660886316280164619651042980451115686785780882356882997585952309696328933015501907268366638719663459641362608865561766307869780689700954774915151362231339164936603024760663879564581519892600210475881458653116800780144130379807594534241001966724025874237381437426165838549655275864298900822649061605378266990985475794018257874753111220021465445571281609266440258122191780078688802381113364402167917059982772338865523872705630405536077328078936538362457635101108152556306437761798538184531006344948408709456866316941720873715537816937380003400427852584858700359228019823677149738075783201273476868080705834059120939352258938190969344697863485509443479861203920077369771917801881780044872713806459170357271360435157338606761852722131278840775715234687201407327530074113413710247439227556698181572806755358922728500886615368802211105101616197337874162801991950578638401047328010249999752438782067990936304114110758763471354214239498459283662397009476293101431863066193726680343885780543998430695262640239288537764819483807859600167086551943686381489593715374172625634784639683167737644023585948398683390018483345117994706513548222428396149086858261389751324290472994701694477776735940551877103654902478030353958330619661789298195972540139957990744511759831119382930573970037527864228915312184207542600943812762790141708128573940346007506039081935304343569535065756418908497644232529691502187492687804246448191540024695294394480680471918793215118009213771862799839541969584034515104095076323911659452397622186576931111937933561255421206223620922083766609570500300623469690857778508582251550047628703201730675295294241978411443675511658382110081365751958799810728998146686100024364568503038562456300367314619180802166623680645696489400914620131711319421829950847282036201600455914627534764911383796484337029687991900150426816580624237905292434052615808522259537951170083889469334306816580308289881454743056889496096075372212610859092989411775473919040413227381418164577673061577033142197338693369469932137694635520819633214754916575108377593747113407778488813194773044163701899430285368399037399267486912482543703350250226635072541316820990794472939744195811136805764064274638035631099813578371039767684490180812279483264926946556171947935390512550906520827865988258169485816965467979491892337201846214913400536048497563970555302169449275064192819127757939611287434170544956056234226255374966876971298404018826668866172735889894616683735735247411765037877250100240217714095893643852913793421251152890118066043598259600939008540469529498484965486342515107196382295589674602703429130882077373489983164856947108376387073168792247208222143138543394820293725095008319025421888630838815951127522335228699699184399379175838690015447107779624676172858626729829979341930033463373900921458774308619024289600724754132605174388338051901456688220074267414054640268941610291112022232868652368925243804525539379662690976592933902948401561456066959781729207222190937389746766155227533912221674014317897784654156357120474410026189420159169560416060823074982719212407123720340250221795124759676985485433824032645653883405298871971751317827255321019898931668746805594566467637600378635724984620312323737411705621015361241863361881966234588688170693069636612297424288593227803403960798317456838059419629145407783589946995445640596758776978468698251051657819003713991771052609007493901609494486563129083517393745644602460578325546643568925977794733655912314884095851525777920435935849426192475819129984446542741182237636329403025461787702735130383634518840642725439346338338935900672542199681944811948387930486136213666356557083293537185817529435289708247470287001846223868528894890725807807248866006812361683816164199264761794696861134658870558761713826695161327942246662875930788648775682342844092632616424699985533390571272545046360556548734716736044949136174346064157865757578000819344432448076157580868768913629192639236778716933688904008958402776259153480640681132636673304430908904806925532098459813489821835678642609333735932861028215737632629639042602491212120484555099846960427385524786761633318477281438024984716536490706083206243695066481320563820809018004628446775262808756986477587624235422832512810291627280640372111461476670288587050168580415957001791528296849860754767363660538804917754935458604511112815638111500420448412275201950620197927827096562707073275768114503332718351709684238518525049865823315260164663075016919869553885038495712335545922035966510698370939626798540967469269832302617020298078857769052316844601217373321010367577499432629338926036176124650954447291171173309355400879138876167978650619180489105733443558320829774406636399861773182144769746940922534733482163672821027316167313186126467618873671565590194855416074748599884361313411328187108580844441423418628429476089241108768010953290526830468643466533936449302575896904966146499913448078538920554407236682825922970589536138436508935948143571973886336150462407980557154020142510108659755769195163895502855598922466847947719840142511341891609650532826999345875416123845430615284255682582422098710641181497588334136091301482866618387381722965682179931003713255382704804776928507108382003662240985885523253357293313617523713921656173204298019168609674769721545592539718338625188125995673106473832781841080625165074783916533365947541721383464137873251714035457659155010509383746587680742681610904675881614913942796237880210425289778873605075285236560036232521740871476206991616858397589211943770822953938643692583492012820608610507007704721184621880621935022446406601567298494550484786875736405151703456779706455399711709510247258691619572037006106545264526135921553265997182602697745054718106567440626142487759134786735209423408396592976575961865231938070594784769154848488630716371913193675616298852127573423604192313123655317094010686074235373220559891718124060855276255304676636427317474619168791950633324366926120483898913563061212694827439826012147509811858977607996128467647134889700696261664385323622508794527245716009241679188758218659913441681767443864768635445718624837634920274983731959554001147694288076246554497088562965631431894883861480659977583888619080955453726182417674349911694037758841235422251366654403837740829227792509972906332183547826751118431718720042117500356013598180536701982975957667959339833469510663126071682144103654613966608135352200361940000342546509728226685777234054351204346407117512719375764785100920356557939400356144667032409781488892379790205007817798417450824317853648581489501459179518954875501571177786492269455244771844715145132345799270677060243236624207879802536850219803026951068055701103364376083683506415448741144189665307837678747520193093434110374041331310095615863410443523172896004502362382052852451791042398904207583200442560609223435427295917181177810592579033266616428602988645805238767564630322864250681472883104271367909528433699825197921525836995406129526456819063846041434842632709975194775529597197798982905501838353372419925929237457358597122690359815428780708030947350485125383635589190677618075762344671793689466293169493378719773135608296254934890919848229855371452295040498985350675386731080595490436793964549602178156556178537826740361782937999797607543474481074691484582423564466540146814939323618150426642824005237610432265820137606742664658086009622628609767445865935758496415072733190173532767029149185026311094908476116514577467543614818204728466933656470417730538956065023993137247291710298471972381476738387805011161255367955345210676228949053600246089794159140232821885359616762085246625234810620166095673506415044322217482227426237256292812845526885226803089596116625423011964428242771149969180412180542345796346465254874106365725662435958042254763389844931313656129034681746827356987137590965986768203468835738704578631371075849197957193224059171343114913148378765661749999693990026101010147539642854319924982366520591782898836805628038069281722067382244521884053413223406231916883696990650178273986269770985655814771408404916070900387423082478461455025109233021448406960744798144973997987268854908141020861748375796229052005977137585975223007414381953464424136741072946005537087170773029435547752375246373596415320285343562905042973505350120764784943663344442005709659193895694004564179558358772587099803113977217021630285425250260878291565453668164187428051558938150684921594309477962206493107882298517214545070207766655571650341223985543507988170499418129337207369443296647924653860039646148685172965509685590938928145765480443696501453777324398436673837734760313755789981919712056490244398929102834946513542565191679048438834759059613841489364186032468549530878760163680858517880711780923341344690804716125969348121922773041722561581366196257769341492942486262308766194356976482963158367312054912906742757884030115766755531184379227155404120312318220001782393566684339006477804051598706928164188627539616261460614297980749325923135639640097839474623139914663265667367846580665007615285274344840364584929613936502386924624710691496952295490680386035253922458882745440229146862957872881767767196697222506504712484908040136891295716473318652526086978589844668540791861767236829229889579993902727743551386795367085378094173595346479863394927482742585654004179044379083214903545699303582681906301041200604418613831535125414623984015707009608991643262251821867649042563396518058413947412778568429872646472759530664436347643134068538040976792135600366024997601692742501567137871666887643478334391293094209403821326581279183443898686298695120054512184643922277676418857483076923319222816841698782164067984315074138958690086665482038684639097900996470191277682595303148169740908094193709328151472286558662370887099805597501989403644248131273234223072129483343851145338695074601423647086805243598006939211075458309886617102660586767092238038132254484051380949909868113294018848423780781848040382884475325520652458781761412943992829726940622245571377391582087016136663292949042476893501935714691726735667397812544561411358571383810701871541757962467125321845343426589683130064487066233307034518841854699261114477713287303602763408878388495741660029969007069963984640500843605867162622483062529378109872647108593819866832573198380858463580554058900446662233601346693834802847051420054954082221036498211107743898579910303857023952645363251580041203595257108966952453764291577157667896842320531549365541016866555126895751600682638137843743509317787868523099326086941137573197720124971638422321848061478581621953519523699833510811753766642267833433531467370446164838505659121843965730589066053421468992010708517980394563868971018576717981709447564548663232432999433690752601639308290429581009026472406486675367874272946840873431467224735086699517864649527666845932478692550292755633300853175615172054949453431719275734886943060316316725997373819609873424251557559352202866244153563907588035403479970062794644021579319477986474911821332877558999057623358842170446862063660947451844481313487541361751345026147952168005823841933757796872645445100882030056409330206858601199712874142431918904162493146296462267675627453648268105696924552598382923945357614661666519549428594968326695165407480176224787981627498280753964280693863946272282988120129755919201433356665445297657592850845741524122492402855332564879284203943920442108134986084253023410556746540115575721397665511375605608217000920055511202392648382447019657071751206040572714072259397418580276060565927974682563677678127548036375682406739526864403558318057662467499364122915954220680787388150512945859045647258473260144235921288234168371070913759026058588786821553128910990529586741005306938643718587683301439220530196538438483006340105026114447151840453457098224921997596553691670717705070610254183417520143152159003697408205879288988659096625292486122438750991168458414479040422208605110784087454657694177808633127450804908996392033989373930360216333297310957918687424659276052479007144806565527919820414298386068145017969655348071521535874059161275361309996239911367427123596145833383057349405714026948379784684109863799962547156306256325080403647161153064189723500280963630102572568685595604981791316209949357954868279419279920283750965464246593516362103410850744964846835354433667304502231911383016314131470784137830985751602414760309361161352745925500591210754862273343451815448206956492727514722743337705054026190431499209358527279539449138649909088940983285945081148736121062218882231461396693344522713314436218049444757423792321585962381792042024585555509714858710533108765020933428098815007418054923427618966104159043017549562924557624021637446474315540786679016368833705106113250400815790422849856746807094662065416827609325674869526346958524874776136014204389649664513467003832116533144950427890846984037652574138768526887386788271245576308690324180972566516810179959810374414852296380342032412973843436798173352087079261653431870877750963145963003925695871608530058171957732498372276533550098317687006973349473163119274538610557980235147899727516872614550269058993524915103495375615095959324422505282138728533561336797730826712862894030290400073417911118118925298963330268202747678048136361198200696069395793942753168718666731333420194008498962821736892165171463397214322490779445972426197572876467637943247359905995131138188960579056095929113913580866386198539823544260794619278883779339847011185682144835110871268718112756183739583416198573145054331196435617573532218517149981268171739356424333678924303409443200497021847554817744932160521552737925132157511044532311721389489098865457092793426382402847618633496180787200089487314208182567865853982518462103808505987667924807573713433806175639376123633197693800585902056792986546500579159685454863249375729196327756424392680647599234400911804720787104244357444939416952914792635524442250156317457991154955915381826271677035163196219328797627702804275522345928508089433304891364379064239887230563095861166500626666413228955628863043850419308900215071428573696464387279383323767025018413284980535779371905791861292252750079382235673128819516018231676615233460051264650153483026101687749799077990263566772184968922451591749211774825829546529236508831581918296846586989184809658149980267225378699897543652803287616813848459048535566071447549336557555048154531803479705296518746352718592500101371770361369589404485125637932896651982805767891994454927647105181283542780762713178335611224345704295539764107139251759981715136437548367971498238868885253632476692318423164816882895930629290966740303344708035042399551948924885784616190509819521991719590463352390718485804449559294752414348762348758707552366518644077013415220865759740813180100938225699595903276669644364209505346152498220608340905655891111581682154750354455042955196117054073859562585972155197943497481629432206774906655174744690601962074509146774991980653263702298998874993175968292732406101875428761838609071170340872247750187999426387684308281512894531395574515041357074447505980015616859119212389258930229383050597160007473864197640106063018792663038407584225572120995425249467452598259008815267390791187327387123594318556732210678169450300376446274272336271812231599291180103113089487068933455445013001131423008059613544125616497848008502653421503203771017742386737430863152721377584618178809382340412816546562457749350108361675402677589786967250745320010095739733909126299021907943510172049869570257680771304231075688330410641588037416929924334831648723375648199147326997882712365745419622432854555603568688759807416369701418717008203730357635199528808694577609787237436865450771688932646747722386751790415084241741607259330881153414806982685474780858257615466380521056880337888090729288337810765759455885007417526731205364555152668414824061761189754431766302782409048202489833492682026250194354286653365325799971613976277787662380609907713286347236923483573056136439020096048020536499757029765165506857555580615212182330553940374009377748192092105970186142150277476694716888515866303573718511609395175361604099654289566496787031587585987926739944140470723640039397981564248563369795379443248260471442836427984845602825367535456473905445882381787617452633514163242716631130190336728674957046064723419312244615583913879422964564291766589759053283364174483194335145942294101481236990293066549378456929000118056358285468701501392173745575103925261815143777629192570993849249493780194986570788581787075860250364421471086399898715767314843621319737517771253155527239346438818405948789405838922459646381023342073209501949614243532672038245382784559097493213373654627023762203420009789718469308195622167738390869768423765928867518460195997591955397179017297485271406006383118334407932386294437958208734069103759121634840860141390905170599165022108726056379146836161345422969176675881597540551434562194113277832018404002214543035230736069442499183410898523821211079291792149120030285551779200079947465361572140060137565452295124145150065823672862323999319042178712880588135958502284243631748956663656136480800101561438881348373935273178144044449967205230910841730647012830354011807196397317472524345276799511714283620308282278382510064042927984325741287241026026902932470198284352490623580060181309680409011069878518981546653472107887753075151761100156513835926639595223587713883563825764874880707947570250964592451292128573872354515699689711575100058333303880675712667509930832675376044673506316826430054572114020727352444206771325832196632132285268586194326552313660928992233085720613415934927948507001232171583335962334289915930773776191483147168265926351099507971937203554837511298609567297051646837890554708462408919898554239042999719959923571410783345077719531571041662634755684806717746957474950302223911680658758651392140482199308496959445288372261092613161301193269446998883335019514477592388976090774878887907799513034262857968900424184530127861617611913999770426993585243302419774238776477055424547087434530222941532319543877745544035680255466326754334518547033278531611704120701950886909237167428655374057904309634172930714713608465321796489254187679473915315807592002570863681051246876141055263512016160258465442522261749091384333167182564456171234924109323662626059460469450660753913730596624516318001473691766113605276909831053298096918607726939101473963405559575229235934739006206304963607671744984421714621994522487641347807657499704264240995555638462311846159521374014340815007553939387430149763536445176241335875766177320416888835405107359574074937771426922579937328355346328319293446365824972226031425478135196733693165865169434237459813051429942453883222061515000055166111635018846649476105576013566891294383766327158040856115971197818275819404614699416503163851080386878600206634159958259669045614519726808872551295574895676965750948107877583920729930442652961404710099216517280550460394581962331690999838793262522863150183097813993961296315444720059123966785140555822824021456797059165034362668103409942137159660822120127061001656504230839865081828477241736698846000496569936049710724240911424041870004331644114458349255832597351310957613757584920211338526097509303478098897144217904907366511371043949320734306618835898437362958029461488918635406756109862560127678849490545944722984949932277664794359130596221783765276101330536750791422405085507661821473839098193768389136894838496141230230583263674380039135228201853622480636748385107849489566139113795311226206394421305528781352602839885199625564234908802616448957158235026978900822788946931719865844735044078863229779605806168367883443304096863564198413319786980207870784609568585446220962304424898826412610977539822948458947231743675141890587204554939727353142937983158642428446692387064090828269009161700048196939560700794868929957130802129924452129477006678990082096561403846237612971920835717640403713694796743447597469873466830690942359428723145424724836196944769706799914547783306607783849953697196702622537009473750800517253523384485694008331572315118510117693200012992407284089219171380175899930010039999168576248040843826413592207285427196423530368639702926655164655095299934507714677219999971526277922509300365642171920690012541931472091614678860632243555425817192376724601074796687701653647053891152243696164049055774847910314100495417992286596532020750899756331396793259241897502434506856272306495754648478153229363592899244937383720060770878229706906749746976139690993280882937326849577857439699042506922483279077952974551783621446138198638602092836680601479513080846836397768273102598404001369598608119456383880940772870677945230589848503645346244122241334337518630680865402623403856902554614677193209156192380342708738008649499507013307592900242397813747791323820380695991249003942109662682281235448225894310948116826623372821402889025952391438142020744301329857848433464162141938814953851872446816553074517036229584264037700781954518885866563917030645465539577999784325830003758975972923142402111462566381346321227070578740632110286328362913824507927511966248416108610491704084762548019448550751773592185976154088105418962244897490058520207936917123429538161454700870755265853308138262622400681036347464432860345705191791731619725970995729026031735009866612441412871187364236375091613452856705261030412843660618277714026100739973334735318981745109199653218114913546220411398080529977534178574801489110641870702039738566118708481476162663210414193378977802816283224765700704599181237841909184926437966920413782884867847713245256687141379410483053695066795499839738200059598740027392675041994314649761977546969130615414602918622012457489263750906647867110269693296217300562062343899087402695060410848992015858670280481566445026082870334632108032377366639274831321385442231207614007569950919981757120329907377515978833349248492855704205718694396177649812579924899223511422997105504996636220287099985269056520867249265526735638641227005906154838589103175404784637150334454230315002800739392188014306850090602147955178445714888673704513075986101013300371861247812125855501038936457768186283326262177972713492624360986166151840879096752193648541886427096449737688273691979127185830750395301968869961678782118703085759033701820407640197665617380930877414897542698942819488329059135712638960712839503868338775523788778684089386104473517599242861860371315368864776212742644512679367384525790462897692849901203196318326590378122153237123421787907740109454632091954050279486318276512920104398331545008129909817568495925324296270216103172270556861071438055275707724786825147519651210746970605275775407789547574437413403425745924831912556598854390163435242875175040578028547726178350010248029967196420315830520153207965287415580249050757617402505819097676249046050402736255265645049013683215538130088348742842293420199214439459049360597995154613661134149015009213736519781257207561399852917104783522546546402424467981856819072801344011272645567727967590681900891036369343469962134662047515425512556651306859812881052835532382940411594053610312135041068408596667065041888527313316969746979633055536237134856994846772588425165093122023478351339350240874445104906790415209009277550300070022590581984555838278515277626316935750322855381125294597096905392068889743701485455600460376639001205312087545470676386789468401006570290386157289460449346860292348251253369826282962274513767489532218141577344624185426483151389668111012003775158628750433401908004708506928014262338916515093413904155919340159961185936157568832299733574223464252197953176249148176927339956732852660054986381240070095433681236319154056115376537182478819710731128362162401342240952569488420023062076050018997480082854593722315754175202838548840775316448398497119801288572929512099209111334507461274841556645512135115985457490012501848846331860914733061201961479117136002694300133343616337570046443260361504607681072867644168768251592045615935221217054516804040133155635244599224220917806023826549464075007331787973788545282197200233494963874879401884745674069271827161994471518513121627543381841513468600420705336983067003223119057679896468462146954682890676651401124314529684082664969654858435657263448425587241551120329867763081754723444002675295465530291761584368913419785105197881223398124382091334594147217358573534979992128891874161054823449379796596243573114022698442388249941615974273167628182937139471213963582753623476725025595659349969045554507833678406117816570746592061435561887196608106621790193058203617953215852869447402127064475052388127647415787142542331161817006052651835920105445975290952722603183157463783354647066894956402475607719908772847260408641749813199337476971067379446026690694886873908743164954237234057948237760754811547966288922814317010025012148682079928933417564146782823936875538112168905271128916756540484744461184944295280452003373907687186198600713483548673749256051300906658166854450787794120764958116738604402048506583164046011875260031397579830321945703949313861108259427822951321816660158049370149951807349877033825895743648756038785933928001800464116147238484066752939589267134036158583686266468067650955843204888448328667814516086553996184935849117861936867720338536252036022862206640226577987171865947326439056174565908239210486492552659438167484139766357581574993611369554794083539703055291690485457852086014188032634031960464103288864450916459996673990466938154838939958363638406945296350271241302850236685769726650080623057494514028811842014609392445126231836366962245889414670460506760281179099670962882780265661607278246622859433048642707833432039307879270058114267369406666888510115645630506091679802884929078257848233890114807453065132840082162621303381851525807186696986752197650196467467603960140815265557544036893396415038555966654418445530471578940167740447955107467722440871799011628899889482164539665907218877471564029740988092779076167988432548164334099261551406022846226483272964256994026563308729223021844129917102076306429428764352764083815754862080116599672619752802061507027730560366398224857824507171606506768994348265096114809805313801625739764570490821847002088037562046843884187606067635539653146391551990330711080359358625814362475715283878801147590910289634061645765353219769684276529780077850321551325630147816822315038437522123685626262893210517647946004886052580268177479492315287448880688668426202820977842918171350569616607123203141524925961934811985803777344605326990976014718761306746092853076901525638602130782119009912452143358131772686109147751165094520023462259447075980385000201449653012558098022213534823508964995166050615670966846414537661510826377847571850426781491720892323659518541884695437732454631203008268534533131332732621966070542344598690984423599307624263914086738406949308529546548062366270097667724733204444837711415077186484767546033534414374752746401275802771040461826813875139285208084711166939599078585854290925958405482925310415702493080988150342830620311670573961438861282974780304573758301321312504762834621745763709624601057482006074732696421240529159230382347952639070860035302608836206013720199258488102362704293984702058649517074874621989543494238195998159416527607831180573214741483610905404799412981062017327834008397113632921508157977173792246863829936600755457151835423346217763192113091794363439653968778806577838158949922081417064885429798641079312026411864159564788349253676390971739781759676200884001902733523648702618639483738579119688514384977890088441214587086396927875294804025122900612178972495671943513662837235385402640887412677113965039569637757498579606042851389066811025739778090683967434564031276187235177220573419647868154364173396350610178300064180380121546699711127931866802222338743195877008225849665655425461053565237408491541189034835445183910130929715983644033431695343887973864686865514104139980385076668141968192532277174959619395660029936482421415888047070456280042192137550350491867700821423726164042029989223331442955252896121751965645273809378595881062986286430299661004519780750960106956717668088512088215196443932631536832079325692376280352840865984385702306975222181882397750714381391183809822405612795297867421199239671819437411563985550639742700152019888948503156612745178142710152772651679949212401108265265015084266228082307835293525971677847282417324786070738452618290963093643247596084773339978393739864984240063680956656606723890823727969892112900993446179643909937542864685960569551410448899186356968832786562870534801319217082584941782770598586870496601084152748983293102937381302496272103097961820663677757064773575069820616039099512124956261186487631293155924079588937332696601036517633884444427942305169252943757135937697258245797991280747768127163648321283138452370838328942372208140614757610253228364181489938265505273253442223973090827256884729730189771095617928411939875682741443604616992799483834083012788003775938683893454976371461311485684328404276566892825538747550238048437101973348131535756535413088317510604210276616946537176944370320821887665967402189183213861801709329247936552391413810564974609999971986389658418192377441597602681077537985901065367916007496849125679931498913255384938051290249259100342828145083542632475447091159417825016322449754774557657551569599144599317307975927513539146343515093628320327177698737885096336208678556771349525045071401375373542026144847353127112763963006325033311350985779415390360933718449619775251271681102566966640737858129597497148230905775333809230069228671194833340833261653532562099246948616297666402093189806855852190963164054472767057406587631693384498584725547713252558225053125574918695205278122824483754430406287739485033814702362934870673920413328369092810832452099636261692031103741307060320122292285659964750538890801477546075661568321841498409563991950173020774971157025052611434322442540904707122071964533999890695022122189137364068581858091858460625956544587628384409325571307696049485623948312542054474566356060486511249900694229554672234871059575338397560929452077952344389463430269756137936576100908319659271100234249949563102604639418145886720119321864751702765253074240375478132767814519068034965899409266796814503869125668515720542464519263457785971634318812297699482681666967556941007892900216325780657011773561946419748925211576318473294016700290168686738541253628131161119048790776262570602868348285058121336567523320241706085432437381786231748167992068798079183540976684385956275294255456106407139706667360517831798983026404886409410385494628482367289955754169772291529665645035652272942511074055309782134875008755612037863902139044494688201920218093211732163575386800357784644383375447631528579579501141903997836391248132775226728695615201953895660158851708869628309696473904029268604734087219765903807476995777757513684910863388255922182484936734153264721946236016117929560445144474133669966142035180728061250777586381466184855899762524344776726062251569978859583673175377126676220851135360691253562302192579733311943715578797299191971323506940574973253728489616737384249114245510563897184160174543080116473621039657504530729708903410633017188477079720200743562746907986214971981339468809747384280331123298427740693234915392996713108800818736612959892347303121700644990879355192766512016679919499282821459174007294131084486394353835275068625216977965482785915374200892272936885279548814016638918859215416271790679856074613051360512603042019331004570286755294726736809948140816778666482075074877444410261267804264318709971315670618562645964839008643968617602747543299226323699247180520186480050899451023614889587644526981131713359578720907486187455922067641276848006977914148218080701671194555895821062084137298099541340169686720782002781124203384464631052011596217627974322735074912114614433945928101077523973791890899175582115735707355408365825877732575211216672032544058448321657778318720900013830410708866871879958685663151322471056590052912858990852234018730943944943121117894308553866153219878902060047024049022211654634285512503745623755139612928286212948882826536788410104149940667875955485267124824306432945212609264382892825993498512051679537678121334852107907482969222390054762139683712409075156410108596902096740509799337655654729256221941182650684836534956252258071025585074589984416176063615042581902649218386034588106920573548636053615739118431705078767541200520891883899777597202251885336180454902723934893489984054009649198091624200030818349862716713149846947805003742157222436059695197214044068777513672884492778420120466251465401579970502434925817663966903579668322090222809548126899070054833145096580256970383817542384226024488835521858591712712319378823000013260530663352458288298538147054149793171155572541065597561342935021261602168496245266822636657044371348581379379486308846916386095112903459311038048967812983333256771917380255625066118662790177097831580924624900065319609142454962809158488802727835218056469089946053361329463490756687769902472912343561668094308715111906905850834742400719729043270061167592391287891971244334549543913219109374864826075794633305161275790550146815735898127071905296917016180843991001845682390461943125884626599118807282692323472738543923916945814782863860584832005493424553367704257251452060009017652276431372750849349609044855776775507278993480747442858864277808961143533517632468003487493501816262872569409960618306156514129696220408458386386922303047218037767447164598747664395508198233371787447418011668103612012514120904869278095995395609090642009685713979187447212515817437996755161766190839131268039199329047896839368338374962021334983145774341910994755961791808175846363408394199775236279089491535563972217632289108552024093452352357083121243866523990880766840678628605912678533702565852727354241034144302743852828083026649385990416549347669653995749010644890908038527491427097508592020632494196845962605712308677838590719269663400492921550273980179922570972433638183765552966804604024296824470674313582058979610981885575800747603845674098247242785745600573754130735938107737493263117067057380162128746733894006619717586601186866714746040489794131180767487753747297308766233604922814601199757950796038792573203876751717438335139585530259682383597248555788712238950438264879084736512638019424038596719579485497539583980762628019482801039970375117202120311847608274695958548958649328411816627459618318494279668021165027204489259770151615719272682169261395600076022164737943894502899533240799161647036779437327993936245205148318360456363862152546217050320288123538417517578175306048907972337643098779391428726138964724052359388662240046092997851078658291160343589772403237026914065204374502961851119599424392837539882061526550451017148624991645292524462108908013849351177973598766894371047577584239271206841723774970476764518686960143343332784894697691518140156719915000599353985978967408250829994461506514783539299805292600360756074037907876234142516104053030726693165699456887519503553406296250898459407181427497185567750860575661053409228905550105517212886071875994266561759879099855555539769080718001757286458447597775814111936658403495041273152570558394884168074486363817087605275491548916295565936774349846460932918398388474894592140405544478986129561700355952587301541481762063406132670229341960549757631903152396649129336672428504312786715017542051010546075873359198394558581676106239019908206961989933740640261097815112209525441786396443069409792592524560062787518320884798842270558859100768785666717667594879583170613784405517686860555697441975313099902752022751363806985776035306093028791750991110650032748058000230056053032213511320458567679067692841082552305319429329360983478690724801853372355364525190199254214604502994905615377254337141731861885736272904699977520323995446894378550020013252695438890218727329436154144349122315871286251036365760026436262351669944096074603510925531801078830000203067921728141491499269825343451963094693153503946233852815791317324027436157409369022245343720674337707862094523546280266386582027394399250415541598033028297192982348777721256486648339281428126305028262513897990503631180223502955804399418321665751841952352308523595457865009207260968592029771940844343624613760702826571788946936183639786647228154246350541547531349841396173999840692851333203349078557512507009005787651711121369936861706300653949663774041377526637201144704209716981125627319408005823641305054825716190224721774130821243383051840027140534197400051348561942649798096905714062795505969314467438517253341328969810534686769317879737565201004279809050332709465899505122495442619872439385061361853845579685623310883715905562114076395046052210879238416035795839011947981686118572605820887788745821805839200878418183117054169305822263899831527384922296616934490672422888766539044339868262007775704248384285416128251942830209547135367684535208716425897517824060566351875115706105223722253376842947533277663808228025609937422864663165160657260264825006194446083228886608852668646266745545539215154953071494094112751883430475469001883638405109699273491398387508090750091918375020993013619448620886488747554931965050942819960274416499687937478612580944424562440966633626220959010050132925372183244558245411119479711487496373762078415182999924283817281562268004568103896999618717852024762577126363715197573543679237845151726963220913798303153836861944161842087693502524193861487091061000294081780009937149168054133228474811398384114264476107011709893131071316395661360209199814578912242093858377866079871791134753977391173983964002909471565360890001885147819679962466632657376961448751160483838271958467792837336129762886019256296068989139400069501066660844132104301731372009027384812620389094975645373790646189241678971438508919848488167292530823618165294139085452895663792633592282893047346407176083714437155411827063661199451048557734499111497458480094449300841683476990298120254516835486825519422891586120894422681362813267373097742914797088189736428145575518825502569887165119359926663979399503187509127792897547792178595534445842762405385051447568851157620183315688973842284280389150768283840846963666004886239257018354269181183777620771835419247539381064598883895968092300077606410784440957400233802521383657197300995320429418949364856996643174121027464737857569666100842837880115902647713297618456990819561699721638556061144959649328273643064828314021153366788927725723995347576025540107864355004889393925088171136262920199323851975579806482089159691669801565898918419936181212663895753238206579660455695087187167399443974925173398193127731625279256852608842782086680931329950379765808133837275738660238623088624516546959177395965509321287587796443871902167857679118530451390965860382737056737185601005927463642082109733587556657905881659391296780336616880675423838603989557159419305409254256557749916271795463862756826952463703532570165970115328403522331614000955249582355530111529903360653640549976606125874171549402207657475545957885397047263060508899947404858446726965678505979939262879539169796208664166913152540552667465402663651268271354932539068978298972549958764989738995097692538453747006141876245113530273075867395243933660236735909076628383873698352043992233900341991270911334086214391516421500085371492251144056459984968771285221706228319550933853463663407779711083186563258991152375664416275548525596572141746153834739171523652511087433256636228422455824916394075297945225209532973242941932565622915724683973191843877324041090526878097565180316129378879081208363909094350883146514248374218451991444198812567435138505906493008458804169770270844284869104288079427159896301001332473717574861624927391668207907425417222439708114232816068642862508448799096298555782061580057895064573170408977918481861205537057104839184254221306703215885811317532141999157205083016091158729710383366851304044133344745612170687889962876077131231250283283582783901334071380191971610228593479714310359222912693232500941231070702640915819431258550118760819927372620576034019125045779571206465058506031472539723725660910276986535799561425538008874813279009285601054868517120572255617631454525491408671943989764337699351076172531595611083772587283747542078236247955010326020437074527258536238660412889987455623918244664869712211471191452743748812848394082014925235393017444640488080701425429699685227444721176196888343563199086949747834537972081195518944987840129103975576672708760426490100329036982460893543719377648068495469640520095116907533547915398111886159935700402906831610825541200800408537790662729423713783150241796059671210950396598609522471106407319094168549229141696014080030941894843893704193391449995492858179632603767242239008232926019741527691828683400838146686650227212311580679294827685141833739538426804016346704779324939483772499193087675943974173042091848595065818582948893433116947080500239623578520105761611458774086228285311059018205887719390939216899801021637559995207648026026414837840645611496060534991544302457320408425529821568909931667240592109346700043848833838004712482421055649728240790410985926999284213464172177638500030390155715305471805420036624609063005683862487298166958153058179996262819269409311263306414108493372799655930190122834216270759615805496190626486530349368495779427988951364744239713915646600475961601523577652338172489288440694854065377065003340541083151893085053833557686871247485188382386007767747451948311004733771700860851123927732965998840614339352532856381270158339123881040905880033203402145884162175438074500381741320044780098633595778184624768019165527991745792143587221989337703213245202831096620429035281158887119571223487331637300462178469182614275456992871515432131859405620353041882956882552972534943130822655284633894809036325160969545157409122847390452137107030478368544637362477970110003271698108382339517496054300788950933111868200683039799743369719623099689415206322396448551210710008117629378037698427761514360479945906530247596774283141217124183340945004629807701107825138089912569537257130821974397054880808686896456715514139783538372216446116404587204465171531350010275679544478002768913774251082976373965131660702698823736325216938325985980154529731120151268419082068027676238218529109049443983408335694321418168669872239638422320987821517428013461858913383375282473022348502914277117080884524518693210413822060965080898662853010758936094676163967956792757814259321439384036790148374410277176296449597102476730123118585925497382986822746434014144006543045888888591289634049221938075799555100425709572053147042445870864262256227426280751851338163004939829345644238970796354716185432004136451020607163724701340859049377740607323357439139368690968032746831002343032101859856369341268749587405476016736242967740607355360315645441813068358893955640002217225652012001165494010738420151402791401453840347572731710905624319775929466162687454095345276138578272733480996602461778064005677767187503442021594725154502949473418952932865540430908773489440428883564059031185143964869309152721811908696534507749849319281469529818627536138737950900614421904881240667621536618325121433493258452189435989317660308471243018301189870068216448958194819271298953128128014680367969838465077583117325258213788819104747246947135228271522463340483921894344053386230186663689480856332065735716525381349687041552407044698156551630873276413142477483424153943899523433431609025062136985010156410923951384618672333449564375209245402726133029662368069879885870451286299296584277624311203569708192616196356485602607512539158343922945228304920400128370330286038569097385390021468566600928156673708190701531429148521373902435862991214989192663500410258030879256980223202268340402319475998826823747108255338468841043852190758698574328772900859080216374100599890804896386614267076764400036888387508101895167929096858180903099530832246333037146341237761729898545398046175712997593242602773638881190630428339468616603141104439992111088676949302839334228717743007954135798725682099004385774776297812701877206483376481074887384619492733210531275401597504435286199157552011554612433216496352453467256580099231721622767338139349698849969457169738917977248713063399684944574010969645119374764179649835775907161710138985582316324995159226291642841783287184057805717331073116847814960234180293005806386670467107247856425303673272946434510585225635823364388794860491144507670024829949272453172448154836903832717781386122615127395202461878604399068885338441908290215681230957291509424244402346542135369342455118572068325981354279894678576356550664612022732646810641214386019177678650389989516506842740265336066186661174919581714643923056602296512486416571760876062240154366357126671247307329553806887715182329693151100459665986927317351035555977387048833267869021279290593666121153573246795555954284129536448575628502711262023297826375143301939071284938295666229509780299806825004629405665104834117196711570023452354841250334446173561925203536769518857170657519330976985744657185362302241873877017299305921484695759881354117306252597899143651864496862183638004660025249876718725856769269345445043616894426382111067156867843207947279043236145513366586241734802102036897237124718404671804334695125665831262311699547975410085558908252312693443837140603229456382507190354532129011896589726142691893649172068645450065910553444987971407080100096742609854087588017923846515761522958177614134682761175231342782070670547924641945877398946213621911527026276911481622257838963458145150006640769973998704314425632553336888534926926642906703799624394774922763488658718481503960082629775156581430684050981026315887991028470538377927257145012035192774540878967724938459059675372040427936772788766051341225015831714722034668202240255575334584390853727312998845101005703871843378958190519914973881422911930995827647994843964365016533447800091394116516970196894002673946280830152145210389872201131781705038030261861239155627448130421869345159186074341479675810775618458402152075801941796599364172093096987134912425406922997177327712357582880891763501917639202400626668066946777257010537366355626541081379917405299949018008996999435908783434686417043814715053204667723890020048235439968561537720094810428819167969051391811261451123932538210734472363516622334992355689324125757886750013950279222768552639540530101068380165399011146185468432266197241179505892225990717187142948659777691721003142385525156312044649291819423883084611298783816404739400963949029940531091341532148207165591418539604643650670599717276701133985817722161003230140919561112480674399643185357789455364959173575611163806929381242994406028459342093993211144671341215021089043946496268857072296037000767811639062805108769828462441324555554602549805636830346632350654631931924017500955944233685566255120165022877344988426760573113688963304057247192246200032168131608643152758548293168306934446627736310503431835320919759090093509968948047159598135620789266290507799701699999802344535446688321315972336937384189682188109948436441415082564334342418845758809182274183117219793434156890717688562427161799130022315009800338835532900096962762896236007705343299849113746355354177539085071030909784846941954677110427761875049858850795264575055830685747658000863639098458981849103275724845615827937522865240276440057475835123842020306039963913724450879103130724236814404188384009464112000229666740061664428141418292146600654999561227736556942898884536141460915213844595083511294877429823482400607816042573688003039877452570177164228912799161352141193297511648454364142154803802003076537790669100478528433052571362710311411046362832030006790240444372311334119380619765924385267974534861870197215396293875335458481086856895041973390097363860979557770272268681732874404560042772703958358223573303932511999827710380919351885549236980205427809635025167609035335222655299614183814247310095199526961406995816101324463957964869936014754768351750272727953411132394072220981291162173404412003157808087299033004730948416020583872361566016148172860040998633301770212960501107376593645477481066450345426416558215273803279270895460405378582715910005854929476221181659161379316967619629191640549283459003723576203473771916976460625965678644473593117707842006968939862575864000445763933890926606212858489058239931533836737229925448227372010324497050003740372884382157801634005607517178894188923615520416310386118430270694856070475570566381078963346141796596625497441656324082204549731782596435028022784485780873904796616194622493594422538847788298068010732238856178023729461237445934981661161171959414118621421860523156811528120690281790536901069841294135507571715891888760557974598758640283376609339321890107080766764323074319752732621128844959625458849878681535374245127934421297584190582425297774843744759125005840955521961557803952207756348661559629366273871451273916419469582707434680316167011131769817900491293940162227176709341368167610890977936344585919626350794405768317731779384245855627824604681262108508057554199776615710084188240319021439732560956603509787673361784159620145846505177849447193119704304284959173974678814298289926115436355856152268931243365352601987359013041373214612320601920965099487572376836833163459149275691675769819479335369773109538683768057711301006867564459169016483232295709756930810439712349432678909719790810935635675099359340325498111465536640638846098772241211652409052348270453811289196665839465647069575004942628438579887502591838773728828871891906790917721668612641037086846088354752258849951138133969358107226998296233769579971006545706340578121914823917509302184057038201082960724478857482245997787156407511423792939891457550373187724169123212045482162362975276620609106788487834024453151855228060738312680062554651498310712573706045109032322614652990310354834531727229727884923425515886262536850543580711228298634293118527482402355983648863743958196544665411142584741854168376331460522013135534322671349373640270454933608617737845442188570168926312600138072621914817823303161417402096799698623972364898227289061002456112595684696105469950729446217941104845678414559165147353340416189834693435370117028792120498483359786152581266912422048489934805414358501694105846159224790090512155298718592561341128901704996665199430618191974411485450006552645015183094069620881955710428180134690791747910624595350928969287641430162937606128739328361769827129894875947464686320164129290569546251931578457007770421550937788452801311720272481823022050358587402596189795370400002159285230888736456481728463212446732287951738827502212820008575564739302718435540608084303937904319119648620409831338353967736442759111900081301751161645327636956643561037617338180278430681017373697721951844373605930170756658991504317885005010525792404339202448549702450367993051401523462594737669363279019260895264879779372473574374588089936463921676372720021515747221982029270128056612304360509745582167717849303406521879085962219503503639471721317741364189168637501006860128592315847954854901440623751722999416573925539091905242465833435673057820973217509557309643443863328783182133017938046644810124669560764170836804617766512270329743188599059255322003390870440110300311832559112329372099488057000759435011380191784850860295743941278332807959965944689455542955504302954630638641288143671615265553405492926826541341291664576602601458152155402607391854098069685203115344386789856124087575791057357038835122171852439893356040371254907249532134941987398023597567297931171131521127469902347123945314696121389048009528284303859227572648038839332995759949690737833080509889714356143378176188999286891120044118314915666198676029560093060648190513630685140426420418152401477865265326779622674482424174341113697497459939756279317646996771686619446229572196378226120635745132592436417207298023678237674414237787285951315905961071065970681490238412215365819577972545486323710966211680910065994391077715368652547812300669581241336131388840604230625162094620681936339061871213295480681246510365729368213857789244316362639093974342864170607729898978775444949225378538665876194455325772150005956663261263268422534580797975276232563272762103439080412700174983424113984354230362477553943808431880108076149632301393089090067327993380567451142201201354735742355491589146450304776714377794318863212052390644120574705033274874262445275390287446823849076792279016446417899742862888547382782322469247232981904318164388242157060944248453851637378016103663567624597451013753363155027586085142624599123826878918575004172531509054922385533454470826383501916892140026379701936594503506053871316519414088185334172716695545804044965437841334207222088202305846678011077825143206752016836299408235816250853956402379244152291414297000004198021630872643403225189219182071961718033539357702207737063039891244469869234538654001975697745284897571642705932815496988963050494057582388072777543519466058716621276922495112053996305305946593195821521907992904474066540417265365003378283071087722452212401775756276934979555319144486844198263841721207217403847451047457088780711014691746825906407396746071388147458955471406233462217873892466552405737920656601144916308824788182166058337812034139042151483728616156419998627951011671766805528340394951449720415133137077790650324570261693054198732075500757412281743508668382585399284231149567723840019101029373046764350071814285142543016014369410991317588820277068890313896520653730762834932235637866803889036746965769518215964967742819873971109115949944554915518068962209487571163565653807459864995367576507662444846980826550699641323826198231595323947874361801511290707212872393492112566372671066443557680542397802286634946629589322010210021470189758192110401678565592469344490503010934622096463738754383297728285947150541527604211348252745231126544153175215786817998500153781396632460078276937096997743437417423937999910704912082776148021562154594803950926334735750808312545089753977422136556308774344369022699612532012035795489138639464714298203952979574378673493869573332295407452555997737660628152135842621904668486694779442164307252897404861576331735313116046117099906816427656332792963418417441884309158305988894779076983688567796838931570899270495979294760555459551223579355864252723045395506142672478522397846367616728405544000987071836574803908757371144616787109864042354764819941794563668000831854174399214390932833482814214344496483189873033887103592233529400785863417318938309212551821413264861535918344512308409959448820553236116953712357360761137257012333125580480636549813185944887728661724925117061306395354108871559966498952763640871282232342501920033885450544974278367540125930070921795389179553595245629022474002730997402056260431577655983514084106273372897874573898546331694163137665042961178213860412407172571239977080045823477962830189917336843127416010739140091291296363324112062109886931635989275305529365050911955363644919024947187149201831486773166252704657622551612969691382955058688205261139438307772294549134688677706496231066168619197205754725779089253026346871037930064987122169390668924015952588993570215891006917500674253077773146257366685710716882026538684263882680138221930474590542636822461792042029435517512151554593820243110407157099345945719864952468120681106419107126054246245182037941753052556140724917096472453485615045016852845244466365791831300169768421363855915155920269724343577147120401551756192741919409935966233781181298765114493445988600480550063754211609792340664614052491057575556119129497310750823172939599939787078356031666509823250302092780115001866986995667445549805779717510673806019861634588630911002843505043213861302849328090982776094488696617652777262356690826474597339145069211901067882977422328860332969980436857045111106100933506545744187446189418552063835080853314068762846930062257050678965890281555265105983983668796314120468040369771185723438486391364718220705382278564553265404818741458525786491443777981954708216201477195866977170344728487495121855836003035962329613654572816739419381231099008269128432992783199045257219814976360590171530095286984039225445927229770091797536074643896566450300870632383542423669554769793227677258734517928686247723620368878473939190493953330981213139319977758762455227560192731473862812522147939507885238193780728599050882454220727857871613628412669631507758173457761142223678065164038378712182450868308970790454717188076476919836433804513065868669387986214207378341428388051069726800259157113056775726127792556153728284669135852356862729216351413067931109531644766830171509428663795979703479667616925894548063987171921129876269298001528513430985704954760309978805876850078386417507597806438334796538596800571006069216284803064303026818385062062443743516311716097944797094456808194588837908292461567366094565695544295825286931683649692915643482080065860016768148847564498003351148772391492349518255386653097096617215662575855309098121680365270080493915955246251690571480348071372409226458297458349914528129421240545840720105472905331454311818970320928363200225480198941776988971979287566427419303569455015753828062872847184530410899352055940288595273188964910056671842420673504100365604716619205185472312465303070116402931836876688323074907531766318588819225014610125849619295959523989427026507679559213480622766194416651876295275339046049164266241697140883162004487806466179482185858101323825024428896165752109542184643995404186427331046618160658375160422806598404612697348018115635643087181952078861562599269278260019073251766297346166706906192174857041096562143362279730319989826678282215893299931729068959115839782652081570865205436874241253071423321737691774762235873092174880377535498441609145117664546508552997051985136949759218084672596858667421076071664082948554485909472639016097089671639461444708006414417876473335210175211350331756652358150422149305881458349875887122491541328633692215939332870314126464207173543649979492993647232992521684044235092328464070467989649069026114891926110397245470200042864011511341148732285302142186668097153562127806712296254630865656779376775393413153476768183557410756339513962211088292595689179471692199434337936653327278436838417446766539814490143542545125658877206276229436666586356552497312703244921779027832115958292225243845318410505659275594884294956370416314817576210638057507889017797185926139525936859876180128065161692239649867686507434938700525305446822387915221123936159102770704122466488963957982767662720399008208372209261745989523593106004034565334039564855261450507130539935387783983167144877602492852713231762473609503592788037578536566948958185799504198783151465337454349044794280653394236426444958852111311818654315344751618832045019250974482479713711549777014174535343050745708903097961094023258843463782510974138312966904651848290360873747652977355454845884952343681673709129696168460007920261081822297934665151541601199205613042592181088992756554020174390639809264194588913219995126175813727312016487815603171870031984629087454131328095138519329779767693910554800144201034233440247590667084156858366422298614497081246172361726220478662419960941605237384763296927740441485199454456322698561571817122444007085574485193166263274794963288404421417071851094390384586475675597774086291171752218383024336768877356770048636855271711957204848787895126551277163144383170103085688502616496194292253232964417068536215848360650904423641942748779001991970895710458087351669805500174552096534995445325295669469557300274020674125647013120762415949278638628761010913824340696717303205639420992586945913469399371797404641553746620836756953978561095767270653696091008777649496721744339412688687817635929415312249199439728835571786522084818236442879268229051323964744885453008959862578831653281143525246165430798548265399015777321766732207467567549609366006085109424802664551965764743704586317845381840304567243895158590288583222304542676859760452460157027566439330357687452766550791478760723204504968876669856628637932798526543796772802055181450986597675239921483942913468224503257453758512378684706018938800431076782534797388004117789224161696631017938958119669433741722376989947498084364416930025869986519371320150833996513967636118273767299071032957973373405505429930139989671370039820664454057584414446326921372846991899636531278148365044573704459254829538990554895557292109200193371111386582824577854679472923289715215660128714087819497111364147173303559824377608335613720150789922235889335928259601933032047129134374208345833522690025319230625873656540838083002572516409507677257199246763419898123859858894587143142738310893931718053108770599822808641079931277752435858145844689972238675426496378670575499896544780232893939730344756350797789842071968915686084655106268746543566808012678461322583205490489733988379987380674821188102502118996826720067831292120742523064820789953152038494208941636975315267280115833900317625684310292414489892646911185049342620884948647741277385327095228920154056418806068984801698468307919437013492749922672091981768928960764469287676900924633673014472051805583404713603821018146275830834250238705722706173913661704608647302298368353980509067910409754957021069422279063799235186999979155915443207276151277757699184257736800669508095707451033373501146037449228994111737575964749256837939947273915467457206477269522065944185094000267488205161569019956443956372332714162800938229100983376807438103871339550297789940977504897837289787969604101803567759448485601182979081386450757304610204378527497653221504523312201728759328122404608520872925860117331729054553852747195139132705637046116884486903079478700445326234701501024786838805335039513886914334429102983419408172514705028926403470848008984352808965450296976358011155462285302857630994569629931750745459280122744154876908807620621944346096975053202968657556494134388403161043114948124680717044523566869121412732905724790261671547437725657590007552384102374184717351621235063262497159927409374153444716010276649113786198705244357462285558965703988985009755488280437001576867036154896072467949685389315930988359529850999636851433594149760327254201945932368064768996166910133538993664830911603905604286657275494402706702056834427877363961473157033190405359952636135599311266798170143151219919877046491461739768639998624518183250481812799549401306000582716074184763985744409708449823864560264565587367531100312021526825911483601452868761956755342358963503909663472998029105169682230904869365125338598070537212589802455897337914297813109069284779994740399271729084991371486206929198004335441509348004490453781843942612776505665460671167777452592824950774492201446140175559954384363202921968615049622337039300109680942675223541338403836054405703545126138983703816979270965201091129775444494865125796049825578236750035344348600656559662745113339283414231335423487966129721903056429675863319177235230030175261124091591170621886683159903958401993931315747672871646001388773571318584958567694202296402237301374642956348698796047281201799362770282034393920007507460462350607993557515046711943756631549681669866630190436496722079940336487232301436623091087547360848547072619386843354218658647174040856286281368484447014618147564460947963210694377451745577333484971871716293510286030812572755364114840678394138609471480376741016124413497956571639969782345831456063159900555402432550362198075808732314461317830400524671158929993099580996859152749194249587761281258679078237869315941388428171118601670738743573999768467187790853780215712244483161021863378782919896319431019644201398290379662168032108771916520113176304101290650861098660807949441732682223590224853876369875327977661866204350822171574282417916063713252831598890472068521164693025208968311154844531834383673423127998516679989932168579119724270064933990507514916475629947412570008552159611351715438189993281359645344319156633596266720501019525411117836096745734331532752361482433954703478543062064517129884773134997406250069580062463595642508133877335767014616026523458605068959644215875280201984706777440261587437815294654263808117317229973035276113308162229198759114100707017827008443995251840859878567018521516633721498711641743778853139351778482099631527288163283986814139280450648772697335465134674392413081492620000977684674511524434180111769798216157936919007681284795833982463038677413918743071923445237929240150312875192276050121840950206744894006305947775383007834411532071514274260646141199191967164186199718528370157578595524420200465085093008592495027333795198741704792558834845088657171397404710728764752478275844514471612744720705242654898702635413485279425656958758384548791594536304020572523511485273651838609164990017685388226852836161540395661143844848945371452092674566536152023817637360482863579029886609969406108383055812479951649775769749837990721692792777751602264139778042141078758778370274072798120759675226598874947248676819428191305287907328130708495926424547958475283302599925817875700027958937655426816745689915782425194019433366324621926218477302141138768511500911820534229110594567980391206095496434756863743593708315431639888675741156971435036069484223909419858361448704729844859678990384404965227094259275587600401339243193959556043200916261695512086237538756569134718996778624420412153543004669452424863438113703709588117602367423059432586287328984131907520403891387631611059239443506148305273602042448008061866832510323528701269230021003103535101014526478871290756410508748772680882378759079595143476556186118593507164283502070130457862433201207798757253870713329777168880143308938476138782700553447055044548624062337316982148550312589852713563053953102962948874027652112263569315930074249759547644902032094255162875150421596001229139347392575052247237404255093764149267071343841573926698510283863043311600404991148437436456767200883615287480710417011689396029619137053499149073982969976680457887797815125595445991210503263706239627880184827581736297836401595760986504379964690699614990531299519574381557593596881153595410814762944117558792608506950879058319890773474159921775022002240787081192056487244112837308081881828807397632682093938515325628973217834105795180760342536690434398660078155144922325506626803773955943476873998846566498956885428830949370192950284303415099781482007161381133328466960414375723067765017075003240673390836812234806384090717074762039852822592397671640659633257247631702855182642658537090064008382394348935980408903956031480586588124539310323568627959135736287698943745943722899461267181542684804818185614442056760637300822648901644587638437786720680074336268122958480755798850674494956307998286267200794739297853158002412819181085264052765746773081962013294039632912239917480845126813733032761634200117853143996591693491726156790587835834011097707424748318732717967162586272633864250929599350001084226976527269577569082817868272954602141335927048133435681416156087840677052192072345914207532580436780207905021689855235014073924569968548274328795822203586393350349509232113419946199457075603624542805747086353218360548291233609505062562797061910845230851881348901889402548831782617228874543102904700660814402791073239885684898676147851595937408002228960527688095554209865113150065374057451318105470418925119914204539235852562416999255322064079414829040949353567086941142084448252794280657479425715527656850431740394123225375332685206002186376474757623587204808353597567079962129753906579212574212523862234855370585810809691639550790122765636569996160810945470969325838503785820916853394851190595272964208116652987929975638113084531842734131918852233293011144300737012352530943491668449522582742577579650482275197007650320936548184120928033191214293336912158527871136384670452427352100538197751420882363655376915678678924653732792515011041341233397645220975174306972670692452166698963356198834539623962576042202526311502816095716579303939551728151602725163325117686857589446371037837849106281227628796957123865516789177177622736250985502423366665714597390155749032624413495490796853183045913730223306285136984262999722607502344456276260532601864713771764386135582240536970883038179119497788363490611682519278119547714084677125047428964323621096097579473008804360766863499358121520587477106606767570171613207751552695063429202552030894516050453462581862518983081908827617670633243327479720004851633567789574298569963043111164081552295813939297836148615064382402685974836242772331605646666244040371825527919318402246663907832359730253125105783019325916592142540026124176299358339409935301104217882053735959542939262887366520689668758723633132662978177442274211618901677901033091090061079701577579676146734865902359065165279407379973563260011957935099333127707917888458176730775811971939295687854845032018526729901718401330607027985589736936585998908920877297011838508232519846986582810066121861743080446555426606944959451306778929303828899173269488298328826809409239397822919923189100702033987014457136657660140009881187990190894526192291911791987412461041472852365664930246682438689589371797158122515339411504740245500065983519380283889523044821828297954507424585472756920666339710896388734051035584539459399556711208545960755851659278667718427077461380177600047879298483337411278672062000418611457394140978734595449119273730480157863751304135804869467145203775154629830163681365938088888381653801570292343153248293376985737507994303654253411416735009530350823724786415554900600993779254082777324540432155152932731143548651050001314415281275461724133602227463903462926636553952776046788224754606078509877022570931621119875185368291497282998871297090302572686104395275094566581561276966195006322590400999095902593826190028143963673165733524206616516268246854923090646738374932058990806148206425195671368133568693253914430971898089004477094933698733527181858957491368220783488375615841982492293945441991136075171219383806883134171265253237969060130309986077634247002607509434177407327068006799688719828080671126228398054109522097453907591244215315613440285807565363776528096402154876072027906593569053843245786738542334587220090063916470791612514075320991096846834845102461237606081891069414911795645188899277818977025454392995833297247554295010233156695837695784129466784725581551327538192795143548899365525674359114728593861652133596378870623137387941599348962427025148949457467835044541417793374972785878834428956179494511254044166311343797616096943389265642341534569233985249184188922519948413925151364281585587544566661725542704969794393367514755714425041695970160147283764718772948098168620788745146304787988887546182426743339652317715559951109508902386581861680606491986331086422563453221564282590519325685243449488859281353399993286102294794105403816028866760092135440664834415015406638619785013595514100254236409958743329831394834616589185993107811644535731640138953963758135408506650567458067165946285113142808744513464243134563905423715161073202387284975930388061772031613036985992822097804265869697540694080620403457614526170066322830269090184057261775075935836811522168839957426283109089504090064325801093242143760172476216658952039247453643630336994259332018711254214652982677140017588924972430341307220328643870869506991898363838603584910532203673471059681479077361287930013643615488133412986617017262435271861955952808267154563460886546820231669861158121479540724480945352535613939194285728542690307882928667558449336454214433690028742512055683041953223810277383211798897456336646685929907255269911774650216872701194154386177698009280492825022261725666366549331591102248466736119799952396451890683681619153234450994108790888426543497693350013658328114472819684690552540476184182255850486259711808909174822583120080993915546567667907094282936088897660991070410647916461979390691928547443404067616581013195421081637910266700890174831286366385539011429774455348134594103726603016320212036296026377214840816382391513302849448627484654590478987970274051752729679486867156849419044114529130568278206022416949291728668414454662711162413536211605042808889400434382272589091507711587546087052419359143314178498304103570508182207435240761906637501753775281238592045617742244020115207239710856088227084490115901694707903590723210364118772951359419368187197064759421278559029225016148587276431287750481847651767082785907799412311986190239598701926406310215265038793326885875252866611019856339487875531825185776856045033782686752205783430790546749899984880651337608278458164071102421157959290266849133232223264047991298843685008815513562975398190071897589317424623479762877282224343267267361065210592969038644355757629209772222009582333028053443939971158772498425907233227777773077670334288107057506282061882343290632223540249621882493274409530763635684138856441107476546014392114659053273258624861879204768592094740765579351973250344294360490498983140230500490733370221580579029411443632869440691713229246031544111281788705686114666024459548489448221723370730780655950684392060201285676805166461929842292076832490496356998922422853031717267003065612323948557548103978840379160637662568422221559144000905970104141016503876593391666104127428448158533857378552995245903867335042916622868464368352594333255941522581010261294905615164601327060569319410655184143855987796962254376214126295513141284537412454951114182104126735225224145471532892197792834136520614451511236733411888173393794598172610904148689128199685985087136559152947988445507127494265218809310932050164177146001152447851730532794512565605089551678518000452799864487872675376767026650251248133677309322684953417078867109770892205103294988320070693020950169802864541494418256853388948144404312435124315859324816764849678291836317579600612952692464287173736398792855669508260728162492860413950287122851090096499361150611349123620638419767341194753932317630703610241219410606171112381417985233876099559350054044998160151234776628117875083634786351099862247803230463796744424394427526939467690627462303888687343381161724500509066264516529484046948911669598325290375910485181338723241690915779252157112925715768017466290271656789390371863196218674595294381548233141160015478998917154698830616177503103816711363077789238821346459882840418872409891837374194459406315114863798726513400681555584977827579623610188461005302503285616704384031575241889892801482743921071161863249629514944966835788705395158631823757598121331653819473428393648426832131705966135337951389306009500672695474356525505762992392193050248429615683917942076637509622663806219354156022272814776308990552870990857290163922002775744902915013358271459133161828443596007531898941727489756104754237724802862013661101359165172324011226157441209726336267564827323448269419626889192216038839424006926960154205023897749827712928353973391847960724551769040897929865928095109998476584659902162478974746148195717541243324701227012092582778886688068704977798853274094152406705417465548535853622013488219548287424643514007501115529205607484027317371274390340709996448020331684538690495951573672035360877227634514929521409366757191815139294611677106480793427005393133072506760388996198095340108137908749818837894724220548999430376921219592444801593847232991338652495022058098636971116320300571752539483135286274794412895260677733752203920267073875762812900086375418649504087065177328534228303981988488080512256934197267482822723966275653438038730549054066943138783358636133098272589839597305717224305292828072843797644280428708049804331580334827483277857428670533974294226400273486204057788787524455805603524196130421614515932065300030150502098551124282410686248418519108495564530407547989449468456577085537225791057769810789489736667948512534950661352455484460135725607099653699012460916145934819778821448548576763932404459920778318896375148991506043320995384918132545713686557708498802196767234181113391210195808929582187389175150447704099514452922170212547694170025945553902308925062450972703290402342899497328969169339840256094535054068262239207763201260486697589264418983504573399187957358231392800419885856132737736780218482995374102635800340382259712427346351460889020796788889621283606826996725221732741727112081759044119535998381520396465424834523141222341286985918276538036011267547983415089455941643503499263243340526390557093140124548810935798306270227121143186495629860460060416979282386226379948818134500892076161975116168260720369178270093979711623851492355146868482426017105055197249356548776484693312785821571383051722972731324047877440225469207200941358547017762054074869164320454941552938091675874470920873391770640504003859750406987621592060052496840024473547779043220781208012596707596585798710718693086009003641975372642393838781963172021497834837482993370839436383810122631409529296533609759733649095922945985883413659835621031171458584417786373237944357373187622108244167940597906094104274884790159937985096539237338536158874162105652082694532099815358061008510738909847856801645463568501393995616066325717256077601760924497404869811874080539682253754159620069998754524989331350065171939586541357865280401917384732792090676027249815837304751680104823298171932515495021410795523694017801565161176513257928673501416177749838090780136955385001378423230081831038145798695872362294304751279736248488769260830202726487491523888838094799080354820699431430173873005160815794620277899579788343075498704543652809298432579397082618832308054313878768746049975612251705293229406656149406720685638968611798776819071817034722959819130415218004910300581171970519688535047672925047459748214510066062885129969690575156695785471244761243718390037410995268192607282904515523176354172774341594431007953280200139293950269721027366904691195790480434805215624986487604924454002614893857590390656975074443541538514341368181161591179077252499417575512890568165392810394146991356811210097099131683213701609057295598273604671866070659073900245811090306265932754532114963485138954593500143229463184577401843997052259781390423616560777632384726881363031063923917516869621624262190580772640444900972837395049786022854008539452892978413952226134249265078014948488270574586048351311940777129271745334865800383359210330751416862168565317512987325978945911811102451928366052207876646131775033031336776742978731018479564467600623558522841048946650473329220958055937019398363115021026060726437605130232007370066492045686696969425163713851659961404605024844712721929850490699784723167938213396042390953937117925396447111914460708868192418516188243320556505304886460945566437709056491254350644864461345438345518003154557631865656058352263189951158411314370414317464713248681667455535219933252296296872797536587697386736264466253697531211100700059510554356461806926192274344413082208584112018589434820171366570845059054323829604744484203544960593490023138328692090428402888580499664869080874722120243305794451123933455298423605347446842768712168285034489601739586091866244623364997596706068216566916803730124339696595084083067872412974935260984267939251010338181675098938440307665218844307528356419476070178072153953279256390557604618674489892529849807224853035339459053586811828988190527422639792482492648636726660925470401882741403284340171399898088834636901950158507674946106517772524785279932407387029021571759278892599991258182487302897231125607416544386405528252313207495727790219090027802031686116009650785438786788411975951531114495132182077405576301711313790916165550600264624992511743255190087716176155342520309162194471931613025535321911976861047535998024648746839442718374924954269913864271285425402514313486571287844212660396981910064035879373130938298029281019212490104466396434935017295571388152933587606868832943530666652020866736548003356275267232116222576091059908308290768320508103083631265150500006769893570966622566154919865313357889071815901865832534626099835081619961770887443669677492771952994344692167032160984056264185172934695142322265366610085343689178048543697835599652578432019450475489570354513287623206195787369837918039456849644148248072802779679739595913329673071928083894280920968379091776231232322952761986589141402320782141281144673270263393772056467863803391672351574424779849763142464267470599487375653816826709829112781272255386586917924313256146256526979551706669604760031327043831120754866099964854990227733843016845831920637826830812208432581435812960583797312976450079193182561319129262382980713563461918849834897451376965535703069781471156522443097836044101873692973287979577229564990521888345422623072683497716864176263859112370701592135354904300425966028073489947846851461540524240207948639167954430640333214659397667166323116138414830597403282789341639813967591603845810819390654349376846512554438943826011967470760888672850333476864415276942330769442965545990702769491275959497291921653080671607036871780010750128437749303654852094067058221189201023695828811185765484269599891489947797322523518159076502055586561298384285879402299423065229899914228261988158613921910271894104706906795691098319246416572512961521346535364574408224582809506713880418712813460761351363142662643029394852877251136738086576004387479109590763210755331920328613772234022516397812626012637854762695478024617583558191018364451371083851064053344322325094407959347660910681205502638087469706485967996887180604992043175380608573655289073915192302592438646208237242765455692455706592550690339223896227734007371399969209229900980040448324148103499430597357871562931474821977924607889756261747364231613750854347987024276307030683005992697487729541453630387431924877489395669483191157305618943640984674362683519507002116088036833744308000507374202336641394638352799572832108508860169678471898053102415576346597542748732137805741451186352225088163790213568348644590845005157261922316578628930028671914498126169539605609290201445825753177585873894549191947069848697414350709235233022947062962828444432179942145792266877377645212271474554049026726699604308484086559635141237777678820804096099150487251940280048140371622556407351106299211337135989691046472021159683921435196083166158376395433734613180205026853244159799488017867910402081447710883221950126922783970422805175859857784034889799341588504318395339834703669581761287344611949380082962296077259654147848322826817305409649090757774723756768787035268892202423863048126224927829894291419301980448086997688734354022253897893680839816805835605646460231939767744984972090032509550472942469902906837425795257689040647933570801601266810697375073939649566845373516211957710575790239782241900878489593148043455387624714085142622035051598087957302019434082922066096545983378840778377313397331369400141641039173672526175474249983310652221420211082751532182550153768478777898596912339621274665069531391470903112651788501957067078361567388509808706912481781658350438868785748397000557273925613548082899565414017301307461125555552259129441486000079671377846915529945125492237072753167352085442996253289887591896729399763261009709869264834471529927364113376939891376348923377403912652883939925692823125124935821078802350331368843658368420022789606037935048180081254074803024247866452321787999387919894671732574909324677049303869694288155145225165922093847462449472795851265292656780398146785178141596411317346257353567069096072832186139878816818546635616590061993233862852920988671315926999577576284572852945158825986615307075244213675320460196953588807223979620350612501163010874104088120256129845759447895886849982022428705159303440957749396167632295084638698042252910541147712932272332064037203480333825109440550026836484803613982918371340828573964312149505907175425978161920613089656636459199047268895783369681150368108529498029574015293812079797383259300385232261827011826937893748537607623074396069886578005730155368749264411106575658962985339330027810837211249500821499337173070907511354840242528368957627892331266354562508026858990343164428486431950441456557803708128163378173893647980152038057582812688185197636664909611726013622307831288574397790523616328197290367591798594845818694755982705224585717556736156027996144061139520686131048053050697044737674043944287531765257857304405180799239403681356610807413630054538222622383136848001777397059723282250192063422824791255221792609452079423188924471192822385658287224612782201358675881224205037893539225207191662030116253960823457892205328909302562460076950076232724488390976822683326235953912554236899590284218922572733207530255233816914050992897552593641822763766192746473481608179863636787584586651714509850257769893747551384553354268240151174791120967736580747427963072789271086790629892111746438764239246609873152637121553471035631988166982527075698558265308877662039963460366773664462039779716251868434916487550933705274979121840836476503715648693951287527289263829949116741919359347452508064693933815493921298281402998800945820370749191321708152724160045459826918192220513778050887731972051296203634659205573796554066886585886898988819540832949143183752432589278503474217247958845305389698664254537337529749005741494412066981039968842361301199937507197018256638238067327266283496903856673079253370447878150223434811782766642585217635611752003577791455535451489255429645317176058699460022566488236071297476179980324766734438704646665397270279140639549320195182531047600333897965962791701355553336639540622491007340363654882944642517476340791050643263274771034648598951998658009446047466433461556088900312757277264758189524367582691833545964175679314267650847859771769907816669870532984514986721584589061101082993611183510477835472905419696768155795828422438296502578960086608554854871966760975574272763275805653507205771063025285255998349319304410871373083916942094728893590409009633031009580625210322899585254489174668357946493030527943450458110536280274392681532720316999310781674657004856481664873859878976790904031595315008050251515660871084106675501879992271910301227368358699218253418470829804974366435789403261911663740397376951745568799766526424677527561866332540901253386778783860350067848753058302352970004874833401849348640345521342561499159410446266113734605913554371486333939550385956404589938864547625400783993250427616029137770829352814770511869174750500347935767555344478247994519106511657961218639908314305235293287410339612239627627750899336693510414806695046259712492361847900757684213834141671976256283172930551379844757178518926620158193162817546789611835835651612080574833472851400401822510873341051388690445005964543183765958162267895989473215842850307627904911999654854327992007607213087514219878372612920612407312645962200662323392567687010899605028832344125553846861145604208839830652453401649412155319211338604344034537739280787464405901237496393209326453055688545987689988999641206961128542130927564764429224441152329056996992160217524632113840842764194488187058440873627814011572534963334688634627940866080860597764209498823234135466939801978509845036523506679222797203706139124215210203588685201280695445983745595947498645459552723474693251841439717782657766837299774736620480083528285633311196292948779928637793333615737705524580359506282320227091916863456244447650281326730600651192990153432851340537422609795154189371580820845548332330286745872292679794546426385880109217029193875402652736026797262461425569393038942701267223163789043892334860788340776044710755050900176538744777671692336757316400523925172935521022871740483485337766277401797294524724380481693022787347678425785531601000604646957338998958077160397880691183855417417296494115508567161070320469286132860195667438973425060160266801070832132676672258729571741166349946086152574387391756872145286390520486362334371220051113291935219000785901151702592637061954712220220999664573568660768698243733575180297057620613224358089080250755889693919943198773058794874855100654095815964810978354183037884052447758156571436795642801379134965445498812062127693537572171636834849190058213445671873473247112716620673316621635396686502854119263335449932644077337417927402752108195535223414630227957483901970193688531931692706013080006711137201730746321742623015143683905276518346343672740835446148932929361683884915805288103133574552462224562831592211674299526246526684335380627964987550291168363634857287351068212601077791653853585580257122796444635667142846565889699954972809547660159241549533535038035475487236334974338232630290229946694072363503376260537074549393950579572325833328133477004203867676184597559788657366476362263170936662221847119180657197891782223016955792357538461901303541694405991394857141771573651137930144809581234116169983909299237244478040646135913320589494563216922118428942064477990979114360208945748725484627057462767409189501288236925552377852083869893015758684732496601659883883608809950087309508731002951221295967988867363043661103189109900175478809818786208688418308091563744868312347426070282000307706790875054304188439730575406475891114001319302211488835222668639923983349932123193573473053864861732918609614549462117318405184979309066582627651520476283182695166311374926018109056245350721279363879050572011413136930291785266867961008136984150254565918929547526299409615188280323748990391362714803998354371435442865136172993557704907097119413957262922575241951720745605127033722412465973723948154928727721111495041556803098695980230568609627989534714157185251546298751371390012292820814525167752569037797297845334710458488898859373263237850370575995117224623196760162615792634229584490991973033038199078947349003051838418990011719831347549227160219105361048914731945754514075784830529884801369321386398554065267662727755173842725544651498273581748932608677786804926457701774062725754826808479214898091269028875468118208877768713533374088763063394799810712513941012804450791189059428031543522658980219464070831661056966852616837918606255816792224774365304093182169018410858354789491974985250114307826010024506303228614152905638396462939514097166456109270410713307781413849359195660461897894810527218411291419105112157223248947587814085805090701568772294181512532447700756504924998704047323820942673748184798707592977471851814878810570315407674633934090368186519390256324297208328395065052284407747277981684627532383979025591836055151995008228078914827293129736182545047845716649404569895052721062188638815787070003185389016482939274091369144758186480454549232292621675861952427171654215946038423764640269001996341398039261975667611290436380413517197205989837956499260060830202400954007646177343572685958917894875632764322950995927933199399412682994079545306742774623844808501971565070867462801407831283506980187818873607922640677413447271188441892050941468875531236962239512333631622698858523468173676531807616121049965384143419975819006152608090777203174908911272933934138519379683543078639940046454926566502762303159984008356201601845095981536566701026836996981597968039332447281705364652015315579014129668347283796312415778293880107916316346327118512031542568444102536299610120548785553399005347629138395846636938682047683176209725378284126876752853439208010371772397966295766891168169140532815522138709761792723913185777080030687851043133777667293778582392937576507921730361992578764890827223881475185304536671723916396774313663076363757292677618508057584420556964701379979491392819301953283819359141751538850218733989551489985924880373886172581381789832689012781418074912933131901851576282957788000102984596902526735890163912577069684958992630640258006444259020315535421552200923939999355539714583044095069894426932273467346624441100569118143981065195137128625498067140994088031983292973387058723429698851384240232087745363425040427699002505169948731152964146403055425077783524046680475302393781100865520065130619904627103114267592883769700635983364946742303908837425495922848639515383561102674617568474235628043445929830932960782274367741878323155766600554419483725401190528945818976477504339027076978797109121469288115275235521063004432506806118247844331575399388402089280454645879774589376463049205059171010242251402432559008641317272949614976777930488034243207182403725768770248770514247985372851745661065520991970189502289263183053586172426414858819226752430651669401439730557602893328454353409889402130147878464882737086015241116783943832419375758156816811848576664859756752083851058851791723317679461966657063242323296454390856986525703616553778101847072919159084280006476461225032033602551631305753502145465527752081030353434245095822748520730734630420456769777307895104529986864949319741617501115983918671756422460987093820618636170766855433204869449642053589104223887502747420132581099142574356095278206810653121310847173071660392024339011882564557298124613976014777034992086504497456291507263477653591240237241106547490458687588110546466545595714999508864946406257896195321190384710383950504857085442196763957314772450498482301852097603062221319078419668075779857705394370023080928190579623894965359977983424776936990782236675599424598414593462064509906820329169466324542153482279517805577550699850964373358294902941679889012988586756803499357412304192482189442255684631019467636082472830947388201110933763004066153854143720174133574770475446325345206426990906660578582430604715171107725877291774633909442052679198083286866136350733977359663136399254753738878784888290521284505596325107251550582144386430775722388634361928409429890384157881577816632549870303292545063779387821720449463371748244162831902190101515974760569062661659750435682068689710775730297097822715350393140275621900707760394036933001473916020242103508586193756321015415193551496723262670728553972835382206990955703012017292892471252558868609864566714397439577548895448433151307162070352785005510863340568362121888416378508463510381556260472582049790188702996700061939930508553752483397335663979009211991401260535729996121825971075640705714250416654288775679654498829169290075269423035997612242751248241136412361164895042968309196508120411957849236214475735925642530430136640595125507254295347917090474755396898832627932170337051264876554471578859296132145176126418895777322851884325662964619219180566378767535098033741265056243413877265944093913557245698330645787731650439752269213012602521891059360514154654310164289308374096351077413173674048976348997716533260149281028064679928659528661983238406296627062794466247245561042942849190346097820748058041964403907604640022356461769425811761603889661559335337941984812585458998922269404548233291414661818797499242732095541973754552226314803753308170088243299669404396170161669059417251512362476195676546026457996861271332929432238546077122421908320152384537707874453603066218457354930942514254897874116330927447388569563131224891233040173962824310443733036836748333581913105159874257464928010996415527885884689383719830542102079117913002240604494324814147920536488099919028309480073683873308097153836860284017613716472132620333499830357513019188427932173535847386646143281715951887092485004919026233280481414112902625067607848979811312548342096014960729900524502622649346412937812703253376529689115449613363203193644449967867688683069854227082566740386900180200707905275326152105550325806920540844836905525015177534357052064962608237795180785471721654588547772709254389295117974182708480718177404513925624374499576291843015191492723469571193228986029639969635429416263500904357181786507536623851112261355476003940870441033043657799486156878158203173005140435331348912021175194801040054454813223794034801694980835782561307669682389152269518102268000756400804742744214646491311538830719520447573775077092822691218540488183361956465026410871034784417554350373104053245864447703065529161469910752023925941802936118250863245591183267321772378434571860021373211300564448068451344241819897099412217241353134823754752093448883131722576593608944923621250152979356104360812781980629697602397381988353372873291622196215765352946822977435556901563752251856788701396030232125439240134858497661139569822763393874278888545227586371600986736737447001352735796794345285355803454239149135140082412413666245904687923885357407552433016600895382721145153571894546922731427086330208925691197137456769106083095089501619827173536058939368721480177109509551836581695218277365320589788102021680883923434035962719811705692768400640057712317348636160704645096784789960603345141908163947563593769292649028419547767339211705780801541153395419847988265067506041446537477379612153624719536706084612958491409224031407637703812232369503299641552533618511942530217076749333212279286205287013449665530757089176861853181758732683260402005653717978800660030702178207463295788421034407483762207029624856606228101308083046721821989107538335238952059630499291311452591512920678691923040162211464265620030635169776557488778705757059606053881516185557460075712552239285631794452695067840066264340941204344826321981459431242488693807738879815796811199255843146207092236060089953405576872890108576548389399368616226729415583404596986219299378380730220549894346417631084826215060764539420994689843306103025438724272877335767029112712833316082517856173577867245411883300642720869362551486111749538853916555193138932974318137823190010629793502311150394179867468394019169455850746192931412962124705245010454833537351114100351083083597033491403434347442866544599193019257417894524949186188030597010770666946417771728956202699811764374961382823180351869861697606671144513219462340175721892280754822741339066216485954479220579952988854709319111371882261605211132098988724677370721946924737420786006895604141722025262804035156669004750554888553546384699022836988342589683000254452298438232449198673524595877703566655973848552712573836967882344016174693950964709188974860178161371488118647955071300228941099996767487078624701038558587778989197316562961813718268585701135926631868053633711472488911158780777710578797525280855613783733089173886055908997018152614133162269663598279104766090939831708752120195942720241478939663752459783312359224203068698033606630500850428382842745023876762597292611383165880905607968216401377833711552126184413029646525184083908875776371696218639407414814091194285845762082490039538999210549043447176344122527156579315028419958364688404529588942955610120296367102539958650345046871160025595796952951379044756638965545000257287502391678171538117249356312544660473869494297580948270988827311455652991724655256374371259281948071364376036732948745584120821893852101754765504810565979606923317055188990968896289844456162769348820786772242828339155808272912396720046809625440116436799714221617853672418581713079834696165024842471063702365574424475457110572391772529458570666182448219277423677966724782605281331918968025619452498601214057220424170815492728207674356740195688759297515716897809340884769278730846817213260967537181778937125125286951478949813038146782711017424769500562604882101914911671466078333837826896765579544157695870650307448595260193806441938596926951874429075208458382041164135904844321304489042479321417068830815607445687513522037285290016086892799106051680466696533971182477495894706439210858805413616575341645263986714908170438773873657031797035601404851488113443911173729670856283507516919958131022519575710221057799858662410159938759682330759184222671696379232760470217931046238360729052421931320902535629754902948994796165720503807119470234354670729108958786598792418716023370664112682981905378500461149547915027059964996178704003322263990217156024769585445293022066384660117478297009438284753592403169306586775985275401298581877655269442352804155302479735421383264013276911756682265220293234030925170338211674108544038995793422252929608043880964919676916232595963721026661617610481308326238225077874581532420182455968755090840996211169608556990892382333301882807576454156870237765721749786241694054943770514737578725507907903667256928283708387299451029220978231285973051606813358067549383488070043440204853334278575144337861135054322893164749276254668793703357062814658360765887836203879918158645702661789567932103839307584586574974917260168809738879960315539331016925658341121034275614986435969317964765890616148232966324005388113835868903842090774009368823951462582046484017331833331722945481405994974346405454211616436186793526597798118672661909293443700895266751331086675626365801980772913603155819138633748920599626538444844230816857551536805194484430268477244485520932816868358393613010443194507863056815353305825744728884443621536985165163343942758140554034526164812297582554040815133265478215431092883633245647944189373905731706291499063727561351183807902025506879150711470839816639085182002226105108374872613549728822280912063291852993643947448153166071862133036925912535318402593022686070002645070376746676146420978410058104997885588557461657699710238496784195815284669411679525406585461015560081275477743771247516953646819693882955376369463919263392088209946188439404163027501765630409198042236991076554348872184319438293751879878616081876175509269560027732804235617570643393283851127683450515296595814109620918937415757673014774317298307163208498539777501277035580186917071787224910437531143959195208553117290316350617149555853290084602536829287902182028855328394798163726711619474239269820751676960469345422707735246128288469327245199150308769193796461323317881210850932042141362243630438056385405613773637098495790772018266692557921487230316862978844830929586486769401246532406777955436632784069681848539585360578255367362548630462217953277605832711349486850392177328956661597390026767473783678791678719465701381537342485625462731124418081149422561544832583419703540030929071410560007296072684697105133974357502958236330319288750656580382480455663840454398802838509857927259299373476633389964941683499589767076228701361562325619274770784043279339270958505405486309143941434717946541601031599478244596014700096454795968756134485344860040383096189143781012971628518528905102152587562654436146814176991416578084994086107172135346922268488929828794399416873197607136098161235777529131321820465088491714966468418998552650324280888545949801999247556681346336596441310949612845251299951455013310292394873026195562509917388168531798109091944984584178085312343137896878909285392580855121128147193254255474880964203436553205943989316488757883511199799668402753018972659918424750622530553414967697240425195856937246890145414357455144800823372930233516085324263144803866953926840984600383432653796885756351657164425404584068072226020275970866757989746987561978655629637683993098813238262135003052269639336866631507638120212069017262681225057469566635122991057990538515312540269014621444662104561605586133813609260202219724369945038115558861565222936285981974343968695095081052159806359571419941545416622678593958915052241839604819073708273185411195869257780281222690868424119639096284392204301805980649710768474862826452162372424803759769772292635663839728189356488241658135715836866489247618357172455988084485925599207350311595746273249829047238092417948569767162084506952061659404187233553966032240940507545353239827151567131728820874856013218733907785460213510610466566641371517491424526160831056724423577364761864222750965701149645108288208178603689271993588616297853602666632364856516650882369737035834172787155315418157049183696524600207517111512255753410551256995530322026772357777094187474272766560050311276621710900567132350174907172994089758238355466688415572669894873070748180343645571918315094784162327943269009654361263998050740986458147453671516812559032355501263923369918741067327604167972525268496282016329207307235519107637777800943506666262390557972106988649995618355125953603615050125534179454177430520938268456419382821546582839285731238423793281927526293461417669670122216277286504680454253361471857220654807020558116413934296517309490850161513401453510963549960812241160628964048378950774826245175787368739994858072184270627515634559491134885777858822095781297364356690362213420829618816095967045143642441405668344845255899657924784971189869699217740129926343469760674334026240871169500688452178926574575166228719926369225770391293630150896944840383436920935636010392764959593218711779453829511360080808749561197594678871047278497969320499336100036661711435283995033001933887117917223481627730350107566258977709350765668531464729038259359483261161130639973061676150590433823770214788027373522020776035817072219634899176393548548804437881456187396158386192705053802534272331193234685091938391003136558377204661992827828089629837609120688911772795991735016640600095166025810845548107379937123213007561510003514075320208063566580346437715997888859313978296136954408879416895412347889804933054797266743219250813016660103681155568789185714372256930877560842563198317893302300251890495124995269630129004361205361993149921618382816572958362826300333379316442715865778994581838993136567997912156647503556162855341574109505507938244589695159111914772198379027727438853874907011008923371955006299653836391018749774016385385973128708983918395384559031910405650572123722591268624753751567030619327615316597215692082235454060215744920493328653489110057578135782524394573914418324041754229932823940770852917713619656842305642617129316237426682174252576008081917440661321796733543486602261312037574246901348235821304913710342729285904682629439187719553165553769114183297267114568862421874089042233981340237402114668047315244960967301115205922747128372504975461233309920517705087576655830626581704239842624932230145173979439833407571593032384866513273149215253943243848162283918761813476839490329447562113845809596109098728525370608252994977608008605242016156579327540500251187291484341329708790743052554981787594363489617541402588570078864113118533315939373940076722436147280674649928583157661001746621881012074198927340110582592609928269708203424462938882966621773168383857074530222849362638889653970559482206049641502129389052548407819933868425161048798133777111102664494442459649665517438186055888629323766222816972037760342345440786179226436638523245078469388875213612542236173296371986565006151035618817930023126301517921197600283063468921087969635584644035705763301461414658670207243101202724503992226525288903598471639135593483539422507589065814697354770994604611223398867330697924756016455292462832140540889877087452869066576644512594638383376607140523186675971442144355782767655117399343237753125233551394406359294093122358937926071893264114014480476538473713388842279043858678992675824882600184787178152329439520390427706105402214792389046423349977175342175602601574998885843159416029454340499574305805643784792454233998692621491602654716803733584831837181255634391602467386254947570579989831194057968271810343863701182976608363288945489871220667581030222113553701657897173408703853286646064279691945402694492393350234266168662014035060988764889170823274970309888027172215581109298813973356590134294384680640673520922571556432178967205081397246456273726929453973487393518745066051757144192431066967832464548329766693703608421686155839083933516710972650709491111871450525511459074624970904119322700903270810706643794766239241568809981897535497399635935299467179237646617198936473772538400461372161435311091797399223423372231157417791992454740332489141029406232142355984791732691493151052242670339185528366997450468237600079578809078705101874087416551723554695278710457970731536140246560364807850711749107749588741329001566936065626490902252804689157053752060379417175860000312971200654540068709698452624160549749969606341464803781380049498193673472153648643860927802498551613617079564298304482982036659105741617022132647844232326653453008284996101063154003870126711441254396913684786226489207954725089859266266330744995862908997383686490002478473652591762353988278153409026830825021603580523815606749826704323957118398629609054961938910492042576644173949764190877648385054139516703267293376512847756161659397603455717262379274601069322111284279486265230507353971953110775781938429570148845736060976460775040937999674960062111216683069490935306783963297335538461972934703053587451996311048039199022685209504793551908218765379916675438021701487013570266533022414292450940161585893863716489333745500300582494376003486685564092180215280906961321071231975400513428300029252278415296198110845540079793364119401769108943886974366071345497602093769942218931434230155095821318469746736077672035390234185564130523018894740437600275151280923420407917456284997195790012287731130277137398359801736219270744459177503422277794580775927373626542816391224368455721020421264188246332269014069289472784481078493071169256516034168617079288360224277923097549615600785721302788153658512050644353518797593794764998232616935938142542065163760914300117839100345517905953408621606265198203433992290331284829497179380173025604421274293810393357030794146175838123120707001927803689103901644820504148918366004676786516388174461282207261606207852132729979105111107249402327141470428043304384534106699482668626546424364661890827400030075920299196343115900243412928744252315979310543019927947274042422714771922655456306534029738029719730806055141588597652889267160749935508612052148187638909663984340350922030283591856835500530902787562408373199368621694954818908136395771198278612367403201240746055637909969872691619076546824832296005956165867375298570640280341946354788730071192664957720649468820871337673741193073269495911914558532234384560476474915900961704062370624977069773413143473073632839743736457584216456927480718440786314976059380965595111125816940503768099109399057354506906283634795195648320208649554725692737636137427534784659158654915438314869682683719098677880209551144928794607001867028232629178935368770213444180162728130844023776184410562642973249122028244848786245207573482278477712792449229786033596531661227189509072144746725222784201764861613498994223458406825777600896160808363650238194948109802832411026083339092288575765138570183161138759092132466934527223733867304565994850288938442643489211168881240338082998316153485611806036755885683030806010730101712896480014160107728579434055991300261192365507981325948274036207065768527430196416268850127848386367858170644334280457932127388274193922096996695963481010122904876838897853982304499062088569274684069051342203417090791207949932395386182177610016703316200373338813285522267951938225820896792574199360505058749796674878636490371424549693685498316323574152818122155327731561955506380424217930648886666970966893354495087200708526377321551973621610061682751549071873980725476427127542103121097475646028155439687896826047487423488454432528462152335990816404968738377186488330958701662685342636298919648142213165003568107241507042857769054693213234620962960193689513113503839704068293145024973325735853248356394154566188302138875879910830924562632041916906890483305012667991551313758613722315294519139387261749454110992129791544761034978785635921674438511244539453591625362401530724160287591772479385258104326068716712362631293357391146715669691359693474671635963533955375866763672665541662866870171541354282071318869065974035450777060152317608624775150510386339774024097436809435116922869128454423685452166122491111866604694277778883688557369232175122453436890770623402546839177145740606534055137620945697114752532956045786258285327180265414399981645868224033435908553836521054605459728212705034685860191055242137055774613152621305541028396939396736114217157133893130074424315698086841176556072103969853817264536224932970850035524303963721161507339101188957160016350030125925091129527713880366425840646386474280867609536708573347028995575609250180061657163675913961304535749127062730935311511856385888950403115151816607322647366173162777916269218738128543433208879628876724764501669359282236586924874592431559451247357647379683327514143170657816723589795554838578546219888661742191760090465962508587176447205374398993677315778582180665782423326623513957595588812429431608850386903061005840305660787909942866864457227111581588876757556323966809433479780482046550830178610127895446389304716394352823823399109140927515787850943757033308610865726881418678656828094924737917384605580097833308381192940721377978353269524203616507802508783744242562984319744587127532335563405428256718188101775664181158505284032885028812489364556969643413862942567979033784026572975477384577381863013165818616099479070288236130565420445904955151334754713616542048848452403078744691281443167343024889896370302830646332278106084926110226495681679901779650594867590098340674436933240691597985862447648546915458629517764135367335703447408341010398270633667739715696077070840921809524718591185188734468129570399762024587581881150831560915469936137864214469901722684581333971241681916216790265975130946069911369481230557434873587215726474966712931804991586489247709427487841191463508453727168969006721297021443969273308677597772440290286469602403474225680128967125618878046226876905913076227247011431606278443675805133453712426612169467213848199865087651723535626297761291380892120103340996531290829182565601356393749242867040527932169087078289892944032166558642994290165278989906223102191176320741521080080323358944089793250586647356768250844778445067041400033282796955596515359050832383889736965983573925815541033521731776791271864205804690126162125583176062003824239439135470254130249942210438671956424615937491138557990724350527757152362466005920185199771045597027529484792912931102290160278978796499688487848389673933772799544679725698004848973848437636648662954616477946928998569415085790870499019922816872093019584712442439552673095249625878747029270863564165564866830316865782762590587274253147246306063791817475536100846853141964973515355983734663821714083871305800948699940025797048698657969755839430223468527261381921111816210110018281365624414549081198615797403106437162464445862812334384701999540249159859416890039094530014526079449670192769732044065657241808823029092440112024090611532839021157092597580031490886892795594963163328333035417689134219376122645351042999188018236561425601343381997732445021275716100913597220333163298854543244953818836653424652170249938100475943755592880253963986185216389031372500903440568303022574795856035011229215354738154879310550895632375703032353559325002331193650860648596587539341420924995815210182956862702949948514888206166165655037514302362062584788737538411691917048354808547299659994182688714578209713720089884037490409956019089426947557426512240852380137817893620864753885288507874284163348300435479609311724135020685275064778897127574322159700240757319098212267215630924400644662328085962446009248379500418859755975921148131709388467349616057804249921332273363312055685386263843016912053067058420598166988025996012031778066598749323025752653116998642205869471420935999531146697295802116548483309607074029793180281964315830616835859875284173153346146756620236167467465043662221118695369969497188542460428089616265718991647727233406875737846268922162776595315213806569332718165253839048795725147172707110392908061598976754792016078801587383820619881195515230350028618214482903242461706095678794444310868873547065200144387860311374815409588819780387290846372329182658946087612747162895265304709534570397488852642716739642162212655705039256923376113910570799715322083421382630432839124325169557659079405947471883264778437657204112702643435487381903314485427208479404607164284115528889111093292802285853553274002317153138953388825195573716859182318020866273642962263290302813657782980942204080867656142433442646272016469781633825951367911378931732525162855319140235966048014944511009265490154031646210338076032565620838708752099965103948979454753095338933547267118079199710579406442336611497685649305581232663944684006862188502366642910120897307409107508858016867672946985618949953948709049643266147526403760164685400704224166040432957028220727391465551875699613084726555579046632899573986809674801849005197147333612524451271642671864520304710220091527751375946411435168441085933556438053985029393002704063018459662119393961201965556681185812511377099805183694871836536508955939315521048192689955388824361768500767431083582910675102166276978471456163721063271852449971206482746666797025293705277277791990592293048620889310046805752764441920926225671834987625261126735999632969717946629716526258430884587758110542409407944664704775767125834762084923473467520876044465099458956908587433962569992868450520353704068429641950911629943033311335776983701934162607539024430474522332283862412502131413934792240221783433431984327080613613084544179030590573138508546002376455487771346330178885128400553683985231977846266060768944728199987814274009706999226574871891990593856944980344882658257640090984224825175571710226319027835163043115205400447903571790517060820116431610638499821448314532747146099883568178706109947157621833506766522445011903271128114347973224255633200858836170872161597862474042255130265553820748899509906150341211353359189236552853259447472734153394072581380014553857996250403126888539984120621051154332134949810955554225386858033798035782536042958051452709578431564409592876814541737729018034869867737563496336474850892620124980843053971105079582509845598010765798570335875305230409382110232311642582549022097480760268887015172326233149196934979253399901108520807313953627896810679469812088867321776332601653190280835511188097402993964690981382481029501332155811144085983698593624761243296742390723779617639019088245112650327403446495218883305494096904140609241559920968661517677023783607154082277530451720527389804220335951955804541005267191863671124275511841713765319080053471690061655522598293934380515868261814845743063466203394093301303281284819202166370911344685231700209599404821699736263389643346260682368300340012326722797684968981288082912093407461870499062910529591677231361618905633061404259283558967096890439044601517868220787824783373740751219181845163886710046471272788864612767052871112734114312278992376154638763656817841987679793773024966780601874446403106615609938181031253243989017360027334466059632101867800851239993900085954951878834340723046233054207913951916933121235261540301722331697814363832670035550803746849829881732075475323059424427978461851681687434460188991817851688680153732329455936584671269473692361422953831660202475680805967583120406613234142546590029043089175576313359781097218866531603873678561990447171408415658985754791706922505500653870301901011905809198270512001752217984148350536438959744253895169192675003799033600766966031907132430710035502354393899080555709682859343705439728843278115151766640246124113026889599485453732569695397698537391162863422060498810090898626219623666041310423704168676159790012982674219139434810452774181049498812022253882534874754252679517179035122328779754378045751582113506765719699081591266516895693328260727910153471379500086491796061306501487442256940947141684086777407111619283901817252757125269325605975555094321910095139412307325380465160106332736689766058514665014887835493143679500524853008307565559715404737199669725912494718665398795277735422192190422770145107812294554917087077816693190056068311582535891493000279471245380773799697317738612737589591168661948034722814530874357684513655690575891498030667067979277543137380879535677009514290559346385380275500432470307756398120842761618468970786626768342966841930102816538870713488711875243442332093477563439403798329224423497218221669655612490788779971433233045346213729004761131498571791604166057860966621977632985882550090375535495615993776045625572966033019630349885310139609995922566800716358901836704181141718955049730675888380727120809762620239032762825927568460951796612684231323628355032776521461895610373107645469921524782138774737810670974098781652528914573960694093282915757544670658087790023434784697757314421275030862893525653881469786389083906517543615935982557608319089438216666345054938865972573417448936552043240437083635997883103709972139256078973707817869841069160505936058101230920732605218310717266699352441268215089266548374922779912725231396164922296283083090031679278843052810796421785547882834906176814510336862208169948344318433089657007370631144994219584557568918394339801254724464709440387704582836729324940647430792937124691042133631109497932785831046735560115932861006686331347485821413663831228502376836669664191316725727828863254043358239048430505735529796479181583863280032586201385564395742156547346035344696496194920366262106141204728098055399164530993495733976647163310225618369502781110635282452369724418036159899483419782470656217602726012215888766784801146266027048045099625698882509289389024581561486151056740768259401936187192380621012873773445407548175305080596471687296124212531046038692160936930580069852978797532448765828485535341473749594914314631124332083148973318724471965183647756955972214163853429529859904022016707880500651854902034965788395108029643937165254283129315952833400197983721817273672647745348850974154072228198285293864748084922452653874244180104865650369615066813800392412794728557895828380204290360083200758579456274375319296383768150667979298459528470326026023602736666051321823510752535359228517616104112654269584509592664559164907491098391487102540582427476492789256503858620564953730151426494524574008782050727077328579583732198035501650927427964123743774872494664206386443420360739029055780597299073931475302767626793605185029900514286251875081094262297764690176346618649454081258848964313797556176690071688834322584712420509279142132890972287629848547088208745872834199358818836266485828288535219097477118069175127253503109677450601424252860710306015444632704905274243095843697272782010968819019637112171686842666105097123181804629162003511879534052608641696326432326321748386556805672262219537929367681350495890637092341412535333974805732471533049347813761923961583743588021434544287877613898916181921101519526802278151612580051632242629946456933318740550367601087367793242318228828496723708694100249349713436910560807554593756857514845210302225040804106803826223558850088010219389414664099161822516244259918982733068458251775621791494502091805049279617102316233994109887449837366449691742075996878981899196032702970822721748148754116017493667072256207757892051676997973595810138670065885112721553204614684122703893037355535362284490855801610440645967037266358146322878645377750553085083128558325708949590090268004365821188545086632907932603560395851273700514322554148507355043214482892175936822221566358994130956670388234693173721466811629476722087104822640686938711015639321790026158563806139333672388661508774820324359384473855494363876689623568091314437814620895156090973537898033194630105480559475870797485100917596901437763987452046933512998273872430041693440421350631534998293643379338810642228511207928578048341748664788533602747594068713883307154647153160641151254824581656304239894625102815691631515432325019175563445321337321236758884890555437749031477703479452798944874847343526681088144762501339314368076188254338327993056513738771951959949965515507292685250773731211117451238813427774600355014083217184888467474618448600125779318921673803076861425978586178359345490505379664190273483473454659534723752526320433972107625458479234437778648758612552493942032616907801074422467799866622360325899877348149551293590492078132628616370414040869782088690560715769218959805855051854465405247862797177486706816225411245377108696609485726329721328205526170930242310849578148155663490758672526194193890812759033983386984930768370662714004352303807461516316214547678182904433679251452864806517941027147403967624930214254833447219948793770621369862829680335840832322526300635651611387231525318716041317900605323605278274552821555513469498813821014110234985233402757433869063728120093139802023506651257992104948854033143257786504891128385708322967388106005610853367408538797593767417300805989936350736805942341840402884325442817794227305112789198019891446146893761951422502718104459209289631906232797081656240273555092723547362812716491867326304092544782209860277008116923774674782061279985760510043918770621723118705856246320492080743008012048684075376792387606321545653279088808895578942067020410956329762281221504340421390186494232291333842587023878272564244171120205186159941309411717592619257371715232535503739765826770934911938328871528639812775416452693188722851734895003314350633757084059186200063271630914872802764836291180688015067674735829480782810529529915860125223677936440223023590169952361812566092331268272187856984696025410023079381403152886476726926200936163035572420301987437971058774465559703132259459912739290739119621130681673065435777854001971184522334618281835193673019720799862358902356578493871532808700894627693331690957270625629893611350013193427487813499517616744452360418219674618075059616944219652256763687630104799273277213275441819182005477035999703690390929930094574890051471436627583971413949276694643655877736003236447794787439547172767341912182013069176330855250610103840856138689760603828295705168307920521611239310965859974260017110819618275458073256549217874261043558976324073836125722527623890464002133315296642428237994367710120790211433198152197328181661117763658636611675680660189892233083716384236014479046472798170204876741299417573189812635527941983641857001012505296618398542427730441907131428345941250466676256433908060657800348456364549776969373879948084005162328435263844753546366905716146838516003941603987493789397778985970756770672984228780256830834927902801232016292486314740022947786785920012559715048211796653144239282731423593775497506435660379205815508575903143418329652474598649245791571999989526915779579471610518752870517266416121505851166195860691279228345354857110934483976058226199151561311759218882156204090159795533821971269185371069361421044416676363873609949866212539961822847845121089242145952823943226676509124031392707648479424960145016504780567226426850713892953386026685645451424136857136933890123527048250152723422541056762443122259303760363769504461542775003435956664990891724934483859681433167470393905973695739070863744957551258741832817505110617723399310201662855528609352789779964173534730854392526781096781954833786410720627233678981753675500637682797021575786774000549491623721391689262822895299127946933513969569025099770240496663882220185737915776629512180341105261718436963752966942651500744024862739345488946810916435810775932120667703857413619692881560549340010812804129266357656929304121597685788091499577270556859340311421517775842514360387087693950383334857860779167456956399828020470608014393637968992727143660876483702346128172571967134894776034407918717216309523692678746651988826969642260401596364790303173769761756350447196956252515158413458160870649765416518939765786558109532192913374632934799231483073989261660628773138639137131893831039732133986591586031914675957607500562591390579293111925302422869992294261362046282354949797834543595812482378260970931081938671063262394656431725742281062375048002288743627255540768923179901926823157713454998587870411291053152680518740124186743658365509713265176727126581945372849518968424579526213298403187354012483587057181917521042514763934156711801082087165156939310781256043650088579807204213768749857115057660104453034218411998540985666167965608531903180802569382141781860549315958351284167815725213188700929159290762005168564480739239394987677924432493295536270145184029894371064300602146758425178147042898517932175545744941176996782230158635106266047855036515094524523379341029589246798933926872583833367602657355713632375779417070834300013194265687956570702838753535834772396471455552358085164856467003380179084170280909106481245130607373878458180597838551237449110161663431808907160979652135416412023677543198057699131195363157860847381684979478377651796495148240097555451765480008722128127391346614968239092530832228088979180080929883872357266433958751587256366789482704193795838744786756638465596916367041533919497046131857209191432395478606804035860831141400529197425354760872066516117064686896436781479386087822429530142871623434957688047015656850696601240529738534560239501064551216273193098012726542803473648048664370917559762792850044668341078784399941240461163401413998545100045222155654250235364796303552696925159107500566815196283750677080761389678421618149589424597362243302170357101332607599623173528655255372350495695327505489665930140339358967682857885369844185923169102176334764731851533680425359303615340409170131824387214397179019561461611070900671760787470322217634968101568776220647880786268546737987324987444043241912098203109687774446305264538552775552523166203596090847255222228323435887637628324788098213129786028733034767720785862382371132835329424055019153863534147517836758928892440792939089639033159589251952958746132023631379708396109445533201749608416788899122279676853754637257847359502622878606591321403926588398468972971904840865735284476786652283904931358613314464499550072394623210859703617776656177485301637704423489720285369710140129128384133237944650763765163087507278402043125941118951207194156070913912669676804096879509762378939299240819445065414274118204502796843352309197823124588674832655556456855270752188101132959242534185109888786154951810019280046148761625808599908532569852470803286346198335942893578321915890104867377069285826225434117077319977200499306456857418388061271010419329475917499365076666372931032758728357985589576505174654666441144692405253788049055075246993668210082046465835838593669359370646872072091703579663054107370138017496428615164009304119807866445848182205622862347263438075151622988379560015897824199402460086821306770158645953724750658686584950897342069213821958645081786792041733004636623752197987267589622957637947341909105563990279072254408673193394076456154963550012285278796126788589916162470796520162916102557344525899055909130775477234651869491902808393029775515977409089373290174318015469083880661179894929222455450538221084024470115078379055743221007740840984878914131133597046616627894620429520964173835134648760071443395889171125778611790684080228154069111908820276955886254411767769557948607517854888051774470208627931433149987624467356959768316407060834830626371214126133153828311247041227855612733784490193945776774733050713354174344034355158114737693058484598184343114708200396436562912763508572944367910413188491885540609840307377520371924669230299513141539475171275699077634534929569215748817974294613326626330352211452818728533117921434832114310555808106513677648290549243474253587103569753261528200555646772998378870279840642160004551061832627670023792072391941302406135062871138145981471675314602423506979766160202142575579326194226473503358963863642737010483558204867484545643411239815890916773179021008756876382241536359936353070218029455940457616168796409738169798678460798570896019196574011423828880184152916463496456474074968060200828529286235366408945210761744792144681431274158618643475134326251346959068498560405485463158490725438004800082696855501938239383183094741924286560427778899507246820210356593509373368335465016511467864430804957376923635691633621390546280645782840810965824554388619968877666860990046052923192197621831529793713101557106040871505610721972246937447399675581716951078289478763657552080656437806545620324330058597637369044650027241701158217259410525209108734992695396881851167157168238382567784098995974981263297345075122842576123926653131091504766889300822549822654597841697045354124239708319147907955142408803494400432633510988415770844638592958880387217389796998018257776259689766558274393529485573117514329824978064381019582146543606370015418151339023591644357800089145279497670866774761098198713593871391336732443370108266434421559493942963319394862182014095618412487332912016496233971071782128188163712433189369199465098156970087631700714967647439686442334858470660370553305809156003463785679369153136956007254784055362754965866601642005688283665901326243875912740255138675712974531925305624651814085545166986586329249004072708522273860626602643864772644351077610475215315352035835036326798445800709521378315114245226913213397560680450690760767536516271086828207901473294727865340832544408899106861231523040479132883720145554104809634727669146432040918364322723082587683065373271898866608538990438990400566176747707328611294373749163825275953075979453994404187326642057189262024254367599029890589953890554013889712191553408340070619030981569027923815713435113535979398620237737081533572198486104652362263681865181235357196087211456193059430026432594195143531724042917547776499251242207667120430644827891168584571471336841560116009394486580207941892988602838530380338212178092099166415650353137065257542784992273987805033268580577212210322214936737328993929856078828608786502406603467403067607991666985281936972689803139953341446305911836657916293873738772761902741006354385043990456782674076110616195574687797917847602825767383861875275849678430893423449778185148624864362197952890069413203758466618781518079279375501959501396124650825926501308893187385187704019188043382303869161833330083377327502332183803128912078017803199148286074833065188878473858980766134425341608080514237922278834935485771720212340030822677136245132875070954063136250017324664637934532187490689283643950372832271656849967946384699297278673238503733161905179970213469986249504498919220454002291358286521220687521910266497621298665424591741601756196698086676624744207504303910970071218783301188336287597234529847229771507778223191297303348691912786042134859507891721523839372762832131667818853940852502821491581867176985477274206521012139086420555882893176938085005240226907573156068405738807104775495742982122859273527544784345190090502432512920520206380119193939750727417406295861802425122421324611833276397818717442641126363800832477389890455657503526298197648302212293083655222402026935848823385681499594503266059340724919483689454721893008848865993702171867201592461815882701060605649011130601409377829967770533461617617089188760388196048987883411744457768708389094738000847809679122543388335764849329839497428560725798245412430108414372842248861964120093480208085698177573872303321357312980693169128501243940061900439823371344519149432056335669435980876446327804704468351453418635028347815570408343260123371551643701632746960582273093823829530342879435330952702870272970722399641841645579033603341577483827361437190724567086687675096757910324181472068199096765116838157677216032848820929248211778956576574771350331222196917551966857474764317594512218809682662032358959230913587870875142254528082397231257236999508181683329852085838261937448910315265030380641220017530876318661078547484576222916673169763341821826146909268542233807021883781548260111118876802992977577734602741430717418945292764515103439610874421020516318199373893886739703745622811620832515899865379297221833744488335042788144566115682678072948221676003751767978758769277270222675665309162469677421755673223946613681811619695265023038854281290963752930901735134970000403310424957702957442762164113826303996792732251392324009440187657847013682740254703386471651509132317707603964620847908695659903225614158115607055712092254522697020075045372492777220720495291200273356423184784721259352559489200602001690643945841047248269475482105377926501354272426631946169449007056110806437674760844519520411771986744256542365214373048295068433887154905218903711245134920164840964772690628009700921600236659060586751144908542805158055833584448191992647591463064964762177115744098795770542924929638464053999703584380652533725279411540053386379577928403254132711025954649674515598026246123036949353689272640702146067934353505890751082417376686046268295985719008510605678563272369930506404980685219519477240974014263305665571116391737883692506173743595186809787261257960015113991489390722043821501613121718402105757685438493341992996416642916460948648626780811788028210554881684787627629512143961746996967505609293442253441822156961871393758992288241501284408027319916636684481472949862118268154717288126523856500899777201056686101312953840412945642843509607253383721877889424901477951157227506184567618748292682562468392770471448369143391817230450191184028767236253340684972377508691036736142280928525964567322726692381667182242482524267745988815618373575423722796183534123372705639220085177440743442651340577516130827724297874751414434757745233779448472244178602175153107803107304986584002532025678016978510133142047611215552490219490005306984786800584628296986684756022913816432546324110593980666455288441255242898137285263295831492053115228644506176924038133323455588946759085329672086272132580982925649687405763498172839320090538225072455456061315550154720273162617116235735968274078365184874730192888285556003300066374129162620612852388438632634759068311599269453261143215230606720374914962119110159413845109925558609945388214003356531315360661111704634271133879057831077184753215739171715351304661061611055847784330305011877560070034898207639954821114145026844001132316436683832701844020620856603724113831309639177515398437593572514898019378164457488833652728326882130427462160454391342989501064047711407082305340734759176619620205329183673577388286806196780187680411941509868068823497178582753357973519793302821955865044048316933589941070383320142211731650192083562709351679344666962303417649478484404062598089511919654787242084459907432566971113927423773208465047718462575533471740223841878829702560701397320691303765492246551248851234473884087481022356963993352601525792336672760826632237304158898116500160135392765702607949954555919617857893444542367703007750793610705862131857625924075857782513263304011633455106883971823523391919650572417109350784440057432865351218959844780447442419567026785759684133186163838353885122980644637288365107291882238093882477109336045263199740783735690700729374574404794327206899726513882042557092303395269279036443525766914173010419988073608640233513278485827303906556960033848628430252197399661058011536889791498701036000382249420281600237935661624623113788341749176305525313929891490806353531300671745590993714400782360999501190309360776599987282502840327720263581208315638716083245384937738472096948237732067224827635258482121193959201368841837246353315101649955199573773815690522940982089775779575139548722532097061876760173184292404742069255072733259239052414645960528627724933317135505128203725625307125329795457146933620816605618299514992800182900819142266876235552135257613141474865664211760027701459373862084296144675748083129570871815188748893787225474214817902007247199164631155670718312636202231677781734795048801758715945641358141997895625197987537352181868200379819199229625215708241538828497204005513608158479999576555374629752745924205889666228122089577425863301176598575886851065542301408434908287250865934406097599895226159487814608391181606197709083349919418379503481416966031640521323114494650150442798832371235903016511438219246897705135401745077668602139108366110510885688915051233665599097581461068989600479230782372082087778611424009974459175340971492805005597164584299844954050607521981205577564122325086162877926599026392342046436521606632327973247517910865902038973480514740602111059467736910562415251817485617367477560158690918827165700266293529897294923400195988540512060181585718093809036256689630084647847329602497323176128996450003224124313523490204746731747758212478266827520973465719816894607667024899445012149192489599345648836567529897845681863881461100960534638253553263784326088405453511235485090597891437811744341753360163518840534712178087878472392026818671935707014840625381737912100466099338512497794690970633888371171756109233850834677138530586234794264748448807011246096339394448782990330257399493561932218067978478448505852226170226146398830376503635528359213448595699394713080249421283957609841153525751644099585955391204364254631858923436413661290596067842510614471262100869640527051249171296947133916466728819381003209858107893376891478312592652845509633076607546365334794669948375375342914329395177837357856059683243030350819010941104409519590676949335142211170708276768526128587457310216311409249217515005054014951018539370617705708124876384443539003786410554611693207616961302647448190998019390997771498272671064395158623699187489523359140602245988083911856622085274385663627188045275782242286864826134177294264611208688582400905721025319182906240568611661418547234652166953226082185867290016656043061803964405112637529358384764207202974720132597119184327819556978549331878699804210075199627558020200907308803714412200013509970458943855157442451675953573901287951805475787638317627877608796454082654549618220496578144517683812627719642452021489660128068127827462965884322601836650891703474317411634670800245634652417058858923266190400453932348324938964699845928699265000333978454193445996215213226678806660161088983394513997276086105824327913425932886889095583571106832865395001264759367376172687285083620329766508783322541201499260741656223502836655951338644267346832595606904051845891656779880403265532700237562101025738627198198421063748077276341907821698412428993616061396086595286357339830566781370798784813287788860448498172836446786821337431489994654194298831459033216070418912576900123519336570126620456148901208345271746385566337869199715007272315947117538068930583311803521255415769971359567229723716200162895659633186931869236578618293171486138181985958433182914445612636462816341994881665826505323932099846934388502397806965835280172853448049445379497438860220288683332014052463114363030453329084243747619238725455091379534696928116201866560577407178176549054037435731475971032605080176491738205751963166527013360099689530079562514492388226761285751893869368556319302784284519288153295249871530716014901468584479427712896231312154264504815365608136360363241163866331428917525513195901283470446001518971603614205456655848635347972710300035931971459346150170557063627482613452782460878621745335222937161503839977417378968886579430364098910262452750869919130514573071152252013785334468388756565447282056447195388417485859556063237334793109762119710126791215536209997824756081833235573503727404864206432103844328283722794549327853527156344177094774684240656706027671307546127954068520960925793509245872857093230871892709450235787923201883599560303437271832795144880671633294453841049233877180875538435487465865453297265267325539907162533091644450701614743865607191779103109232160505604564802201526933368184268280132634207482416862552183136269526743014338943141044744953389117993115352470980625223657108632745014355995959865523511337551541439141269478786223535400579932623886937871526967621453972021472298903443793294398148197655901268645717971857247335286301756884719588844064767870732878490371044630580188976295234378996165937548962807180106036082252227523180391724285380118133038269384940191998412455226922366268402820852362905101689104541274278239724888961416220160323793278099834377720068067805513757453763869319873923929240742501775186946756004755232932867990877230664285559433825334219015628822394815023335183508009043422105988514526547481918103068158681495574300560459482402067555624482755697162659494267767078565254335021921666692583931012166601538520735504736786984896583466906924789334574317383187028319278551982144197837433862414539840536520958950602135285221656601561917758690506307277307709946748728423995138029374332718759511937916848776859035402641140454474263984369362263582327248438434013017483172584450034741428732928483420388891013429693539179303591889472019633881920235293336599467389955399437297120805601399539401748157298443430112131695475525141156820308432930592194869194798308166531003349779956169613819874997604817200883354577458174200597652792781530728505721095841905210929221305413312201278450272275357412307172927424822120403369973124257248267028742774728416344030484632131607895642703637760818041681292797950122030298254447905876176740785448505641351660893592229778685452306504592792655216643482228313236377657262724985726098474625049011618723901462132117519703296392976651812571196198010007387325874345440527962763262826868080934291900497750310913853791043692011367856551434951050783029490832695620478476418459244472200107475619290735206940477772946506252674413373842244398454921756222547925504761518401829329104695370648129154727540091641335611327399395862486454550560305863840728082554673887698019382276114038323801303574898834346060477094395808984354777373130482830607211455269268262883542544452341406722466735477234782001921430800790059118804328165129009503737517586213234917789463961050000903372354176183641547520694321144138113737326446179370050580142677760114178922085551534797830517279565628101530750592128727704082348390135845835831649995780244811510600817954965413946786640314487781059611114662116323656616941376324506484817282763187569939746689767350259107278768335199746056550291938817924026712934603268322047402077128497438252177876467151586623719378057071992341334672630166542954448260787712088500433202171678131078522819414533751430064888253729152993436985244210810358190479805564413727152487817753421439137578821710623660899036742389218498423267576824386812358101026720924356819518227884404364147477853150751894146315602110419248948941270802599462024794423606092032800613879110953957457817379571353188926375869848823346295788349056147268747296039682673155965279973822963250266237222829588702012885869121770991433637317211751927130585737216662760392859678831023127067776866728669090535839023492688439419360600886999506788634728793968466237753915801039962029086058347343479295808156483282404069985345680405641376351658302313623791880157221841747176180679057075649054418924174578273014508275002641103082540477217004684972043850219481410492820296545123337683044840818411024964002812792834119274597739216058766911225519502812250870568280892765616317664294326094445606834891909673810133949440231795338240982250113775766141663236949113142445469784506585989345841116457026362090552638804018843813967964197305052155503318750305992038919075654636507572154895978118281965746359221318183604469697753450297369861153940594831915515070474894875479830317944597988952123858042929406461487920116220866668126427365540237536530488085848702010956031568848855534854619269994289915914651262252621489993412466494601805974792845102175376590774480727562542218800765444167314957808099434609231589572211141835932769412439978423393537995841644927935275815116819202695254242442286213704568887439544842929807261961960002894585416536411030596325117184759620673403923936476445478804507503840415129569330873655602669596705602888882380481330745321478512212881501583076399770849321144116676423219508333112289980490148296191442111974873608569458485831329522019832024995140091812868608453618706196629673720729361002219116816823842251995225117554775044672081613097623135317178569629193747377488154174330200837622963981923336527044996848861080454895391941533205401909760291389517602442211993738728372634775394695529898689308805690338365385921959385644029352743436357196185497493155136655286280671636513800480983082293842631386546752806251275408042658793217914868914529298933523960013729582136087370207714464680394804295525257270170797095497836171058816483049383136034672017612252681536447324644763615655775296055464102793790575642628176643769156409878471846831898119671909400758415009233897655090220205011707113572755096160357721345683086861788044782156750249100601786526153397655317832328148188067637865484041378943156242466030153585168176859611051048260682573510528495984876567261408249579923730550754779800146170632952037874063909832273304522121393527857799700985677079504940443074126981742554014030814066120005962550101125497570865489711441127589270057784545123625278497018394450643249564769957510250018018399792190359554155781903144745169200534978297811050750336254392443476128617892489307997488754008198007560560573074139646403747677783908415682955429933684990889555534452948953991305479048222003622568541521754314996916729907523067176498656710937441887733860818126134735679195229740499462353901403579661410648937727385535470405485782562558103922732057714306372840481508085815966951128772807680901486125758956400840187434365992587758688873710670911143831638833980563640092338861194822111463299840624475764449166966122156849982975314055491093333750022441489932424404692903607216033472623121844479413122355556977957916086224952870104161544997146593563249542423263498530403348652216940661612026273435528847846622338447968769548864395784621120306775246256445536456559579852520337397517393474318752812770546076352565483948009840626342094220269796854878617426874349553762848576309833434646980796356111999213015044415679102296213056511906875864205142346431972101799749399173059769351634883420293225877510557818549305753632791216474282180409385174754011663808209059913906122646142658019862730592018017660114382999604811576778055320195618801677608670390615684316594762960085880327178332079217880068863054506375777833780598117728886214465119408700629712330816772683107203335753728468231733191943135335631335829677284494513073402904159106816984521636866309010137545766134343752951187642788642356911893798859594371093474525028094552000304092982708609333486905733244647021961101427963905903518648186684020360585968611740393157003356355029621965296640652741658888757693009175296119286356076802652180957349831784833771644387105595799745724338339055704986870683882420668957292429637806183391967494043614390762954469408202263508229577217721335670872437583701141281442621241267227238137804634250340581266237297177119113864293729384061117560202662327639362118093546808599121975976443873266845902392069488826420220516323918910545678086079354004916331878721986295012512841901715008263798609764182900755089103448600166195298245387931584805513564605114181665163093128629356342851570186646903895725047925120053478458616069330713479259526458485853292285412182232416831297887527586698033492246378826090367978303014290310886318923672677674035077318984889695161565284631672724601867541763251329109605536615618944442736968810512330959743375802977682677187734782747666676937600251919799658830112973678465977819886169988841692571356348280275938877303240775659988871658731334901430560579045323634733674163736955598553636043905620184858587418364666870797013691204423699628559487489941934072083042931032076394793579520835473284293614883372299556755252364650365170229329772505426992546085481478731145109551463424684701157719407469826523061072143809664329188941993974162550159496447247348045408901153960836891058463052219481587950569107687426882082101492617755406297414264032270669890223098391996243275249209992349308205812999940151190493632301181802332517857085225866418451055415597015110117463712436049634330343628156940720318553241790845337689856380311966586840128598497577767310387097489793258452427820478653374624072585402573235231562172029403777294552408978030819666325858823200898015819456570387154049212911808262988992876058894388318973011288996155940841948157445141457253438045095784566507214488650968189587550889204001156768507063377812311779632452135570227926181712304087143286324982297823506507148635311970060226375832343450158992480208504788220558000226984890984022034289823322753808159370976103947848967405408662998511143153157472454755085132606817047925988485750277766771114129660130533918363933405093377710455072552793111554762425821950487425679828948904978030727537350048833926373205559954059019495564815911916971625866925899122305276606517251656081586694620909682670478179337051386443174356870225659822384716517783861832015328408071555439063709410596959850178104197255992358331683707312751247067683688084101448940597974586585369261409194033988178277595313103372173331020583812577427549741545104985878274800310275383555959169442837302140004251097575688410993816538343837385418053022344531391147316494385856108375301336193972694600975488488491843947667830568847152523239777982931546064686850970311670523304188103245047442643875924878612116831757833124333691828753045953767751670916471892149845127929020576929648570212259753718307047134418114388569147640697294312917291447196602739248816420618696164876995322614144370739306903535451779373168013799226907252179729350351186618543622462833854774673620643218364776265198225463725568799908304629940135894838433678019635272297168979795073416002765831052481525003398932722331440565970857948023694368007258970187553551989733133011748599859912954311883580557865798499522179534798477495307912669795271360920008842682653595291015422408389883397261988773895428338923755936702172952083792511012574572595405504946374971027243676581721682729249445037311846764595726720946053982343994500330983427842357913121483886385447005846995644557011578225573860852631069941658023112731229427420523497469216897525998766021924919940608091904173319016479903214015107796668799452321360194268175341578459969730963834154218014898292124956070213364462342648512602852890867240389105929435851686573399486988959828414923339390406425295567108356624113404679709740510028057776207072496065898619606904072843897441676800934211937917629667830787695218849788653854434883124441416875741183657823102374306661336903098896061708757523749478924098223796285217575657998934128615104296090287394528847097046662752644943737177137244312215272926058436906002641230928399121239408242198439128360726710371984456728006972937137127800670608193960787406185736663007418252491327582871896633509636339404255222522828465519618046402376081209309238222398692437138174645176721412600244941748756234466195610335278671834792935466229576184544295794728262507987418999051695374610141583173318768339005626475684776544720946609074716083291467735984274735652948623729416446090611205913461917451175756270717204225931486747514911298599716581830001629768434929430092165006741306467666279591573473693561839209646209120921445509606774098066856490537616362855153467917826853778323890692467287132909569594871137563786346158028459823488326103583836902043688330933222177106892427225525681649760045403595037756251093125948650076469414992455213611044655800850606324247227096116201766940314652804580589146803445818929916394520727279497479417232427774261558782629288756708429560733774490929760549722560475154250089672315205149327721044397110262897950913362228790088672921987195759809162965828827394317064383887120432586962406610861113723865056529839927445740302126786871849491486566430047640321384140844828295606719225439257866719219634248400281746830043171478714291675008626924917824173278032107289982511282912804937710650499219437452097631496763165126356815130403536591694578237974716358331842342058511260212608758615317129377871985826949073289008930387335734147562449580754741908558283902916125112822379557276664279976495118354633864577839728144429201640136276052634166625435232471534072345222337776579784317334226861228610609157764921878340757525838353948543164615651970867458124066745271893077928708760098223317936597526124070257809241337406051969458490925777445939664704610603225215433227549681057558332035599764817792793416314545581993019123713380343876064674755043120180017145736347142918576991720057322097762071214105384573898164692572457788625941307762339675684337034038076417542327037729142599564349898997929658752704668859375458061245049040097039984347131937448113260177663658601409540205389262105236546271427536888689385585005690128804140819006817479482900313331065583619031628582676058212786331562355455472727645347022383585842216900946046578927601756382513123229605811879086711635429913072859375467855044441116646861851156552040722133208264169592680780145322916338354829097473676989812189646561668340613161162670333024059585112002014097079885996959280033579036623343208068532201344766567670714709772301203316920628313173203013022506499380851150330059661006505162982535397850396292510944376888258521487542347261930500347452408210359239852108574124495198487239537448239018986993488755504870314556450503230531530489399470151150684183702881170101129996073084086029425843536717666075177557383099651649754678410428518705034227425168078441485029865935290342466420141813593647610972335434646885744217853357543965571403791276750924855836375688755060032359394542352205601210563175169261832287333164199587496175172047122629671770165335078895344587706737375977761430126277469405541460609418748213969945068711241427270397995283067370283902234161733374600460230962685081128600886087635178682212140317004859865473189168410421027228954986834150859217631801334355591535240755238670158311186702437189064800987591541321850335014837508359111361351838679415428337730009215986900518067432024127984235335512814023492035134927950874826107344617251743535047572133952081935226460682687836838809659073396713647670701097204430198049039956858467249892265714303635479108159423915457549743742058281431922831892168369037572975756455104241818361942622475856404469919318033925047458570592899994905319891483779222627414525851055765152372656441031248380224547775152008587395344123628225885950099816485272633157818467384810110042000365141255325781429718457812131679301107240020962319250371498773853105245131593851282808813732821971220533845388263314827760301404245205783854659935667898625055257814597209925880144608267140327661044015055808253502951473638061286272960228764520488825604190073066866665546596754483573965590654757435594464186922886665298960865252940752236453152152882357556028842680474427095119740934804086207347926755082507497771226213569683253099327765047678386117112104151756607291018398248915997654095194405741312948447824321556474155311204417681732419118348464821363126783701966143081911509090448692679450509972384035316818241530687067959783816613313812261853995770514784413952894177151939801386210087827278575654401409585148628051679965064641788851631962259380126153979853278922587584370244331573281449089967323562916262103709114804114423039976852121418827400287309928111818278403440103019392701739699592093491203298300049322236085737396043807366648518837586358731157001058847817790549111192537945766551763726311019870377966552919863132927921636279570869152717623939687648973911168526508179995405526446034481648477512384702787077663539670956223333896539571199442210078994191360108076952617669287902506938014579769728694108499148122415372973480210830068668785609153018938265055488338627155127304576763040925908203827432386155152106817315320067531305374338377259313025535572209725387984848994226238803802460734033258512592711122422925665033869710788704497917508253338514756496310278238791470666440446973815162920418876606838071020796831484953744296352887477924138767730558240612158508788353052215651811034204463034868617213010812455610876261605710586783014970131313238345246964242263751259920891497801137211568360054670376128804112996323979385689082010309347894191641917828042898851544765724011236862563070686510674516436645003780358495382969848713193366610792196134114939485194254060131096909110292757379688376592665847083689329254300526966397777775485713134488641910900587782019350094339275983498759354355730666507719974120813146022865177313650311861306069489052477492528505475194854918088868817816060146917866645516276697679624993703530866806637124756793261210332323099064491704154205112498395183995048375215198887358926408299514138067201288644933673696602295879262009773013071471136802786113704641310531489712255381075138019673540896741090493764331313430256421964869496647951028501652676277575202507335408888592096979000352214307406556295848813402461358902615840315466907995073413048942291068719317035710040079867911577514147691520078874915332484713122633060236585176032502022243778880856970193873648481755453856028527978318045796048999773437340522433806735883262064369094336606753894676783874867728865239227179201357199874297188912941305108725297694143726339908986388453244520074374447702615806674611976314118877292537462017560889017531444536139003651223854114816174333307010035461975755285016270428020349679689451148390591589825299624683185771558031071033489080930732627931081697025961584136033429982712950600195457927811675152527602321361739124158419387890181763417477167211023253082852595028705090040277903758583334013063527945357017993815158607453386127152481891474870685528715670238557336039326284136186367287959306394643993626521400269486394879121801110020461066596766962130226072427551893884378726509471872552890946288321971672851062410406577961144902964660555622389039426798084233971612119030190751169572922056819832577903288501701995994660173296010532544623225152028701787457812397828320294194922692412637218498951140327786340174378595829532369653400545113917859176779441223066018486208264099498480421873280908523397394121172406748554716835572284208636777036929139872329021513323008326965030216576115177243591351363919038262743588882902689027298824266254345839507265877080451397655138048018257550917324535076998899667619784402665035620174911935973754220080780568164797748903679598380433403027062943495053381531461075883747579499940444808367745129625575254746804782301981469449296647352252234614813527393654729357701886600507575317829868098950998650291332647424205594974697157315543773913661139484000830541313677999756149550033495557676342712227620894833778591229770168894292892792648464325234074494533706638332062393111895650665661689914325914026263356537898778289425253467830142488581256666672780687430797926734597967051149747956805969819032015384496411555172663083824349044515717677325574078020788666361227997310747077203943295553991627408155850945923645990246015953387588595633191105420491622300797998248103386648257274770236581761747902643842218558734023863257715768290079195923312248831276058123114313328399819115169153241392217860788429068940822881969545486084505271278772351825228515417123301781292255361977361388623075728421431030745517818026457824837481402963758062497030569537036757700184058341317033104647996818489956772771011528843595050202073875408734757941067250595152335458610660068143395880971612934390328212212160439877996868898442925046895573449242685572691091788351998249559981398045815299525019983361037290260310691190054513702630490597895869345225982201459560230901747858580546152794038840323216695459631399332554103046673615598303799424298057516351351132456143271731093751000681522741109083082034263742166342648689068354223348369185952092300980990647056226790652292779006679868942043441456509474254554914325145680004455084171947640138071404580273707366715569624326069281379140166985873601801417295186895887116481418236308162430049088142041986467957253646122886947817047901332574486664280168767551068130125041844314026595946280700062131693082299218236079367002811516251376539245920858929918660660571232759748307152662218461381476108084765149555205449757638512565919968814528724483092780565031096401033421183538354947955629536683192218077103865662633062187634615186938978958194065827475643017327568749823424883703917907720641947971507440115422511399388762929378225102315360329233453167216982603434248378669506977337282924192113046913210267780604763033123398957182449223769055543187307117295072811744672413814151800690194770036691488017109399647578870512605051683662183200344867231591858589390364919244574601426720344664704047872028444649664671165383107165051776263212565600903625666421609927629959890709117037471142587931576138871417138513254255083929169664394323829575379383619579069409952605520699705754675060725484289580939034990334385135026502242779139671860205880830956740234196004358648941341341101549497019475309945544906999841864285832604245666945064799799227378406708443052572045233827652546541777656638785801059818932318270710558101699951667977887277570308589925163123073901511489289149076950532900121019534757071315900210608773598867561080172921541399555093548089403507672675721490911982112192038065673517960308247847060042810542487170401002641604918712634467870621861293409171524603702365996720660883654315719299026623879874873891764059594270791717583783620769638699105660370366618712650770221290708367934520718085448366138346345232089965736042127971180130814574647997087102558136052665312156626411264158422677654591328299813005912542775180600674002604684295772503702233017520342770954815211805655908105861976061582489201258602855410923908465679435510405588116917310302642423626518472219980963721603764594818339258774255139746860811764184692290399567093855670895142079205657335135583378857370725061373839437803096025383233660807928068206053861213039155433249671607025088531763315931381996881089632355261878168401828363852834727284927653110506672989980354575729937741641500847953154805834250303747528924437704149806995655100538077613405589828668234158370758088015182670753951155947731274816184206188126266200852237319541391030686471748839842184741449146917128004639937097670628921691027974747773785064525338222985304713659139047899610244522451979413219543114448829783189086846880109370709639896387324316962385450897100642875035123970415271171200840102690766231215211882404902928945578813057266284317852433943690326598216355205958891136215918655419750987902178687593805995098938398826483479675668406279093023624861268136843682577362032993034245249757068905958302624156618537545103331270903802294807902152386697762697724946091679144531931612365962460912033155728876140123144615555382343576291384901416162446594522649866321765907120132630208904530143080618608671259542231021266853056876107306218303363812309709478596563178508224096035172000134137077707371278912675626663254859342931138940033037293850293200193436042857713536095410611993042942525303270541165674980073742413123170452792097140034454713662261474167069574223193931997427637982740878472413860812508892253528276576923806118163661919655161648504234843848338448456800668048115245356294638734296214099058336078753155475572215058449598744191340166914922567797320296862446598175400148769843922149534009328951569434494898821677056593705556466258967146746264675519753084633820290003230408906975654173029461033661170870064578283937928845659047503321498556783992075434723389633457695153600912380538141461549923612162133127103328745217113463521370977133879394340507213081188759413634860281351291722388667732982198184351817755000074970164487086802411285329527532288014564415252738463481641851766709211729607265367580579441394668379453127794112084517307806533179263303237620036348589035833930913103654631645073855972978322446325145669289546822613719159110451616551949555850865291298338119983037955126035197618335408832071540332712096022260692992229869232225131798601963013253613395272220231454366792744870618511307787175440421281388290003107636331372113366390937861992597181688339190166823492605713750616084461063292449888086211398262674629214564059865855501930127930111924284758923052316617855740825384900141648290306361563090028576489788892290670896362903725525822190168751234459418360224735281002063296175835054216946021271584400855116250806733629773784971053604307911041188751096556199584486298923290598906212173414132909590170857027361440139061135215580056801228514666842739412485072295907760370630714612827990364140379605592464303690130664456930167886653919084184976939785682436284641109495193627563292971953190953517173335282612641673287922106231992186298342513542946522789073997515773576363976685442791902988735403180961504072942444248619672719542473870803223535836673755151428587914581547377629122204856351962358627488714774812440058786637986572118031074156614513689765919426516147674029423080984582332254089148704846287529739284302537446823307332113335420620333357537332665095168311721573036802562784225218031601786229495321228551230186923462976247936064789382481856141246508774938100269347497618195420714064357027212141161006480227582109727820621770611539349847171723264810219530705240291575882337582341407777490048706162235339225061218069241115048882086376836628316914367231688883235460227955671158148037592264030815316409211009146145960551376986004003345347674997012389415952835328377000955010996570619884153963902349981278139054419961842408044385339283129722007812594626236390618658872067774883186784499527790507149433361783259156874593444416336543403056102107643932837878226008559633298114956393579373836691241815112553195712651564240174011682071163836388019023638643592284938936186632623537073602658251961847326671967334704819892680200232752544901194305615791023553000158487100153482065142223856979291900052489712966316589544946501747948155588305213594074022135855805278615485635012847186837803739346514611203320418440832712069882797366693753921717367898474221065397520194748502357561033836924290361322269189447704756077890017896461619707382963656283912456860415024731196711327924968136047028948577023286754352349220568485235374067941569762689920711304507027388456972180828122600724680744045232665460421099611517288795103705202235647173241696711782754455128596872779510578303934823678873005677972158827532580277209680493906656077590674427501339513198558809118637581790121107111730317474983594003529223323575025629161094695773064358393330951565382237478910983140563103217287300044991305129420266599312765034950136225294391800706111694819376473655614348575082659400355277616119922592284490208587346296080300064162432382289624812096876328962335873568651991830858109175572223250987019703078827193806599728365207332492945115927894170772983996678206949504267629328069371985670432052390880320597314666171527912080859752990809341026234760936306173174290095957080336871887913896974256269230526565247932160372260074422033538082659444605773791356855576421728408558338805839445283471136900348131523310380435713391872385784791424192323220431678660864259760977955873142912302730523220763758607162375038296731939953091254774427223818875989325937297647433370469197539741178401261055872819636870153939985039769061915859617598628498969095791515373181398511712396355614747461565903569311789680287039538087078903018221640324320894202155671958843570154525730383140092442724873536719100400048519626248580700869322535094111581797750415880146937234626985307188224774141008919636150861857346818148275248399855876236335733837853307103946875677918781435129254630184235319931716290750416655801550949234737225408525928833835506638478906091372155807878516099321005356455025759125889598865193598605323356971407570170695171378637106137402632200616032208206642424016253701914548439378139248206974342424099343304466276675927333928617368474109766466381099080704910358518417445065639949515235168400943693515191251096485666718930123947641506935563499666918584243349227002974502646588214855581272853928202995072919320639208237499956807860188971814418590168339341517626845870337763611604177523253649925211424565869895788723359833961538770016666544635024173448411023253752693504747086837977728632637259498880290864639629699981033180819656186517107588417260478797496294027363060246556856771567063961243060407467495184483854464623047524785406542233967440003138134038845108606725863189988753868473472563475807363777208882008102339436721911725432042838330278839048180126155749793479995226148405535034143494177062913602316118566621554970727545191508849133289689601423049784539756399588426499741522184270401911937206583215302282820528061075522035508553486806131695778364256362436091170811105226225409624076247338143424037998963607948403232839120174987000294884769350121415321238933045509208010095148478908591050433474046794942155723978788781348378636004624327593689407572492195771763217008096341996214156384221739268071508934691135924922256917205898752052364111484592470369498114771090808704849583612013946984164063095251404147246035660285296954592313250875746593252247025031322552872437225475129381624283320920363918519706463538468910651244319343560966989219428887355364668647434732737526641520217097064386648947282351201651357298504421937858525131160442205820844966890408721580058867182673683656774582699750440269133058910213861240739890286188164296163226867675240664184229732472354019836512990415552357903897043323086769710341764712274771290717021763918198225804941424472760820224252250545332025510610160354373130612760131877791375781047547543652080059264820994557291800221567478913252798611207508616533879619841696835427799106652718364574096516291011475977765889038361553320288369046001225619342553866435498095957520395899989535602658018149261992966418180970604264493948308820002406994622047140942134265877521360012198561815851665503532435175187625813241971575719407656334948740428031082711991670780117417584211210126604554352552002667407656806746171420510961134651674650759051062206717672252376337718942256320005679174581892790317948386044947687636992040871758364171082774308850442256213498841137909871698860125996152420046661910456705304425768612143367353223272134637557301167707791383229575954847267598900717520561847219948518712320266742515922761557991531114738552257154096530012326023134015358363566325991424507846128224545035042366562302550687576125054115090798494753379507759715176147760585692859896356427342138060536278534794525071949319996829346850677290979500261167764990857625752053614473156495192001007062066683357944408976996033719943460118733307524221654735390960501316982596441063284384405021010545540094751532532353972220381611879576654320846598377861464169170149279920939777804861829162095563546944470155219188920341173024922000506311678136605381035245756999673801255470758713871018887239440842209018798881289407932284387250858858409038421897877182444839001013914997486544986129728095835529784037816509554435002904757652574518093577961785207756977566181043957028089247652469411534872880628315106282534961305614731813186948870298261297862539468074649183653420813755750203383189979879846732078871910390114909796285976629391383854097644268844626766846271398392627524152464743859029852126694006433900094956419800384081346241662307867734683475449860463848141200760046189104008427374432971128371724181762942004425024791687566402821694316513464707984419435802443876942974409200469646626833074388521487303046860851775967683848271544633616386074331067398296880500440242110337471498250457564143336289921632625222414563904073576919163645368634838493716273119569013287089275768709117503834715342812925887976432522343422767417411456049191761268838086606927116192636945106342493591459337716797538176342978730402291740686664428121922756278403392622078899777376186384005450943982080421646786984352532186429458918596388368994234071806412650069744546000820988037404806849281877366354622357947252422505706428697914990844904506942682950659303684371396639692957634861993873683761741362643170468283179563434889870554512606089122441160750761598075834134398830930898147456119575194551454462758128537971964569373628776115179652358103940712812603175226757214319995466975983451867296381264680039516543728434184687355661825834780620544594964745651051873182595426922974173755382231853817369911127361041785632030175302914885700123477500656699078250489073219538052612438275674059651296824916179778004511160331787902149274689730675866610790717218656155931464554836876707214823605186452646304001428537645074425395308331314606849623813448090156407076476356127011387823906593811162195466271461467094531390411419127020837613601723958180287692892885443392118957685990785484344906356307485688474511016756158978520924124622392298355185235547463741647102888153599585675570710917909649814041649121767404284916058349493403699127345023322139760200775612957589701361690798402286350989660463918941340984886432697035754070076759949338676455057058854561588085104426533989042670853511411829894337058659348388694028285895919293993807479111117675369246519803588974902466043165864371822232884856232009759654429988919282929001613655743972888130159088789845737879801871929715902085586696850331485630781637638056981881957137672775966567660894406079678485653046617497089992357340509992799573624080244642911918152962439735068804976270433354336826595680449211277464869135283509048206320914327540504745638656839914045142752214993728537855091102828589442955707427870720059842970845329605235050455071994049205944409207395902152999581612290375499779344426389661947813916746754488431213430249911811070805737164763812580189808845741260998209674823345158069106486323536779443583032582956935036695626495052569254923701378413952649979147944743112773846289678145388071640221464849676478742878314240239635472691797573725271204856283367414466748469208957675179804542463936742845101211661148783936307551864125649705884717137914481421802646966633748859372776448028375010415787826910913197407229116888994122984307173345790526219738538357381625129273778501257793013533875512714612459704533728624688021298395612028011440638001874469627159955549772121411482411065917035523169890894151466882865395154113139402128885688587884648709566444097954482050067048019120637072229681159502858783937442024587717084001170064827800875607657036823904755635751575709721381798840231404404269489184706861647175421551510287832320479126995475508965887276136830857637469255264720651415549420859831164977870601498315658368599791292531963768396098780484830912791328104451219948674307499601145325330809640551053071943803067579364589942226603271248748473308040601959112261022719058966778078217012709579554783877971368452842879624517630991075966037165250394551106420760754972235420279737850702729898665916970648739648808200944652286758935083885252727718834913021569129715891258367310412398164805401122298931209422568706987467761789633094120774786596176267754879517562930010784546119604139394355774654180145470874194017118152026420424135687733681686887599626820895319873808255339721221925869397760433548150925645190490562343941306055883373421099281530627336622922832504658914289260331603788289743819354529231241235488601439001696521987402116298490339347171432712752138792957048741360767466109299320670054763118909762820646567936792237064973422633550954326055686144587328713080799109491973470513860560461034649049670255114893709912551796542516334820219526898865719398800733718572880555856622077708320508224704360955913568898092429039138371874754796898687527681115783480503920571424490923497791893245996054039322299894263734071994099054061096617013032782192204553703273556630745599108125837913896227444218675165455656567716425269429627193311269060268722679288731166583295391546419628394382824380845255488042891016422868502808765174317879349484940657551500985112192812820041406238233003990241213750208128415607530765869019729171542763455921429898692909660470842409875509252275126432868680995232285056322129636095383808269284023371487486366564406007137476450606880095686402439198614951702107211703242392091918559327791448076941333088988329532681624703087719295625560263311224948228023620609034981717154775938131592407052616369606625246749946941623476307746221640514614317891567486020534291634701685326816487733088682984749482998348165594368098184917533082977261139300353161188556550900803361462437999525590946038083555927914450789970534633773497794356674112484245938033589006915434354942351221446466812146651737401046826140087174695796858114666424337269519690639146348847807726888297183450015184519182392862211714217852158835102358056241055075539351230841354194145216529235557288546696516343564038797274052568513007195423665087906813188517172951081212666881368836283789777942235487183318130568714055504061698635994208598368731867221215141544180005184827120066733250764719184623399059557809591958101712881600181047595735269694419948371916363928344872260128987973193329232520128214618808459877533562747288583249556389872711767202704046186493171182648599096015988068308212982360639742814537188768117189906446577133440485500455557671685924861953837595394159667623418653210306681974288998603896289830177051629920479106935188159098697553360371792795297637607804618229991177120476637620326360067423804950093962976021117348736294744938524450156467009245649570274313797233586100954847234606585061541376317578098904759367132312544788318890531825800285629993506554493069075180879660877808350842825537298099249634074703931718762642752516724426917089281728797208014957243983835169054706291741873378760080396586933662548857103111683708370494091866276512607947433681530091685693807666034898860756030027730091345795087069442200144386179669560212493055496863779640907524893333871192047675212083260339702124951393531838153538445633631877690131871773917267768429821256046363221777709525306706261651724104907698430252166628293228119967640519458987437749446842996424765653600945015492439038985529238561628817938533149959040014253418817721749579090888091020144997708841604125784372296015225490476913918574876688454978724453678172815250532382760226116926533790379265654030993844359304310199549112789546565393595084005253295410950100148150453457837607987204436717012863867699487738922636565169701705664889231282290333036251705999905577502995077805044942689771423164831280513822975698236065284999119973629822588616917367318342808209758604063731711893530138963590309155967488525487885658709783324836718038276374251245593704631120669627224269127356942347722404045242092098385039427580162986841713175772105591750780586717647520038995470809673060906558188268412003500085265035855916068715670097100637484910904908452868874425146835443109350241334470062076882821877271643418634907667785086631885846690224148981097742285481246614904338082900902992633470843495757284313699565363154253697996188718026384985516552187650107729888298747000584602584344597438179078758161365572771423203536893511606211925271086880802219380760526499855043742466139143116927220396521894182740121341400299572250268206048893632632697223921034866197160778840816365991801839375339308937034940494047208742128216632556828656350208586486355208433649630652284444914918600556851789761600478985721931435609902084744890029245023125033619861405189399645586803303174275763078081638041240646777991773587889100594949033831694796706758011972596491724792386096424795129070237482696607911947734128835898488413852866699276129412652661691864619957479886058151696421001474220554514300490221167837518521994171161972120029174699195044211771983399514029164413554379601713173981923290599299699743493429616002789757504563306463552295294198530254021494230949878825979992444042144040888178349266074578098538827198613813078754529292261540637959447516457029469996918925196574860606552984458793048164003020699900169137141587532540289402406560272524843678614506516670964316162389886071255689039574944089519995384209679518999651423311379363826681092046759422807662110533331507991437115029048688279281539460772698917866336588393676000387983177089532820094355050907107111610339343779235877888460773598507360749981312016209387648492290839211754265664211271978655534874669658866426851512949024980571532020205240574154765480210897146648645066938182590970079143239489246957404832402433607170625462447343823027716969470744192436195605666690113848578573778143550885818834586062063115553421251632877238118731757686627513631035851701788484916315076088620820120691617020449643289425578513688064668836806126505693948762902085945173650346832682162329410252033247428375954506735786097522499551626656281231150561693314422706583606088417469179950474355953174416665894410168650987655197897744534005106201764026286007905362285164384222135073638507273751387579010433825655356402793608045349990629418707629704951164653029690177228660200967697675033003804023352015891090501470752979160949341001482639400646331811420019867423634931524490353463225406185194847370185654365203325006253810354216560287577789672869492756526373911557621212602081711724649838288545569225583328257409509627063305056267977035836140837357391799785388324315369338774529668518056949308001894192519743043818727375135855704722310866183228242378451912748686698960318135306214655589377521132231512916512885972982094547470840954098419536218927552018437793122670487562600752495219189290255763389601516704847905734115357837293446066856079086208510723109387375344541714225762200030979592782705016801061269565731537910000384927257334971011766232108535497346764821055775753447939952966592777731284378344447239597880285749382092093119558510245600345143209337804204459161743872410251976481770562408252291175405393463768630954641702777675143922720297393678767316971496313086042827699085321123597440248951883431311300080789060047166296769379585159782618673730376091176863053264907882232773525175494413661319918485446396990759946460947527042181327676213310054626367730946987177942479462176734499181324887081630415873313317051282283200175633822189476261765451833955098947840262002479479211322591308675516368068944391330287306074189043937583532430204037959652961522500033015384318699439633649237969469045886600886143630290983760698624461354089604706529188737718194933405979898382452202026852054588121711207153912448508400739574819868745660905956654951489213798544561928107659587062632483973530194444228357239054560020396984495054459992388128520626016017545985923610210879862923085765389840261627790860019708013638751410119308376269214288026947261086414484070390810379446078638192869462043958429721706318472072168813657098721957744712210550861514102724331397246268788302807547262551739312425849811105352631435953826153922815830272132364094565997603392695018382241126965009508378851572271469056702318708846214537524741490886161334418190380701877184782743840533991904717607339847829247177034896488422448475858658740014816831688865546251825213869497679709425033958196847572002545620602987410565365962217632372595333417779998304118586992765074994181879998670347945830849268540406847322515260057703827751201744335435582672457846736105690208296255417043269288612576082080210281842550620973960851903109911336682396163547611282760783854587846301847186250838016750418374573960784709278207916099515020813309624098721987462802200084831681245487743263656814265979135030553833593310011336696618206302007245997126342907839848217335881246880332165523258916878966259964047829520112339167397501663325009947599606568213869498276480173914616437233182045989800712027395099891206704741457353920563070026225400122021270961433712008776368658121870881134657627936063591525022541906162663944896713798927213924462836833567624063029505169690000642087134292332227698928145906126379339473340101803083038230536235569086978306581687731826334872103936400351524970420055823856873088516242800842346796332210281234137737745738053297292649800753011501936164157375193523811936482449673985856798199791641687384848971131239081441766776283631298516119455255513610640330459280883851277185290102807624343339010403203283578986882305020429947129998958372714159647425596496958762874614451223373089551159869062699252266986965320417632408062223503235589658766194869674109889962817608449204443476253014303663972274147300609922330363433903468819693175398125008575443165946002743742960132030776665579910239619218313753784311593765311012378169764704229715368718597355703128947825663415930476353544479539536369267030754758291709393175119271977918586734374341515108930557424224891035055715495250770147911957325671305795644243436532945109650285718628132691826641928646556370692405558594298160701089315826744969163832001850877208072394505815378523084604794147542041628257377202410329119972273465441776527247820462397427889197710879820144295553517273600974966730722212074551326577433919155236216514915311482423816517981351970180756227625907633110785852933550859670699338056093551403514237680405586932367536204616867248504194352504175935860930823950993892341767395987430989691990874213402286756621769593805356455193110750846686742664290471604818367644423412561771563188497148680369813217662317416391608342981659683518555565664277247908595811416323762525303505689194911821360839008827302811983403137565672763672575504023659566359672005935856272823893226188571738660520518074614424295530777214284109799232181861295825422877692180481127552104080300143703588190031420287411532450371878294888187271115567391732262524809411076773794695530745961263339724993621000926830227608413252516896928447040921140332485722214425243784718471355415807288076997060778315226388424279223065161053273318517543212243878319116081036675751812652770615017876116248227171650078764775672389833956688518495618637359341844274903854851562922315078704388157779241307888038736929724001291344506965700633474335097935457876135851268215193493903417936321901444413339483172101100193044231052181209397462161572182457051276682781378764993564620871959551697477731223528695350701819451006787190746198854905266728558272736778956692743881629632826926367645204265146709188210571659385179081706145023426478425441365307518923781373957712559754460077088560044469040431990234253596184911710602829116432114285525701718273654034523289083809524636934440857135705064521388625265164995920145560655137706882994234601503787087989911138131187969326122068912318268400061803327460255910836058812966267167297375040430013722454367850916431785095967802564131186722571375954702717782258074764593311686041565923913357032098431506336445767495129905121679018288930266951720577054974390630487091028908337361981906787788766488377982267136177291200276616499318147164268584406254189430118885325644730288189247921975239863178000884132957349549307537430287316406670664248841831133782427065564153030703974624959493369998957774172227059243860916740912134405905494670527545406473449739339259600334362380654636027040038692601236684368175466964904598930388960016343989395155434432085093395054859597326072097496861518179364920725101104536528736270102029837653092576128896517237236288791474891046492178992565748720595983075945173780327103344874526297609716117227365619724059901997379362349320011401459908630008836003389327611445926374321480116448648833010927474760765274424539594174604978326808987464172817652897555661493536553430446560934213493047839798227122406762110570948170166391220713183511768500079088641462318698424459586774220145043934088559350251934391004106639202379747807915393870488256819127035499566505547658190372097655062206137592059256487476640749724162685093932362111325721163655424590322790285073160901309116031555578648824449383686343996148845941125981672875278877154311369712841685238105438686708412452141027883351730833996973825988508536302827758117532833609237189963326280454160404363453944363096673652665895703368369653525003075176601532465262227271913272684172310173470960128801500120430572419866737677089636986811846617644951431997781472102002308618609761375499243331002102512713737859305660471221058556406449064911961898450985559888853548271294468421189016018751509725505132325362420638770610973363400257804721201333539691501431548356750566802346697366276535360846465159880144572315076681185019698955106148666200227051116677219075540629458976217320294562773469915070079645329461384205540446668183873846919643897226337356013247153155420963692394556456104272777253076760953547954924654373945581462047351444502968340531783335288996461637927645613110183677260301382967555202812408894647843431276999221205208798024423597766742255149807274357009281372882589940546213155083850029642822705059676461148364742819018360938309305919031674199256445768991653195865217333527617650680042824627656330449697784706804326176655770595677680440304422908069144688951403222166077396127790228846960130405312426143228106890065001046918278913961486855053680668927631001044664751353055506642778270820728817080820120529693567995152517448478897771675120210134859384412497452688393443129906396105734789533149443129290483171259582344171328478268586174867758164693810626488034328995762577397638977713833702603395734360350778873660026898678294753983964736413919920268815336513242557536191607481376772468530796277359902670319410113453424488559159164295756384383438951194521088613649869760370198420759479378816387985447961835007868922732892782046073212921738744668057523452611722153005173978443761576234645049626888673383506341685353665414366428704429661382602331116587471507098943752755451868630632914980774836757671589926198259775884715199741370262994242778763858972048613446358782286403637614693447292057680248712259154380606182943429361866516098914150828697717601517405655449922432010878237980957533328309395291384321525144265985452677131126530548371010743519730167665815773683188070118674511773527750210448180503565830318958417837183224922302319760610748958104184390307041700333268414199485410692852726589087787775813547493428488183798951090869994692274977900000961028520134587692204828794314033452454843298168720417256285043244761562568633152559585590841879025981919999898342901473846615582836996020110829040753740351766653902533099933263171028281599471937546103672691778623954609734489273799650172596554479854509614810598743328497733274169766547871432879698727167594197158207504224791864537400746522998136554948296292615131208325363775369352647952656911937991129625402140694056834741298644105833723408130470752445973781232535038054731740628910448600268699993267181568455052416817103230984716919665090889062841845564451475830257619026917730283644995415142053024970584667992168704684161672007800550976990072708386520050904797440364486696636805421780265663719171706381910372086951606410391704397788020673038328107474026616552703176861154411084302942687421133522657857198427364795615983277601603408077048105294430216620646616065920270851020493630512059802078014031148205483999616623024993228682600002914908355747556848670149671834588339284621950426087551953165768587229172171798880345274015084714964605661164681940657529059114401121996743906846041535314977526647090763762385049352931367554544649616997127982942048621544798794381585781719269479410991815581982933443840047682619034664447036501188905763968062520774829869080056762738733797298260622721870874334522601875777991322785694126959088462340906708410329762432790729796695657114096247800079643684247303222301987903811890836522706330516603724681567118336250943900635490134037798410371266325234734293625924250558430268835285446507589793102157887661420472638444905607515646379651597869513941430950631673604031460961116347131515420075900132435825547239303497340756296675498199552592192739355898135840150166139891975624214967302242227597262642803565063229157132350958261366412209593787048658409612082726930230674549899845720559875237081157511416080298405723281832326147138062566153220540696992247127564595015880431867130956533545134815844368467612425595724203677878269898778317678028402993450829311770706839995090286868051929005319432132999683925837143449025233176138940566389170942258719788521500031586521674350176493076006324701138564836571915756077032710023210958901397427755727272494575370855602817890826444763925810551304481010523516985692918262432129771508859954879134402752252804345909906155595913942772315951312348300249024640338304776619367986884583365608861550817504761755404149324184979289225967372200972778987446883825883333807466649333701248248932089499929465926814451633215188077311113553365851387243808238654249668213141259316479713760252742500995413016946031339639480489087490069861277130835215991911211796282311470053365576706864337925373270285123351182715520889671743144445732963173651785953417811638771946032506023641112487344692877625885902332134858447323498977013653890295778553825964397090621133079556054064394146902829705838452963281988846579572375482322275129001710628952707481687974436744395602828529626872516656798087120188916428356275770731752712194386366153696809616385650664247817103622809372050585393479014414407712481872893253822450772629033727444095368749671035695233660163945213017275862609070605515819603961261947929859749799936612285367828047897178266724764400075857896630706054751578625519895517101765279330583899722832509763198237167782113128188025358685506542099928814962741184032417391327776073805036931430854837771112816387227889580214072487569299522237124308344697043522431881260905596429962196961273564396377250252357049432878205941643450528811548650015393934529903201966681809755887946475562308358895064778932287218935893582366916391046367304100279617602267861800787363500358775243072501325432162934939345616948192266257917737488052864221722688043509502631374712314853071410508472065097139971432032297332819651312899439183168869230895223257010785865778838894898362271414417493657475256551204994223007929934925426579338831717476370047598481185684208247187934808008016353152080761244529026978149227685655856789144743082742512126191999527561595077920806279327906226585851938860201670148504637861124346286487579871029017860303843765895475009040230409763609028864130890908158284672709880779194193805821786754185098300721857831460293803741196974141564100956683340506973526836084085893314381245509702448597109369224147013350365444029116347189053883526575592454489838237842338844081637735959162242110438268367009889858486535730036662671435967601919743087316175098634733324808881097584939725864044292614861848057721240293377153709337553939022539446584191524715157131569068271549378447066487727488136746411686309935881364754192725556720436197896039817974772548928038938790991721200122063654235313092589188882361219210069270858447567709269429501550271860425195575373533158792589606077929607097943330168731618596612475266054042378154751242998939515586017068697919606862703347424687493105728548074229196646409274991329480155530074220741067192829396083869425447833778570706321698237819577618354855053036587852164014654462429174601442688769943502657292938808802457210139835563442768474643396196175489582792978930911373379931008292276479636809461925213953408531881595502508730094718395338879190821382755019165429403506882516880919807776458328111111783197093354660108009479149293807598556642262804363335935972124729521437329286167462402053994703592205805023066909670111750940970801764425259083042474268315330796775946404008588428101130755992490568185095792145981100105253003790930034216145503137572712764015291126266241478898486741673973118193693903566175160855291557121124979312795853712767233284292281635673343137168576347673890731994855299079916677574558518737724324928846390070473883173147233945413917263013316957792605435043480820534703960191460256570689822949641548844321604028656174337642979504199408310237869794242579429786709224061378601852361652890403541729069379922991173471942947987611468449414048579556390598979449678914182430363713051599576550487789103833241874461882432215227678698500199197010817852038179814423579203778937137281261614147422340336783602302426920809171972030312415935594033018429681690692713727222826912869171605922663046631924034531391502673541113867301108308124179405741647654813636828178506939484132712989260795640899110065874148882402109720529818436169153413794095276673693900909624830174975724776523833409429203058799585751257687070956248241589349314784845079820568092458029786640191537023335955097557394177661184084691593475555866508524243457061671460632580637177660497462853306345187989893624177523840102958708560637798748627361686236635197600147121258135131584879213286729935760795357420834513874255224128520148137726565020981223723485454909372825068499282395273136126837516633767851766189588894669211936530671883286571564560365277388443628040165139474520162960164506513464841021586935651629036431531953794012256794096533931824011110584091965465844192684668469974519914898013516679390727000307522885624736022175840330152790679071683712508639927285630085070673853686826190764440558860538260828639322788054655383440695313057657993383684765544735700362557949677568341163668984183425976346818942511213788727916599239507380804735254202707771742452118545258851291659395361437577538257795866846582108909916607521452182484739640088882964855877291724461575038882889232396995365916365483609945279246792296790396060965547587551218452256808931071944033002130859393080487926992685250580335930758433023210177379871337819323672982682833139968472490213883045025546094769410808611772817230049602421778282677678683056209127164940579446038952248759816496644969867155721839454615245746966211461879517277066256147314012321385176802251393365880078704434790045962791337200873060352716232616658204130855187376512531765663248069823928813925803643825578369775437494151292239138873471651652275171837035797847199275351734416128115958075862147271017621730009490010212137428882037682190917355434659498898263632478466267627712049645836470470379807664834142908264677339079317580387056880614850405395810927572043527697506859359546996889680545628754685793646277203160319699111370006978675059864859554840248295961892967703074947695544734612226770964359858837571557068738803826723879044972816728918536963630590656426551202828451438180288994654127962464250223724129931784259169656624865846130752927987557700855780728179481717296455863139275239061402427091271451452995276370830802558177811038748399675356075381289604641926261128562504296838056001553687030381847446504753328129689949798066702386978177080720926824821955683956028650791907103302813348259413507603528316265007446279435320518381170664275438004854024630531674806994391366612900402070168191859673032325879566808812915975964432489366133076967661615907610264708680799537507147249746248334097350103302888254482843493436211609539409546544842666431692960417963261162472633455835316205272102471014233029954947015188742597137466114660441635683645639300402622485287358424191439635976296977016585799364931799489136334981601043426604056177687097465336526668976551300513441449809492204463947463015779753474463225603210009587707920677239507459524123201323248474507267458534129512734500151176426481462753415897822891232457437631032190559143406869165020900565383470190019389978446017610380441404775853398728045127134385899811070280587939384792981516420803608392216421128127991182151696387102914990928829878125496430852903839817320572768910863653161104623527097951650566526049961743855463322382365650245381201144769404599672445196211612139835696731024745491980321331796613158870285135104129482193657380097413669483754421298380957234178580038918642280950949734871064579279244475092972387477756536273344229355573356586916717294055424936535364029688207644374453775719333936790051970379635729357166230980862103791447321756313223671348978166175098337664363565539330884242779808241466450405425175324455299561030643890684967541684658858000501178285847928487226720629488867580022322542393921447867758167124002056200268456494342396122757599809235112624643353289867282088434741194537162193366018889475472480080459018768740274417593480706687858405484968439162826272237759567920635310465359781945020575189677515890404934518701829576553707190404156088401116246014276848810016253630065491064644269884663232216135488121342523087909358373430637403042793131697502298594308531332285203198818216628631365124666100276118798095154699528578627442364601285002759753396664407029423299990606693725506337667525621900675559664111147921237432822746854364729392573793527719630494116659566970509797034241934901883546246321802848483819155246241576713656898870481149406543279305122745240181269321934190351401383650259197002363213046753925196753522199395060921199261511609829108118991900329513244421691005255071290169861012154777580484071610459921411319392203573642426917965342375920484629935339391620873165470127399631355023840873809994759015848884273624608397868207975316628049646188701248025756963068774362679062784572743919420524313736775608139487165366440894881184473893383068089089652565229629630637901643647140300019179810825826565737241835994476475873839283812890816830920873412901137195071871021206609242223119154131775580576976112672922913240499293488620137559019449511997590827561507546254652119792530392265338811986216646346191160762106049575985115035614416739665645019540274947273399708863501877106450782652946445788205453957818700062970145963255490192050518668704955155360649805965879718280313433172775710293709432538176722144840141754736635896674448670780806751377163110261780218064387382984167915589013935916341048644849102098935192303703535310838008401224844549619672975847104754777286847603934348717968438840270295026029026048916835313972912221947557531040180320461854181514741247163862504870325990046117415767638004455191525066254463753789111515393854397911870731733558082520489197402833914484513671515124597036292810637969450421704402933314038829432758249327517831401436582655163907104408972252362751067312649978605293111181693633553828327467537831352067016991674300297982292922550091969148989342906621218946440648779993921909705941578612872710552499489911792275019294390039393105776082906031017982022500522178912244191131092558021577289247216305420077704418193137903776867650343365251214972960410697786304813693937606443469881478525097700664962315311660974153052554184254428154046576722972762216611456895329660322255654334922003855174028974657640672622547625257998728051377282819129144623081247500280527618513022936400037642427835275975963107867404958932460721881270960093461134736538359753483865462798565502622811577940513812017433287085210076796272461307782242781585976021997808477677235198564969668612852084055930683576120546260991709074582196028376990547650624445868826897647425156495323485923376688722666368046029037249772254028019540709032081474448453832436515269330141099725255702303440778254998559542517201834305502208781404143616412555394069067312400292252531248680959253592435281508667216331922669961928478077397023226782012480491862002191048582192978067257416647460581782315566585111186143144391321266494696869823158252466572930819196648680977035301632672853253406289014301236702193215776454476919344956431761863867222344353800603070520955113159531233367676756888077660459952454682139294048238170708060894422520429976588194841904655260881039416685585127394224506980842138786843764631050735708971332174485995323802778227310106924815890499342866804455915642860199359286774394397443751505022255339101225603667224116147994949358806030709531103944075626906742247451069643823532346571432632790365604371476888018019704800176833095053442233330608583480574274214702216498461927953397805597346782282922100020955195057837505032216427123328133533718205373845247417216285721075349278287253464855756065922017989204954757762460847608048745978276601531156531406704189651132909893630742591360757598149144660926124995210239426894660664949869676126033268496562179704738553825949862777830791979446674462358705466888829709044879008177756896148830047813166239410899970328012814022060699928843679005928853412238637463726173987012864090085034825911247011274164737708811165445972915144128490024960265051262660916736927359927568729989697155827741352502038727984897051001287763402257603962483459626799937116388132251760874719562898398063609741078640525270379350128670016491807177624576914279474420724253044069944282332552402699496409762500350797738886372010739646921136658667313693711918745225229677887716080656993132907649059002405422337485789645627768410818735262245360831914165257325012314204456488569868276853443860519096773005228948586089688046342509295796337396474381630028645981901057580678227521709521571824386593077178054281648653507687117406515912832319327042700425737434703098461183201541865244064779105716944216925615389868839305820960470826937431005479146364492192635797389020129791463558692692730451016070276952961820216598076470783509486235841957216533785641082322732981611638396046719604387530285508270895604832668894478538561231145051453044248690732541798427624584337256109256925043895470041251101414579099091967683456342113144710308735845733245811002924258173394104557474174563263888327763182802760903360059519874963180822797726559263372357043467529356879240188704784494112933470900527192391293473698847098688324402420289492501015264655432291523402843994491519970686344670797852296468585897851760354101793308607850901653357753473951481760503811745348164222637439909700925832807967752037992350156533779281003880630193037193600102002579017186351620646596626427577528271998290006234153295092992631820222280407695169520976133959664976899050189039295568756023117893017091394899969081446363612724807635504686058313170170903440061094145756157671078219399391458097399336862650574834794367595321140157591749695883509157032700389154313429237006321601590462823591882459658955639822252019245983531768397345369981846906660823523836936062930274626005332190394064072861887654938506202688833404621248736998852524842423363899634460282779230753165466159907990972391828046399201573390273361312453894932442853780232674671038547351753384263735954525730707774888566775298521357608260014436292697882638426888932495856727487874270150644748305290794203426166404736934609837293982040551273069476055535875255859790010824513024377692541613111403236932162815971958859637510337274567735915492320538973607261003221737416005617561954845125705826351443811646615786132251695869415860013075432158617814337783595124615562347866236190306339121154429687020192376072694307987787904264504736812732624126412537875505747253605348171765497900599791198658953862610875111022973759878643574899441032863516455622023382970121621819930184824002093596078908567544438937800062658932718900910554113864330652091191555832001243363407625569903334698506322408778021290111565908285936256124762927895446049240114387004389557160417175614298333736152065980339830871259505339250966864362378518470937205000624110541574729657327145807489336800172263984374870717924747123849738083983945321098072611303128977162634298230682512451980818599454036708318602882029256742161642328912041651213286382950252720066280950692517339070199659519756249431193614945183567511623119264236233122060767086816286002606716864292765500218123828908161372853305994441261609029558022705101101958074686322502252375197412892868217230731517920428060503043911426828633021949743670682903065375785654806062604697918045182768479107806838033328695173547207484188947837497574888424446613205525726516366022775306968016081780613925444888916941608867825334021349785393448681717798462675780737326405224023940828590679799790492697932244013091559028083563893731314028999417736569601453091055988128250942484283879499645822262707245151588038036979892320496647439507302791723476163800053569795836042324846861730174737862636143998671293979982961568648135484237821390079812396848210908252422030434070993982425817194228536565035360975372212942975056213664863100328651198810713212533974750554104834758238840231494436849424011068098853688993409361177742688802676074601252132452056649568869167286060415716909266899527980141315732580535094121769813952411892000295977794227999405135077365697901307717346403811803947865128860426126939435264051771623887150561124252626229440899559648026399073991728663999338220715313952339415464239990202818217261633385225506076719148810774196307544679903995073912969658829440816818702972379586172611341443462652282868522874107161073187620612647105822956848471613280910514459056700153166944545493920031162097438255013694835646016875612727269082376462990857252520351797257516231090530829620907429263498285508283754998846834593392631969664058315010301416747480130216491783291918015721447255802309380652615618276595149877029558250504087141532560588159186736281180748884131988371239064859037033011066078522990868341976221495174525445112764531116420578394106738369660511942975046518686769526432478739780442915711968851250328544134603078770354205981579923814271911724819927084964477786392230629333213548433933901742358711481739469506625773906064729380424787458656455604166527863437515358017038365276795428375197500782742653852518115822093517287268056566587607720196629733279645905153863607126470362730479876504052799127446242230369948711078822296554851960225828770446715263926293051304919866941150985702566519639289007513458391918418628052009155087094589090204606792930592776541618217972531578353684438509348093954713248558436366567568917955516035569480785544235506935986265631608434636686825241497128553296076992416356966931083505367708083765580885085243156158123795063889053013552214895783678314760174156349853127002288815825919662700114970612624903400037787490170044626622332109809527076496200583538268456914341008998918639396440062690885408641797076257479729189269717376780821150534110132202706520053570418236589282477108871515256146133237287870043691596618333093883372894558087415035665191177808433791434899548787512573799168414714594309529885905278668498951808389319618508401147241761882294364058952397571992408589251187289525129329146530587649147108085298005874716864279463177365038362758154074996543384645202465403558399103081893506849380348037869395589096880551871626313474053109234455704304415318270789420545122755314789148183709847289027270666994304039173943531249383712118295447282105730740984042378275776379446892347784130144516641714746603709764991682310250245469774587395246348832247445561917877612975355274982008521124849066374291324601847972388657982370471520835369153701160873899055353285128366467384928425368569039788989170712088356200681386332140743367205797719362311551562901850140985394909749552485684128434417271586771800279908740117057922709642380990872426446653632964453498138437689594637947645031531614925112734112385589849425919643594864468768044876905528152283334520583155010670674690462620826512068589407206148073977100327736291964306865156208164702332211447836993988819824543633337794396145664086901778025283548777785902410951249205525141046681559391388869084640915525324102387562155246239397449287444855187606969511349473073047851866038280753919771405131445256269409353666705626974000260017495797989951953889433887526954225556619524321096873084262152147410962261500498687072096687305544715218025931813438773662756066816532148466883468514016776647391261723870848553578711648903322989591549580934127019011733685096092497652117797671952618384163873263557597752064165327332947318554516148738170055523992428907540830501597804319697771216165289375452499940658874730783385293444680252551407514285938064208973142232244451616254641644854958991266513777065201963035332416051296143696523314188764850848702573622578115720637992051129385906885307939813209071939226870201059921700536983664272012874743121073391022307722477110463020766678676972301971459403392879817957885189238353990940197632096556678359942735996966790283686733143655992493379471026078909174461039808806238599415346794203252110632964178668817064979857009970556604049926760064250607297613997465366694950068687385003046847363941566003453328583909359446717062890995609620743381670582630569968870079194377078551783005942661843355345928363461843472134719682518234492075618023948645361934266606395829751984121662360706380689357168687988890832819882286211950447923198822065837198394813498283938351157228531470950605521717161537312802812804241537721285417615175261104818447128559547798676476830050913970063736729967623092247317092959313686824485635989256586953990266529546867580349455584486957256627664850315317207254784192722948833701091313381561486029660784172298692365815773047756069978464343442580866255993308869333159838107788724732849895427860827930641020937648508352543118747910718283087198982210509423979720975883168250470697978692890718514023522497588090560133297435161927212249206543191707994770322316856043463037565640634897011272759965186545393992310279502932326211369463230134935622260532301620009799335368666302265863021123631097427081833640171782969858083662823719360247604293060900361625340428449193725740517968921066363995084369625199348667186663511898458372172587293940115906459861352540948871662217946601732556456737452126956876540443536075515057062908966288652010831898500512831295876341648384569925170217862814359799732617047297097026372144193573180658861162943276611587833619582141369093835526005311584655941565057424155611122692813948856520892288929486204929370123568791418582983750181061888257815402126966708435215506589644631790010950405197179336133175529284201092478048262429884153432261292243692731662741186202454938812575262953040886006637876923181361798840627294546999387843357956124377230604621837804502587857611041612986691396239427533041956970509958317327957101065512561074785103871754334695161084520834384542759673780300813755291564392428068743010980563118771943704472116338292794609553057942359444805147405939899951543181009812382768721109149822794574144450135963680064495029705552775715554495777626505590503503322096313541906826478469978644294920894368476570858964357484543983800314968898606949157182848679129387937734866428824100830099951161131421436005519842007734467180408448815659190934922965883853218183592781255883300487850615420479292513521335978492894373738878670365569734899110258446404728488326785072888116775445397696384991801824031196579760974672372937601728621051347183224918107467166486572250651959237067660249719590773312846945371282766852689097432220999670561535450804005124165857503623937435365212371459399934760878864109438266624307968788427613137581112971916276581079762369031044903919239003100882170405828380068721918802430397464829009755456193516487438249971887556994586806822560268566749406067568956243534759067300966050862351361102779587209188271629377954971996008511708745917823939357915434147912069083857776560305742728580769770359851072722239027107204799971167522600515640869688387118368302157317439053185037864597817348504702340645309881799187116219441614003190837377370251406191987205901757507660189078889860059721505655664551588632083164728673670524475580215889957274227679998984110411892655346752925146552446172376987645195602672348276256071895304880120048590699141664948013823269692536225365630616038352208871458648338245149674625222261505967317084456358632822951549596067891603276952924621066126104820097885874150048883031934009991962540912122437669349602962534141307107806951129993964340434670617921294905376908151663977269451291463131692806143879751917425844557538154142891600185174188181885316499293140006082281869232927048776909141594583366627286206217514504481695818803615958012580725798341219747411425693125029383283892253496197750838513812261552984517716342035246707860738907125653924021600294929686421478396819588873273681379650092439024289028853093152080838403579637745724470422166851333061273872234875249685920819066093527645462338211540490813587423094242887742051184393660478676206260343118307749415649842733914979972483513716791272250641550042812679546141656482395034592702401070322688877384655575689239305579527769928965033911675314902335203564507759927971252288358564109943940855669488131001967728480632534787343943217512784665312336402467559579816285267901571396546471188696821326137272853621849809394839572233337722459888031865957223412122155451864139405027485223840931123250878792720120253035413940621916101129772305027070501571430188962187156396020313048799651959313782111262689164524828449528662626523980148378560020867246524617992493334653068620017111725377974584250489789633772163752193442392383674716270660584894414007198464729262530998441620323496723716828446499097650138754655564923247747709331563394917624286827531631623477156765692676726892084113884434562044134625913633484977240531875373598896054743842380269484765191180949691453525099582155847884603224299145922895843307713110906066837651731080435401045637772701979636320772078752040859056783559051827683272784875155883183007485565678467882360512793068233741339699966047849413806842936407311155784061266211109353370533699293544377975950980623231408135645895347475420380259895192962700373791241642774020972109890836791839595020843767192952285309803717346783485275484271723587827507994589431655593835012561035728696886797984346506810278440142418619100868340059641349273920339924473338247283595056921808768200804475114645173368778377690726337874301279241851816042117800445603365437340388010832288371204621564017287940974116872829450189700267596604579636575602518485929781462284796216462674554814536310846854406117441167029302924935595421911569818520953084045527846514183130042900797117131234300680340344516461338359148618997963747122477937287019842103693410266876600793058551430131233409822921837433138486739027047344091796836990098871707918766155898312354287753909930297276586457162197419717857062735560702948455456124286971182684664707148360901672152748478601751927022594330910689687845298192677545112034803821927728070360090082738265783139902325830349592259372336436283541999820303276826085797458236320540396529428410824325082631042560863462398313517455882173404914299368884897701274110488009603994657739478422246636733844451581513736430362210204835524886375407340279319871544478099763074362002993903726981330635483264020008449380445163620674518945443420141006880880027566969495439500897507360130160747992440158790735085600001397092187525577031708110547763888050229829870099018944077676924970235843671129483483128470022225624496980843258520589068341411256445185328519976955724291393487703893990578233115869040531923789555864188860218118858761012014289564651787254617020924468994157926314021327504876888274074872694810278111439849586372385580561766112134630513287289537009024094786588264896125101397057711273793080560242892384014436292326978121362158837507009430100218809378540168697361575333113597551401811658244584139631205298857460422366949991863388734421470328639554051903248412515919740105290200788448011609650493921016902917661000089583673429786528431263039708036865876594509220988131245671152073221525099518470279966399071947148246889170433928665764177334638958786912363948513101905768724509442563196757974933010535598393219690305808553090505100211690218563517527312895673674142059641055194898892802291753255453192762119420177177793084755174374518187147562766843231305181385018629741672703386186067175372254788845704616560766914589124296782909907113142533391361448199647566136632672859567382328331072365208690506338812371434121495773644081190410827199297968030403324520104795271823480584172511893633571638413095709147933659635079769096446906985724536202823436226520162737333549399759986298878380222579555709002246810658557976360837760376671657281926525384966987644741028652136230920105488262295939360676906520116312878837034587411339005239994265814720962340695704714647770762539766568252293025525201120110978601876032989113993930806889878916746696556583716018126567304161144267884692559002355479889645388407505847575415342967512824576283554566137061167544436753616484374817786617278896052544444386719104862089787195975904598636679241167661682001341533896489782848004090008951038090615012759005595942003967632983703431823883829991703526558790143816046517248737340008448718729312371576642992632013566417678231358659229477413776618646218666499390552313627783776804363605487839678665109660908545312694850136607341347033862914032477911687393569329442164403902233866397581059863701162499112586210123410950576968395895274448238430887031716083983616327371872169027628172794194729163931008350104907838500088436372696468811068900717836526518449986023803759704846900886864141647612953821443060699249660846615614297010632366652342778290272312599903230498555767997234832738865248792088785507619298313232807111491328118452718729657019606479396260876978262144256924792695187401415111964323014837291357319077192126110398631176110774232876488444339996906718617041766708635652583571822950950380297262789013322910828570236008827580959459955782622413368463641123805635222635218656729958706229142796245091062272905228538789612338773251506663883828242340463336415311004996954859634789809839287767392533759329272410910818286496096112456911342788369258307751088473132654330561363599794304009831164861137377085415298497967158952880347211839982445415766346265344883962445394539539210713125314468066790695841209466530659097160445700620676167281658762151286589693311143287814496068592706330936445880135079681689372202075185879911703440523911040407511348561635114068207521241742919216431559406298368143716525694635669333676978218246766242689573053964764001551688793339523376694877520958860937211376741777947053569153030394720422336947595126246053488820531102604811474547621605332921838540893164883317415370083364784865295810638518290924687366614410904049585733676354698774094218824657571480912204570589301080925582960687413776826352095033423480206012969227636901781704262792365596901754531116912866079973862987598052186212207865865609173414737011021093882766887374383465801634202141463424452713146447653287402114494658957871416083511360828032944609980518962506531205434923739200161606404182950780569263615788734238957428050554661758364536087372335608592148489459081161706153122300264017558974558637752966644766402577740875538852656637059222395093597671880600454384110590864632897307883941604562177043430145177440930008224503760743509148799475784343373333147883437484649478894891427922342344357064832411557920526449800318139662435230857536000338452440278303766046518353219737451675815387418728016437704426710679533425279101830183986379671951114558414080101097800984973158475359636558039756463784227703426971656274220787803838455200950675735741496558726002614499232725506642081571984396303123173139907802985055814170056805672067633505033903210132807204466708929468202120486770815811744768653556682797148237659493477669725794998587652698768479169475695231582211629102379214531549624853841877301137046771403576046688840836424649618277403923862423878436221708022242433972080037560246070920660336891115993801774056369959946746474882098632774781005632926894553451882713943112201920413884144251970802639819901709301863353225820287678978993798669755354372985138628034167534396618476929278282011103074488781953569520199934455602224681709967572474989764323453274955084984121775266060171892001065539634921665234409845682872912544906219830233461093703816102936855623972649867459005448238237301845173391659968433327971884481984357821340313320435521730519157179120849322219167026370687483630723986912801570277348636634250006793108624182375162787728891182147093442129060474897445936146592468766805165245833151302752472509125100075178271786300168015907801997972028347554022464859965884962937632922483590192351154212025490714023391688727953539397218655672111802829114652575642403623815165482084640894943754374565859528876941986825544896151697486435675451158790177081697429653576242967464357649993158552177840730251796706792599580004579853011471582638285961689450874676309711011140544382630778105217327233281150803147166907923516018289872995449597791165878171427982750264570132467204362489864811003505114348080924441194498330246546858230619156078049928870985713437104949774172644344562578778960693667539900454997443604729104797383678211426931294057029085045093542553118840288804225265997053050435969398201142778680454870125412589504820992186937734101635113113765231078851873771424450131672921403939101368198220950425619056805309064952884231167854923986629728911363446749181039788254925508239577671934119824585515695026156002569410618211086054063069804182880957701266126615621388102524937455454154994065969714742582602830420420489324241929987204806277580303004268398283045670000895673061554544392673098911268897023901742847875273088071826295081928724451595142826212000959382604769033180464611034171190118831837142353493844665061246637216347176590592675930329545033812321554277805858167448935999873686228126184924761652488151142503189002138946891664444224394990516175640931223959479021855214592108846610249201536416923427939584259116527851276555118239053025924706120418119229909104898376984456419035139911856367981565232108714741613442528426817997472699543043871576061448482807069823168667423049442987357945788691846720956699980462809986569608999949578974516840593865687601314142683850641863985405819520316630271047067907074650261442958502731144555723521115546031606019509068944846551699405173927705629036686023580909454677390382270930265391488246229567169803137433499988459383407910771997775863951389856159967990058201480558927940885200367377348967339981708619203712726797151163462976663589780771332969968804777283745428696884093851432590712050461443345262117568093848234669842102314336431041337310924044738570748768635836259242694395644566972057923912044470987248429808970500611546746712691284956858326530404939782418940949371488196236516416692461370147289324081725155948973555822207118017802806364252166021671994009350849451910917657755364321091270735463172973834346257620627165915630657988643292387495229431805401570200266059501624153848373691386906909552126268270330010928815379790788446313872825466460002932626589302670696326328862926018672197347027941044100501412503987169359279900609839533699725645888002530768080681568740683093478776978623115809793594782130610497223686247603312225853552111535458857989810081885610726727002329133917587619415627931695429928235443915389908039816305739557636079958526220032371010440613043032729051839681472520060741709442259601273036921773284245934533752382824419883243682026545501455644690855294824714702477746076457992078224186866254699907300618927285276626034516113155317882016639950521525600290102241426476159404620269026092009642208295312280750933343649889311988186607720782208262281879502242891513948322910413866587802107960128284593276623696540128178621997477448355111515255468777586245436133298005497650190160978260433906971838805816299946318573210749612224859120781900579705955789551108772008670607163685553292570351283717502251932761537487734120977985148758710627241650670261906156254035525376086884556566042428382635393228623359497147676779924817294784204888448530545664194777167369374041493910999928172978428607394051132925990807486953936997420361494879785247391736406601490132443774442471237254130730198465291773486513812164373601836713307780854836763834183387555081446635637875576571878348468975430317624086741942412617842545024133435548072033878625063085532756620478349063927689793768646652212098810573155729413786177012350398257705521970050600987448273453067964255917333315876360337924403872058416553146269383104238225093417792161840615899198010883213864264817600994414656213945926278707356198726312496104731945844611508199353085630714539002784900633474678751282956754096152313035998581741245470859344234489234791048219087265397748642557544904988576276616487072337635640801495505289687106373583431342182255240297476217884026217951895983250198215275830780187364655365032349532637870286417801871681484483224580871084914638471124167858158758255202381271501228852066433767833778262153022692942067779118564671683114756297760694856928033777859789840802374863004034640390171632367898166225267872166461979674730042392445852212476876286147014909260372434009118642344783567031400188034558088487391300844011524552941326470611520341792101631009408935721912695413488634807950248772271861798520287858288583384980180602100671399917677103806750514386800663706707999065795142596199290398021599397699703948539151726910768985256331067586983569889210775214424467744855351757079150174781569994507147655896579972168803566204632904018530106112482833509762544378050130091354560959677691217765081417926790302891866288360176167376210104165738567151284822079200927990463043296961446279327806960539455288127402207090648877285915652175585326767165767508949402156918443089187327619615707342301170819875971548374688819211585700881593409545885062992377782556702221275181799083021631124878197535198600961405268405377794122031507062492341650630536857124443158311698944323559123944370741475687924318818218163825821682141518650871684693412716935818159708946036682436450560701498568715185156922417187490964966366898305979102639478728507134540468031695814446513537946403464229278557943883335414866940025936628992487992481247622942683197503499365837748448859571800380721169639951218618492604123433135665010064876974778465945653814842370238212281462078940389058832132455002877222348710397727051899716092175367637317390572156552920956840959748381603836504980691384247435738409849329360182281385126998023556895482623310958297389716605001349630660464318369752485204548712732829851028557455774486346465987661328625749362662994872793617757498467107110942773983455044516318153807397515330942329734403879562259271974936352590707031110394843135017963098543903147598410529352078511826227733029758196634072534532682646752897321656392812667728894291490906847412639853533448492904582075722709369805715658874779922099160776880492631757479676167500783608380207755375626942835704160519184881789721313093174067977043927160089925740996499685789981525607310326895171224455901717360552900768369318544783598209994194828130806755749817986931069955522961882485830961943078828593634948578523436468562370157243872223493216716355413678779419426929879846436485523270707754096714596916630241193372941204051675170732260256676580208168655683642418023732788731698556872506751221138105435854635857919690462757478161656467842061745047767565442018725873928466161994664952780470221805332235656961187251830512363478228178681190902306028036265155384901331008874327832220702421590287945443279311797054837856685198777480829342283677447304217560844498944488577185496237398123068557948738124944415684501897224177837074472916649041733050119733096163973705653242336468500739451513990723942035446283216609537199890105370847073201302127413959449332385486001411606064040330151624326544623011422143187190216961537022698326420614178996098365414316394857098973228325734334028243261609967298838708441892840469764776353877306000910123939848655728707533005395194432878821368056479078520580811430111769625032572984036635069707510351602418850237176440899087048546151750460919869377638134003865535829362891298878302400403534890648584333930770435121865691048232377410447609812649761012829621233021856822917997301195118728179760124379478388476033800044547910085021560492774854508302441292230824112268449694772078946211899645020331185832578773391960291972237852057464835523800372107376124394327263929325852040396018878121213292259621483199857229686801735633054601688827085399156730995064404340204078566033116184428812860920126626155365752478864439170389688090313866847178657207260482442033853642465187939377405891020744580556218422521945951647276573569812818648717458338691711496141096419063031484981676750771881431024350969747896074403044111099201214962342889120730287184564462250556769237713149987028132248472885109029242315736840501248671745844858805085398916809076256385577367016396870384887154894317995731369463243321923400602087383958702767209636247909633131007370433942163925031638326234547666754443758996716842359520726202772324865719839159839594587461297573317402814809695670839390339315556556384174826091227285586614822653885934431869863458339961043836687537304976626413490149000440138857070277073178670602732970002628076405120212703641653109836868714156825120254487801309458997109024784610247892669369220077694273372857143223077065988216493403697205465155388312250318207536477893501682889773518185361658164271007513354201910995510991743990649296657497619886633005444023498909659711114029245837108285254000343048485977500702462670661213549791773253736846708558757167401927885171617621786317477987019762153467822403502439060933869610644713101307153963960786958018114372637928534576489094664112704239274047869993081990969009888450972888358241540066518792606717018559319719279796221564451947369774351078950228542884338684283535046748508633343908082426496405008991825189848395112437232426530528770833670935575401587581848905905125732765888664455500977993244712605986654413460589595151934364344455437403248213390225805734968784608675784455008328382715901922908879791061905442136704988691504963382447074756821724052917473379040771118298747076920953419745429638945227526179889107023096884605393205306803380382250453241719207769285297685231109277964728055903283221461970749621454443709486857632596582062759053921761722483935239186929513765268228554783597276053300806000684961048917962929908038248260880999152730191605618360185375712625109476312912438282137813736700947542754478123907877442406136191373881706928152815193064376276825154948833495496927355781304841445739100111660659150953214407167115711141274624411979556942615840546271582841959442365158443686491390066716674463115134161760159403776347629914504363806031037204651318916503297177693345995167517257783760522153016827747932634696230683773557348188279011487819562269606719056664972043793486781470897078677891475123693670953149353709462605420059073903846099201355434779134062777059828267026274783225934450938678714919965610583465983721250251699788026898495927118525973173911510182827553072876193300465725320753532221176191789474703506321257530893966116454790989874609048073602735261844312892337028980718564211485281409800678741392168698383806671923148211837079722196771157458082111962688712502377826833193647619362800530567873131899797702308727768737207328358120095285497602336834769011077299666055198664987636663431117303369672689216976242980626850734394905943164301252327119153967076262207574911947813572861231051440990399186645793186632870426285054793095119926977630125667765164819167999360165864952109467334851924565170507737707545532294764951726566051261774534847855730389717916837160553768193246867477666518756749928296666807632452643552580487251762712545048323803860748260900578482595069203081779407312417662610451989059396313178947585420243782326493891434481670544949631954004714657558937236224725332539743393921329998208346924675830746339240019737775608550636238598653127602198402126264131772154436277554866883944832743059553394745839519284609532776395330774879115343598014226638388938125503611934876708912930533566635406074226883124108030018192810640267481830289032568669817426623768233462492514356415150949564460010599519742197013250506128788590727700095398896315025056416379738532804436313022168454484126263719288453433460075255407670933716539889427719785417781772042531094506275197804067182998918677875016886064144951502031774282684025733964234070930622671048339761991106567006555192199320381238235857079970232630617726259392056899714770193717633919576997967416509997235571421476149880625384460892281551001232106288768967789455732068771036781862833603239417053665463508392119312348535727177586880635730708198207235085113455189780862888914345549606200697573558934237844514438709126099413256649890722062381489459190257627201630766167363657395100470477320224528547643663266532704471375285449662967350179348519618976099385265292485091128398064850912671629012731761012935336684098157667444915643837236879848044136519693506482058608457059834300241430496505819078058377246751669912703131832191997990808841175722637060948925789635157042185590536105916433940182190574510776243802311426752711690066772099683573749158263768700807696859378102789545660680669254672658629532207028608947137744477361273335382399685753072314849892854843299304367639998270227630843727690712312595187042806332993004764574771523304088254052535119375025234029614838370897146591017178070969174554448085774612771153852809271885899147663388140250431315810059556151194485334334824704941990963560089570542762116718421839536722033647504779594122835247083569626460870446958017923346853934534206324193784115404399816047054697661263632974973993628857756385846326920867505622963753543654385661124375874746046710795705621378719800800351355205238915014976007088170757487464003585152361792612240775440796051154064615202478153577336690525229161336858481108725213597430733192672780608129398897083339008007382593726765467962647634785731028536240518620198495663816274354643486591670457671018403520568372673007553222867640263015470115641481355902681288444204017194840629198123323855430523292472707662199317613348851461845936905300958774930104161476476963111044120698922142819810006594441259974384970631898995121712818596220743854050485353480853467893603621979288235488345292055491426850050251352668108336956396026338185191763852100022276357886768292259672775886610641740189940525753217081904538116769056933442899533029360314674520871915779726606042670428946386385279270951025860546640322923143443541433249981595584962799213939354614098812967090040403878117953802853307496969163439919796714256887258630097438610800282016847978923797527385495523651378354685996080654136398296831714587671015451285841625803476134373941885589137132547161337998160157625304158297064462212606940765668163591506184226250632869316532412170046696110366092521676214711359818361398252262364881969697035644415132118415878958118770209315865216553987614851255206996047600731260477930860234454508381593515115418396518305970448487822490563446919124151273263158689642948977339628753032328187781438168565029526175210579153529559506275680314144476715425436694722251737557202824589598873544956529199404241490229550165078618284504764597253123503013312959606864252908910579768147220710282615487388109684117912608293245564629231915072926656231876134216035630250974449523596613425809593659602342644217847474013312749451256360342367963986974328533941248449185794341874158613299010335884389130538707041616062942036084067522078915574870508138775819424259153790451795849260793593863900790141478296424592427660545025703249204808927120459094847013624763124768178928571432819889431562500665532882306952013811519576895550963278699953932597018838973067358537617219132793490819836179801211360769443646352148607822126369117053402832203652395476322912350071967942097442979442879018444050108050999111997424462020459136672320662347933832972790983790213602492646381572395700994443783250001725152105759268157018959289496425566281284264083491801374930107430185307057246329786141565927530363084645844786418147902265834300935244946887222412883382490010168976216891211557142516863241778181498057768467577754546572356892444128506801626007323418852722375191843757805788670828746006647792922691430692345695847256726090673254872917824104092689993334466349898571329796799711747347225757055223040224889131301663023709136156286505826268927746885229040929277511482698434052113784711289620153187953372909971654797171994514354057224891578570583084500299403249431843578752064224706260386130754604414302439824045197391555139303982981662234335848590983625519658505877939025998880973350515738788370075698629108900742176504600375111896056671900563783606018828362782184484987433098234219931601270280196490610983824551276629678547742082666935116528217384574942922850738103098287160683429961515546058573006936165584116788627829043331016876993111771124915632839955806284385028552341655952963131897301117559073719677234279193507626177489648284925801436255864922660500332643516484229725950016194259375966784310460532867018408248758115448468466436660177983298697788750692151282398456961012841625982989120597366613171205006446694057274195755463873133935844882182912622216575306772022291946905184218879774555207618750901025631308810145623783619111279451125346280517846362897381631935034788626583328474825160949289047468185077762985869111869432898051649373836749081326102202121749940341950900495222686662849202733554187711509311120675476435737964308633850983337296835189117222896944447192225783223092640879445098881137811942193403985666625629986496471006777294790545537045308417561296035815128359718530535081346446165875665824138932211609153934887629645932853467668595777544259780811885654266412750250334303356899960529502931456690867645627419795878710197422645609158237168719991115970149936188790849618791871632056479303710450419349647220183324165911301829229965119512453336155607005867101225118051646147718119609369277321559828228260759321126619314945402767504624229460958368259326035440086500372857166881337146583546593134902835032450672214921904965507443589792035888037207254865017170302697091672188800475751079722070733611800403926877637442254208353843498484159316129487669211290610613286210847442183677121307290991177069053875261944197516514124323770580021474105356932341242791638089185601369881783509221636283665692045892382670313642458491016917221889354439583612884895953713177470054837052032008614529520589829221902455424318879121943243702381593162489081026529393344905608534962886062802263516234960179981473123654599706018693217444120475025457821920800257323956782965306983925149004705209752373766234837133124764995185781634088166517324695984104268423654191269048944195660590747625377048052343669013359980453245760986607344913112416962890246246218051730558806792089036151683038873600138224154222680940339830178605754585138104211422236862295034583092159464361972397960656361570340942095485596721849147581639883710702684186585669300202999446823949582081870879346607325900514499499471702038326572980520341572911204530952954082504081534767024596389209706898213126831453306497805860184631859543739745135941817204389092507063098921150851427043418233701381176687640473154100282613408182446493039987516550768739035977180272081328021872397658932512268144978719102466359415378668759396109626484723428695304487274418087995418256761533947283115805456030116302147843518903735773818255534391485012154813343936131102260551449600348549941364417416486843458618025463846560357941586406556055784860266029355114875710462369579946365578479802633000376593430181461416089917709686232235558601373573224154965847602040711426023901496994017131384169778292577429566228709670116546188813790829188815175846944689904684321312145034354850048199791450874982810076704652077096788678971844103582459208178405145286847863487791679370941644688665049228956686674172425576698172205736328953539843225076245618213708879879175254966416965088934117753031986490560066720997381324557811281864542880499409251202522104559973984064600468919259128232475218967649671701819207444963259124446692613806705996118965373123039754641297162838155922360264463075611365470404513217624401032913748869166292367017714886310395781809411443064280946829107290490806479634230093321555045795575232874998012764846333249081329379019460907988910255794018311876325265096532373110621301019903382670781693559199995947873410284971526885276867672488461890818474212158357498561964361077083743448188543591713919301218530155222663399768663800152259346735419233653860451438146585691104701730387072512440988748286664414406669668633535783588976084934639404582695451061106344801368161838595968064105755220329600498880057838368703729103418826814249195786960691728392841011594630550181782049393867053262329655419636683785956970292011515851890174594310195959542977490601246811467469097128209358089974976730812758551362207649913086344325129794215900489000458153071485036105126344261394770768899191340968298991699837079090595464909911182318725714089879897365797890167802625393265237264364011742045410545074900976715784188165162805670972034034478896753066912005665566473774730488573720535920720356438215154478784114385741342883443527460466428877484980738134919487453979667675976123321102603206869547902319794604565959645012636481618346616365269162735579078290444052937643932419151777825097139118200515856706539174622877111857931409081080699468504552098695449024007907566422397073533659623913414506305199854112814307166360534596852141158513157155709742677753531584339598265362092591921055340119299865324471771045215436335564554161994575328807015769062694782389753897761700614235907073390104385465667277041314319880239112323374175058332900077135794534523763981785532424089324935338464359371787887870309967248953821230456681961973401047248341525734566854231010420503911086334058027684730676335162000140082249861333431170456676557764158644157136568296110185377946953313724044295080391241823483314953672279320018398285316009326575685252157647894425244543999271412894993047660610707310474639686586895803828144273782407784049949172979481924908593320118408189010591127312251623130929164993032188376466918625116468082744415464598935017627786609427345650441449490921371334651441413166577146578697953144033607755989684961474883052480379891293768894242791599980365923019195602144227632901164898087383423801507792614760125174899553451800117157771717942248229048124879060237841805299641841037900654795851435186169055829265319909827805578319874760738367217201536545622054710173947985348844530325357394740877279038759918918446715763003767766325924587815662328776834252206622435088298772586727244181003946001736920983588989532583218001140812222588555679933116991473480675141528615714621982639979822644458929376341755623792504613412940167051724298609948438126084843258723993510578338120898174589696735105005789717795352907949813054678659866807026206791614702610235923301134224297595496439112263889517184625434819418587120314572269339228863413746603179114486520562148379480649208032354154817710871685653708711816112896194204243742613991924526959315919943635002460768180410867421965411149679208642354537521750136564849744193270628218366644379151856190892090399482708361681397378120767075259655082722881598960446164190074080669924758694410618572169525692687473796721264064622624084523161795956668457993440760934046646377343110931954173585369382304819201254289577727093799044387694473016007799514032108763671526068493912000495296994312155597657049233252226063872166417383778529058877307816536156065452718605448141228883252812907183943300580078948673080993313643757436722529006533622996958751155735487127086006449213023656116002440431255743462964906472476928499965232541820124923465349357023069714085000643906458446783881855711143313714177651270616433692956137772175853576922261635669238427064729002214816075674509181649331487082567409074147401259679808035179894012350463937328785246994280766389650201224403747025167734324352357412629812470043174156928270285066857476579023889858284572989174657106162513756448117200297027064324801910195586006281944499364681096704681872124147541426297030705954611371727087851107961571370666283553968978487474837546787290970916994051333268585773490338730538808889677788318937400169330927186050368324488104753337309685377336218312199198600902254987058844586489385435224547401938824461834266947038585674554212919640652245612973700875850882613402012930775830860088300467035549620469281948911962361839279514279863008610449918351903867364522459988029868785820552703210462425324238757239409866891149115096634833099087065950124097495355201664408452505101149645770515185833293388177477827606694022280322605729278353334031288926099464505103681810870022510419267212418748612008569272442813250694512231722178481475365327045140038952082739917167051111836523057873667722019672961216222742121325783197984881270886407988911745148201414260911315359655383075484438368461767951327312566633033323876287418708068957383887476564885231432668560774919479774028416791378730039492282534501053248630651431003788805042687880958685629949343025040055637075826342804199323838623908426416342829357748132383891848565539905107750997367925165163139386057437930656554111600831754912608273511060081391812911328708635272245440789692120220976513101118037036238362601823359440940712834354007203622772119099228657753253322229284878868196971579139408409154198954023683431785533171395822745245876952500358238599510705909440803773748564881633524241824032122361771814700488250322198558179905809487006273616370206906579707892924567080032570015615968729647208956765464194482078301204899388138205889805347477810896233203455658608893106911606555426665044173783449196211997285176615820226257671395111736471146215777864494587339221637862615123948292578456736065232202636965071931237658809224366816332710242696030235553377393490698002696192040326599092911234079734769549728558797476809358828734974469521471561968635457101058677894757328839629660312032830033013408922997094495289681187486509831145923997621019249104691119113890124697541405836199419716115991144243093341398337421052660919430812572777987598068960777005684959211544482934734245915644017772092835762281829654342892135351805843462411047356912563709856625897843378593134215168771208970348374290141249957948777346870710000146499817872424798582670613657797285191822926189392115023890987356550786302206637064329040857668633089683913149548944416404797843302994379849109971751215138844965781579913689625645865476858832926299110460649343907732396657300878283918318429379172887756778590509457752585028228247475885812788183838042712787177243147250791156345448183272863410965192331377707844748507728795650000287356961629000972176878787322664065383434080514384668629857131457181807326485780501853801945574309460421553535854313392346345632340646627293577262050765256430214962952578186399935179998363662365384832823727516701022283963864504913375672669756191171059432466846824391489856467224814238350500952213917914897609362599109158207566923113551774106564334319681026291113745881545787389687412160336618515445284989459801106923307712749902583013204021198541791351879212512267615798024575886282132049652592147739211456744433819951297606095570179199801978629612122973844518029188998642359091281314345726734639582475497184851247142268276637101715269308993764134139677545870167668018446534530052917950718913164839136322389433463449383229315176493402851591953066848418414944322225367415204980403157008809362607888672484124746898387789818003910185488450873078445495676945667212179868966140761047201255653531585662310720611461714311267201612280510270596785273712139098420196346154034940990113901858429671565357059425378761972704779724711304730202773194499659526941099399854784777044706260144123980529466076321135210079311125557298273226475827516882541644980190709177002419604415274248685403100346003548691975719058378616997406447962074312402140344235731070242395316198381157625873084356281590188745549963331583584142286411500137748510702174807110647792470126271862796961521110271031526720753662738065079599123631330523615232389955739055668919070245540816734957316942116138788000067721210027316217267266860636302548182370318846447860144981181274591058574153507349504663344044305730609251321184831544626238450902238886912089838524109750464690811929969991162169750201075176212541551239236969012550907337734971291177095936851961405575188339179829143303575007654204649098432651223245752470039192836144974199045589078812248606937992950097891648017587088479187959926669552424793899865208782837114439646636395628564312150331154037120117171369010923450438716250549650118334715037156856588060315008821050631997748969652459243768542643176875947006706616382707667534496652898181204433230368971879965547680115142294091763219549446937142901172311699529222325554444641004699616240284174514476613725134168445315300680490165328531519262554843842290708881471357758613898925506800213739980351506716466318739097611369716426814897275065529284442503858804642634467655643352850931084488475627797989897227950481121338082227756960418424947258775394499357392554207291615849590889340113752474033684335843560276210737162429690640616758084324321284323707935181996059073207887629380175628229688560489396877926834254087836689721793771776757623868359507558347754070692368832646555762413462560487590626138493573870034931304733854365740508608524387096638305079843396470630569842705429854637187430076445214303093419147174969567364969092505830096873871680427962477454903539994588179518912959743079091312965868733178496198330779253944654135623148031914484374000190390351386507035043232004830893657107445076188369457798230123024523342012197213262930772948450591763829951011221328185337483590957370955117033358588165757839228249342427796245613513059243410049624259449405113425630142828188084168006437246491894221572492553277296375175429422872308248533312918860457569695313471581782712552792961167053860874418727336322812002450355528473053007960282504974179698188730918900631306925408506716354845630098943197392312497886859091490765812228404506686111844574726962360607524038145134842562227365215517843371934609354311605133124381880036059827130076808399419645855022850398635421239328277046526653990241510762865004556784202365616012630930819448162604558774898096007426601404285035627930561886886760877752241157860756359207123987710852649490746212409651506277994282439651622369137297255021660443094115375527521367475605192311415840126110295794543673612502546188640669878845824206373192744756173973308432959867505952837467928102770931038393483025203334482682262657499463506194859417559236096868265485961965440052658163191430774375794457880780380777481572212107290016778043864734782593317648822651260439661342622997256093891001347388861289684574886169540649364479715971513795845961673863691161558019107545242533269200279779985818125057001226173229876207485390997943843977671265035361520798960870270841089245426130936320263633991393117614822395568085403146301786077542229607331542281667157341833800041917117396301790414292265121941897861684659887264640081429644200214710104334800533195590076771959535435470148511290652852028049701577616316691295153048093087748097643842195945617320459812630712615323998306050783829392962839113248566062644285565765248702826451954421761618377378290726855881238795663674182906567172280428503347686266850085085677319489401223418229732418944052245296005222714997926352805021056787552273080792959955264282757505458020346508407685675179505019184360177436996575682868239494232911728252949020801503776343086004388720917514773801183952834358307466341195988460892135000833606587733056718354329639640835203321031080070593050866261611952387532695694367194516166236993997683130270506111226741365939737894423415425266596944003953867627469840969537366089358675659566386977968219225361814649301241438392859647989921997761630112536446247853319707756940951909185729555795807088737538364468108582888457371743307565910884562793304633683409701314683686349939849706225600302246305188205750761288576948165799841288692374221040748062918796610120899226561548393743186074095008519991013060804267906437154956414933864856574238489886673558077906696034925597674515918291873334803531163325006200943460679698385896468821976294263318047743092163697591823895170890682135007101477913469016053800849076006941090872595993083522371018053485244758511456168274729508028461125326075698579169736225686806015984082088943352345266687330403235182231740937882865097195583995498325274421792012790580478054100164626771069928440425882035196627883857385458312549062560449957030555636357114486377785895582264007206687329001427394573865610064284529955786360675016565526151646990316338420340938337254199707779972617010375588133075495401026009663102283267740206586588396802432263342063033214462149360141420149949123686106025142031964181383065011627573679936196672280655412955746818336265272352015056385608742423829833589663757229423055402517386022289121630048093116957867488829535176986973664224791938233126696313143218174101185993357210793816689216016334168658137081127288369606117203054271178379642345479128925388112118365235113908943022609761902335296159774227930081987491452201885417628907936921440014367508909689085802540159810116533012396887915924986963106855030265974117175458681433648629289383407127384314933990408424205616349440934454358278193761976605662668618100257352584287044639366517034860145740525937580962855818317645186033565062954740937387017724400357013537595754174526757395761510015587992139323317998056291470556712208603704229722746011310529593068407281149050006064116463270630233532854461147451347538094468160307262922860643327164263718414747628572504280767922862938139229344800534845468147655035888170500793069983707431361355786959677324898012874883190631084288154428681180529230727611684196698298305154570103776037586357810422639349310675564267323126902277684265479340407856055874502268467162816567808441678540403653705886432666746828525431928045735681755829193986101583895341890335586397247031896982673049778363820717077783386479699350150164832331742762871674637554976104029012972254726722614818746916346926907658793912332307158531136926588316116728426130025870889130040778257636556206075513118215692257401192686544841800095333524868426448362198170880720630804730135293355872426841870861455813134889559342870044981834674620941835189788749960381406060181769507269091932014329006491438289921641753647278904018586165671968543676773957753282546816171578382229164439831069736727631691159680298139372006918646235103330620238805109542863549061092275076489054406893952302579965619160877242358562095692635742376140052451893166985881243469031550536570838093211230672810030786166519383688528400428094052872661432824958651313307095287038319931747767168548913478327840427632976642042758857699802506523978570467204271468191688445743559366675097840745062655063884145924188443852894307531695784231913074761279994015678563069965241646999217010746606886072207803974823812483391299140097247585818895542726723817538052154086284169523058325809371905525558964847255413962913350488728772921486183303899164380299538835406755392617989723936424143449102715872811332676157418179077535992923380738728477735736888533002830794738349460482747568541693889270371840962372145353019458300773105842931507820730208322927138460642051442841551810646444486158055666777908042814310021356308093578672625154861350333564418211611097521941603877618464706239081714539971624038082030712409559103396819912350046297101638084406213277502046039840681086844529473683144124415892882799732686872813279781025181206248714649319343506077209334145240299745162892650238062283022215565872113233723610364458351379222213651238534000125689219365782555107317607899363270537217723133925286127677630566741498700501833810239438333869325558451178766415897457861012151207770324362835955614003046046953038607769621894960054293200267942690855083029930081778669161783716343061466214278246961573039501731963862131504907867001868621029666327232570040821528986535763553259020733912462547589863771926405744619306785344440045339529039282036404892631645812358652648778054276103104524236320006488481957991597271281071241872005886482454797161158496661495208525175905021794219211207831713002174678869514783898280733826248253020250702165619235691184006246719288578383467467599676201789725564544590406060346828918219895778696219929100401515126978315370376489189121853138997237120657334070332152516926803175107999362307520737294152010052295244366131745720175504979287050082066771720967455800185417279147067899874756340410651141165307458981175161540529415888365160423664399112813885671531854759650959897392027896342218619339803132295352809619798149167404549835376739813737281653805294677382373136802953380745074596030559532160583461961554845283162945402582390379160231727005397864974305053833216403751559933140114976260170500360646143135282366973472591490935159700106176715941329451034606473358400804605689530261102968590734853266712625597455983642201499078281784906775672768603580835580949276785820471726834468552644232481629396444400400512029354880730611262942358878953485883509277132202612819754604526154149670018372518026169382213774095921969134855747658579536428970866822889061355420122240325171573718835254858854977931755797032432977500521346439872340948220605988988755432935871234158980574654790487470728048094798849511331785130040580073376497949907704336508249909446732752405836088232746881152878516692902412948112780681781087601104497066596442019217206269151226460567395609790817721293244948614844180335046591177921870364822914143707453368101210381165402723725067083923942360517926546119589739529252968137915664863872241606945604774097315589636644076796664338700802366980616492859296022498189442116125002892705335040568602954608669848442784083770964319324598085680194878744264387508125939655993174711016233309003179546410925015928629491062692669326771497660795496524022294238037514129162663699316920003580266319006987882660155507697672730141938019962265751577496279557472013997072150479119807098247452326122109466024816570802900524438962863464657328219772746310330537792212837933714067845609612068062220982097662593349240829202455377050021015399814458120288488906092082578332831378713511343001653710384396187196975891890584396757146934872033436366664251179220303855277026368880900743833062871957975350588041090502712310048376678165490697136689360836134998615743961116347480830499538888527054971591494354930523282575589088119955916993590709212616505188109060569686660954626964905666990143901832739527254563432664128703491638879668932470234064089472099471540215115739422221252372223565402218012417284171057327959161184758732163421127893978479808983176424839188999314864287911723759998908739084966687335573758607478115052814352759652865245159359513753819023040184537290365971264803862386445329597348328357280271613090869448656052489136828642196936634859415611931071140726584247497649762706458409476159672406195607277044896160946355450311988149668857890244478142169884245185915085723328015079100385727230917826163655529299693673035695160343442785586665860823425455356441175123055081972419012907470913252931527233453562958883374005289980772472294187033253257989523595762332910794618037961254638903341868787739524885498363233526383991034073415011150785957515056797144341176857462672842037705513808266417050777479010768867580874086799328523446151970279431989586963581637926410494974779041007710522022744703292773433888592264224612041139856212124454444843407390061781652459462237360351058157520062104075298583564153580282853663528516723059565436600973030316062421620073456828292986939184845398270220666512513943188371749676899492243639630164369595901792568583276114484259461268820068744350816121944916294097973174725682880941118631042072636635758696131909761704974760160157974492149515143251594822959945381411922066770824079914406650174256847933281449426384361380239843803123166590526249468537645570050378591907771477761428041989646693275212222190503269189476592633159752306954607482469171065780854438605732273205819760917743719129026815363415459535295946473414689976362396066462851718647714796476358170174732334006860914751039911747895802392829494967303489898126420435432942299982087777358762797911744252517025205760135095276299863104944558110502374506011073795885014088527000349470715218959990720089924572457054307329657528486583152187768674688564077916555205552648858292005228707556977089720872113645448069975805599846336325382830580454927537790155867627280022690376494749028572799352392745582250543226771810749439285083580618658588328725756447607879954450793502320868638918920927826273065640563019110741627948607992487497945569262558355771303959100082024652848628797496959004585131430854430568578966653097023189781858959822770878372881803868976454205204496918451094760142712848033037939358820589944027658912289619214772816779752380833860401262234564856691092363779908577643677489808186246688857844667383741954719963633481068975168088697657610964754105804145886032268990499542452024924687074029760276338922902198353921422717836571621092872037375380926918295040011744968765937527737093890449328134654905722927623485609288994256089117401498686975295278127632698144038000868126371680996792961617782234019708741183169340245781560264181500759625166153397430711981233300538055028622335166753536007897796662813189174956795868632924717910564532105065224583055766489316653993737728338221036155922887909915242318023137191509537567086333162380388408808064688385240930776338406388810343239054562386067323538604969845191328424033313203141224611468743034538057442573900622362849035509868004321882565744626698181333928881684563712595959228555383632999970947551058677117827847419325656746538605457563741573363275987354232560065345142406787343156568884672295180944081826127917202978599349219993747631386483843381413689653099950484342385837436071122273776745121409595469958496810531007299410772945753154304266731297931136452157620675417286553392314906590689902380619226994466551851382927247371721538703222747788467352440006330263859553885686113775151867290167035257523568309547095936697794557634151366269384579245260653599280667815243550235681985828397486614630094538625402042681704021803411779263385961191846427443524482168753181108513838559596660333556685459535087829785585545782914792647219268928404066269732659506348759634321735876167280180548132911710279752326594848061374684002827054860515703613645468496749104449370890222563846659385646728512580196063711848139795466309083576830276501358245931819676759223148146951613416220219349454284669621591416658282702029285499827002552200636698856152315344444967179948790480233000575256242808937314088155369729794861324994733823037019271017017287600419987214765722348723445061713452059960297354725135905438649464619598284972892467186822265552046885754930973801272814917205172436518011525148630639079362623470631089805726675563333508661448698866023067807291604293231922072559802910688215289967380424158229900244293092233735502857523794658826120869445591541526418087973980928129021761845059141651743933500135403501460365522294036437286366600728727023976380832516363361506307746916589677338403237342005317067522841174791023285589643508052439806395137188523535457363065413623778079604700578039734874252896437922441188900814038107832276458885878814743844172325301921314078049579060602279298684193919348989414790007932727666226034504612622464428538821155900634112201674950903396992749322866925667509850207645181936034371586717581205133538269072830174255522912794142709788869482292981522863122294346732339958807273281647845575099941300967993878928961692417989614491202612898091129521147726783502463650977836688557456274087512132214694326138347241777318413012808786964456662043421641975340551500779694135421712191487145045328669633299441810179834758896802294684267781336647290060454138357123463544980898106783879075048526660084382087731564563224732029051372161868648068659265961202370779070166236239902898488944670782125459150953559604027426769570647843880978627007329771135187406836056104454395580934832920272673981104820031069369349518875371639111500206475702360751428315412181461656902081621185902470572414669707120808598156425827679159607128643337815124636832055355346882350445395121671044994418167457310571033293745334146781445866448874366333512204051615779944688301361892958359015904746641355714937857868997555188536440412534803027600583040901692528088882310980395460760349913827159936323748551726918751688520842485212376208891933651345457878181823622573807780495043033997249536371076142696948732775979689471299790244509179045472253495462680718475059157339143625686872036558445018764388495990703077810041611233585843090737488111074448633572103835330228976992066399343654766207210984788552558917947195560404701010500021108188734346710831182190646380207232401635047715625298950188769089894338514198774258726231824678631811531778151977257651186670319246981115648967857438101659514485413369345256350803169483188367564786519678390052504996055314035730468064138491792379154862690996633284325884359046020867503190108177096793094857094087253307014910024586804117776928627550027936214738750411165498362737809274540826108411617348263243476087767534058484041914261949949675680248654262285117277874528804407518274438794984068085283952467148218024679103746901062501131659527041095911948939056090718037706122573562153983844034546443084667279194046109546215118866688764889273087224230835723565093414867382358322832209849331175040315520095837236319824229950469924686284798533506790941733048407777747642742284978508524833436032421599340744936948506540861212373729705036782484607458903260815637952884447691463959323248333741690329876851157917489504604648184636777456005590490509212644233901893253329953374246760108223275810327284099490217931314636566428294203210420327623606233536594413708752007758892282151676278450798702433017533971327026146839469958594874213394562276554944684524756394025003660151282151728736813921885175344869451593598949721790013661770605785870747714418196583881826957394880127559413471398045927951562841073647369910595523656993517259476282962072528444610464450187772444048975757897411454200246560479339330439213951321508732151412810122281433537672340267595558284741022295922790637712827587202701211642745085746896546701054588430318986319853740338702522226813925796846637170543939254465102364126288165993480293032955748721310983672119965309625042951018046327035155130918016743812364016148981017561295236876203893889364171605285630632587404130649901463315467383105527654235909110716604046444421771732225070810049766127130845578279280644463963306790902606888119879747034675748734767958276525518738691957530933109117097203657099478967143467280199625816852007495945980307308581927026454210319169722146360830735019511165308829234563821880141163388399501125937273966523137850825716856415409322596745015744381481575422939015729709618411795352607885008986474173785905793322750000975084041800057035964252117984907010522485839809936663900700822537809101739979049900903735433337721529558842223664168917902499920277481691588231291550719993322014741722068389017105509020640425830613839442853658936449564927470082685448210472619474543265963562448022648306488952288761565173988009514885973793086202065848907465739833674042024203906162025000949606935800233674596706369323407267220893116155140831839890583840854871430402885037734624895228700107832104755055431321640831648731041177531899499560258380775553516059605633760056150713021359295274349541338291783574444906517493730180701995270200118669021668491158192142960600874804577789504593598492642175503837101699930438906039077677017538873389192943009961404723488127274968584740979081109539876861930136001367823140043971054238703679843530094969176795006290561262313734680120548450096420067331831299699850940337469205912518827666270692946488071871542400715510317163179513121783852626338974940587616540879963048364125194676511669472351688076810650384856645969918481617621294158098551453626201758605374407152295307171521695242797788921197041053331010546987924265043491960487286191312303380008557962614439271576929217741578442353654342509696006982278275802441659906849176501759862237992072419303429348503536789214959268820843628569174298746254552586091852225762584738523207333637853232495572902080569635065005222252460723666879203614134874514015148209896328764914747073435242267681736938398444203636679652242725354495483669771405992367497236175973269369946515699011684988132724680433528021045823555270209088017586592710724250835147542400038642322586866134058729591513460584304081774979169485245829761558418684293645395381993955119421455927962589285692229590777528584129650183794539894484750424137682116623118361706576233421918613324247900518068769972609835932533321575430937018665961447177331044367199834832797767847745030374250896025723545500420726015411396663257152612960428491849825287605693000537941997944348446372251642414312813546451014394814035626922065825462693294178396497334618904434457476202869178737874335188328743878104592975516948979923998623725195202812182938421855276173038981132862879496955880517661460376124501087755441107241802929092098075516671097170879649802849804750854207246813084814321912575633146163722563753449997107184504678196235699632266954034518200805193707550243242031335605900595132958166315336562807629403804892354795313306535057533375747730100122472904653267559372225185077150915036350929390284459596027140286704922247854445434830567157371335501381922238226322218664221344441463380155815419344544422451059524446490806464462431713135511401050194149975162452833585744148156223437611189888399329261524192451228142291934140453299359185958943971074201074411310931463489774405887425885119766146102964019419545942394955103622957518853919623365897402829135128355048749717674189740550613478221936166453748180096590520511762842793856323208985703558993623846064098278789647567743556786281086742043835490522743382045845464058524985543304884172677353091035487450903888139554059768490379824712293419937698069454859451459847372446408862349367969896137741035945833088316509563710075035802814125659196253594739937266285596926041668815622619033510375021426403990825069626066573899457951803079146940894831242596903482022813426213548382862640951426134559775763239473840970034063580924832870662293254693297943262102336228627913832047182316234676340013629802868212123403861436143575024132298400766284280139340674747447679507484677431461582195303030286439919417818733198835194154417024133241763697733241191895477183138197554402413554663596865695546242985908788340759530327256022478704707051919502648191292268741105771615148092046051947416810949542125999656884907971360115944001701404337348778549680109828766817165960847070352258783777370010493307826848519457422786675053765531463703919619912489864996359069566074160389422464812988570948160987215083578298697313569827906094177585901419733913573293117435554650120828253886295830703959186452061039823402916218689074183801100068816588087500471131755196145600195812074860646103050963827710158750625263583808184676915345245950002573382593787941859589613051035057883204821506153421502640309347512373137133817840465617012386170067131215629784581538011994108457487896817107226270329209548680734414501104119783272849657072084566980222371457044294430323878809586862421125758557616491597310608555156940487232909577663061397877210220230529164935506713743940690737475242857053846821146096158887111703145543335891873868582036722502193309850227504322558149728099916986328389593062415912168469972963017869847516298868040952155277378398499104448281647711948692709951766299388412453071150369883279840270560040572283330158548517214096042084529493692519472464003976341400388004245163403786337850151427426613319403107320077250740013227795008907094926845430691140530287973053130689114186729640050977307623540094387571799050134985482753490636736145327943058917680177044505488134558392989145402286970533978319480977599947218658277261745839085581028264900789676348372218532442239142309768223652217404667744732161745073266560342403095245236203496833805865834614933161719928105254942516967659313893552752768109331953415515769169556651593996208841832397124814144077075291461823837312332399044001718081613568921870887147685391340576567907610605168423917678933070135506178526692977199607278301826556685641497939418100586838821187345677623505782521553424301040733546102131802960712977187334007604050240080993497220897027583291463039974461961904365668652220713026051741290921406391008749412330807533170441385183408995015278728051851733635804353773549534813324874538779267734449430403333403533651428866300149071521990552474841152913682198197999470886550101195516313930019236198967209171323850630806956952671625425218773825909037406916582540449830156976919432588451327894666304137990269855438734782477362679954105082551234779503120653239200060765844374496257014361237319283763063499675809754970822031111954142566994670728444707394063670089504951891982899237760476590338970507260756441273588509375746224276150461933056722244349542632960924637693446616225477114729833995807832109389968253370801317773204591900323531324483013169005514959641661790741278376944728299794578247896491322237607481180075493690446880135817201231736324574878502052075757127930011575367616631171886898466699170883414581854536373709814321105427527771574781644124965444745844594770699757680868585934498366007752095250737804149794221568301105494149621521584311360519400521752771464601224748095793904472602100550819546888201621654795468852696904887644001227548115662754898740114790080515927518052921142536363892774191245451557716231550165178949630275311828646134853730206125481936121103559420399040229993174585738906375732411902895214431223815314452800605795391656157466895244557539415087000156062273330193663879686680020810345007456879794420493931884284052116305360388917972942731030433401216117494978776199626830683465359684746095816983576770948656626544039463468250146437626632695923794680778595499335891991498987152599039739393714972894562376965351432066142284857625007269199324427829837733743448702677175181065335779340905358402058742319232051377243674838237971901019845188784873718701518781604064712614382109229376818944510869031684697212006863083122293141542942430050612022100810502445013981839800350382040961202621113286683448720290567089380178811412907669607007644273701793399064376577418700172280930640882554459790744871642036225360478351003597787158836347786881694789620947902889720427362526115205911952226573757691123706186153757114856066807928865208321375569976856563787331177304626124035695923042858665772193824689473965363606240001589740566462211716520444377203624086466954154152130584605017309243148115193045075834286546338814701908459890018635187516907960604200975134638774236587894345693416143698096576637300202669018553447892927936073169325336450959613541403265692282096493637215574170893196993510715537438641016679042191416911419554937678677323301338937888570071456865203344146757358769504128710557573168783530770308678612597313374340098320216432946024553242359583214732794934588495269887668674564528547134822043610554638204026425960284833266955716429661812889300391800100687296005465996585733239480414289131348901064516522678136624308473589558920188609818137565070988784523636658541268972118667576445815339341513510393362634701213627136174593152820079376077512943125452207267118799339864681295423478695517629237453343979013511516503912089625492097547389431272231320246745465569701579594258281826497806401947785878867884323025852309558767410998570594985634067360902548639791977454040848754424201770118655317450978492691760468154621199922623735946540656670140981474401531948146560533605721650771226456566726944478352004481984835483696514193429755253805439136494682985335889273772708604119769146789730341981343425562162612499035984938113273545539990134935430971215845382065269599433294652881882471981491673230926221506762401060343195086964575703631779007060620175590497090110169496888875524659545369284448345054220384502965058667139485604892601410757269950000726896754464911511503840774713199727884277879945444192221054309739962674959544374375101881183684418360834134735193570816464342508506318274738292267105948369752996432544538734554847469931639642431230279147033121738542764630791458093570770386339504998314212463127241859083856199732333478243095616924267645810108904257035651345699092150072386389060587081059749575156371643821627748262496939797031030647310034749661701688966111613094546034417436030086071577720377189162199265237459279189356154880601965968351562777329676848421992089556337117916753467969860416431826197105140443976761959815139003063046199525199057609076349792325974368085575776603707485238073716254304101512277746351140896318629954321225562952846147826737801102805200503452107362490749871542841785736128727636352862462370747408160722993288462200769171309922171426400276029927259394311626880110778790338804418849798640217481398357849418182621086192307953587434236825484094515713393601819872794672481882986266388425877152432708009693590691441566258577313821648068548598628051127521454441085702435942879402971255594214924407942614747463574193497710683017300185041515389298695370342674424379198552943251150873308989256750100513201767197847069967303170872640967008712660730732357942762247665979905074611891518844299166958420092911910635947918650990769480343518674564923488000742421392147888481169972084368072880881938601198128522081407214051710647886931913465973787961411030654154515087332278546757885386962056561552057775070562606769048501091265207126780507671246004436809424163043835424845672183200402207485612769349099131342844032675361095048360787809898896733377486502594589762619056783344535082762436924160283615544232751653577826710774757028534276879426756021609700936642018423574795006909186144150593403686661528292903608490136168196131532626574600210019916723916464338894149260265632736052454847193204521712614195087083647611006353488767898202581031494994804458489938906861534494701369920380635028905743037004735464523553893258896311583970207012881852667976131319203869746236877338052437359213859533773419451564812823024952300610129595863790144505749776177028027994357998990641117539281304988582611161326292050841948825379704100104983450513353874413592199749885442608794823037380711982727564326824422701932548844186750388779724934365535221180215535332314683680429800913728515975834936568374401867211292300289332242113688343301520873213248103467238813535183181476677454273783955516134031753474552602964912927212949639823443700919528748933985110304198383829567878539398915040251916209078773278043308205245811607893152732595002297462344392478652696070636959282424032935050450807822841168268141533287152006476496198951691064202886496710512826607280445032545472555467388915844936013271301709166118124276437810044533071189376522262191209716869643335330429345903618534647071751100334318984157206909905631847570714328470984797530395276861856518896708085184536068670594975495209223113228483426074001573665967235087883714426277101571438680513891714289944939626796483015258743912780971552874875019668057375445930299442465330825361346551701181249567704688319444939164938489955524816036483937747489047262465666237892268994826566639450232028265984413695881557422450753712765997029839684827384450682426395167220023811741703624101043963592812254202620786554095656684058231809667044537076864264149973841595225102476872151574721276616044790345733055471512625019767422199167320537865283561456020335614322296023389009631569925083195048139563485739725239370712446491042629368356459117585447776629767941444523616821062196382908982371408001833301498223422034232630185982490815763693587892479014161158181852185558040541766851222216874018289529146338528758383453874556720064333090254032545958416144650615250085271622067791235976862249484715677870829488833335591475604626969970693796414668609652155318322832969148654011559983125479164802755854546237614586489712277584481729186741898103389728739056324331657260160821213763150192562433493822923657804840259615867274064814169562692202803538505633834030540068488678489198025424737416555960413154966514311043735185810687157191192545413133461135782632029983241534720286823268253870916288835323968057154862925643830179335769119173131230145772439069820128044236317055607231100795630535958063892377943963844204456028893107531899470536194030885039299668830102996749253666723018771943248083345648757656523241290389806651505760640119988999433364742897080771216388394205296400214945666045946875219845634658277595045413349549124973360194342767705055051931881665387350131134324861131774789148259476029006483924673723917132138645967338991400818267383739630100772913944082235184571269511483797111585956776650143707229130828098337028929677533522518033461037616870105007627392209742931696987247100299715700030138278804637238081437810220634361579528338367583778329168850097594739419520446627284928963442746934708097993470966901667281113882960351998581388738607231575265085692701556390957739484863095538905290018080704840006957879467253261417632986746029240308983308966990692477818202680667895863776687266480058005085548641715715019605837209982885595036645165705375532190176545478429906284524655445034519680489825259175064552136276533066031831132306717922644112504496011321995067536656302510948353115366855060313536449450169024395626632183364749536626904998147508248020888762867247464657275974227530322239913682400343504832422966112548831483313934240325560684151215466414627962468701317547111162628502122185653402243919554564542942202070080575833903966210441069260346094869514431521751855342196146960424384628244786614967756534931552266733147087739037307475185217231842148022721210551147351236800173401429273229993662066667937239954545108149973570129776444408220857826284970828874221621829581356434962666486062838718849027548691247750682035833218425093566987303273814882432949801781346385642086021196488176180421574282095677959480078961664819009742105886807552791577001934828198945497741303772090518152690039851763020881124342352397776491891719126174080955007635611125746429298939544290825385165971782016621109160485391999271970167619500976797142175536131327657275800751972658003039471948785482482306490946451327174112870581756374892283196095642358827214592610089695529601321725549545529644384704584320699008949766934663202421395155383152681447726048027709666951771403100634397779062821623885413547120018271774892339266554081868940565729474125752203181759527530466219914049645151171104271996178348475251417418943929421875490739452606397320884548363665265640254042759486310975763109976328989589079925372919057493707467322432616993130369183823569278891879968331953052200143005921016283464436625603131643452304881004606047436888575834495684968591177777149294829135745013337945359460124854131808255887055339398787601139109485314482545022489790399223349263799528704939557796041830065917492658111914313809756708770963952198602846946230808293036378818687611685514295118925150990314398178096275051677831709402964723494845798519567490866768839966204904398698602829666736902999298020139111659645864670547495520637453053098213244688944326013379795035733359129980322149677262867202468122816985098987116541417750192882498444195605863619791755097454371830375062728446853159099871664472999167183309492185968013902208024088960778684481693548216554178284297819948995862329720845841832584806658195630399955149437513315959936236872813780732804218660826972042224851459413973167421187695901622218880659539798176180228140799674267028515289255446148711292378671950054890524665418595754215989339384953316411067680712289484751562728200417805407703662169419781777129088640294530809371306209426842983013072248030496929985159176960619775979538001552785029983123784452773047644132565795668190357506238035704832447101269316468551649487363660259843072453274010691843208892672369672355541934272625292709166714723040991110755244379955698476384861410732097262319735276640198024408952477932037361559778577367754794420057988308408659725852654451436149844935524828704300421387081105051844780849049331389873136353241898909485111810691089724021991624734831284336919839068674152574788852515219837688749423799531119143449076353621404015763157723810162500293408531164035915863954836389466995304422910697605825575067135977595468019583116539903862047288671838008066661781762956520221245429356328478644227048595713047910499174458218722360822001360829599373824983343771717269092853536977493964042212052614172377036468917034690735139741401054610106925867081171112134924393177482724434392549797481069049197734715447635327549295472283765876416832931591481420861893193078626272343953814680853194270615807888058630163923346725636287592563577334411200135526232232786156925507209423798523793470861802960980881191509458119635844004687665541366492790691806661273103130839928099838317320999436897350017595770410555996655824737546115619938034592355584670030984670902789371723013731535623988894420266790858997335822541733192410941018420108066059277488667334148040192611788526277425876014509919120035125829328231853894005456460480424070738374221694527516773362592684754073721257962811068169774092968087618704701510204574783507437470497934958574449417071756983231139134609657024037152078555256650740750458581054380512387648140293896217216617912642161610842034609143361962427432694801150131221894256538821954252834459626138400903864088435605402360615212896563204094768909635966985078019445335323134937727955568710416400253961529322050775361745917519507515403469275350918535782638230510113963748229549073147215276849292780279151057015889465755549897031046412774474463927369325149823272477303836907996335744348322517445935415463207333828986635268247840180285514129927138121743881820231226971326565554313175329498840204442767753257244647353695478444884270559845428078794876385319709926919307285453103948939547517156932836815220884529847254000750002229854048856257207081843092347284573586333252381328830688558729311692827881777521533578487560460352445259196752284616687426023508735210673827480596016295245463880125499484426157620063317613208126366794131506132170158152733346505012181825109200589198428838530824020039165184429128884209828785675795286558866889793098809980384251517131057464225857544273479093718872766810291718409309480173490564139100308537909503755035520220281257217959002727632156215368772554474643099930640370270307883849862470775316533399525601505008791227080792303510735222012525499891893734832652867031624029080156013544044043709666629279946947715133980203567387688117330460240515855527785154993579397055842933063890330317140849833604546846006478265943215458214169882418834047666789223159782329717183905645339195085601659231736838394422259387140171105328171724792118096616201654393211403038982718495898482004482041830965428453042958287962683995173186833640665875838169535616090514041084437620345374268180413952374397367034001789877344126987952082670760011209406780033116083748977590348153088301242679791819185353135180718246894802389038329035658762243270826158592541402955758605382129300097257931565662882223339724656024703771707590874849934218815611935239628311095250771009853088935608454572493377317931088377485211082240713880807092752579999195888425266211621706039703519101694934385850394476813045025761778834139694486079022636018259652631327963224913470713350562527459443850966541220531365977497064193588472322670419056905714378791253097886918780292287110446162903239309542504024534020340525687927097169118281432225369628994492233837442434280438515086396497937148493493315880895147011120524220404383187072795856732603372722724822107402144856061508529337398230277260086322816069129302897391985784922487547435432854756340649131994625276618488605023701869326554040804598900040103720666575947490897856998330436830805577126529278622609390778018886205340122171517046859622061254969851228502976502395800812926977545144184187349324832114471760572820243314072360401145010102273892152264417641731948054960442506363742107974632162480080818929815981037568089769763315048930197537102655858771981445790977609479888246924691893493458791545122016509180014516147300602657918889717046564294283761084061818462214979670060931268782442214579447318073186229436927846598168261700826552629090130025686836619722379095227249993604617018270616445830727809128694803838488096898228102431669867757195220533391639130319496636231944460071330488530620421694492494649218251042875522009879695086778525853993188547245069302458078925406172397193686110903471802855739654799635335765899956988067679834290571696667195435634419823580652942676973330508319598630653814655761165814299614465134676073558749957058363766381663058629731108044968903270756869688002149133213415589228572554125765358138095586263710282329684290286025177613040018992620091331999655086394201696012070115558171672474481545233160072276143203535254248885540406346191524863901633076399795959934284321195487068563448613739694753345174494901480265578525864996132880162036543095208448442494151202549115921080356670389585714449605910188646274071113140043393799357949115371826894914123937380600272931850189261495925642756053358135160177190337732650398349755448063961089825665171604212797590386611863366954900876974001464085572930037649233336460175283829431291638386005047657112851902786086556902961604177702160900047801574614510689473917363614789808077955270703149645001557541310876793401031342086157966670258387036315274814043321145012279406932769978090744861597034536693434026455510780759579639273722630737954285953148417838625914564403951410987115692583723255619072721042112443483177430747131256748434338845388801209963806649776853424295318573298102438546074826429568566382525469594044685137843042965592680532634839577865802116171493236050845881804489850894238490600453687579203662704405727613946499209531617429426006693127842395734428406907137527143739242095176508788512422438090269274128468108344946647214733843384835785693275016157650631751716549054909935410904150851832453599926934476041847473301074444690494411311458373349709331320720224550859602638562660720552425919679497834279284819267726535461781309156751234769823326069797454810044520610689363810194878198634606867319068549509434648041561624971306964331786212158118980056289050513974771805649037401531092107345512203863001055166882045743960929803895945599837436984450867313102344420429514123313109762042574521434297392984376781762177263386595573251149914365232457113484644378530879042621099589759858172610901675764850265733149028345384063196063324476259462883143718258034678120926043392248969397707942218057336696024571679888504542963377649178561956473298317412465474791931566675517839857260532501309246084333298003951432197875801649960165552964986634967054796876972825497396322442417961087013281905637205789386332788942538120186162505228298609424013620099922004084163551363480617800622143640987191673988787467814768401590851762064055114033547624365767315046930052622286931563039939744916830785288076348721224162887739538597361662021643936975143926132024141244316892993386369549072857448767019735729941729832677512710544475948710977145816623384662449292020603864203439799347012423562588375792838212366360953348814669724211187409828884883641588458395284590173546744257359878150100634503424896218225634287430683435095791081800775981174150802388740477870617210377657318187142364729193832078150881423196762925095052271497312976484291882818850120803264404643370199734403174245921400013329588723884368874239118300655196401811407247238776850682024732431262768999926625111660854687921313665805152644529714103310667110317842963784817183322108121318437682226168388231698580967565503356901043059029726907701508576105023956245803479912977634534815966842026249838120180721712838775770084298614009477682375311382036661950856295639847293096639914418091831879908780995957166133283561148843878315427960562961741916196136291440795793106973034950558089404758037871230565416549647877007310066122087660170264369981960887019430292480121164454482390173416719120511155113494660622379170214539163657917792768131113824376324304750467437647447141033831788675200970368093147810501935482903753235055775497909020204594772543476464368510871050914825693468469155215204457555747453472606282968335739480560403513121911023330386730511406872698350214186680344818153863692362799092914007974877096246874222791238862175760481238788184812321811670964763857608378646777285572873794606393754064847768472412519643759570274944064070528675467016828036622465421867941524646924259282810436377928381240990915281747779607364149594340076509143708023007689877697465371977405255687536556647096826027027942429248471197513421503594514422384600567630707840757680870091167251192676080275749242374467968245595707790108691458657195543782229576455992642765468726526559816998971072942563420155800450843568758388117304080617978230286453477386528515247741771588934943484253862863332110687533460908588736333119372455198419924291410561331602907652787485563174783363213749820211098692854357097005026045133468916193292577173325640324110835600614062738295754130837502783270293341097509641045039736242704142235364417571738558963604750417659898044593369326276315054657665277722370747328440165805108068041590173192086121536997196747115468992588313373808477364780889869042663405388707901895034192484116107042587577753556371415782054531725588145605632432975835413560058497401169531931259780723329583646066884428859301085185550454899876624234797200735983619949049963938816042231560331481004042017110195340715325210259049339225070361655775615246713268145293073951575824782630814395038139922781354762794807897436972170883224434699103108741510783772651094487763215213559672236836096096916052099762419209252100816818529695799599315906109497014491658932171796171693851550774444858803307735464741377720187861601749715033750800068809211491397239483636011138886855596663864229339417603942090214626101541498998291655242525613789601898782108965668146295699618692142074256643323579596958927706261011465794540400839398051351031939808830423910513180516394764081506798907322150530702140382165911868957572949090849139742876140830513268148365477218432452344701362583044143661901808069093941909031748635708399859488396334815641611085767962120672115873018843265383329684292027407470208956635878785906079111196969393477070651021811470644446644998935822084074291711455401624923930181633361371365514277551349999594515161977585587487685784772016856359283348648948809548553985813172237921488446303251252109090539023240627907276934190307635949798984590934487120323730041925517119128557697761672440240555025665786279585738745327171768220161495272519339535380548815520740766281868038425898699185263860497378777141176730436003899174941639376505785930551803344950276518900984599780317120675822716454634278372213989695506881108973990038029676663521726082232590798130900958468755089758549555765751099737885261587664157634995729035211789703919504478611364727180041992035461553104580949383205112777169127353171166537312752538526731397661861068973627398572941977909725766988906787791411260652714428711214838691005981536289724321418716331074036238147229901796020170083604427716078413355943350355275399639317772762838181076143298957461862220453472733591471601197543673193450766020122150807431265882648454777136211493238307650310089998781082022853897451172853601597939246198586084995502725864014659486525205975327852832737921275392906661306011190724713871511493932260931706747329550690090477353129637411092603024449404823704607336274505024561074903482985046147420215139180223326869877775359588314705325145669473263815016542131070278791514210422967564692329419084366931238971081787182521171192775263799601523162735553415784319258840440799420365292173320909012310799309574004864398913747145265877419475515580531035437112534790410594953277445008945032480666236144432751473949467097298537927829570732493846585506360867834224809949788968515540196677038528056142557008030392810744895338920986779621056588688867737292040498013533465592493441706177236387898249474724345321816338639414883047689854292583316993634250959768274884677395746773649440796011483992326110004040440282164555271831287507254953746596968427575931391345536580097000891647546037231624706126854598441129097191837837387625757850221520138621761177850106268262598715777461600088192341137128048102229528079285352560660866052497929443175771253874811924008076305532764191602818665954562472131257982274037662753253961259511983685412631607474821489365199057484311119636395528857519512224716662226419906173502682788004188214204944502883116238016774015290774127412860075615090321533952298293838166111933011727540715395035382797797908832944561260643754453140704256703359499714369132408406092211466875430680130486099336481188628067788586167062349880506781197586924488082779915487073564324061596806771269397805601386214267962639204546329138274994102475893038719571524507983074642484366363558164056612327043926361221309194625191771815681454944918742259559875454796431057296686937568130182911836479896515917348594950930689166956648762765421804905348993974879881837694061185812820147831535296365383052753115985661479445479954887891287773690811893783407040001764438520778361812909875648329996746751346864524976108056381466759897620631365590294326026624114069239314701909316648775300820954434289242746095524869495699479358001499990076263548780332976218282676449338309996250974335862613533523202004071957989232393743063913271149499975759554825878006813297524707094418086459848896265873030592600280360175883169595693376238446598517630781512890284258000777572464985560088050052929255445929562995041458888728405626561225168580593088341045643498557932887439130469054798950486818681009176970223974485911646724069551160401677563241625462207596183024675327137207494491768496739569981106047533777137988686270572632036579201891836404496640323650287892419799705812510746771026162652783761437940791611520453667997710633198530830367473915067847191609482157802795472371049983180634670066000819328969597618166039488682812832873082694143917800591114778792073445342554027745473350790167521906107815040334251521691744071072717683169444827585126259158062542314804094029359366257076666514566292696249036179232869679272241402144166480398303219760891972823229865180702051701490753275245592266584501496243658684843064326508451083237613903912129842799474839321642405500964346968391805758035780305060372636079987039312121897324854588159717019353022928230327914595651362330070221933820996137695945978430914576802921133407108541706728238920259093198464465506060985870437013834023571709808659713981805519290057570339295433511449623429685150108763894560714922673108110631171666315130904467325708053290249441527401465182169953270800634398691668731582749933996145994940913361160962064285078778288658982700458306497304664382519062983210384040998865080256775092799431284172718439424833777967175999039588788219203587670171985523552870975260616533643781954203507541675518274992293962170506600398445663536551076582656885170539877851432849501969524785330495066210704250332497944790460222239422346072990947456319371574034449419415050155305158669263397119681341640648124190951658878885196806043105177873663467131492187826886588348361522889589363894653144377166626776143435103278276563460742748144111827960979517040762875715563734782587169117267794491001293132861947228181787550252694871011977660598210636981268271466947481853945882430108477127946550462154933267217219997336213541340806668917202691968827920791320366058483920248280841493279458656252341104782017747242880796417820827383742158684479388642713595333520662777372948217674329789937690811452728053675183494150493472989967948209180564963193232320737129332401837779466793828340758447646531016493483877102715910676457836781806367241236164845518935805837642983163572271643565176153722455257698611803017522204218252525609633304423794261411088234204267503272829052428415582551827631197621818892163431691251369600118843337225411725452695242130387790279682775392663776400728978805001678138406232689013165776760320471168766702019479276258670107620848870702654224524562437254106514374059986411690824285376706383770302565706724539539927868965665873481254252719879082142379269962286021776783782930025759591371925207041777533425822865386956352992886919459848952744345143699166982484213628749116931685871665545146400223497224731798040560743909747574411340344137267163121448818655523898209819932019210352677831133507446351532529834978825018120316695608274966908371515255675745979716183775772405917084197888203361092050931366537477249830892351140775251924534908828475114928339158597178951364771572101665621959113245427396873670022497087112794881037555528975090187245268218771417141827882596245211505852406391193008635314967121240262959964336112728709521128999680201805970351522241001231339940625315851204547187324474479051892919290652842883504896398439378402347952503518696245435243457162396759201097553012333858476289636630468234002695010249784225291433266084140099959048933939114535765155514619852743495093351434652590290238813700275195878936150982063259772591881800578942035861679009156308192218861593916854159645423324625271403026821380002941231768733309771372877412575160759584385747538240926903045120691467640140693346772768582686908661034528208588366258178947294580344394492250961962542907877330321064772344320556500663111597774864554612173094484205802127376658667662758832023965643625336309967506790839889501972950334970659286271882924164821972155732741424436668140529918477903214181190016955538642427835472287990015541364180042142701884591584883216348182586139357890988570650813785541059829724158210741703602499213709023035914680291792979876720144388545446209838952857339934080972171596588419469416248308928813546964039584459366565171646692732342093013847718831087879627029820593896354219305599685951711683220432875984589087384374506023828307082000906794312546516112917831055943329610929958637774983747965019278623929121137730661971858036036818250036780492674468414249895704498078657764663809228525302853245057512222437661958248525127046297010800490275614556869862181475454453856435611477517841862594542565708044305182293557763797814332569698854039759669133349869767444691322340352773710162423242756264772731812743135909993152387052470887987043440025889188720476752430785032788996822308928148676965860337115376188037420198288314106156203734189729878658361175327278042375835378918734202742721269232411093992296163324619331116808742951371152278948706970074078744696722683121172100307569975551746041659480223011152554852155015070771163100044870413695676522938410615924418727032658603909214952098748799978421970840985729462990006595358246601835934992471573509434460242154013054632285401666061211106167770201348682529150523457572218345186551410744342250093090845647890606805766736837456563464104900830632989610740821519785846062402645345567932287076244696145804515513181666115162693192852493274539267915479835784114434979843652239060685321389374573610445722243785553151723300623093425246708191681122946083942587143821911436181881394904271626514541801609711957295253950678077603221927223755643263717376709515234123257981751711133500760939742660868468487929261692206724541911387779881890837587520810783667216103135147006671876011170806044681332019060129310554440042153525552852257903438240135704906800490172741532805914156149710306617068259430862309546371719812136611213307823287401738119770682089718644346054324793227863089581508308610679871988144854994279875060322377836010402288426727417845661956449379708714771240062437546126280097400637009479183283414691307025366483184349895931808613789248562381016337025208172892401565022678519773194397420771965229733930392687666837052884780470728777724831411484594577378036924279192772990797964408958471938817159660591752730959915158688979792538356337742371833995697616489955205248793940323498816535240240609276745865959348942779450650107217464912143655300751299463953771948861022378956204266430137903727653877786590762732917768062887534528060306503622088419627602429083795586922792489532350745915203764871914049426970618334777275088570599452892568977693692483958483315847910619718269689363218771890166997404626764936650832468812691282974534273315514126102117055446095389677761758499110583863555832499883539900618226204986944570991582180091763126589569738096296121514382032314575777732990427667836450200886689439486534478600487412947697698893502480842335909771894291449897639997451427346696593454522926943261393829973214722388286443946573796455455333800851789557183105021059868661074126315617985720378462083548448955309784638083090856930164930472068708644659491116406067834688770740458442729109639115901178050555914272687152108351103322931192137298293163060166918726998929672893696805766921845053066321896179270229130067918940406534088994623815565678538179828157058559985196306657541042389126727971424322611191056596542757365478051522332118233779282752931351310660823238496513568512825632842634992519148515237077005149979854957216416429081963014100715208527871379707134106504448941926533488836993352360281761622610759161663838194887278424752291961976072648708455495538310772578458451860332726876216285148595457234666240086209588463913866697703828026395375430142199721757543976484312518231503895009298422642411953054736840559221239606722409488385887609699271836001961507307804592723410053916256554700150667940034320586974278628383352242748883616917099680904582040326094312507938903451970037428386589588044084886383565576207266214892962080606736317542064439023883080743596907433481160354103149951218968458202345283079599856066029930294142542390320189508208839262980153149678327175043793506242383465898358534316089112645252806062436133328760538340516977532411463796440648477167746919975631356257957957586035367483199226928920251516572572994979423299475026113387796400357472031842007549774149242750835667174915613081947318332664592028307194051743732939607062957596620383938305013799168899129928451568537180512363728774678702983888957631116637287455533997514209233939806862775626150924545503949562401618758496434537444633080097022416105106591664545804332667534103863026277271337972075968403543936105325576585395776606159696760094003533237160533800876235626563419624083145046502894224295950813943706885766685898089120567602742904858375456874105078711285524032703061884200828244712338861841480574379772838546340834807722476493452666591908911822482299619735425497726370986874199350696979191803012881110717670336059995408135399426190909699137031800009725336845724892013093249715849345423105091685914694098780229132355044190383723925057312766499142495280359792907288469855314164719900207013387443349768519861066376559180449638761224248946460948506292399325981559742790967562562100902695685500481282206703602325491044646389211358425732258375528215470583199084280382085392129168415959083702185883356739311234025552317753845759688818723374432096337962580769446838232891221804000447802894521928200518308063423917383738231303147029707319370586882106274185206031423734275815703903380004686959400042389253148106565424617020738513627908386983365393895498566968863788162832755897770211859932573921586411586189584983108850172920675359016532034549709258727713414044500809079577242086608543564084588096719012300303929057942464839575784907808144417574266060121385952361092479697410867729329859323669417715687846743254842991200041151771279813221132580377389248616736555709994142257237301200269521953164515229610001193950759273726233689837866955679547066108791241323035933896347225603040863728229774149540750995425914911727374741905490901670154714893068910519184502011892765630399441753596967041688001247800709602597215182379545814565873246697112071302655105467220845057538644477696788076124898009290648383099042826516655140429331495726121483127461579891775387309832060331368474626387987691610145732935948194740169145083621157809371096237678825674214546944881210784113602462671100859988063461366239779777743415758035631500048250997088755074293335021597203164921843186635746193076804534471222185228643813810572556577417388023354532912408483660446488100994576722842826231938811628447059365541653270273559913822287632607697744410948208387932325092230272920129343076882010149775625768673994395379154627263925755250397209982755991159418839492036954840871635597503328192273815270737596055437258038880370255300024319371784664409194526153132939130273156950907161175356405009505415633151688584052326545198470933358815451465087468807399448818835105440236107884132621918335968481907733784388844655019087156243317740160432504218218420714442924008164169597918336408629088111060483822182973253084386362230092767881907983382785453691283234705402259019012634189495536882006485547118744782744952662926703891572373970092322888152718161158381308610936961178105076605676970132710667610032458715640915601914118829906440502858737684020881177375199670948497413753809589976291655090185354049781163443910848213234169146937677535252642709918796446810899465902455516944876219642578048195189301410189772178786249582990784848037310433965204225413289875487091366864857404535384971198127493486389614890943525200612070656493713562931328530182705268303087016752247539296082564930708498174313205279947414178645611795380950115371047532567518277392137048091136423099257220440704865865570735912559221644674077236668393802710733155039554903585913492910306474096013849226328597800703719729051417733666816318208089111795536483470684937400872028441637281021851009726411203958857840135451221487666680425222780918263024935538101736931604284940469787707562234509702517129194822022471924839147230799904248409539565735327091991158010758133153451350004992607062304735241048920117339307609132145922876473510980415964322826701193717243990966084604243717977343974832205272924349059311994624661512140545664348693234014616997312694103196910755095506725540070916832588145938689024840353607294115254658003829429572793338214494568141726694267709652549384029684592247079657666515192431936154113582059230005078644610480133834774797439968091086018973568134816010720608291169961342914493056235349934648242475808189953369962896702579130606417076439915020516507037112161835206661057038675028657823010721842675213623933742720128782198243667372637281213810316700787262506766672145977640809423296239315478912686632450627677849415760331965790926672174575607692541794795364672163612667526276350260096725552706849027302734963732776483365347304012566540998732728289796419874145092233729649562481231030367490164592686579582314515178128131472239125253157438701451845537011169987753847848462692662906909054252421335859189979953229369727767260453690977558703068966382532439985263576319875596518459006818996238653640829103505042159133833367194865911479905462850455895030304858633856433290996730662597833072617994027180964881457517418541875808299916256270345617998362558920412509423284881861586121631181905433417350785730166381725285371117470661766982299370384486921059666558369850627208566902407432755129424634671982136977374376145884782462494372098978563466523023490342662268203881082692911380998363029050229396478143302532963235365041088005684302941696801325199729339709677755044440597589987250620790617277451731782551458937607380042874136161942223139120476146395104819955535596558385182149681691415162184916292990757291245668771029531664805767911015873186050599806942677124342106614411517919849594647229662365253377997282613114224997723500948850630666929631262472592531768146087835006406705661914431018792202686019165943250607687276088048131180126582464664685773859694568885857654424542162981278426302789641956751996795895631865051305619731444659072901552454320154226454114904381594561982614547842036016785093198482277539437609681126648290985499186242744099807771866314872969031826583058866575747398376016058465072996866641568282105965371090568770098367702902126443012910478437293146148955769584699317259963654094008366263567941809179344842057468741370028773942132291489556493237977832900295659909549564420195834010279750256053760519008248736536583973154907345620824335808612544157480651141269458784734074550997825373326425494951181666780133296231137445447905707740620472326188498113857577927490144600398113681758688394342355412762680753447390323743851004218847560538930518785202544696866075209667480751479464556889159101373408210752469744905082929557426999883557810602767293528409400539792481177995923294471808179663183909659270326743986303931056109468669888092755334762173153594741258629924810023045455543786306072945954859742462230036461557060991598274363522992281259756729302517336914216489047524891012691390340977158830078388989394420238158932603013070435477249775849735261478816041104357667979112031605986597552006161989376389543434310681498369999522383972487412310187771761989010228082567849369215487447967232084301454706397862415294851069077309708149910304535621476606631316268241992761205590914796766626400006749911773554391065568850009571492664989719850653503364668647021169560749024339682232664175108360742225437951815315474783704295950956724363841998124584946173883145378531860188728274260773202634745236022646058633196540631493253002241268226529454124359886830851615216580979966102065910677543682202731143708540324886376695414078110084974108307482630367997296365389771742101381272493521489338035591087950739729689900378079286760715260101389929314088587151587815655644007472401573166017952247784660494203322334298341825862155102294441717155585412150434947806935755263054728031368162352657981725550721926824322827035558135635551341286341363460057113492061731522024590144384454739973472725907121672520161648058354746265883289385041714660601482258628322530205711586479946658559135330705015978407876384524716259656938733954235687310069980338773922914322380048491837109904644781254298169400739939190985288649624393863664998977850894842146856092280842692268511692703932471465037378084328141694458799092336355442568277307662813075560481004649388013138713540240280258593145253540378094473672250269017386161480883909965525183479251278640929156939842160959388223431878251998319101480636303344912529059183940120965840748367327867008075093674978199590822296980381961252442778117602858277111032884750030700984355172776612462107403065526615065842421263411356561813332104321978427280334829271896484559539488342873123197210080564436445569611341790878056394830140653264835177197534632174875262125657420030405573314128653158807921568076981654331873697987468593963949680698896915129102686195319472613749246333724200563199502860325322867247186936025240979339256201854476290243452159461174939657561069150738662986038196964912288209509156866528212829618329503542400113744420949523072813794247991578529538389389574835122604107879657039980710880142611900023408651600556984626426542269446991475625623808728912695655683683383389240254044637680239284478602334420310530133658270803290929726634266704328194520126301878969028532781118086014380142372883418319205980520135806687771855580808676878795444799782565497191290021963793096240524996628346985437008811840447054167714429818194579180788480546693263300419822291599322758235081169181999021328282949666058358047074309718634193055894832970230908925349719272202895052663968614134513895039398203029706599184362450061867079509223756696913194238341949001057180728332992712313448438960841782547626731083176904093741663795850792201523899510901310817056929296705859321083427379478605091454584779154564201833652246086082851868539699495215002861323219548454880174161787043408060143495184098108747274736184021047408075894264441202140516528499231413109174110269787857488848660571561581531388942370291820334083453763225907611567619554563207502653020056367020920577874214084175347496812618305211983508872170084109288481428276220693795596760705834996714660514876283193585055536198593266712873046084441322210193766974176512003304398055801168267951162560482970634863151609980131765607888761780453682286531944155173450655221481554740028593226347433045717821072403197854227073987861172540275682747308422975380617525718898743824103541156183088590921544766415214567550025925117872539453148117430834851331718816015467228753448471775674318818313040237180431951503055852297954525763400183647262451666619639692312976890728446740826177046471749722666572354167591978353513251340352890195055163613652637995106575960582191257687699480925865477669354112509427181083491152093115191443109209794815285856800196087274366809495785328199307004815783466853081491084832500918888242628961760502198433856410527824454104758819254533429461717297955263196928505804276321800446289206169550568233975385011599134354667850961603609468855986239108842096181323290307657070818549406776756969305768595327193941177446772205818690308312350752552301132983427757714961308730151113689455477933931863866012194782945144975560174605329651445318951774435533172510929250546699558263056168777222757001199871754674572090834087394770442931505488364181397098080422373595638013872768310223196562016490652840251119342618681270059229542374353816907301449026356106009284410249237857629020858498681110744413507006909047416113053974927210038364990417836197778384631663319251761024618592154467898982582921627238253114247925014562155962108088765118054067214267113219828021458830674737610918664775693406146997384320817163800347943203429061690643248015021068661436865677016030047693431504818726554020894151994509442948237290148728960082781382454811359213495775699884659512682843638982500830721273320054366351902145198575881500027231211303772677953411998023196638307311703257113681869520577125620750591146881512205130599967151575995662212721353451525818301695849283305017931091429536393684751332805623824417155773989701670133494520400286384468638082334014408904348231595999906504363108582438515701920665466105469544199606305139355938959761037077806726968298973689453228030328810728275722713553651189509745188225874224750297002328618608935073640438365638292339726096111179000806398408209005389122027260241541906288383072810526271905642735146331983691420446399155946568574909479860974092379958033883449606982014385559858299518919101994497068692704741524967372050399656425296422044202288329307777663545507461388118116309830642600420837205451403606663655522190374537506540720184483660999187913561167522594477429764493041084087844652491138981185037443317319018472221237298626631569273896808866896174833976428484048358826377895538046965573087695353894845207513022848857158686014278404313182083332624933880852229436152361046376888161566062164975388939121474796074246199137396345540246483339329496516693391082330750518009486191534930160712807564835272684784475026443693587095621809278392479769614610173967322460751918201325364991755856220844613916899283658745625133481419529563936032429052960956493940243318123151939584220613989966792159324793355243914344509081042665567462965617581267552444756171562830299075802769048450190085622579918252460255951323357439827964504848031133346591058179186992461302387187398651652839270225653256060323700911622273230593559414694804095109969088283990763169168497150278636805051096062222890552014961352483323849615984969489501800743065389144973132207131480695405489150639211837008734921072372369876908785387939335605214021776765548317464346433473185155282895633737615249716467181058658483082668106970488203637666867823027495051774329678646700644417877614147275729620935219780215986407811480903617977265024465197205096257701180687982890106771775235976826146194205881186387300544377279043857218617508681566278661570912975937176207685002014919202863541431937470994902041950696102366174102269862375377720163772373858323806332796914585496325048260379837789909076486076321906305243600729244740180880403343350367595457778887787186172768047530403337201807681182882014544443602300162210081240311307698174511796199444699750572252669607258891280451033022089584046620515841267983126304730776545055056923649066869494839186464001255341240030158834351518250451656629015893000714510967793297174573228525744543075813054308925231049815210253029215186799317106562129648219984380463574993812831233022245241795525071170423013957664299727007886652571934814165401180252414278739795748363623836350803824173560765775329484287808109183678313916574065818635523845501115061566301832067766376112982354101239250561910670615070276091610413097763504148090024681831732090866928329506319514666554234160095850401047566126449446820497724589946842097827471282370301963559288735879787018640441474305699656252845311000497795177398965194520064625817973337008225937566217261451984500533638256694992660681218732098651293797082478888168984084832703761620676304077018291215339721997719901942074410984052202811102743398395318526370996144411203841301353044045851878302521980345337264002738629323130495163389606948146280436057751208031626546026668137524258133448212015468310382579844301396746993286315670279950406664285244353150067896999422466267273444333682060275136433516997274798199514598370453641688119300547654290229442080124215323818131499151981220553293121008116681823347158027729477179952853007515896924461799787544594643253815167109566128250289945697245171696945977754011960348584641088493058422264743988527530119407338371578524403434288719916310197077081125695235313627290657158585232651271261830969283815123973195426253557102313943224368028887444601821017301632792037070795442806005592593724999346848438933686902111584032695271353715113659786733760158785900468633726140575462952478827623393145586439661429640171198671022624663829080086507324301607421033517976408364046212530003670747255613785106881369774773764042808437350031733283018871403205490066818228707833571445895937057528522704213783862206074482436884038102778437366905694621041051323734516171257895647409071258063128561880727285249817432452626301787213705993556111014302194673949849867471778714462820759445489756454574473805876646136514176692141680607045704204219375644296533516392698524390441146402554899800066295660426866632470093390419352555591165461413753545861062367565420644509370334651255584594069730114075332045239432194434041704218843508789177347471524431228683257514484696801912034997928175607754453227291451478203382449509983162963893105693893438530182187061797914232134772422304436060230931328401196668346412083658017072905036043656684936139271769365099540091700961399763240350389146316100200697867859306825861470824273526286951049256046491355785432289265648231131769822583508565976951782193410973938846771605420281609702706273711237086673311805130960065211893046916017220944473680832216168366219619192228791247260731185536625048697502818306170650796378336588558335461350361780309678887909180299881178949940174497074475775818767781558736429036016651886883017969087350392417793994730870920561793741637805850243350794344254838869350429197121627058987735251230885607513930548287680061095039851884018096399015822545156068045598864762290208421121589222825529553820440632404031930133145310230163809878128615627372316739136600626889733360889243195216642241048646389145549407257026230077644049034041540065234773220658215003818771181073844844532523041184385063723930922337897083430484214700153462563576597677973291593724611884283893116893253479906479651076750056763210667346220365721299243279967650143551608668393455328710448621981472884131442148364073152032872402171263719596209497304402125433374288056583732159498739349204685296471614044720394559160404254461193740017117822588217033606889335720979476209110494170045908116105662465268510544917867496372409781966205463971831322088403929936875368487242011098474643122270830586029624283998762752942774917391402459981664920927625624592482027749569921259498806212209799953351286039014398864773106960393492755329670966690632229524919521572583475768676022055382773258817100544879927949138056221469670370428175268579472308108905912987285362720518454206269117193312846789887664224230036811425705422133173098842609575823274980601193269303094316767547203223386522118027225701521889009842377021652612580392229459423532615584574667902421899425601712611020124916976943578384613152686422834716257828194744213724162802102268795483180404692555714706897485263821116899176837114889179088913289172266652539476286615243402447495999407547709845491233629853403986463770060563402373839276807797498796809709949460795202359216964111070934866336260923826782870070489543319915087083233315023094288140909090379930927520783419597433989920475917418312711344775072055090937841200609519574529035959438839323623958864696601227747189982995934678128578956790698995999140872045183037877949852782947877745081867575756443402496084994796016657769924392939802389990117772725380523449512349092268573664800567948631692693043361419388252914141173809072308978428219448219563544545944941329375557348237689428408926018768762206473823031735334863718900300758830520552937513372636271498034617711904055996007149580260759334910683468465176335182051749729224079103793147315820561816418814461366667509812672111122216265401304241516705901271278602856845599442853458988285276428032333435040733715818201458984898305514873334864227393359005696415341025267496646989626450796993493435219809742916091466420549911012262862000146004508110683753503609555761535882732939445993289963751694398448654965606047525282444599712591159109972587441233183266193102534976089107376874981211893296792167630692367154337647176340767725033724685971783492665873464702896143189486442427794914704045483363857104120742315115849266248122664779178190804638771610462601618223446852591004246229230450506188331635141248191372775699815734719133659104915794091462380511930658136415330128032062021237215217999558232379298853672596127810051740092946039690133503473605499727677920156373073193071720894249742186933993616769386206149638470866908785906186621436238913956453776171413997293370793236475733513011303335263269881021421014836379949957240329105550291532484270424446134563773377209430545213675843117647826742731330023191000830887756973484603964191651565119872960980645018538059856539096098582342025023753658041930909042732043084626907800819868039588444470039070805943385203619707377548197735824437811273295607241220513498494407483100853529399751239768794500079465557445413066107522753836526840272356254318894015823234755229586811796700658924821125068859073888193277482309797215107294380653480455073904063252285926488265646402773579607914152008164857011404562561674552337530563085812827445259032238416670398881806686598502219372400405626253794206344261023842067379092263138727327035206251477465851393067904354509057786703089915622828096557806359869041344379963625833402538746934701082794567824306649157511640073857912847861303886323360495322314165131049293678152062619294333107899663124725582875985462392434995264467782403489552961664692831000957179780207948343928636136081728525408806040795231765616483536226497914432458474040517461557560879508806883170061831935527616563318074883910999850346858418071755330764626386880694903831656752647386775141939381123883571790655912219067904175520341130585213249712230342234155690979257876218657020781536483979790203248017373956063365524611921717972461912702458173740350313259976303795782317764829113046363809082496828802692010994434803077730721470128065219551754882014592930344043827198124847822018049787903918207345282635233818472591688915643463232334545974312022197195844867392551765467661485435053635199042301431947496187865091346928899001783358449891416727716505219041359759342180380982869760496277434122427387124067011757770270388956297282773435763304667927984371430811320379310660894279248017010032832394627891565732918528906914153777419832805030385139374559562881906591991232624386202741382699000284304173778749212055770884999096384667837619705299983393946790709063709086201469014052717034487452354165813658039735190742880153442424777253410876213887956527224717493879301062159445710949442055147921729685106720296128360391246831486120196545389205520564447973480554730635913681136927994110294301542548383121997408317885464150803621771413096403193308845472303268021883428948527119775918696917380291164139484459381059662169933146250819644891581715372822231283264707626483477903626913480429865684841170161106227911054414102750946547336128770725550781387231221275873115712004146554514357570163790164854417169935448378231209948830118758770418791914324003018041689000014939570731242724751150610151279756240032945887099924133988981854625108545642571898203715225781589019990728244858907568154389127080471353106893602268823839674921070855043910797205632681236222816074656846083768301113634254986792001676713416729665041760665196147594605573065708410225180281937450660078914477932051141878594011924335267300158586713725852874452594049885435992972815854206273952446138089928014728774655222105700318042449651483657307861212362277423077232884338220305774187002133587293826933674422130025654266808827921392998466361609623359356556051679447552029542705873042429164897953908141101644159161904485803196579223170754657242738679101747900348785067383662534738779664468730468947053573505211034274139124284100159654158715435511067014445139231361527052859692836213996844950639620922186628913845530532281891083594426895193072839849025361621780990073229584775062485317637627226198918021887123526828951319691323045317818449081262281541232220648078135006369661532791414692763555430211755393345884232714078321887641091112818976675710916168075411008748270751103335109636065927899382146359906633581194435756067774882241116914617734288916201587439258816063405187653889113690047672369840599819164780138075409163425716627126963486175369778929861922128720109079188252868349359576580911958991142652862687473813364821851227403634313588036443856997301714368642175580077821971386518987217774419933287924254746930267814016518913677262884436184530641705868971974134988689629234680203899347171783487568291862466617429393745769623393038440873341732811952366077057621198050648961356625391226397830046605967380141523675567797009405322345534202586189882160351106518264265541380264251655400845815769874911513737736240847930827157396134865541088402705070430276031762136419367599919865457768634454534534650111995508110256005588298243616793391572133117246745844117250562560614168749581443393093698716932902690449680461417213777125235211725523675781015216231722702506230098662732435747828182942434855056589431434575530930901875466815844818649801901625433931254637587988516403776545079409953983927071572661249513328938701235698908397580229391819524298039225113102458941770201445090658279126689863846664447491144514892623583218841155915924591415813685392736661522856501746626492731483019381968948691088096592075189012555416520373722716401155039888524621631719621450436347611646549297843738162397680685803758905437453414917842735578526534413551412335096970044641679730223265335473423935602277415587788521111895169738591238469932898440792543060595016475940987233477037820456174796233134695411556821698250142000961240417379099720787410648807348459174028093571885165764074476796878113731012029901674672632473791221188078686591180872272324111922430918719628812731374267462640140911314536712690194009695983680379469467518885308314292547327493944419608203834336525158080496833711589956220354629473457499090977833397377714264177505155636106904566469940877232807602141519959358152394059149760534159804820748305246644410954963271007089173666049176753202792746338661468970320745828926181392196230348130178419613792883976859543799958637017980771649489408432307184609506834694439348477723651396794038406573247453799123631354065693524840378835068767887327680588569169359958117796113957894198716522268037269018560881126501468679518318981069089321051294909507205967259449526981569368141262094351814508208148302388964906977324483714574359926816237914476701050300384637781125123023592825350036789441370755665311314361940638330309328098243848987998828784615437513571068043838527042441423399814034184330661199386748184943627097247613623901846404738317715474610682281388041121267226539179612539497274263148044670302980752179060501476629343560343402662323879717418135289244269939541727057064264535955489337490452764549602500567549195044575897262094657976246936874454849049317834876373708118767728758983148562157039828645335898652882302041112821566744782291088257132366336616729086707541722136647174968981292746924512293865209750183877657476692008835929397597509222035227276951807373805192706245989970593400456910169871856639720390707437474276042506758072960682719510692382896605019955368997933394631648235940502530142940996662674016082567841043300709855769598010523207935789075613845494789558781977919552915121417630121285833706049271715601311613434829738793607398124123625471528010979642538668552697899706501847715744261054667239649609040426673433958349610224606952913157346004442432132175839322983548140674586526048705858356266097211561032159367003968935587415921059436129931947701986180864887392326507215577632207585714359473426105803664632801601835772742131240834841992671610331276855534392500842243695759361205995772683448533418034632668446528320313813786384697337032158848080542187141826082190355515095771470787478063516866851301430886976445515122502766349378838399235577299097039787736655447535611449947823649089219505877461010319690922057535486897021753588267326689268445644785862748235580707328824930363861817976851251318059542314253797790603205458024862309599285950409603454522565936253648346401808532992926936820786952435111516948358995565130445488256464180339425241898213837469702793155530541328411300878809530905674150345350309920353169314778389194497189399803449166568395063679082743782243704713931183215379778293078089736506963513569110856855923161243925351916542625466590442368610287754691778889123818705965632053470291415833465867520822556344628344297779456264508702896124617408163588764976764071874101471258066460131035161091626611170635218402841110069801526192769722748210922632157379178215099929955240002394949922460316485201262300917074277879276597026446153776263426796136546404056318185207697970059877965722353982654229244696445989219623609946188843490751146609407678385741474512656783655897123381923545579002359141508213081038198139404113636189722035959256397482451784079918662201579420618010463220862705112369143820060771950603781898186471018387968683675483820763576828232913511929429200095595109722925014159301419041864603181781932114824067645370183615397210147626927402751306903345015013781041001286247442567943289457625558209741583455119346854385539252040062373696122004493026211557315543980301126722653068567871252843769973830481545344881968870683987056634694422641419530358776799551469297444746513037379186978611179498256097013352858617890214009249795961853501587239353361504824514058350644189791981673253382490685056431363310034451251944725454103966556138893396988297145300224782093624108817652315572668693642920364844320516271306446083874073023391433227071776356875299018956730961613984925542986607901666308456326651299324143137286860265485407206360427332065115681531371389321016882048465275825462731926001960574882795198778719193265402229840146718515133543928196295462802934886385486994515227449141106276614110036567878102234209317910315782909405729236288320870659735590672250540455957307099613851026959194015679873695506176648147564327420669799127843932291275547857041199146296712166415719013544608677508247602444656321910806975967900437414612430710484450903150648981202524159161016089566332637923038051705776349207777811456242784078020452977588871655446192983442908998885464327083518824975105670639728777515598234465400419000598903051915286720837339239243179213828768777736434797720911757477944451752213588779469982016378349305789125804710531907734025887927816942611766244683100636843294407541058450388211828952721606130336694049664212272019204765644030842289284590178579148583256673913515691022556644871050893896644247274557078141432085507523647818871936736136381592014290982544699257245623995710880340656719469211976303398734414084462067404911910551492719056826723740198759481316274770643531927649682193103466272210306923962857169733887960135660403021075242103926738012046251025158752968399177611331147536074337889065102265239448580606706764911407271481437225688780657996964044231300295030213021141553367767312596850112822192017513182345963002123902033191110327697472843376331242997982618184694011650904683330330482254538716133813068721441068131271292837503454553783885678888570437376451724085939764624803726411296828929180304243802311693727822649909253115468078223353203160517153755653367374091083054429059581105255635226985290489323597197389354728437177127685197043689736646991784528445799801526464468453091593246526274325504084815278052021840129915702113178844045024314511965574129608999468563549972995958613958827267889646619046623089660461189825249379161685557821172892341145946661240303892867910061741645675372677467331606342395371045376261911525436325354264992620839552930082591756387824641596366963751746053890786585764099047892392244120730543844328500964457198561256017140468252401197844349660773790679758959544403183842051257935221270503750203128237214491120780520873853939721026318391139802056201611130582717014210955151178212112199557330767650174867037329412156353289156220320901670504501772737225383541089994009382914382301961152386658890749958843350789986528187322742339936044814873884617187625216545896161157748278555663053174657915220225644430350284540403762682376810180664047837492798832112548356916189995567045857974895862325365744781126728698892269658274812795878340457233833530495551672341037825877458577014009458905835352150726509183879629494351052488382596754796532877070494988118585885902534996136844307484698426128962643153641026971685448920034806980702186799643693817820862435787630169996637014594909851079814981585897776341718460696442451671587673362274277252020579370638175437665254648869640443637220178857904425508995687900880356404902058232620145323031757870986669057962616634440409027391633885011641510702344451716763532795444835230667150868089377104484870188632655858986690483087440134492287155221040729468750155042607286837713963367910730882083494157254665364772549472428341837972075752698167101959108014444987304483735696066368771928820636750767287991370347046198659471065788196991764312574773558824283058360313439646821298513321912849287414900176156588755198436387036366400786275831568154515639165066785683076705188028902988122986885259556093303501338682701755193930041850662514492892647450589763449899008048995330431305735187295226884561672969537586705136291077800053906901146908590706787392398978188253232852350437587447664523569004766673814799457891935366775394724786471231183165162449331784201599139651589930031022651522213111809327198899888498891857379560366965468981028219120372595103042835899959473608339831689835481814822353599487369189114693310327976173970842549577415509538800711171708910783135565825770858510739317558181324661628787012740492272923860907264213861947127729476285475099520763635400375225250439384648909440259451991626371817313170087817726999076469988794569134935798282713463555457716423350226920216096258748945221753643342731645114122525295282595030439191062480285822032724169589772013834699433888340036849401059067327980174898267679586710286528530801377819293878877022379351357185439182692089870937261270619102518424410092869887762482546166408960261315680786419088599665548610868287320257128436051399085872190930976523547357951077762506444619038077795995963493595099276492359479559333963323995873687932954854078560412628570681351562171124250341668664762781673033212001936906575638288818516474368278167605440398100346910409230057913962165126240090398387817104996662992188874277101129840763313260957000306627624770595986021718469389973735816399719517969189711400928552000994131631475465543619910799376912345825258536796986327656213177502498834073548432865390370266943663021073183177138027235770527690959061628866266225268410857383272833059205462466668811408855287011592325418340528324582626968293660887057086913116858114135510331133217481424578016588460612885179325146987313802442904620452486887693240742526173232425396926072905825107962489755137275338884709751602651239535702612711421807873564060548870578954222954831660042925987476551352313453338082179200272937004062965064515849430355328553388075353814611952256623452634266801723105232006028406949061150975169940253577615513392272371089550566766153217907695142989765910666529637127176505416456567167442463550030313699182218770011386376890109150597204172537230564166750265851175452297192728751040736266113979793616118286060079996766169698685166120086610800407578449217862660739917453719539175649105421370493307463315332352507810506844549782052974358700018327699184622573138752110713425205457042127032401376697528501350425191656785994349570664598296000715661493131283926174081562994888174924760158023607062392080092875044594044476847393331838823283541139493944556442787856283728256261085959011607654538997062446623550977887636154311722800471739645426982017904224455071698618210759508106080698277414785428715388106338439200885720457466110395711443725617838697581730500927633292536837069342090609770009868955676542970929202965636981473659867719235021674441606526617012084236041808685136512927956570015009448568065897542513225122930135014117402566289704603315267676830257023693211930048212746398044813633282803240050445820092464006454954524581417701811548478957374961274490049435231542021658152602464170397290422001753205119752614841762975680521849388483906971239031641573294469641737498255340343164107786118029966983528663432886217347462619920582804830986525652642349171009312911581409085001902573469279226074205803114139730770120163702305942060638957047036427409942849091314782471003643138531313003638051673117829801861607111151131689321600846844041601996267051593248483180152131235819672167443020121685661610099011574423933429395429159989586993391825034530406420611635931960509350128312731072671061017646006839862070775310779479320216151480059665929575374138254606390296357881415847949438427041212418266198331681550419176785875815654867023382385405505930801539024581430266003171401559187441179316447324084460756265954580880871068639228450694206265256447906483094625483935141223907158619186849079282727344764244237339753302112714010240566629821704640344837299015119626507399847640678923709459992553264158728925573622973095001967235086990529452556337785120935139951327174338439795477743994028654133638916476776644299382547783078251699966613734614647938678022603847408984721737230896931716743986341026932204060916581714785327957501356182929259855774309169124163674161569088382987031248264622967156634868320761634803033669072410529315961351952221668659176322270684859661197946704161777418129952665229772188271795934844667640508001075391788877871838411187915003411658300455409902860375101269537762262014555245496427240717485733635364254202091007726390635852754134182523048374977603971923040634913110019776625886305971505881649534546108535764468819092388516116684174216583730485075369813748081995929204818024347653425549490050931184442438437047605309610187698624794973355747229027440911526744001492309992572951396609470017458729552035810511915047075387988220722755850313874992924014208101877021564956401365128121446284720428941452632347670124620125602358780806804779905823769819811764192840542153085078694915283850861736452499848372947778978734563694945349667827960643556779144231926147396838439249415924076665867510590610275690893594808852173665630881321598769975974093481280235628029154196036891748757236510678699471661583237825448957046742709589834450396880568935422249611383601543545295994581938059134758019224629305510546746425870332714862393195409660207449048391819764638319634410849573145957643745592611950175575791247740786926864454551480763437782638816896684486340405450760762482443825617702908562734593565920767425294389544740074112808132762706649946692727844294782215980041768843298875078331510401063266071844759503393438780352699212232294691928826986164187474853507594233878789927392292799150221628663601950420227805402048385218758426998573720763856837395465981772752524351394827165617955393574005043336435338460043636643510960647687867937286430951451708798443446260167579215566411853693863098359459882613626522798984484853208716183060458773625160415049275894948891881768989461333931035191755496673828233322557594911336284589102647874710128584437345965892368005057970178775592725353699442028958471324905484446043278579759837940269639881322679110453868009370075603635650911957508567377353816693842238992839330655744328398787683297438220166550066631531748305062136002125498656094868022204232588357732486347001991320404286308285900917466022786022507631968967812568323781417461866127542631409829602752234587522112793392986252281266804206702626711807442773031517256576669758979038929722735077467134830767387968280036717934779633143846576734917563871896606728875901723943268850825610145562860523699710759946564092062674159998885813606352656679387490896514646753109726656782470013515443336686539513461247305619924748579306354472755313005020128747425336176010216350105780783189457647658292959583843789071024396426517767258538427981366084974912425140309252275583464185074297815457055870410384593076118376059118077992703818614709553331012984721682883633938787885411313059126313704379763382695854017254012400377931439863876188948610191997924149224559406389054840500602520163861703896848109148566041390177256601012893045487788554177077515467264611730157249676777798795236652752426667155789321797636499455946113078111681551902459519989416051047306669112579192843274139390230865833388746261189227300933324166684700446408613161494638113876414470152244523155225574235367992932888287684058023834928654199524375939629196105998991512676583649802808756332727619134991794005522357324101711037356447171413289034874522330759967536169539090145310036434599157903361009623164917301771560904089684921854521179343694022848035026612460469826131651664249328385237140192553889323876634408285833147782156439151597930490526858672542061461821467859712607023775117801991814466158880015926249704531269974283648669121971080522965853145273123753634439971572447980094417506235918257495456379427397845414958345381398056147390518651257245148254977626340207083998924414155365773121911016515146073608616972893778430659938881195336171081026821104196509873971361598129798326095099712156210335975081574200237193797532001025537574107259401940019329059689072632087645526354465494206528427646844830151442322970279442034930270933906783798295184665963127543343155605261195869305581583432868282414926181329290714213800658793665954075998957007371343335090305408267844952461096071962156317071185865214054158957020215502185341403903890765259846026817555780305138227315393867971897974035413510176999888479662089224237935830680843963990066572461022189298863573942510771293863191687857283326389551357525327053383203351142128240468238726211084218306610924135629750821239925920029486063554655229446941317759997296546779788655539220842477665305536972083592869239947273846181762091722222196717234267936672039980812266932610420077533399207779124727816240345531789624317796811978280194360587431915297258378791694827339640431356457020794700563275897214508679548108593639911747080553121060255489052621031108236367929870258567515555834739892326906654241024149415448493147942455185486299456053782598199628285683705136414250659084098424551302103908184454795659028436979987248750575846064817051820358310077201561534874304869201263438840073188100777020087411356823892899152133878808372917872188282865264738205529026430953700709362950882010747570737327464533245806016758546204274315736493001365393697777426025207543782902022061084772150659875511957475757540706103070908322789422017220344930781801497865570026658421535648994048297328904905127547218617994196904133235219685958817303281220258644389018679767488706288365136989252090993821675325280005860498449175458050907511118833977345478119862724166766938360060264491192154395431130109984211470981952766749773019513729364279718819778156225330078652306736594283467245101891878060750578931678401136696231614559786374334961085515425008652595129663039237149731043927644682604615988738613200164716112069706543804802978905772520283027024206846883203325179777725433179089277811467279307392853805207669293928598685371723192698691718265879078941880985646471551115391493817464024065508164130389163933902803173746074447856731301567464531689058774789086971388251076367485370421369873181080733465178998799234162269670569172893551891251460682226041230576292169991592867457378660188290533867657815819812515112858167871754975664604458730248785225554033548170075953689073064595421802633291154617806625809846584442228873647615862299122972134231153106125293145937616773585329954893524824600897392869679692686541259237490536126005522967802790069582060947289663610491198950139619825567606590463730054762524367219603414495174118137446064739691929620510380553206398783915925414549358896676958582740677557454768338512473405863964916529116733598438832128900365014701028365253074602683540634974573682744403746575303346920034513182595439808833241322174645380598526476797031959550063832490425333425935898436647531051132337897455197849713658890162733312159131924478609130727190659892523070602708234423884740165710680066394982486347942943193970268616683612302619116132812601735612049475796047334331538589529260577189210537784114996227439514252586366011543096265595441729239348048120448702106166436027059115450771240933823941561319052037529578287040197239766865976109315102909316363586132485122319859457805190618188277359162184304609656866657366684971982438858273247252722801171334845253316462607815925683546441486227988919084089452327861327323172747391344572794514294184672390331328778731409493333236119051533783143438555105077381793274680308991319342061708562324336952075280706526256806971712021761519529744987989974396370269146866875307746351818110460437109215173111585089228673165258914176258524293583121204012858943562470788223471494674109393875031899698186604747077938957774663397905735946361159761239582489646048729985956971801565706547299541958658237947212657535176205004577474602136949886816201218684827299692311847237448427154221251051921949857883399670165164415520442118687292488386442362959455730983974130318141928159274697761194103014854886874795352655656261345506374686048122257376361393825785972584944230278611534199400537843560953673836233700137311128591920057724653921446761118703564455016861877840184190264753787507604798366075390587671163324174594897594923500728573430664763341369192547164067329321283868638093036510387810204506744615255251203558988885978135091557499929831623792152039321297883493984597809502336499497149037046144335500673523202680442455732602381531873813323975615057434812776268592256465704657066166150985680679894476387554358394450842414057679818617031436905187968106754345899328434017301302784793120861829732284341390375279087849291194838498071247151289530242447030676911435532299963249949495311141961891240841789590247789195562363803865276266251524625244946694925209025149602442454160936470739039643876066588028437862077688463842938603629261258790700214439683265604189122859119795558891826858537126796448303870030570576756027277848803579036937465345110417087052531772962170161895402500739275696478002012395799883029354322529073308064772195796271109757943869126360639025417346624887357925281398527071414831001378469779484605040507290657838903792275662800284361218175159607990640834682252422802026001116180069624623861558611197339840122209870696831725567340900834434902208226259748698747688626239027426368266655649317506846629119059982776217369244535321551653604922155148096221810275763409048437421832474306392195805090763486129045627232742261608351681304535089568199116238236002442047742172571503771016646381954485844729779972455681112686445572698377369469842576124764349709629477640095295691355138748235079250385465995672999333065623209085041771710672342279542595640879660583412419086883297572345067697634732963819789133615986163974102473088472143644681582496195297567483572413098826342135354265214138382431148294994803527963184432647858688565210633628601765011847320961356447227532178913969101783518399975774967975345939529587989978018554806568484852620950042193724921112506450454065542780162485255373765032578567886517251930832923467853891213114446594421842542145350382030161997801034306531324833213279647024157131156003313266527363654694226544107497935834208451275509487948930325032829659849471149376437284374682280957479686071223954202333836702717476737175685408125179783440419927819479275989908433347946813963024626055442315746634879635067607330690125691468454824568016865758512902069761404872350355221762236659742419196886479232694750750333398393022913623685395818395254066516761093977625721564942432469325028438796522851424587960890395317092815512911349299922135709485347275928085479867521316254717021283131953842125519425690541388039313507545621009324371075956782818813162558672756520478377381812303355145719749920443432092344245813529613275388074886738554342750796247950348333992330057570093734677748270879625238117180812496393296406615854274428144237833787240734894369846850648841212304652194723792173388203426777825511136496067578732446101071813489586218487320096046642629293734164971479028971082221486028335568149753205576811835900356429405831069337157496002590691893264326532934423384055989610903086424541663521822482718719758418748618528617096442989871118432624011814542209877734841824374601626423995957073118785851549269570562360599700327303605886840029138556797615102488575904816876650710511707912199628234431119224295859192111933333673304589089856982875819601330429348776559263184248893537963725990344834598369837972995445448635971579986599966421293087522713506433567252197006490352818064355785547775789594325732902594915631367433641992944768265974753957962982770351965743927942652165255329373109801839255218270695820175248898756967279285116304862405731780587873145499262619140755209659298983817361410581433194895009060265098990561517130457781047223064734391681242563504147366045708421990652663074977077783686115575762395145040074958033231161109812341288682073392897186390634820984136434913373550445569179303945402163424680392629680435348258274953677937777062230874522456459401928236735476832640809478622240641584443415598453985145088519057752761262167333425748039800262071580517018330003456824057013616156031119656451338409932900079798510090872658119917467971016559426923823563401268386254464018905954335343644441075394660029801231666588396545010055216808679050719395075095200230426641868754846390842173741813233954780043102307414946120350894492627472244405961320902032658130831716412911182348057372111624299965490572910368079177456383102785588410748598170966457824359134745682633540870028430046047471103788968410427502884253513883625918346196162948721826525088733705251953666238915535279912566410343934716843218518573642500152198357235499698571462604486180127837610706290213019178243293085323611583783054521305796071949602908411752385931407485467798567958932981307153464948495102835757490211969221140157418002049557898926643962608248777000289484006515304431928294970068632671230228567520352307532372193603019025732748121665032057735745637271777670673311008281276283775283140003786070078785459574259671908533467721170325097322742981040317674593645061396636772278831597786276275816670377791662644644280194156678432325312857267022382287916502260617239425205335461764084469118280847185321433675970482998422813258895382319112014683848258643694050542092594745541256657092557338247014352552755452309693924271307076994170893709716652678956000952643200388094750615224806328539209066591654245492739343797455388689515986626931851689318200062351205065802757232283503164529213605648344130178520973233475866532898707331587459917097112696700481806516615824454702892132124798966052524400843180215750536616914866206625780463226019976400553302217861604908669790118890803869869756773155165849741769610469958046799939389774453963016250028755127311915691579718145357890896663018437514227162423122359453956021475216096950195856485148553136330840144937085981362018477082245226856063234233155001917561210257209514011516817042211418132985962542327323231089710723212167414071876499648014547574383709750397184495915659529525589846494016985281548940612951843113604292800099916129909112299004201417472164531343194645157234688772199272759605778145159909283603875466134413781790744593162054603174474473829179692874630236498513413649371294940779614354815468417079259051807416145275695310098818641046792107424905747337765350613817883202906732673413261372296714667899136459021884693818317249752764431695659523537708557453955449759928262369726642844697208529918983055975571456931457219592145879691548389472074107468945096645003375488372394684577554953612555761501660202939122594576887697218665256187326733524684679324268175378572717661105026748216508247696139270813443692415506400190691085544022282883059130894139196610516205723221075665470446585526207893604891949565772098521801989513951414659826685529706836987685041387867989461431166251730351694820692063686855269578165585881730240143708918519710336184565137193630723047601393914081303345876725949978436815261910947782632401524654497583340885242360978263704037066020105023834636191450313796522146729590058432666807099310921300508455652082502903372311647537010690466081348675082759131792050266705156613263651867590097164933779999459431877974961728513984246701130355204834107718624615164215527336533455653905910826825644414919920257900052558586774691498689274370545464316082749581683304929288873216998333117071677639706829883536639582544948580422939366625351023178170778975434702762770814429526634539331220730245644243956854550958828151718564433869350104422351757065377908473545189370507644384023057457323838409474802930344671084525778579479029290306147127560435146439741385572997171145681231914721436123840385664440709985889718561325244709342706539830912240992140630720099959498619618080351501648562502784189788697560943579620321523016248705200329700494664478232985733163109820924135851465302253835346846384440331041241995194925857481554701733738497110283191762585230013186948629690345948175741966795610889677613232482016322649451586739438959448209250769613990559152371002874710584336813245114500711809095859024562725471703198079754337082081648444289765605641483580104539572875334969253290056456946484415569700792035110162122957061687517964426600653427608125450688113691899608307516831856863651305575149948276105801849469693289188727450349939637890662036583877746217853182857078142425149080574020328401202639596737901937161410478162567961363966001521036489345797287596633008757071897607450912089948191187339017367548123469810965461970509628660342502604251596571969376272556465823587380392747784502613765344690868180182988504101080968341149520428930202487498419698756717848310550310719241005114359770954342292124731787772047535421225038379023173912841786934675674209104192130370051193844303412132016318399147807624785569302265101061142355174700508248845811910411397923392889040940216582114000392062491860518499231628431631311999099130570109424276157521352223154618324761888311762977447959228416929720883843869595678251051706991846003359043026726485901580819968121229198129732562334865963355033506454396892646421381166674938579552250221009269618908710925077983888087540500779400555044402403816978407186003869540020215666306536150968558715064616248025356265038115754955879744221540797188907932513542365442222855068323330257096976446344711089322661318203823628238292295011604470634098728328562549160967454404018263765547631066139988252530565656321802284786587699962730339516010681995412042248284005514517946654258630639896722375644496465517821802175455030189391844919636474089694696603251676440416144384165278769824783177377534889478129123214166701836940580236215078807659501838813648971616010980338213772416778572586113786629010044469059022136588835504455930366595818255376376496022340994408090143686260156328102727745920247710757059601415524684432266927360036744094919540121233503222181050030469476492607275671968541273793559453530492324342725546268110753950574859036677710742017068868070563864635341460286193439971834990623678036308054071817961646305653585758481851670249727465253466549114179434691520135780670395897390656385618645836894743177366098484558139748228525770932170316433853106235414083632423993466499912695816135430285808215340167634813645415168971416535181604994306783238907901361547139989321132466941814319856845802202477699395408381994109122919350838542201789060830720763524354410906785199858685693757646008386107416777981236067601962595208084354310031088512470958575846490772080762842111648119128734006307176595709322823024660106846900567591653652133004013479115580867956637846491684744614396669426121991227901098953114298597795992282974407902149667056661632987021504389644372040758618965744017129791454980392688983983323648647937080633372059773263881533464301396835870095798537465031868277790309853462043047314478979060881710986676200705567413095094247368567658185982731602453612984139669252151473988774906094868150068851816950709428841677181692234622778864725058881759660222283822127726745644802622980181238350714471318408957719894549433693795616846291366662988255309021692411308586390810217784170763972070911150705921977450323259497528974491383626141448528155708718226869203807704083748838310679411285533475117631406168539502662987603260739777927988844832878277985907510504445307874213815019268379133613577711244258492717511808318513755747169881768928902739662242807494047359607685717688331217891819394622925755664354319562552131605843570871342521831889830362444570448473292969917775587556070782242978047973696628504089030307426804025490219235879605679448218022432007157737550585126028863186685706647658273071619022086337527682303742846542509565716874677699469575356466890606250601795606417121329369444128233811467302720246231686840236564925968950815573379934819021352262836108511715357450963518561567166087726295330492051625077983403698067505205164500466078371279428973697743825176776336045028821348547810143873236897030773852535652901096123537323677714146500826501944265624550159666976408711798326346896769673592828215123831712843222242685401827101351331718395649709364534130564365178634544592778688444216151469104169126285044103105876918324311262177988102663805210230661582025299875737035744339803420816072715369984013525891329202672701692072364146265355580580330049110059666132006514389504313029174386854274571796058532588684708987617777352810286166663249584470169527302150653426003970591374342204969762824351408172694509521016624229834951826865502362786941734666803155738848145676251566388653067357750052160507221530700231020332037117849969245978229627220358521947593265661983045909361486753681092704776798797632462446928632888277340538431364934380912473801075885364098000270758533524438979592508225804541037207756761252380955152671041229992557050521851483383963170786764107145941442549363747516278000197899016795075777167440699267871927366858416355175178008638091399829492971361946465809853084748014960215443692684279730108162400019072438567296490957295365865087317055289293091232687816616841903132863721291061113776897556720641750491828060808540363507329831357877537100817338503486367212272511276075175682306944382396816793971766465988442952050885212492158020886985200057944684430036084234447705300236862287224725702509815324018915067599311138303406625942817350731121711062572924233891739294163418134577479280239296138264000526591241597406097557826567926246508600383086602360670665671644233008957677428527314557178457843425437990977298156495089034231517731532699253764273365544689106462211886185043136386093243762800547323567350154020332825090330270243542539103661760509643414712171900916797420829994473734637443046722590034835843319253158154477015878778859447986898071900516391627033571386384643403264386608533237935127829764180382526224022292795804887015487957952267745430082639496527897912585433158742812954900196535567881782838832406508682290614604106240828635248597785025187277328523282326271303328964433316402880891899194076011250006244302170969218954986242129140284096234961121674856884828241880778949602736974035055305338027832562113247388409079482176778206327366289194876767667864413871807614921817526996673443600869646128388358679290835434403323466129217590931357959273308308458678757619044737873824644611272134982896535629620900590010559633210491238697464409424495884917441681741367882742151968246328478472511214425181254045616642958900145735385974069064619781560284054973909113081799025166804266296965054443968432400309659582790793467205291254270614138186562113989421663534437012677818391198684434438890922671568942911058063065380148123827234390432409156549081130824806267703279029292365289863982667174493785276425469978186518954013406667172059395896706815626778410044891065919176467739158393982015365588462433808554586916578752008975943327525432226932608497297556481098383321061241697071817135511757437573671935494821141171866222854295180115170317021170800651328663536689152676414114497238224947152066047997835682517268367004782967128230859343694491359659179143039095402099164195801494770144252150723122505998238767377867848515120474933153455982543494327287951188392719961410177278002097103500418725927100606890498317701960079378828033921321721331272448678090386193302944437046763578127336990263793705572909620292847577948268262080501901174638393525386940366501721399112003978061840536408881813782652020394773978382404831292218216374208995533881838437685378856915903939913037384250059655550114799810405884187455517770994573538019710437758680578293442247526187258627827575864170614960017777416966700694607308962426442412733232180112708091867218538440986862095553917672135642056470703434089269055116589801722216022928086411021403187340613919028635195342545584800802468964623125463234687947088671257682548968586886172269348790377485456501696162563401841445031588010223903654433975667181660033953910483601786776954952637517938085212256287266885511257779889263981341624935996719657339118014926804835381235238929273991031321162815504504813208213626046004636215008326475013560791298309742834282935314622267289113214517196600522365865028612127452098917156699143104269252608307093710812265623515708622011092592676036398056753185493556403705704100884371136129891271784673960129104661109711120583386602203052253122799252322507917882648905188129322008432823776232362101707842808677879578105289662553356634517819779904758824721104639887204972003810811837569877816363406193074620544918413561578670353176822777507323358765919327958420869656446525173918920202544910142806165346430745450640929211409467643529597348925202346789091314690564328514723932705443332380249806065146380923063577882202869044264522002923165091734401795150317754197667438170602591042318871595474929655395178484206167328786472039651070631175924987539843264381551886445866758468846030896719898994582737089989143547306819910276935527646919252721521363877955910556888000320950911699589692847155271973506168497094877559084299790105166235204936225263034704439474079428406309335548693976294064181669439873281619544244856709358222400349436792250216703701794105116927855756315109043376090058188066560777293895353345082638189842680267659021429344133039937449656470052337376358581991528296219835294396010230086185046856815158553797293416114625911746253124104255487253752967052234647574613781763560041556625472596756739119737873743547253041570823840970229642042209808286244061852592330852900536505092182583729714378399067813671546943282233003531158824290174677268324241907468973251156276842602999954076323771068286249728616161050313711112664170461909617012905317073676199263808997866890071077708268011908916479152387836299546975869384640546589090971811447639713280855361403184465216337848578262547049723682759603057654289607734363906841128433244212869223109387622115120663474714984609464442112407155172064562427251296769143434978563307811488560969513612119640358180090671849630940025947773891239616781764355814736130298768399967554964510149238602177319910966790270126839492890240279011538686971644050845917753387418923449327072009452982518910147920838846579373455248288284788585396957327037403667429583883267326700836895220750347698280277217097887347788543839197653587851968930059469581981831542262522265522103949089202773881123480621688807348849233959106502672660503783393267842133993550856409131701115129192788815340882656386235901188169569253798704541853577527139137536405421436540336985838977946267778914213935936827784957648486501707706514433499776336450559355844797189741127140447235691881466615749919178276524174958141103715655006246204374917030658637918229859995791274441685617458875816446366327891422776325389665133140192248235244363793601258463673547072303967834488294312159852714832335021695838743949067946538504501729684058328627274794437887384794878769670719982284622856561530744804073801151331458995772994421958749485528082640887278423335146949727659347592434522319355055961365889325592022167040229215366210428828702675537980962297849959113336070805347753668564721077240426455756404634831952026777775547996261043059920063744348329707666815949996654287965441897244518347698185162921825100336178740982046991561846911186706931105871559294377962059553867066130178292770414050420336251450132343351471887489082726214295330103629345260255338380831440895826708138649499919184845244110146839173561005973322695578469363673615319045429558741459609904552572255623230100207717670024744322497627043873474524980118591027691565366904950583142937705299354557710740140773161130157679847647341771881099863489169929233526847188318999533681979929574716445678724112046234066763715440693866827668267272430306964352360438701780229777223398628606322483885157692902186569582618125307939315995161886857439295960877344653259023186764898064745447598661750837124216872145922243789674815662782383760523475631703511859335871381836738542611917539959105057828782413345410980523799111003511715260087345219788000492799298180612177308596150565151017163786207054378043252735952663134829048088369280543747689444664959825158155872484310615905145715172181016860128092222102863092413416216701461265187402390343170668547269173722936443233486436536792889834603174116235096473446805796605430774546984335057034967710796287139644992477406148452815567476984309159358348645411609354749963733837785428048182453531335659686537269340744700902875076469416835531761062359236811319918493782282707069997125176428684110879468996577889713600687294825592992131978125008111564045832026694510866152557587368755260479729004579355135384179839329362707945923854798040295890605268984901157998230386543598320299753546210342888493690782285636932649120495083197298113606402086209064597442060238415182001121796391646182841312806202928048963309797224195862592695790222804078111517388382450343746185248082732788134481728801837029717437435028616154455011049103768309431377035669438489379354060782774941350667739521929825019135302428124735069513410667397558669161967460412863766729328622323602528005156520922821708679696238511069156534989762365830613387926071445890633531960783386253720489185034329661711686857950097582190037134056297322678266965254882714352589654675090218588310649802908553467764807069305304124761095321020725985270082512260884125967431401396796363592028640093192266039930222490266871780738909233779314047600289924728053873453720787737148405283734322883488096669720237503544497530827106526212042532999921281266608882352919915497249258716262028284764276979380279432420984818020294971449862279589219316198302866325505871158542331549897875369959080388707751835498998003497366881873898076959338815536441449151786497356113093019217457438221270067235333257988544235370667953307457341324566719136743994539984554510930264546509881847852562893386380168188140599638801544886011757156697174052368238190887670468331162609072798289161802695816591479871848003370802076817106246424288515644258030625904677768178159018671520999916194868303815109683364258008134117382338367349597782906021411187109430925396873734241195847406316899579419054582637734785534286012988137964824417346688834621364233751438750786499054828456083394911163643008237573779505177692813524600612428832530299817698987583126452561616012356707275857762681694000268593675926779078937126123761020059159848944055157731674586072501237601729996559585015843417777614951716192395809210244182055376704999620879712456711820614197891067307781613870137275943836482663858578293671523658208323779397571773285617666082036762454151107903049221824839004248592200794722427361574275951871570123140720010119321511703878895051749427188801303232040617240500834807336626875196730286783187346859879556182119927543171004929195898857388114028145261658546881442553629881943909143491324992041645495138737284957354535130430628573390206094801819255087643258167528548759823604926883688871213693510233483048905970253819101918682766908532400967004780094760553197503001150838108194768253757054891651941854104301321300124445488180339339609229934092601398083507326368155067897182979567059962118785723365283440448647131341519801297519244126557614886453869014323904643637370704846845821175190157210660775651370493684543672179422428761087990205682349982960611655473404855016991369019159125614396043367634664865277941679853612207820977368250828405115497718914937746015357979688286472539476274147443958189270690754829562048821724877831151800922052759358274168495373350483453126737405318033638295478968518832234620312004314692130579151807909336445811935806264197555156676841838356559253519564058339489313455726779944988573310252661739455438847173470351477417016605217262223286617941498070006897366283271649777268921608457649611136227573740671506688635500051718708612786119024610477471415830867926715709391219602701539437749393586090253297384021893785855842315177455952741200765193367749767536899462107745308683227434449063624852506148693279622514515403646419768279506459168729851221869886515859950317109442746036992482927064806078283015723599294778127439801084297684317960597446633645108810806814960457052151495267650035013064907862426465560896961757027091313718915122374921633719641299929893891066380173925384810301713605602133327721780505221592630068505232789355332130597589873868880200855795248241224906822935042538338818698923826443436141348697344762490418039200455418387829993622556230764004688093689187157287145879673098200737739049510736983368030000257248995111800595255287111640569194132226996043547688411557143186735213075428807807773059253585049955143188297520104968704788832187618920349530281625906030322589081120063059759912176983011883608130261505716888386947527014493145114292697465348527056361336147972140156129142441916080017576572657365424625167347899538555951137390230496144084470175247097652908654320857749799988281864550286191457044321652995479900855815597022476730339375588840354530399930208015267638370342399727022178687245910235792671386416488334652402770673742155948496306726620986110329014178368954340295066523295085574922368560421045187633756457602018079132112303427536768536196829278924477525418790842295571598319053968203609826147291290063488542104476547393535390942742496254912895617118701230354194030546115175375041407559227691221243056971799707103971581422282519300594693608482357635122997494851010549611551273061345138812859923925789478843135709919161177830983520953596854217608468768300349584481811182391397557477225689685928722205209863707557396722278494198473960013691495565369151328095148198772596509029251014678686248698155598926330781594373000662549348714027786518462190544631702985987690697164463484264747542130531168075884079847549743824497475319384180065488828357261884602664859756505031885649879588043388798951291113400216873725703093995114908826192369180722031319111711118504769284114121656145522475722372749803257591090792348740258097551656347427560129730580540410554730031448930331184265547663696642801665535075851740568272993207010893469828892546320220016067793657080229386319809815835359481583157284748945205711679366816312254560059683357224511570073708820896773520872478067782943511362526272666082462314661131720174733976915279933755687054365392601789115364110092644804371898998621967719471637685544461175930600158503489470233232553498851486253975972725697630495079307283084873543530794925532164212007948224692908621763419214871476076161384677476113218607685098366802684901245582344147582433976967347255925969738172749572122408629832726400593412361310817561363901949365951399559838910024440541899459678869711061235194504883851215091084653369023214349854351420083811283202864018290249964688734078153821448700315255403501101154520282595176973723940052618060296233786525409182086191640258803547829334519109561365706703410898842208497112599040954794040715831608610182625204105954698260085870610916693507338863672565157237783022773252695954866081088763434303302320704927839946963218917724966247995773349385243129189035586497648199194526724664051532544188856345421685994603679241237161377567864304899019659785168297233507473158808518706008759362071657096964296071394605959338628029687326531444061710558818921847945500211277665564551397239647084929191199947761596625906823544956666571986925788090255509439220806144494408344177057591439649089221877032352104630240441938425589560477819499232153293104939114287202296362380517737032453926138395683629665933085476174026019992712426331180417804171373696576790785895433762815100189188708432685337104944490106901709033347692566413484305173236269898748982855696388293495063005179745043548896969823600141752618477456769903343507685782913917987501460653669986232653950178771072663565253609135710871758534631977262842780362100888009007532166323028764107544917630349097120736483378059302510030599328749592133529049358316010440728141208351313613223007152923006119366018344801363935322071715642681589794831096990581077103540734544985693244822237576935179305001222932553073710400470087906945761204426664975624809957982328043409853964991079040283031754354806870710519269140828473497932206875488755272924094206382578673789019530930956867122919027599402167254545681446360019198286547955695324675898577100286834967437747766628680276499937124096957033554421795000129986470401037236126054722906459744081709487902014628198149143041031538649032208756120819425991077779607665261146171629917591014694338474477751599478819502796302403832269313911663802165108920941860445845840933761496100211391519672947324219252653703811583226391105652531125394044643647470823139170733053742901574386725482615611442105307902241824059487225600624430324561755794850220070732177011300525082206892650232106945192343467773028409168841031877562486176434409517401180171072399774592640622967440573909137524376155627185819779872621240430767377904459860965652952125561826378204439252230797132917990877782215374631583109271540970256045541836392256299016438777556475195314560168332326853554420406471697008926395478548529482683637839937220189306575456513595945957103049824367046161709768449196820883875928943286294133025277171566477215268380513199612244714878005381155657386746934878385403248137233083571829566785434978995655071009496395959268521826804222059330987671828845746529710983396315100457095144989264228844400405417396916667526917575403858152351711840871856978634962791001037930090852399940526234287105266630843944276618194172645213972247247791036343040925890121417600405911273438714018965628506040114479750037734975730052961018825133909934465883802158238245779837434215802263122837796983776656047283753250401798701742748036522623183234695343272734223654666015509133835429757210961373012859445711303592524151435466025460970958525977961150568575211345868439356912029369566343486691402821361603404790279883448038414434497945780757180621429920583181175560346997559755356447530624634123942443888225601156124251568042956931137397855269221051646433402663065276175820754355830723943956578178169262825507120555107607336728524360259766167156115639536568812204226259473673812646820926941200837766414878239868434547837732154333643278273154710688101069875594592384501965421598632718713527780375762657669670862037388593417196782318901306187346947979536402979127038420402070404169720025819430345612331320273979055473106584884041714425790162538299290706413017908003258972572680585470938249159477742005996610078236494606084803352636370985181332021560691453656070614718760090056771634961397915215512112307348470546936560884273135623358761609451216449600355110813869947409442102190085025682388840411133022171121007150901180242851893283409040822255225044471685559263970521213532100148254022075439301399788151562968733238688416950124868039666528439811783996881423759999939016664756136962505969643299082384109350607339564168259334367617383114848563572168551872256790299151392692253432372739922227155687222276509495515028647317980712822866152337103982576867623715956842309317901874629872294950499400817890601636867215638029175236414715909159270312525757789052474993991235257429759586006715885733210764062713038646520648012664508850073347410741808828236636307231457246783306642337799801206206423640861056299996487184119937095355023300622492468647606800280150967828627504406058077299611174711607662712059782186332036058861519656130765752963535300743277335147757159747021662696162892383348482085313318884644796369185914899417172494675864409348578014049630940365546334908278567737387176453459911067103224147155378856169936394219450154868595793515438117784285742284162914222121698424107739028995365088525111845047085006296921572587855742331582536814907181682764926845051464422539617798462180425197781075205853619036234380006545314487052483553732311653112671500338430350095994902744139819811970906989683741904679405754525896569720082664074531826312168909897412939694482683957297588294549201844473994661198739150271524239659082267599507398713800683767306357746811395157651464331317105145969510595910635626581345238943957894220646365022470093996654513922820210196335878509852499444267425420395236411416273500994244202891733996925132999763076962816447521169110248012296788173713703285016527682703853514792330518520606111358230976867207407432039524324097402082047452758674164806012198893940154392156324067812896951285857878453238116756638538321586342434672104428124382865463584694206834545700296335300092653161932349730640647920083037167218191298195996918548902140449115316940302090226394439254474802858285648010157233152694475542408245675039470790057935117531158316159393789913813417677518687310120345709346991060490370065033199986373396513857537883783037429640239556304694720371160259793584600029163223557148178222858456037366263090145400205236710365941376557858185818038219647439538910997812968686025007116927565343372480560164287246554333336813914825699818038136094902706862557967960628919201681322823695641312170239629213165924004436581931613379877885022869577945572286293138001479705711691056505920592474000630703855448057143201514134157092836595940634594591840183201557056994378647998809482670815713126603612893064514873517623158327712753521205212957545770954491406673530492389307816822109753317490819899378599909500891530958998772841481281459582343724844318357664126523948935874535540565398048973012024218309929186841245947959541795481347005679599550985129487342872389008667492432335039059154092548590442277361220803237786641420347196822564677262156931031875707613046184135036482093493164490785259558272561914393289147869834481704412154646370612375385201036474269529930127623735160105154194210239913848752816355129208470318915305210159763228207588319587313627039322764904428020946605435385357163102255420870387541065120230485064591760081383815746450940755971954557218311298584797452183040571761488790118899830603505812698585364227909219060657845533146164602444305884346380263043895418903397849889862648609777277966139134933950133233506890403225406642971080819231360178870072826618411477030331152208937239883475428988681921369340790671682177068180931545635579526919210810776220978985380546745461795686491625087624325873706253943090035288139873439241785891604014603982894665011021998126008676839122913964642655417699320401435291300412945697381239690168161361769375546653950761827528627128952407246534420386942438574929751033514818395011078819064762623888109751070627082155213208527281963608892968091778644543802556706571888704992152648132105987177583203239558290623336585725204318963334982165091995189711622618409708552005924330531210815131782723399672723259251232449462505243426669333736687128514871283373710154434774996140565533170149225794969021470946650680832758337446785297646844759463622419507885518720372051787493342121362339416471013540225224473288016580162764332874101880307252171971220711299257281543942229751241717442485054369363260430161713556044955684090019247399873546700638073150982335918039962931570464675619114785208092590198715639104604881465488268975458457556539396376776333956291318595682855003357025787935089421700317547247841365548006381125225673837453898507149795942655619931356306894555364761839994728458277951131842638703085977616718654589288210206122994557594112139311899496774007665486513199621453126429565751357075033464419808714293350571383996483898836018677287119723933109343653802802484426138270624508608842474899138935330390563287615015009965140828163569538466229959197734776069208105143594743387300056022956785168127856925824944522244888185074093778427821671255445443508907799394508353869082851290359170314613938072074372761493156759581191196067023620462184836017035915396209741265842941151664458176669778970080301446822751178204925230891732788153307605933228635121203045023690107438372697887005543769763064704931802272706375829364294320100022305680188225468982810469076959578050549526281955715049926465031988350696238302217455416176209723662388822906151463309146354715661514064291822104821944291656511368236568085184642448265687560454049276947303295413365451661117000343027142029497205304326034604867659020358938895820519057622030315401884105055824315859020320418874561779956108086576458544902997059084606208083650374319047209411890127363916440625020593910305936970541889974233864593160602930461408970925529959842136819974171406065291471355393326202213082249900976976018942296543418404595830119225490591941018113593308090448350629774262073026739558056916375800544695697392411157113763382567754157581178231942244188246985830899826496926731502694744875094828586799074098658502921626690871723971958218308746670079270942315943481450370081352752833431572400735418290309014496465540884331118309032335727644661596585408561869459741166424196320994049803618466148714540850141129765179651264043735045234169048294745110736767402859197172013156147835307987068489171478283736255596257958347306946104456734548736089829076535295654560646202402410774863564998995077073923655534968539350270130847387847690753711054588626412344867459692950131705767618726755928805446831510615316021665211097523771414771170779681493696203953537087302268010907368740538151655709931424702887652644492918457952446455428329890549837876945070573693370251550230711068465731464534207453594366947810374611046443348840317198949219448556062108120156407926216811001159140891955601810415717503924937864834641943390943228024013768490637128982593082575106327181956072499516116573687066134576564634444843198435126159438154075231780422513304127889246422791293865502163598358556755153656453267520814791027485961064890212696809994599700171025240079573354524103194242344677171916403279697198507109613550391891229569714941676604414922476251261560814521627712035614463717112045682321382043133800143156764346835825052158855501595553040777506863334513859755989984894718640298215722892299461071595267525948140507877011242067459838471896795857663546489043353712646447334429666039283353532984959665728284340370512734059523643562654012976804590409033562941654440192656802123225481888789082840365631287222082740590999513032274649293368708421280145024335289873321646425057181985640295816798442270385284505792931006362845151737212920254656415479613538505489878707535876981273162762737737314518231275570950818033890223642055543233032329810917467491675793201522493730043273636863309504186394709931595854420438635562111389335847009437402915907109949821937224215918940633290292704618276442984744043539592513645759447103708821743016990626870593464840986243562997027708911951162836461761637250148756163823120370441307895000392540121684913931740228042985919090172515002663436503444498140876854886920840912008669044575363980609841918861481780398714007550931318138627327197973620145260314581013724202918751196306592568368655865444072700769210648945627458091616510100797796984276961004539062086018431220164196475027578190224204209224001788901376863218436642599653747668923394097074603901894485076173354201357268687448203813935641615883852004117193902462461342935350750252135528715098083251676459481918433469264174681330526463921888413885704798344158226583218539685350916051844201462365941792600295786596177179953233198277085932585380216626461274603396642759370997187551385584659790268359475664314164050354107759015805292711710775919573737574941913788005223535629299698373096387426105616493853168171916873822814022532960520117995814424890179648326723616694307214682417509732792725812057700413659968205867613419664208626466102868120161960542880452141022241742799744494087891022053666516767531724006139275126192456594156154141126942561755987472519998558016269664661640171307223772797496368258328304966824903474920264964098126065142225498118388629768021437771041152400626808637704131770389341418698686067121241589668531327283196515616997922988473081402861235319841999311496203448657812651451056039252379845785439863774472292173076605566281126594966555988529052564744823495265861287253931617982042552888562534866212028189821064885419804932253979804107429695108544949462962509324061911909932158302601004811061269010726773966136576767763467508917879632639733788515911091020957389251802238793435400466918661701487550731767721895939505329505905804124296693529677059112270724631584917914940256007586522470780449929437408530691089412868655535588140309843798966291729854365923569602316066886757599459769474492048392523404988469368101200764175745453266981614359721711571548175747514527862634884542421863071260592724398437592943691986754591819263840133034787903905047291232001351099867285049589374197980819882906025108018010826885200142880440704541522777327782141972418528036971215232896313007743067903279232366677277815922277690687620670556478783491102164974373015524066927038325452837343225446598501621710142309107328081845348107328940910163669397734491069343652024332593220201453358250450993516693728346700408335000672941761160977510147922286355269503850133514641615945989826787171862095165350806581941356474252477795810731848098544840795837866392085351823783398830790970536990814366270208383068873320313760579387227468807613668010357420747872070416486616310812933702461872587189005911766185640077964073166027014265006943020710568222349162504651217235288159399728636919530104155928612813949693539023620204376560448257743035456503228092017888014474669610179861121543013976723224114907211512288669335916881444993595526690013667776702961353954778100039166964635836959581542297255846316818661439443896175073774122710956606874300876543669718033686837399639091619884619006057328702113982867718424514761573192883231898692417894929671447390222742634425872218495806188996584630011125995403925247333100384258097475734882063142274489833134610112148158735756749661269236720390782701772048098963023416280335648865007157100935460282610930823758661879624394183679988368852054030773488673000787594231237110140817867900296240800730574088192870874772667424559952899760635544131927889010397717086883907901135929656768276744915873582918004337024364938441491495938588839289867678509822553564947444846764138001692018538857166792662922171010149610429713756130442638338125037250710192224293627524494018509600633596454660203383177436223123027407186723494530556595675694434282374515896065667555849122135917626762138008208961622811138055501567749410698688170994509325005769424665739580994726196058889349252908907731047811937117808604816507376328587766444823072923304112730813962159234002810032469396097169910690054512702303129686358477544706957100958773540199417072161188543932248277752103187917160271514449348507357854261708096146017126198070304949405789575356466043632290453058374299252248247161723064611010674287534312996684392770620258865355585720999185362300472992625362321383222480951717570769774685470076915698676057545773122822430421922515409904424367207101129259921707377375636719124694335117928809050315979277303196041254154005352157301567028629648818027924390166704342813384049673815360491820453122144220873483753955503905368245418549195430496931585158742932740793996582088627637631812059689715478234026727819878772981576227976893643183190114765201937098577512174433699440869705769048500195963537899904015869471295027571187925883592070495302466332351001634913955228979056669074401597094208036872247992308546745304435343675253189732197592443873017630808959185056853150689066349072046087588800203991774466779941182647512378347508974360011780027584924566662781281886451732725825266722958067488306177363146016446020253578978914419573738562345844604070927317935675208611687571618871546085424169243494915637280451832919018683907599400976161293306263106742883714091749410827840389556659204219507585067757525670223768715820533593551203156431538136282790620305957588837461392954643138132548364045132350786649371169078910276169587556903368639529385977731415215387638285186976353100453496779287101608197012197204062134487206276017820477711223716013506005196650587807261423233034789351293999896287381107130497231078514995654621222564136075346200904882059435006985027770264538357902179225395363755083879472911365935935906547996213438850012403727150258574807319389533023871511718957176604935896019936482794639702093644478425812213157019283924139010576149222575113767844378500687771226654624642779342545685867396683680647373350342819009268097069831059956640626546123584281091036342935424973106183031824743505073588555216478594135659244480920626471894969213415649375131251565701834266982184176942046388655790157710599263630989395002374643345035792902031801639982636717972560367652781665333074384231987642204809766261588945638025504327369017577775523407306602275556896747304701424619130209400760965232445583750062616772644365904571905074534757769438137966106334170809931759096586767856525143234312256532772873006739392451606440922382261054288271010294985825120558028953655020305162194418782539256516776116884492021916469294223220470180505883858445889063091499272902224531591487763719600468775991400592593637906907100203157561204399752250123698643248047814175564268162390527699516447158459652614927463317946912564284241114432813192488031274782448173822695342135439092888699302527663889551943438574518615271541062869924886401376773306389408771295640458022688473978592295168099695870760683050992274710538320358642199276211495823027830817786962143199046479331497164761299554902663476944757555046665469765510223645059171441650163940852881800346339579877430233721377790751367065358718020769138740385373967215934467862939751181534821705131314665184320977140146506067598093898001544372568076135444406526890370783507609165196794316270321348921449835381547468928829517256717661586193762673705041901480277206104638260386190120435425887318735007078107564781688115145622058340518729363877516629101274783869307452574992542391284731934385193486936185036585603226878036449474247380328812209546791692464292567988249899978132608096586146150524391328536402214168532255346596596527278385562292062987972446834746981081075772881823409856902478494261556522940020834002457279099165224205423540151280117849706288575960310599967660850746835405458942173245846480177558011766481667938876957078416141635475701270840693694340172185906124093484461816418876716611530820381169424404123895392683240804608177253024975510157426322843765274025066002840450023814704260558660667051721540260258337280538646456411107657838163476073078569218693934385840356162042600878624273427090019732843043280546778502339258644636798117167794902936660845346124429372387456729172425089881558644225748894332875752573257482116608987667734326320228075534078320289105215740681698953456789814372707280196782672855609101809700606160770565335318184483726166796241262593842578244831663558743063230939998660152986484067394433186849465885639573483800005155145326468223584687399529502557043035992972371036056399258131597303226031691148517557253284170230900169242463252649724772694477380962211197826809982956040659777451289315006484664855248279360723719280934882912593532040925196085670897657453579277304867471584265481213371065815203495910173196132615857232142307602001211786396174663578452769780075000643648312749253255640335714031168922911146830496654111089897927726984366005197495014221531479958270003464741917411003376382338142349608052610635698420509411629626783177648553784238862781675132327724809108840938707349300487595042982598961575288444412856071149692736452135294130847406747408470309933245632548026592557719745619914825338418608618493982974925442364780898216054685371798307276139589361090936366163259859634265277060647894419172042556566481704087766358101937836713115160342901563309265741915329879924038063188782812643447194787482095396325201977329893691880761691995893200765540915395902470191606155798980895271433532497039506916218236963563633366064221957097060889333599657458409076021402784747459781234553105665263377662172108672261304402370711578161857741328324412871616728681371447013159044068789353318299134467139730922642661974747554747797761030670428897534083823106101040024340621901438790637264493374368381732524442215791333879279091233321536800051937987532315847993833163288723110272535676943484503485886291904677283303447324412135576321719438816413278148432887180049459828284600931352982526226850159803566292215632146786756246548732081928335286491713828533124467380292327946289563333726688155653370791020992520542093889799778137818859011664110060933786610880261358755418574150246119081879739022302811116074484958778259036489573205163894926439943359226769365846263724489165656457468444815367330187861751304744798482655977526121702772932393554644274295252888925115601337599836710429609763349245956047488515509574763944701594018249100675232252692753190082128935852453430715441742059624904191039774841723567359135567086266314776468305781216509184333970714056653175420600173744082201931090632784269713853528896909788963940747895209577103424066824826899393253502451114250010356848333589858717592615365370415337702466825548550474525776627116501589866105348125263987213572191756445269737142593350260002123932670663461155213759491274783529830245568607551370782699407427581484420856392145305194837981437694820447146477640887631157799958936971930556395647877205955223620275325365667612015038421114815273252221473390214340911195896328318278908868371015235541014955763980590695027553899506700031433971459254781803629879378448568866219002206741214122670105111749018932555341873983384047687245824106292779302127727628176467677863634465302879900549985852396404012494658829301557022944130571192331074249456265722242575281315839686578220766441684123812889280715098258867240928672494901778732142071064228585446144069261604210054111071760224871913170145211385096747287423560984621663824840759310135465444351663018837700004448399127995029414064686360804545729813261431967698523719985689313817128752611317413204402715911069765322257105484903718490337529284509119899732994973257844927435690740398857833629191285071270357194034149417391609535333414906498417712675284715254031370503926988503509176073610159271112673643599149680565384883690700124948820111914287313246906700653583805070682011381420138270825481392870592644697425960899073033349335801913421228630676813879273505945180883266554103114897761447107893170286689678154401507248405826174184131608640620032195709046698556054424565067140480623783840425146964043546153148009448977963091734118205241219478577905371907028199289615504873755588638961200119490458462101199770146851902090150416175602268453321104834507231891068936718946444707732291558059985928357466603947347238230632166224102409899046520210109778164358216304276632149272873237864735628924890643113755169913711815205344585642647135833474870551256019054285634279499813845347378177161820737095314213910702945104653084301760843224782065703493907078755344673918855636648859316833231842767213748458075980261098104957144287102867841702601562354844797416916574275246587826250678643968060659650643791868462372962055404907450731013771851233839718468900687389799573805109634318573432848235603879717572464103952538474926691590690730259255720760972284483156094878680091146030661127021256028382501977839026502358756426401838986999290848241580493731495539377014475093421951705532816648224203493486981649732433628209117034189231419252205039265457949896831309180671263988373701454118141210409708008568764551649267178134543553189865481065099788446496868970095788477962204678394151344771046732609559836562754042952876016176748628114324734876460751221176181966150935087860390605233232329910859050307657471785106905181191149701082062950270320271437077934748228326477493988754024665906147554425619071867117810975930862263518158055442290146240506407037527095940448719496102682668474030736456618808992686759857323957633743143675761705150232806184070830488442678582965652405836757382568726181225073566363033640246856079188631373683732196578865968513569888874448544775387057057343903172239831382859021858020809357324310278041648477717977631997472645613772332085903308057518720017691551605377038437353169263528115717979087398763965420671761611959702152589311881691336704447345236638798079096869057614807445062613540798085657731993537099869748049507950429555967731427388272719628763744667132311229604705220337151305539176026284859750069693922486054719070296928524101471233406067830763336285059175817193421311591846608927222154503316068774019352556973544191684651253736075840337204998667970484037696798350118701375328505869946356876158359180962015705144417705620854067769836884144718734672837827655406533726417490108228415505968865296467886202271488350283369962755443703074336709439724686436570771136162897863583426249215077773796309770287202393465938443279110116082952723822948583284663481723381561500306654121495482338408129953270976517809740980910392441149534782221212242782163885853812131588605535293148090702119400680018183776402771315776240133215670775022685885555305834743941979862936931701995198473070107785169511887824579407827370163113164035020409612357339808433255072422937445884010649242210708095410551993804445567014363821604121641106211870041780665044435060149119145611249552136878978140770292059868057993549939971882314460369395163452327213917969859487932213779682940312942655766054906371008926729931925331670884795844506682135513039149389970315217399459363885811827493875708709770642102072252535905075377232841781422312971251106993507504521209387347404067274215864874922840141792408829670523560446717434099544516417009491916767674263943453071718857704601521500008842753232172374448089444915391926534021792651052526984611228973212184238020975754020324745995124160036303507385723049997667590286237749466260315665434837104523950278044360291475266834667332982101872326291039384691282951526225328513633496010108492591646064285839450477342848035019140678964438145586362735394410506153909569820216944318832123949401259946765629410978286352249161288841548128041282699690639967876105748793459608062115699255118488326533025161888266788604769180314774292124823643038657021747395213197074610538304885492858794977941512883364483164378613082725006957017823981697843195742219634247194808671119755120427303244836961152800475878494534862505250614946026762770192027007475277569989508972321979103640196388671409365696454782870674613450796543583371493277209348103664984869029690746295077596049030054373619081026247952682509190267292623811644228028957469159506322075362931363231609986199038872853116588859762583046802288623427198111279726461493560797136890354294689341349208518650957572024630167251485589545161869425096010333179398645107771216509340210151476412902661754687855194660086977642506300196300407022782063233694345220004705004019155345152201905156172322338510903677442291654517009615394361461258123371453420386431261273931642145080737030418625573486568063667359171069350107589327347436802215330088250730716980693357299008898997901356791539962266460982082751712619995183760991809443570136753711461940646336304135425403455660401641773647551479722088163331821846920868281618400055875624507292280207772576719110828074447957941584596435866869724833640334627551867898867779645415739620491336179193000771453492134022597573495037483252865042721580037259246664310971082981543621453135873524963496763967097115348877301078321790433317251039529927538189081909926926701602626756303634088989598341749126920641991011952214011154238641985688150056476708433713272897355235200250635438501031911718156767333571241685670212095887716848771925376759188601304853117294560289534046488171101580859433860217921351816275978631491235166053645496907397668741061137420284492614501047262942850535294944587414589055206975385987024332466426750021685077494136295357150243167672872343837315523553523935545446861729076526851122581549324536428936461749383964336155098779400516725200521603502663863512292882899109988429793089147554341825342081595756511389710616359120213547510167068376098762500003424060373897052272676983396566930526510573709038703460128415208438272068320283795333653910491328629328814712363888101410692747370832353729652919247645030800736471395001860408119304148216262763378220080307802699310936773557758378928643002643241643219517458176107914277506093371002734285787047869560003757910114788989642595290957267161745664729066391734842655496444989182213332463969158502347947046024169798225764822387473681648340674854780472659649668299346314464750620136676644599991630550061561721920601627919410795075985534911614511254165801633401729613763815905409020061371912695275396689234737224634368133101489796629281341106269257077574491998217538979731353045720682746114182795698729486322435243043449306098651251257335576546500682724361964940079484168277700793778056112137002449428237786885889245191325051987251820959966965860188079036171767850572131409949967158167235118666169185494438985578790697140388684289494763197114366772070617273763442712829059680062114820580620091960634833733383356024177619087503852836959474626341851703946055017615319744893859328351116268956963742600629206243605170439422941917016769179959756837036748907882903117196833773902094632228762905944679251307364319496455678243634661395453939241659500474852345250037162702595883998686664906866193009287839204041308848441378119048156818797543381680421528085729104092332817021773366345637794658340852276006751580371884721819893119363600203196284977093845013361944426468238339289069650595894537461834780223771140025005108778164110254291887386905062655047807131224794927158163802441340177544675198763876128905296225089964435758149639396836831888145558887544757148237853070709343196668482980449647449441725002359449517496433098307482196649751182606042041854786775736429081902121336562404490422230251026286634652613507819181668310983127422709184988500232396556158593038238380537881624878735383307326747196450120277492974338572358000756487175093429471149959470533742905231814168374966711170925367503578549195537110805987860677821156046216591879583808911911125850093062319831296766239374753451632895974106438385296858163123048001482186679996866524687040775734089560623535954300767523460161871181239271760586843791032993573339704409349715012217647745485084114063323589121852494068984370279801428353606602867875835518766991924826592373420756352236352428532880562616956706057395890883257482283790027154046367671052139575505065620867398551546367870507389197729876028823290439581365808201830996655294072218126893205582259871061839515860173123727130011602332489621683076920954000694562417595655601037292207941379088045504865846554967865291339608267116831926086489221588668694115394352064776987309605856929569739579337989029790478401006138720881056353684051978490813510593502132626791123104102577388388623653965417479620023928669053673984078607642117377720053609972489606539499036505115024898298160257481682567755509553783421607651265635179096633250714348363186347820449848926987471373371821604591706735434020702327361095625185102161080707201732288220000636975987187712721335928658322659973620754800923101994109287570819626857841679104397669965511457745235411884838412836528507827572752110488498536052157144557077332425020325659579319849499571087591636802181483760841396825493218895657499071274430980950485362811704119674989458487489365859440150975618585771572938815199192950092761153567296405482788616602576089560289977722401753913110221394185490159749492267068298573611862768237706399747913560000213009817327898321422509702615883580783224511906666854161221540366240717529247221698838153828909414504986298414110683595405811922878230173614623011373082280385332430685001529325056792579976574337564724573615710568939250045234977349774759791307858102795700988963339577330097960166702635914463473909467559728881653090411586204557076750261344262191691829163144304786517879201612919073912173380283951343967863125939647839137711607893404537954883724180300613804179301405330636401128844179640595670448044797488254819478383902578987730200364826421145882688340147992400193069578777992790790075490300847852718143901182615796618070525790537596267815953949950560677936545049861606990728254300221102924068003896927932621835994050245878348128438306416348142009869281806793501718466283798593140930846135222193710737845026858018111888196564260094024080403765432546819003851286062333854679680228359045187183737640292286904426445642592447253094388833561365374980681301184126940423027862819817889702646004950405798623382181946644283475301511447062493785735216103089124048953571061401280245147505623639081550302587911040683075499025820658665775396616412886182478038238065170481920293583309795603986925618458843701533959804572413513780472495685533831652965407249169306209389707020923731901346319613564955957502243139144839500223090762442056779617359180074135109386381271103266403763672813745329587200320335439176322662506673711002570448719103872098580637951601403024597644140640423911022904007774700833485049608660282140532714064662339335657802088873165942255084468364736625131749491110771522902309308735209326989953417013901865700217411534949040110567995321805654030381730529493962401899784160825900293282272024174985023546605000467280939252625134037396594959769855620457636720769177295463102029446168614684424249123890751148049050064235204845525672634249505006116578023064102073701428041488594338518708300005886706721161322937352398840836145588418677634888368931211943259182101743533364616684780171178118330430297387105292236451592510424479924618994374753599205900356061453538928633008555056277305959786221738228350558255543209930186269464706068457581364974739489643146638841369961690746169912525173643672310207504496908051162764776676875588345608278388323196215463765012659266561730605094850297578178568195872150196620651811691037041369959046039168774193684867774674976000153768861391185686720808052237386259384612972215955012772716831157887498005774612264727380037032303249001350728732223327409696952597969599146446099516007168970882030226834174895726348422220839445831779632644316774341384432574461626295697615840256101542481881240870724244188878790136452664625298605257866711456529859465157291161088163682645589119432784908827891436412214245791882584925978389365126268363213761643888500898463934359168520367460411977491663857826398549106656005572268424053324272554190934944601305894788022423800218860497999560799351264718369752384074915371481249147048048313239227465152284491914922353908424784672066385773297197386580618783884109775764169262060640407120432279451560505554196073418504371945861309014642743974147269761643031246791124099562426133756524903946279255651020702478594384114345103680934164906123846550944227476409189836518692971262381464000588706409583549506538863380769133708229029182525680112086896396537774941780959291133528164668254652100299723411144587739608327835990914687335461389109046276517325419826833588986700832180084495116917503371763309007246278970325531785194109793809991566287201336414651549354934587270827376521243833600851745804781575850348185172194422192558337226356428197154429504074303110270985761004724835255756760095587976630476817109101288414474229770694471268641380857234804731013361263415085773917036331795234079281928486395620395445083709356708440407526676808466239292454774190921913724992433781314975991660328045777860350811785935991761173432273987268071391235224214085489659924520370464702810070852322464438074323657008021777987987108251285460628667723815531277403661296415359920706598994183084216068273042872489949045177862558401647344062176243046111207586377182833442211612245628939635522093176696351042655160150163906853393888107795672339647734476110521575174226865679596203821471442787365599060229065077394121125678285678801063584841602208097707844146924039385807618395311441026061264159950407660357348142279828864102079579492905092288024955225336578643292021020445354551236663258471408952359411911789305707043539398797668768745365185029558976786294962568959817964866750956970007565887485777750102377487754791178058998150878517189047252668404043688214035205486347016944609980091300290403552520555396670163446946467579906580317162502281078061100090586813530437703119609851017351081999419079674811563953993148921401232528970676711561694157257521018482907589338967319441287824366756595501929320513146681280435190589498257000077709884970530280286998431893225528753801746710126400168364163889056024698867927712664781027076885373933506001896112523176718121101469287499328156549792199728343509926280387163398487715187902678747589356598508616322368537212741247635091466900196418629533291082762812926987704735754761367397559956312930730833788648646741369786081218308660141535460002697304158230058510950830757966163334397260382791284862992091878631233312593422561300623044136066005222207817086985849434043325909960007599302684163180805804423088803015223712661215929439466898442633113420028423284016112465044203075919475226761291992503919297592081854040579890931600899034983463534298938904684626076744732343066446486978349032761021645839641489948232485146970379832108729585034120688273265178197181785036069354195866191129998120957862662863673685418680514630071677047244262352928987125303793339836360988255190680856104996418852384819578302464530370846792117221474957014840415766454957596760468851106264324602144855659776791858144991128293890634159080102520580752829102719897146022963594365617072847188448047568727103324327418219822727507563022769463997864415674035112299194653113421444118728506783615736323885425411944494273008281564252073300950810823321440401520887379190234974366230699109630261251930098341158672402288231659317962861388296350150653008017837742508979951245135708601636979140703256242005307910943709765138323590611172020213816745461644932809654120343669429784231992370706258515512880000026006476557850177179021562967235551004381456191230804178761916437566868993199720866436764017027669853281713432315997563502127370335120083243536194995543077005407608660851332952515499067998343612847565106795406101759096081920949764940402765984261512988577605310236731001950818149038160955356821211568284900633906854295697328269124711733850688322397455616401677288388198245183282512223046284722345667927786746048314103972869351369021493306460217039202522824683743957782277614194398261934791069711470239844339000642006778680751526323293356950540280242692750557503762450959174364762554243889495754885911673409302238599596392330323287189823622004577144031493764821543537996724421976359820553365190808732976191858392367721634364620742349543813328820657349810561913807578691420079936664747409251880624401468270249663784660862742918573447246892044830862915348131552122801184577221802083390728441533326784710708969998104525560404033722348444008997265065779313468084162698803764435441527398329034183111472680695183802217926581667475202586059362888794783499606716876224732895931230748756252472351465962377353647156664568923776168890538765847218410270955479796225554294968905104974325964173277370871435160426894475968699068280374786651864141753408764286005560003168336983866445562293032627378077012197251501582144452243262871149763935950314042430223940744870166453505617928494333525124360486289627352484087451695573554031862405846154915256675099635817133331990504691319410010999556937778500544840052098605099465782963001377662184144255700522702801077018283411413444669677078254063334620359641860433086890306188536918850355373349391851689878337085565057670365460649967027093674732860500860842963770357258644675207395077473838061978483050190727254727395131325056152031629986564959727586335667220301581585391086324252571040921575515706695246775255098410415455874136206121273261933148098365360382064402015984104234849835308857776497321107015903477656746758780397839776022051663351941620658868204409631003489334663289249225378202454802314938228214324480689992509800021726466578245592201037413524101979567793920451842543168857348202432460274207175985197062500515040206337155215643308418681442115369767589667294733818618625256834417577688699333395554463580935417781113409044452777081189636135034863108456496448121086655589215730044460006007706949129052660406005822774484732584012508650486088354356316502788370405564942919751145904890009460938410988512998204434317213741253043462386162007563913554666946014803237876168179123541101901028407375151821538835963983795643779503772949619016634363422310700881865831351676909454655792127598130749665744367279602209575415692169596052548255959788540022813355883177645125078768706224853201336932179661086654995200163640083907943021554559670716242895763957619373669671151763079636312476852964261330163159918184955229104493711533762963591126323756580029400571862354273756887062766591897076395271411086067160615900647867993247868209682248258225506078304516564148263593786390161791420961430664025246512011648912692745234714504325255894210202267695921492429446089316768465825261569706095675606833434473413505669274272362707399946355220996846656521006949981593704326439050859070121659551972114060635304066895215407055668999039650022346309631927597481964517936896575375381183788893057111398229244845400065734666242315080664950136105974485634472408522469271054789734941648550287867437099853299186490382424715011552467201185823229177480357947199154751535559461965180186408742485048915100226975443121491857621344905402189626304672464994013425070069855201774586277989509781496404879231411589677289040294604967494563159878713601814338501435773685910704831539054764828823503566338863041878386764394881906837759644345883444572024503039274134062660692397786264427674199622773134312705635710971082075863656995487587749498253520474044826588810976182480126143788496956357714581206314895511465622190184195245440148178159905955402781380609410839700468358374659462353147326230906717339454185560954272438911166186187895513373617469988508895663783823321010936429310223970835709164752957176415362910746596875896058894348539738339157975867597823014333755029443396465054981185369866220559819863777517006717627228279458653536679442319646113498170469468992206613794991834321550530222111814789306428431733176441153977297344310881560827293243235841224379922435659846273396731501013914844173976675618880981165615182236561276593203187702415484486741967435099781829749057553049634761704600899778699104413644922571630751600808179087948840086086116393866261387969634071423590485778443256928325568959343912784639045639547864539364557482864942224986499774436794526955080130181684981154080859894374131895966620698449348610094308706933685830378164944315818579337135910727781563416537127976005263117467089766499369842761177937342551626633603176004054147570666906955440202215459427340067990184987422808212386544662382985088407598520532825629041493761272077798930847743132968635423852360691726949429563276346370425802264214533682795561693781485313618214683945726909926632528228533867076199959634861379381995742016180479813600152050179654648424775622207406027431767777818482670076779380680050092062826216943830617210147747711501107803181636819686028391964885261922853229914442607368722894783269078947095308266624676895387765363188954430401134685842567713819999149730923085266683173563644491860462516811769355539021141305833955274711475692106257636830663793066006206618729756343649719966562351255010609726926519774701981566231295018758123582665964452929868273932600230396746325082126832383096645016176581441174967342546660222406007015731377960558078024972671464951183057618706255944932905539380854879521398163973087651732791881255087581218712361275153963690603712018600055710011825532458362148461813554901190593556995894479663308496044577947594002200941042883628732815654253288884024133039130981258269839347129257452457218902132599116300220669483918138752154880278419677945534745781524897026755157460657210912804142716409430021102006717338404189789629516897639943699387156343167398470284375759198252327422055206086564380150869057290535686531937697949839485032740722886801207773375772743071054813774811140431975142397800628695107308399866317649840673955762240518174286825564078191273393758985789896844897939247970130841766400808385569105408337584883531866647607145927583815606321083881005938714752192721943251799719653048865186946798192439365816014781448170451043678836165018271072886644596124990164791864261789364996837475533658514900831627924095399597204612142580902859011825987121606550247445821689871934975683524621470550694743214709128636167880020556862848210281279898149778767068202808681915904184144751056692626294324917018714495888390806774006126162074535377559925965337068316916588987788354902467857251989106143645515376666332759551633219665191215642416111470065302541805455043526627981244340310522717135785394496392775638121618570704037941058069267929857803252140857536411724789224980874874805166577978322562198401032891149854679003952611796641570113591794322491662425682965935843554649666557628970000162787349103416562334784548937882469623012677949361598697217135682270585895328051257887217473166016077858233948941271939097570769279612412004365465228051855010153267112158955432990225615884515280269486016421574668464354772615955229535649892961397034580600882115023999023077391062753805524419122312810178985623769275626190215628558352012462176260911997043005394737145560323803999374537324298336348289919813647649367075406545978540123595610131055087082951000175073381522417415942820361746803639618111445725186400687504484363476200575791072969277551847974912297211738353987104519488232409672310202892345550701311164469883153206070685475512332932193375901634292760404465466112334757995233894859742792340698667599257817118613765408309700752589858030347598349309964280548366773355506476724031752628707856448358618550612594096181693418169741836839387977976406604894966519391714985766138197039602445790183014763738842379273380951133774675544665174338831051589242222791497682618303709601894872362764305068021917653070324889115502758410047138647187952089259246013893896513229293338038833791521440953740852380779842077812120150724937679448211915221017192217847375004577274102382138278884921483683579879826763558435506663756337030716390601458224172764758025236509902074599507097669508653010487442407929257391149117106275692106753909896252451867199415590449960654682839123374614971415530925144867888074380559912189769798797019422980115787734521924093504117151840825725542448036034751757206268000426223127239591710504218330267282919548594242865401693466680205344186722028274491349784009461085969818473787795943528729868179358157767142122827398226252850121119475041505632847160863934353803108770372080456088686438471674586809366446391386205792095700636645885453088852914411949274255140779605000686260366207334684660201016191853820326787183878649317122911912475401851437765247357315446817912298651998960969685064703917277220144710148082507428218160778760859176407535070056210941424443830929321498575091114946251151321895063454825134107988317514588984768123366496816914970444151973847208931383517491859831814276098162333201298194005784361795332998503617573017584297579003160045819302105484367013965041857216933024522049846033155873205085333229586163288953919968003506943842482644977747491422708557468896623001919405250761289568265931964099442173231460877807634768636358850695380827327733730478634371373996771915455703818252757036642546605625469478347870803871901089598892518787604845615492856076050340460446966483245196929585815779733464202438780954859650791471814062176052433191882657411622927314672353018111215336325033406430518016240833713370893580881943214709856471928540177307756304253725012708032880284531075148564970796091247975919656023110178317503422057839893759730079702976763149141126592612350405990746569627930273169576549160880147000995018507171510951465470479578629513341348022671315703196170746411251763033360656750291260248691850172295905574506328988801867161546522564993897775702021379188894647131007190126306746806091280144367019659848955645514997213622131816277882560623753660930963903495460723260155313130550190675371654025186130430002548767862628276220789954258169503132774165572764475110673379443980697282208104298366254269543387421816616176842438750706939772889791352343247284839127192902529676439350303700622134476778111413402863772175130459117730009991136162998021222015564421888354256857336973536217722678928298802667603389802969767984126780946661934943444285799965340827226345532310982145883300287308245474303707185747205675396951412702329764417882026829589657833547011601728010627576937991109191103911223905165542053816766064744959467669280426752879252830591437226046964581660813893118694736136817141220076455056448901461910854938551935596093510408405234865027275939624332611072304606155270120134645948865247953464888633674950586281257214295790665704920767828767568878785335888947945968153905628342564552020031766925886815826181247586190827884652225304450210414610594895627589635855677950482665268969672923551475136986980722221055891086071187704567443050500030318586157770460819064792591518256059379945039992234771285218089657744822861885505318365793003858893815830359122221103056883214970960376106113433680117659654874594505960598422632759932214458076274197399679789286634307083372804242624803491727638371692684027362137059990578258751095599728274568665402307797813315597681733678062449536246139371972166601259210220849968788079305339109888368159777438662307406877991495439574583333239513045462854521802297274327347269105063620548752930266972779946859086593058268895696597707808432718893733748183979276443723688713750399608135951683426514498683250691089235221929183292914601189697259999518429746450341512355301407065710871283943386770232807089094439276709885686614508538426863006146205099930347010948691416175326027043652429412060211545434490659482341495918542385409875395725898672682361570556465137487127825924342847267918123543030200747713896161142733978299301538588618062201580272911086998014276050146819249764466581022990520221287373389708704249144573639588665421164579425267293516962170763161980729880765530705447122187050456972929856345110036540126719646157962195567479705855599360331699759335227779811165290779519427908991883347013086217107069550111103656171195785491770599117325739656854133068355671516391314830196768028507982659598841175782256474975748288376763951548240831758191160116924097142281051061573443143200505957221974885904449167055846617506915278684562798801650538176270440106836621646682242325009849902404168101124501482699408205819573837018763875152843547840678929417364367377652744582047182038659427235632882170532651914600885925384854880712910680136816702390993230824950172322151379960259984048553525643216600021843947722698071770559646557440959214039508896442583938882957787550041875667113931735409542148526978287338362933339068921516754613907919450671904207425340905677508353761982624335388859455466019678045304014792383487761610255280124442324169181847935317770746869830200830941776118693271884913742514891409067236875220615685227853175305214027924275413062959088088627201398554264263928539652665949311793056783031620841609940606048870193204989080794265449129786298036586244358394370109070935757964339495294119109411073507628126683193268269731726855949405262402393010691826613525486794314073020010611213274423318895909566211008723652406913163891842756344224172331940347712823167429023025714205390311273599625897127121330157155797015568820054460229673722957525354717027569296550883066568224329949941172414137608852924729499530658284502148934055303514537275545844161656149573784677667146105640900549087456369235568435067891045364945693646847508543287354936278209301761774082416804256700049625313455981194065751247679300106936058491231786490226048364445030658739865511430754077680893392748367778065065167087125989478021003252227864623129362611486420833303957229417548198584263426891509851101390413211289128603535826368217141342704910890207767704286735825987335261977546214714415040279017189296588247427849021869570574056238251085476384086096060315831749724541250712254586316567397957122104066496024522849382819553967690780991590571085791525905097667575018612876858311070119295466067242603231002858233350856234621459500220098377265854237092342546366668124684940545530413040576807759500945821621537957299030903196232252710419679505109088024264819876329770189118685163945524891324896529535060593472763787912759728231175656698879498543570521148474687007986817795194870484815616740474086981341882356724696231034543026655214414041037164478883085045199952252170729461064068987805857586939145738612123433979110646652199189579474484412810460952437717430490954223160985543459736612695034920481924129505924962743699459804055736455338126783355698658581868421597024485984110924493217779084144940831799947314280263710360094324527685622932540551317470517227752890390738277161557350890009488853558881925018777901462513269454329210787734382101879663678855611807270353818550826088333097619841909928401703244544636061652461313514847791391428905765467349609806118404273611182312610649973802758493293689408723092608309744356911600208836842801243007826596241037809260547297696334147642751170104716776152097403231817046253971496174535177851573932186684872834384574730096248993483587123177601877026422246952522584238002329078813694567349810307882064727313525594723708952956474595839186254092816843550011487975703683778174966871307798847095633457377049916374228193531220891919757203842919149722770206618062576974903754063306454846158101119454138516781634356689955303784466421734729684805815744675972359332531984561002962632447249564743076004926028091957267605732626809410398300257874599598301461902938464520087777035537712535022180126905390368175690767521839708281748101557024115279206994200130149709087321895590976119731451916002752026895278080174921475152128882481413669202853697157158367326030829915401680407695863656188959790167384463881808860106803725660760465463387961172690944450354658006668111892312565981350127226896739853339489050934539276947217913183810954030324419053553398126906459194044054299595651233274691448605886413373523527078993193494119750331927157677810598909246200650740914216144470019459781712264773981292538521369353997389609582315825690901854690575341751911974402384572536935985616345358067858872751807263498118767109977463086371363817259473678919534989852127347043986692288159730546984701802770485869758972356820494623419897193792835288163787633859106235011397310450177344561384966596779207755360873378184571382261864225298026414824729593648094396888004382969571173674787012257783683186652200931944131574405126849662935318146588490768893650054276706678138622418267119082947960319244893430434937462178981469378911465231851862146381876255741382634224268757496379629090326264230731478014183284360313204760540308130920780984026529528580883397847051861362163358548099370061666770238378678424725532934048791734124726880463606758029889610730586829431400085989399080961902706099162038998598257501232854012625099647844500347684706431387414403575775475777487377696833908665652094864982231692049706483925664520160046052776700716061092070633006004682687852422176746767648744500108324243455006297135471103279166708758199950234508797817164100921918729614703506010440024770243500056428584500180144472961357698920427173649079336925248616639114618651144414963160261449076618267455762374035109958859585165703930933687124788171370027973618999276033320036050626867819660717790347537111004025269772569700048954448369666604777095724421924564082349154548252186798781133590474700319484974190983330209316399017070109068287425665609196258900658535466954431330552575368235599038167141678190338556778914225890003975132030036575982450084210377810691866628655600173058722996669541289282578511532763547495477476564207639892526836032252153599240185319858989564221536999051671315354168119651946268020513283165753713898505887942913655105955922742088560782427652185657163639678064069287054692333877003897326145814920236520126154980055086339597211138441991521723929339813428939944314611423923975335342145640132627356269017664398141664624826307726719780385371771238507261740706964865071187436953192586995343481639235334100655147390693455834036800920370492302258680712189632283959030168338472387786123044037294470480628333529772175809580604291025416817077514969082742809418315738327001863017871491967260254306846300118208336770979004042322024613657871849015761908643136616250923676308264517128395633645481281140241751478585010656352970209570357247893550134966091067212570022412902558901877655437290784549072396332552495753053331464759121055478783754221944127680903339430344122111938733043048796106594981704268401079959331124479194559464138233959025573306435959275604433184949352803407546461839386639091298280033256398781780555057924694911428141278631743597567238883740193080660791271828797198115076139023879839763275635944245981981418132959070483799785720653159523637792055802823909581333107542950700711401168353006269422551082721506209862044523765661598204995914844298399527707542466907392673444260622974762666116482462180637912638186123250262910006829446196495893693039003217078457946236610288536781202365735222528945913899088219313954834659428914343949816451843917545769946827457845058589831229937812778637085138623763976606646895103404790197165627682757506514977191258228555282382589363277500457297760303410902479313753156487293848788046540068082643675931104346126361089794694883654412554577854275653256869079003533883341621687902562384618924125486439482188006246780221416927088858718957531985501463203891964350249113231337862239388427669021291444902952005784322890866043880130412557183586310141771242719469489041870082935680058415114016116282880571094324506145039007944010291430300603449331037719533052664159218388398561962849682822489273861491074722062122409766015550039492682100292706036604798887657619195559897419184804287825269086279653308534857672749541802913013800159060244765580146541360514928370744176913694773988885502902815961645635948498149776616138730012755060343978414182291086240791179115612775426853251759885908150236019545248130941209194315801620045025795745859560236391653845608305290207728325428966471750113401115743620744000086655501420929544836264222957673404905974852887785752235857365795256826741285165995821761167234823233031349899575759163523186335029547951687240354932421023426596289452363306182763332089765371266972947238138121265663508754613605544610095306008296044005462988329063995914266018030967857838063927078178988372483831462708282640768612562160502253341495870790606223981352172916561275772536990454417343681753690477298576367070530903852759043625600249709772081837382273676016013225613607418795533180900903823987416144844215321176681235977233326320164838323663922502349628785236622872941565788081364799944554398788028247888885505504581874987033924065102601725247406551124286852386979511378894900216075440125357705227724757527582819796022528084671654292136755575956683554935562860458113512628775087171794692270541651951099232948198073110865847569461670153380296885736166022461585769195999732621850753236840414334264099346728477085112684507527899802539230669469750801897850389541566093965562672966722812516264207087273383272716712940776601578967085540811705282825446689369168194603857954344901658401245451777171992013937667973300299241837109677012498371395436577374546318434957936777522598616071001571399004475835819604412604839352515350054047234107143120050191446080892523269466936040991342951497552387542667094702973010606241770451252846197220994387599256930198388293516181845290740881943438199590404202158379314048046804950035423885633539886800516684649760990384209170139474710030565429050570752914400334839424718241303332183700722349165499499450084737424020115702210007369991259253344643936016999750996106198639550051742205227356190498405429362428812424931910073916074509340668972309966574158678958013371010781083627043576081115866542930865203948681481064623655152418931605223998482982787566976172993868859959777639451013361420004501742635491020992928329555040293756948014354390965489934785972293132844279244642401740272382995475577358497125913586454591163834882980887343959921702125209140524565375251292831533313393143680835032038365245375823097663660790283593164137515798547036163607036073743625825733004533246855526248016322650374418096727805388787021820526608675776725724856933464138021673085683404593523034381814371557894815971207598639790438819618696874171012043163488131414281946781241959534348547536317150559614182438438212362525172143539700586636468307904455572384253482048599495397688691298214462545265875042617462814101513514471268385953978737678625641390590067354249133964267968241859426001019768860983180892455351786194519619648260806368240469431806848763152930325913019009906545398527776256250426557156555628226408818805791269599656102103681448313779452248218544895079094361371047562801321500359456241922520790826147842496303326465113044043929878038011902586902897103498029407422950117726685059565444314073494158267092459834136389393679061367747141114481172079712294655254606159719989484894333743945163445312095763677672918122821958513228721096652978572141878720588160936371435914435030300026251209209989398360124142742991191452416876620973994589268435529076402456656935461895070635404502298657079556811655001796636276501598707180707656760920702379032631658439145586795623503584794638671601561637516375658102547848925077890967163495278972265351023221949724576197728133750758834609659438413726985830500370371231205799473808431563143058948874708415279048858137683828208351146782013570543225646261168608878034698681557219944422558681957891225433870054798454603107521118435849363950794571595137977125100058703888553184167654523510707565414759532404100081101572491852930124182777391085131226298404762151023723591939525193233915396390664325424926276078502645118612504419249853608075075874443864084978115355534383587233049099225821099443882442940162467463971115372698540464267499167552835873581769719571857290284991451051171875747352338891004048830214636448080376715698176338761763603853512206780746474997050062776084509383363225304487806997910978093304740272214596808244460171328036748967077932467036700344532202431877010867454918844646257416681352784396045179370021062415091950184742770316444126971522556367654258502193758206543788897740066787488133646153025956393245994127637833835403172484723154327724003996563012169283014924919674767547930157148057281192329281774035881827733306052238469562551862181319182380898254373823112242431111702157538879645736439443451169661061726452091801742306368922513933274900727443591848217182609876198198272972202438831005732303165854709223976172669920787047585250564925920548688691250445575926729517857219194004293342408848739355779963657080321402054104011507128787144445100698683833916240093454241488428728059582737483208217494375665624692546279631710997614263095577478871610113306803927653934037789135070200172185929070228230625868997671657750316064452770656936060161900913499998764698171805597231290416983524663560041268531173122506196447708145539093808761517258378681067492665148669368632316260511743641410749929616463609537652659927563215616330456847077691357032520174082898016772552191439009324687000920418655149000718619050131966722221937234638984271650557190318275729795980714381146273931706435071097307807500115921569225953239460926202421986017297822588218496150847031712337193259382254894125833525336228803372582053804628177929410523827960772109293728123170746119591252548969167417025063644585196263310075272379127377229478567341808579661234392893393177685584434038579288404383917017711091005072861370613825443263790304459099221579264297676320901087591625935968031957556585582940142480092790769011627801597401565254652983049321092389009537001460957548371729367318458443322211229106175498301402062975916433092861445749664229076537056535052902809776101925938354505635079850124574806457168960147421513262893165147106306032414340215115928028356320676197601158697291035825138209213024921128505794883097043256975115364042984072530125795204026930960059501405778652022077141798838523984316746015762806160358733473648256497662151250042620827660439358070885122298929876070900175401680057265010570135852040797574028094681959866721446599919086267111949345866358796306133663359752666239230847525116983164476486976877225315712038673857240640550191041537488832421519596665868659699960611833438454732181880197390547110292451533375544223480915426006820880000595005417222420681753011325963194188241396554718728936725895638139383552936355557369306273386373917085286172748826850493876169947020667915955651584059490769188665162578076261781618341004230401388831752562813081560123381870947839776164603861783295076136978232132289487801419789709689108105407381069470322380660196839050450714166595439450913863813713915816577511767306096741770561162798054726320203409486423246173809488517823672729920826586539222647415417743143434746999162567430389243331955791427099770526572039743603729531978304539570557127086617445892264532075660559668012721946830236326916421573087824729746621658953026181083852366545101010173540158538759504295826443622040641556709443550212677925372565180033480322568998076012671558880433884292494165099809094089949683313791396289073141851575014500839926462380175450470111394096531407720260550924862090570790542723468960442230602646222384827173963911571162297812802668999395686709912304758142942201980855499996027267885848867523201914356892246362632704018020141291189327594948961939944590837591699474874416411639999805351103873737279285136870486019383230837913667022873218557083637749044301276542547977103199444508101882843350273723445458753865574927288374716226384292670374996941331826011988562115915388893941061297122417788002823081356949330725456007599473067878760068650313975192717386472098350234553082671072141556345619592797263139753554324436117099870075966016787200268420017931383485713035599708013154147769466385571684506417186284424268279808165395172913746090010581539853026409068796268509522850646759701178190574795938224192796500852633003924874091570416374030876436449550095832092271538575813479088008478586749956209506815944099157003700956651904483311946929879962020048578751579048064178129181309381704571641292820456382329769826064763800690039503936518953412766113308139060248723549861868920103920149066973314857476169073426744202178267852397323615321297221412403664978746345655168386789967108782368242160513607092931820144748402909320387522672474761678366518385748054152296201712786088015764320337435892801066800276789320235039103790644513121596026760251362712236425554285909922614492638745116305014507118093751944316542067284485002795346995769074832149916532270704414598187905487569064880818183336850024610452442419804804178126217651306296896334521821526651492752994163980279935730039561519581047299872642608076005155221347524936884609457534091278396244368784578587015755257547701148258110894840896857768290609061284740820580060114750437082638637168711119328504000805330021520751623697033678243676619035303258045751152149978671614350322440806581916826777092543745181127333999977089804465601764697729060812122952122946427250328220816523578009624579876797581560158489844755238030183869429831362503931378035550959436079390122375519115056000305363270309547114716913926476497675632197206675958253176173669808899491454807578568603193352377895767595265075426826845665441606300960615881271913401781957373109418735639915170884208708071132026052749782023670297694735406350849516544156456890721540645724531927237397541389353972869345885729465565915724479162503056869509170052202974741198334903374234538586824242637034693064604315251324334211414409951958193156948843255785325193152560172761272530861970036156553276770290928131342001211283794181162526404129045145186681595502768034769274164491440331015829972157014401514912160942412830274271611466994055050190213083186444939647861143589647701416887533145260769448154215242051315000187997231814871207018245860491440429980014982760838307114177371974770623340752709690858611852308205940509799040091128173277165685647709937028075417934200019103042666203879154491562144487953586725747969930732647990075939842332005722825468673027180768116505731265682353707030856498642598823544653111849420478929532700358500826427279992623525383838223689856197600980456887416630717179897406349401729048040683621027693840591282729615201102150174995953338397554182893678876324945467166679098005236001245473541049985235687490228478038295784945460115270850741793396385930410443348758224856715133785721341894210893275307765176804866725170426908568463126014037088732405827320964427033221834728555644098049753545316794965463366914750546962737933078966219294015571634329598490487053092312454586633509003322152466903762679656000441798015421847593548036643241242966367879000655625444263186848940689560743614638032711083568114108725273948085867748268084143141543470283963718628428288427069495368885325441798565473066575579675960304519375607380286148460280029751061986805785692117603026141830809826484552171244507496075532484206482867173153626604344650447066667987557872944776231240043331146014537263224566408009477551179438520156342101791532245722010566317468074160168595614289768075792438372294374420411170951403925150621393602395144478557660800079499765383232369664586328406336342400606577988020671715908299524541499873172988806405932432817797954003078780596234119820518684258524850821659854887672639485740531479521601121988633855434269088881416841495614702878328966133669883054901883932742737409273225892883556843940073499765379844895172062849941595758542960566337338633669827094488184642938990824605605465790919155068579091929266307131888464038567399959160826012278862896776922398641226957603176965764093357796360929760994525934287344328138885712276456407988989408112405023897671258425301968068959348103123218950224414786047105800616858774381209003792655357950604111027771153000880585619281250336052713345506663886082793262677823086000559273427776998408710783049524388869847673369188353118328854596578757813807231965655700499581367234932828264282478693237665695360232813545113838876472479682163227460321832313679196327094129834030721116482739749581670145019066356565080653376206048823354193484520164940663299372668140647939819719702392802394440161661376810751381559638532111626500703459997098330885369330135861444272978137592016286430861066280663479568792996454883852696213147889067533199435328040151537613919990725095468201586989845926507479104001591020227915748651466083500000224677801011277628578722818260791130751132525508936413705348449471245958666306376982491656994922853948612651496882135438941519599287734401026750149264509752401337204653249588955528544007737118358957523501424282898095073917292608438704829942365538940429749211602159460035398989278817044149297476774171286576995807578404038314132072246363252873346587205004111097929122689588396095712118812004476139061844194883592520728683872592545814749026046692958343164970033130764433254564823864332666158262514080739253886320850802614222023900965363808222012701932216518119047765362934281601536657756008838147847103630463291854571319747192488648344571877288334025828385901138201906462970854754812324287945021998978913101193776811272017410799784633325475143813892020549383345404378040456513767729064125379364855460887839257040946016483565014919803474439048732784129601405623182536053203411693914827511478559592595087867305935626807882899768248571829645604610552175644163450707521257652765782593083295620849199189284061297147814929173720465213464519995493352921658086240801790082350847948368388032957745184774136945977887900504532523406699134845997690977048618238044882143939377675420392458817500705091115151387682668038259830311514077681653163093517358200433367064847118490992604383377174232558413268998367575826058704067468018294053725027657265308443963129699917863725605360855435259664817879907197114047348994174005125154494434791009679310879247897681353373617964390651634148135087372387013294259576161699520621144511481038207666422550464322895601053117195409627069021521671098674339128485343289518057275489963567593562484487054131873919688568581536735783215734650711134974961103081432767271968187642486436993058994509660875414714084050335121594904893258273288590951532028207625829826922845057384379454924073045554926094961537463751965983694776137421642498764337542855524472107465796932459202026055841465955823909345356411443728580852287099705726729414415452881460097924080458607731797905688002492488340138953572584594884624691244923192808323797557696053262406870562795398977911905832930669237503145055165800335564680148348481093075450641811061304584810511656876138557495872223932602124916879205892365952650951058114011450196830879233893725193650081102643268004832569408001811274815989156464869129159113293941356944465625851587032852793920851538412980453617999679046230682338364194604744929861702840968559850534511138672770162033572119095111638409299946336761227525638472403616988257346367736377810689380020354754954240761887402134900639746969860330720278026195372842305530840887559976580252375663297488269656708265019932758307600899402115343746086890787960468629662308275770815810278186549521328980371933531249134660847500025393692833781762599689777837335482196778182797959643159111151065512751727877314302853074793836024680413271697070276797474182063619353689284098366185474621245671276863211629511886312526700461555308877958176378055622412760252731913506110940117789694517005857675579548726269576143952269193794268391492636782489334384312190707862504381223315788909378425558547480124660575137874516685178251011995346458350157537871912558486104771867764181297641458999400954029745226141736562767042574042907769033965020303491463382497231948123227622294592981028375417741317723108783015157544554115857300752383315409422601799568031168401017607261261500652669058242771510753125387388346110055433207739173824618928709104992395726908817448190007731758864133370585143107361774889414158649255508640850028769641965789748610913827474427300003850319970260040274673511338501541969012268914175828021155582205113897452041748601329135526317497683509457425991126249959778834683065833513000217561890494075462693975711562075081490080970043805470557086879704912720246458108622842816792010900962028153981978391007671998881062617554029873803568667508357535809703694968907724573620019043712679685869761818785593740097036435315575272356466810544665215521957431375529030889701131213918320072854783273273371899128585519854117773220470844847112121482249331014507674245451976085037882493525292901800737116224007742220909816085533111299334257394708852656893789864287036177560140879798593140370691156199133158331193505400904735149437186830306995130644064070993477746914650287043313497331330040273066126865482170438577150756921214785678542279185354929272416703702269328987563385371645869814617852138466032452968222663737694168228345922963155201027721726469115755140853468134690684041897167381681015028277169537651435412440327086638974325812683491599150790356878401007651118502712436456526134134021396265263893520579317151985242561230054898286251571818475557593272882361244681324214419014800087405409195058396520116701639838186902035348723416577596927248729817905179929596047293928028337508147028960419941367489420643746550181954997235977884255070552522241970348888570555480881402962743124774569924766149326451060414477139245141313524101640507289641926046430544513432205889239453603799761585251865618558971649704791904229628183866971971696614241267799430086969681588433407774808144702091645994675048161560692030333694302076809050275029792465157389743568362264366486942622357440686046130835396779650220846677570358627633574716364394932004640640653726067191135747293450157667216390954475164141325158502775254207695260998993253480194682437766440396269574876417786425163249627015412159276982766092154340060175585482204700197050706393341779999305807620818639431844984948073488364163799529159518955481148981845676089353328574381529921069283996589232159924081875477527539558598542588770514516672275663687875605966222733670280039444239911861592875404311665167407754057429749815603266509487319762359917920122829354012101943434986151654338415894075830483729015189782674031458687931681445353925284715429472214834130172632016100533321506828990064138182214925682791899314980847157164271385912963724888430030776809558477508951378389984975371931535248402583856484868413174327054691565960115628515269836238751665107733506484769168888307809698956177165337905628113149116904546467277337171452641645880450898843415747419600954004653476182456653514831136172703221553303969081248440631686535912225111843914713741052532906203343839243011499898695243598494530861202008248070422822531876431653474309302227324658082688284944469006729938394641824143851687725072018516885205345747318064224732950761518411919790673270813805283269869525603852435137256479133120740696732996230481188897324366896764138238136039218324307978044618231100366358677798937492010646260005085983371064223044269536781869748553759678759435079510341437994933321545053997188765086667498268833631273510629323948598077000649445673267039737603288927105558872948065704882706878451467001470691407420658481876481513293123943980117201833916485449761108193306850764856796335789209065317972458554469707472433430949199946287149100534030767378045250977005221534984107986382146930895511348393195002016423338512811321663032281622965258895307284345181882722151041896080084783519214277466002286272327245001660763590817423768389242399335173435921398753550157837136152602211636142065258972783178999265862418405189643325761709348379649669319588342658534079629724143205821743727151333890012918643986939997133344556441145893605209417867831246192611908593737578969287668134386540055165803844402593057117802157524161708980460336083854831481327316221475547005672875556678507367855843336269063122042970587203454126580918192684516162970844929405689844065157299504553893790351627176820470942430988760033290040874591990046690499036565393760841978427158502986014223760885976503078839454809349596953054422982803420121229128993450315175728518397624157794696353026877633565068190565157105361996365370563262112862829233576792904887410657642012967749622174840323306469148235449242852189294421784318615049516254967151221371569574874977593190230450044682373131216199744731187525458206362299584986050798429212195549037854854915548331600719400992988786847577058475971370434881363708499878196749835554286860518292255392194337877186368993095360676945804255994395895405808457651061011895419724298441560666633413961662249725483860448054978303002587535736843870339193760358578538806542893120354584562976050241651556036947768025398638319691227342819754205400343568526930909263919393955315425521994688926426672522064105211087833601176830511826713533559939814252323340748955036344379575424367946584067276274577449089122956245899501861808511821689052152070023391734101749437382747622464357284742200657651075906372792149107633242891584266946651669443461155663456469002700635392646019498946452620741388841581715361170343955169513022828775582695735455741256575700387414568328643617758758435170116876637848653491829852369093134354573661071395551940480904314914525893253557918911822492680579420462670840647675741341293232141458580567548413330818301544890468771793973849511298168017206058667891555237466876686035194728113803321776058779538001979588896810472290268541097185593733607298862426985600567950605689453569515538108868731277781680990560843953430106932240230703575420664005225546223111936325812419906545125372181145412735442141543366183907052438723922793987740926460270995841980974775083577594845424529365650810895829869796795466895110876988983874041482316692141232828596213608611756911478701240886997329686329775829580045329427297936554579638978545667025675524739318888196638804380098528402645000199921612931522813894786150677379566665633764816456652996539077437889073257192849519404912087044135188056094239214171180269706061076551317460895920652666633623281235677179599242129209979129164851628655113944310564026587359613703347661958080357115948270829543900512255184948546597190592185446806274218651913100267574266609496058833560268594157047751577942129072195082848072945011917448650647107872663524141412587818502754284592777110326053126327947342756707318255794399491371839464415384723656108953409828492372762369532005242075263897718261093950084803670174415204804210864667392060293043585911818372884160685157803651694740707961720735616217808520491814905905521053739012917313456295460364767488648609922419920130540609636190442124485076738167640515619971532636827584457309392916850040453234150438698434276660447328084917579470739146471113315979184070343051867128875112064079812285570410905809087523149130297891747481093654534950899393658128330945704824659652045324807562052380179133320021733428087192868250644114131850276888125313957760885921186631802431125866055120013255859133816485574184870080900166840301782669895321807032971366609149660412402080600268733525584436262358129143075935072574243524547046643178213312908981635370714108024415548629322595972920553112871055163602704831609433488459595591474669440700001624049262751129667699387103671998964348695139879531837632665267268447236787403978350509466932037554347810326032897492364758230118221139537704893583911086104712052146677675103396188199262808132805554393332917048136586852403931197358539424842918330732674446134222164077641734780338044681804688506029136473526357196664398157274489285683849436431325181478787452929255510081233953255484836691405338839298842895882632612058737733448038767997662722938359626091139682283891207415078430807925573604165012726314019510624963251689804259819867282419110779626313194464815412896617145893870101460841528830796576300223696736071626278398762243736755156525599836356910873203487010518275382620024992163553134704918110727862096592016597235843461942777139638924528142809651903219144833045731534349836278083006548031908319489050699828004356803148428369407875225875359394915519549459791610466849672303322885350022700441975380618617018061588977911675013221380781822899918699538778627159823524043991269089442002146894750498306330710076745112265553685908181688007854383353510427486241292641987842464476354789401267584160189372214740812421774735261598934510942351755739272209661604284818907314820656555944635534080010440633220199262864525188090211558205372549835888639913830127344886921513543427034259376354947692838561558107752638787135011072902084787607118490878686059984895750350362331341947187314587566985875112177431360533579643584109264954056674897347005849331948250228752364037774200632905491574094738975085899396907455988358246070924016633254397610030011652544860800677086740371523347422278959455780483910466582498610801060405230361362596586775950177401106425453475942275134426977358855984547395739682679585472283860548806253723048480801831390777604696619968633654312393578865001719243929110287067374338131482190921325391300436700056996516199310911305553047434946974080385680922555892120394264879373127413042004649613686694538847204270574941120733300571757797409099426851196405509994277847784482468096202171123461701072120278114510703809243947547471694233851141343332606924091192511339818210444854767309303558345109093766677787498836901032316561129037195628916180997501112006104242309665403243240971017680887380825904876421530779019018119484968101446316388172573246486979336472653555581078224212311554531653541739029603724427448972819526746470699834684100169978921705479907488278156010158783684431050863172678335259877142052372533089316305012224027312688561344303627705867851915947062662006689740968970993520646063713208237131104214875732965257696795747172331864587997823905078631676420508892187763600137501651930794126463673256711113383209119402337308052457799386068446059237245313859146820789195437576169323193684437992242765686531198701159978650454999785927534600379774600194613238255307788449067708709517536390125629250738718264373455801907664037707545115634927987385236807709084659153915934205167634811189608772352979778824004886770823168510563438239255308351176173581720444651851207891170310286884721567790241304090748825044033411557377933864147692388054084667146559946306742847305061245365571821151236872775777808235496562096973498155619946345304164513183264730806344360083890669436648990235620529845438617325880702248557033609809240909813109296835680280010509763792131982283265806302488021814505244360345014793085743037239385213309106966738922486041771697373502729079084939392228833874218780192666474949793110629490006266266682548644064424336548775904430372121881076989361861940423608991862907728686031459230997078404008709763362354137237235306029913783087562339756476387143720757298766205485029500078039039055979366313053949693975192070989053734273493622247852135589390327275365146140182515539800596607215154351209266080404437409337890818771930155301729887447874518686041225284157660442811262596298928259427517881244847836914510817484131947040028776427420870452307107221983323724924915807365526713865321325822930200184716140411195306585663727404561890754894249351196116089236307728500081691570090156970204776162352890327208073215675323651102970569162995252403201730661295572635628928563009265138818097631200765179729397079336319155344753787692291038215872240078911657842567650600200504365004485627141562545158469677826777390001321798599808552181703261455725357447632516429569313358818278872976122757755232946221220959986367961353956759037493736941846227516036798608853072860206528759597039340749126847444708339025038462609918760680042253795086848894663575031136633856450313411583572267758314631653634538342289844671111618430527307603673979967597118676327043423775668638707457178406336772117652022272332727036286927784502673810827461451991836037920337523123286880536495256209709071455731971135765267626770766746587626051999358626621704513801596542437685337905761383838540940134338770320001071758474388542112620293972033073115636230924926323312513021470466907039452458328578629646218164853049289000464003502204513170321944461360640926297858381680543323400252674988623370348435714607923601674864696573843818766855293854592185490933970546159163208032270926201816641360006113025753151462038718912400924848919938286063151148764845694693660921872992175212878927053474588527700843994726059485493126571814352977597861699915518411384856473816456374454491956581936495755431684646519157813780882667714049971493285980328155847598992443156227135932124552456879030882739939414044765782342355549546812858755822372126909655899395902385652762586627130111564670900922839942718426420869338802633316857905880858350007108632845849832125259243715757811517181772764239624986939150501980539051152525628523243264659756452865645178880198033337574748299695209763024908352139917633726005225440506218234485210795601578893678026615716416070471284985787582415810659397993088794028897689052622189853952303967412536843836588306686648793736635700651036474580424506545555591251982263007304371615265367173007283247143013912486313163812904729358044244056847964102331331857554641532856234620251458893051185533646127346604774545733173665296585721112647115990077575203642382591764690659233341760612254750409757889013979278091748754468838554533940257566299991626066140351839298081458850390621592898946322433966094812472614860722479799095618891241798334542367046110850832599118585059049091205461198193570788523648118583793188458986029782513211441021577414972155970811218153832958548634511804878860029450118530688351270578593566835307644723429522030244524057321524187821957294923794866577014775054701226270329469354902715848221019776960426285624271989291282921649027296251979751559794019320293192368268469890081141222695472952795588475075803679956676045777150390998446850848482667004429316808571319784861637204904065848335907364728370135972757088073312471234795722866869973185235229617953543696384102884536960301569892469940362448060680902735035486834059307853050036236939809790945043614042813697162805595475644887580181740057719231787929751155433435360369148307227345749422531964631144471096821122611102324040870286985323042880167867924243865572091457213579220799940595671829085039935937604470452744059422310774902876082645288386776084506831267225680692080129887695741646840678718524280094060784585163515612812635067708134238357619435558220494302945579599767867179849580520934632508647011729798605379837512862355975504938940168672134666792418342387851070390092688857180880499138389104467488241868405721866335545934863498088376216179445821469231167310711179933705362781470523915489993387553593061629487901068760419030129667547030401634774564289323157967911260440074890501270962405182974377148617756066855074495227374893666404835893987329094078976097215513889756174602762422067544852793692226547865939825224500295265022319248005588984040442870684845117334804684156169432813427457020844294217588561294859493975013680475318871595949361411969986866155371671905032772427348835136794707831533112462170403158577054013345758777067669642598640827328431421636925938717601555229826220329642177456165875556450046568603961380236853839284437188552843098966728476958179910957873271169455449799816204282694932532968492020858268279807027325315506166465199694728078392637205019314077976443711294987249187520753203841238287473310479284332775639729238437706293377232273556570519121488885429388602884754383328071702214713178048203279618629576555246564320507622056795129297794487828112857083289502412669415623905138053070289703074851227660360336515148785913115982523160600317218547392813343920318396098819620478325209827977027407147218272371003101389018324060245839254035235968663314270502631619474014871352884187094732491021204957720612013216145997844084250411705955760310038520047392344317862041545258645952195266286800665751517657535881808680074941280198725755877308016690227476088712978336130326374552865380300689705452113674038058647288441467392101810171532981138899906308044200257628338668537478045178398260544391904603595448882202209777848911566209427758361899872472726948797569355092508321112611411892465662055216299882541275693053382333831364020161618358256745835408409359603338444047962483565220130264488892691349977726668668869110603653924654591662878187762449715845161960258727406554366543505507615562280650875634371376788764911762983049814012345320088440585186020715419447750415351298616871202583184969419158058979883464027761365856100194780973148554704921850275705108743526428023072365189343370779055105907059830298947822510493120962442485687850134400297458171612029106976256478493624069203656361078595345689022586534669658600924434699252776678481621015196430967597615410834725922941938189900841321949410679416923243708911727256816838222095342350762941605723000706485633707516954104141210607931618065256333670983137454205036851958699078756211627465947282878916830857981434340842756497253710208841612203023254594297457551641759657317170821454599485574065627310653954313213735499931390748006926889797500604920891456566261539054517435018451979094486165842679389885881343114800287459205557312730883898759722486100554772643319692606862347493510421456415689679713011896125959000982854199090814739099519299472560091258588050792534440146167902298978459050716223559469826235374117992370900498893733507503888986575853904557668581125007774745675532547129835675105967614551136738420157240479399619080922313859664747168050477111022667398810744946598248899244421672899206459097200498534492150892587994327959097131296475519090888564885855952722216056897734062829647274454244213001995634667450460640979674992492311409375839302415184912036156078846933125710618123901057031413235680945189850443544952232449186634045287056797520410065460145843361866815436364351122807593349681593968169336331861739699987376573225565796776288610499539843647742097321035064500745840705758652006470747492465580589362891675462883609517688369551381327331659224196971233128125759938422783912240403431413896077926920709193580717421427011665739775054671712520898685817778243633488119324273912931925543323685378067568289976369545956442970539174709466610221490535944662745091201542717114999640462867133295722992896013316268039129647308299952339250041222485822558071431179523131299253707467841612497677470927005000722208186668172184026351126330484913723938391879610330449355208006404848549876734608593297027234932893721434578136297465570454541454654485116826731615270002395690463457238809647026267762589416085704024055224511547094432040774848460693402548688003392921289114826566604558205494568478764521166495758585180654574923168412625301115368364601827898557950399973706519826481519766579450548200924248904514394128746712023966203645338799981742449370341993844337947309717759626701271399780304310490047139671490331841127642001930352403336659511875181336558254281804722788308870861654654823529604304945975349257068483500256237318368465263964769866994133076575963532734928146812872673498934347688622030298886567886128901499170592831939899807731612686529980899061883334950110139713652785159191142673312536777228218632026495446226692047654387600138794986858508929459151421342073872800435224368061622040040858477754580177850829884471258214036411754441180562689633969541026219177008223129206814877143282352666151975942902070619392995073682707015621420749826233374879124991143147670275385646447072558197724265535200109993726841127128724390550477746437479401012846226087910706220735383520487486437351938979951200246471454844450918590624958496087797861175433296676875830777257861633690553897710352704397409716333099035773289887379252444568775500238607803580856643293917099050092714323155893141968604915105942387436659594978438382555275216103758641778336546090569593126361590252680818973948707305306311614813259654870641928307485070583291764747958485313667172657232396005580732537750704661894936947681814182752255897851939589466743748287041355021837648555991069067329585166763061445568692918247882400177734782485023512583745079924784683529905289393402157000080003220464639373971422022645663570762067062613517392613071115357889491044448280082715947200187686414420155390016026618572826545405782825086067604333498226297108124368426010632057800276917062491965322290357684269143832728821826035450725300838998116783024879522404290397478011336007023623436066025696382394097431386768836424623593113407504325154639250304776359275173706782532989678421912798471251043707729891590080000290578149126719179617444100504840544808530233377702498809899467187378578288122420395151780561807357868521614908422764307409730240080871396933454509851806109216853304749774395870981916445439663148602617908130695145420133650067290414291090507051983266230500128554093619773952114188645634902338673867825659834679784301087195202266769607246307598280220758481748075714001506460243198462846930118401499946427229459404346683324879693217236005745627530581750429512599251785107000424215430730012530652065743872113434749358768544498460148314865942310494459193261688270955384489334847921015165010527377734766520555680823040402221891707948998127178882315682764314735107642436937278652316072240197063805232224049605811152542274255635881339225042555130773660441064267958085557031630179415239033321224881108116188472313242772962211400895979390165861689588123484493244182783624789639980882950962138989759302279078049291331616051879281220372060709243861058021699800529723647240927113739102744230742494695168184487083300965802528040785353127080785175513692796084875839981885634855025970166299331334447519729080753341196335650232508458480503261377051196521854450053058423769133708160986428863168688545137206989643572514820285898278215494597938916524522080557805388119291908287894317705699611273976844501372287055943639557583650428555330821810899563071603216077538251077639811807720377122978853547733865056035684013619783094493620233650777490418267191822823113695427629370799516074637713471152610333962416964528613727942885652166047966476010799243266173945386201655117527654968573879712201067533904734696142022942954517594742653787071053384078895534285531337654783013803533587140908965705168780126256039473549493660464709644292314136361442547517464794277028875163959593647523495447151650096494567808561596011465104544895185782460462081866198551347959580710943055397109874419146327843616861600811610634420483714252863176547835339832793896260322277029470570164255419382787432850376671656474734162141513730211305795177288803833668827065657148713399459465545172388259171572006119326803030355269957500167216491649580589593831464010480514645898532278870983426542199602515665342496999727146764904483168759943666394678808686170096101224534456467338906215754663799139338455691861225598498728985592028958806890498849580125859063220311185753708889816073663295495547693777232791646321706554370282904199933334430136359101466234092768355978445431591450478573641837628707908279849873062235297175400994036561588306640760766596324410314219119984129696666890473507680405803316374769103370948692805118909969148090848154451625670754189139815398951594087510327526054557724504581465734672009235483515626181067318002328148919208064602282011467235285982791195196121595905391918229284727522256270195120232277463140119840154936296092586758042285639316992235010542068773004100688615298499027677143805091302965296570354075241092708800816930501036585929834777971684917673024927432464773809612595381595854426760671913853432223725309440398714382690134119406087612852936852850436342333592270830685341885860196535132621434231419215199294224380418469334058569156963061967024760113138931628942048501003302281448542516615731215764153045414061568327209843927834776665046276337068552041998852369168473811683198196949263682854260702065816902893179743047913590002216745778233194943011576526322555049044956825323947168980338501085343340340617879045038821558229730377391387983089920201143415531011834668974806701005363921066183047717614757271258886495428870237992014920492306475794297003843282345548715166767377135081604449124048967923726221699299421871502433286326994020191748447051628599681105277907724373660231717468836613266662501817106306975773700770609798612100527299050263623093275788682863493416750146650560664417366923288018680748609337188715738434818083728065263693503919360344919117788229999152456202407847798266511878371490550455038315092690756272423233026505931318826026584698945383472056472455811202735448001923920169907557698270252488859992613732854710363801181183147640098520449238986630780831078277908559608543496013169060208776888203806130237282600335982200550610941335924016926168677015070338816402062678547711172747115939459573347278453000677804273042382822574302044725437662835866665076669609570694491982385494981612685961906424061049158092604126323645162168265395749591174301939451860044447396165733531428222339237019063105136957480494369231651912437452684795502385304411129570574081721707892029779315562091821515673213739823420383300332838907481910954176831101865510855209516460133412636183711779813106917953930602684318075905945414127388909128053526268024210504379323856479326105212020250940104035848961256583036590527374340426832570968506020974989651778475872066679912983012217553490987968640871521253513186862100837326647847771829212742875788554641138756053009430564885545565224526106211744703308953223817852781786295944963338265037881152478846575400626108027152005797651234923322992083477343012690083524077513260199275181831190815708133237851039223625567392745101090793917071321966562418582078645921068201021093340156940191596588218234517464922743773159024066251590897003130412753168490942803038104820708675193517294119378604057646290396973541482480283277992118584477498620029224050600223793071486488251741351804208577203642608008838528930965250298224779729525896051904453875973426538220972306449711572926204650318726985476277144088336484792904508088982099140427823278427419757977620217413088802769724904057981008403985467564385194615979966884617432606540382722737995700442188948961794920783946427234325609425455410608628531160110581482720709637490289039109971827501985462445829117862488911892375166927978661977219129219079075339522218476349217854926547550000163720048908139870055267133832582242735449804032107950188294318602341161061822379574274002897135867459074613333967645295355962918946753163589061996477404658090325382660123234126536262627816128617344218390531747671388693258445306839350311704259331800322142662930631448205348971674680854275420239467797709873483919100367425586629473252949965066174400161383032528135436717389055207940711349956182796674180841385043510086098338762463953605053110896619593999848267110811027787292717061558839189680223451450121243368845690845496645357057651385069598662669821690364960983678769189763762932718715851474129665333073602571638998729998835795463530814286988314264788168962055712573474708874777333950447412203200160537596612908507842784130857749019382235073508767672153705429577076393261853039080293942853804434676077978994264150586006235024313375358150190623904619345137159841905295704734105571323558895147830618075017250649207634886693183146942439821237070144801342406393863985755316027262594286175602807018505873266510181445702245521718727422050294893176536965957248055332227059061570137235373872773465291467839295987942790982761379012877800020053264096370098744045972125937469014285810110394487790946444809603493083724368745558551447148770034047210120873213749927524320039539737989435550401574819624130784814538941541428449365949511462761444269380454629352085336230724764204904951972637790362990440510354756746349250648113681133832976164692402001998403467808108414486106155002432398512077964337260766531858425997428734737763602251264144482267684026111118882384510080794124566469708977037867480303121683343877690382029604972972983737432544465600210925849106583456019314604213084733020400292489086623537049736345384518763057696848881341074176466834642204964791132844194011924651720379267411982130672615715494083188356127525364937685162415435713147661355195499654453739380430567372840985126453434057466543294864475844514133921530009667855174973992058113391288019728594022859236810761560441940614270232721057354578758557596457731875703156254079342035935923089003846617382444951323800119020215715904994129128196731746620689775344003165401586957715486170887952709782079806103380461948068645454319266676745953490182260937965054896795613659896985330502154104648862356342931782068489236300863542784711922094616389017088017862641079485054619949994860708253957393108725145821118706389321041943278187653184453714982908924178895393259252229261827506465477569801600284912286519822809581548213995752174269706522304616135836403607674574918690790306407241612670801268083735309491720051321486305015204043772995665258194600790005209067937292789328287698916015604386876564127122712732346428600865358584144575258147748017916264052819035277842322194613554192611179733099124536673260751043318645457515053004134304958701368877198610669449923494671520271471334015952990332359796844247517065094131003522795222432672987531796945575986279467230705464866004952943318413763441132331388714356055741185011549542718199906445322811547048112579899908646515016808307645746183984371567645894140986483284574718770520742440182804793364271424652271313834367410689037020885207117322269668403427685141484872210145584714556692818689951495343376097627542157719840267806372042712220633640221676543043105427213346975648340021388512923275431287075714853866695524969223951044896263072542064242588724397826110834761236549255861539761536212872682225147952929440707874225071547758892010749639196790529694787930045103226968837021275010356600994987847918835262997181600495402596829330657510142971633252550747953117408808149136606376050885154152989931097583071237498680202449560297110404817417818296309206021875255782959618799607556674968382790834134115289783591242668846829536673369156019327116225387944816520254698204919022505501945181276140658910548295117689475743534389461264233718502812044816468631625142990848791165854597070339618966536516382833394879672827211907994633710165274354310768145191468019584291462622323014872656220714432146748202793002762437182112943507104303447337037771873521965285723905764145219457670976979668048018155392443753210593199178443309146852130441866493417584453620337521116565709156665307308636743117617004928696900455035436885883035477013533158895259601677536179251672765119681868650976677021033767557122065557171521845859796033521367170840951782821419870038045439250810595613903206015946717317573350614740833852855677849884420865802076082197747831944988595095806835638102167234217159816439130630442999007600148807502292448325175913162184824847790305029115581702146492426213206759311714426919402711904060023622327600128836695651211339172883821068542670392390655111678008375445446218559522691382760237772593923077455549780587884147982950933446058785112573031104125544688555083685332321051199635707574930825666021960081477902963493980782244221899524344018546992124542695660407999368246969154124624459462994110186913888184861460660552479067424725277040827077542634091023074108628669525197548629253668752133980027129112340333519207393019947921099093726928062059150488232724488768570015841678331371407098946171349066710228312388320440833648581325849809341812516832026289098687034946500423273473379161682931889968898397198010935789473352262681876432308607691505224805108282055209391693942708337709418372861026801267622666028103799527796054975656435243764659437850743545844306298513992894969263891409541993307871108309169426670004281612353967646724815425246881654934362084771633726018440904998607592354028443278184138479560190335935806163210699938710742839841899890183450145773714164341203648579794056426731627938587501935437268743708748580121032887536754103339246752243967613310528192576711068532458639971175967354277384759070538002386197477535793006157572720925493448638640258960756351358537522182688107414038220714518130173751635210390802872671288690016311072761700342834018066253965196507057226896508541086883853658780159725451502274689546120759374517327562686569163167617835301622926356977529439011029919132718004167792383453887933781154388030838104402262264086581192039377275028950793153001168245447506304669238757492107073146388534884766666792335600431745233934236403599256374883332517082466149437815679312175027850487458375557448461427448085751589294178281563625460379230149258762974984062040498651725021665103009186471496669362821418144131030708125880289321841640590023243696474574312312411353996317513629154942074864922034983099446167280846407651986329513229872765548950490041799849701824908482617037889198426326510441967606084263355019468908227881531462701453800928815363191372399998751867102806448231575651478627962785629795801715944009782881731491209774042830034767909780103302540927946659932045330100190485528477135734797382188242124118058191105958720859906138692033608845048565242211406229655527707009499820579262824057595151341735619484276114510230312518537476699858460740582285469223138784836751004501663972607303831805773400884802673697496124451607242335208426045160856593089862007096518249427005624146698402301183429837834640991410571904892787993801057800516805214181993633015646696833766127518049602786846289446757924416027831523909005115330372190665710163966493102065587625633242046272275888828788582751121030104881042958023243895855742446612974133219412815475472091903895433603188548847899638238787135151043060578321985106377603869143608177203676857253223838571042101119267590189887534045522808484160647711420274916859645235830131939233568313807708738226491996192639982863264256647551200517418133965331855369549722752463961681601678060367606252830442649115335108586838515088949061382565927605323564066930363004366842357999853160918836171920579322456092475083978329968822423046813633276942081674545872097889322631233359453481396783708240354792259205434200685734858185022130637156211611537603194134525000918604316865863925115460614664078174206450080106575953230356438770100665881520292754651177792925508741225112432091658411604043242055151853637442864193511009411980749547181993873497616170688944369372087151281206233145281422451474139830502368031171942938473291847008336246377245339279435124934892015468181979714025482791228635666859922958986119040342298371439220598118918982246240662594150767358404079948975132114086790196218234496853037783203843055289047788956681933076482544045138475547197439514521056954341331107572601732974579738781828373543013119603535193864278641206177038186490701872680046781879473778453623192867903300295443398304228184050680482692590522010508461133304544895139743133724022890868029104792113837559317633477873807788214147039165046388005901336886829206598409630711276722006848231198756597386756353525686981289068847091273083079849423383839366280044334711395742796880454380539054759786488028759162411884487799641894323563324084647998946764906790690474663678399155288838848119424951420342525637140346121999841573058663126146842378655130639646162804820062974780524052442848026563942145885673758405331879243413498263112799512995368296323844866735893402885150377720285969174690987669630293730126085969462242789357974755939109107620150785657343817016580044857138840677183601793150889944078223020366531298787318117170313286799566182913147222739574452066157928064509787900366102359101696548635873632461108455659904979373766109562256777214729488944610580202493391761749758431294356230476462611079373394381920467266570999987224809221448817521372282398720948424084708889829551191789153839990210419709133797132322606234236665938219137867200588837683853211680663096341354646369922085853644878738851451096837137428656238757365398691330489846241046367387663917994511408696116943463791361541860740292302276135820703151811393231818774088121213992306029264749552858572417337300013607872812087406947619719751921026901264199551956182768004725620964982483018911460132155303830182431828738125574219008310273377263022327044444086492556049415705775071950073820450286223150259751892981626728622578956407592348011672060155403788631542475453101581530537213265099810798473627128234700977739921447044874458848955671827351239274659919559009059242305875652444200808278142167482849598189553648225800052007227745710144508303987873114443972847170149242623709956050914880995884561987133745931278043369910073560003814146046558847678563003327536244585278389029719806980169734146291594759719042064745653754360728622240745353972507745728904757177047416458463344541843118192426669181280226762504626493575514699434129729035896472592538011159179941416276144839100172949736760291554717782136138056614563798558636764841924339379062666224844366845756740123687191255395634590841053259023609954134795481163202526388910040177447303489131158993571610042882032642449858518075446456303811355329927934950623751366062472653606109898394151078658570675532363864035665774293051971588694725152763725954328633319589384081340688277173401972966680562832033731498301627112569538005761929270188641060785896991681534550968503131596978839437962911041156509286440296084400068627122937296211080785289120708789948403397284130065557904698616555480500367828152603624610983171272991446431984679484936532596933294275572209698309327308371700607004860289636897976963365130022183263005260910624983775923676826940817263979490937688209524221349853309386044582661065489101083736330430240108502408154019323424983000865016183505504715031512765332792532928082320436747049514568052682243825358964778227851149377091471088613611190587084161653930994855371129213429475277296270172222721484078566657005359307557181790962636994171688227330043176103407550209519397285886213494922283308668051256482004063516298222950727932073570444241012865721370939785854074856133214465906957947689787398998013497391879836971144119076989541733064213134811869766716198763300430899532202025403330395285198385324315510981604191656213485535071275392605457691442067098957604831346459320708844192796911874876205454730053883225275104833713433486038794174146540893303989333448351378127334240836098132071469796903545010742006409364724184153789944594782512269047928081217186705211364048658915182757208280690666031339038424754398343077810428298587560327870490369203750099001134116488016705296114692296196123204802678884138314370294350171678127746669639714783263341758690907697734506965673703054330558928473556224668125786850642284084743980611279554113747868342461470145797323160413677876052039631808189098263955878400541968892493699383310561015307275768553550638878363741865692242843692600395464755618135277478768340970023490208123805045217701224445381020023339142914975073261926357196830927670997086783177893235022757738722823649836983566864647344911160237499256838410272623771958438802831571853494601352044687262061164808562399949549826901869508515213513623430307836973084313027875981281368898115355206188120554642742547753200646389123929969688264964712255774160268793389980386814789952490877311205966957844763380792698030749339010732992426354328080989418259549667157123525368575164561892964721343658551917279825865759529997817987072213392765177447835591547652116368102168585985699102944332868653874709491087164899793482686949652591394490962140211578216006733994486361384120744809184506995302440741508110980348151330433688322376617729495769381415767184498277443014593917816415322396704241743400919986250824259251376950107618086647357907399605613630881835679602365652655507152458534092681936982486317927983280345444113219161889330497464172502639506961500457778890125432055893035053326450056980525955108732458692393651979961955743479293711747097827050132983866287180405376780159481606052433471730560504731592931461277070658002939445892947599379171858888559992839650329596129070691811299711070459147579629892763463701766982530750748841747721997923206016613727026995155758450234630225194534132296048351558064976315499896772705730327844202370365636715856660298402356623693604657080112507102755257342958538676308941318722187076251380445193148004033274561790784045667921486233240752417521201075514065164729683350284682107225381473190707482455685165859876651833865125097595169983189428185732280832999840179900938613770358721425816335637525050230574369731512049831054043814812936002364681750319966199822635985193258530038884043065311139475761732721162307876556377016155504044144130197095764895110701470151748905135224803503446870460698862079822954002918009717221629869885987137193220680016433289497175378422306044730697956515817261087776277596933674226165124807985865864685728049565108530466501706855875597284052151717937452711983182903156377024051267402492186408879028704922028042514258597168732902509023252991562250083345136703249730873142677493515062685088720893590955130781809598605901168557234788352976909848266721879659702524578737472018615483256175255792433407270823284382948461606643988928706500142494923739873482690103363954465336988395078817419580849761978819328729570516315452926021382955031102991657993072524682081545569555418376828297597651427544608036061105354064552215048752327171760200126939925816669041145146469382748280387856599017670596701584688816351811391178416677193384861240824408412492546601565865498291501692728365584859703784578636495139516222068501710016906440727627628099404862846816203479589126716909871339205568827001874638304090857201749249315845752156795033237827437098489226742783470932663410004059308721283328172496260626563131454312003207392661081166907681710403808979425309522333929490347042187112295572477777550696098217544547081277136906937285616357210001693121650006894594628162807809330828404231695401698110178510896169154011137008462529459301996598819750622165785247174888402088613651707108549793921432343670224397037236211026310312618443740230301954164750567675282308158052248562809197568199527708036064260873673757063065792208018596601704266117826282296276990752292919358178717603784008133040209907432217003502054490949820086382092548712306263042111852696357889421012548108316717350181813722547495390545282609607277569569269047654294552976661319345154328101666949782776514286819625532427291591669796697039043344775878062380878684479015485626436090408092752792514162483549737426581639220049268378535597431971146559765750198313224870121713548401339473958128657049818053259380649454194831992564556791610481644858075207236841268701130241119117611660805483954075933139364657808689766523957325389478862171342148403082114813062366961041709863926275423351892398874252729630897732875916346065955289404726542730038909151998720729563279047227873632672753604995137260574149129353277995267136224390241962193679837088122206107120441119856376713591453250209396636096897781470066343230302898671050513803445835210349909168949840238289824688866091700447077233594879512588735811533745337827793611233521520194284800204010122900665973943119955668705679370416410463500799596966841214312660139361102203150454736461329093199839311766597419050622246545913100516696112001715275090209703933840155860756745055632332506215434342329100168021091128865369915230821586782028984449653407933771954756445453771312752153583815606981316685654093084140736579052016564625314707476067966353710730881541479764412102787471703876074510190535683450723783035985272493480239547393075063148507118737357609859346056699599998506669059540241325219735438474604041971837669315908154006197609411886546028475891903407169612357137850653764082670931722817205764166397213997560677890722930151278929909002401169816397827124028447160076653942715981418224119759862351439020366105724804190418458127110440683232589790148584201364801254904988027955953907700679394094405635803621834241462678738405311237076127535420243257030194770712244558815595291159282818730548596814778911093890518941413509211166230085164520431099986279828006057762135056642470732851753755083695229924930373834516795538129606356504817988160682437588964130959129777253276294557262145913700998568119939573168667018592913525549320308402679718546836058252882819034356699517534113399331957400808577524967497759433689842844200471077370338944930227124396805285453456445877501584189687655951380188421850992577479954127176415322997630243805837149981416290984787751943439852332143185333756134108683800140622211578997163293941841449426202882616406450722216540656513752571427547842533881769826223124497980204627566828093884488215792486706188885011343934000004529357030485909406667601435292115695005083114203901227837977377607826664125950450994416153818860499726919416944703106364139930212431930133498304248380936044702249597694199723274663042083221946045260976942673875571380490943947061391420541247874406450424458815297765942994714181282915900056146169411282695142986649433354503974847422170992121848371552860594178651156214562727161704279496133504756189571604325579942180869553244171605774912324386611118021025780442856742885148102505503160340015732115877784202690570016964647506548934712188515431080745621202030359823762062772471436509883901229672652927331437385477537065592224587760444296575123766325779382011381558316397027965636572086755926977480161526726076721493537109192712534763270107142488459407010991170750659169156434729080072555321561061911513057355977641574048795097640395888813805481940228092990453082221561963683073403367138827779771851561548843021187463341847337445082144946426375894460447884572507019160431834076615195250637540857255442231542176221576120292062649617752494040495122831022512926269194173077470014394149329442675927412036811276961156937340305319277471522816778843935785537730116213135398333716072021134524265291984405418649689219438316426138935028941560281514047995451454755999514825023348408591879850666363552452056089660490547281825680166741061770871828631323119901802484420461159027179004545495157388007357349824776285294260954268993379145426800951271951196242047451270290085337722538738729192946758827227726885817452865399064611297455411045045982193121401319343766104277039622449001092638106323330439362682218777753702439483037084096047136356054642368286407007275856559252721471852793212086677945362743019894270876615911603022631569434160219833062750793316124971338208613672953531684220121610014739692369642235533039123768652380614447355401064176053587339880698097057667536076827412341802080748914413228881593846549592633545410161723609158204267311469019132610918807817763579329848123144561889485249192610761815521075212217449489713465589011543397087200138832833211514176616662149494030789741078219510939522602715767418905551710391837647183078910878167935081247141421975389017869953723089375029776854160646149779774470958636267030187776886402597812134419800364927501318815818735402533149518286834662347760325190958481928802499227060043368791944762201145794844120243147878857822813590035373726458281595028980883172144450190468068975374435548769687961324526165288289075743790618890016635108060436687546701223072772369764302393799363394822814794994990727236721661000963961255173281462802937779686412164835672648079121826823115482635301009164267118748478925478479327808756160412312258919980797229615691483217347600116618974480132684171122164935758863148467993352202603030562251061532804553292510394181596709465311288043245059849412125487458430193877945007765607809282850309346608642657704578148527387230495481386493999700601914097484686232542943374562214216677658442294995601994810389003035841058559174637156158469332499141854271348959597767631426723853109592155072772197772514750889860039062513268253211517702924407476567455034538508947510451807038756186879904403611090307057386918452507899480810384007881881666965298993340741935020606648215500195272383835476839664099396606015455837801409782043986260180707451270627229298798264438989081305228501876766485241120494468231422341481980275038674095976210714246601698911659144127276511461910185426884141818971719876411540350277452938889183428861444642644443677993621420197292391846611312092025546977695277060337637707352545730576411399444600361740070667909059529867727292359714259370644284905530427546225262380586472889007905211001928496389981762336037218175242513575588112641781224116604847067206734069154876939695525104574842618590145256280909201769242371918045790164162770982609361623816094978013873548813610436787475644025966942608256592765062393347700075437582199570775367299573704079923285144729156564070984942271368041382852045303680478572922098553339701250928027848425042072382935519505573799803294146964349396400532708345715743313820051937254772458798910412159009603179898277074429400623409412644683696468277135671008313887739810769475655388365359576049547115032197462213271115968117836282371108836592164752018084213785030483830077665594841762261812858778195165625627740772013586865596534201221241027400616806346793089495106601241051738843390084929263567752751056515905626838827520724948414434251687909319535096647609116698227067413932140817698345622251223453118894741157462264337792343356161595711481853993288171835160469796410767937479394247215348551017210369144377726397581158771971135271337183649198275746167780080957540948591136564281496350865270343850860844275306253668284183912186858810907405649938617369600940080022053362744302025163246761465627949613769603386086967993381984464457655649565130899651640938800149549310319366356816132897230494179343389456136934549572803524447185464051478063651466597374385003717865673569157657247489366104291630403070160574245109691376933963890559782490745397201214792582407350430559024117699415342610126009734872839846769698622804142887050497228369468018768530740104903793226807408481892166034928043092062331920509027865246212241118107929127845510609764971249933944782696863845135214858125847694506334958714074803608600792876678363329302681317705773458921014163762534093843160639533373532217339291334953978132864056901441312071709209495426183825852466704839784209729932810683461849270701128288819793180213144569527113799844305392225894224888938519206132072831377130431097000087892253222702672004482083757347346912645560763388286340130175015278096325506341422072340353153367032079939236798506333972819522042592854729067195506591776079874990241067674977882108354220298948011552345095254306402294039390199828810553503678786735576159439756982340636888931398223537536938970437819298892898694053705151674306482538503916256643521248216842879657389735574964957280806969525882542631808761018832145747181227925787345525174105043106579847865914917281768237793397050562681138627350979576504780749813583629020568177130688503574088590961547956272513349399409603243510488914481818406682769220195354557776512487449447255674328457467666709475562293415655551262400897247798544163557443263318502426195811302268139898375897257368168557417387063434390454431054731566373855042923210672861963761076921563397930741266372281632468998870363637536115324784811136381869311157936318801594704222530596034641497553106964764424074955655383103827687505344524094950086517290368523669197515079567276979538046718635656010875943049937776884358602471704484043524353697979217333861321796090183886620480218334184516394245395119951353648604156211434188074276050990300380779579662524777322684790133627532909226133515629943569626323753625717771429240220380291734235476902835547290986848018829861213266385377902629419381823312588839968365935702236361402085684930105587587479818029972404240768620881089869467731463420406443919539130147548323286984939123026531438389980701166179632728745507580152701019928671816304837570675859815388785392769214669665154149046100973255843431886420350737987522553566321278011715523977120755808149573193552770358247258756479137357240061721308012599586945696178271199010875609769340457104570826743182474688113441891412940039425213323820568098582280977026083900983626070124873094533177301083777103596517461695733408130925734777688947331524171501894235283685060399520599884292483337755988685012308267682212202963763673264606426940769670732630095653793047595151851647371548573780420573909702492764397345976672201543568183814737936936791287077576176633071791324786639460213548224092746424923822644990440580180041653366225048086492692186344551356070682272940322022225372808853704226059582646449050774487920709691075774845637618628801598471151296095605525105334607378220073046109316965148169721180601090024852065250601992036980136058888118296181778566791470458803547741493994815977996418481804649527287976005057360531879274087317153754990700618602469252334602973379268748048316647531201152412538289468683695905402134561237779387655118740878371107848616566636477671277100689415481085115455921468745940721576383477630004125268673679464891842562652351358733248710873752802538927287317234894774475316838736577972030286867141734003624524626595491799269366226451581952310047092723376942405537688015217275868526247922114178048186250935382578418581763997206109486126463096664105233966162376560440113639616566567425089155442646125980462248308145274339458161007434194755696127240527342193939958979821220719317021536231956706434869562817878379139447929697018700994476949616557224620127744044408811423160212901751677316063005055977835816011140309771102041845715560589611288476558971723957409499505095013139411074925997796675419331564601269947421935709284368309983159035033941214543727248661131138479199189736199696836073901153235289433792161445353195238274380971799582923860391129491250559180289022123335277735774711775742620385168006830856509529829572958430139772941871783720092813539361729552052290306718528562340261773178001193861787089443476590946623262535604073937275821394353699571574026087554762968801586207650244738321014527433766760935700812250990144603574779043513881777485143192095655695828156727250941739276678925243787190916659169654438302674057572263977242910371918736080727754406932293640829798773268352211354031627903184035932530291361105066482395432601410017963948846488433443688790728928100601319438317984660908236980552208008062844581539418430782197103687084201817483507332665802759748826712635672246554049982004435327986814037855926360424783187004113886005331659081623325663686814276891043845892746683364331044901222355974547546526977847831337780071033111087544965931261530793379373364861866248445860825511852764870483131164335371473229547172272313199355125708363539097376172996357585083322077399355368657767868694568030861943740820427781979229741615674701712324297942783799583310169898513600349915799674615812430526208567903240368939484488098265341868817290339950113502777199275660121977307009378495485124393632727607191788643306569043138795456940607114436134288454597795108137745572788341983181823375888484851212677428349251502462981015846879701844143567427828561596298446421676525651784340828210125313436004658274869938836678641330169193918240844655289262636828259443587190044939097979978570997804844787138302008778216431406627513213254112119388011724645533994211360206460096536176313131654224792853586564837426465870234317950974253187065945724684101727744439789846994134098386226048188821363072073692867619859960998355410111625437441854555341329209762936874316080638894969763530418119295380545307245859952354492095720580769280206133373110345616521825578485622286417868046612433396505966683178021371794637486575666766738119305953367716052304819187842387725136873322831897055871726136425769484821931606523740636759615967420501697993684114281123755431685029315156867435965190948496210447907789660234706819919304137991802470769572111345470889940290354698865604076263111091257298729853534998388030371015481355477482872737537582685003258217136456132282334100364816462712643012285351317388175925828675075690912570945380763398809194447341077907732663545104176338085724651255202344781903959179172215694266833361500387510115222936114132126296472038023359680072055887645938074769358089546948096268188257341600295765865681652184867639943240969139185559104215969630121627143517379408074800966944809880723823414804964351891399658033889591768334464222655668892313175937919567109842593565204401092770212538838114077701059344938224368311074860501325128936644404481978636531018561740150876629197526205288485383927294871415709018270027658116157541417524090679990832912987075990168153452473631764367470931938424354308611345792251100256448017948570165384577230828488409793311269839472849359255911092368755173993239290257135331517958368165492024524460442346731795403475955729674970235282073066764221223230272735486597156270647728327343743107607007483767504330059809921057282387198918262940282482275287338304395510065364110634173097524738645378164883891544763934250894806282414279580557832298290796211750447624303419872881155302041568028437278529571023248726465403152892759372606894241695346703148617855842170806639103350135891545697434472827257007091357774118523292262881537998679692775814734916451125266169026773300663348388611836456033246439266252406826837256189037390691570869930476405017043196003398063630084376690680820493882368530277993845430671498306262836396659982115904989384022522367803269076614920106737691105324193618594461109085868415737960294419530732753764708528378619157528264210335690137384803823747116572174969918928551499676296130061991075809677516504738911269548976239242598147375241071340583280975084262799477676131905601587165175530533560186812802305474108124423539005865478978581865064084061600866273784074878562507522052433767399679306379532684336991640274018148434135680603032052845707440561379596381472353960347098739409655174918638090372596648257401291800209390277135729065083785047927557004773050090455102697995525690792832306768552346355080028899349765498795248596871140264360705165134420904173903723068535409742474777671192278508206092206156389228642606006499281338418035421901855046177709680662079496909573377685947430883653136058241402314210012044238284991283432552426034728090275331375161962103743743540825234471192708209560269337836217898151472910412766482548527308467191359583439986470274944241392144024416512028688328582079089664113127978588640479476704919156224982457678277029012240916670608387918679857288194588430078591055304575129698411611957744326956801937631947593219283200582304029138774283099746667720023201179896912418692659095735055961473890177380066441445141299934196887716019082698926406277848723179478268790529035673221091186225227196361555578979298555890372098056197406837650469951520328468623338496995739561660788312987163501348762571565602452716886610841791806180173683965590438197364685847750290223625089405711318915135605792289202965937133329453878062924227460281218357723918875601130591006893622684018111457358622756200521043835106607562792949320115958248173642186443574565877338294049261133545201954067823678609717047250676398259841603726998796855749262726290684542805982326483959537387273709320493977669548982639983762972633356781898144976818585869079341244907117411115115418834059091255019587390409578310622474726778470344793105969763257083855296713276759056662348636565958202106856585250775171567240071976536443762790670271337559699093557620148925363709308611814093199922447036929708733134728017951487424814375638605648585752342936538174423928265925479043776358951831268139671599255091299557987371823353136493838285048916652372292978278667500844842540864755128171509030744083452689474450612966784785279230550342432439061505115858568096865473018639624061728497646870833334807721844617440832915351921247345118337325590536847887086254509768864626134993738043888226309920446149047389664323808999354078456163621290617814627675936215973879474737575766682564244620432025221166233111122308415784941727492665200050699070779153225200274611070039968604029367347653117426425863630155018089243410947547033850067527611157331106629447047205642349573955433645951290024730981921877541570436217085474942521129507415125577195171484593230219654789485004330078832911633829463754143320748169354694355359346406546326640012794051603480632982107502236834249945686358176555450070325701158829540223350006675029410875040365801132177820985126086783030823285464137067145928645603409135937955731253613558565810807051767035969349220959535499121480793885938259634826525982481851232662141416313405177162550535769115020681832146318383209988368103619315534434020349423256840604787737139613994280260451029547334230473488021919429132686292330243297195589135583037330234552770770066960026277111352579148551454938181114351001834096679759796526396056320073316724776153471959866285696509147515120118659580632067488701581876057554270701190638433473299644580423086793766001412865433021279485121393448565943672721233885227666476859505045925937274051587957058971769595289539350684150941224595017458525205479375115369265661444975606265145080297419166208977168478991422330295895913340177385704080379314567019867936369417459096292058181344381356710512040957880528536072244857997487857254892973227857250747864879277236955177897935363253697140871490215807176025546494957569907888024911186964792242109817530389526963562149546833319637291836744785127138087223526026612855101337783102231164005860924594219769934176472919670490656330654372063004325325098003537001828549800674485597734528712130984075304965913624966616454903534300691375490649781904092328534938066677882871250046850518696248086578157128124247848865360901294018525012635953182780382784986911236488951662064012279686227694034368397570007080277445396885515671016192877185102233976721328212610235192137866482262510492969325153308055088340106260963969330383002906774435228003756648498798379337738919975168099258015696955300698880363234060716844226257452085069162764846542381122512613367948124705740087502843390759986062578246433551091554604165416935477876369345378622767185163981872282917959521508386313944881183163480692540106280285118666898018037463336984636805708110553190255042488131499892095843759474927643104014206964380890424107382963957404665874404692436440096268755288610645865974135297507377278809006574550104976872733480529056908368056452294051173178297941377424543034607331170615392709478294054323992574368844436988372243604054944987253302813792822173968197492941584411723979309788289917717025202953228359546647234187734204895126625276583663536586123753913450501480974765549240739710833145724517129638753962066846807073545803641585327396563624794921615833069016499032898619415541336217590727970322738512175351934026051814310277660256029349851033608632719125943832438770367921885778779701398053632589804816692544970984281547307279863643119449275704660673289296065525400443354993099804125465600277905013465612895158407460671522508783254707353231598869049525082643718130030228195860551336856621151718620569426000325174984222419843602638266299751678913364558026986460825722829946790214457840777350138523941359191146181372458905102339764742739243258175672952909178057792944560260100595289252965185375277052173800202168658916048722152905926839969233488630037331155653316752512874750544036075763102628739308320207937544670034418158175395516978444004209445310377025566928282561268520711903754166123554988894584308087805221067258264658256041934999386353553907507389120911468499137920617850310292163754540750334117407172495518887655064762789111298994587811907625488093747248793863054718684959139472980203962196134725553971023671224081729806947618861026825849681097173520042164877391722139761999552235965428533571243550758573057516214001902920066953198888863983383588272762893535530774667992128810063316068651252638286532604198395723823715898637461700104670878496379356975671156279472573138648681441197140952081064588361200784345346576819415297063433743635116158770968527295820265775058336674639455811893506857347420863771522752562945822529131177886456254447826280354874779118936568378615506065922982532948049352884791638943299073727523762702581155972112496266657959518914683682345697744584901099361349205578893758413247685545903187283339110890869769134911982377634862254386551952268235639306850797272248335412313598705542105560179795669642541216695600274994177574986034550136944631465703013730960110592067117568004378017000925387432154107914866981892726350508498911040250469361403057229734458552623238326141723780116618637589985199274499812895051739075458917693749938713771702562806056770278008423470161832572447669473077297764084405337737718351076676867765197509427375162291350230345112660285396598321458538335033587399144290103596847394005978183112317877310365378633048002895228350628320411357771111910790187443769090183794677416657005846386082103414660464088245179748811976750160978175890126921927941422680030726533829807205512191581330094442599606306590765279830123169001901451859327884900256511814494666239655756590882705230314047485379240877334396471315740628397157862086267510118927786042527487662222701092319452446964472256580695956675873863675505890797270989922704145044207105335042877382050908342912318398782461968538030087234836517017648803222582596694319242067237932926013880549035659836718831323823964542450185287432442693563044639373594355701747955752841081469704135307866295675121729853965721870099127823570824400217069648038874685173062321363320083264735211511295812920539628249980661383156005491425857523997837855352916534532914418364135884346122775502242063011021004025465127219675137503527455870698225423311907618457214371884189071583241996867492404535085573968850067324846819103567439583893492323219444171156798313777081149864551136856427209204471760590654052207038835657356498750812077007223277129395110630320312594215059550985183382140702395961713906717983713413918402343022267543577786601592428293963206214677125275030302953319545950905955997063645988690146292815725280649669998123993626914037091936144820599594252356440034469385886880375723635961599555566765011931517187147705360254378267706525180076041972467695636626891638220963513361975596851002613900523282572460741589291181852755936093634556945477605034017427213781672666809011572315305984043002470560767886081107560512276472186399520308988605069571788777502582101813471927126212923258626799599266496960684834241212053229486192397137881962985442750415330008641391959092373181447714722628498880165419936138728843201913668180301736948400494139751535265735428215117566805193741825667512987612289642793936727575527919856763206809302235337375633436800164939229801996814786350632321958099842194405284570004461652033897450203445301875513879479082686247426643157815851521957212402111483073190886559331431707453195738824535796009598552745792977469027615272556619636458102921792238079313103299970547032783325309964693823456678092582818773259460192960553732915261077928142995020247689400789778232750259041724753299018885174620220651168250584684202618542939701070470933687980177170501267439994328715521872132572504579866677044831819460228288935575361548468266041391560119407004756777311241424652563511783140218448576271677797663105226372657522081731853551983127001726416562767023469395714291236603234646548195441976997830405316499358120901018742647194168994357069494911215838779457073958892716012451373902138732293042003084198492423839733993205162762127902988737423701508952709690588363084665652155020833924016363392691973135646305720197062575018834778035875252431733032298655465938333640582341009914213991034867688323862014656671103846438605590710816516705905878103304952238587870040279807599346902615338778431952090541238877713264686709530638423414914011714320147433324896063320060923709006589736502755886282674360501920194673880820341998997601719729316863454386081513874911176662499923620325488322293766294959150399089472154497789647187320610193217719428978719480625940207544826698976234541491396312107923654867247477587793284190189589245917033000896287562049955734632349150569721702526091531960012121434858421182428128638499042832443254021152247534794995551379746552986139610465631993735347353270137555746464684949576904293434785383277271248956259953448764990377918128431893476516073286791054282592553103130661397478000218191885742251357432214734629789481692113350432702111102208317506618271777919706585647781072826302999125151906561912086630552191457476393219417870021264224790030085244365167032315465520807900008672220281050397886147116975913109595852857217402571932212805281903073947242783505816691277463916168560379065586224631270431751382095495256333357985412311754300620469618996121318552128402069435937980365092105211374036410498717082881144167821299117783607280070954943965898760738309973685903118374461703452644747714126747833802721196087420137872544290111360474127039529119498903652727864166846111265579820062393352373859437790272046489579480908900563839991425427046645505269882545921145514331914658311107161840085156001489480934091535194099993926551623246546614810323170659548841487180532443229085378516944744759399052696653000125600941776616072954320147637515122915654371465523329089810463628473752543783689837443635803761061619794958511461298243908754620511650033960324227088027030538839686824087448845647764613416161033387757918026026804200478280964696431257872542102883069415063583582871944505722319451847479695955213911715980151435241825673643850097364376591106567727112363728801896769466134796583395045873817839642527737428511933890474027749404782991215575324638935183287693796322158663534549415278155783330988822937967009830327923160299461760416433319511771647831534518200210541609088363466145302762464250164620285062481062655381331880827233180674035280270155831631472598359942925762969527033050659164722484261131580728950861886950629427221535189540584058065743722621948450354503401946878833026641681510215823445801170528050483594442550153979969724234901278831152656187893709982508698745579005507910371715804092665493910764862901693309590049827510664424056085017171343175815729083243818666625262196112722972638780817309631424090980873955638504324921834359962135761605865703297728923492266324355951556900922622756804619403231976873782439828921028751631416478093936414832596647324932402070578195575368270718469451514106106906671049599076598032695159505973659082798494154087640653528366018595512126930121673696312380836603667616665260961980188561281560300239024812763115411505279115309651265596845100439793422873718780033045343898884623916352016882994773383134587614567043914929478824574627907537857124673870495158843798849266613511434425221985153028013990801292462056377542725080915240726487436513797901111678462341147778683364631178001454559003694174192879269603539165572884800662062580694175077957322398693772897200813872552221020554386981616443347097406167324488366693201226815306054676254090971506263823482413385052339965349371465597585389656417555063690150932242417744545014946578101703079227645480766868201021735411807031052059205847030669782534485433799972308849935205513978923495128156662711331863287266760427231077781966993594866506614022531159371801815201814176415399954242481152498166854226031450419427466160402535060430183194975950441164469233865116106686993801877926459345960843681398102689153836082942155897659867092601119594871124823202785159007799698750566363844561727995329335406320793926054098185163118736417290717688678424277509248172995987807344452503401707260682452147004909648892342144397650480080367415069141365399071372442126546662729162155176658967454467298281618504046335933752361009781334419729998655530756087597148430711573822835809283392777731792896366026696284700566792674029577883035423453016732915812353210418901563141531365266956527471100194847338195198562993533569020801067727627667254240121007118929035584751167666794001767343845669577168623362484776675094268295417806070998210400618936584980040713260503863940130296329298002694895045793203708199781872267429673128510527697301351319628648879553670252863092506918834402644901738917810292742174865182541194820064197571805252558920210467974575362633022330806173982570661667675260118579627937117386598995832316054269578564144960988913398439584533983325352329781507575623573658860966150349230823344399049065278594809312516035723371848129626960728216819494042815366497038488611107908750885750305449999680690730857793506248072539137544158150382768515627389707478493012870993024689807432727533697733056095750748402961941124101429374111899288259802289854260543863570978049799723709983679459220979564192022686112366162273526908443711956747762699028327050630584850828615224193596897497136761701009840562260742590104330541875286016536474035887088364758722958534426060001215628095551969980197649612002590238213014259000982569673229531874282231902177505234408060653041410368628498660829119705027064150009906348924031417191055670574632329890268433241392820511110033461777702053049976846468536177212983047551328226253162626609104925392131370562071856940339751216852323440274352681514889195558236775840160576177719765165807514432420357111918227804932265095465455722723772595625808247118823908679816138085353537583344982069120031679763956230028679608179594752683225746616610133180462936270535088007756307418306702389254898717796993567775057872506239050198062575889070011143098980412254063074334420757496526659135395620132988611853916940698901349731886977082464410505766432040033887070151647851210820220657008853754651961294779777691829597298731830231934698669966295647713002861865099300524959915965833957974046774198697187981407313638778488475629647001914798508214188418353264944477374173018175354169060480865820792433778458859783969104211932479352988530606227679723316565035674201758110662525734301497925045725335735778828690827842690579413947319524510864791972250711218453168867755158444264652619522413987640762224906971847616923908352788537140815196393380297184052437470819117026746675574726584997463277499114517227226352466537741338975804542351760457647239581821221319497228429968970370160660360396768145479932740112373260990972068855881111682842389248455464765416609665950622299579207218159229036253789169855035877758835649269765473817141444552826162803153786723835160152959632965887029451992011367637016610715530442305547207141211703604352166805264321935443253646375698873668844158427580338017535415985661718468063784143663827563863187827536595220746372198331552348944692532273586221693196288432926975352471614691918931839139892175136114575394295658656647926584307348126202122497625430797119698199231487652685327552945933610998071997174318005918567267921101052543977321468968134668876169028167607439442680124488554359678471506600660919044949414690291045501722630112557780442369507399142992001545678375245594394878862571966291973060357093546919943832548047975020989982127392357563662999311415801699747125451649875984966032189902529120559910309669636135404620796954711683484113603836061363984861963128674200639893303877172225079906923632554367972781600509551194685646925760903996109140808487573991170446250387703464592677834087190039790209700956264950167199240675705434509282323277344604215650725182921353645808473850463604045479135498784537566330058180345294932139845032716280762901549745566134681922089003685669761113528907819980443209043603191266700940228379502433848831575063007193246785886249668189203245289181109029311517148531349668648496125795040632240057123764994370448227764673171335236565203555198416206516149191485367966795256003313744253030495856888899243060800896699872371284384576927055054595152467224175805195034363994410042430995628755258206493097505975108092889361410848766174263805149564262677753969257802546926008050840730526875635461209200786302838619620264395438015218207034602423073598767847865333434973749989458345734465682473237537048473847120106432355898496241386482158914648071298036267426585762158747183353938044562723673029374196775552840854578879278819626436513901795781578035514601735869172944232560862782766713112867130277431999525890538919766361601310354826640420246966991341799480278000313732106580271716050629871833276001346940924354823351862357064316081564671102279232480451517260610199761720560930144063674699788116225518389987437573141317458204214860057779758940005957820498402029943738312721875408095741719623920125043769133338004897171132476287601577201773405007988643811697024176703787177505568333962556374378086321730272571636903819320503540328051615109513397038406829116327698650595302039184855673253250038290268177451271519400525119340410196843239160470278770724459066619119031749685377622965199963159549396693758866498357267743703109067940802130866613099820392015436708634534161222455363195777490777517782405529450946744039561347445573952193308153169389507483754376964018715554322941060224990009271901114893557550800480490293080778404926171891475876963334332849521880797469593184865403133519713183102071809837636705111028260383066097220598062744719282106632826385363370447984079457609693871114037096859078477244320145421397727754038124054460098374383561505982829823622578006540398533946863008196644962814603416232727532733685232291773522470120535953248756096073138259266891836749595496094523308404673312176703749918612267998666457710950263421139617093175582210151719827931302909357970354552113318468356998206808066188831805541888493433273578327382690575959108729309959839019733603075466065202513025797065093860265302516311931307528086431907864648043791956915473462286602441914767372589284598345898620720499217353042784312432682456616460968681426862838797188649794404674327370547333256184309686211256404488173270602601702140032645749052405625905176453560405570646868012974893363888417786661505123316937297295482238160332861920977716227541224952564825748257842769486856686705782705220126098761648329068641851594837823290133686331694747252974202068087122514045554118977423336224361833461746825636598780076889545753187377112501987774543298802569273486264760234452635339462747641656806263669311413614840979428686786571103240824505698930861853680724863485994485350297183325823905622092263133294708493343697274542910936226548178136873213663098220941982575044241895574478336574026938961672961109313838221069604884422409417268408280274520820628534165500001544962763597120651959856136024790699017284819265442842182992004643847447262271267412735833788597958336046040701012142668613806435350830654045025782397951558967076662413462623887070426394745700388743026016983036041304153671843510954174870003550695165356431237761362466937975378270382941404363078956224527774450153454348646791093447377410132772932764078800986135456241758129314786082929396627540566162047549198724614475170408098055736999349020502808607869885062541084808033457012460097816222762338301216260420469759681061203905663990080007815978657116370330641867773735343024318668879929011314825515107426616075500333689231671651155411171773890662427981611602878621725621301958195942990108377005472688348127982920045263113193162709437837603423781688943707656272765199862954782735444461758609302160822561487647866940762414898233117644776042993812354910680751199742465801409859241261032277408309328946804571342697942068602315689735587355434992663083369849132294755541126967629341340279246233468867805150828526581802704473896977200472678077733040936284117683015599241842726708979359806372065926680703854180719898171671790152743019536992457599313366388988247606307836800138061920955837368468243653228524204902908354032110892462890661748905940408045886724744064842691618474441652226115029838783959871360251074169420872322077377339843117118594951351668678019882017436283057331588137303432633212647537097961213214041135692024736370994866793909143908393186450357713965476998368688526378715127538762632640650741085117179978658803242690501397602887516546000718599633032171014481838556892907788076756948473026740893141852844452248306324589578838954979449057409437093148896829653001315771552870522291519051093700402892475512949443115501443204868319787591801674282007533566711106674503045941751013707390384515472209214691187497721153792081319105374375315454340386585663378640646793448131249025603316956933349667896374345736738822477387898644368582807376806243010172100188183926637624736379384963420051834693542692752230615414460083642932957063152914874310014040436075333614917154225148704217136000286780692230065707815634782879265069179687187303952212579529655491871802599229620297650386188853041077372890265342814210586206998760968246543106089915008400768638551522498922358861462287967879891598797331029756376926240216828377737311289929889302766246751286791886975324684357026346441534678724773547602500419015887173644421401109862603198832381344162294243417505104115212971624077485589577488400225383977765057739879878704797715660169927169091438316979891355267317503285269394261454017068621599098882111724656475353991218973421788011596903601649631976184394970519810158848729186867518784044607073788523113610482317659787178855497764314763334042639322927561375616931315844445274566880038313672445393874188350570185968538503489720272042532495632047944819930816505331131195335733757671203981891834911878463724014679078336876714982379066468988314670385987897251175815148020361986261581401660793101570994602888171859468316679825010443670134914323838612530162780447329723277994144978855751144149266804065986248259218350670859554447956020034349357432383638797700359920254383186000487842091806146821153782882902355858973323556413136341588942578914046843422022531529018153210317286459431669142898705166994187853552623886222601328705079522640471212354778661847400641544572638761027630656225045583699062599886590124345570951024381107112667470354661690686301973385199452058303607910278032866761649088178375686814278660102242242069028722979016070766545663146092418971509210285434373789997838946294484222563696062068337437083746649907705185042164632746167517325048905693428004383164151494877934658138163670609041301612628248708307016575763007746082527577943740493599461733641052127080420192923203083848470894730121831541170315925796174081011848683409184242642562743368742995407502676460688476753359592511887174623705580827218270125064727363756017203735422703442219828746053528094816665985657504858243309106821915192452605772207017324051463858574676950230297126586962740277993434837257419819740054963977078857968748007858617574215388717528502112393523650989706268041887908256017741192425600730565092606152388182216115679317795619657379550717775541504973869193624102852758430924385458989001108258442897649407910371691046300284227430779310449873035535594664655861680229465246027743300689556065126692877284381072080918839380613832360209478122449798774300041035912349341555448370409756707565119721841487798600606482441280058817204599939292307059649768440148678029710663569029119069754823851328081805243764535966722581200193405030011231187086040002442765739735130416850508986097296975198320980666736505236892613882123614958168024548756942058412480474189495727748131050872818757249670820207304186071088253194754938924173697044917256933542156723472364995927196157496101689841150179803274813515775219021532954761239028468505681949701943442736225131179071890674196952716654133382439123457250409180984614503362716375112248131980447213296793853275663638803213952658686120427746938295858691122364372164396951607627033301716999282616384499528007090917703331765998540015606741619830215116754223327396525537166505122125778392377771665609642672579824331028111865416677629469034897351549802693818110689242312708953470965861460130612117908099905910973159611083607256297735882463945824728116595354448230031963952270147308395444917872522033989859544637348309876492158673864389507463366343449131173947730965406993528935416409201934317959312805395622599707383957319302803580232485468625084395068911933311934235281588046200328662790634257702123371123339982227032693186513879420239568774736331757083414016000557300889074902518484504605372605879042838045649983668829573564035944474237568152723512808543015018137439018525521369877765758053422425210256262106123524032130434605451171446397907600952468354800432555196838529442188088879991568613011033273926182399270012142098752408118063498996728423907332839028677893153842471291104807097938202391935812399222098606155589184079780902958050615675449879780217993680897597793684747204937823971642542977257338974955550624399000047636935565273780076881624119920947330217826415550330374942446619267485816799204219398366676040093371524763731837150634890397643482081359850039040231841069390767980157052984521013719428946879968640792807056914938536223306726042495456860022911311249644573451062827382029951179773061647171353730182303225322029517851515471736076315938784204107857738485656483261612161283790259399756246422532042560539903562756128303099769510317226090945778442677909440225620121343190915762869008095404338808676137645201340631466148675539337393669537394735709174389737822937365390225847927933613302471035591290941186380358210684756907063541006178801010737579148711495431282056183526620361009504018324954367071199856709180523403640134146003678470611925879309721053957400747391237440728635361263999451574930088291175443665295369589635087946720368195870637714583350507286698617143108922234480546871522410367019628476140523539289882022599926899561362234331310791139512968762656892286933743014905856934510555974278272116527463832824552796768354284301497173927164740447600344901286615866910391265937949008885650344642919152466479466332145560272710243999003076120558678601911440451451955963553805359881982540942287790197116742855557483117300450492133312807242461469575119534306355622358018047625468839119752583691183627924505167585249928636665750017305623161676656070953359484706829703414485574183805946180902366074730325103342932012588540015338228889697651194436671512134960214047618678782194733675202238255096087998802609334150494680744145481306960006039216357341194496561258228865175606667010184685796038654617738865656401737115416761123703338124947733893399008879030572351258258550523032473961517309652083579761231429020931472452163753007303032052685015675482354847134103578648005976825661933194817654751976026317113175070673213772948124862556867965805151374801274242628137076209257828979383351325940193261429135088373789859364476663395557846960491868228218328843802165331114184105948385749567005493452954648536772615528427847290809879973667641570719962922406167769863916384952747003073609764165791650610644128661889212906992860790507897696699445586649542001107057332874027643038264732835143051590355597021401734579620735680048863760189255080100735757227383037693246535621900113302820784732868161299428667074448094982601610194303781411202049283226699596767965835543253888088548253595563559156757105067912339051722696238296354123229743181912509183349260481747647573503447284474243287927563091288447165785715116667336746928130200848586273343492348051254184179612941337192794232467383005778603527200234544266706268102195384522825332551720721682640216519143344369164176820842814841877027685038845421806933948244327516859403482681972910527419659683078113160550362375298634100478834200604368407957232310569590185297431912294716169256579726233662521469131396648442121162415913587044188681635470627076788845848741733150704331347693847107801183215057719489163236832553494160354610924223080906356989830809393465438052813413647104485915593743279978156406110878477309926902265117336122020469988577983435290163363197894528951462169201626718102392953949975858584835314829980794421119629641159900110493226717644546378761641815741479064609314554675598189622619079602386516460360083398765501896715682305532860334995718799566565155110459280153948682396543303138852421138291976035503027111057915428177112132735193750566288367472276869911454584055224787383753307771482055627633160703652412935071269308087188797613106557687471288091513697421644471682916657909860663206853406064624765545807506844476898506932499140663056129824335317512606682536472123501787796020405450392078141092652122987335879381365508418164726214040551891149202837359314243735003268247602273937711379011664778474209956513122905690983719547552553866643377128407247925867004758428457872512149385879610130044915992506547536088504515158842052479413028021189718559992372718738164658335225527973934328305924525789668477199743359825543191094662021985290293277394437621648522332083624088019797147436621235652961357055966586817112031261311681741744148013016604649992014912808176354226699403146424789096265457707682203539760873100893928640121562166327874828060181553096982824567725555067845590877016417919406943110908279292711455432546048244378283833197772707623023170071526961772268806563995845292893918314086189561331358786073176849206458002518663589484077323241897076969332202650890707583115671557685501855994925322463388130279163239555239985803769356657706887614145507158970021511648271767107344499032985355895368024914600465747548091411666248802410105041693104955509191015691173132183344214930419248906011400005887092070143484086304453375526602628156561150989367673236794718229234483550106629180010942435467345172814119171620058067449769834699485173696719536583703348390793988780977824430658658882545425344783193275401388413846611955736893073914353744473426678384963478589804615813778706103844832688628415386819762883549450016705131493688363781800342066414538420283450487065526194593716160790041443393008293847105735256613825460496703412325118661925357485200621529127736800826149875979284723827459815674747489428205840638928298784646327326857284874974612565216989324633892305770286503832452981604744046111145012493774131303437295831012009340182048723731973178779082795614502178303401835148479359941635177846014813365289311044540071568265163436227916314545310091629881406046178399979524661590003281969572133027598003790008813891424292357169689761877234795774661013376305926346835090528074054626236232781740060612133442841102151526612263034872230279472834851654606311434602207716334976836693613855615893053883434328382834532394362039654843320760918486499670245573779397905613460630651027127851309925436062265617954252225482855809102959781886630396977874315683945552509138646494628384715946587301611805619620187764332262025189616313816179355031551461764723481168619620115201050504602357210600331887036655985147103836732099208821308166001312116613349941344493385062736827016258403048513759395018007931132821594586173918668557972291289521087274235025833642126421860260562691586941017764270818820221762524836949518538031886021745864606250164978420892407275802654673330024356759966792957633062939419717939498325941597530537832550907912562730560156009980762780709316182322378041288962619375691116177969122024730532537879293178022162735315937917582629400006071400903753485169340894240807229364987981733989225795775030329001621230637348629306800526548021833125061492505251722928608906759072025386722590489820152007014110603975904289619756902585739589037713907479798900627787679935386153908543682532781606176101683676944742026520940635605312614060179218063687592756001584067713561710457644710491550258356613880634997191117127816809094124845494149789400247553881486141270062637340236561064071063406764367170274782721058755340893983996668805624808600170696433676838213392103858198454808106973422905381848962136951265849982774727639191742718183725802064341766190435727141850651432679556937273268575992963684197444200521897086841189553672599125507268768353559030793458947087171634358396447145680905339837348290492883372936025373345037905042121153953010503004014409777909541824052315507080262953712472179772606987183308383560442257120009170851213364074351332437706318208528914920734586611886139814765012904963303579044089749163094179652091698249076747157464028308687863332888185803019582948998788569122271064308153411073325553289011001109545606185879943029983824897425870580808868634530878415742506953896882065049444713481612693029141170315196891108114344791127014567679747455308830718525424657377899079692723032343897563269434424127696000395434927390160733578378183867988763701369138413989315139980496129367039309831733639388515655825367474763271919618600137345035114921752284293056397262697927387414792343460201855543902033482022033604882860525670262104350265340195357298919839818427319605270441870223468820958309752457311716914555128230376933838525967266206179743229988539944991965418091629588068915949082244349069242123064154928604104143193006425490571889886611532839268317030155466992766862337874811030157628919200173084435939885663942933251091403877206109501048098118476278901877491544325244551628020033890002299878904263941626392916150648256873740259407414674719116694727863544749143322853509952257171729244455495686145444226544069715898992079421254227064032185613344222980011447200077584607186908006339153001806526961623590671422184039929876846372227137803076458808106861837936889211417552974287141832454160515260311432294878419557252858839788602476449737669989712866819483225254509446787847598219895844386565232993768978019159514009917585933524738552991982357605694411606407284329674007246985224524018559100566946898270254693178644991517289642509599490554983573831538683842226292873751154870509419059302321931552069661044231172466230026514192350717164917022128449725553713082064777307045395967556016030058352827863057314914677041945093765798493686674134470716900041566611709150781895958568434173985454690064097993221083359121469155043225623256441160038010419351920194559727388563524565957226608718173847439323300670971683379604562863809835241664825082293603911343854838167369127908119797156581738066575864899094035415504878797365701557497339490001256866410049659825756115007747617299109601189416991029231315889213986751575580670962173227874783255839859135723380851991926679876145751559192082497589522656956526201938932354370856081665761600221687005603229419131173867582707902657931648806088479405802586386351369390546268247567508666939530086022726381976391724715352351195947091107704474550123862405698978197964174203271789344631017152845420151557176148274118821735856396751523975954577567295562348336087441802876473854176524416018201976421627429976795778433245992632847335136190713511039896619218456436974266014253836311338341692407948876320599532815608508724227411773732765560779263793109581867897991989984454605977063737920797360281263658890740917312560196291504585188347757864240230655708859301396175110073834355498408581440872247947886066068038649839104928428210756150994482575452778599604587418794656050885461891861992965356282758434784739024169300588684760420859249175446606167506046460871993459182201802688791143236355229328488751091701537141083269193573774261620504172273580076684810657628521233646102747120475112121364233196605409729847777632092477159088510854798004940157926439272840327211724455171671410447718483744400358446208427363333894084592915584504134379267283751771278904601857285095831026629713627193813351465671982524128008108780860740974802492793371773736617229195014242707155116875017609507279842283319737644712654762487346453415106111417510266344491632487486037939347808631917168320414137107474880933116873056635970050851289106479114316288441468935524785995502893513088316260048173401598407545762552923913483714000396894863725693585578223902882066390416437322910857401628040616680876569125994430859957657827921885635092810658116039177189189665033670144418560721894512439204735108340232441815964344747108038410307802693277181717853350464315334074835585943646321988358428405956906605987899144971568285120508810946370653119842161668634962055948110724272997068097895813690550187018101857811523561842637143811968156625908679028336657302964975476817182526112869006629781110080637640529988741248288623181722982364378247212650446050107796850185071748056875770245111560811474392073759886822139249540843989807914497819389373162752084200379920549994069816731644299314489425852194645025681289037775893542071026384396179657624646666489147471308073087133306531703486688182029733744149044898084746077968894880839011782782115791008912360582012939001124145641435623341225417590173204383241346540990611832372816282377700766450890493660422778758134274436377192428817099470762856961612291760793192009223843308892457599618284104562052841362307439558300847433493756978676998003973678001049400605314286607441331485817334106057680148550682517856329320031743336249857962996395623028637719962305829160364915145337650833360662037190472652339574744796907154837224065719154150636433056418147626478151895920744483061074464109384919818072771836318783055523300557023171125415362792850402397862991689444729759199240419587326439265425253887827643786006514535261755860570328329505276319394980905732299809623404131776567315034849646647991811010299731765424529988407059409079275431825933096094066955255443799270976812628525316656954296800983565520511380752809376975985180321736613147628331933782071122154556203576499588971099720731415361719125211639660536671822772092455289741982873453478387645787427278411477042059025926269036820781472047207283190645965068800286272863592956963682761307235235533422971785380242039740912312637720853113651117163465431991753548014647952407478720495507779764838147210626255736383930802553858459345376958387850612442838628911815871358379770498245823394750526078220294365383086527728408779355181532719556958749911895329445645187069462913858890506819717589824586588298845353320627164598300600108438708228395068481302368316013748162327433395287635544167281949309811313093337161057248055883044224451218499280935614290555938138223008077652277571985881457837818610201373537110176493456330495619379022446934130389545719273228796474028505545322680286641747046830659088069297910390564082111812409257801395834138639909668302813551283099462941607352444761268705141347423853094324138276831382069375073026935758089583145505003545046635923565619639396838632213633781183724257433788349155011456716476700370080144645535602003946649296314973390083576046548633204896086709815972576016373445704279927428853627689668843428067964134752196404506876040361136511735045934467014737183353306443649615685956451685301565628397694357436919803672445852993881318989903925642338080510868350587281352429353907428400560237240531950670441715459934405912952874246243627239714977283787403263654862941492284678255906008438474660302758904266248501708602670882249653677638285808964184607497652507512061827262482273652123804242404721232292350690538139031504777151080751203046818859043219474607627735082343330609111925844923036075292585736842698297746650804017655800388270452669326859075729154941459168287909394156335837832145779450904159156710392268020117997698527839364242572210154879775413156075438261976539641584421892050418625786352132719501651792416691056627234787449059529365054911776553562960556802967367195611586374497996557658302082990276718292359636517998648530994490126236029639441995068806121353097454022311012972421879578467203444158641481156444457176706567148312254392017078853861402073899320909219620510529664101324568913670640999841030839552430748865340276480365498639154948812160432284933844100001672844192952093066706345350950133651473662822805711518836560977113339019262753817686551992080342744188596343120885418732865266296528114122924878245651884437499745641646537461395738603120243159845601564788332285608992764791128326162884372000538758674844497646919145192837527759473262497276362135537008635451853894264461876486222509042980502532420468339556520944996682908119407740195126198961511038383611802065928200420252829276901220005980235370086629019557694189797196218909628058364268757148336486196180810601647060581152200846853345230732338448293075617361957658198625464697559747484495383035826494791342477842155465628678910265719402797781871705717438170007550533245873261101256225861653889938800360814764171313958299534523290948321440993629494314181374746328308120583502462729088864893522259295709169629799429371917361060229118410546025506339501609772676670950880810920647048214650823351054121954135326187761800933547203069160597242360218278479990783670136804496342850574147293732689396241571819091733790787913008176791251992587498505628532522479418032379525472807291596442556303201730411610487968681041842980917154709560853057107161742990216259659136143018141173869966794633172525140103713102837830478660527721707677052318840070234436011795489661954985695180613059097412603772346561561861364437541760125731176794431959420969739266376436416802746593600239643792783205509567938704324601665626928543848384840934295201211139608157638575884342249537043138058009080190127944415197875276713814914621557951061306208403951888929016626951424783797428889896697705453352602798392837201199551094807734575249717973340654835849137147271385145414841408281718441085520458402874988470585586863008299819559868149848843939807952352253206635244502685323955271262753177809054349639482202944164169604568808240837030532432633427475701231843609815431547513739325833668590960411965520676217126663848792822766892845379761205364906208811194084955250267693271385341757781307288729753477118285868182206645181232142944826801506100604884116533654179088590774678149326534811724419958989659691784668387366881227150798071111518541978414576239200680372076428359005542418033926857637738765995089850037378719952715791356865685954623647267784372781463115991751487545298127776080025231121480826377478743927647198818319540789163558622633438352869476404878049584232988149888413988521958615047935487027547408239230486695063791700945734696406761757830141346051294057304828502949903185772096597132520353115861890101273821382960127705351791117580034037031318029031347712362532958049999364319887624324965803346969878715863516760877981851681946935826451818313564310068810822772677009759096904227220295413552807407390246569212997722439269824914561965683018913891181431495422787127620948378676212393226724852346564949997667985756814325204288638624875255548335428455544004544230435553988140583661458474274617845040128836065491770167792430739913791612748154522239456579277785359859570707719561662097771504430726344858251349964356009704272456499540714208605365844465063009720546999869237311319678483160106901654203084123083190644854525569884217062061627755052569758354408849465936817363470485954849069105036335335902293639431066807943844249874003219340312115326235975529288987034741590303265615375635009174186909796166080927230962590809810829564096328134153440452904398622389446653683533567513469725264496603391458038913709734831210382415582694773033069570691998077966918072458501836227969018876584265941635733415759219855533442627997078203211820358161188341349431971745738480446608588933847416021725954350547795573913029485180761582962758360197962171258852665475635726003099857322429915916968645256006135109620262280447447885151022800992585420144265500097035430621468458078465110966749423693435394259170607207727930439154690525151035194724566936987360821925080783611140493878115626402969836354880205057700806941632265060564440967098461209264260353489986257772409767454857963147290276900865303210509304699820003201587434252160268117639795566685250821328468885489006772878679169910991322912823187345411445640698289571876875075563189017012145928058609966952296614961633255451355583001426276109145365104603288168913497237498221711193050266689797759468729251755389792994782063685274337834259917870828176454663552351987586560940292766454162066586088952258375831303554466896998704004702523449748849685815161726241346511454239457342509651640832101106176695627819284256683825889489585542554950888154115831868310603488181661575918440702717692874850151679079452375366478468917880982474235251773940288439945431589682839860208224700755512768446630114886328283206959064868213723613600434690140147347074007943402284828934008255786141641748034111046497384575340418337959073715579925798894567995996693082307705216346233495833417802843964630483211014752673395087213877669604837797480974130896122660172561410586093574508966453732738722795431002565915547873615766442014647547336474244684703405165254943622155963509981439647219823916242467264317462775094601908265116918006985511468979316608820330907029645941356189572486923395293475526867455793537272711547757972575620515313694473277205556221777470513536577589337439261659119649001061635957406391622808586934959417187714982500521222829899631585959204478248667398137945816884126723102325723862125698014014108839644509012530049549552302059850177005187202423003596056434221635797764374764207061580262244995331241033379327562649410432956456568548553504738128825784924127097341480307387368572007128655662367428414771340125321225695150061070333209442522316404392469323349482971578000508265981364976623535879305841760616393198355236233786444454987739502835240458973009958379237700237157468197539252636681273689637000293825178250290086239821245525774778306344182349763155110028820581249985389882830453725693175287614853793811804113464939109020130500567474629136415657107671987748408426358810451618942459011078739763305680261192792861855598681215659763888679168767511902637380472467116607112110007153067066102072179443216030823925514282771285474609320879379503958397703105756374892990357912942614340933371817469172305810993609273963176221513628721146516139611359042364387657174950466721905866142668510244838744195586386086729679921008404046129480825645535104189354380069670780294938598130053740612154060143583529905592480236899602502673298227323410797502738491128405091340051159598094091516731063777258110317669172166225381139094857523744318804532850484926220313724576163678510971418024564619142904696451357640932007203513343439282726466741122024180168262115965202491624041452007473496897398891064023145291445187896027345024061606370184194946631715849390941437762115651544133209714316095318359599435251383638791787138440550450327314471426747227853095636435290968940209246616183288303790080291392171993259355524787699705958452378864556348325214311011032563155403151650023594775059727717169367959400005713148798452075570086458559828400367323431833543173304117199370484157538939772814261303324180547986251130343765752721889626789987173381681354437104147611506046400088708193152539993629997513886424785937305872299494721550848296029136453723176068367545616071181814418300956035041330342598427526375340727896391211932155847999282117916577389838464191379547429093930430494770565156352937166974259300823055799917244912782565493034217499088304844597461825898476057736401953527268583133610543204497224285434308814844261730806575444338639660854547937983429771675844172294258587449561111649509402179413393537752123508875759614961386725830630856222910363606942924889223165106141883918073593133287468627698592838565218355499131346160807334339957393132142387529778533211907774173145158952811913613894920448748594656575813819755750078459483173869744871200388557705315568747209698556650150895187551051637090509940376828721168078466374046357076022320284722083965825157996160024597016180873258994030467874994267915713879876421046151740404191727833227872254954328223610903199126282569226772940587697051049556822500843777027582487592722806560778155570663012279055896433156601503129702886476087079574824474193528765635868530052977468226641680654691300837931926794081869010643674143436883141865052966053714286517103446313643375525035249006217563785996030055222544560436563651702068513599317613082741376356455106833199400435314585394677324749651891666305698786075169481394700365442009835419413166966548339162437818091408010479345615214236978479852785275650507445644432081019923235886456121037193470152164648634241342206532219726350935848041753278473219830716962846234239441436311296991969759427824054515198998540312056023437040598790959252118705211624743619776549457014369215696423815897246168858447316366616176791468086022207145374184155420878983690428252406401085081068398800279329902946895682482200887292854667127822406942338931715339689400195044661461984429174286349519103812984733744368602036419872880295020697097003030130257991812577138300877913708219376619333272703061703177570715409421583202730924790738218620280933477325592978782648123380824111777849023253522407597464769098321590339582554237972948841043101660250273351808965994018830299640537831943598244720346206967237873735112822420159992615405924633811715128037850683927558786103987559097416119844347237204739250220741302340902600188530530529262838774984677929497181010190517711769546739232749343492891609833163058161021289673089815268581231730096115494336107326927361698302312838933290373242433417160289750878719261980124076239051641808444743697380733812929493018235182446496669272502760615783667380624411462988010342969653658285351002854433841583385910748857504258112927866625713536002858136501275740305907129265194502396441985747194564222683202390075608469710265769923319934186682050735199295964975186145415964082383594057876211961861593959851612866009339195288036321197349074379909331212104847208573089325354705107948034699722759915180090073622770435129596839960406467838302748178068813262763345311444344639862457074434671988577998637225550507821563835522712143049314781419146099856112085059323059405168181724633092503789314806512549632068656753010443475827276237416916688556312811744509517808604637031262270300096402595824662473367928327134284089209664013121408973054492500492045752719630879854330552300048114499924772853954850208493272018017062991654223912913882055472428930131195433246735631435603908819144459339205968811304444904915033407024939438737272423319971276247440877736389016495539153622319354337859068127640243288539266721599070749126498410544920520467452249449797691559170697288001672953340084604511754864913722878082685402739088251867711282081362072502861618925354336175046480278195733088729978547728845881003223439584927818891256108302187375184012846462968642263489209280204069992237067309617479813562087357286764082806140491822528571987667991710870233318459911076528157971715948508874789386459056577436875224037812976128431174625265942811012655004527301366228297421905777097996526010074442937152280225564442056794383744857567276670730985646956559899055045802337955018615189382801162693265683288335121819169142454199182016677580756174563002997961006079511661969311259174320544073968562016360821436903341252784548033386641169428236926621969503107945209504764679941890812201519434629017086090918017614255577704123505598528877256315995316507361646143380887145446027390735441342826277914646205109933345782393310776154125204300976395277534341673610107657721818192347275992460932374349132495627445471673211900919751028855985952339719970444979199528818401508408792895246138150419989682219618617030843472230947425934162825301629085907506122935125541036631918686322357316998319904323738331445693210430303692455985143826186000896491178446848510238331340945281712329249708530576141188463376718704319386481204296704739153403808552176419529184456786846945131006321306855015618608844332540934997904454008605973021889597226419180863270455818793214692474800496691893378623889333283862530014936677657091312382092116551502320222185516158380075842582460181186796228473163186528001326157855164868188932321750419920773158626410317179740638107927069433084925127382655673491107320832295552999245898459757017733461957875257967219053355550190452083221380747335482152930640368638183345267914977269921355405356616049201937683374719030528072964842196944862162940187014469610570964565026922754800964364330274036504998148327721766890873574164344578314913948329372461994359783894352261199407698771496123657113701846076155620168270088063394411575507878382382821964598467937341689961169855815040510847523379948113966037860338866826933166483112561190138795720883786106670692147168380175378454902749917954376474732197495131030977796481205823185940553918382248748483409889052853391606634936961567866910193823387886192208591953662372647989036853777491178631492059317139210772191278021006466629368799120195754051252581951392772308803932379222734373607807258473636629365138652137294479417213163453163255884951036411322624382669596130194894482846969167869164701188410251599540229434512460718985112475243467100878637149072125004698966315466090022065062649710052245869013983534903444160805155063808905760635268770808730624325778655405581816132982461636199507206837208850175355173224851564632307928298944335164191578594136204233315589431817502932171498606584611741023094122655258459899975641063366751219535209573083385338947361969825465582244413280854624108006147617510180250611414015059358110652126234928685710040957363040099928336128988707677337529912769250847391093915038443823051081099601476988703780308055645738428463590714208759439382545828720923874248509789013084022761530061576699930200406146228507952557036523274157979460535606518771045300142598803717665691763628497949618148750643911798000534745890421452263000377358547361741235214594056235358217791942029052235796598717984348767940503591921555135879273675469988747231848523085858853372650153544104467890043969394809916037503999710970792854335492264710669566885550238299085530546936279553388452816218565793582203833215463988081405845346135361929043884572138471896520174417257621290939427658071557160352931744718514104653601396689498875081180703431479408255365419033976251403829505307318891149623021458501151787912657333564163416454086189380707727668668463402388365677756886378489297979619849713089178169836994548093966033407032772429878234846413078292750189999458135248597744669636558885245739950764471583376801605823804522035938894907270063164938670211423465523689546066457895122444843188570676550554347747106468908625328716904146652602505640271819407596089515408572971604145774665503469308761007066449827266122983008293719576098789558681577777444847266201892696489926186659230803696712628673113339767093314402729540509946519715177725232893309158789481756517485230979231832275051958298059133545902974796331421021547250291134544799680810473486851084247326331826317375657418258679020113276192947907806297238627860761117633630786568158257471463742819690448531925104394734031634556809458238433533533052100695228376990902736587307967453913232809019041380648752442071141733520140528662865698525024808692926458190742164853575137583086716787940382145568607060714441922678902170733935984372369607153153417292966466686591524444604468083300476016755444171977271093858291194673993404691049609857311801449781197136314321682669786203011899879089819062694385685770288754587265799347089780627886865812787670862857368468357941260177519728102188805736543304486773491493129250363388504025444267679043526306203543428873274659409907833443756776403955253782866628782737073419584458803592251859315958891008008676033039027651130605383907388629081887605118203105239228983011439632737675371521664978782107040460956818890979796288330330833091996594903356530858333008922725793094304888166903092277665659873406663698772456973702410034310699257432880652114152258888492886751746986297277901908790781081385993203841477142616449778853206091146103210982474259093459124104536674231869059974097512878084402006630306825729436163288666233956481879416045389787093014095760227710722675081565611466746957758624630976461470044956504968737136418762764937063198519952767580384012894334320426992529931755146223835909361668943906668170969523718358553990245838075761878181197311318172289361250830036534915684076499780742433765166803759417848998092912834540605861969925681358196106654556271445052320940220442993311005988781832586373325079402588246092293259978765779750716941938552720252571635576239699387544239914521413361811119134073157642468383737211286759228697829412168713086166155245330246372305901576528388690408618481793234381333291269145933016231593701498591606185314094572861307203200054123896975764724812633815809061210611425846363125044503815740955003116099958336829391975743065263158995477822911064061600270350892479473903755235148435146441539610500096083952500819192022020497081878724123647547956987574059473345657193363401086021544262193383948910474458246974402828284584315116778457109150648565025125594967975591679505823026404743444598752784573827870906111837810193738769872609233261153930570350374415436376656225321940086302760156962828333586392091329843645652257027063640628868057757220025403916408851234484877682525635049997934905666743745651888596781451951645857818373098907861551782733339880777773514929036771692044333020002285538880181196555103494781337198587074120133533697989947156695381509051719769275961171837298603873927463238835608389505788180038158554784214044471190992340223137467849812099438732490199259565104467006579390343713304012482672334571257669279247171141485687862140307468626653451052900694235438761384857728907104943854548736113672630088344242630064251852340769577929764472187371277176481988172645941705723220563957965302643833749004187942538369395207314241249458760912247461483381551459775892554235520507677755974496416155415862972354420935113643531136522171700935284812836990240163897350929947742140026625730382660265452736620592240903226075304327972461933865370322180591607907449444276464401925369512011435103480774697684275363372396221962479875884763094737799718342930606943853052810360331757990628965219279804378452635075090954470429427264937455309625366180349728852275144081095926702859439210184876416841330914778561955041902091673385636497842839126571474464566528506744326593113206106527136265128070531141255907596797235779912591860611857329313172311888179989425794789750990120583117790929628965578538018468447100214299690308157114153845927869210089950499113652824508484552714200328668788390842250227702302524631629832464120008055355289901903461991547576132360371673400613226863515579222517758955792423664083172139471952931516774150382331137093083193915001576947799772349683011474351612186801962011124812167444651866986462904370786968537487831833464318606998249626072018827539299915866196008019099659342839300380582733941996459299163220842003486858067049072608392879258984203501325099735342724026161544179849882064792008955936544504021327301914842811750775578288329232619409288859664826877380825233392634890061836378739458419966585720593145918667859834883814322865052775334670234535870346426806691309880817081924333863879092706752841616326176626524263641843709465658006688680557165198054477786710749995220181332232460539483540966181744818586250198250877611825751640790213596981543267360951129655816003294777181547364164937350528159982154712867643945446690865523036125189046737707100605116878543599011274420920953335754334056355821871287048864158696617694033475918319273472350040326968025437535936008197705560717706007622056036264029753850294833486303794358516979346454002694155711831956907810430490887305089031230602210927031600260211850035992582368675344731434189054981729581079264256485017958933290075418402364550456348524310801521057956522187227854249964842274065171279851897838851486432452045331205147093411128310821077326394072466455882357252089608850875617516445478882444324530897013509404618318518549231492081406736418002096305958773651491990444529211944578631831991119835904938111811898644162547465437469457555281055086355373325814836756874467267655640780417453394447602547725198194126496558581895830995731802818596145628254399461435975398719617071614840376895916098886787513113714311169776441564567740764485083368576679674998995448195515036849670641396107192027866394810711318156149065384838998303013900432976789008204001100220405562538990589033825882348677730208416255557632410747766388594350372412606321430023304630064253174552074301620602817129291039406034152960636588016050360667919190665722783864429906011453709983533715990129480994238990142603504753342100974154716291575940644434252710932927560345624048084690789564083236718943640314999216532132763458758122128825959054983803989971963533830762118806504551166395728005821466233998496992817505813807099037074113527815529031917830646000920320294034356598433885316464397382986261174908305009583063693531417320515605181732355204308654566679850060110167247660561456508869208788889618906301808101585641519965708573208115443600798470177718754409258070805277162337469616935506028671869731840349673838904954994426522945524164029684978339018482834852508981384788231067431680160302673356681770554319612087036383231605926441096672874089396033728913959125980143331104672155028118742095901725612509570628411312456383258010648505092497636734874354769628747402142354752879527817150469088597668221457770219622603660091135859717962993998936479080586695294130960020674821407266570967661410444378584434968964572098491850304407633889967655922616672338804851199811071712463394790101936933995729294817855778257630991132838016430021754614964013371329601397043222734390196725480285764458994837459474103257643329072909670130816168881195273090877159438809534266243413716065629220692238450888198163462640275424722077534311432927585745226172279067370315455736577524409175225138608575886651136839283052387878127160665951779090044425146048153477270053699936656823687981048205277646618032088472052456896847844839390886926907193952215794206469612377120914027570653516713351468130020383784184172580303155715981353959848424262961795586054629434504635063121248980298978491383147732614184914879669531883718108837682491337920626242549012172474010116657719613201434846773431035954485419953036442996061309771238309406340221847500575614423062174814699508760019454654364105557991237741014165612362202846846417858951119815837844949002469914870225581347920807481957498290225783860259981419589878638199181859871668361421064469476168736518925951082504434020441276196050399809420760365830817745168434816695170528336539813090160987272014141913026321838006353268890925056263269785539393070037874764410451209410501577215889172192302678882648022160735858791333460517033262827292886031902433768344737761554455154512107635004715817501649492929360379363378613635652461408839216082189645682917008770293685115409002411725638297561829627572303595325605522818368009228545391427295312911516545922739538817114721274994246247315934548682287727111297260112944101790880835721389832493220259213251090093416209537287630692977864977433595442737578587197583160174673530447711867579088656852622842859999638364599885253357632316110645598707718523723430986907180560343497206613118507433799778926050825837546041225949985540931253078309324383174594870334422640759860007734505070492329818556108949058300836450345196285151474984584160784315796365217590689178224621148801440603337159977535556721496815257526798361121683973244375473411062481904369994780919744090383840989727122684170455377068276593501581421685374765517985354022837152471350277954019235332110537315901821895891158829487919869919654974661322411958093731161907537891019907261912565394353069030873702993623603716819672860040546260072049577613218511451225265416928343576396307865304342469148742393702789077297914835995785116021115180391938478002487800236512027658352314405138812391250721889942914209496076668456082375802069037024378444303542628890773780604595622096924820100123435343726115566167005749917941382110253131479507092081233818547074754928062469608827754518147449587319276160150335942917615071458451669416709128781391525944249111663310043738262653962512700268282567745104757361051012554140694045814960808542297036636504280556639473877606665666657184184640408859315681061274808318954951471217406289556075591633296153544734743182995555694962268071180194999923227913898315495802719140456789377275365494872821284013406858492157903474185234360651857642755940331626050124432210761492190194735990003164721159186151406760147636377204483219469044674277332525887188625857300342043993983508656093844828420672222770153472221355746644341049996902688096796493673165053159948629101959956615815493353832667337919581535569949555350078079092810433861152911105252848624029754143211799998595001034629682893509027945480428579180754032327128907347059519598580692258729569302737236848004701930346079349542391273133848126067287892812324850223448478431321895181995106772478374943243361667096987890651441708307350699049509667316711188165177102504576578065683685475329018445123983265847370535057973106502148561217913206837382814926105050843771061594707210691355450314613567721019560448599616828222906248090544920966732375708988278278815828090272873128964448404355454450007233748580562730469707899785892959784135471891576049811914345428077040803963813787924817076508358231761046985778428680071791120172480410354663946778590853672748885929490905868723120650635334861442119027480040824124913337732283338073841126215166206034751883463181994719523339977377171920799775990022156448114254701545497597761303784155956133260034366924822858830654286114335694145083584800612645944482617403405322931177659032613661144805916304698563341671175920328503059166879013273229693057408896936067482367328828436408929871992754077969250972858014542109395424318416040119319664580723685953527021032837785965055482907179881925453607013473665975841338271894113680768467198353301325501274930909980613340243525786237174690319671462225067335213057874085914215680138220990935901810943078182873845396857796535292102231052210061325643345766204683764329331794615972287508193908433767592882571071903116688360897331775017617033189442287791892984923577256312835031393934417409416963068505085189945380902385121498791362859467671491033492931675339033257066079556302188942431729716483428822801534489283285542601207796313946556194434852538826181772057078006899906573612914016495794895796216522263437648993910506734877367381735225743986910672661466802802082940755376741919392866596844747644416729072357619395304087745315320754367517068830552015523382899690100894932267470584852101086444005050235421927174387407450004825114504125596520852953678271314419800371085279640403732255410158462475277369199801830066056613799117330201426127431741706468783141389772561136998535053159363852852593817525931948803277646419090997167669954007997512262016851410859518196343904149032832895184288417049382146234805653113533604034404824776460535097014495524770432601923749800013543842306378241521051930810114762555770100295229527351835386736772825384337855846042904373700623920519948395556927589620486292819554639306010580554882941456518554035167709221930608269308107470088347833370580797206820968355923589563045348905797311072042395291664908691666102632439751519433851489493832464019878355088077231765998064750078089443585093301115941588568247154420682335038861555886023697237060568592753394582570122656459646868956718687361928854905426056305944206412921476725293483567763790447425358620234971272653600375043864104005640570280065673874408436339069209019097964205158918345357709960927852231534900859027568645212421848172599022024111838251149187414575687021646906627695095157182742142999995829116895332361363381885512281348983701545664970210549556618383837206637828777724768238618799450082333580247590800724084711557094203443348054920266702985792050300587986819689403661610333674897867302564858376818688741384100867896150422503378251202780314682286280077879545751582806641371150360326434528500416822625630750193190944220911092165616086693706809657098243907056905274379009140038142415667900172273882603919812735597677388723619573689008213549621135281633356368166329105123067539723673466455747388350536529266866108569933777850716468017281139558037410000126426007760714190789383383942948915587741471285766907426925413151550650628540213890197074198830352103501340433085810529519381209834089973833005771836171223023536734053769939400138949960770937937516719968415629034702498606743993382581360448727909561613864378019160995013822893745539511041200093452201494386493779166141861698284128056143968788227579250691200445842590880207805274134371460101401810916466520219995229284498719123049362352397192158233249448617357806277808642660264411675383158513809697585109927533481458255521370689694190732230534084325765209164800977123554030185792787155308183705058548621786394821033592160821555042454670604667308959180715133922346032280906933743469694654455651660207223574182906018503299177192658750333422032039760081164125180780440500499213777377315737839726355981091943899701840584237050731665855650890740240606434064850282149535890312237854861149814880365664968618017818400958850687565003334595538336113412398579060503634544491673569434764213406411623339033789186341457729629468691527686057024929534886968416251194451708863366644869506498810440054240536982921374563516149079428257855242985706350387020073749100930537628652219164703019182474236596593855052590242884571818858568687247782148751734418211348585175837855479010038500216629295289082808121689257195372989872210253744164057195391755299227185692381256123600154167553649197905549047750276234034284329543949226429197531625817760781076357909630796309548522067522655789808296616138949574873580211919952545448629161922500358085341442728874460003529100294206401229835532653451855184374204784989124499387789830292942118623679687901429751130360324184830492023415613288668559393159221728566232519488990857755915203538093495526849467078494702501486727077162421030698944249947737820651836226592105544311429558708795544370496832832881869968545899328303319256011586622395334201761585036337899351368421635592189033929878072270651442504120632375557056081597142750526040039485542094686691335741212470574546788680003485518604165908124785381474997639053171938835588901193696960673887082744827136523726167786328009373132602373561299120128463162118908273273826028801833451472644067163315848713461688712770941018087106897918642693796903716820527125449535012352735252875403382404890792657222373757716989387373976701541254550055226630500504522927980883773943506557907303180850947849889253113231863144235303200192343940090860906329928056129756521473132062541648749614281494977433237131499371496188653019793299904690560075816752040962821841272859300620033384360074627654691413590333443175293743525145176842000353907830803739059906033910986996676718177575970500539020681561528668653273252717870398829672327870389213380976477927711583914000387046238024674569820236609153048021700938893224260219942510081538600547637227047960230713805275994308312626162170995545012413280682984005099323296891029669629566474889566445728333562505972013757093728054129171303764247744702975120210207232368403047768148745817732659384030047738280251280238304527095790667413181432275949169792162575606802956121783995592485645846836211764357386888633871942922655199341513193844206027104055049034920342930914827742501236704092254275513096294181922756027486945969560841848688150659840154399807791076719461845588160171463732208555911522200824620874192834146067961299859895793376926184449449115658927591483141366663627369326220978615101151070580084760283036974944676748783913484810298924733585451246010150889555916557828922061646327546327234201602684045097458432576162944675585171734779422943914885323704018255763137089447064201397055230059769397918519535434966508422831094666503929596861899811505908528252643035865602858365365052274939908328412509912247756122577681780854202663764660931483538189254824795379358061939284622148206059935363217754304562615216376564902073027559864806060132221374520651189970678174936850157756632818878614338018384177738947477961162118302096294897436027300796983320654097701581043827247266583592169572047069826227859213542087093076165288199028848704065141877128029611140899192487520796579591440123585348807782202399243869784486555730034014089535909729766948797092837590854676269977141144182127707983414490985077670969856677888656885666268948684374058962470720928650533503307540666357298706847309870146027296982897846402794027892098358274426593536690039470137560206509543200031488388186244928669032320550284200185569003661545316216230302559103569972350775864005378623460658240367426344702417934294839057761917339795703918163757112070759921491138906846843496122052682684212188069471994507200903541054402189041965557154848687830955473698476313875769072116143070040989673354092642517327143463558080459154079947834180499649629537246425566652430547335969029898746657092055917690659082174388023287309393369575523762958474979831792205280636684140767777512746577671983122273242688356110475540159163482277866373322423952656336855757278101465780258970997796068670571415104618412028128075483276809609635288733524718841415435792212280685577415754319244723898875617490740827535859233302893623263496392678019255790148237728314605522637990665022872207536552988764749121885066568759557898025994931453667273058067485061614116217083478778406028279785693501915147802620459115404803018537354652692210924304757060072707540930439714412820243870681349910495803368834367219769569419476059661523890027640735301343881192376344862978018871615123807165659944013551110781946688844342099645176095900101227037627584063763505182430434748131702748114529690903424972872943728056600667546143423729919739267112624765338813888109181303691374976737364995631867066086760063094012330606956595870135048767834576068365962024634624317797699175719048303058943182486437255342444570246111376138572004488108665398015411052316885008523701218576942791538258476695829181855989176180722329141109929635772987207584645707841036058380174640312980518738818033260411621391286620975160410563991594436597347599359373267030396018020832882488605734291460316755648105646362869595245100370229615131839311013371516738290359763711116323739220475013002379920264594389722725624048835221068603460319468148996407451144742086110626956925270339526730982090119672333918679256306493055177453194338469093351937049202865777313552125174879693278778036042384899214524419014208761532217458780246973410539842275504465388681742777363899296595183827514621217716149911907542250587303043903769252977757071639619168059952569342126543365787607111487602146721373967292302709051161734939358074183404865755310920107101515551864113937232450714845975195154982420269265769247246897874680795458859329477848141449584425592886585628522084181255965919824258396851862093680888711586273005707608730757294381620650834450279097776934380808233570516415471040925862400010317268402134315006139333289846238433902005603232994486159565944231638376204426503479367069908416367242968376025806897639880795668048172342129239905880802907759157488250743256546599617850234390403287400585146149024623437200136935968109657408720470837034973790736909200639948865845584472576748765924097047942956049116279922747529647290659869393351357902637411676562408261297725527802933300535444477116882428700343209339468081457611811692655893434186038175332750947590535310801367751977564809882194046042334692971126414624540633603301503534508991531502186132070004442807996578975372611757129193009680647012748843606192531717838299812975957278934575642066658659673261694322341993269276145765878725405932740853585259757404417106984848262899296824944122123959163634078155977829430610081045286466536013044681896992008412907687626173145483369480430202573930557006038632825152840442955527585087928912723781554249394058130463330027499108568997071586336368120803869377557951785095707485889151603355311827793611378849716753851702851453196662952370760330273153419708602432579106606814227158100238198163706943412487561755958512864780382878650652542048127516407213007135169137531141843415982454888901194071443260741842466712776543349149602735435737894364374382278161286900029526401857050364262881453951465005395254498862891379842678471460419352192913352597144219613813403436943698194412945575201447376285261536942434337645422813755907922515245099920488968210599107197234192948077830776467125686109275642836468795898151024188642763076969829894701551622411143596724379771982473671800037328976310867336063437609395559806723525331252046783279850605156055256553064425182412303906769433453634018851375820331633116357931707431215786215160293679042440994487434408644825965259992411299741431044963641107322688302864349626455335453413265795384732044176126530851682767513240859715986020638812708003321951936206565321523444179151730516615430820624437246955542295619599831070456746819725289558464081414627458681927084333328381551367156073470482593103697750193140578050965339737345590927260658377724847165751996583676172691367463524995542943336675894202669349182127620087451232435990398116583144470166716116164320295947208210005185072952277038710291502906118321711218730055680099496977972338609406487385639124090425373103408981218474827034641930360235483969266712749108158223699502370985208614008508192918325356997058431703486042289942735465569415542392511871085079263621327513244006305479916944001413018590484609155726175112281533766619482434133105541686966869914549649998453921656312484375613495840547066402581042095577047135272944873452591646398787416660611260939543491322939212752599651661718317490186810269016456876214245385852818932402771443325625348496926980237931315180156863629279781353343983923659120709167577953783998149795415882441357536545687901838650964562474440977949843744670885080025602731188581736196443518375161865671832585932195013814441577299349174582931399571582423550360674240607935633027726763530001821723723865303689354526083600603583412063458437908635922628964691107132352968110827917967508014267126131515406674227970358304991931872514338032850322721628248243113587555891891327191223298282714434200471232766799683600752609458102110548836835876995646991734339397302804961933228442207770057839969199336683319002069123053177997173899798880162487555215080502154008849875835487697505084366028307189563194659244880635687984873676474758285214275953211535868147176414455596333141983138799005997134433219241485666722102468297282387466177826973635242402403859490083753024677827694295199146173536161388005846226166008429605523935314093179433710216184353836815768431601575922764943096236307349494362440567883410033282178984687319294676437960068553310205043093537839665903415374121797726506655937546951927067427492767207424042722656310479482729748900748854838691697095996776226165085835607789231144989424788210228876524821047296849935254997043207251730623417841512225800023485658174895952666573335284418974482115056050799138527437848410054040926723399861913392677363874407071807294509648351162447871010662120025546643232745598609612258364509247503481779280774792793140348427195989591996365454599595675772626186869872576789945796273993657729603875574152338919915707764041695298635890971993804849532369458153629126968274068423306092416360803654698050987119876493194536702125540432985275813399910306049466510391824161710995023660940327389922402413882328295194291512595717291585524673725908474199629614541248115936844866762009877394816490072057005947124470652085490635264260017670619095405251024176223637550366251983134289155409024783240206079153874712576405317710169324876720654195029357179248741625916428206072855895631543775097596534502061914985416501892596846596250745711799223506325277970604392819093410302710649747137148394642370551851138654195322939840933051919182247587042711611555005534631741336527442990368803883019814707217832277257880329493414525102043510977050725524193272293003316474011466888935446812259617664330693094098386170628022288356539452992540850630737995622858499313488874641202147706827260745471275996081696627006602956036860033984846392634440365565439488143785203525116052385906920231393226098894720594549062974005440761006421958586281255725328985401777054768554106561176087978500717651679814481229436922612736828132055771758609483195284193026151686142931789137985794051217947064303284530345986110203291740245388280210157471815940069236256397473775476782162192028308624857503791063561614738223889156280210966882389813537592493154307837686861380541289794699649452906421733929081979553814227025602510300590549782798511682659004684754668754254020381620105219083987976394519314043065577906518967910054252286587805459421204270599142098475493336069398580350019460051296490835422339716202505660662310192368291083052852535396486344661593604681504470425254441897764116303201268200872695977827040010694407821749686747157340127518842957710132271946737517333837623282835087708132012645103568766862575506021637182571968935219988116708771564602706639949629565454834283307041896938091012677794348053478123014782979248055428949644505226606558388351869457354720902433171097137936275327044540505445011120402769920916390803303113403591927426981193638577411901512499285246852128686227948032830841667068608017437888835462479110753054810116779654293912160354598120662087578236823937939933910606211400588581274799492056571306845562159876990703159540200111117626579245995792526548617979839184496965010483541475183804078162972547035696202540127811142593117846150059891704928678310238655926809877084533548090693214320596453227986161464475812888622501245813395825211495221261292010064105002224131995783268057803218022629568847107024802922030492692150120688322302295206568261216585446894864265769095714299398664118502068764562467999523391175407496422197191937365605544658588641094789209293847475743766632666920056012359590873361338223349249559183329800770513320062410993464712556953662949853301760816209002901486085160132442442558805969225479948328474864340109450315236999325073003270209378593190582770279638140325876862253014687423407783648647776257627655471546378059823509298928890515217039134400365554918864371003255953320962436009669798947874021840424731667872245090169391488511852001770680856950982117512913946369796737568035038984318638993880249315257572718732581369274444897569519904848694967025424756704530790960863786647862418595032285366087201091307884297716694460438309130322485187016301785470979940978947174109564050199474946131148161297583502512160979605905419509649511165841485995900217270679351643127387465714024340063231372113482339710010746896743016921433388917976859295187612404219973223984102981601173865375936805357322650828092296861494213545521678176675358381853848085092467855092325074119469604436526567069119471321589051873279999518925043342522621622327284667111869137953692600243863405480175047252421036953995589814484868674743561154368697715723246124349819364625159203830504325461249015497828686115501019384822680453577211168911829662009436430708360174297983855313867930438414471470976076199995941624129732208276014585219548826671833482287204760646616092482186090080233727134174246501223515637463940067322178137302458435813194167632563717672286661868663623909713075467822795726228871714728989773000054152978668059259090043465739015957825161041340369491267564348794988897893347318100159990142985433255599622089927372613346810912887100256344975261040500872383730621710822088782758362116199700156815101603820745564323606448833651411006559132630534559063850402437391106126050605182051443354299490419913944281059379380757708370674718325419724657264807949125488059971819685291281135094990275148859786338979762613370189470927058355233835513671006062751149734150908424372308900403236362800807250741841854606789346968679007462509209089306540279992033328509793782951437275575969661529310458035558739772726392819671011187760732443882196859372386831456766653349822721565314884101088653188174075446732599313510466828472088428243925295275793814038239983983235108029346851140318058420267483810853096070392881732932386745464871642644331102156842548633896244133860487274896428058606767822359842814960019397076942284842405728785245037940735567197890695980959358495422340052928973087376040385860674492199680888212801201370059816194732979186097585735847659185846187751994730007351188883687063362515215223130413891605237602335245182316103704674337638347401996309648991711632031494521656409952699964635971836056164525444572811624341042701507669446342458741438952225318869279046532918178052848075120866213121412999978495251779344881114519131506249546109483621288820490971640066990154457589400343868427719304083773976951765013327909392968062072810433605612400131539344691907170139333224794461913704160710028558299117716970841516911962535973072718759088241314767023891747136716557648078857312749992402843948396725586548350637312379291340657958088628541104258619405950339992628955525010697770463963678842759068727347198231141551444968503032249887462834325830736235882465219853769337512379402216563267479870445981028468771152789883105049310957872974759321808597993551006842531340864498832315172498593397165253386801012430016652937878101657285756220243369451755584241377619850472780528470029248595657990911508668026975509528974269145840209983075445474574224497551597160169860112362951380141085166538584718302555311984936821507755398694185061479400487758384890909333143395548868747639481352372179986287100447306642633120196062540524179565118587280430855919808175774441859061995581569344803707483889978028457789755407217791751095650443063613309542769431408871812683702993447782636016489478120306811340383751823404643264858723270432383324633085363169431153285813996865089890136504987774860417538405536109640932511472268233664431380740779658886072548533884517588904429488483567825141999501960531379012096224370317203369514278105572472020548186162813557398589244569357127490009387497833345151983071185747593884328795770460963531222682653825206586252934923933862721826259797957502904223834236195405198613002938209067260710009061741137735097388705532846042327791951965595583979006624534198998927230430259373727218003422379384915996435790381423615046459277868037360760325863367185643127378814513680814049015277367936514453221614687545521676456289393198904988503151023820743528834304333265835146654678215314324383791863758246404081936005719010056693206035756234581228167550759345177227403263278265811413004940564369258994678989532103957448331233779589053163038236427401232038562937751794421451304997847358498776260132728776198703569120460637693546962755042866603436043014860851873616488670447164443839324047174990528008551285136658258457539874124724296208510306919341755855564199995147455827460699102520394298896092380375901351935501020630789633696006810333900472331185017210451361268594996375500670392095319025437550826763897921647629259731029703401529986118729046346907151095516657813232581061323509707367666624501238001231935224813293679217654590873705173238687979897615741815778452635802621750685003500907474854794070527851936149536681396088209494644350334910051035045130100038678984944364780630912204125713111510819075037725994767039410058075947599200131131644520291143547843723285575463420359787077910991581908132836607249884399626428211237993596386523748012973903420720945119420013257681489626512011697170816168469080231139227416836358672245037832195517670737028192260821046656507844496118135155801526410678103772643240059771607950527969172217941336346163546744929736768338238815353324561379057733920522731558994162390484031337272927772550630582498629989166431152319758603629657268932507189267542065295553288769276546872450116915741814306825900449934540261147357804955599366089386179834162181711179732176251656307126911592027174858037790977602454764875477348321587621571283390300079538857966414587669353372925607036530948440356646704997460700096993120804497938744658884806668359053433691043769580811691513303751207187000370390702691236126009158891777204034602641405150889906855738707012370690807728702309718168328852572413456440687376521255148794648060656131579698832131773652899179360358145806206226159425844179777399425952934567661790418474508437903683114023210874354609268839096652927327068913570653824239649621108837255120615543762519972620032321754379203440135085809416370267561427303698607159197649363306619810658142762942943982766795963061823411274017729114882864925565051080376005042444090252241039977851023723148804485027897369190702551240037088156947633751688525100061174069394178141642097405591787216298817513093896408048664500082189298850869965969572787633953368596028633599318694926624675446179204799223107354353787552586373372165958649824019653123598352479213014977583528242032747450554591707880568064276201819569723999486443755814449607792792243912847346263473559284475377431116520761258280364758047478681665663849537645667280699886939602944507202380611222363989189825343655704064950878940428742283815172789859932094074843646056796913309137291656705616534698160636505412483777426276252113841912390723320709716618451443116383857282828117559862266501910001148820240729353660081315403043689899833451244451363275236501603577360106290029307679103086076998185736139838344165891961946840509055775529819743765236034168096598456942302508718996781221252534770819130392493329317123564695893819501876713035368570609868308302849482481698889357577467089537518042694159767522518395761446781991609529783226462789810232650016240362555888762945014565949564245517367258526342574271430367783438721950560993392244092219814083006111293308610402103561818394566978220836659663213837417851311318894794081887130140285835873009749095006654834514011294202495979943795210758528618313207178155114900007839751634652677187613994407226712267265671549004310207502850698036014766998108253527049648530533651799818060529664833964527237309340265535119670055810877045104122185839252584788389798918786208824073508008275945071543436778981950893414107984060222357383195130154121581583035421943563497927888472263531118899033012090073474801373599560898786758545471424082251731946541228722539370427517381744055531700630740837542280652883623956504814406618981967324699074992211605917288553759681581503026735576575682798655117727939775600651843913290849577227301700820210594048401111123532719681996572565146805442244500443359300845720527097003318572681269854899614223527870376535419554320321077263314378776536675337508584239136000074174374125626714932432589185531688276303060891024403271513779821902982546276672948560150978435914252777253667126429455993130505205708852501213237072716345862434726485675234748360763587706939034451320774127642785471597241913338189571062906041029214456179281740088637558822555597749383157003473283931556306350660665557264655472946422218753709774106258088500397869361655004161014895547180963324534571809201543991611197802525188533342069567881656247392831504059196889473133080009733190870112230704194412540208815117641011445403898553436015505019192258387776122980994022199974457512241340185261323970869111220214878211387157482085508440188490147439969270456345689484243028437760557555372250349577257139551485908073492367458515285345973723654881506041013491464616638525477754753747684880524101295605477573386051960874952156207560858026173215030345526653306514654457177401865064908721033833079883912955531499302606592046103127467506176324853202636261240903134128823293197443824973142230900757416389372430224802595658000542021412963303744994276105026425244662342022398667024226102745261985845958126438390076303346406492249209664781692331175488253228079904320238889118454498975075616839184662855375076365340455090154074065544940981126377168864582611627043542391023925434836361375071085418318773189421655323260621788771621198646344330946091449727087889226954803043739661562139498823319876052592659566852465794604495967692539599920213605897400649915081976962601367091597771459388726714144060438366876894665153662604002942917411092677301366833142270797137108020381076408451355454941553388067291339598784240479610481394802322821758419284971813909455618721386529511424286982625209165108305380910406189821289813611941775336513741889636043726051031903440012386172679077444549952957360282063134862290285562157703740431718788060204837831176667863110775901942815175884536058862217944178890160118226118467778275750779621900332615298723384334580610541360491428077508444484535452358983189758698859757688528061752758482712689399877113586850130230649524897701073010157560903768801981447900740232661812495090195861711631990745418848239320417657329739512223703242677030260801173717832641700554212307852724436148414250442415761901407131870054866935400634236339936976632377503430284439850103291036756762838262879967155115965587103526311350884235858987979528290618529311211053889180555954771602130993250642390383341146451134715055191411274026405884465954276705753666307630385709607525253576978689557323207677920664967198325270863517197168497858403063141679677556100587773782217324759411691386987314783173099768660693155122391760491927544998674064784564851598596121210992617186197699920958387062006412736809005865383239897697896145939988667115967483860123185293613247221390422997604210997792774289523452293195972644232525703572264130487160040386067749230141477202171285073285409097185089274458171378150906220987881422169131235346384050726725290542676933191834644212650423621534078746157676065001028948633993895272079878428189242702374898079234936787372733184653496067610482593019472466946342856973739768076458450491207087998397510067298146702306466960246615851283558453262515232010407545257652565331431694786159694844391340005431925548789740218207205597793828125225138610955720341923336098782799782628825871267111567658965626238519126774148587905468535589602749961290339056728195533962372918057988856511181984476710993222582063621878668219740322982704936788443710601766703366536418149093495491072842370206411308228587152317900888336392995680210908422811527831324507025994454576394498621735479140070699383972148678479334749440173331258771447389805310205554991932909725666454897120677898784508911877093487302993233972342691429197055075301133841872187264464101327864936502159809770750246986193141470560937373243058477898821242622311614027777760270536452907180225898611095084030474509833614244257654850677857942710741050179226797663852805473579029872901400819816175808598609363426890698958562603642485145102732934689805177123066842474064656461044891811381448661399752120487070323060712484712031112339076666078473156352125878429483496892146196353681092382340619963742853449282597853354563306329741578875572935247454892771798447681475854798011972656720682888449891507334446209543025743457393004179289193177841541520189430922666869904105648807046770410759396164786967423819889322646954918471194083212333310945587025429978514876127703271484465632642843276633495257571964127955102361257675473941861276184415575771250761602045059015561912101369789551292676156483219514139107629495966112538622851112076959848416817290808372479729934490826979557242863057933714957675777435163942359451664106430645254176268236186142467579479685611801723683556948705692505098364684528286843280137096357436238225644773446443227960430299293683524810003428423562347844890826863369956981800165873843001693255794324863451819081065641225370656193071728242598942056899448164089197292136949904961131613110370636533724199896270552446664101121699326398044748044805752187104250281639283108452523359035860804813254484071462574155130224901929483287813176973115860621652186681463065748764412757059583094134721578577866598515509832633616546565559357222725043214383316055529675522072846179710967314216682883858034460611840795434910543137595833629995234761806551955920055986386444524607133937999824131081224570214689875999757978683531014985366899475791125151539916830228473960881890591413897935694270377161138915096195164272327625279407515302309824701248138455510969431002239400192103544769544428455170247606637386273159703012021616103490294711035407191813494225588420228707165205787379568860487060924889438432895935866191051705916685670895589110744188031922320270585665621566310885895769065566457223542104558577717340107003637047352294950685110497518520577659042126852735602195975745644217607091945086060724501521731837422097397550583328174312870335479257646328864339876925721223864264504607055257352058753227127080762899041935448485469900555724881664564232127001512449260671921253397998103209167433238931652555483362139120226064135245310221208314118210416484578000077010588041381175351047862805486333491259037997904990891833227579708609062092195049567853822554193220858363095516912999987474695608914211653645698919555889762961929346022409180714975116444151540924843231041627651111120765187268659615207274059683294836134004448297364656250395874768899787883777967453646130784790006370230119833384816689625970703868729496863567482636236868137223861305304249600607597431227881679454722420141944091763270613097263818091747169767265139436834236914124330774938079557166737820138712844744366842039450242519875342428230205353463771741934987264746734113389678083683316986934814509726887252334281675968997994301964839974897517923957874375069673923109019991340937900955773441930599991772306210076992823273880071249664328909831639602234381134005431969167229004210586263034205377403000468897671850205408334357591041077653911989609413059794331844703028987486006533757267797158357876578112464127987360213130103720642514241391947924857129445578255325902654589103474549110885420805586418085278119562036767141684978592465804191241272205396076365825160674751724486015462626207325456028506725627379355487736138281861074972966339204251475509459350975106307336830650493627339771145222428085786583840641582860679396327194220106408487834580423045919231670507701141340266365714035388331919636238961269103559694398427089969005348304568375008681663860283544196286740736265110853136897323743322685143256957545836554921866900510489014071575663124211606097185566721159457410498103370242696392141605100347774673897739008918601803099048632135881358234452091854833279463401200995998938504884006435374654965615606779016107925102978931310266595979819363225047218110378568216368206116156430392565512951466502775534159208165535752198628104142209856005670612957885543686998695960277515218034972247601356436091314842876201431631366237913519540525221411804254900226579706427853806907385042078667227635922946466497644403072435295456634104140072822002075993263898968255803653495303678825239988272438498408794230487712064288991622383443562577131094726567264654831824283060691421976489351854795423292715176610600999816794482481856944839024587408692481164469207907989955258045936209951873713556789478506211211350593062037005304324096919971043083677385128492900976843868587572070576406103131355270722185536271922182111939305165235523675125535545926642542425496853334676315778943027629017214795184900951469210469860190126415397148270994286686898182883235174930711227901350484748678884718755442197943648609736186862531905682128022964988151405517507407232294134379404430161673460246934183503776868210401689293031300431017672686684423143580078155387829940691740108049452533321991670781609587606386190222001904366332698989327074646550065665475101535440182748371584775197677315622480973542171519245382296021334829065796174255775790258877241388148093658090406614825750869749350020763156381573568906865283713772459860127451544451023640308245574066558036697157122094421687457274818880451992758093046443901233360969054285915867318044874634955042550973603529643363325564785250713990532813510735309688012755037725284833089125511871030541777836251633604539802650095134026599834204491507272980952073554230027999782399416266446706289851602213286444463798173660867596725228582575675147732373559884846533197889140036298023307615386001907922580581830579502526105742815137085654598356540543627045306950038591714440674298291421238083537681463689915661672898710704961166226646494853198490833267352138203721719017434409801037651432827370242490208302358034522889946869574469127862603891142811905331776151292084700464084573874243146416784287005488167973227526611497813591847028555493506311498361886990649213658403297634965557969853902213600823457922800759741208849090462287276510825718530357206710475371270661380428898920878730302615099542510637994205990688350209700949533752305101571514614095416653026381183222206111094909067600369953637057192898203138505966096232844519240600979180055181595250021552930248041999574825834151711513221090302717380201334188471994529909269801578169483146429030941807185141500856752283696872588733048946233289298388170841525781556125813473869528155212145069673839143601297551256340844335230408553192997917624651353416025539887333878638595849009391644529615018691618993785344024125060492896275222437517988009773520139474291378022671703689776285235604601711381653495385192370072876530140660351025697975301151858310615369404249811051733104014272979698888578048034033215331356533371475284613069861676849314751642320416327443481562969954163472677409489694821060884132345155841047854069054663656250889597131165881268126083095098926756972044768975644244674477257048333172007146791979955247762907670969165789560884726806045127965624569690639931801785885621022269249857567115672432152569384834179508736617827605431094513421939931997882470308341822701422754873834778022024299316133762896354860096062164907937296842473506382028336166221538887921049423004229137753894827520391665744339927575128419762454519012016470650284334067717381458988864409243350448665201296427778835908219060335281590518963289132130215265243367541608265483152457597520194190211970634516758974702875940322500521694013042836352404925589402079046883095751939266146256840032996572014230005141249560026206051772904878597751627302639918299229042267716930151820159513608721255031175455463652922843804829980293300160194562651307976640754537850390618467301884037362303970958023321687238783335743077159132307381671887380320049879162756292467897903191701480109582123758654544697672910868110430462002952546314735418357206631825111013863070248594388761737053126149111509789151887964892443705375977698664131731206758688224238442742104237844271321529850516474963843649365343301028216477887511969204133766922693427024250307420816612508048859098697899441196275926942077882552835096313287671760458623806462655058508264353037540696787246065001162457577932268583674782570053460555620447884790066474572776419608422752822604214488737256125895659577756753033022844051578947281587427655317959625464735807557498607399482768409059307177317267176269482795112912914960092445192904527315119981276291920886334289130102131935987328419343993445004233548637216669359101672152746934013897376101877369604799555383210846567125736537356743867612485282718288503273660496347693224125062043662479851128402189001890545111031999561629596477356768825072539505214616626887831612275794544775076048522713212179549260444135804544090625007085734813340068582994100019789754594526714296988970680942894837483081036222054731807576208404011986143070991765480621171576756834504234574949303213193622267743778998316833084256836905775032288862779355400851960586448786147458805752932116819868206111548956543360488303100619959858321550795403840364514975240281284909284713551759080169886658279628756385444192660740070271250397563451228847463309785662503312085447448975371762349605043858157264182089127595771888761988991666995394629599541722482306914674978612813945041529725822398681984808545222710461106168003676048456594476396035661995451851778954726161970459899080973175260200341133999307177490270225459540835911566976502034801986354202106722421767535878160597013312228719528087220019854381440750777191952248618218610230937931649357159825565718685008754521667445781297321709521283182581050855891657794623504457528891753892650552714900525447343262940983805457149317082237044639470817947354317843898406279063383207469340432207218996517897040069027431866063139235225785469219904396795613524824281246689071052735800089264489446238695607637084291901621942116564126605882903969244135790813321767193226153366166947424321386124129493643947701596355530159811672857366953485194312841850001480895650630033258523933102704758675598255058053775885911451251713481573703130691120313999702716093242833431997696381358748368560269747259865368821139115729596078714347731108792071773506164583541403940905920837622120264092876916388115483108845267003384325137648019198303851640230807099793918524175553203704421298975864792598164173647364769535850921243402018136502648492809241262227266952123254219588400877909695381023456496713738614571542665538187764543120100355508371523126310436322261775111309945924118390823949407436672988845683301964962968565299150503214740529854123854469913381023138259207300069851587538135627759319804177217974231274652334067825362877797083773891229285587601808572535289662030182705040669209957278094133501173094989176583033218487903925593767044679930903034024879386710912874474199000546175263886448659636598312631179076540546059259742780592720421950985532734063209562984954391358178435012693705468348507544650713481698978695754996447026670149524218231330435614497860252026050258489922214573562849262397068972079183030628349120302867847174128569417372349194858736745484922903177388881086050838223024888165609187650332470584220730536601018528694137715482332064788355619718285336553187820464086570642424609253179420701329849691502124774443388243914233379242362161384006998320938154624212509048148766482087439704990223403687457823771412769451523201762095813969458035035507990294949657921272374254012205185414516057569594080875150511497794619953621135992960763739642390217659983602788598759212232403351058311834510801396222582388424358390004540000047363413358900808632077729864716563459254723531994473309228640607824324557247036634489800468461658955043955532054685046609549319547196795635149533752418420730616259673548857441267117866825532841722345290971348075388193214205446316584346920729700045587037490214639591514229797738536357899074772291191689847631218129538236046243443123178378651924661896358348273526623333477327506842802862826284351235367710325614988949893779184772805735324584422063867380902210820051076907164818999037573898760558733364490346067331529348718852366088466830168849807814782320297940956554812175515318002681276274162650914449546956618625737555214216362146490372962113750638299302404576478590765333847534238540724920279761474833024212143493072113125780240323485424590197925277658191310898383158644815282121573615891439665886265132265239591928608817183672093920720293422923793392332308720126442762677721649025129654910331180890606728196754057110204235099668198370399161334190963685723429420760639096905864399009446417865606553364588981082415053028407666221386774202772673863904573809549187881794940678043199827941024540483819894170330339820128225582533020704108318990348771442598894637263238720345596460726171589295902170968881441675369588602870099694851999698727752817993455020062881389593836475851386455640061082580396127577313158132344825107667342347908778462603587463329882489723931042403403492581058972698060424914171560489889500484786876263274214361591635435119827265543578129834381811441832670755686724579915351840106718993802120339997118252729892475061200508472033044140882617196693978315537633385271760567248097246737318075475695315740411711594904690928796843611958041382660518034459191300656402099466249062664188822646190333198191012897427937002197060985751369420773573258197688683235465488471406464566448519877598903033498501923325303740573157447662059707393358232544388026011437352700756347693907934537321337507292899285231409171231428357379247075551099604479636103731530164180300038004763846275505972057292345545068553192434779388950225152682796148642400945984066276898362267118157485684363386444071306313313927544729542592374833752286195271873588153718836884773932984553775625964848964471570100090551924245883617507608073952847161677696291936744418709642821690828050209529564231997514626612934266732531292816601846600013361802943976338499184012494693934010186475604116046209699791501456711893629199230409408077463253839779848589584166007031610653150152487230243890508035111587662987016107718956659238921748239377582320472887990506452457681754478457108068522533721703693685727427584433097994906329352452151418791884777143458317376163416022914439480940946336203338250548564581798583520906204138163503986694950729748145100441238447158648885446328416218629628011291755928275970454409986352338865574035355883932508923934301431095481212103610642412924580429125371828358929387299320707300784176912216083434741204445196424998945586707486970912733966816549332953995294462258785253693499815173657375381863090231108042422099126661834931029711314529216315583441421091877742209347812866480318585919488371256090900471506878006622260883808911936627696998596443233557148908185107692634262711300879412860781136375399841119954164930845266296850629482292357814855631074246212357610879498677357059852342360142615546186739462887120522391558406757104859447954344676250417318353087100817842440721026023491911812554290274976381154729867966987574080611293597360752072481637036772133193926708853606463204254088193132348150422273435262215374558235747445633283354350375987970356586926207690790021784975160302737476744837765345069523086086968685696182413999840205467491261326715059714483430069381878808630490917468309443565873143027440847028971519929015159044590334773918812231183673213466980319369825111842625612823624679681403497231067606033435035466733339475862932683703564879801384703404893749876041854594962242260219227340413195057266144441523405574812188737506634792829455532574012138339561806885297078442023548884965980583698059334726708650145401148005656119446990054285854199477303095111959841105521163205513781715924596567687743762127579077077214152618434176502419386614294933151065732402301998957863314202304075711865110065638230340504971691458155081270419279959328730899180616163690047103575042038325090314180374807973042439018811124836033730755870424769741332616024532026996846973140510679019411301591164030996217506824382322845006152657749892394994606956790816021018204360542416157007460914104401688184166544474615665770270340800843972411834832981999598854681914742493972621241472154428728016290535735560905233962559645833497036069012272519434979902056226022875609357619956189055888151187452521843533779522511103184369146109180698296064511502157254536537842737636409206119147825390303887349360398586216579716380832142138061855791866572275720282113006417367830224581951751112362732828003575908466787903501005952103583788603664354263067410494912420468750955339015288690957151077006289635762538427090781541584906697923574664849457919590359319670376031174012030585123471025355945317740477142454535702205922284848358221631413553662268764462331787166774585683260932085655159711190539008345007695426589926742047171169114850005772772515200562661302143626082679426590250721280926576905010485106717428484934902099577651607495407259810585599076244368788809112006709977319620175181205379730313283792053335147147215142313776198956093495956404534287366787938296600117379278549694206856788134165069270751747734408364672997537202182586023976762318462708211861014384571270866540303988358637100747174484400085723351846869957842174479892388092708181724471721201199954050643843355397999873945590542919107881652524543486608367432989948537128851777654993800823333708961632470723654756711493258817798020837882630756651508191778388339816889811232922682092528325708450672579240282622052527505946006695146365486484761597257677772582166723561794623839182287662120505807445276938493079421509843323058003674449953490276262548392181242451312859412865234014783090719881274655134951545050378728594411039675066045266434476261193940937328427526771949534795393910433774459590453286950301242052312378990458836727860301276502295150224310905218021381794808579942729997578370410207182453792163152859169269228388093086485160364194778909022802786992339671207131599637035970897804541489588107068316081332353039977402439064351490153480669720790610882458152174013964089294955961477711420813300346616752986097283504285561392608753001707741726268801014215692668097807816273182876703514765182647007632714972821063196776762799209707508392649123088119523306160426698220082835886456706490919497119954972338561304601942073706369567480582515809990391602573184886279060354879177016298299151995799912668563720048762503890235091207835394260896925600747340179799467083312567127010207360554062983175262810055357623378723942077950338587691242936151845114088437004912944874429163573789986665802422235012778631078185111935918935477253419947792643722496269347454540124166129238299523083892809314847310531448111909442291042509600998314089112714494801107410559021877267021069725018774873351110823406647769765484691831135329015956921745086495753279695148104199551429568837800397725170421592437157159380639775156751189323861574504967632044550422858823122705700851957816356030025588598096830894451344081846164737238691617698399670245061038954699190997531792823691551660599055876624302475801852511389192971067329076254323859157920319730989740786420376774476737224888185730821223004934843331021410712784104420180980451410843033971683917641363958255464160863496789085711639484266972267451849722205175995900370157545513361631456530620528083606131601802158418353748237205360228246199948710093401826925726857842467630875768562086612783176778571667254295567416428190143187066202256960827845393892817637010754703343675747074292109047642210467878771310322140623979552871588676346678252441848580998789185403605808771046410868695117133278857231273375942952030792692571126097412677906908434016014901116668029062671421807410462132542908349911856082600337075297487724547612636945040805159036146901788196340819451046546718362374626813850149089823001209430073459637584070454966875362554507123647922773777712800368223281146818532524864833380521328407158138175691919426773052324334429839177540128123250320968262110086298229999325679653601561030235055338824631347095922050417644587613433007796275478628988765014264708681092559704707673529728008646366468880704538524179839282326797373913262842825481072264032228722880952700964116589948384385299998740230696112742663624965595098349084704988406341989692164499699840400567154652486792923098221148021692477705022780884275450826760977551922272214847448699950827604002743934202809032833849079283932980949140647095029843371803934424290019045392949494798797223804214519115183071177448615352445180308276081858510521586412747740930862854593807442335544391646589026784537595160124684890040046591147455872769117549071256658148602533055944843169363768107263081357959026196146975662480902827645010682900842823981272038920171488533434721054023665204501800094599480627625038469727956121372212030082670187636282487278739067341897279218519643831077571311250898083876982503670857932580602499613407251811041214646013932264535234622710651131137771712905477577708652518115134562432599404517733103761994539379309238506395396767706408491607656940850161022399151033470142454986338410960846413092112359452369452916355771399936829519400279387240477359282622864579379683406089820593911721825517491849015508495775349145179259883366056724398122715521371523090050347516432610165965809409794502236403389203366057455640436660468190718025583412487347224608115256276576112050788761811233117952637937598052220913387423394052984593349749967875747306957872684454401508282022518626825461163795287694672778756118192481277515619078134461227814704994691051230377695133476225335104646779200903372700585012205134671542119497054823791889454728091778430274562430895836569033104896478929336660669219816295603792166991316473399800683409678433244177082055937585720810378057608650088823830950338400688143985830878046735298327876146575177670711910001253003330959642839665308651220797971076870735291663850643095255932993249786416901808465031613896624704163309548472630973557414021417201347669594072741694190461212758131960954526844648614810889353499637859760453859326626245935392651838457750351760837152821322733915467147546855187712427790000055594747180009656973123381210850829414234597672497532107346098857424710537931290367812361421071708901806294933203181167532449891962082258087838494247243026829502025586526632552429450974269092917387683179960473623317921149999366627004781349525661419414042123536535082327555616949367242202160178970042829253695915969214978371769590181340158212347845263573986718949734302514867049072590459748529657494319641840614890591189326789444887262457954765744121697042235868076014639077032060003339051900628292050631459710524939377562720418685065500665947558690341170729556041810278315996958614762325776246689187610819715876677464109152265323184342559051265980786930070970216227055851851503616757224206148371228777590736985230621857106487156638103059694572388850426409704294601217291899940395795320028272278875647654673536795687014906942410768248480464438712167890940398296571452066711760363655664168075635203476096420388246633644288551997051945263593901306315421118587189600563694257902619337687062170487505727821470205541182120232292251116918749348237564705206568667164999427432301931583932682469748484886755946164444571773463638551165222072466268474759739402352627286498304148239463955995869792946233814367554075459985169810212822246742585263778574901653672783375863009651785806151891390166016704219188516599195461633480446580613104504763020096625821312499160722111743643587726262619870937690397729384840458158819125099028441768006145084855984444221661520191458621892291338386549425975622599566049352516440334756906749146429371993405695898812820749304147256593136584913319258475074272353991105698774019322346366683487789533451981765933859232074493746532216893983059397140014830063406212279907536588075269747510154291629655083161067987324281220404612174671654151282850343900775473978613979904532679648585972050151967995217938076516254403146019018746368950007004657796993020647230472928732078195349509178090658891265332102054964416148984198356745304311127676273046237701643306170733839948493385105247746769458091462163931200660300114667407679235257535771789759178798163364102423891892843847632460240654647359433394340785296716609139743452264147519200894151253874118273298599466800306309250152707991923019674416824679265581160440033635408997539171472614804266736129027655054865212606972659980396738216236637173653168710901101069540994810019794025904993823408899624268587585446771835756923233832901191983442770960386300271470324327137537435085881976758224671579389525632605263622864377455375237631450209057977840454474626256722384906604626172018853379482844684566826755303565106599101906150782065461029852199209422149707256533335888461684301931897567517255571571220522435322511446485616559290089147956755371540243088771334441860892341265262072959252597717999116294290127737748824544460756415499778228584504553578502270108770639065745363939342511520307392121199724327202199917977269795409320761780229140522960970758878168673414442814459611597037296442567465686067374850943218920255306602791296464081458965901408075920734801213883551876126366945468614707032433269639689760717109850137933874715297961058123561528470634561109682013821264338225300179845403295633509439060700871935346288614065246336973355058038673411824435488986506556487810683430670008139047931975392024920922259956382412261727610458542388860831000015103343009138500930230259055301612736741928641930322975639127188674600055451204240046729135076079903420351928210688208893004569116423523496630191232684088103028542961849962555299069843892330124147934048646427054710167150341580124164874949649265477388535927360703997679161265141474083974603732867805766245031178847574487573602530731146868518670392090281020853556552451852466633847552691505911775835027502730421211635006233339781512607089052748534205550262956171338166538975688654486596698778004153944605703223142274366546451837757839770407146928719618158321814727970631032015906260064021905533895397189061521024616790116523529525197949996864203758479603082657262193201317971589732805180241561535381930794866599645759336067414033283534453134398575344803931504525676395027223360978117408054850515864815308072315223365249991318161814568994634596737017652219119493366069163791029573733114882577105581572576150084467922362944625894470371883681684436637656081276069186240047260730494381376290376095387522623782476834643495285365114702940951317150024967548247449651593743084481078261974166142510677867034149080748765551602346856428070568881502839781349886706163560807168966732598568817148332913598388346510300361500901620208728875128125433627665106574985699445876428904264667628365883939142472686120968790346327164162780403101788756250968058012765286104671298932804648892287256406012854293182131869554813357037777483325435569169531399139340968977272339935854147916163740318865508158047940073112432570477975411546765195148136472660971115305409458601906231381219655069659646653653177783852542092396656241707734690229018796781000938151865227552306580184067197071599446456340620265754625154963437097255256998005083920155618651543226396193653909722772997148075537409540622324163869265180967807755818695997382617655575180146825590467478562059103205495594224509724524620359606334126840298458771352406803104229077248915255814562800228849105647881435297493041122349771084086622965777545698764752603378789720557109016486617202318378762497565395904442306085348015246293961491697492460891485626405157303897969263185788845863384920750155329009109909256494031432927785817335069309710025386333786609436637677441072626319825926804548355084051770544147616203426794895682712057407431706545202436395651310106368089500896716736495860861161322720283736634851884859482610505973622780113568619549633332826494602438925699318111179544833990679857103104699320709897272155253300009550655584514144308951324201823620434413415736419653795926165198475969311758469902966539082311705075920530651672008885064592624834646036380658981782642775899860477600698615716012084878319452399312631205961549791580716794143988559125365905096729134480863600984290512312331571612251561770330561711625070940353548979627229916204349040058733633101283698839711732614243406645684250917602411887882414730064705884028829320016881829565653478745668005580228971184283637486864417441523359995809145154549254722744240696011626413595579617225268136801497817006786565766016057498867199879982670036819947526116719764611749823272845773700663236114186184476615835924371001121544439668800254757716360393964086932854021110269235297206002073990957047613061328813879730859447726318840345924823781054747449828337618087081060100774584695600421909604352826318217934574634499884617536543117015746890539941408550719710942165590381307549624217084467488671811871234154214329354394760803075860645187758714509176184280608179246202498557691459827769485295098878709493437337710703598553600591921650727725880754610177696871502341721535362444877986579402643684270615142082197279267971153237010430906841101194529101723335834800753738197942879427200060063386783719421618239090617250574462582682811828890988632393438187186420735023874460595575764610181284081865358461098961551457110929140406952277988190489107129450762824018838944610105322981867624980646983092346215263891774641778524953253929090163121489203730096084544548098539915130306038918507774867101859671273833046845345380885165854531034197675458045671150464678782090593615373141034283503470281085344218815995156045939815153014355656742825713308943279839227674889276059072094585123947118726941910555890628984508127753820966969913239956077675273099355374023355306578209500942313393730207847164703217438771601040859648326738593806371170403028786704958488973862199506628519343716127745775123055772734687069655243116863989058281013079647284875541133362697693509741677344012603715582193206900803192003431986666338420231068084950075690210972271478140170036093822007003515639539869331396878396743644676433954235208682995634822636902283888231739171253161619590267587233127073775105193015864874441755405796814614598635867890956174511893541461338858840723461351823177316809607541940515044971686184398392779239536699344808611009697700745011558352563959614352366959755122221595852025425074788841333843318467799580283876013141106377274428832997476264703653721174878485026586680463055198379940483552329866606725485782348063977239371637693304550468963500881429629128358022732944784330393162929959702447133849048395011611662267271363758552730602518616371506917647755355769459889213799007809658308873879741154660538241378861010153116514183767731567117920857075222528119093338351955921473340230444506014209900596790145680255798890649009728138058280830473456726297822444319201845190538923700754828514334281805844492352107365894390614617708091104553337113051155433591921559977153767544246573899146197279273248568613411443870020307941033396054335797918733022586671743552624510280514804276412010048412236514216058496977277167182961587232490124700273507856741389599189668382220729391437524248043548797126506195841467996917231414972585966376112670635716960845819889440704352407521815108291354139823462517144828213150481547452153711746294021322727173529711919733227858613712186589216129424843580995814916716333670989170440879338230826829660569634045255544858213043020659233338943737430253137444242936268931660236875733193460260706726043101696499651520292257185819291798787723865244187377334386835282430438995563494312965594149571182803576156654425767410603926527541481392972967175801343662252809842975605111030154204345338943971536883399248546549086811457528731873182780077049468077660718144391834786041002591492816812395889721550231721303721533073159794122179825794422764568998266089616777621625657379454258998598772873668667799699910872544212750714323725460423673077524088402622806322990817346625205378735810944116559242226260005973471573213476100715381828884390032069449353298935029496778317311047654036167655766832333408628750082638999449445903215095062743617349538225813079560415595497941408898405840360399901362133200206543065281510001541142411629660998201332912577654563464934173557421540641719351764006029089817093913865840883465655336367924293226817217501402023397051825819748474650069057128925013423577597049295855246320964259956324842505594057687897218938738758549120521664814665824265987560941431075581990948293365692809475627137999198832603492204009191351273471611371701559188467819789962540022499155915753310504094311508564717029389176160090658728570337876240458050601373983852698240090196015895084584127095882117223637246633705933700076968682416163899774395174468826301550616721511219571539407299745843669990229252232511422117286916218915500210839342558371149410008256605093259619936113487746014119298633653154067288304739931104593403670467406387001358549961745016873348516989599569135219042908762931796353508485094348787884108651887279668056680541506277113192520462827804856089714850496902286391716910394871131231412617472785582275130492281146031524041491495086834108747557099725035597953997847076449705456884232562583981755414774522454340358506037754410968866555283175854033865942870702676923969231275833339541350971314076766172384750924436524198441913308126839213977787335519175768248100764142048101167565809744739216098787107323208873877151005925955897435673696894361253768419790132291965147079197737609366336581813816043935910180412799882034956934440746658307055672867855288975847800328204130687169564649627077519839455517342620370895430061855659601939444740218348725857485985831553830273797044886522539815178802771030921019374371778802129642357030549727840706465690096197577915921343262735051174526794022143510794067376601818849312684828663842379989803887440075188963952153992513444376058730216979626793199194116076998359518887667420185204864940503588319756068528029793487718764625563240782949482899590285178304616462455890488781543272239768827406561295452278033605248730505259303264944964222227059046086173427820540746692094370126876010099007474733826321174418499210051858337203103678235475032765539124840269977193177595863823315802957052987237059470536227714657281960566723425971156392545452637622105288992092648738009943706475295606185484930670789949836678090299670561413355984565418520761416641083073563350748225471878195872378109660053249848363444329599078161933051306987150934885292867033972379385046249867476850151833224780088513089690504465034068375898903910055102667567127399331202751089994501176890288775836259778398739797781770359879618943222740664222026906455464364704828947191804994125893048061372399230751276163083364199840890076031174421057972932072530845222831373193556281605495759795177895025059882825410083011351143739026380668266972976782312494506893539497082329917295462263859482330616535491320613303224253226444156277273746505985226418880265636007143114114326355656898030381657763789921894738733923434008521601829992661976413090185057077264145938301628474593739586618207253633933033131198687170310333045041524180282284228828494521934649107417623041702066826766771934231085209702494451769233234981029034884697448057705389451842057515002357504691540989745417866674195217859017815007586423630579967746732560296851588101717963898826362514013880877960583419086727448285035507304481021254459528905717139678975822702212742306502750827857323281711611362021114754443351940522871370252513192065672237163193405181654805114092784521125660102884056611174917142719625759805639643676498691119991867642412826818710781071042143881113504493308208903552427992838868718146621651282741355957803240980043992150657009431770638027103265001614702535204854013637129968614289555470847164058257996190527218586763924193636488487364536645788164232511523102294802005253550023747057941823203050643193745765100654278707633566858924284288651469757732131367121099556387351279448612912854708646118982863455568888220201448488508842069867936268676718965562000128355462164883247662148715753962046647274023399512861559149143645558294006333241454402235030310882789902768494719912582298295103080214383911210122541472761740118250283038049476796681841398517742720231951142386072089341115439258952449774940456467476911903465188800692158641345298900152866039911865829692649653202138651010617545564788660711259139228578316375710485991765979660896391689849914563451304327144931401889720427377448869976274417691482402455346710830499301362684200853030044510482649401017599875667819998721650947966723049592149889371598134069509435132875424006251631694409259389332705994865973341442426167817078343749712857176551955014482217918837691606918138870411060685500401195890606351043760706482297835396832555979387386089640399522754155776520348378969740276726870332860340464879199841068415540675122108768443215910100254444889815327860294991638606147978102168356521497468583422439438157674646257644476784695630054083218475050345189701015972030758999342115569913884887448065416734661163011043081104165869472185160786095186474000171046885654539001539042855899002227199855290348380650981438358360892573282955734793534203138830701684244282702415442113631177796745711721556591920994766176697683516988207816769148071345154834253398657233998722653970052719389919504059515118178705659560083928435999804574791346763457565925243945325768535167104127132020983077378185958317451215873831736204042535148664718261328793752322242468892209099173902760328142257317971350090564247951864591127167892861787202649964299993291147386463558210287663649113243898728374057599126455093596688340807023962021433508530938405000463836230838867219968742548497635870419135853188351995297196394299280405972302003635557295340875561443163434568951792196067573234528373790086079857547962247526923887514438104223660989311348107383432154395071085713632311310723574298791191916109586654193687171670935766541992605639073396025619980219096337721100756322674832235558021869865278770777951830272567665075107116404804894304572831225618307389431253396181770734239327695342229292439368401455921991814840789567418381620891844914135957912583005801037917474545357005243788641458162315827916442721192797636741293082823185547078976738901760624208025057450040673222788660885761011024616591067833338736767056252502583728735467473442906435455161963671156974226930808724355700930212734727574607851681334282563621347385472611027160226891451421477716666908028221752313720446486908715294410023779186119684705851232530821359003071601706762639017381799117630503932211622795270971432865388998614117028601750362198987367133346017861220610499300062687402458038393488043526121560943291606750593459854479781517282381949409403939782185385727527326751823723094946741551773069849821633048721841872901559593443647825265215293930064498230346488307517603913761354761049116989319419121069173860002119364142254077483932163004718907256908344258988129313685173134628869709667360496340345766056128856926075823201484220362641035795582030376714748504834411915563019922918830985592538139874168489451143441740933395842896088396147227298435980822866274419681987129800247919749629511649175528883434617267522392033995199004491509515828450970724226612801388027894533139022397124199843456426812930072229763632113042323606608378627898593250633667680497740994924198980192553850742092991709649073123732873073708380594058936455062822297819693113148370483599574352994752162976223868912775361483531637053857387458836223303115929308864097645460598341569227428798028507510090372249932764388975862554804676427790536416499676026412113305212389426767710803805221767641358274572404413101344555684798350608180328080359019175465779458417196174824615226443156518489108631678071341567946900048353973047436483624492770619275252588451989247232891654311466140732514042827755729060426872603228469444887880324861003231736046780179943405622248201470660464533980702944485576855604016602694040238075725732427999484476777029899818125838337469364752770951450384865519203665397259172052229386351773053680308230341309421784419144150592884020605110478585734075224053607240884238430530995986815710245007203485847087016336361436649896610360020914768705056840043497811188298761068133460966827545628637127135096392911918939502171563677463096857135803508361365988936852368680379146765886809983557095389794652178850824174061568856727339389324906076091015657561635478890176145941276635469601268829327126199345547482067689484725827498588300723175848483103172315943963328135754571804091274879613124980949279362115915674095227788858623287146988680799660112493772331122092383262863534176747381227213505944980214023520992718067174302113194403786924513106062912604046800092414669863927531722274475218592918904305721918844704001067678973187711430011436977907533664449654983774641131842048357366762057831072470057560497195727661788396797951626897767069270681567157289243423347069263105522233811326141989302596644651659901533563954856214537328176761980512484311889695424567238624150025040788980330880652742167154853486734029230148104396704263531035834364574624625107558916327928479126760582587549392495409191242821554626882603713739165875737745892714336650703992692234900189432864187571695593475141279698104371215595490441359359023201761891534450222802762537032242461401917140470408618309407439842413484792218114996079650589855709441203184973392558269927301326973489762165676688808679273099720406393035142466068710987919546248664646353381669592788527185831384358551386645850887677153590691167566066944216236534684014447847023294925373328619875925263239969445466183469937452378085811761819777358330361846774255622756234275306823701282777121170413742509734047836715044560928562732808082647324643702625499419864375024949330320732977539251857421100049626290385716018107159722055055229082400196912544951061756324929449907202564137923654530565221970551404167526510686129689620313716925841534631952828907098749608855718017817594954623424084215102162396950654897268596250248258579903139887742301239598520102557132902574691260092329528225426698467763653593989890250358855593331286159306959476074280428537908616167599381802223308904395725771778258822537938078848398223622095495989572503235707747957393801827112177121358294497326506066724430089975131712896159272063438844249224609992140097609079581226345481995152419712069005556742855525197381832135730798119258070475600508711556181349588521151838267961553884012626626065140780000014350352161159194826016634164903056296203505786276476895793827976321697771304605968855424896287747606394914050001291758451703612411816217441734078207615571342266561190679594846372197442936883449907779920192153278574888163905603106442245215830420333507290594936555217496996176415887321704942329073806613436600904039515457799718662543269617335590487453335098600848061218155022452719786425018345759413779601005738506237479278195462460793230534890114363869788663724907392765518130106154954286845008702933245728823752333973397188515783213854948340581662413032771752442435545777678647065802580890006147631857578118190508535351031824784490351162787772967216277928234422175333072085917882952673334864594958213300854351140542406589616461222171278276656284325291447300403767642037812110649498341122916633500889522941563086303808034329678333244522090077169860434255050513122387617705121639817947581264288630990170262713274838768210070863471670447598789719694064953581864460867090984206813846445254395992736858839248806930257767522208522873767402053426642416389097556967270805965029659818925777512968855579837988246635464996953705790121087711362643755214276548714907712737557454950321507542998903887482308422474959406759979884403879126823386393330191267956128010790389461789241308471150456577932889014855564906982185693705903773303601301358576858345711715173938313992479490761992643220944512447897078518619796245528189078559516131515719730251550068025346266345300478328132619665251706403696688705447908299197542883865446216748815518698031751235483035801420082678033810933203775067752756832576521280895027496941150930154681724478613782480987458107434831220681501380893251598228522567668243835793867947857215097901656561394948822263246323422527772772999490312584450998152077721885087933815504952179427116467806975440321555231874225707427854151412353486309856572847157763376337559436424541106972817570397691692214929440392143227273880623048808203474231925319873069609780750766772053829819731349532069191247677240310406063746071044050538982807259542224373740915103265083672235998422565454986106344083965385100025951277372649283781372054423530203579674028359555551291193214352221612513505007936276508814900392207173219972247020427940982803948939012406488414497685150468490217118625539210723146453895368323812961826142530631833096415325762191089483106836429838049193452582867082052028107056680569449945208426199363972462612398108372840315859686836453118301657740964793009392910405770018448685792013544133100288857268673424627617584471360245332834964833915579677580756747364374310603594184368347603712863963227858057007198362884558840839369552422648127946316676512301266980670600996541055155425695108611421511653018735102239806252209876857169443405295920804845063637856613084623515993934032145055350181945901085066882365311405661929742236968303625418194186848315474711555538848805477859052705508598270082916366955977383302373987119865579734768513822626730329989372242363064818791835091617790610105242174348308873090830795713815179092101203066678638807941615332154858857445855871117381830960613066305859034747521845084478028442335934848140296136865382918337773217132615240372854340307595545024602789415132492053451582420154430884718511217192294143080547736653625581412495810857570316362940067597075773267746232628466827195784320190499458108179466990122618559036800991181516382600186581212191223807775964516238951162473399015081491181970391806845685145878206467100241731325251799462472754792515573611001307692152713110357715802589567342680135481077062582622681157518817610262183228049539980970695243588312436892325985288797486409124864341016732843653907793562080603571819191960519061677259729375350283137544730107107444126601291678811628248666450184042494954119422309426504882416902818291687637012596806934634571378256020406179709649796944033762437252094035728461184800124021750079259392813881964529754869632458066465505732982607034815707631499191797281789270489175330302134296763406675377777731430949626934031222249539713954181778081142419242938719011038681922917485073504544120402704354898019135006861824974798407398648785895694565546728145548058742366769756305351783475510949963443113279103659677520222210260775160952267240610774439203358034103711514086938896441902285287612815122167507674090015895142846644935755351659717973413618440377776827362255324418623270200686007219568224003562533459932784021559198907382312312226974202508449775462317012168430068570891789960636326521049820662153235829568820028613659214292748842523843756318411120666332404741672289663452194163154888237056663388694959758306377905973537447335914522315236235313995618287351201123082200694784759164215203700538837980765291719444019041966611234715017072060207364761825820591440869083321033744998730367264483471562002828994219986469794592927536081722028346814882259015091389298321636423216726411144843139291665114332678440407172091683940770969855148004387142399314753779239396836532602940080824634176553507746118803994741210358294036443713459948338018820312687787393762429656172429272542669719267421634728291300214165154503084246562996067755540634039671320043268339822729137441288007788472671262563643521280877614763614544388133877736933948200543127889170224975443587540244234238383203947308560739940730435383337041960796435536896876495805840618364616419960730543299944796905344955598015452288812210723558506785698316085226946794604516886262293660578439391684593633999853762196307379908181545394204701232673124368710249591312276209374597605871169315598716542505800221046991123866628459783481485570235228384524936560297455045191759882065864845042331016519671845490762399231901249726496388884932798513481082421530058006904829397201639415341473290919051898301299216658803911877083653283247325626267955846395376937664350218033897130947988478422849678196452021157517688422055962728090852325800153090983320559236793556919479560004724723393111951138124650826810308880696386220462564855520224438712422149574197864688085235774318112361840343480903894379779725597342552882904714128576819804218662852742046167656572138725902050866159843520109087525595001667630674569374993846316088499166457578703681676890373125844631667818894057517597601277000240352088800007559334799944861906224123335019616881835173722125688828022166201799309221396359015640881426726450404905770408373658631629463014139960881162730282579250006695234870261966892929237777055921602865622195170165980955896685595935926032127769625434092541887034004274479054268101357043979115210279760059903459514773410551153054013965552104655463251694792235600876369631121808239459014242165757206719604940092662361772657236792117625615420859577674397044372868294081867380089118974530199444468979802931051255540373325821918833688789305833661296346773202173913842004222227528697304064830608207956835774685692771499545611870345504666857067691320605192931360442267020022696101944576210986586213593293598052536889989450480528140555911035442261782354260863336604733267007306427893779554329850447022612876773448640686169197191843744680992872386767406395908018363103525669836002992052670839840103653515579673607391502534255956517228138014776053317626306807008080598653579226457233918454398793241412590586661511926838123260073586204733614999552740842478717300449084668118119461874481184531790090025897041643161699862622965946428264680028686867890081142187797408580945450432142347803724848444722265916780824348820176925587004509680895924765182602614826613842399373685245336199618641426094710891608116687361600250030848850313566067507712030283303510845419129496425391951738314050898787669452019586770331833315908176214136767754772233162252302684970213675206113472415319400975578190377507368672621722943351106126869120133241972922256298989689486084994113787529117542349744434988674770067791631699759082856198249477226756342958601383282618199015382515910790620861696658291260418953855851258513575809414289440418183514355431247207226960697574760349415902744177500240184274080237854205854998072423815460539451916365921724766523572192310547295384476109010646803986846919728674238919698488488714156772687180202710371323813020127789391673168371939615655808544908221144041110390674537241406671604291969363304434435191752923804673502870968641457768414365069628703785719076967227921026016181191939921456544211869957684585888865030378067048456699591391334403983714354471924925901621615337337116153094407214545659708228807070578146499983547702128740854267401200675764131190505370122498415550341617452000671008635226320264960534686211101489762301803160527277437580265661997481631378572404584560205422625836852077938668714722615987316353637834620931976748844209452209165379582995063633121597547904658323481285181556812768961288432815897980009882786096204679380759893208340626738018162558810041862299613323305874949396808325789002714448927923835660706669438418842550192730166141053231526898018211668602959215374385259370786948625908006145482802460288746872195727603338347584288307528443305466295941272210271723201874469051134285966559785732012883820382084303532253418777966016792179750346999277430622131641714339463159044914066851554861442754449681920028140449274163829182900039712766480034431304662033036410723270996328889808657933060820510168317673526127754338143664963266714759625576943729679228873959279760121355491827234462502586132878438756382701508278726047917293666078082650313088838640431326017992999720454699607085096220191853045425828915402379424160356969772766964818904216551147494909966831783821571240190117864453430003641802187912967329783163597207250514071042086681970796799503338886209631147880909493975027845363999616832607204034061998351396090278501133599901301461482005678017740428682153312092429127633353100011785485790606512286785566332244621632397303211656891150010621056383567379170737456302667529545248819913987006408813696097589460880807755625158635378868709799015935179327651552989087418033708704422750113909445224667253742542226092229807963963415878105512990147512790340379943700760038748538177337583404999365567985542238598156934425985957198863332753453453762699193343485237721704957617035122150758542499770330987975317710735479467817622130670203820712079943209515426980469397954318436759349012107299830344335595191931905694955658236188365632819821663839113292337580990532579795402411418662662122668092444328219690718238674370215414192892047248613868924534833625995733860526443674818081047984990251845008630271011442021184278769815132098720523502549523395880534456492214001038201913283937225914251647618573009982321890108555648664528327281767373636834466418889114275643083904078598443018618256224490912265170883452695377994696798689192622404715463697711765154050860417933095510137304712503679030019857187335576335045956398276122925321985744418331402256994119282824211397570375344728289558980493262785820942994812142176823162835428776996704719743872206237610229866560284100914954741403617316360761883894685279135411933944812901867065762002815989215819948151333357200092684290691934930564244062451323134469125857683283244951796159430977495454580453221711108291506899866629892865211366358097250907133264799374411048011631915680803973398285589303065588903800621806330675683065203394970702072651256647498504830725384329879915010668365289682515219690808078774716841519024195980501419649605015115045279772105880074334636553583121518988239998568032260660048580370158802831567144433528455681243284013905227453075109695727544522532398119058517389692765236524047501948209226434258433829573808309503822719474174796121432505469242190938738601396240807360814166906314100310854096060172704830965235463510780579910495929668585288673284646325656603076582003805744449895315311141902236279612854702987578289138741858143536149747160519105593716265339117757323959217300861308849370920113179782548054652630521393542400368313050611358089292523177600159191644294598138845036135282149255205692332091119964096769970382912438131873610455466480260750016335220740143053657492986607803416799958431604360792119458608130440914711542473121064816248228000960854539041256132185622010709967985763179494632120682046093250499121862355111384381545537684382876458393184076217451754162484702185719305106273190401330581582839457331760619729999281713808607263607009629631677773061922361617662161783552487533467731825809793623101110216749722582973863227296272366595544224883595093568480339759652043815115313200423369137974300173759740349194488083607033429519768002044895873269013727250037617007091872326206654270382876274815961914737070287055472748300807166575236404385163389813647616578107517001912063418074934549079004205733178743784595437165189992123791024316550321702305278968998793577103903780477204377966674164452732818649044743186260838690282758196790547410798101120225867301086914609120267094310064451384350540520085243610948929890759583637580281772526991312347138465548786301865321670408803968818884060728929827398603842417148947326498344140284150389682657875389023345647048743804372759258420889065152661568065282266333188086230545900201221703673675076451945383830527808405767498877403323776558548421820144897866588127392337750079220390176156445458225159195321739853438714783897774426793682021802587613723210367363890628094254552512383978921973679485223244158330382442996255169258181873290398741008255992061900943520914366956495611042042975231712785886827291137641647139581223567346190072442495248969910473435111707886175662053092583065455004925429383374676851897915645961376163190451824630429603417503360169661626486629895503581248633372339979053190406999211763888546482259914230714423930147795497057596234369968237320626872651050853320939397034833915008870595596414707121937067856217914798691703541258101197373006150263231024964194633781847059360369149694173194861620194387747876502087065869555129362775781090645075729144160436770129168237823763879682931990965458600838751930354123919729811270619255722755898785929701555097032656448746353574223603568107494586379410133087573308341867943716042130812725391715291741407441037298543696798128074688714471565618339294480144530627454498676274827549004942994427105083655760790544737651263515688702011376996684675110385440153284926278824055538260148173248308213745124351584328316494974570132586083407236681549921430347724675144510884419855899208049565467366671141829689844909443949097501370769182721570465379188012083579695771568091212032461229714010522110889793113476962556954993184816249565201768986806841138437602721638204481408511854445089051782655109662260336139525833584423164353671879806032948830627540789905237024566860726931039790500429901741015181099372162660100806195126036086449408411195632253919185824394134095719481871419982889512024605197077069105555835581752736227865537644001954946945449272145997105429938042576504524159314219969430540581387516515707485135583802123203796643192476062714169226427418242887972461053281791004579468576307676199419716863261950885669420339690799543596042063274658550620144123427066502669517873677489107523032675440405970330059460471380062483272764501315336711384954389983984313115064011079254142095765219660937637455613966047166720410581284226658867365614216029788991365450884110606485734698716935458757898727708254409171155333230064089356772372344638489469093592161374855224739575340056006907565288182129733474407332981661144981672236150801468868050338113325764372200519682363280276126896278510501794048531056148995105025100246517931721879414738738468376930573802521542760611951035513120632917349764800929786093150671719193317805386408765349678943191378520107406229343331965927899064705989429385984536839016496015177795609360134239678775251864744683728778598270547990712915255862307042508496301649856731575678496484085530508259075700139730648422947255820151505165982482150324129113460585297997554232216968219980271730191597871026709911748530607961465273953848346981713284756149097108672803098839491926497195047779467716841872424293935009260642747615339304735611183921567145321409102929664166011997100816416357860463027301091145646124479913543639005592355762328493283705822436316220886111995911164768288380227447015129706143634624176488531419307860980538208553741170247408612526166145716581800453851082083083879969761186683378842090592494435463681889441805641557529045149654617285547838042688641407372277098548253260985399412662640631621076896948674824510045912136013884860689766750701079366258266851989418480364196382888043041093413667633682649013611083021006922334035330282693023898410814459735715152117876290784405034081532359160828244605632223179998335371750874202423420061575905687980535756838132654886079570677887214367715267679541102741022093506043646551941149380256681154402457892533741350723472642235312117710794922725712308669383209648502184026373036194831789533645917933015766493981800591179343209707673772069978951988262444866725773413360830135960081121514987390359268267387461063260392735862898160574264251756378817724528595742137827188398169343933101097452037518295828332678280185404921348115103442096519617874037594945765773632565869343743645266162880512196937541102421210453226457999967850020433550766692101721109862802323736841138952560736863173186028136611137053373252378237422622672748503437525468404552957222526226313553717375108037833184449688613702137058029910746161974200762161877769144558330818588818911218167486762656980151739820410191074977231577807582966639138024368151897050069555384625012137355909492124626756715097792002873671272217012581764525253061226926754175612627907555680675586612344612251840891777015825058280408654236212297880074497719143006721793272560726146214804609816265777339304985778499136381238718054068237723091155873340912350146536417144268934829688415689899909152110972959859494626192636378002730222537522723835547549752701352292390496084482410299889328204743391171781883997829307395348467303987361568119220203320000011944882255143141566326429339320175961432919415676643710143262365704141422549251826482164471548255323421951037099778425108554284280806454559981485399488839478907102921005763288463489126549509212963126937788733228851276331019585440589510603910410451020966955130567859228023581597693139309123930758632144064998049862960529882967102295564616373218796353114766700739211399273339942470496470565501942169499212631833720620915782337584779710106889737708907836758468796568123326438201903171090953116557637447470689230162527889622596696374298593601938128126847700416540805427927485728655211518450352256425942717855110150955491360453550716066997242234103965283097317361897235745371604544029989249531185209682414662878452186902926446597825344176794384725214249107927751060309607342686159605026479064528882494166022723800190467214101329216537806296069756354542003318153346874043238004058885864801598321304545848981128480810713055182914379731544164164788724326932122761190050420020948925088186834868146596486905911452507848304157318860235454551481022000636938847356003038628848899138948017515794632877975903883438321356536615747681261637864981061445819703064501044123063795072536059078490236311721979601970788513783897736423605796570306772839048730931026634362556412628635858587805213437570718476280481259039554920633036502918472704437628647004771704120241211024360352166699646696659660008957598068663068052947956886339676884813234905387840144217536571235012725589934198045591845152700210798488352770980628994577416212572583874589816127358780588984762850492235202411944478628761220582011526837632140710083641364735491809262896024547686862899821541363102511627624685921376764671744101913656555748797159811573452462667692611188677134956931669452220020187351050085240431854786631743862761757141026091631563714849441372868028344264033602456182296983972275688340753543100164782712905006442900232953806858754714829285928940276120505773744334183527558110852535992277482924117798525842508065476640112014606603420837433243147635927456146298152603638552382064313922381018336099873076032889722270305442571862698966545513075499932704307063947902189218937019858031627684708421281442285733292449499330332271393562643767161800228412170238328863785491069353685870043731941585372604016143839079198652389991668974166855822172951373500499419662499749713569194536402187131749017237994419584044803499753134299049295363444870829913360601479725450484472870423980153335857440364221035488125283721013995486432733081037352543917043669082291295631273765936829004482952041253055770706216005323705502034160395601097281890739813555611185026644408988127558775790336084380598927339131164244112689787472767773040347841466050927773599106913556614206370029922598549518739550428330511966884777064058486894259380345476278815382062983162517601685376154723811640226296345720926480768852164291157925652913886052355750191935450632859860751653816629877656437525898498762645015035855813179081330594714477349920823027469343636432107064333689823241866448816591008623894121944332823582493949975746827026024345940421424319431989771909839988154294398607914188686917435314276187147050581130374876901378429368171422305165282474724268080808104528372324915550943306464059533915192915763120903931587668330437922947207775262695819962657769261653570626222414427345987881744167524413844708017427519128474403499654256005016141432699484253368436946551558525735283333805116336934614012461490333359043737388814958332026800679202462681015170271802696039387219052674984904487990704490870586714838872331648156159873219233179123495006036028643624960952234572055046478237314621451357839294242905363749223611536333771007469766112804023789025644650234410345248403875876232919586461331805691659070583460892506774517727265317851975472431690871292703965484497252771448803279604581684714148086742873315094209742512888680410576346500786490347461686163318878819543106211904311141202902536479858158981340001180636524244972520546823517881592858698943865841357380047861268541176329404741243321633222539172229998720178924390461402063287768833276855974614648613990881366463588597848199720374594025813336229877530187362327174709706089066117733914235062103181540689791092894733765973961641530651822643934098408975926565948311421887075937956270097877932522278176333158424369135009267535256558492525717299168412273404458647693920465213472418033890687324606286659335697732130254874675714072272011459706348553811122255792779995496646424044572209553837909848570990549755384963624939670752777803513863468851925651683937459579404044019411089478391734095493707734326644767133138047313980990053213846495895068162012017438718151323219832489422912665839081944913499119512993311548549084529611988609350530647743559446754131196797470512835790885995839994209248346756208945215855525753236590929353059833018831491233352516699822248475820643682992678542143379374780178311269000652108877263938696905878482366125156784467966382013603846763456165146515848836033663674908251917902501536048450822938362538991354231661008604858966447021105772818068183227882954995152985038873860012533600817704142556485735662100323125082436959126248032107352418801651553148922116812390550372955922735862919409923066653301455372276023813637683272418267479263696556859084717664740105833721696201463095433240961206309355343091978474127080738311389625338876282937021800267072530105072095138731240774040167126213966176179548897130646703188259569368736669669380671705459182034703390340584433849265834644739168632883428548187350801473168660719161983539226774520702805803835258558557426247342664849113167783402884037004363003747583582294663312869718690779133364695912192969735826492639865411416528784594777549475183127124966339200490846263566158493408348561044079396472247203196973065050201966638209853972046493370602139827311578079330272521356568437359270700207433942718461017794490944473109883928460138030686724778532885090250274342245824216513114591337204735389577451140988239478058678966534717259431911783407331627368369734079059051020820733081720309425341801021198639677870645407381373150753861420207774224213930790421600062926053961390960421522752469166445356826174156241536417300541644727240910414097327672477099812316031613293665540391756086844760486818101775744420715870821723412703699151364387572102101061090853487493164351190650681558248779549988241460482553511378744333826533081396173713623613806916209502113859183034667642812033380508767300130905479845676446390345446774865389419547070572347037676555598223417006541775653386050231816915592338588997782301589614146211971986691066265952550126905828889771762384296669659873342518644175358795210079535353128229196776187638490763346831292155218149628655707820095461271083793371962003091916561913740465601417498938864830401949512208970210027417037041556250334716287784955513616961334906443424111790623862506970538478209476203850436150586915540166445430796512671487243907601980697842884970408604093814129802985728223235897753450587130718849737543530668026080287752526189122369935383240561368469887636611694975228567472730895769425126914723726067146249514454866182329727382662354074550613142610408049872306030202844178133798231416373067077243859307969640742498640649236637940265337542014056147092401225238219494590425761150062591788626851126300426840376357363406567421489589520197082465659723916878349255501432546550258677598636414951601982331712466919081182251677983996035424367610220669201062584105966938782298488524091102522485430000900900319609759347297946090985956148570828011400150285109226020200261230360736232099376295128309951397416823631243621997628079188106606368433408253495241259306352010124215284691044411684133837531776722242162175842785697753388730006078814595800743564046308578567951695838141340386931235062095385981741853797814377344999318850729025508717207804908339097495917376732617498029910938728578017198328356020092504015926399986650323852727547277037881637616807298956993491961901065418905256947304282740385357509242299203965987537284913246116493118691661286866807229295797489489876405390541486781156383196310343107534751887479628931585836399399760597366723450290622682507039751037070447907525259436702664005295962185863848646136879693906906688521009557369353152060183390074185766401734723127002029565948015102158341782200871105307631401232453206397878237673038024126638320992648909730260760085070544571617067409368813700047884345501458318338911465488384589067697729829583870489425121692681613412713836660252466740287858638634321036544676551000183986447512399201173241385204436430264926032408738403505432629159358578101096287376765363662731654561024109759006954383347894053523579000712196356868260849908264215000486956621570142122851205963699404016940891466161817172001625271762816423109532135358856068213656278486292169548860318144745280113505556825155347194141063534269346150522215430556156931211601020065667580928941957848676149075551214851761127259618417570306124522756867875365294578876460883843824290257969833030248466623804886353660768891108523801480354367500339498468880852079327561848712771888407765700106703149536062132588115637021569498324774514648701565434449927397180164177476513158055886080822755577018668720314999051043556174643924665647975629575396604984583277985763340292121404205274857646299718902224596611524972031715377542412758717059768230717272841324261713722405529164145429375956266759314666313499813603349269891856991122874929629803238363000562528988729901454228723902016356066151983371485567308507552025741403261798354414683800365136107589044352451322595022874494986021079238934900292913535120704291834785731158286799586348858089928487867424027495601760901935695030029281916838572761769757394220330274925464683855460029614421782285656961067189614748579239629391105113525585809669739778223212728229252685601886581887467238969023117098753459723276794912853974693091701033020263660778498806933653529736661084286654742573403416544925274862461242489037421340762298608046927409581189565029501268542642290927732193278330323285507428688260123540115282617905982942428787211651010446251548369180494490178611282022320256515535091753627007268087641029522124779221551556564235806267272394224583465352447478405651742894534946411642604853427853837940376118485493288411330483207805727771416291425059264274059389594675586924612800703912211188311075674568752249395971393966176096845076255488369366784526826650863660284210322563278593742480790150422391021085312908382299057062850203857213742469121553283789454102394893137883400041713411795821169183714857776028203505188380892135511091517177507198007617192414926929036837175776384163856141695766082436338390992009833367963321310594538196724618614569063523601177678525166267335409399591821105109139418370938459410611113583689942772570629318482926422454024208301214207366925840025824181211591716600728950715540015550344765254815322719184923372928325077749478767047342014150867037372192370114378189568247804968193715907998091337615365130582033711734776333446204276501662777903433417484625085068488394870578361467166283284922692023382988385877137704440146877365524010055680235095410553709963196653268082729097111918067219561471933735102600724040359598210987804637299137343279392553825573780040602954154742280310755517230203206591313554370385967194437121261858565863281341099089906235418046301999412861908563485371129229631329739086613362580839410141381145244239593064090880198593077672076972419087498734377484659527748028566029880177723925589932323997845038135027457056196052282152597982030452047907330771160406587536118204226549348386408855123878213751783356230079710703535634613837276500491328570932430651231393310216263852791392968581971446606003501307516349296928801582636069138200594345737271464748772732918388474747496413299594098490370904176299139549691720175983143937145128889014158271804544632708322873307027265376167639111982606415684187846222411554376867147343447335484499133107169346480106461423418873714828562536341691441977837863654191590917807621200475950215460653792432302724290709839850605813833557767700567625589358811444652019309043778268348317723103425918616610113083402104499421096879905536587035356539694000034553487910441227532829328818207940163831134069853219476113918225283050898300780448303652567224466482979882187236658503639756636629309807679953882454538748182505829888663074723047429790277623791841804653867630612060514257720752819880095439795037987979986203318638158912940031942776996270629727522860590650790584564487435802772484360112542175927474774003660072886812651180096207894386565879667262234263627618931879096326092615976071244621068414785975948578410863668074005701747358637670540824371146925561127711334621153455239923566359430107247743026463011456122086040875403843505777441774557682503282890382819878677120409006033200529127557309153306097823426717141873615643419944918344346704174693843137969638818140145900691187640483738041123623324241023003101531193344095307843280010139398912849411451050204924777475213519682446477500038249042398823986065730814536961966743522733969699429443942888130720102983483368421553146904594119878896139936346164344798161133833068667360698628431586225450143303637889317768803488357558273714528851420018474096242642449944797243528721001658579193925266158529910041198255960358221618396544225702596456121615675277691318908250876246926217002796349204780989997492908542927474213008783515132422692067010649589673773180220562932445743050845055560887924741603821701536683724920407942644179124728971640724898642502542825776774680225201110631116858211195733982695795416868944180043052055861335979684577074528072049088334136180848818746098389872447888673849285109778017739802213994507809039871049151321485663938291729677796761810640767084767864810743281575651627208442960529656307000224006568754126711156803800576753732040852195703575006755338772452120576545944455169796516366653797155849250452129520607113699305595762455933678675706784208389118831821189315316119870282649414780697610431871727962396869532350559540151138983540300722519117374335462960671667961946872949322206748021554642339602485111468502607311133955814258976899715445008142712281955905588133142936728070379248962717640247281698273922927185804841635074777059221519220322319866147082811246249132985150929029775529232726907656536308897741312367138937917321374639484543895450322178295293335912068548865329574325123500862575122349393466898129702909045444256064590588257871886200085423464309711229654855278533773152866195301710196620094041102257752268971322930592055975124143243514746587424629078401014948985502546182354893798137699435381349192356633987661621308998978403489942684707696757988745424488645957451244018992931069057982067013576505640663686968660466145031067305363812696498626100127034424082540424500045080687328484361629246393370015001611054505043776382425819849469799810452646452770258632436735447732461746733474472145732950249946673088077081199425367567728898113463180727216968655383561763110923551234197185184554780548132382177120198187557302133425360180757531688731355955201861834951505588160079886533875330204810102206754829669232148745563846956730229680780835993950487061473706346786725183957048786181547942047683485279745955374987374599358906216550885265257369337176111867911925970318940072679425623950122889898841110003704407829808353384327734508127385469527893447466269866158703938850319199178175938049027551551502239543674780393830354037404892978227083326752576267783099301372887113707524160920388994918083004288663949235645147907868915602426102396315016749498487219039105343739340019811863531670528553659450844482176330344026498309788728057932919608740335809494339546720620684947399773061236168426956303428707022298596171428907741781043439850148942967660349358659878793069431529582440391010290950526568905760716802882620481378843974470259293253985689048778638302514460064554393500043342372287674419966150274037958768536610947327466585216319813330035928021297676806485099523897523250948096316658245062039737160229708149391757769128070320808529665219081005234420476166364789245343228296792429003593525109051391711357011387105686907678125085375557073526210547880076964586781881280980684558206347361617463766120989150431624034373245396455303749747444327190430942965087311254724528532454615560445673042993082767607291469538342056862776332161134284993401010027620490793086371280855214620291793594063797540203391496508888109059172634486221401771630805033502329156414072569201501089641240992603168150475936930778578713749068595226519104672298670013506802681283696913423003548964960446314811099546854625133556626920474181360909968727081413106899286250269389061525918487144012047549911648716748551286763306145980009612513496277017272142707975983891849488143908355330702050123895102141001972523422194932644642512859948061135356935357008363253100646193513713491744382515599334322861880014883710097972075675860613593813781115685408484934515123758400760138139742199749648681091307347128314774664139950558623216247026611457538253651542865272580590506927842039033825527143646028825831936210807135838329408518150303644242062825526423456537966301537472480171583674209847030026310201757442373261402805624366217101908810640324707796712607273540544286136998276956276957399041846544022325628209387668235483961669619656378794695414329867992310568549778690823629279862319348833265876874143220854860096031812588529720523658466879536223442017807119263926843035121998454794448870694659297703262778617958144683966075688013252242171574264870048863596278279358962857359092246783819756549475153658533267835347233825408402643135906369374677330153456021847799672140329876953153175280431940177780695638874233245256725046822694103223370880052213348942560379937795245188158645380168581090437898068496905129533550630476126696760663711989563141083051992420327873870191057971563030673759428927624271621382211977646071265808365941715821508921473603803015134723693179670449268830365856276717709877900945904326303251181418076809316797759042636541401189531438297940536854394769485430670020709276048139359403722205115489668079515974509769743123981955313744980772924645108985334386005522917349074893858461632417849777980462170446619722930452298264982153587557360706383887265082251049799019539916609045174380335618815276472656945394072707742280485217358188308653691612669021667044348133188819489921025811775124929794858718453510466478916155304991338707927921402542927890575247030536578885159825537778011570308202740594823315859046228773950793725755426954721209584687135407308557328016489644354349227965242935039493235056628383904106531281657120471140295017131986459934148284682840848985373697621842116243209479407801557286322724502297646884125286017611027249285876576539155799262429635819341980995881820676223550491817580496688612328942098774919816183318721300462158172801398309680073544389224023943139000661091784612999342827483250434711267076751711944304993482939453108420872670744502646646799482490768799428239152835233712110314264339633367626512477281166669540540143116682411447908997642792166655468700735665895282710162872946122746270227436312265613928326282401783244709991023403834603361146926706382918936410460985854934854778516465198773272849994119224086657351869492548767289718331000049618614131476959052927303185290992057238763191655719869892517896986464037975943718801207065503115465575302288387529789671066284713976162717391104285457730828600485937873739115587161629651311385862429787074862332733588663494261124422433205709497613100665482451845322170425693102248319794594712876000990177441977347582216967043251219370205354405793023940252366878861423378894480782046409964249900540195445775329773942071119067644074732962905529733091713419336883966022760236264808510443584937865759135227718779941916632303606920164230225309208181813446763586406216298032724482814602451672769832865160703352149552227341012429687683975635564515038044160737049058200023722918128156137135725599878322334118785782191131237898837298959334914632153352375684479225674673958318399632330081107197149281678027912277021504297679249694242098082930503125151883923767975610267837969066536020334233789231873069681200138265652189963062457344695885762460959926580889625178101378477349980215479100835497651985592823325861261659617191068159153070398564964548574875242813477836198685017312947298493839218168189170646310416125305274919907396279981692611158862993727232320807982815445433163656345501829868891069910493173382328835223820347814398162622339921297569167377806787919853161531336167147141495534833257201325196151183315927743705201806733257249911924133802972474627917126361299995452154390318321478753324354761101488545774987957699980804909839945872255460871008664082066867039790989125391529135039562311862463459987409370372799910415014502905004511965841489010001860013625434761755270533359365766237009122165855783484201942435546717050883860585652691187573260033115919099328635421791019391435786120964659524486178476242885922987700443986273409505294160357850927556382672759407045213311413069900288240461126854922220294489432958641451947256860296845701745024611105647140922122837575013949596477788848733833550662763432386337182452147303423240087231104389228338787298522299685446124781344384009475017693809476828783119417976735568012467797866899271624465532082349968841854263188666464524561710717485567993910247330277596501146970156898654398652866224682994932086658056019183987319508273967617847324660645290553570609956181940011740553465614035821371588991521643709991278797510823030951068016064459984049938229758390202337782107607024594483090074777511155572968190247607046961992926769561326612403948960965116161185414743069929430280801615754842075961203065415999937147440238768734248129740424204828595480174191152791131380497736454915827499387032227941689756830153521447625968073104333669071290433707111579136020080920991127102935767233708684966748816647523651363318878194002123325416922929566865361196686205233176440491581264205958595338503037033502233173710875155411653869157909826510193492842992803991728647135476088875986140384871393874687221850137564739280657904095429637935795796241736950366886933250481805517818164176072169812042031157373185377105681085495444747147768683228217379381971295917990341269837731696743795462632982320133363801169512413697994214776467869861350847182225105282193063669456425073488705653272277855353374378503418925207440682615483182636356924431894870374749444518536569756139059082526255478978822209658642308045979987086321954950682987400991536542195274215856114714978311311225451480571677665517110938179303014273810688032083348989408608036066485398819681211064968695788427886679635922903782441763802654834499728663879601825120046726682359454714543666559750032015611537284215061798477297720598404361171017310735829079151995824855230859534466522172209461036413068798192093067825852536028366487173405244266537664802063875181046951949641093882124908730915146427681241873799884286742664632223692288650873509788542977357146024053718576746624081205539961283340528619124642538634643359546421878711215060555955023949663490330623372428591334496768559552713877598229312970821664463264331474889077122868469000551160138622984277272096263496391225473927557436641877413538576051205129878929961800706000046253275809089125193799618303041595817706053337384073499954662260420085234611543178556748833226135309827313676126144588109307747015842471457379794440119779629836817000862914713394574472525798320196487412904524439933104527676998516672619365322386399014891260737461250364621452180967298845338711504019328879264541081481551903875021680589860474393211246711747086375726720997467300962576229229371801756718789621008944680548151539171722155936238659099546474945318950417899061693232889830451181282661065860106641581422233938101940251334213011441001308079281584819002323908666066325727634329624213985475766534706735546661313764608381944812803037770344113227121838221293052889978641667968687229275284813125563852916016638459270370673252656558016820112062541699300968364193405539778204865375366984311572634818128078962057619569254947348061046514754574104527587564378200299876248761519981259826281594909378531712781179002422880013347039261964048867756417958219173468189072745568468907826681357188808800145900399910601819277098206106669883015402941028377822190779957254720423316870326667815493711652373699592773234521388085122099711843914205089374496059072915900386458813406987506477304024590931481508931362089674340913633746265620689027045745604986359985819283645105303325909608794204586926674200425780790033109565416658481146597262353692639420224684713900852968613362752468944267526271878006994437415747808189685789499453375585553328961919619758942858112140521345709616641176243969345756016069955416411616842023195019891360277543204064854409747949833051410928178659465707381205954283514209440187607974217030875009126093220649945922659683039122420794431563767743070642324771639066239926228160538594001659943089670312604423427753421258849213882133154672129588010431486462236798478734715852576653617788993531681997668190085795930391463841407755105624926099131197514777244528853587032886907796556455327560497804484383968674700332673826811124252801551891754621998889191636310719032535404481032109306926458185745448394969421156211977048452126641000116582993929738776797537962231181209313748648122742854498686617635921332706392341027482444886384704440838050501186276776165427895947877877364372874779267522745673778739780737979976505074411219123385747682735617537736336766032983880749893619701336827431940391231002370853946855965666648177918720471399794401246242883838541138418245877496364178172807434552770287108967494997985980658993959108129342178833814321137382241387742976392839983043382132550013735497495505753001790582812556725891493193555062453722289731176092674283701473565075099547267518314861321233509220822877237665997186447038452479766512554857892488154648372420919840774325634557304933182358689206460341169598638277772185348681035909733514362472892595530949403845000980883384652964445873193280347321854555980576642067507843809710626069634255216940115077281911336344287443729479711721044672938113823560975630811608620599640258083869064550726602261644976657190009387758228877567063845159117790323591283325314587249218293284139100886185374090704816589091785977761965892997447801370827551298427235612518544346247840403284920499885518243198861489091573258336242819796661841624472667967822484330064040790479421770835780262029720468468997922994289562619388384145630130519756560613132563718481394050909704619467558665681189009757212794425514608215743611054247418202565812175043721200159428259349157478453401940522310153461300839181272794664794725243975145798404635634744048954069321561244159446701464485463058491463938736579733589427372327464004965079847745241401377733444104716442936969417816759399114530132098505589933149775566717244423455861597988869294765494771259815491531479438062964645010701342908409560873448571586798051812984955045170166508122539113600137175391614671432971694635476827081170948864996928283061130026768729066744869617248169391858571444351639463829387600480991820155793124843943467090750810754467152707417655704521076871529972586694443776477912355401419516706701497090610970303715774790464801331063816211209962506982879963399936873362716198549688921452535772148731517346789617731150349213760460590774549416832869602512222427777063438120754688311181075973842750920433740068980045014105712172020756652440411713993988377249996913892855626321439984948303798884679619175150038186397837424456931430843787440890765705887217550925111241029546612091552407679071971493936540279345341802188013636128603303425689190117494338917010431483597427089210913651507998339555496874692028272307034957698738454348640612807757888005410925591130832566189846669564016134054530311596346441782064118619689582314538052508828246645652911708752084343740813553464765308166229240639382078341815222929082286212091576594064586895812201447413830136413604926311268102781735117825458780980380523624550057016429329143241487707280838873304271960449850578022020112408957013512062384750295808251323926354676365715803010512692039443635231343986916997255656227563439447992256634141051381366177600331028489723272350016693218817665665515807908708258531651552509012775038814572197003162641259095964662106082700865655869097842970835520369431370235761990245689417893950517144171208898134206251905937562138301233464554240097057590740726408807417435641580452819343629670150084146268701094479517720680873677659749994685409302621223134751419042227758994698494065792087343393571612363034399031653126283861811006213130521264300058100308930884295640909937776689297638770654158863497820129802590206225842598909086022422402816012064893452684690992490119560131925176196059043416332141775302457698266421937074743671560763831947032444284767466115144629891699582301095353253815459024037533990129357975373313296758413180127841144320869949336521302582427205571207083091631134376657168082440966290497295811301315012179566029753817253628043381082616914609619515687716273494676059044141602136754094225067306024859685525336997201246388675400415492423204248568350182863752983342550756438064722563908455287346499065234824804564287861939832371983897706035733624548868627781193103338021796465315771492554974104932607653689466439299460073865785916440134580194779397707967030527851800977733702305683878793153043197112529670647167020314706478763137987950680151244009395489896786842290976166383228010566589043986492035701958044117855438892435720383528706089591977215398023656960620922985598486084776531897616193102557525169061323104142020737299333628604907687391613218531025620327856273445379514189687171815950723264774757457909154336065596515193368710418458571841715219439398833033073835179117933105595792264703726672428635826293396469207032647059189715644902560285698351962471018799286517477065828297878462051088117713197802100674671963172562373422961577018037785724085238948058177091553744021094240533334654663633676387603275192999189751500676184449995004537490437951728382405338603449750430191206103917402268345473816913388754352390127911786217915870869613469741964362547374285831381732909547927035581618611866418452353405162005292387351115000367262606615293166556675779250764018709922306369270354189594360889357990656633548701710179303090288595181271005202065297133195060567851778036635764732911080888020535229704555590265547389820404429575439216054064753702290368277975335711077547135843148111997153532403492397023341493674718478564573111580246487946252340570788424426930139922653410965550974316460554301133481258703155141698328506374587532423311403461981452284339023883100913901320755028162874983645199004320205598655371725295499983304671862086403424908126942147061741521217303927257557814634320203353505761813960277660533757225623588111997852833441884221422705075015657834609476800029091513767046341484821871894360534521910381724198741551542220513102013242996634896708444047802044580855859177581848393621722208724960015399579576447182449579391979115346826614191699841184013873042135293591661428954584400165794037696020828192408241412066056431827338094452573506518051891787196793025787432430179405624261597571168017159127578135970269290623219800870510488184897446290574756657735304365215357731910452892225422244651910224209286093715774424190627110901602704442216876153883526004077435830068296985568973452610950808556753200871430568618132518281163146257441135885976359649136100069192637643087606764542464584653455655770895229947432951582719192228566880610537279496066020570628794576214102670237153159259955833672286756881302387014971279813182499676703227307776855081980235699571209893056980253437435987560756047566786445289620068890245922881392566900030118752312695035513542504062118820193820414115981461970520979049389540987105433513611591843986037425815922550537568560379811369369266461450491795118474664774163117026571076932651276752705743685946793020047905830559869484412972636834312879110255761720363837619017249027982051063381387929680678222160991692654382703413850135569802338411656232505989263072288782187027679384540889450601860494987718353950849521776511200112131785618827869330426857301740121649392095063013101561123793755308324079864034836873641053227254004117165288451590555570851416060147595484948329232078281335649531150849231942427381346365374243235386275869718932597021792215628918785521081005916694735608701131465344838390609244237866548989881632882068725954138047075223173463324340168944637613551262008308508574082607039491203990316796157129085003664625144875093744000184373803672074673245293074090952694663798036908786587590870901694363299894624094763559298094060192806409191758942878874193684485375118898565793437556894739412533124780092595454711059448179879764999390642557058643380459198220119647632467959429758489432837970145206937649558674769129564179522208467715384277239377191391285342477980750356966102008156972073161053424769412130096586417924446297714818200114605549794357868230884583002681104581562093606091285899069357129213421606012929950777042029383316645048459844393867482710379578484995064780308050918259729878787025210115909894059901833946131397491861088094127338147578370414127761527078352245259665219210460170682595744057794952198062337872621399952459743685574834693329988024358521372563140259388781224226403499639748693900597138235270765970093729759892102797575267852898935212399857366895072433995726269657356093245619052425587719640395027111762570538647223848386042069850791806005161252438121486435817718679463347746124885639834606183852211315203814278719987029826371129363308979638436570707634482654047242858269217805556540139280491113521598619615379126750228863393587062284512109857208163126826536703619535983283407313809307193411556509051823268725136308269754216509179325547009984999275613286168247992057434981049756291491865600246261917185423164598089433064925598736441123870828139228835376471164143190528765455354011209517812181533125001877217685787522986551614917941593008184069457954202249832270281625379531564676577334297503897385856243262150421706460920247506563260428523553315797458900739513837546769660693211400202336622376131639717121036508869843790267318849032646667922932871104046606792698382058359108048705406296859963365597898102843762043473402412377165306238583359093086231369314864103324819399125323966884073410660500987445720587519580642765980460783755381449611923818180127047469001075520582628469484072533230251926427395943625089279924929643604963581225178375723516002682996807206938223068035724487927195937370243614293044135818389695490294510388145317964713707130316667827469968764767527404839531503078890286209118974697082575478060378568085811214412112251243823594765616185845763356640768201898993747356747515287543672891053765017506698800476938475255512122355106178762167761103042386722964283803149556520854689888165451233014636394753543971570328328277571667024389128367665172005911302859669469851488478295357544871162409932008087298851576840243319430993887047395827849576676719549944258849382611128750135070032359676962802406374866688836557363475102868511995182211387422716727990414220198447172829650069831645250908364347598083566776663054052282236831179521104401638385662244842091319068612517686707130324462012576216073831755798327086498785704293673429341913083116777591365614794647949999849507840328475592558496358429854687774291973205959854477213222585331339005983070421189995775038150332399446366675596331128752673204024841376101783091437981159925036464121975520312581512627098752034424634618701021537756381947691280399968979370318037049506896911452594131474483056789285868369307150622972946633000056170195215971252437508929140085075021426555958082415556533387492052271051126072967442425591396616815583944487740479114626106885672366893825404842669745873570918268122335679259610680172885883744404857324735775671373388243688848903276904085726333711526904973797038564411849334366069420464292700241528374061248196685605224936086710542666497049207389316058431011483234335765226333523724677751602052322465868079731010177623590532822409034663401254120981292609388848635213413184038152917577845861048556999365926816401121312007777341821367220122683423360634336999257924030036320912766447915174093650110247454500521466859734373294739172504512195627840711895905553155949921918865877405168212269605749680001126740818852680641165295316347301710434446493785773590329557914614995008968706600248253853343131163250214360444184459411033461513192466019801904032306718757141811336056688801224115523010440860377161855787490371345532373829466004806995003293325254819130300806502319983125022176243563686245698594858176703922096286010801573750677613953427780232024573645295559960903880224129102654953563394612597990436245599218198354375519554520953593835690784469554121715586281448861326951076431785465780731574556407366774848288827250972528658493400540761359729621318051767785182260627671112079269843550848489216191331733520715597004393691081821458377791156907101438288123838892348285960565474359441525544745198265637667699393923065152974465469338525703815375657442237238016439494034999179551641038308726405103812243775122429397400315962119581129733333079941596590358909221395485704167132252621527189042709030112098195120601916083956279633859122624449460054906102329691736269820510142273183101724638533797330275464414102060346510504839240824088963011447513259922403640509395740946360909349481065308700060534160699108943427972537082988775496579966871677596898593674954875043752589506104214418843035701553169129251809130770853663762823590909098065129707691546729080258829889676589277141997157547720011783698186326033881183556148626536173090046300424355119520007589798583214472407848474086968540656314180006720995173184856036626511923633366793012628485759198244124152486413285598638863799883085974561882509370947916377123427961211453350187270744819320892678331053810784955322669751004037386966211188864402251272362218726314981257900129867612198483618673386996469756234960400629624523515719995349016914203874074156466127215879745438617866573156466397934626167284469635491916083450382872410614819899159028014491810586000703950422911251495993338625815470050863778171024190960845331282909633732492099396472222318428914271843542923387022206371930234492574313328512412548796411713588400174783781690228515473588540551321844746729886494971688438163670706535999835019343850375741143557198504968371455132361136020933281955038333016699703153822237644437564836459780906005497189043450354802037758986517453737521677035099053759369021362195381838549509951155652060615836456864991268177055623424600323378849382719053967949686463524150587148647686906453582082176672530245976696290327372673393266598711871078373745212590902568810598639877530495676323676428676575643504413021925092054536628408861778806972768210143837585736983775258900392882412841455746321802795156295292591532190967674971155854900696543946484316900447971074767242185616269040794022675367867501894053559683264042645355864204803831347926476326247675818004882091808365441857010430447224305911085070253435180595187143869423657680371095055026736757496470298283552478508365480274626408312822722369041161571649883352172036640994575020592497530972872723157485705272397710518555090588167493213740549900534805542863468085457043063855616225478997786400126498957885663460927152810197104277341691884071399072103291604146193891362120877287557097654933947474823740769715872218687499585354756404448791423099530999960388264692402071898065909736328200465941942936242986172261788341415422266168177820591721261351967788060149142229491588971256260302664262817126901067096401833086045755232042351948003632751829182537679856112555506435510975277668327737497300301833786905345971097857672425347697774593613900730096026411153664320300776899633671409045357439016923133773800704323560494065285258888526008720851218661436960512211453310597569478702352544082809780424183641462362863075186514089224953426112172840055663482676272603254819044260430290965380799460773160104342989670953811966432346198283952422547933109779560274822066354892036092003326011977357262781056550024109650177982355115947089444336435281599867125335380324227744021366943572191028476838919770486386818556121572950655571512151734411092906479915025562619020025065424566708190740968308628234348719235043770566592611727617794024524375034876117953716738120007126498365172029586037467304815857694864856040658873412420929560519763573734497035522077547219611661385256476922844034239942272140383780022222739301563508110350310797108765543722639252858587580842920329179905977572097583336733022791189277029166337064757614095236465531267875449104881979876275533300233762410910783733587904602279341822398248365760095820886821552411321165381337396801339538344455374967301708301209858171358888662560286495487102027305205182358558709414494148459221337439811435564432439382592872395149127950318153320789112657368161581279123698077252162461440529117466858557966901087269930677255133175634131053495250894273182573223654686603469812774308261466449678626890308244788462926232823577391056598344621393049615130775262278811265851128227395031217871092373226680345905679975630900125829489680018125275002463047168769428457803216861128778720371899171386458131352939324255996354194843897154553137525922909525005982699231490154685197542323591765524918532283338260873544865488154078243927579334048103270788844196370854261663956519660750382333399931755479035721776833268887749469863499198181168702349497186291936290080335121942695812315693441125382529603923507574867504765193023819041757885694429960140122411918205105899014307096084454570568953402453772540209411404298351170201183480256338270949090388652108617809091297419794146971643412619310125790021531315418748527625919025799832924338983172441863305046168136656687655718035504259862600876863821343199821808714926529393340557847524660236856391986605358576501260393121763288449959298988982594980201972358418975412443826297701356313929997402242487658866774373142822495685096447933315271798778685574192118922609920047580990147252465752133436166704818161670425218519312854212948786295956535794985950343824884753084687780111703671073551378835334688463177907971310018426717958918488601244103625873464018373688277451769197276061914708416843690274495256826419383106855456662425633463103880454850034829809435937031410576692399673543565682659099702868899877693890291939934305006277936109487784174620494314791655835608008753466850567473624028964511227613437472573302777653581048517950412637749616982954790527513695620044107651383172008427758514955897859413888906594430539620132512626610536296699369636557160981180242317714396272221828625084686109102171672062210473646132807154190571876982469245927827867722025280761287158881254922267718449595627680883504900752684045007936056774411474389226679198527464117457386937712734355237745888135195328946311966670174004320085805905194416389395067665430837642254573492792428206346295335549578301607792329779616588551542541977911030667435689525011581530118605653718984516260304674044357785260809123732263633854978244441181648142271186814176937334958622877190769887774426062079172022219288094194509524158641712346317319097985384151141918821708289618983092369767449683746356475850246639498241797414946709158440918931159431788156772878827202563876016947031228151198396775301784577653003263632556355065301927379700627994421555880112205106925633168446739267977541871667406764734999602576828366671024297033933264850187603707346067411489010400439209867568640674379901776177174757044509010048175846893454554219892631378365024455005957917747758463948144010050721522496332026759560570797578416638878744210363573601445365584081725979520373553345708191588720893328717863771674236626132504850646435906759291617134005315135206815078411120014837033708728114613089204873443317353503476227587017699021880992677949665463110027187772905721201636348202505288208295758363269266065703779439514815648196886983802592198536063091985499762531274178223652536062566652538259427317490506342985176565988403178680989813559497843470741611873113184753911827132424675518959265290450548597282002006077644270445345840626274242711353698786170163493468833558990071627121861289935235708471652547427409792895436452626105512464535914497901207193111448205694470469977999437904089478251589158483639243197921237631697755534041037506255307051614838161203231385242785383902593731307318082639534951179310702768621936585909617166739835073973398522943010304032784379842951764512756911826290984523908097340964123156801752962285897602797278319188463895571118933248357924065591209332406069283765644909957868976730657073864802272582551978001778874167108458366092248457495038723528662656458656255867616198577625212978662602202780239362584322840978292309144236328888931252895892099747187153496575572326936946565455825834825892457360029861494459529663725656853806798111363450279908532548031226485075397179830509514623569014214356160833150998098399851876926213500898056243438763322419084903979630669517242379664146066260530087881767994999791762775405623593446963780665979178506987832436645533200402474944112319325293269108203050020813644780001286722823829173285327359843155791265278211079663945496321496604971355440758513531730021372883690037469506685908223249019511461599654940486011762614394824806421282018481437326823365920065921802086700730699774275554963475705025434197283265963053317897158747711986360134624994353886544410049087231378888532809611100525493743932939885453699871171144275923367234952596229902664119125817146296452191253359260643820583557022599881525809631088490802515749492156440095966539870427816527192655412529432881035624216301070889839976037287184207505114314269321727418528092136872705233920378663907650747891319065901901435661549474721930492993205706505742319432729625845940506786648858289024693260670607866407696364397345634238041970270430642429036250592195562983832403039355752563211169791276874152327147219282102120246558108325842229199084470311668047990114626235344787858604521397165331744711232984110769403538922350862648639396903606688116614758196988064170419902007014720826403786196925233465301441098205285836287545951307326254889023180576870429504253593064674556840381019457471983588675724304017305878790397007342119671994591573641699168394122081555530153956336493787411897298208699864878710370804218330735319491192874603888848701639484207379968997112780072686919468690080188149796186183649368713466716953242289163037200490492785846369390314322541948478687862325559545589771005135198413080914505772330700599107354964042296397748030835336972606227568240881425174800479277012090303917041795176071474579527028924945648511919807059415256509218132032826735027692156532310324778398618273485710660203321965196257920871327887603983608723549489341299066090376764292178632403507667978145001956821745813972138633774807136174546057098134229486504803574806603509380026660526196008362628473015219967018817036385158276291462443903212428186519765270872236554959962737575874771257094267871099454886464018371986663741338887962562255127617114795250682406192754733930392366337902318765261825949076233094072528929619707433496456039629433663848944281198050695012795783116947213877111383093924292917211317983658806991630520978659479730944239299303094526701005828277981287027070601546029741672050481173365783817166953005490051688320295209478464521564205415838556432575984833763785574892120627060824527134506705986892150097669893048614476131655461173306315671578315700716769774323992146770327923586442267135096595687738003277539378022897410693798394073354502665861208352702136386266510969290837242378096229215490871725966779790387087896192431482497802999035677556258712096581954122980660582743305349338534570759905837602699649466515878298016349936864080631407897130663007701273804777402527051059572007527723546638084144172876686545215191154821263181178867031111790061346889382596044538780675773292061112076281094657819828306197327037764526757755940846857050131390585176718442250274581784572026880404459167200805957731640674442347104212445091318806734923266181739222772634625201479559375982382172098205260026103339936795696620277926235992735204721807152025467827862283817316119023380572229073066186647825055249022560414720239571857867134798404320240303498695247042286835525967142482134696051748081136581612263411039739821732106453028110128984071934822653672820312140697635657931505699810719925311612586818025054116067892399238138174017639485780847150703109307021980866375128454871856947992673881460844612477464010422177701220103566458309363608852889329792872105009053662511603604227954881893884693253338768937861943174312243888886781224851134388828661640112148482806463112758328386351194371042045420077855984880237833032907426366680239763892530911308630856251102792765772006155505626737957254670820965248414272622693751454062137049208453321962783278259742869179919673271420417846963371789137117359384986667500497015990626999379312466538794673294832407966169423846474194882034068189760622077765906834339276901073276246800608946006538850942843784016780571161684218276519100656438865021726559712859944530171434914459886216032091902826937018659920992028744802900796159400512371724150795942019515378092413830502601321791038020266087677486489240728000255700885723674288616484218298223927108542515799115732831296747944048596305675320466208107730698656048966910423326870640950375873536645868538648121267993136795975103865625982464154857895197725788140130433533970347532125875832437937406146944529406608783751488819106617585690742210939649990504225809585674141253205154848775131377518658166498636562344577002025977409675796547839143299378530332150591939448163237918795338923051171931029694022229994286985485130899236384906732311748081158095546113199959573237282070572645900753908051348362226198732072934332385098284934538374718277140800966022014179551695556019712085237079169317253913665919984545320053907567719617383471071613089396410523446133557895328295410849184237641340413480800811026730717934940788549777938071891453542147976817843603863847967865099828846646493809395595249210247891274147907273506232064563509490044612615150988351855840215117754941584292805250349643137517459526587186390235776154430502849652811141459664829096192762372609758146322705889650451712918066493113858658236431308780983570145433733356303543619762972482570069745766702426161343957682483640906275951625588494783594334488550071507499794638775570068599093967350436202294088527726604692178644362706269012238005256744557525632396175763272860198858202704253598057340596981603658847377414742264630467144118656201300953271030081242400553867863185065228173465746209837171324258257244431023295201097336712584935257076888601607877315655977482207750047351171147596744232282904954092723632275859734883154577851519762878840206687074548234928905262083002675115221352567609767063874446199583529991886414450150601507235566029143864270349271510204484959667983030512876252324562115694288445261027676956786487982016409406009832908225763994572682860190454439246318859136822739994655718567755421801620742909669413852727725432989089511298754979071594853386870267536309762143874550654539900927360205972993054680033174599394598399823896689150478825329710248575797353368951509069240748171775105351818807234261315268329801814915253318369826269860022553401762860930234693038435193691018665838623083529815913259405438556115826312703117260257496162683621806339920733703159567476208234906485831303594651359247290071988687119491865000734625898483615527214699825428437715286820536163096181455291409897603529437544793081506699404585236688557559873272479708849333349734379845387461054064599301967802881153447075786251339530406087381233031903786100278435492270842829196321381999210946184441762482501349160687544995694248132268710075169130944191425845502753147101321477208511744819993072014692044210842290212413643953341646410934701199766277404580669326833804958343505048930952423934407570739460456044855109773760473214080157291092271290298942089663204951514710167281040464846852752879469212490022836865282506965152576698402126163856034551802078101164703995908534233955497367352475771203040508046447649235238490134814701462985009069386315521769357398201692611022221302765495505986225143216469740170852491261296715474309968795014286202597358789421573309238118054170760846797030720433572730312945629905544451365368960301417803748723992275825690336422303169380055785191804519204254029010075427734924105470888299858702870125102444948005767545822023213191466371601442370576175735168071086393824686984311910052743368533292972216102767162519088498422735962646486321158344262661210072431391348007288993244553016001962208230040669450668088709873147974942203646467322865293945622450841069700696182318090627823847854414990319979226246603065524312480595686159097297153140351355850639453233350927632201198844382258420677494392101408195605903233039893418372528030649367135759229062135573229808808472449226493299344880634438519811447282860862647204063237380795483930966396975203403344281810251356207425620116040539999655204866600979144647684951903541247806906520875869041327839139224185164244840781017147381352116325987158237463690414297327214363895962400271455149611588330699107858410108694410696553456641240084063718396446608169966659071605553426684265976844082611818076536724822080915101636981156580192131002952057311012133839613811367537490871754831560880578222303553483300965501476457050269739365330517583589202170934076478635028986741164995723997567990236612902881595305070982763020871558713305252132116205304445697128044136930159449468139661547935987249207308696993061772383957384895594042120770785778790837904209141674912629326772413917284834735793671960415351329929629393259808166776405968225315715254496678582153870808120383737743687684424995750100593394346105370433625615299178870777594294682904565740038138019524269468975494663845963701466304301160680446748978955333067285833145993754331305982670853912235892648421409440158693023896502784995855237856699762346067072216154355090418270036047817212069749174095784012309277679634711439560820976757159615857154187555417348248827119894464739595921159352826434890834497562516373613184992914710056933937655351897855916854833241068324913739877169736195969524257810328891800486107926508387599266086616927957149976811627476926857961854894266238771945066828097058998424744388851384942498223262832883029767812524469934818163082533589019024564289569922708978309190063632926721453037690557883581816524232123717268445504918342768522057565949086249280652899939406666600390025517368077731842485347359353106049498140360415984978482261147055515224107962674648116643714472877958176407530120266728624082993060301936271012786627820683696190380004537265238017551152918566855682528785507092350094867934669021792978430634264881828760306768654808746368889767804521523327819981683367318420119332029651785830513370726821827849504568106903404414190299317705097123975773999056557045409540528418916989794030486428063940996932796799675537429003410522079037101024923047339340468958486144776161649148815452061818671058564740866663281524426650107261719521603029850082162677842062164377577764128740216588282920627500422798790142193641242399267754286224375761984212653267283715150547381934439472791043999997107729709625616613037074695097410144706730301709379487722219992179848942992904600893466122440512473376803224514870954972514377122293112954261428627573313196219880171019328701164136930675835455467180032165143475219062795924408328795539860201175500601127424321697040646520445691708607165385269590305488963796912369700734276883920511441508229260755667895192068858446575705588936542645038133560668819978761988554086556869637841160612891905037802595911287318411391278268139288429059260543463821449058652795995911454242527738398587205175039597108463570275803127316009993795250179287324416218890162139263176799517011029630248313856881542406627863242366995365547557160746261295738278926217088131914188131781114598280916208014118312997234867110034455219805616600426265543280870516784354975391728241432862314929836275201047140108283469533132049622223667630130098263733637614605149570498462654224734669180369389682222614240290407330612256089604451703150787328292026319440634867526645509796576774794687963609366603847330256214533833565285891594473539401516177290810125141945639950541917796621880392073204632565741504288714884773191841849027800217165656751781006899490426417263241719898289902720551436089306283420031652240497446524198522439806515427371508597086279400732840706022607283752247277874589433801522523643979411941582189055787412499816414175310318713106168209063537080285530072266810371418961658215047110454201188675599977850324911313385130280688190259769457772510263196838875468800330221402576448269340204975377108715097427855329260065806450800487276989195628871036195747178032663159629980204642665397779342232787175663109780814334157133263462316535020862572342945092860664682778824843347429389444879378044517943572643103318159677862227673214041021828324227743258624718293707135816468449677946100856306554714378951005098684506400968501557808069123058303416954480531631644471381150030519866251828974803776441680686739849221420925660662348588549238004887342959968189306459904939350013636599477532651300994659370136982378808520085338545120556438521254895123494903677879742294667819872085385708217671351885628190074057448792562281311491980157828159562540956141507503970164852919458617710622392372223040601657610475623771160623230255858956893887310614801764924806557560521394975004576417206175497583188330827484920642366518318241847865376729408317729260188884546307171765331208247739921311141438319477825945158845627358100668323088036274904721316160264827094328963028859985959878649820452754925315024571181594183321360260900665982362273691555167321608059960484315093860479677666142638160411583970217494750443777541031285661710569681409460359329592028222186246847402060744074494460353914355268835322706705236125547556520442633302356215097278265634316450343164128256508902462777995394503432765626573729775135161178381231547398903155369978519767680198099581121155611570478940891680864929569590679728125048073166016200134212886988701118685725246299136788096148518112628207996616668607854935672749789350753129543320419880405235272690324181720352922901529359631394279843987294085311018862609834080152107632031140979474134495643167853069117177168966882549670306887720684401338807577561479956262248734851583184039339147778620178142506283618713907257094716651413248749212540776454267300970112453978194497459336403690978711084913741585081127517225485381912032909807438830688927472331882604831068759489190139193319985299751280768837059676378176343575516655468010753356416508242915959900993961854651672935569652008522456130777449020312835482150727273763560764746092900679810925777068771538902286602386980679431825901177913889794792835130450251892176406851167207658049851604291090696292604684854066322008691319925339971188940004108746469508213198877511704188227187332159591216233725770205106550105430764913501983251826558672155188170153650748903911406395279411655067692078223668856000473389997773327809245158562692986304465039704435075597936471289212021042271815582935937017596529647214290594707326796441261979717086769084204506201820047924924200920033273378109124156321208879780117421200141563414230462364509858996370458030598714380153032305866914345711792193944149509406889597124143414031859099998453048532987861431234509226476262018732883934470245758029958750303470952714075773039286438059364878425404099854798549889628252672922183738002960296205016419429540578428094625326541569619044851909231231400696477319172763926968484406481061274411195392909182550800964837549244440315335044908663829040038634114739136481979252247202759990503328766818442911149284373396606687754512410045249052948814370957870608557960616747224355708090315138308180031865754090816843192996136554194826941812180946645337980458982563371305382470084921154210631384592828549111100661975508209384737591638378604093685194245906461329173302885334488764840248447020415875677093412890209003292420079965239974846536509156169969934906620737879023169978308561664216131698864457775314389740476565465815664625402135762256259456444003398883101156156792318062372523531166614398575310147018147976117483711967816447230053412935585326021888364947779330131708461994675152756917881520257571390052233944604038221288473811669349155010932766459558800522101304285410368883763454556732334946233967494114329654353611945368188138484867199397235432791893709586229011744407700284169431990643003679813785161962447956108905818272889040387621924207269326550683976790524504615318373873531671187871813609301066193161743822264705807450992644278254313025600445782836948418538358369074279686924259870891366479999974515060939946400460024809025438919956155401929378105341289865397731020764095966589044385663338964740351629542098968531109128341773529745148741554108103571878974645911159820973396337628249769171082501597226519265960003440403042706060953899263542359332631921108709317811335175911723570634881240182072107342285132619591176160352055048221896831113876111601400744986271878123317855586563945654380073290582811648686034619907821395871675604672762766975352901201894864230888514405253142334975488305028553609028041639264208294504442524083568559917912407786789246406330643582208878509903766567327285407820474726514174972971284521140293318090751532700516495117324838893091527077555978774111045062483696446070172440923412509321605337271028772962629663450637904706814833193223596684827530809446704053535130041634881555899932955194947745469221075812743900051540622851713840784461545992387139522105593508841945398168374533293130347633415386357813859196341851981222270575863109732287683822651918456003376780591694247504231401825887777220811611816754286872961120807482693695723958518107847898555011695624450821510193446618642428705438908425631749414455090578360349803788677939998903162305645128172796376790207746778766921177245106441762727097588670316941050908677689500257599839894395503230392557103023165643613093996739201650873859051393885354107292138499513570419028445030781558708418969012854105238578013190569483539559036595041771777022307272245554723522205503958427715781632585454712505479417066566150226832935210009074214672368758200246348886795878361072979591727168393488134973166368799132239287631610698923381742828456973126304014363901248449694984132389483189151954415927989042048115155038122189371734434544716687066766928884490215162667182026440695721362468127113475395234656480271271667338383239315503769188144510355607412365592857608194007157235816861841513195548986421113483235669990683782704273379307542331741451616087796452023041416218952355159772133704879151856729202587446172355640729573247711198205439063082911042114655391532225043840488717015611875350581218190644668055010912592648901310959106883365375055985134186470581534449103535905204312379751159164049482050610228722287114973441848236667783499885887320799700484509175537798442898211860337250648181860061523948476463374029715768423328821028443890701851957815629601721281223317019606021953988052957899151578295701107393122764538942271242687199735255372457895618938978823840758275315034558913311640318506672789117895548885989940461318899175712937623781572422053120639009485973357090989710221551993286647572787135409286842058095858666882950828226922136010190095818804804952769703341070916369275460324872402596757646042361256812938333673737569434267248347115538612347812541286807596035151175891653895064961292456782287975255789184196971813969903077107316475233334462023257835322682638564723756209322589433265210689058784297308044063580914808792313507573554718393192925531981960040440167685997923240084534928880211322192496699210430782909679081484084080700864577198400666737846392536901379930372284307766439332209238487534719871523674890365055865535605728714051608894565814819080832193972005111563069995997230964820338003794176548131680067171236988140099061410633016165232393807016686775141923613323795271124833926971909182538088773350614135053767797804706728645944037498640754594401035983055070780372522975980397600263171975382062518696892957176920194771225388995928879055392846168127136704539341003021784741521240163680789359946503184246449145695203295001409393135506018989904599006795500861808940762274187525733134648443674799809967942547117818091207560255852202433715458056956584884494156465916212881492102867492306302181812611866374997856996537259502748521250943583897924454989668282116427689919473208393147238073066969717722150751440776738384998831410410213750006944211468310948807738976742605200298440459977145165543040921168511480402131438672184329870315836389919802898538455710132438814612207939670252341875724327738690448954004472327312477607559156756348686735317902345287806411673227556690779075429956002706483049989876624520343737160273315528820171813021737182721780023363154392299330630285693117726295252410391268497075297190960257603414178350682099214216466532596511900529285550463923864862855417777921790848879670184877805898495679643803851554627905488296079828448140403789569094836480598049293258718181024882994015953834338351937836990838714676553149608928107865751108374318715747872139657808695731878879321657368534219008937645674388221486424561344531274029554849268170380761512621620530909236289206454205959041980293542913594370484036445824295810181288407798602222177968772361867384361445634102477861450899345387028161892624995176788219980898382533080570022919970907000907365285579536814312830482065058857592101762146830852348062320454325782504947999876439632753306076692358020911719481887681581021069814255571251236046887636720494313265935926813901849959375387581416765444985191114314608521007656349903195735104244175241821246318190351755734192205451341589545662294433959367503700863192819718605073803794817093540840834260544807907473461744860453579579899142048196268888835926690325952858154845337670861762678234706302338053791460520434274180977057292930112238833479501107881544183420395003935777952518208242134136194534661947897973106963823577801886342895289090762392256335501843532782561722698021302223615050539871996786770405070561380937698037751928435904811193414301165066520244320034473455927418823150619341433420371670118282744398963353019328459267058110400977432630618052978705456561221352710561635854070678200712561420166400489251403273390443026083618511921658902376692220406891649691998598566877008703026193866372959291358600576906889766853088475876461752430188736460411840331123656885955025992361328299550968151912817927696298919040746005349565789828687364643456208221523037943124528296758684336396069659413010492784903119004246199382001994979765951969831160318140511916997236801480800386001940071239871097453297799766593140022193763921209882428478941965456647717684640156633413003712721716069460743013349508317009384667800986698426067996089606092865988400495629065957370186052743520895612710536984974426077411205768403921123326538938912898820805548837305157807112449657274473043135348582276281936881084154484205120008959352305971728069922970077753575903370543158192307885429375664827440959339215387269271561626829771547310564882260699735068153387501485591830842141106845588259993773102254998081741889648770149387684022914737465855105970034846009029123484610467937122638804459226591440316939878161156542587081888978843293846726710740193870768829609172053216334027590628306382995678935417673439806376103591065441962072424974311749110931367804271326335090047173584004483944424363784780427005990433550332854493825217242388828103665069736731187253703896231463574744040807543826520209896472635218437457206243811365673221567262863226348955950521547682738810352437532428903842418431025251306633955219556125073986633545675955520840965615536985166783679100521113914491873959133711250731756441540347180488563937252390435547094935850430321337146124788081781791846330503849477447938131014499183588700285008881455578867883542242426217786233925806121952611687202423016778998571534703777101873560708029809592355294783198994858179626470061064171975288153131565486175556758923806987799744490261639813057597227909317441347759176548834974556174366027929789982869403449909477687357817001389977444476830950589864197787078909544131647907030982317907042650153709267158405379088721688057323952402025108312641544274330858504681804267786434691656997221743255775547769303004594765415796870912001260183695486460853780674722200201165777158800663816873816269231695186079486325499915897671543507693322132308546288184724007023685617746638537668221246242156329938637255219612500188693889459189696563529770782889338064830211249912469447334169922829302262675322388315114790542654985158305086941356549530295891065563778939007485751787999834251122406795970039529433320960308951115373760869659858671723091320596884812659549675050956393685057243253867821268888614473839771457056014967639886864845958284485508403631483108664849392654499617675138613394484817351656588120756447664840263140259598673393226836395436723773512004334655093965462805014161483198153641802460434301508129959040612820250299897982764348964018263988730693120337017598927592916018978774171220510246761128664641013737244524075443221282183131873849300936437147585058558977097643347356709154533161603820625894991390364363305854624022274058862444189956585155406752146368383266935533370219475223669670394051125600486053833760252963276241045992219634947918748355843214621488387277767887198851005213944410126285866055172192394626270847416882427716320238013916085366180452843704487749370107842096142270229446750371304889152647291367034150120659804895766220799216725159078171863370744907941586212013467564525193875177180195139257561496321994774285440024298578894398860356776489018913996035334710522423151877583596393571122802060579435377979640544352650144875494196588305405281398154574111494043785765495990613425795595947478376670364213038999703081153704117756856711266406752551218105061312122860128377383379686970521285216297330296289072733391836640685466063124175505479980298815140523387393709676757619504573427935528917461173889154720472751839590797697142742998479462423741211879257049047883168229597029590710658430839980232133119842843193189633359455462591809846169375166847709305774004506012547537129596049166521906492470919606885772026843265806768692886307286781479625042472708250640060042729287892718632089861780091588800540737595954380005373798726080926512051508345024939509797939705068671880530476792751302843778913464390454603240695263332153469286909216660093793048672893957807214497510335696047397662313010751036165289339298564554273385043422983333009858653854870671055879306215925576437746854332940966574414345228427034062263203028986246829533383203419618996437326071753068051587708498677749666991477450246442562421840145215731755860803743953219008183903238668286742039585355668841207342561333918709704935578641729268237143663649843544308391908372567963896300122523601874886518111708752398271075561333358589387243817040783783790228682564101532161296270191989408904342683712092142779715827230408078541179128071791774660464911041902130429495876908037826287996473574649828071262653537431515327802476200565678677045410092711665843617506627309359828593014370611386685480404981889829515848253406094448322355598091445170782340796542549363892645594268904889532016462036867540977118889894027938323560218731581894505426928423621147141448584056434903771114421388561163418764383135917662902709714243407525557331541219861820222438454182472563138123426559357857697137480714069058215453295895527964434828328811541662009366940483658098055067440821619484627673551370745163268712672374924766052476691689986111369067622393463087201014895562944866222602981070912828464011733555872894552069351091037494389167853777745690656874661211236816171347731490375534531676158933628598608196243338271897411565282680482760269910627623569528525608586525515650242127506249067523452665454556010172207587799796553148124056468212433816209313519320283588439857128951181856439332531059523015338927187264205673783948871233089246755710701229842538489113783371961713835162010385724233090780339716956037057912821714691370513173009276724512575853651929508014316465432962132445145847245787831337785016889601880122485251170155951527929073703246929510638340993278181916315891818804665870496266330348149716482978575307895468977076418860776213916905992433560990113152155978969808263245803816555608559385092759701282203251066949884003593498501451133111469889469262210225596093010887421762150481605315950587038360064949770487645604118611899266649054185285963191818605889574847952255655304744028810838105736367495464262904639159280073596958148521029463293152564314077969380435079391249886149987006324899633384475456285802684818797266100556677672844773828028684285332781629437698060092727687217174115343399188161493039483530144598018318066604681253293204546911115038356714607754252481778443335234867658485233947120786043986101294756194536269774109283107619034798048818529319822920292077095044010049766494624546289241013663659479585219083633630972518887395713230222109572887435765958906867998056017190876728902949680990732710836325231674330746157302777177606253227490357221243737961499961972741214967677819253082311384801230062657473186742945361318353871133007143241608043235523751261058795966117052826924296451784072473456625201722629207026607237127936532520958717162891252684421064809899411952663588293630115358689210435806737022164379089572179211930230033301800134621165658167525808557513435468876057049522086222375588747431206777781971478012151723450799320700665515442217285025278923868546753301107913045292281407593073047849310300658062303018045984961359891225892202599769373126606934453377676296793067511994623890301821715386117872000067567594423548468147144416226493820449056296982431774349141888529651385899834072381576415947728177296266117650697903818129925629267586949035116847226550819210586474756527909638268076346244108889119861203876077251457264029127699694130031657588983207670081775699146535323668410942794825599867074197945387342525036667966648748233888916737906721345456405232807679641188025049023729201689218774672347045352517404646501319048329015856395005473853529601125039156722694761136703111088438351405965868319593445680780746459652925089136459014565400909177660695136995952919245869482406596337966719780214053906109405642482953434719995565733932040302087845617064934331942001848601723143566471559411737667298656483103204802885052549963511191481468893498958871372789127540178424905689392011171949803010180699885667954930583922954029717930002439395790483537889687918124558990875988474095503167117233582881917350738560044128508507775114983643764552989910416749561923097375493032421754789479865545183540492346037687380543299914574492667035343165974343792330406583693428897359159151340642636776587862356368248806294407617012899845249394022059686783970818766019848154134871778722598753989361132727311957648052819699007886159481707629375677171841259266504712506527643032810885713389445014628390251120310975275180994353078940044181112095492557381617633649760046892481242801955036069556915857447537387870276767125756858006754441956276097408899330150961527226011227719550677168925424893665940442648476552819490276722963088136632320655214704025852104150444549069692814370003553079312792461907462043746204092877037479316400690706572521373729640576986614403875621954228372132384146247437037449701841844167932714571499856593325340757961266498267887658173178429340296648744317214585104787596626994305183003789119966435153620131935994063223837560063829780171857082650984370529270920537395136572782751617745555053058842869909379533129270443933563200864409123800044155150986483290316976675476448504503951129502508914192214956338074550062780771343843851549487994683848843090388661603101140365252900304599476583861710703488693610311105443798479593626304581306793173906330495646286822844341388972986304970158463175681818229263306986836601226978890541288950549665674953257258460601866536637603707268110370166675170453425103041828317028672170303775039461396383418784755961059906210333127974804032397328857520460314395004314628976911813767155098326262415164610777828597677533758668893774853469402583692707496552049397168949915382307838014845602543958487352575665674538419381742310150883586279634231155991282121854019291535251214718901076141073516897937491163130968276720564794894858668889451164107826729358436875770411382006317340340569997999757540988178343380013759147490351379714956988695830284797619828276516914353290001803699777046096927857826912216789467898578441067118568273591427383476838619065171703133749185032790280933141757756874330274455517114295443907317464917351539039155911884931958428303056830937799142047942719820982584384490756694381483588121175571144282930319185074359466956906078815891456713029505319358195320641611001367027335703197090484945742914137035474968500750804061715608309162018247869775427487887858746277425551476370100563118391061241729728030423652582076206214318857375988127391974692171126762640223326117714513416544637166764847677276986856967103872129201941478467971049469458705242694865677007068397977027042160550355922868271155303111751097368447812875548493129177054717369744319311093041469620356696950564161761082171663352827899644819650401900841077403455527585579771034684534081123292774546611659725036186429182815780124318110818315285924351320032105680737407249230260969443257696687988458504734109900618499867950758579399231841596477823225668335188346738057215961868242752343883019012344456961955871908960159438831188130378948116744968633311309661431740340539876696954332663582240960268303477074542145335265063628594709627683472969971977867615477869766181817731808568829308699748559392778874930531730347379778911089859688675000748767180622877168819696282638267159889173198565372386141020036101564697934856134701633962055497685906057145265516370103958300848830542775077092287256820279933260539045933648237795339511173548920704198158768301134847668493626968513807720676046847095337683520662790056506726016777808147234288540961433461106437424091434773365088145781422272078583596264491930332585113798150631169323394926044860090946666933743276458848704484970202296121253086060242402199155817153504935857624444458059393527892139819660797960728973849388146638424868150156671178203147348592450761944495989713572879904813148091867898067832716876603693665147731450318786543821727101788087547978108717596552577000264036337505463818635187855152621924211733412441139691052194628835930293153449506621482958965703119119011102749177152952420112418427691593640314839657183522097775453197153194009049893260353577415685143776727500346116483856699937888581697417021106819621847079610329840456475905921906197965415765633576824623435235714801780697305172458507160911039349936841354861314735824000972769027911728846813231724669875731248037631074413583122323913024971328340468482466685095123020583112999183050997934771960734116164976536807944791041049963236211612134401738304871594215218974042922274713126899104839325832771764549797749525175440044443842629261790119529398484359654778316917902941254619447615288319719854368043970596189739315591513244808054797773763017233487704981235152551453378267354108816415987347910388202687549423521399604734558464922494068310118191832201874120556860602258107353442244159208809355822816743507540433992737637247061756443629748771605599092402074291065463469189775382498145187268201429764583520954953277846532391242988433824197933362150576863168362037791384277028166828416934624473366314755828351777753898217091251733278608959607635827824191155924010267178711761860147333948012523013522245897556722718318542944559409934622264302772765935167764133326370212245125127836094899313303031986362988729526010317041807735057491974803517576140384799378182894548862750978397529789774820632555156490007292929879942944818507968000953002811598708866424605807163038245304318821611733983014936696292910398229367890722381771144528732106091042213158618292518897990372621832478660411451095838417138417796820097916921065071660623077607052195549619610273533488984955072478515731758956409948057327492273595960618559702821832257011340626493415633446028878032525624670716358530979874052322109630486368405014013761863833808961452717066076288936672671648875053826597985862212922324412733234268135673539468384670864573705565075713307231813426755121546800098369491803688960777791522406597380922625590585023214281263671400508604942737323592895753047985658374136139640281407343992573065206868157386892672367255185831354824121713596728344188134710094295517789110423732098259507725647811687331831174075058792101164026909216520589524568940342320966003309641790425175113650355293327313399298519263410164278349708839512319859861473803827866021639740991272706380846045405043293373478083777759040198616629633753145243979888351004957801379727495937731887446632015518402790980361917664134342185689238763802959011462869036830604583983645016615641212960501170936035579147160221149872351959377856484072290833349850572581054349471554567830680593741454979439981996777486413812302894711559264975182107724241890428117578850717248454287269019593959358791902130183975055313954326419080868313425388711584200158367644439603476353007437660811165393945589582397443960278275747532530190189388753341227539638241686037282254877620137568876183902548434708153032269107206423989837997950136333440876392082897842801621517321341474638407385044332262471764558279711437115626868287086033928910220036581617839470208965673389780237671229266259450357739046831194070837097366573367067374341091145853589912453124270440166496926050825777963205323242863043527542968979204405810771133119483432258275240049124588453261195151519875751909665571554149127620974604414298793776596352430298632407796126090646323680564498251511278176188233232569104793701018107492793767630497803412483612125445835400350671068758944933213933708078522993399328205323715437998955217905871610767171252676194634710253250605297661771652453524531767168245272191417407225800270167136196107500777546548536623625948577501680948471711146624949786216597694134342094175041173355478936692191787193060821557316427311807038122662832959249939436330074403424335125804874146303908756340155154101120665731668860688831622061052583971382796285937894644807949412906654856371805359960242513247668475273266348755142072841384792867496179213858276938921732844317036124426942170335779285537578648273727172112549551506155593216627271073980119609728538053567957122268923492117155471865521474074320533608957195866664284025450438851603762440489011980487383373053957212715689324502363955978827861054700293939188681613669290584126348765638925887391673937115420228925829951860052280288187451738959468307602513565320200712442129053658579573765295265023487646268204512943477172999136158089349645337922563256780068264839521507694453737230684490872423024688949823737393931200599704171852622961700423896177654342268960819355573512016455692534206954992253499457530032839644790683442601366880907537341087380150647987131027211678242545430843563624717335737416183168027107651578643357969896746400045920634656700083290450881512165595861893267871435000583157157510792579466852625801239558086866015787479657074391133656103332810007544933874621244745261091333198542221108471669579001566776334300950810711832253892180890247553844634486966299465019038880337237654837818809599989452139997874009419331127118253633205461359181733151550419090626398485528006276985452234129285370671904411918397725091521689438684820398782769332480272897883228472296269368987538811387793015723298253805612797409361882046539135532123192453452437293276577244937307730242884111592040283464076720661032885527394781983514594836267326130087827765519007372071199675944762149656402815710708799826115819203655215709791101146257077885923163563161549168786006265235535772988607276872250415883091106556071021703647835271499899687313342258555641385778223526651443415128570492222508394828720166033285853041330353489458591960049837442770879275369844621515844538157525726393721768540923735231783273612869043176141350880498117985707726063032861543857684230654891972112409110002579169428980619732988249964996953265120947826557074694328655893076513315298378923402702256127810555555044886461999467941940585913028955975365056541049848452860508441743144549791153115784402258820609620076953581936718122795492274282402925706669264262645288982459062310990574963321283912077852535913101712238013198206819321868664396819953328277761718672209157563327389638276539742818913449609454971913242347062987551535140143392848213033259183689103903113116056930366447360880352464092737589960363111403637888206950698463840280188878487151655888302454870351115592363384182234464712534923128477117664767371243726255357712871679975891075758673842830698234166478703436678571764340664365487276096586585298354125732558143102596980477819758697693135846253846714108025372537821518297726194581904631386183377819378933177591160109056145918376081149549706617856404869755511085508440750818836388814213142751920422930565649662282782009925006486941081620854632645540089450799351935889627658006994268144089775109330008202817689760525282106923922977462579125043136998064298348145510375974382702450753670479482631699954494841106791319192205275204682812798067061561739198214838464856505609766612717916461088080144609106923894157913962586135971508019459531161656788133251509020625709641896711503556991452542876496418635995110151071596121379592438569470922601406627377558419351068298209184241014050100744244619058521874187965809214063077646203478071890377148105621226385104908247261298420971970948203699708609179976274289014167168937614044764188390836191029326536454590932186938094558807656776588664043994217849849120287758743396069817192273420774225422278796436494995383823831114285071710919191704687770525354268786982779582304608623772644137386558110419603468549395751498569761316849559344571708422468027600192129403134933111776113997304863507214039524639319745569185654918620060785706165408293262406078970188277318819510612702930618149547774002843277931237305440089978275037250008579231697873852850543114026603641479494718944946231528489392026111472412280909930606077081769868515578703383533913329333891174578320778064601914973183558273489702825730438444842751880644879918220422271270592685034603327326411678747439624036148081781461192002732101545387800978243158334346897289954092177032219929559391229858292643436234578818656537984479888260681952784558720836828817125232030520392914141012689170598908208334942946377339038254387813900752959004785737159130800168698580970160844483994401648820004777562686750662470745091504916358881154366588121316761734794138481624717890976218415755976233816272882346028573178896795242168556740650061945959389465934105334827109778280029976949811822890439848455845496256836536498680879006905509250707810912200128278801329655580377415660309580301225999547560961311985740853361463169117187474217534083298130910859857477357269821033314346098609279364224240839916100403793825593248412666905383739178484906908981851409441223597370050887225201509966194132648802754295561994669885202647909708958373676562760780405059495992503714594799530460563153439267394863685556765549232505637548133607402348076451817075741717586152969976455050368950603388191524623658402170446005095739336404790308798339743315607500474064250354472482327851459453768373506759471639661083378188260619536815272307572325861798585325820453616556364255891780687613871286774339179288473274609560654984137720279891296112364635611704666408661871728394226058583946708121646400109208612500315704138937018986827613379485394529945033231936827091435776284043771076918589930683600983333588735083190020701716390559233796830752597674011415019384622058332165248734848436466490865343116144662423536376698845268999216924862441832447538304254094798692986672586780211271932389457356660206469016485267597242293424130395671706649488659712314493766997205735745298345082122384668909431390161446670477753010809748321934720983790394309777025630439751233585318173242907364537486753526572876401083351271786609450325306300028612905958276528902064679819468468495432922344884763928368292311372918674782318459540233455835598711233164857047375775005006930327277645904644011511966093379232675502788673262189830633059133453259590730040284703323369939705581874609780846803856973059297384203637395511267357394250504784819880902342479067363472282347064339549744017749850791245776334274495978883844276356057268465943642764356724637249904014772406831325533274991783108282461867944549098752788820140547474735819508479131737233356803766218500599400105286414781766255036500827511796728338996332335621424480089861282243847267163311532676844516552197940625301352537636772983958562160781542405922560014006891890658001114497643505264561837691975621638056033074947410498326504520651280056409979486025801825890141075641462572658432929701837603585359381902649521002380051431486850721173832535304346697923071766059361005236031178613496390877631246817653753981240583336767804715540356581369750279921972424913930516120492246769407550254700119371804993543624998675852144550268144478274878753228862766052947317983076464073205751120071991435133195119481832680578222250864133780381438875320918454660768623485914932709146634311866599553029739063552612787610299626343859809086650466517301986091843310911759789781905134684488500295246715146175014833873418663065465740387503135813603976598474772802101413642948538719579022075739753601418055059206540125134873578574352982912694317824645177396433001630813829573877111605861229786264614849517817343088764815531807944067862271038660991803431323737573606467306656846329754667769748655656646883774882624463015615046625111545429922718247525123009424688925333291354723389258038756123248381648636057401974830731613797791202958317182394994382684241759180435494464867402379165246283304206589286844245142811204247808875874318530696807331956564808564327426569113013304300037252622745835494282378738970108304132605195686745944192070696643596848597098591667307562534901086965297330912494000525387480691255414673655654288717583088201693739951603060155247532837567609053394089256099668901012760987148983296441455854986073930487029597626110769576010339630723198223398897447788102384051027063319168648088810879267369240633324960064668728634174027454176982957096020167790104172804641046717214784899075592784658940289204235561006410305157069624415614260929994047041729748909872614645826566896161511816682144093512034350799528788743497652755409224149231621461703724538267503204520221574727344103210004917708171810989330177940627109259864785709065041068347183151833242533859573862525108975069900016859431392560599410685281740940591240328112354604199310797578673077009900427672293878080102531658963300209533937006071453560494775299880023720490045415263354615725498404823372435681702749814506073612434104533422762902464009545379126382356406395375857722152948472263515154470912461214035529010160533134339583313152301072412635578392493055694211688553343288989216956846619846733968804845945012992120462091954155823900616622500532373579994770777064110240545238560001772764864568453236515289634378015756121104464918614567249585561362231678153538030098774044061877422716027991408869332688598793023273565724726045474495123711222485053882131420495092928346290781992054390325258891222927887887076869238078820463759067467985476716062847078881709513043347481381959181714060245684588182831364547503633497081009213919044748715945593853635353377311681205200882018492473086761880610611285192480716243525220783662382991129564831102818252021228352924866961682369717922926872016058223102231566889462317038025854651593579589389124194246384820167611176414086496476707217537447812562925514883637929982322384134910404683060754689283975318731149989074460293301575933966996678101199378801388716153882323275517876108757619045949845155595415659455379107389274623487483715070504610306459012775392448252630050840298897102486283676722146413093227027125078367832541275490377484542141007750769428069658558924667243547193964093190644052914819198738230386827170816733270459187036205140951125327823155503352472162487355996276108566122146470355729876789739915175604744664414260093279270081565164110788396657738736728718055411146610870461266698491586731880585065833525413740389462447533850773907029085676830122842035684608367257883395152771136369585006044574305954067110936796813257078937958679615466772680005307484867633341123978269556897727984927881546420577285874401285387953958401618294912147438009910797843420743838200235523328882743454508800188870130852870870507782408134874413584177903681409368222423397555107488000370123564541903047036045017571767712890833053808525130639848718194871723057874665908363723298186452924870199758877161633426192574866740363025654734698310213447031259809860717328416411656512076240845862613527907924994538977519257563064207653131139301094725946205163301455052818665632931991124316651474014892553418180613258930192770192199128349493596949262696122177614095029877257158929794592429507373833273319927307717467467207112593816154855060177178263332920014523464698197134187885235490986912085469861005304338517226096504145010750793861157956360924163258626047478413540693986412817537746909441565176950934417560035556216086933705104717934526712592767712902604536622295995805968074715443048234144702288097500760412904801853749460186658556520072305944069082360980751997152800870754435225029471941936849659165669620859984992146807382025027814191971158684173957713726471369188845818707777762180915067050243118310241861181545753271614699429050699146150860302112222490039417753296103432051876139690492816510355898876506723714537356480830312266339136422057915145856824277376132046367101632110032780973761630299197364026319074990125005803027008673403621725593988957112643772943677381054264474080056796697808144843232172225660903403429887189433105423235603744555078938336085123278797826200208201805264144251004905987476236084751180620190875022106554928310947066149424316815213436704717832840019203389901082900877730582341635243795806326586546380242452608616368332746020360813284253729082426039468951341901926745577926156177848800421789739193170846299176979337141965640333630885974061724978977384500147089207150016731973529692616561775240837499081451952007098285823236899947430794173329713917037157367315447314586633817792100315495840551475961509019193819838909991099420787496984012874077426647755626756074937393058055937408268689679122776064584069270065864587723388143971111636861949147750917148733182400445950486350065222346407894974394757547602276183202279641199945328947756311429627004219132748972039663702212149149739266696701150009264041929909521946505354288552401627148015261144487941591928714919808014396160966502891205860789556124495533325543967314737318773178008425229141206477072959680206591725392383786013489664451489045707245986528100414420909430875773032977265708410468911441720535177329513009019199946108457890117442968928593738810506143318725016291025608323593951651509488287521315331635402977874176067211123432858309526004630246055048239286580411634897374204684905755214868373710454912623684585543582086705973865780740225872586080265265624209716190984119260296606842688409950530494186332291921186318111512458148391732201747232167701585944859936147806746456239208901517496794845552456488296598281992888477890373954862987629076136274138824889076139778788303102522348012942973327323133574649500549699546259381188172440278095560934060430323067468973843096117269166223363700112386512638100752606893153054422306523686280579694747062229637602045666553194323092229181315362050708139453015154614739844516792107564634682998645795497068915431115191996631500030687381838674679279379571575303586453459230369705085578677770142317146329629955925997072122389660681599348153722925780542543880313622450441223437786367026335572772452227240867575688464731918144879853282932288659991897307741661673895154275294964566160957979381926895756166906076655495651618102767226965869479024773050808279585445123032909456147225574767777223718298424121386830050178053129273428989255857544513470322795540274914767655917096332707475403129727008487374899502359793084648389926716420714435602375704345403655239327703847689114848566092264214744063658266165552284665499559253758831009476168554004784161084961089293056264547412241421930794673911818331028232277526356981638368181379031008876107192526941461211318972853131695251836463544044563702096713469236542123503098882455575771927685047567018597543743571197417582238117553056417414961420148996561475294306926758692177966443050289108243696602888962525981750669252772705569411633566310289156847985044235559625514170263515351564766331271479300827146372447024510992060848344452510343517031370832579895910089263732433108621472466724499235790327066395185490820298307208594882238074169096041763636478476011386609985173862036616283629076708122710028104701957588847344431427748477043753227818633524912802442927845758949644148305798633850499760210283416448373283349360814311871030350955075324381767119496938845431562447547446269482118559294587674629085138016939070173787120401522836289084172495579501899803047246612577597680143040282479761854228567887145959676661567813242324950727127324049503924523963542029925247897211826205451997708786194329532364963864823127702967994447400944686697067118224790695473677674086894263608760506820565617180654714255355666745431665741593381324593101128438096300551575344032146264960491743775423991403304971399677432088836679805882052930659505528447817183694001963437788067926407136411501883946965022532422453665893859132198420348105935495669653902857829495772241994524852595607805357113260091619403670108788845768089211327309778143357275712198035084507950344675400236621739143022022789819221497014525158360476683188562784641491100772257555439778993043846465149301461620615616650023512966695486407308864000651917253328132141560990707105665634184088803807601898968530883230769847675615139418129344312778643724253373859002369417141430632058869764088950068718828422160848494871992957696990665646772647669102763661435840725591463475671312863211434050284393073930216625584700557395011557844229324986240880855208514368411451116310023180974351742980439783062092585594741785234586207818956720644655881499884240417464506267197577354949500306406791901684290977613454685578730807212667936875408361753423665091616448703081915979155833267649194652459524765468926620486826307917563074205832861312683075800021453068609248562282147210049322881094383486662762908477665382979433436995905274925111519491103350998382428741587950724946664100406122298216504792300436754695305533074572107929315792974932579683616003760758182261507153378534898033003259920960153610275048350310986360909515397655234912711999516024317994058119561503305431350947696175759176052698129089609600944820518295407421650878459193709352235844485531589607748974529801816532392687347656468476180352248475080812811525660952492162179020143461566169318745548147147836068320512382045783862873502069344587657375157387750917258600213216915552062175863328463985319629414970153798620147202996269548692700142353187744594537292722396523951186351430644385223451217369247097515180484689397715395611960767198793776427309376961077768714868177753663445061420722036175813736971248581467586706045860946039319392418849048974074936767372859065430412459021760320360039428822731476511464120325304443794172222141151826949397169087753265416562783589648174015957624491320059809836595512621620943936391376914540538543630155993562750666117971778411755739228263548178879043081975764444162734928043745154531219358762293178338851498599271656987294702537837786680494537497759112766021875952415794542750366768737260208338303017727053948222045765618225181102135167632487461326099555798925955024180646461824547130322533313374602802876426490398212542236668133679513216976130786062781583241201227994309159333007982313890636252636503630589083414326232928429762105463070385769966430702106798665913034949138940378426099573824694582562865221197322152851995742083822993702071815580627722086291406146032116133410203645227094098638030078171953389143053377606343954081971381752382518207449174613302545166005326424777764083297157366761310821682263990332444983086247633215303233881632879746804998193040616568355481692921516721684807225502309972035310346149319754827756385811240213297720728934931892075890136948778259717376603420076676063575261220508238873089979992258953571868445702608918548155777023967372520976057995641903579957173270603464838738038400839628096167675384213497168263671402351300925518683452221939690220285331575121083338139905656860027460787727298149749517182094846249097597816523933657852207194116576726033359074340432919136274908627010802526405313755553748560470735008764393170363941024578517641636902611914622861645330952058445527297431508849220932800898909910261386458313158897265977571928981074747881424346107159303461450125704052657759212171193225736499477823689528923492852943896472262881361826294673552411137815179335732113133765265772209275795283161119332631898546472359557563755074788180625637101259165655995375702141876516869224116293399976090604169455623860556198197592559634432181760022432186497186302066039348921870285915014529976459254131447188212897604275696063241472142713580410418138530453869612346272179603166734892049713784737118568395897939584455994521881428217625375860918552101375621691512192333856224271515718063755986701772972930947003440050626474732790658138749571242214766759237995773459309347305647793296742557200956614422691246352054003583046383116359079121327283866505579043919541266808309053185583773628936345514159467337364834978308503657955486842646070889078397454898079882941943237767021987972074115831872695772755919508433810341942378930277771555449012897311116712107592707589960165141432807052428044859513368949060895170337370844101894770007145087445464832895900993398242419298001174321216777301483555377647891004968270764128597396423194514575711796278478667546799274215079552857873620982764216688382494796227424493586805605605769349329328420655208550012500480656961071666797488198186725409760323012579036068117318518205144982208675965229829844044120016292854871740761045274462131287506620735477614502268147961658606889999563126323963056557654921276404159818909200270170130807351916037741751483747957455743849750488580628266293738941149416126656361370672871992183672602200739550243560465018324784025445762481975693396583367448923722980018618613028485258292759862153287416938025621751901899473127084506108903608207287721417757588301442175233908847811205761828312854863762918152802293324700374306986088801422441405122792217788011231053118966467407074064452341226326238951202674940801330674078715164501063675665021309245274665140318754306303791608733922070164844405584207761098965394139930411906701846545845928030311020454910575479308985931905168327054718655878065810676751562567358760860294708911588534114870571373486153947037475471598088869239308824854168290161186266333793135182984369302046405170573852672129486248141984725436258265234129534571890137196836718675908098566430355443535669105343767319157929514750701106636860414233354846644286189974082500698788438278444605968901415958903131383398189303856691101673499434275606558147760507290008819776332694220544262825866145894548456860055916478527413761762815133807082459711246112317269556560970954277499108853093713855181121889558712511090871157074993573565331912606534789035846214380445861041939919195772230195175174645073714451203785572720935592716152009598999153959690762539490959672174478409822303998283719336837501421360354376827039734675426014656351804307956328959031895121367696488733700629038434439111182635486717577879945365446106876251922205638851036177874574721595013226240995840403936391052093978343271575235595830306470187376996007578442310183187682300023811760870827949656089453946226373035380992335678526226115904457420800513636242603763933582480814971154615500147808920584348736745743675890581176726260792767043297067384353470652249880128710034714519227534229068505331612961537230266612658498498960779378139927296456227055322088245061384660607246232365890749304926999734274489044151744654569704075344834424809270788480745980234186326251204477272219593839703753452200413785600943276287962407030349931386276511908072027607430357061755962497505819244131959812909161751541927145390722406123057972376731121064280099717562451412504122620845287021653473354199689761496476978553211038358280627803813197509222953287458011360416968164374698572774264617143102883713521989057652808215764230216016589075482514110148965025573735740464559126568889313403535647165839067971233069804036349157599724869842950111656980993733565030400389826061133384240865295814556859834245806495917962445679511003650951413662393122314707238107378328837157621541948608699581717569476415252323476442134988417392940990119352242972429668610884181396997467608623028394507444679919098549747806772558338323698644064788665101665439514474701713613408257263207531761440078289504101716557943174478010088820490071439945250582914181106237855597232107953920055474325610242896152159516959403767522729565118736826709920265594193451544688994753755089481402704034069754103240540126940790282031504112948681332599664521641644467621283874841699951602594667574108541744274708960878594714156906750590996526005247653164249861421574406779476712168545133471638472449039170850606290615556531853718114122175021883433473873886134165225173560028194994809304598194979171072737631198239110004766376687338694414924221626020731848082554596254620629652090441634613552975503331204294775371140172566780974353033030145604227210352797427235262489188680410005532430913466399120263454072371884940624960474672349238842394734650293728251830058208461979999015858515433253360538296584861814402606444624980714526379589167103481690397852161308040912245516102475482004021164945156934237320573773089342677641051365463484975127268816545804113035076138454959712446629211147902002417131051955026628681725321983211554390372061002086601265913067407774976435685105561134855874408605513322884713612775569193562940425256480163690538830918767447213144216288736327521938676675240488077140150213117281034546228340674853566814723959816661348050418738859103397608545024536084895548292892581138183719041957075156162270546404684327176489432687555991288479044546777162052024843736546959592258903387938194089624456369534252469797847200959481637588789050086593513691229572056079168792587454104127457721413045714407623997794176529248301137810157456354560873966517744707275187958360013793457267270668602515156428349138677082175480635779578708467942808753155548290291504820032677066411572950277126976446472900776464570163488820412184887306622323995555032816945306655265994772199421037595384654824981613728456461938921291230230060932041807507226164657940231606039548149065340986982289783938788535079448904254927705467277491069787734393440660965447327793600512443966033226224392391785384684906390743117679874233952135302866689180279327672366364173683166049170038443480888124794956822049725705513790237674043936506066514424748699664060616834983018648891002581384958403149153276001875291836945137090704777098135627464344508541958294815846320563960298652305526503199072420769684627865434296612498237313335289270932303303500538149416274299988706694942397285527374452971934083089763402118841507213346609472119429848744634363246203946644303433374179482162540278286938847561453823992879127520167700205058534004464079573087272684045080237205600889488362224518807950666073049464916030782331479352213004210174513151531249972561234142972564292808086546805465099029626517978912416922782406265248761728132276945670526499033660057194057935641002242981625663305803545913569826106162711365036237168685180168680641526561381815678620094791754682021118272321400580528015962156831493129698858313719600446615856669783473024582170846006711329049852516068306363793998777973978520411913633953171265804091397078108096342878004015438267253812584698982983252267594713914416416281679478660346684749517055483297536449991540923505391820565231235892912523094618654340673577937542233641844345580714053022518859478823616831580905926236418150585758122023648811409808217016363776554682800931574320919644837995524567624487336330429158172258539082849498323699956788292278952088152296261587378436510577066104516337787180471843100590370263503696962341976479802899454592711926287915267533517806048644468492347761970156355375778316883919044963466273150127098741373917537483026645908724561857914511062049802960370618474884301034982650268795711963377707616111120468344399393684523420911494461011956670818934208976264844324742044881005716114747667288831918761999432170013492186081048670284838992434835992342886920661936902931592654993977701917084776352890493994300642641403545326494998095610887009597157410126251971990388031039426913760084189874782697792267095550795582112751220632946881141202680855401325172421969905549676532582624857910629368681051621131702452576846400795676937386447385659836294221562439816892777388877497805456362684184211994845769810712236531618959959318058359686436542298083545713097395808537630044258660797126819478322353033283916699130734499692160948383785104018965757406125276622476911495525977595109643473159092053577398542277326425748501337010918163129792856802800850435895653436791401353958678585873660647818546123484019218795884350420590450424697244408517857490978400152574542951576919666951774053224979124900035322939176913707669794220054483438025625730323795174307061301873980975294931836065700959370166254068251186872093517614013020723309602053888661605072998276743536271076011773072669902186097286010403700346355088061995407993581181113196730235640866721079601059661337619333853313675260935629571543404393489304226344274318347337755456637577050246080199112590281386224402671349401694429978091702712945629353586058840456522448516226234255206244496013826185697843617589127179954969481492177913366272808705830991149028780637415936725651143434565283542694829462149215452040990302701378347692536779080528759882323131676846537054813494027110023104481209075517983398629464145904691259878842851236418415383190117987754480391967459717074968417533351634380790809092522758372142826151440254933294569040632574675189876635587413761176831030141752261616823669704701131629846941244371473747885705750062495821642499091684131102593524320189643050421123260660135808034745759885974701571468579692498322722907648425050472294049055175314321592002866261964326127564235785359857680456259055810471256856885271397839433087515150824358774997292820260572207099487781840734923653404934359631797828323416157516018641458670951317668367743662628784618803447683650943888039529706408171004865955669866535728630140673086470815852696979440832560237824243678181953615161622441754280850544280239359232030488009894990222743065626233747460115092228356377848446304582185033906780161394482616710493657378467049459223297892031720792163528651628251690102871981928391383360211071948185971449973882313185612603691100253318502680094611694973719824513171863934656261977331498019781416285516669608104967739983669554813703192519465981793085360760116331784684348339133290645961093525495235081253474315944115536855010991496193013480275028648573260770434339179894345267360792432281853037833532411530251047650683793129657700180447322420233521949757270066103220879923268721499362444050187912753251643623310872080445260233019095116535575785993310902772228901901730484317556873167136602129206216769280096177826272804529390828141825719702520109466322096934828164524029330957511197669175851832071777046498784717782255497331442321117513489483295919676578988408812991575162804860280506954709925978609275279662596506479807726112593785722179833704858668952360635864293861553974027101399554810065419577437587070916659920157812568014753787588510669863380255897199757311109254558208171352970298834528423814977466541784060653199105387476842075860732450805885271870823709317761483028460413404846173100374750481070737977805945261269625847971962954070775282587645769595643789403567297383376209858605339459436169226241664203914537375388522840512279477861297909250494537649759643983476792752752314869217188476973058406043825195833036252872029472731215167722809754634777867270924351523916777875824899027074601962844637865997765371347408612158308767155139875156013933870979241567466997603968072406037024815330104431686760632533331069117634461389777181087365555796135929039371894497270050498330582039544762673290831686253369635815951514806030280378055644360918569159153928796764251085453354574772038625253187590364365572438075089361881078355886614656495885355123527167907227235258741347665599844751142739598167476583543412508662769287083636351142036235125895810255605366511210286420871885578339838611923626844588183964944237691577588323910654748665061162964103602092641872669204247907939658416158541361693232970167601223955004387248479763608319722270584555655084031702661940570220624576745423615788271408287890483850875451066760738514556695330295643204760011533990300283037178356847011277787371198758503116001746338148424561250911461032638152718942105660974208571245753324244007387382023564921957542501369443618476344951799847970219766798039388175510480533787981318637043678950867614210889531583811494515769914762063300453104747823105630831291449509411368146418426121945437281262795800176197529222465943153101355669681860329735586206195741630752034500297228939508694509700763260661379117007528450839598073954285919052977657958479892827780103006401509220960918952622345024633029361845548396288330320907416797056811619174542072310099689348681721752254959101561068671486834021511985619699754685588419455564310088352420482324905556096507501872333494652156542831979096859539661329679361381507783395786655416523414566772130400144985628141232704020294442513725646774628902562048093028364835159295857078944962816134118930940191332889797926644240703947930968424883080231869510998619920630442223732447936256725636007956036412362921919727961881078734263245319087900131833872147360600163980424957407645143376399642111682443229922606151798020699767162524722521475259098489911003248358478968715997034719271536418164048325585627086644526914224705037730602570372091784012525681758543259606904673124459128435079019351644512626655935286264893881443167758945742424664076052399277412021001069930747754022331528787395048410783347040175072535959985553749767742660166386569462904056180398487103229428183340705774045644992452575858568881470036141858264193207304643560160219152942928582071576836125795605724926764979565041313314202131905586171251337801996593327191344096912440145227186582892012667886825240686897422590536506208947686612182508807763072465023821536351367084227352785431255139397766322881253774944158450354523211161962039494190545976653470085627133732774866159271822534953664312773482647985473602090285524713646345552756433924316487481806698237781208621188364171048138968165619323346903834811327527169129823323968364864945452865395748774402283674949611084531166665257280911091758696484728312596925201040440653120607039864555665603366498794527471447732995480277251238938927154440094062584087201988883078980736435541438708444753383723974634946062898980744607800183587060909421237006966631014655455295800025331160804675061155957978631675458011445239120755092159417649038330403855942631060609899235067712662257317847443661039452971418590114044078144115170229078468023348749601036061195331261742253958324694760543395323196078378382291181071184601122243688127668148319663782135815817749884352702899486755956037565321136747228258883558445388540690114799957920345749036472340674397270633302083803802331604099344046181723512911336270484419655427739952224081084038695642301889938912343880967935404005991679219013186939072334556181464636189153431584977437656615585578507141272347488355873301927188286626626781037672936519348018654873782058414689993146737988250130328973943078228611592422356978145627619765877155489965463986902961642621758687659112690850628401917058252064175847275749205002647601452266580444260043472411381750040944614003630996305197904312821833547755085352810827504294432402331500662792867574628448491256303870948138252549558743257581704766250041003598169267857484146602381234889005036774977499954777672756791301632920268651646076139931748245131556895267007218991453563983367136576246342027272650710636684496761973153258844384855818220765589829029781820212082566585341017220122400868698101078939989970142599488225033710321181506904961527748288443404076190786416443612711136806450392803011787252187955429551185853508080196946057277382410492020178306550031959297423156864326199501791123316804407353511697191381574395936324947967550589867862760719444300678160912661738734028135637815363009433334130074412110366031498934920840231878361501533346152782781525088644457488927407121052958661465526060936739770113349475053505697308274387730375328695585969634277479003518435526585784697090940888110170751024635360632718180106613699702224884062795370855072575276540336996189494070345606446445072078514847779662852333451493852151123633916716515900598758009048793273839179126487310674930400651067357279900438471764239552320218202337826585838224380594968322145457201743647730359257302492151088481917588566897664923372751413190908283495265829096709847004984648654357455992184901075654135526469259718132804925384119827955102404780906957672093761299542226680317622077705060080803386216805786724561568805923684880801100273910195434635285521112869751732483073827572651191635176991644744503508340205272732403329002328152072015976387631871021373476541710715590861815588641826623455948961423306809282002470835145291520501262504982052310561709294836122946089103039319377635258872535968298051643669744403203730776360656872067007223689941565618817569566008766153831877212922528865421667393776538964519400929112159800572598961130780357272033254269934996326249570773962959521515299245300093632002130990767268057325063779379307444147934905670080138070942320398047101178820106841543171444248159006999598775008217235012555684759571249504696769356845790358616851323801667836002164281057538244627367627988955786983045065621350215060663786122936872979232365437824574948308324343738324569521905323083411832045492521546186138626820835212925286922348759094884317379953514073426751023343903586817812435909840953713166178318673935185239932863979479269788359690874927139577540468236311348294339759567363414944188134513319275534848096919324757467554520443228250033229850499264690097194138890467448733267584506006866295751293553068356541704052197000142164852272020661702265773503395870137335683416751315892295628014009584427815435614655736936532872912428857745653525213648668827956909927426323996023982246990332608252523184508876877589663594716132950305135425621927445903979498887181433965367053867432067361423372507946169612554632266799003205104062239489558305484882476220813533672421808497785963869749342609234695764718132699228977942522053131667254330988990383560294609815465664702056603660474513992328781587981378518045000216235130068797584179058078378025533027416702847840328288015823807592338891752974625759774553491818988427707490802394731504986484437711088499420098518836594152569347493091128513891095518472244224735491387408547453489953040303365727067499258425652560087742167214028253854077293133537725934943432779426272063685055573992701332370177672916613001456271437876224484877650368995434649427347026968437036296153038407675675951029864294980579022014761461951474022770830304873503631377383636222235131107684359773459261155650805885411834714858629764900289489959219601280867182351599104479502682197265226684972640493029645700886591284054754108806438870280208290432289914839278924983637615764884582065618120657101766574641796725997788457630257885059536598881527668493972186937030746761679752603545583507666646466106316182989477768538687179120696001594390984412622789459559260269356063721284127835830153635855536539635000115650191645711276758672450592215855795003221013104161596752859154325232354706075924662047117372271983500627535891356914428669382686965836123306736294533772212434471027233298081974102398360643341897652394055783580304229954029615492164190933109742856524824282422196019648957594456617601973358093449019912270283184124777736309760051465931924548569029348408095486751036782816612146359704806443599100400449652412414585519111450374579374170155572648678740597140896841635227633190465838569835089792207135097186615263492614637883888885764820155893595317310668783767328343789379446993479279313749466528747377543191338982029370638850337582172023641690518692360727031751473878803157248743311320250672375969060032322399805012909709887421226075486614743083320096660626761369230321655711031126261224280323161219235413543975357025989171762343286538943383002533991544131173881003074166900290104592318891962552618157774061421769122793300662996906637505331634754032350397950261296997610751284704372160449571347187294251873245752822064670274256604971806942390035141391854645690417443164493114877060968678741658518031851528384918199856345213161472833163424109640759965955654124896147563657976855201304182779869766534525626820858434784651503768921436578935358113763142391569066685105117216406310677647537802159915046653357132257631230393770272155989612296963968367388741515354517724632134431412506291370344059362317402530330301056307675385267939676950693584099043297521470291693553842389659084848192976755358136630059888780069384634751559439829175443280183366645857947435998391760297441816667218525449073194550783451518260223479835872718181479484813468170143589542362981308765120947024502540658009130834823468850253190775068996545045050730118678431426319877238985628861865634455692430783191945335425395478228307046166597778129105817128965745645379568585443692128485273035589925316987403809691773381459308221259412568256575233701015798644666995361748899619098859508716540226138075911650278784836051314270396282446947285603908232651437047066055835088218217372058308158828638892641515108837677524371831455103719868297373167324739265861023746339013111873101826655158306300929820585557312686660597261141617625181356538612127043154999671750761056662881816084525938311035972905824450818948668420987705581153570776409090630403202454508295614209197286575580685267936096326890719550813502134469317641704825901312978039921612097447307131210473409301362126285276462891080459395920901888654063720556889703185554465928313567611605431053745506359772313318528773991418885147896233554554689235034960376260115783543609005951525763846983577640473628904423651629959241713908052650796556638539037033192408519555368806571481243177012925312868407977615437151098668202269684124538411792313516737629975875811482764652430674522663163191191352702521855509344236099720752924230901480885500748944135238843274948952874611503286404926079398048378228951056552528945042114851356779915717392381099462534197330193950085155053733618988214243999411579221400037411872930187263027488864930868343029806703085887894752422604553316476764519005671171850323418440605987509891148483620060038265683862550250893402115395188114368775458630092746911658429005906371076520906124190823130493567849390779873574464012118298165585246341269973828419735252868868453953325546685855368647321215722475248393794342369276846632094995509301782178570758694631625508659698407908052998716999637108447749530970549069489115494881893295041350118929646109117323170536279395943226590078689768181992396278485387033302087391795001559845340718181169851982194422035252116723363445882719139366126497008505984964275982817409065208368375467507410749796196784502849633300996766215599599450826993838657984811770273355726331900359388018155394325537945931987684571764806731133453070742943817021091734195361911652642581029557125832977480882414517436662870020088697259033648741062316107355273966058424273708037608931621802459574621842160206721698754050821472329277871210216136704638819958345021146153691529672066537619790155595972856162926045358426641931235800994088539582000355544760714142586345418887711495134068903622891041888847001433314792226661435679814352053586204488258058784913783030109439458114741779267138263601227593234120232524361940292144205137600295782814109056545188533283043836135765949321593885203046035825167677396598746915763425729934320636110894114306641819651404659220633577801262304390126738025288250479893248970435401410374786917257454150931085628542472476787201963748305845512712283961584145225117660340679147363014528023411054302429669767451100308270176137617141061938966044389741918605484935461829799602111954237235052455599410127417844680943046232708415840844754945402809638257674465898400501053818548172041291858872972753124589458507925299932822418245653079853147931281435303890954710980612868854368728192819515809737448943039556911181771587666954932450710427055971510629759208683774189611528944773100123545750754588935516012844358527243797514320508252741818662008548013194793990954780333656360170861350493094114951544048185513450868790075218662202182066892239894004626154326515342339758166837407998050327752063851215643280900733742994057326440142499948088679437649115953778121947500423003713583025642069332308927529377347618138469312478678123272226747898840512456205458380828862895454318335053296799089655192329890905781121882546886736912081063660106602996108176264678436983411737582286002562593255568236799334988829882473547997014438782109665392150491405051106874340421141369488322442797916590457288617937684149301272801728641032101222010607223056139633918654034350170343858023436274255686425680134545083926402793552681927433601863274481583575265994719838494174659439092412463968949725055807340991692572875547894150573397876847350704290512141459499856016279397038536487806706368702295917421902779886856601251154892756272031376715387415483843088387242245352820041256563574917855013733941698421480765261410218872988993014572690104293807988071665417307870433363155357939919740883251953676248022446783390471317859150206236754276964106284124333728749053401296018397003188053633930554002810419219150934291268397716419162450797250193919518415977870414106133987288780247590419011193107997740654337042929964439183348189095719212319287620249197047026506707808272778878234073125524942617038650318113719365785981951813283547996834388886596638691057770987098664244731483687358955612598207916007419955914217961287323879477340251404222785167291229506647222720500615924168449045669429703206978440302193804945291323731874329572707735188307542380941874638600202523959689211592381090467137664770030161888907070012058714990412621573930195573488956482634349969779529998567048034919613923619651048576419828901856503035866869574054721667120097190311785645578261879835760350252239881677071993223412519893007729624606114438511199321473736862837142149647643345208260848307618806275113746857467274515866721346471021535491001586744744656976777337216706301425585025813084939903362890301687723211107975733262888202605076871111964041150584557331183117714539841720165194789105044176571796903017534177261920580883167526754643393344650538243074371563563087660237050358056624448022323384404234042793681389418891466715995888740512414681868451859603715708547632573064438790112388523050740232189612573280148162277101676411732736781262993321413511522442617988944422666682982398299068869750881010050843790996434476092132682676998674208528287256129173641166083291723213948781187774737184877444068369204163559022120721621417373380149209050216320218701024801509343661407245140602854844795111319704429646070317660713791448134087233746826371226018861354442256308947723749735358685690966703091368368590691248094217585645165674760040789929937231097464488321703210916285102476500132532807642135051826851123831077535606536188814997418050116337564060253324284382603667246810977455702396756276850571678958677101392264940206616676430122130871883347807992554116964273985702148059369926685232134977230033465711683201048808211598963258764067986658324600930287304312270262539373432385125099160601259540716895784707621186737865430470276506793305137256393929710801363766300285831690409365706773017021465149567860649989615920909091044492571078763404004271844605745578936317261976890838380821800274615521087931970884680419554369762727715262564133726028555744218613335629975282391883442548407176360542322168567848521968907196170412133137064214074415641913556168283344362194939083603126000463320339808693901081987553779881575720567660848609231827983966403605222133875630342380043560860592003713193334710566784036795977540126729135182517075431701195081087818288542791088308719062613792551480173945081125519072820108945065573436561204984829254836184003279423745648506308553009126823255888690709146276513666394640621643341277351616652996912879263204590801371351231013665917842894174680163022897511206470032893298209042050115148343161944976192140503166939879626970664781736999320557159130901245964678003782864360770251232175925377295726866211183655766790550771581856778645977450194747375761266479029753563533716869427291220822295436516094531379150722257800873039355175362191634509533554439506569298533943938577533483267505432060411719982064039263412959938316161469859188710599555908751352949697881601239753850619712662394555063125150738642984119612671918394667658723692949238531649557128361052098135120430979814588862825164900137944706603208689390571513364363987245832601535364701524674811905111175589238400328577829796204500326273428311658347967171313605536236127427150341233225513319253176255883143826246607436841261568171356202127797719350890443522840564457599288054176113875535892369269637926148842737330241002652069958652482855588165670703915796666861045148178619077131758654879864145345951969920985831477721362271232777580066560915538766707547590222389297286802701752774609050207617749468640064011325413235482081907991527710950294763092134413382761118128371550269779027792545722814483161995908285448806233805181259889929526775464065430917475092832355364951174996413184680355578841293918402768216942487615323149657831023213780023104681116889287654455028851275371668284524063320449679378915111226333519192736885077286885924482815026828316225021862817829501426999205913211798250974942036051883230400542457769479433429354081162940237948524389083583086706240038991072253885087296181671840377971450473993178153227233914938948444420364977337711968536659439962752485011294010073366769947717371050704151222724003754041577344332230570095449188279677267590457419268068637524871447852710582306392163301428414597837201311067049765231528776346916752173201320349563732195308751563327485043518999964248371587118360842213354237518404315166507061343853552592234734997076634938128451332997287717357844402347474597376540380329105741398972149394243167109361681759344085502582136809708304542252319502980325985885610357670119084780388455055674549018314853413432434390307343433353137619185943333900136186521223989411626424659174245960034681571159650605393246871113521040197415916299149631869808602902943480316431668660160045924047614394528275998932412325079800154942056745699226972763709103299241721356565785601958413987466678516449986063180095131132600429398636829793048519682894844092397817193457149386894420181930226613461033869165546044295155044112225477521569024707024533218975956908252449215635019986426626113657277648826564467925918911486175327459018494581130569070986317969319075979972142596052524440891293357961450121401744121396387483738672210662988767574844679605653434607438361870917947785714786285394354817756206600947032579581996548083238886751976265823332345770150930687320506900827569726729127104417960501379780288921586110182002181138495125055832478949884782326954638051728487002257813210320745236412487828099811809253423696032255653445825320858287696071431204202045812053284988650153594495917948817843849348855037473120671158948481778850989714394899619733210160597178608050367252670155023262223533317922929510562020769595821551562247249906111577805332581251128190765406639498301830866998327712685250854914044110388972279336845509013959067254724165683000709072472757413912987272345417385093851108968487076891350429117412539099525852254091290855016567863927755879036278997407751001996035627302822303584499935090290700904363614352152893992373542199957577233813326860166776686076267450538788408437969438725117354928638643975734183733498790579626551833086846276706824555885861467464793851352545446904122750584106924225835765148310075236599651723365632221736024982746157267611058265485438282356274365444093988523579370730310466695555803713175300955825515801682498259637483540232414855139830459961814152675891164926307777162333889635261205231720854590318901906863610751351225444173176584491549639040023983117545436885213397356663492344764349024785827257738191257505344792045862226428918160211658520498429372369705733081509572849579181638691600517842670055907587574117027059774918131568109403474711203466016397922120323476576358479219267762160186095578886374349875806348061913793089517159090920750399264780082894204901832498820157377843751576951776717362330389467215757828551173207379517959484589244448314570318434080952675794343189933870286328214600983544292165406563719504140548546039266834653311963382736597431321203643632339645174117048525660916846704115631448050281036892456829619190444827616170858638086753284630728609072586225573535744260001769533787871663146573801222769924334172264054754498672390015513463297771538170762155268058456313552292764157872264923008195623433042716649289289548275603522487389009732245884939024157016549799894377300862855833294811688047045989247713988736513804321829133952554406902728569998842800304049111605073600663343970920170545449656550140123102139807588881184512484946175473752871025010700136282070065486151242774352063833118792390498109746475934729041509059286474045778162811330819199269691827244073694078068607128602188989646877076968773496519602852970072723818272572239547942695522362136086197407605404871159211366342959008345869854532688737487220328947211649903077226619228508785431305938976121344630434468596904850701271594735376180195925499126599452600336861688977445087236878178741298629436470257606647579787450132605792177465835226638453536760452951533158911341085388333785819312489007411475067295778911258575803869253732361259144880790484895513806984035346012590784464585143381136574603329972322651251092993243737930991613582470138809772465598388870243680136552795872308574577203097329887192702672205511814911788528757639277372597910779193521421242696575963969389577237722572775883833605180996235137310793271410303667493554382314157585578339392956413382337014219840324448877792976773259727425093384677587027559702150517087128435566351611628724388716237290053206777265453243346805809937763963914099579266051056265609916419251502841786873668245594632484116667006686302654830144853030018650232996730120034543553148842770997407861844268739381430928205103486319137693204860095374241867139749757274875623712495797190376788267931167211692786394383741387752361423069533886329133021458046372192203796008129004215163526072483714513619536832788919353798556858995511317461315065308034414949432414489937197749254206351697648426527182325479050538398229285264313776248654447251467150462318120676701798213346335073024352935527348311554955026726176262583960575989515913079939564904698832108440530244208042166330755020675736178004671405249440977505747896660183583360924995920053447148734620638176933626831764458062368631987629268179201400357145637665645421325271300772540878144311364820469108019434353080805575396056602372126447444644589378794522037710861915796104284850905007392337985007867083228401189797276167500177359363066860929906972603897303420692120750807679084793480684274118759946997474872326207232474823186157985571130476619506692057474025553962279431076871872914602797144877906827762854305072727882923323068291954677658234970799199173231982379446236400546196581528533532151752670203766262219060162676816467225889909368831475919200119427767704744493205289767980693956790478213822635088086114630510436769689194581247759325234887926737291578021102716968363873812146055647708035199710499184893332644568528372430687294499659149204577362494071169776631236161767966747600825687456917698385996535017569271033260550479001977905272060770410976804075659969381695062770274917166770839013144121942571974446910518924089986115203681941543980692526254020641780125135814304478626976781806893803070323590514734514537874824978299036955270339964979308230876003955296688253043618365763431181960121499217675201919013575665198135673556681903534916691290813686356666059794407203378324208453285266961758185980591421530421363942567209489380836494214096580365946855282429894454453783106495357076015039046824713372613705272861844529535643018459312969359246049267050252342824673095810176486538296409785007783298660603061159103134126699576406303733423006484569855382161245642812686849468161975991091322763798558702500927756365901193212599431724057167977096100635965528804587808652611839371487542566518682511328124677174131252156116600184144071057905913988613529782090341819867519739118485893326584698445742792860388170109306159620820799866819088592360274335158299800132066596823289377102068680109622917962482417155783103886397253773090909466202547038780215521293782829163378231857349756625249127898579104420388164683113088835040288546038594890522124019110766894336652905249791008611624968521220608832330552598852745625619269408179366123307803106960956016706854865244549484132083229652235513194927459981688708278285313882468696801104059539659487197910638929089387189599733803623218203653662234052718178015778732850316356163898806621343270198196159207640687726722757767197820312235597860414849724090462858045696753995735085826649992314336503911208499947647802467965815512551142135070391875498646703503846630595986521417771965542432957121091905789037186388462856700415136690086267836580276083022858569304939981355304943645591824302610778875649396933305182873302521647377738378922575249962333702692724589209876694542232987663634245143621710767908638843739774255406363061677741136684241312474688610470051586938685024715484422029743755416773017412579491937849543566539014789336383457631394212106471352766448233008284032881317027436895419959056563120737163836306552399929404717025707042045259331428296709107064064879922668144606326588968875058732610483588403213599611540975431159916243038572664887893305922278964987143945295049770612941739824343225907215741268355453907978473757539200173174332549007042259785765300493737977171224103124359080954039558193802553379801502298149750179090908835378136147889741303982923396704062873970342948178380360257809904714454169161483251923322483903471528804524889531292096042093527006012176796040021978413580557859203411410315190628589357901176394437378168793437319773366432278928208556296711550882289649937093962115251909552962818812121291828439268277364934532822803345707648332303210058807694306179693888599519797835509548877559082041056472119503790685712477119506655481232726641095338283863268666509383689447922183670752755731316072710233779798876706622858170400398774092551669115167306519897609856114670759667296021199322763340519036128368593891888859395981487354874121077772891460242965683595305652982692824556464294915729984751221412792621700644071282231581676850808307180972691106841648301976128489597258102600815085092620650845375556542461364882260194204613276436027615396135981597756581490032874039404161917258034957763389079489867142377969526554367999912463726443748592835153701723639879505701544616480001921692107657444393521122695953665126142179790364307432917203523801630361048459442948670563560777660895505055911992027900638936632397297936005977543715894636869115543319436679095082535797462875470564945174085668408598102045318023953851739961356892757507086635630038656377567015216252083968971923987570611086200519863168176836455364582732596489081482973209211902055961377640110724936576820479078392137097337635042273733750679088571087960165154801789408719373898118130907297981120932938267338158421350534844640873998539730965731472523402264553634479208365094498930719119605110940579462045079998960955384922820016287045194000373342408054800874156489158216503532946973828498358673187565962091058453716504368143613112400135723123255398864463770850259297565919408912434357971001633397256660862011958059709708159658336146545715055926172365218235992070590392470510797772532365895300538389725139048854563330988986804634647252954144609293083451391981891982006763796680283968327847865388735158395640985504610076975873179487713796239135468667864035540003606746848059985090779061952967238962407698244649449203670835688548131830924207167573012186215108695751237386337485855665089874183115283993622764910485368105182073428620669600742440019102029904473662453859610475189971784409690986428315017587029178689347314575649392964481171703631931520021588817382084875623854827359342610581963828448344459177880721607394066935600416473705803931757959579518764020107886645820225471664718639691086512564346781420865737343920834028323376800693310966725362332588006061365567233764967123911363980008837712886124233429421886077437479576653579041079820798720056911597653305380369044921328048280984234400462495954607710819770447631689419139534256311819550614086949586621758085675820419837439975222788142569126396876130289850100966275451971661927080793358667477273449561261656699792559068712648817394421347010549194940150254256941182124633382986299414099946440173270093168189714589934541083451374079954360805192478411645486022900138066438502024115276727929386163844890449550991028156781832403025734633491435369368946054560212548078839237939483112543255450630910834918239145883037902175325688394629927183359037723382722267157104991512569679975985187750215357046028187848173150174177943319178677730599267952302909587267900244100163278760780800357776333529319493951734859344645211233845705840034584714191719893762423518045121761087536009835214730916247033752376318719899987778596886971947923378104008954346409325100748112369116999811485117460532607125469529221135845246982468482243632024817149064107217509532778199468779200373713031499250063032595291431225130213943422771365979391089276685807067377054331895362622474901808329303300346158403580864812561866526731237798178350100443716912218124812537958826965888160675257302516015382441844145757274613800046888007970168862957945025977381991097569760022084418343670258140871194753958451326549360078689899106951348801552401646722203080033247141353439607662109301965479256541654768424509404574130984870596146545713862162942654697965356916167193421349177254777839921702725297236110432598920652804693667143012198547235145471417100553273687118118237015425892587385723939696887075378113527659751560804302667499189715200286998415718208983363079175345017446730640918190758710120304395003271145952381758541753587258422203844398688375962204847226186745994997588619970859781053097170702374924658727792087535074175976322764720879859248910853080309928095844420581009625828536200141735507552629340844596056000294640894794193182667909832454404390578515081888537380136671812368386860933581712918629365909317507434151219124263049531521907097747761773630696581092112042650185575397953151571128447590873801784267580511698976197037958768557540881740671364574931071381032478674434805013077554109598264695973490689018099314272792140836545576147267609418525995118820420713503846475659724543585464756494235701916698368094709930130183670121763379568455733979178274600509778310552483152361236442601671766133724936186964546448214736464801349162887092508104731790256171537973573205990127626330719958844853443946604177454848191846031386084389939821816028244322862359808187648842390599523866470571142216489779866088717473474962314834778492638145636990899513990053069205927182899065901062671633502164680124289332648493791549755405660947276672433895684777581505153131399294154304465676731040854151306270728954264637321173304121366453440859704020456599720769652513741816704163231957246489122053914013712384022913127081261879847823380328110535860096739921570611276728962015479811244323119608056829680182393734115191710917240425205460322695215765331800114785150287271189743518612564809720155992927573600008858156674326507861745208375609277979398023262796882924375411149645726126123265993551778442966234625097846974082787498670829809049250743666163960737981543184066859968190851742606932812772570007831265813571036565179159795266874496249965940316660632281448640158241383053094872575751946924648342777813320031780776376015396523125429576579288283608181617732950513498538301539754427682391022817656874945508794321877028084075085257784518911494526548516225976338752313495680548870221722703201256575318615589314877161583112451573406435786821547157719659029265511317267710636931213029257398067151231181412214167169839188909447304619503654770536617765361214501157557452878944878874869814066401257909054483072705294758446661729184153760188628025329858033322813998173460036834450736381551603133759800811893133937876155565797512097051858870996416222807066498955466507143707932589588489330764964923438834615749534324904105847803758315909183685675397792054046467333682514984303385039724348562591894215935132107689766458328653481252567555031142614802411709735666111742848527326872488570861875173581868699196996476422742472775259007834673337420051571817703014626439073344609577611015267837635653764096871442497850751870640244962186466661892002999044597272055932220919986565435744881535903183652664432858917938211586075174712425433726017290727448017936275627387721869475044352745332681587781968535651659926480176531815839440178608120937915843548615009006647862562329681243545202140798588495219797412165333696254357484318360930215617554924890688008892377988739928705689749137303569912151876872098914975459064579640219512396201116556242223014511158004287877855485988526056180890674936177166984272779823673343762030729662589798041780720153560307711215268030253389332042043932693040409447681566199884371530919357128236319624363404689289994552569887112910372016689135188139515518666254701103182039297051916928902242046176561205364794028639560125237159178904339543046464609819601390516105204328701249554636956583366890827886365175068785944301944678797689923901200754825204330997823373579706998341853436612479235921499139885901372023695513189282641385609049091150935906379473727101765710418431362512068147315297654048020072894785258776091703747809068279296954478995952208160372125050199046479992849837902170302958666222344709627390687866127756421549631151333367014635051621077151256785033868311023788450558502135053224645066827448192544733691741571310688892017274342609637233199648770721011036987467013134656742365704726012047883102019522644913146220878759238323005922240247122727171584216416836672377231756040942008715890968310230351316705073716608825140775132293778829937199620729238722591830938991422856064058713511211380600835069816986789340747122882618908534169172823795564467021371149086954175373217770647429271965955900529114830736907780274666994212704080989855525700729307075031687077780249446939025273507265598280647205320890697465451274460474660467598586693999108321053531374974747305724039531786418150797124039718997817952912361375515427567023266936455352435662364583143830487146499431011090244411097271146269459745926766307498562445143759461926520585987197247672741987182165224620801041277411066018533423100376642847129081373972344084571320124742927436770098275367102793052110216033337783775843831515212547294474085484081216293903688416022707238569030286029659707157124942981335362431886407696095447395342858213392729238920318568452324181484414946223464492011618251164260962592248975990944638860532015491452346253719109334110770407358025585722994646891583032143093923005269969124326745633748141069908981726393582094816240998093856505303241649442547020932396070414671695117095418528302815578322670130295746533184557071968157739327231264763287134764290528243021060578303665137284749623489033226305320221506762894153221474443191388002016736557202350198557023701301664351361013381352015899094429165222929301910850568886668638330620428817225830262023330407654346861583057447718021979281083446426897397879427563940727149555807827922343912916948032659549740666680310167962332392816093446780226072986714585451482823312096810271622905352197342173396832319782930163866872070429144502895521274621492642628286440361976637819040325415213158417279171576607643614061365975880375985935804398742794155039783268415954631210243502639044621334908522871212678172458950492998864091053527244832495221842717895259615697561873285657853647849575529690070950519961575879877573132581060677531396700845638870085347115605874220989313882163281427812508771166820027954028464836542510688956599450143174410618477826610958132554492894660194943694729537376274057311344564077601904245751434536328400037686247248050441685265664530520684643906157497461601994878264538713806394297416555665249772961768745178921161220132213838027682019074995722211400893169375078141197362629359631438069997794833430322587672021541897262281752582438503871582684916587751549805350180425839702887848532497391891581605365981046722168206301445343693412159615064563903168318047066967471978180732049309746552833503352738107694057799448062799933990834261952754837924339528172293022025500751018105957030979123694014469271977629293728884496921365413232823347795657865246859159706383586486273805967780400023343311292355996832613887790834026721797357539786232504522248356588004891644848701836291692864503607387547714876294242544818070066381701175886143760225356760161648084915954070517286920228549983853437307267344483101100984320981912664997155598418312796545536819142122367482212488646286755419507330960963731870213034900745915666324224002436091143570148666005967636631068849774182006886640121524140872615752740938832501425473535693052515267421672360688050995262441229598625516848737755791936143023073855358014909802415766147360739094246243499089401541787791913379268436907005850877795342914730464428611183207145589400842843677765959652038616617052391538555400099377317496240941051600363209407284532865839963184715834077192193682437965526639375360080451367073657406792486746919813163828470560209240275955491566858470527749519942472613781388179180303927387294269925933496855363599606105604226228746925762748311849183179051698801881807375753762719057030785725428686817634913233978502068758374456008224746337209973615540999970063842743645784270841363047980572432971714505871055387104157802758450058780351129304371419291354319215814240177623058974679074862945224567583464009500219397173579616582254917934453740478028415263923750912339740039060451301945484123531694181889277433914892518742426577797861665182998431609587711243490529807693981617111344668477861317929902511658083871415574994521567822842244255390414134750894265515994012889909865073387756125405712095517064294652157947439796104394474032139802601464755630687673325608193822065962726851866916227737195556184958390908241560836332352881170758476446777879752209936543051515632635426264548951891727583153326879862209541040084316192692808549997144800866766390444001191437547122145000077555396718948642595702778427648516045262151042735163453003173196198062103237516580233774179427092500136988420573015363382512792306565330748190399759322924395863605642708424259938306237343193016817181896049506747399963987470380200071253103167688160798873060576909424059663286753276396576527803190336796932212031437897525477357574720666193553389256311040184505888139762268348149783559613470060091445162744441746967154744904838643735191792816484400204378922240042884524999582217159821313720557985961349325321700544482519359172381065903595352806717509914144762843211419815191329995663080284884794187524188543634980021722313397408529843691019102450601388326927035178441680247555103767515338345233919873073981195247015179793059399895253115033100334474562681180851329855351930495158539424224636174328771206688800101510489486258009598002419826113298543047528374621723899965724524202074052630170290424666639992181759955123084413420268678498765113437367735378595448158744239364252343877937547646970330022533869037112182983321303331544510159350377910594652838864499701932527726995128175251728027543410636718887407905299449988753188672832243920219489139208516190989550188302170679980807007963595781713835337815725830866507952184002371788246575024603762759993804272637987179278635020644665672692895696997933531636072729575355175975157016059241615946379288641521071102847083972919424388536725111866160575165007063644438949809875220618059821397330612455300780205948151764503026038716082463188696228991115362893963453154452864166748177366696836210026003578597208774225631536168923526916369416778908886834400798119356267251528773031576937522937755923917482019928980453510263844074370486250321776595181609065330335612981025941100424177514447956114972570593497221063539522355234395661359847473187354194244268037815355596123954245123388509391407949275323001624931014404260965703752130682148836717700679488949312713647955298291807188269571446657778479611597343021240586921399422080630345045209837697058211452842681987582233405658032333406453615000329524281179086864908638139025633354612055207826660537180303717013364538751697425393165261709628255860214999381749453684144602163848793631807376850814981686661516542009658538134112742811195140452099525557812354227318763522130606526075012978998016197942753124746174869842329435249709982205489673072984887282627289706334246125859534643222846265363188427542318968302220111039681339338160543581014161916530059047628638191879130563983280088773033897906239478493360275762958641293623363577561995154116766859767995298277642170414699620728806105503475889135382528665137152820327023261177022567029259131621943012330244240423834053320297590764256254457513655141968377175454574714846519923102986748714683295378895664526440564022913695745136344603532025750274462602513389310377498789787511323967129572929106069916062381320428868786675703180502767762344014853874357695751266632406236870104738184273328992931010796141805928382339966159550475944806121894287544425787116553331727030845742545596189054681337315914999140309723344528139245866714419354698751053272791127308730671848852019172000159539216987122859138455070206435486876493865933906963667168466655707724115152862114994897985598941608829930944837562736275318113646100666828688141541993385268340897255655587500252268610765361080136606394706165813538323231546391566111678275640625749497653744323767837732168658237851458692997120446988080464708925338728440747334423588786668021093609112151222489012283076218606625594552633425920088891819869647555692918942596719361782546282524491487024157564762597290216980843425491599886494437615862002128432031168162039930438352295694597756600796913488617911159449618722311032088053788914566452320400242020359423125509146274075822572598825083131087307048661669622292127826109537008329098537625220292765608271129369152884827728582102980276167128816065327035266202639018777110328196521186616871459799292701306898097160154646411814976843948547218973797045648718777631879596754513408433982977007659105861733231710298739116969672723597056547461193283255559323510998556828611348522550374825773449158888278420681950059962031181257912685466923546054596958596704789034237847483760245007305375001926412618957229186564446489079252397081601411579554578975776310772939686024580136316052918257246123268246351853300099744736249574142264881572058140229337653359009551955610103951738205123320976551636362103775171440920958957264558243854521814238126552092843290912184713419971902460150882880086622923757688560018691352268346616191942809788996101753436942217886685122626955597338246538013737004603484183341173787957243084437571669549942132705940139474923120836697456941541086433703186971148883141646245054419464418627211472687520464880650991292754019034086793856048712176354912600159680129385905664876460285792384429978546214288426165485659634808875842469990567157064984315087788130442356104510213881548989618168976476937955758826836695611093251235800449539388620213093342031886280910181079759632761624779899932898720135918475418066657559707532887134015645769343448218036501269555245834464829168162846615937284100903652247438034226712567090068605311126225712353241422530823710584683873156407054895906210172290582973154042294356875021450268170626911547123191534821311557732256912561299470167457122551341102572097599858885955855847207466017389847220226456131945098820032165503704994070463341363626272637185137320034621567519599458661497412984937188824151125291732687455636912723244714107590720708025221012813367019828285104428342968890612305881791951143071686276567194635811215719363527089700622080443099287430589446814564651060059465799336693354007185359240994194477492666647453338970025585540572336390289559065784357668764496435728687722673771412408683470756055532173637350692941380725155774462910522072077292866010708213106889833702268223499126606270584094621236482938197340796667274049930380148959334288848819732282705061652755941262166227381983207642071021760031101396748006151308681073897132439901858245744904570943673289706007900678804257552794855166783116997951897993200912464007579285246480914058093829775333440654468335604677517155629945248947268614105175729751268019286811799395678272260472026393502288344907494537310220206199146482345289648272684853539536355063156146900286252216482457107674386016655753081958782350634558777995561925112093894736547718835566497660261812560292317816363652994224931231117726035846080321339299310874820471931620260172151505455117178658107217036328694348280665081928678168612224139298111686625027118654310135784147521548842791312993603519244305271858358431828248039819726150782193310817821164372304694123650657480110993358827186921457683448708832767578523748129974989750257153820243092341435811570278327641212106534060807966580779108672456699019085993271955688397001897408186849829832608424900561597377119994668362406678688222795513130304533180452546653018632775255926203858150628977623442087375338917658520931716888522640116489969681783615700208267654522541187992761459759531691263886542204971751263695967243904386264023611663078285599785622738991843504255348122047499735657962798228208678225873821997131137861804672983864504212312382271451056849463768299100713973539747878154585089379419213243547291765099818188385304013595836461631035895189131115378462103225062145843685176716676461595832720836200221495203820133075441630796366214127859999002928887416768848029709808726686087964772901779982903878585100380488239323033028422957953161951650335499710416087077172246968394881914163792752380862206734275331255652592262757562980755102051071855955848741196414041557059988324589168094181850557719863469992124749892919741719088553068850710674614878022670039400401441411542861962214718167290761696163147600907609759488264947228705496089364746267878239053952840957409795495215162169573255238484631070101743101176702554100182878427326408443354331375976925930986540864748684737684523319800352694633023772762713502134205008302382776394236315308000435597231581396618800216678232983434686272415167684826517961838881749014206448138251775423094618697206363063549310852029095750632130171618588863035881041885841555145066833457938495289507694700172095678806672959202722100338426602839241328464772570661332694653905874966242099895816135642670860669931997386804642423671857923777705716074753325307827349359564849693977734177994115122100502447270644364972055604054798977984026033283252722170551520771260460661629093732522815871776791504204154490655214359152263679663880469901706002644009462622872362564234548471211229202313873849879638069878173909192556309034589436484403715660087915186689404313063546521398291790789019232625195334145592246979797322272774382262537976033156516790289808154694664865510207763666590862839618803034180900501734832173126182749858570192410419841694668327743694789310201371776676434399905050902932765925021151987876022029938473877289867971266904660815160669859496084548528307275634645237581470876327413669153845868650696279348886596029225282671321301387255689054356060414723925843351327079214352937675077998665903745154809825133449965388233145220742857046423728477911499326762295376492042566947229572592277134548979950995095243704868197698643862697317675455348710188483989197263345791173361496345912419867737265032453194010480044080652152935280238832454058371391723514348115093109767906543785780116971905109427610427204980715100148231900997881040518817197626763864446284069534073328065499104919284821691856543693295929295633546139315332660274801905095205775116630681163772601529657510345462688936963128299866453299262968802779478955214668533529103162201240256827628109712581499937578837489318697398959896077913183285071791967041621837715590014383841337323510143088412566038737572706033055948778454839219244107579877179103857667111836244264302035615706750388071055933407156654206365073864606204897729101136249317300121162771195933754036315988080985125016317802634352382680317124742254917096447419502095178140144267805074861130574273434714225449106957380462974593852983450514377820791158446987410580431735179983220045556848665914324910466941707033407597009404363507962517355507614740993227540097352842893392379295618978541857072417620396281802135701393784795808422661411745535390737375697194943090782346166724967054775937847314259709832364799362901789873874492851636677405241567872182532773513458561605869576164327821725057952753212708491582668516038874446152604092943280276953053439761574168779973129869770357931345448601071410169915644485473164649762954187820006970170079570413612391619592188141199585502478685333316113868003212846616213692730237825091820904979760627989233816037056129775795080304207467449872828217483696068882203135330553573905384907048997880737598346829885743286515157872679587699758116212061759825716109174079378943386035291738334193203606347228855209977721827785762175754817478648350640426206874723704591715258371255382371745993368448775922790530217080032223269946797038463267460492048005711159348984719276790235248175505155995272909021739762251123290198929534469628507628074387058669967961822008826497065756172829190597733657928746174819589537745474096701000349441759337707679847727155024961889698992499265121336817846770467697687927654520845344019401917287582056914448992383732690324359761689661309480540175473416251322793691153130021217898112950800301272153887731516151274446376523719390021248936518202572220542971610605196178634182189168167322090171480198790931386248131745512374873436604601047500870761472978716449278697624215177033446164715893616734518786026136280753343762275489011050842158464500693135935657182752312127277518325480403799417435893790146877260701750452692395329488137873470129692137378039340907423224895566620766738456282219393385487944157439382225415226621659510430774346591218591438695867331435528600754612872410530027754662506660608990996465429224337598269181141067925403263505858360244380414580825854941474878016463337899155497915965513512617254221393965062708404733857550597021251434320941539725825954909223524519929149515788926727864084664384017109684845925857688474188428631419102309286037290076368872735486496479251093953550209207694085764509889251639333735743144693341144332070466149555986248904199139604328274719016831415208357701643543172120262034101308114733763426698437877125452973784518482709452880312853477745627823959123908430883223001837286540213799462300623876575445231457880632580935176010148986224296000747186364593784620884237754619506959799509908586640884163772421903571663362223325362594787055930519235284389307108954752336787763532556664117702548951813201307476009398307754169011905687613827221485375187069346142934561248646904270291914190741114851997437698033450630602939354798137831063847098610704236699344566109087535567347146483362626916730324698067657278730767945897813100656514135397014157536913416236656198277671962481021103135318802133106311080950304207017709264027431456863783858741903229005958921855220841028310025691733835325906636954262032096293079702338104120189847274203936689914189979199664919428059887254337542204594709051938916186346078087524429556485662580721670494869513775083416928278814800609640579008675898767508776816443609720599355291608355191720881805218881093362364683015448074221286658105209350410834741896885095937587848888187543651025264828710495136993880444858948453175614668350664456563085869098993771249880995128731713062605088085097108677493716847447347890642490010764529499512059429758033156882662338447596226977067201626336845161662959300512380674209865965985366110103258302929157065785324226277046322488308429719738133257133076069931757716364955334865114404785106976846665951013173256393528158074751133326890803871430310992272589315200730574574853864572035821667858028349433833803919724378417861418650427095723922526738462050540528811938216350982045348198482033101384385511174314003440932785224434426051432484269164204854124127443283215302098308559912006171139158980996971175603888121660860198904512890447076446111320293698522369396165325845601564769950972551831161619756074531575503102740952253602840290924131056548077831169573370483842522582467646506464917379372754552789685532263408404209867993289796737306528125726592156504316807223927472002361137554153486150952197607726460124974700780677441075726165605140927429462890766412748520792025169563055497368886262093593219533221152900867596118858862143351869140226146155267191956773078329241113245084238895342291125358995487252037809564978104964746616017722279208314871914693911427130757361000485155702309545740504467754471070983827247078641015026175748014726260745081126665007490625888227083858670904631464075149196902723294494622854544090318858792823310825836830313044618437708035991423885016668506145304446818639656117851554129601156022129583434902468495117421218356657569098149519303187746835810008661952906528941154142332014563395455957759333877114789229446442616597976365054015314408813972133127046477841755782006363701001646270677886698478889637358325772001209389998504096862437893952266451903047033214264185029664779223554944922106716176324185116920728687810914435773426402388575262373370800595169444433755451282486337105557040130915005522516824354245805860070406700978574252549485051970291652472759087085760612266689709169819578556886468475734175210047619877293581536137897237853539401107002938688532935516636418317460687127279250286180489342466082424196656903909994269774548663042468942780394846314907352860556539861200813404396333685122097718106167287936029905733871166978172177043462752626308191461857027999650304505899675266322007517703278867439251993613906841610966862582589268514863571679027520915572357103836899783957514994986117909458921659926217273234404540341261008828213490322777634103022639276629042652215982283185511353032522773232615590689936672090361099587868071989319222083452479896647780897500911303823520217633508611426380030720422057706030990405082668360601683560801891895513605719571692467846607261844218673223577663044998494230111914852741614530398055021717525371742715163334992265552751515613837258721914705495667683049636268229730409079348943944827512057870839877638345454584821664802801370987916525432019144564431908496796879526336856741146506774705905909760037329950466538453655475113946956853796622262299736999606654067416790433945618021686454005589431910458753247882498798381558553322239277414635632240409956146639426815339012971157158460223188552384763357758559613348766755272380803886889758000902089003815246075366191671505115435877100319802515893892581175350696475804123272122547568215428489673124654233663915555348321578975927708778530377919644316883571893522045988365461839782177258368199047695780054364805664796825494016738649253329161461159588188848371604521714993045632103839552456660493654960213014984108149454469084251608799681153283675051417148468186017269992443852646561215508085506889768645490726391365771204485320380034984762151324242898315808760537805139521227061759171178594775739714199069678933660821804566384132508213190474593131852802545763540978844267496143506577723909716492260616163640475969513215633083465233796734765899954853465890740200134519540113713166447987314069903899043556117239173971753649877421895813679819970895970803199422322301004725993656735918722652095151775034651742775026332779074263454396531980653776497697894393117033504664288472262984755154552220351951412878882202959396283794349121360988109944295929332217193291847666709492848992876891328455864764298341588586536954282399877864289577664912802333728652517629174926594995040447083298155928505875137022583152022058899646139448887578460647499594417096717012441497199269510446566253606363862836903731114478766800845179678753963331747332889526935621781640117224964619766312182616204078151782897653576883072746724740879401637521316420852401224170842382994754525220118351005667134836442038814141919970004531455285560292218878474555725821331562372274596290840363866251383600981663044553121266484037393739259159395702891475177480135020417505841474880950001039883466292563957328751500230911481416120068240975826741107375680342033899396577469361660729470046125851898038482584074984883909420548853577924498600145569659088276685197939233274349728607565452175870665431352850629035869094518617796645761756443048330018574906842325539691677214266267849899359630174960129620896338170474663460363612866236205697904684275785668858346796657553283086122930366702132536526376761344359132881839267368872383150056684694515485646205181269919575671733894032488724430768942570718573376828967004322307071053535838637965656331798946574234283810836905213016659864635782471852738053350077954456120383695932916059826374393710314040172064823871146939996166738906965553771412883792831795857918905394316840204989818712899209011895028984740535144108747668210380788266475485464733378575526358753882724546122261121111655905949006361647399466728648669349830282761301990219241343114062983040172898236117841889489440828146708309741554145121893339422214239704010226066227401873515833542912690507806070108599892954813760720866090467724014356388599829300128396587753087967561350444592592179831096919530600265150118573762546539773740896216536569657778214648215664405034832410677322495108979549597073626127926964221717555069685602018746226149289646964694038975438767653339561597657617139590077088788012747447681409370334598278910991047028898866784523224075123404322656855162207121052492010630065321215831233035697609427576272504045586502518618646689044480795269982693895408923578342006221790369986907007385709286350955431558278575447222938992249041375617688638436363904645127337601509476419017323435240207026026208842518807133357564861234528725735975893003035603879477889462133175789928913720520203317562472052632141551666359513334427214300484130306097723841121411477047713177044895579599142992856207917774879655824481288636614537198029348275354051829230582434137635340123933586959991504269779599520183199687412865509109657517169444983399592465108937670697497380183222184485255966849806656601803683374447066390359328737337302713203244211265637895272593214173310465207790765701488910900014490553957174658694139514127974476076156678993268833279464942392091150498070234287361226835951223171506351768888454687590463228248093495172548062019865118992839489250799337045796409780552269821582710890502687671643032540588923235616218415661413383762350304593731300533707903546642896765455120581594773394808192381514256956611188552524803180949359278693784483891239236101430589299517217126470890583588451341074856412949450365919777757735865553570269880059487468346796658869067532779909378243598509722936254350169481684529694459540235698889766680829790194490546528031722347975678025834199772629333002913042693238925699007358327824357614983938738940800146720131805020617854195672664885535697998380837795851459268206601226052934920161409517700047404973324868940060864905329690495012140430040036685984954182735281747447604184515951508699159307692419917301747445926628978887638041314855705181836195332172105703093182477596378666451045471966357842853945333772215937779094539401702748600984706632690431342939077655016649188273974012936408566857460348193696928472929154037731997674214560369407398965896664182544580072492783435674635856174530292281322218886206192445573984063754092617844721046659147907969596532911801987216369079021864202898147332944691490305822414777723383942943334130404806618428827563717382241730264246242586997990065266771110886966190674322184526643001289438839331814545052964322069905477331192869665585257093065947988469254539339357406070168897261230389505005291108395611893445561685399768835804330941409779454193382065741047407071897213624253639958396981439320415663515636687263436405800300267256561232878499309538477221251281227588324133163622059560186177719018171012881662228780320837171254601600707104030125588933466932154182905189559593673760437236859010855194361412646539371386242357367854254658608382189558797107391468917186907574714049659382762471378107074791826302955535750537137595529243025863126359364917939358707245333741343598835141506378457341325930239015848937871409031884247049068327773496662865742806378636548506037244316693818790193223800451139757979472743829448983718950699457374622238240325597401767504511140354541026723164894691422840066401954194053600612281260326774772817988821840337027614616504460438285577259977242877398659899242934946337017742032194858409531431474373573891987025641405752569021331872995986932964142560633996979082848217076924268621505171304000431797226747474383799864924831786268854631710241994717693033133013980805260015569115404961546284459772004639382308297299554207822843575958654216559849143978854835454134555661669181098873418137699306671122586464639788931801984987951150638277093640567027756711213888624010202997547603282190450419876143523967401936274465015570986983758961685850313544137846490035672179368528672944259101309434712284469754828620743924504112349850722626796214558238819569082223369462900724804520078232457152251607733072921500202046597806619753616661412995455270750522754843723010392648910940913919545034888336025453998569974847009427391291813060343081845605070776413627902780598651801550742450144591024404755040474329832671242957346267120621476102374543481437225875299645499963623409774542176727414876194735089872233246457016202740025268393637982012005316383259473528854326501934323619225787029422050685547605632654756851402903163592482053938063832643057140302405212303658105724508576255659915469136964781985330401499393607093020182480328337474288813121442291729219965850837448725784432198001710528803983226062605048223371864195487135869542439088032738431707012503703312532398505871379091684905393108194126114472896511294553679290170568239141575076117755364376353510364397848037167151226719087401923310062399007434364739570778398061816944651522829409256607786111827006776330052212581568722724298121651143139880594955983663395619166844306628530869158411534767956866615426012373122589716663088505971008065526705108232464001404955390628845699451602343920825643327172561199321872889791401457204799690647660902575677717708901148868674036521332561101258466330372249044812549411499773126953070580802036625007094714623205097615002095147518682880946528927296518735466166847647066608722012885066625347603633822164420634644197271936635281179564748945255640208684534991851110139602707353478818985757031766833230044490129505473358775612912361253261364750116443431595019493936352120941950796548538410420553094823846977221819955146927141200541612349271564932700610756394655470055058846538475739756766413744333272645038751748040358782670554344093794660777763605119233362311909643804656278825192693422849868261019304525164932917131673661568164090492232746698989326776287958307993615115734456836612117055708942701339869498997462891797265528781669770650766449904313404340594752505292101331217200248894623158333686450925976116246606306280232085079146093090231354461446497341062933024325705745222846319604024648434175773464062704906382529302596449490760458359997667099751375602454057197681220497821131719001311541003006574740716061628535967158603280372416712004192452240137200989471087797203429218310720945730302555405892491176906293598970282697175662674706296553341186814764774007515557272057475101422139822222918606709685459440873438242535244558980440966510437863533898263867179222001851132038309342490465970669763670915326530356532261161683742429246333276601081440310694241433787118201302469187971429818889018173749397809908168030052633168961238525934602731899524422582546359303589218900074834307558607650780079096912451215608841527050508301108629984454427897968556932781753675935140227922056243113228062212028835171009805083310554719641027054983194209133332100984645428897494780968557070905519167429170739849228354705497804491029616066183500972472599223449236435220821884727207002257210971784790453717358575228744372186945268239242086115064341866410932401930968861850969646744604545711879547745773918482549490866042163389555864402370450808489605093784548258780408547673630493717964936192572063571327437514604776864944938222076306813143526196102337910404265526680809589942968334440375396333679479687500232783035798439048995042937221743872852416486722221710525525215547100129823283121777993824501825463168139481382814102089204759611266777193341888286375384334852191555327910197317444753592606504773029589165073462338976267234770892956679520917201974088423193804835574847708672563875512886329265722166904856926289745442141507732414090125553458500114723851429354566632027083003752495556814573490951608173751038971370543541752980467212659596394168281050573747982782369610272115170461794941449859118469769855542010814300873849164250834463450214146683260703872144879994908338819303090455977569080630096186051514201373285074781590859848285938745994331416334519960022598408788057583897677198242127308807376543009926689847318685916602460103914388940730193004943699191109188047099437795131087235325638949428027252863694041690594940079456101021537214803759636121574374389247664813623861189674519963808309690175016776276083662273121466828120357149770430688272374037546198863401820789452029677695827417259582187713652112182842336682148594454871985874770220976606689555905582429866616137895133385490997825881428864076170309640734244511170550126971827131052205931446192286070682404408697904896877119849128545920249071106908960749474300482284033897729320625023506494491864219055484854850525393910741727383229013423994915071209334459955645513424022664367791968130240330531323314859383467556701376858235040057779353090395029992622271755046408898658331711371597682547047402927353862087480266359525741136527107039110333244309938617005659587341756789034272300211902697016670842253735919845599887359371144582321329373286627091203303413758938588742680243586339085658794121788861287616026073657770195428149558420380533058012310785709384127055650503717231398120268654262240202299461164705556377710618584812551566060878060087474522910852726109798115851190234646140631771540383065726223510453479846787081821279839697563560960285386645291287723706910665669139415176899886761417696848754499136101014203449612829625198842329056129834618333954705033222834825906163478228757680910204793757970792890038250464054123471062021413455771532168623189889066690737955060566001943906946822482147021057629369499886296030126906609545323377150285314511948141558812657889635256280231896017939354648114111962600181104011219224895765290461768675854866588266136305842280456165129480622297774732499621201769431676036788537987055320366621007856968996690625456514621251044378419339225284215003513337512054837871128040890385031113374946385636125196526308521035106028218746333786332908029239187779927833349121591905186915102164647443764699492577346492686432846143067457314726574633864196320324817666696242076987483800192118345864469520088413097020871681441956236895933474232015755473171090375355961755024703238761525621395419591731229429036247795180297991015698865728713857639573258072049287051595933490413002381505500761613955866383812547066219242575878692918645917991823060755775777312948848603221222496083633985605615609756739381684698407394594441764870148720120633505599761594714125383747038821158724536217171135690748905549430092546687658519731416066041870031941096249956881883679324216830250679071089748467913815516478224325099249971528956680966788315215683414201512322927955219560779521114516206810092658869587104489228144753631784792839718907035275306684900496495333397556687484317112150918569733779168829659275274031819874895196114402031579915743428086372661196720004984071503970222509025667389318256010706833371334810346516328011522401566307062569392651744312656100740323475204131527348001024813757862996649029786180728853376071235640630730874393083697208333162004483847356384607846317026195234436542003330463962102787085826289841194801316654046538603307474735642814203788527491093872512400956986351921150780442930335750138657704262434529492017381845275257972101489450333299795522052365663804392684826828011287071459012822521808513497420596159663791211253399946419845268640142185255406182265932279258744526552402722705708417121225489803439422716282434106244189230008485676395036215505939280295731859504922689379445775625397532639115667818020714980714657374837848148196794372117842386797766849990349246109618718841518661155257417669313407808687152993194925512694099672564073668410682786978138486394281439005421511276998147035003871745085559587918853257859901588540033736729482487440401555724710547259441320190470552981572895618553125618118768716916701438375954814932941625458066294419535415871928998814915159320936862890534735891138818327899964888463668126375314477826551275504051468722859043395173790229513559078501560214141073782733285337761997481979288795340938028028620987856122639364300655622796191564654114627632042544434503763455445818376860406960865548790855577577234693708661762316895474584555147177241534472232920883738700235421161286123729446228063815117617292499807436268050235236717039004229818768338698560671728627472819762789467751007553008221402061922175853311608702776557083736997193872095338175916636195859615258214130283810613084357401098948991554086128475650184379578966012013390121614952721711412270079253176413515006422103317460970842882002660535161035288832428010479127462983048877666356077514999074801131479202702102175250409326362327528948418357782217283806023787051359415653809470955122551915564533424452495017491671418353283846702263828966975619136893376404296210257565871328602607665603323143966310107765824849821011668267948965352351299574073280247199185150360569768352540846041180502313025070928116804332705859619045400802081580256080052609884195339126698063537440616395648146035888972578131371601211744547643122529696056140709420660110711184287351280987556707629517668013620742262681347368885389817028889462797919474255601227168297602701317156946418715112043772181776067101435138078568042880044681941861880161353987394348371623426551045339782820733150552495252583437900987795366334884908449729411945025762610048717343481413873808302911708442424382984296458981145808016052085438440304679464211900529836783051027769107431686585369137827689049244121019457972860915370095837749870366296228699452874078163509526072081304873681046557750000616077652963030936164193576924758815862291713752629846980595870954876476120328963137022439413758627004016361664160938019646809509174456500402059211157750744009103570285825708023247199210353456425954817687449643282357112350884117976199582762454347706853040493626982814311721527463498122231940228154201649879653246301210106154559704116498301564153933254916101761468354485209676167340899588490112086312947753161701554791394800207795367763437030476106156423564868079393123455546953788533999878215172568199248032858665239562685019923695360214792617665305413247091662417600736500640163095172570951778839751957105854093647514947574776373963154143933286507036518576634980642138041658605100601655252250309141821104577708195001660428025180495769746123166272836112129318589387956540822127616375379957062992093123826939348538461384437958898699270862873677611157687870091392745269997780206891177460328299109308093313662741929578541052947541609869044483637313284239185614309171973050313359448144018338717965422277608106375361415330101865569420064540873466379752558556050181886217427042791510171656450005950881367507396533521616015547348536442487243173814259414029945200992118747973945152627350979225211467773427592201098822478027381870045090174501046319815659409843982719715084190933546767223892798750703789276630653995870962701637155810069809575015364724181275431445071920453145301665238300062569550524996847852552811854209495831946530911189276961713123033234535590622357822118066900164926825846529314966814015851285385256335640659656337237149847860268942383321917366874160788657888991133686591321405600133169642567617421419934527539035466161316817068754909399419203695842142015496885381364326349119233963198767870223377486204708279078335512643464869627810020681586959438600000754251033577629063455241944655459616090164291733532579190059270226192416350655335976175564984859021712772030747674562123265161896019107770206319739499882512280465579079978833882103774040035686703671714566060416461456924080470508565053557183010579951232538230280050448497211442233913311304975101114229853752551091737763399123273257110908002312650790380336430518807734077331144173959638152704883299277203340842899038452739151868237632717199556119010830981061745083193239052686895111527866603502753276522351556503375449473191674721528778202331460444738552380587271436579506484979501610249692129600605822954722667407170233448056902784407278974178112450451333710955809493011612274298574548063137282464337728075490029142057889671484866548899341758413963390732019750468084964605653934174450449982795838845734058368206234331426462392581174932636055584315370493844136715426892670425739436446533072144887325239925750865565162948254977982122578259843208324773946386988862736011154514036839875867390067417597997161030115944049103396897950609772783081006789227987928083998125873926172447820162754859545753639287766280451573062363775258051387114936587054223093397125068223745052574191036964033839994694243648108928677826604471688106979091299395942892815787870279065267258838261391838715511935190535391331119930515006969919848809342878755498756154448453756490598413953155301352110640548160782626925581765968880108477792205765802675356721921816651168488466060311046927652598793979948598705146139820161047429245066293876920856252701324913454858502681880812756729207508769556676995627829382388149426932229659122682745869412939749132857768042971036425540864107777803840674911508147501768240966628268210976223698642021286434200535489592754727349895567207837182997820463902055758032623533598907312622129792195438841094838034558048324722271088139386565280490633195497270234257488343569824705748636520932032919081638408563944280842231018444052490862365763865001736470533601682587759545858031409701767945752962052560145450397655162152445527189514922259661389770901309816844027914359935266701343404510096015367194148224137616716766412848095584421981239885093641022582064427281801962386371033868881710639026911335086307588682155612003390940632036548478301720309700232154884107487390737723622256142156045809659911070790183852753685764720311894391587104866347823201322960995438614471658696025642905921780379868866821254459927093407794797499765018512791649999187670557054483442069559949735184477176453489419959384275220509937736636320267030638611738197158202273661795801269533934788154875850143300221902571842125479131513636677788227634087069444561997481290478758164747047351367699653706693234605304670388645605408083895316603672550479720445069373097219841371671703528621454907834944712923105186307042553419877376855539011461201677879869442956603401764261117472388691715698784326753346680507836509998313873680641848226279732251688640281562918135973551843618680440272589957983344424085753420182703656964311666613651017942849496652687306351763952725629357110723844215100478131441403745779890232116359165557634738521210470353895707906738267557215760975900845596027326640943902326715193907802847688748362867708965172965553821102578697846969010818572135784765509531738397768814923695775726982848244102734533899735625425674100763557399373545299066791914560970223206643840228489681762389040578322673729485112433966633825096378241981824221967428598023750691849901125901983241808833215470836688956869744713744285685240576461191667873859928734974879928939544920296961209273134586021252642132793124892463450015801553561636068010052295015159759548667152533722570413325476672256613859380255614530619214466814430648650918751367095170555931933567593890303704043444314567440813490616335696445758141225429531663187308577540521802900110694339092534433818591950567222491710658823107921865538731474355193901449180393269360762465107096881852578873426014194265436458727382970869763974385255524716888134027091190083883158133012681871286702594399805189724761813856330593145906010017282606953755144947542206160277792213272613067017499022278914872979863871505011016541111683332884743923136197365806282890936333041214996903899414566395934893587892938623713560030941038468158074898554000825033081580700874115818759448374917424615183557425558454244805577312399721156272429693468260841726742445427926150351076776403018023893935332077691238346826143319558898613469232525820587036777343827843449670559998938523097923135471956471767058879615847675621784879937516766730429286614192586303377721747395665654302788380235746586209334706602275750492734827259414928103627784132546203040162240974782476301785146730557303661290090657517731459335292697719204300281746132735789162315534445887904766361037556502549967031027426868169230628204897727120673276094050134131530779160640215424826640752590505308916948911724474493601631142124156590200577446417240074203015219533315481011476830411032169359731660748283934122481025275084827811477966310567141336207694220055471297520248881849717239591348844257306004445853051489727913978727466758472755751293681253280590501095482128896721402703659427487300798647938232549286229126951587297514411772251274988300061939876950548473717133504890040877930393007779352243877429839126765947380846029361246718110952936407185988143416228863343684092432570417752023665699260621084262748854265496833396343964695212023802648793685620151464145920314571851773064932692471437030298297966771838946805405662652365771325686956790195741718134200298061964124169907040441812365441456109062572920433069182016304405907905077448848431061350870661203189102491497298138964678155309842635080898296134354691898191377640665100476635898488009944027416250617810066577574789807230332615561665247597460123253798016309171643856432297783331887362362605203587987694915645193501586379842538688899048775949635093706319084746233441212439464034504564096971016096189819951034514614929642556496410042648105881250675717352834479784128927225422280915367071375524179386270108666296825177492186344169925054586554924728195786636117438355527301123046020928542041060659211432186179389502948680852348555400784983785156930544300911074317154165298118604178095892163479484216199245500089305923754123468556785441587481664138733448846919881734704080144531625239306053148233950552418340948511635144106306998900887447030200020294319232124192385984399194716004000290881304465604411181045890625297140185376226928584386004128039980141071068518211509281478976948512979414652368995306637151358841752774951527479360404687525187054038099764922643754686910623587551387367001627713117920347894899443932178400617657158037298974920699820448502630474558781485702836490873392374285866376012644775410332375866069252569194864709936121154793309636323179315036425660070729057243525563934315518922902334587948933134795918436385224002638442567863430451818682289660018287409754227686873101247445089748258576413311879276817411976913410097559327429096017697755806205103241098148833688692654328510741394502139117000255418731160289283527226026010652141632618901389597030095148427716528433922361760058757887794662783070301830099533480331559024035112538554941676700958492407968699470267855889673703148002106030968528523716313219153299393185855333973032851165901218731731282323619189768934834780199593867543383781407326161688234089701211923445554705121747333404368662185443577136379913534582146641828331805647443265754564027622027940003447950725283095505668433642261223631421183882835723639121374749152174667092098781328827010518291110817577305822486436420642518152727997176834821247850770460593882427474091251633420313182186032163737679233904481140713679153465364383715951070283497569141287224073516333591379203909987574044633254719308647375795550216803708400083387513460886623650404955472617051425600483212117679749950624377415106230393505257531318420627641730965998807783277562767652984544700177134979054012941578369545808295266766638375328754289100717924728851501771952116116444036051448116034667905688643758556361777372870869244778189855974248046183987623125699856378935182138403473530786373364904764164124271633416369416197668387195710550517723199963850786392328409556983603047590117505866146219518812061569832060698892841913077913997446021252018684640426458373382337795801021759860721718353454258929318430893487327724419404436537993024631331715746464209242549034063973163655333769954752924598871293098776043997271835446656061186154634859235619496999664837523871501476908810604383912775874941515031142589560914189677847185948559186334412364217409863097409718416431297066160983182287826029772089441729245347035014001045417844016590205630925302263245970277499215300224480220993969036337187061124857630536316048536605038390877684068793809437235636850880826432517075221996800656080922304131605355338711439297437527523223570169722850645800015885503176685367106177972499280463478163849900851646792711588133251037242111668708811777735793577301888253150840395823794014404019763900319033167582421911913140922953434056077184535701682963817580412095507072408186395966913199409217967129007646728097611045595773107320433956348459049353100885886898966631974566488101881163524248915215266616772374250307469974211927555003870154244065627144472430560979665766739198322701861745059543125684080447750594939160390715564172869364402956473883174549024777746114414772983540126735758563078579251169618438000546170024653358986205536211414015580923217207160933305169256236167800038773797060840384494251586034958391136110036999426637927806651469900258209649169435129525979379165027155116935112191953994732488120613883743105201551513517847612998330419386582815224029393696399454705596052642632319971067331352430460248170839698248789537067733760693222011468742650547890459552654325242504021326576730253327205830109691189282250430224892985479877199314096516394830442220870586772337881373742800438161026683008235191771441058996843293679469703921830042730225844629915781798394589471364449728294591173640860174049201916872358022653877784649768432302871269098855511207235054519743834018235441264467849124699497232363374771123033423041564189052325221305835076423567721573964856272971671841297337036399282047180292471585433917724050022368468873855317108377753255875798650081724389918602866956773826183482272035968348366130255650807080283691943199974072333069539668516216289971797932920406713370439975810421122338265221282820368534925772646123094034557456516514998713584496231468839692656070716840673233046203763244365667704973674031012683151928736029394948908717376830233453301988049936864005822783877491823885959670919428868127600817069540460694368035118731751547647641829104338353018605785727984437735378985509960028221282431569060365454186010904387130316391706669411691093279761751003872865630433130868409242913997815363761591946042493840484683695147481125249417315584168191261485713986470488732475170527429820083205298265263948391540869283695268785343796329023583368597808290449893750921774597054020968915058973767407233899104973938901890729190825481256119651914106807175224453353470346157347723647331662928088875247095677919422710252570471367522621992500970640443400212148403583546241950382080122625560893504543089498124060349306704728750063694033254604176245376125389851144379335666327215572384502469072857648765883511675082016446203948946436669848092408332974143098008488069928987937092608677991426564894365853657507218611206080702259304490834590584612873970234543921518996717683568234109269054510684911509208870211976435666948340524416925773032455512356127499397067237530821313615210570223931319694259569071174386030637608690723574661308018168013349075512417630274937190726499369736756365587196948504945063634666775254783363022912174312445162786402098983635790873507502529120506614000293682023936362814866383448036978072036308184117793818347165098089458624812981960884987371218778425594541497489992841313030830777809061917638169565882701233750591450223096929770218388354489335317477010555895715774152403899009692312674830020085010472446957648555961238258380495881047854962818250751175758625876183014191502741995645473053544137941589421211781200869628095413878654053091614107730320065697664798166156849012052381374894710373891560636388465721571231877325202451843014070898203020093335379130722526201012002228663606279589914264696324115088914675486640772179036934680372755298012588425522240421854120968102106701391130859582187150189328624556125790190477527497064235987021396394810064857812549559945961711619810306290467596313136793834790502227555198951949502880021577109211337613319205936313999471497019678630037674746337518822573003271139734011805501647401851229526408287982376407172193418424863299940356159107966842416105050513805380551577959227985429165250104725040526841131188991842942608901528456616872831719229032399405603362792649792090017650405271673730720294985819160569698857237479795820001918922678889067172659060277912297920085106389384271721648756648354620970748062625768906105757165166534556802940174102083521980289807984583354891719215865232758142873925149596151961378146176304510291953821461316377382285175065544203654226807640282708816129616436822073428835441827757812655104517172977627217662661422549188017624201218100712795543861180423277012257075281855667173946098081817382617534422688473401106138835551887213276860256558262335029462943551447296040919505542324434988487773950862591182260906529901577873370537928026085091261377999865632379110790244691519034188707199859046860829754313513876048359919948528053534389078461202851456506513766775853365483748731576881172041413770755845292738006551462211270928126480039063801114270952650309999942206005931931006258313451620869851524589497344346311734433936898620894076047898075121550036783536572648796745640855878310826396983145703567370033814027940804007503870762754171160352943156633754190891300438278381199394459273717777008609938608891596699570831841946254047620437224227370849178534158873934810576358286219856105110918029238350538447455398196952314770668851083782562622984380428009826730620794273002739738805064437401900314172731373993991469389786771780334785278073909856460467864998372261792421644362550340612820570056186453278376149852744630755866287534156102731728908552821901148709278941002359361933492032011486017268117498716564310012976048187811519682950817203787387281915135984381919853365399696638654955109499716374539782811049353581811297827379120640414037519502664796319323584709332034439244643301181835827336622030219410320924205185552358939425076002246108939983396038555164459722615384369192143489121715158832432839423829846732563902043884763327358775892421006906659215872193689707724856842901196149349918514614427609818992968607114068443470108638832687277428308276874611183444436243762961975853965627160967254625268506690237730148554177820891203412552935966168120051669729726211711126833952371802000054095047673436466198908836021754054337686853048737035580555530986509997876113594251079727099975166806851026380013982190981834422111778579288742552666680064937318205562500962957306081120778927392584784433362679244193886137880971029166941597675269577333097061642202796410768793931598910116609110487047614958589802787487275539811761215556603443144533387235425806970705237765291420334753445575929088863477597214257186733834369114420830950461714641269861438547066870461734189735371207531250947617221577673071755514742935699718566442642588850094243865687510375503232493732915873614502582905506156613926967301197924129066881183191591296428959574430513326887335656544869694634308529527684707976924579441617388311867811790325256110961432794940210402557920769672959041143526314661554403264881763690443311030111268616797541829925422025154168929483602122413818802787618686005821365321535492595354251461583117016897537603056083286900114844850401048458215279416234339167986026912774244142666135518327053038223476280021962043266787188171322513476738400484519339236538116219624507287876142353792237108773961871953401461098531872790017327131325077162095980426591884151071836041752528421687533682836823275373733533579361573413452676455708427718112243648913981408689600983406850544749542557724618744750559838386024846962879553915045498021985098748254600651424409033797894254300537737978556852093011739297334982394195138170504945562327983321057694974247200090029383079135708990543473055810689473985136032617420173510178079371524991779759605935062871575657802101971266817149481265331237466441037236015601289774896225687463638014860042958743424420258138114858881635179277803504628895533991139463392117278108166836103637575693965273006103368480503411246026236835776666593414397968891849220766728597208022298702357213985645620547050616827206148607175925873873604058920920430229154368949057590655661155847039755194890242800483974423587514098657151796757068836714273812038369547720526500401328950076466067534121485370241401260496608743045995800831771050002012662248704776381617222411163861858777073139165123886182523107670507844300484103910178728075472273774975943982894737380286883658109746269914296002209475485192631642045150149438847602053309431707299527765892099822168384402400083273339096816273988014882610566909164084174347680399160121307245881269552018319606796905034535786505739787903816020131824826801545991331101609220366190150688421866841166713880753876762475199522979468292955473036414176913902111402737152030075733883705859703660710481065584969458888664025111336955052437370068052092038473722226417133784736827445019835863064408695332634116979293597439086748240502717346651422457938645564346870933616392231862962995549117379222023706508793514301049544349627157845428854740376546998299118087419259510797619021989620133187948760954583919983155750315913833570780754376195894345091923632262960903701272336532681189404249806807557525354502221432780853301857784228200156721662711465790434265467155961724154295367217347419582150236391287729508850233696598325343998308221179658221027587767855800980962730419493344411216583351582852952185987595793877489218804034748589942888112683737735005491086235636534304386046085609676700504828366055988759933094905855067914669265066218398359595534984370949419945321396684632283561464934168531577139921304511130976980710260148779336882002896410833671173398054034030170025785523387017047903928008203364934427953767875126745239314184917525649870109041737884316309146596413371779768088734999061944660400783082729435451718993457041138496538476300064639552107043304405549241734311805225854220051206544666560492518949228039588414730896501991077248401179566019121858484841338724242233518386957195649594655989731928596584502998869443708796670636303756676550862008183826487894978367489979177984400369560618509823607834271758734270473806818928711180184009031898046916945391071076346571941073548632268946075325800114087527257703475804811546890574669824821237040195532928278593877921697745011182980330012665584170117148951121940323363925399715140500586780519865137818128322600520631089800945604463140314745040562287646284318177447838825418438063717375954104950544799291969801604463318735550297956624484114942413683300968580445717285065458072209689270046446891919080089552181612925597446959910254928412602835592219633640467642520247272278568570185767706996964356081250039592037775066426806213852438389248570762462805172565681630818934735648468460124255440130019734870084356728313607820047301897272263067521862283975833768865491402754464502744999449378153500354538238438299822345200476287009269416218150776080591968678057636012961496330580270204648181064158031645645399539574749600731363581818269662970001603541702457342210701272971489537275602607355655382111957600694955233279396411872765453796523055589277686559044607160052755391548160253949281966107433165964760194706010724101993897349282026706838976275171922646307408680507857854896685315593199832492467115261091482719353528221148889637656183669551872067130119422217210749623603908646642176538793071069100201522930485653017040583504003931658011810307921100097578428167251074618493196279880240637624975324963738760064031428298912184664679125394793443179884695416310515000947561430025991207070950704893737995770144055822632182009184661306734082530301865830036826927675661215328334785034928256921960600563248819614427063883934420056143498961653631417496164180081934795283167051184061686712274072422561967329924043390535645906270033870052955916053753023191321586788141773520454183679642567216364503007698960149985618878467262017838025245253736442315648016694326541050173589800558670661481015725873752142199393008276267820651757249870241910811181700964452258240680185615796644108187439288685765780260327243602655480389774143187952155579282520654470121342794302416154307037039360196886815532253080064088182742273554210607618019929329312651571225056871646513008160879521572525958368902840357058903921205342359715795477505658544872386776590826399780969838270483176034186131454471283561788358525007446167418255906706944471565659422703598746314222173168415380504203921172149987897990925209205881960601172599626761550240166552497132840912280077381949450391441170489925714662849674325790950993106818838243471720310619769280420434499156510592307973944953334074587830627057746688515767254817512514036516196496793949374468264272163075403486279749074347627649277188630429404862890972592885975774320139928000742085465384405958819673925555914169754798991548561855058313417563415016373296689982740741650971528776551895620540639808075724381107652919023071836278014649239978144727401488239541712783584208084327574909679377893010714753849307358620763593931701454889317419282169645970540500659892816172585537717635768168236385831325439965982993456839227225352900469675369237638179906962590032446920644588624314218109594539408886102926786963555942027034279103667854392578192158608180235873103080968456734469611774251252086140821003889491573182340510102964042839874853851954424642468787981957693889035822560696885177928706003949764084189171492910946228113140141080608990835192705518388168181237913784023486357890479897942102981782355959249565620304821377663332614291563160768648714020855374762835800195025439699715977214400307256527610158699821245424396378168920034355912925006948965802240198022272138609236007804097617503880661424973162533357600514309992220869161511158872210627316844382023844501271590653146105994961559474663242114123775525563276940910667185514738793755853880245821700277137776951424924425169359446544687982029309972209568387259927090661629267414810882161532826940257608992920501054203109618807576056513189436426653507693858388274455763400959499569515585823417449235714162323243059881757227921920535290652233909434204136135783958697046290000318548182135388790289809591443007705214823090988698146419621961469752730394353245135950837759951546790566510168330562023252122299582674684344252029572777630467975228817979840185072771468150596135384275872496684410311109451089307622449739884187068394984093649570720665980023609291921039877932943453131739385965193868809413822693779413467965057961053339810005700358059741164777125824380072430055125385214492868046165659356674026389780920340492249765123468552551568708296770708294503245710964596064400523233282198371233941391052493692689792582035007811188454999333739495713551097373515902916523029866953786252695420686434636627674721761128064498243578082877221697695558409687801865386230831717525678141653207158670523813475138181210485746487875330086975585274863870292105106037310077950170239893291952254727112172975073479615883724437875705081609656375094128313569214283095212008013980935360078163469838264227494888931413633615052355523560366964578454192988846618900500504356171747236318460683241057198155208181989906449273877647800272363725465621996085906726020564966473752786927980676340090200901800608733111257797037409924160906115929021282425440831227199600501942091297039147445727220891525337405506728934045040180439100362123031240302239968224603112646264865530114922824559047923033908840114125060756529983880881173343972880580076749296978828567490395292767417569540277668108786926297999340177945380731182319880286896918133506732277920066729978300091869788299102665645759050377236057929880436511825105368209023461851721904042301318965076310804586089773329147668655697513375580548891138442785055146045397304103002302182714826868107835002024738882102742178525287011016649293637163837616029183022337495315977261709408556725538893961835951114130729537135120774943984383772603600778943462154618416558013245459255312324258704401454131797532780940816852652541647378193538272056623860732483337365132098804464533913139963924140250043369296853082407741412667289572836727003152677345296820856378506049069816665562222824050045508632715870060337958505917692715377835993512247296037843821508409624494499611895237091973283823804097584581249619205480776663484834541793008261536786855964314420246643656679712781027305897793516563001019629204720041319213548725320177257703739576937775053125370222912129198512666898830327949723055159225209846167722175350662355202146391617349029731477977741600370585210973520923650691944871174726093071548035081968093761512791792501132621166287573272049942288895912879457049000529852977909617470397749574303897345369525155758190089270768324945433193054893780458704231576596390839956894802092074309001909825960219403043361496499055514681963469358350839032859290842326079669381373404930815821933626147795477006137727442732271313874123903690624889664325185370117871766936327963906185290185521819775147354172271571384877763887498567859478506054448413630049921818284347428333597571328355849290620647469023047799950103723916256077239502227139014615887236939377620208563513536247885013924947467085506177872678914586608290973355919689545545812038617028111432463449088236249076115292480860703819585326676490871845516789673982008160979921995179885915245383227808958575432047624559613340582128342762120755493531847287643071741950574032709670351649134671397443711762179222958278982697888532022688862498054121195316581081377943293079832412833632580120078048504521190191332198639360284896774882058470552410706333370046125130424686646764294502480859882550470193163006938937848192038877398166125274265230808800314123605635101111402033530390106854388715775174441905927556788218883423924878281539208480989985985321681889712205130681536560404378083519261630940876780546746962508984623838202901888263446037101198150560531366265904409417674299492745153215646960614111053216387207785834343608303281282739136833087371500109853102338394682106507174643918818367693953652347038897743997040591315879829528203948680804567991049619848417246140311616869212892777136363761259356815338819719668007945678538725860807607067342971586392389139466878572584130007969691901295085180543333431972023552997105200716886745497192041584597887496039935312890941788894882894044976387443565264162727553726277068128604092763462169385732169240508496320399045766061845947717201298885734808453048538197173983525737609176875978687397485943021807117258815114860427867017899948302491819009381554738321936356104924396241962917002575179283777399997199150063726802444884448750868755419143821420848977209802784917109135941233122904117718347696973226871203147218055770619847155469027250550538872889457445256949533409071911906781796566267015669221195204018754720040191338846145674615777495473062707521321490182634434690518361056586290810233501495018980768856654799245520754727364422181173785479480264399020244471348186586862794229545209078806477078313583820320931288446205789828714394554825361923207122048141787867963680133159244924211338814612109514201309406797725995516987801001020092054239937361912370317743021976058994503047393931660695315312673999097498918198948899709566682986301761020721482274086810218095388387368713190578881643447380176667128139486503569223905116669336372913358257360954934052135015056593778760350505804977325128985001203915472738354917235212650356275378207149059761400329151923633585303369228408961280615196837260073844165721283606948532815874847667743978795144738617946620428233120900347741705995359612546654409724739926756177702628536064669293728137938205255157798014683161043182655003300225146542160334703439095188166415176699094640773476489924237967258988908865971113991161402574655794445125224849473723973165513102089632138881285980479200269083612685525698891578646809786514829472689474411702228287725513763898769842166746386902378680880562522973176780419071241646019368269523866285194289991557923599437353202219305781596625673106567250260736320791344394410085243481402093947271478864382449243560485300485327102994642949335822890646943188769151354254433582551405880485131246921088241133666165648770596848036696902381281599032457929795376946447228210320776313672618828517098480109804013749141678355625199058733557059154792507718351564726862509447029686377236113253070544270107880611390323032474248607972104840837273414888908040180521814735707711559093002297057635861134599241112092223659322594853510440354954551889731369736259723988196068313039847990806047568827995896393910742348462990158046590483453584649325281724950619893211596104304151268206659401505789807038733922193503813453860573992602372586375719388642523148628774341932851082534483246864733679407414464982805433364250933175594488087604622989556599955605553820379114186952669397632662310905458064839517661278166687609221179840820950880561115446700522965268670350942368345717054343020668502841875216560979258081495905770794253257363922551222070957513290164986028754569025207325572932485560518540727401723483178825241159294699246074634041513450862742817127534683147366194189444737234650618927612564945626633609388492323675126339019130700720665710810044763405613084566808142670528713968645951168983632785750240730538451933058764341569253864213628027416091960571251969686286808169309971537422946762317037185612587369457075732196347916587875832545738439247159636461414427476707412709116238681714530102785845673905396159477268767866519192173996438530132457065249990403769636469429971055453853583845032619697004625947983095725004785402910820931434493001698907253381242784372329504185498861557683063013292509774231026041135543748657146997288206029866461790047282261705968716223207045913215600190784349307524288121807341509718191395988963557196315502399181376986186424466069339509653933371375819667852060536435786923050590493333003509410107680967815942830856445202493831563330067995919897247224031434416977927561786709799503785910841169847873497203458591970711095509860957375965900978852743357477301887730610849523734544935749895349842358487150617724453818650214291416295804292235605308863229943696035503234447347768271064542885639532305345837806633939802532980302015496511401607971962597375882144948937454077776749012824117412223471714807992618775272071309816820148444515991105584652495801160501363905068712043060258589088347083801663994583818796835320893467723945303708516656858961687472661785478664573654868476377967382934301977417899240422884616756748318129933765668291557276239443116212483587329811389936609504871650611040077422267325169858150509859751185610620484499469588837189166328428650053589390919717089445983918447635499637266265331011948616492832803319608404081192742211981094830025244418080693309876603918421936388848695285287213256699310392074396700491160408067690925910129022698239907892353515405727739820346990386640598959271424331566488626347091920955759296498155936729469066961658712950783016681417898976689391276836760266520559945646459363258286230488837960508171624733820542404873544280613161519084540770347388983431018204639783511145312633725869562576323701566113958433291041703962975591037139136263052808864371337137066791999839268833472308841128741974173805814552588462960334375756609642483403342385997937476103901769595097746475811718251372312988269401922674168057256995765666962850653615094144162329735735691165131881293397725457391730932447471551592043759869493693588948518883707181777494231622700616157466740571726758681600682251872556441247293821262303089223329057850969296028289037191639021053599504789814654103967759859519187138390537626547908549838318001923462352233258531731559640939626739421687812401998391757891835665866415971512772881861309252871588908305406916708122826447064876636104837955757883053521090357498704814814223764779666785413905552425976150076242515711515914072051152886180744794652507853620089792073708759845071129279510143079756879985667188551637198968939350169935249615052484401349959240325889796053359219226631247383760553628068761353360127950594001564653055703362121817417488941187768178653076796021383113452325529359456960890350539260394662693500888919088140456218448945625127701267456403465757181872103567913496827842865878024926515927995329294757354108676622912401774103377942585899372508657112722753509812477621363919101671430099245130784330999163118219222249774300434642595987051032334423380798192525549353447717288327467591358989408910051381394371084681250298690102346936577658653260866796367649489131103325326315006656355330688287310264573729059404527124351794537774080190180523186916824651976586094309266207720671383492804435033714181553223843521377172370608175625097996667087539118500342402745188089515485240930399567792223657384390861614742165574618570198311179621253887407445722998371707496731126440812417786511986536520352814461016966586419446692894107411952807699412743241352853383383644333279795681014683282028300348864990592697973292594650053817438310179715631021439049306604714909552743729861505250263305881857782253272964244911026920408714779497134401002413936882555503106866235219165961443033936963102651118448033886399718652930814266073538724161774106020972618131949215417897159435424452138878140240730510022252233580967684948847246289081972561447298980936288792098992025735392564058403651675088218812974953650267342751262294713086141694361079509050690174447432688421146494977371995383673975874961704408294737862220614122289271848855966064452917130347713727990781270654672297271985990570720970575574934323593097032896289618263932361248923946574519346452391620466886306506299275643331404475771775689922343266454938591886141159531522255191278633855118414817859741521542731424756492992944347851262237014489614647625020979145092922155676382935605132106450902378673187469455450335664732016662092137680161404693160973376611110071006017918695091406716032172221364733971306284658910924105630731751718010667734059704643880154034839425779853362341826059111130597246657536997488742937012085304817546135369070277611975022442418207790569722201998985943550373673370569125184013722441905157212031012317021406863942704673809743943096151046707641408480680495536674200974026258378306379839263089253735145442087430069410717186264498889001232724294580888334725807027060399190527487904002163190865845479651345255230661655017725268924666294671404874482429554487992771185629586615403300099288150191969694905206286307161102349761932528030650606443747779971760096229083803428078226668993228524620451442646532491994466465341846524095266066373125039887675131827819061554287164526467197054022424523379735817903728128932456527875452488662987820963706214072761919612012301430921540296778780178057884775141982651191690750898232257895738349855695323518720098317778009574282961001846512310164689252467004811475333794715194272114234130310457584005203648278378860039893112867741972423151467577912652768738503460594858128445437528648945789024027895215838898114967288913603450489261038674073044291231593886781112786307648912070242366109976748467214631828861264995848894571926620211447760238224125393406539971122142176226370143279701124391564250857208331654354787795012702150889241766894945310809821308278273693752518234190801237479025849295603031077134443239817581090392528057620963193368401337691576068773279828323717960886895115268667492147430359394275244135513124905685490831074885677296581454398139868535475963030841177972814409192039275617457733314531039467176696684252513055105927218983021465554175691662047320282457650816176923428699116341572424872960933302995788955957694711727921407391034741150493643884896060284959184873535765138143357560571802348230563452521929069985979329052567209944385499297569334186831273023458786530407976270007852236485022369426887274952011410387465384178651222088663925746933358812950555011674535577359881138486554190141912481107348647750910942585214054538274062386271714912301725805781517716237328674676722276907040664053793682347411566896415245397968670684278594708479979744689488469090787440088068934693119072607938185359155990402668099802004298707943746784581676529868703581625082764678632137611723560715523104971280103624104196551945422076973160968982304298710968217513465430597965266207429803338267962343854680495262458641109357685086725105995975785417541295512910327384643159722315417381986990043014746175421812809825471477418666985119029397315616548160554228813328805738036379217265081842184210755362061238531976083453050040301180167839905879107083124937901987238591694725426584699886203197964271099928986386679963076281521549889918835600625647094924653625591147061472692058609988407595130913495875079198224048932551306885870345069335157182014106820927223530524217167090160372229403316393215028932019926947986682956447399634513677450662505182574095412273919864595816787068084873109476713454610015718364210071505965171803260289007042572682395533375573805016745777736011483477105571616104896021741140197896421647475393213519767163267564242084303177876748442576390422661406421260061789485634268807128922063216819969039232522566759100607035874777815302517632981770098199102920182732468353653446463060323504693882039203812548820420011266913053443538178017955912605376899938146910163199329813157255011310931055398224655043533689591379032299261098890373306872162996550346188557221143643206033755556071687755725026484064460383943919597533515360887506833976462354468455436185504610315733928531651944722793717137967531202681164546780749910042359191899537951777805516007502000474167097744202127703846263348332039581633205485607631905676715717204548509530032383465594992648371025551576660493242466399859614306345834877197290083538245863355422218945228758574649169455656002544047181393324493386437932402111452050587115389222643364278809903070737362983621880843914877727514878874183628789130699624675707333341170797986666595500022861648954349370758638415151256736811152416639154712956979411501612914825191489259376363399518200118124652908315273570842759370202226793752269572861154293095303724625591074089843930683552901984634850974192571585470818789768109372124781579841412072867585140985583153197465026208940592192890491309273457104743323437896526911094674311872140852800530326785172322027349888946651133838896018939157356281181009528687868361637410390554340350150388219054850828860721891743085665769198818624754704969457690321128255626399789070312387174872404369518399833777495061473023811986374671979729709020299746910879512679520444846245709751924254721293477452799720281754283191242971208866420876057401859381687444478497445667048477769117567785242859927606737251251780321852232118342074956465815445457872507207062046593163344892693539269381375380304601326348575344859134346333295176359425613341809594660050488963018657677668664094313921247341302954431937138536125261781232048517830539024818824077287339577213842593540225673674459952370256988557752472589956221361014922746157363287636368246066213604832801993830938255656262194283156228209996281246349597869518001148561765313452688826178528900429537272119817408512546094975454863405904673917719985393565511636090687508033811434091319815272684731980528447314635217837248984965746126841485217701834699861996913648259833880996376790568766928426540661260680255357438518195047252908691786001441200574404699391782899990072767190815799184363136041238941888324337986693223835226576646342754599118020363311719979448232563679417629520539040083253655020833423997611472493109848648969935345699301557733788739889319583965578922994901053593046863527947475268119631004098353107068856340639830350357821007836753130237213387307579049967495474384252731589361870901766135919299315916562859192979178731991329370999054681343623798894196449217468478532064148494647562405089216804367761415885836543644285626085705627166185687239999218171422615936141768857715942615566263207120092812823728576492481366591024627259337539753902037681553078716900189937659454638092880510369541041884638681281495221131406731317033244494197049670560942551154979960352507583222332171444293986047678726498227910476873907055153568851630035061818549777799928962574213792916624878749792709287092172211005768950797282154510410714482370232312324851016035661625585621400692216296531918580642924958357937637838155776922492778950733555918532820757026262339922350885866164655662617989693719366194240272013414874956448805767275739049024664911199137740870095702197996170258304610078121481675109606349614609648969025657141299982458120970545954091283066463746240051812949237147290794387983012775489598921505472049779054099139572131057565899126954636680332951448071132344326777641346397374893869391573497190163988984055184219322627193604696784005187732463879695466618433519556567953330556611368129076387852592215064630664716959857790150985024095787105831031686740927846508080699199130309351672958616225083747659056758603118542523423760016618080211306963076578719839156802389848102970029118181916107511056219188498857949018219486010552757111511110123356184032303008581340871175544358742009355891033456758731494158217487114114567129731102283806906388875288399105798858319533169679143864657155143355466232998006113949652837542363952356935154076756108519055198013451172470495581941124778188239533996618487778847338801523013502232109038750693293876451469642591741222056237472971372885195377136366971060164629142495556598600104526392020209117648017872355681710150946328532990938264144227084779869612504782860391808847545289585227298788518521809477505918862388624495019277584873117565446230785672910786184353289131850950962748081049017726563727181266307078464342291480837264567608947444159900479875157432424308516375355076284524853467806340915450381830175481837253492499205339561725251269874844137898919325815248274509508430101197206473754044832158409415557101583225867951196467731731714438108700909352005861957174243140307766907068088312521951922873378564244900955779570527735332799268708356589547437953329817640645104601966696448004830391146845066782112332755708291847186999683507648765339333082348007740830652485490348673027729541510330879350554613048677242406462717282269647583008560022628248576930429456244070209856838127335046832860863262544586571752987649370089963353300713470751904847765814945533561657849360816074220554968444060446147433832518834690623588935638568074787788009980398398113800127544299912849469061180252608324191903206851150273923472705793929673138674240921874033320546619734502817862193578029556127339318857420143423300767174310757459082005067316871163339191498085853614676829869463351207567608526429047262860383994502419747762732509950259081935829037668159999398542445674551540731701624786270917696665174344189682356518584363334394760879069543254386580834637884407118077474142434194936021234535014752842951779563084039470085602545386578192641228310914969999800454343184037377273371779375339686239333426146008794834181260995929759942502364866762521750953384904177488646164373362064619027980809970251279352165754927742647460027469816744498346500447644566710298919265520152393745563832374498040405151314643482575484951642132952025839505871454835444012441089487158230371378433848987915214410086066379877433657319983571120323167579827763725720049037411447869312071294828394019829088332610561091319755306210426624395694594368819999663271090073420019820072380617940930681450964229065180366143974074929681873534426054320043888761937715712165841518066826368495385958499929237128137851382380526846924167712455894202925597983866774775781518540001156025962013807932251482492737254684080177344432063115207068017303479578169686894850648731305869358333889366881526386811766981549007031760449909307687742076568565904893785864561704630931902959910206142578207844943611102944239602267577498829151675619739675607197622811780767392004989599495576460308273680659047945776241121516124250198250288685579305465707758131975168506496898037330745671158784466571148148594604661374624343631869642492083258966261155778952334543426583582640439125344392124257905663060969642681114319224943991298437366777232304490800392732699676400854148045515456051560391493414079706539805682784623955461033290528698884515720754633598817753076684117574001600135460519454801397179138511061172838308556480180884278341537463605791159071261097390605874227914572767196204859551321661420667778447510899819930247856973314490465292681897963205048627239070426411520689580233290095182187891405209349767909381072780503268882221177806303053949371466663530109539259447478664925406138025192645570151451936614483574803050272037901598259239733685428765180302252542581282123723513420670446825771556242731833608286036278045620926064656591495932281030148777099616223576744174893888054527863769934887751600864773917386570308986886762565071142686016764009612434943227570869671960722496968972903633210850862352038130532191459201387781278348226935937857259314366668450809917224137473450874634557145629464121635939983164857609266647918314406022870799473756297641487971061215644651509784477066425500778849328185304582673601889262469916662501888764065741361106621377128570984827055799735245342456517629822328555019958695882405246616060375464788714692532720312290679240066016205724137763185484039063048084716852138417584537628906845322800865712547009386955478771224108298838509427960073842961001761100470073526999572298155453496837953779429882605997441908793104098137543450116806925493455930212363917508469949348149923536319092082263777286725612152029885393220102222054892185278835886548282170548020757734969450181407128747357794332744793546041722886614775301887816265304419223492381064966997651961804461356964285855885084311584411097048397634995267543502197347303607460770497014457244909048815989601780316427142847681509889144935843689976454437777299896234394757529272491616370616399435486736319248404128412912567806882934199659828679182720211586071441596003648391685704289003446996503484180987631446167399570851716134786422089498382494396574971183681768542350376536067582143887038488054610262833435383667346188533346934238751719583272168695465044601041709380695007018109187108267832158801967823384198107152515952678353490203492410250614366290956574374544997241585753102816383564662153056760411390694187894320382966920243868349089102227767081830368709520562915000476349846368870396446876165057613590815680996607554721019607021045205223779829030581045131176418929693293312141758402943346128747068833637343899349697334145304843901735835578340712735471662601898294793029919231371991075428789784081315341404134546317159376859695415808172173875052661268849775404375774407986017169881776158378378705762058037854021056826945431616272155466408473674750013804835067494765822120843425268207096452886529215480363762296087182706060066719243066757633691481983787324664824144039370309813297994510228248169270301890533261008978457097728481548725738968578680301892061187743452884660728707488866728749596381150640392800631415694941201413666214749099496602456420510807887511999504884137203753473020433777666913664427666846312295951856108469137397041527744716148001796234756527007216277095437048816333735591615156618199737771008281556272181807874041304745058197665186931410188770015257237366185178330259768589824139792849645325093180370345008788025254525670380194342467108238416122860598261420811446802615303139247621087104511505862923122062475183014110346377164489694785599258223744898421098149317097620426108303773277171393258800916995811352550880086628956586081329974261632592033234246801207738370242460581479585810598346551659086066141008506200963885718653800046991669643438805206190985265657620264303456198648899514228846426939993595498411990412184484837038822602206552096770285762330829147993950386721374618046071029328195677208077732638809455421372716259439638539152412479813752416905109516376088920244907289326321718378248422878921002620700871417764399746658767663132959189061093743421452392201138867222103913930803702352418565047268198023095542281853771298676307052103893288029889242453109678982900553768156517207617409033171594947731579201173810302897066117533311280331744741725491493064064325515045792061055000289580258904992515376534844799973454942069586941726925030244578259455791330478043775444721063409214537073555881896505832531870293172022489576828850500335402326116236200367393147698368621297728426772224308566946413780377910941704314200361223932215192571448000155163731150269929628075563098301424449144122822432825550288938580604314933801593386836840966684779063293952714352792997699928925863082519410481703780198462163232713304011019484133177930998717870590398163423034781250795784905684852403648735253672895270745865863427228733747205194999607694744716605691743543381152799231325681783321070488481133179421145462972138637998479350919658267697690159452387741675228247940377477069400099836541503713817303434840358482349645804650173294554447743786003646186000978144723679231791213505261680460849156438050705475519205472475041883778394424589593819277875612427910234516485901278359722033750400248995177749584706881051397251250105156985960889768761382719848221028997626832096487061476642856941305077444420609396265368318519060766368041943296892588027279096784121195977368957486791851090406703065009364126676010020366944966912143558730796576032067420253217320585317732716482438309659111571390459018214765863305502198456026127613058778563144198641785422673352780082123450350640134684990578045777511233238485265587453498544489775822271144235458269526480944333903045998711929406915621608360711232474456153127884372852001449932837274408246985936105506663740819665438083126115134465902284420744521169034363675064288070706243034633392815077855835333128791246692059801313393785786764615016654079904290090292718478910965025767936303547601354261689135225073206084350316287574331557863950583091965961039806687699053032291955327914924249890947486521515818194154518095784830306819845009709469677724923552881025337804012126699348159040346171312726965105237074172572199126918621652069632030855539670445694010901352197597428441993757923738858661190936401105733004717734944941121852160900413579105448833766672350453229246845603483183634009533384639696220857856252326778814594806811079115517041657579053714574251775135771426384193026637456190412231037713403032279571714761075258772455212306734052133649467907497853903885813539734770147303039377992197553775911262803869166194729039732799471954529197649734235615315115633263870843534768142367976609494404089582412816233323939790400704417146756658129567119270636543287729620688124217641195250969437679842647444227445668800377098502815285847747904134283252943608203125258449616912658488594138888251919557976282167964307956014604155191527246823219461818427360281397130734996550776980019782739915209068295043133907346551160139703113189260975653775275310627602138032800900844599481055253557810083388661698857247515781393643423427617419650196688922139406168303879979945699988194910839297454440504514532537191433927746987350047235506279197819801817335489948243678735365484251256975389676600901370557833705365816414535625278925109215108486996405499661223699402600886935885465204743703565909509591571735458987858365166182285533481730828102872919895575560524086495857087833887973804827915953445251888924606556165335651761807167039226784108725380712330965658418954759990513881412156197629417754052250111958611650480556242651625551554702844926705472978748710454095395263810967193881731608277882882689565735979518156371328478575435965163159837355478846257957550024223956243945658786993394849923645207194275907339843994937638618852407121464960283871130484666328334331837699684230767757605663678402466989392736624605517278788823453050777287027037789388962830286300535232941290915607319275408524213369832134378441388025394198200020428238802001500843943509096887856877832669785232182971658811393996708125190467242118633775440877617767670341309658832449703761872716061912633291874577161719110358488892966923956981468885376057423623799886322749327389164692049870605455203286758978604488227459398850091617284132469586469115039726459880091983972124727396084171421934408926697701454355170827273550010489226678584364290872531267750300014112263743362044873580658402034219389457520940267205575151130392401889707490833085470082506901057422911797536338937349559933630463891303215837641013059440192433799675826537610963476116275615596036661652631708811547345374140238163994185917757789975773937229939142390316831477123991438618775474010322404647513895862555955911845508008779603948959058725856463687085290337306620373631827939046229652311201787428555701364876770470457582580341255744813968098219164399973083283701580168906063774899367923142029270250593542545902065512890499754316921545178815485741647911450778809185145157190785593838997145763045393119463147333095042056706273012697368564826160098187583821468224503932728277236116470449372673816205256558880969396570068704042404249958973873732137876562479846469251693844193688452371994509607668299040063699174245139045019242697397339436500410571557029503923607974405727594195960100057190432514528613180361556190942445927438255942719983045885233013129325995733127647424644733221016820002333982524745520698931454309671809038408835140330718853250945413124149457227116287268951427863582794874694714860844647332707487020766753989804315678468776470539798120489897070708485093600004767706906265029392016898759452772245082784769941553960859173115658794663269620771843492362651722598305193409038362312757807333822838677559715311031318491102258289468800411630653019483725243536281835642172878581066251789396198489358804390883156799364300497384832920486200312990228394966453498098531814644292977973399510235941085403193622823181323994406736568331401945123230375675186125299812397140873878536082959080821265181400387676103863477018402774911755685321785944228157203692434947549745077189308050982066853094533084850826155961677151742132926160678664351567493081536288320316197912487323598925220993739174865414009637508712443297260638752996274271119595195557044847202675524109848662103332240663384468083251333109990991081726140388203261390443195782908852722466386782042459495103094787929932569450371295828891333827176479282475370068516762474548672472415703673945470383894901247590852316897764213766573632353114154680389149129188097678967789507197503233776174028031645383776232754138744406522524156673086135768261523060145702546301420644734341411004569492454131538819821430134571590607607591204865011811075485366540872076470256555545509224405812886335625132369692449323044879787541522700309117202066225109176811859172212830248944370034609718995872394732663885472763762151933612332051500834496461010155212675510647506625862050167848592425204879444053391219975091379099823077285181776190660951823896057371104581862589957788280729606297475619789205816186949225679685355391636184598654517523336243415126044640765591137466603291836824929545568100178418561356429966835080223709368335724898493335722262784206681213378486313865995275753077145625812193131232540962746897127289315232162867272198218287058700043930332079016925523137691746714043412657162983944849714145496446293671816942123180632481775342722153845227856552454340646854527653856862616446205565262905402465642455604095092615626693733732484045501660488226477985915946150176562970804960883990891781746193511941856817208180605656875051537688119929653182461687476105733548791365877497522001661417368080687096676023436337737312787892581564092729044325431550065858790885729729469065780650050616847878884275993608666293984115048702290940909531230124419642855634578913351308311217433739976135989811976024181349463023058540325754358086663990662665215942284005442931768267822227835061765634941070094211300532358236570583161271832692443143084098474721652489126875446955516955196660240181044762547981706207570149928628313775996760479920185305442133471157422140381754173174818560156858449690477265547285574385499828417411577298596334195311773288937716783769998369873685067584607466736805264662814710609148334091862715657390216227795621254510276470628843329312045329153143914249627097129642474937579626334973706970472002344397659279209198655315076628132438944037884679488617629617537304461446830747467117599158615310270783736814244344502509479576986288856901800912343545915709778448532922628220541226843360356189862235090636985888655948260069052273471050752441120421018005184683106217362631328120863176060563965317938706761779885465115459794963585773941007133829135353613257857051355808453937919006046768794171345749784156370769854689203366835259157844753262775135845943477565472437622858033766422354193745541476365347196839107018699881815806146568655698619708840281680510963357163912334260495158637326200448135913678470935052372531706433708009788981523698810129320443265593516565632622099239191317331654229182547032708380195181386309498262537931934413250391257141778552930038793723740242974043655990952167215149323904226068804533137370959614464520704736556561980454425404203217584987391844443879345723030823323757282518947620134566147846007291603265799211106264598578609175321492461066099936516633679710114603979334321871264922038868156744074032238589192598585036868268309034394972566593118353101414766547053738920796850234070302369985796996859628297589629459401916845775260373206937134196041806775102190175648900672688002196061094581302879687150713056688512689066405386432873668108763540078941067611698839010941252147839772839874920951902305818200782609176498883415477147000344417777829768494616642996908449648789937893244699733453651293489203616045260943663948474654557678025389662517415143133059203252329846327128795780119128131350404206680630538094595653178176907260900481426007125835833919828027092608733163259299582514424398703920933368405533369410474328710408770071267941424586878457743464095978764528699175659271927856280154514166403789383720839628025444126711708351056135664121396510919404985497645253581635429052755961198181579898669613122228639953246559634670744151494649285130053503364414776285327661727091063294292991018189655538561976357165361992764535134633882655804718252651657788469803172688161201367756411945105736792637751726086319617812474877586748441839916388223950012369275459074560444739109144925378552891109479031975812815175766862195009104099002382102395371342786656673681446399315952005124168797534548367389766153080289240618321122150139025188885445871465071534751101931730663841196150611723600122510544045653204439529968371161544194554142118477829118596779270913405135468521934562995212608937863463346465720602668500878797325815955086184014713325817777938624972558365141093236495980306533884837634302367900294262611480532015651305796496219001378124108294504478142259305806540054207372920532201595037092571337355264241480095398039004510862668041349100154519788274613903993882187064834956909888550216347556350722635283659398278201223991315752383469445549692730974439917693979819531647066712640522783628292181642564555427790091459107781204069453317614359718432349438458289649294173595387532183752241130097780791891739260621434982374216891201380103872550200377433864958492424764740060358753798985768542730742477529046191692380329159108876417053841770465356243448851320616638821527041797739325881482742968301547900441274597797796488550110974963913772107756681029677211975304864159572112819708873120715700458292126936218432294403725338628473665408127324422319754509765202378849039274782983304216476643761621319853870607001733369729263920650690132786527859238146920978848083445270702993121839011277873437440188570650949341542655684749672276763352611589097473436014639773838007398088528695205734451877801487279639063093842646079912592865389076821848341506630759176208953817792702654697839474779845255352008046257975525355407708046539113040410749770961657263907428631512020975076192688427297503688812699112738864304838725427627056421504562217119667484178796720216505253193278060252728094096853496574984869208940586365702094386699079996798982794383101913304425835240321358843741838152714350076800515220410385907359180488053708602355932008138748098500532103442941802265557416790513689115992683533422680565858380543738195386411456566120007574902981872720998772884220362493091753273601119296469780873385674404095324261527788390305527460342551430894824677486957185925218863218201087233908540124997856599379679332516117775642964337585188578206764701965559285411025860019497009540362910787669905286128175271801929022379043217275552658468947468479030378137944759752351112513164552690876385691878333350655499877882571384033700976500385411435430425357537578408902756157041441838504362552702520939551318373749922718715512855286316914680537495210937995406063474831336513780175753533193802091789752977472049924960761649343170527603304301823414731478450020855288236069777457938526968192701223864884830146413428249174354052098135524444158577829266605958516811538388066455786540244521710158073137323551153578840896943797898387222734305453217027325602745376625931586332511351703557033248938253777158125520667405704817185627232500628815317864010638931255537742858414697179671791754711985365633833356905097838456371978412971764756422135380234337958943390003183629871813938660224819339464920985080640402609429752155222382183857812609028658821735412763099488349444228591332782928290623345911355929212241827733500422178799379958008566613227642725910874158167710966992846490326636718593512926030308733797926203544509549528539982737701304952562980409678413693784354526575186982117506966200594150878179980009162624286246212513417739749548151060299996275200937414928949934149212486667240589822951347247329848508471613556688172538537587592152372466423429296965401200969159208323038278355726491350588391062142221444247342694659804867936783182888771667329889612939173099884494466926391340430116738727603447396214073885434857788215487264486248222053518225698884149180310624198624559328451407377406985129155710317762991501759629140554255601712613163734292864436738834619440842467595906466688542095713397072902542229698539340934925444135130061140144533069742044351805413103147503285805206941390686191696422855268811538534949927052192517321522664660006085341588128044564345361980006438326452266917224068180771407671292641162088917511578707272313034671597182624730315560672976134814388378597798292538432557644370111090576662506479289598614416984196550778993251243437839072117091579214610288321985540608313452862982987151539071352079838430760559727604991239479198652401992943615539138944784521113629400475359216501547499950015079371073508267453826790157778801596202518037017073335491025352013070313406661507259056593346024122057693587037158030204162024509234904219453972989909035709048553666978574008606756646785208524064247309224394097735943866013960824179628310146950573012389704159813224228707245159079118598255380765483711040232929445015647137921317482506469545214507022322976500698616812955315636040775723083601865285284498619893654280336121740614028269307930480091485859956465021551386041687323562489522509406343711940707429992596959854022175808323255321277874267721135370186200080628954026760141839420270691189725486458755940737166035399705993560595541676224047753704047763601087527655342019300399144044628773938853265504432446456155799366293849507440047501938793884009586834975761493127289372449787547506334655817218624102904301974504156169586841977117763711073150294835362868682093372137665320030465187166445697333171026333717418048137589863360136539601779565672869919005582342265202504667478072466271322693825787298651637234605784252707419048512701568779729895651827895468292117077618156600632040649495571275547415609549121565864592910477835763197434492024068353042998854260004864127817559695811222309071392022200105043295286351258736877652434240585097294107558918894216413210499214743000659579698171779418049640141843952411412342699735832307835308511345690056157118099364028778282806389503772704955219450447729055233290109141717903661738873595206508676734519612489354692275810775231010190114027651762881235287470819235317512147254881289406237641609762365338449661434402568948488484670642349968784056763151475712565551170270711271232227632766786639216728251861024368987200325326394215468902838309637942972977598455377507427284370416575016322552966267023806030904364109414897360871233666321843431819871615455128262985159702695131959035313711582955339064774828940623619366274215984222117721411911017309343956972443796276819522717598963309600878962179930368161072874010765811878814446073046958204657989576721716980617427622069351917677579849869399836556155728023237270600811957316494841695660597287071679484519887168126193055436012699983299755462658653259158228206084595503682262224538623516456472919320863084824348227478563969449429929115890237707513627422759111475314678743829228605481976541957264212230041194172039658682534598643882493742729764238368537344392982637974225265090546801472581210999222765205522283293330010222337222417207687662146900162155656711626399854817763425781024718029629205036955779042122664191958368035407683368389452086748208413086128412371766078201264064979853545574254078821301694914241672125897009909287851524542378347827537672422805176172634459302235430663061665041747663636487945815573779351224751932570194140858686390518646269990916488480169858309428887462328303675108876037998414120997518204536534264157174703910009317561524468449254298746997833827970185571589894520942991697927272382833263732336059138484200986652257133399515827729448104539098927377287714224457142651985670779002224179218280475187623128163778158719750374627755455889016292139060087173074249395763922804887043937683922541221771066047121061798600522342650012255066745167143902259943296528057058216726355154233678875958091281246130112046480836282488122905406567918573950650548102384001587990994505654916922553101763325639054215190351162612720611277245606728237397374213931892364322017934512647760175832247995094634754063836630625792902045616258207553027748399028304687747926267052679934780139114314451686140379243667327734224868840697050699437245692322820166058001978789935101217717259664875752395809801748620575695610586527112253000602179612545190316861772632294107137463411980388536425021491728159053767463024458510214981161142567574375996767422611399693375107541902226108468264225446207051335961907805951197333623054503111359269292567652214939469642249790807309029923286899317836708904222602792219665909680055752757195763930849839792139220328484931702844238868797949137822770642261914985876385568051604523903287250477269268846120726040480719643561633820930212387776803684339271875219085831218204832258082362748907760267191654987453696899372112365679281233948074184708997529390918712639401696526170707499561633861616247844599522702354567828638857402469220214802494368274487474399356194199589178166021599480496939408711029361925409911781534092419060569804428667264355240422773563399735716876104255663598496489645336321255150154427508045704290214560802245326378362849930027362364105916316992531664280553635130349918780524485123848946953485935844839273694892660165438533458612336983263153007696151802256238726926979566000630697217062297603832260709672308951077992295849159996575411983935043027696302540227523472710774916097330676398571319737651868562895904168424107169152778148880464605746501622177927230195860182984126064636847976552640745454770448257878672298171572996016522115215306933851272114385435543380357636898482968978503614330037991554173423685207288508828367776336457929216899368914883880380224886721347110495673401069034260033021187889116231471248416448315984514174997519595849404959202830988394515653386520444271150006103958882838919511354072853219431058072610337782025225567880245383991765419236545880680611332418672323523950650422299953577093582178950136671310197492664535611314560394294525658169756219092343351259777476485250597562250741203294729843725375733739915055405259562904586770673670952726047057736238841493950666976737262921689329230205426441695906271642647450833711684565176952003437248411592347112858978710320447793043262211097075528551943441639458115872821630592924140533531526315705473510251334222218963805024446012481051640378519037107829215279281391130130443333958948728593991708963717392771850225540446186516444695870378272842866696316719794479225504227141724266699810059174064172233924561547941669506020248706933598384123741607728005378488182729637937473547930732003301318212316169478334268419730982387733033836277927857952819692205127907924220972893037340727644579515003493880448585436040776623176807064412193417916095462700182958331072143757589317145496515547713882862979505552148073147625390904470638137847865153046333186178135508220039752307309950996457165917762072760846029479409921970736960855658408033245040432194685664070547582180302015894966125322692500339467587321218124924453821041868753006430783309625481805430551578379687957610608433648685583928237307130416043744229333317387059230080376614493232178869029214003325136643440471203826176909288866870726676903929430085802425250871818568950302240877674975408627604260977280249575962220496992340340075983934704924022202039252972365950990190666381298761398588625157151095002108487877399606956378524861151615103313702769617318053482436741424433665907354660851026615297880548650397303456687324426767593262658564167330161757930701314144343823149639912566629392371632404117409683938510526794424411050702324157271501101392905734895938926927571216388193833560877839996258023986951185639630862224897548093715260869800099663981968670045208558545892628613597995007929480431736663161888142935299124942041735330939451583429602882143020771127072168504124163723448028572974267209857256626203352500476625875676240253080837969896422232112454638081549086100277605883358743937173921171605800371505129667104823689410510481595121259294781032473318573856119583691757518965581069633599845697345188635028300739993835153336827016231508165016463609581269199996214817106147539832962216132886903563377281636571455740277373410493523715140292719754635358422588349787891860125731370068167374954773566894902604101576105986801964070631625807457628755639181545559786302954264623455438298757740576290814170262572139158562774563782672171639459915872841075863541062975475081814602878893607668192044837075426849722880065054302400705609247926693031153780896697211425871127300319358865608849441334899242930450836941330343096890977018742660553731125786452083165689375404572375100355048094952051029423286554917662959535190615900820149792704156377214244666030031355215028451326994768339492396945183265924481280545531256854123819291387600491554461838373318490512313169300038517830932766153163436012524464543870655677099300245216626640984531829153473167241824461660281124428789578577375880041235193717625632267115543817345464742144329150622792828340935575416220937241212915925997903017602572198091829582813456257766126124223020068673073795765668982489945907681221494219142344467663677718863649947876225864463710328630850119904028021296646055952180642645730537722264184640116880463857871048049936653693693394553815196678260694920441496190138944871157520940802774947313660810786119734396769176201706882017929173429304273364684767995210525914696509193141691403661279273510390716715543079292236977472735024799835425176344262464947738270950116788878643509520970463110349201562662439937456368274344574234764538485982586704386653079042311891207844074534656593287592552274789095806066492150925446352392195734414429471490621976033219423600895760761391549186622178847466428653597365312572381437603404000143075392574772407645179811284117732944198913275663198769127476954770656047414822503109675663797008647758291912511806468519966298502202574871375240358712343465919044916213228070150872293229685791063663182030361516705614756035626663047434763757660464458394036258236664619522563759244730721401595476312474400560925649250171084336781715296563454880359806119161264029375958605538359043592999066394194138615845197676620236928383785567014493801771847888470911198347906966713754387114869752261419198686023410497217110938530851237076256371229937282807682472259863834278049170772149729942202458003860231690659612800124405659628091796479092956047169099629700360982075947239294558391182418276706052703648687717262432912112527392107462057552490003202740261345229300685655374730956867150679615739540722645666937904380959842383683751858946975099906091506831830792311696988883652164159868623960106265815575134736415889190370166670595189969129725305726851441247378530604180355112538386531862843512233668017799786399922545191462700787128089415492979924777283170227650438683451841960808610923748226338623868063242796254025573222811160839086311113996416383750491218149859658019865053753981263997452390843990904328430441636100201643355771463653027583410640410406181531167806249248290434065694660577616025876269046840953258097998774769864095593088028163885303784418307146404060012003260221169921551886973679281259299209092207849033174499497033609585827351104127970475370595549471058999412195625299467489016645819976216672700983013884943922856535314662924235905100334953670701119610573521963408218795637397506208372607432605971191518565021247770235445257080695395558151969029490555428380603350740726153329984567187376326258852657301101510066708246284035530677731004249689919357576747495049102802760908391509677279457355506183133777219523123456977550843443375315146103365827734856691752558326351726914699719703731979821098026245988968057166706987776904033841179547335782911244081836086070072391454952279886227608159971645750628603052680068822117930661257771904511347310682824867046433432852107008156976863101826753521608575217838378455699022317608546394610350209316340147302122108916356597330778786739583100914203763457742630057113897218857713780062666311891253842206850485614665437795680267709934895522325610011606091325915758055639632001393701058807591509244314208949805439278363394679538676780958036961507570127033954272798137395432606730562050130371408333273801181004044536729459398282114293133380857040271958411625370813474702665947803123250057428403585914264886149339532044320891468747685863539730720469211370843731773114279953340375541703555821785747642418358786263947134231534893769255667131782661905156759646956852272331132788172069993102106343593110189221818760347395420656804550211657565911764082599162387505514910552712949392469454492311896965047148144555650861247466126125891509242039167271963982308608625987382576587899081615231049701358665663147025358977296972196777644547351043486566056220450420349719695624299108283950920099700279115278239449391064974942077495842138233707667152605247482122564816960813237036777845785590393357279650968507882242763034613947738305725899787658623954249993771921228773438878487219909280648449232502287399042586556426942075543616514429117034899261430987130617317605903200287208004873286218737624892819897279355216097435628490058471211266324929148161882151930868879861406360959274290137219796855670582334957383412937181712578608269109290141776009848950305921071157810819667117399334902111087378810023564052814867511189459559179086604452476061954431972439704748898800720372077436926690139068728388681616150611401062956613376918965311705856107896701500287767779809500194320172564054769993306741893451659855631977778677514793375733901219091967437912150694925253066574014910577933241494149346144248775451022144412693153649812277152960343935916529795001169514001972637228667251638522703734712782210778294016608293535030218758836713696572898335656532903374644896407916615618426137233798928828818180082235364690700388650744905329911308933867929971048944162940985642084427608588680354916146411456660510178861158749827109832947823429896389997869987122511067831370157667043905477750788681134886431064281807918653337990380778347394018318293626121328443371732100045918596291319190181249728564353486420111657112107901268029363585580674680246113166612677372173107461983481116493796643961042891680573148125738693786581557029117975801208498374030754111167790200070616851292932760990250689084977787287602215318911819906473541853744016376547541263147909100322809159174214592603026351707293351864101836490276697598830636325152186487163509874543699202429810942375852958463956541353314076597925790984597707695433576143993742541837060910178132507635291433204558751806423811374922172978611569483572144334280709005456916807389605822671636745914626876263259015972613282218120742100355926091158297286944318164279375478671420748584982536994612853383087272414096747251871904488630599008946044314713213005318116175159120694670224450319338358460613572601145794006389491896971143970684290030859587103770214686185669152127806550843814439830317368458437200215978611413757692119282126859785403718667091373801120477630701282252555981335723888600933400652239304628718252378357135063050940430724494171990878682826869115732721169849392899655356700735016998408144537459513559628536545352153877657171472720014892834835976582124953624848779944580931029774611261102894600748984089341994715569817559674867350893469054695218325231951604582281988911319503681862100779549993254017187741236601456627219748617204555357857713590572491159045144257708392494435828311310087381497691624649812707565906546342972096204610225867014063792809198774794112520734372631894754787579617768339593759729642466106111569349219648132914744006576727527184211593869917359752518902818045769344848346375558295411749277241463019576952839707236607341688789914751132138419772103528889836669493632302957622661966628762097407642877280900862316722876962304519126402723984075479491000932117611363347014187340589575297239036221947609006541231945545132390946106339900827578010375756947699345649376858191379935737790123238069112833056093217124567584415623043786702790400988208631081522660828190728749183048709242189448121847668323547421097523001443985174478347182670179576311940693206830388507387435237635898628862317513012345510248900068578792354706174702635852933845933906520703176499638995190484872371604571517248522186686581735202186102987194693528353491424051848388284341174457596476540943359665919471292363674452937512273147006031672522130925793444815324233938380194943312667364296460507569365730687968187636276532168177482144534306075711561185692257767839799691212049171082037847807351528858577731875102737993622731293865573074337719075272553892324173109600174404638412208076414507570850991492710271930516303032908041515397203064959378164276011151832536427249256751990425702971189010845723685015682477317262419886547771263445572426052813356553568113504332396941110871762030304855161896842630043799158966281496316884123327274382433833600023038910617384330717377098629743493817086170466609764262786812346192944456400320649928752855728194361407454664837867140030902602591001689469108989935768200176722608732711044515348053320608836625810559460329019730572910680551378855932214602476628409448629173788612662687997185652718603296646749175056374915572457510099535697793939743993978568635792232609958261349351417809467491963884911501487362964576716949303472083366647801753155190571572921689870957704907959204052808416026758776037115189618973796040583234345205311400442156848655035924150422515823107385921480992085521086003669244587469117712871124766208228655656271582626555699213101315373160905655285495204358279098718345582367216306439763440747274123224793053912352212095100517479677450181226309950091557962169058800700102376311106359801578300357068255681113338556754427129186008637898222101170888962302292546577276894486230237839000672800652108246777978173949647797073709217585677498570893162524429444936502654460366464887366665631812913115395880834982027998288428039739656007095393378287158949939975266700865171665941088980217113308540873773139169161613622673985783015593218890320391875287162829024684716264555089655821392882212206331163995337234230428138493093150228680393300418546256968340650585193478757688222718898530412830334444667842214570329013869617944426375421238320211640442475745733333563187456241825547595659535806431764524491698238086559165235174155022127452840384125392326779949098192444698564879440928545543290267490161600097820898848259409672006441840807573123514020239360608922577404489279942905630224484091708947965015337261010573785242363392252663575794993590781045661911427201092323922600781124649575928118301108129276421015281885314031916550244145111077047992716153029800493589676457258952212184933648787022188456285842316183405443970000321796073831038563589452655275556918510657032539312842553400420133937987032424326193360690951023196687125183168614103724968847659213375852774695958138340370203563767168156150182933680096480230477716543071847655521226570905882729301635930190990737721862401193974659726110428493022814552953958984775774299490331014989342185907082989477867334750895537515782308132606534619661726196519158406327124707084544235020276058597961139787717303000907287959114148027781262789497262469158948249547265286968872491120218059611979459719938591207256824245362566613582710394852610021885561203573120210401816929124725161024261708962087064443766194508242716077719775038273082033295046793029410295152084804716209764727000054720898901659403909498974954928650021327389034361395945394295266780649778557858735025936108974826697398821815548263266376755158587988084355483736920361836065544279994369685409249090030887589101539241070121169868200181083579185696324803890771268739843295292247531764441619829953902987446849054757149447191686549383834787327320767340284084299842381757680998595470104935455157576344479272396398857654662221137484979618989690614266372426427599037009044954059143352486189392986803665086859317714657782026700633149306648629956639067856328106056752236133167018681398310121952878480811993788716255421495331038951497831990207681821307931182642654077855907708667485709412967984609938368331689715558692999170800895434832845155175310946688295029877403819932959664263524801679152508121678859154847180894684364557526533355401728748940019579372907347680471913784671885203941406200118221612962468298102071592420295871450388942770700024346012023210583815618789648442734729414077011182180117678904652155388733303339901803738495998582826385522914428386203403068057552748667025212391421081241317173597659704620072239332517716636773323988138837500956895997462279879572621388561290160733964467125676040803530612228631642011242370600687764175001384622976984673277715338387072662577156946234439121911130442364484408545944530325180015865152316817815947058912453998147823066383457723828839664748701977002317197807041506063737902647722620851131565653684510672931005468080538934273703283289476430562057651489859369606452679896280673285717619787071121418847888269832273858456228521074761926980148469055680185486395031019133709995114290016883215313309866350413777333318805537553377165009450240556318019885548170205030664261358611906264759572615164939137183822158122529429882861014132391253469546524978962988064833206665194316071356620017002095371542144274134872080154540888119948750261219739864390297269689564848544235813994248897563259401071399067984386952057395791275799380686603870160909415689993709216995071114948187575863416772192814017831297904182341633047925148387569867388476698738564130255855234618863608989695943862393490760197946943959957540612090826233901462650956090778781023768527139007826899716538734380358459860041450339315896856907926385657456239074546510101318239768049807623774393141105315275365490973945276028493934029103651587778208581247782554794377187971864776789115413474767040567621673286213029434490397614712348617842011034012736812521542740947250631469667361496695628343641785893610039878786113210688294723174571755776239658277560840502973420219088004044695884039653300196347976753119867697616125602417861916183970380387763250251181479627366602655035953081076547776080040746781043868458078777634943513497439956286958040085208921212625217103826654135024559816959836109639443430171486819624520014925524088985556953076765568538596410050632979038508705123908541057851161189277360277810086925902930106617769526175439186647148472273452876720308430416090624079470767480222911021308457979486424458511893802882626161959250537970425942822294256756280319007837619696168165684963071863315436211868428406510922561644348068718169091187705883441059135759930932876945054030930136755933499504008943218939135812678695819184014652479298985345235992524963664181683117878586816464094926156659366725610528657668280726471552308006670313471155528894856293121949064204153092279788199842806645012261702740358775493500857974243553914817405563167452973258557035823872260894588949330505150230586621725137681582359264975884280888527551393756237441541755266835669648232878391498001411474564271229838750423372994234520044777861545085736993466443195040741451593161329721747438878621705389396544838654025801941062545016503524258968205633200294335581873988585712108175644187749675198884906526937560282496968461549272134092044589350548088254066912645574458470031431784815372005817252982123729301590537276656796797754260878590003985609934246459264622798697925062628062158358132696655284190439088836469325753912400829252214303971760590591346653341262965156300787390165393097680188145462332281961336973376125553253694160451446208319575424213132598327607396579477668536973639560233731926045685832193776007423864050761590152356774750125791279794485007547238940074506763297641882284633140871508351120524649197162721052117076327557416140351932613613168312722002697566333456199296516233683755144425522131997289992044866638620675304863554771407246282901179651564163311785386712110085291126606965849039435942944248589268952601256961824935541713257852865577226579178540039678352417684902551995919141431497048865381355942430149419629599026800599465677928336329375227676500963248003545529412831233019547239663971747790823944675192664125653079483512822126771655952751791469145460154901213145198211931204506788893296509883602014255380260421058835749870769025686316382439428907021540777491964280685419851600165859925871857694490349026499734856238297894920223267430571832524128624899004465046331635079916142005250577526614560928220910996781222171966046102742733587035144528006699863602408589306959705510636521020621793740766140808177132418969149975177489900833444932916374972017954602284408226897321555313788224515986831586921768744847063938318458826201989231510613541913585866563600675401079883276147846078394025122032412807702662841974995389260515522801371043002087984573288248574450520751786614276871886941321154772281876620662694490664653701870707691654047858304996750755304365566041203096596451928673325518496838391211638485474419278037975245355295549729623163363625080300451607665553868200617424791017263013735570453593620768826359507483458473624833023009766009354207193473872082234387565208845650241279152606201013888461995408264178718096153168916554303013406492846460172798133599647051009541201600675089760208811591248628862203222229498391954139108564844899854054224978291313453569073515496009501539458575575307401260867701507473814656897177961787847987639135837138328359101421232508266693233113638763645170108163734312733367276522946792846155445034842985017345429994264838247338233520442214860252293646721549192679794186979974297086924946079194106047693194278848233336394823460222267997928017899686649753887440951178458591429298654950424910910944844568339361890813323528002269316298608308843832047874116873868306363220746801598978162395657616564679276534047598273512324723171286178366836296539272187862767588388789747143496385858763401334419696231432489568493747692742100231648188836495980643989836471249244374605507343021590796780225352900162821472814551460827962280433575605961708960884118619166339858411654326796038003622445025540467397290570103325455904832528147698203347438310844152270427764810556925429792753531854625975131058567520505318121475368994762621708982344338338159558079925705078193334542073476805100053120688325153880063744022560619384576203728097637501698042220935616212894030018904559456212396892810190814399004798547454292527478528946760185317473698963506782807341556263076729372022252452425417732373083402888843591560387409388787890359281264894572978699245857082426495819574735255157165550089825795971192426752388635769035387263499622747730923654872280081097645110243051891461999859615052654477540889516321920746141503612079493724137235618035043858744205593758454315616237034175883960101289910419524448082297834533066876263891905920066652308173184142390292936811599977173238182430862863224684042635590784325932681148423684891726417661617874422622951177494629323376473472646297618817359453095997679623692288281173975440020355130351182079516198158510532482362115022659624484699988788450012984692698969871727693149005417036195679041128080216672261201249317660046869658980656670010054533387376996172338080869894202601609414831460089689906098195518407837201335022784671192403931114927771344062996316834525543578582807119897621677821022836822467142625251956335213903542439288027412532955851836185559355831963182572893501624269326916518363209149237594931063970640574389878010452435995384328458239029438676369837556322698490905989609137017332540115562742970832259844445411058474800058789595926113018928021257981779102020579056936072117964927115725414906481341714635392878605740754329217990476610787830397716330200492796764256471266420128480313413055497814031134531625582742676236863435098191032257649512479802623563085077748465204375673321646646626559136133657018604047554647177161092661759807368429933559402726563475473081185234157854798876160494491168393351213066911486642793932437149391019277103530309801040496053846739247436341411254443300785673161593306701584398527000517468297801150668168835446663091143118769142833852685584921115711148256939913218467509389963289925512671164148570096838744344649935839179437990048485142601843739209442700863643982071321021319315302367490096646200543915030198408899256045181605196991407539024404690835509631373622725996313323458707020056845288810978551787602107186814457380856297891609286972110188603654488700624278741523867757828531748949479228705040942679498244797456294334541729208543342435630835433094409532613626020713744910355370203915597244028368619182566259551441562875959648573824040694385723757195490555840865718123708949307437917140182803823740100581033447923766550171486437200003947249741581869426228272782827102717482300665872576283299216467583439688560351902959215378543170470381907969537860360478318670496705841534943368356165071934566909047311920383532946702087470248769114870416759451390330130107402867048113085065515745766926904427740698448474596409803995919610675757161676369177310796211779491081765312048773174301641907216005208235797086889072750620778495065536109364987200379571742848775652325785559136978038344324364300906148649764953417294028646414956232407776820605286657192722832109913637753296956822037409422513116809374797650813155178104841088383078458040476551456012478220869040719747812197453634586804905505241631767224796703064000260645850459203751275647111460899546628984226571597121002516021444173941844064769297142977322031068263521798425507368435581036468904528407065580460917187369910099712294768024059460161277173914938433548224458667034790589958348504943134841379593068740075447481918166450910229426918617333076296916227609550295788216943472724768334428286191406314173734632662847647341786104153190536736960204528443380549743525254018561808109427275371545765330396176996143746259165311307245715082097471396015504617932367531540466909551504901067028122897897208727698397911627853662532434906297297746865358680050409617777092622025312481859867477980621264952128025830789765174683967947695520197901103411275221522300590998674712770752825931645276397913216979206530420325422998182602719767442183220796261395816182066989497888432260060792891240485535846873617895417352436330051738322424460244805702003201348915875456242978188334824315222256497677786020501682439707485242070540710311130250007871911027685128995286017966190055527914222425127589483144516788527095880666941668520641556777703646306847580420982641670419639063908291901250454018705588429158939130437733447325767614487371263435990121111364529695683807661719972632855533658136439316963501202287154965314477756553157987934019492066076965192583361804175704027686017275618933082157593445748243034486368608223689633937812259965151822260150211992522044903666627571930246736728036148570218354405951301066391053996745360406785322147148459967066706913562724864244237742997129306400663741710003632994542732171784623095310096989637990856199109426721916120305167501177544159535097263137624543900148581302336935201410724859951658255332536553455039746085688933921971965580904519464544224248755513404438407371082697560859226756953901589450493201616937915710212660037150721368725180738959780883750192918622632832106862125022999135712371167863539698393525589670212356352022079770250143066756564478393986204189554632959626158493119107031631356953097350108136172100307868603404456970235101996219107569560842842326601929986276024054808882606467069647793588608247775151670292576735593987962587782669469367678182952501046367505063028698461576547903865682197250430422671320103499270560801696176421043843391408214001670333735948248296557368129783210996940133798338132367901399913424111500705075368662549066551738044796299492341005406648867901230364896707585174799294157130378964990252778277639989365037603930889861985448165145282624577996402595858968452265579710380899684905665273253201276531095978597998954299303038411280262078837267037843771377775368175701420634222615784634977623566114762136659181514901271305918638970744629628048732375519955319298476715281893600536501394694390622040847363624033735910131283026512755682753278537849202196646905767154741865326929648610962766792550247681327797317087654898411841191786656953312694708299731271329719831603731708548236375353054720670750198928464244727706754081810844862805361966787104392718620392554930681003126080403532277729868583774063762866859492333405159269463708887479723735500241181737157620255487444933696785300915239858349712478326098920227474897595217034558948643678920360933769317571938417280282975434868935982613316681664991274632017365486882605753089704272312984002378215756833774009476031490148642141142188742224907412590574153191654114186621656325755680818451622366002064714387094927712540123572872545212817440183526425285085848588883687491427430181559551869377730863993540524725678358266298686873662167070867120742995315535187887813843338634026402304040557085803335442056467595255181945960158725395066934268704260926353482776632361942570243161706361093477587206650241750294556599747618758206445972438469883515015588594060458763860322109133770142844386307690693256186216736302977905985839799315839620728848776242276591562570696740326986216138086735256638103136155683162360914284243774370476362264458571611326041900133000940846457387036214294879912256015141578876625338997689177010289207045395438647034799927876967595694880567326608725399385831461149010257041065633760647361923957916302064289064289703681464379496432396080650589559660243054685934319472379386907405823042160699246265419131456504975056356964431724777602452935669600179874888738859945341719001286669629502237145207340947956567575224519733654551531525960230737141484671606766789209726229874910083939163978692058244590799778170087137586563493962253528035266213556868268063011597614278300228628765188605235457566794968677472783020375621863698664035765227299277206183495723621449520512850535232589620733975270485135674210274759553265674473867861369647073024178002015781518037943028636141886644198276930015125587115360005840156061183307436002587146867910484311356431981070149861267261370356633917517379517495621114524793645366248203040341346180810596935267084501085229699678507556534662034871367916603524918621771454287315726165901996092143810023087144379380775997587945743961088810174137761646992065646995744971240117702258732396909309089473156061069261909177415126565418854375633355653770764282422836623660009858339397546563978298795377139562530188918538071066863280017196260436649184240126444286734236137085170683970224503793214494704552119002113056447241857068735994393480273837699782373004982370663980183748049720818445045363032219242082834982374437630937890909901688569208091353455350366084895682448449677790935996978230397565994913621809253787822334488162435282471082231412375097392930041895402197489871757428968137176450235797332761461947303727726210982472045313192138811328178584881767361627673722457965429049117776708701130904432748638194099633297748932058005818134323029057728070648897108392456031971276142080283718614854192374861325269861113657796638540582354556325593651253309116536142493239704514739964414055378053006342526875837215173716457726224643468900186197106226795163913481734482204366591828493097230190811889006661582816383186966575037157624674652257856282925370223083552252205048178262413235860148704039222674447358264688792909665758841870473335481539749550910258419913095306794644260486358029300236799933895831406381684197004933252744726331344817271482535021157169394714724138278224723198421314231279492008515217657151935359374896911849355795249464318026502081416074440025822000903295598672738483766192687508240179343216554633745456034966046018511265418295415725740966959946400968218864309859658212953513710034667840785248005561464094516683348919226907183245160295709081386682542464258513382440620440778097519107335715967701324769253328354057495840664939858280272026164969081110226440593796988165408516056237995774199776414062689575745887004708214345803608944968797152955378712829329339893227898553721535590270033089334739797800837459530884700104332158694650145528480506883787615268568492255022221711484169301706393466434684871749364454118566859740479668939315030553122318933455515823508860721685322092856080997244984518109123302630894595494970084166223229007286068217834934002986584556724963768548005093491123045253749948789225032091197415201232065435674241204527834529490970203863276792151907016453284776637483787073977544424883348818275800334501177929036105481717767827592394345307142510097632848471300023782298836049331828359453431842509237288617685845010624501238427043685089872239253275229324306649376321147422238824806691882917788715983326309469228329156191791735774468186979651830723637042559052416984453790524097650813519324892353697295717325356217968494531634579504997382671332320567326923311685690107157182819766038341835797204864664410962842434519491315365389062981087451614248504168472383869817901812882533271846848731179188743861772066952892122933668017379062818342954204432924939984393399558658233044148811171626026600645546580264423100822672543837149457568759842563643535515334870681096345444226460033487939043932144910356524553128158955576957343202124852335343875781221030437101734364068108127158493956947243143467146394066144668071583715079641547833978518474488740679014900961563047973097522624384493103009729934923619270635250176948242784970314215708944190376394263772560653671393377922423436043043504728709807389063651756311150846266984463637310772630634580561668483465250508986230636096054177253772908107684009515995232649226167446490663083671567219724897268393704225359947139411463528099874987903460503372378789980920282437169295847875637863241324875704662780090235788445675795037264409703841106477426925041541660450539637956071057163251392518069832971483860745028100518189305613588269658677973276069034378196483200557856863787944297840190908762579727512342059659584907707099068955686763378493692722487031329096954023351641825551014232715826731725435884533104509595177403191376586967744415661437414108325609260303485504996028753003616879484487216463400961825714310472250335147941446004635567447667586957471135079206099564471141634050906400545542596902428343998482832400264140151048505437224589911897780964744748660481892705547635153064881610272874706158826076048683235465044092269150784102123475730772900842351892225120966734366176272070613675017731135462893237810925653608981502798315861425124455148075715012089323449505256592510515242073337961971852158562893168917144041009114461012811380388989604641690442710996113399984579459293713698880225075560489743613991135866176732026108092704734526990789754864452669447378126278281895938915970195792227139018129918523970639253932865322894308276255887793079288122986740579399838119407001398154277785294702025838123119772242403431641093788687220745054000389430368948584742115266965600730001937421153447469620721232158824112159910137150422388313257996865150578687582878780240648628293337677962060749133813947450382648565679761328072616921614031805988383115134666238702756414136216160322196657048561574686029199547354945448946968021850706066445479160127856292475886779084061554638782315375800466656148475720041532761166623986169909585201106707026819351938792164016861860767467074520087751173760669036653002015451891368162572014984482685235431658397909629569879729086869487240987596745451233475157957835729589368624557739244910480765873163156106248501525142262241569102465606395260567645574476843975388656229769781848778028202694201079763043371127642164751587367543495852388082333286556164336448474813902225512771313817321399266406810541831312817149849864066731842770836441538521626192512613742753195270607786855114848809326627284174148506017540347429508888215218422531532039098261907507126389074694530039931824580573682273135957612814237343771796057906806601308111143027395287706220815076386566410788523735893365348569944819211767246798937994059771929017394667881038904062409922394902341955397613477645345570356287379683442262617519979225408119085327489278100629044972860192751040283537493395110428235840411263526327995781631120095252381326638698435577022063644806187775315092589080896558340883235178798599240147313271186448194609444278290705801846761512674513082336097946715279981537171341070901023936896915875710892826912136134784959006033628865474064961566776554114337549046823319892020986875513049218884338776834412934952448248020897859905364937261672945053625792848684103835979829442821202966830923752064180422974293106648485480163857807351449475965027223385988138720313736973661357024837333616701163045409206989628903422586042117114011876392880286881527120559299160426024050200069128598434541249332246502187740520272313012859997985352050403558607591062819850030047541024816087646921169942953670522686209651328828233881542405294594101738649103759040030654530893069745063878904503805990794741301252211177870653601996379239805688142710369818677688535501970860201494351385692090926627022043136446629220864854310849759029884790894920577220621493547308033970991241389474015328768166223306098141049380144241491717837910749487467455274588989437812648679510057192355200906248928252137173090627593025331447132276024491989542565112929284764563589834993268949084944329141525962501697475932000962412384463421720744656609943284413252901851596078002921048999564768342759590169852414190519418168762720319061072853854095686613304686859579749906832117827515255935760155132395569569886167943953944365277010956681140399594310734921060934502977702475807129408037748413551665411369691722773092944045889532076777344940133687142386880131178365407658446914491165048097995208425731688261207735610473697469756596302335384606208644928329966297093473530665073793066801455859767843801490266104495104164257491301971800061728729605739338800514600907612742153486806009946167954222176335096195254131668737719255978009915580483146787561568221799203014370911875944757431046289426645385405758049295980580800841449054859842896292199527753700320619323555775300203807442603273812679436394946440845051568990431781897540132406995112635023197303192225608174694994008259975617560152260929105027633528421221641823767908490021284082959581027570833970167490007892189659959537626146235270902434061967462716803760151007957011107595657852275851627072002770312737430366681634481906144016283079818880253022320471329455648445790498961805178541139631071268581594122357287117836588018859605117532706500950119689671582405137646306520779899416945235997751509856209146012206629173581169735408791359154084694199619477101974506969112611626870747196964429569996629685407217564367071959062159417730630867452802988458982007803453726102043304246935067461387831945469953088233363233202412962381423792220874230483159976171921401477348831606409968811013719703736050045925029006448662932122133001316016170547343880766361726897826988494115073023758091981728002083581409182329123718760089666008277422333571542223771101530446563703358850348419337375428547403419708560972404182912219354010810227211192200311266997844515864111332662397873935489306234490848813824280893100974857559367133857325343576280890645702976792315160908155523524847018611573977915578776137439484539882098400904006671997594621645996433158209968394278892663007495091687674421274743294297666178614354481285460851823214985359576447357962124622201345171157995357161497415192184374604141965910020875488663309441073346258105385172114605021923225019159221463178503675304707238008090179216650177768837047955788205498286677294516955814333640805733776259489930697931338158822986665182940882295238898548225778265174334171698437625871758340463403330869515249928293898581602511571341356513605159453414637766989178438923957089957989292000182739327829678371708445730195187782531966735399297623170960464160181618853909402842699295001545252046400875210998644477808439715204996675801995998344214950959947803232605310907992058032269429327624056399608161388732439104888440513130633125215671698990638788688899212960016285354246786568932475684031319616104048713862460723416338569360027495149021079615576524273288660146353179303083619626004795978977222952776064834240377534511458420639250572920394669004051927810728261305360381549433951357001485257253237150814208694992244356133848918521631188800472094236623475403101204162105158291846255303804487843993080643674280288476151287063204489340697951079532554056665920912322628781885459826624141350764816151000861706240844320163767454278708205736551250486286626419739241927816758884763716930667020318662129326973275145249115245590353516714444586394845854229436737275339085638042482854505565213536593272632579235979746087385035730980813077244750116891998236986583913204490320250859625848332896656753321187822332190972334797885906038222309530606541099220829899665482618367894544258505465133751700025295860676309204517287726794907401110288821842023501387641135965917581863008417608866986696791671842219261515684197818067769679079877115104916787225721482637076776470782702664546668440627813631324248076066901637280291169846711153950235937272310167247362177086658505055063255742345987463260714206356732936545014822534660978726343254745355555028226348173717250972333868797237615853361392398351336329617847424964174219964722024905714024497186773357512037383192268041490726324391723297224213178533585043160539941223515345535175603324357704221077704201551336608678191295474867335720468583471587499462309959581466538669409005532431237664398825189362126015463602765103290642585730700203658598403023198593039571867589813279482149204107320826604429330254873438342495665696037106163036276577033073919597333231042047905641083056537130530241204653355334360516776845724739312729218025483592615039183978074141088378623977963371242863388051621620409401187094125811159804383835269337141495810051104021792408657566971583626695089005365065086283865877057576531796174713727153862296417162544031328240434695627241619482694035365811945116466057367710205167892856421564659652450444455017904787025888590738372580710499927523688054013161330814182241807495741048193794579421393405345094825428790735413232246645108250170321438932297412468515830412284964619115989257813513009159345199167178604730395143955249864607928862614973152804668495398469357276873052093504146701345628129643378292962069566822029448955115399228689448573712153524640530900269688973136287867636334149826639004148860758772675396169736497413653013131914107758412544826610918523453715193490616176926945626697117181169750283657627083923123191012748985071409709418750186172948886662675760400283658650094480590572983454868338137732732894112273026321815982389483349580127839996491918870095301852148243190239159562855820766051985455260826787011711395152559700635933914953642689640440572682503248337048095934802254783869310487066404106426417100376506541414120296311327245579933591532676041354995729784726710940339221034729347295857628823660459842110677152690054883834597183443668866423216273908639000640890426578023428882838475776908416593951822121480782843062374911420423687665066108239744883724656834698064456441386590897999305804723263892875656327797786693706079424124984935576285173255252250614557308101318979674631029509515088928636207909966514506331724710863390484322978581827821701076032116682007202296305037945916135562966782378132037714263323109744496139608958824685053006276228514009271269896977867678484892671839633608882476556927254752936763736598527066867667255951279932761472030903462709049953805279157992658634443602070092128252375996465657352840876638244023476720947521955871192260588021364863578277739127936789859550707983209714723492398433691331640921496096658891272530258882316026992109900270227375813958128433786670236570898458374966874135749304715236334571306244316889578441150914541854536713835246468548880706666102303061370849173636236975437532711152003184778043500383891475050897191733206351045021754847114162170047841098533726352401520313765929155499937490741177489818449957270829990417594099524068720145071574928402673103514342383455148466898946338113932193260083739506667402206217278764294834234662192961527677937869347643610984079145153866941196645355016781314868064828830536743150573713052006388644874652871646747674961070992598954313211813909547038317606932460755290891447178069627985967075224792636845436896129800826132514066452481000579957058862727376592085888198832988287247268023465471139865314840167673172234486060036756558828735058440128092340440420834810641074651268453918583276748140794579935255138249425348343892882177562830493314695462025342076040018022697723658168812660112538021531837943575104977660505584687277802123104355057690331915244304227141727439278446045408777647220454391498030387069551097382951470917170456855892028385295713363493173741970640583513565592645177883089963914438462395869763498261305043951311955621280967505929035264609336426622604123666292413583745396186086628656943401600487046600272078090356198418968285046180929686688399094497451269810033056000644278005961302211278170695230882798317260731209002796687819457936654455798113268371931557834031221004372013708608998729392788260498577880457740831598209034483161934204846489345530068053068055427598773896926235967053815048183764787410047524075846918867524078066267336703110062961322844008717163508516815808250480988966844396506169608144536356560262993383445356820813404090545789156632840257239627285213021137075597479433864359279090774505756277872447441597254862749392724606136340202623785818841799708068949611176244568386169266173189490404024232183038878786437860516164031006973060635021999884078255504838114380334306445748719149457303591655416787680516621882129222725774849233093269951838078468906867803107380592444111938357215532127312306210460447734742893630325246550413149665177566040951045853290028455926358440222013781827810180514707317557847903924936283802221333448769518203920758577699446352167243557016839885068853379194015576846806820166648074191194474909914679525143220005674822175580757347672491150613793206185885493285006012913149516775195133094995231821620322888722239009626191808394947673265233277394140145814179196898209706361101834054796392005430225126300426972786065231007825406614157234802580822559172196921961873034114182777049363054522658750736375306370377715293423864738407813008241804183233028397186421214908141093926147459017679192293983762320997562431978191999571553397232701670295801241988408020969650270507796714161356031167904744041883077089560630591460236411920265630817988115877048046536577084295902478686299833304413551113148938891658132710865998649617974112651902456042051259680892815684972960682178337972911120500443840753479571236419909361782102306966777086952735412718591239929056228522832840205629694857868666420018515635712388116774967542524467457735445859859824450199947950872558395313559680102986353459060790612314590556378304432616856553292773128734558373171508385202813424581042747704612280168240132952894258416416207490760713991787839151033560999909559216031999824506125231646156363964222583382512653809341705045394372484410284183536618943306552584531381235153692453432521354556803474487547780123890240197604708053212596856638132949988964740724104694156727387919360374928974246799720231001742639683634162870968032291574717830426728103057484810574992063828632765881613522854706762205415888497034262406104656781652581140190518570006002794876444663073018364608683466305520255177558526672788932485464202720870340204138024715026676981614889372410709895022740225757050902985342640350690878000999505660284523922293759392770122170539395995511522829574478898634555047732871830469122369797097134930153194059581999725501253027634790555595747949779622205941725140699813774259352927055693506468620598211578507171866456661376971082641373236515850754085013719174129270221593411598120684045115183419427483652579214593306327897078914442107135482488080798314429207967724503869367582895584611902963766197550955551504439643630465289094050117997811639796565179736406085388241264257854572071913015084242218255884769400682023073473509899102167004572244043820826167891048260724106773257757748013698263553675049692361018106401843845648477144267766009248295940563006595977324819742294632844258833909599756615977539199313058995221863835753508773907123346955553857377696785111235574204953080227625987073250915316529876499011321120170876036002601760123285764427356348090223198714556453419308792221653170266495984799300751688501022020412621939159864100234822622291160173051174469464171729865102222923336087555169397049724133277641412997193908064787568727458144972118443662003297897728009287667368239267540172804108332253275521638376602326079757213692613809738179702665637601543931925214166364773390591714160807197944298963367026594688740925924855076909100777623783716069251537034753297339492796609368458969805193397912817909918782142003272993396002497785569973384446717543284001777419645741754594048461193409360021632953602690810839203425019327253335958915740071406932566982544228493116968409456419488510248482508364838247542775037924326476405611068444259903093319875320524933707134025411095571507658809542720808040624144353902196853040456197946432971536496652982750494056765605261344623654913337316207705247613369171534473328094861600116176645411871942236969957832949192791239936059785056567587120257263062728342123121514347264022748177860323462892211861153739467454429224764105548025556721618160338502911002998323188958301551836810211467891066696535308221323821732753970493827213242853010410202851081405156606229085415999256688443116614298981159221097074012396762423086555038765561067920852485729361638828176380619626140917064995050289028404663999968232408158988523681137388927945946947799396200751446101130267060710264976175397609878335989072913971283090628452759301722452842372633385960778337080213559385028357366956649557642804834931066808018468663587295733150826867121113773399957810207098322391399545850982786500886429825135856032729954226693562539569406449854133728533236023183730680938693501484337597382831614654715474419897795038743228892638383045809669563793854565960426018469113600136826876929432831576782053353173182354372296460369533092622796285160064150424213875813665169224209573924271165204795833961339927841104206588490279077869705842864095478427068430285778826078033616910960364902085946865064039161719135129257463385887229893320371708780411159928032167684624655893401416748662541159221641799143676309203825374546421371906318031413066174944243975353593333841690422556294609220082395192512947626887060959416545000647174785206377735459721169237534161908853947654291181041746778622195820651648524287906601092141708198811295068657859222562393859185637177271697733860071905120194392253176124995899436628035837162192812846760071847485233328592705400553289100060349847512513661032553879186486261563614821778982966012752180115217889240710251627981744573384090845079808368673770959466655003665164957268842652841923324454034472154996745322261033826731298962461622297676121379138113997791959364292520777384569612479123603651481389101831213777596163825305864024024466022502451749015614527049394372100137540647856764477600680865356970140103752284971551738514387413955084812298479127799658664902769999335181658758033059430554334012969360216988142645802802653035919118973462397828800334998086440613821652434782931935172946228165211867889520462582289818015717549588865445394473840156663979632473710289828941004434682888156059609071325133443273350210148105174036824703942483255975861453179415150003365398151144383806048980649812537014761336968279401000636666399571657174175732655891562451423587156258974065992223073780807139505199799797735080744507508402551652288192986382699629894805543118233772459061894205150757028345889518811038966406159829555489448736932049772983481435070581792367778931678796980977399999424911826934437135813638799982938746683166433839422996483382532663422999652660443467182209193290337137695332153283831698289151030415912924934242949409694107187016967748982975948955153151753946858671550680268922690609358375836585415691140360133968758085349618678786682277276342939607033807099152345078668493786402939151699206328390549755061236307356552102522863089810115137732699643251940015142754030819415671296499499416295330929850259907897451071871769351866011229020762589454145856087485143988725718623267738993585175966526811623660186276400883598202035705412073286363896623756053692446228716933516868221241947949153864099140047106550256024835894843249498232419350580555955868857195056730350731823376958637389005434194969609865238178091974539476012681148267763246676396217548454803538144814940426240457569266298972757452430895527094995304500955186819910164735322234000714686140337612143387995999305232346457362526726763816270980027817453859145879888947627355506265518433635732165503504866992691580116425439917057241461916806106237563595153090582437488015197027867495884453621961499287789243408917537082643892563508961646378365802340934733414423939951115094722408368186877100359984114002363426714929493734079779469606097735144528898013330738564151924090484753885831083982068869022241867573936429578419609791777931993226677640721923016166152978473395537623097042512271057774052050088883953076851553325445348555325672448792463723172829470441601056842353131281611674211062915630965484437311335553924390249848215576753584164209908226062853235538698660374615273490454818318532435876775615789158917590507394735205444566016534976829480330395966464990419371809406301834343693371837708031339534059636715780807618187692342421439199942501425254942048502463468277009162357044801013362093135026487835593600682834051025044857208403347690999060594121582477032196769042539676181562196678226925303903348036650688412401079649210205554914772561914735914412541691398821497399685309203733974042217161979918458628274883263172183215618327933747942843800454233429023140740129428572890385240263796570882816387285850236804383769939252718880194337147422292468603274584759360111090190056803157094607285110030323879373898937686886435844845660159788596108824915924602025636559706810255125377929093325740253893766753423184261042105047120017502461076533634675198553259106801440578530065543816417433516103235185315821209486670306740665392988827573990846399910500110559961055378275854675505166639399896039564255758022129463942876777445546964237312571922326421041794052535851376623634277415550882302084343332903176024464298547893591592399847823466041665268044842922514644112541776643989106549829715168792523912387352743304530859437345217813414992865217230220998753826897328109056547317094615562102112070477270333400950404948654322249324789447365998019766593026841404114367968595577728634839573462860909779567692215082142584997779913834666650186847662273442814105957349661117658986113833544251142770671358175046884001203932180890021044378863334858028217372698690864001217578577418095885639213005065957028676552785647792228801967433511990823656929061022728422741638188251454386352562915387218437444478633091410155951580418986676814820863128501892465384339159178707123918850429141227809594723676912981097736580637282852749978665695015730909016716348354513188032214445795945028145851982112071387337139111907695837444942844783574311445833334975333043184993593183445993648977616066163288240251626511039454063412470322036886447339669035679430915207106710791180238927618030224491022384844704693934774550043036960478787420325799759122570367057806793203597127873863056267005496918120818848517733408639903784717875168491152115149618569214466941646187780098599101924509985818227893677974666335325824172167020529932705885323186507732101576125367860294350045976966397018423780230557256337255749356122336941071949941168454775773893382743285353121534164481441703263823713953202061379043009943355831421728776847832999045585200235812189530969339558045772488668832086890101988549764072539130341794928300339609887538100868192606134145563538855830340832370921470323241192179044472359342773821285284087652487270949216951006035530661352909528890289989172091568953177432343809245315531950206972381111036043483562857041542869346698959440711339292270083224016829738889127874616274726205980345200511312187037849177693762917818077126504077940379838605727976048968839311578468302924748819210853648546171993478835075746208300501859672095109644925287208929254772825396782387475270397557961850821723661829575793516349295055431649886284724199330937039792304366201409395935073305160799315367355054449939898646899686638328024626128878982226684014404771268872683808912608966641456727051624916497119673258215152213189664733738834437270404854618877924228397326634297668202810120910639687265963710907962520822350518055289365303836507674833187317809978129902179215936287354369729286320937780111055071048296681433813355284787782269354239179739851193157631376373946581623199432251387071307777314017723188742785907072822599605043440265304129040733925684408932440109282838989175969843950309254191746529289427224586867713077291968545985409264858212980893400455640860473815258118552156359623136857549477262974389541806141915311224344371962790135575344559156216285866243305198590602292236510863346801374155784448662229544687130836301711908468917024764614942126811240460663255710341048327440554979088442329822826847105726003629206889800011264522865765999779185650745435119177743958067636403856613448606429839248856261674736756051899481431566491690883686444063423571225485412551643469065788103445571312182607653917229088120496484322486135173675257784934607896752560646019640226017159888990741773777551517669066053285778476735929916035957825727552375645320064262605361248967784562197853580625640615980657865451080022531301460898019707898694602543395789821250739554748624087766879382817975274175236221027945042515113760469214795851815475218920166347464489610798516438371600050440194906120898283466373179375873930317880772259555919865364492324575275827061026733228215811045128349141753521331830884732866782203359662890275348495180694742261423100745817149959284950572112666142314899683763011933871218538655501440338195382862506180519483257790584898044861272235155190417341254754799071392992209231607015574649196058777892017359152750105823077107487652624571633421138383658297527324218955524441602491748224907966812174306875488713263904075949582801856945618776951451631708271012350021350997168137796128730637289712725926498503449972757475841538360891920869348619629763857206961244666347340701478301039935797648404245146784648623055892218288626618730185271694478360964480211793205300035106345701638779250659852969029863318249144653415010906176513833361272761385306755954576306019785854601799972755405707059506191529738374453741385621583450682302846097294939524846892785162314770866159055478621326934040359006512392270183192508663738070536779417491828749925752609623416454038036629439442162840109687622892871204546861291665317449490470930613372519594129346943951124730305363288690049994861583611216149816055505648621342049380642414830510754643537701846099256306783778552270669056208013333905567248071745858183956203711662406646729738242931425249068921014476677263865324117215333785487330174208080752149162440891097160176442702320978308291812539711538632076708016170472919638728048743266250281839048654113806826160592089245565328566013888410506088345497887085669522747530946981829172004421959126478452184269250670097260738942884560491046855735088641401016720993157824603883769674159069815196525763643558357738569740020242927175407863790217831670341743889519335057286464621091686663816958079603767171852053250614644558975263291034168182760664658949490450361396030238285045157782708754769683199720848918586136734556634064200806034111415655765180366399597152539784515231435018774715924520275852147957113621831133806549518981910848556394608493279512519818385601246584697293337585726376101560805020145697413604721149824738545055615385413725165969113752534951510639296847867961667283097473378785890619316582885360178180684373036402784992836176543176903542199330235800553817799150516929654201015308959418904980898565431748958772941937160715191893328360797145278434131480659472552930032297321469622319629329256619111291229126071970033083642508473545653748271225421405368288872921029380874306276074461389745226229231863777030788605201526922131466734822314145815170489274937462525949589553214466431638076460248344325926960582815509712877987247233974023193912879058343675462372420276310871676758591080348091934703438757703915603711432165139898137179644356396405592596739087643908223241872929192924603636226583584501286035019821894105554776399542790342519989317103858034209227713683170151400304019238826875438218972254274691532144312748981790005577749896331746417652261836607485314411125488458682655488164385005583294480978579685240777402979392089822369671459823393351732780951557383801409422768849764793006913035013139730660446569643256100692264331429862107824126303067200213681933850559344894806255572897491468388430671038510966153944901211276665015990578505500707481369940250575812703304454481258000522416767258115234750955382555924177333986160533486212693396756846119718576244895281043528010562303274387370449720143500690598261193430972486514925080910874851601480060125653385690721566561286477534671128144808669271265409291056210867925201524480366369758567153818585416758572120110315992468483320905557063362551195028870469610351259766594675447352144765999432273058980654688018600057235683713308955459672019683626956281645537591023802762451097384162779302366436099933337907795283336700079577678517451286023001986558431294978368383346145430283441321335736511859912172232500044393524804971582645340433365484159480590104094068971291645462435243508427320733578257591806174840500068277162441299527181027862078814986010273979722287840458515212064904681418692013060484961298558784884077815693401325351120293871852044309657490266766156383825224197843267701913583072844407415360664947588106467896963808706386380726665734983394631814733189943342912719037451251565540201091927185271083130159378379610735171228523701686553444502419216923370894954148173547354920387735566833113563360684540850737283988408777559155882425904206601013824999085185498986144326588485831792741788466665295958034748128182859903392235197297736955882286302459228403808887894945544563538998961533842399403143844936561571521274447231419287417907303622762325751999554939461509857761022543915780848336811220251363469585517730173163139441462059505752752537017050228289696936918358651041786543903440140711460835785056164518751145828361876778132664504809637088305168599246162838858824667861442630885268276566318611588404477116832686808345206491637067121677262593625307602096725463570882879795950469920978173521075454474186219816492353247017594436159374543878846108073385084341843673519110607641466060900648826850475307448313518632615400933100255286618017305770811236938343325590552951635605649758032227864722806662566998338464065277977065352725405540972490224782157242504367524031748293868291120227615147045397408670362144040014495279410195890046552271175789331689724279518504828488963119095149197639930615506385790901369656511985350831985645024746793374966436061421473195492684002045524143411490721913476268508133706740868813611319388896901385742199220040130238102640780478271773908414672661727548297743645772523394151030169038757507697860029610620041232776960272661071386829905935820853204479546079532522760331660579428151088970986427903455139502389780466993202990855950272100384026593557472488552662084439595993601065744743558590295230888746176243705312930064800166292416145140654975164169381855222285280816711981829787872138518732336062776059350411240721826720493178951589915860555949125703138297212046890063600822612355552208311122971461062959539761292252001809264804777946694739004865333521763869121866665702797850648968977650774371349372350955361127598918380913667181005935505599580142804739901331191357979573450538378530296475998309150927466607424838581501234563495759780687160850529732947068874086452513932282289479420950541783643286143782530247818007232142112191673020380240264885355527046361983807034505548021610104988467845237666931189137371004090049653729710206058935568625901082682252136260401326658305453227768978991672788141223965665565818352989674263751680481199076073769811172833558949249610799072241860165462706305343955081522220662395430236425213512589040894689691211864591984328371577065465918359321587836495317141766837928045919522670729153720674630917588187207960468436114511230412829067560929265532739797463262137046042054176471980524126664647147700270373040568226626822867762505991856453299884424432201190113472882525232391679133393333618068295769966211155144088793624186097050354781597196046644251031238714888635458893011503143380554523983909793641847379178195853577780892645870563326947282091353769744255121270648428271506156831436644002980853408052744890235992080678659288251370323007791770139027041565195932107601229352292884067630264784285866568821793696891155032296387805346843459535668912110180554654499554996588151330578150467410563018104034303634260848037763150862440743633988242300907020141847986851111111346818235788415184630101685134783956235442477150084920167039454758076341143361982429441918836818634436373383553092379860584182307456803963157902434765931223567992781357247413879410203527981913572193590451351898187920548801968568144900616690433796575294181431685428428819205812139184573170427041759536104330683026220372178409377378973534275070725816031444921770405282078107385680430018127368044769836347471297769287742472077701126461014791571731103193806558201532345262091438379411773318860367719306390239969484626664027689432148082171182742575695543416605155963479157673116446160950738389420147588640864444407200241792674281720933863416052410840752351072876516136447698845858178747683331723281140708363865827390750615821246475723529445869733240199152757308762362482118267678063108669942502595388775531040488878002247292221685534617708649123172277093745145552106204570251405901970894757707240714696471991660216493839490758761718010335452571932160321493960582627534071366990659094335522429724224863967392104518339840163602913319511685580958046541966989387205768789637421430757028475357739447256398202625156783445690862221730457755856701796877646218451176441426968848487342896481321062347840537152489984153052647584537583301616655325629830111943834093457028925153140110459980460585999064875725963913111891959215479583078804044515012292796420081694592589069366381946216320864824976871899859503209822415823272712413017269330905814381621190674966798818862673400237838164874713245094249177356135954593660359499580633821213488963057706073930506516576939688869752496652340970938114172807352700050101539844809579566924880321330945947104957413337698859759235812305425251705037977246784318688894334766384230075393509841540682246395297724709051792148267237044530772966545941252420691286115563381713592083164439836354780984473513792719399922889253676234123218663197300708264784878992461362150252167978221913114175477187229764066718662985225228712165562535884325176430090144988080974844004352238914694289211797866339490329735303713072747594127152639323924861844921024418400261079828143526735751973552354479874677748630910181377968889404821747244200418970124152421490838189190680237645874835810366940029504395009504870991616473957075403110974496233236045117326183186380465037670326034107090819509143990287052087072382150371622078000476199217775360706251125885996713529817738104693927850924991505400926846172909373737763284216293275776589670618524309449474318989684062848158800513982476238414282549515993889430189812427930478996638433126522813348636392352430969507122452219704648330974457590571816701813889519648020523995548122429256715771847615474885355352059721456538099988454044715833444672173977184542771390769970567568747893433585172136203871105024484596113190387893788945593490047551583991386152937274679156788369285755558438611086464686814891273494572776979475720524706265203231732814866397270914652228847733871047953934941995096322122192855217992144502734578425489099595311964637436984778214499339641574566037637844462774269458897313643011869484422100100264417666527398879463120761797002643801946487137224796749838139743275272597275321499577355293623510626084543326042186689907553555002403320143186702306771360282270809479301026132900670363738879617976864574762365503271316574682848717342983705734666291737574815982043568632660992130004605275026288089505452430974619104676771223818981855916422173504444069587303405545161744620431310935200566236672768799029454557320596521719501887704931218910108208214192740188861976086394935659775530247917804949035155516424554485653875360595408863275384590114072126324197529181092761016125100219200505563057427788647542506447190783193507279573153170195699990746767329042373477527073505186058111163176520032012672130314362834701744119338270778546708932342178479783943181699546483848164651945990232884331136166408900485743288354611454028038635223916920629494915832479514289554245110107412555464472563223802620120333447773445463798269993638276009540966841227999914050474325899873405571573631577155130770669518029799088040461036145226408357213479225604197174402734316749296798651980352893643471710892792877251892575756942014584942860811189114674107423392479173632342181954948841959287147926121343644760613600477755167114272154177261104924584766153720510746892959731593464282029484732836573128418133343193461497399274040979956873258731627729803250379234355711209732906451026318902816785388791013488279186672725130594374639647912241046937556419717354071477426763221016591765353665272647000351366772541025434215211694370654481299030942877545716115692235193920021494130689073927583297488428356509243860969170709998221699673843282889334691171964871857864782902517125424036656011456760206151039578514571172351931323091646140380112462369347253228842562019028419838302787623615981845182751649117533298984081119509940204337212941270176869260834706405923783956579854285831146118062329488832221939713469718912046224011469629856769529290559624549393469144635334875703356147061615694973108447584334753417145480450684130532401538400774199421890572023948776783038335925110913115010877027527303849317127218329665190127689352231032301198279094482121811966463111260424270262903016552281004307087495230379122476514301925506359333962190674066969867428974237815092207923199838401050105654550453700737399726636453427932345792612834229890047810872062202149793084144626036796607093396690484596529844714055810618212798097632257923427626377711434565327160628218285692424956231816939617208190179274758395438569101342552078326354524007968086523197271673888660124694121443733361467216736806393758967344172231628754856337632371504092148967069517215816640827634818499139765423060030866995642499160102613414541973896588866434465534385206114938323419947694512929936997321688260248243526606116005324695057722272556974544748435175493638695822311486106406397996814298035961233343810661701378301916196691859762633422805013817984894049319227401592960149285587260890089469834435554008922900930335193791243692700959017893122442602789034472449279897473462417977340282666258553634964217772446208418125216442045350084931612143836494465000512304602997080742964311787099663296362383293211571112224961584576943390133733074135405997332851884661996306609728784449339907946767979392481828352899108372068624488925219611345258863166709069337125303718050546149657883899225120380465734229445142681181196081794081946856898252252205768295696479760971109543073713661233664223095018330207424384758217946839209053153522445964109004848806606469921106979355063339471237195088941691551605553873872249155131714080944415998884177946773095442906887795312017756690465883920900213875126127593275137331529381310730491123736470994746860994817700800741221851407761557987138437527437636397537736356827129573926443822225547105493668599139557777027728933282649663983304671343275445914076241646835826019211687072059965529977904646912211720323402037135544807889416257694259963988628141592601098109166327248001102521206174391661673878477953187023506857278948819250801658959010611529780833244834855744729221231986477504253064750731542525807637092684549196601852930968420022743530322789112238902661088649459133163626868774233742090645818056742882743174718508240473448904274717564454749427932118956029664066061374923481299237554067204028252996503413878750881653723453395294202391891968456146937368204090248853979623599830243247833912129460401747390456816389181204260477928334739096282768851689462535078600176459538015634469672904776658637437812065499969232570213378869996628438718561663959102405410089104340583153535843567966353949797221613534939357394782102780077765350511966207899810678633746051420557435092414932827408614546440796251547330206825754911047417196440815278083006432411116519451191011149663839313952256228738892538448963549121129977577441888682877276064079266604548183370392352679237009754209174136112544122830731494300078452995776454451208254487177974530611801086686139882429363508836938033056693041624106128434560307315593365944306071278562509987927256634766681133405676094948778955837032143798192308131402849297506911818279787342454447031273473833785227701802907781769891659516748911099747787762351587446082333035610470575252844736670662714932843107638465448901773642110338114338928446116240744648969824081501053946550842181442155470748948438774396193598722835920112238218678988505826689529666224426901813427020275465524315538340100790028268507930340717128042734112534165256822645232822497933816331463578349423958765653997105055407855677983397097222248207508289433962530442620815829954127850989393995940644524734785313125268166221315516842858378309696944847350563744533757864570394235978705499906739658116929498460958351354766512163137192676016278036941445772350577909455436562019826201383979161590119733244673093681794328794373911946808197224911971354093913484635319744738367373280265829460836376442520024790684208443086776468490779772305322397096802126740340117755828034899148116558854445234084209622033118674259577907937442430981481660872945425077892737760985976215404488627094950382100282196003353515264213689245276546816577064017788571319300041415197391914491311078811737616103517291170551828675506656358966889865194885309770082813797839925726082893964495161172068417370256036076874835019463038114077208359378775314235961020799564792380312551436988206423629184647571544427454103006569411575488397501942606566280873066658430356981359753233506305403379224650286255485446198895788087539479150362950945797494726259525291269895351947139346353748926107127237891344501999520646208704782449503332451028421805895145546257692970487001095415285071989789838653725652530262033218703525225159339075694170608190678497511333460540051663661861565173775060795902116456756216057628251926643314497647316231727697676090707368100708862268509436412288057140367425178218098985641458702102676838092444742011279586794698026945555438749503261439056593371863322414652140034391064299035256744750806350121097540654643437448562010054721856401306253088664790462369990234761280820486159950193527338410813566895306890013788726219893790015855256099293887885499849887769308633344889371753171142224553119369688548881498807902544627879776314288543951325976115181612779125916402695044415102877574593893761001826308659574271688162565079263506378553870292853739013286782913134400389241287896211999802860327577940309199181248891668553945141221596296052640694935965833209232157807539452834423723569078071576493503119117778698242891458502329116979062608900637892829954264272204118716962471233554820589781724818973331143076920447960928875098071505430483479250647610378409937727464991035256946587019832610305420600321705331444892853435451092919228973472178038297143451950447427466861723663868366594475144008365464731172739492347729935194827863554719799963615133484659240863575596061116043157080948218784658008156701428463273522035313372487825144621153890183402498744506819717362977567364509449779472136080682630513404849891406757747746768693487823564497788000331535037260718864183982801123922427512996187389689037617785471680097335373785540868326500555204808804208854547856586281102873848174197207221679608494777080642397637712759474097321029184697603587703295988139589573577946563442598757593621738295966334990618391494383972786887606531771166012418149688117723849630890371479572383556573922100119756835777734666708260828404583858864967254615466116858685764985081014908199906602226668799619891218381428517839651057544464315065750248050890191348299173771401188255781349408033090864252885961742969063809398009433216015013804232295133799535981196348978277600191745828909267577342571174150425117021866016774075422348856808813026365561830157975806901108362442070214744197331330374702960957813086544281128066642768960871075289778985822667541208661326213391744834021529200153816895355825483021933312725780039274974631942024053135361539794648188141064719479484283674698886433575195484673457307295713931354330541892067652522701340299895756748686805705197420537136709827456128265436943405876347345338705150376646350640615734070377063238755080163803894386355000855468504013188924628144293749902591053833136566094231261868574506979167699583904201509812307587030344865241839942539839442719485574469622800295448068996032148437984457336929128117425504228922327670786254335809913322057996444608805930246789792238667501336773701267615275074372285166031600471957029620059833666580708548045297919796833844682868338353125598264898166409528528705634794570597065099057911360123818953622916252387593808179054114332472869816695167993865517384336304902604724237738276231693658174175703548146176221682351770675777908850225288282753712257725783518943559114690140352858600446040192851731588403237701609147462361254238272173274149923316208425950964841013941826207233927461675939990776856856913259358451768184811760241447488179602883029565083668257233569275478456423897550225054729561560669425495659126951521178918855552639355342696522871296788541283196789951804477966849237291560558606182111216888049454915452974345906151844095607046783535729425504527158644626633372631465696045993569802309702634800701065674166299271213845801803393110674240249452773554315591758694229510216104740699806280891015759303900463756657383248011258445294473869666814934393289142141184194991165818906328639918947869129605216373252883564184123952801450930284126713516802982308016550663145420128814288159940476629859756771487447303486550233728130121131496555781989721026158529891411233527063679394016600787183643553259328650402936565379709388384114013427303477097592843751137681723893944977495790824083842493160412337184786994044520579605857230086765715109998183833043605411319370423767521309503926180473586624560093741035538225506169626621436417865084897917694552744845364131614490557564442368679993937770146001286462337744344907039754047643056790769607738163958116705914319212950049796615162463317181091918946489054600669997727781959810402131161927755857041193798489300574804507859056323122023213715201718582810925539472847662640616478493465105090445485651918752471615849920903673185432250624340880474037402515626688848219739949949283661992711528590896288605993649408894853524552341546710362466244275677999442579723403458095088666136270009069116832769019439044108641052661607189320033828595802808830035192632670066450424851101426873185358670687694611469295115106247757944375273332304980148934057567301610712570746601896610427214146863548677566931923682065861082786979177918282393878794636208467494867206996485042417060117389960304954599851293276201597208641741441018550481079635964000245701689851671692181637907707499006785661695612057041014644525720416259736004166538025149383469159015003033551606252939857664454935032166989949896481867027623965169795085245494044464482232509130326073123487370414439911501349318957007004745950171253281787740465274793825178132288177234850739763027563254410532129443599597575453585714007621103289399357568996708031234277121514776377239014354343494115315144024558605201918605268050752148983981374931424618728129567874647055655395880430180572159562841518328223097261450393924729090018233419428541255726366532824950228664305419244965401205122707612239057938096904379926676608219343538293021584394768858590831559967272927135361280080886661733762896873553233975503947072654233977137983420341786822865855462286039349580918608216011430597216963524850941778416648068588678740777381653233397721344994226314833685181862381676347259667089584323802843722821379793002358492076996728595104945822074452172110456811414273432764469194183857849492487442445544677401529267146877014537744431543137717811384608796366774636800020101411594362883305092248065015085791164900547106252963699403078881562853801272274442215861549657363965296516413363209578388509318276301105618614800967681937775647176607904750831185875455140632798601756457339915606640693605543978732507723496782357272729824535953032261125725380819642729747038663521993499539243829953799271264775991357619083995249741508450763369227472464671661660305858291834898751533765136281434241927088571053840416829955664538350818743195313191364071233177968703898841426508961491993320728696606859634686297762229934942062928453930913181220305937477802317163678769797790824857690440782561633983177729282556547152885679193811101342996179177038207626726705566359131967259781561541038655349663856382451348273047101895056386268753669221036643323066026970015999435435719068520404935199737878778306760879290724872797097923552206428927519530637871592911522590291012504856419042049669408910345890358101392485038189353905666606572519866695413572585698565781426967269827522655234849614703431038892641517089773986870336185696221614003196517130461223050324454792500014476210613545236661932710519248375055837854492210618121209538210053304544948754288759593866791711044200824657022834270633862542191718445257016045237309594706175585445824965661186285750757966029868753128363983766423250850061551825767962650730574558130284218291179013145579098878182933258388656178178999474641742755714206476512471298133922382731199959262587560510488778973836491237967782708380986229081269228703188556990351491233122243975003003726258333126918643850763770572898493662182147624625178728123263913938051657917830786192958332448751692346006361907310852292190135067784039360388685773839921039728068243299527892529004292915214348648276735004171488322476375654216219606959011080607813360176344173007752563436125300414103440170568272183018058719061364870691794304477381927725408965460768525603738021488267226276095084311564239484319259773762933838505554503311993875431525546195399330405697321633895935711643380344766182395870470266443032812614936950185488393545341706005213963828297537185017289623072234987251388277046126303347349108594778255897726569924897389381387906325013839462891554130118980282785156327000356383659170385271685242291465552392310494708196322271187310086133334371907505073292918417074148734152990234016587049706849384984630784966659245568821964467723025357499157999941303321965232027443475129279395741148005606469696875642950074725565285516455294610203867753163684378384113305806981251900231990429109837206558251447345710163222373275949558300920922675938726172786185764708919426828105895769668785547825331902438158606003620641386246719144226848657255221787085520459104266005434310393576034508912247447499092277514140345865366973205675976109387973023963628715224658474740846837362201273574922612256062750576986548220299039758356588697942994073102947578743030290572897873215318097747998334452484851272554277980319918163327016522761091165694621357429291119329935517747581401870709558512080902830538489871893845607704369694303495550993274441075342417343621079285079613023144757347309017684220615644855442210662259260848497668760466408229695089844626294551473521679866863014874387160749965786065646952475581739140439746015820548527148998998724304180498403882824997536353008430406724647035518472318934776646119549149326083639757534407086418021776385717326497471956399843680983829345700102768359781927159423717600775976106291093556736822425718821265883976642833922184729236409577112370213950277981326313855998030988115767319040739622537184618576455446839754084535969628840214437432170618534423706402126192083291771385197420457539860999455083582385584403742903852903405092489289532726668649651952245259538118936290137660906796370594440785066763156808936885028460960488789440937343255063945371239628779585733329490938570889733736084564936840754608222268225449480817767711849267965500943486956298822557924877133581183033276770313349286273887393523897036029864829391914646000327670054985175574440066169657032427239651332786903010822079893763319914392165630445238134757015143343572853358832623237699004064492701261530174006686951452845215103613553854587442061874791009073594681416231509585653048086686527706262640440570935534745927713226735864244340546088695846246992789371681956203702724494766296953635369174115658871223490872909352042010278102931327860955328214889776284408782969628994081575648468828004694509881369853889536196674712435454397690372295792142586630867093550305398798608950103885285023718358177141836175643395059108262445752680951558534287387078562827525393864593331217337154101998559948052528844517829217982346463976110896409162779444158049924506967218965725478229970750895161187494496689748875395993974593800706552400308791136244412770554641169169644031456188569157124571138695105873924409258124213018952247852428945564348507105341130136772960023940665491493370776190516904074778329794746096804575159065599532471514840096744481310998109414957829348557224879228148879169333801793026869912373471765958689410183130113008098417948111934831073627047841692697936506410983652362477386188099235148133986370842623435687245154682036614820881937074185402844019129881429093330823982923622361844002801818784530195591859265121615838043395530287148738328698261298441216206460409750563199178910512687404047241343155967267750622252737585960098595656649668645822878817466066579208394469839889325552373218326027132718677517708131504853828897151138855477283536901449220268842132552013745251511038621693156091357660787762078451043034074797909370234155002945088486442141631803862677377307201460527911721998621758663012910692796146342149228087948609014681507022728393409768681007594403648157722969438424470378436363171562828729396256123544204098004200864963017088372244666934903280317737616791910027130190430601310478090864585309044354253020462056040804730563030132731977224680508617530500233369456805388344445263776536021616106663649295814225601433976553958728771452647055629994078766024408581086283576213549954555030158772161993579368804631674157438257562099515658399422613634992158671505326136079772489239771169146832920407018959889723305664193817273622789757734003056107588207981102693964747669086523279975500344288385164077629037281007531685464897430139833400071935958645646692912534196642876364810091235142438716863281041460914047878177709148811814258922503168548544222732131758833033726594181933926466736685541386403114710509359897418215514238844438178233957332714898792444897496377361982629145285458577845423108424575148112039949584512143632420180306926401586233411428139211215772408197887669933145539836045353668935719848664306655063525132757727380528347792057960949629445020502471380685576192091835755340665776984025272114054714274607133219259854056116297201684287004362017928351281273204029484579929538769299984784634814394325501324873288264288919325165499399379035320955742367528829927725674936192988713115114698697310802439268938158780469718797779363943179890191013208691560412429277588219515024115833397311831191723620565947788772245513856343771819089021929951435113996842325753403186308755117872160559658256785044694680914758653318179187522191241723376244802811495998320847113017915516634769508964478634437587500807380926546836010841872064565887522286963224805241105958508122775342638663389163202739997470176583263513607050065058652105609318490478503392686759381817918159849289410358053322137094630976206915142124209982648339541610734188772805757482496548422792956345564348140759303759308588475198396672813988381405385222980717684676926311233296575397717841653772375402350606307608705974727271498053782508467454797131975567858345063693453750140835074139050599652600722170946874532390687289201454081576612836375729670843416631927793044912333683609989918045040920638131882688339154070233804339923585211673990771320647991583248856493924060883692599472545522089413325836040486444364534833979053250241059234557660143085010978729621878159201090505335309728076019453806799729916864922343265419981656836528782294855651757953279180798162169441021061369498595174362658931600665138747959679554650860770879739240630455619523420072820306771607656645175875382101599559513583386600844509459751392658612126315229775852366418485223571392861226742278575375185287258797573476675264059747749755394623199598687578073299702186537747206040260627427620872246609390842363386797168671438138464685755349204154591536591652770006267635978215389853446788551396736702878782811087769161310817900415750655221249372034857757619768311143872763179794700232372747283939798853804742191681929160914611641443587841299530903839817084024526994848603822376103699497293915571329710268309391222263716731140018239945252304900331685776243282969417343047418538424305751749674885522242443957738309531166105619090993700317352815774526988858584659649472869520581751916697237439193084986474644610759694618833042578434684155475450016909224331869459876215529008897689434631881131470173983692819508467472160057999524625955756818849881024230921990168513951789244676116936267050603978747029099581574356222032428510802905409873686214349199382972252304359980309847132203719861113990153851050666962122041247038859392477070339402518351487080481782256341163303751009288873814087004397818776920887430097981437671353619327139614774781966562657224859109525828492501729741000137462988401417636468347188454828720621400667180315792685181653783826623195855750917378068568346901664907470674061714193047981490445745626192650684320795263233139419937222133273398896947189899378131829739840070825698979840859663400432590997516265890550863212727071711227987535651708974883803431197028876316732525066155513423069581235926457177914608495377699585226791636533310192394438794108097900227892234371594570143661215536709101836187506156776340435215801520056771513330830103793144619069101681336686368714669840040170470564426240557964678212842697564632307487552503686849740020126593600922649984948674871851035089246333837302773651480524785010070139928044623782812664371427040411746093750164552540144602173197412533741197111770922139585093032549932731679705764493501565918177314912286919297118166594971512550770898910387414968339110867682716754326756262115331578622600417739582588955574753238623416548680630985212150537711262693843194994624498943320693741900079860370850933202195723055093643469497295383693539201158594271001636846126672242784465454413006357312628864476444177404477748923234859036044910107458731268235919967751662179642168963727849267687341426765744052757688881894760280785929618835483142858339853766735959667109276663001915466139015425578554493464980246006839184900599592322616572286037119786151091662586997724543300536421698825829033083208169450687145012085602871774641401442323665794538918629633389985212904297640944446409894012760121292952747628632588094411848381844422327903931653361847169267222488848049560809528437766620536746251666063905777698283347022925814735781139704178757879704721432294045180772969227718315119752767275030838392488396223094591761612576437230741665383224923122305623475006203735994988483441104610081794595766276154104922490100851948391748067942513614115047488881122726730910977621966051702538766579873241624963602604775460810178039850206547064976992863404645611608216824376220912622312645495248874298946967180280252931805932678667439871041314017825168187939260776073640410921247010187106250788256602107135426028291284741934111093925198219457077105119770382924598786731683394457189110858449424132810195546441478947472070893995654691185922663368671064267481166539913270770964026890486575617733980003715172428098858528550488197952840655622217874781379056485085119995367233773805781367134523711293198197478865344485988342257181752114100826346069445684479840512923670350451912845181484702244849308478371009208189639655445701084402755539027068711995948144249006211032626686008822128101904115807136391786915497336582418738740993818099559870509233373080406599495745630503466517895173268715330530375897280763612303276265419536203789316520174021167239947213074872172818612079199258394569581033246015586253440690141216900267533902748495877169434957259014533634291981202423738089368224400313771057695402797608819548603823254268175672734209431809852708468270874112403061838059471754759829722273493138989151258043711408225279694881826439472522758801031064713828562023208397197849907580818334368455545108922772586146464757439168143527037693556062725630852816190725038391504570655181289238869129512561503133813850194160882105798394911155334137063731209430607010240959321241860627292714230349555799922798016161093834317458936006542497686354497262194272407710017306595187494748890345450553982234547893231556264748604869702930337049848043392071777809836974926283969994406020805768331055650567087157987725302756296668916622836120786761121521538216893193991474955661776065133834179672229015488305632987339399140359029063302081454824541032827949639172241163854882053567240186869499498527621059381750914688477967652120730156165898478717825645891820707994782263512248649008183390810896777228568346345652065066566643620821240912695681004980898260211897064715257981398000290572422947364197571174553239874923533289781700431860525272343553738693357227849838559877132410525874302787004982655633564413599455137622588912895227903963127131938903996703273334967534268520692044195253876488686488499724520289646920515659894207160486770098786135237235984466601552598783743209739643532252464042341948526458349197323016011761176358191069606990794302568075638891292476644736659779706026690902273357477940878299039094998891615632357380100529753932512937304791683595480253130476775722582720406372701207820169857883647640221488099770110744249152339735610689876296708362490724011716605859103205704359107208155413507361872715459484269389047839633401627681751394378923128951610544808745374906280126070291120133544936203933878570501631725523189044211159559216108872369980140332505034562560918436366240517721852059406040061672439223431926470238895111250220616792435022709211903155792296847455296894575842644321734504259558605067620822576760486395003413218421089791520288823435848641192649601039788954755551333977819101416464705064352652533232625421317708832526684121575818050408405509181198310363032378908357493334675235337800375113376699992928027750121168605515461664493098138186636677666020794790237052667637221677282639569792239544591561535521200146339527499456566966200805310646008195412342414043524212820976751648713045706190629973574445436177259637194066664411772210261748842466187464485465225047296774864888197224108642394565844491330120581458549236618976566782520582172434578095947801408264263170102791611384282841973942444952957267045622569155587891532517669903950900252378233277462576248582582017940175311020477697663434096490403767661370209004526511477165876894178888888734217359919712015713438609362595868838898264555967177647144152575415411890594872863418559051200934334615937001479003656039428100381450418876005521412637739425747374262583228578333797625452128997293482880712523981506413454729666608733060851888164174629535973868680595416983463564669661508441501243595532852925470349564849649900798993549805126946830845030276936827212575478513623952959434144543570275693637162461431030896055959847667361792104577835044335140668118654135170282946097607433101139174572725969749069182295089025091691888183874894182579982317959200841707326022371955763584922541856282673991683402285912075508563386801004233250997636337978877706290360712261462017072724038768108838164820733900466529375602275764710005884509679675680779693608807521594032009806574069575641022084045002519747810431054077087675546672019963019087858792702006698563908888812531403969166681293480631862066011543766939060774830985578487010360555758912239722749931624490351849936501368865306265635671927123696278945641680254357622918177655673927629643117371113952025170097146043001752595493233778649149766541467043868361301304079225847765492604864361944058767734961368457592274795200254069223054824632804486489144985361333100435832252459275167294579871094985735120733183766268538307343018367591194238594122922353191714567680273390753766044594689649244660341395008578426879495995933239688080293920924456848185998952603558676206098646739799362383054860745812009687693745924793927066341496673076484108592017216767716794443048034859317142244293393629218364969429054045004796098626530634438970419421925058618700804060110007116428002905238849912309224535934030534851916994422871395925469111335203243205426115769240663368917680492359590687473114772017235386686145260928548979742043739753886079379146119368703598625706422380748158401986939777845785725166272909631947658891315536893578658866206173181872596169644525758163805961249593465835009804812294697722470039107626548331498736934804816595523122920431069092399740542666400941208810010654123752072285715583418802168382205248712794854038875190418659712588711833048200781126356071172131085836250076186254397251360763764646973355063556051063900374626818147412679334413681522181476320942021205175934027425371220707710795438005021167341455133462878967308481215000465448839965273298133866392163215936991556966562385529104906376894072939455294610824805674695172626194454994073464453746450404680525473094374958459618566290898094918168452982875166182924047196554933253035328761617479889077393651787892604855114712743354359710877285538640560834528493854617356008707056246721671337783378563242231156487407917902710657534740666228783876580349420775788742382981643378066065881468604412764874130349218344214243020740908070319305013357129683784928323363462790578496219018660523926504986885365535747403147925682769402043969337618589706295147997693470471268962111390223447826669974792842763384922947769947064904149604122464534457484243092266353396475412399972031780229576558785189444398786065288958535874017011354491357799746456824249712428139116934987211287198380437005530312523389209679055989963583588572869394497197113559522373348671614108646001905082927377405355325048090618296795840296959803798401298308549350757673575019686701674472931773119668872427877483062524032485746513731755357275048823291539483367159935054868821518405381328915377581055352923319580438369336597331550981316828222711066711037994909558924606167045412780387007386809448821141658855726276836221161844155475434325413027877216330446931846629694138395192349901664253082221321440207075132264936761162184806648314036182844568836004169984302812413200173546067529286975170220899562569308420663423147050241117484621232868983440496649379639767802194191879028197793494340759570664236190383930776986088574911511324742013918266630917620036180353604759785585921582974276081707802290668263355133282140787282636658313130659553136776488381307788769712826523140165301000781157315364603078823357892809178066872178711237799583455325052221763438965937431318782938057332225065963910194767697123992808445723086284906569033275463762754287596599291544184773990549240636289628914200032031367265129440518833188919255821759952447865343782533145774017964044311535517549181915069890958168762656963122674918365032311042618481944497088433787962063202737713228587217611017074137333680692697794291621148524665463529209144592647580768650164748860232956689981629052952247811368608840604897808160190297411934091277414406610391491905113887582849278312460033545166309206910983395374700750419151618954242347760882590965408393739918866344741148770025825732073215686691018704115847393396504172067475852752650768540549889235152056003716740716787742231906327204305841467383292543705387968115687954706795239259986603592137794354708241061840663042356075537737011135475405075412078099670057041831661707886522280500154834837566919201923997915029119779141753407348200617992152033347523284952385188126218769557032800247006635421471835563802013058227095876894038043320001751011222569838167419548697827737725155133307668946457590766481363003890214084166120596010399971502248754355109728555583097985713159065665752733386627731723917920566372962305845549278531419419952223201434809990148270682042802008503797450074277268265733146362409779484999801895831014200115170590805006929782377496714467197428881333695287994925997276348409030245712012542956732925295828109557001273958041692526793521243055038368476941731939754390315663380848748921931864599051578813915137191555036496390383512751081973272358490463672020581229740757246590711150530689154714444231313815320185084057077548014717654661602973854283094194306435475056107064553070658651244377958251412151678260738319562147235994527125705851086518476306675326903249359665323628521633831099528013963802366846992189420635619775006814401491315464420252243854929633373806599646678409048465834438138223808008290596532077419157043678723196829063393954084365916349562100942708863804223613467285741967923074445834617514445302640160004482632732232633744449553148327421004230819100139101028206553790986315221769562261288037856263716286994135772933463852654570312943250104164894959859144622469377877827738305821497720328794653178415776798172700224958786687055557060743559696167926109379707689935006820902731115924282659673607217311060118884908858038117785243808400168416690425567194257880294515204726066281845989443346947652514217296571018823904620989608274311352726667148101995498391540945752342086438556765484894522884991164624953430844399029181997092109501822778995553168845382878942241719388422453468728271675079153107384161317366446686211829060293401895021375994244831356465229726588093381819556815917570474353299344913880217487250033765497364382579539808531175369305189576449562765266877326861496664231785973955112643849667284315128058989123817610487777353091915834133477770740337012317057115316907750580016505741555066018713736450459654588283983260632152899615538359760691489155446669634517516893725619626826965311598715904604903200102386810589872677955972926199669396701458686850712894685764876148592722050734237360840901645697501185672376846282118451308914253119568205261901636935354065127562900398530342670713517572226599100132981223690306201011861064101347130434982253696688407721837954290485496886587163087251593195442784755950115595757852919385840422740673333801802171206355090427585344487042577690900993618766752944588792007443150606670704657439781876042316049508128382459984051978677341962409207241557214289943280573622266897345552443838974623233125125600478298403114823344420278811666989880481746898622145899190024841957362766626810027593601358322361655011989914461822600894061394170885859931001196241707272783337732869517802279414512949039414610487807191827978080277659924728152017850769308230863506714638071808110819596881480865445518454234975819336966155711407745789450862145620052240550023696312444950198446085116510616985937899515804940119455266719597383168331502689253884213721316838470912038592148569192699682146603567463351222065737258927736041452321660400128846536469367725505400462150835155900907791208547753526566419467824669926598314591178797765946173655393241476060090751886823534712338143748592596609385181828363819843113710493738300250561372426262522651937730872573532081987626403249821760287185872524894726198169263694714335169458834986413570937282778935183645196329182119524645327171636247977935971008145425531247936075174679135340589729974537404509747970421203619386778815448330753043030934090553415285491842001395846657550141518708941988894743753901119168082975522266262597719264098867292443185656235239879436127423950248097595693827908936819845920922723189897626806444242492567394502425156288077131360666591406017025286805596154878335472385408416477507744360574522197072860331044222438336028927194316156155597176025224694981894411619307052514849278261839113976175964508265329491736110413410453084124614127681762029504044230277035744378100330500012312783229480424224453190202366855170240042315866224646236686017825290919116786062064909867039201078375738402638729442251703488797018325371810517094819040740865902128232285731201751919946492673484360527765851956201625908905932725954993987068168681387287256740696584017080309834392594706329817099236275132716252965596141556152541362172217385249800663867548956077459792766324310705020822420408680839532450566451087798016962739063192247686458947822825736158917046229223911393270226352294872836219341889061294073217905804451508227109078745064542739331713726784614603086318844633569027583500867273445057384134933028727019148281705004740662565515214922169258214007226434356905387286882423961834702129108016255841784656348362078214482283620898575199419507088147352709698348796958017935609342585504464030032290876422620989982010822454077221738845756576584613682075173644360161013732366891146863380465446131937482455118692614214956822821456234119440270681924506032051440993335183728614584864165441459418430503139973828691254326565106497524613859737852441569942415571692449651984898642984508918189777487858276519776661392092104729405319719055255550986404133433195938465466783381347305775628561365046443287241923446859038561682191318646408062590858119688569428685618373480189006669328392718920106273113749748697241541015408542580035479774960941058841007532073345303556711259925660257234582130517626306294120703565727095100015759674624505882271961787941225603372900910031218435317948719113351453013275924623654500594506424722157865021375955723346537461772942957963915583874209838390440365150397211373594551805680677253173108530188940608270693203110567940601335496760952293009804722760780023020396419855404077882884149451231969006124136720790482309425250186532474719659287185536131360203575494150309240589214727020464114942211417060057459784401554168401365647228340196742339467836200261426444237235513333337376117610093429607707366337436184449337237790118517338882561319948492981695818687790003167645970601371657489018943664293690642217081275775240002833910492273233956544090456028020031286942754034114679624396211835701800529701595866157939076134626494694708135984436204699966931562186965367373477888551828138200418482678959922983662471505911399188752855965493864140178693162039801619999497916382228090332497074054378463655920595577540422209917298199094163738379057182635472111425535520832666459723226318125167488520680220212953975443346725488675553138093738400289534420324493854987521438558286503031489969961440115717358471820121844438502265559585496674511713535353092420021516559977717535295560252568001247335173298210283816823814205952641393588359017096803734273522983969991883592548870949581350972204130681125278735778029013200096791034539947894991790054111903764648243517807818565389637256451086562687970357341814635587241272119294092140647475372595559239830910857328688019779894714042175566054158923129459655329942913927234277959532699531117334755658162099843156446262602179578614165304448100910126772368213420115446447375474497518414752508499960805995979856148658324366978900431383655189749440006778560705975251927840847481071553414429841434647010200561323002676353549781018284286670379375795865127771820434486447439006957831484222184181753083725591976018879605798733605284837047548600167805492795207608792437462786872914360693988909584440713031863335244027393893586514538005527518617825207571522743306857749839917141924195743273746582525542301063682323833722877504712272358393878998767496811978945415517472649806708062103809991622981254297936056019765664941306374674100084822704286924071064338668205283029251565028383810768984740895575101163634213581592245639507519514959325187574316114657216303938336174786746946649148614210292642892508844564831618726724608623612187857275595288955875447658119990335212742848271639125660102286231269632729889030294945790186322136599317170627634388552930940528754054742254506475499854389924880228183608326105647812116473051420835358969935896607832234723985004096235290274753416811509577336970253918754304158071076715219615413008071479161817282638061091690661054394760697648042567330810219741836556783005535402857561880140815277689036310097954369644177133213459854534132481349985985579333685465039196096426784461415139009759474721493580588917881853679721288843334445736481312198437127060725457441837528036263745311923487213919857328239390679295399896171828677226924372780056498393296629313654107271854231149664695179623129618971166961393498959158760046569411008198558164978848104481862019012964819449225379915778710852285565055450537836687559341472452494256947086749959356670846713091879148942005444508179620897536510427079390255915778599023026596378844908710520977806009614565568228550411119872381567451571739939356001462907237925923338013188904655515600962738509916307495861991884386589288344630784349286961174221095230436933280357279464066800281205753421652029437923687127421198151737246271981144563498582169432138218083679703637111221655183306152169350843069457579747171478294506075882259742856612295348996160579058671803010178627513543181400587341461089518202310611792845765767264489673566510115096886187238643846873032170929583009137223927584328143423527592514374189203674360154190039210428230351633834652193874975487630777323375606262998541885568166372485734565303757947795020507255803042019754519045087384781917298255591283425238901186291262780229442493188225387604017237211827110398930530910610293201455500490386255810979024512777441284709930785856504081253560494428633447869494343398320180126800421642490982124036953258251292678289286086626884463779689861755398355343718763988872682568577354759031304141506517041780749865843280619228231962426445082451870779367809541809778810532796713711330209608843584972958599556208878014447518943999623681696374033375636570325545012744650321190420915945927999112323536552118047087732260572745601015153588593377692644094056534507986183550371793720620426161465633269157139404083340954857939701018361394391663711854665475897432435483005013614170702840405294393979034907408289677924505055564127288278330687037540931893676093739640768490004303723093631053411895028649589344356520495273736913700819135440367076474191091203833945053205294432391870122069148436363845790746026874374802135104475491491102599924607119978851124304114418509177337245419150748454267930235560523726907253978433203279093733007585430942370395029746595959936234974285733580804758266350647890284616832946743955701474267974636019819794498399677741378988392565786546775817409190112898289677444685501595474890241378803823003137023671421116854903326475809047262202388535414615033755551342916357617236191440089726117829821906204376357078415357097587075934155218072352440776615139678059728935797287990728635332365450068084178801542394704514667640023682919839360807021105776843686139987964140429478726212066144005766841024755031057243596673693309662706412861226752532800534597329296150670405129507895623315779232748021109491596239644032213631394335590629226550211284282291335442240600032267666161613913058221667451743937592797415427080647351923112930403827392844994987146885912461868152748566846851261256712132452081790992680183248545198598899873943499768222816521421687116654899185734524579849135436287042671266066910646411850496766678898445614487304092727921831301011228196711006992852667172849481420060627815842942904812288712028442826638870560643171913991742276617018552890231914780215209410815294398755318620219645490375837110993627537946491712242392346283191448603630550881036849658621904510474662866972614726558716937722654843609486458576470733451070782154054919913266894343433915025669601267719563629931830130312578565600221024593647269760012860961599553199838402993993429921610850203244488047706666251791110857157874714966217337721456504264016788147641364425179343139657648459827827920490018273499424902809899246760990365517578669412733570905709908128479250942219688266680968151781307735004309467423074449195635352324758642813728249970142753606051539707437030835075016439911907895560850715219004027028027881568776684419149714363143659033283705108524740420606897363172429928400031926989522472165035778445409852891500261086077077073259587236674810062696071423278901927682433307139901335865504686705358577191991233622353583298340845568708061133549410218805284373669724862535936890208135715185286443943327818140879294715262138946660623074298639537214834323169922225680421598851322436308785049349641497469905571015074980359111857663717799940295923845432638019876717364981333273109067739565235025892191927506398262665243971010324206357277445356188441256432667959548922026717299347850967151492425760425551562769727653716096445993565303882262727718124184485667469349616882541202903442847084618328347583457896752984628964588603164667178785239614045597555151596668541510456479538339551957761258811452441903565201557507848906345683284693629812197853598648217515360192000911459063896191830173801103783943355457714692459860343599410979408893492005619326862987668718683292054612066375165543929482171907808902395983052331143662393060090775851530465743887906302396516051075181013542480043133614956688577580706529837734639098927649897338056971860317156907042137458630899158631308036493354432696681156578500332814324963549760408983077945758088353889053357196671050951920007758571400279251028091741318666096384599115254039353838860040580361865607370418398195235679514007282860821399901495672044307827543197105888283304634584386015119339651119878540844754339076793284795333275655196259301902992483962625034253432147904581206874666828178919843618937531085935084154415054701363161028415383826302469885033368943608486692241912034461052367815612607220791371496085227354994997923443637897618155747468431641223730706329174761619413582984200764309036114483563664645430706901200664919989703027537450236986809455774690570517401222804795073989225816890344077871954405454411963594602252632003902084740590880809986177136195173896948356681247859684017041744382730778477225268408601694337229060255190038922052965963687396513639326506217007054998842273688898848094649929164944246856487103608505857835699209393972073994743054455725228665285393590639934282068833337945259404412245223029947635532834456481378557166448774217627153042557542266357539364255868393941735660408594292300481422954171573373659775010863385143861969706035486984439279118991533748731474311194836844401170545146264210782913814569109004693857862272622683417570254523652436327110633348173613882343779117113030747344798339959812350689122874866226691249108275605773457903104216554865384890939887971585976829375639683926448504541684092453975643166854987488290779404677308846671932518286905994161194904289897159959272772820608590073081480848633143368125680733496963839191281952921290792611602749298641144142774442213621392802035012790288978731214852734336197565618540253196890741732998609526449399206735463353046775318464529409757159265472683353979141791053556436148912619656676148829588616410817004039778323005669672176620864830582355406971506731424650250686864796357790221392022614812355816359484063114013640902166697429455588258957516535249670034831451067433637235303780722072169242480669795542199383831364090443328975338721106543113060665601332807201946888239130555384439628912814906473155430214024020671867826209052428372107559134614869581117065287441818605182961280631911213134832180493448537127608499529172569999108181288695951094523626971985375711342011077461807759906844883682183691124960700737626387194955025914257938475457116978313462808924227466236152590181752835445683825589585593062274093465054180246511637546917052887533490107985834607018433311257503837152059149026918105048691771737871804335253047950076269359095032288320607572012610821278838843356684233269494015929825658578019573369732279522861594108164802875764172371543377893861212461551328787011297729749143375582844887223545680465306380909160426960264210936722469042772056299487264733067792751586459632622081772207926716949911713355273818670089615483216595954309337593042919323222924492477712169871330870064386121753176069164018413046237940861822327046652651160740022210136100510094808208281306439452865500665657305942584604597099185523274613809172476100835370844721951390571872888888707669558524694600721200153514846367352094519891793932166687935514342049897332192629037966212685254809209900751911178715933208118477092777149455929896375394126352234282905577983981404032707678329283513299266490230946440385561500232536177299491465061283632530089647865318343805807119171253509934047540995133259186818978779862047078208731295355440675206471977723686832621269869211480646963072153744983345009588140477809108716019967522417074687315322364296966645397913944312643575644555830450951737449660298407242536025104170740227410227144768675987355551393989396222454856382542964099498827388183453841366562520850388996560344711554182550502925117854672337106242426718908321583072822044436315848087133971819544902975437237840179115762623880866234684683433801122242011939566829530046754575502604007332694909937010995770570795920806253753527644643826425215858455593184809054987367122043189331826497501534640157545552997531635523748157895493195656233746637011688285303127220126851023227804278253281095641872105586969790146609592243827679765497961495509367951672277866055037997512020406467762714898590761888558161290415280464203841488421370683537560890451923336991045538083106325836598612529487990645954889792309804565899416802242928515817973687393651970479880797949747198677740266931041760091376796189302360567494443546123699770418674501901717205451601965404852068213317630501295818182090298585426392126352910534134880200621937678563916755146514002473234332437309995390991750203222512587551279649403913620802507112736777691298198315025509804792229269950300887887962465978895406290810059661140249869200245897200389903413156584935777067048533917946712051395979468720314310856403929349536568982586753441692136996693096362270332394260152746916763369964684902051719233223896703072092140452993232880022943547720800269084295097218282995478656300903691646860852316476028834370357869896607101464072416090313688577398903174662088171549065867057366806439675245626025943916463723507449385778222507807074350413102259184250792962143221500868885025921371625935026986198469229188925497579685668283253615751323323255504424837961598419501551215561819687338921281793958642779628976431270454523959595354042537792447826714683051778568190910095257217666498479646609737898199471184273518968576454695772424905365370974744247454537747709982837504801039739154512556117564497311757755739938234020887226559795357162313982915850497582102012920271014685733064052740623260313965201147355916262473798972590630917769175207237353908183548396506741785667854983874939659739487034643626845625000205351328168154335813097657811500929014246338326867967908824282620204878772151996275230634331515356047945191816903574526698927006771993663850393142206379837684974893901490321566856462132181009219185537420287282254722092151577272274301204330581740709729662871154399053963467286809272898127071159560899659045679393676345756563383908056344334546326822260463017946425842670615870120322071476803368443537355964903480474940721924804922825873770114354702029745926374018743124055039582690109400818420010440464051281145547749104370636620250177957383779295013387529580496207989040043926076977675149830699141606803604714681065171803473861253249914344799162883079774046352780239556648714932058042813413079989721401142043593628134022206815022272999855922576566653947012520313048466124681323556600531741920759630271874466578472183307846696851356760593453486298889307103218476304801860041640495076332348537998564359173330639831494129363851801381111880612269623942745831874415577565486387594459941047675213144960190141461938962538635700268349302280268468968573831853807684061030818931790979875642365005671528846789281412297670533764815065998885784880223207767337836702243270469454745864721638701801338742462069763323914588307335965540701514905001331039635913498918605209996868098989830261992195019079358399826055177930608501929404159488351950947103730267038508433955657513353860020060634822071711270920531272164439534400586569480042958882512109535040676631998312206372277465418995712443439001140880720409268041161489250163405183314347557907976006095783399304398417468546695672483229159382491458379403059262714397860256762478589387371309285988331443819752524883626831546518760791722898078617215527585450459803598912609674574158814597418556986094149653424846604286514217200669330037171269910124170442412037229436738737350795534865487580498244014019592733262091752576939802401884739979664916312071845692887625461816832019156911440231944095830860471224440737892622964902714704621329300106282555960719265410624607380962254390332879552533530270132760787429459328796161740598637169278182906864550943361747500550153831811559557394056509394453745758206942430951254821246475130740037464103792297320637930641976611904180498823803963436825936108345124730948946546575622345445775504823351234181971694535206002623112999308080591423127336142410720898464855298901093435517337728136018739226977652145863961072637861013002528183088496775285895515576068502965237726756974344749515846439235478175814536963042489255063223850281562945985090626666072328063995880813016245653929015824210145776759742758144522733613644187563131359336398729808694949287621327545412050403722008664110142181105041999611561481318968869697569777625432890226932943169459427226834346045287054906156112252563575664888530708372461281679820790240449911753490707101794979531352462116109581213823609586756936895355661117388192838959228877303150805347255756799899495814211860330310051866372168204034922852789516452470184396717382086191316911893494788716418347485154043416381682368744753291128056584430141454687108340137074612745028732102079816148495515947912959129193242849894770769643443998319594644540149152685559700848869062133184894587909631783659252997649966269035117335009539710690613569086136423729895769582289885153215029389810648591442576507898046478150042909137761784494219442228672107940673966889664812982652546840757233267357272596830362603998557467892865503037179878835289033979184153273443820426143774886126251083022230627832859793597930997587917441727386517351519330658062795464972582056762031702928537209001171393967440285528335602292400579074152601490191834682820195389968524303143423023165880523657946555941148727841318259209236792997064209163876011463699120835876248214733666265943266259380979021769770881633154536756245813191129356211565369146523953862380951637491282302656495239334479283393473503776560975147435918857081110690444133811964842374508261712794823394534111151629396517048109005536515433898669613926869169782632069860000247314577488890180133610949955433212922658508258796776658491408240673162051938321575190676592712634262652607010002786221238739419473690684342551045117377155833275900749127862310357003766029697872450813957120721252890104764186316313256204578099073763552853018697633167369555595375785943747784453793261183532461113909456909100727911824774515086217572048935120445826932575617214199551352342339688367582057068838188731516685017476389411294657879661930393640084606649360351746111166987182186321779927702395753322144603409275305034615844403897990839191818613381276170082880009541991048012601848330019468241300733692417559868546127016223066430663472354446794559680878436022531664215851945930204375077331439178962364790578404975350500209389815372876519783532417640899898103357053879713749099936853936900307252629148146255794263564146417151852101403348546908711028546586895856058482586418355313089149637951223803689089968704968387840552075257584794705776893296187936857307261617381548617717669098864667889070960165997797443904184638284911241935362354086866504225181724008516156755669434900143458306018475992619365184276380516084824372178883799086850330233368106345389316030910741625035224099068995922974388185824400026851834476200400199150095465105592439438206941080442310234034809370769457762261942593417074970318502925439074129730767421176745610929991026361589921530059827023832608290460765203700143710399324860608539958144319109201810030817883674579055514482041663935099739863876185799488378284616103774801203031301748039030780130318851424848246401020394122924293440169237914044001618431974458713453299600775128976534501738304901424013782811964097084842718159764928068572850427441205022557641548096246030471099051417542688577161753624736351180060785413324809610112870183042917213387405887500399731003806635185208402318764722397095516351065060093921502986617829241021748796887140479268586155544467450144697948981150255112391181226736329114323020289740807110032083795857120442862267008157360245462688817590320900306885302543907668503319677241618388211292225200334089480406320305691509809927461066078993925608497439575179824570889162909170022620609692635873448521427877207482144137024173294178772212645622966626051310360495747835219477205162417728454887741487253646764720352678146280218991090774785629765905599424891964855335905013319796873783035223596639377978086065107589962699729344756065655857037158820412878979265795949649084020673440780296708385995745876786162781535430855431361731834244987066748319744312057895933521172112908401019523455618517091130445467194246193458809536561317780270609437057414644942938912176240068346589220480132910594604993933388481229307327448755149460133321629289362705514979373798188119190916085927454617196194822754627453498762937590810061431281477706717075881478934366716057772394438910522750353454528122382681820590423065413284293804032247156447245329391203499010918908403953546425415674315774926246982429324805526737087321882625962758747623460093485262863013286173657179438619118794591339660648847292260897321862944004682948928545957109644059168360508070563335718061086090766579972320356767009374402821677493496489587994690011730816180801472583336077473511893632929008661597557833853299669573510488831778341973581463822601270244381547817995471201159577572269276769171555609402571516957503265726946464288176953096648838845163169738358612927606624587224706372650847672532554778643328522094016746000402924038895613236414603676342783946694598852468003668092450330702244147572594376725981464778536637000079058932913649574451680175308091408467669275324289568154776968343002231093268065143156751402607159516968450608494300988559959695487167010972875758292598907964956095928672334192536344323133598238391019916999210341246273353956086250394378281647681469980364705939063665622725958933713290388354603697693503204473855122749969657698581883052147932831407458048217232619868531365376928352514748961741908022099367773153351323165678486824938340390213176437705688196108264580450352589859136213831237494480707030784392798378220818830221672652104249465043774364351912032200704823683861098813470731492942107554227396939786228698075526258541014917747414363062426412644173584290796730993754094132574894352525411591613227328451797834357280225554608853535855301289926891371269292939736100432539427442505386036058810095737852893471115529141068184643960260973011891006648121249011239459206079554326214237892717672776382416024086014582773617933054146844153375994388520492728477190386096417959560500571886593317982538286130258711463390936498308379606948209245290029248091219353674352779528724278501363258610855967180130266459823130482419649259535922459706348557740049418732824100360570606246699968078095205724571328993303530014232745700416695606421122637845511509086708327950126704374577671354882208067980187518248098598216380932387477213070888618944186120611979169594092996224520525257990832188004990064086027827883799240496061136568828778874085688539694792785184031784682885953212119871180256030717890095258767193123343391682761624843789831054794878001584265911081238409042756095511455547439630261670686580244080157226233542269935915005376878062361923845591843373381750686560221350495325403972774595054119097732375341965509885166269448766259919987175503343134470620839874975999741059883061032361690181266471303921452993669530886837298726020895106710011572441480567918568947055962675327325256828662332291827125810097704622834532508863031226985075877486703694273568010496104341371927565182726029277807885340544065992008134128461450523885629022799745539889383865052530613691924611651727320532356012095354966054038473600037908871658087832672352008965532721154287294588612330749516189942928103908412666604719503527101445817934789538995647818950365699926530628338614030666130912600776715125839264401750442493689338977780278430846194159096105713402640815115439059411160376123385621838970476179307953167754416229469673744393394612541674355863439380847675281585241300415712623830954605324178915689038840793226459938094296796143206888231165408106187178184749470920602689970320829704153897926917479151235540876135899575274523528519478517246356181659294307608244446260146819473063523641997889023268054871662465466882895520285337075733897158147628956835852247485542461919404613527006133357334137551624554362938737043052843594792253889849045054478462034696119184924974780884309775386546015887586679233873619892338504006767100175705238779062731889930574784265740697446846661211463594870527231621588383068428943451809992737931670795644478742819271024482539339980387512519423182974276105024095088279517061102168900712834486443961598761319151202959588976885593373506892398535886087911074499802192318781016719270916936771288343194193263972761117526857082577178330308350434138756595003124070065234284298331202468306646129524545869513384585761095985473360445514882166613936333597025768772321648060448513904649078888701649390188676479701437570984436416658323102490301409115158764288930157933740984851574111523053307973490949360150388136809334492912584770863391513393136113100519382510848013877421033894426518015373740839193993635307441148882438610845476474663274654371033720956433484171775499056117889265336649292422687132168394304190092947661185041533503826272346642881681025279964081721249342513139866253059784708302864599557408556549241505908431660747482751560929948482216945715866026544030590277731586544114144320079549852646079308798508664062383716015057016125413984751899205458811208458176528280012408746434258575063464837404170044124437818383860585057563034988342599099638778616349994325667373721803836647105316970926247833585686506228791108048088207680537902279282779652329094282389391398079170015416045893904476362607988189428924501347779350702676264556227264858423977497196138637010191792742190416449004618748352260110454835154559525021701986830546674044613087682647601770304336782925503975767370939074739094180635054614593082857613811361170365672889345754807720390141014613414913257286544601905076619475025643894577818643252259137873480747122774072448642871786325212161115723220430912245169002327526467437284743106210197581957222390799171735928529140512696484621100631583626566543307557655991232633850926734541005205473229613604986896271291645498076836402054381436536069059012710070426933800324423617228635256639315746214787718772754129308061756310702022596979842686242364615907897379208998383130955818438873250752317613252107370731820651293501926131570656706318043188068966365839010882829562628660215420685473115730347295500564262129759739070198750861399691045880325749404163893794167225155440029495510455312914131526542055379011816637313275341351717472673078327065643785797420648400086176732184483050203328457627570729548285645480411119387941852509031810838462258708889562339020326815358977187903503320552775639905696732087388677129565033375794190665212593576867758171112278159611989021310406535874341237068414521131181794667884000422314433401493103590133122779496990790879230445058332278399713906470405938516884244480740641366463049374014989906433958881771625208857673210473134891710121315265517236007882785973321871876865786960681572825149044770107357234575656083856152598292899201186816961175123213714267492817516457969930082872756091946398475138575048763385269735030118432579024462266097405187866662757877586256299240088448899625879234869437636881566683096291574060557721876213004725528953535743904234929726882542639803974265742958203234867480347852329289393070671013937029787347904113933677714173183723551960037551866697857118492628362910245046617288775332272705988990802065143074468359306463333817927446516843438620747587759974387345773907973657865581667153008041196493193086113321532167910583576985208005440441643191471038033149192649813486242882276852082718550759879507711128915094941606967726464809794941432018509005805597448304238950342313929769707940439830867790158193315520989491067104595312147817515178793506072937184148134265110490213655515403842541757992150702300417261320862549240625671060905192941985656329172057021100930187087987557240203477911847730072967424909227215389612593647958846589199989345087928864931623790535652611653189338333915139375846088606794678259278488253915374000276913341892997131525251776062468837299631879481538347881134404807786458039239601002040957215504086802004312278474285026711359166952985187794357613573625140447693111179120765553769977129145822627038769078808805076396591014253335228828789831138917186783515577176057568994079020657034273267538459400728910496242971585838689102796519315445278488829937572626948242981700862318248958231514093092958508093482558726301390264836646765160928092038927396633332908278319956424058549381992171128668074215754686399602324812341609455183222118889357891276648409910990590522342990931806069079378994319581005395041991249746283634910950195077725284233388428327189864518662559539747711790736112317526725506295447438880571640630372529744859964292603099192128905411399273336634544163016845135223176446196317232650956344189629402436930482210717204978095089661433488544620497887685563756303172144586135871441286571375613870825379810893651874646655020922854038105996622279231266033983912825850948122815245995585277877602469560172186549213413146533222122079347980013747539408535074848997350858091986728634263162147555132275481048717420487576782369961587564993204738614692779021525986946273790218331882882895331856653200741077853905584294336459825614182102580212895827549633105363910143205311966494627036559736690721895308780766024445169463573534510819203859332945297777947538315749612562928883963751293583202820831589861657888285332821645302172142757610925152268220550736671657102960391564119869239532081425656739538657854183709083695001065494214928578398723806413345583625598933289282737478053115477593584287089467805713193055261568713667111850198071479115594895955921086235942684555666603298056007026806274201383559487901135716747451672491489715538920842210107190276074419114305678511805166310032258986589180448584835887472438032631861784538792292876411240535808594573599636570636971141163268473694278056486647831391614547185216972677321357056032718076651989113055823371598411683536707574599547538860171529190561260337769482800076295765559777185251887142127667976965567273066207383794188958945215911004282665773072669958640990395833985754633892410891617549229597534462197827094072126249960593470688741244073674791629160029126742171955502586396104938226027505113295487168753522581869190334837301206847125363317853451839625399549830034304562523995660486639743686756096239662837663775142676381431606931432182601892247519071796189337576355278825387167911349237437544639690366034370636819001372540581630211224874688539863477054278713255201561011819605649384402952628937469327694858354148905986946549747778561905927604106749703328165982113313072209293352507681722350606542573695873174962699695149513735709805602012352859264485814644630515498035576818146981583802825506832346051242380982359678373697932822948899536799560997706301456717334106447210787911727370141605167506640242668989353193467176501020077011231660403502753259888877448122139683044914261432378421199005455669606224579241150996249660941408330973039853141907011040811657199447869899724457636848225396107009582884064762356670862949182929507636246029772925991774381661510378129860904799243014480252618498990418382895624833565289013014098366930727610727971230006434634018686933427252177806276954405722616991369543992908523905464289528211877149062854881151596441482659628959298533366234129766561329521737985913278516383152828248918957069680462642032681389496100105079381387075863975665440408579258645788153087954486742513282870730728184120761233282875937672424686748636417657279227618287014484922846543897360025420739044884075834541232435375229163649557988192885021348645861380525577480545207954922148232817548803209166133719972055369837846436587682041558174710914275677357891376502421630490774357475108084570093072577803654820738685201451823112032441698765824322827452282226229290471852232196050444729153459756735763689617798623532044259344205984021539544247936159454410249513868086235253039148118962209988394783495349058485835130741441087477680136167553900067155555530599362290476459936992883864730665543161785333134152532285800583054168032704902241191626250105715969207589816171329149144259634915567634288992574672076859921418877599257692812320306259535704913524185605069709412923368730147647158358830544058141355672386907400250529215688459813282514513661723648255498767583080415930840959387667588420265490007234638914195865029550027863309959954002046573132865189315876417731445464628336810480168237103759524232455536580625921759141009696209526160070682100365781034876049140548954563168162756705415439942038911010524323595527044292307486909200032615808700646810963353433504365846969378223481729858776806992965144337257166852524691642394085455264463138053866755836101282885241373838628501144046447464152189976611193471387799198255244290878165996816279188373170489626360361549776669347612770592057754897787513803351283062512113977467685889759883021533586252100215975419866322339358679611456124466389483188946139672367078321990832093519272763212804879144390635364605762708872831683535214588415880124941084919363484615548411934819354055849682701787913929680705812854325587308958366076094132332562052165346834054511070450599958725311957445320777736513874459386739937222809130438325305056373597533148529750912112404131798002586173556449033608035857491219832471884856999188071184477128031335568469239953431760241705681445381721807579908803684804131408157476811162529693931417417867276756180906543916027689687468396425339741332028996663875999553423677756275646926375611610955355614100618766213643964030553301483321550211430035875124355804683316970984310962024593453320368773553802575421929481379557501174022183465893595854244904730830972741910382327963974410269082125731564977882459830292180461385194432840875767595690733832047458767848387550988521390574757184184500244646052464946599945316730141682246469606758880985448888973736718532521853429521545854740664275066382480842874795090378836892893216673691643962652824796134069162969699827041212154531318290695053008719188831320628612979006062080990353300585824147625022231281215726918703896887971479082696162004877352530558891581558541307805421597827791478188743029284279895744822580054851207193015967657642927625416806520148340546233248855104516469551383803456555905151404355909749099052483295410666834174317161642188665538765502569571155060905812561279404163144346310280973570766513174020922353552976588904157413249525799058096734219103358593677353126891316508357659110268425090657911538640000942405631103317886217785678862069324738180454906413405271170381842846016883249766106888624864035220971835653753567190724077708304654837027613261346984124299620884273294047059140409731164962661049689570570276809817574031697240148579980077844722162414663457363668447447853992504650040797151854760122836375682783180770725476412480423355616787733538414222613651980029043241507207506434763368896770679801162170076870055730481076399017542707027112484254127358250569000369947215881702639955787602303384650014674010234276942329557296458937018343854374746142655241129624003884929374019247698810991262396752558794916862460210938903607086771176237654640295040610898175194330284448811741103437570649723338513958785309890967291664398114654221791116127761936567262678313951970834620494314004078344385579187905710433114436796858098169809459499787878038495316572568801152858848681570088395061739712710326735833922208893745969482575430715115489555624406414908509611962784269473447965925367287769947576473593884639553240202943881605790595511254478816225662301309720306105690966841522507972449929231881905855933186842963992818112896557831122185259402796349750900575200569496476732951700395069802163399864767631520738519349256220159743041428541436475117842111630229837467929231455662129838220841991483830069929027897868777121632264034379057225046866120921911426970865894307751904796920307438475545326505608510576050139711797980101296549748748496681837766830623503048246513762994119786989385419737215312309710365153102491981869645911058937880322187932487074421054774821512347617689413901576412165764514619242242834961913747168143699989962056962906040243218879632693778188925790556050153470269957001251102721050625429356392407017323510540150881337010520339936474803608260093494032560658186835237248610019841146822632555255282567029056406993328517337375341969467077230544915806594449867734057058304928491238361544612780811536229184137159121174537323819079716511632877666946306024411534940430370501802605062070951738077164181319065680406453363197083194721913737999355797643530355857196377862870497476445920792797837632130711946911071260680162672262929446284724180799111606620882068504648764719075907691817014286524829256790300807834137855704738065343616272789675499328130023092729211312493310359799878639123938188399162200565093260193804286053426969494865834761554659045302781747671889686535306877398738712456048772690799432421360360079445523183045138501545720079559992257940000669142609337730251674194444558240767418864398255698718595984822240684075164780891155272625664288070603072294011906536817101462917802435579602918181856669738735147569704981739232752126549588707048135112034662014546418316648857530289078720521556990893158391632404846669105428521689338199772450401782312248397755756320468210493597334101863657918991207858969251619262156068445090047866347476337776896861867742805000080450504186450557200772454396407687856661723814283167158715130259570412033915272420476320156943727004118517760325777932090186899254695699290457734407203236223271555820543821147604914412350176292770941714952560937448385811610141923213369616673505915344923871971222262185661764243072872020275112033036568815145088436059533710451777689640635249245382381779267061920683344893313566656580928299599550658495952251358357567330941365415773275717931414493815461502273270752698522813666783824958689529039493516879631376244004069170435467442906711550174707386812951365472354733097409384051598183323403682250661126860518935161562565829569685903707723170361031571507158395609140796135884486794740855198059284485251049067170329406353408604760969286217126998243179888762483131210927705381060252109502952620327000428380769804003302216918525623686822554732456565287932378809117966347405729285011634142240076172317200732568248719533822468631366275445838020494087494499920240739570337800718978530602632409435484520181593760805374597679033221860264114236420735998188814894285340427286250107926784752207535157612303956175921200468865829470949517804332412221669531149938362118071984002845602081871056490593678702215844718022960263352955486923932335778547426848572240763802772346754103324133933525134779783622942661212743912003294451956221009969542510397184960231104744722069300050704344480058439198378685117694483162118472187610296214960854728434664994726654253117565468167977922987542710290966822517728601457866101799376670410779865047506167024352378344110090352342344155839272723167932266690458998676851060775913191805291326145203742188714656684120086791345702780283086328420326640853611796817635691026684043754385793446762118740162288471786333480291639961099808423262194236428943533650355593481490822930393264141306741772013028234206860902371376722578162299396338019700271245277404845404876641772319066020551530491714609587158620686003329503947345065909372287481084191649707206582079134202477955150949645093511005902962504360725212848579256537223938256677534716173773002077434074211764096803443862653646271891743734768679611968678584782460013382637914448607313088372383524523198561087559311698152605736129394896761972955652082147039192277576370112932438306488648323023974320034592483728532791370951926427366917732146916022371894460111993074077776168075845935501087053913238878679421256206953531992643637410956818216593121720551317321493499733457574485119550219046080101979125932536949261156596266026621673178924541687126364939101826475529981893002448461392811845749813410272940268442798821828198439134147079934172440860098125854787759019490386782389132608392956233546543967655775743158838696743696935694617714255351944619358121460912994282681750657766574569425484866296334195238190008890598193193838834441611696162573471655116741634425012175263226759662692634465114659259208057626423521234185247675037172976085921452860671074238952688264830041480764948073333702603849153044322505374938582781501120697395981110448883153067135896454496054219169892924477911593590855772338639701280074182526979583449615093632450163884711897401354837654685115632554753553883544156846314860830133086263861693886982072168004128396034347151940647550511526578618197384561488043304074224734882877505756263464180453691427961383754696684869416778733186943299644913592883431910816011495480466171039013732315759942326582122391266420545479859952032465155519041683377163611074535802216760121832255949501382476483504360216998707486779418345730109089535201187932228710604746478094018420995812469891520924361981279458384874385712604409386612087174065343975379800689501015256838475441680696967145077491824182255946078813853259359549825421428736462257177493806976405533838374803315639096241681958939081582104436752307524503152789691270572418513501998754200760723135088821780707898635344865865384164563872175654766432991958148188118849450553011583845127855405022319140504088936915251603402570969611914656718519533230523356614172592854947605465427239543818759897505980342104209475180388295229072463768431751048201808287552059936582807760577742725501649036396392804414692652871214106055282048605843787589658265160792797922864915473653616185198832952253855438385264927844102196837809514012308582621046395768093003437789048550176537719895661286334823932062921987000443700215247618985065969433183404659751387764712126675963645350127787528977498057970199742419789755260663311333010785618025774992406847329317189904122237549299341587979442342132946688925264916959784360737293438980949879863738950344055020051598122469823193042170450702002611791683953577579305514988793585119813102273788605944156305135380948673490823938369322986981628968741856632630240303547263613964644777514537781339765134569395241566852186931310050393400936239916677637836508575896579550642281701626895479641130827777695949961864442129550138004250836171258160380868091613644295822754484036107095783812685393993941477326963245285754878012408871349760083094462613609157502680869378408006428460814369594948864673703610290801817334658415844986713989691850810331306943946318652890055430970477781138287919568121269872680351631162530822627189776584266618933565520652079489833742996164138114264760701960180200783239155252611316134422685427673782539287941832118993672780542216432129052253144481686225916037387833148716693896366905508269678590470401547482648745455269670960469386468670364221528545178573205692724964845279162592387555936734831285925884701602883299480683039300025121929505961938716711566140169263229295058049530252387887672761166879081385331035640199875887403394804221500316142408808164831306366039562171247565947615204861795621356094609854106143043544373924834831862880072012205831587714293499023790765385958455144115704686002244162737093002596137887408265592566767992587062209182767286582986359332579583571093362786539156573729767567807816361441002062941677134560004609215084332859045079074495753357056693229411303112175427583327437445425284481438251557283990726131146720609836454197269620121976568482822736561897676132014891621139633396405853337477156255210717003558820173579999436092590814525991520923696670274604982654103209220629179551325866284859086473479010105787258772787905108518356688265376455417230808800520005565373807780661810132533598974863445165211863726241762907487222430436170278203308274367006041063649529377923524423570269316444641537678879156132106230732622441267291112286433645904793123488076683447871439478998991296984143254702815522294199351587623677916433212842234416415631722478606674721527466294586002334423951730751912591146203604757040367824645442825167238071314737932767962677359972412911999125261322997515228565058314212995696508599533748721601849534888706943776133349771054763234496997952261928438577537156891292439850058027480110376150933862270555421939988927245931523379472008394956474305171548503729421011351376685865726570624954363379708123834835784619974263941542117665125414818412380749305940421290421986156642631286010500667467376677457005105041591037669351913308748885250538472060267056693803586009336579339936926195674233038552819682613033917450298899148327044954080348828112417172195664569294809836511442133450249840924259127195911443937588918486468831225152565050263309131587509449600242137001395692747259841852812194058443224904637732085431036353089449773848258532019298346437780463967659469402140977522026271249797235234928567946100015494342569496778794851241151261205923727469800314082505493799956475552870729082088656042238195806922991933320164507582612446816501454963357832297015074806687793254808870064535795955431131996942432476068179711993845547062554081693337291079033449624298584838765122243001779579943203051803978704718198780251332644434730489907570617386236423046498743056293991881827591699978080078364358304930051303764954436193104353297048659488606361906493261500318928482048885462743642071486670782122472669098316456134236834075324975619179454697315786152289034192219738713303736963047302530070384910732452869058337866029600569987197825729690378705276159755580567097138719535465895985806435826085839349539474989608558076583319029188789262043476409858844685522106221579824784380075657913271511653312952479309632933772803140504819581715132792727067157215578164967049895575477040208179937165009785784882487817254115523401429894482940560272736831570741089483962344627965350441330927764871145122196124926655422641304252291725628440538452883614513753461421031601143848470229367716210646484930516435179424445753035956683589039661569163899689359899387883553530235906693544556786556072295665379677566367417307318743782526771838137070355891541392992186838422569766974210615450214087429078504200304980657297852708051414860891070219053582614096056045728184155408854850365696409507765262116261308271440399693548935695141601787145198075248071634487144193661367165139297976332293256700990729839763426990931306583732106628433795196890203267576135901593998366672833543195662310759147110984702802065373487021012697994088553382604624117658389961851321956482850996893945049408320222094159386625634613736023708336567876477594412467443781736260963931537478559909584085784842948787792554381795260850454935928869512777426261984994759331576259773058262175796737653416483955841846594241386370978908213471438366742439977863200068308444313580275717047151322858362309551021451406878909725292489655780678443744395448160845183891850860338104465248383448597164162898101904942770698705598574032271516226767547884988158525656340155511964726546321700833035396792571546515260665260782170980502995455379224364660578522355099867078135955185263326005748698052017925203301428904134395066392406679847533934243147593850198059747906767333362541386138652682911395200049598623749757942351748418121110769438993928283653217766898230495946435407708681226570543086684279715901322832758996952553742465139080675585736317886228718764160884818214837421617632620644167258505455262221359495274398541036116982130474491480222070422111010240305167730294856887311523102119121195515623792171526179369223561420637863623366942624147729460605169717201807701413000060634476035799787578233389175431100126927497773438719735101763873350662054650681930278278751609845052165297262079650639411276758449420650990595306849698897226124974079893019369656778993250824255509385422925426480392343906684323588724689856993974277444411092084162311218881698266152587884284303547646332052980203767464415407287379758230065106774014320461291851713142723853017058094995318562869414893765367636797390076797570344254432642533290158958305233239215985856243088119489661148828977658422693288971289319956965362822245773248302365864340595251820259867735025146862411269282214744447623075232430001113342670394753885100953355889233634366142127518076486837564817008986156289104803427338562998776991219049588499770937474612158399684432170704396957989444128434734172351694318552711458576886757971240772538889459619218110717407828896233889978632052178968488717610889608452805262720883979933459415487705347965811703635147329040258047240096142404855953555651792785955211505813834866150552277661752559836403496952171329572439924243248959171825344288635341672183204930534462190410352960231186676919194676460935832225154235036670954957223755589201706336580820079505615558590655540074139080819279598055553442831837260203488491395870529264014625131947502932990221570634870651527361399041761168572199896021078999299309694936793861888126743683196229338628227079641370160950957698357610179184298875436942703853925753074106155025659570580159861774885776819508870160661972442134757286883041121669877045573433164790319394947486933731461232657089173001251063721055244834643113664876142019005759987512956116376432279416813444555663459089299688604983805307801580352713319086368668653950624907457821214072172506032523307099801732367568272223431643805990755734010668243480910258077929933158662096064372658286776142534931372030996822112032206700450966257672656570100096338354224073126107075299768472971605545764532048133126546455802338016497508201735211500261380579240614822229040324333366089560701105019879016459958537480311816224053506338991181164445181925531993613554981660531364854293916102409521565128412616809686925786277944127626362419550970233422378373452904742763464048446473296947962574777810090999041090210278486079763167756523462046446187275193470749506075063335588660239541994067808137787532374202174666396118241730944022118350884054914429376337287835603830566913133612130305554096483653324507546794819978435984157766941645769041853366128200447652295853791030228064669325520936499912552154501031981404265240634882831538844878695229427968562150291181139593299549849698596656357909191139270694859763601612254856432842126901805128782365006706161904256835165802156950135762375384675886913140377533500336830260589514721441301141630792474273613404053074988421700015915833854466552573949286722770290136436839484786618956259168158769800234182224700476854905071258106191025733853880297070377126472886422189922625593181786313692269670172637935463277441344781262536542990237586328444821354767088769598174690698650594373242759119590771230031625260589282428331755166879981756289295123095709227155108346888337424700141272990139190114944219082724642701338782235523392634246466065389597144550428908621509644810811910471147046310320753923892919197854033600927096451524611375498396655005285167977614144958467959592599901002533765641551924583637039009174175500328066353725128232010553652570502468691756084966019333156023369720794890122048631829481462217134269512935801772263479836978030648546861039897165370674928013677794837404490448884677644987139115335510252514641650858405338481548176336189723798677765133763396003880410461334548076219730456268045144329798873858752329810738987959208084410725806565399967085577967294054395628424849699157780389248416549116297795647386685650636199857377536014350579579999943649981033034993004387579305937408204800018997762916947717733276902757635798251934228257291428784413891670947830307507769956346449630845924356074621503718291994612985229551539566371588114437082183180022499955919611074760411953330988801548310719884123793095135594585173064983077517140496685391619899210921515844520034900145408821195903458107232947152811851138892525703806260273457835335371389209082677023139393472907077371466876177778528154532861836008061209774102423029528032310191750047122142039837263363070510740881547334313038683254514931317873973803878938626304921906653587175389940636483145244570850581844019121158158324101224201621451554818514098425411885739700520409192403513393509664637039161717521437636331150239956073516847290480971479186047033089545638005085382809162840428681120379440675407552876639777767183855494904892465092027749733177428083424700409900268030299534292061059251586043805945477047641588645300256643891614679672811737205586251471720444582950258014838984568179322581018998837885443080981459524592649432526283391485846072812484892751895160830853081840591110974031788524078687315181910498987742008897548986917498877890466098791391303110595133220483858249724121316165076369373453914458473434710637783151103131792545837704793339258653139011629042343992848855685508488561742952422436563885633435771160070782613317749023998995258079986944753148214847300902759282823525289852916659757230488135879900711095259194447489473911018607836553022591492282005700004060569165284278310353612138361768257432729160810204209520975381874623894227650057123750569490679483945307075244042978418578639566819402180259878285254939830515527089529654988583338598499500238403495941332886581928254903482146634848502524459670607052932017441072488159424138217892021401331638920786115369073183385574958422533607898950290320593591071686816217991907465858764479770630034296126909320253800828552285480632685312980990507254933196318642446240250316062006817478084408900704184006979051450377589074717606100409043063346103862153905133736568942095526529150450386149716399166971797003518154513134046979502328882139395638786463919428711464470261228568312091689176520645893837080431325054352426462088390745889602159730781218548185176681223806823518341266572581721921012102160273834446544987043433002602782897605182394099362481454223057326977048980403527304260034216720218878990862649212521913953813784509927150678347568799408750510528001370111453943229631845524380885522525399591186174819255740546874745907536502357312586516315675293049747562885694072046781016140681243261850295494787286192106898479890890517733981274628801385888202555470012249242348647529145617820891877758043250264451773370917583658179943351706268930053023640156847542482696870579422085760054472061724514547355914409364725660246456039786763220424665644631866336793012216808565807184794902243064904845711157328935084746100323359631392243226718458382831841186412535038985574097390494822977209430135347088393096355251680611321624179963520856766081746728557294878884886879142935626479131002239807020067055019378335528095506104586862033823320877541203277934853226776033935369974135177749411900883574117615795158745049346866739647194017865717669255239783331492155295048155150404230488385424319892311088182570156435221144560178572107985531084954047725258264547984723715643257436574942230973369828077144903806283945596564875570272400492755081960064336482880410119962401175078167800433790409084829252249752216594623266198135837805110709480802791023357983636909659904032029268486541318799115390688325798895517134362068252497195242874029161604415405866866046829269664675093965582786286012061806630265559450892884033268008297157875121149297833459584203991158855647887922073786012729074014262179169966680861043575727491005100522334618729999920638786965760732936918095860252353110386044172452675276929196221055967855553053042678352584869543567217213913856838159637297310074135122278139946404589871200983639358531114796892403247030478296690101258755155934006288054078957579819360734665749122043519123492975034951067318407782209905923683924346565922354756373224430664016020677880550145600475952326499844047164811488529256825408303116058112416183889507278784548835841708303866903178966487230326162366245546475193071206361586945195516005379035528507592963612220057509974022574848467011005926148503746212798565640658297769359421120249615860250575801343843171190409078749951225249391963799769230689972236665322586136145089794868192768526039186583639611838971142890092075895993029552011242337165712730698157312996823905323461017173692125009821561813971800097076045705708134863445867993914128350681878241420643191705732422906036299240875963104736044312976346293311381108471049164036490134472476352586829076233593402560633455429082263207803000069517229847749722205810528845061959284638468366016414735301424040728327455036363870682239576394980007203256047487953398856516273671425822161415334650047319204062940310256769818213468413824748861017312118806771341380583856972808549328783164526469207290844333558434425432284556560279563502576088537242003858363609448635607588796746055729072887956643016710832012854378376701453801939321962976022076625121367492889051403907970117968578416770436963566774850309142325615393960261813077813708249675690468793077141068483325923323286429048505328514538189028710762773906607584470863821916944426923517184491631076252832027746755969204788813369075056883043594638909299647683135372134280751438208980302160369192927644702552679137771234897747299570975693218172293563107760383199668430418118104846638760440607443811762119332761048545281023913415989643517006955185561905861527973123668662847568723622960137263668034835966151531036773314332251871012662537194508881469842305355110215964621055422897335874811617919126407029532977484627877575845935788695189242833104058418071198997289720729779410772070389489723199758274715502397562419215510991042213198540647153701610895529571568377199904224059960230147361663536858147713810776826823668628714881941582404272172871408162901451178101241286509923787728709392988422042634608331831826331787738458135962608454271461526799362007835184036171932005969286752322644773886269743312980881505645218542854584260984833304780051825021501769429461534140331583270225292136632404343049441525302755414339361095928887379996142540675766355215467458778792420741877885734540007951825866953642377196092874045817201375357580569674860094719411809409860370288827345750532847020070952714320647778331246089208208367455894672189467205066131693748988374895350676386987755141986223827738168485905593067873077419736577546267146216021382341339689515557160533869970227645793729363392445714401429181585602455624221192096781466849243111010145454930114812866946232704635823303518289263883361949208233670268726010145970972718629414270103939684455742104269061327573176139711661801428852361895159341684428747201399065872907379885029136299906753935258046845101413842879306727572605369694348524343595955984762345656200859209667882201960182050354890999453152595221578410600599600414602851724366243661382778923651773298373569572523019700984832027838694196628606337603017911846314125909700389776436181287691011917950518916639098089778849777231801943541047575760019321478987187771320235775230897639652406109214882116405672966788250969189027628602434757068750437291203325784757358995665446486117182084659939699483797105114236321154961992312218662531222859001238520891307181786929314132881057595453124469634735827132455873017653016451798233160380496169735240295347992639090192727098685370305706234933058553253932813875265499773654039362039435575783048118972514409923852564805420004988889163603107281508076008564809618021717903560712366321657089050918604590088323082611659628719017820158324598735155507994830649895288914800837619374260102624470968861552064926744862038201405154969963899749470079737016534303021459415509348466079056997335747527191336667522167568282209723929773190539499586606664418220518595925239587339162161150946648779570373887216889403308200049837884171146113170284796461870447479268301656621194260618760234080520310664276730938457632217461511510955792687590641897780984819641447331360377129212342878405810592669533798654769828339758709846844317379670643110307655468897428040782232260808565789966935576377186330919713447271382014226889676485390043533714838408613718880299672786632428150376096583097833672070433921342696359834528596810134188252141948352482196950580182920354771794108843042906353525605683853571959932116695541615149527373254989869346534063098706477593419300731294712175707307150419675585456215322041473948377396706991464692313165314149208262746525573569363182333455738490155516882858650413595995144973736093712185898728098024602753415553367028044220403610125425575762430268056499626707846342535290959308358527228731019177619040680490413068375731175357203984882609372189822645936816766352758841814774709492511134547071020234071702813858471875204124140307542447601270599080881085635387408766191233238209433799311705829610637038803269217229365773495998703741574179845072398853897076944050881774075035293528189659423433576185320218047068676900222482015650127935439658170003902987613853628187818631416731260813663158217978455474311597231059609317309655360652774774703553934525539877154456225203662500468647583563907631518729546138740784388201197539003786736423527346778726858169132229636614592309586663048342247905791105054511287406854610545790502553526146899454154902439141161493730597954646028337655050531807182317013320015010732820495227368888190169663198442886093921834253080461660109835610056690023461400804674966136307237986124862498971763791248218897342189115221842466385897784774733555680089733739003949509524110437131241170792409150924564976054273093930488817611560778812373145199257530897751564137797084614126824276925859383268581086929918657757781274899216796983873425736495645624571273761227861125417066643764307269385896622002242021719052417195397188656148988578841497670260350044776327443465077502109709873845987649304989623482631253744966808841537577004201580570856388076952303953392606710754649564768144328348093615199939654677683592670592989546724326792539892976777524589841165138013599346949577720010295827674833175459041437055075992698324753729919182827757380795064189437010085566141624241095324832207302631181737791192135714930967834502359487738141453257172350907087010501718510953226472252823647936360263778707505652946956024029662854203389542314208713211976754783385702669396568447888561274537070837871630160967220877561935676704418419209708317091609052995920401701005279939695655386435149659866751362705190044225516003459283583432702558584247306281789881881345778470040166063560319866610660471459409644543089312439013806376257917763443221043369718933117106876625837446637390600280304545492521330215703987552807948122569768582011100117880782441572253481631009830721267587426834170402240348116415993178301383448524703419343613403117364799885072221158236297807800846741213151689521370760501775163606879915152812659359031072243670613302663786686317118209579474683098837780287763420123012747343637926685365064918840520665840155582630506915410765580270005840758154957507268795256037489215036300634689935863235462450087040203780511146090247356051459301443736874452741228115391266253819269581653671399395940796597306075979766069361612858369857742437282414693651672661201642274668730708215689387111002339390994236931852847144422051068124413255588125845705511928169048441015508583160166239009780580432742316009803283696170448848161541469666727414281089910988036940551555854526386799253159884281579127128923038609597638482012622940094243848994755129740122087018545558339185725856933829958945903938196968349207870398759758763999254240056838642609550942266806941131417669823950704385497786794665668995934779408909155420475915460376427613200208083098927977695159143187812519196520733634437342248557236334092201146178240620612438739712502579690130603515179471251441586766362865220882846278609103725630906499915626790582180184313909317636653744860594493126434005173589531882539556345139350187635698436275839205721606357819525302000466273405138893831687826238491560893016602542557292789749464355711111535204671527265856006316473867896367684766718928215229169436267142450708417194062109337032083138698495788466543937192097332736112013655819893617682230591705256701914908568329807510793249637049216177649206117229150341939894287009339977512127108656868421824496565970928804369079511206623190426526036071196446681258745612327932958818818009154092628242568211613249514861061964061534834217174397961189926371119002374976045300763758698190578008994341887522619102655868055748899699666464130114200917608323692504649088442288850993767721089168570010545638495754702551551390975783607632798041034852013807224779766929016356098268357578005694134219815577896341505603224134384195033509496999610590075713991542591556430413375278960704291449162306255229444458317184362280040959713546114553982081349570503149034224807288540580539391698920503212681653267806604035648275529068364650060369811825803150111560437865032523129049394409870363285304566893140007367632267661017103602900196618163255923856149645547658758825473655835484824229628216355649888154876126136282306768133519901505225450899699662757922126877013627929122600586799733017349961668068700968629135180896699822242806453065308045060288622664981176426198251111448258147979837508280654818765392760718120745062840855000707397723662427537614263279464489039217779794500443054802670097867123947477488052153691998786579629398314882099133878122924557150865518339038317946182209668870385202135157396344300610891522950778623868188980649829056769988656810392521619407608127873450876748078301060109615409821308831917512586616673147291912767654701891724353064731253995994088386194301524410862630591776349715706621159738394089299522511083638704823539689871977609928367683641351574494527556500097745710951685883390468275307526311287144442647728741929569868241849592123037635128769480434508429783717324602141143703936529336871418398172325600900650362400574853200126295895146223602018655483569840380495299515864464421480652737906729167054466748859018943873343819196504205433243211200889906701765843112445343786430950239487135142421487464931026153423804973118850077490731431122266126137932116943043302447475049787239457573237268989382504958339210006259423518768326396363887923581329841208879760178512502023202402241796037715411029583485254611103301469874774868775279584348371129610097376750701795960380033313689482529344482300231853643813918697128400034739415246810729636785717787448392751783836569224546044546642550760847755181626121147790244615127640541802718990854308034725839319977752472241767330479170992517920377708725606771219383138999254704681865774483193431499307497150981635003904279659385713910470086824324595934027429169678916223044443103570986695194856281383603044229976887187833925474454093993926041375437226447390066732583874215651991386567727574309993534206052056085031366729097699145646788852713724509805734860703342614095362957933292986672422279345329559608289080374639761728136985143139436649589238404863412379635201017451100631028245000320194892575718223878613522140215644425482733416273473518279269173706316064618101784145952410890014370104530922086764776439077746305175448415329448356061788151472792833162936034675786780737946081849512781454299524209136186729677612717710823977250485721306027745363864318815159316145297561049914461155534402967825892768201518145541796763902175133671838464683279882366343734549594046763108999247110128015782427430287673971946491593944922029084105503542452030232621943918802290500064909398828306336733635307001576279587279771606350394056448433887857354980647830907229842059688606654035519461837455605653314357431921482413933345270608648339144675038791785578594538093874765876796910592920493685473489002044474300341416391679427977629533372825306520106122892932405320920153943110280856389629683091267226535613995395999906478681622960795345603913520075710516879601040890725657219231974799554283039949723818099268597240887404955539367500839356756317126137188379874666044723958688095964282538365704986320398054163456512975193028013616211548913295228239037525340886884126175560235259394070885124068858743097963366635445213914877291143377832292726328823223317672068409737650616717930768940638501588474457618470645692240263638569854656162934801927888755211057925892133441762474436869055593850249980702028355416997585749278758736418366507874277069424417505894392651331064663890851717130611342071425646644638635355362025023818963061680200345772058805125874833686565836576844987220431564774110963318063013287873472106163379046712300972677977468577871862558775776731085053550154608796963049680636774306754860495506563592321003715156588388240429964513452342520562298902866674719419636359338594398745077524467050142941419974099850001788250998873508504304429037174453714810883589747212424486882067625814350388330176376439464876479610063246108633868464656176591251737758492210071680775228124847549178235183562416162660001352685647459682626243407503193344591810043066920124722902513583469769505094760938325555384023288431517335352655326372596044794655891029614177171354291244475071840124580458650541182211628368480706594605317967479283286856717295426676113901458814289232044373600759785290755716881085156968633985400409122388505286817467575177569664645629842191620389423637470746172500224509625257570074661950486243514892007029671134859323301499863520501898584957116826740440571771720445906860819571362232683777778508949238542447478580675401152396653083100180923442229894075104872174118787019417346361919794482486756880834662473240008500959659696974411720648151449816538334287685536726275905487445600375048444609963542332273297344109817988459790378461895716182936292591827207571764340607114907856715903192994268655664485926062849416278147070917781606169044137221458997339760598269002324026481875129943701627779595294963181475553126028684995253393346736610455287841770083601585668248854350042740008267590493118984491936085718372521320530890613487284426041585415183837946675093704528715680492562426457557075756478112411180719520174411215489266055448028266015758992110695684695764878212050544620493379451004512474018503144355868538302208537234194163202525933787152946905766867750744275527463436621910190232584137441638263773427471771688523275865704789611057826773970785629993337305208035679083003523148701271346803795544922794621251384823610471507317011617341000946455462137414993256210200027301982626899236581433555164535902681671772358286652664787337631954349170439467895389603429590166654365303894214330738213185654273893034316993843686459641511780237139425198857962799811184819719680424746674065867695996798190219568761463758138951079143497421135818436172784551621679900429919079999679569171597443711279319046070652135743494220176154372101981906770981204783794841259480515139208181506892055417258457080065757814615980067319348108244411475418229150213911409499821059574243122345377590236118835717670294941026851423478346280748009767402355150196484732979052591515766998290309722892825339249017034616502663756054519055599759150697722072177516893551602093557866524240249998879323243527736637445297061207519290753492040847711812347029100412709450399413284900005491487865232354220293229610949440284477187207167349320043586750295252947093154012309683630376267449782746101819319390361879802551753451439029007833258332168059930204949779676888421560298252186770204111331540615457368764794386282150496472723158433579980439500588170434192944363442594895555660132297069156049850972110885236297240968910140386194245900714273656319639059743485175020897207600619632566247330072294432518254792967456285515024438662868626559180290743802410681391840862650527640137026665925763555311174345793428154891177637385680728835579129675255762563281313092424236869323487927958535103992940065560813732321472799924291728042071388897605500047784244643003190224826905669387641411425098110623811195823071546627002856980653250274800214625287093242623912209314809748797582581045461375605697579153231016081410473888880834760150504759571036967968345922129304780645799118897362012381581456491036620492289280318914473216433298938945778913243715370687690760133278328101220241100421961359340558428161460806615917475475323073986421219227371461659482747608048920441070144511393926974784069644962256154938149247319587207387842956974498502428299945764917944398354543529119439263519386549032314143084730835224319703601633041099280673336960653453685207733568412611205466783537096605364449188998084883029395600774944227752900831648219685047806781270094678818938442497352721879912881812223878637774743400372689618606209062237104963269958792467144596728581729287151815235426474591914011952029702731842072108298708401043409245317436182054147191679262834292481162999955688907228217358026687685558515234802918791934837876058916649697913822220267496792256497072783510748885532990091678902540645821147745644206407529733056819450477066544386980743042372102340311373928846361280774894999984584824440346688618268627630025967969587734655886826727111473516267771850053894499027632781305134914985648850693940455318948144962809686657361440499933061216638278785006224399192231061723075199827209483280938260395122967525490868737709152360911855479324565804140190947431981702321736908815105444918050062677369366710339233586833308857566670416449670546669600216441319269899744221434071040494362756875878629626796651160508888373174388424376514012078230946426840619615213951599187152032989939584844565562674657540131301040650204276281949610785318698707944941318589782603192497823090782962620999159712185915355795147985098979664939293862481886172556984691806717287852523398167022635187859568742473434799243557311611081958005581873668145828864628356397893424789240062298614773784936528947696036673848775311087231420554098349506197765184205327680339644581168117044497393793210153688779849233682835302289226918626451794404750030198319713179792535591431773990614769763946781705442502424555145693708592444127219401958473857520493696973879316517807720136087611467753878118018309677312295336325273149089712398835342827876761974045503205221596665303037399537028303027139394839502985081500293054343854412334046898545379564034179534458997054339434666129058005235409726523050900653505648619554164801119304322064948623072803675098833890321087339942443619435539605886981635446566380702723586059367752184782035915861739885787472549277002369017667008802500339929667470140965170612012829567751320247254018343425941991380266857211507918798841305460584991046140461957491386869173326908938648908468187990609647736617570243215131932373121529060522076078910836912290247246064800858394838965320709729388539267475223617115577513453145284633786617027724133171760348125420588582865258823960213989663352794819173858506641567521842711668110133015840239163794386792055105161837246915151953243957086037472068860567217608391326442071245100336453883054320144405278639575456974880922488770561896865968036607440931940596227603493207018176627773940511798007642254157496092259642305010459367848519874903623130929437998078806043345757333148992303236009753579218425629337571497219402592543302223892193980516402909696338742345912498144637827870769924979488741647535488413437155113865520676000326022124856007508436980454332890378363678881804712961440488563812522629971418126759523588851950475882394205240661957945587553188716261609418691628229594184964771603830354883109046556897162012587555346302459020814366935280817811692288546087789003247696112004698168827308708685357037731517019451543527263552137428634895297656199606801537840267855364998886163722990843896380829839582081861199109718004013739488883986353065243650169490348863227212880973054465135519319389496420713481072651798786782950025543232517054640759999368710456453928150115183810732256570049503597516175334633339418280637942307958209707738557779069635571910580139334005032775071549677162736713826761539113958059515775893498365118880856857828178927363057102687614706777861326125962644149531495645430525341617087942709449076430108679927720957353995870435002154533355953695766135880011379606422143456914774123159830381074523527927250364557109941734277077307852646797460742157533110639355576503805534523959301306870383473996012049245503885894340999114972569684148824516219007046878566722125418237757930971962570397737314469930062072642145781613257140743163693297180963395327412257571023120050940948677883996981491648736097281131062183242481880458839277887627558422909943692020828503382281562902115724376527114865962847772049805092035341617101762041029527113579583277593099436140447428557154991910901294701620247645567171462951001284068459496587229879654414740440179281980296748708964305925266690576997280506815165513134144968895958671144217155445275715521036818216518938776435079352324515169839500330467634532438112330318388072077377127615265209329146383875490441177508418047858745292596969767815056071975738968119898144640885339934855438361781560034087051236028046214798588681980579544353490791754336316016151370411814137643915215156252004368632322012525114592152134521476660198531882261718692330268770438146129235870450348082734741827704752682802991762328789847268478573784121242085125256881641722146756800544380568062176285724678081549313668987502208728680004491335742466224009344059938203037364853868904124053108529963865982484643469351170389757736970600178455968129506567044658574245243340233144269513617395784638991971919969458466262318183298174571002880693562907269940367230543582782041695383541987910695175692289539012461548382016441983911261831546704993577709604933468778203384823830936590080855312875613656926409302786577583407430116640938882704018904513865287687210941222945108773336900276819773352056193174929491799021998557411826947680334059644275115401923484578473346550693523574467258627948287070629769518895284719966906715754699741427760022006810002776573791669528777755578592866096251146960697709795650650839955419147264851598930615875390489252573206869020464041546611112780954690148136458659219045754710949012969470950994001360674487855944694765532050941873274189234549242719472457121008780085957830649686363569371254675560952057937210095806565600578047373458199439761310225608621365661992486634514720240884856289560466339198277063926064652620491665176563633554734005324420062616803551219292367577083622666880580655235910531802007926933246316036547656670357005520395374507865941298155848040773261547654357758841587276129234558655216561216279027308280777668263708248196511826727194875980563560274029017801494013190316640202457102294992260626303518290958261451617572839868469856540759273115952914829333999541227923301945975441794920418456868083842488750990896986559585002785630986183648892305918201408960619452678596955681763436788181309388810993554610052113774548139939256366261409603732357224928270244773849496338621470493087636017736983953828742110326464670122567614275614717990635174235650746468324763557610170849211903325410493990767496708114087942418640561117831559291926600596656104369712739792906741778996126717675806993407029140884995302276705263413150486787690110300225340160595592422014425877840690661459334723690330788559862725888175406285912021548821680098567060909413408948080197138803706193367166356820413127816357813900051837171575258470509306406609706695984331352054693581795218446287158954014533863432088594148267834187954344575090897955987915853776522026720123659589356115576500831488981912190258098484565649631280640209350099810288792699155440913106482406338262195893633818968749523503591946668312735662523983442135260023450888892728179968949958765297114186699015258348147160401527848275259170369030070108793221327985325848270623702471587583461385681471964338022105001093403196349208930281295727122026091451567082080877313103576075836929252162129896463828355940547978697133817581491189687328156444934892201706816206572781839365534210544598507419765478995366551835010349794657569387484521113168399560011296074856123578039244261740626223520763220040656847486926981779406974742154319812515767076219831260006522021862135583711045293974490485965460201812122740941412798848207394691881016490412931949860890871705905557563044798416535504412517205225951674553538735216132408208229288379416479421957627300299571860407629493352115512371028574928138724567546436360305205483344336990700254503987093760714281486255088309112423239764122610264990505549849095547720918233957979127057018777143949782157727804152028844642134874733145650679308480934880324926038849977944899150393034432406643004847326261552805891525798609361147482061022724295805138286168603427213577217613264508410732132961948720707131941378878538482967655432459793098762273651541060747729211085068481040953167269743860835916407569455162226832834716014729279479432754647698834798226919295893362060358326993286408566443364837289338329834017126630558002409566364820090553375278351458560347840720075664062199073631921203121442953383743957071287950644140173438621513194688797348522928525789955543459343135527023297046185577392161541455389879132147339354730452043503487569290585698068798898448200865689639394304525488932965968136218217895506082192661872601919076504783546977291379555132805710854855804683744879702946925351102512924489334157315819920325021056408646845975115736257016121348461707213371321658994039876420909180851294574795294296452941103145777695921515029534878205919652007359046158378641941678752751863603384681296783012303277027560908028862368103365146621189133655090773524690296546450470068197511616148942883456637511401407310002211522052790684530924135129453074386466741536687873082996233089588448155975859372206650878559208946489265268507575733244866468581936411498075542184247896029465619990188099967897387068342190435667947831000522255420300985960318174196592422109998212466986333301534392566974710185414062921888561911326374403703261841164602227092936484908685096135648737894500602010899437659476182773854379157785824321229565777644488922967593870581489057732319823792326861788289188179730018374100845543136314814227835216734193011053954398781796426640772993953766615760801387114284927091421464652532675864706497930188199988113153974671173412215944856521576368976840710774613656189072635059109921077780211688545183392198176760076229783424445154649672836628533789961924893273833367896141705418110768671898684051396291824980942703707578245584757657681741733391153728831934687528535313617237634846151076518144988152658248674299017696667177921642634944023780547535685694931158244530386297142920043030639195698271386042217127078716287322944696592138825763014450709889609480087580395287531788779048790514105543728941898393009105977433742088567621676444072100409779412285634261529234558288449563934223856411156781017508620709547500237574257854804984000934125114565178066213413241835757344572091885089400076189974876171684721102072134852302359387822214485479584981339439040296325235004520426910106849003194536307907097542253702388414778261121809708237013073010137724801470142606210944498473033691403766566567557200515874400269740459361231600981319398645226404276963126103528057592034833101860057342259414082527432982059577893847707697145383528997004483966741737148121450832180462651073737884469865523973240027412228237313927287601908517272014207076376843733228484797491973859966112089475606855627084121740847016582317593285835655175317954747873505508628631078437121559740059307198678104624371953765341782523224133084440244476107421602480069064476219962346014897654608724225653652067571175616253491388454579510821654946427473036745483054851047397267146220334127851324338437006245009736664753838343922518946905931252838102091449325349619689930635540526411242221654942696185568176907161953878026469108262752110032526410832255562568430627500924356313282997956468768344259684703001504238882097414496646493195603411489246270147782417050462752176840001475019755712528837877865501188435567615152247989788212302861637691133459378840814957778091063442341092330984040403160107435046056761746896366901764509255101908285199596811770938713037676828883842547248287399379258483144190061911791402688746542595443285886153767408944817924521229957717216054548504098379339067475483540768174206212745330837130406678365220809562355574905753898753976889043491735057962496517339623526269340627857873407419543438622198921472724372050813158345840283170886143329377832778243977126499702087573507276460408100511772640179695595849390224567342529049015762605365555393087249128273030805792554324755847573886943043009123710260429579997809613186234367181590255330141582088577515774841704671757748941122192267126224215019844254336715575813943719792838262917463616904324926951490477194266390831910140465166504156721148126507768206191349038472697438701731732082412585629185933114533701377208507292422730192776275230831437928535920950461700699135542911494378269899165416909984180219913652265170481484658548323415708028905708337325097120021043634043849632078989337838912934287213114371026772911183547821081818910747216596207013682928172701870791230859657155889402020182329132353186668736700312759971406333114425825371121118002887635901729320183103629422316811855746812626035567614162795497792230412354322355072513603526601449922821040546733197014388212351093167068722099329046084203574532975718739987658838746236011768009295665811085102346440031900346271381787886792807924399616113308950020562901048733597862892039399648613261356448954540884556440555515483361749910007456597140628804445472329582858270205083112857460850135020444255354990284978513145744298925954437712493612701849516503047476266835753111535272018281619759558225876156509923098225619730474721932724578446952553010067707564710183662759837215381859403820077572899962160563427121645094746571001026486252901725508678812704105945696117101087230001875775886576016108723997123962290521788157640267795736764191403111997387831409639402891698917860175311263891418727065886571084812397773039289296419251184377647788243693699407768057334057142524872357929063941524785058614175680256450756814865620785929473757882667607550840100146421965066303150372153189782672366578390801772210810616263963950707532594258529510108168500779445266519826571599310381234522957430924220140712399701401426673852277135666073154509046001192872027750620157313733038334497766566594414204711420383429117276574692177581742464021123047709569602813467205633733038662249692592287467627717193057318479644122214199763949080204034215322093368761088493024169093351857212275701232905639328696813710203366308851541499514579392329777188793255295575024650037980351835203384938419263163384340233807709988789275325136815715935408461444040309366939516028874008194900474770205037415226647525471022762781981888744937560935261289765651033576852074691302325968049656920261027745455406502444432934720379473430481577334759537490943045510941271368678570109927634308074407141909861870166382874775050205133148031500913139828861794551934163490801337826667097427595871886007104214504019699775519095596472065606816257186337314584302483779266176064787055172890906659793314974563082244158698658187677456941656453958743417294641845364604056055478536867597134486662986959501603675899568184282012531550670304249915413349400426146860796630543134617170514571688660987983670619787830159142984199652605292194090671810174312434084094552090820052210500910714234928817878790034419408905857843898083129581393290054721904949195776097915810862422330153243051614909698994420979970938917071869989011079356871803047331360031594622834251268354961782478012412431947783429324142739864496021616241539986013974394490060155259536481794793621960998956940907188778493938772138583722639947358386105258969818213161925151931832426660684637611771046002188317840095957885004743229728185264841121904761486910329820230117184691614508883045299245343626422602986346701436508501151434422672818426645708621030559141196842158873379896214554440107552488565776530153044940867208192007477913129719081061889366398080556172162972643029042743102388266445374108351992607425429245664287783216095349645067150055477951096289821326361404460246884530644196773342405103527379331887930106340600536952520092384110386660616054477523642093948920673030100243984091495030042216198897496423134079074860822259563048879175615320084931578301793735108721375797001965974998126572086455317931250231891420458177029442619302097759816892519021991621946832267154915370162979730592608082139139754888229979092589628070520460050317511117205615076718366578913403038960122980247154282633486694225716199181806407022235388768593595625871165264091410236263205168117687430925376099424609918001922783668673801418212127262520933892567288237625144362435746437799184726883658662735617767281690358172024980136774819735939888031816312734198003671256925831503969056661623653646644078778007368726659176825173163560740738205981311037997811910997888202482669450288275932277545578922300070686849583031102433622972056579036455211275529646165459258265973589338163199275644294960607351588597189167341193503506634529840197388595489539432118453274159106370972144242377232720922169570639147317796462204488032353531023887249329798692790211543268454491043998506859941190576006031793466126136585560681193887824173339647510912811977815169943293810738505464691418692302805010288215089002676304181640799942285129326099383309615105408239478909130784841711284209648470159060002625846243368329726921134745329206286359469674531211508282386521569894881015835827945958652637866824832171306482709467182851334602448496093896154348403082342241324172051380716406012644076698158847652876087224047553395746883711906357621018853476575588330754383655166262507939705489521440940190011330937288430841325789760776699409790464545521792879768292645189165351488461134350509083668759609127006978251479570068926730698270474841463764212492563932291377224863673881565607681836864343465813446900043046838577357227823786688582892529697249693429277224522067446177638142024001558254183702026738669004623582331200132769240542488510028619069929078503328993932001614250256931080787963135772171277776813862036290957691539732852527986457075512380746132909434271917146135509635400026431722703960170842469892828362985580778935019242214237822377085444250832200365022895623109177057557084437682045321765263427465416040206942786260158853911109775233199029760170223593097370348682006131999902796065091772270340184976990479935459941377463068653158232925250669934114738329907217448787898715979424277809451619977586053494199638742402516012860510662453135435656169064680254002504270762747752871166318547847240487037937096120439427328642402895716330685274306988536785888820124853015828991254065717822030329358631640393145005591378318885304652033563348503841168942868107614646584000771568342805676480012654508869493580574837594093287309763965604505098574787665355078796357871438777311985802965218644470378608632343376795158107920488254220287489241216857056418443826200435409952764419930651693956560715304418767548049566479200259754375829523697563220018664917102680487002744187517951764913757323553747926081612299588636168060740313237686982861657923530973110138085560945151491183799847849779935580400539213453756361073661554611052406388358434541993196180496304285027494859666424684127814452382091466212079842419862550837662895381209204688364880267646417153719106195076366545466604461287276974250806783342214157826611034659307041027528779726496719989825296412652068764334265969358425053112458005886693225132928269830794001657190209622779386902955100040276792246556232832321686879102760344795587243765976676439392030511749759735665611892301207081452997226934173673219355028935977795340489400003892298103646647588043526542351521515776671133010324314304428627814826932015373633880924537795442106267666743564183447182639998422983038640641718256180672066477761560049539840463042104061540912288900619117385944666632729649726402047378566646187398251932764720032783654651458699046377433308305301631563454277260823411114615071490414615060290977212189592925053960438490814650384591972570727688546615382968873331972038051076224246924159964324034741460220638121554362352634325167326112852827141567459873640291213982468554162497274141414399159099929000654214113805474203219746548859067954540781706664590400753045627703642632396658733119477898601051779504651596396548674525038795148556255241763272115182947649853122391096256150233981342349584920063975623595100066385984772419067739131250177360969003255383531308995128151860812321746379578466172006285070297390196201085418856858838714466361651175571329441872992942017016218860990692250915844784483197671640748632714676834108750168790507274696820026154766879009703075017220083363277613099249676063646373934689455572258985161151403936517462590818052900292701117583401871531948629347450901428763239417563600308315032913500450789826310114556030143274961455377854274111845569383759457507006144941550264639404445777253904065197946772500982629356881458032013715114296569873687842389740060386832376937101198057714617967464710036467313855550634868253736399125004946998908262561290034286963300348183227770279685335965008413490132622068005459943466685335445116635578263139865654587136605965666694214690809986217718780112228504139950734635550852982945348046967381056762454079199717087360422438161219893096386611623371776362095875640032924030592625383744843277654201034784417604551086622024565073874995575273814098732322924445940743591759738317773129776628261208777702082695324128416333206950765695529800575009730308095514311600926884915759363466177729835815819668132307326389567751012840217998033513191397306980794277928536011489820851838272464794859618025496865908033399465098716868381876894346005072740542860688072732122100501130935531064549502783903436852942381192889745927648756739053623464103251298427141546948101744753880502328095904991374149085005086298107492430912604700472429852411972497215638694536249923636492799619008380558236611051846912201836742462060807165369907165431722979462419994828441681733663818898707897616241227010986100518504817519175438176727588582038526088323649882558840904536391872025036554907156606185878672922960632918053137173019887243255399892828841978722936587208171477182084285674909310718012249406196881729449251013119653373569201162694277770701019984130947018880812329095093771638474410753174502072932800525996479326590275189259134258597833197353369765802928640977999214468850018988035614653874360764286494300737274073564562017547738352396281050371061828405945044873010518860528526386871767168502925526813254187594369322393436257435047746966046929781585363229719383330295068759144915464536864866473958476805350018969189012500711422062672964966020156925991546745489469790921868147607551864791312000431800502933446618217450530648404356330985863848995479921328223061233466107870475996990542440551574220260046988384523497039489039475881003531006301612113510545617246471989903810160306737672745285627432267414729469763744790101411121476999602787504271528866282557792011745288222906152820792909638894699941198249057680517873514313130690204288745589785426048679167234812663378984714313133231325029105527500764430765897033383818566651011670402859156937749312266210419889134780948663775358921030313945388642775986610540783125554636564361480337056876534656091116702004759922970659737329740420111829965600098750192532395950246374504324577922482152372757684307066693163349601081864349884213944546883428109272085798128240332833004034238131089479324113718046166446281932978368048242079577865638768812667434126261686899120781403657142238374529437976363075984799820318778137096784681191305440427032890421525359777023228489223454132006470745619912348493800260868644408655986933978699757669316415950545789682780754860339186779575369296790760181914550158111999285149697168227041433905731678837979734723652419606033098299956240234743317328391879176078510332769891522371100348366328690659820296637920176755311967133581518156786153173134710501895799249655271675503536411051148188495934956745868565783605070157504533583535413408374679764942721905432026089997140368734669014021267851346601283049323878716101826588929112967642469810109159351597750562428641378006437020965611097043844427715858956090466641632207541168111925738980104725418371522095877776313591695025703006972965155861242964309800975714805748690222561604669400232351141544226598322700994085557044023209265320316856079306701679796923151468673147672432359924579538274410574449892056587009134074030655481013676384062179220370613999195090573004535303153663075379498160175781998358691790458113936629248967772336653000088984711366874681832974210196243718606329950939222947822900657410513753701061688345581222769713475222165363594251249582407312219995700487378994509205146371628257971005627192843859766171622235179457890805008706327763029849964695519222557288025495410531143609919341479117849832794779364884782591831587232302922768847900856429857808373462625263682481378423323531422591629088684086323424768707179357769573839481960390989449226327118202234016640464941983708216677161424072099101086613497199143419518976994484622857966399031448836432709987350173597166824668907501506901137303586001858584487904655202111449083672362075716680216176715838369408328903625482723272409110450568874975446891929253031363272422012577377517677866005034667174116800259194568363030970513077431749230339474910253643868047139719130718925895691499699287130707825612079880479882209382451282596443182719128643459466905889533136501924280468206304764292385445317580253122414963773165498041696646065051219170289976830611413396624300416305245780694944676626081380724081210835024918454946686178102557893757544704411102996799658908410430028408160146291203298184551967217911553205882441246215380909083771850777113225384200730329329595671266718888007505565217426777040404220552710674320306228003813340373359335465815463394222637931020800386196933293912266754922382680115585082814691829050424723931987930903531281027622309306190797038666152892966696973408797597938064651827287643356126181597609950418801156892714428951124857639700158875610496841721086953178820898398236532391982312190795243350366935789599457764853689045170098480887470044192207496024702450363026067460968777813087386899697709893823617919529347023439757553499344798819928155936741300925340663274979794269075838684575656621951678753535516550221813762539641947264679927632260445295213854655211635943611417182794216724469781469895267970525161076460467082657147744704474257962610103548736196049976848166141625769948603623100752375924013819027122523150687699964531306598127121918354761116041411743057955625913195400239353580870421204944267624517277599177775618589510921985402348972308372514134717474473012092821183671441650285323240752857444071222948927347290467785055830759500364511841074950937894830535570928912233988109775554212741287279342643013919196253264666783587703890222502072853857826056859645205936611967685812539879937713006687424926830078707817420452405547272318435165636638011208876830097463868182712620350984779834593132018938373845838299671022370274614555734639425971664427725132202962648250113355446054771701340191813183742240617118842099794106315714919229055707914395378539404957101580644076159164637932944745812207970390345455645751575942476364303261762793759894044499499572593507458883881571127272204699628703469373022616213870087856087047323360334953768945930809819523794803919395782050914168937564392833483020123742718207571049111699741820394905943117309421957323551168796848681466571119433531438438921525192669596895918723336522381140491406337277702008528139204602079014354458832258627980328536550073816637922901690624999839295143062967136862653422028908672694799338866227657418514810403925689190724105802288471460305065805474099469509154580865330266582459171479742740425338138948862992885227781159596926911236356314055731211922428435846818141923785811765131972679180621959112952216472743168890511203455846611157278093574028842629749074069389837258076919702573995958514673002754790113593235914215466925927736647043469371082794149791629891955766982234886482548901611221139092385077292271191970076211573636314708552530782583587424058437519499570635622757200602168692909150709190406044267248163411847172183768296049666935528290854978047083388922018541483532862102870915200888393890102548197866703665355175434623558199337118181726086178663795650926763373995853696388044102352643469025058876984468898270387021610576527422016124629904787802128678957459007504748392382538541333809580209665137695959121364512402983171049050807453450136774037206573421637985875094895969206645222127240173980780556112134161315898707548532561741351421179009700264142849171575237981851907579049175155822218862257775883781878762635700309591826660915923465887753355315289080321808094267841203240225892339408122272354100631550553729678296208098666571502912207815636224440202497903796483767910743680925956066754089665818254941152539009843620305246058082126270091698329228845109906262000636858283852328648424285035454736298274726372170028789598706569240094671702563690107112864918293932600506388016281495174634349293165406086162219744725049412501437956463219404236852098419948218815324468544235657779746113126755675056076386042328654794439031445812541547937381875476169472657654662851679342440150795449266205522445601979585879897554126864175463372643425880680636165083944178160694427562040775163879927372145540531447661460897762218959489264700605596161889412237777684005728363841102718313681937152045719565847999834867548538891549781559294445707738196234016996094041171129895911349152992892240230068636209836905279939162519042151329682752661818220089232752272092392850979068569988974184348428883155720814284465495061226816646136193931411858250561492370393535722764944133102198071074855400511834980741543645585083908113127123843114438316847844548327170341241322983949670014673211630718614802686493104340772750412254394402409623427305747578596452240651614117028684389220175395418161122859847719189304532860665530913919615643988312254412301583627963266539156948526911271021044482095252724095168500850128691823582242123059454868111098037908512256219205374905246503864027660275640073916261383571281205293397961099581817935573154069202148523271004958353094755554192909767401282911438884024417985057574098467535718236157395824133196950007453567638914758423383017321865107497848135655209475589276355652688108451754509949816293596404918397644820510658834343913875035706589649499459202749446883497713744263524424434660756354937309241449430869607835100666068316076901948163728468123077622685351221066369307854075001558530926054283658132734300297414526302879815373096619774637236860936502651174901750515541956609272467336457502140223762065311397926900956968706408911251637541512898929914165265913959190563480125657962045359467203863462080199135685005187464727193506023367479086342708812012585604222985550569122582829911553290225206596290888954179529625698118412148599034654497872650634895601950212666596972080648970917979962437754922519168208222878464658150253263784934352842132831678837111614624345755540539376605460024121631948839627096824068742814408579573293486906150061660084042675239550326732882875639759430011882149564050190057282650815116269509990808517285920875642666586212885347230689180685145995290275051894051899256263820177466133639410798388596103703747100744443776154394454348702428412484986426107813684915033407779371586291006976857935021177581578590713578259007146458299677623590052106739053988449264096865648911380127371667187866916149158425197902284654947924413855480428504109866630379469099445967323478266957228282413443459549401701109167034538533734799821704125794148987740930005606681013645600521393948392459017263798472259302026023468648199933285312823124792989752291857682636066866734694254710328449283558443955766348821130410017848208485072190740860672710744211058014615942798544424300333666333759093285260694254468754194556221617925976476952676558626242725057168581876786451531841888578513010044252860644052970365251571025145596530453489391828267546791587162640922636796424067556968307714825424825179374703146457448794538404036813163490502532637313972671950274200000894503334262500760496238006002458648418432716859532382513191714047985548192789282632572816348802473665929117492289575969213971317281124741309011466712801792880814699487643089999069674683851693717726377326538379577543670304612830446690545237172138763071803507642609052001465468179674827367321622784442293020853040911626777136500700909841195314770875685682246142558764926216532457103694640261619919617635919983488073933333916447090614109868371957372163364809622051564095997167747887765954668767200063621957767206599338420585089246625642929957979787125925488403649972199235615511054756314400226709328844138358358550868295493924210796832059378774997970856551307724990929238660380212040323102255728443493073180634018359298306427671598373063253329753919101506180218103748105031706922063950674143351930083013909813388982066019580244538310085453212591521090767940581740808255459006452632287263065798974194318169339396559232030532295067072914279632989922175300609691592976725112204058958109671329422643139403301537816797252599068228798869238148543812307204863063890833142729154140181440953698204821719737525002738165263202320391301134010269837284518302907814580297803326444574528066721886633266887245424991508352807959296649160150530904404119188368241236339491874939614054856173743684732175829578227503187575664168156717874610912986338522319292921464315019601030994436074892878393867757168157652617559033951324358031373821442243863629524070108064851765167698626065973676116205915867574927655090014918143453532350170521570221228838151460692487479980549551023242597381536262067573140019379547435032436835570820675370127897480387834575966092705215722202853379073055044548989460992640337490720357408049017606230652874526966365687691804751228624078674020118907268049355907780594148676412237340381458834680746576742751207437027367550484870800640356807182049828337160396105811292714466568443102112672811463688097034526631406161988913580735633651905100320631140987932012096857407066572088497647951927545793421814459045714760053488920463696775557081921932408402522985575621618088226535268261593697817592268211267157929812968839673156569108177300807676813728033203395515424192145421062286356657819178540972647371553332861991013130304241536441233674774826291794785898922054827391928260916132989234278163008476810748071261046605915823913974257996878663501940497971948806536939288816801957038399659668047471442714023397727260650257125921963694777553992741546833717109377705644042650119074616539754343666774095664994455785959898243753824651974237430726652750581594464061041851021178969910161801553020489094006652511943481727540299215629589694867248761502863951724346177753281095383914021768538601413674223473150091455613530343592348226885154345679492699403418498555224912872193620712213261728907678621412347421836482276994491098790938536882901113000352382942759832631270907390796477426993162853417555061312591232541295811834156440300404619985342047788013432792582945658289499998977357060493634995593151096060849928243170291358091691162509533635374313648476199265439422932671528122505863975392444911910549266012338259379356790914591165217088820759613508708183769431123514983371411701980926383143839764492167612932503089429992164595206666150598518318783090561057648866877541987676392550882709268364672166734260300587369661347015539066053506496680811588100261910572385028532984959435754119267399579296576516427332099836434947516487052020144010233096857312931368709076190100476031431129792388981004613882814118631574802311787348797607220008549269984587231433667329414656778989165923755428263774921205205569600902601653864517243872645235957505311836019076901321732171300037195471311403022892373875299209567055388401941603547323594874829841151614289496202785447869389700272331075743359415084193239041163080231832315102172978654638393155067219435051578702199941742872109283147954389659598765995516237616710614925235483206939165818084896125548204929104225704882532124169257098552758343273930061201444401333630899766033898005443946391903153780386006335742036442982690167981318047404720550803861119528300235920911578959210494795399401716581131583504616356214489877496069802201487591770406908524729248675988044892930620293223936879278235652541951018009150433680738176761170605494957465849425305428297289813260811056057075130809122104033127359292687423731806517928587220084824515952940027833055635570241800336861177285735951234399493553345730308912291317303529144202112596682626214517182043058815094296637465990676654422656564664933316208698282462264818296541772659011595856443111615009533507501810226035183474278004897434909026305173568046450245166625740582375040230463636380633358256419845511766878626779637986434466350025782044427587205326170871213656789895088678872511923970355946105497247617573101679845179734523936937148559125586730308634519064457108075227084997791866991902044632480745019251006954385732736571877090989053379886098481134781358765076792640063776999802844080700934931114996731167348652521863317954159125980029966350124440050897203017122633539127287745579666390497596117181366433084123353106700329115285389717003907210074071783493589867591690858705256100357309640745356526723270639506236475104467429032036947498466371691111368590610554267209246568882354767963878573292125825548535641886976765832321155280835246703977007899483334821714690169452664145828777178885565664656754159106137562516454892101043819256403650867142174867227997395559222340586711410213036621240889220734237304984668264221210466924237827076275449564713128297908118994265129478709144933037266851958031588386301139414857093344427786141992556730865653577092901799351756135752710717628866901004672257468712125006020649480548933918430467788420829567268129942491376285298414615351692797484324892642844998833698830264861714702221764193684784965644836698877902100782062556996697301201918680590196092732936104438218303956853900352301691405862094292581035305194196721708166889549411921880340821957225626115553648516439691083345052835414744046634742133472859627045313236596012302087544680300051390255618785670307261994825120101041447916112269429084616679515172195805362486253024889042424824386804349233967850942129333369493212124315448737285812940712128358799519436145106701360206803386551595933289421500801365564985543455856481715193237856416385948021322228603984080858191132770687872288153237917778709727286875480178972502689605260358275131105559478342088118992645754615517546271341063642180716983390478361028057965545773489169131535707818490906355719105067967230926858012719757146801835312472557450348472272672760736659510844893374958653119908202101145055507392430208087097419312079428286428260146889341343882230366361943081090317281576856908449268696257705376009285391030968816258109629779436983025395670773682474028026114091250713097927963179435545196149641236545521029839191870340523924743249489738114333153540373833822439289945139803188523915165675740785039467824598954655545278942291434212919463473942583053869773909163691262554634626538862596715174986169620219043103029833509679507475459356305614328147502673480769158059112526550792634937357502897114023560695723937628607032707712408243403072763175143293756445784929650569183140159951908770056501075015991229043929141647338643208055346345791556864124910537014156119213463900096342392731006383840719200889365311680594023619751179883103860791625430564446652791845845122947394679693595824554634269974210262427556204773583218579595714548938318647124475485275237413849926956175183546105066079349351294081539182772815034343363059284746733029993277398195440651766265466207230474155677811424562692738404922180021086938326290364863947466171893158516461290798187928056048991957290160158474570930291612312923156779232586188780651223681891194141393740647387895190949235324846507840280964529577125915613057229174255534254511616217330240031377069305159191503259698711103364921050675998205865555129959934070090782058674116922594936997605500624295033849153192561211241846922430598090066736388220467206345190782639699081469994351142586578751158624811423409983292780047144406701062103737243057971068908606746982783245418324667086171205323694439570584864656373890262870933645201351103344710972922851483233419720677078814908040687911405980512688629720679650550175053534010573513720695454929431809968357399019598044148554867818379096240584912982910463139733022085913070617408781592997932447377206534215827007009592499548792744579223560649346175080099724137955833368144536935946746774058821301176951510600821508289934059161297969149515132160508546267329847154792706385378957568112413769952925443613992498897206295971332234409227864649390715723368577862199928293344591428887552363851658367035062374324680989091392897700529379588583673833508142465394597969432465684636888327865164265381991511818443535392831963086172001467134157706192399410887139698121312677341954609337201704115400350828702877048717108856223242746467355604822284622944536935523804995662656393863799692594068295693868827751206946115063418594454901283718814690718651528898423999597491263726963818950227750471555955803624119573679746401831422658431782838974326074862946399088348609745682582317253398352985347590987896556413550046355619171555724746376376109307516937831112177455863229156550243169545129698393827286601098078524386073750478300610657990389470893166408044151738060721795376834715706524361204183186724768243955031259404344717077204223446853253510170780458248044888883221868559882018816351903757878917549841892676280039719736441395797780750368824036164231134519874693491772407320923806560434401983906154297075063315835979221078603540541109697705068294624008319795050687479606472794317724989085842154641762134176080014877915010559107367166693334289307834259739811880012632255214696904415759812603914548393314954419919620403306658634791740922542071706264364300908566013476101090549375214410913214057921839469907112734297582304742255626268428356660308244274970566961204266819641675835530854318570328869749655821537957291348064611363919261713407409525532409275580274912356801131405344123964037437081464939785900849847934055187500092392492269560824213308839195037188462539898999676456454315649532105568775484866624988358398622062335837862266256022972880761282359336937793810711120683454827838911977547572686362563848301244205281522825382060088253471206997429345783306237205237549318252898477015386490237145652259546430144826680452164483392987458977072929344700977188475085257323846797179322123618725435722586038618713983913540611612045206275253827753727391795943208978834930597483272597820665446693705464906902345425221146776879839211082997606728102032818769442970450560024870045212249340775618078348124745948023411796162003368017379200830264546703839760416151881745416263492604603004693226525305473008733736015798936145632024491856699986112394101129779717552368844863718343152683472224922995717513517136813329510521200993763326255867146386425227688276651838603057732986231610401641059561840677281421064570856980939586459938935581768583654476535800062701896421641257379709450757418615398156405736771120441868425457439816653511837646714685590400350908400640553928683950542397582389029830886704312334229357587397038222434951797425719379309675643254715021079562038218496385029617283540064083153335332311491077228172892306440019142104733525617893622174636408144472201589152567837747316656262752792186000536109752459168433509904704342560113725871679789329031782506551627879730141550423866914307550714520453704799799582752020962979131878443508987855216818511707164547023010744030777099435308731979516576316279776947084852611093169022799559129324166283188106868188362462422296179387662197558101942314658189496882060622851137010016460749200660704839746599449345344194214264739793441292272041610875884585121754951787049968586606345719450438792222090774110724085681095204200383469676246802491064864373347445683400782618663481103056137505819082698430504024770211924429931238806693323481819918658376069108547105093930764424429691775487883385791993132787560560321084907899819906416997289905840921193520430629067418658254092298258145124610493920053813163591615047258489079212888685617724374491072834465192682581832039490412722467412231652239132406424619111610966723571984655504091416713756302167087138219413061304405075300272231435900371654136412143459199239490488277918105693981641406665841228198887375998166683635577465466459284930943218460773733824760558897163345299235625648658456686449444008932672698282685967012136618015425995517600633812943563595670630663676291353019397109283048006744433179993706943829805566494749983511840587500681463259805792770244646601811128990550306908613028673079515594611101534417845773655555063978599560963747233273132444976794437919735572979946201926366892690966231388569835508865190660444858277622224870073807092040626541968965318975372294627930558965317609493378783240109692529528083226533843115376003332770172258722668878369844017758341980829964304957853797652603851253198822419411783074954321676543919232794633174208321802237962941125445777980058406218863418008358030498457114054828051896064781405844020336197717166341354642498514549599130383524921580700339432067428146346235115696911896541550026497382615319254145008292569791751918629621429321879420330501669713151024254658953095003179004898993410989143396106994088957873754060990128451638486482208034366997598498487464273689972940182453282824375046739006720386277309384623129256150138389493934107911231302229616952170421231619283609750256411572071974774318238401701016492905007440212730293834538881258988998390367335177398744840479435456298981234911857563591553485466932478652013165845062405922267464469212875296047474481052532620801861057807975201734039918353737542972450917931723814030565697894012859191478908284452167725581027178405373186870433968653814052221564079080017488103645020110011086816511710113903838785951183831520884105477660362271827692378397769866728720177064399958220490477180502193485050993786785347686794431595309266495273835584626359898778641429953200568222838382546487942927668956695089532169513136140915431872755566271664068125898644208802124679771208952537357823506682664957475674198187072249112292939126076207078723497739803808725822732699493132209190106389337336567754634699066995148812886787356268645549157522258479594266750654675787652386673921775732723400464523178104949660048423859149955240273482751545166780110809325813030306647155547684426853933113383637170407930361941817112663581659591852878153585637483767289986311950786682188174984113358773314540172659794071796036148686900371663120983584113092253469185661717979243043646258728716262633530563119697166178864849812846937964868178759290097006654709879622778049203923032260393325170060944629740238124450986279913438919731640049075374011805726910553164053647017174243717222550357879721564525802864396487157781176161332443116950863307552246498021205532714486736162824262172862474411660726982486462397190194653082121133962614704744160249787918595870956679837013304977883890281748088190428486728258822200688331798257562434888009187085111722627147772358023655235980375183613382655101884482655400998580157621171040844561792702942725667313872207979323932606641583062959464949169054880683296847667721518192164450446896233058091865784501447422270840476745667750363394035889416669646178523628074843782655057455414273313051939213761754385466269401982321249893901073102116162267309343806733059085538106238863219199285967448122682817790525493699128852435554549122648547249834804346819794714986522140527972644828249853874981349390708301621377099845663707087039827197361731179816661254437268634039192861083541773843045163486038528303740129750927060544279679882378258575485379450414083877221800251659844914633986103700628879655405625992908750363187347456192237501828336978775563469890982838524835926254341069872702610913449847954412504514183481819090942735488130528560790932706766660533512965417953108305906008927751143529887414108542018598782228877915410886883670770755739401053483506196267300228708327976617178723785001294565970204692168509032681995608517069635524922540928721510106263890209118487364614782292650621541764521226942092615163432574051072891642446878879845084610726492470248936188888881565878353040849821959166421821341732378392448938602859468117274089941151212016726014850557449221975828054130514845059239468475734878760118813244919040739886603136769638385613953551183654681990232087171021098145141269755182830959230454373428402707916312011263001762445270640065720609658070803071241765189447424662412941283865774206108864193157482114677986226588554928746031204512123816228493022460825354668426196407445769827406613147625309034891243753454860463417081541830215141276277024899656623491045472019042826199706404832001830925393132884828624617130364355904443435771954903006241909022885178994080670196423858395074872939825191188071109409890731611963314147785735830883351826169384552849225246864303493676740953762619707409630479920877306623827717932488574802255292157800982849973687982912509118472683844201224387194941379920805633605924908294907080728863972799555562171577116457617074409460178412566447688893943500089272560582195228135617325641113934914701800926983539382110514549980043304150188790484064943258270449471342052516271238270965695529389243284402868722828432380636334237036722461668110034496841169543272517803058495587625846273898829023210741956786928380515854787293907697522875367419228195599468972338140472311962729229321168022442236510010192898833362926201909299410481854723883378193242209518613435031596645445305613520376530723653410257182118857221265838330893908794216825367378987590413664481464278642735695875449610632338069380368646379987826836424723784090534793305098129859423351927787098418228917474801591748035435691325983665510792752703329838381077449745476297940174969248980253936787764445025407707125719360339734975028501589405001264098933623519686922700869721737237320681065216567998301478408778752607291442541074129755637166917828460798642983690454234728451051717981552316471235636663987796200637763157932807786480712126066410404217203816030183913359998856999139798797656397289987017821318853029245406422281311664871590912776009534059265205291366065475522330906749127081183053176475215242621442352232376172490747103852682288033241003116668063915559082491286543290323434661260557154135499094746642210462716079959460303142138825026999669014329685335300657243321294545439827530081851976044860764409872376062858689645173373335819931757545687681903422494165049444554709776738261339109829108521420309531727492665347657826651854791807093211776894924562065931192828863703184076206552411772610200402255496306446270188902585503715118968344574759300239678895051274694030769713291807772185770982361141403427791301160679737919577441493668436031078059367391698779193407599335283578656217816315853115719765321304383185473110295837245985389465817492894365515747685165866125031730774188277701820365976216297847722284331716433945642692508451895972383550887695331607179669504808725721720909009883223717714536402360070573659651565705972573163393573058870191652754289897636871986890637617812028705781676675201815445524433793227192357575979022188272302145189001048327159894139708011660613658740251631796727572143423502885242714563633997121772880617667996935868790183061182003319195178339282795480187031819878729704017638376574270391176424950110613612297356192570054551274259428954237823056023010604643570860958733689217246451433359935961910057166261935993086067323109599261878202450903930264367061793219052397020381391647413511758328543719681677191296032895137684580171415162255421837868728989063934351705517480911389248250659416679353668786032613005819418545132554270083315034580420826726868472650271688944650293524076478423253314847453239071378485137158780191463395339958361841853328031028048030722350295348831027690044836443891532290222475187014300860690746970884743873760850185137664452600177833359526111019159036104596601069312394904332802502415880850177471025379057568433270675588339113001751424044992593837494903568614773962212611366790322712869054117141207193069070104504793055124734864575652104389652918608855957783063813242255267049257623507781938366153115324376622797052417828291182121128712646360691876199978021218457932395624218699194471638030223557588633317813506063335618463962549050345836934311017432371066655153665618274443926988108180339345452705164172890649972809325020858897860887788445013618374950455192837362110172430908072713495507680718666414847111590442823349724558975678021086140637541399835570074352632199650959055984575267991423558945055804330838906596928643036067362717855143123257069730893633085007826201460040346704551825605914904988873148583538225188134069017223920563977379427671905982180253375017132566823946857281242405870282496813616586235055016631368408939736783294848895082511028951100715163398831419684232010942425216211474471475424020983238404504383664235751404107432402038206193899510631312839549160178502003116890590357142860192942488452421036884827230884162798298179607269420414075438141389313285076330567670718911191309361773113754707505547685074702361761136705496468437405562026143776113274176369917142290729319778923989873472082727206589011365416662555522218830935646108202029920225702045026741239194581887223593005124156358377332859103081072888651931406936036128405606969105900474750516190181112177685888242353539876149013749840171154232112172346472359651395219984705722778575376506093721437933106535361423203876642059065889271984802203266668174519856800655299665469462149272018575341667217476381642269016865167910584474100643671997302816263179098381158469004185264807538495441612169122275851313201780358924892032743922838321825698238780500964923412069277547287442937103888659671092104208230181791903576382534022736555744411135665674012311046703401155415822827827330176688651996704645042986089860146707879124347827376675064469531588024105899234051703793741624747499849100462643455204656326079444312583382849488497600996529786889493880311917488349579552401573437118156594559942575279829667283016635381837735357479503773231249307424849084610608468213002202532677291850389994733227057466894105774524384462473465543696128137600281199492368244751046016547720544560355790043625163930995997940864516098536568069625101817121419770835499773614547474629750747624247540859912887151808788963096838277596539468475689198765308912565287259966644515219148271674754076036403722499294241034695029640193695844501592457512206996306170475791639443580494226237545272093516801402046317430657888964285540546408903313462416072553200416956018450612945845543232475587431677620364738173664881281030393783706347236170203953706153183089095862551702362676756923634429323568606174121549897400016767481873276619062495382989595378781224319295408832425440262622887318653134597212538545563958520267327642951234626402271457619428462059733739478591461889245186437386647558345886432503143067521722420653582056830342085936478807945649922994586979847582709756521865466939868304805661812581314405761039274623952489574876042429625050917326556504237183137330263839906687618684136542863808080295350118906443811088400548488022133276951716538298910266731684080905160259581287780893158571809657476202627912470977701183239428116349566270503698786896589035686294839913397457851248240278726381828020336372892165543316997767692130156762195646492721423833513766281511580066801220005400441471528659453489524471082535644409809916334456680044443830359040896212101094679282481301711736635881209607874995065783907315054087825696540056842674469381663010389301275610092490560134730749060658284590947539672534662954907105701579146084540391433415928616690111189175624993258778822793869258398164589678408306601431478740674849246288100972961028285395584074792427767876052831803482938605590016737175375471743853324424776859701692750103322707075238449728092166358899667655809157985905490981819571366844994313527902767875583334716493517105657821307788038805623430132577134033910286350760870759474375486438362669258534980004350205601472402423598425976946477918487449341646923684297788783533710794078719560091920578498243677007562708341552686127498034748577083587124589880964383339243759195058679022706739001376730998370363457805995702090020240024282326200212781704429597303243521961153570866450552395491141462439064992505777703072088923587447615243765685105678209741548472929702223104817938299369874812462504916976041977357835611107647982087331012528878717826663119287087505882066216537789827476709324680302849521821448798255026934992570905162232290350858264661477226757475796565322859196895960601354064330295035989841600382246229713657148912724253668310264715794738716549275421825752453344004329909689997467615084731933542851670238198265276897527604414464909937623301997975587902371268828643590421339549739625092616346256521952601723614818818519535518716780433128256479312159440958804721829279340070148155468917910296611100492216638154897119850987890609369285824153546009478174508010304343135272115630049949873066409200797180292509064788957247668842348568701577481056575808446447602261165007902763036713842718636886439784614655704384708464099482384414207116194346861412787189540771080595811783465560519236735690981045063524799681650291623911381234842449974046341443243323603368861384759217444383892670794380497140077029446501184654045874325643454801111512799291215288451690137821875089144391854797914557475055295889025660959693868830300693468907408391097959576509932581382392764939815991590974091293111412546060703157528656752399016032527253219229842639022893420261071014540748897812031015213214886154913636451378747959448770987820354094993950800645569870683276299798436590397229799825952450512877968921458171683172556284696577275798738071582402847149580343363698552887656145206978197082309783284058757431657209447662702018629385886613771042409713927672480555772490712104040282299703287850357895000235673223399984077410137048180810870579757833813691929429094095831711046969899500166367277217889183507830352792421609535564502864271827104439705675252440416992262080960178460781709683939713675629475669217470774911305011464166431041978715109299124654006056041888210715109248905487621214959928856472773049562567126573882077580361424971232941635564196600131288786437743112364540279342885090336825823741586537233425570057520977210825612903478654619441624480245059288633264900033127973764458722350224201397907153234171093984156247152484623700070210294450691282996667571544209010878494138341262209268267896514719289068972502216563327852074334055778095201568355101516088740342728467923993615159250363129653806392687240719482607719882689232978923959015286353550062169989179992743783411143228822123035792383907824781980841347534202227265570506714125803514291128130963252483906915972977137391061671945960555811197111209731572596567813718442317925923816671413391053026996819276103746883323649618402601466275051505419744712116319571360295579629066383901445923653789221828582949998696639007033656975607778239719111143963365850498639042518946483516828077887519530835709843821708429850897332697012084227681511130721967017021119874472915413480983061992433202183210060993313584324542358785824684828478913046821884445947129614092491988287640049747244922557114855587927475389284158411862320033650729289065334357239405636283982358932974358941806449018358243324502014050328479717713910943905422596854981734955405038150572013804431482511241399065261510169094653700546492209934570475481807412233550697696742816285068088269032512148367583734902364073545142906881522206448220902024011422396036080765258363763485870955481177386331533944646647221809696774094407357125676639855170577810340272457731876895027602044728854255190320155797969244737948597535085432542615502561040216143634431129745505832656010323509002485904809167601231496709952046351239859096493636145597598132570713352990658442154893637363698425925913347674166325035686952330008549951937755947669587531787312740390223089050053805074027764181794649172777272770023485273813871643061035483042870567547878425922745083032160803192465333479883871053610816393794604701121913628422881907733920886158460793230723427076844725068958855436643174167723109130404161817500595537816060806934587619588227067019018507152782814592814907064218808318101098103714301705349860131481199359507585393223203295696040547023252090028812058162662759338393057549215597133820913658919432601111780323391054620599409592955201971276127074054965016272487121850090230225666198226294592782706160182209020187881690912576028110779368300960787228576254630978887136191869328506436456211133755060220774115364787711180261696921408504857771535924240380081853614906282218573811957006339086435117061780776396419817603085210461142510427052734513446647007266578733085310655158468332166472569765956049361864994956495992494688527598866273652676287139574160602641538386723127823556937532537233466412280131488491727160237873389167461490302402384909639677392165459282371075127577530757069338393263967404476953159689824903222289392153034702238722031619649336238851098586162977293480487450588896465206815918380721792024260629998013833845706939624947824022603403337177640781757323825356025082855188520349520327119795101702539198193396651784661493230784324396673192109764257738764074179073605590477605001556038741145990480877807028687188900851802396636680524586182419147277319115321267138093433542021435770270840572268473203977191345506295219072331631249729173758406089523759386863654304041702731190840056725675347235146946399567366401852914720308051299714452952298221454515932734504857303809754564457847639723722654078692314137158440473092896731969983047264588217082221516216966406229938179532210302699337783574841060789562259011304982777451104917479455108185190613215700677282001481533422744020146547309444866936669304610837640852504697896188728235279836442415253919663421234358703832837350354752565091262151444828787568101807976847196855353370999665367807956546955156438092405211944292549006001026982162626743700523198761100845941793920736500498208760838361740243855649291832172833017893195493002135246043577315296061452404362741526131074319846735490393473947299836371898219232626044897211611571847930887564376242335432109057279492060035749193411498738725552181076995780847002014674084646222322681083721273306772055423914414512153008863857340215915288861335221409268194663142969818191620722064357401623950728186190314849015379151088289220634362071735830189948670630498710437154677039819359809892700075224075574604305468671289246022412522682123063738928847930739321405244097119502942369170705962151315531685906119374843720966907793092221419894710653224813974064162855309790343223934554964504569720909515640681343559076949204923000995968647707869218922688224793485859331391174669154928518485506230319769297645742082916344035450472477687342949777136721134422512813058312313214440780339001426739144638110035521847859328090780885248914095386902630057235338497115938041689713619733173752526188107615048795457455080557143576637906683271026755339361584957197676732099884585219657948732287848547337957920928568900009963343444706296660101430051034640817079696389571067423229102504107332200090547604976831052543520294236807239571435840812484871270878321425463553140088225473403045172075362794986592547779488931503728410830255627917387326547889437875481143565719095615904790839688276474498084739295499331637752530033261110689678705523936255028102727290768901612232417458693256237087223329604348191839725746702432823621826425430823980202218408278231667310571834003615818395855614545449632052315249480166687065971350297117530189084269583741740448501195335813194116553310128069130255757949728319903104126758688206060714261172616384964581735899987357087417029495117714856404507574270944074041875247758211271924743767059388420329613421014634613910844039967328400488812613749314676358299881398978098376878296907715275392506520494117025002711701842241215685802376723595282252017286903735239885806196449280627833191898985584068524550962620591153694678582061955391738612328496996978879427428878510995559262180674287007148081744648136712575341276319340381605108033891871528397860734018851514676374265051201911015581899693050839058474982895759071112822513486981695742136789789323580618741456370931474416946165565405580147016993209799243619111611683616680805532443364335337263120358615742908052633464927223365134542380251201415440480870506207711322324226755438363063914973304607428503623706960007928775429824564539303418129396747128819318653284321358091538609868422984342372961072009594270558322070025465988957235386224732165398226381835891050097141606830554303556052100327734013539249678742711150348342507095385626354830169677601849360414136917436406394897102118914753760090603644008738978065743797163497920460385966792528712963390904419613545560678025668436450253232258336976710388389243993020475769926064358742909584023119017638383195303554206736285254795830419244917680111983041632941997053198953310783278000433962308765836866402875010714167523638654000064455488728845409783318847201671888203650230035643149500765524093453709221999493962755504806839141827004280378925442179713313832953815647868958706120448117458125739400938857474236774525133287924644725442284416179407452956622820047516499549836269337709597150891640564663482452283888868801653223625767946196484173664886924375348774531333321053202067055963867190557520997311212200158281780802973789819451004079870889772950754196797553528629697223463803659573317427963269066031335202059660564789792364415981089685236398074537152526975412627504089725104291743815477802854956849518308014755304515213108361028250426560877701707661542325853461394540810540997542762498381004249417904260146047690738632238355113564128882802933402506942957408760951213579911175861503369032075065775298815602355944873046210555883700641702104839828931873395561669414076245317802189864712256388883324866054461062185378780936682731200814010816465629281699453889892769262709334107673075656559795626823153661949514868333595047579916906656970597943863904508456814174418690189835770769958845467273283338687707060490230402599212001494930814461763079626181571422587689934606299884494931081280057651981861952593664130140241801636029901844961939401195846149795202027204295566724624861984061710180059415862899818243404582442983432160234760452288983218071243390783697801186422661942910940376864044575927573775224328472759532126994742395496958608073660297756271918109997739198870051113077057581522674401067137656131085592220033987856041681321900575251292032900184927750338722283147135997983099938347600318319594989050023432010080161347190833255591969068250537399641127306940534636036717098257393738972976840876238976548170043857880072253313221725920920636889043584590708164104731399576996147656381881510689315707730140331055682921850156443914181689003695048633481526546034445064888697483490503185548128934160002679772685801488351756559377542458294503838137349504261785927247653772257248232769925391382397623394769313417452930099284846797589063018244387920983045240614142120114593030502225797649600624923783605259851173686698855369291875924307029772827469076030958525207375036797069265186063023616355917703956125926261390037873869851904027599935887155602903858606928749369395128609843310377388391815036745236480435110161789027163762050342829755793342149183467195621647782444687075173685043334046977231467980221437362510942694605772068168340317615890790143299533918413548326219770456844331678940067699971925573604053079153458702225583449632128422880228714351214298839387160554899711283576509184118627758716367106331393891369476009272443950277918489978662564766049191037939296708760190172151270686420208483022680037506327727279390768455864403486177552549215707682902752222496484525388878440119461080249576933499031489891708376658578492344849655475308685266700994078496753942900169766600614543848691501788632095412888103704544793160034681112138206833484750122732683756103385512604932743063639355009111866231521599930634334657730849077819239542567348027490261123793714938259669937873633621149610987296060654055992832708990534932172793991413653435578972562235564694479826096910581258754691962913148792769126886901329509586402824516582650192980117828565336922980407180091398282228285332097700951277432853679713246656370178036772207320497425082568781665894065427771555358482198081514670538571998688371753388789086917507704888023184344693501894328975616282546866936712159808955671401944982574202588187205285133986519892033942883717340618066055909576453548014400209538790028442220583594068681540172683386554018682393822433783894937062045803342406018748927353641776579460435587157691909027745338034064242307225005994029783129130849610087669444380595118580861623019174230083565192938796172171179028898426951736872005367324124994552931281525258294144234221422196039684738381809936316832919352689505226006113071116339344038461161424537048878596486716078812134252353131006714773672694342981854741382260380112633666862426144847426378913463036207632264996357854895138590051081567904983769791773614438657495449686981519565754897798051767897904847143761564460475110798896482926261513970045329265596963238552698299285151117101503370113333550490722988777987565033436436826402413643462046293205831101935548005099455074909607539637972589957714816417632488271106884127476312551784398748003474038885666676857103729744440318651574420819621346670189666785039378230724041808599997700311440972480853445039210483796266133776928174873742094807808839277036934174556346374992967219330883396360130056554120890324456510813645023917699008596099286396998988601843073697742902973987595331576164739026993570620291145284863780844632645522754702183953472782755472941276692555449196217717380217359828056354120478629132432624169687561310464232579403400547773651439557735475688934449642759732126526224014494650298166721934873462053795767785701019819692675754523975494742959122864162535970536219494865189917880472473460838109899375982711846797676709462054999400973033919711399082607207960315762762179499043017842928805939112579691018727485188490079953013038322752492114731997715176873597121067630154364573675790063806746798153429419590583958726456222277591255401581827841049044306869071120976664293408489745422247140616078219537693877743869146678348028376513557034197478956643255210045803054836196079579606257265781208470250623003109897233553759248122457779343183608750108893433778632901242999926527407235210805568437919793588074875416882038368634107370819135125328032950332072934279861240101217787827798860668946466781948389385882932668294148278832306245931251133794719472947650975118768716078985114273954351996945567180130249048624178352069920008485771512296290367995440643829732551720597638709972722165411522565397598834844805126215355120993543622829395380939190042560466302290842161938236999341253867825786245778024889372570772643656230678774467542425027276574799303574100623412365139204133434965880550274038521838245939016097553480144023961946772584307800322766128224941034230947095457124241657248225330522567231531538665557924070371638745060439549459398385034407341475753506955709873686319028670956668316941627116498298768652314300997565018919080664895095536749869609168956976733625136267151300999835737604942895335022286099243468013010307067014906373592742648139294684264708647281181874346427591739279760410144226464927600733997371634564479879094330047705795444033599665794024941915411706534687392971640064500996057451420355976903365190219609728804666660872329316718497648646534101316599726436254372725318312051054072086724675179545717533947864325387655726484561875258627758152552190145774280371312723343475553750306763069903766874298652372095859695563755218794836201305748429994135428313457428536825373232487548520962508745073686226394388669537802031233543716797472797809962149976406930844806445497799979764809691466791000299437491057064442596637796182570011248287105610322429722166227593776836860294856880547273380517221469806555200132732887752611482421199828323255143338120583371997521867658881375674772374722751358476033117459589723292808342279263124180279499088586105950853730203201021613858719724902806136639147587530016529180017838376074416708571765947260926664288236241048892092484852982105111868152400814401107237498426310987017180024111909131089429791495197701800882217489356343306769400303422302791618857970978366160303187051639971204093537914469834886083350863426523392327810979636209845938229508364007018351439274941396323064609155028907407093418098826650241824447868612629787538249302088780527746816511526460350978749349224264291971896654414121350516899237394215078503236964844012747035451847337498438157041579240833245750108421456661096104454950417629707993514832770876753782752230663734977276935406722041879247061746157109165434420760575055065864413299254618857826465077588350116938592828090948563071586702002658128889265820128983116922031001521930406652233848820845586529145263827564080847878405867569858148459789564225390337970932722342984236929832165509368962568861550214042226151432951739809455540358195972543459242915853629175395624943396709214578700754931768658499498900617859455027302969465145348844808117952519730272981513022199896870660640439268442867304245156308297705119646078104711988339747808355123293403578221250767680411047335578791152012093941010035737804817121067283922873202389496835617062006239404861351280573425235925291790327563685879426252740869580007088697668250650928722330694658448773154334395769823257327662637578766751111690108951532730428730754085195330377964514695802547542342844694348549898483707201089930200022186219152384446826064878247143960204052125494007987803620021055948984874136078144194463346944994398970993253203894684843121867274402576705812506860899203790221602750534452781193928212108627824182829411929469692269910829468899863678917028101049184909238565934635250610418034216450129594842609815444316907260654680911794044265003289114015758603862280051383518827200079980202178861473230050548488077305328053302088092392516758264896588557269002870822946982935130220631235125830475259544650278302986670556971934951031273278505068514261031527736269272617059245927984974370153085145634046614217845106023942119146803352853742377886154364406087826493632605387571638412704803282458494288810113325236881010114376444087386953807507855377960931463147032840458975519218568971108204925953822216528224396757660987207619804824268260182510876803632777048806085072302955358139409487431219344174750503112392680643126727201774132011576634290151672457658816611201381375430343101593218719430369316835916286757172606411592203567767149022907515489358861214285636990907396157298329257601518588638653176873464042749246593570542936806856181339611914066953728508546077531597868838295300952763475411385358097807308100911992573238230282254409577173585712546953196290852303774586737754418273868695401636308470342075030594791147276968548469110485666649789037055920495880573143638750655214106500864709657477980024371792648400817900382775365584784714557444728013548200667489863852917959968953928631431767393158577217209775865698028336911182405877915203509011733682058564844797156718764656350495990771377072602319521440241048766380680683388033471528891630539973954259679067637303297749729499243314675401999596302143887161020055845126958293340953868644836927183195817997986837540555407402933096173491481584522668856218226475275046230566988075047203366584082639081447702666286794994154712894497965387477592525397381091162086230481885809953530779331285974871805731334394983175020234277035028182124677485911857602955760588998623442542543591787288178996906914169005414037681061398282550407932949245853012774769691726943021442367417955740973980126858912329531110048846014362832022418968797475230613668847590290034912200226679205470538293646079779950296569597063527537380331233692013379969372125899672989957150393116759663805432292851738622598486171601469341390108350242668300123952257132973610715782443956435706802519195495049128245893201366059426069279764645611089281089038262112258521615430239450929237324956613950917095840770217474117073995116259880886980717944870930562556454530228405494730567331536912202722499120866095148117499408138023181951315529119797198783531190131410662478753954457207777835987743457260968529513523496174153072643527281895525310944631042252687199734143355398506345816619119156168439960973084974653592667352652614966875762694563883561232714993689024143846787531655767845425053151799286744229239225456822799821273501292489646497756754464036521199993992033806254690990625128482140342565838878967972930016388286115056059485557375874483707829152413949790260903644196039864689236928809154086481345539506852549089978758603233155376910836396201797634679549535397937855815308355577370683428617913215700743555753158745989312680145159389615208067761735737047827461502867614782554669910806564855058578783967330076025681444986404715085499485060737645916529268942588857336072007068448374408971934990361732167600147348279367538639228006463344009466113329029417213895547800830007409703528731335019818976538996042492605967589948104311565226541811489230409691351486251454322317750860665511943293205911298566697188675849898078579074843302616073739651685850324870519225892292502082367588463106707505036016814632136618586441247644944219567274125423434047216291895835431173219893864701731826494622198685851425534269977968805316603878821484997640594893561868054796412054499195966223619321522036768799831282366308625999774581664022862485594697016585605487109989439878716728398801874854790596549827198122515233681443613513051906298146814618923280044052595036457473311156144128169801936412829245162462179798611904834607751564505384206564737027523875617872429275281541677707009770795252875625445243818624051252817627304067466700509043638142945768142219068299355756834187261704080512870661107673700930168947661278653843748907092852133796748232096739417661572566617104096728466559008495671875062133484454823439423292476135564739605261176289720849285148303240375686841916276511134931656123692073599902600601529188330582447153657169710897971244121439245614255017280283651937386814942648778261469479723398246683392738360692950217342826173592769124549613825644055602809388627703514151951914964639034793491881917044864790958371397456088959450383125313293588019411952957229106145914890412531925792772112889345085662743414172199005645686914987662711669056491846297528086826162070666085673664421025758593676951018809663349749224638386334522072556876962662393103654329454202285844921301611124416878562652286752392217837478275641360598958197631843340572200441842469580577255692328908124041359463978097479551298997558424048398620666386512028267455242522208170480164265581889664509508521432115271654621592347506398101997610908003519634002266876768521446619154636998513732331344063976471173244539078260643056581685068788523106052763089751425915375683096948868316537005812473478721902545401068339194312736670073553963973846231163801544342474354636893121968938769840724291726800999167147140267802851215109164194554953702673251669194672404623425819204661191305779551481116641548544000571430985936891804867868301915394291594898182583585181957406904406142648156991820148891684723295394318674406932858584184620503001353875802806000401743481462279375328209172918336028832462630930846292346980276172693976152733529984085320453731716036803863169814357509167690495596185748411529980551541901113013648475668079198599547348257168904323054479260118020718657307888182418347746675005928045269436667457937777091095173840739483212290116871536644290294564869714309669085488879538685368284620591713111770153105619279862930610798004312192279420591277965009656723553043689068177876119735101748431491899667783055348873473119683897556166320493755793727404344661225317266063538928068528256347896229614581626161149421107028776077810123714421113941813734913497705345631887044475670578231270397275257892110810094316693460000594319969103170645269482479041527617048825703197619294764368154636563081347325038645415198104400445477312296197096504739117024324915822332483988509172023962650100134127021841205898848605575912225131429214905208410208301685893726024783664690082357586822604160051776760507576523287193661368327960937814287710923027693961942339951172163710988341945633448995451689780395415501407523954779867811222586908393395116678737132573863220585667699827479150310030119804918949794036321721972219579383443679867845779494081706428283802454415114610297323670594848279130165480050333947842566263830928320219730234801264185523096041551141106177285874786799038675164969855069372290750393615292536885860797755877617413496657901602284545477633084779647734462579662303875545598211408420195879467601604161846608504990017081907968394536760813928206705717680765112708217966270331450095138246952820092051875531589475572519913056364032800069628211790805724087439853926898824530576672840070915360790367378788477982096901506325734346135571409835225007279599689962644684085851845383033904326442720612943857215024320800835122680037318462960263168259957952133747550708905266494090416222175245282651566668538462839836690465959801330641238172410947022197413331097011540020217132777830384059789582109726440260363876671094894868367815512083506806864774167950948998228855016509556491677339640833733365020209325279189642951035813310886276682543474682176484465299886946700966883829439023836188591140440188188958046646178666062815701637098749972199998462499326456689361889575287315578001488690879826144398166203874957596811305965094997887807587155131229562476352042836133087393861499903768321181813817758621058438275471231487149648196021600372803370514375497646716339794763331145513149921094777828700609192094718995624043374241431977870924802962533062299170533749806586489356923416415569919249206852803369926120326982535743026007026921019718382157811816791159855529387473658575944871434582912260050849173359935808027383669361444503971337751979037377884348162791084862244998587213025530028366520641850190399575602752567631796402137904793957948256082723102284140833791699814905972168982915577531376025581378357835604755716700960230152393859648005398240620957861502129102861405487839403682993324401389064448232960151270931644990259041269939074469169218731164047428599507615636716610304496891281595655584427673958857967522701506106399796929443062985992483557338295822126549657485611183405382815031828792982793852724670828161113402728895301290300357396889536800486246004375598077728782657976263143655216535321524394947003128389477229334304707100050201773859184622302997459375452945500354423726923395807734012068213692733855087832801617898919362130735377638280099294023265171265587531714222574604423409603109998229679737909811898687247112001925189387541863037346958451830967485821634200923569527307024448955125305737152739003481911278266102423627928393456863978540078132008652618412566734306187116701825811081601418616832633616203111387511174731846894638353493536625015103803833057874594372177553840686169533890853528710410249915781408925574681438704304454271228011280942630699532029824484373057864867437508758729092083878906278425337305380727769772261703696401372546487960864224911406143254171436130254874766564890790116903579223096514133593818510614625804539436279815102117671619631131017601948883019531174087860451171325611266871047053322487160935734512468992229652673486270904015521789736526474294235042871241411506595458412802911466499517475411049162584869925763392214151461219816436169861343599904230508954294051589393801718905120131656099556634868579671879965899522403560200055128521890359691995483612591966729279621288461568072858398801121360690675829577869271380581949808106576903510958588900467831599011593748448468683402316529094351730709525060867262373265276217828431684201273340066015635528083025949646777976265057428400603694150885898810026830259292369686734835766151381432672890983575779870733126446839302908585391730830902312466451918502362295452099953610186677738432956917326952287749697355014245770198874337050112695629196590126944514701649236178349603252990168909177820217235378271745342759401036740444292615464090045096473304655874696762358440807921674432030915062259740786413489976925408921915987180296252853672544838990676492618241500739748641802974987742355084076881542266990987378738255941026015724267240843341142672624728814710619672365422990703898914178525087357291239220354431941224546339644132522675400764034252645493804679465522530006360444626220083720749108146985511881680883486652346553978860128485124301835470101180910676708286981506705338401427453818663700406394219103748341971567879798633098040377322875685275492342725506415477725485468207819501747580488310083983041223768598846746146428549620291517627005796970290758756500246104358638796193004174089106364359797133856449206666872480168077920081281129000604797149144562518920895183153229176379369642522733190208627962243520288448825591630865164691036870942764879482179921458365009230929105490924805910633376268263799405925999128569568870570188907736358083304728147600606390825709754424530136859833418724527814394023570828143109257387096049853898730993520145819884613440514554608550213464479447565169752087489699857286139559829414190086631452890406211220585457202020140955906883028794739360049097559301294259810083001166458001026846668480532725533513701533557613518589927087433065967923019955939957099275286872479558896798874593568151150759938001128702709033233877354978800567884731730088202161733322094756295387689989581641715525332917226239998216858971969758814198793012814629264639277305063147438646374829004888030119304609535764760744900725852287702572888299761639487584695991760842529759843509260098581868249010407256347110724625180980219253681788944810566461447960344398348578534108794802809039719385578770428788270826057130749972494294611017803209782710977384340949366388106376235738885423182088575811073572710726952909417312690063655005142277450435541403500487859506099203893116258964947853085006178697146393489284655144410437661531725130106067195763220384339004242250240002243234338010688023032648159647216123202852181442401697705623651126802450384276908194656016689004507027913649473266373049259892912006811148450749483406975968629056397009821546536249960325949803622654111545229315472617889650545483830393565444115577335229750362991332199960858307397419542850365346328380054983736259715356394119651045882220469421902195181500853932051195501362736048249234123796561371512945119792757652279366895153350560110851360623158583375209935733704671867049341153134748555251432810030900978841467373051279767717041856060840349728898728181531331412092118765261392093394119803165606846834447335429480515978308400345653211991914701256950788326357785306206419400593259062957044030092838970472152474578593231862955015831737055860803848405059060228931837199311525788156075609803840361282752284252135727267671666504942124218667612038506081874758831204453240148165114282504917762108607512445709615618536926112701942048860749637244277017289904733428016123489958909076521551304401408386918349040656520804636850247768134730467007949730282061525740454473830209853681297900659477065227351343001335536054007065635150165730716171305668744982366490728173438197496618714321645800283557864346413253265115001150711110401272369118374228809144803222061995242995884101502903697167304541011747217609364136796975794451601778048664511837750549761669255106453067115448665269752313600593473387472479966146892273535990030049945993541906466186086913873320054439865957758834543826794362640710404730739806824309857329753631238326920719691479593136594424185030026081428398203504942446456516407438448697033179154314382316994587985874340494659741809017045334759556703712854910156795330826787359143281688932497936254306255799728373212786883627364715185630161283031445097374636393220085928300910792751291206416253421484208312874731522754306007948236517574178535972797867450012550279271944251329981993448635231416172289540994611655087299602915350214141157068108718063279929443891648498183436308277802449380381621941504415869598721263655665710468881585109947967937399034591405772676814435217150230418171189409934497398990006174048969074567575728600602582651314798480989532348843135683701600389283992406111903268250636772280844464739800340017568479504182660859397733567489314229164066094638976234484386782275304311209854644924660657834391109353323303345190308650182229849249515527505487090582390994816217181602611965306971736128864356396149957563722609293600000073805011392591615712564590904272885957581449877492048201661368493187590060078115892733826784836675201202164026403222170173769388765306905232275852690035508618611001565486369041630404571181687540495267286595854846608759261640869506740506266246620677523321202336276453587946435896037877872089321616852404679538370867569177130121198066814594196353182197492066562284571933798115052994932381658137784903890137955911584283304678820650863167449918696465350931143900249598947074707848426705375506345938558757626305771159953154358566433648526546641339845826957425530092586544925749712192112203472881311940662063428782245654849399620650264328021641535570029048056984826083770923828417267554423405408868243951682506339519913321202939936800513518106026098851803451219348451502741902015113800483969273175091944115853592135335301527085714569375330042529283352889219887123758877966809006872482413066741114970058724923816175107174152475637738341925229697294436694041624367861273026388351615859648903699327521471217328188493257686207573194903112276245650112159659684795755347166538413861030674514692558271602993453790252900248103922179444538296154300478080626165189697321511579613693303952999005289842055862487186429188240978170872185613614346056802655343506269671428903740362069653827632613552148421594462255304039525783465852770700705890170718408146258636372509920230494960601264887068208034522337268335187965712145756518911897990599232009415806300419512808258972578787098230967309149867946096423379011591257157531962575769168861549829559689592052914079718060531201490358840195289171608388707578211580641831223659303586580284970063815740746359057221776494428483290837080240207769647501864573034388885522616573443806516491594599540625238521014691165686668313232030263812150691739245855749935683106167527171751846129957446600536640549767603995523101293798393549630337825894315501742032612600461481722070089773868789636620354293771002539362118337630578865777078323274506574354245416374332155787786566114431881337071081835865672183601647163554545514335085284096970765242381023736569138793683867754520324842266348905551323077301631296228543555842089346667030384865029105465900521753669346050723930824175655387697690794157819161457808862059114886752807853938907125858714291483901915836613340874074988120202515132707988711168185002942823939058936526894427818343443782984273001671232370444623521014427753679579499306425983157240501789873778715607617130566304710187680309805673981081889451617876761238083368949588564530916111874196240715131675233480002466407251847861850382256101233144777941653430661136498029380924539953309301706088355399114849727668284627364111232946678731408395186615960230599945984984819968579164155649149538243481137039774541683398666812334084232240906677045262171827436410160898052718381238765132569147535664780219702273385086137826863345457074391135294159155639774539844311871079216218489460805454798347861072746383400446130877002965032624374099735366739476162529733811135498446832081117539803984936318671260754200350489031760939365888780906135896331257216183428140307629963093884587527264073144130713688781610129259820378234822476202036854951536875117285822769658533847761722359854332798516907839886617375243700397050115866588555650610559124235536942690374342351826445031840391558384833356350536609509136790415536345655456785324406355531133875659013799691904605457447757761305672717687632338982172592764545535918805960484657135012122863464854361724957504362362187285708214552614067256486898790870658414665263402200611100123353741054951700034068963864006964942888263512973913185522789935871656748546449344421755855855850955437999268499376385858810026724159794094742911840914163505114356345414899178994253816193466239287133403885996444341587140702944201768720792574300277435967439435695877978180334819935599714697813748254179411508334841570569617500153270722058828393920630656040515092857648250488083542431423896269455062159648003291241557818696339583454049622007907473353754984222377964753436393078973593030506375662412339022576936748778056582309225108358967653683221903891164762567394546780370445591475716063377989576125657362985714041386807016065786034375470684531565029116013076420471253295769266796024692122356111837645974438817327254151251968655610005132543675340212180633246294763957032870531111256149165050811593006635685702218383579648702753116308435871042293763104810947144136444038772959322788456265525568320600367216015558274028370423345605792045169023517010216482333965124488278898675996977770478474180594726970228241787293684734406669217166306383547602779841763449693582025493215628816935887259869819222186158694804945389712383922276615915979740125711909391201944722431777969041634513657478971420650891132379227185273281851199923880794955581510550711036001866082310302622799705474113864359219864934552050096103515448502512673081764840529994513474934878884416211884881490315031987195136995644036206424806129080700578524889200807948432639568624983729307133205850493538800291750760152548524140522918555649302628686012584461065212536345227923946957332946445074273612712820596471289910748729474449319246732277460609631779422271008860433717960840078505878307207893018705303501605203183028721531157722400277835456132188349227389376150024139866897956760268959790796740280956100096095907549330555302725708732539582090623357621422421140377956778756597949203961526518034189327968935933732949022472367187925086135043838656063011935467444399999179188663098824860949612271810333696094856903105549136517200083375618759435282617105282736950359874190021039842747981439712654090848690309825306020909215146590006960196752865724573272134721790269729614187663212604910217225647305227052607121926108579520654510162353089905194388273713702437268496353776065718374750326803151139238979680559259551120558657928957517961405271324190234803669445937228428836562911302451305381003491658817295974300403779095259413930634792980678339670499499269599635375488301089013475609460313033680442547975945288262808331067336568931344667343407849058265954211863842354828504503880830950369604645499994675709028750890737066814037294105177623452320194246709249561656716123561817225509411027968541983470823433945476548292834352206141304767667000289586758893897096611588125448671227819622761788968358379764926351811592322368783043651136359382731233741548382832931580974202888773055826928342377764987485140770700259476732310370210412934309273748580252169837377632627801081062327059644917172709053574773302803326514296007910090366708856714743319884176753328735593504029765568113820502266653316337542110362266959654661387901386586152576055316213619536012228543767420514409392473013023339542940269062182563647468514229558769282437294884840306319528154120362723193388429918946344527644670302382717944456662956636159290262171365414472080078290512764647181003089717881111067117681256833756776206999175162779645051851293887878943906819395197579328012972616736780175260415615679416306405762283579622792790219208157626903746045906372322141378451480946412443577270511803983789485934831179798038153538695470223652430084730389851604114803135456160631503757895904135500251355307262868362059292888459582181094747287873001281352701423811400698141925964912339836908038994039500978988723210280877661267669861260529476868739534094995514602415736410267838838818300254911906838438802064226573437519006998699945648518634708365885157180484132838345034135843647441538534955616076840166891622093757471954779719546829142710117124914245785381938738998491185342581359534912814394889880023629172684847660179261427935396276327471331099480337979533649705246711341510246761291743542815049157772858253555801527450975582199560128448594860196467391811961043351682494058289336276892402417235941037291602587529051847714138579685585507078614933515855488651551433814958109693294271826756794812970640922016562468526561962003024558990431592790772847276130667255027958896766454920570894642183898566233752136896922813987455314013055802578180707053054659814335301922473517641228375571930516692374366349342089786447395112937036182407051722464606134152252460232669204172201276136824314783176230693079081405869212820392704036784210058427588205989648819645003109914516812105534819996907712163271684236239201203314071905510492615477325178561538759804077547067169299062551253764038159883978649389215088487873954707567485736624154110595492132627441676346777367281553229087000817442084542421093460097300867764242853941009606012336360483006364863309364543037835041584446888791517315425011827051156612985236104279186943265006538596828501691796693013635005376193819282431267247633290042970451822150695583870340555850614725723728616764167407707651820751452353779256211973847565095339624288352553761401514649334016885137176564478977309740504609977845603953279385567236845908612273703365159780101043980219939756598006093527925474320559004449404388254630796954601426279463104784969807296792591534140088355992383573009856842455086783614282990764229148212832258035544460497047374791258487321855751630159950934627227595320333951911283133167078780253747055213649816098260124567089778551703291469584686399400610638912850377682733911778963953431400687867148938240460365963591345900202407786120809207203090554990881727941034476411192238100060475249997789594970823509658209221739798040843856572640532615043316520421433328942782476596889707404031008192409403158505439505509978473161140597849283559044316700081225980267187886046331526892670192040133073328942699511587246721124166574918248444199904582477988776670420850876512859238928018836868034937571836299034052959959880205276357450874849699974399096189953806676567935902010977831084434064361959371587324168250896241122118875568969853397072818894248254387011774988104879608587287306570254940239674410065709360920318474703371758746042436454169304244030295708708389172841739123579814059698819009971890787493080105757869990473824307686290604350282946011845902787578098920660346473131790471028123504529993001206943441161490870990170503826628684224612828459699918589521499859088363921526930515919000846958539542514889851728171916089220818523576180003110452581259463036306980064570524699486277942121900635801850310401827747521622808333052570760601816597438887738863218327170085984329557122406356037906963508371505081835589911789802233093223809044080094715277908089454356656204001710734331379843550424895433721483993945963048722068164044625397653758739207819430972990295565098770683691793079393954627324031816347839432941251086052188865781376223323074803648426462367432737830779054139044502658586998465961712610960352772763884083152743565524729714194405425737813416929660367885451588785087611699066682202993817552609713316985706809567350285194740979013652419322917510741047989737959607738355703999328210701029101936835874005566757777170829568595286194768077972495848369908615047522102213737745138812947304143792632058746581690729388426313238524146524634932443427774370315351825177837757695993002213182948971555802187764347641675291245592731733617792602763107698478301695275706258171814583290308585235623565604482828277683136020189011235690304307104775313069206202801220042079144794590325551264360285509592253866413227524888603161098660810950081533590081503719176260775473653464249729449419097161552744634628281230733833202846873569115723731997311810168818397298918043507723020710618169785661814551949483640932136924203192325380306792514426138748850306092046273987636782806884493048362959223044162126875200356413489923971086580167618766537526597349076859614120932351580559797404403560137364369309381261204753689341565772195222291225233897751434142772582166624451115760467801259450832691298011066282324976570961555954988766944768954132383882113478187062867322375355386037815654256196608551074577342948220379736255121048049050748226880248410237375086198848859898554791538262636038368859180702157338452705243320446099339993175615881636717915983845333345971508962230763979370819853724497245369940553488737479810007584023868065627006628536393613276460023443054789852600309549987810144278789200936382681395762929320316343345116802926807242277590849373709146794936000348574174723602804334415252403557996911184660440490030747602672932043722953013387352327554177844979284923028663195882036493937951854835802154021229021480429896502836754311094793184828335384294905133230195653431021842604783641839260551792663871171634828286111190276601219182207397885427179510595863434725586852101460920002107468889888782732781748055683574642132495012830874432629733555400970037005182563476118817262795271189131199428280115255520275530696375199579072538334625774133910014983334576452660994119728303686140124513792156477948101113666992433101258143771729418019790015375498931802800259389872578720713913983109879357057500438315961754996608026863090521102099242315791355703370846551971806867478862295931287725928827641559363869973502680836052446341493134009457543806945939280089173040398439271532580114487021812262356708465014909655772256618836391709375669391143804642085770380419387532290918996871090578020455826529123739136206651988757695167688454384224151154460075854556362715069989774534151148055870371264684860906210300107159223704797364250259601300354524336296129487247883480020859568491542686550979277810816982464404110037741625885618177381636238142061548752550549625892337284219831181328235706104929637908214087700624686229284554801701288920389964040594484724141668133344457981734457670562250520658381927397687794712488506222506315123821393989490858387156658535594249562451665863969177997422980416499948389042124678164848496245938656354156401283994074196119462675610613184446576746614814491226909163679074187228804935912221017438746435435373080057547144158707745854544734356990053671551625458552225276665053065414704122940650303858238686927548983560903779775320770635126194843677724277606112560219057425725976413220380931263337495608942371817217139576727380357581108960502495414980114697370086944785146603727316829804782968327552951944670467984234258814616705270476589369392329072790659402164083817872041030728455148290121288104859567710122266822900216213617718486592055281768722385735918007824952943084128520207388205181729903915370174443355732004242501417783040596701391115837017924643220258233168722452888843411955588434288635190550034730206957193136793754654013314179319751460777661330903529895759115005906569699237836138053342788148117295459604267701075848025902699020445570242779843335802555149989554052022254629731208675580252132339658891653342431037560850315125625313334480679817447018616005393422396003426886028748542803449547757582428522634366201300032736220008703790582048615350021002281070493583821845114600411848370374607778544706383693354695992048689307338388866292525380912189898130985033207964948695321764008604627833297382147185156312776635657521195415787690214211679984639205624585764559910083851749072315673763772609024637642460050653183645844922118076161457476273453033183056964360740923008870760806518761336867023682225059922634339991497774923704474930022321608758794660083034833284507805152412724187382272825971076075013158598983533273420952771000878378658164229863549122213613327395853058635171888143872472757481298245045105998771081891441283226585468216903615280376605586352198891291163387938814667675911506412844379591025590013862379941222738978124634411092995636212581605007572612949974003863940059155912838034410277174368099662115748340801880262193392129786462218589937687524349495206502560734854053544614262138357802983865711064687593908505728973989002060102427774481024910240787896135098016068896951470678459394605551300481059855265437294331940019443622907813040813512978660265343383137381210177803873058327198627360727106593138536092797730002698544428476074787936505472719286418199580613201306920633516681660558626026020042815529666938514441485991512669405549340565307198687921665713537507826748592960901230389032226409034704823769176783442007587379729855734184300414403597042847389854840905598022307809816248240852700369271382931045541574567888532760787913195529068975670137912699559014218870801496389283455028414231710804858128797922864301308938826182271361602339009690831963229064989136491775466143224890632038374978904872841680093856688007542328834423429257835354449345994155540122086946969747852128070895290008964054049519264285250195760048779963871187968504204317220673938119802461107220938978690367733233084050110797937828902707576987536997130465999272030181835910653927440925526921870611264289129389790904761902873448071047029930326341768341357247287231379544027635399467808982783938968487486429782944400250994393564261640361138457865542081073407853380429419634471147509192088162139918952952287615626771795321674397669067938588063021081558751703088552167361995230396856731883036622965535240976776835686573124919308674927505989671423010282083545953111249789963001248789846000533270667492297526041171299441781180203480484059633911321438729717833127756878288764075996055273835349430835089900016746099282462323649955072003356442189968935428610987399825720949388783551784747818324182485606069414954243293534854926065283171731720635338709735836212082673999040901927290868463722349412225317590681478082348425966170674661434431911327627498013375327126128693530563773022962845853495067995844250902761290884183704909626566287987135466524250992666790192587668315546144590743885562752011615421636236020784213925601737200252286613412820728081736146303354607871537137906115865735580464040290487413096069507719580779802287934881714403746574041653126944534571384970850356317561017596780388813797698165261914311300864350187503737777114335251223026510944289339619462410890161758507475671919957092137896206128170449352702729900091196528544127323321780854882262640320552164620282011927674207303929419931462651325979950724475867969198249078550784180252541376986019264091216459652540694149940551681908608053080988672412600337562659846929757732317525042189611554309731032445337257481928320538624920338820360831031874332680603112141815037363625103083998421593287353661231745039394767549667149581235635559665623713697562453705385204650841469595729455902712929635214401209696174362195406869798589546373560191978128929521924294468210866414770958256962762461536560647443091572110584066602748262176589887531327271550755871782331438794309507840699070082513997707710638349967374318294196837495385723487443934393065892299594998393869844678140895542897025968555372798839027530709546295008577930237193630356680236757782667253781964946364771541361251483681604015625175670643866714512211300675078921406864866200439253802707771237149262273119071744520405016594559432905069436319071499629705984263939340185258507365383305196876564803861587313157936950180488922343823951732657387358304855771401005440109767751353872354546015871534238392982562171561478229387926362379608308016583002092448865860215274133541111493573931639227647350377789926531362662055818794663124090859325858350900669003320257852390034515235182995610927707338384804889754519147488013080961800848899503981828497231365100624567632014359511594822823220909520551346301425432118385486294066480225287897677522141746649490228822850345526935330126971953719686594197885277180068187734205829086642877743742275189195968027194907896665871560522330595364994800390909065805893189947065890023760675874678112131093232434716074096344944079671422236253177040692028463638255030169770906496926439260489114587888108961665845863008969511949695702079869769917759068083218170689739878809106638927483841170267041246518829745613684248095577443178884746189957483972685362847966783059286095436121205675518631141275259573700023446785796760750257392953742355412194720253104674754538976385120021872118174700949023670025120971380836072547217452804858279360834406945719421828930627489538867060008969250351601403328729590491939741741475115322755343986979090090659608048549505052330771754095124685026001165214027850044160473652261536363512101263560328932350091803488595071077142682899692529454426643722090251835261099426098788237083397674858794226401720453278788967624740807540212509393475231598517425722559758982431220106075762069126914041929477232998448758795793403038624132257502452082628965840735290613401424478877930092636071646304349154700341861201422335581200557658180815683427576746715140515631727029565624496830162282595363898949414120890326037862251172957812391524994348272914092536222934109255184396361161352124683015348492010560361042150226713704989425519245107874267345697138671692974940945328670178012313385728433917837025175732370380239137123731706857013208053609262479572991304053080463305781605169941015986697123348585749124805087802238736092152637641186395913262780963039428525289690712660380826067584283819598422467450570984233296775429741668933761113135103763657050246214436775068868863851971314409946478601619324525568586753596803484160492395521804690014227255728015010813405469965995810098763064721220232154168386858932722020898955853970511525121608701458424123521980004110471619173154134117247874609116541841226187600408066491759443261427101266427907619011050275861777550384309385077955121552700921159814722514491527206776080056787574233807696830708221356577688255683378214258953999897563225605892888761843328423548157357494100809936029484705179105598398959170771721889773949596836759597975492266123782809658975847958335726305494125436896945750878515527153286472699550113939653369358017405802004439094357793925931675202157908484192772916460057858861516972269652677908719945218969954891081383745387196072922848194612259706054609938973574693880605773126043097708724955502388040894039036269280807026743717416358539180617248171559958209120099078360051820095916603262572755286259726774484004861132585886894996228256475549861938399332209301855667872259751276188730840753853681984349759385417196004563451535306225244316088103783567261834037834131995203940908554878982811865845079981303899237150634359163813874111017757770837613696360244643857435995088054119261039139771834482786082630683238975778987453249152197337715035866286266136967263800026839761794796116542570752007919767996114132521351686691236602402771973669691564080527379413742635580388173869958250765177641023110088173942103936670716221079409172953355856377715457396210508494545213073575101481172734199622453081161301966695564080698022692087314725612145232861703015529680853403078837833425088179833486523890705882707966863002381900193589630154254725372384695941085785800338948342702666515256347831483800604487167877147043216928320854295531988549827325070637748669032402813021113207359893697602760414913843007894164537617489454421807193121025721036007053065472231474484900921248149099557765082495903281745439993779211031325654980401049033224274498849085663388323246751771525103136230895054117871665096370356864042571104436230942268480021620643582532411805236946000580986302878812859728204817301913928239287853982923193378404504091064694483019864360732251251377701766580010871906082274060170850190637359005908936346768028523147097933833935281237723758362824922674578972095108642332521223180244630618970271108093730150920054729507025446170107680535243515031362566959455064161631374401250913353448038132188553890647989747603816462429328521859694147290533219291236892014067220350483370255380072068282349186764612887586792259743922067868134306264366420863325648395995455038433155059969233596398720104995386408750248475811765242835334408909338217553442286841466204138394570215081842570336984130523223602648330664431692605475316498997871902180280565183419014032026387860524313340897036550211670530677822169602373120718388376055395066834266786952241202142231389118698195126193843272924600641106498009180370617577324499250058004270800396353437985151344764015028739563687333759740907164006966075710843704975477104830432690158082327810201781491613520537990431697489340296506101656143162169924840468645114823875481846858925438047446280621110749021719049481665145888636078997069982648363019828689268025468028279743049364134662719036838938515732240689407872908141486990477796252835551162307277217529967237523554420210515004081600564606231512158686857634295900165237326981185318031186079538392725525548369367542390544511386187070733362901656976542962410792323967918867695241944932747106388809447923560993074069132379059354878366064821610346393658863307582524603059693739043452267811840026529939103726604388910127493832914161941826615340779641738761702081871301920596339257809061739812094489375038548358858411977955368759803678167315363112805897584604095062545705613354630723282440676288596910409379108390241462884002671378085760839546561119559716442361807256536510784376607463039340345289685056967183690497267474526795170112581678628545351266793683120284225108974233641130051912939754168832137980114243588541622122377187342372496791682001841221232380342163906994492462080777611962820444669674726041638532018658472806503538463600777394196186065254948773529945033974621403551527571159879507387228174215605376735686437509931030352246926597000939254900589330881837413735847983427697273689051916629680375979619988310905941538855306854926738392969165408501652852821098820648551653491581962986385058281140577199159937132805575484319549872944333352595823393445316844376747357524418126439976551773719929360733544984019376383028455439965266640545942495644537364602903777763008803908126790756698510127258346054012601259126346065619661314350694253660726815246723976688693592169435901685850110605307833129630990439200124634373754128180773208887397487358943103287531301223781505280624342969135036753219538569410284782868193544518323281961029050819814630372099599667533959510280214157422597527674006320242337343826755320638607360951792538836223101463837494216341673770548933651075788637298273466557885436255568185293351453796982515820768873914300093263910634446821465283941886972600635676261985709354618265963245193911309504925775613542894429250075134729590301570459745890468715992519413553563693691342465507017963678595475823999282545090815548069837647180632108785454197432434685237137083410895874977495444989846476330024817723177485006665334411563952802879998267788277894345605946324643158209875895156974601968733021299004632080143533928173634948261755891811422454860408150685420043277656703876044695312526443449463646681861720138732228522182914202960257126688004113338987027239165228291512987699725028075804494695047748052426134950356416650450080014617489978884067653829424021812936119505633763457932913005222794923433507692646417586338585371540784390529047433771036895588206182004168554988522515376350558337684931791686199795281292657483745537679442767173281670933714754276309289474227231058916074055416136341769577925863690119002684509872132458818788444963424305618517383575850444015272095562552592717802753506983649597497393257362951768539657253145865374983054614624649854516177570893836684246778458621584167574556207191174314611466468752583743988306005787462514072922282545869861736053345686615142281080099026996733567901872596373980104632504207341361151647458376907163294244717330984827143355232876887831274317814287517171484006486292229337352680066946637568761075085497544764231638752614051010281204444340541670964665545558704478121780061146865859260395507889986724980260633533362515396917757230860242873609412331577588553858701075940005771497074326813667677733080479899900034008822430018394956611162815394275161077269400985934881271271350169520354091139264155329949511780356636847628727832286371166678323514071059831252263197311108408727860848493177133691843853651967599637185839271543325488523827374873891619953116928591070150486844501203867197295895172459309391316761588483218705627934987097677050244434060733556985017155322082301983500195636685626925389129567399141611765713503384267322190927345564479904796647503959509556795871070151286785495164989060956540304806832795201498276839383398548317804108360269698698573202847442068468154368887234049530609016893516643881842826355935273891521744433653915507341557361461862910752838007584681188587536801925012347300199649198141935770427172452607409848220785115593230528722083259148604277447353984048077738552319561839151407183720478465598028777225189398055783739797548587128922943936312446705251180001540364187517453874628692117692631515071355438279884498990109463979979187074789874675246130136164533511802717651097648923511962437675713437711493191799326395187474128188315266736685831563098917632086825005413811822335843333470262670735046666571050733404395571314881471780731232604303787562750869658350892483696231301950578351502233283030311761223107247583160952319370502299320680252088316028675197843500976027144675273581105775382307670873793876866598829318976569826679841917413394553110727439277420290456839885331837728058110191485509027672335658089348026106170580171734804111599702650441431955078146808940548396254038697565323772139478516792815576599544524295747958489208896202545870933221695503261729867499560099289739521925423111948133174044785485330525530620104041786281789951382148671838329734162868407529492278064614821767889124560946018679256151708155460340907544255481152723164745458120439230557255456130620576119598549932650592474067418392369219132785794475459122545585666693133048638402901794193737183238757161635943618490001873890353484450857860890701539610818123819182551473415332329616504871015363931161856639001560155246937529786702517528481002405692670927047162774048904147281970263299752694182876400633213674696538421759411187725335794612378792908987673539430035819388036616237703997070132626196654271476087065862652106092656757120792429707661152134508972545682396983152302618369052440050371008375412038881188526203757599021086524083344642448248346258634882960637169407080304245973353080138793878133532186851090889933870474773015192349984855854346648215553790678157902094142521398243198926386662806655204133741134837376725652388898714456619272203093622595660970347890852041241730217630301417548555229686384614198410629687602445907451029662630197716937092979693118738375085055136299115038250241568692385448968634420742315047619194588011769665191154197774465255029455209108305820351235262848135694869770952298702186087375108458107445303473331513201543525695939075596922586704124360933857226135584995227251356825349035476513933554288131834444885536749282057642517053055466519235296304829201210178979341293747300699688451424233107039070154123570328664946684320039730303023552424940574370220129359711369624775888909612489927193533435246101653421456975402250796339381039167201252022930231302853114484154037168696582916153112725776228572992271609686799190085519107151075085003241104868471140763658817501281814353072370191167237043362733702949944960593831472785784907358169146466517005296875845648391612468504519394996546094724844991992528193034479132227472570148491081486433033232848757395289729508877776938302014954243891863509710771221826315566957953129922208167431520000916960321659233858816612376344537947382444788384923505962049149972951490913029433413766426386348753148581301887397209921089274189414764889286985614729474983265885586456364719174487717515778565880885834619243640844229858191086220181593770963006703814247881515527826232505375290992009092061510329085067683010199237054318803223466451377141501058020242855611507877982776076888328667799972317613473426736804203204543226624992691799695140593116693868054565637355223780732650738628403708894441711879712783453951136907510978569157139882622128003987531544158686340930164709325894513753773533812248424784720444926466121146735804768005059007642121970690468853905828180047425092703223643092122397652429553313741631153082207137213377792297417870522273349387832298774886462968119468079800244320002909185392293677193791860046971698646164790646739702262866686181112298407425133835789271238681830181327256307148183712942513434458294805434549253467613398210580621530918089568188083746504525568719709295492001557546704931378266381519803958839029961948706558721844166453839526355032022122296917924368134858376719490373624831621993064380232512162263629302972354218523953679825226574109177644410013063012552110463456161246600176050590623446830937585899627848457273304991829678641193674915037274586390197667442172334355126075655808928299938077774845398660451346841910438132139622222223849277120024486877037958510169228920647161630869604057569492026548506241730045444663662122743904917767525561181512689497234379733332889321732891524549890079794236211365816667535709926705861019466550847057881115561378562872173187760868799960252756508191188823178814479856594087124325454742239784970526303876924831673581993387818977067526924553355911148751658469474695659016137853784305218777754201323149149934907583874763528374819363874348055428719440288573375213862490314710574413339313569433102705512096008662533278648662549142067069759988193513278231388505778231450691078643991268610265666232800445549731317342585802195455342014413004727487848806326311753076433184572338014139227098659381472123475829313114807920736085910346993014473580618574902744879262445106461469350743048812313755632129714432906657861448712249631371928908023029874538975644387509779012191948788127394486469034579683450206051136890551968751788935044579033838923313424668900108293747353204136227062227776706595551055988281110589487080573903902735303516119834453980269779358026742981830840074107454473321493022761390657469500258305185561337863791856120927345392169512024772715815166463948888297939169694823626309265939651250148164660003357081082243039813595096831241246419887211873257242606072115443958394776607202748501851954239509020168834034385344396822288844054665292051746161551825165174216769808590526201058373430313975281546027685964199366842138091494752480602337133084946451566869375482023243627761667174024156925269837713482700580052166503384724086182912033030888156050911038616473786375437431228514147422997241575132522435799486441987790033074029859369762051016782780393597496567266198055070327594803405458999889893550425078770156541006734479898150488237899329189711852226706843508990314759091242653005946343782595300550512830301012805647945390624490275093872684068601063618317055567300414770145370935508965473238126610672453306430092251493614791807091214173981949919054198676718744526657976035413378733281661487670285382709749642278949869786582366321399698877464949503078620003996718516254434899584710233516444636634512359738993467072427035338531073516951907129836897982432436624127045547869003773577755849349474065047570946253219976693137196977550252353569319989194960048776309045022350254377736193922247297316498118066480596318095720829537865913039694536268314844169535987419573649721968901616106363515400779731351975202500541353867018549108860108234874046870953517340032354008282728686223192784210337123583782945842650551047469877854878579042715985536329347696261903364473586777610093176714899361054122540636589121389483677307829891016854947028239081249133820322810367536483009773818122567601111163217413932729365496685427256057676700352007686463578911649239857905254280251788141324143821373781019765999937591915019883985143060812820760615893036223541263862025171226348073471313697486539463645336094607153365076376591347547167080079557990816015571251520434120955855474400947262319404392803396359898616416994651834771071661361393802905246911193008719138359728900849037449808013636111639942594783942547342339052204967748305615643457598435199733340001706347369677294039813537914220365526757319048562355470989828198383036603274326027614662393119916438164628881982726011436638631736210775459922891456020591311997792233630579305604830247999096678365632322546176767058572104789656340349406824979929483589160112961772268382447448218416026546188581920950605767341679374004928631619393213933175883522576329961166907741280798781872384933686393837499278184138241301358243791264142990812358776039772851459149551045307629289522144470508347183685631617841342793679797271763468586395253702257427448083390059389608740341685750634531466320812398922665968229053757184130193265563792273244421531614684126138014574551497698519015680006771819721827030130430713510370852852326734168206816338198410017791977160405942901327718459003499533688725548022344189536824320563918896315842240816696544339680220799131953926499769868193505139452405800948061014695890030564009830025816827013213457783383561470149589376300055485717117325950384602897763859725744917735166849681934498886805173442168752450976775439367854894745037492211337277257107987542336279671345674298367039458452539611661898192226886663056476717728801392924684572994812349410379098542034173903823925771962762897845065065872583134771772404061967268729377481058697134034597068095744059311402717552893846115765708771419892247146902930248658533986014700448376447865558106077518749683498882794863994292281496055675205016772778267182029284098002406399372862462485512626007114151495355701759481851021204397989846497586325404349173099227787261218887304467383196009828013703596352597467142149304246415889451955700403719792644610846141530205030871186786460809518990932894577324808493675955732589919821899998987537690991003185972754322658460048566243736355719650153991311968789566339785828530127382709240667565335491992304513145176222713055694968060121981861175779542239214930519263587074408885345066677920060836749927901009801070875390651617861199899332562105936342037742718354965818843143328335237278504274326501807799623503141113928187279176030568179689515689709699043516024952109247668592914849207766702696235895653477495341352604541025445265877382674907603795317887279362997670004818758404991571650260767941064416919519251423266468946078473756443497873398549208569565676388120299832394388760339196695686991782805450900726826874234106656825982537127042148154457520188967412634543503829923046179668706832099596878782415790964508805591208850839713662477477441934011112884309149247303111443130761981813259170637042555442172251298894214091547499449839088218304235634755259304736992680981176268403431729978240770211079168742729262681181402996002608478911444519573755736888883664907593674500285390947313354625678930017684518500492328585736636498152187409279403912811825811237744336045912576015761313471214573003142372741404330203709896049304617509098143622703739463625231997932684858164769052369303908548685495434507218335950064681771888965713513025455558688786116861666575549130116770182390262090147952086373743343420696547695631707116354022352937739592508422114634849581286700807240881578451189548663006940049958966579388324332916409990170878379056556970295668709353495665915709961062501633176214787164918872741222205333190600821026854841601486925082556607717976278892237455305542925288925014723683955236638185820515428763006870997126989556609283010845081857810734650976128953865982601432228100251957647589321573277025806870378663758213980858389614320749371567264061365527865716468759162298367527300104166909430348866669542251700199545523593951379840881898567418438990495601505028291905627700373035151634360444932924098280587714976432940830660803406039687499824391319623703184869556229843262616049963640190786422478333911371942368241734211195765779167084260065084342839419044986468687497207689210447524271367777334153494525014047144993084342682484530750711625007214554741676372257181274177721951595637922401134953104898675419292597392446076495695885970648701001728973113032644282112212844124411566868271309386421894042094934769329014164043511606228006360201577420146076511850086549117947892113372074164746793874390537936329048363360577986252094251517935641240007121880250358644410613084120568956819774211499173950174334933423355188802354468041459607818814400603801560322394754188403826658673215303378330506286767986163029925708591718522104208020902612725086089307067327266873689469705595587171751408811193368462870132173900253081179728886973208042046909735372488556377677974348500658967470201285319918746148219194287665721583367809768482819073647741402142092322860826186734956552309732537270194629625317525398606110101823879066612705931394569062724943832979508740827811963776618095082824896894706488772925196879390860463039250042211457943886384589776256442426239863367699907467848433099091398144842746218243561220448836278551579428290356290748232154429362868469905167196701144398413320368837693521318326131602848754883022460325663440457003278456014772340148246926316836024317058695322863088099662222501360689485063554097400122365955181458724839153607831499477629245348582062897736889441377837499298000999731358460765318367579969779939998501503894227030226051718925166624558947141269801611088145254036585769180570936017176237733135304819800433728091569338313903903889263091124299107004599363181699452002437960670925912148554407338868132292639078974354385917502991266653662195735308547939781347485311927927581591305231308230202121621374002924543709295128938917042406630284593022175094231765244184140746156842432932053536184975745811095254996618543207378153874229167565142788244524030158352075222245179889988721033282949985891777132925991682957386399186488002350356126837262515546802540085006164561891753019967235636223588287549006316883634194206119778390836866794787507563076353502541633109123089610388958063251645318422827864313261128015025802333157563907136749681813831241930608975888271097094501555641638163512438872607585883472204306393630086339616478841735250346558315780785444598191680129107148694985544582675151219958839750558063437422269547495374627040735505957858478561652215978902670058786394802670771464442901497070833951875707555744060491480259711839931822829770833572981336078986877980767517600664817494808327704709123371703344885902191407180215859940507068075241271988316918540585896780969704536281981467980750402138456112216246287617903232768141874256010010682693926873625613791858832604258914549476391952162595789711510388068103290631251720135211319938666862546612011415021714028750649307205454223779582105498827435099435091411360691803746172543819323539855902293427699608570205247013550789137794625019710195695988145756256316182800105610923848744959480862407613346087208781708186932868258570721324519920025381278784799723910105220555271181831098518815195548569303834766943049386249314671057338331520399379609754620945080456118382167844134064898137933970060554819543128158936839153438388994167794842807492937706249880065612223957167415062678645330822070029647339578754078596702004758474869556045956029803127653578320653350283708647615466561613692475191380920487915450131275072517615214672037731253723633322721029188642299805804780522652389634343618228110805668677190095769951114871501742807981871336971220448864872407881159356771556331849585286354116242249392168956886763623845667101880494805570471414880554111378526478089791795270366135150904770946997585810620507789851271783091037442485262557117166588609942000850776504727802877110751958527421906218324873937177450616422750878822107172237560978891402440684427272571722300630275453025033994668947026912776344168080801105214264444636238489198816771453563282278518249383274975687781980632913640069626157058801385045090354139966473722361454503986519875310005429657140501551927623324273250653646067298606863945525289322908043340754619549088841905792470534179940996978803449235263857798722011799128797977428797946187745837232065401849372814332023280168698407074826809764873096554277502587308925578402387727157829674335900438482254716395071400063585961763708385643156851022209815888907942464708622225058661423569533571785533740883983639154398065141677195897863477939440200869440307526269442541550244310251151843966187419231620594873396648966751643654501863610143183406883562233327247374396312206510676709985793731869290930145947033484727671758195414175626853711614760724567847770782856233598213675423203887791550349680178541502378873559052654795559342948189721539238061293053646163384078530040451439240022655293914090789124491786146716485082729294436234928675404712013274919559342710107788275771308211379792620561119717772301605516434910281854900562432253655807348300048039167776130674487685461541757073318805634572028055159170192920835070024356767454084248004953034260978486761687322362815352730188773351680796855573604999576194844512575121055676939301531541412235558204880921132322627985380341473472255099963974827931105979431284719462152130835599404327210127989717268620860814389350323504081669142936718305452322057774766452291400156854909183249349994407275712721821293562210677301841741417382702414705133587276411714452944994231704224232562426618459308211709609863892449385324371945393133362039762000538577524890054509371873284867833749641060177279933948667184202257478729570863267285723263248303194218412065661652378731968424976559524763110154084111506096548240971295507449154316287926936968945024975891106109121832068175708428148323106083491248464195694673246127833298314935017671226771791540263108253205755713899924082386151750866443875762394588504705861507829668057356347219315474777137574458450327909479856384424389863408541155734458851512077331980454612888364051087657317173268220196995754354974039344350976490888822854609918341192888985817438374736750935871184794850106000170759736128588495814059908753543156017855036259253221130478211803129333197303847386707872899126007710874243879096910563495064065945992843375881634411751814124928543619859366055633115779133565737178697438194145543856382625677265826749312527116873687770517040451422767641091348124497218300498374553878798047571831490505616309779778135612725448381558250035532796660379908383449482510645017705201295174419223453824569476430041980097258054574627366784121477623956631769580744124002611347861105852314205262536516186374216826149415989054687960003288667595187758188080520427304120096322640024871758190985754693155220097172786326879539980594463428326787577257352651085966654825528111388563219631548972148841121522235229536878945528925740619993729662031841372045768314361763680620853469292502439908346619424601674617200828906831304150948840979522082636602069003320011757496274874359820600697160594522742287934442977979448611371146701264572941805170637072302387057946317720424098723245941474567680950221799389062828797204834769264502624355208336805797945222026539300797959258540689342705291387799131709101924848921610322129631462019488949199830792428311039214023861018330486547990543958760040282085105740755121366646464638886839659867623991302196953697828981329806335149095275873383973316055736719106253425227866340806190091544158966922170217355265061792263415985135298723963516825668601844154657716564859214251689037107598747963758617965540536807095762216337720450357754506797900259315598074405684058144366483803190931871881256305127878818317637319648185128643136659062226194981299192972068361990244970448143088094049132558220674281517752583001964908280120733656035770922819232009690656192651253839527119470528375463985876104790079994729420437230553539657337065353421631769566747787993670888992068563148854838062487376540087911001040026222617442558937427206277266670646230536967773298364974994133499880730239966074219306978626162086594544241962817269837051327995451496727360626039256628518458035439206269372791481696940105182126357184391374043665059943635956770271838301229683847948245383372798905113123701169443069922047412938359281381062814203250297888927749543803407987273804686964559039683292164318170123907492148711182382896893092115381148158666545383028414996176146674792610715933056240530701425326941053767535462635479249774373806232595679034210773950920477869428341306662716930744752343440815960939033963934779679594081510003202976904900945672496501268985587478008795593863927694860281957729227107225126456341677048540101912598310343061086615210291507239962839451212304361757720584482201101919594235927183581901217657441294859288519483479510081008540294639591581382677492908197710022093631475789975012348344161582136802158552848214296638413864933381504792326547446689725796843654351252804210712122104390855069265632121287276093283142652721117781504266913927208757376879854151144937946323985502409589140175144381505316569418772875667335194769370824674284290161067276009492199987764579305545575941078810366892320454260325709400266103387401575947640969186594519074512924556185704149066151782716217202729288478789224526179159099646009331260136578359524481640222917146251777440431565315605128762480329754314450989959075012914984744409611989956230628487618839523446894978607559493942586076363570889056022228790349498609961429394742380794046478401696966546579775429661716993773783219843493927269302327009598131541852374033191739853723497479135741616864532749262228386257163950369392063002359371510554461754490404813145302029301189798692198540257425734804955862198919136953933332885887749762969714845126739761308056782161078287727177389258263404229345310644426023469856796918112749908202795120030193729437860627245413855301674847808042756409297358876539183297023440359892530552582920714931629148074314597850814185553407533542799889526925428038613646145371665885727498918598884517442007257900607656888778417449977958912422958815646045210235891325505693668755386722302621426774457346150680487249407442602767080864701961803760521322906952619875529251621353769786117137269846784730135973369417343340947013350234130012457649445880119282799877247774366749084423969855498315239631834377831297591343064627164989367583613154871558333903561337593960308150092107175757546520801003102061271440940310623175708681347412928779287982650874867511692852615701322467777954383295663322552193501135065257918089995633540853702279410947343576919628275845359271465186519080281589247071896304812543347181986130570819930816352113240787860887343497432675934662165206104137439344142355611220852964419903797092910062361945630165767764006586091449178183122271998809688638983663881565244998330868549127631920244512477409949260281634899999839151512361663731120079768039426665936212495892651261603162254821742306947126907469491788748506374279227543057704694418043164604640954104597921116498088523984570207140563955362356525137646292845957433364645050080898300426302928308086170889355867949313085575508738726136032471300068383117213558081155868796747261880394398882402120657998822920230307714141739112534454808206213447856370991547002748015013073433646363822705546743972932423306936630409650663540887067710967402553228759575679537598985906874799418947846316889284953793164542209821907843976308775127478771627255087044753462832022495609288767635190736632949560327592598679200434073591826675651543064183151813870943709363627064653070599835667911142891884336041687682713167164661851857177749650003049401371708156999021353355637549343382285263617245635363186953447932670795670951695139320271133440176897719675385656145863172180815635340072454138018221070200994331041622948805867506888862904226162792541943210277732837825396816192924514334012732511839646185899124267029689287490195690072748411516536861610203082705119547320826760313364917885106813961119617789627729730138657347895214865656480878990384964315243171898498157864274881374652662718770193183576603809019507319698406040352776250625456519390262657312216918594618629009270555788908665631361179769539434096702017066366703875258141532141900885973594092964559415309934822889580339380394704006454442836581639557966919191483444076119540596943448057742965423255486773789385281734086232870817504708624498304496700212861755596127503792849282282719405395407662236682373737092890322474445690777546447689834544850632031416373241862798421270009522250494006757583652933344111942935439963857820889540116497975497558909971602615414788108404652946131300550911465899751686833615761942957447036393192836456255974218418525551379452854537489994116688306718579961844810177730482657962132497851528174961069230639621956165697311255359905144189178074269678100307029109486336928455470860738139760014742401772038300312921057111481959829714812149557522246157355587358000089258375503586175040750643577867804276687407646088061215428184655375041816943529545949465268232591849153593952351737097177601223349833256297240370480203503514827235345672212017310217569003975230413284930570603966006354429208314384465618491686456773840442051347230607022134555477482097914095488703206789620863677219350135340719039727822506289035463627098435137079744458836485141819310580520850697468904259944040668751604838607475897864367677740900389573096599028382711440104276685946091044229519134997703161091649074766107638029887437898183202650076237460094255224557212687566014443233134705739100967042367334624471066424970594270579691552403948429809643398003583776923907424470346175046699790924675957637816698650729567146147558245549703065106421503391487083163067129289984982111156045344100265184507896802186625482700789603319883147416875003554598307991042744718394148759952362684122333551205783515615769608623684353372827838020016732832771692779431335926641579103376547471823503255067901927622160247481245689380094122579073228668883574234749562640106536893772461254302878306430364773029171824487919295486441030198096824954349432052728355983378589835844322815101059473127576784536997177188455970307807350753024835664243637748767138958813911970362475121100385935212739933127213594819346888498751849574283820318918692905545702476577898642012563577666322944652773972103297532318208493442230562982887295738179546049213506954847548683192918422938046480275083416293595182773722430628503479529712433346208824929507537288608655393487056626741483278186611727696239976785525049769984784682076777275407074975256807999499387838874707432756634546265650314773066583075112253801095874867812852027293687226212577132372285372950485578664742391401377289939625859865143412261451529392619164332055074128558952359624516077957220425666914146986519465424384288716266130632477383857978433454403997219420846356008640291890527220342963659459413088975741363633229262839959749937908249352920275684951699221800759112038655642829178109109274644427648302417138046523018307754119748340373739774551475020631966239438235573401927128565907395175960023762176205875356695233971965763573605079753629922736193232116129560679442489699946075520589010890925732022459671805432595687058830479717249697151481432349518482619406066008291931292499200462190048723286555429509097661912447553560159754969185326825569240319035236606434142300925437829323468399674769897382161078411941836738061328259526631434355505419953893169919428303726807937702461934967643690566297249147921235126285049775663763439932314946104860104320935243652523492341850281410191791128421358504213114808878394801219331763602938203763544026037119155394705606043038682215566127822387008267745078320832606706301320295830412358920708357634467187379713498386596295101436094336440093303853428128833655231762493462302297988555109444943119116620627630213321499137140122313637355226106250976857251889810107859089555384108242497620948531621813074117187192914176896042833461506861112963868830412817659242026413140089642121732763658856715438809991603154524728943245056282985978844875083076358441067386515937786610751835561376770952513539776911292944059319348028533462898401111293223615163188998338570252432247277749719820712692519052855518200947447764173834841580501563599459290307778424730903057293581660794331450899488691547867366780546709561996855342825073059201024314006719240582187071253547792082379027949534549297837297846553058955439222255558677489224939268552063285424881883176437231598946115185939087811321650865382259543441850487468495349779125419545169490120281235983049781239143834685592153908684945005794651609493624292480485002738959475537367975754387255250394532967836302722986676865228700969924175624710242582025670421465745591661848278047441439711148002619942932025283870530122839903689107221067711414128031493917119564696130590714845679066247844200291378266371413963617603974930949291745767224772303564113574743458316820053179930985045766504700883410694564797435730219304831771376620944476429146438614606357513074690803152473734494847675071873613362216397276244463666577121261134541108171041390208965156986353097066305411879612581053796686312747352237269457480830712819800611708637678223943114150338644328218427948522197881491564784781707175765282995449037363474255834138885429351387034513922655922140809876996898103006699911305141204655346421989222779527160580715199176191875973995076017829851837213886154440173682191438339986596612285535113772217404672421931931150065495924817091782180785434261120261227321496710370299870772311241878249897671490926057970898197191726534305464276436695166808366611784890622260395258312981196909408493198337506177853273628646215765546311773540378288202754990565892331681907375417385847619273253827755711441200361211493614481441519177136992332212527299563702072838968352479110366749008384353344436718294438020772927269066285249984765271935763070367424621517782727796120434398679598014352307242162113710787470050370816133379793909084877669801554128858893936518187608295942474165530561747700785714353076402672689902391545517573719375410970630164726940978555940783903422987221702628075792601017968144416941040027756954653367827147088923117129512420431702892546048152733346009804276570117462790678933703876498283235933812387416177543409180307635860144719558641061232811870803327068226131381832016155911117604828367049279223940538173186355694164075100240643341010335371861422347838566987084226217710708158417405477024696738774165650061297063507001919915077938267902200419585131878417156455574803113180354560561190290704772720180343639574628567278550749442216255079071877396632838002914281015636264058221451816576027722183519653548232667561050432677689489578162976554894163797374488055351783724647279161870469492354077445608434996264599086375126923711503501268947561569781265782622768352741369484299443978074383159987400060176187281029023587811355825847652191794819958733510396614564055511758601263365274877183081275468239071962517489988467163792527562724224268997566078915272640567688922340721831891653399210724991558989429131417851129396523292272065594641828583828097982872865917655905667830110845937391464498857252660883161319439703859021328683939547696951852129343193822411756402244341857987993328972310832926087903357580104832367201302024941514953861717404414298036678893899530185696539306946448109391374679026203768409509624091217691572272070252318968695501877617308249802348954159019061164510969019557844315467644232379418467634847085508850878796358247646470573689954754717838187652767935961716181556942220874994399169441960359159119208459296551510876861374589416990077777916872370622733788946072138507628625385975251192254194492411362038346961876840507013460162404212024176658348860717433037317354267292511274361581857746779932031887370800128751826054582119446290547573782878868022023252317746268815004930800199976850050999768884050769637734178648311215389505368596034135209605166920554664811421132507637838148502848409541761025169422846584005996477006316044408920695085602086361813733479237521620194749906074660845241736141062355738799670639115455400280602411895446578671009522153778072512335012732745474204887177293911933944454722810621180222939919497632565102168834421181652211634924773697692163773200792392586029726291149020081068414734008937507115990947692969135638637769560898639659931190232901841390122680212077525223902457478164014394753342739015367276158187496985017002922423971805880762415226910676877139406210324664881480010258700242705106452622879977869228914518392247284330683356683587860043012417060270329457985788138474773643934392214929239064359665320445055806219623055803064326628323721549792143067262678507000400207736840628279442230338396933633809666997096026499086183025539940801888432553267506955063046876916641409328262702086934172655143327853372869101534879646162235261516058751075705073997736814997407857712783011089174069600825586967515467418572848826434194575870891368079525689193487206662929482340077729669553854985167840977872739117145507431204616415176376581979317434817657293710049574817393728723521245804244117866346551480118873823168450660276223414917825798779697359773695156073849987785530174991571294773624394196895668051986523946761111355423201629765196441416435294575710042345486491181018549706034470183194417466036865934440449382619891546335493001877635333957329114430973595645976316011089826534436945274012122304526921583236496491023596214983676561611064824415270289950191667799494916758371273016276134388076018450466469132633015267493740297667538969914380026718128315017064707091657095135082278277817422969561769590356532708781299768039839737521300504076257180737381412108288259336938805116109988123438636045815858611969852096992778842765118776325125463827034316635649493289198928665359973206786588139112301159085610096981803593694103303472043788472266780888472605453119518705598540259955746389495854433121958485354666121550680451689964700503847723889334529076228981908079765140121950950317418965774871150536590691117499736722003937673587480325811475773894453017219390545812626452539447119113763802127606799718693991479745369630572860694368227451979891641760102631001000814214159794203664351398408325083773242943698752317468447210164357331348157980834822445838686369773330063531385448944342056852268818888225904326170658756739568115998043135877290786081593838683570064059968084259888948890018984062431377984251111637402333923322414439487767656307533190580142810137629637179187522336515010087508250448157178706918145159366862655513441802981459803372565284551242123818226921566258626747158246617500932256365765475790046366442105711323064508062107798871183345518303562094810540896774382133026215933861435331111477319869912057419969776265871615621142583108016339032948522255932209233183460641832414097989933231172668692290867978868208653278675168082436311825087250369431755589618490494353133255032964573508135859774496882803361012562562077436924994217551913035564450975092112543871107374470733507061412292174063779252946238325964478426225047118048901901096561091779552937364954070273125661789379501753796594317241771857671557320793414887363520268934771074014547536785693381052534644496380806176568784205127117456038804904755951520520047637735797706965364177022366224819270183058382723813209884058822673668661181724874863204363375117223482832141119153546416337394422229354800107485193859871381457263664389790064854337851609617017225573974102624376235502477841750549376628790354677725417482283852637566669366251824682324813821261566695364484240483671835247608646262966417989740282702489318255101333678317248828557362103652418107782550084080454908060861474800311389590099880713240261600641620683994472866982209002832569375155598797261479697069013630191031727780683128776605187505919211428103562524180418344707818339144386381509334413881105212685413740440310107836454250833174203019485628649450524692876521377531709502681368847315229897078636058385303689388455528565421797611001781343951195648004317832629129545367695378399567666509167386828154955098427333264910080916241147428699109158092844446075967404060860377319811572025832246650436958720764667236099215064924584660413801994395178423588115105709023477846972546564627987831928549143618079673967480648677501895096185812282334159190859649789818570879183198544037964790603106653549877551059124613583664669992249063827610540616562832163861473648894522105452182177518342590035766079745677087125117368550419356708680600999171337323203281090645735771454944520080924558000139184945238273243208360163924209788801006644386799313692692325433177086760171045446273572379103017119377833208707926759929576270666625012220137382135325371068947596683885864908288486261250844404477095622131906341121920308271090649411899114428538953876523316932320657209139636546087027032458978629946233686254545169461544034669367884028853019842435692552941718045208333948955008949831386196093051890247516226080813531914609329278206417761767802081329337103726719869460594998493349745158328827364457071626603709108510794030712690095909023761800307468472699342316998335283506925621959385071483267618661025125234222849549345663971264362892312090096957820322067598105041237858309394289825063693269426979738641978258226311114354674218909794618925018401181429700750627973492592274395102774776659670925497813506224047822921986080881738649530715802364246236047138850267420077375080500215589572106698451298260139742013649926407722773124493769233956605784395298702430783883562963124198881108264907670417458714299649216151454457435246510615030234055218256629317462425843304643721795387704507562116186832283566244332908951686174348530633654186810150414915359304232393678598186265656849436271201746004296743721683358892198538355381833451409141064684520403852090114999106584879918216787373718864802202841744824506495039731051104103916297984374739112430049074046658719005042076304180292296075289351880402504388901312405053798734066059999221265901783521000653751303008028637420158097037804892801829270050629280533784753262054886460316678634870161882565182120268836911667389679350778684882008166570107919307758009582820664954724579277599479321252053204085909101562551038607772635868462543157972712618948795214755138150616716078007909254687422324731092232074232622767904277995863471172221613521348284651113347370776992724727961834660582073048385315412604718134375522227955581683962940672735448174501390933612932384557575525035793471493649593574947209150949452829932548783653676251349786196103485492468687423419968246845786638995435212209461362091595851522225345032338758451091410283212666740476529817096169833520328204355244178348129993100719197332954553452016221184723088264996489831137305084514949448954625334216861172974441242879309166836386801216953442674330749908891252968263387666834822309395747469377245625066241661039000756606808325566688217927232132452808104696598432867992045136448612492254070838516261156490244974131435420775156085312071956386255537806256797751916829043584627234288846202872182989326708818515120296729489882001392564415355265549443199620789828751548296936109254102430686469042039958895553774935648172843535966853617721846833147763494785902327537361711171124317380703007957083048651845883790208649048132392324008096215633805132452069264276009238830528403539442935621789508354374112409894082966215108865757688629884131501577011890163064655782883709909500878735196748413625367261906583114633875745541618356875500010349276791225733853571393153102523165016008636049235672054097463182398984010813619726615611903769288573895419906943611453642607873199035432610838610099857388565759883400839699621221961671834133926482160151303551958825272797803948939853802713369256293220054125395791875305732492321138870847290267770798862379082373137589001829609627001262451585636483588665283568996806207952146250503100769609497181238935792450583850459646369868997215588583024525481470645319848463253899722502964272242300868285822974417996401243590317005283024210481717425542760357013890501606184506895891708418802358471650204029769162191447706257266703584401291131512512559688690816388280331958786056761301164742055026910482950646902750602891679035526357935861886226138540960151776413075193194152572897360267814251808367740513284042973800370102807241685782556215060016325370525123722819978717329614302503905658583504728710208451948935662654323384703527388973533866377651910513050765186183242619539667234828944712565534672666764814811505544002351420378043612993826363820402103958901461807748389100311216870238280277953454965946651389993222326394288174625428954838911108315092772772709994140092629119912211283281899686978547984013807277207575352095811707391847447897032648349327982670123681216918637824437236922894495850146398532045022442197325078211931210723202306650530314059988507288776417625477960829494701777114101048343265788519866974435687702763281716310665360344395809782528873253932234985964056196928718562588992870975132745896267829757400660758127916354241351630133635797359495486332731753171173680777228680343243685190711982162069673083582150025501017526943014330673503303075546022722783144457405299725258093432226119380450105171603474649977420814173958113349141108577059043141265627324899884369285006699831913172439560042840833845651337947762898718090845649576772404713796565363200586299998738525317001812244805568440215778944929743940439713532404771102309550583257828422772628933829484762324891520118170216311647109494075935850995014703710252636352176397650376874649713215886758502713010751099645004155732193629288059082687239014913002827103251448915321909518813568780148443772988798118836355681076969831138659194446218312008341954806842559423779987970398246140989851966449758812073220554772965093874065068392572060582164315585618131543674630484777081240681062555560033848416899624657838230940567885788747167250767798205002274706859785928971817709558538036554037770113929132176040376057609376273482612527346778087815011043229518598663822395197661304855351732423654850479960837777155142394366083036831935750741351041951788715880100320562364047917707652512731569389822348383878296710952977846549715084601943123278958804102114742690618174697877405658659596577464011830192112776260689806202701944849126643392842618222650284049570255335895098036615679507953301196059325837344584668257637363183423385882416645548883498372549490352505700641358547175885839123597955450990268137586349469675558189446140248794376599351928036221974188402862128304211379251295692705551774471754808594374112838710063401212468504049830586482369599628864944808799477309745739789343236559544414897579013047295101834012101335143450688063928847581394917322818498539983383687468609710733335442256962318389804090900925939446990313188132346067608846197345412961336847819413787205956813633970533100724239620708858535956569848524077176189528169041112705818529465807044037183258882570561214727755333071834754472032332862677989102537301497093338512211960114819632925721615865935446761707839098309915320152652323333646172509589124303853677359876363653660760363212307167361527578166777742786872409820940148532088925589700652568163532377123043405979827630551482243501630953317738267137429951626019717150686464933219319157418744728090890953661816172947084590356871505778686883858969441360585560896174550438806685217102926714280604674709932949297997668778378619233504700885956707204213790935972323962143983882745001868985296394316052140209894892221592768823978253234736934854868849557951778379765317641514596387029123062205103232327746101481117095575026548701056560555325520050967109648178424577091269487119189906607115017724324823196340663976394572657087552021801115571053404096640273942850636625122668683402198425964033989832617391563686625174328621647106208181010119786971982154148258590014801107296202176524906321400449336471916117813792601533837617392617449700912643098489867859845023607438950037530497639152034514539173339610681999717310046084545074274380853745133372819725941099907085067392549855415333468886726727060870934399239743129000492934498266755064587739556804963460350972954298519615405562266200296061006990465780351159044633760527537504389763847458254330725582695490744243379875604069871538441251826469850952503965865010410943658318620501037332855783331905578254754945164217563052593020705514844223491709210767109943487244156122949916341213168257853360479422320523759424030802349427705656894036157593425053259599197296732733800356675069215568988307101435960538896661367197981617356632057560089116599105951924659835260805687261178217915984980993005659424998843874101923267615906051321276831175782836004922887460529429621090052562751942023565379413655397410993428212134301676092425123090583175414539388472769990302597643073192647108724279094114212393290476538412611624045363139679538794031971080050215909574930157210734919478900293352412962473379349030754367325666283743315428076543274577517248678023484998682215587763405600555045246694833330022060238866399984976070337907364942018630171385511161714687658305040826797411351274776050708268827264766150889106697496093164559066239641183581298293432323959869492191569487763210081545017480768183726769983208173440190393214215292967849206797205839988841107462695785745673186349836882005311849285786512459353858505166965978872573460358082413598282110493064900455702364746695448263659042471117697121554535383166607188337351999452307216273763415657735286138424084301549546146516257367405991244554712520257234036435737889552044593091767514708855394085660081631079361621002226960954528774131245989171251285250567712257680595927143789833663469212936603921122379439756856525432467095012137276005314741000677361982631961090398077056198391615318625024613595926830686852342100159691887500537182273681917404205621048321659479646338245152575210422971681847323125914870506705535163843835893757387227193028654974043689314418255217965322692964270791317085677942338559648091402546825942115704411149967788930385366833689035139849503394143329773558766103992429426128778250678523805891016358908252051345330269514110813076901205912057037756387739106419943276756070983962497997522506821844579444932672639659610672252632458514198286666064060798306053100379954391328616760898834400904880091738766716302925258382095428106175534329480052339192442216229562624748741136036756781968555250979628892767252203071921914784666698134612704835417936671621372731248452642356069904640176847821779139510952348710604962887003322859913447791644761532224863909812352462191526419739546630253795531360902865766934826874686998654916905845136420719114516005498307454593344805682881279987589684898193131111485423717068561420572240238998120004727559288999862576912462470526468914455030499007225421815762682676153573539942220552054560038517737091158030783918934231480261757418361306959346393440859836935360440944336121332682338017817504771779647019310970071608160065828140466922264938342562165455870194694679923958978483280193594803583150630052252592233569500851306987086002686539174677784114013796467578166154712922967502832179165224359858404688955124545769175018339870734737465656702862191226917300444394315225259895778852187056510923268087839472464564239482484914728790162369589773608660243079255749021787575034455455539811895579193825373281089794135084456925968456696598164896098595490333562696154741438006076194503512251086004908416656587855504868900619296682208789617898793239060912715235459541909339924025558265809430077952265220081578405544194783195613601127418796637927614072566377012250920939813811964954022276664904981984417356088913530854195402314175649096314420331739610313480852235193155589442792057761405992609034047405627986063455272580972839893457207567607329369605079513284946678338263334686836284213887718179403221584504479876041104249699494517972303505956366866844785127146621976379966343281662999775523240176162153218376619810725540881359681916377979781025913429325649928167890906859902160186718405049297723684633633634734523068489540984249625487598183711164678468264291352794223813688798462136967392874426774968369789997045618534794493884632138146978780165305363877655196972610964140417751777801958657170828335612561518240524356428413977677140994405659716274660753874568012285433669505227632280817679568758886901336587895937406578199676372305763278510560269889242971572324778228544738375388760177409886169507149695705364432732552012400137110692759404269905528335276005535904155441169648997460548696776690664412000327110187414308819285366122673192642776931070995064833108343279469058729489640128965419707005572236545361775341042463891201132082032076542149748044726100588348765523469038598118282010848150861541810389024546400362888804165144688527742026843407927582065668377370643086827923658289366118576234867275827323597997879130890317462340922817055622659409931182714513478708954424684041258905236125983037494904528085439999600625473635509567789345397290750476253125263377886319755797417997688643531497107018751994621556328171473783561635666811215364232105652635469465486162876766990437888318588222647655332105462128468870931633115119196613897659745948976047483458747861328730193387087127147776421096220392749179831703550207311524102525751667888875592317306900466530999437938797538676330585613142635461406179750276629707753586340247762954209297262878821845692249935161720762536965776915342573576445935324188667446200133478460891393340654718921118132751306333408584196004983238300653173870401958887835786797830035034829075177549719589949102449766042671795061757106706682145776424850094671539948793139126657856703082241822483097772177824350760227622009046090618045467327173659720466979929814567659723834094269788873549446752442632001020178530064533216795667436332417464820317378097733857683985955292781371870563214380784375470471945577325935260054708620319975991887898021703941365290956263805025900775471853794802444800914570128703299407702076451015000237175937090378527925487718142512484650772860928141061757181465829489230466360154260527898089555985196210623628680126727659418251017634833151134636642263057317292608303928254642608577646443950173436831537905100652905731858573644339878411103343173353983693208581737594519281060382814082123184199503116284040943723908215258860288747851694932575333593862117794220993692750398569200139793507925195114358395050388305430256177741770266261399471877999829249808901080340377151704872903008743772337324966813019887929140160512252345971606020163816322853115270335248759046793250136319767014153451058842803271730842426516306767977232853731338965404143279527938571097015536006479262907938628867200689842183254997893695959807721649895157978082853949017896912831078556206777846647410090487315685131193844354050950489844841851727296587960770146183896054839091780382002594055462457647815383576215857637508893604156096222169090662505823880432375632825741715611025466555501107783474204448435101819264462557591768248909887111290068078781365993604583826510893654294265981703364056721269419672085926506699298466869499906164100625866166469652468678338270054197318031058472154857734438808725894152129141757244792092396421701858426921811380762911081924109809987332457871726685013426515034507815081065820827179472058887084423040047097917841750398254372381520357072201071366107601689109424631717931243697322902900531345546427877985456779734366781164603308192894375735895538052857762285666047128658272052350894120765433491104285595257586124918577609850327665071030999705256472088120160428901470649885306408502062193638863134107210104987939063440523698669533251613329639981626542751054588297555470690729185902928346797907916473601714451426848097989831649460025814247800709703835921106271887623100947477292518033527051850259638039634762009925583653051500489675516814290764605986911233667721871020821759484104976985272222075704907205756865853748379325953354409123977907225484583212521081151930899532256344906733822877676355700765744345872846136180550322933649973805288812762962333996970382772441683570946550828838743058869172457584739564990553916417235569760254343865295861077940863718592143517774907091787365074960418589954078929204893703766218118508918854162474086466434248852563410929274313869501664669136364580063101140403975317868153841547959368790349909397109831505384027504864558920480533278011197100476901205889237313790404484297201797077192809681467528369893789869798409105660145991203520434156756951179721792399305710931980532200225985798302650878154411540414383927053918209319991820237340367640757123793978621036025608924527655954654773844914849810220659784798280432221246878690309916808155057205234344099554234424481105334330332848115026885124984228482977072916447644772101387457555429765424681084145212348030586237702182856856854344036612667672618175190419959127187445383455265602265587954378437258386277168917947804862756644518484489238285778123680537401569684033249884453325492516836878279523009648936417960881461339509259571003972179527062017603466463969095869833455644909395237158397845308569509494574037051552784028097777104117415605263334026860861670148617205709204220625063539838765183958509781337362487049569897649544177915137486367295983714260213093500847987415570006705216104282500070517488999747721153255171568861934121860746472009892064085858765846964096936316319082730116130579697285606370032891861629948727435670393030146510799434301603025921701304403320565987634813639776139848989072050700332587047437000885567842230207703968988843172074185989674987620810724054792572291714842276101445248175922920293183538561781770038167425333237995307593725726155016066254052272773064246154429874883316581670005086839383116603856178821582388949273659939736497352927634137514305330857607179301115318826207534553180579591912158762712217568543657600479547361052715769887680871665987419088620975614505611119720113482748403677608027200596959612632708664170982493571034708375911331490221857957659973920007918474503450808785996996775019494612265933245963604051549009289508218951515177936587029410364209525102477027427050779315415090575149445285659759080193604231066275814504257741621667876163663119411897915730184057518732791714916157011505847151571584721961954746479317169848076841679235404658194982810847659662710443394320215963540993152591225918348348919513505073432054513987074119402497748706993715655623951360529621332340306016490262960940157415032752932238527957180861181677539030257424210737756921075378244499924805970710556242991266706640829884353768643380787460697567521475261925435966881777835228206153849576003924331696524795032070074368257254564534226597835204831333285070972500973039960701239822413081731166177640223648573287891179691615785668992983825766003349464692477701238845895421544691503753589871623085250286544632283741115759037977045830218593182467761015102679337869918419548670355579861269880446557862670110454436226908910439020097714913805535364456242535968638278767479745041708140343159185784068779161869299660049198496493924006848185178778320041716576317771487249547535623857975959029887291039026750869610259351723602620886871809641843923970606931925852083374306655582725594212656090359031002753568616182401649365756743463646492380658946259404421897387023713790619884134710504223989249352741024566832725302999302469076655291688390963813997508523297378146865779598126555040842669130680063524220659990015492486953271741682875588772119607138678271084494039661019757307693370802633285401172062690999711173036704156596606923837273123663322350769553774438921884321718965918537962826590630319283422494333778996606816029968241404694578121940827760251360313082567915539898673542291984778119368695250167529796075549783488003387334359914774809836517768692657262380634168367838651292782791260865966111443581853010223473857711741172713340679766476734549148138843443008089920662184400182970931863007739977105273732001884315823958475434239195779071664551703210936831553856908123257184916292639258305302437285192050239560493533773241497457561708815905812372654185105624363604057926696354077370200620597659314815093289323532873261943538639690576960944668715654847101157302254160131176381837877609871723580548712373074548352161923089171732354363824151828724932725155853982185728911859033569109716974154405913523649457821941607509839603191434664935119211214005110935690093606106206337914297588385548402234629485151759580263889783918492905291813729661434738787854482685951599541937710339158549426086130107094584839761448785034539473419002456531430627208966043735144672174175807942935799518758544572225643997594033530786181074405992727728415574588550396094974573220264199411462726969322079729835966191775807399303014204266665608782046994739925665272472256771387005366777373371033066194013126434082482739722734222699644509645232439337563335964406002049688332156504038805407592978372205706896165735006875073057268743096463903556710726572258745795320774214812428054430652689022204635472813920368104316303854612748736656357020931061520943736299372394808106647699266401786097409487517369654198921378417073223357501175834432331799172844138925692192559777013246950649970178505434597841337363067088520484253392723710872650399391233533793614262369763861546065243833122364857565714501084798976384666229422378326608473572281170429958454909946034595385525579622913345554325102980581576926636165586843709350512956428256270517455585691685376077052123319386886290997197505590449295717500509192890839084608988837513242308937551353429423957751898246258317581149143765975073780292080616080357815423111311726139081441359967401330837251446812536933353777324693332817191755154503723692504303479036306685052728504236029269202014813887381861207255604654229929459988915818873953653977223150821982747566573254423262141925885243259059797380527753803205213597825883080455634620298829220409602509721300127020417980971413474314700238561657176234155250166728054499429498613454755195621157109156379398644874874450915059812721232114577644971728970458595789735703162263593643195604152637081121383850428024309074306814299944828701154474777404756749695643565489333381217540476799315648741368599249107397167315704828886675189574355930348300655129495781690681562065192225664341388623890997766325190222100481612533315262247745629542821161364266315103382091662984295004490742159707316885259829650237090051268957654052543753771646580122581549699905415801376739382314789447215958619563572683115939227994711767311536889434694789864978302200220377036243579029301795353956991828285915213178059753399291848600091723644973273076103432289010248165495500322009274017378304134091960477921961916816260405980055243338933931363076472863061859737219391227020144012535675245616357215340692431721236918778065787577348957181049556347006989459291028062189318647261112299558834950075377555603772944739693704026833877287998587059337017996367978543254462852447865318777060081078342053229171167706483572772142295378097345347535199970732316649704120459844282144236105776940565410527856569604946150179487309632239814393574406443971832525522996667018005907749639824581810753929709857807963567359852698230562692443621753504586544400998587794318816587944968291518489385175094692385850998117648875709714874405029984384159328153657069740444684755613506610904750777314877120369561284894627731333221450104013376349540033807479861597880157734435317538163126579506862905312928818779203247128387241083624921979107376012810039621125619121653822124348372345387531954001015673350900908871578917302924848360807389844758559961517048653863505594348660778206054479850427876822543161710517989431103494763582424076238763500226419461618569252264486567540920214797352276113198727866685827560796402879388891742994608491793927513715230451760437065978889577632936585563795579891297479436649523331549391258949323994142416362118243761277900945254810749627388569334452076648512391244500356092725724851547476840003637773560744376377749624152010622336211897896126208595314576781780796015153749416664916677797569792892908375296270488215092618283455911539509725726309204599104921716524044026365344066310054678816334734888414435366598650093367543647154620664598593670100718663921513812079372090525271758893949444112368787075605414514944121295816739654914355666070950382224618635778748603331460956825210400854168858594587446408145474723093219507435547680999552530817845173802190885585901214756387108731459135955022808671084754334824488568676974415728732274884573423092419683461632707611508683509845079137835347243655512955937379083908819256929586254544126836732448131738656542118181250152987132459080525064746341380152139340161825840245114340114659043568957823901296827758938020386985522441113788114514165300131839193975060567849696077449380894764217369671568975897715188105956465571429719883292947770073808334793781493098977530935842401621201662322545465499218323405239071497942457989902843264290597334245528472995157052491754143842929696956522769860902897865505116063015519938372800146578375699656082414833163631425255131480656258686983837819402523546581673042764582923852785737330560279436208720150248342462129260769497799893362353568175075995666612795290860103849077072679532994182402731566773448510661182907417067568904907533682310971875204578337819858305090634541052175854052780227264747980637101366460440803825310550958709428283205937649389189927174673701787211900781936502057869481762398456163588323634623490473681994133316648367254935018349668837265997461810245792281790521699099537245155374211586917085944632685590116144662638706377453092816381981394471518840895249744421099365790828556877738911687753634729883579983795216305956996132661430520402181950785344699918488605911437483393311808065877781346557040685799557444007767129357931481628997991208458902467342642884658981173060781824072755130738701247134047170035954869775400649348848602931451266219257014497355967886200509990909616835763916460655088052803888283467127526507138575596395468518536670176790929793271435915075252999967420324371950842448068883223078226735857432662484645741819408828674344848856301782375387273600678964404892329284211727752413964724692662927673123690787287200021316725761418249642925336360933915800296681658346151284965673974401951472798252450918534505557485579327844361502203275372632595107195881276547876917297166534306868906800863349455057379031867483081384605944203469121637334274133454583110210194626606102477793630146982492349809242645418251929183475633733047331071443501021418985369970755578885450056517159358602103492120371313698432516557223464315937347390740136008950213791201223865972732182283048375908179729668313642027151851362202104914663366790211129390304491945168195829880575094038577816008179378001757587715787474654093405242375205356856289663423463407429265144432058198572340959787778209541378196650624092448126155186006985864373632235484392070976613160849699835095868270484759751782985244688255415975255686149412039620731398724768926974028490043947501715155654017777913678741566934689257200337488386557519876045087435545485534954022104291043869112986071898832151755882031087172441156432424550719248121771705820219705202932356619222996972314475212448101807912117758523739877908156827724890295563391717288212715256038033155357606185923067221344089302422943993158846020865039164428892752438489737559910662846183425376144894779155617561954558770398981273373934744608756474610879898595363194096145487945786826983915998032114955172846768319035279692001461567197912027110235707731637487753837237321778242963493544768085990199923344087162863587091939466326117390381520765516956197604180612586965625538252200004619230399832709175584478011644447304277553047924641382150281297862998384636485269456823628393804675498908948574133007397682814481360046654106237997922688920885635646631121672064881625359216027909851263378531248465988142075309304445483830454628101450548145352106847727871682094860675674689405028901923886667616215222734468759645134095825486788269490025782744020041960723374920841102349757593683609551049783081841279845961127913323661975991961170049361022689896526065305378491431482786819510567159051607541357440159070957585249736171065050027439315249575964656519457980341521444279219286286365953493295585297150241185926141462640294764540235483662633240716753516523756386105731789032749337685985358382869524451553066602070306188902656857628248610166632967848509908379889527215755233651357257068702187645050561629607315280217365374664989991171876189113164648536107860969946377000204688758212376349175444789254160855338037724214243402024561171517604945536780553055863116866555221664046659584027988737535321736951194669844318197111922629545452738104025457534604069518414843802109957430169166439924160634010082749032938819593237600312672726077327016536016298882790388433317530317425147330181373386196612474324903608116551663210612362440232044724226059529139347345939999793847452915191394555667947047251379653788504568936106047332346347408072941567579183580651677371455168064001317715826770245043814888981049813863275828562713467975265338476876789869211832274812760925571691015568881639173274901225796018247311639646869508705591940926714933890774283534070640883671250341778747134568473437420011945346350699565330526468309836881457433926841402098788243824359663998311108677309559039328656608057323154325933293059819185786197517455896393935423615843499941758270510325742098297747621075478516587729361940136057884138239421042223484399931487171594017040497448388291161367037069285889037308509536787146009301712829083917927631543809121329670233406051088056190099582622017259162317725162021165896764591307119956722810153694535629030048118519939284492392152800146157967767437406363016725832442768532533609642672253633431557660677179029608981920187892114544041345515025798444528533082097736839397125085657061427907925942731238110852712330418541341787645960360226968444788359740064321502826039466414655889702681486246698453423254521580521271768041862749632366760785915316906337393084353936004813211560816961931666603616632313568356248152117565298241202386723448272061654986098622146016304925577555812835134651193979265830685797791284706927472307435797267552487760552105933250027783829190667691932956817703816997860027138055650513107642444813219855422240760800710974520888081091689542055645790637904589414546763344278739675371851986421654096830715541836989560851560757458762833390767491832427933918290527749669411812303284177042096098888717329032295442695435881423119031257275604266701291088253403747931508958036962489952902100975312944294265785825348309248397305257808293979963902431890977658508877617019972468642116488950636733397111091706578277251555012714960089519795468898860126957617768138913278604561716188658300599298391755507978328070492214341402526808198276756428770507503445336875083835732252461421975581908296202450569129148303540685703037753741776182117275746940454265796991951043403384072008775041401270308897064709575284198918882079088074584049026288019787686617662917721709785580816484793498809339331990322550259858108473527186852528346905144828957667247220172658613128361698027286561123241354527985563499077446236727252280786749842618133990637837433697123927965672986044713075298980642821566471314990635010373658535338516137717193130569239243086044722126463733523672149039545299933178676982998337273013123962483014981627662978811808379294721010541415601314819183087196598440847951221746206220530293173674998348643444163316053240768524295239013096764346982746847719017132229780263379072688561208864185963090265145214453708818479561663786929958284173199740615063791638148637613802322631938685235918718338087906695344545632275784464279084011147398566894296054207593002257408113484964916684123250474201296180473535593341509381434962784929569270335596991385585962936508786508943090221528435347815669655341364270064870512913591332681063900999580296509617816381518921009553712216281953995865459510426220504827824604236460771158863757500735895032466638529273076771532841306816221399616568213770114287431040203782126250616344961519867980227490412514216574639464446831661226287275734553243598827318691596181038766899841162247604639459485916160061942945761560229171444685378105618193017920633018951944357333348647930897987278605768647322645564398517088885281921669974051473361046216039477230910544024684416759242701978457173061615730735303907674999409822852504197279698270878213316323696691860850417159760275722287889111869486036502105764186284296315768538009818988687914801039644375172245105806812053084920293397094086074840027066894290872158420652606977392573679986991204879774950107142831773048092150464560020841844826837791010240424173334029736512462103218451826137130825757908332460821751685681342739714471377683947778495261839517564025737015896518029821682324058879280974313146687388661055277179921435040386354726932700912829167082649048876942486962516077068393462709288097235614893347079501481605327064956010964614958588762549590086665589463851218931624220808221109333627877158115362091974996327888788680560862546285383446006176275440866274992107360847255382246374675457384187623804958505408162314171903418317427105517876943791892721122287874729327334231622625351408540273569576986204817396184740726474238668535924454753362713771371292744414940012993873312653344951069581456314516396629412155342404280607393785246169028237513601859183743628740072899607182790918138734964582428228348416345594411804101752408851022022101941556556265505468810022175762094063608255795910641241104343755733253524828197721493821456408855018092119880586067296606837504594059064000090351007929715604979297620162778248272334513759172443670107558573789381829957216004623298675442821907036922927423550499190528520841295950654078096221585257713173741152397712841700147059301276202915427617137448447190468592530326757671716428713203143054778081851434797989165064743176941334593937782478809469070803991522683410489765599579417631122660496295832734090139658719797152941533743437840687337759121572431163434451790381395466199751380886956937953896566243972960320566110404656148298759987877127811283288097067610499899984738761284448672501688950713726070642906262150856097949488229073434311691121350820484642240135085447375295727791270661054860795615395527084945696572780384362172052742392189575453711316714033333365239376589622434015253533309034149750759994250251263597329503766163071221877534056703747039733659147434213349316901475213691509157017697385799565392076467380241157461864791458849335907048439317051534244508141671773220912297698147595232758838309500512862112745091268930626232198556870429095611689772469263106487574109360818127979855745834699658762008114514334276883812013478885127057187491408904277066582691063307213228954273657889422442264449199504342814526727487213952475068552232942362489721848065546944876794340155369016964504176028575436113954613421806723425572346721810887322778573911664336371181719428798030008297702248251852006448356127269489060372045332136247346964436787585015547622672762870822850483791402224924045870162999800106449877802589787166140550339148920531483028224432763838305077672768894915541923853262284537334498427724607126568939795264587317836271326009331486209440175576235542408377711543026501133237513381393057465518393394149395666279098812519524565625174940946954119797047889909228360654825644751688957640198452401890717744178244414980644279561755429297141183528138965821417326693522301988523110280182312545079427174148162719551815643349111812981762585094228802436998813592006395178225944544015459068912423463214738258497986243396897739377842847510700970188675467772118109265645755498398138161774487048138807159316497338912310316769955403658555864257943288933885404534844683871933293151877835538972836386527706930013278517106170747904145580636277065810407684859596686842634125733476079190716703369790212241265974351080825635580216576770598849530199922864278154257422375342614651639375664987586639026971427858733546625112253719051833865888425855822117812872309923825855325249417211741214852477000529037984054750690029204972376537147446090820329772589293034090593548941864761719035002653132994448803780591207829996922513255192962816761341094108705045326928901411110674607428529549702742865189211280653584327782224871118733329267682639238757094029694660801438499680014413043128849306932846683164838206351846152860321131263207789370406845379255329722624356266793093838346903858405707754855016531505032898041332318977393644964134811422222703708173719146130222953743410927283348744705225925051690405403989978815712458297392777457624696357295886693466744920888288217667916228690655955551348415277635731083864127497189665168044555092932081977861291295491050605519593353245693314618766218268341076666133347015210420308616822294370235894426950462883097370317575212188880631495495345207182309821142113387322849667268767584219743387451951465809890986730934532987091682963555757989227505122143151750190008621351884594116659976141230375802586887950876239986606199823642721391433016510218555886658801568461731871769823546796364746197524842717135777223177002235205007825847868052624047565519202654843502245906779870209434200057259480411855744450068257838165823533211809820579270220127722729764781715660200177600000487252212055890724970888614415247221440046837793812750263064028238588973747190290146996994468258647324690760075447702156154860601908827167280056202499837854733400831107110592323578047207752375025915294289346485430028005648649116242564749441476792937548695925382278736280992500775334671310947930824145714128104193919472328183100197363393351055724987455328914980807747794223620880661874370718929011936521928564070453244811069676826265584748705740154761203387828080371094712923223309829123456169235200757513428493731431048027272879976522779775383425507582629996104415358471538257102330821086498699407866919978371037135207213483699087497453185253438943307816807236066132111582137533478582313925812427170680911221339206864412199337818537875730735769163629654905551236768609359548492061139867698153275363598284282764238010314807025957755756309691833258439523547248156047287081350139926467332806197607261995547353760156516848080305556412350813858053007716078868704351779438292402931465498311623199445921810181350259830107427388284388864855500133120286215598972968710181599139212739256882390473267729977856776738814334648738544186594140040622877115762374766800680461140021206557607256469045282776154755669374394673270321709373492243254415739410244936572657540036716474682234192773217672335871904384140535339469607263021006080234267760905090754248773067713390036620360017050343920334873970642678993029455280580984754550521671302874532823788906257725718963190185885080461479462043310702023961217890803176006498599338787706364231082697247604027909526610760517474381957829918592530096950908356047493509123497977917590849159441027569564238709890463711920614895069435515271716451817401559462363360664447475966711961609771574811927446094539209273665736189593521724582645449966793801119398996321911648287208043593111957867231764753410251078263310192215570476218942870981151785681349477969915751942451857048690620256184624117538733640770752658215943568006499661433114728723070022341132337700413233771285476843358222403224202117128393768929592443069610633091729238906397288966352006481626578412546574067286649541248889759598248086141931187077931206490670746727346657521723263801838838042189495173929954287397252461320084102472365761608639894162392877677346131038891830952552118817546991626806040691555676495780652183975943388050875034000209297758576990919923168481629362325996010769804398782199356811645685282005027650336521431224134306586757014735436362392192443142107007399436525762276265163556685200793127964161304332827519151178128466182133365494073177684061749607565110632935514007816844541206510497417068953610291240630801540866402110745972059736642767762210094237098091678506463611820115650602156825009032228870576802356969253588546717623706391495717156867650768068348670907447532498806550365633664825833683365437777129700554591236205923342098223583092273342230915213620001160225233134609514624741947786861979203977032918559179494416631590363823359440432402029032354258818871428435307258049183195864413278894711051506519482010506426440284137052628240914519928035739060495706627530603187681785947887806925884473073541953346831378471009692846772202532498771281560203714596695030582832639683205202419293753968893297020489396796862968937518976566660550443549775189375350251673848113041700642683381662745049266082057960016697805979705126536844726339504924486888462511308221475975605817497361518621572989991255118654922833085488310475014022234947780615318881242342347872170894898079608636210089798844849229134413377488354334231818919714045989844906066765425676054543250747801479063811688215968813794634999287811581004613863229998865924632235436857329155674542730004928297823958287275155909042130516050241866782381001742426471862079718446256962169349457429351927664982238365604708314262711576726571584094606554696538624667231006878100752620297637692597912361606535110114703783620419183351338582643902366480402488024002995815596436563197448825840321812593833867723427937846200007872932128730919382537748118758690898870933483765714527364209906171807100658538738663663586185967608096889647137101981018679389831377752563987579958655632832763071880666916997016394611796474943126265054035706422445450044194744525786258188690727781154099795489711912650237088454171945725511477217860588910797004116579254291646294279523034718649948858960849001760402448875693409493214336538286425495943654461565845295161580092811996058209177527664895962556521432181544132646446885353066467180743766319860958119230357563268393282457319604079731365191690076815687014678112515655940603874409466851754456270936551844758557940440044841808561253754536244892509760260163217967418143556943911616995925841646740754880588003700014104814450262422507650017650663101699209840849961729568828975341240966575918739261200256951701945536795636588011802807607340511008078502480665364360442021425251393354031582940799609027658597701728224285125162342992947864876419174443458954562917717944345735546318187245997031004850250267368097716440941128304987487262352596358975391695534650339768594212134963783484721216209162210802131997367618408531743209028932611113923755931328837270948232178868928431999331101602185342309231446879978587005988847561776707813179819031781157575472257867894135971615938865900771894099661067572295516893898500135386526455318930780771601491133264579913348959918617748878894845529285261832025578498925290447765015366149909715965729407694528999446642173781683647254922967917125700884890949203484636520912046800996561430304123465138099607711946969054799157756059397371065096854430880058958107295140599062911902925437816316075646955322013297527968778302768147451895091996372271281140296240914220355284887308862456271070421488725087680604487603798793957055180152019700839543070761317716143041888771532300552452661849495880443911548271003454766541540444794156617066219160663052477582434614895017599425809652026545977149700109978820187173157731545375573346111996131148038410679588963519416950752685330540835922499367714148164166486435556925992168012784181700732745243349346401054194980752657387177420478616770968170291818794375464301001603042751364915832109752843232028656623018176962442219923384187580665515469697258900770465503200218257616087114906335464293604267821382160292296764872351037204891656918707118878897826936258698729239521499018565148316451573066819342453722269369806818023760445634153436195428392841710640135080391985040458128264040148197316789820503693977590459898116870085869819191126878355037652883499843202670141226137106720074405583190042375340472178225026156081159077411851622575721743650771663686916841822421226293531359980777783053623821907830657682667432922137090598398424815571294412762886550136252754344377289918532145101318570417439216719053982929568738218394622767761760568713852780125727529548078218826646637149224887105941401312987516201909455603414005104297870244144109624800701149846526269305584169861075485179878104938113527616117020923216536393841119717651650445944343912728397706869788003999190481673154385220504512990945756475629947436041513798333088073612760154053849977039558492692617210519735926477713451292843401765693065527046082486972400299969339953859136739567067028550403123857039997183711840347511412767740439695101198862121518202636913844686812419353752949269827194037066358876865884421784646258667156018315780238018658029715018675533855569693558484841060125918523967163389527588408485314197874143989163445613561553895351498773799988247414157395179992692263567099024011602994406998143064893197898391517306182944215546417377589493934945391941741044783362535668841700498425989635329457111826761496882625076426023429478579185687444460895230513373621871381850102718785009499654808054928919615058585740167367012060862758358386676097536077603855712112595747343312391106735839023545088050632960134512163314805529886048443168403439209105248015071695746857869461237032046882472090166571035854643851204518070447960334053312619659214293981012230838411965576874770310525867039647486754663883044051437942225573736623628097405365777636022236455465836273195528339071997727460076434637951387087846602588492609776374265829174434255355504436021311450945636060217871728306022381148209862546381206720233073604860300439824275967397930174515138943546320835020920911001856624341880190860213398498375189616962233166743370291083488080140503256947658080606684510855292743260431723643709958652453403661545266973898135989399810834719286483297330159559024225554210495355019192076442958707446786033615168621832296609783542484562470493880387917408336882993307159686913281958508162240778250627751059563320117333499584642823348838587760034027865630402648783495217084847244223169807841158408613148811558746489679567644585899779346600668669739582659549360347026290230966457758194907701847463524934194644253725302476439209904212325296955642325030473478200184612144618589060382580624722106626400709662461004471938924053902124742337697140278296046186734805227615493928677712758821577818583326261950721867086019348661234792853851254248892715734039803116068896640795727250910366196369015158166958607732995211744009443029719145070730984143656609457713694946059194094062235331092060751326313560600101127716492503391531012427062030305804309340834998352913076567962704028409653955041700283596380424191338899419269842481781810847440104711080824014041485104644265300737209472564630908169044553363088972982593516423367331865267734324032641868097507390963283124344314348157635727656691720556924230626366406633937304786425110627085414380870632276730340529186059458025264968506545720174555103451164839248307180612121093785113014826973742395920314116993983540508608697544198817826910739512529713826010846574835957328510619095117920219212978695249154283321513180319292393485797573987611070313882976711093545457400628995629817368004642241846883952683655672061173705146269383187501073387337961237066208583720883637984216363552357728181064428960724678305269156813154161710030089154373229345443551919691670993807720098660344019456021219070665593540737169241296016738673502049758762965055275262865498058695008734339128176880139288492373182485878672907963377068302955646296669853347103397392047871138596172751355177986884020062194692518772769542619557543798411689286301080979467099402469514498110795312725357810443556837900418937896405500308500854403721557737264604449621303684986966945740420791676620386284329535572442479783609998769663530763767567484850820208742478744748067429605058638381969970004280522575215662762629037101679361748716462518568454070614491667834008042900565877273138435964543184337684011875695464374790905700637730339285547711038810333838300353950716240164552837093133320609914579444472611910205206765103853790371980040083896621199542508010110198916399049741135708701413989492348441732249338128532914370059368931968129473463827666908162104475366158595428105995472738626734462777180414272900370854537959234880161286381509463316366929507864195596304501801648532400432032789213090455776876005618402388418806528003813330751578511059594741021765589944445650021435158385685333473229144389046597871640139160101433060144925804757313701572563428096388645257630152686986353029746558406677737951654597959949885197548617449422955647463368302961865655431041306323503306868931711232290352227038802891303455677000362371346185825979004532245255593887988926899961177823335316367286617389124951681898852299254298988409902456753916161556033031059365663516273591952416485308129796762651483242756106588831882737062145313357458114235994056856610792610404564037027599547553125239938470414781649326054129352756592181491683166659411344646175974776911311809943327871637632258933735370850798983806372473266878890186058146605395076886730215705156136875420273587160362871619607500693872180504960810379121553846796505152421140531490931264267658034287084982922201802057042611080883870267081615298086142935389548294765146472263781814757059094848607491677023416184557615794990522261756667060702173691707418185882557259059223361293732129265191933603163327210500531966831296499055621908509080574909572822171031282611095003067451635057846541824391509239011392102575020497848797364450201270325186925440745175439877840893789205173017682460835068308230158124769772328071970320680111224028607395474125464094536869250142143995994084168422918618698931653095217652169388924667455691213684110537650597893566707700821529454799623816861863267497872804791598846857524082138135203729610621456997647526654283909173333056285092315999871986826856186207080838111203876705937396773428616604626911291301066462444283481846826799938156301059703234387844803677511640083045104503419341690203724798842936529754816774283508063612163104281990547695300099192188526394300731153182898223041426735415807570119894305592128763645243671781133003155611809872930180730979949353337862406658419375281801085392100401617654369002319658114154489219167252129933825368738816834579109052630474953807858257836271855426176914099959321496139111523386066095123567611995513159742078273137746806141269927987390250554777538292192136899816707486515587482366280576620922231311458118326497031164346809228482104484501849851868392336230610616880639246394689507929620044000168712257551405440981987451232727985092859400597874252515816184274240488102064279853897206418668643933109569981378425970788795572351764063271551565585939658309194009282311674895151652689750766503397424858121734526617483151476298461777287415669292420790166875029960692662789704284718531046994198079349690749776924155423725263930769321936858157932898414065076503766633285982818808222429401395787941555602848308532835216639540064069987906248704833917102732562302490941937088579891870999695506921942081446750099429437935328241988362832287402809361046491478206452239194163637085470366071745570596270027249953998347403078040241317345457204928060166980413504571742293663624262194024221918650642255799311479818220691950282460613312860383144376784357675830101011030399917168994358093204836995461026576977987888580925663196223847805192411695628993379525979500364179934744146064118033418383130733139856451755983981343052244849638922722041863519918319936912652428044428123025544291294243838003353000435934054777269670098310522087815254812293276136781391969066321838282481285612997189941132944500307336446482470033515063846252581801757564102262982023600849183809245334845999685531301436896918523809347100156951691882891399380887816561508420632735914093693674966695425609471068523895211193410165739242470629593515377792147854723500344121525546791942992519779018812621737858356547115560191401809383005399533360478960947223355166562357030325675067437534774937873243060018839052054826369086045328516328476334179521080173218182959389014711535354482440756583996860818424239029121926335128870101321595920880783440208675855405450122248010312305925538258394039663312690858322945860589515184563550143023888682614801608123440160423174751609327438914845110167099159012249194208525149693579810029849458551045997081959017335573483033312938683216185645120070096254167860624499114174367925010835700570913906108537612247263328462222530543267464170823949413356380369777688068754821011099581457921683802798310885110425613004003941256226400223850218403313025375319861452518079390822677219045294606975282086149472482611513337139143139428671567783411502555760629084998395514750246364156183958038158841084726766594892468761461225498469675076443821038570821975157152630783401564330562367754926227646740377664999177180100477187420494426338683694482830794348510584560443652953449586110470057360799443880166207412346089484850225142719654113851615884190729172536869818371939946098733561439239831489165813672694667856914527673010422985217515778793469516856229383642713591333347469646519473945540403933360202692209446976522613952782118618444531064880823927342698346204326016664774247133118627612557490402458133572450029784568812589103264754540677018122379035373455563518550100300343133766372648093232491746384846063995322808838534256225002385799992053658866462245773464649023560660879400997600819398385821903836603088755969771208297728882174964898267796853009571227751765975406010836841919121801717075946451352597338452109486392188296166506446113176269603414565179440899845651492428118589502332391782943652317867077686641025375166845278292063641046755816131204621227288941562561337833053184151775073756537375348329306158104420145470228508472152268094072761050094347198376119887982825756341309380908873680428174321641649823977477427220453901616638410241957644534370724972027589195168947268069475271570140282771958601267581488927746185611552598725879692129545347387793565188637315258776612638142082060500518838632394147468587932947248700362236871404795825618259430561374547252066825400819754114432850816622077710808984200813807853981937672506451649533184563235409778893437755264610521317579503367359369177967361230112521630908836166645049582504971502742158071597565074177075676164929101313543491427643873760626400976776631429310166426864878450121073030492450213436873727593072725554524962684070104573991421057062338995540336271649974479316238102177623278472719776583550314862495174473795546294158947724503732372238209510059507689093244912388293389277918233287880192592046617172784433718755616940753564798578591683097665968947711611891870640629685132355893876772138139101012431934321368911570417322548762937440886595987543526494228347999106662593090117802884605966922668360315853597036015677979469746220724689727822878633177695473532770180861601930526936063423789034994065945520097948962120369777483046823329130229379374382150072919570530227519499324228053772078062850851822183741100773376279204049605594394947114419951520125644742506597230779045222755893872904556097529717679322666432955373597271068390777497414785882645833235031670516851574670624902570900083103222641687389500109237261023820777946359795658297552370886363146821344085187319552911740868067455773369678005025551634301758739089337330822438423507271014320694349998891243819794092639570760917253397172260424660142195488570356381543232514419881266925619481647449861583059347591438189484510988485828900574772447174606533259133697108003353354059150371319230900268221266577303484931274807706105156185399535732991542339714964281344397074009533648987764162308421445261037176454980171770950684400158515241048193658056834253964680832808850943644154056295106240487387179453345808808882477150702580046112744971545549270039170352151143343002206291199652956727854140951248580359322583387628726733925221335040961990088151805020748877144661110850781970506673200092036353396301997447667362000339404609876292549897201045774929218397075297524150678390564737699315529556178212027704037889644328043234076628253480501632243120743225410150682077902428160615086029329193729542692507900428882459132129612860513117959648623870170148923245062900353008209618206477680041161441159862018059317195253804340634452276633766977479224531739628509543103809896471684936847347647054538134102276570395478159799620831668028624142622090096499664320565320828392494306606047019174865422470235179750267568466491255885009489376167599172204089233822187996844490379261063698508549145410840266188090608841728298358448548616351626725402598703445076067133046138882837333230240050901091336992790502595063813498599902727643782679156463527585844134494533405696486603947476902746242296130538162793439386384419613018318562047714865004649485874201915096944349825617991237958051403184829553662677682855196661883393968556013095627171552206863221083036825867640889238546826509396410993988782713751547993597861184173824568792637962277274998079953808340067296936393246362380198314991302286778202197663324813815940674501600692067500339498057837610269653831255264993125857565758297619849036156485234563565453988949921031673157073276844240901584917797225817406680091369536262513722378696683628458000420004589993929967378865153875484810444169478066121839165592272018342901131138271799768421538372102866784649502377142107411523003150585347148739679609528449796720052824445169351145459622530026193423257753743043257572294373592961229380876308407652920842851746571689016213101138053955552040323641762522913835205533574193650326305630659140868507692171910248115237353819035312933772868851072525147439281129188705614902773889985631262526092904793746238778390812815758969637571359919989327575077217748624960299581576634972256429627814752201796049414497518318456795150557811270350647696239600801293439703379211327943900781631405273414187891950720169533721919761526197150969780939923439882467045580244166533759449628010957047632153035498281754581753844441123430023211136123436825031106721429316868137159676195862334124679450454226099461600947105448823755607999684081920849933312078126950476479052624331040274806952323814525941867104885980988377636128894082204738428700351262257150684208683146692834099708268189243541772030993634210295568179611223560876777239079633052234033046539461702652217884721764202839543289744070070686332228306071434940499690816322457776363905620130958055600404580186136216125911106277883910874489033741980916251247359897974738654360409106641570332250822570443221533935788644395943048443942729661613643175290271390586346903421834070949761129292717452532898893439954798885563672285981605567292521279210033669062035398171770523670704930400735920853071658043398041314273985469865682556643252542573542127627833974165988463087305909168370746807993505628480340833181518766497109202396178288615869154613087328521385106064437353303007676537034514709409501578748009541565036924141285259529579768787063397750216780476100555246886200088245028876960636422115936105094236022602643435361457652905879545890377817113407726591788401802316112850909666585294860177449251125371390131347880373142973770260787649160764624858818652719725461320631432144550634221057654799574759894680692758511553944783699471452537281444944533955488093784007305074220302833709228044296026204520994152593350957656762659175843056376623174362889414585267278029931689071446501520101660729384537218322300543160848157541547095316956496029240664782690337245027130134901175256268469124454984941917344366416729253522315883639520605116517905634289877194765908258979556161309660510766032491906529943126134772987626365701929371980760570500967856796292372085062415007677290965294834045321548752765389612021545544454861656198331753988720785610652901074060789340224693361670888522114186139714685631733027470944211372049382898003316539638288272354553817577889092614609789992443500984043154772638826676714975350231050827364002731746784261685042667807601978556532189029830492092076764548726482090350911526977901356783918318795052994016495612818875132058678506864611178658336738077775324749076860026470490535350584254624271294388470649161626223375156851940593128641848587743740900444684025371275261111842718248203442714408135795883225733252492018383209780856817144309091169638671826036306129638020593300527768007412156131817049675617299954215220689810347135707780014201136128057795683231154816904260828100070211283355977429178620263358751606711211724493595710664659675694579226069740498903509554404554548690100242920076327685453593851877352280134229007949677790301389603013258631273173693174159438514410470593223648817934214907522252710057989942175691361055150931549669271353151024016693905394216482220478251291172457366234851689644133982900383416478292053700878778982585165338822739266685986102400366688335429029627984565305770527812642773625286064097180810573083857940794961171808039511276651373755896087727733486562422015459336875834021144275169901616194245008060679878221800032076263689889213873936629462224838173833617970238928174043779455764842136232354256989014184083391569222807453017077022328532197498009560778087571919939275101603200980293923430942514584110808043568464662801853053846433912393515064842278386620017394432192005165400844963930993926451743006308904311017522078935059102777594955300667300154719215593362110490486683858635547005037529986347803027683036240019199521293205627025297921244533096157891972869508657289333463608604313975643438581017084568969300356673069551327128427529868010799319526301852892211922592346247273008850659694321174691335624247933777664142288247076817347019688430842262395180110110920692382657849321022207441372964700433741634069995386814428538087395205232173859290483807241430683963680139886271745817974912725246491015584835177040867235266297876483596268373654674916255181244601080276076333211636457310823985480511508794776490666221369700844462175901878106705436305042340956034369559574986113370883088309764406769332028279609139551374676243137148923950225735039735345603233928933281611267463430314287482843315643837574935810042364765609901614965189489733747495591352212306105977608229110781129018338287771409010677931810576776078264105628486663104417673544044687583699945970920490293622414504987188790272733964578971057305944473693192088506334952934966746381183311749709415132267437835524384450155704624597329508775732701711422897558610974107932537674603202346828291924890458673129791935783699783758075655297716205773429767519116749057434387173624829000481329748144635604246310916358629275794782699274209162577305221641576029456536155420754284993522625460760707611062514378204923439830012815589787970764309605755151053924344251628205102729515522676921376196568028718492564872581575103272040366446568931623721792379146578300270362031631533882104068418950464878411224408191049406577292536795475552876662219270729310897659652624866468180428468895365553970123597871825888583556005372173425152491400596031305690814757005161695737979731272999915060814550674091341041138272902073538913565790860883142605330940350569583090581757030095867222060146547613020259314138046473429386602364767560261813603871179718579000383806881739356046847925046268305348016592321321199973090277509365984402597702512378270916341960547841170691302615953675229678287303997418134945192060811943744691604585955479275211834280058780215625675766094474840648701018362203601569777301405094306488908302524267424708216444408512587275204242336876357194666960296324180932979724120809950982669307712455776694461067824353544124468378640534675761530076941184358567004081324879964881129968248704888684414444109848262606668602774047765270695490455051472799279692909672902372848024949555515999433115764459326503542120723393008037538435910526310227794403380992780807902861747026789371447152751480771353920786490094857289513480650207072959379094589641259117232423165789540355065916675758382500993074781674997650553072167620290950378591504951203514075173442323225316579134170851042095723268398098548931040215148767775963366549685794371485012745452804457569877863738368534589504245249529833001935196556884217766921178223588200401442314049311522976282128727837627566898370907052517244853191680092604765909985507700715726996587195184725689119085083872381070104117579294143036542477253947061463999059125396685659653730612371415641802256163703870695225269871514893726566923026712701912798320745683985813897309357244542047735803915746333762019206132186010490697951209205022918842050197511078009914904153121417585635592111442628520091438483115034694102903918674985025003963298416084348287680247570437958942662315949845140427915951404306725948230056303772044249061719462400755015604047121515557212084146715695822940678236969957345557858381040738423872785312504221175553963541748646716458856393315927850441835935775631844168405844449848500970392945966314663595029840739724157643700375221181947234918991936564110999828725305383118284512763546118159964068655476141866080891154205419595000175143612769713062607243276327288646934009685785861543606877784415982603096347861363675015057643971436465591715181166954690434598088547093137483177960951327221375077471164354201121823702553661839865112636976734684079746687801750741137559094308105211039312698110707341398507626167096350265434575368942540022027271991062068159690598107037468794185784505232819073098227291241880403267839327832252598847333132787531765077836073367972178515998809579675106428695001157512535630574844623745958961778239324980949940116811780447060859242590228369875338115849333623435160234793487441520089256190574688671558911299609222349066481435773934642057457692638211373732346297257053686737571901071107642490308207082748364065651172749087902511066242081779991796040326362269620122820774651059473935046889461076499387151544345749755258029816186109143170721502734555614814478870706193187067060952441735758289887882265405128448845051110219967298731366305830452417776216122460712827423072428801869814586128491398553251823199914436483716319697478791378165092686596975898368840016377116505507568459345362104374643535366331297314860486939454825665424545748366821683187407791355133956802519743744589022647688856317537436751290961942388585802313319852372666051343777671843314246469934125013515150240706919348955299469812480034524197142803618421399724713811822537260948435572906668881797606264823404023572595183700023026827595925647714086453007654186298470319959637255575552522275793658534537627053151206137936452712696153959634992732668890656893002945386706579617482228452540638529767640209125685768250658157988735061520827044540458290383144955651949345290358772653720647405603790410598600348194850520706018167154441657389133364104746762546798019755277003345308305993731806292383072932845108073150146397159566101123640582754541675841771427408650165436534934298072899759740391838253077616694174377806896767363418912665442757317392162979854549296445665659918430236478654679135100440116558852180772808275770193209897379290884462939548833412886795448161392255065090842144321568895555492220105646857325994817018954270593124023505191615986964145193026680305242310602236126343051522753320195350853139992042018826665153155455035155745254948324885926704074950947246363692245234741171657813487625702794895912260159776387793883887241855221517910519424913697287058646779904042464742542797775478927815797421242972798995507287314690328130222437475762501609922517090470122447543137293316428897184051254936165340055108597203855467849000419256776104596649711925880912303324120607289310246907381142322116575526888737256677938396984956537319688065705015794399894796831055501105194091014236639947079983797514631742798872507903018923919834798947220927042870014217310478485061436279791452522438309193331007331738088116433179579216129530084230132916247945960829377877277119426068044060241496023307779027314722356910665954499371599990674949933582780074492690510893551039734036578084363266238501611168724485062646201435029535523341508697595053693606189273174800559834672154733649080500952534928548627906464381053538124104092719891666260501722511947202617969765826761123571627922922384756903950008757382431258368383794585364404431465706008404557051502507932100628927389365032112174239508157779941084612344717195392133053958168653525153447647575290858800601913517599760493376194603438165119353710575406048321470617760903183201432907582108231325248040267907417904811458793324113339828275699425416595967924168873016948403098570127920461448210411532921660956956238880411258719794879358165468975932895364768927580081218356896406840728245948539365963807042106585986875934904792313655803626898777382088972929031172134152741710509496788505627157181829647906450309534277958820144395132920112071008661208310406708459574477200488886872472737356697154796908976658212527702526573796755556911961018020973735799993806750626241414676896076740733640812268304177377430654716283820504542309353931148152544617725921546337552203342645811953551552703224272322704616395704492752546754009261123067885197127077355053553772184081711672204159320588201006844656762761273700398575412223635521996742781963390561435718844182092343754487545313245208675362532585440624899609414789079594848495716522161432237048996925025968790460351393379344459625231505537143283453950685147712517828464550133229029513934478484499885115002020330592765840474080826156536469748738896164620115918568965056670510695247282885572143885962054452167795075711417113962644811087104501393438747141858604142101353187366287573781866942400838806214291490489558227484304050351508660393427612719452082913193989351692653253475869051704651545351180440398808985854473951229381552306545168428293951074512938505442651075323809164562334123232873812751047747360542104743015065102086048026427889083813473326747633427382890766809677910829013265292260189795478789902256268454375056070602274331740731371072605516155695558318534030051619213096929670711508436173676200473980735821476782701033201427248104856473798593353764806592320129479119195512088806742617333803981498522816136964338543245421533441723519720551935056597233077542859371759219390348357576719775637095393505767138436788789037159816605762812154296977785170530285250590775686678587330024943978163793880110367393376371554682486936215560730631006668468845840516043975164022280506177394870571190468268104871847096184282658439657528903199064254643281065973543696688695710627816816709100173217756085491520127250932457943519451352292220830267441698309405513405151703494717159232485505719649437361643529596188944513047383408152152033133221575477800792665933815834594395556369436517464117984011409346840780250348943854404930234368030690137549729634318129048883738015692454333124276300448536204276284252006872257320846355742927316677597001129132992392544406709503430161978390561291986499939246450267146390015659554179628282124265213357501902344006251631044205726479224589761524666950990934743597371122691163303749022666645456323688656739976364736080441699965742753203686489032477415077165358281321405970862221445717434903611379153539411665821489081661410029407192105745392551518370410635893276868394996117946338560899049864314206224408416821706620129097029577852071703789757115926681186557906308499903446256874621550146442802768775574414928947969410050683177607778216607528969411101388852271114405432731676724862244562195728774886754469991062388038333349910373267147972790682639258968454084990121737918188403095551491683048749006957831492531920818854535715587927302344579300727807286234363498454805114217039135320982403610819148953599968484519271174485564613064717807263281006103747725313732005402217082520534278479569428625979165195954611758326536667293583861760074264420679428488246021324400726730761670445974375492028423632760347794193329949551786189838511660333716520017964226831212448950881864348512906633612767159705925770588401263643324427282938400185761354024534631645599535491754338366031369987862162402394758464817405474447616845847942868131925348972043869283577781475792323176034840419483701906970664089600392712776929608129013324770847191692373818746003221179445902385678223569293295830259318937574166116276341124439883573478501418356392037461706391679203564215548321515080552759149591115799391629827305533837987150089318203227546410485439325020389760688961146000559115596771932986717942300356564791472302209994115436044089206023111949083406541593394622542994439191102930096934925544226562506866323504887545728666474173433708868143714911754069240157573172560367049226447160933407105990086438899847602405338148479236585982362372742755090315740768517349652376442999700259858135329332290298816686310200518406127710733834855981128473958875246576932256676138106657362421146829124116617157401289719032586999482579285510513107937619043211232339557837827320785551516158669100873196618210730782029615879701115814918960439493568892174651427089310351430171417715602239294218946416400768685496973195199722650055814500608173320709781324989466048973406102510150719062854022573036480657736342502065779331797502566950956511648946037483594981043881716466686319158746761712814812160743550579087559435192848265842921416803242130240704322895131741565104442164255844132997504009593596628287091305262942503882869607671805743317274391895767656679150819698289902458901877972095010586968878418718526975202731331688467547843361249589335912825293969981821889340481099464424528969303535394482067534337716687947239310330511311441061159584294366741062592965990935759109334890917507976221149747165634858708172826911539798388188077248937611225814445615463032453722527690380886802997371187813408318274799822477871374539664824556494210633979946391075912093600170162806368546201541133385611027649273184641669553901662906948649979878430737665021857598718512073462275477435885012260149350840404206508042827807756325568322211867396578050331026399230877134892773384209514734142564817092239695857508187964787221254621207518926293526620180835179339818793100939409658745644849574476546475885780233632418433514876127867668087909316897569375253865637547431128505081282341842405391966633045311848229311068654610368576327556445743429599801934616064011710965149883161380894190544146091081219760552196416156327249865590975028685430616575862003449713093106290300072474961930318410467313316571468128851994555527902172334153428820753783994402050590938618685797605470231587698548546168770188773440504956759085591126301290944976273634596596910459272128882680416926588740142483946430897582269813290221378806501787944505318371641742894529490800434947537028337653352475840482868498986336526935263086733143358023349266612723282083958173646810444240774172379530721348806426916940654049145417384124907631260893416312925863922516599074766931477066590510252024031912079779441406521221512099585346751475977558215567040933177173000772175205751563578442777799763103468456767572796013837351282287813076631478342960893801926328183797504442134995204993880311614971230297865349911793844888151091177973517452434346896900209960236977464596780358394464811201439874814177888727667873610801250851231762356581425535038155216581465329634846776649092221638893256847206709182818332117458573760114301279340394398469197540472686384152888689570757118020875061246541389200546765870216585888647976290515669898098835114649667464791212320217357448751785198617062088522593535794616045460464403678012781835397195592890423988072170310221166934026392251909682003423293327119015118371790327116933539978596874274496722126513205245324395855740969704877418135968293701668397491937996411924483519843217877393072019348287006837894033026819521275407600506294894976103958053569869584956710858020906896135135330840392800689912199511930864251347352845159744599162662710127275667820483972034912649949466831829725851425215165390337995044289755027353757011178348509728481292290405221259711992750647286182672354701087960597691207204132977156833113891270200064018967322597928006246510077340448667955927571485936848931331501831150839307926733309008536029279178673942923184935840326795511968165461891455078014223829458826454237693555567772845806867787490806138271105038965890283222014289935915794248743477628164890348740870250370175658658358629002924617029727858202743056968983664851772473640343395847468226109747548912816431389458210953194811265866690044766308503371308063404300699160169390443188424428394530022913435078102756004593359542442378466881609634392332831537883226429783092865128579292416275334778095863492335198936664845140022977769912275525044220999020426532507132399600636272683863237898648863567015981164774651712745801195203433162979811893306487308513354187000657890806980603520616099227276245585567760042040098045589626292530400038557840640062836889857510165406771894588058280326181544439456679431194903408180475545596500744112758423177993455368224395636542717815025221384462358364695246027909585316488076803192126142215328303323905396126302156057322772480153689373304613498319476801520161914337623396830534836734031663641512243633446168478255619576418020629756577507060757045655928182395611666633083802913907956928917987978681848000842570017496356148504697003739619543048299422611598610841261327094980828182696083743511326888615443141527439639643596755318589942353342347996060358997865735165346770958308062280448413427429919038405011979644616110763964071505164621280921828136723497320784608459408175092059563298439822992987382041704423763366666607608860570265538226313948947192045419800301497224420696625659233823290469939248518274903214140589578295044001105324595794912324424422972220296881422634816518522655570771422590240838797272032892588420582320178420644206673377908983497097069937225928739875727560280634703481020263803358093743804508515031111338734684788461643410081436620779106760081340262889030606978379634555148043401753231299501222081749731520321574491977467156161468876231552701319945347044245868697379555324725718106107505894616313021939136644343362551959137522137150616769709461235408519422315242214708788324419317303113631558078183011875384054897216866812158248137751254723921420446192147713193813194329081206086223061113820623318722490120705719784550746667648544218067027487443546737706887882151962317900946131262166601869397707830744143917088898461646001588792375115371609613046576110435769170318696382005204765936606935704098698444884859596315112375136155861452891914832459089760248232839899274638316258014406581593015279863327394160041342455568969129852594517104179779949053574097407217518761804841161450471127337262326114776262446504571963205514486142952822398478831574545850626406421899899776256572748065492834228985333634621288738774358610661877112830405300012228926641098586335151234645811312448936939520245713290670580515576771095754974294613210344086671006878526006750931004154558139352540080123452141801271071114485957290692733115557925308971135284298941116985264979887784160231559042546167484068042618571061629021407636653671924558138401288789143313872130878624974131372350028243222880836424898856711962356744600849867679367545909914317333058145590408411007750060745447199454607531801848807927672063795382060317073540249870282603730562584644053491601553981123782169785119765115578845776409937796762359359944015382471719161731011117280089493436485185682827291771284033091901784827984827946613976904373636285999800181406545580419442338771027511473397901889586750701633260680587482771650591120677931215864341258686344103616979128434295018963462584015733615912627407802049309715287904930869120032961850576910222881850789854801593801122082174118395284296950943394445403229833905431488510738154340135719553047193107195970623007099884155168583457862108383281061013791976039773344074934245363276738061694127893591980344994377463007968010336895921192131463905009470136496438770412489468984395360613707863944013345632925887438014005229093258770355424080822679495274486303623553666813853752750052484214570426294341651530434458023246435524783507075523955312613917948340894738320365626827136114010058274102923297476929855831165209252598551770099920427113621559188016860167121724305030793865255901354578995706293392255931141512553485545383802728585984803949967549942100435474798333205947575998694876348540079051315733990584437745023732178143650416611271154755026381273339537633702089482342047918328130224019710355228910386827213530650153230456707129113016113801580192924911006858531444774895988321190756822288609992815288434896163488318237086962089998312980206092648848138471478584136855004376452030949705945136798569782545114531600492199778859515920959756844274240015830761048057440190255169839320290800285791200519718133119220186921921100603513335629899268216125196468345402785606544380555428396671144259642759718149773464654086797758878327695181082611880572017100539803353836751103852702787551958312905505927359920233057692307216219606692942434780025304810032465330994457203709718441397010977442963269106061690664825211266336946454950479007026204695085994469140116449762738293304099382858388500646054553291461400197768225004351123225595943258630228743702856133146343270031056167782345474279102019084548670219021122035861003493283046431757047383680433432831507850329233214117037025645780748495653870496122793090735161653917100703754933473087369745889544375556340524624467641784282222697552846472833202786471125260338589182787887801582344857015318141051019283024144529376201353000416698323643613992032383726336801314589499952569763731185030369080266745164389633603624430082519253633151191088510734420404270914440184470545377441415552734440493184756657441379550251461686402795906388383913545562033665105912381137096334627103886072722400564548042619467732116284871945559405525159137420070908377277894386931312990048548369576839717271212499287401849155819884848118957859055166282547980113326817457999395348275052310396801457424754765648528698696182298303606134172451915278928531016539029800540335213603503830740641951161522465155597121358557433382786633643541775729996198939277419380757907771673658336022635402716168479534772363437387246401289079774307454198405055921154947759913020120939299804689489520332811013770012121049809298550654449174957559811328170615036013253423085291492400105944672601810585106238358724298590051067215220375341517752182372946535089255102653229930786568236528255314676285517021626385040448377001506504810957173834828619029767332842248216169533689447641296539203920911962704305141164268626549399789033630035024219634704491665499503719423003979735452770407605579434101989406025549192348002945326417163256940656444724594744055378445305193106699747297383117187002422222083949724138542787068102871041099178554563216526026742057492510705950093595447169539096413866417044804269727996502243185088518403208749263025692581906796905463236643586139143768735245118503670648141342087641069246842599549406585574102509509767604307901771130468594211867038109812966098031433635559498356173543058064919511006581192268964913342291222183969260636584443694246055832962027021009890106381091115580503734997420537768525780652740575966599171009928472694924095828770621536913653208563079042203486823557198829051184875565542144378787665818412328973634445904405910629943214903881331294923640668678898362725073902567901917135062681158281091920707617885425035801881490846149821077810832196496860137177659330396227277178684042715162575741558385183928833579780099758657998219290709012236326899438293624434333234887710761263659189548123792880967249850712686049740160593696226965589402889444314769585891635150432806181822311623557197963972331233133818224236357935404114454825265750056235686474251502545228738021814804352636695808201232463355825523720161261680831893698788284009412736153091796612140869344005745674849195837582269760111220660242993585225149585215628701536231868990399231831659081611026698533706702305727163499767791925185684644221512423075320672065825167834635357944066439389509285299290942822529184295285473712760562462028457276678153370469680752546143565919623453770798701152227576742621624825021500461632310687204636052480522384701789884107090127754276353974122516695285508861025027722631339971400019737321604812103346391584070849473189370441299473971184194251767239466264713023111158344275236422808524234494850865767349143945360124310492923035895828132400473578681521991885816527587654207535507430758669270642586689213824257257689586479851035986215242522704763215839885983386165678541506316455078934629599032778419751180535482694275365203957532362803559545756242257530351735754902489701545535061695848284891678428056586178115274373075015755035645988579699608810144263788332481428067958159132423608947613377634206684710234663943271313797711613237935285737328797372628065424793051439885612329371267394955200299611641677757171197098733155716708685358581643558678963119651519007515519487051478971890206593459187184174132027185361620458816112082919877773310129214341040775342537185696965398902895340553459752743117337615009195315171358653301267752954979819502669568636929539610173981839604193420554032101236222844732377278331927389149158035874383637843959233938330118327275035608972723096373412648785336073413779167748025544293480654972875044071624798525184700744207526758736938746386850146552643206733172718626004267430050403026514340321443457253421346079733661259642959303574948549806254095739353685246008486334778715875843545482958523434126957282189310815459750390122415084226665420740320988102687512737930558288544508380898239644933802596653052788156442617296826519649047385469514594105084176209849613881962913504966119655535867698668020016283052709539443075112678558632260970017241624637087400316842404217179903623086490836186118699203378457025734057694701902933685475652512687760832736175703321395907674162269064572184664283826017034927623907938629801113034174419536185655024274387534401607271268057882457365959950117107584387759401282731688549529537957489756068494366967727266974502906167683460026094966026477089669450782278866446749202527088406170581909895087686875514592738591670746647188536426957520257063681339635583570532387377701791961274085299271101456848550633711978315180904236320226740514064332644818883388412818037142769243188099383413214055936690018167617692228041219797261005254097320648806646412546562707823430765310274462962631076681464888931213220383319443324367815188984426090428654964938989795929793932416878198247628969652303855298963358595549159032077569509202941049765946676906523792054814893840124984833163408089146302368913512780471934011071137037411255602525489845756923885481216547655741464932609547399228161456793946434666198355013771803697929662940292168446183510101931353740936995784034559719719358769120342789336582519713278532042825206765476591258451318826519797582829224475133753301795401271657230504796747009611438051341339575531986750115850552082049240325998997725714793799665088777125679894991370297533945619958053840794522203562440270944112735266714302080643779721720188213035890354541614484314071466375644336510400913443837651749877596091264822821452106540108002560721404073143574253311737339960708225836409657815740672976121603119790588225097175264153250160569454490232868904596183246264690640080851116726118218593122719820658944610659647373927993378822712185994788455884861134273366373042614792626939771381997008475678255180063804794981578354601674167335549119598555407452686125810880044705643740153193271585094081987015126592171121554894940105788109126640964577076035455982401905736393522626236949388785829699414724970403066171137944681465345011281055007318374754913094785397252152176933343971542429063208512546189801561420148086981915933394505478018532934322381184778212867441587411732789988392284495349585883293462956786942722111202716399055801127083273769406283795361162437276896310714196329006262710505234189603454973470004640252984016127686956796334051019919787036728973023768531082621040568564771145243202911436645620783754066785578430992073421223138335389331273480319422570025044172634523270921494114958790448669537655284121520074378607783665934758422013443385943868204221885346731693413227896877080888726235201079209414557873738392907824685227146926311116267537579625333664614197859406748959115656411079906698759091734727160585299005577133004677477384558785162785870395949952851318535151853332205787562446936273129284542489187228896009747621819938656262417817294450092268254119204587846000611787449631818364428897916751906345769058083239381989856984815075678932104763268481405584595372549007288110078421283396431139722132877192498607264547350961471901521229683155288576808781102839759670715097483952451748001791590289395203998556022718546913429544019726795539840353675231537622516303881725221564771660207439693973128430623096709528186527954682814294092994898379794326084659353827801302045244761148022366871322116119783078833568428050093444299856029753840269109261905002922959135843531425815724483078789614418317856732460158468676707348885390758195758097188107345147219535094873776908600212913635373926970546105645680542117358804343499834496249232250227871649451076195442978626668133503078895491764213798619990474689121310114093600602739079913917295280524613315534923204247742631961465773387490280595140843648035024590382812506884086018413500277022366479349974039181713643305427049927093403391682697786811820915263301020612679179350871444743064535826544138135988464277611655813889201892877680952392842918674885865973707444050878713356774936938880156324966325403918730423132807984369803709172973235450593849295651434934886712312070074986197965458404498403168287322606035377725065414070932943598804802568226071668052120487568250053597973991008119569298467650704397246623102231521808822878547993094256528338659687144388382871831536558955679175385070054941676614565552821885112202410890009363535869822422360705084893027967011685666891169874431636473789299681116020222993015036069904781704108427406619297593982733707816846543826140357981136834421694519971388502666682693827297269886696598906658880601725888560313558594790349577204795465208283731334535864445869925965243624559339115611891190235170451616320623016428109643675760265533402328776377633943427907824856129134439446830759950411146909488514379194481908570519028285109111174442970509264606792948776187710803694783525552371138481949250766160619055216624443134281541970524773777394708123308323420510486507590628659978645701174175757498823929092287707178644287496796120869044226517580875776260705602683479427217866998352687380628472339952449430863899173818584067363054211303066098721181316441945375394359088559074012677402666361563091292939533629342446524950131162669099336989631933791183682220234355053499124361592103462234629761180268171161494602827332847934782203914107627237565459265618455028648271877756881573218341225553164222690514290917865472361638982528801786191971933318168629266785524779801439491241668000605516135295008952184452514817956922345766559141287646964483479023878405371425922968684451505793634093163233641327954238759127230227140048193164576105757503760593733997199612140348605167222582986848749654842314499604567840485333222837556894141993768639057073061866416774572735106988710698069066096392854385611253118317147224435340907588638310150424606162093883174758645211840097726383953194507799709908063043608994335455814433375924442072505730581248518413317186746039634105589560413583936128866598117689857374518096520694527903648804537775469968279713838653027065921561099623698260629576063162761911111445881559454026020294085806384805454831248187609963641372471837168502204268871776434499698178303346032608715809522189609082705788667604487094001179565975867459504867224226764503775288806881862035843943614028303988019012880486314066018787652252246471342057760975991613114388557927642774969221730034698442651290940533349861377714020836156140096106365642585405644614921194314697861393853061937438496478813115536977851773217579221127624165169787525332825364760891707205636092781954967466915527139686098732440808903481634019888314038966580119734160248064510782013514680108243260373606163663397129250408798087074286001962994814793957079866378886386534802573962817447042238737140398014973000024425230227727286327202535158625240871508329774962504846804402586367279362022831731407448862430447417317061593631134134983917862959415709164421882184541874338682806201504020672175019514419242419402148165498811896176173127909351318637866418916709532567559935420554986252910507198396412924225345480739959445086569313745554362296244202936048696063433840240673623213801759592229528984180001240137273781612451157584680921510941822907139387311655598201160087744462198163153554635294996503560319540548405391145421742362728771378743178466859580290438605328003226817554405702669945438739363598868737386261990379804546263127349553388336909160000726357257654018948567975752785640931158918057859090268100004624834417489205337724239087152747889407502518062766362173438078859573294070765335353234792492062517914753376519002563036906077453129759261285268764591089942679428081821315585445190385074478646745225682793326146121720046352586808279371686240935387178163536551579099594049401705422070268792390411999118795922710378608822905988359935020642157575728546154428184509792522831576266407190626180147240194512740731714988753475880873487304397159028211874682757424850380200221261224833235803041235224314374617279068418686735631431005082615053725450596443810981649605863621203941576023450249504843477552537851071185420900393724139288483699632772115026158540533954382230705284586326034720227006688020248308724898324075346335499107768442273008937983309290883376122289906187564290970806979243670828800775005153304859810190788168217691245824090014485801388393245198810360495723223372886611737514434942755565053558767549639030821455382944875629212504062192127137695223472660560661194847985006407222702854858684562888486441275860242517231881441387207835526433066277834184062616778021921320401502407619314388457472831969208443844424449885163082185526936749563377757677995885455621223151987868469825464376373418500575485673824938374085153756824759260411560195374780522945795901032686067766650913809696255074321211025926906271533677620198376651340530458163274188306319194714047965618186901419014234524201974940650205628547663414732034682022719956121983428166215337370749348266561654271057434097160984214277425650802610341413945467989351713812489142882686926083284381479641433244561295389018769682334346204045349278192017353935185106679222547075272897235673468485050685896132193158592732195455502958573647919665998182430254861618270831010483019424517695720450653483411569187979338840491356070735470066762491063138859735335496142100907113853657673657555726316167723057752091265150309359022370290303139083777931673267258311472805613851659466309314154700318453699065221184347811326803789140008088945264971482906353677241876534707261219314313091540445024497605168315262946374255631907151556609503585684442618458673985327477282675215945513735339030646052301518549597574661071841713278640077728331593463041387233971425112604227611156816822357539837489477658079988810250984391485040894651454577267562602060347124932753406709135252534344990408543585489547862702120089986127866245844800167994471560962445229719668122580564239085215603951625181466701222856377246752357208775934761577781605818684979676169068240830639579384654265514268029968129589234659838660463840177555610664316531857336001953196066065902751876278595929754644382906948817120155676922739674502327539358426333510472989131486172971655280458849866366175615828327220073659157290417319316745445881940371543610425214187361310260333905522486437715583519807241492174206698733121528598830147185219454031703453229562702650719807632516508769930059657035732294106750787357693236818031415262550218371141410798751921459015658184168775276495321627873983601300179614527336291785303808799636967217584521022069943870860672008889297944027228637757401285975828300243385825325044992587543600999420392750158353076265781711965137564988372270773320087001917801094282430451060923847591471804100371151373046130077454557179039191195737234564382155394237659615625273304689845951345523606526596139447879580128825382961451797988490342938593117729017581258868945174519280984986122372360795274509327148962237313830310370897629549948713009905670309596768651570893528329710366153459078478895024921644135191063049237528591603519190950149522986191005703524808885881676401977311670413923636418622572900484615929813595327640215570470235552491720624386866952702595491675343317683518543093943728004633405998699170637231759791626604901080321591738705636306499501191892407714135141408017388092140870453431900565842981640493241225005030145917547890550487987915243771306324426338921210657894969485951880924662086059558153224505503687655357846036083370560990826352408159511984428286606995014062622254025107853277686995510876158371334930335764067500424661058381857522607771437014943477851595838110631968208535270527159156132662333033210487278689025835675402902995783400541088712182092335775489151107128356340861721484416942715883899730493246631833185569107279993599283295062235106953620804683009735543865907889981061982639606791111462958777475207424258270978915784218532222799494083118674036929424546335698099864961570135872512351409607388137266340246100409186427914837461882718098705335473935514214275098308790914456893658196693949865233530842541257444297161446057201082590569701365866985601764430611918619580305171875664500550533206641357381005137893580944341981833615580342137289073819204336092098974052827635924271029228686804189524216083039912807531155874118284503405086258600408367815124652002719714598027802216526128084921613930240524564879874449335749445757406456360967363417158630601976822985556238487976596601030455595264931915640048292746680641006040367995742201534266220707302662915886307268438724703369271077766875194285279262047117402813324138666390890254506129130046074283264536353238212525812315912379559136893235028425090197618077978263839017849781792129545741804079580728997446711815407204172122131148486307556163245226345432499400316825568644502951875283751898339095685689460741763276992798493940352487821591097223954718222053508899344443497415870046950301465956962348081003340946390711117750135511175104583425337187190660013413673184412433858249607357231072141327450596096150787310824818069176083927114576945378992101694490768730326536534235148739633048056541237800277726559887590251052384357348110599791772542266972781186972867951734393387448924589029587076085864697824511600686422471942852446113197123284124716743668348910694316935514414374956534853436624833033507112662355607135827985406248272605528702561010559611701292800586787384934234595743425318919473861502894198232483170090021877952312559985638794288869502014803162820566482628496091026955518252074885044116149428204329080015236051171789646818671299517213940250633099915722265267900981238748024542707950421590985471069287558035266093362915111310448568124625669805719215827509994069292352281292780006730482815859106694346977974417039438515489563942953710643870381277283993847385651499611102239115517125261923616772815819646127277572221033647585595201086927989070216559304753740705432675679650815722156068884820928328321492992127847146662109340230313076150488410291564912949931673981467308837546610280386386673270710564362105173347684310636081579016912595045043388089630386049884758129041961403861950397787883256684795535249719251887563308363927101844391169531875924607729598416863425505926429354604803479806183284744809758934663504705410250938088829050986849841795254471626131170977029829785627147314444319414957866146868017693058104254685326008999452429198677055516725420936091157862394618798458796071190881480308003733555630176508446121793920690918293122361471695294476882686277025668631070333750233606178086827503431291198415321939998368593111765612107529545126301242916239858090947427866900922331705602436859377054899331789282911539257968016005874418042223075071694418950035006457224801154581347270930315976197469853081117314144964998156736329562602499547635310449101157723002741055074090395958179470293975190153614262246522279597652272760451383770755446666304917437039667370975744526569079178684275343524310728461331764131675673535153859536221435881251932209341205566642205047443445884966832552983468267139099501400763195055466185378907429217535182070274829042799829974052364129568375233981773434134711852824048388027833639024064846236325235517207901171257709965172711171106420370612889731496840702883559338583269428338479067153963480685716395086560667853252865596543707606653076558588425343053592648867452343808158987121002254125624544599873152177768007487802600242112862222745231331815828549804566632166694025402072523484133306494592114026048841761981941521642100428126212562383541061424347440942406040282387446043322207263156552765189874263358129273628299956378221600281160170630098765885262731832263842981568006731968462059515884220172135142976975113517132294168416525583768447487010043581890594339476277860703058855790540250544845354954006519207542669986539283857800034490996803240805271358862585391112544536985682112512640134273706773442919917380111643697696296548764448343118789522440456188592253484543855390726268173751938162138506091333361253241165957470217169934525099580739958791935900583687674294443844252495324560722704460146730980719865121269485474500418089141855348379458731797265387258521869901909828959127630557535154216549596990061380523887009007755729832876083667850515971684155372223490636832433408807996563794990533609358989155033014649203452524928907586757291628979718911882017643313376264012948424122147570865629715981638575584074967892548411692376287184082832880060300622132134100150760682375859903099769671944780690114005374357187574962286304728211858163532763861328897904403116407255203214974651004946260634750185510705521686361493430825199428063253272700491339258265679483603613665882617981118887374302264482414239863620462776715755229160835386048561299379448347673158247999993484194039368256407404647917520041278863629136604574630781758224407760253285238201841697255020179553918449684201819513821243242815021149819017928581718084338722491664605387652869845842854176467791125245171362054909239143607586070409698642962553574982851972340471537529664399030081496972212197855494388500150332475888226844697868676150482638400239478298069493052862546526628579884217238123663423528864941235437236473885985373895715473847111829102433282956822033448518916263007876957047163435014937237852072623796185800326742711097239490380027779252396961829439479190068747403790916886095855969325244263522235243793289529775519585265645671502488238966470363546948380169129900736830441991953308593001470688483218739749677785332247731743408755939578338452345269104856032143510507168063737567197685881023651053522240366558271958695415718256841622709933887878081107011312333326533566799872641117351412086421156724879861396242025038142023531246337786487985046658784371809796947735097419870006059984884244875128282895583908766899145134153767002717367486661055906166752280837242550380800867870864009393284945010153676329511777270291349150708318768101834812362454648763067275633509885476297133647694822848138529878625934020019551731365534201985737311072355833091923356290501316835425873570999049195935642718028696168215456294292053039364502259595438095320711096250318401372458908149500009145700399998896860811029396924822414056860074812248532632512895586840123127887060550752938493301284627042887833677560443618640738618330862341215275158819568765441596586150161488615267153991991846072276209301409225090243815929313417488267353357620099680529171995421215406661924559383741554579075703082316511586958277717482549410947429339053837072899227405046193375971428312062195242880993766753079790376464214788181003221170929503409143884465152485392260523839518020575552547740887265880198996690931124684926272802119631804177026561422175369834215875033898331409451043741160220673178088829367961766924559345655139229885554304469137126536434595004851541771789242691973440582747508829931045960146564150500681367837844635619733461923704749239812462326213636796452266578833462617399160887936161343626097918312528977595093858595919721767365826890500973361620665530302808235918119055868465710683788812881613574479759400436022700379748256119682062956760491136693275063549600554853057760759269319556829388850810868878512238316014767279507377875779522417558465683418016970343379286332214189561105894295579650718044239755194660568143951685660099033073931859761637188847826550635295989992125126435415305642991149947646796064713899959647548627176489933780010725021216907360708131637253711206254946346693183382526351920142718407077758468889353194856463900396721089183261222011424452521495242201722149433554279141955132400482574850504184868458722069458854024111447056426040439924157413991394216164316670990605862096568641530901632719878161730441440691640996733646506174705376313265636121872393763548003296535363400941828909587841964677667832783393797235152826478039232624379700747914621714478180301694664038124265450204462304308209927732187875280526952716353818255496566066488129117002449422163101063447895217051031619001098430309232373872366599067448526308931199621743538073192006290413867353477776468828889979511494808455534656006364534416982330429845795615739719097111361508017495317544934063176536490697880570126209152101729759463740420452860410369293010918326554813177435166551725058284592493308511591249348769523834975469601409431970377095677617651649199199400484547711658440247585376458321471868186795018582589356488121141887770557275025789544037169319953145404242962703310087369694034862992057634784682389219873792814920116098232491546866594629667364490932827113846992471072393271087318409649211033314982006537850129616501429582225205700191739796035701840147797355712978988816899087404612725583380081470131389160753503877555387108977998509395552947039540326131455909267749723045416215726399565256787667475341895579084151034631461179913049811941022049501045784836888540346329978134059968828029805651815589595405054932021740177567834098456149586366713066870215792121590501473030716680181388459041101795151894036937162572802715003877114282580685831871881530938277761614152040572930614779358088192136082808816340032902176039725588928311729449062387629680399221460280558090932869211144410564074212835962936707083324354757590457611938161075888348570002580683576591316086321175124651427452225485577505818018893390120401087545348863026397586705271162139897862027449624509495083145112546202024178700075153330649792235002342508204284991515584187767028832029674865204123757039872130736004198294589350102040493087648357813580879695084164558505080551723971039782252069776146047167091451572859459351468513580173478053705092153980682987599295093578816018367029777119751948013684004801232031616054413679712433384517424958217424985735346882205007922385502959794612715193910292258509910311740484219457467525408663107621638594930140978689213219889543067580313383132294564962726662228212743293849052975520231593359839271598744040585748221669905558408667209776999699005481272794332006652941281240565652193499010539072250786250407123478406514894076751067951374929289417369238291763873367268005771817810052136583152082793441205000353646024817098173946707052346765729304046640419652289286736122187900691619588487844470819769432468889185917376560411535420020920464209613019581525412848857551671417449214802419271969646052531561823736372347017307363397459393865394631976712452752378702712812036678659859884234094260700810688890799725067550410750128499091742564109067974193311192186805851386296132931771445395991124659887361033457797145649458625458097822782983162426553584108513356270709826889571109548198000595277350303801057172739541149232125926473287436869229802640104667697225065090696847264040585995474507818770256227613324865083806063280180722612411523158591372854665909302774080439912755821070429314207598016690842507911560330800700938273348619774531877198987245400016525856660061755168737448696984265800230104824872757827743748821344470090496266703480449872694967479184293172314396419036252967771107147766615940645867735901719673386537689814264681142434075178485471070702133245147750760051667842128639659791117740969259035142183189064771768787370642868862420595358555037596988458048173747947759872668626268500650339924651586564204275230034412790009085514858512842917889293792452781255486184498830096164231310833127760691234211156658316312396198164293935105510111861043577383461131998342766568511276459297596776008016864431803237511546222846632689712691157394542810170657720947480667556853314931748847663364572622863236664528309973254091938533296539940513965856790787569921769026982805634570666951210612330003532348828050265682581417350839560557567382624254625684826128938679503759135412545537828841518106134076565990485735800034806599222143911444534998556929989723001428379951267875111483899989043232513865631762053565796684458133028224205107931794704212069992882636006745303122171847595447628047061918140889809410590711820098712076235065704807831593010556164046424324233569414700124588334899613033453090949358504452960354147199328696645211718218135426683787203237012086619429167456069858267535451177979031741532148891216889679640440099133408088509056402337430309768934640373237827906876657843861948521659028182583255898585667164874556126157259656256979607944626973588224440574675050553907267247040060830019120108715638267842971272083379789022072510076513466642005717923487187364209441337323604178729421333881631069510351412008651353703382054560327751014047482653001776375166026759331682243213579360760411495598997258138162992218725003886032577933219513881201540735256975840874823276050619322861573720874577194709679087834947334546558136787677377106225575752520773892411595275956170631511008028606377914647890609072159533460293949653036131610927764926400300361690943039401787389906911792979774283194338355930570178347846001608472921237801243360612382925837305711778675733044096008393328776030592078051946625491110786975168532732990610390629806796846473392449423409531700402472752002950847809406493523337718621550696547982523082973659142305393913628475553457834003328255360606492317574731663130354332151166085681920207946569361266537942386781821648141849158811021592070890268186962911735202646327506850309147289982783220068273555125259760876253232466104191956532137548253072419962895638323734191355013756641250994683564517768584422950837611403043809247688272883766345830198173642121556289393412166983145070721389446493554224139344483044917968187572601638461454886308990025145119844896056823571969789894105861511452509657849037176569172169846019769080251810800323296353480343845417405727491268579779481094412927493162533649828515640607584219841763327407892168765180355264254389015486956912703729859541250313494160731109282470867631195755804642759166019283331332050288134759156721188279761947483751019814700195665018312455962145192521590110956715075554662801693208256512928517993343334465587814079273341193745987468077973684372786858924529400249944232085802510638405083096035848414446314424891661181624386670289218961323797362081618864025107775930491167682865628888106842846476997493892674920671391835853655985278357971298771157303554462716752116710314062944382898020967294491067888494118839392603712428840811604989602906524871594406920153870570311993144111226339487372133598238708502728916279012093738137207728196968634340677364471487913724679052687457990053296788714741045624003255725142060141920115715543363465065096168850485223477834025201442020889826048818470250686354691509088522931469251219939306226755540395145537184188753702650007105655974821507938285410547836399835410231689208806270903901617155463895143670568217165039937676798291468932075257416858787719909237173425197893589180220839645625420770813384155962941615963218190521337747878143850632967547279289680245771099536163855833940680379781481490008783925363536400987781486805145089189488266158947940115042989380884969600050344058370556068836492972856226917233476936684828847162989806511114730552145470296214426144384669653927065838683683157413849932310496728062744319949388671561818916135495201190688036329633138358353639844553188567691740221977756795053141605787493470683923408706689995207583963552734999136772126776902399996352503855622039694756208347951745361736946519403280869960445951344981784428632541796339860204811740320752661280395132155704287670762834067831448300075805183609239284722528955976510301975572306470069173793171880459003158965867671095696073525799830402503680110077634313741037259491266298117453918011129555038223912858306119618119526589507207347420893019392422673444487831522400641945182210211571730317153068586062880388934568750334553128933699632930744636348320546523847842317268361935706304258237503228878361792815210074272059593331580361248693883187211149831619387145751711252502997737806954730231301866253150658697905018392374944667816336535934061429135955320613488394297854760778312647776831436549518770631298052281171894737459188784993001896515073954836101254622830778476531838383930640644237534111503214934874734988159902285013219847819707908345785615967107415515730229549646721560013635912296942140329099398411033699113037832436275315238702479387208487025432244499338613735424247580828466200525930883811360188558735051295331506399298163716180257189159919845041950540975195968115000993726208257640558448115631499965987970033051145854507571620236241122352483430949458023685076095862888925521207922235285939122957299867866946301914684089318486740779016941835199762489333288654791547989233296096593517236228857592215278723688821454133921112394084854566184209043388674847370278930989671970365503935649575799482724246921948057133822850218075687704643485535962060421619730600527269167005124359990038746187066529368520638763908051620784945851932177395383619669169390083041632070335193340209608160805579651024238730591832881438404694256653035942516571267375360926523991852718406276881906706600219302211100927614906381610885877398200080016628918661053181038102460359692916129033558957518045544329117268012086716872223081313993714746776126484401027141797141838579448860014206368931458750863708961858165717224632249069156045572569307269293427096565993374721672661995877891225170527404663164734468129381681490615296766507714290838398243146107305342456447217292714084089379241816194880927234815961224709666637162073519346901309041782515839159857911384421119259929327692082328256022859939433375774086721140028364148746370499124412392721562578708986965726582657866662710405067593828598174824860559653683543810768440228411367075701992334196543765909029434423887198601403629798515960427531988924082552326733002091600463344219877109743971124608023601176409746968321082511214948521753695948607234817554815106642833296833514340139069320211545675661738137899046094092719450663554685817584454512250736005343275044999695180834086648501845540761377157882009632797305138012062609764480795726380868210937389818399205758227603625155186190255519063334577933058490141018984978504360356435701572808313418357364243596052967340536975528109671990734712302619545268730256162241170016569409806727303668429636176811216589081505785397487802695604444925087694021460431046519230672577011589874563343839877005968201085935120132812450748287396829865186261655196470330618482028136853694936235647875706478019199073319677844108758190901174398836588698608238596322178092508921930464361464335915764077382164934589962052571296171531494065233062700298891498528429684807598364917375982372782387279017049144885980619627141344281501060091848086553920814552078563870405335185389884487973000691688988648299127098476948112762308098854119890302743853149254204494022962705351357523966918870541953667135697193834133757354983368963832937054811433148399376490421979690979898756843087844656707333382859038928174271905821820732128218158529455669713528340493148934662338583693437448675043287007799945702318294438408430819745172116799261825101302399947037202883686240599913787511525483504356445910586745856024595904267235884163007296411719680224874599886658574206821627363231366776086871307003834426532382000830341685681214639434944960655081339112201095856461080343073796437899248928080425380043810253855163080971699323600923548628492992163921417290709854361021867846193749464858780209713683514431298380045976184858737649067334316280185676461750956939220392527854528065283076163666191872649089486302799699202192993954601607600279796899299441451481666323675483875973766849414432753644266498638948003633728307530704966975018542272402941757727238828902912211912556552794911448391114885081135910590549491539907988684697127507189927869036391195920648141086288818285649328037025065187843291828644538095717625836441003080459402604312664507638550209797336594228956825762337847436940051700301823292003565213080229487451367081020529705471160755813411612937149603570179120667362811503378814137257285872923433280779188626846119374153213270608374910454143801979136725666827260275661348404834863401651371600710276184174780991610861176499576554972821072256373423464672485372752218144302185448319401445687290093162271010338817660945449757322157292142578499881714345103926960580622959275304151576789171949243854898131377089623161558074916739187821126623430176865450681796461746114619720345426634945474666106710462196310162369509574848631983348432032978543754505475891922463267039480193506904443521670835132416683595369433744367324732052802403090661974369954962204543184769607091624682536703683947196514974673554344298939137728986531134851091439135579240451782479613207581339384042983528783512799535834500856241128609382850202797386322041903598390023516776003469423295832372885817045802562875237720555250561608733516024797397217099537209068035918199954085836344224738738825622766922855670335760427494508014176798246926612652406553303618416672880191844039935337098837952629669762548084867389067738982882555977977680700318144244918943235356862133400849525880155071140978124467317122064022696567862855337928850301993323652972220189081465426159666943678500711221044570113288711871709536107844783266984214106913087193999526757249389323874834399077319076769155891229701735827500929271644511674289853191330976200014720724741923178731358861532346094338004616014238521594891930040082582372312330629426270729375867838446256758428892212545227203402829337042461685487823361923995774430002875061013583253784171831312003622426466546095249020266420707495100787322458006767167159259750651040667442650501052153255125959013318113713734724351573172164562834039679894872665930208172807752831923134365305015854162108145056679035047801807310949528062256134369080225904282938479334280605285181854479745849504819008265751552403071250035030543149014449017377570438864774327184142887511923864177844494053575084420686839826115750348781910715056659733991947231829705807534763503404553976380387588803826907782877927171852809908464338680886513478760810267130009316155958198490198815446895344686527843068175094955303749369383659066380136171743152775376244184745709914477560568451338386172038273617060250498180399575542579870787528268302219757048802600183344569027734997950524238062264555983838421995108113590677879773952980352939983651904994992373246289875097552929658111930759518632837092759519506081558413808687318713896449583975683428305993008202822542290257189931165574432584842338701380396383545141979631750372197651899071473985153149581857416983241483062946619870938885410160907987945363588048417047268802168066975223406606851578218490068365289010482189908714175783536388594745766136993107290081382371613664632192947393302520450429320948391949725139394142442126332668214285586423761829121057717928888967243073016235921250134678181760581953775770352169250321986970490417227282271506349178642111697307802728908462798365817297476256282824998248260511561372706315900694284814926754879885408733084118054324818221242800210714237342269960675152471346109335063385683138455417738519654939481603130987797647056968671816275132250985489131131421214383774125231220764987638032034890051729184155410729523502549566889387719737244932285604553718213553346134229897420437355919880926715475576709593676818882652547396666330854187912729238142178548854609641495788541562592326668729191665275142121634732358206011291055799108981609999004050866889949289797999320123427410406345427313342802639782545831749190111115097458227636925949254363495426505190837154637788784339139110234153740543574642370648125169274237305417642740913968938603238300643130399904024163671168904159645948218071307208391772506713953019395932678913992280183185945526090602970926670172141340833816224593544051769723406170429698951579985564360426892490311713148630992310806062760733212851206101693194892341345551645328889613625372168410490222751692252499422002434300895740223805415217323487640182939979801587120245288660948173586879658946693845253523041957093817556976748586936590225547697006714367913996238591050855058278268195340945142201712368572278697838046801859923804882869402544411817249323227902759701114769108600204340746519671196514369824019297750055932550717156631873459711645823731574131715100286292812141601476560122562497845258117388388706766091844562083982960575945160518091849704134061347525177046550685272351799461935955011482948602198956512748728697595932980021123365677086882222416767013311419954837503981275493401976973155106562780080746821098598914434065820187409549091292680647232652491480090675878369190864543433948445078453055605110661236906599695765332812848041239033724691736222619690284207776787180057738438367003728811016402058980256747334884595570279473655395725022942218864518000987755416920323551477927462344057945947459586962762177066514113532919437204491593809862916553189014085222109393771703444414806432929399748864829416935272332058459494532090908693491539144332158757279847665603879527767547430410690870143629004761977424272280747324099290827972477463000755984108143478930428499770045302878667189551222854459964315892379213972715493504700412632025689474950559058416536448044714226283742888344318451251928669834252108230374867840587636999099609910853009041956664390049809856869195275566376711735128319989778675484578432564750665101812124414367156558961579439133201128757262737876488011624493092133367792084178260675576456430915411674472485439158249802468016639864782024876692681228764370249877727604286254789806921916733770947029260130654272874801097499874201502083688803415517050799785154225284309645138175011435120500702096820835046785299692315600800493277127819141559579002568773305659857969541671572793017837928998768235075874590502770165766237714547534297040553813262189543800550470975135671122010727887509526986158911856582296949809133642264354191630092859949976197977440865347377234408483066973280315586597403746806401511395194280228234121805440075936814712257601490903010542592227341667213315828046655157720582376768073954750468177796481845843341607670356395591990270100124223276122471549008894485219921191049633332105772640284925956511612229368026895205113616795291326099084482885037596765824280435725363698027649645747212071816735174467896172442189135745447642020755319469156416444344719808452053903632077288449206338187697059735012284739263924995922249189803944995294026047913822190150457281522646065125311279842516600542555209539790595414771070615492171797794903037152455713048465857408478897119985353806163308952180241111115762774841130908336096641850239152646688881713891907506064060600805903263094427109778622361786070343457591348415418712795892389408206898658650217062423604613191153761379328724755266668982483206960541726191920774848969748770032442185991806965965774436054094065122551070763520830641858633395118397532051471619690579009681847962937912037428246473922840114575573833034302153146867732323032613289472768133291900981840788571919094493134856300560979795256574456704256442283492390585118352537847540318779379171894648765814915844442671720547678922742864004412207948386568194760978943708093158881992081400021209709461045130706564765488116408373599276185401210292314990401760889902147518083679059237365987515350529749100981169726361710727880567973673961002954693189621141879041928672363940436143368025427206286764727819275033223257993972493517476383046932364325620349401827662385658015120274050866263566441333972103155179757380846581989290264159728331863134383585382182698954149984650081699298851371562232764142847464894569579171202346487101718620832482820056313065928219249135229584538281837085488274405800051961936073384134778946471661241381540069736257683545619510051281403561621638727683263787852537373250759989438760457354317098784942229875370967833502441040112116323475064221057507696055454064073519199450522001025043417596568546481250881278061269446611357661087743685377117251528131013454400791775420610372291052793868893256129296041801093370158048454759437207399736400087940523932937037691683920364958965087716292446127534648093052961255925575186412429899742043265198075238605525795776589327359785341074235851015556850573412955697394374999027788014436359013788376477498019107128279916409144398504885050721156076659281820601560939024235219252000137361426269376909806858510151372542563787228874339868775830593539952163365575235039404242866262142836168090666177996945520674635286049931899741642547987341544812456592315642847265009071280754051452586816914292866355443227818681571696241357239617585123389395588748393376501379901158900086646926407416317609678326342271555546049998613147852142477263368361898561849301834499418420335253689350236827400843202963571717943417054801289774789878805988014825358296086519956898037801440729710616372315895187163026309207654423296737416738824792413760296894338518440981678796878291814396517511695522762243403186316087326884899238746218705671221153683263607889559474616120584757309958502003993417834232612338270648500688198111855705220187073312213009977621257036518652933130045848651551033612737901943988569092923635588542883964801821044156364551866925082650173059497126167946250211527422625426623617441797314930402856457461634698849339928851257550730222264830501300870874986335737731164605545861735913049473180659723230739770825498356130224908412080597195527684678924006255851733187629947405677822835263403499586320032781033196841809477398378106231586027791510744386705848646574738844113549595836592026590155303645238207852927826977493569834303587229442593053042909530910528914936913871658893792810709162731705216905627022565261669088562327163088152249923289482236195431670419483958838331984587467714780480768181562038410589810774599738794159329743462465403524079027680684379607947658785723223152810140271448257814620873864230882696121390123988126813417432843846804096586234924525470289838794046964649825694004379878534645819520793945096701534940117230519419918223415919641018418481688296013544988880400768846213727982282801699623521985670484207006633468263687035217890405849676923902736409775607096630225280553422571738311432694729293912639796262141990040202185395241541450622251481298854154990822898675107540459655589581569230059862806110023428233518373356288204714012423629714076992498049231138542651294587757066496786044771612305547368385079428890791871179345691353760326947756124193778117752701469063487415236638557409205740415899727589413451341085723497558936762691437750978632033647734183442318174973004913476843588302055921810099568803815971113390729166273316585177212381443611568497146000336295888058782221741061027703642646402818054001735562707802239095808370528203971440223513702003654713096063783049337914584014072428850064946552658955460076053036080789709912927893735245355178959591310833110867835363963253863818165399090472069654002721209981620838680200901677056179214707167742551545335652898585094332836997236681505958255656661404711660658866493325425714535551357785164981281594272679733825792801010291020755828156129818636120020023183421616710369977833896603349357639732994198819652512180703480997666993184216235684192641339767189120676592883675102774292829272243760089665097004926474249106754835447363972617291224790342363662063615646468947921162758323912595391068411297839166607628299929933103352183419890994910841664208600901764205062287242509718410326566474337506370993874640986178003890331431087956521614004321073788334571580091913427401773433612385809608881613165862796950624310800365135904847006782756370769754806263792317563617176781239306361662811631747008536864482333884298431257536955053093193697800042631518172432281870126457350157261506902849370172921321807344005655370780433097917910671963220569194786757712930041135335424233173737060428467436823535936320780087944723269776367078708585180925994830820445200914593034455080801958496851315567525383114541618863205878749239059207333863437499441153418363510168069718878522495539345616976659487484313294064709792832341831517192114665195481383547950111913521774050829376098936181030304613545084112611970558175194904107395325979155693955701690313232919766134260086164672497558556045907564138154161608089656013983854218900125502134215322400357159966391640642923267480708819458369578507610776572559706723293495764429163904949338360274644226304658634177936791034356036658306021955350850527750014079148199355330213754578473850203270433205954020594572702298727935037681439692233850177354177041246145703419788497980381678992588369299667258266783606415461216141083392294352308522413093771876905896868155368173687862347710902402664623936231238383610415980907903292164736980643200042501684166818494461071735810634455557581327188409835638543380538844614204664636395629334152103182872931092084987088829097041255209472983153745196293004225577988344310809282756419939767845542006120133534491002008917284181310065712570064312216135905565774917998025908666635972337453202168249221469916278205725605448563845478690108458170001288976045865450818389982528750076476154811276459726419798846593001139264107714757191163207209601874751801784113715868290148050840880148766653946673132923217273332191948544483941001586184718606590564067920997474317370204151893406732780177512181370509507372683605223980507659342252553962170549620597690793662511146423210231206655113324931775503016449955114745366959382876605195534500276959735376402319842863536006763654821952712659536335963521293037551530418778057927531541143008138101834403156683241163808455591646044156607443570930715974606610183024160091512497307336309239731747211158038082063525847818689551733753263202432199325404937312882794603207278191672571971682824890171021368097328203212819479468947177592114284620225759566291602396946131384677066950715511132011868514037095536144239394089331657707619650037325331413899538202663463902977194631258554584285110615631211467503054226489876788825297747048267116220857948712961780368669598651897301432560388564461614945169317751930494542270805677974461617293081562502705079036210204485637553099134262651386579710066574908141095959348464023236300205330376137309861228274662566441506806543480688263541124521762995675563363041971683960292890487370994614360556472752637740739038889038141305534101987543026807806417614282489907072578069930972134843578754405810826512331263848997947124262176871215032558398974662340513257423404889956851603826247159708493826222591912677059057959922087369497361404419570577305499695813697985909353203044890918133677147732055203587569282469404716473756574967990784484652614528973473993080796199335078935476240860176940003712815906901853355367584874203839930603885212356506905143092278389598952926795394679547003522180070791463018560604823807097490956874579879004731332804009658221174907265763865249166479857962154792481886351711083195478342474627559856670184117311636188680186918438271891333246126454142591265355354860306214366310900184807694235940676751967420887911394543693287108484726274701519588040469544264468195335860727282306365590872535816216259179049087381244053927318579537519228409578285170012798042348993984421414203065674013876421890931395785917404478208680448626200666508331111594764637962301515864559297881086323068847298725056011357070216688557466707227380060823448847209704998532907672827553261801599725776373472595766885949867996693304009104425716565764847749345232796294957313519023855034897690142694785896288588713569116672260486997971895074022384545135732095479011585792362363793845824966507896695739079314971148514856110561009031488319130287383820844387843272347329540990784578159555720053649819073737595489327335298240189983801918257590220676106369005401690730697938075781685888097518771490767171624176005337046501883292337157566602204024814410020834913298786253956826468429150626417709385598072894820451244027203289632725265137972719166574288840999263782806161650683404109746333648490517998904304165935885589038368533507626757255929826000085445437070800865071535655982038694819935982310435455453389447577253359895738143871394976295046441946458360318983484869177941194364392195284346871080579211385059137279604347398057846399529013454942591466310277067084532141061195194684747726010561356918404363933931518395471171082748074290988812851770776444048060417522865723444193687128718891625888933196035784170303304377055022898985985825362217551965783333448340052686736011950041494556262089707700046752682000679642978175325181389215941589157848140890854244046370826447889218785862198375665794974844569202307296113078447191642290674700676064806263001270963903756740034688027329415817744937355636082378308432916085212887464236699666398864347738717454975587013397520323010759014288597497117733488647626094438441406434816140570754193019286850752587070104926490317591066729659779249097952788200522641766813087126367074200649301992269067642260548200211941300144610139788736662168132996464077780784545933120538302849869240705425556607573406047639719392636033745410328475352383875987962943130267044749498221493917412883490095908958065953144128360095704277328734419452353185931874474340914346283410843707824865008015255453111460615242808524656764820067474772664122734018594011702305453460988536908302051089818600901648078603849783355761154842624929879072831532297651989906189509482699059612361577122596725069186809022012038756800872651928219660551779898580687570841297566227799885046454869247768918438488110904057701134146371888682929175559549491519527700065731665001879481243866047554176559701745168863093446364071802432929463165027262496977825679821361420907839756206480044000529593425650445197369152803213656488747950509730425669957791643869401318909165851777293936040530086977101152018731675011321611530335158448645911210683130686335247064400095000583152135421003628159408799003633977439378583288658461418170115628206937628818246744614734416349402101648562771990427770499605831981190381698604486278565293803419663096149127290497193445854432360858938424891516559890705967916115423392966864237707205246331980167813029719924187215978663375115925302357071135852468795683410869956797127230032116465215248957691498808416637228228816585079434544754917273652262577843526654611091450474073488908880219968777724856738922663597439607166627592998842584889654879527896156334144624762179264273409519723136296720125056622339483402851105252055507460907244417987226563633598979769708060354275773910000648384345442089402335731278457617537116923093072751705606175686526692826905898251383145249025986649727894903303258707698585271272466921862628604959877910654199162895912205969436692122867632548204733499128133667102835852699229995319792643177210001787424526130322529108803624017245025501744412863880362576876948689615677158577378678247766595854326693302735447985693014032953569557498277734000889879353924491848272078179551302928026953362391559870652644919938242956440836512050169468876811340310473829490156642793328718660296989412415797443877685365562505924243406078909465039913890544559724647463320779228187739430949142413969318687506203398740885270027676627472192266194393497231064395166470565330476365304856326601271165856995373744143580971215995672699524107982346113442679285998690160450279766351734413707557751262338828844259643400226821636296016768668290688069725169560506348020733980938491721010767515362433758978947124200088029651595129